Merge branch 'master' into stable
commit
8699fe3ec6
|
@ -14,3 +14,4 @@ tmp/
|
||||||
app/config/main.coffee
|
app/config/main.coffee
|
||||||
scss-lint.log
|
scss-lint.log
|
||||||
e2e/screenshots/
|
e2e/screenshots/
|
||||||
|
app/modules/compile-modules/
|
||||||
|
|
16
CHANGELOG.md
16
CHANGELOG.md
|
@ -1,6 +1,22 @@
|
||||||
# Changelog #
|
# Changelog #
|
||||||
|
|
||||||
|
|
||||||
|
## 2.0.0 Pulsatilla Patens (2016-04-04)
|
||||||
|
|
||||||
|
### Features
|
||||||
|
- Ability to create url custom fields. (thanks to [@astagi](https://github.com/astagi)).
|
||||||
|
- Blocked projects support
|
||||||
|
- Moved from iconfont to SVG sprite icon system and redesign.
|
||||||
|
- Redesign 'Admin > Project > Modules' panel.
|
||||||
|
- Add badge to project owners
|
||||||
|
- Limit of user per project.
|
||||||
|
- Redesign of the create project wizard
|
||||||
|
- Transfer project ownership
|
||||||
|
|
||||||
|
### Misc
|
||||||
|
- Lots of small and not so small bugfixes.
|
||||||
|
|
||||||
|
|
||||||
## 1.10.0 Dryas Octopetala (2016-01-30)
|
## 1.10.0 Dryas Octopetala (2016-01-30)
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
|
@ -42,7 +42,7 @@ Please read carefully [our license](https://github.com/taigaio/taiga-front/blob/
|
||||||
|
|
||||||
#### Bug reports, enhancements and support ####
|
#### Bug reports, enhancements and support ####
|
||||||
|
|
||||||
If you **need help to setup Taiga**, want to **talk about some cool enhancemnt** or you have **some questions**, please write us to our [mailing list](http://groups.google.com/d/forum/taigaio).
|
If you **need help to setup Taiga**, want to **talk about some cool enhancement** or you have **some questions**, please write us to our [mailing list](http://groups.google.com/d/forum/taigaio).
|
||||||
|
|
||||||
If you **find a bug** in Taiga you can always report it:
|
If you **find a bug** in Taiga you can always report it:
|
||||||
|
|
||||||
|
@ -127,7 +127,7 @@ Complete process for all OS at: http://sass-lang.com/install
|
||||||
|
|
||||||
**Node + Bower + Gulp**
|
**Node + Bower + Gulp**
|
||||||
|
|
||||||
We recommend using [nvm](https://github.com/creationix/nvm) to manage diferent node versions
|
We recommend using [nvm](https://github.com/creationix/nvm) to manage different node versions
|
||||||
```
|
```
|
||||||
npm install -g gulp
|
npm install -g gulp
|
||||||
npm install -g bower
|
npm install -g bower
|
||||||
|
|
|
@ -53,7 +53,10 @@ loadPlugins = (plugins) ->
|
||||||
|
|
||||||
promise = $.getJSON "/conf.json"
|
promise = $.getJSON "/conf.json"
|
||||||
promise.done (data) ->
|
promise.done (data) ->
|
||||||
window.taigaConfig = _.extend({}, window.taigaConfig, data)
|
window.taigaConfig = _.assign({}, window.taigaConfig, data)
|
||||||
|
|
||||||
|
promise.fail () ->
|
||||||
|
console.error "Your conf.json file is not a valid json file, please review it."
|
||||||
|
|
||||||
promise.always ->
|
promise.always ->
|
||||||
if window.taigaConfig.contribPlugins.length > 0
|
if window.taigaConfig.contribPlugins.length > 0
|
||||||
|
|
|
@ -111,6 +111,16 @@ configure = ($routeProvider, $locationProvider, $httpProvider, $provide, $tgEven
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
$routeProvider.when("/blocked-project/:pslug/",
|
||||||
|
{
|
||||||
|
templateUrl: "projects/project/blocked-project.html",
|
||||||
|
loader: true,
|
||||||
|
controller: "Project",
|
||||||
|
controllerAs: "vm"
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
$routeProvider.when("/project/:pslug/",
|
$routeProvider.when("/project/:pslug/",
|
||||||
{
|
{
|
||||||
templateUrl: "projects/project/project.html",
|
templateUrl: "projects/project/project.html",
|
||||||
|
@ -323,6 +333,16 @@ configure = ($routeProvider, $locationProvider, $httpProvider, $provide, $tgEven
|
||||||
$routeProvider.when("/project/:pslug/admin/contrib/:plugin",
|
$routeProvider.when("/project/:pslug/admin/contrib/:plugin",
|
||||||
{templateUrl: "contrib/main.html"})
|
{templateUrl: "contrib/main.html"})
|
||||||
|
|
||||||
|
# Transfer project
|
||||||
|
$routeProvider.when("/project/:pslug/transfer/:token",
|
||||||
|
{
|
||||||
|
templateUrl: "projects/transfer/transfer-page.html",
|
||||||
|
loader: true,
|
||||||
|
controller: "Project",
|
||||||
|
controllerAs: "vm"
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
# User settings
|
# User settings
|
||||||
$routeProvider.when("/user-settings/user-profile",
|
$routeProvider.when("/user-settings/user-profile",
|
||||||
{templateUrl: "user/user-profile.html"})
|
{templateUrl: "user/user-profile.html"})
|
||||||
|
@ -335,6 +355,10 @@ configure = ($routeProvider, $locationProvider, $httpProvider, $provide, $tgEven
|
||||||
$routeProvider.when("/cancel-account/:cancel_token",
|
$routeProvider.when("/cancel-account/:cancel_token",
|
||||||
{templateUrl: "user/cancel-account.html"})
|
{templateUrl: "user/cancel-account.html"})
|
||||||
|
|
||||||
|
# UserSettings - Contrib Plugins
|
||||||
|
$routeProvider.when("/user-settings/contrib/:plugin",
|
||||||
|
{templateUrl: "contrib/user-settings.html"})
|
||||||
|
|
||||||
# User profile
|
# User profile
|
||||||
$routeProvider.when("/profile",
|
$routeProvider.when("/profile",
|
||||||
{
|
{
|
||||||
|
@ -363,7 +387,8 @@ configure = ($routeProvider, $locationProvider, $httpProvider, $provide, $tgEven
|
||||||
templateUrl: "auth/login.html",
|
templateUrl: "auth/login.html",
|
||||||
title: "LOGIN.PAGE_TITLE",
|
title: "LOGIN.PAGE_TITLE",
|
||||||
description: "LOGIN.PAGE_DESCRIPTION",
|
description: "LOGIN.PAGE_DESCRIPTION",
|
||||||
disableHeader: true
|
disableHeader: true,
|
||||||
|
controller: "LoginPage",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
$routeProvider.when("/register",
|
$routeProvider.when("/register",
|
||||||
|
@ -510,15 +535,41 @@ configure = ($routeProvider, $locationProvider, $httpProvider, $provide, $tgEven
|
||||||
|
|
||||||
$httpProvider.interceptors.push("versionCheckHttpIntercept")
|
$httpProvider.interceptors.push("versionCheckHttpIntercept")
|
||||||
|
|
||||||
window.checksley.updateValidators({
|
|
||||||
linewidth: (val, width) ->
|
|
||||||
lines = taiga.nl2br(val).split("<br />")
|
|
||||||
|
|
||||||
valid = _.every lines, (line) ->
|
blockingIntercept = ($q, $routeParams, $location, $navUrls) ->
|
||||||
line.length < width
|
# API calls can return blocked elements and in that situation the user will be redirected
|
||||||
|
# to the blocked project page
|
||||||
|
# This can happens in two scenarios
|
||||||
|
# - An ok response containing a blocked_code in the data
|
||||||
|
# - An error reponse when updating/creating/deleting including a 451 error code
|
||||||
|
redirectToBlockedPage = ->
|
||||||
|
pslug = $routeParams.pslug
|
||||||
|
blockedUrl = $navUrls.resolve("blocked-project", {project: pslug})
|
||||||
|
currentUrl = $location.url()
|
||||||
|
if currentUrl.indexOf(blockedUrl) == -1
|
||||||
|
$location.replace().path(blockedUrl)
|
||||||
|
|
||||||
|
responseOk = (response) ->
|
||||||
|
if response.data.blocked_code
|
||||||
|
redirectToBlockedPage()
|
||||||
|
|
||||||
|
return response
|
||||||
|
|
||||||
|
responseError = (response) ->
|
||||||
|
if response.status == 451
|
||||||
|
redirectToBlockedPage()
|
||||||
|
|
||||||
|
return $q.reject(response)
|
||||||
|
|
||||||
|
return {
|
||||||
|
response: responseOk
|
||||||
|
responseError: responseError
|
||||||
|
}
|
||||||
|
|
||||||
|
$provide.factory("blockingIntercept", ["$q", "$routeParams", "$location", "$tgNavUrls", blockingIntercept])
|
||||||
|
|
||||||
|
$httpProvider.interceptors.push("blockingIntercept")
|
||||||
|
|
||||||
return valid
|
|
||||||
})
|
|
||||||
|
|
||||||
$compileProvider.debugInfoEnabled(window.taigaConfig.debugInfo || false)
|
$compileProvider.debugInfoEnabled(window.taigaConfig.debugInfo || false)
|
||||||
|
|
||||||
|
@ -577,6 +628,8 @@ i18nInit = (lang, $translate) ->
|
||||||
maxcheck: $translate.instant("COMMON.FORM_ERRORS.MAX_CHECK")
|
maxcheck: $translate.instant("COMMON.FORM_ERRORS.MAX_CHECK")
|
||||||
rangecheck: $translate.instant("COMMON.FORM_ERRORS.RANGE_CHECK")
|
rangecheck: $translate.instant("COMMON.FORM_ERRORS.RANGE_CHECK")
|
||||||
equalto: $translate.instant("COMMON.FORM_ERRORS.EQUAL_TO")
|
equalto: $translate.instant("COMMON.FORM_ERRORS.EQUAL_TO")
|
||||||
|
linewidth: $translate.instant("COMMON.FORM_ERRORS.LINEWIDTH") # Extra validator
|
||||||
|
pikaday: $translate.instant("COMMON.FORM_ERRORS.PIKADAY") # Extra validator
|
||||||
}
|
}
|
||||||
checksley.updateMessages('default', messages)
|
checksley.updateMessages('default', messages)
|
||||||
|
|
||||||
|
@ -584,9 +637,28 @@ i18nInit = (lang, $translate) ->
|
||||||
init = ($log, $rootscope, $auth, $events, $analytics, $translate, $location, $navUrls, appMetaService, projectService, loaderService, navigationBarService) ->
|
init = ($log, $rootscope, $auth, $events, $analytics, $translate, $location, $navUrls, appMetaService, projectService, loaderService, navigationBarService) ->
|
||||||
$log.debug("Initialize application")
|
$log.debug("Initialize application")
|
||||||
|
|
||||||
|
$rootscope.$on '$translatePartialLoaderStructureChanged', () ->
|
||||||
|
$translate.refresh()
|
||||||
|
|
||||||
|
# Checksley - Extra validators
|
||||||
|
validators = {
|
||||||
|
linewidth: (val, width) ->
|
||||||
|
lines = taiga.nl2br(val).split("<br />")
|
||||||
|
|
||||||
|
valid = _.every lines, (line) ->
|
||||||
|
line.length < width
|
||||||
|
|
||||||
|
return valid
|
||||||
|
pikaday: (val) ->
|
||||||
|
prettyDate = $translate.instant("COMMON.PICKERDATE.FORMAT")
|
||||||
|
return moment(val, prettyDate).isValid()
|
||||||
|
}
|
||||||
|
checksley.updateValidators(validators)
|
||||||
|
|
||||||
# Taiga Plugins
|
# Taiga Plugins
|
||||||
$rootscope.contribPlugins = @.taigaContribPlugins
|
$rootscope.contribPlugins = @.taigaContribPlugins
|
||||||
$rootscope.adminPlugins = _.where(@.taigaContribPlugins, {"type": "admin"})
|
$rootscope.adminPlugins = _.filter(@.taigaContribPlugins, {"type": "admin"})
|
||||||
|
$rootscope.userSettingsPlugins = _.filter(@.taigaContribPlugins, {"type": "userSettings"})
|
||||||
|
|
||||||
$rootscope.$on "$translateChangeEnd", (e, ctx) ->
|
$rootscope.$on "$translateChangeEnd", (e, ctx) ->
|
||||||
lang = ctx.language
|
lang = ctx.language
|
||||||
|
|
|
@ -27,141 +27,256 @@ debounce = @.taiga.debounce
|
||||||
|
|
||||||
module = angular.module("taigaKanban")
|
module = angular.module("taigaKanban")
|
||||||
|
|
||||||
MAX_MEMBERSHIP_FIELDSETS = 4
|
|
||||||
|
|
||||||
#############################################################################
|
#############################################################################
|
||||||
## Create Members Lightbox Directive
|
## Create Members Lightbox Directive
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
|
||||||
CreateMembersDirective = ($rs, $rootScope, $confirm, $loading, lightboxService, $compile) ->
|
class LightboxAddMembersController
|
||||||
extraTextTemplate = """
|
@.$inject = [
|
||||||
<fieldset class="extra-text">
|
"$scope",
|
||||||
<textarea ng-attr-placeholder="{{'LIGHTBOX.CREATE_MEMBER.PLACEHOLDER_INVITATION_TEXT' | translate}}"
|
"lightboxService",
|
||||||
maxlength="255"></textarea>
|
"tgLoader",
|
||||||
</fieldset>
|
"$tgConfirm",
|
||||||
"""
|
"$tgResources",
|
||||||
|
"$rootScope",
|
||||||
|
]
|
||||||
|
|
||||||
template = _.template("""
|
constructor: (@scope, @lightboxService, @tgLoader, @confirm, @rs, @rootScope) ->
|
||||||
<div class="add-member-wrapper">
|
@._defaultMaxInvites = 4
|
||||||
<fieldset>
|
@._defaultRole = @.project.roles[0].id
|
||||||
<input tg-capslock type="email" placeholder="{{'LIGHTBOX.CREATE_MEMBER.PLACEHOLDER_TYPE_EMAIL' | translate}}"
|
@.form = null
|
||||||
<% if(required) { %> data-required="true" <% } %> data-type="email" />
|
@.submitInvites = false
|
||||||
</fieldset>
|
@.canAddUsers = true
|
||||||
<fieldset>
|
@.memberInvites = []
|
||||||
<select <% if(required) { %> data-required="true" <% } %> data-required="true">
|
|
||||||
<% _.each(roleList, function(role) { %>
|
|
||||||
<option value="<%- role.id %>"><%- role.name %></option>
|
|
||||||
<% }); %>
|
|
||||||
</select>
|
|
||||||
<a class="icon icon-plus add-fieldset" href=""></a>
|
|
||||||
</fieldset>
|
|
||||||
</div>
|
|
||||||
""")
|
|
||||||
|
|
||||||
link = ($scope, $el, $attrs) ->
|
if @.project.max_memberships == null
|
||||||
createFieldSet = (required = true)->
|
@.membersLimit = @._defaultMaxInvites
|
||||||
ctx = {roleList: $scope.project.roles, required: required}
|
else
|
||||||
return $compile(template(ctx))($scope)
|
pendingMembersCount = Math.max(@.project.max_memberships - @.project.total_memberships, 0)
|
||||||
|
@.membersLimit = Math.min(pendingMembersCount, @._defaultMaxInvites)
|
||||||
|
|
||||||
resetForm = ->
|
@.addSingleMember()
|
||||||
$el.find("form textarea").remove()
|
|
||||||
$el.find("form .add-member-wrapper").remove()
|
|
||||||
|
|
||||||
invitations = $el.find(".add-member-forms")
|
addSingleMember: () ->
|
||||||
invitations.html($compile(extraTextTemplate)($scope))
|
@.memberInvites.push({email:'', role_id: @._defaultRole})
|
||||||
|
|
||||||
fieldSet = createFieldSet()
|
if @.memberInvites.length >= @.membersLimit
|
||||||
invitations.prepend(fieldSet)
|
@.canAddUsers = false
|
||||||
|
@.showWarningMessage = (!@.canAddUsers &&
|
||||||
|
@.project.total_memberships + @.memberInvites.length == @.project.max_memberships)
|
||||||
|
|
||||||
$scope.$on "membersform:new", ->
|
removeSingleMember: (index) ->
|
||||||
resetForm()
|
@.memberInvites.splice(index, 1)
|
||||||
lightboxService.open($el)
|
|
||||||
|
|
||||||
$scope.$on "$destroy", ->
|
@.canAddUsers = true
|
||||||
$el.off()
|
@.showWarningMessage = @.membersLimit == 1
|
||||||
|
|
||||||
$el.on "click", ".delete-fieldset", (event) ->
|
submit: () ->
|
||||||
event.preventDefault()
|
# Need to reset the form constrains
|
||||||
target = angular.element(event.currentTarget)
|
@.form.initializeFields()
|
||||||
fieldSet = target.closest('.add-member-wrapper')
|
@.form.reset()
|
||||||
|
return if not @.form.validate()
|
||||||
|
|
||||||
fieldSet.remove()
|
@.memberInvites = _.filter(@.memberInvites, (invites) ->
|
||||||
|
invites.email != "")
|
||||||
|
|
||||||
lastActionButton = $el.find(".add-member-wrapper fieldset:last > a")
|
@.submitInvites = true
|
||||||
if lastActionButton.hasClass("icon-delete delete-fieldset")
|
promise = @rs.memberships.bulkCreateMemberships(
|
||||||
lastActionButton.removeClass("icon-delete delete-fieldset")
|
@.project.id,
|
||||||
.addClass("icon-plus add-fieldset")
|
@.memberInvites,
|
||||||
|
@.invitationText
|
||||||
|
)
|
||||||
|
promise.then(
|
||||||
|
@._onSuccessInvite.bind(this),
|
||||||
|
@._onErrorInvite.bind(this)
|
||||||
|
)
|
||||||
|
|
||||||
$el.on "click", ".add-fieldset", (event) ->
|
_onSuccessInvite: () ->
|
||||||
event.preventDefault()
|
@.submitInvites = false
|
||||||
target = angular.element(event.currentTarget)
|
@rootScope.$broadcast("membersform:new:success")
|
||||||
fieldSet = target.closest('.add-member-wrapper')
|
@lightboxService.closeAll()
|
||||||
|
@confirm.notify("success")
|
||||||
|
|
||||||
target.removeClass("icon-plus add-fieldset")
|
_onErrorInvite: (response) ->
|
||||||
.addClass("icon-delete delete-fieldset")
|
@.submitInvites = false
|
||||||
|
@.form.setErrors(response.data)
|
||||||
|
if response.data._error_message
|
||||||
|
@confirm.notify("error", response.data._error_message)
|
||||||
|
|
||||||
newFieldSet = createFieldSet(false)
|
module.controller("LbAddMembersController", LightboxAddMembersController)
|
||||||
fieldSet.after(newFieldSet)
|
|
||||||
|
|
||||||
$scope.$digest() # To compile newFieldSet and translate text
|
|
||||||
|
|
||||||
if $el.find(".add-member-wrapper").length == MAX_MEMBERSHIP_FIELDSETS
|
|
||||||
$el.find(".add-member-wrapper fieldset:last > a").removeClass("icon-plus add-fieldset")
|
|
||||||
.addClass("icon-delete delete-fieldset")
|
|
||||||
|
|
||||||
submit = debounce 2000, (event) =>
|
LightboxAddMembersDirective = (lightboxService) ->
|
||||||
event.preventDefault()
|
link = (scope, el, attrs, ctrl) ->
|
||||||
|
lightboxService.open(el)
|
||||||
currentLoading = $loading()
|
ctrl.form = el.find("form").checksley()
|
||||||
.target(submitButton)
|
|
||||||
.start()
|
|
||||||
|
|
||||||
onSuccess = (data) ->
|
|
||||||
currentLoading.finish()
|
|
||||||
lightboxService.close($el)
|
|
||||||
$confirm.notify("success")
|
|
||||||
$rootScope.$broadcast("membersform:new:success")
|
|
||||||
|
|
||||||
onError = (data) ->
|
|
||||||
currentLoading.finish()
|
|
||||||
lightboxService.close($el)
|
|
||||||
$confirm.notify("error")
|
|
||||||
$rootScope.$broadcast("membersform:new:error")
|
|
||||||
|
|
||||||
form = $el.find("form").checksley()
|
|
||||||
|
|
||||||
#checksley find new fields
|
|
||||||
form.destroy()
|
|
||||||
form.initialize()
|
|
||||||
if not form.validate()
|
|
||||||
return
|
|
||||||
|
|
||||||
memberWrappers = $el.find("form .add-member-wrapper")
|
|
||||||
memberWrappers = _.filter memberWrappers, (mw) ->
|
|
||||||
angular.element(mw).find("input").hasClass('checksley-ok')
|
|
||||||
|
|
||||||
invitations = _.map memberWrappers, (mw) ->
|
|
||||||
memberWrapper = angular.element(mw)
|
|
||||||
email = memberWrapper.find("input")
|
|
||||||
role = memberWrapper.find("select")
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
email: email.val()
|
scope: {},
|
||||||
role_id: role.val()
|
bindToController: {
|
||||||
|
project: '=',
|
||||||
|
},
|
||||||
|
controller: 'LbAddMembersController',
|
||||||
|
controllerAs: 'vm',
|
||||||
|
templateUrl: 'admin/lightbox-add-members.html',
|
||||||
|
link: link
|
||||||
}
|
}
|
||||||
|
|
||||||
if invitations.length
|
module.directive("tgLbAddMembers", ["lightboxService", LightboxAddMembersDirective])
|
||||||
invitation_extra_text = $el.find("form textarea").val()
|
|
||||||
|
|
||||||
promise = $rs.memberships.bulkCreateMemberships($scope.project.id,
|
|
||||||
invitations, invitation_extra_text)
|
|
||||||
promise.then(onSuccess, onError)
|
|
||||||
|
|
||||||
submitButton = $el.find(".submit-button")
|
#############################################################################
|
||||||
|
## Warning message directive
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
$el.on "submit", "form", submit
|
LightboxAddMembersWarningMessageDirective = () ->
|
||||||
|
return {
|
||||||
|
templateUrl: "admin/lightbox-add-members-no-more=memberships-warning-message.html"
|
||||||
|
scope: {
|
||||||
|
project: "="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return {link: link}
|
module.directive("tgLightboxAddMembersWarningMessage", [LightboxAddMembersWarningMessageDirective])
|
||||||
|
|
||||||
module.directive("tgLbCreateMembers", ["$tgResources", "$rootScope", "$tgConfirm", "$tgLoading",
|
|
||||||
"lightboxService", "$compile", CreateMembersDirective])
|
#############################################################################
|
||||||
|
## Transfer project ownership
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
LbRequestOwnershipDirective = (lightboxService, rs, confirmService, $translate) ->
|
||||||
|
return {
|
||||||
|
link: (scope, el) ->
|
||||||
|
lightboxService.open(el)
|
||||||
|
|
||||||
|
scope.request = () ->
|
||||||
|
scope.loading = true
|
||||||
|
|
||||||
|
rs.projects.transferRequest(scope.projectId).then () ->
|
||||||
|
scope.loading = false
|
||||||
|
|
||||||
|
lightboxService.close(el)
|
||||||
|
|
||||||
|
confirmService.notify("success", $translate.instant("ADMIN.PROJECT_PROFILE.REQUEST_OWNERSHIP_SUCCESS"))
|
||||||
|
|
||||||
|
templateUrl: "common/lightbox/lightbox-request-ownership.html"
|
||||||
|
}
|
||||||
|
|
||||||
|
module.directive('tgLbRequestOwnership', [
|
||||||
|
"lightboxService",
|
||||||
|
"tgResources",
|
||||||
|
"$tgConfirm",
|
||||||
|
"$translate",
|
||||||
|
LbRequestOwnershipDirective])
|
||||||
|
|
||||||
|
class ChangeOwnerLightboxController
|
||||||
|
constructor: (@rs, @lightboxService, @confirm, @translate) ->
|
||||||
|
@.users = []
|
||||||
|
@.q = ""
|
||||||
|
@.commentOpen = false
|
||||||
|
|
||||||
|
limit: 3
|
||||||
|
|
||||||
|
normalizeString: (normalizedString) ->
|
||||||
|
normalizedString = normalizedString.replace("Á", "A").replace("Ä", "A").replace("À", "A")
|
||||||
|
normalizedString = normalizedString.replace("É", "E").replace("Ë", "E").replace("È", "E")
|
||||||
|
normalizedString = normalizedString.replace("Í", "I").replace("Ï", "I").replace("Ì", "I")
|
||||||
|
normalizedString = normalizedString.replace("Ó", "O").replace("Ö", "O").replace("Ò", "O")
|
||||||
|
normalizedString = normalizedString.replace("Ú", "U").replace("Ü", "U").replace("Ù", "U")
|
||||||
|
return normalizedString
|
||||||
|
|
||||||
|
filterUsers: (user) ->
|
||||||
|
username = user.full_name_display.toUpperCase()
|
||||||
|
username = @.normalizeString(username)
|
||||||
|
text = @.q.toUpperCase()
|
||||||
|
text = @.normalizeString(text)
|
||||||
|
|
||||||
|
return _.includes(username, text)
|
||||||
|
|
||||||
|
getUsers: () ->
|
||||||
|
if !@.users.length && !@.q.length
|
||||||
|
users = @.activeUsers
|
||||||
|
else
|
||||||
|
users = @.users
|
||||||
|
|
||||||
|
users = users.slice(0, @.limit)
|
||||||
|
users = _.reject(users, {"selected": true})
|
||||||
|
|
||||||
|
return _.reject(users, {"id": @.currentOwnerId})
|
||||||
|
|
||||||
|
userSearch: () ->
|
||||||
|
@.users = @.activeUsers
|
||||||
|
|
||||||
|
@.selected = _.find(@.users, {"selected": true})
|
||||||
|
|
||||||
|
@.users = _.filter(@.users, @.filterUsers.bind(this)) if @.q
|
||||||
|
|
||||||
|
selectUser: (user) ->
|
||||||
|
@.activeUsers = _.map @.activeUsers, (user) ->
|
||||||
|
user.selected = false
|
||||||
|
|
||||||
|
return user
|
||||||
|
|
||||||
|
user.selected = true
|
||||||
|
|
||||||
|
@.userSearch()
|
||||||
|
|
||||||
|
submit: () ->
|
||||||
|
@.loading = true
|
||||||
|
@rs.projects.transferStart(@.projectId, @.selected.id, @.comment)
|
||||||
|
.then () =>
|
||||||
|
@.loading = false
|
||||||
|
@lightboxService.closeAll()
|
||||||
|
|
||||||
|
title = @translate.instant("ADMIN.PROJECT_PROFILE.CHANGE_OWNER_SUCCESS_TITLE")
|
||||||
|
desc = @translate.instant("ADMIN.PROJECT_PROFILE.CHANGE_OWNER_SUCCESS_DESC")
|
||||||
|
|
||||||
|
@confirm.success(title, desc, {
|
||||||
|
type: "svg",
|
||||||
|
name: "icon-speak-up"
|
||||||
|
})
|
||||||
|
|
||||||
|
ChangeOwnerLightboxController.$inject = [
|
||||||
|
"tgResources",
|
||||||
|
"lightboxService",
|
||||||
|
"$tgConfirm",
|
||||||
|
"$translate"
|
||||||
|
]
|
||||||
|
|
||||||
|
module.controller('ChangeOwnerLightbox', ChangeOwnerLightboxController)
|
||||||
|
|
||||||
|
ChangeOwnerLightboxDirective = (lightboxService, lightboxKeyboardNavigationService, $template, $compile) ->
|
||||||
|
link = (scope, el) ->
|
||||||
|
lightboxService.open(el)
|
||||||
|
|
||||||
|
return {
|
||||||
|
scope: true,
|
||||||
|
controller: "ChangeOwnerLightbox",
|
||||||
|
controllerAs: "vm",
|
||||||
|
bindToController: {
|
||||||
|
currentOwnerId: "=",
|
||||||
|
projectId: "=",
|
||||||
|
activeUsers: "="
|
||||||
|
},
|
||||||
|
templateUrl: "common/lightbox/lightbox-change-owner.html"
|
||||||
|
link:link
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
module.directive("tgLbChangeOwner", ["lightboxService", "lightboxKeyboardNavigationService", "$tgTemplate", "$compile", ChangeOwnerLightboxDirective])
|
||||||
|
|
||||||
|
TransferProjectStartSuccessDirective = (lightboxService) ->
|
||||||
|
link = (scope, el) ->
|
||||||
|
scope.close = () ->
|
||||||
|
lightboxService.close(el)
|
||||||
|
|
||||||
|
lightboxService.open(el)
|
||||||
|
|
||||||
|
return {
|
||||||
|
templateUrl: "common/lightbox/lightbox-transfer-project-start-success.html"
|
||||||
|
link:link
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
module.directive("tgLbTransferProjectStartSuccess", ["lightboxService", TransferProjectStartSuccessDirective])
|
||||||
|
|
|
@ -47,11 +47,13 @@ class MembershipsController extends mixOf(taiga.Controller, taiga.PageMixin, tai
|
||||||
"$tgNavUrls",
|
"$tgNavUrls",
|
||||||
"$tgAnalytics",
|
"$tgAnalytics",
|
||||||
"tgAppMetaService",
|
"tgAppMetaService",
|
||||||
"$translate"
|
"$translate",
|
||||||
|
"$tgAuth"
|
||||||
|
"tgLightboxFactory"
|
||||||
]
|
]
|
||||||
|
|
||||||
constructor: (@scope, @rootscope, @repo, @confirm, @rs, @params, @q, @location, @navUrls, @analytics,
|
constructor: (@scope, @rootscope, @repo, @confirm, @rs, @params, @q, @location, @navUrls, @analytics,
|
||||||
@appMetaService, @translate) ->
|
@appMetaService, @translate, @auth, @lightboxFactory) ->
|
||||||
bindMethods(@)
|
bindMethods(@)
|
||||||
|
|
||||||
@scope.project = {}
|
@scope.project = {}
|
||||||
|
@ -67,21 +69,25 @@ class MembershipsController extends mixOf(taiga.Controller, taiga.PageMixin, tai
|
||||||
promise.then null, @.onInitialDataError.bind(@)
|
promise.then null, @.onInitialDataError.bind(@)
|
||||||
|
|
||||||
@scope.$on "membersform:new:success", =>
|
@scope.$on "membersform:new:success", =>
|
||||||
@.loadMembers()
|
@.loadInitialData()
|
||||||
@analytics.trackEvent("membership", "create", "create memberships on admin", 1)
|
@analytics.trackEvent("membership", "create", "create memberships on admin", 1)
|
||||||
|
|
||||||
loadProject: ->
|
loadProject: ->
|
||||||
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
||||||
if not project.i_am_owner
|
if not project.i_am_admin
|
||||||
@location.path(@navUrls.resolve("permission-denied"))
|
@location.path(@navUrls.resolve("permission-denied"))
|
||||||
|
|
||||||
@scope.projectId = project.id
|
@scope.projectId = project.id
|
||||||
@scope.project = project
|
@scope.project = project
|
||||||
|
|
||||||
|
@scope.canAddUsers = project.max_memberships == null || project.max_memberships > project.total_memberships
|
||||||
|
|
||||||
@scope.$emit('project:loaded', project)
|
@scope.$emit('project:loaded', project)
|
||||||
return project
|
return project
|
||||||
|
|
||||||
loadMembers: ->
|
loadMembers: ->
|
||||||
httpFilters = @.getUrlFilters()
|
httpFilters = @.getUrlFilters()
|
||||||
|
|
||||||
return @rs.memberships.list(@scope.projectId, httpFilters).then (data) =>
|
return @rs.memberships.list(@scope.projectId, httpFilters).then (data) =>
|
||||||
@scope.memberships = _.filter(data.models, (membership) ->
|
@scope.memberships = _.filter(data.models, (membership) ->
|
||||||
membership.user == null or membership.is_user_active)
|
membership.user == null or membership.is_user_active)
|
||||||
|
@ -92,20 +98,41 @@ class MembershipsController extends mixOf(taiga.Controller, taiga.PageMixin, tai
|
||||||
return data
|
return data
|
||||||
|
|
||||||
loadInitialData: ->
|
loadInitialData: ->
|
||||||
promise = @.loadProject()
|
return @.loadProject().then () =>
|
||||||
promise.then =>
|
return @q.all([
|
||||||
@.loadMembers()
|
@.loadMembers(),
|
||||||
|
@auth.refresh()
|
||||||
return promise
|
])
|
||||||
|
|
||||||
getUrlFilters: ->
|
getUrlFilters: ->
|
||||||
filters = _.pick(@location.search(), "page")
|
filters = _.pick(@location.search(), "page")
|
||||||
filters.page = 1 if not filters.page
|
filters.page = 1 if not filters.page
|
||||||
return filters
|
return filters
|
||||||
|
|
||||||
addNewMembers: ->
|
# Actions
|
||||||
@rootscope.$broadcast("membersform:new")
|
|
||||||
|
|
||||||
|
addNewMembers: ->
|
||||||
|
@lightboxFactory.create(
|
||||||
|
'tg-lb-add-members',
|
||||||
|
{
|
||||||
|
"class": "lightbox lightbox-add-member",
|
||||||
|
"project": "project"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"project": @scope.project
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
showLimitUsersWarningMessage: ->
|
||||||
|
title = @translate.instant("ADMIN.MEMBERSHIPS.LIMIT_USERS_WARNING")
|
||||||
|
message = @translate.instant("ADMIN.MEMBERSHIPS.LIMIT_USERS_WARNING_MESSAGE", {
|
||||||
|
members: @scope.project.max_memberships
|
||||||
|
})
|
||||||
|
icon = "/" + window._version + "/svg/icons/team-question.svg"
|
||||||
|
@confirm.success(title, message, {
|
||||||
|
name: icon,
|
||||||
|
type: "img"
|
||||||
|
})
|
||||||
|
|
||||||
module.controller("MembershipsController", MembershipsController)
|
module.controller("MembershipsController", MembershipsController)
|
||||||
|
|
||||||
|
@ -224,6 +251,7 @@ MembershipsRowAvatarDirective = ($log, $template, $translate) ->
|
||||||
email: if member.user_email then member.user_email else member.email
|
email: if member.user_email then member.user_email else member.email
|
||||||
imgurl: if member.photo then member.photo else "/" + window._version + "/images/unnamed.png"
|
imgurl: if member.photo then member.photo else "/" + window._version + "/images/unnamed.png"
|
||||||
pending: if !member.is_user_active then pending else ""
|
pending: if !member.is_user_active then pending else ""
|
||||||
|
isOwner: member.is_owner
|
||||||
}
|
}
|
||||||
|
|
||||||
html = template(ctx)
|
html = template(ctx)
|
||||||
|
@ -252,6 +280,18 @@ MembershipsRowAdminCheckboxDirective = ($log, $repo, $confirm, $template, $compi
|
||||||
template = $template.get("admin/admin-memberships-row-checkbox.html", true)
|
template = $template.get("admin/admin-memberships-row-checkbox.html", true)
|
||||||
|
|
||||||
link = ($scope, $el, $attrs) ->
|
link = ($scope, $el, $attrs) ->
|
||||||
|
$scope.$on "$destroy", ->
|
||||||
|
$el.off()
|
||||||
|
|
||||||
|
if not $attrs.tgMembershipsRowAdminCheckbox?
|
||||||
|
return $log.error "MembershipsRowAdminCheckboxDirective: the directive need a member"
|
||||||
|
|
||||||
|
member = $scope.$eval($attrs.tgMembershipsRowAdminCheckbox)
|
||||||
|
|
||||||
|
if member.is_owner
|
||||||
|
$el.find(".js-check").remove()
|
||||||
|
return
|
||||||
|
|
||||||
render = (member) ->
|
render = (member) ->
|
||||||
ctx = {inputId: "is-admin-#{member.id}"}
|
ctx = {inputId: "is-admin-#{member.id}"}
|
||||||
|
|
||||||
|
@ -260,30 +300,23 @@ MembershipsRowAdminCheckboxDirective = ($log, $repo, $confirm, $template, $compi
|
||||||
|
|
||||||
$el.html(html)
|
$el.html(html)
|
||||||
|
|
||||||
if not $attrs.tgMembershipsRowAdminCheckbox?
|
|
||||||
return $log.error "MembershipsRowAdminCheckboxDirective: the directive need a member"
|
|
||||||
|
|
||||||
member = $scope.$eval($attrs.tgMembershipsRowAdminCheckbox)
|
|
||||||
html = render(member)
|
|
||||||
|
|
||||||
if member.is_owner
|
|
||||||
$el.find(":checkbox").prop("checked", true)
|
|
||||||
|
|
||||||
$el.on "click", ":checkbox", (event) =>
|
$el.on "click", ":checkbox", (event) =>
|
||||||
onSuccess = ->
|
onSuccess = ->
|
||||||
$confirm.notify("success")
|
$confirm.notify("success")
|
||||||
|
|
||||||
onError = (data) ->
|
onError = (data) ->
|
||||||
member.revert()
|
member.revert()
|
||||||
$el.find(":checkbox").prop("checked", member.is_owner)
|
$el.find(":checkbox").prop("checked", member.is_admin)
|
||||||
$confirm.notify("error", data.is_owner[0])
|
$confirm.notify("error", data.is_admin[0])
|
||||||
|
|
||||||
target = angular.element(event.currentTarget)
|
target = angular.element(event.currentTarget)
|
||||||
member.is_owner = target.prop("checked")
|
member.is_admin = target.prop("checked")
|
||||||
$repo.save(member).then(onSuccess, onError)
|
$repo.save(member).then(onSuccess, onError)
|
||||||
|
|
||||||
$scope.$on "$destroy", ->
|
html = render(member)
|
||||||
$el.off()
|
|
||||||
|
if member.is_admin
|
||||||
|
$el.find(":checkbox").prop("checked", true)
|
||||||
|
|
||||||
return {link: link}
|
return {link: link}
|
||||||
|
|
||||||
|
@ -352,14 +385,17 @@ module.directive("tgMembershipsRowRoleSelector", ["$log", "$tgRepo", "$tgConfirm
|
||||||
## Member Actions Directive
|
## Member Actions Directive
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
|
||||||
MembershipsRowActionsDirective = ($log, $repo, $rs, $confirm, $compile, $translate) ->
|
MembershipsRowActionsDirective = ($log, $repo, $rs, $confirm, $compile, $translate, $location,
|
||||||
|
$navUrls, lightboxFactory) ->
|
||||||
activedTemplate = """
|
activedTemplate = """
|
||||||
<div class="active"
|
<div class="active"
|
||||||
translate="ADMIN.MEMBERSHIP.STATUS_ACTIVE">
|
translate="ADMIN.MEMBERSHIP.STATUS_ACTIVE">
|
||||||
</div>
|
</div>
|
||||||
<a class="delete" href=""
|
<a class="delete" href=""
|
||||||
title="{{ 'ADMIN.MEMBERSHIP.DELETE_MEMBER' | translate }}">
|
title="{{ 'ADMIN.MEMBERSHIP.DELETE_MEMBER' | translate }}">
|
||||||
<span class="icon icon-delete"></span>
|
<svg class="icon icon-trash">
|
||||||
|
<use xlink:href="#icon-trash">
|
||||||
|
</svg>
|
||||||
</a>
|
</a>
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
@ -370,7 +406,9 @@ MembershipsRowActionsDirective = ($log, $repo, $rs, $confirm, $compile, $transla
|
||||||
</a>
|
</a>
|
||||||
<a class="delete" href=""
|
<a class="delete" href=""
|
||||||
title="{{ 'ADMIN.MEMBERSHIP.DELETE_MEMBER' | translate }}">
|
title="{{ 'ADMIN.MEMBERSHIP.DELETE_MEMBER' | translate }}">
|
||||||
<span class="icon icon-delete"></span>
|
<svg class="icon icon-trash">
|
||||||
|
<use xlink:href="#icon-trash">
|
||||||
|
</svg>
|
||||||
</a>
|
</a>
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
@ -403,9 +441,7 @@ MembershipsRowActionsDirective = ($log, $repo, $rs, $confirm, $compile, $transla
|
||||||
|
|
||||||
$rs.memberships.resendInvitation($scope.member.id).then(onSuccess, onError)
|
$rs.memberships.resendInvitation($scope.member.id).then(onSuccess, onError)
|
||||||
|
|
||||||
$el.on "click", ".delete", (event) ->
|
leaveConfirm = () ->
|
||||||
event.preventDefault()
|
|
||||||
|
|
||||||
title = $translate.instant("ADMIN.MEMBERSHIP.DELETE_MEMBER")
|
title = $translate.instant("ADMIN.MEMBERSHIP.DELETE_MEMBER")
|
||||||
defaultMsg = $translate.instant("ADMIN.MEMBERSHIP.DEFAULT_DELETE_MESSAGE", {email: member.email})
|
defaultMsg = $translate.instant("ADMIN.MEMBERSHIP.DEFAULT_DELETE_MESSAGE", {email: member.email})
|
||||||
message = if member.user then member.full_name else defaultMsg
|
message = if member.user then member.full_name else defaultMsg
|
||||||
|
@ -413,28 +449,60 @@ MembershipsRowActionsDirective = ($log, $repo, $rs, $confirm, $compile, $transla
|
||||||
$confirm.askOnDelete(title, message).then (askResponse) ->
|
$confirm.askOnDelete(title, message).then (askResponse) ->
|
||||||
onSuccess = =>
|
onSuccess = =>
|
||||||
askResponse.finish()
|
askResponse.finish()
|
||||||
|
if member.user != $scope.user.id
|
||||||
if $scope.page > 1 && ($scope.count - 1) <= $scope.paginatedBy
|
if $scope.page > 1 && ($scope.count - 1) <= $scope.paginatedBy
|
||||||
$ctrl.selectFilter("page", $scope.page - 1)
|
$ctrl.selectFilter("page", $scope.page - 1)
|
||||||
|
|
||||||
$ctrl.loadMembers()
|
$ctrl.loadInitialData()
|
||||||
|
else
|
||||||
|
$location.path($navUrls.resolve("home"))
|
||||||
|
|
||||||
text = $translate.instant("ADMIN.MEMBERSHIP.SUCCESS_DELETE")
|
text = $translate.instant("ADMIN.MEMBERSHIP.SUCCESS_DELETE", {message: message})
|
||||||
$confirm.notify("success", null, text)
|
$confirm.notify("success", text, null, 5000)
|
||||||
|
|
||||||
onError = =>
|
onError = =>
|
||||||
askResponse.finish(false)
|
askResponse.finish(false)
|
||||||
|
|
||||||
text = $translate.instant("ADMIN.MEMBERSHIP.ERROR_DELETE", {message: message})
|
text = $translate.instant("ADMIN.MEMBERSHIP.ERROR_DELETE", {message: message})
|
||||||
$confirm.notify("error", null, text)
|
$confirm.notify("error", text)
|
||||||
|
|
||||||
$repo.remove(member).then(onSuccess, onError)
|
$repo.remove(member).then(onSuccess, onError)
|
||||||
|
|
||||||
|
$el.on "click", ".delete", (event) ->
|
||||||
|
event.preventDefault()
|
||||||
|
|
||||||
|
if $scope.project.owner.id == member.user
|
||||||
|
isCurrentUser = $scope.user.id == member.user
|
||||||
|
|
||||||
|
lightboxFactory.create("tg-lightbox-leave-project-warning", {
|
||||||
|
class: "lightbox lightbox-leave-project-warning"
|
||||||
|
}, {
|
||||||
|
isCurrentUser: isCurrentUser,
|
||||||
|
project: $scope.project
|
||||||
|
})
|
||||||
|
else
|
||||||
|
leaveConfirm()
|
||||||
|
|
||||||
$scope.$on "$destroy", ->
|
$scope.$on "$destroy", ->
|
||||||
$el.off()
|
$el.off()
|
||||||
|
|
||||||
return {link: link}
|
return {link: link}
|
||||||
|
|
||||||
|
|
||||||
module.directive("tgMembershipsRowActions", ["$log", "$tgRepo", "$tgResources", "$tgConfirm", "$compile",
|
module.directive("tgMembershipsRowActions", ["$log", "$tgRepo", "$tgResources", "$tgConfirm", "$compile",
|
||||||
"$translate", MembershipsRowActionsDirective])
|
"$translate", "$tgLocation", "$tgNavUrls", "tgLightboxFactory",
|
||||||
|
MembershipsRowActionsDirective])
|
||||||
|
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
## No more memberships explanation directive
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
NoMoreMembershipsExplanationDirective = () ->
|
||||||
|
return {
|
||||||
|
templateUrl: "admin/no-more-memberships-explanation.html"
|
||||||
|
scope: {
|
||||||
|
project: "="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.directive("tgNoMoreMembershipsExplanation", [NoMoreMembershipsExplanationDirective])
|
||||||
|
|
|
@ -51,11 +51,13 @@ class ProjectProfileController extends mixOf(taiga.Controller, taiga.PageMixin)
|
||||||
"$tgLocation",
|
"$tgLocation",
|
||||||
"$tgNavUrls",
|
"$tgNavUrls",
|
||||||
"tgAppMetaService",
|
"tgAppMetaService",
|
||||||
"$translate"
|
"$translate",
|
||||||
|
"$tgAuth",
|
||||||
|
"tgCurrentUserService"
|
||||||
]
|
]
|
||||||
|
|
||||||
constructor: (@scope, @rootscope, @repo, @confirm, @rs, @params, @q, @location, @navUrls,
|
constructor: (@scope, @rootscope, @repo, @confirm, @rs, @params, @q, @location, @navUrls,
|
||||||
@appMetaService, @translate) ->
|
@appMetaService, @translate, @tgAuth, @currentUserService) ->
|
||||||
@scope.project = {}
|
@scope.project = {}
|
||||||
|
|
||||||
promise = @.loadInitialData()
|
promise = @.loadInitialData()
|
||||||
|
@ -67,6 +69,8 @@ class ProjectProfileController extends mixOf(taiga.Controller, taiga.PageMixin)
|
||||||
description = @scope.project.description
|
description = @scope.project.description
|
||||||
@appMetaService.setAll(title, description)
|
@appMetaService.setAll(title, description)
|
||||||
|
|
||||||
|
@.fillUsersAndRoles(@scope.project.members, @scope.project.roles)
|
||||||
|
|
||||||
promise.then null, @.onInitialDataError.bind(@)
|
promise.then null, @.onInitialDataError.bind(@)
|
||||||
|
|
||||||
@scope.$on "project:loaded", =>
|
@scope.$on "project:loaded", =>
|
||||||
|
@ -78,7 +82,7 @@ class ProjectProfileController extends mixOf(taiga.Controller, taiga.PageMixin)
|
||||||
|
|
||||||
loadProject: ->
|
loadProject: ->
|
||||||
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
||||||
if not project.i_am_owner
|
if not project.i_am_admin
|
||||||
@location.path(@navUrls.resolve("permission-denied"))
|
@location.path(@navUrls.resolve("permission-denied"))
|
||||||
|
|
||||||
@scope.projectId = project.id
|
@scope.projectId = project.id
|
||||||
|
@ -94,8 +98,10 @@ class ProjectProfileController extends mixOf(taiga.Controller, taiga.PageMixin)
|
||||||
return project
|
return project
|
||||||
|
|
||||||
loadInitialData: ->
|
loadInitialData: ->
|
||||||
promise = @.loadProject()
|
return @q.all([
|
||||||
return promise
|
@.loadProject(),
|
||||||
|
@tgAuth.refresh()
|
||||||
|
])
|
||||||
|
|
||||||
openDeleteLightbox: ->
|
openDeleteLightbox: ->
|
||||||
@rootscope.$broadcast("deletelightbox:new", @scope.project)
|
@rootscope.$broadcast("deletelightbox:new", @scope.project)
|
||||||
|
@ -198,41 +204,51 @@ ProjectModulesDirective = ($repo, $confirm, $loading, projectService) ->
|
||||||
link = ($scope, $el, $attrs) ->
|
link = ($scope, $el, $attrs) ->
|
||||||
submit = =>
|
submit = =>
|
||||||
form = $el.find("form").checksley()
|
form = $el.find("form").checksley()
|
||||||
|
form.initializeFields() # Need to reset the form constrains
|
||||||
|
form.reset() # Need to reset the form constrains
|
||||||
return if not form.validate()
|
return if not form.validate()
|
||||||
|
|
||||||
target = angular.element(".admin-functionalities .submit-button")
|
|
||||||
currentLoading = $loading()
|
|
||||||
.target(target)
|
|
||||||
.start()
|
|
||||||
|
|
||||||
promise = $repo.save($scope.project)
|
promise = $repo.save($scope.project)
|
||||||
promise.then ->
|
promise.then ->
|
||||||
currentLoading.finish()
|
|
||||||
$confirm.notify("success")
|
|
||||||
$scope.$emit("project:loaded", $scope.project)
|
$scope.$emit("project:loaded", $scope.project)
|
||||||
|
$confirm.notify("success")
|
||||||
|
|
||||||
projectService.fetchProject()
|
projectService.fetchProject()
|
||||||
|
|
||||||
promise.then null, (data) ->
|
promise.then null, (data) ->
|
||||||
currentLoading.finish()
|
form.setErrors(data)
|
||||||
|
if data._error_message
|
||||||
$confirm.notify("error", data._error_message)
|
$confirm.notify("error", data._error_message)
|
||||||
|
|
||||||
|
$el.on "change", ".module-activation.module-direct-active input", (event) ->
|
||||||
|
event.preventDefault()
|
||||||
|
submit()
|
||||||
|
|
||||||
$el.on "submit", "form", (event) ->
|
$el.on "submit", "form", (event) ->
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
submit()
|
submit()
|
||||||
|
|
||||||
$el.on "click", ".admin-functionalities a.button-green", (event) ->
|
$el.on "click", ".icon-save", (event) ->
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
submit()
|
submit()
|
||||||
|
|
||||||
$scope.$watch "isVideoconferenceActivated", (isVideoconferenceActivated) ->
|
$el.on "keydown", ".videoconference-attributes input", (e) ->
|
||||||
if isVideoconferenceActivated
|
return e.which != 32
|
||||||
$el.find(".videoconference-attributes").removeClass("hidden")
|
|
||||||
else
|
$scope.$watch "project.videoconferences", (newVal, oldVal) ->
|
||||||
$el.find(".videoconference-attributes").addClass("hidden")
|
# Reset videoconferences_extra_data if videoconference system change
|
||||||
|
if newVal? and oldVal? and newVal != oldVal
|
||||||
|
$scope.project.videoconferences_extra_data = ""
|
||||||
|
|
||||||
|
$scope.$watch "isVideoconferenceActivated", (newValue, oldValue) ->
|
||||||
|
if newValue == false
|
||||||
|
# Reset videoconference attributes
|
||||||
$scope.project.videoconferences = null
|
$scope.project.videoconferences = null
|
||||||
$scope.project.videoconferences_extra_data = ""
|
$scope.project.videoconferences_extra_data = ""
|
||||||
|
|
||||||
|
# Save when videoconference is desactivated
|
||||||
|
submit() if oldValue == true
|
||||||
|
|
||||||
$scope.$watch "project", (project) ->
|
$scope.$watch "project", (project) ->
|
||||||
if project.videoconferences?
|
if project.videoconferences?
|
||||||
$scope.isVideoconferenceActivated = true
|
$scope.isVideoconferenceActivated = true
|
||||||
|
@ -510,3 +526,60 @@ ProjectLogoModelDirective = ($parse) ->
|
||||||
return {link:link}
|
return {link:link}
|
||||||
|
|
||||||
module.directive('tgProjectLogoModel', ['$parse', ProjectLogoModelDirective])
|
module.directive('tgProjectLogoModel', ['$parse', ProjectLogoModelDirective])
|
||||||
|
|
||||||
|
|
||||||
|
AdminProjectRestrictionsDirective = () ->
|
||||||
|
return {
|
||||||
|
scope: {
|
||||||
|
"project": "="
|
||||||
|
},
|
||||||
|
templateUrl: "admin/admin-project-restrictions.html"
|
||||||
|
}
|
||||||
|
|
||||||
|
module.directive('tgAdminProjectRestrictions', [AdminProjectRestrictionsDirective])
|
||||||
|
|
||||||
|
AdminProjectRequestOwnershipDirective = (lightboxFactory) ->
|
||||||
|
return {
|
||||||
|
link: (scope) ->
|
||||||
|
scope.requestOwnership = () ->
|
||||||
|
lightboxFactory.create("tg-lb-request-ownership", {
|
||||||
|
"class": "lightbox lightbox-request-ownership"
|
||||||
|
}, {
|
||||||
|
projectId: scope.projectId
|
||||||
|
})
|
||||||
|
|
||||||
|
scope: {
|
||||||
|
"projectId": "=",
|
||||||
|
"owner": "="
|
||||||
|
},
|
||||||
|
templateUrl: "admin/admin-project-request-ownership.html"
|
||||||
|
}
|
||||||
|
|
||||||
|
module.directive('tgAdminProjectRequestOwnership', ["tgLightboxFactory", AdminProjectRequestOwnershipDirective])
|
||||||
|
|
||||||
|
AdminProjectChangeOwnerDirective = (lightboxFactory) ->
|
||||||
|
return {
|
||||||
|
link: (scope) ->
|
||||||
|
scope.changeOwner = () ->
|
||||||
|
lightboxFactory.create("tg-lb-change-owner", {
|
||||||
|
"class": "lightbox lightbox-select-user",
|
||||||
|
"project-id": "projectId",
|
||||||
|
"active-users": "activeUsers",
|
||||||
|
"current-owner-id": "currentOwnerId"
|
||||||
|
}, {
|
||||||
|
projectId: scope.projectId,
|
||||||
|
activeUsers: scope.activeUsers,
|
||||||
|
currentOwnerId: scope.owner.id,
|
||||||
|
members: scope.members
|
||||||
|
})
|
||||||
|
|
||||||
|
scope: {
|
||||||
|
"activeUsers": "="
|
||||||
|
"projectId": "="
|
||||||
|
"owner": "="
|
||||||
|
"members": "="
|
||||||
|
},
|
||||||
|
templateUrl: "admin/admin-project-change-owner.html"
|
||||||
|
}
|
||||||
|
|
||||||
|
module.directive('tgAdminProjectChangeOwner', ["tgLightboxFactory", AdminProjectChangeOwnerDirective])
|
||||||
|
|
|
@ -73,7 +73,7 @@ class ProjectValuesSectionController extends mixOf(taiga.Controller, taiga.PageM
|
||||||
|
|
||||||
loadProject: ->
|
loadProject: ->
|
||||||
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
||||||
if not project.i_am_owner
|
if not project.i_am_admin
|
||||||
@location.path(@navUrls.resolve("permission-denied"))
|
@location.path(@navUrls.resolve("permission-denied"))
|
||||||
|
|
||||||
@scope.projectId = project.id
|
@scope.projectId = project.id
|
||||||
|
@ -108,7 +108,7 @@ class ProjectValuesController extends taiga.Controller
|
||||||
loadValues: =>
|
loadValues: =>
|
||||||
return @rs[@scope.resource].listValues(@scope.projectId, @scope.type).then (values) =>
|
return @rs[@scope.resource].listValues(@scope.projectId, @scope.type).then (values) =>
|
||||||
@scope.values = values
|
@scope.values = values
|
||||||
@scope.maxValueOrder = _.max(values, "order").order
|
@scope.maxValueOrder = _.maxBy(values, "order").order
|
||||||
return values
|
return values
|
||||||
|
|
||||||
moveValue: (ctx, itemValue, itemIndex) =>
|
moveValue: (ctx, itemValue, itemIndex) =>
|
||||||
|
@ -381,6 +381,7 @@ module.directive("tgColorSelection", ColorSelectionDirective)
|
||||||
TEXT_TYPE = "text"
|
TEXT_TYPE = "text"
|
||||||
MULTILINE_TYPE = "multiline"
|
MULTILINE_TYPE = "multiline"
|
||||||
DATE_TYPE = "date"
|
DATE_TYPE = "date"
|
||||||
|
URL_TYPE = "url"
|
||||||
|
|
||||||
|
|
||||||
TYPE_CHOICES = [
|
TYPE_CHOICES = [
|
||||||
|
@ -395,6 +396,10 @@ TYPE_CHOICES = [
|
||||||
{
|
{
|
||||||
key: DATE_TYPE,
|
key: DATE_TYPE,
|
||||||
name: "ADMIN.CUSTOM_FIELDS.FIELD_TYPE_DATE"
|
name: "ADMIN.CUSTOM_FIELDS.FIELD_TYPE_DATE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: URL_TYPE,
|
||||||
|
name: "ADMIN.CUSTOM_FIELDS.FIELD_TYPE_URL"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -436,7 +441,7 @@ class ProjectCustomAttributesController extends mixOf(taiga.Controller, taiga.Pa
|
||||||
loadCustomAttributes: =>
|
loadCustomAttributes: =>
|
||||||
return @rs.customAttributes[@scope.type].list(@scope.projectId).then (customAttributes) =>
|
return @rs.customAttributes[@scope.type].list(@scope.projectId).then (customAttributes) =>
|
||||||
@scope.customAttributes = customAttributes
|
@scope.customAttributes = customAttributes
|
||||||
@scope.maxOrder = _.max(customAttributes, "order").order
|
@scope.maxOrder = _.maxBy(customAttributes, "order").order
|
||||||
return customAttributes
|
return customAttributes
|
||||||
|
|
||||||
createCustomAttribute: (attrValues) =>
|
createCustomAttribute: (attrValues) =>
|
||||||
|
@ -555,7 +560,6 @@ ProjectCustomAttributesDirective = ($log, $confirm, animationFrame, $translate)
|
||||||
|
|
||||||
$el.on "click", ".js-add-custom-field-button", (event) ->
|
$el.on "click", ".js-add-custom-field-button", (event) ->
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
|
|
||||||
showCreateForm()
|
showCreateForm()
|
||||||
|
|
||||||
$el.on "click", ".js-create-custom-field-button", debounce 2000, (event) ->
|
$el.on "click", ".js-create-custom-field-button", debounce 2000, (event) ->
|
||||||
|
@ -567,7 +571,6 @@ ProjectCustomAttributesDirective = ($log, $confirm, animationFrame, $translate)
|
||||||
|
|
||||||
$el.on "click", ".js-cancel-new-custom-field-button", (event) ->
|
$el.on "click", ".js-cancel-new-custom-field-button", (event) ->
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
|
|
||||||
cancelCreate()
|
cancelCreate()
|
||||||
|
|
||||||
$el.on "keyup", ".js-new-custom-field input", (event) ->
|
$el.on "keyup", ".js-new-custom-field input", (event) ->
|
||||||
|
|
|
@ -70,7 +70,7 @@ class RolesController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fil
|
||||||
|
|
||||||
loadProject: ->
|
loadProject: ->
|
||||||
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
||||||
if not project.i_am_owner
|
if not project.i_am_admin
|
||||||
@location.path(@navUrls.resolve("permission-denied"))
|
@location.path(@navUrls.resolve("permission-denied"))
|
||||||
|
|
||||||
@scope.projectId = project.id
|
@scope.projectId = project.id
|
||||||
|
@ -193,7 +193,7 @@ EditRoleDirective = ($repo, $confirm) ->
|
||||||
|
|
||||||
toggleView()
|
toggleView()
|
||||||
|
|
||||||
$el.on "click", "a.icon-edit", ->
|
$el.on "click", ".edit-value", ->
|
||||||
toggleView()
|
toggleView()
|
||||||
$el.find("input").focus()
|
$el.find("input").focus()
|
||||||
$el.find("input").val($scope.role.name)
|
$el.find("input").val($scope.role.name)
|
||||||
|
@ -251,7 +251,7 @@ NewRoleDirective = ($tgrepo, $confirm) ->
|
||||||
project: $scope.projectId
|
project: $scope.projectId
|
||||||
name: target.val()
|
name: target.val()
|
||||||
permissions: DEFAULT_PERMISSIONS
|
permissions: DEFAULT_PERMISSIONS
|
||||||
order: _.max($scope.roles, (r) -> r.order).order + 1
|
order: _.maxBy($scope.roles, (r) -> r.order).order + 1
|
||||||
computable: false
|
computable: false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -292,7 +292,9 @@ RolePermissionsDirective = ($rootscope, $repo, $confirm, $compile) ->
|
||||||
title="{{ '<%- permission.name %>' | translate }}"></div>
|
title="{{ '<%- permission.name %>' | translate }}"></div>
|
||||||
<% }) %>
|
<% }) %>
|
||||||
</div>
|
</div>
|
||||||
<div class="icon icon-arrow-bottom"></div>
|
<svg class="icon icon-arrow-right">
|
||||||
|
<use xlink:href="#icon-arrow-right">
|
||||||
|
</svg>
|
||||||
""")
|
""")
|
||||||
|
|
||||||
categoryTemplate = _.template("""
|
categoryTemplate = _.template("""
|
||||||
|
@ -431,6 +433,7 @@ RolePermissionsDirective = ($rootscope, $repo, $confirm, $compile) ->
|
||||||
$el.on "click", ".resume", (event) ->
|
$el.on "click", ".resume", (event) ->
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
target = angular.element(event.currentTarget)
|
target = angular.element(event.currentTarget)
|
||||||
|
target.toggleClass("open-drawer")
|
||||||
target.next().toggleClass("open")
|
target.next().toggleClass("open")
|
||||||
|
|
||||||
$el.on "change", ".category-item input", (event) ->
|
$el.on "change", ".category-item input", (event) ->
|
||||||
|
|
|
@ -71,7 +71,7 @@ class WebhooksController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.
|
||||||
|
|
||||||
loadProject: ->
|
loadProject: ->
|
||||||
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
||||||
if not project.i_am_owner
|
if not project.i_am_admin
|
||||||
@location.path(@navUrls.resolve("permission-denied"))
|
@location.path(@navUrls.resolve("permission-denied"))
|
||||||
|
|
||||||
@scope.projectId = project.id
|
@scope.projectId = project.id
|
||||||
|
@ -103,7 +103,7 @@ WebhookDirective = ($rs, $repo, $confirm, $loading, $translate) ->
|
||||||
$rs.webhooklogs.list(webhook.id).then (webhooklogs) =>
|
$rs.webhooklogs.list(webhook.id).then (webhooklogs) =>
|
||||||
for log in webhooklogs
|
for log in webhooklogs
|
||||||
log.validStatus = 200 <= log.status < 300
|
log.validStatus = 200 <= log.status < 300
|
||||||
log.prettySentHeaders = _.map(_.pairs(log.request_headers), ([header, value]) -> "#{header}: #{value}").join("\n")
|
log.prettySentHeaders = _.map(_.toPairs(log.request_headers), ([header, value]) -> "#{header}: #{value}").join("\n")
|
||||||
log.prettySentData = JSON.stringify(log.request_data)
|
log.prettySentData = JSON.stringify(log.request_data)
|
||||||
log.prettyDate = moment(log.created).format(prettyDate)
|
log.prettyDate = moment(log.created).format(prettyDate)
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,26 @@ debounce = @.taiga.debounce
|
||||||
|
|
||||||
module = angular.module("taigaAuth", ["taigaResources"])
|
module = angular.module("taigaAuth", ["taigaResources"])
|
||||||
|
|
||||||
|
class LoginPage
|
||||||
|
@.$inject = [
|
||||||
|
'tgCurrentUserService',
|
||||||
|
'$location',
|
||||||
|
'$tgNavUrls',
|
||||||
|
'$routeParams'
|
||||||
|
]
|
||||||
|
|
||||||
|
constructor: (currentUserService, $location, $navUrls, $routeParams) ->
|
||||||
|
if currentUserService.isAuthenticated()
|
||||||
|
url = $navUrls.resolve("home")
|
||||||
|
if $routeParams['next']
|
||||||
|
url = $routeParams['next']
|
||||||
|
$location.search('next', null)
|
||||||
|
|
||||||
|
$location.path(url)
|
||||||
|
|
||||||
|
|
||||||
|
module.controller('LoginPage', LoginPage)
|
||||||
|
|
||||||
#############################################################################
|
#############################################################################
|
||||||
## Authentication Service
|
## Authentication Service
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
@ -122,6 +142,17 @@ class AuthService extends taiga.Service
|
||||||
return false
|
return false
|
||||||
|
|
||||||
## Http interface
|
## Http interface
|
||||||
|
refresh: () ->
|
||||||
|
url = @urls.resolve("user-me")
|
||||||
|
|
||||||
|
return @http.get(url).then (data, status) =>
|
||||||
|
user = data.data
|
||||||
|
user.token = @.getUser().auth_token
|
||||||
|
|
||||||
|
user = @model.make_model("users", user)
|
||||||
|
|
||||||
|
@.setUser(user)
|
||||||
|
return user
|
||||||
|
|
||||||
login: (data, type) ->
|
login: (data, type) ->
|
||||||
url = @urls.resolve("auth")
|
url = @urls.resolve("auth")
|
||||||
|
@ -214,7 +245,6 @@ PublicRegisterMessageDirective = ($config, $navUrls, $routeParams, templates) ->
|
||||||
url = $navUrls.resolve("register")
|
url = $navUrls.resolve("register")
|
||||||
if $routeParams['next'] and $routeParams['next'] != $navUrls.resolve("register")
|
if $routeParams['next'] and $routeParams['next'] != $navUrls.resolve("register")
|
||||||
nextUrl = encodeURIComponent($routeParams['next'])
|
nextUrl = encodeURIComponent($routeParams['next'])
|
||||||
console.log "-----", nextUrl
|
|
||||||
url += "?next=#{nextUrl}"
|
url += "?next=#{nextUrl}"
|
||||||
|
|
||||||
return template({url:url})
|
return template({url:url})
|
||||||
|
@ -287,16 +317,11 @@ RegisterDirective = ($auth, $confirm, $location, $navUrls, $config, $routeParams
|
||||||
$scope.data = {}
|
$scope.data = {}
|
||||||
form = $el.find("form").checksley({onlyOneErrorElement: true})
|
form = $el.find("form").checksley({onlyOneErrorElement: true})
|
||||||
|
|
||||||
if $routeParams['next'] and $routeParams['next'] != $navUrls.resolve("register")
|
|
||||||
$scope.nextUrl = decodeURIComponent($routeParams['next'])
|
|
||||||
else
|
|
||||||
$scope.nextUrl = $navUrls.resolve("home")
|
$scope.nextUrl = $navUrls.resolve("home")
|
||||||
|
|
||||||
onSuccessSubmit = (response) ->
|
onSuccessSubmit = (response) ->
|
||||||
$analytics.trackEvent("auth", "register", "user registration", 1)
|
$analytics.trackEvent("auth", "register", "user registration", 1)
|
||||||
|
|
||||||
$confirm.notify("success", $translate.instant("LOGIN_FORM.SUCCESS"))
|
|
||||||
|
|
||||||
$location.url($scope.nextUrl)
|
$location.url($scope.nextUrl)
|
||||||
|
|
||||||
onErrorSubmit = (response) ->
|
onErrorSubmit = (response) ->
|
||||||
|
@ -340,8 +365,10 @@ ForgotPasswordDirective = ($auth, $confirm, $location, $navUrls, $translate) ->
|
||||||
onSuccessSubmit = (response) ->
|
onSuccessSubmit = (response) ->
|
||||||
$location.path($navUrls.resolve("login"))
|
$location.path($navUrls.resolve("login"))
|
||||||
|
|
||||||
text = $translate.instant("FORGOT_PASSWORD_FORM.SUCCESS")
|
title = $translate.instant("FORGOT_PASSWORD_FORM.SUCCESS_TITLE")
|
||||||
$confirm.success(text)
|
message = $translate.instant("FORGOT_PASSWORD_FORM.SUCCESS_TEXT")
|
||||||
|
|
||||||
|
$confirm.success(title, message)
|
||||||
|
|
||||||
onErrorSubmit = (response) ->
|
onErrorSubmit = (response) ->
|
||||||
text = $translate.instant("FORGOT_PASSWORD_FORM.ERROR")
|
text = $translate.instant("FORGOT_PASSWORD_FORM.ERROR")
|
||||||
|
|
|
@ -36,8 +36,11 @@ CreateEditSprint = ($repo, $confirm, $rs, $rootscope, lightboxService, $loading,
|
||||||
link = ($scope, $el, attrs) ->
|
link = ($scope, $el, attrs) ->
|
||||||
hasErrors = false
|
hasErrors = false
|
||||||
createSprint = true
|
createSprint = true
|
||||||
|
form = null
|
||||||
|
|
||||||
resetSprint = () ->
|
resetSprint = () ->
|
||||||
|
form.reset() if form
|
||||||
|
|
||||||
$scope.sprint = {
|
$scope.sprint = {
|
||||||
project: null
|
project: null
|
||||||
name: null
|
name: null
|
||||||
|
@ -201,7 +204,7 @@ CreateEditSprint = ($repo, $confirm, $rs, $rootscope, lightboxService, $loading,
|
||||||
|
|
||||||
$el.on "submit", "form", submit
|
$el.on "submit", "form", submit
|
||||||
|
|
||||||
$el.on "click", ".delete-sprint .icon-delete", (event) ->
|
$el.on "click", ".delete-sprint", (event) ->
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
remove()
|
remove()
|
||||||
|
|
||||||
|
|
|
@ -563,7 +563,7 @@ class BacklogController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.F
|
||||||
|
|
||||||
currentLoading = @loading()
|
currentLoading = @loading()
|
||||||
.target(target)
|
.target(target)
|
||||||
.removeClasses("icon-edit")
|
.removeClasses("edit-story")
|
||||||
.timeout(200)
|
.timeout(200)
|
||||||
.start()
|
.start()
|
||||||
|
|
||||||
|
@ -959,7 +959,7 @@ UsPointsDirective = ($tgEstimationsService, $repo, $tgTemplate) ->
|
||||||
$el.find(".pop-role").popover().open(() -> $(this).remove())
|
$el.find(".pop-role").popover().open(() -> $(this).remove())
|
||||||
|
|
||||||
bindClickElements = () ->
|
bindClickElements = () ->
|
||||||
$el.on "click", "a.us-points span", (event) ->
|
$el.on "click", "a.us-points", (event) ->
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
event.stopPropagation()
|
event.stopPropagation()
|
||||||
us = $scope.$eval($attrs.tgBacklogUsPoints)
|
us = $scope.$eval($attrs.tgBacklogUsPoints)
|
||||||
|
|
|
@ -40,7 +40,7 @@ BacklogSprintDirective = ($repo, $rootscope) ->
|
||||||
|
|
||||||
toggleSprint = ($el) =>
|
toggleSprint = ($el) =>
|
||||||
sprintTable = $el.find(".sprint-table")
|
sprintTable = $el.find(".sprint-table")
|
||||||
sprintArrow = $el.find(".icon-arrow-up")
|
sprintArrow = $el.find(".compact-sprint")
|
||||||
|
|
||||||
sprintArrow.toggleClass('active')
|
sprintArrow.toggleClass('active')
|
||||||
sprintTable.toggleClass('open')
|
sprintTable.toggleClass('open')
|
||||||
|
@ -55,7 +55,7 @@ BacklogSprintDirective = ($repo, $rootscope) ->
|
||||||
toggleSprint($el)
|
toggleSprint($el)
|
||||||
|
|
||||||
# Event Handlers
|
# Event Handlers
|
||||||
$el.on "click", ".sprint-name > .icon-arrow-up", (event) ->
|
$el.on "click", ".sprint-name > .compact-sprint", (event) ->
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
|
|
||||||
toggleSprint($el)
|
toggleSprint($el)
|
||||||
|
|
|
@ -67,6 +67,7 @@ urls = {
|
||||||
"profile": "/profile"
|
"profile": "/profile"
|
||||||
"user-profile": "/profile/:username"
|
"user-profile": "/profile/:username"
|
||||||
|
|
||||||
|
"blocked-project": "/blocked-project/:project"
|
||||||
"project": "/project/:project"
|
"project": "/project/:project"
|
||||||
"project-backlog": "/project/:project/backlog"
|
"project-backlog": "/project/:project/backlog"
|
||||||
"project-taskboard": "/project/:project/taskboard/:sprint"
|
"project-taskboard": "/project/:project/taskboard/:sprint"
|
||||||
|
@ -112,6 +113,7 @@ urls = {
|
||||||
"user-settings-user-change-password": "/user-settings/user-change-password"
|
"user-settings-user-change-password": "/user-settings/user-change-password"
|
||||||
"user-settings-user-avatar": "/user-settings/user-avatar"
|
"user-settings-user-avatar": "/user-settings/user-avatar"
|
||||||
"user-settings-mail-notifications": "/user-settings/mail-notifications"
|
"user-settings-mail-notifications": "/user-settings/mail-notifications"
|
||||||
|
"user-settings-contrib": "/user-settings/contrib/:plugin"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ class ContribController extends taiga.Controller
|
||||||
]
|
]
|
||||||
|
|
||||||
constructor: (@rootScope, @scope, @params, @repo, @rs, @confirm) ->
|
constructor: (@rootScope, @scope, @params, @repo, @rs, @confirm) ->
|
||||||
@scope.currentPlugin = _.first(_.where(@rootScope.adminPlugins, {"slug": @params.plugin}))
|
@scope.currentPlugin = _.head(_.filter(@rootScope.adminPlugins, {"slug": @params.plugin}))
|
||||||
@scope.projectSlug = @params.pslug
|
@scope.projectSlug = @params.pslug
|
||||||
|
|
||||||
promise = @.loadInitialData()
|
promise = @.loadInitialData()
|
||||||
|
@ -56,3 +56,16 @@ class ContribController extends taiga.Controller
|
||||||
return @.loadProject()
|
return @.loadProject()
|
||||||
|
|
||||||
module.controller("ContribController", ContribController)
|
module.controller("ContribController", ContribController)
|
||||||
|
|
||||||
|
|
||||||
|
class ContribUserSettingsController extends taiga.Controller
|
||||||
|
@.$inject = [
|
||||||
|
"$rootScope",
|
||||||
|
"$scope",
|
||||||
|
"$routeParams"
|
||||||
|
]
|
||||||
|
|
||||||
|
constructor: (@rootScope, @scope, @params) ->
|
||||||
|
@scope.currentPlugin = _.head(_.filter(@rootScope.userSettingsPlugins, {"slug": @params.plugin}))
|
||||||
|
|
||||||
|
module.controller("ContribUserSettingsController", ContribUserSettingsController)
|
||||||
|
|
|
@ -47,12 +47,12 @@ class HttpService extends taiga.Service
|
||||||
return headers
|
return headers
|
||||||
|
|
||||||
request: (options) ->
|
request: (options) ->
|
||||||
options.headers = _.merge({}, options.headers or {}, @.headers())
|
options.headers = _.assign({}, options.headers or {}, @.headers())
|
||||||
|
|
||||||
return @http(options)
|
return @http(options)
|
||||||
|
|
||||||
get: (url, params, options) ->
|
get: (url, params, options) ->
|
||||||
options = _.merge({method: "GET", url: url}, options)
|
options = _.assign({method: "GET", url: url}, options)
|
||||||
options.params = params if params
|
options.params = params if params
|
||||||
|
|
||||||
# prevent duplicated http request
|
# prevent duplicated http request
|
||||||
|
@ -62,25 +62,27 @@ class HttpService extends taiga.Service
|
||||||
@.cache.removeAll()
|
@.cache.removeAll()
|
||||||
|
|
||||||
post: (url, data, params, options) ->
|
post: (url, data, params, options) ->
|
||||||
options = _.merge({method: "POST", url: url}, options)
|
options = _.assign({method: "POST", url: url}, options)
|
||||||
|
|
||||||
options.data = data if data
|
options.data = data if data
|
||||||
options.params = params if params
|
options.params = params if params
|
||||||
|
|
||||||
return @.request(options)
|
return @.request(options)
|
||||||
|
|
||||||
put: (url, data, params, options) ->
|
put: (url, data, params, options) ->
|
||||||
options = _.merge({method: "PUT", url: url}, options)
|
options = _.assign({method: "PUT", url: url}, options)
|
||||||
options.data = data if data
|
options.data = data if data
|
||||||
options.params = params if params
|
options.params = params if params
|
||||||
return @.request(options)
|
return @.request(options)
|
||||||
|
|
||||||
patch: (url, data, params, options) ->
|
patch: (url, data, params, options) ->
|
||||||
options = _.merge({method: "PATCH", url: url}, options)
|
options = _.assign({method: "PATCH", url: url}, options)
|
||||||
options.data = data if data
|
options.data = data if data
|
||||||
options.params = params if params
|
options.params = params if params
|
||||||
return @.request(options)
|
return @.request(options)
|
||||||
|
|
||||||
delete: (url, data, params, options) ->
|
delete: (url, data, params, options) ->
|
||||||
options = _.merge({method: "DELETE", url: url}, options)
|
options = _.assign({method: "DELETE", url: url}, options)
|
||||||
options.data = data if data
|
options.data = data if data
|
||||||
options.params = params if params
|
options.params = params if params
|
||||||
return @.request(options)
|
return @.request(options)
|
||||||
|
|
|
@ -59,7 +59,7 @@ module.service("$tgNavUrls", NavigationUrlsService)
|
||||||
## Navigation Urls Directive
|
## Navigation Urls Directive
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
|
||||||
NavigationUrlsDirective = ($navurls, $auth, $q, $location) ->
|
NavigationUrlsDirective = ($navurls, $auth, $q, $location, lightboxService) ->
|
||||||
# Example:
|
# Example:
|
||||||
# link(tg-nav="project-backlog:project='sss',")
|
# link(tg-nav="project-backlog:project='sss',")
|
||||||
|
|
||||||
|
@ -157,9 +157,11 @@ NavigationUrlsDirective = ($navurls, $auth, $q, $location) ->
|
||||||
when 2
|
when 2
|
||||||
window.open fullUrl
|
window.open fullUrl
|
||||||
|
|
||||||
|
lightboxService.closeAll()
|
||||||
|
|
||||||
$scope.$on "$destroy", ->
|
$scope.$on "$destroy", ->
|
||||||
$el.off()
|
$el.off()
|
||||||
|
|
||||||
return {link: link}
|
return {link: link}
|
||||||
|
|
||||||
module.directive("tgNav", ["$tgNavUrls", "$tgAuth", "$q", "$tgLocation", NavigationUrlsDirective])
|
module.directive("tgNav", ["$tgNavUrls", "$tgAuth", "$q", "$tgLocation", "lightboxService", NavigationUrlsDirective])
|
||||||
|
|
|
@ -48,8 +48,8 @@ class UrlsService extends taiga.Service
|
||||||
url = format(@.urls[name], args.slice(1))
|
url = format(@.urls[name], args.slice(1))
|
||||||
|
|
||||||
return format("%s/%s", [
|
return format("%s/%s", [
|
||||||
_.str.rtrim(@.mainUrl, "/"),
|
_.trimEnd(@.mainUrl, "/"),
|
||||||
_.str.ltrim(url, "/")
|
_.trimStart(url, "/")
|
||||||
])
|
])
|
||||||
|
|
||||||
resolveAbsolute: ->
|
resolveAbsolute: ->
|
||||||
|
|
|
@ -234,26 +234,6 @@ ProjectUrl = ($navurls) ->
|
||||||
module.factory("$projectUrl", ["$tgNavUrls", ProjectUrl])
|
module.factory("$projectUrl", ["$tgNavUrls", ProjectUrl])
|
||||||
|
|
||||||
|
|
||||||
#############################################################################
|
|
||||||
## Limite line size in a text area
|
|
||||||
#############################################################################
|
|
||||||
|
|
||||||
LimitLineLengthDirective = () ->
|
|
||||||
link = ($scope, $el, $attrs) ->
|
|
||||||
maxColsPerLine = parseInt($el.attr("cols"))
|
|
||||||
$el.on "keyup", (event) ->
|
|
||||||
code = event.keyCode
|
|
||||||
lines = $el.val().split("\n")
|
|
||||||
|
|
||||||
_.each lines, (line, index) ->
|
|
||||||
lines[index] = line.substring(0, maxColsPerLine - 2)
|
|
||||||
|
|
||||||
$el.val(lines.join("\n"))
|
|
||||||
|
|
||||||
return {link:link}
|
|
||||||
|
|
||||||
module.directive("tgLimitLineLength", LimitLineLengthDirective)
|
|
||||||
|
|
||||||
#############################################################################
|
#############################################################################
|
||||||
## Queue Q promises
|
## Queue Q promises
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
@ -308,13 +288,11 @@ Capslock = ($translate) ->
|
||||||
link = ($scope, $el, $attrs) ->
|
link = ($scope, $el, $attrs) ->
|
||||||
open = false
|
open = false
|
||||||
|
|
||||||
warningIcon = $('<div>')
|
|
||||||
.addClass('icon')
|
warningIcon = "<svg class='icon icon-capslock' title='" + $translate.instant('COMMON.CAPSLOCK_WARNING') + "'><use xlink:href='#icon-capslock'></svg>";
|
||||||
.addClass('icon-capslock')
|
|
||||||
.attr('title', $translate.instant('COMMON.CAPSLOCK_WARNING'))
|
|
||||||
|
|
||||||
hideIcon = () ->
|
hideIcon = () ->
|
||||||
warningIcon.fadeOut () ->
|
$('.icon-capslock').fadeOut () ->
|
||||||
open = false
|
open = false
|
||||||
|
|
||||||
$(this).remove()
|
$(this).remove()
|
||||||
|
|
|
@ -321,7 +321,7 @@ AssignedToDirective = ($rootscope, $confirm, $repo, $loading, $qqueue, $template
|
||||||
$model.$modelValue.assigned_to = $currentUserService.getUser().get('id')
|
$model.$modelValue.assigned_to = $currentUserService.getUser().get('id')
|
||||||
save($currentUserService.getUser().get('id'))
|
save($currentUserService.getUser().get('id'))
|
||||||
|
|
||||||
$el.on "click", ".icon-delete", (event) ->
|
$el.on "click", ".remove-user", (event) ->
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
return if not isEditable()
|
return if not isEditable()
|
||||||
title = $translate.instant("COMMON.ASSIGNED_TO.CONFIRM_UNASSIGNED")
|
title = $translate.instant("COMMON.ASSIGNED_TO.CONFIRM_UNASSIGNED")
|
||||||
|
@ -498,11 +498,10 @@ EditableSubjectDirective = ($rootscope, $repo, $confirm, $loading, $qqueue, $tem
|
||||||
else if event.keyCode == 27
|
else if event.keyCode == 27
|
||||||
$scope.$apply () => $model.$modelValue.revert()
|
$scope.$apply () => $model.$modelValue.revert()
|
||||||
|
|
||||||
$el.find('div.edit-subject').hide()
|
$el.find('.edit-subject').hide()
|
||||||
$el.find('div.view-subject').show()
|
$el.find('.view-subject').show()
|
||||||
|
|
||||||
$el.find('div.edit-subject').hide()
|
$el.find('.edit-subject').hide()
|
||||||
$el.find('div.view-subject span.edit').hide()
|
|
||||||
|
|
||||||
$scope.$watch $attrs.ngModel, (value) ->
|
$scope.$watch $attrs.ngModel, (value) ->
|
||||||
return if not value
|
return if not value
|
||||||
|
|
|
@ -59,12 +59,12 @@ class ConfirmService extends taiga.Service
|
||||||
el = angular.element(lightboxSelector)
|
el = angular.element(lightboxSelector)
|
||||||
|
|
||||||
# Render content
|
# Render content
|
||||||
el.find("h2.title").text(title)
|
el.find(".title").text(title)
|
||||||
el.find("span.subtitle").text(subtitle)
|
el.find(".subtitle").text(subtitle)
|
||||||
el.find("span.message").text(message)
|
el.find(".message").text(message)
|
||||||
|
|
||||||
# Assign event handlers
|
# Assign event handlers
|
||||||
el.on "click.confirm-dialog", "a.button-green", debounce 2000, (event) =>
|
el.on "click.confirm-dialog", ".button-green", debounce 2000, (event) =>
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
target = angular.element(event.currentTarget)
|
target = angular.element(event.currentTarget)
|
||||||
currentLoading = @loading()
|
currentLoading = @loading()
|
||||||
|
@ -77,7 +77,7 @@ class ConfirmService extends taiga.Service
|
||||||
@.hide(el)
|
@.hide(el)
|
||||||
}
|
}
|
||||||
|
|
||||||
el.on "click.confirm-dialog", "a.button-red", (event) =>
|
el.on "click.confirm-dialog", ".button-red", (event) =>
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
defered.reject()
|
defered.reject()
|
||||||
@.hide(el)
|
@.hide(el)
|
||||||
|
@ -129,7 +129,7 @@ class ConfirmService extends taiga.Service
|
||||||
@.hide(el)
|
@.hide(el)
|
||||||
}
|
}
|
||||||
|
|
||||||
el.on "click.confirm-dialog", "a.button-red", (event) =>
|
el.on "click.confirm-dialog", ".button-red", (event) =>
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
defered.reject()
|
defered.reject()
|
||||||
@.hide(el)
|
@.hide(el)
|
||||||
|
@ -144,15 +144,15 @@ class ConfirmService extends taiga.Service
|
||||||
el = angular.element(".lightbox-generic-error")
|
el = angular.element(".lightbox-generic-error")
|
||||||
|
|
||||||
# Render content
|
# Render content
|
||||||
el.find("h2.title").html(message)
|
el.find(".title").html(message)
|
||||||
|
|
||||||
# Assign event handlers
|
# Assign event handlers
|
||||||
el.on "click.confirm-dialog", "a.button-green", (event) =>
|
el.on "click.confirm-dialog", ".button-green", (event) =>
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
defered.resolve()
|
defered.resolve()
|
||||||
@.hide(el)
|
@.hide(el)
|
||||||
|
|
||||||
el.on "click.confirm-dialog", "a.close", (event) =>
|
el.on "click.confirm-dialog", ".close", (event) =>
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
defered.resolve()
|
defered.resolve()
|
||||||
@.hide(el)
|
@.hide(el)
|
||||||
|
@ -161,22 +161,41 @@ class ConfirmService extends taiga.Service
|
||||||
|
|
||||||
return defered.promise
|
return defered.promise
|
||||||
|
|
||||||
success: (title, message) ->
|
success: (title, message, icon) ->
|
||||||
defered = @q.defer()
|
defered = @q.defer()
|
||||||
|
|
||||||
el = angular.element(".lightbox-generic-success")
|
el = angular.element(".lightbox-generic-success")
|
||||||
|
|
||||||
|
el.find("img").remove()
|
||||||
|
el.find("svg").remove()
|
||||||
|
|
||||||
|
if icon
|
||||||
|
if icon.type == "img"
|
||||||
|
detailImage = $('<img>').addClass('lb-icon').attr('src', icon.name)
|
||||||
|
else if icon.type == "svg"
|
||||||
|
useSVG = document.createElementNS('http://www.w3.org/2000/svg', 'use')
|
||||||
|
useSVG.setAttributeNS('http://www.w3.org/1999/xlink','href', '#' + icon.name)
|
||||||
|
|
||||||
|
detailImage = document.createElementNS("http://www.w3.org/2000/svg", "svg")
|
||||||
|
detailImage.classList.add("icon")
|
||||||
|
detailImage.classList.add("lb-icon")
|
||||||
|
detailImage.classList.add(icon.name)
|
||||||
|
detailImage.appendChild(useSVG)
|
||||||
|
|
||||||
|
if detailImage
|
||||||
|
el.find('section').prepend(detailImage)
|
||||||
|
|
||||||
# Render content
|
# Render content
|
||||||
el.find("h2.title").html(title) if title
|
el.find(".title").html(title) if title
|
||||||
el.find("p.message").html(message) if message
|
el.find(".message").html(message) if message
|
||||||
|
|
||||||
# Assign event handlers
|
# Assign event handlers
|
||||||
el.on "click.confirm-dialog", "a.button-green", (event) =>
|
el.on "click.confirm-dialog", ".button-green", (event) =>
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
defered.resolve()
|
defered.resolve()
|
||||||
@.hide(el)
|
@.hide(el)
|
||||||
|
|
||||||
el.on "click.confirm-dialog", "a.close", (event) =>
|
el.on "click.confirm-dialog", ".close", (event) =>
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
defered.resolve()
|
defered.resolve()
|
||||||
@.hide(el)
|
@.hide(el)
|
||||||
|
@ -189,15 +208,15 @@ class ConfirmService extends taiga.Service
|
||||||
el = angular.element(".lightbox-generic-loading")
|
el = angular.element(".lightbox-generic-loading")
|
||||||
|
|
||||||
# Render content
|
# Render content
|
||||||
el.find("h2.title").html(title) if title
|
el.find(".title").html(title) if title
|
||||||
el.find("p.message").html(message) if message
|
el.find(".message").html(message) if message
|
||||||
|
|
||||||
return {
|
return {
|
||||||
start: => @lightboxService.open(el)
|
start: => @lightboxService.open(el)
|
||||||
stop: => @lightboxService.close(el)
|
stop: => @lightboxService.close(el)
|
||||||
update: (status, title, message, percent) =>
|
update: (status, title, message, percent) =>
|
||||||
el.find("h2.title").html(title) if title
|
el.find(".title").html(title) if title
|
||||||
el.find("p.message").html(message) if message
|
el.find(".message").html(message) if message
|
||||||
|
|
||||||
if percent
|
if percent
|
||||||
el.find(".spin").addClass("hidden")
|
el.find(".spin").addClass("hidden")
|
||||||
|
@ -248,10 +267,11 @@ class ConfirmService extends taiga.Service
|
||||||
body.find(selector)
|
body.find(selector)
|
||||||
.removeClass('active')
|
.removeClass('active')
|
||||||
.addClass('inactive')
|
.addClass('inactive')
|
||||||
|
.one 'animationend', () -> $(this).removeClass('inactive')
|
||||||
|
|
||||||
delete @.tsem
|
delete @.tsem
|
||||||
|
|
||||||
el.on "click", ".icon-delete, .close", (event) =>
|
el.on "click", ".icon-close, .close", (event) =>
|
||||||
body.find(selector)
|
body.find(selector)
|
||||||
.removeClass('active')
|
.removeClass('active')
|
||||||
.addClass('inactive')
|
.addClass('inactive')
|
||||||
|
|
|
@ -34,6 +34,7 @@ module = angular.module("taigaCommon")
|
||||||
TEXT_TYPE = "text"
|
TEXT_TYPE = "text"
|
||||||
MULTILINE_TYPE = "multiline"
|
MULTILINE_TYPE = "multiline"
|
||||||
DATE_TYPE = "date"
|
DATE_TYPE = "date"
|
||||||
|
URL_TYPE = "url"
|
||||||
|
|
||||||
|
|
||||||
TYPE_CHOICES = [
|
TYPE_CHOICES = [
|
||||||
|
@ -48,6 +49,10 @@ TYPE_CHOICES = [
|
||||||
{
|
{
|
||||||
key: DATE_TYPE,
|
key: DATE_TYPE,
|
||||||
name: "ADMIN.CUSTOM_FIELDS.FIELD_TYPE_DATE"
|
name: "ADMIN.CUSTOM_FIELDS.FIELD_TYPE_DATE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: URL_TYPE,
|
||||||
|
name: "ADMIN.CUSTOM_FIELDS.FIELD_TYPE_URL"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -100,6 +105,7 @@ class CustomAttributesValuesController extends taiga.Controller
|
||||||
|
|
||||||
CustomAttributesValuesDirective = ($templates, $storage) ->
|
CustomAttributesValuesDirective = ($templates, $storage) ->
|
||||||
template = $templates.get("custom-attributes/custom-attributes-values.html", true)
|
template = $templates.get("custom-attributes/custom-attributes-values.html", true)
|
||||||
|
|
||||||
collapsedHash = (type) ->
|
collapsedHash = (type) ->
|
||||||
return generateHash(["custom-attributes-collapsed", type])
|
return generateHash(["custom-attributes-collapsed", type])
|
||||||
|
|
||||||
|
@ -111,15 +117,15 @@ CustomAttributesValuesDirective = ($templates, $storage) ->
|
||||||
$ctrl.initialize($attrs.type, value.id)
|
$ctrl.initialize($attrs.type, value.id)
|
||||||
$ctrl.loadCustomAttributesValues()
|
$ctrl.loadCustomAttributesValues()
|
||||||
|
|
||||||
$el.on "click", ".custom-fields-header a", ->
|
$el.on "click", ".custom-fields-header .icon", ->
|
||||||
hash = collapsedHash($attrs.type)
|
hash = collapsedHash($attrs.type)
|
||||||
collapsed = not($storage.get(hash) or false)
|
collapsed = not($storage.get(hash) or false)
|
||||||
$storage.set(hash, collapsed)
|
$storage.set(hash, collapsed)
|
||||||
if collapsed
|
if collapsed
|
||||||
$el.find(".custom-fields-header a").removeClass("open")
|
$el.find(".custom-fields-header .icon").removeClass("open")
|
||||||
$el.find(".custom-fields-body").removeClass("open")
|
$el.find(".custom-fields-body").removeClass("open")
|
||||||
else
|
else
|
||||||
$el.find(".custom-fields-header a").addClass("open")
|
$el.find(".custom-fields-header .icon").addClass("open")
|
||||||
$el.find(".custom-fields-body").addClass("open")
|
$el.find(".custom-fields-body").addClass("open")
|
||||||
|
|
||||||
$scope.$on "$destroy", ->
|
$scope.$on "$destroy", ->
|
||||||
|
@ -198,12 +204,14 @@ CustomAttributeValueDirective = ($template, $selectedText, $compile, $translate,
|
||||||
submit = debounce 2000, (event) =>
|
submit = debounce 2000, (event) =>
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
|
|
||||||
attributeValue.value = $el.find("input[name=value], textarea[name='value']").val()
|
form = $el.find("form").checksley()
|
||||||
|
return if not form.validate()
|
||||||
|
|
||||||
|
input = $el.find("input[name=value], textarea[name='value']")
|
||||||
|
attributeValue.value = input.val()
|
||||||
if attributeValue.type is DATE_TYPE
|
if attributeValue.type is DATE_TYPE
|
||||||
if moment(attributeValue.value, prettyDate).isValid()
|
if moment(attributeValue.value, prettyDate).isValid()
|
||||||
attributeValue.value = moment(attributeValue.value, prettyDate).format("YYYY-MM-DD")
|
attributeValue.value = moment(attributeValue.value, prettyDate).format("YYYY-MM-DD")
|
||||||
else
|
|
||||||
attributeValue.value = ""
|
|
||||||
|
|
||||||
$scope.$apply ->
|
$scope.$apply ->
|
||||||
$ctrl.updateAttributeValue(attributeValue).then ->
|
$ctrl.updateAttributeValue(attributeValue).then ->
|
||||||
|
@ -217,13 +225,17 @@ CustomAttributeValueDirective = ($template, $selectedText, $compile, $translate,
|
||||||
render(attributeValue)
|
render(attributeValue)
|
||||||
|
|
||||||
## Actions (on view mode)
|
## Actions (on view mode)
|
||||||
|
|
||||||
|
$el.on "click", ".js-value-view-mode span a", (event) ->
|
||||||
|
event.stopPropagation()
|
||||||
|
|
||||||
$el.on "click", ".js-value-view-mode", ->
|
$el.on "click", ".js-value-view-mode", ->
|
||||||
return if not isEditable()
|
return if not isEditable()
|
||||||
return if $selectedText.get().length
|
return if $selectedText.get().length
|
||||||
render(attributeValue, true)
|
render(attributeValue, true)
|
||||||
setFocusAndSelectOnInputField()
|
setFocusAndSelectOnInputField()
|
||||||
|
|
||||||
$el.on "click", "a.icon-edit", (event) ->
|
$el.on "click", ".js-edit-description", (event) ->
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
render(attributeValue, true)
|
render(attributeValue, true)
|
||||||
setFocusAndSelectOnInputField()
|
setFocusAndSelectOnInputField()
|
||||||
|
@ -237,7 +249,7 @@ CustomAttributeValueDirective = ($template, $selectedText, $compile, $translate,
|
||||||
|
|
||||||
$el.on "submit", "form", submit
|
$el.on "submit", "form", submit
|
||||||
|
|
||||||
$el.on "click", "a.icon-floppy", submit
|
$el.on "click", ".js-save-description", submit
|
||||||
|
|
||||||
$scope.$on "$destroy", ->
|
$scope.$on "$destroy", ->
|
||||||
$el.off()
|
$el.off()
|
||||||
|
|
|
@ -370,10 +370,12 @@ HistoryDirective = ($log, $loading, $qqueue, $template, $confirm, $translate, $c
|
||||||
renderComments = ->
|
renderComments = ->
|
||||||
comments = $scope.comments or []
|
comments = $scope.comments or []
|
||||||
totalComments = comments.length
|
totalComments = comments.length
|
||||||
if not showAllComments
|
|
||||||
comments = _.last(comments, 4)
|
|
||||||
|
|
||||||
comments = _.map(comments, (x) -> renderComment(x))
|
if not showAllComments
|
||||||
|
comments = _.takeRight(comments, 4)
|
||||||
|
|
||||||
|
comments = _.map comments, (x) -> renderComment(x)
|
||||||
|
|
||||||
html = renderHistory(comments, totalComments)
|
html = renderHistory(comments, totalComments)
|
||||||
$el.find(".comments-list").html(html)
|
$el.find(".comments-list").html(html)
|
||||||
|
|
||||||
|
@ -381,7 +383,7 @@ HistoryDirective = ($log, $loading, $qqueue, $template, $confirm, $translate, $c
|
||||||
changes = $scope.history or []
|
changes = $scope.history or []
|
||||||
totalChanges = changes.length
|
totalChanges = changes.length
|
||||||
if not showAllActivity
|
if not showAllActivity
|
||||||
changes = _.last(changes, 4)
|
changes = _.takeRight(changes, 4)
|
||||||
|
|
||||||
changes = _.map(changes, (x) -> renderChange(x))
|
changes = _.map(changes, (x) -> renderChange(x))
|
||||||
html = renderHistory(changes, totalChanges)
|
html = renderHistory(changes, totalChanges)
|
||||||
|
|
|
@ -25,8 +25,60 @@
|
||||||
module = angular.module("taigaCommon")
|
module = angular.module("taigaCommon")
|
||||||
|
|
||||||
|
|
||||||
ImportProjectButtonDirective = ($rs, $confirm, $location, $navUrls, $translate) ->
|
ImportProjectButtonDirective = ($rs, $confirm, $location, $navUrls, $translate, $lightboxFactory, currentUserService, $tgAuth) ->
|
||||||
link = ($scope, $el, $attrs) ->
|
link = ($scope, $el, $attrs) ->
|
||||||
|
getRestrictionError = (result) ->
|
||||||
|
if result.headers
|
||||||
|
errorKey = ''
|
||||||
|
|
||||||
|
user = currentUserService.getUser()
|
||||||
|
maxMemberships = 0
|
||||||
|
|
||||||
|
if result.headers.isPrivate
|
||||||
|
privateError = !currentUserService.canCreatePrivateProjects().valid
|
||||||
|
maxMemberships = null
|
||||||
|
|
||||||
|
if user.get('max_memberships_private_projects') != null && result.headers.memberships >= user.get('max_memberships_private_projects')
|
||||||
|
membersError = true
|
||||||
|
else
|
||||||
|
membersError = false
|
||||||
|
|
||||||
|
if privateError && membersError
|
||||||
|
errorKey = 'private-space-members'
|
||||||
|
maxMemberships = user.get('max_memberships_private_projects')
|
||||||
|
else if privateError
|
||||||
|
errorKey = 'private-space'
|
||||||
|
else if membersError
|
||||||
|
errorKey = 'private-members'
|
||||||
|
maxMemberships = user.get('max_memberships_private_projects')
|
||||||
|
|
||||||
|
else
|
||||||
|
publicError = !currentUserService.canCreatePublicProjects().valid
|
||||||
|
|
||||||
|
if user.get('max_memberships_public_projects') != null && result.headers.memberships >= user.get('max_memberships_public_projects')
|
||||||
|
membersError = true
|
||||||
|
else
|
||||||
|
membersError = false
|
||||||
|
|
||||||
|
if publicError && membersError
|
||||||
|
errorKey = 'public-space-members'
|
||||||
|
maxMemberships = user.get('max_memberships_public_projects')
|
||||||
|
else if publicError
|
||||||
|
errorKey = 'public-space'
|
||||||
|
else if membersError
|
||||||
|
errorKey = 'public-members'
|
||||||
|
maxMemberships = user.get('max_memberships_public_projects')
|
||||||
|
|
||||||
|
return {
|
||||||
|
key: errorKey,
|
||||||
|
values: {
|
||||||
|
max_memberships: maxMemberships,
|
||||||
|
members: result.headers.memberships
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return false
|
||||||
|
|
||||||
$el.on "click", ".import-project-button", (event) ->
|
$el.on "click", ".import-project-button", (event) ->
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
$el.find("input.import-file").val("")
|
$el.find("input.import-file").val("")
|
||||||
|
@ -40,7 +92,9 @@ ImportProjectButtonDirective = ($rs, $confirm, $location, $navUrls, $translate)
|
||||||
loader = $confirm.loader($translate.instant("PROJECT.IMPORT.UPLOADING_FILE"))
|
loader = $confirm.loader($translate.instant("PROJECT.IMPORT.UPLOADING_FILE"))
|
||||||
|
|
||||||
onSuccess = (result) ->
|
onSuccess = (result) ->
|
||||||
|
currentUserService.loadProjects().then () ->
|
||||||
loader.stop()
|
loader.stop()
|
||||||
|
|
||||||
if result.status == 202 # Async mode
|
if result.status == 202 # Async mode
|
||||||
title = $translate.instant("PROJECT.IMPORT.ASYNC_IN_PROGRESS_TITLE")
|
title = $translate.instant("PROJECT.IMPORT.ASYNC_IN_PROGRESS_TITLE")
|
||||||
message = $translate.instant("PROJECT.IMPORT.ASYNC_IN_PROGRESS_MESSAGE")
|
message = $translate.instant("PROJECT.IMPORT.ASYNC_IN_PROGRESS_MESSAGE")
|
||||||
|
@ -53,7 +107,17 @@ ImportProjectButtonDirective = ($rs, $confirm, $location, $navUrls, $translate)
|
||||||
$confirm.notify("success", msg)
|
$confirm.notify("success", msg)
|
||||||
|
|
||||||
onError = (result) ->
|
onError = (result) ->
|
||||||
|
$tgAuth.refresh().then () ->
|
||||||
|
restrictionError = getRestrictionError(result)
|
||||||
|
|
||||||
loader.stop()
|
loader.stop()
|
||||||
|
|
||||||
|
if restrictionError
|
||||||
|
$lightboxFactory.create('tg-lb-import-error', {
|
||||||
|
class: 'lightbox lightbox-import-error'
|
||||||
|
}, restrictionError)
|
||||||
|
|
||||||
|
else
|
||||||
errorMsg = $translate.instant("PROJECT.IMPORT.ERROR")
|
errorMsg = $translate.instant("PROJECT.IMPORT.ERROR")
|
||||||
|
|
||||||
if result.status == 429 # TOO MANY REQUESTS
|
if result.status == 429 # TOO MANY REQUESTS
|
||||||
|
@ -67,5 +131,23 @@ ImportProjectButtonDirective = ($rs, $confirm, $location, $navUrls, $translate)
|
||||||
|
|
||||||
return {link: link}
|
return {link: link}
|
||||||
|
|
||||||
module.directive("tgImportProjectButton", ["$tgResources", "$tgConfirm", "$location", "$tgNavUrls", "$translate",
|
module.directive("tgImportProjectButton",
|
||||||
|
["$tgResources", "$tgConfirm", "$location", "$tgNavUrls", "$translate", "tgLightboxFactory", "tgCurrentUserService", "$tgAuth",
|
||||||
ImportProjectButtonDirective])
|
ImportProjectButtonDirective])
|
||||||
|
|
||||||
|
LbImportErrorDirective = (lightboxService) ->
|
||||||
|
link = (scope, el, attrs) ->
|
||||||
|
lightboxService.open(el)
|
||||||
|
|
||||||
|
scope.close = () ->
|
||||||
|
lightboxService.close(el)
|
||||||
|
return
|
||||||
|
|
||||||
|
return {
|
||||||
|
templateUrl: "common/lightbox/lightbox-import-error.html",
|
||||||
|
link: link
|
||||||
|
}
|
||||||
|
|
||||||
|
LbImportErrorDirective.$inject = ["lightboxService"]
|
||||||
|
|
||||||
|
module.directive("tgLbImportError", LbImportErrorDirective)
|
||||||
|
|
|
@ -38,6 +38,8 @@ class LightboxService extends taiga.Service
|
||||||
constructor: (@animationFrame, @q) ->
|
constructor: (@animationFrame, @q) ->
|
||||||
|
|
||||||
open: ($el) ->
|
open: ($el) ->
|
||||||
|
if _.isString($el)
|
||||||
|
$el = $($el)
|
||||||
defered = @q.defer()
|
defered = @q.defer()
|
||||||
|
|
||||||
lightboxContent = $el.children().not(".close")
|
lightboxContent = $el.children().not(".close")
|
||||||
|
@ -63,6 +65,8 @@ class LightboxService extends taiga.Service
|
||||||
return defered.promise
|
return defered.promise
|
||||||
|
|
||||||
close: ($el) ->
|
close: ($el) ->
|
||||||
|
if _.isString($el)
|
||||||
|
$el = $($el)
|
||||||
docEl = angular.element(document)
|
docEl = angular.element(document)
|
||||||
docEl.off(".lightbox")
|
docEl.off(".lightbox")
|
||||||
docEl.off(".keyboard-navigation") # Hack: to fix problems in the WYSIWYG textareas when press ENTER
|
docEl.off(".keyboard-navigation") # Hack: to fix problems in the WYSIWYG textareas when press ENTER
|
||||||
|
@ -70,6 +74,7 @@ class LightboxService extends taiga.Service
|
||||||
$el.removeAttr('style')
|
$el.removeAttr('style')
|
||||||
$el.removeClass("open").removeClass('close')
|
$el.removeClass("open").removeClass('close')
|
||||||
|
|
||||||
|
@animationFrame.add ->
|
||||||
$el.addClass('close')
|
$el.addClass('close')
|
||||||
|
|
||||||
if $el.hasClass("remove-on-close")
|
if $el.hasClass("remove-on-close")
|
||||||
|
@ -268,6 +273,7 @@ module.directive("tgBlockingMessageInput", ["$log", "$tgTemplate", "$compile", B
|
||||||
|
|
||||||
CreateEditUserstoryDirective = ($repo, $model, $rs, $rootScope, lightboxService, $loading, $translate, $confirm, $q, attachmentsService) ->
|
CreateEditUserstoryDirective = ($repo, $model, $rs, $rootScope, lightboxService, $loading, $translate, $confirm, $q, attachmentsService) ->
|
||||||
link = ($scope, $el, attrs) ->
|
link = ($scope, $el, attrs) ->
|
||||||
|
form = null
|
||||||
$scope.createEditUs = {}
|
$scope.createEditUs = {}
|
||||||
$scope.isNew = true
|
$scope.isNew = true
|
||||||
|
|
||||||
|
@ -285,6 +291,7 @@ CreateEditUserstoryDirective = ($repo, $model, $rs, $rootScope, lightboxService,
|
||||||
attachmentsToDelete = attachmentsToDelete.push(attachment)
|
attachmentsToDelete = attachmentsToDelete.push(attachment)
|
||||||
|
|
||||||
$scope.$on "usform:new", (ctx, projectId, status, statusList) ->
|
$scope.$on "usform:new", (ctx, projectId, status, statusList) ->
|
||||||
|
form.reset() if form
|
||||||
$scope.isNew = true
|
$scope.isNew = true
|
||||||
$scope.usStatusList = statusList
|
$scope.usStatusList = statusList
|
||||||
$scope.attachments = Immutable.List()
|
$scope.attachments = Immutable.List()
|
||||||
|
@ -312,6 +319,8 @@ CreateEditUserstoryDirective = ($repo, $model, $rs, $rootScope, lightboxService,
|
||||||
lightboxService.open($el)
|
lightboxService.open($el)
|
||||||
|
|
||||||
$scope.$on "usform:edit", (ctx, us, attachments) ->
|
$scope.$on "usform:edit", (ctx, us, attachments) ->
|
||||||
|
form.reset() if form
|
||||||
|
|
||||||
$scope.us = us
|
$scope.us = us
|
||||||
$scope.attachments = Immutable.fromJS(attachments)
|
$scope.attachments = Immutable.fromJS(attachments)
|
||||||
$scope.isNew = false
|
$scope.isNew = false
|
||||||
|
@ -431,7 +440,11 @@ module.directive("tgLbCreateEditUserstory", [
|
||||||
|
|
||||||
CreateBulkUserstoriesDirective = ($repo, $rs, $rootscope, lightboxService, $loading) ->
|
CreateBulkUserstoriesDirective = ($repo, $rs, $rootscope, lightboxService, $loading) ->
|
||||||
link = ($scope, $el, attrs) ->
|
link = ($scope, $el, attrs) ->
|
||||||
|
form = null
|
||||||
|
|
||||||
$scope.$on "usform:bulk", (ctx, projectId, status) ->
|
$scope.$on "usform:bulk", (ctx, projectId, status) ->
|
||||||
|
form.reset() if form
|
||||||
|
|
||||||
$scope.new = {
|
$scope.new = {
|
||||||
projectId: projectId
|
projectId: projectId
|
||||||
statusId: status
|
statusId: status
|
||||||
|
@ -505,7 +518,7 @@ AssignedToLightboxDirective = (lightboxService, lightboxKeyboardNavigationServic
|
||||||
username = normalizeString(username)
|
username = normalizeString(username)
|
||||||
text = text.toUpperCase()
|
text = text.toUpperCase()
|
||||||
text = normalizeString(text)
|
text = normalizeString(text)
|
||||||
return _.contains(username, text)
|
return _.includes(username, text)
|
||||||
|
|
||||||
render = (selected, text) ->
|
render = (selected, text) ->
|
||||||
users = _.clone($scope.activeUsers, true)
|
users = _.clone($scope.activeUsers, true)
|
||||||
|
@ -514,7 +527,7 @@ AssignedToLightboxDirective = (lightboxService, lightboxKeyboardNavigationServic
|
||||||
|
|
||||||
ctx = {
|
ctx = {
|
||||||
selected: selected
|
selected: selected
|
||||||
users: _.first(users, 5)
|
users: _.slice(users, 0, 5)
|
||||||
showMore: users.length > 5
|
showMore: users.length > 5
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -600,7 +613,7 @@ WatchersLightboxDirective = ($repo, lightboxService, lightboxKeyboardNavigationS
|
||||||
|
|
||||||
username = user.full_name_display.toUpperCase()
|
username = user.full_name_display.toUpperCase()
|
||||||
text = text.toUpperCase()
|
text = text.toUpperCase()
|
||||||
return _.contains(username, text)
|
return _.includes(username, text)
|
||||||
|
|
||||||
users = _.clone($scope.activeUsers, true)
|
users = _.clone($scope.activeUsers, true)
|
||||||
users = _.filter(users, _.partial(_filterUsers, text))
|
users = _.filter(users, _.partial(_filterUsers, text))
|
||||||
|
@ -610,7 +623,7 @@ WatchersLightboxDirective = ($repo, lightboxService, lightboxKeyboardNavigationS
|
||||||
render = (users) ->
|
render = (users) ->
|
||||||
ctx = {
|
ctx = {
|
||||||
selected: false
|
selected: false
|
||||||
users: _.first(users, 5)
|
users: _.slice(users, 0, 5)
|
||||||
showMore: users.length > 5
|
showMore: users.length > 5
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -684,3 +697,15 @@ AttachmentPreviewLightboxDirective = (lightboxService, $template, $compile) ->
|
||||||
}
|
}
|
||||||
|
|
||||||
module.directive("tgLbAttachmentPreview", ["lightboxService", "$tgTemplate", "$compile", AttachmentPreviewLightboxDirective])
|
module.directive("tgLbAttachmentPreview", ["lightboxService", "$tgTemplate", "$compile", AttachmentPreviewLightboxDirective])
|
||||||
|
|
||||||
|
LightboxLeaveProjectWarningDirective = (lightboxService, $template, $compile) ->
|
||||||
|
link = ($scope, $el, attrs) ->
|
||||||
|
lightboxService.open($el)
|
||||||
|
|
||||||
|
return {
|
||||||
|
templateUrl: 'common/lightbox/lightbox-leave-project-warning.html',
|
||||||
|
link: link,
|
||||||
|
scope: true
|
||||||
|
}
|
||||||
|
|
||||||
|
module.directive("tgLightboxLeaveProjectWarning", ["lightboxService", LightboxLeaveProjectWarningDirective])
|
||||||
|
|
|
@ -38,7 +38,7 @@ TagsDirective = ->
|
||||||
|
|
||||||
parser = (v) ->
|
parser = (v) ->
|
||||||
return [] if not v
|
return [] if not v
|
||||||
result = _(v.split(",")).map((x) -> _.str.trim(x))
|
result = _(v.split(",")).map((x) -> _.trim(x))
|
||||||
|
|
||||||
return result.value()
|
return result.value()
|
||||||
|
|
||||||
|
@ -120,10 +120,13 @@ LbTagLineDirective = ($rs, $template, $compile) ->
|
||||||
tag.style = "border-left: 5px solid #{tag.color}"
|
tag.style = "border-left: 5px solid #{tag.color}"
|
||||||
|
|
||||||
html = $compile(templateTags(ctx))($scope)
|
html = $compile(templateTags(ctx))($scope)
|
||||||
$el.find("div.tags-container").html(html)
|
$el.find(".tags-container").html(html)
|
||||||
|
|
||||||
showSaveButton = -> $el.find(".save").removeClass("hidden")
|
showSaveButton = ->
|
||||||
hideSaveButton = -> $el.find(".save").addClass("hidden")
|
$el.find(".save").removeClass("hidden")
|
||||||
|
|
||||||
|
hideSaveButton = ->
|
||||||
|
$el.find(".save").addClass("hidden")
|
||||||
|
|
||||||
resetInput = ->
|
resetInput = ->
|
||||||
$el.find("input").val("")
|
$el.find("input").val("")
|
||||||
|
@ -179,7 +182,7 @@ LbTagLineDirective = ($rs, $template, $compile) ->
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
saveInputTag()
|
saveInputTag()
|
||||||
|
|
||||||
$el.on "click", ".icon-delete", (event) ->
|
$el.on "click", ".remove-tag", (event) ->
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
target = angular.element(event.currentTarget)
|
target = angular.element(event.currentTarget)
|
||||||
|
|
||||||
|
@ -348,7 +351,7 @@ TagLineDirective = ($rootScope, $repo, $rs, $confirm, $qqueue, $template, $compi
|
||||||
hideAddTagButton()
|
hideAddTagButton()
|
||||||
showInput()
|
showInput()
|
||||||
|
|
||||||
$el.on "click", ".icon-delete", (event) ->
|
$el.on "click", ".remove-tag", (event) ->
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
target = angular.element(event.currentTarget)
|
target = angular.element(event.currentTarget)
|
||||||
|
|
||||||
|
|
|
@ -73,10 +73,16 @@ MarkitupDirective = ($rootscope, $rs, $selectedText, $template, $compile, $trans
|
||||||
closePreviewMode()
|
closePreviewMode()
|
||||||
|
|
||||||
cancelablePromise = null
|
cancelablePromise = null
|
||||||
|
previewInProgress = false
|
||||||
|
|
||||||
preview = ->
|
preview = ->
|
||||||
|
return if previewInProgress
|
||||||
|
|
||||||
|
previewInProgress = true
|
||||||
|
|
||||||
markdownDomNode = element.parents(".markdown")
|
markdownDomNode = element.parents(".markdown")
|
||||||
markItUpDomNode = element.parents(".markItUp")
|
markItUpDomNode = element.parents(".markItUp")
|
||||||
|
|
||||||
$rs.mdrender.render($scope.projectId, $model.$modelValue).then (data) ->
|
$rs.mdrender.render($scope.projectId, $model.$modelValue).then (data) ->
|
||||||
html = previewTemplate({data: data.data})
|
html = previewTemplate({data: data.data})
|
||||||
html = $compile(html)($scope)
|
html = $compile(html)($scope)
|
||||||
|
@ -84,6 +90,8 @@ MarkitupDirective = ($rootscope, $rs, $selectedText, $template, $compile, $trans
|
||||||
markdownDomNode.append(html)
|
markdownDomNode.append(html)
|
||||||
markItUpDomNode.hide()
|
markItUpDomNode.hide()
|
||||||
|
|
||||||
|
previewInProgress = false
|
||||||
|
|
||||||
markdown = element.closest(".markdown")
|
markdown = element.closest(".markdown")
|
||||||
|
|
||||||
markdown.on "mouseup.preview", ".preview", (event) ->
|
markdown.on "mouseup.preview", ".preview", (event) ->
|
||||||
|
|
|
@ -46,7 +46,7 @@ class PageMixin
|
||||||
@scope.roles = _.sortBy(roles, "order")
|
@scope.roles = _.sortBy(roles, "order")
|
||||||
computableRoles = _(@scope.project.members).map("role").uniq().value()
|
computableRoles = _(@scope.project.members).map("role").uniq().value()
|
||||||
@scope.computableRoles = _(roles).filter("computable")
|
@scope.computableRoles = _(roles).filter("computable")
|
||||||
.filter((x) -> _.contains(computableRoles, x.id))
|
.filter((x) -> _.includes(computableRoles, x.id))
|
||||||
.value()
|
.value()
|
||||||
loadUsersAndRoles: ->
|
loadUsersAndRoles: ->
|
||||||
promise = @q.all([
|
promise = @q.all([
|
||||||
|
|
|
@ -59,7 +59,7 @@ class EventsService
|
||||||
if not startswith(url, "ws:") and not startswith(url, "wss:")
|
if not startswith(url, "ws:") and not startswith(url, "wss:")
|
||||||
loc = @win.location
|
loc = @win.location
|
||||||
scheme = if loc.protocol == "https:" then "wss:" else "ws:"
|
scheme = if loc.protocol == "https:" then "wss:" else "ws:"
|
||||||
path = _.str.ltrim(url, "/")
|
path = _.trimStart(url, "/")
|
||||||
url = "#{scheme}//#{loc.host}/#{path}"
|
url = "#{scheme}//#{loc.host}/#{path}"
|
||||||
|
|
||||||
@.ws = new @win.WebSocket(url)
|
@.ws = new @win.WebSocket(url)
|
||||||
|
|
|
@ -119,7 +119,11 @@ module.directive("tgLbCreateIssue", ["$tgRepo", "$tgConfirm", "$rootScope", "lig
|
||||||
|
|
||||||
CreateBulkIssuesDirective = ($repo, $rs, $confirm, $rootscope, $loading, lightboxService) ->
|
CreateBulkIssuesDirective = ($repo, $rs, $confirm, $rootscope, $loading, lightboxService) ->
|
||||||
link = ($scope, $el, attrs) ->
|
link = ($scope, $el, attrs) ->
|
||||||
|
form = null
|
||||||
|
|
||||||
$scope.$on "issueform:bulk", (ctx, projectId, status)->
|
$scope.$on "issueform:bulk", (ctx, projectId, status)->
|
||||||
|
form.reset() if form
|
||||||
|
|
||||||
lightboxService.open($el)
|
lightboxService.open($el)
|
||||||
$scope.new = {
|
$scope.new = {
|
||||||
projectId: projectId
|
projectId: projectId
|
||||||
|
|
|
@ -461,14 +461,14 @@ IssuesFiltersDirective = ($q, $log, $location, $rs, $confirm, $loading, $templat
|
||||||
showFilters = (title, type) ->
|
showFilters = (title, type) ->
|
||||||
$el.find(".filters-cats").hide()
|
$el.find(".filters-cats").hide()
|
||||||
$el.find(".filter-list").removeClass("hidden")
|
$el.find(".filter-list").removeClass("hidden")
|
||||||
$el.find("h2.breadcrumb").removeClass("hidden")
|
$el.find(".breadcrumb").removeClass("hidden")
|
||||||
$el.find("h2 a.subfilter span.title").html(title)
|
$el.find("h2 .subfilter .title").html(title)
|
||||||
$el.find("h2 a.subfilter span.title").prop("data-type", type)
|
$el.find("h2 .subfilter .title").prop("data-type", type)
|
||||||
|
|
||||||
showCategories = ->
|
showCategories = ->
|
||||||
$el.find(".filters-cats").show()
|
$el.find(".filters-cats").show()
|
||||||
$el.find(".filter-list").addClass("hidden")
|
$el.find(".filter-list").addClass("hidden")
|
||||||
$el.find("h2.breadcrumb").addClass("hidden")
|
$el.find(".breadcrumb").addClass("hidden")
|
||||||
|
|
||||||
initializeSelectedFilters = (filters) ->
|
initializeSelectedFilters = (filters) ->
|
||||||
selectedFilters = []
|
selectedFilters = []
|
||||||
|
@ -502,7 +502,7 @@ IssuesFiltersDirective = ($q, $log, $location, $rs, $confirm, $loading, $templat
|
||||||
$el.find(".filter-list").html(html)
|
$el.find(".filter-list").html(html)
|
||||||
|
|
||||||
getFiltersType = () ->
|
getFiltersType = () ->
|
||||||
return $el.find("h2 a.subfilter span.title").prop('data-type')
|
return $el.find(".subfilter .title").prop('data-type')
|
||||||
|
|
||||||
reloadIssues = () ->
|
reloadIssues = () ->
|
||||||
currentFiltersType = getFiltersType()
|
currentFiltersType = getFiltersType()
|
||||||
|
@ -617,7 +617,7 @@ IssuesFiltersDirective = ($q, $log, $location, $rs, $confirm, $loading, $templat
|
||||||
|
|
||||||
toggleFilterSelection(type, id)
|
toggleFilterSelection(type, id)
|
||||||
|
|
||||||
$el.on "click", ".filter-list .single-filter .icon-delete", (event) ->
|
$el.on "click", ".filter-list .single-filter .remove-filter", (event) ->
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
event.stopPropagation()
|
event.stopPropagation()
|
||||||
|
|
||||||
|
@ -665,7 +665,7 @@ IssuesFiltersDirective = ($q, $log, $location, $rs, $confirm, $loading, $templat
|
||||||
currentLoading.finish()
|
currentLoading.finish()
|
||||||
$scope.filters.myFilters = filters
|
$scope.filters.myFilters = filters
|
||||||
|
|
||||||
currentfilterstype = $el.find("h2 a.subfilter span.title").prop('data-type')
|
currentfilterstype = $el.find("h2 .subfilter .title").prop('data-type')
|
||||||
if currentfilterstype == "myFilters"
|
if currentfilterstype == "myFilters"
|
||||||
renderFilters($scope.filters.myFilters)
|
renderFilters($scope.filters.myFilters)
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
module = angular.module("taigaProject")
|
||||||
|
|
||||||
|
createProjectRestrictionDirective = () ->
|
||||||
|
return {
|
||||||
|
templateUrl: "project/wizard-restrictions.html"
|
||||||
|
}
|
||||||
|
|
||||||
|
module.directive('tgCreateProjectRestriction', [createProjectRestrictionDirective])
|
|
@ -29,12 +29,16 @@ debounce = @.taiga.debounce
|
||||||
|
|
||||||
module = angular.module("taigaProject")
|
module = angular.module("taigaProject")
|
||||||
|
|
||||||
CreateProject = ($rootscope, $repo, $confirm, $location, $navurls, $rs, $projectUrl, $loading, lightboxService, $cacheFactory, $translate, currentUserService) ->
|
CreateProject = ($rootscope, $repo, $confirm, $location, $navurls, $rs, $projectUrl, $loading, lightboxService, $cacheFactory, $translate, currentUserService, $auth) ->
|
||||||
link = ($scope, $el, attrs) ->
|
link = ($scope, $el, attrs) ->
|
||||||
$scope.data = {}
|
$scope.data = {}
|
||||||
$scope.templates = []
|
$scope.templates = []
|
||||||
currentLoading = null
|
currentLoading = null
|
||||||
|
|
||||||
|
$auth.refresh()
|
||||||
|
$scope.canCreatePrivateProjects = currentUserService.canCreatePrivateProjects()
|
||||||
|
$scope.canCreatePublicProjects = currentUserService.canCreatePublicProjects()
|
||||||
|
|
||||||
form = $el.find("form").checksley({"onlyOneErrorElement": true})
|
form = $el.find("form").checksley({"onlyOneErrorElement": true})
|
||||||
|
|
||||||
onSuccessSubmit = (response) ->
|
onSuccessSubmit = (response) ->
|
||||||
|
@ -58,10 +62,6 @@ CreateProject = ($rootscope, $repo, $confirm, $location, $navurls, $rs, $project
|
||||||
selectors = []
|
selectors = []
|
||||||
for error_field in _.keys(response)
|
for error_field in _.keys(response)
|
||||||
selectors.push("[name=#{error_field}]")
|
selectors.push("[name=#{error_field}]")
|
||||||
$el.find(".active").removeClass("active")
|
|
||||||
error_step = $el.find(selectors.join(",")).first().parents(".wizard-step")
|
|
||||||
error_step.addClass("active")
|
|
||||||
$el.find('.progress-bar').removeClass().addClass('progress-bar').addClass(error_step.data("step"))
|
|
||||||
|
|
||||||
submit = (event) =>
|
submit = (event) =>
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
|
@ -77,7 +77,9 @@ CreateProject = ($rootscope, $repo, $confirm, $location, $navurls, $rs, $project
|
||||||
promise.then(onSuccessSubmit, onErrorSubmit)
|
promise.then(onSuccessSubmit, onErrorSubmit)
|
||||||
|
|
||||||
openLightbox = ->
|
openLightbox = ->
|
||||||
$scope.data = {}
|
$scope.data = {
|
||||||
|
is_private: false
|
||||||
|
}
|
||||||
|
|
||||||
if !$scope.templates.length
|
if !$scope.templates.length
|
||||||
$rs.projects.templates().then (result) =>
|
$rs.projects.templates().then (result) =>
|
||||||
|
@ -86,40 +88,7 @@ CreateProject = ($rootscope, $repo, $confirm, $location, $navurls, $rs, $project
|
||||||
else
|
else
|
||||||
$scope.data.creation_template = _.head(_.filter($scope.templates, (x) -> x.slug == "scrum")).id
|
$scope.data.creation_template = _.head(_.filter($scope.templates, (x) -> x.slug == "scrum")).id
|
||||||
|
|
||||||
$el.find(".active").removeClass("active")
|
|
||||||
$el.find(".create-step1").addClass("active")
|
|
||||||
|
|
||||||
lightboxService.open($el)
|
lightboxService.open($el)
|
||||||
timeout 600, ->
|
|
||||||
$el.find(".progress-bar").addClass('step1')
|
|
||||||
|
|
||||||
$el.on "click", ".button-next", (event) ->
|
|
||||||
event.preventDefault()
|
|
||||||
|
|
||||||
current = $el.find(".active")
|
|
||||||
|
|
||||||
valid = true
|
|
||||||
for field in form.fields
|
|
||||||
if current.find("[name=#{field.element.attr('name')}]").length
|
|
||||||
valid = field.validate() != false and valid
|
|
||||||
|
|
||||||
if not valid
|
|
||||||
return
|
|
||||||
|
|
||||||
next = current.next()
|
|
||||||
current.toggleClass('active')
|
|
||||||
next.toggleClass('active')
|
|
||||||
step = next.data('step')
|
|
||||||
$el.find('.progress-bar').removeClass().addClass('progress-bar').addClass(step)
|
|
||||||
|
|
||||||
$el.on "click", ".button-prev", (event) ->
|
|
||||||
event.preventDefault()
|
|
||||||
current = $el.find(".active")
|
|
||||||
prev = current.prev()
|
|
||||||
current.toggleClass('active')
|
|
||||||
prev.toggleClass('active')
|
|
||||||
step = prev.data('step')
|
|
||||||
$el.find('.progress-bar').removeClass().addClass('progress-bar').addClass(step)
|
|
||||||
|
|
||||||
submitButton = $el.find(".submit-button")
|
submitButton = $el.find(".submit-button")
|
||||||
|
|
||||||
|
@ -145,7 +114,7 @@ CreateProject = ($rootscope, $repo, $confirm, $location, $navurls, $rs, $project
|
||||||
|
|
||||||
module.directive("tgLbCreateProject", ["$rootScope", "$tgRepo", "$tgConfirm",
|
module.directive("tgLbCreateProject", ["$rootScope", "$tgRepo", "$tgConfirm",
|
||||||
"$location", "$tgNavUrls", "$tgResources", "$projectUrl", "$tgLoading",
|
"$location", "$tgNavUrls", "$tgResources", "$projectUrl", "$tgLoading",
|
||||||
"lightboxService", "$cacheFactory", "$translate", "tgCurrentUserService", CreateProject])
|
"lightboxService", "$cacheFactory", "$translate", "tgCurrentUserService", "$tgAuth", CreateProject])
|
||||||
|
|
||||||
|
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
|
|
@ -62,7 +62,7 @@ RelatedTaskRowDirective = ($repo, $compile, $confirm, $rootscope, $loading, $tem
|
||||||
else if event.keyCode == 27
|
else if event.keyCode == 27
|
||||||
renderView($model.$modelValue)
|
renderView($model.$modelValue)
|
||||||
|
|
||||||
$el.on "click", ".icon-floppy", (event) ->
|
$el.on "click", ".save-task", (event) ->
|
||||||
saveTask($model.$modelValue).then ->
|
saveTask($model.$modelValue).then ->
|
||||||
renderView($model.$modelValue)
|
renderView($model.$modelValue)
|
||||||
|
|
||||||
|
@ -79,7 +79,7 @@ RelatedTaskRowDirective = ($repo, $compile, $confirm, $rootscope, $loading, $tem
|
||||||
|
|
||||||
$el.html($compile(templateView({task: task, perms: perms}))($scope))
|
$el.html($compile(templateView({task: task, perms: perms}))($scope))
|
||||||
|
|
||||||
$el.on "click", ".icon-edit", ->
|
$el.on "click", ".edit-task", ->
|
||||||
renderEdit($model.$modelValue)
|
renderEdit($model.$modelValue)
|
||||||
$el.find('input').focus().select()
|
$el.find('input').focus().select()
|
||||||
|
|
||||||
|
@ -170,10 +170,10 @@ RelatedTaskCreateFormDirective = ($repo, $compile, $confirm, $tgmodel, $loading,
|
||||||
else if event.keyCode == 27
|
else if event.keyCode == 27
|
||||||
$scope.$apply () -> close()
|
$scope.$apply () -> close()
|
||||||
|
|
||||||
$el.on "click", ".icon-delete", (event)->
|
$el.on "click", ".icon-close", (event)->
|
||||||
$scope.$apply () -> close()
|
$scope.$apply () -> close()
|
||||||
|
|
||||||
$el.on "click", ".icon-floppy", (event)->
|
$el.on "click", ".icon-save", (event)->
|
||||||
createTask(newTask).then ->
|
createTask(newTask).then ->
|
||||||
close()
|
close()
|
||||||
|
|
||||||
|
|
|
@ -45,6 +45,7 @@ urls = {
|
||||||
"user-voted": "/users/%s/voted"
|
"user-voted": "/users/%s/voted"
|
||||||
"user-watched": "/users/%s/watched"
|
"user-watched": "/users/%s/watched"
|
||||||
"user-contacts": "/users/%s/contacts"
|
"user-contacts": "/users/%s/contacts"
|
||||||
|
"user-me": "/users/me"
|
||||||
|
|
||||||
# User - Notification
|
# User - Notification
|
||||||
"permissions": "/permissions"
|
"permissions": "/permissions"
|
||||||
|
@ -73,6 +74,11 @@ urls = {
|
||||||
"project-unlike": "/projects/%s/unlike"
|
"project-unlike": "/projects/%s/unlike"
|
||||||
"project-watch": "/projects/%s/watch"
|
"project-watch": "/projects/%s/watch"
|
||||||
"project-unwatch": "/projects/%s/unwatch"
|
"project-unwatch": "/projects/%s/unwatch"
|
||||||
|
"project-transfer-validate-token": "/projects/%s/transfer_validate_token"
|
||||||
|
"project-transfer-accept": "/projects/%s/transfer_accept"
|
||||||
|
"project-transfer-reject": "/projects/%s/transfer_reject"
|
||||||
|
"project-transfer-request": "/projects/%s/transfer_request"
|
||||||
|
"project-transfer-start": "/projects/%s/transfer_start"
|
||||||
|
|
||||||
# Project Values - Choises
|
# Project Values - Choises
|
||||||
"userstory-statuses": "/userstory-statuses"
|
"userstory-statuses": "/userstory-statuses"
|
||||||
|
|
|
@ -128,7 +128,11 @@ resourceProvider = ($config, $repo, $http, $urls, $auth, $q, $translate) ->
|
||||||
catch
|
catch
|
||||||
response.data = {}
|
response.data = {}
|
||||||
response.status = evt.target.status
|
response.status = evt.target.status
|
||||||
|
if evt.target.getResponseHeader('Taiga-Info-Project-Is-Private')
|
||||||
|
response.headers = {
|
||||||
|
isPrivate: evt.target.getResponseHeader('Taiga-Info-Project-Is-Private') == 'True',
|
||||||
|
memberships: parseInt(evt.target.getResponseHeader('Taiga-Info-Project-Memberships'))
|
||||||
|
}
|
||||||
defered.resolve(response) if response.status in [201, 202]
|
defered.resolve(response) if response.status in [201, 202]
|
||||||
defered.reject(response)
|
defered.reject(response)
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,6 @@ CreateEditTaskDirective = ($repo, $model, $rs, $rootscope, $loading, lightboxSer
|
||||||
return $q.all(promises)
|
return $q.all(promises)
|
||||||
|
|
||||||
deleteAttachments = (obj) ->
|
deleteAttachments = (obj) ->
|
||||||
console.log attachmentsToDelete.toJS()
|
|
||||||
promises = _.map attachmentsToDelete.toJS(), (attachment) ->
|
promises = _.map attachmentsToDelete.toJS(), (attachment) ->
|
||||||
return attachmentsService.delete("task", attachment.id)
|
return attachmentsService.delete("task", attachment.id)
|
||||||
|
|
||||||
|
|
|
@ -95,6 +95,7 @@ class TeamController extends mixOf(taiga.Controller, taiga.PageMixin)
|
||||||
@scope.issuesEnabled = project.is_issues_activated
|
@scope.issuesEnabled = project.is_issues_activated
|
||||||
@scope.tasksEnabled = project.is_kanban_activated or project.is_backlog_activated
|
@scope.tasksEnabled = project.is_kanban_activated or project.is_backlog_activated
|
||||||
@scope.wikiEnabled = project.is_wiki_activated
|
@scope.wikiEnabled = project.is_wiki_activated
|
||||||
|
@scope.owner = project.owner.id
|
||||||
|
|
||||||
return project
|
return project
|
||||||
|
|
||||||
|
@ -110,15 +111,18 @@ class TeamController extends mixOf(taiga.Controller, taiga.PageMixin)
|
||||||
@scope.stats.totals = @scope.totals
|
@scope.stats.totals = @scope.totals
|
||||||
|
|
||||||
_processStat: (stat) ->
|
_processStat: (stat) ->
|
||||||
max = _.max(stat)
|
max = _.max(_.toArray(stat))
|
||||||
min = _.min(stat)
|
min = _.min(_.toArray(stat))
|
||||||
singleStat = _.map stat, (value, key) ->
|
|
||||||
|
singleStat = Object()
|
||||||
|
for own key, value of stat
|
||||||
if value == min
|
if value == min
|
||||||
return [key, 0.1]
|
singleStat[key] = 0.1
|
||||||
if value == max
|
else if value == max
|
||||||
return [key, 1]
|
singleStat[key] = 1
|
||||||
return [key, (value * 0.5) / max]
|
else
|
||||||
singleStat = _.object(singleStat)
|
singleStat[key] = (value * 0.5) / max
|
||||||
|
|
||||||
return singleStat
|
return singleStat
|
||||||
|
|
||||||
_processStats: (stats) ->
|
_processStats: (stats) ->
|
||||||
|
@ -131,6 +135,11 @@ class TeamController extends mixOf(taiga.Controller, taiga.PageMixin)
|
||||||
return promise.then (project) =>
|
return promise.then (project) =>
|
||||||
@.fillUsersAndRoles(project.members, project.roles)
|
@.fillUsersAndRoles(project.members, project.roles)
|
||||||
@.loadMembers()
|
@.loadMembers()
|
||||||
|
|
||||||
|
userRoles = _.map @scope.users, (user) -> user.role
|
||||||
|
|
||||||
|
@scope.roles = _.filter @scope.roles, (role) -> userRoles.indexOf(role.id) != -1
|
||||||
|
|
||||||
return @.loadMemberStats()
|
return @.loadMemberStats()
|
||||||
|
|
||||||
module.controller("TeamController", TeamController)
|
module.controller("TeamController", TeamController)
|
||||||
|
@ -175,12 +184,13 @@ TeamMemberCurrentUserDirective = () ->
|
||||||
return {
|
return {
|
||||||
templateUrl: "team/team-member-current-user.html"
|
templateUrl: "team/team-member-current-user.html"
|
||||||
scope: {
|
scope: {
|
||||||
projectId: "=projectid",
|
project: "=project",
|
||||||
currentUser: "=currentuser",
|
currentUser: "=currentuser",
|
||||||
stats: "="
|
stats: "=",
|
||||||
issuesEnabled: "=issuesenabled"
|
issuesEnabled: "=issuesenabled",
|
||||||
tasksEnabled: "=tasksenabled"
|
tasksEnabled: "=tasksenabled",
|
||||||
wikiEnabled: "=wikienabled"
|
wikiEnabled: "=wikienabled",
|
||||||
|
owner: "=owner"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -200,10 +210,11 @@ TeamMembersDirective = () ->
|
||||||
memberships: "=",
|
memberships: "=",
|
||||||
filtersQ: "=filtersq",
|
filtersQ: "=filtersq",
|
||||||
filtersRole: "=filtersrole",
|
filtersRole: "=filtersrole",
|
||||||
stats: "="
|
stats: "=",
|
||||||
issuesEnabled: "=issuesenabled"
|
issuesEnabled: "=issuesenabled",
|
||||||
tasksEnabled: "=tasksenabled"
|
tasksEnabled: "=tasksenabled",
|
||||||
wikiEnabled: "=wikienabled"
|
wikiEnabled: "=wikienabled",
|
||||||
|
owner: "=owner"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -214,16 +225,17 @@ module.directive("tgTeamMembers", TeamMembersDirective)
|
||||||
## Leave project Directive
|
## Leave project Directive
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
|
||||||
LeaveProjectDirective = ($repo, $confirm, $location, $rs, $navurls, $translate) ->
|
LeaveProjectDirective = ($repo, $confirm, $location, $rs, $navurls, $translate, lightboxFactory, currentUserService) ->
|
||||||
link = ($scope, $el, $attrs) ->
|
link = ($scope, $el, $attrs) ->
|
||||||
$scope.leave = () ->
|
leaveConfirm = () ->
|
||||||
leave_project_text = $translate.instant("TEAM.ACTION_LEAVE_PROJECT")
|
leave_project_text = $translate.instant("TEAM.ACTION_LEAVE_PROJECT")
|
||||||
confirm_leave_project_text = $translate.instant("TEAM.CONFIRM_LEAVE_PROJECT")
|
confirm_leave_project_text = $translate.instant("TEAM.CONFIRM_LEAVE_PROJECT")
|
||||||
|
|
||||||
$confirm.ask(leave_project_text, confirm_leave_project_text).then (response) =>
|
$confirm.ask(leave_project_text, confirm_leave_project_text).then (response) =>
|
||||||
promise = $rs.projects.leave($attrs.projectid)
|
promise = $rs.projects.leave($scope.project.id)
|
||||||
|
|
||||||
promise.then =>
|
promise.then =>
|
||||||
|
currentUserService.loadProjects().then () ->
|
||||||
response.finish()
|
response.finish()
|
||||||
$confirm.notify("success")
|
$confirm.notify("success")
|
||||||
$location.path($navurls.resolve("home"))
|
$location.path($navurls.resolve("home"))
|
||||||
|
@ -232,13 +244,27 @@ LeaveProjectDirective = ($repo, $confirm, $location, $rs, $navurls, $translate)
|
||||||
response.finish()
|
response.finish()
|
||||||
$confirm.notify('error', response.data._error_message)
|
$confirm.notify('error', response.data._error_message)
|
||||||
|
|
||||||
|
$scope.leave = () ->
|
||||||
|
if $scope.project.owner.id == $scope.user.id
|
||||||
|
lightboxFactory.create("tg-lightbox-leave-project-warning", {
|
||||||
|
class: "lightbox lightbox-leave-project-warning"
|
||||||
|
}, {
|
||||||
|
isCurrentUser: true,
|
||||||
|
project: $scope.project
|
||||||
|
})
|
||||||
|
else
|
||||||
|
leaveConfirm()
|
||||||
|
|
||||||
return {
|
return {
|
||||||
scope: {},
|
scope: {
|
||||||
|
user: "=",
|
||||||
|
project: "="
|
||||||
|
},
|
||||||
templateUrl: "team/leave-project.html",
|
templateUrl: "team/leave-project.html",
|
||||||
link: link
|
link: link
|
||||||
}
|
}
|
||||||
|
|
||||||
module.directive("tgLeaveProject", ["$tgRepo", "$tgConfirm", "$tgLocation", "$tgResources", "$tgNavUrls", "$translate",
|
module.directive("tgLeaveProject", ["$tgRepo", "$tgConfirm", "$tgLocation", "$tgResources", "$tgNavUrls", "$translate", "tgLightboxFactory", "tgCurrentUserService",
|
||||||
LeaveProjectDirective])
|
LeaveProjectDirective])
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -63,9 +63,14 @@ module.controller("UserChangePasswordController", UserChangePasswordController)
|
||||||
|
|
||||||
UserChangePasswordDirective = ($rs, $confirm, $loading, $translate) ->
|
UserChangePasswordDirective = ($rs, $confirm, $loading, $translate) ->
|
||||||
link = ($scope, $el, $attrs, ctrl) ->
|
link = ($scope, $el, $attrs, ctrl) ->
|
||||||
|
form = new checksley.Form($el.find("form"))
|
||||||
|
|
||||||
submit = debounce 2000, (event) =>
|
submit = debounce 2000, (event) =>
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
|
|
||||||
|
if not form.validate()
|
||||||
|
return
|
||||||
|
|
||||||
if $scope.newPassword1 != $scope.newPassword2
|
if $scope.newPassword1 != $scope.newPassword2
|
||||||
$confirm.notify('error', $translate.instant("CHANGE_PASSWORD.ERROR_PASSWORD_MATCH"))
|
$confirm.notify('error', $translate.instant("CHANGE_PASSWORD.ERROR_PASSWORD_MATCH"))
|
||||||
return
|
return
|
||||||
|
|
|
@ -33,7 +33,7 @@ module = angular.module("taigaUserSettings")
|
||||||
## Delete User Lightbox Directive
|
## Delete User Lightbox Directive
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
|
||||||
DeleteUserDirective = ($repo, $rootscope, $auth, $location, $navUrls, lightboxService) ->
|
DeleteUserDirective = ($repo, $rootscope, $auth, $location, $navUrls, lightboxService, $loading) ->
|
||||||
link = ($scope, $el, $attrs) ->
|
link = ($scope, $el, $attrs) ->
|
||||||
$scope.$on "deletelightbox:new", (ctx, user)->
|
$scope.$on "deletelightbox:new", (ctx, user)->
|
||||||
lightboxService.open($el)
|
lightboxService.open($el)
|
||||||
|
@ -42,29 +42,37 @@ DeleteUserDirective = ($repo, $rootscope, $auth, $location, $navUrls, lightboxSe
|
||||||
$el.off()
|
$el.off()
|
||||||
|
|
||||||
submit = ->
|
submit = ->
|
||||||
|
currentLoading = $loading()
|
||||||
|
.target(submitButton)
|
||||||
|
.start()
|
||||||
|
|
||||||
promise = $repo.remove($scope.user)
|
promise = $repo.remove($scope.user)
|
||||||
|
|
||||||
promise.then (data) ->
|
promise.then (data) ->
|
||||||
|
currentLoading.finish()
|
||||||
lightboxService.close($el)
|
lightboxService.close($el)
|
||||||
$auth.logout()
|
$auth.logout()
|
||||||
$location.path($navUrls.resolve("login"))
|
$location.path($navUrls.resolve("login"))
|
||||||
|
|
||||||
# FIXME: error handling?
|
# FIXME: error handling?
|
||||||
promise.then null, ->
|
promise.then null, ->
|
||||||
|
currentLoading.finish()
|
||||||
console.log "FAIL"
|
console.log "FAIL"
|
||||||
|
|
||||||
$el.on "click", ".button-red", (event) ->
|
$el.on "click", ".button-green", (event) ->
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
lightboxService.close($el)
|
lightboxService.close($el)
|
||||||
|
|
||||||
$el.on "click", ".button-green", debounce 2000, (event) ->
|
$el.on "click", ".button-red", debounce 2000, (event) ->
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
submit()
|
submit()
|
||||||
|
|
||||||
|
submitButton = $el.find(".button-red")
|
||||||
|
|
||||||
return {
|
return {
|
||||||
link: link,
|
link: link,
|
||||||
templateUrl: "user/lightbox/lightbox-delete-account.html"
|
templateUrl: "user/lightbox/lightbox-delete-account.html"
|
||||||
}
|
}
|
||||||
|
|
||||||
module.directive("tgLbDeleteUser", ["$tgRepo", "$rootScope", "$tgAuth", "$tgLocation", "$tgNavUrls",
|
module.directive("tgLbDeleteUser", ["$tgRepo", "$rootScope", "$tgAuth", "$tgLocation", "$tgNavUrls",
|
||||||
"lightboxService", DeleteUserDirective])
|
"lightboxService", "$tgLoading", DeleteUserDirective])
|
||||||
|
|
|
@ -59,16 +59,19 @@ mixOf = (base, mixins...) ->
|
||||||
|
|
||||||
|
|
||||||
trim = (data, char) ->
|
trim = (data, char) ->
|
||||||
return _.str.trim(data, char)
|
return _.trim(data, char)
|
||||||
|
|
||||||
|
|
||||||
slugify = (data) ->
|
slugify = (data) ->
|
||||||
return _.str.slugify(data)
|
return data.toString().toLowerCase().trim()
|
||||||
|
.replace(/\s+/g, '-')
|
||||||
|
.replace(/&/g, '-and-')
|
||||||
|
.replace(/[^\w\-]+/g, '')
|
||||||
|
.replace(/\-\-+/g, '-')
|
||||||
|
|
||||||
unslugify = (data) ->
|
unslugify = (data) ->
|
||||||
if data
|
if data
|
||||||
return _.str.capitalize(data.replace(/-/g, ' '))
|
return _.capitalize(data.replace(/-/g, ' '))
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
||||||
|
@ -114,7 +117,7 @@ toString = (value) ->
|
||||||
|
|
||||||
|
|
||||||
joinStr = (str, coll) ->
|
joinStr = (str, coll) ->
|
||||||
return _.str.join(str, coll)
|
return coll.join(str)
|
||||||
|
|
||||||
|
|
||||||
debounce = (wait, func) ->
|
debounce = (wait, func) ->
|
||||||
|
@ -126,7 +129,7 @@ debounceLeading = (wait, func) ->
|
||||||
|
|
||||||
|
|
||||||
startswith = (str1, str2) ->
|
startswith = (str1, str2) ->
|
||||||
return _.str.startsWith(str1, str2)
|
return _.startsWith(str1, str2)
|
||||||
|
|
||||||
|
|
||||||
truncate = (str, maxLength, suffix="...") ->
|
truncate = (str, maxLength, suffix="...") ->
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 3.6 KiB |
|
@ -45,3 +45,4 @@ html(lang="en")
|
||||||
script(src="/#{v}/js/libs.js")
|
script(src="/#{v}/js/libs.js")
|
||||||
script(src="/#{v}/js/templates.js")
|
script(src="/#{v}/js/templates.js")
|
||||||
script(src="/#{v}/js/app-loader.js")
|
script(src="/#{v}/js/app-loader.js")
|
||||||
|
include svg/sprite.svg
|
||||||
|
|
|
@ -41,7 +41,8 @@
|
||||||
"IOCAINE_TEXT": "Un poc saturat per una tasca? Fes-ho saber als teus companys clicant a Iocaina quan edites la tasca. Es possible ser inmune a aquesta (fictícia) poció mortal consumint xicotetes dòsis poc a poc, així com es possible millorar amb xicotets nous desafiaments!",
|
"IOCAINE_TEXT": "Un poc saturat per una tasca? Fes-ho saber als teus companys clicant a Iocaina quan edites la tasca. Es possible ser inmune a aquesta (fictícia) poció mortal consumint xicotetes dòsis poc a poc, així com es possible millorar amb xicotets nous desafiaments!",
|
||||||
"CLIENT_REQUIREMENT": "Client requirement is new requirement that was not previously expected and it is required to be part of the project",
|
"CLIENT_REQUIREMENT": "Client requirement is new requirement that was not previously expected and it is required to be part of the project",
|
||||||
"TEAM_REQUIREMENT": "Team requirement is a requirement that must exist in the project but should have no cost for the client",
|
"TEAM_REQUIREMENT": "Team requirement is a requirement that must exist in the project but should have no cost for the client",
|
||||||
"CAPSLOCK_WARNING": "Be careful! You're writing with capital letters and this input is case sensitive.",
|
"OWNER": "Project Owner",
|
||||||
|
"CAPSLOCK_WARNING": "Be careful! You are using capital letters in an input field that is case sensitive.",
|
||||||
"FORM_ERRORS": {
|
"FORM_ERRORS": {
|
||||||
"DEFAULT_MESSAGE": "Aquest valor pareix invàlid.",
|
"DEFAULT_MESSAGE": "Aquest valor pareix invàlid.",
|
||||||
"TYPE_EMAIL": "Deu ser un correu vàlid.",
|
"TYPE_EMAIL": "Deu ser un correu vàlid.",
|
||||||
|
@ -65,7 +66,9 @@
|
||||||
"MIN_CHECK": "You must select at least %s choices.",
|
"MIN_CHECK": "You must select at least %s choices.",
|
||||||
"MAX_CHECK": "Heu de seleccionar la opció %s o inferior.",
|
"MAX_CHECK": "Heu de seleccionar la opció %s o inferior.",
|
||||||
"RANGE_CHECK": "Heu de seleccionar entre les opcions %s i %s.",
|
"RANGE_CHECK": "Heu de seleccionar entre les opcions %s i %s.",
|
||||||
"EQUAL_TO": "Aquest valor hauria de ser el mateix."
|
"EQUAL_TO": "Aquest valor hauria de ser el mateix.",
|
||||||
|
"LINEWIDTH": "One or more lines is perhaps too long. Try to keep under %s characters.",
|
||||||
|
"PIKADAY": "Invalid date format, please use DD MMM YYYY (like 23 Mar 1984)"
|
||||||
},
|
},
|
||||||
"PICKERDATE": {
|
"PICKERDATE": {
|
||||||
"FORMAT": "DD MMM YYYY",
|
"FORMAT": "DD MMM YYYY",
|
||||||
|
@ -315,7 +318,8 @@
|
||||||
"PLACEHOLDER_FIELD": "Nom d'usuari o correu electrònic",
|
"PLACEHOLDER_FIELD": "Nom d'usuari o correu electrònic",
|
||||||
"ACTION_RESET_PASSWORD": "Resetejar contrasenya",
|
"ACTION_RESET_PASSWORD": "Resetejar contrasenya",
|
||||||
"LINK_CANCEL": "No, porta'm enrere, crec que ja ho recordo.",
|
"LINK_CANCEL": "No, porta'm enrere, crec que ja ho recordo.",
|
||||||
"SUCCESS": "<strong>Mira el teu correu!</strong><br /> Hem enviat un correu amb les instrucciones per a setejar una nova contrasenya.",
|
"SUCCESS_TITLE": "Check your inbox!",
|
||||||
|
"SUCCESS_TEXT": "We sent you an email with the instructions to set a new password",
|
||||||
"ERROR": "Segons els nostres Oompa Loompas, no estàs registrat encara."
|
"ERROR": "Segons els nostres Oompa Loompas, no estàs registrat encara."
|
||||||
},
|
},
|
||||||
"CHANGE_PASSWORD": {
|
"CHANGE_PASSWORD": {
|
||||||
|
@ -373,7 +377,6 @@
|
||||||
"DEPRECATED_FILE": "Obsolet?",
|
"DEPRECATED_FILE": "Obsolet?",
|
||||||
"ADD": "Afegeix un nou adjunt. {{maxFileSizeMsg}}",
|
"ADD": "Afegeix un nou adjunt. {{maxFileSizeMsg}}",
|
||||||
"DROP": "Deixa els adjunts ací",
|
"DROP": "Deixa els adjunts ací",
|
||||||
"MAX_FILE_SIZE": "[Max. grandària: {{maxFileSize}}]",
|
|
||||||
"SHOW_DEPRECATED": "+ mostra els adjunts obsolets",
|
"SHOW_DEPRECATED": "+ mostra els adjunts obsolets",
|
||||||
"HIDE_DEPRECATED": "- Amagar els adjunts obsolets",
|
"HIDE_DEPRECATED": "- Amagar els adjunts obsolets",
|
||||||
"COUNT_DEPRECATED": "({{ counter }} obsolet)",
|
"COUNT_DEPRECATED": "({{ counter }} obsolet)",
|
||||||
|
@ -406,7 +409,9 @@
|
||||||
"TITLE": "Gestió de Membres",
|
"TITLE": "Gestió de Membres",
|
||||||
"PAGE_TITLE": "Afiliacions - {{projectName}}",
|
"PAGE_TITLE": "Afiliacions - {{projectName}}",
|
||||||
"ADD_BUTTON": "+ Nou membre",
|
"ADD_BUTTON": "+ Nou membre",
|
||||||
"ADD_BUTTON_TITLE": "Afegir nou membre"
|
"ADD_BUTTON_TITLE": "Afegir nou membre",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_ADMIN": "Unfortunately, this project has reached its limit of <strong>({{members}})</strong> allowed members.",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_OWNER": "This project has reached its limit of <strong>({{members}})</strong> allowed members. If you would like to increase that limit please contact the administrator."
|
||||||
},
|
},
|
||||||
"PROJECT_EXPORT": {
|
"PROJECT_EXPORT": {
|
||||||
"TITLE": "Exportar",
|
"TITLE": "Exportar",
|
||||||
|
@ -428,6 +433,10 @@
|
||||||
"DISABLE": "Desactiva",
|
"DISABLE": "Desactiva",
|
||||||
"BACKLOG": "Backlog",
|
"BACKLOG": "Backlog",
|
||||||
"BACKLOG_DESCRIPTION": "Organitza les històries d'usuari per a mantindre una vista organitzada i prioritzada del treball.",
|
"BACKLOG_DESCRIPTION": "Organitza les històries d'usuari per a mantindre una vista organitzada i prioritzada del treball.",
|
||||||
|
"NUMBER_SPRINTS": "Expected number of sprints",
|
||||||
|
"NUMBER_SPRINTS_HELP": "0 for an undetermined number",
|
||||||
|
"NUMBER_US_POINTS": "Expected total of story points",
|
||||||
|
"NUMBER_US_POINTS_HELP": "0 for an undetermined number",
|
||||||
"KANBAN": "Kanban",
|
"KANBAN": "Kanban",
|
||||||
"KANBAN_DESCRIPTION": "Organitza els projectes de un mode sencill amb aquest tauler",
|
"KANBAN_DESCRIPTION": "Organitza els projectes de un mode sencill amb aquest tauler",
|
||||||
"ISSUES": "Incidències",
|
"ISSUES": "Incidències",
|
||||||
|
@ -435,9 +444,9 @@
|
||||||
"WIKI": "Wiki",
|
"WIKI": "Wiki",
|
||||||
"WIKI_DESCRIPTION": "Afegix, modifica o borra contingut en col3laboració amb altres. Aquest es el lloc correcte per a la teua documentació.",
|
"WIKI_DESCRIPTION": "Afegix, modifica o borra contingut en col3laboració amb altres. Aquest es el lloc correcte per a la teua documentació.",
|
||||||
"MEETUP": "Trobar-se",
|
"MEETUP": "Trobar-se",
|
||||||
"MEETUP_DESCRIPTION": "Tria el teu sistema de videonconferéncia. Inclosos els desenvolupadors necessitan contacte cara a cara",
|
"MEETUP_DESCRIPTION": "Choose your videoconference system.",
|
||||||
"SELECT_VIDEOCONFERENCE": "Selecciona un sistema de videconferència",
|
"SELECT_VIDEOCONFERENCE": "Selecciona un sistema de videconferència",
|
||||||
"SALT_CHAT_ROOM": "Pots afegir un code salt a la sala de xat",
|
"SALT_CHAT_ROOM": "Add a prefix to the chatroom name",
|
||||||
"JITSI_CHAT_ROOM": "Jitsi",
|
"JITSI_CHAT_ROOM": "Jitsi",
|
||||||
"APPEARIN_CHAT_ROOM": "AppearIn",
|
"APPEARIN_CHAT_ROOM": "AppearIn",
|
||||||
"TALKY_CHAT_ROOM": "Talky",
|
"TALKY_CHAT_ROOM": "Talky",
|
||||||
|
@ -449,22 +458,31 @@
|
||||||
"PROJECT_DETAILS": "Detalls de projecte",
|
"PROJECT_DETAILS": "Detalls de projecte",
|
||||||
"PROJECT_NAME": "Nom del projecte",
|
"PROJECT_NAME": "Nom del projecte",
|
||||||
"PROJECT_SLUG": "Slug de projecte",
|
"PROJECT_SLUG": "Slug de projecte",
|
||||||
"NUMBER_SPRINTS": "Nombre d'sprints (0 per a quantitat indetermindad)",
|
|
||||||
"NUMBER_US_POINTS": "Nombre de punts d'històries (0 per a una quantitat indeterminada)",
|
|
||||||
"TAGS": "Etiquetes",
|
"TAGS": "Etiquetes",
|
||||||
"DESCRIPTION": "Descripció",
|
"DESCRIPTION": "Descripció",
|
||||||
"RECRUITING": "Este projecte busca col·laboracions?",
|
"RECRUITING": "Este projecte busca col·laboracions?",
|
||||||
"RECRUITING_MESSAGE": "A qui estàs buscant?",
|
"RECRUITING_MESSAGE": "A qui estàs buscant?",
|
||||||
"RECRUITING_PLACEHOLDER": "Defineix els perfils que estàs buscant",
|
"RECRUITING_PLACEHOLDER": "Defineix els perfils que estàs buscant",
|
||||||
"PUBLIC_PROJECT": "Projecte públic",
|
"PUBLIC_PROJECT": "Projecte públic",
|
||||||
"PUBLIC_PROJECT_DESC": "Els usuaris podràn trobar i vore el teu projecte",
|
|
||||||
"PRIVATE_PROJECT": "Projecte privat",
|
"PRIVATE_PROJECT": "Projecte privat",
|
||||||
"PRIVATE_PROJECT_DESC": "By default, this project will be hidden to the public",
|
|
||||||
"PRIVATE_OR_PUBLIC": "What's the difference between public and private projects?",
|
"PRIVATE_OR_PUBLIC": "What's the difference between public and private projects?",
|
||||||
"DELETE": "Esborra aquest projecte",
|
"DELETE": "Esborra aquest projecte",
|
||||||
"LOGO_HELP": "The image will be scaled to 80x80px.",
|
"LOGO_HELP": "The image will be scaled to 80x80px.",
|
||||||
"CHANGE_LOGO": "Change logo",
|
"CHANGE_LOGO": "Change logo",
|
||||||
"ACTION_USE_DEFAULT_LOGO": "Use default image"
|
"ACTION_USE_DEFAULT_LOGO": "Use default image",
|
||||||
|
"MAX_PRIVATE_PROJECTS": "You've reached the maximum number of private projects allowed by your current plan",
|
||||||
|
"MAX_PRIVATE_PROJECTS_MEMBERS": "The maximum number of members for private projects has been exceeded",
|
||||||
|
"MAX_PUBLIC_PROJECTS": "Unfortunately, you've reached the maximum number of public projects allowed by your current plan",
|
||||||
|
"MAX_PUBLIC_PROJECTS_MEMBERS": "The project exceeds your maximum number of members for public projects",
|
||||||
|
"PROJECT_OWNER": "Project owner",
|
||||||
|
"REQUEST_OWNERSHIP": "Request ownership",
|
||||||
|
"REQUEST_OWNERSHIP_CONFIRMATION_TITLE": "Do you want to become the new project owner?",
|
||||||
|
"REQUEST_OWNERSHIP_DESC": "Request that current project owner {{name}} transfer ownership of this project to you.",
|
||||||
|
"REQUEST_OWNERSHIP_BUTTON": "Petició",
|
||||||
|
"REQUEST_OWNERSHIP_SUCCESS": "We'll notify the project owner",
|
||||||
|
"CHANGE_OWNER": "Change owner",
|
||||||
|
"CHANGE_OWNER_SUCCESS_TITLE": "Ok, your request has been sent!",
|
||||||
|
"CHANGE_OWNER_SUCCESS_DESC": "We will notify you by email if the project ownership request is accepted or declined"
|
||||||
},
|
},
|
||||||
"REPORTS": {
|
"REPORTS": {
|
||||||
"TITLE": "Informes",
|
"TITLE": "Informes",
|
||||||
|
@ -495,7 +513,8 @@
|
||||||
"ISSUE_ADD": "Afegix camps personalitzats en incidències",
|
"ISSUE_ADD": "Afegix camps personalitzats en incidències",
|
||||||
"FIELD_TYPE_TEXT": "Text",
|
"FIELD_TYPE_TEXT": "Text",
|
||||||
"FIELD_TYPE_MULTI": "Múltiples línies",
|
"FIELD_TYPE_MULTI": "Múltiples línies",
|
||||||
"FIELD_TYPE_DATE": "Data"
|
"FIELD_TYPE_DATE": "Data",
|
||||||
|
"FIELD_TYPE_URL": "Url"
|
||||||
},
|
},
|
||||||
"PROJECT_VALUES": {
|
"PROJECT_VALUES": {
|
||||||
"PAGE_TITLE": "{{sectionName}} - Valors de projecte - {{projectName}}",
|
"PAGE_TITLE": "{{sectionName}} - Valors de projecte - {{projectName}}",
|
||||||
|
@ -543,7 +562,7 @@
|
||||||
"COUNT_MEMBERS": "{{ role.members_count }} membres amb aquest rol",
|
"COUNT_MEMBERS": "{{ role.members_count }} membres amb aquest rol",
|
||||||
"TITLE_DELETE_ROLE": "Esborrar rol",
|
"TITLE_DELETE_ROLE": "Esborrar rol",
|
||||||
"REPLACEMENT_ROLE": "Tots els usuaris amb aquest rol es canviaran a",
|
"REPLACEMENT_ROLE": "Tots els usuaris amb aquest rol es canviaran a",
|
||||||
"WARNING_DELETE_ROLE": "<strong>Atenció, totes les estimacions del rol seràn esborrades</strong>",
|
"WARNING_DELETE_ROLE": "Be careful! All role estimations will be removed",
|
||||||
"ERROR_DELETE_ALL": "No pots esborrar tots els valors",
|
"ERROR_DELETE_ALL": "No pots esborrar tots els valors",
|
||||||
"EXTERNAL_USER": "Usuari extern"
|
"EXTERNAL_USER": "Usuari extern"
|
||||||
},
|
},
|
||||||
|
@ -671,6 +690,24 @@
|
||||||
},
|
},
|
||||||
"SUBMENU_THIDPARTIES": {
|
"SUBMENU_THIDPARTIES": {
|
||||||
"TITLE": "Serveis"
|
"TITLE": "Serveis"
|
||||||
|
},
|
||||||
|
"PROJECT_TRANSFER": {
|
||||||
|
"DO_YOU_ACCEPT_PROJECT_OWNERNSHIP": "Would you like to become the new project owner?",
|
||||||
|
"PRIVATE": "Private",
|
||||||
|
"ACCEPTED_PROJECT_OWNERNSHIP": "Congratulations! You're now the new project owner.",
|
||||||
|
"REJECTED_PROJECT_OWNERNSHIP": "OK. We'll contact the current project owner",
|
||||||
|
"ACCEPT": "Acceptar",
|
||||||
|
"REJECT": "Reject",
|
||||||
|
"PROPOSE_OWNERSHIP": "<strong>{{owner}}</strong>, the current owner of the project <strong>{{project}}</strong> has asked that you become the new project owner.",
|
||||||
|
"ADD_COMMENT_QUESTION": "Would you like to send a question to the project owner?",
|
||||||
|
"ADD_COMMENT": "Would you like to add a comment for the project owner?",
|
||||||
|
"UNLIMITED_PROJECTS": "Unlimited",
|
||||||
|
"OWNER_MESSAGE": {
|
||||||
|
"PRIVATE": "Please remember that you can own up to <strong>{{maxProjects}}</strong> private projects. You currently own <strong>{{currentProjects}}</strong> private projects",
|
||||||
|
"PUBLIC": "Please remember that you can own up to <strong>{{maxProjects}}</strong> public projects. You currently own <strong>{{currentProjects}}</strong> public projects"
|
||||||
|
},
|
||||||
|
"CANT_BE_OWNED": "At the moment you cannot become an owner of a project of this type. If you would like to become the owner of this project, please contact the administrator so they change your account settings to enable project ownership.",
|
||||||
|
"CHANGE_MY_PLAN": "Change my plan"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"USER": {
|
"USER": {
|
||||||
|
@ -731,6 +768,11 @@
|
||||||
"FANS_COUNTER_TITLE": "{total, plural, one{un fan} other{# fans}}",
|
"FANS_COUNTER_TITLE": "{total, plural, one{un fan} other{# fans}}",
|
||||||
"WATCHERS_COUNTER_TITLE": "{total, plural, one{un seguidor} other{# seguidors}}",
|
"WATCHERS_COUNTER_TITLE": "{total, plural, one{un seguidor} other{# seguidors}}",
|
||||||
"MEMBERS_COUNTER_TITLE": "{total, plural, one{un membre} other{# membres}}",
|
"MEMBERS_COUNTER_TITLE": "{total, plural, one{un membre} other{# membres}}",
|
||||||
|
"BLOCKED_PROJECT": {
|
||||||
|
"BLOCKED": "Blocked project",
|
||||||
|
"THIS_PROJECT_IS_BLOCKED": "This project is temporarily blocked",
|
||||||
|
"TO_UNBLOCK_CONTACT_THE_ADMIN_STAFF": "In order to unblock your projects, contact the administrator."
|
||||||
|
},
|
||||||
"STATS": {
|
"STATS": {
|
||||||
"PROJECT": "punts<br/> projecte",
|
"PROJECT": "punts<br/> projecte",
|
||||||
"DEFINED": "punts<br/> definits",
|
"DEFINED": "punts<br/> definits",
|
||||||
|
@ -777,6 +819,7 @@
|
||||||
"CHANGE_PASSWORD": "Canvi de contrasenya",
|
"CHANGE_PASSWORD": "Canvi de contrasenya",
|
||||||
"DASHBOARD_TITLE": "Tauler",
|
"DASHBOARD_TITLE": "Tauler",
|
||||||
"DISCOVER_TITLE": "Discover trending projects",
|
"DISCOVER_TITLE": "Discover trending projects",
|
||||||
|
"NEW_ITEM": "New",
|
||||||
"DISCOVER": "Descobreix",
|
"DISCOVER": "Descobreix",
|
||||||
"ACTION_REORDER": "Arrossega els elements per endreçar"
|
"ACTION_REORDER": "Arrossega els elements per endreçar"
|
||||||
},
|
},
|
||||||
|
@ -791,7 +834,32 @@
|
||||||
"ERROR_TOO_MANY_REQUEST": "Ho sentim, els Oompa Loompas estàn molt ocupats ara mateix. Intenta-ho de nou en uns moments.",
|
"ERROR_TOO_MANY_REQUEST": "Ho sentim, els Oompa Loompas estàn molt ocupats ara mateix. Intenta-ho de nou en uns moments.",
|
||||||
"ERROR_MESSAGE": "Els Oompa Loompas tenen problemes important les teues dades: {{error_message}}",
|
"ERROR_MESSAGE": "Els Oompa Loompas tenen problemes important les teues dades: {{error_message}}",
|
||||||
"ERROR_MAX_SIZE_EXCEEDED": "'{{fileName}}' ({{fileSize}}) es massa gran per als nostres Oompa Loompas, prova amb algun inferior a ({{maxFileSize}})",
|
"ERROR_MAX_SIZE_EXCEEDED": "'{{fileName}}' ({{fileSize}}) es massa gran per als nostres Oompa Loompas, prova amb algun inferior a ({{maxFileSize}})",
|
||||||
"SYNC_SUCCESS": "El teu projecte s'ha importat correctament"
|
"SYNC_SUCCESS": "El teu projecte s'ha importat correctament",
|
||||||
|
"PROJECT_RESTRICTIONS": {
|
||||||
|
"PROJECT_MEMBERS_DESC": "The project you are trying to import has {{members}} members, unfortunately, your current plan allows for a maximum of {{max_memberships}} members per project. If you would like to increase that limit please contact the administrator.",
|
||||||
|
"PRIVATE_PROJECTS_SPACE": {
|
||||||
|
"TITLE": "Unfortunately, your current plan does not allow for additional private projects",
|
||||||
|
"DESC": "The project you are trying to import is private. Unfortunately, your current plan does not allow for additional private projects."
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_SPACE": {
|
||||||
|
"TITLE": "Unfortunately, your current plan does not allow for additional private projects",
|
||||||
|
"DESC": "The project you are trying to import is public. Unfortunately, your current plan does not allow additional public projects."
|
||||||
|
},
|
||||||
|
"PRIVATE_PROJECTS_MEMBERS": {
|
||||||
|
"TITLE": "Your current plan allows for a maximum of {{max_memberships}} members per private project"
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_MEMBERS": {
|
||||||
|
"TITLE": "Your current plan allows for a maximum of {{max_memberships}} members per public project."
|
||||||
|
},
|
||||||
|
"PRIVATE_PROJECTS_SPACE_MEMBERS": {
|
||||||
|
"TITLE": "Unfortunately your current plan doesn't allow additional private projects or an increase of more than {{max_memberships}} members per private project",
|
||||||
|
"DESC": "The project that you are trying to import is private and has {{members}} members."
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_SPACE_MEMBERS": {
|
||||||
|
"TITLE": "Unfortunately your current plan doesn't allow additional public projects or an increase of more than {{max_memberships}} members per public project",
|
||||||
|
"DESC": "The project that you are trying to import is public and has more than {{members}} members."
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"LIKE_BUTTON": {
|
"LIKE_BUTTON": {
|
||||||
"LIKE": "M'agrada",
|
"LIKE": "M'agrada",
|
||||||
|
@ -819,8 +887,11 @@
|
||||||
"DELETE_ACCOUNT": {
|
"DELETE_ACCOUNT": {
|
||||||
"SECTION_NAME": "Esborrar compte de Taiga",
|
"SECTION_NAME": "Esborrar compte de Taiga",
|
||||||
"CONFIRM": "Segur que vols borrar el teu compte de Taiga? ",
|
"CONFIRM": "Segur que vols borrar el teu compte de Taiga? ",
|
||||||
"SUBTITLE": "Te trobarem a faltar! :-(",
|
"NEWSLETTER_LABEL_TEXT": "No vull rebre més el vostre butlletí de notícies",
|
||||||
"NEWSLETTER_LABEL_TEXT": "No vull rebre més el vostre butlletí de notícies"
|
"CANCEL": "Back to settings",
|
||||||
|
"ACCEPT": "Delete account",
|
||||||
|
"BLOCK_PROJECT": "Note that all the projects you own projects will be <strong>blocked</strong> after you delete your account. If you do want a project blocked, transfer ownership to another member of each project prior to deleting your account.",
|
||||||
|
"SUBTITLE": "Sorry to see you go. We'll be here if you should ever consider us again! :("
|
||||||
},
|
},
|
||||||
"DELETE_PROJECT": {
|
"DELETE_PROJECT": {
|
||||||
"TITLE": "Esborrar projecte",
|
"TITLE": "Esborrar projecte",
|
||||||
|
@ -876,7 +947,25 @@
|
||||||
},
|
},
|
||||||
"CREATE_MEMBER": {
|
"CREATE_MEMBER": {
|
||||||
"PLACEHOLDER_INVITATION_TEXT": "(Opcional) Afegix un text personalizat a la invitació. Dis-li algo divertit als nous membres. ;-)",
|
"PLACEHOLDER_INVITATION_TEXT": "(Opcional) Afegix un text personalizat a la invitació. Dis-li algo divertit als nous membres. ;-)",
|
||||||
"PLACEHOLDER_TYPE_EMAIL": "Escriu un correu"
|
"PLACEHOLDER_TYPE_EMAIL": "Escriu un correu",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_OWNER": "Unfortunately, this project can't have more than <strong>{{maxMembers}}</strong> members.<br> If you would like to increase the current limit, please contact the administrator.",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE": "Unfortunately, this project can't have more than <strong>{{maxMembers}}</strong> members."
|
||||||
|
},
|
||||||
|
"LEAVE_PROJECT_WARNING": {
|
||||||
|
"TITLE": "Unfortunately, this project can't be left without an owner",
|
||||||
|
"CURRENT_USER_OWNER": {
|
||||||
|
"DESC": "You are the current owner of this project. Before leaving, please transfer ownership to someone else.",
|
||||||
|
"BUTTON": "Change the project owner"
|
||||||
|
},
|
||||||
|
"OTHER_USER_OWNER": {
|
||||||
|
"DESC": "Unfortunately, you can't delete a member who is also the current project owner. First, please assign a new project owner.",
|
||||||
|
"BUTTON": "Request project owner change"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"CHANGE_OWNER": {
|
||||||
|
"TITLE": "Who do you want to be the new project owner?",
|
||||||
|
"ADD_COMMENT": "Add comment",
|
||||||
|
"BUTTON": "Ask this project member to become the new project owner"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"US": {
|
"US": {
|
||||||
|
@ -1304,12 +1393,18 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"WIZARD": {
|
"WIZARD": {
|
||||||
"SECTION_TITLE_CHOOSE_TEMPLATE": "Tria una plantilla",
|
|
||||||
"CHOOSE_TEMPLATE_TEXT": "Quina plantilla encaixa millor al teu projecte?",
|
|
||||||
"SECTION_TITLE_CREATE_PROJECT": "Crear projecte",
|
"SECTION_TITLE_CREATE_PROJECT": "Crear projecte",
|
||||||
"CREATE_PROJECT_TEXT": "Nou projecte. Qué il·lusió!",
|
"CREATE_PROJECT_TEXT": "Nou projecte. Qué il·lusió!",
|
||||||
"PROGRESS_TEMPLATE_SELECTION": "Selecció de plantilla",
|
"CHOOSE_TEMPLATE": "Which template fits your project best?",
|
||||||
"PROGRESS_NAME_DESCRIPTION": "Nom i descripció"
|
"CHOOSE_TEMPLATE_TITLE": "More info about project templates",
|
||||||
|
"CHOOSE_TEMPLATE_INFO": "More info",
|
||||||
|
"PROJECT_DETAILS": "Project Details",
|
||||||
|
"PUBLIC_PROJECT": "Public Project",
|
||||||
|
"PRIVATE_PROJECT": "Private Project",
|
||||||
|
"CREATE_PROJECT": "Crear projecte",
|
||||||
|
"MAX_PRIVATE_PROJECTS": "You've reached the maximum number of private projects",
|
||||||
|
"MAX_PUBLIC_PROJECTS": "Unfortunately, you've reached the maximum number of public projects",
|
||||||
|
"CHANGE_PLANS": "change plans"
|
||||||
},
|
},
|
||||||
"WIKI": {
|
"WIKI": {
|
||||||
"PAGE_TITLE": "{{wikiPageName}} - Wiki - {{projectName}}",
|
"PAGE_TITLE": "{{wikiPageName}} - Wiki - {{projectName}}",
|
||||||
|
|
|
@ -41,7 +41,8 @@
|
||||||
"IOCAINE_TEXT": "Fühlen Sie sich von einer Aufgabe etwas erdrückt? Stellen Sie sicher, dass andere davon erfahren, indem Sie auf Locaine klicken, wenn Sie eine Aufgabe ändern. Es ist möglich, gegen dieses (fiktive) tödliche Gift immun zu werden, indem man kleine Mengen über einen Zeitraum hinweg einnimmt. Genauso, wie es möglich ist, besser in dem zu werden, was man tut, indem man gelegentlich zusätzliche Herausforderungen annimmt!",
|
"IOCAINE_TEXT": "Fühlen Sie sich von einer Aufgabe etwas erdrückt? Stellen Sie sicher, dass andere davon erfahren, indem Sie auf Locaine klicken, wenn Sie eine Aufgabe ändern. Es ist möglich, gegen dieses (fiktive) tödliche Gift immun zu werden, indem man kleine Mengen über einen Zeitraum hinweg einnimmt. Genauso, wie es möglich ist, besser in dem zu werden, was man tut, indem man gelegentlich zusätzliche Herausforderungen annimmt!",
|
||||||
"CLIENT_REQUIREMENT": "Client requirement is new requirement that was not previously expected and it is required to be part of the project",
|
"CLIENT_REQUIREMENT": "Client requirement is new requirement that was not previously expected and it is required to be part of the project",
|
||||||
"TEAM_REQUIREMENT": "Team requirement is a requirement that must exist in the project but should have no cost for the client",
|
"TEAM_REQUIREMENT": "Team requirement is a requirement that must exist in the project but should have no cost for the client",
|
||||||
"CAPSLOCK_WARNING": "Achtung! SIe schreiben in Großbuchstaben und bei dieser Eingabe ist Groß- und Kleinschreibung zu beachten",
|
"OWNER": "Project Owner",
|
||||||
|
"CAPSLOCK_WARNING": "Be careful! You are using capital letters in an input field that is case sensitive.",
|
||||||
"FORM_ERRORS": {
|
"FORM_ERRORS": {
|
||||||
"DEFAULT_MESSAGE": "Dieser Wert scheint ungültig zu sein.",
|
"DEFAULT_MESSAGE": "Dieser Wert scheint ungültig zu sein.",
|
||||||
"TYPE_EMAIL": "Dieser Wert sollte eine gültige E-Mail Adresse enthalten.",
|
"TYPE_EMAIL": "Dieser Wert sollte eine gültige E-Mail Adresse enthalten.",
|
||||||
|
@ -65,7 +66,9 @@
|
||||||
"MIN_CHECK": "Sie müssen mindestens %s auswählen.",
|
"MIN_CHECK": "Sie müssen mindestens %s auswählen.",
|
||||||
"MAX_CHECK": "Wählen Sie %s oder weniger.",
|
"MAX_CHECK": "Wählen Sie %s oder weniger.",
|
||||||
"RANGE_CHECK": "Wählen Sie zwischen %s und %s",
|
"RANGE_CHECK": "Wählen Sie zwischen %s und %s",
|
||||||
"EQUAL_TO": "Dieser Wert sollte der gleiche sein."
|
"EQUAL_TO": "Dieser Wert sollte der gleiche sein.",
|
||||||
|
"LINEWIDTH": "One or more lines is perhaps too long. Try to keep under %s characters.",
|
||||||
|
"PIKADAY": "Invalid date format, please use DD MMM YYYY (like 23 Mar 1984)"
|
||||||
},
|
},
|
||||||
"PICKERDATE": {
|
"PICKERDATE": {
|
||||||
"FORMAT": "DD MMM YYYY",
|
"FORMAT": "DD MMM YYYY",
|
||||||
|
@ -85,7 +88,7 @@
|
||||||
"SEP": "September",
|
"SEP": "September",
|
||||||
"OCT": "Oktober",
|
"OCT": "Oktober",
|
||||||
"NOV": "November",
|
"NOV": "November",
|
||||||
"DEC": "Diciember"
|
"DEC": "Dezember"
|
||||||
},
|
},
|
||||||
"WEEK_DAYS": {
|
"WEEK_DAYS": {
|
||||||
"SUN": "Sonntag",
|
"SUN": "Sonntag",
|
||||||
|
@ -97,13 +100,13 @@
|
||||||
"SAT": "Samstag"
|
"SAT": "Samstag"
|
||||||
},
|
},
|
||||||
"WEEK_DAYS_SHORT": {
|
"WEEK_DAYS_SHORT": {
|
||||||
"SUN": "Son",
|
"SUN": "So",
|
||||||
"MON": "Mon",
|
"MON": "Mo",
|
||||||
"TUE": "Die",
|
"TUE": "Di",
|
||||||
"WED": "Mit",
|
"WED": "Mi",
|
||||||
"THU": "Don",
|
"THU": "Do",
|
||||||
"FRI": "Fre",
|
"FRI": "Fr",
|
||||||
"SAT": "Sam"
|
"SAT": "Sa"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"SEE_USER_PROFILE": "Profil von {{username }} ansehen",
|
"SEE_USER_PROFILE": "Profil von {{username }} ansehen",
|
||||||
|
@ -144,13 +147,13 @@
|
||||||
},
|
},
|
||||||
"ASSIGNED_TO": {
|
"ASSIGNED_TO": {
|
||||||
"NOT_ASSIGNED": "Nicht zugeordnet",
|
"NOT_ASSIGNED": "Nicht zugeordnet",
|
||||||
"ASSIGN": "Assign",
|
"ASSIGN": "Zuweisen",
|
||||||
"DELETE_ASSIGNMENT": "Zuordnung löschen",
|
"DELETE_ASSIGNMENT": "Zuordnung löschen",
|
||||||
"REMOVE_ASSIGNED": "Zugewiesene entfernen",
|
"REMOVE_ASSIGNED": "Zugewiesene entfernen",
|
||||||
"TOO_MANY": "...zu viele Benutzer. Filtern Sie!",
|
"TOO_MANY": "...zu viele Benutzer. Filtern Sie!",
|
||||||
"CONFIRM_UNASSIGNED": "Möchten dies wirklich ohne eine Zuordnung verlassen?",
|
"CONFIRM_UNASSIGNED": "Möchten dies wirklich ohne eine Zuordnung verlassen?",
|
||||||
"TITLE_ACTION_EDIT_ASSIGNMENT": "Zuordnungen bearbeiten",
|
"TITLE_ACTION_EDIT_ASSIGNMENT": "Zuordnungen bearbeiten",
|
||||||
"SELF": "Assign to me"
|
"SELF": "An mich zuweisen"
|
||||||
},
|
},
|
||||||
"STATUS": {
|
"STATUS": {
|
||||||
"CLOSED": "Geschlossen",
|
"CLOSED": "Geschlossen",
|
||||||
|
@ -184,7 +187,7 @@
|
||||||
"SAVE": "Benutzerdefiniertes Feld speichern",
|
"SAVE": "Benutzerdefiniertes Feld speichern",
|
||||||
"EDIT": "Benutzerdefiniertes Feld bearbeiten",
|
"EDIT": "Benutzerdefiniertes Feld bearbeiten",
|
||||||
"DELETE": "Benutzerattribut löschen",
|
"DELETE": "Benutzerattribut löschen",
|
||||||
"CONFIRM_DELETE": "Remeber that all values in this custom field will be deleted.\n Are you sure you want to continue?"
|
"CONFIRM_DELETE": "Alle Werte in benutzerdefinierten Feldern werden gelöscht.\n Sind Sie sicher, dass Sie fortfahren wollen?"
|
||||||
},
|
},
|
||||||
"FILTERS": {
|
"FILTERS": {
|
||||||
"TITLE": "Filter",
|
"TITLE": "Filter",
|
||||||
|
@ -293,7 +296,7 @@
|
||||||
},
|
},
|
||||||
"REGISTER": {
|
"REGISTER": {
|
||||||
"PAGE_TITLE": "Registrieren - Taiga",
|
"PAGE_TITLE": "Registrieren - Taiga",
|
||||||
"PAGE_DESCRIPTION": "Erstellee Dein Benutzerkonto in Taiga, einer Projekt-Management Plattform für Neugründer und agile Entwickler und Designer, die ein unkompliziertes und ansprechendes Tool möchten, das die Arbeit wirklich angenehm macht. "
|
"PAGE_DESCRIPTION": "Erstelle Dein Benutzerkonto in Taiga, einer Projekt-Management Plattform für Neugründer und agile Entwickler und Designer, die ein unkompliziertes und ansprechendes Tool möchten, das die Arbeit wirklich angenehm macht."
|
||||||
},
|
},
|
||||||
"REGISTER_FORM": {
|
"REGISTER_FORM": {
|
||||||
"TITLE": "Ein neues Taiga Benutzerkonto registrieren (kostenlos)",
|
"TITLE": "Ein neues Taiga Benutzerkonto registrieren (kostenlos)",
|
||||||
|
@ -315,7 +318,8 @@
|
||||||
"PLACEHOLDER_FIELD": "Benutzername oder E-Mail-Adresse",
|
"PLACEHOLDER_FIELD": "Benutzername oder E-Mail-Adresse",
|
||||||
"ACTION_RESET_PASSWORD": "Passwort zurücksetzen",
|
"ACTION_RESET_PASSWORD": "Passwort zurücksetzen",
|
||||||
"LINK_CANCEL": "Nein, bring mich zurück. Ich denke, ich erinnere mich daran.",
|
"LINK_CANCEL": "Nein, bring mich zurück. Ich denke, ich erinnere mich daran.",
|
||||||
"SUCCESS": "<strong>Sehen Sie in Ihren Posteingang!</strong><br />Wir haben Ihnen eine E-Mail mit einer Anleitung gesendet, um ein neues Passwort festzulegen.",
|
"SUCCESS_TITLE": "Check your inbox!",
|
||||||
|
"SUCCESS_TEXT": "We sent you an email with the instructions to set a new password",
|
||||||
"ERROR": "Laut unseren Helferlein sind Sie bislang noch nicht registriert."
|
"ERROR": "Laut unseren Helferlein sind Sie bislang noch nicht registriert."
|
||||||
},
|
},
|
||||||
"CHANGE_PASSWORD": {
|
"CHANGE_PASSWORD": {
|
||||||
|
@ -331,7 +335,7 @@
|
||||||
"ERROR_PASSWORD_MATCH": "Die Passwörter stimmen nicht überein"
|
"ERROR_PASSWORD_MATCH": "Die Passwörter stimmen nicht überein"
|
||||||
},
|
},
|
||||||
"CHANGE_PASSWORD_RECOVERY_FORM": {
|
"CHANGE_PASSWORD_RECOVERY_FORM": {
|
||||||
"TITLE": "Erstellen Sie einen neuen Taiga Pass",
|
"TITLE": "Erstellen Sie einen neues Passwort",
|
||||||
"SUBTITLE": "Und hey, es empfiehlt sich, mehr eisenreiche Nahrung zu sich zu nehmen - die ist gut für's Gehirn :P",
|
"SUBTITLE": "Und hey, es empfiehlt sich, mehr eisenreiche Nahrung zu sich zu nehmen - die ist gut für's Gehirn :P",
|
||||||
"PLACEHOLDER_NEW_PASSWORD": "Neues Passwort",
|
"PLACEHOLDER_NEW_PASSWORD": "Neues Passwort",
|
||||||
"PLACEHOLDER_RE_TYPE_NEW_PASSWORD": "Wiederholen Sie die Eingabe des neuen Passworts",
|
"PLACEHOLDER_RE_TYPE_NEW_PASSWORD": "Wiederholen Sie die Eingabe des neuen Passworts",
|
||||||
|
@ -352,11 +356,11 @@
|
||||||
"PAGE_TITLE": "Home - Taiga",
|
"PAGE_TITLE": "Home - Taiga",
|
||||||
"PAGE_DESCRIPTION": "Die Taiga Homepage mit Ihren wichtigsten Projekten und all Ihren zugeordneten und beobachteten User-Stories, Aufgaben und Tickets.",
|
"PAGE_DESCRIPTION": "Die Taiga Homepage mit Ihren wichtigsten Projekten und all Ihren zugeordneten und beobachteten User-Stories, Aufgaben und Tickets.",
|
||||||
"EMPTY_WORKING_ON": "<strong>Hier sieht’s ziemlich leer aus, oder?</strong> Beginne deine Arbeit mit Taiga und wir zeigen dir hier die Stories, Tasks und Issues an denen du arbeitest.",
|
"EMPTY_WORKING_ON": "<strong>Hier sieht’s ziemlich leer aus, oder?</strong> Beginne deine Arbeit mit Taiga und wir zeigen dir hier die Stories, Tasks und Issues an denen du arbeitest.",
|
||||||
"EMPTY_WATCHING": "<strong>Follow</strong> User Stories, Tasks, Issues in your projects and be notified about its changes :)",
|
"EMPTY_WATCHING": "<strong>Folge</strong> User Stories, Tasks, Issues in deinem Projekt und erhalte Benachrichtigungen, wenn sich etwas ändert. :)",
|
||||||
"EMPTY_PROJECT_LIST": "Sie haben noch keine Projekte",
|
"EMPTY_PROJECT_LIST": "Sie haben noch keine Projekte",
|
||||||
"WORKING_ON_SECTION": "Zuletzt bearbeitet",
|
"WORKING_ON_SECTION": "Zuletzt bearbeitet",
|
||||||
"WATCHING_SECTION": "Beobachtet",
|
"WATCHING_SECTION": "Beobachtet",
|
||||||
"DASHBOARD": "Projects Dashboard"
|
"DASHBOARD": "ProjeKte Dashboard"
|
||||||
},
|
},
|
||||||
"PROJECTS": {
|
"PROJECTS": {
|
||||||
"PAGE_TITLE": "Meine Projekte - Taiga",
|
"PAGE_TITLE": "Meine Projekte - Taiga",
|
||||||
|
@ -372,8 +376,7 @@
|
||||||
"DEPRECATED": "(verworfen)",
|
"DEPRECATED": "(verworfen)",
|
||||||
"DEPRECATED_FILE": "Verworfen?",
|
"DEPRECATED_FILE": "Verworfen?",
|
||||||
"ADD": "Neuen Anhang hinzufügen. {{maxFileSizeMsg}}",
|
"ADD": "Neuen Anhang hinzufügen. {{maxFileSizeMsg}}",
|
||||||
"DROP": "Drop attachments here!",
|
"DROP": "Ziehe Anhänge hierher!",
|
||||||
"MAX_FILE_SIZE": "[Max. Größe: {{maxFileSize}}]",
|
|
||||||
"SHOW_DEPRECATED": "+ verworfene Anhänge zeigen",
|
"SHOW_DEPRECATED": "+ verworfene Anhänge zeigen",
|
||||||
"HIDE_DEPRECATED": "- verworfene Anhänge verbergen",
|
"HIDE_DEPRECATED": "- verworfene Anhänge verbergen",
|
||||||
"COUNT_DEPRECATED": "({{ counter }} verworfen)",
|
"COUNT_DEPRECATED": "({{ counter }} verworfen)",
|
||||||
|
@ -406,7 +409,9 @@
|
||||||
"TITLE": "Mitglieder verwalten",
|
"TITLE": "Mitglieder verwalten",
|
||||||
"PAGE_TITLE": "Mitgliedschaften - {{projectName}}",
|
"PAGE_TITLE": "Mitgliedschaften - {{projectName}}",
|
||||||
"ADD_BUTTON": "+ Neues Mitglied",
|
"ADD_BUTTON": "+ Neues Mitglied",
|
||||||
"ADD_BUTTON_TITLE": "Neues Mitglied hinzufügen"
|
"ADD_BUTTON_TITLE": "Neues Mitglied hinzufügen",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_ADMIN": "Unfortunately, this project has reached its limit of <strong>({{members}})</strong> allowed members.",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_OWNER": "This project has reached its limit of <strong>({{members}})</strong> allowed members. If you would like to increase that limit please contact the administrator."
|
||||||
},
|
},
|
||||||
"PROJECT_EXPORT": {
|
"PROJECT_EXPORT": {
|
||||||
"TITLE": "Exportieren",
|
"TITLE": "Exportieren",
|
||||||
|
@ -428,6 +433,10 @@
|
||||||
"DISABLE": "Deaktivieren",
|
"DISABLE": "Deaktivieren",
|
||||||
"BACKLOG": "Auftragsliste",
|
"BACKLOG": "Auftragsliste",
|
||||||
"BACKLOG_DESCRIPTION": "Verwalten Sie Ihre User-Stories, um einen organisierten Überblick der anstehenden und priorisierten Aufgaben zu erhalten.",
|
"BACKLOG_DESCRIPTION": "Verwalten Sie Ihre User-Stories, um einen organisierten Überblick der anstehenden und priorisierten Aufgaben zu erhalten.",
|
||||||
|
"NUMBER_SPRINTS": "Expected number of sprints",
|
||||||
|
"NUMBER_SPRINTS_HELP": "0 for an undetermined number",
|
||||||
|
"NUMBER_US_POINTS": "Expected total of story points",
|
||||||
|
"NUMBER_US_POINTS_HELP": "0 for an undetermined number",
|
||||||
"KANBAN": "Kanban",
|
"KANBAN": "Kanban",
|
||||||
"KANBAN_DESCRIPTION": "Organisieren Sie Ihr Projekt auf übersichtliche Art.",
|
"KANBAN_DESCRIPTION": "Organisieren Sie Ihr Projekt auf übersichtliche Art.",
|
||||||
"ISSUES": "Tickets",
|
"ISSUES": "Tickets",
|
||||||
|
@ -435,9 +444,9 @@
|
||||||
"WIKI": "Wiki",
|
"WIKI": "Wiki",
|
||||||
"WIKI_DESCRIPTION": "Fügen Sie Inhalte hinzu, ändern oder löschen Sie sie in Zusammenarbeit mit anderen. Dies ist der richtige Ort für Ihre Projektdokumentation.",
|
"WIKI_DESCRIPTION": "Fügen Sie Inhalte hinzu, ändern oder löschen Sie sie in Zusammenarbeit mit anderen. Dies ist der richtige Ort für Ihre Projektdokumentation.",
|
||||||
"MEETUP": "Zusammentreffen",
|
"MEETUP": "Zusammentreffen",
|
||||||
"MEETUP_DESCRIPTION": "Wählen Sie Ihr Videokonferenzsystem. Auch Entwickler brauchen Kontakt von Angesicht zu Angesicht. ",
|
"MEETUP_DESCRIPTION": "Choose your videoconference system.",
|
||||||
"SELECT_VIDEOCONFERENCE": "Wählen Sie ein Videokonferenzsystem",
|
"SELECT_VIDEOCONFERENCE": "Wählen Sie ein Videokonferenzsystem",
|
||||||
"SALT_CHAT_ROOM": "Wenn Sie möchten, können Sie einen Salt Code zum Namen des Chatrooms hinzufügen",
|
"SALT_CHAT_ROOM": "Add a prefix to the chatroom name",
|
||||||
"JITSI_CHAT_ROOM": "Jitsi",
|
"JITSI_CHAT_ROOM": "Jitsi",
|
||||||
"APPEARIN_CHAT_ROOM": "Erscheint in",
|
"APPEARIN_CHAT_ROOM": "Erscheint in",
|
||||||
"TALKY_CHAT_ROOM": "Gesprächig",
|
"TALKY_CHAT_ROOM": "Gesprächig",
|
||||||
|
@ -449,22 +458,31 @@
|
||||||
"PROJECT_DETAILS": "Projekt Details",
|
"PROJECT_DETAILS": "Projekt Details",
|
||||||
"PROJECT_NAME": "Projektname",
|
"PROJECT_NAME": "Projektname",
|
||||||
"PROJECT_SLUG": "Projekt Slug",
|
"PROJECT_SLUG": "Projekt Slug",
|
||||||
"NUMBER_SPRINTS": "Anzahl von Sprints (0 für unbegrenzte Anzahl)",
|
|
||||||
"NUMBER_US_POINTS": "Anzahl an US Points (0 für unbegrenzte Anzahl)",
|
|
||||||
"TAGS": "Schlagwörter",
|
"TAGS": "Schlagwörter",
|
||||||
"DESCRIPTION": "Beschreibung",
|
"DESCRIPTION": "Beschreibung",
|
||||||
"RECRUITING": "Is this project looking for people?",
|
"RECRUITING": "Is this project looking for people?",
|
||||||
"RECRUITING_MESSAGE": "Who are you looking for?",
|
"RECRUITING_MESSAGE": "Who are you looking for?",
|
||||||
"RECRUITING_PLACEHOLDER": "Define the profiles you are looking for",
|
"RECRUITING_PLACEHOLDER": "Define the profiles you are looking for",
|
||||||
"PUBLIC_PROJECT": "Öffentliches Projekt",
|
"PUBLIC_PROJECT": "Öffentliches Projekt",
|
||||||
"PUBLIC_PROJECT_DESC": "Users will be able to find and view your project",
|
|
||||||
"PRIVATE_PROJECT": "Privates Projekt",
|
"PRIVATE_PROJECT": "Privates Projekt",
|
||||||
"PRIVATE_PROJECT_DESC": "By default, this project will be hidden to the public",
|
"PRIVATE_OR_PUBLIC": "Was ist der Unterschied zwischen öffentlichen und privaten Projekten?",
|
||||||
"PRIVATE_OR_PUBLIC": "What's the difference between public and private projects?",
|
|
||||||
"DELETE": "Dieses Projekt löschen",
|
"DELETE": "Dieses Projekt löschen",
|
||||||
"LOGO_HELP": "The image will be scaled to 80x80px.",
|
"LOGO_HELP": "Das Bild wird auf 80x80px skaliert.",
|
||||||
"CHANGE_LOGO": "Change logo",
|
"CHANGE_LOGO": "Logo ändern",
|
||||||
"ACTION_USE_DEFAULT_LOGO": "Use default image"
|
"ACTION_USE_DEFAULT_LOGO": "Nutze Standardbild",
|
||||||
|
"MAX_PRIVATE_PROJECTS": "You've reached the maximum number of private projects allowed by your current plan",
|
||||||
|
"MAX_PRIVATE_PROJECTS_MEMBERS": "The maximum number of members for private projects has been exceeded",
|
||||||
|
"MAX_PUBLIC_PROJECTS": "Unfortunately, you've reached the maximum number of public projects allowed by your current plan",
|
||||||
|
"MAX_PUBLIC_PROJECTS_MEMBERS": "The project exceeds your maximum number of members for public projects",
|
||||||
|
"PROJECT_OWNER": "Project owner",
|
||||||
|
"REQUEST_OWNERSHIP": "Request ownership",
|
||||||
|
"REQUEST_OWNERSHIP_CONFIRMATION_TITLE": "Do you want to become the new project owner?",
|
||||||
|
"REQUEST_OWNERSHIP_DESC": "Request that current project owner {{name}} transfer ownership of this project to you.",
|
||||||
|
"REQUEST_OWNERSHIP_BUTTON": "Anfrage",
|
||||||
|
"REQUEST_OWNERSHIP_SUCCESS": "We'll notify the project owner",
|
||||||
|
"CHANGE_OWNER": "Change owner",
|
||||||
|
"CHANGE_OWNER_SUCCESS_TITLE": "Ok, your request has been sent!",
|
||||||
|
"CHANGE_OWNER_SUCCESS_DESC": "We will notify you by email if the project ownership request is accepted or declined"
|
||||||
},
|
},
|
||||||
"REPORTS": {
|
"REPORTS": {
|
||||||
"TITLE": "Berichte",
|
"TITLE": "Berichte",
|
||||||
|
@ -495,7 +513,8 @@
|
||||||
"ISSUE_ADD": "Fügen Sie den Tickets ein benutzerdefiniertes Feld hinzu",
|
"ISSUE_ADD": "Fügen Sie den Tickets ein benutzerdefiniertes Feld hinzu",
|
||||||
"FIELD_TYPE_TEXT": "Text",
|
"FIELD_TYPE_TEXT": "Text",
|
||||||
"FIELD_TYPE_MULTI": "Mehrzeilig",
|
"FIELD_TYPE_MULTI": "Mehrzeilig",
|
||||||
"FIELD_TYPE_DATE": "Datum"
|
"FIELD_TYPE_DATE": "Datum",
|
||||||
|
"FIELD_TYPE_URL": "Url"
|
||||||
},
|
},
|
||||||
"PROJECT_VALUES": {
|
"PROJECT_VALUES": {
|
||||||
"PAGE_TITLE": "{{sectionName}} - Projekt Werte - {{projectName}}",
|
"PAGE_TITLE": "{{sectionName}} - Projekt Werte - {{projectName}}",
|
||||||
|
@ -543,7 +562,7 @@
|
||||||
"COUNT_MEMBERS": "{{ role.members_count }} Mitglieder mit dieser Rolle",
|
"COUNT_MEMBERS": "{{ role.members_count }} Mitglieder mit dieser Rolle",
|
||||||
"TITLE_DELETE_ROLE": "Rolle löschen",
|
"TITLE_DELETE_ROLE": "Rolle löschen",
|
||||||
"REPLACEMENT_ROLE": "Alle Benutzer mit dieser Rolle werden verschoben nach",
|
"REPLACEMENT_ROLE": "Alle Benutzer mit dieser Rolle werden verschoben nach",
|
||||||
"WARNING_DELETE_ROLE": "<strong>Vorsicht, alle Rollen Bewertungen werden entfernt</strong>",
|
"WARNING_DELETE_ROLE": "Be careful! All role estimations will be removed",
|
||||||
"ERROR_DELETE_ALL": "Sie können nicht alle Werte löschen",
|
"ERROR_DELETE_ALL": "Sie können nicht alle Werte löschen",
|
||||||
"EXTERNAL_USER": "Externer Benutzer"
|
"EXTERNAL_USER": "Externer Benutzer"
|
||||||
},
|
},
|
||||||
|
@ -671,6 +690,24 @@
|
||||||
},
|
},
|
||||||
"SUBMENU_THIDPARTIES": {
|
"SUBMENU_THIDPARTIES": {
|
||||||
"TITLE": "Dienste"
|
"TITLE": "Dienste"
|
||||||
|
},
|
||||||
|
"PROJECT_TRANSFER": {
|
||||||
|
"DO_YOU_ACCEPT_PROJECT_OWNERNSHIP": "Would you like to become the new project owner?",
|
||||||
|
"PRIVATE": "Private",
|
||||||
|
"ACCEPTED_PROJECT_OWNERNSHIP": "Congratulations! You're now the new project owner.",
|
||||||
|
"REJECTED_PROJECT_OWNERNSHIP": "OK. We'll contact the current project owner",
|
||||||
|
"ACCEPT": "Akzeptieren",
|
||||||
|
"REJECT": "Reject",
|
||||||
|
"PROPOSE_OWNERSHIP": "<strong>{{owner}}</strong>, the current owner of the project <strong>{{project}}</strong> has asked that you become the new project owner.",
|
||||||
|
"ADD_COMMENT_QUESTION": "Would you like to send a question to the project owner?",
|
||||||
|
"ADD_COMMENT": "Would you like to add a comment for the project owner?",
|
||||||
|
"UNLIMITED_PROJECTS": "Unlimited",
|
||||||
|
"OWNER_MESSAGE": {
|
||||||
|
"PRIVATE": "Please remember that you can own up to <strong>{{maxProjects}}</strong> private projects. You currently own <strong>{{currentProjects}}</strong> private projects",
|
||||||
|
"PUBLIC": "Please remember that you can own up to <strong>{{maxProjects}}</strong> public projects. You currently own <strong>{{currentProjects}}</strong> public projects"
|
||||||
|
},
|
||||||
|
"CANT_BE_OWNED": "At the moment you cannot become an owner of a project of this type. If you would like to become the owner of this project, please contact the administrator so they change your account settings to enable project ownership.",
|
||||||
|
"CHANGE_MY_PLAN": "Change my plan"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"USER": {
|
"USER": {
|
||||||
|
@ -704,7 +741,7 @@
|
||||||
"PROFILE_SIDEBAR": {
|
"PROFILE_SIDEBAR": {
|
||||||
"TITLE": "Dein Profil",
|
"TITLE": "Dein Profil",
|
||||||
"DESCRIPTION": "Da andere Mitglieder sehen, dass sie ebenfalls an einem Projekt arbeiten wäre es schön, wenn Sie ein paar Informationen zu Ihrer Person angeben.",
|
"DESCRIPTION": "Da andere Mitglieder sehen, dass sie ebenfalls an einem Projekt arbeiten wäre es schön, wenn Sie ein paar Informationen zu Ihrer Person angeben.",
|
||||||
"ADD_INFO": "Bio bearbeiten"
|
"ADD_INFO": "Biographie bearbeiten"
|
||||||
},
|
},
|
||||||
"PROFILE_FAVS": {
|
"PROFILE_FAVS": {
|
||||||
"FILTER_INPUT_PLACEHOLDER": "Geben sie etwas ein...",
|
"FILTER_INPUT_PLACEHOLDER": "Geben sie etwas ein...",
|
||||||
|
@ -727,15 +764,20 @@
|
||||||
"SECTION_PROJECTS": "Projekte",
|
"SECTION_PROJECTS": "Projekte",
|
||||||
"HELP": "Sortieren Sie Ihre Projekte nach Wichtigkeit.<br/> Die ersten 10 Projekte erscheinen prominent in der Projektliste der Navigationsleiste.",
|
"HELP": "Sortieren Sie Ihre Projekte nach Wichtigkeit.<br/> Die ersten 10 Projekte erscheinen prominent in der Projektliste der Navigationsleiste.",
|
||||||
"PRIVATE": "Privates Projekt",
|
"PRIVATE": "Privates Projekt",
|
||||||
"LOOKING_FOR_PEOPLE": "This project is looking for people",
|
"LOOKING_FOR_PEOPLE": "Dieses Projekt sucht nach Mitarbeitern",
|
||||||
"FANS_COUNTER_TITLE": "{total, plural, one{ein Fan} other{# Fans}}",
|
"FANS_COUNTER_TITLE": "{total, plural, one{ein Fan} andere{# Fans}}",
|
||||||
"WATCHERS_COUNTER_TITLE": "{total, plural, one{ein Beobachter} other{# Beobachter}}",
|
"WATCHERS_COUNTER_TITLE": "{total, plural, one{ein Beobachter} andere{# Beobachter}}",
|
||||||
"MEMBERS_COUNTER_TITLE": "{total, plural, one{one member} other{# members}}",
|
"MEMBERS_COUNTER_TITLE": "{total, plural, one{one member} andere{# members}}",
|
||||||
|
"BLOCKED_PROJECT": {
|
||||||
|
"BLOCKED": "Blocked project",
|
||||||
|
"THIS_PROJECT_IS_BLOCKED": "This project is temporarily blocked",
|
||||||
|
"TO_UNBLOCK_CONTACT_THE_ADMIN_STAFF": "In order to unblock your projects, contact the administrator."
|
||||||
|
},
|
||||||
"STATS": {
|
"STATS": {
|
||||||
"PROJECT": "Projekt<br/> Punkte",
|
"PROJECT": "Projekt<br/> Punkte",
|
||||||
"DEFINED": "definierte<br/> Punkte",
|
"DEFINED": "definierte<br/> Punkte",
|
||||||
"ASSIGNED": "zugewiesene<br/> Punkte",
|
"ASSIGNED": "zugewiesene<br/> Punkte",
|
||||||
"CLOSED": "geschlossen<br/> Punkte"
|
"CLOSED": "geschlossene<br/> Punkte"
|
||||||
},
|
},
|
||||||
"SECTION": {
|
"SECTION": {
|
||||||
"SEARCH": "Suche",
|
"SEARCH": "Suche",
|
||||||
|
@ -753,7 +795,7 @@
|
||||||
"PLACEHOLDER_SEARCH": "Suchen...",
|
"PLACEHOLDER_SEARCH": "Suchen...",
|
||||||
"ACTION_CREATE_PROJECT": "Projekt anlegen",
|
"ACTION_CREATE_PROJECT": "Projekt anlegen",
|
||||||
"ACTION_IMPORT_PROJECT": "Projekt importieren",
|
"ACTION_IMPORT_PROJECT": "Projekt importieren",
|
||||||
"MANAGE_PROJECTS": "Manage projects",
|
"MANAGE_PROJECTS": "Projekte verwalten",
|
||||||
"TITLE_CREATE_PROJECT": "Projekt anlegen",
|
"TITLE_CREATE_PROJECT": "Projekt anlegen",
|
||||||
"TITLE_IMPORT_PROJECT": "Projekt importieren",
|
"TITLE_IMPORT_PROJECT": "Projekt importieren",
|
||||||
"TITLE_PRVIOUS_PROJECT": "Frühere Projekte anzeigen",
|
"TITLE_PRVIOUS_PROJECT": "Frühere Projekte anzeigen",
|
||||||
|
@ -777,6 +819,7 @@
|
||||||
"CHANGE_PASSWORD": "Passwort ändern",
|
"CHANGE_PASSWORD": "Passwort ändern",
|
||||||
"DASHBOARD_TITLE": "Dashboard",
|
"DASHBOARD_TITLE": "Dashboard",
|
||||||
"DISCOVER_TITLE": "Entdecke aktuelle Projekte",
|
"DISCOVER_TITLE": "Entdecke aktuelle Projekte",
|
||||||
|
"NEW_ITEM": "Neu",
|
||||||
"DISCOVER": "Entdecken",
|
"DISCOVER": "Entdecken",
|
||||||
"ACTION_REORDER": "Benutzen Sie Drag & Drop zum neuen Ordnen"
|
"ACTION_REORDER": "Benutzen Sie Drag & Drop zum neuen Ordnen"
|
||||||
},
|
},
|
||||||
|
@ -791,7 +834,32 @@
|
||||||
"ERROR_TOO_MANY_REQUEST": "Entschuldigung, unsere Helferlein sind derzeit sehr beschäftigt. Bitte versuchen Sie es in ein paar Minuten erneut.",
|
"ERROR_TOO_MANY_REQUEST": "Entschuldigung, unsere Helferlein sind derzeit sehr beschäftigt. Bitte versuchen Sie es in ein paar Minuten erneut.",
|
||||||
"ERROR_MESSAGE": "Unsere Helferlein haben Probleme beim Importieren Ihrer Datei: {{error_message}}",
|
"ERROR_MESSAGE": "Unsere Helferlein haben Probleme beim Importieren Ihrer Datei: {{error_message}}",
|
||||||
"ERROR_MAX_SIZE_EXCEEDED": "'{{fileName}}' ({{fileSize}}) ist zu schwierig für unsere Helferlein, versuchen Sie es bitte mit einer kleineren Datei als ({{maxFileSize}})",
|
"ERROR_MAX_SIZE_EXCEEDED": "'{{fileName}}' ({{fileSize}}) ist zu schwierig für unsere Helferlein, versuchen Sie es bitte mit einer kleineren Datei als ({{maxFileSize}})",
|
||||||
"SYNC_SUCCESS": "Ihr Projekt wurde erfolgreich importiert"
|
"SYNC_SUCCESS": "Ihr Projekt wurde erfolgreich importiert",
|
||||||
|
"PROJECT_RESTRICTIONS": {
|
||||||
|
"PROJECT_MEMBERS_DESC": "The project you are trying to import has {{members}} members, unfortunately, your current plan allows for a maximum of {{max_memberships}} members per project. If you would like to increase that limit please contact the administrator.",
|
||||||
|
"PRIVATE_PROJECTS_SPACE": {
|
||||||
|
"TITLE": "Unfortunately, your current plan does not allow for additional private projects",
|
||||||
|
"DESC": "The project you are trying to import is private. Unfortunately, your current plan does not allow for additional private projects."
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_SPACE": {
|
||||||
|
"TITLE": "Unfortunately, your current plan does not allow for additional private projects",
|
||||||
|
"DESC": "The project you are trying to import is public. Unfortunately, your current plan does not allow additional public projects."
|
||||||
|
},
|
||||||
|
"PRIVATE_PROJECTS_MEMBERS": {
|
||||||
|
"TITLE": "Your current plan allows for a maximum of {{max_memberships}} members per private project"
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_MEMBERS": {
|
||||||
|
"TITLE": "Your current plan allows for a maximum of {{max_memberships}} members per public project."
|
||||||
|
},
|
||||||
|
"PRIVATE_PROJECTS_SPACE_MEMBERS": {
|
||||||
|
"TITLE": "Unfortunately your current plan doesn't allow additional private projects or an increase of more than {{max_memberships}} members per private project",
|
||||||
|
"DESC": "The project that you are trying to import is private and has {{members}} members."
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_SPACE_MEMBERS": {
|
||||||
|
"TITLE": "Unfortunately your current plan doesn't allow additional public projects or an increase of more than {{max_memberships}} members per public project",
|
||||||
|
"DESC": "The project that you are trying to import is public and has more than {{members}} members."
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"LIKE_BUTTON": {
|
"LIKE_BUTTON": {
|
||||||
"LIKE": "Gefällt mir",
|
"LIKE": "Gefällt mir",
|
||||||
|
@ -819,8 +887,11 @@
|
||||||
"DELETE_ACCOUNT": {
|
"DELETE_ACCOUNT": {
|
||||||
"SECTION_NAME": "Dein Taiga Benutzerkonto löschen",
|
"SECTION_NAME": "Dein Taiga Benutzerkonto löschen",
|
||||||
"CONFIRM": "Sind Sie sicher, dass Sie Ihr Taiga Benutzerkonto löschen wollen?",
|
"CONFIRM": "Sind Sie sicher, dass Sie Ihr Taiga Benutzerkonto löschen wollen?",
|
||||||
"SUBTITLE": "Wir werden Sie vermissen! :-(",
|
"NEWSLETTER_LABEL_TEXT": "Ich möchte keinen Newsletter mehr erhalten",
|
||||||
"NEWSLETTER_LABEL_TEXT": "Ich möchte keinen Newsletter mehr erhalten"
|
"CANCEL": "Back to settings",
|
||||||
|
"ACCEPT": "Delete account",
|
||||||
|
"BLOCK_PROJECT": "Note that all the projects you own projects will be <strong>blocked</strong> after you delete your account. If you do want a project blocked, transfer ownership to another member of each project prior to deleting your account.",
|
||||||
|
"SUBTITLE": "Sorry to see you go. We'll be here if you should ever consider us again! :("
|
||||||
},
|
},
|
||||||
"DELETE_PROJECT": {
|
"DELETE_PROJECT": {
|
||||||
"TITLE": "Projekt löschen",
|
"TITLE": "Projekt löschen",
|
||||||
|
@ -876,7 +947,25 @@
|
||||||
},
|
},
|
||||||
"CREATE_MEMBER": {
|
"CREATE_MEMBER": {
|
||||||
"PLACEHOLDER_INVITATION_TEXT": "(Optional) Fügen Sie einen persönlichen Text zur Einladung hinzu. Erzählen Sie Ihren neuen Mitgliedern etwas Schönes. ;-)",
|
"PLACEHOLDER_INVITATION_TEXT": "(Optional) Fügen Sie einen persönlichen Text zur Einladung hinzu. Erzählen Sie Ihren neuen Mitgliedern etwas Schönes. ;-)",
|
||||||
"PLACEHOLDER_TYPE_EMAIL": "Geben Sie eine E-Mail ein"
|
"PLACEHOLDER_TYPE_EMAIL": "Geben Sie eine E-Mail ein",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_OWNER": "Unfortunately, this project can't have more than <strong>{{maxMembers}}</strong> members.<br> If you would like to increase the current limit, please contact the administrator.",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE": "Unfortunately, this project can't have more than <strong>{{maxMembers}}</strong> members."
|
||||||
|
},
|
||||||
|
"LEAVE_PROJECT_WARNING": {
|
||||||
|
"TITLE": "Unfortunately, this project can't be left without an owner",
|
||||||
|
"CURRENT_USER_OWNER": {
|
||||||
|
"DESC": "You are the current owner of this project. Before leaving, please transfer ownership to someone else.",
|
||||||
|
"BUTTON": "Change the project owner"
|
||||||
|
},
|
||||||
|
"OTHER_USER_OWNER": {
|
||||||
|
"DESC": "Unfortunately, you can't delete a member who is also the current project owner. First, please assign a new project owner.",
|
||||||
|
"BUTTON": "Request project owner change"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"CHANGE_OWNER": {
|
||||||
|
"TITLE": "Who do you want to be the new project owner?",
|
||||||
|
"ADD_COMMENT": "Add comment",
|
||||||
|
"BUTTON": "Ask this project member to become the new project owner"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"US": {
|
"US": {
|
||||||
|
@ -914,7 +1003,7 @@
|
||||||
"TYPE_NEW_COMMENT": "Geben Sie hier einen neuen Kommentar ein",
|
"TYPE_NEW_COMMENT": "Geben Sie hier einen neuen Kommentar ein",
|
||||||
"SHOW_DELETED": "Gelöschten Kommentar anzeigen",
|
"SHOW_DELETED": "Gelöschten Kommentar anzeigen",
|
||||||
"HIDE_DELETED": "Gelöschten Kommentar ausblenden",
|
"HIDE_DELETED": "Gelöschten Kommentar ausblenden",
|
||||||
"DELETE": "Delete comment",
|
"DELETE": "Kommentar löschen",
|
||||||
"RESTORE": "Kommentar wiederherstellen"
|
"RESTORE": "Kommentar wiederherstellen"
|
||||||
},
|
},
|
||||||
"ACTIVITY": {
|
"ACTIVITY": {
|
||||||
|
@ -992,7 +1081,7 @@
|
||||||
"EDIT_SPRINT": "Sprint bearbeiten",
|
"EDIT_SPRINT": "Sprint bearbeiten",
|
||||||
"TOTAL_POINTS": "insgesamt",
|
"TOTAL_POINTS": "insgesamt",
|
||||||
"STATUS_NAME": "Status Bezeichnung",
|
"STATUS_NAME": "Status Bezeichnung",
|
||||||
"SORTABLE_FILTER_ERROR": "Es ist kein Drag & Drop über dem Backlog möglich wenn Filter geöffnet sind.",
|
"SORTABLE_FILTER_ERROR": "Es ist kein Drag & Drop über dem Backlog möglich, wenn Filter geöffnet sind.",
|
||||||
"DOOMLINE": "Projekt Umfang [Doomline]",
|
"DOOMLINE": "Projekt Umfang [Doomline]",
|
||||||
"CHART": {
|
"CHART": {
|
||||||
"XAXIS_LABEL": "Sprints",
|
"XAXIS_LABEL": "Sprints",
|
||||||
|
@ -1037,13 +1126,13 @@
|
||||||
},
|
},
|
||||||
"SPRINTS": {
|
"SPRINTS": {
|
||||||
"TITLE": "SPRINTS",
|
"TITLE": "SPRINTS",
|
||||||
"DATE": "DD MMM YYYY",
|
"DATE": "TT MMM JJJJ",
|
||||||
"LINK_TASKBOARD": "Sprint Taskboard",
|
"LINK_TASKBOARD": "Sprint Taskboard",
|
||||||
"TITLE_LINK_TASKBOARD": "Gehe zu Taskboard von \"{{name}}\"",
|
"TITLE_LINK_TASKBOARD": "Gehe zu Taskboard von \"{{name}}\"",
|
||||||
"NUMBER_SPRINTS": "<br/>Sprints",
|
"NUMBER_SPRINTS": "<br/>Sprints",
|
||||||
"EMPTY": "Derzeit sind keine Sprints vorhanden",
|
"EMPTY": "Derzeit sind keine Sprints vorhanden",
|
||||||
"WARNING_EMPTY_SPRINT_ANONYMOUS": "This sprint has no User Stories",
|
"WARNING_EMPTY_SPRINT_ANONYMOUS": "Dieser Sprint enthält keiner User Stories",
|
||||||
"WARNING_EMPTY_SPRINT": "Ziehe Stories aus deiner Auftragsliste her um einen neuen Sprint zu starten",
|
"WARNING_EMPTY_SPRINT": "Ziehe Stories aus deiner Auftragsliste her, um einen neuen Sprint zu starten",
|
||||||
"TITLE_ACTION_NEW_SPRINT": "Neuen Sprint hinzufügen",
|
"TITLE_ACTION_NEW_SPRINT": "Neuen Sprint hinzufügen",
|
||||||
"TEXT_ACTION_NEW_SPRINT": "Du möchtest einen neuen Sprint in Deinem Projekt erstellen",
|
"TEXT_ACTION_NEW_SPRINT": "Du möchtest einen neuen Sprint in Deinem Projekt erstellen",
|
||||||
"ACTION_SHOW_CLOSED_SPRINTS": "Geschlossene Sprints anzeigen",
|
"ACTION_SHOW_CLOSED_SPRINTS": "Geschlossene Sprints anzeigen",
|
||||||
|
@ -1304,17 +1393,23 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"WIZARD": {
|
"WIZARD": {
|
||||||
"SECTION_TITLE_CHOOSE_TEMPLATE": "Wählen Sie ein Template",
|
|
||||||
"CHOOSE_TEMPLATE_TEXT": "Welches Template würde besser zu Ihrem Projekt passen?",
|
|
||||||
"SECTION_TITLE_CREATE_PROJECT": "Projekt erstellen",
|
"SECTION_TITLE_CREATE_PROJECT": "Projekt erstellen",
|
||||||
"CREATE_PROJECT_TEXT": "Frisch und sauber. Wie aufregend!",
|
"CREATE_PROJECT_TEXT": "Frisch und sauber. Wie aufregend!",
|
||||||
"PROGRESS_TEMPLATE_SELECTION": "Template Auswahl ",
|
"CHOOSE_TEMPLATE": "Which template fits your project best?",
|
||||||
"PROGRESS_NAME_DESCRIPTION": "Name und Beschreibung"
|
"CHOOSE_TEMPLATE_TITLE": "More info about project templates",
|
||||||
|
"CHOOSE_TEMPLATE_INFO": "More info",
|
||||||
|
"PROJECT_DETAILS": "Project Details",
|
||||||
|
"PUBLIC_PROJECT": "Public Project",
|
||||||
|
"PRIVATE_PROJECT": "Private Project",
|
||||||
|
"CREATE_PROJECT": "Projekt anlegen",
|
||||||
|
"MAX_PRIVATE_PROJECTS": "You've reached the maximum number of private projects",
|
||||||
|
"MAX_PUBLIC_PROJECTS": "Unfortunately, you've reached the maximum number of public projects",
|
||||||
|
"CHANGE_PLANS": "change plans"
|
||||||
},
|
},
|
||||||
"WIKI": {
|
"WIKI": {
|
||||||
"PAGE_TITLE": "{{wikiPageName}} - Wiki - {{projectName}}",
|
"PAGE_TITLE": "{{wikiPageName}} - Wiki - {{projectName}}",
|
||||||
"PAGE_DESCRIPTION": "Letzte Bearbeitung am {{lastModifiedDate}} ({{totalEditions}} Gesamtzahl der Bearbeitungen) Inhalt: {{ wikiPageContent }}",
|
"PAGE_DESCRIPTION": "Letzte Bearbeitung am {{lastModifiedDate}} ({{totalEditions}} Gesamtzahl der Bearbeitungen) Inhalt: {{ wikiPageContent }}",
|
||||||
"DATETIME": "DD MMM YYYY HH:mm",
|
"DATETIME": "TT MMM JJJJ hh:mm",
|
||||||
"PLACEHOLDER_PAGE": "Schreiben Sie Ihre Wiki Seite",
|
"PLACEHOLDER_PAGE": "Schreiben Sie Ihre Wiki Seite",
|
||||||
"REMOVE": "Diese Wiki Seite entfernen",
|
"REMOVE": "Diese Wiki Seite entfernen",
|
||||||
"DELETE_LIGHTBOX_TITLE": "Wiki Seite löschen",
|
"DELETE_LIGHTBOX_TITLE": "Wiki Seite löschen",
|
||||||
|
@ -1380,14 +1475,14 @@
|
||||||
"PAGE_DESCRIPTION": "Eine externe Anwendung benötigt eine Genehmigung",
|
"PAGE_DESCRIPTION": "Eine externe Anwendung benötigt eine Genehmigung",
|
||||||
"AUTHORIZATION_REQUEST": "{{application}} erlauben ihren Taiga Account zu benutzen?",
|
"AUTHORIZATION_REQUEST": "{{application}} erlauben ihren Taiga Account zu benutzen?",
|
||||||
"LOGIN_WITH_ANOTHER_USER": "Mit einem anderen Benutzer einloggen.",
|
"LOGIN_WITH_ANOTHER_USER": "Mit einem anderen Benutzer einloggen.",
|
||||||
"AUTHORIZE_APP": "App autorisieren",
|
"AUTHORIZE_APP": "Anwendung autorisieren",
|
||||||
"CANCEL": "Abbrechen"
|
"CANCEL": "Abbrechen"
|
||||||
},
|
},
|
||||||
"JOYRIDE": {
|
"JOYRIDE": {
|
||||||
"NAV": {
|
"NAV": {
|
||||||
"NEXT": "Weiter",
|
"NEXT": "Weiter",
|
||||||
"BACK": "Back",
|
"BACK": "Zurück",
|
||||||
"SKIP": "Skip",
|
"SKIP": "Überspringen",
|
||||||
"DONE": "Erledigt"
|
"DONE": "Erledigt"
|
||||||
},
|
},
|
||||||
"DASHBOARD": {
|
"DASHBOARD": {
|
||||||
|
@ -1397,7 +1492,7 @@
|
||||||
},
|
},
|
||||||
"STEP2": {
|
"STEP2": {
|
||||||
"TITLE": "Zuletzt bearbeitet",
|
"TITLE": "Zuletzt bearbeitet",
|
||||||
"TEXT": "Here wirst du deine User Stories, Tasks und Issues sehen, an denen du arbeitest."
|
"TEXT": "Hier wirst du deine User Stories, Tasks und Issues sehen, an denen du arbeitest."
|
||||||
},
|
},
|
||||||
"STEP3": {
|
"STEP3": {
|
||||||
"TITLE": "Beobachtet",
|
"TITLE": "Beobachtet",
|
||||||
|
@ -1455,7 +1550,7 @@
|
||||||
"MOST_LIKED": "Most liked",
|
"MOST_LIKED": "Most liked",
|
||||||
"MOST_LIKED_EMPTY": "There are no LIKED projects yet",
|
"MOST_LIKED_EMPTY": "There are no LIKED projects yet",
|
||||||
"VIEW_MORE": "View more",
|
"VIEW_MORE": "View more",
|
||||||
"RECRUITING": "This project is looking for people",
|
"RECRUITING": "Dieses Projekt sucht nach Mitarbeitern",
|
||||||
"FEATURED": "Featured Projects",
|
"FEATURED": "Featured Projects",
|
||||||
"EMPTY": "There are no projects to show with this search criteria.<br> Try again!",
|
"EMPTY": "There are no projects to show with this search criteria.<br> Try again!",
|
||||||
"FILTERS": {
|
"FILTERS": {
|
||||||
|
@ -1463,18 +1558,18 @@
|
||||||
"KANBAN": "Kanban",
|
"KANBAN": "Kanban",
|
||||||
"SCRUM": "Scrum",
|
"SCRUM": "Scrum",
|
||||||
"PEOPLE": "Looking for people",
|
"PEOPLE": "Looking for people",
|
||||||
"WEEK": "Last week",
|
"WEEK": "Letzte Woche",
|
||||||
"MONTH": "Last month",
|
"MONTH": "Letzter Monat",
|
||||||
"YEAR": "Last year",
|
"YEAR": "Letztes Jahr",
|
||||||
"ALL_TIME": "All time",
|
"ALL_TIME": "All time",
|
||||||
"CLEAR": "Clear filters"
|
"CLEAR": "Filter zurücksetzen"
|
||||||
},
|
},
|
||||||
"SEARCH": {
|
"SEARCH": {
|
||||||
"PAGE_TITLE": "Search - Discover projects - Taiga",
|
"PAGE_TITLE": "Search - Discover projects - Taiga",
|
||||||
"PAGE_DESCRIPTION": "Searchable directory of Public Projects in Taiga. Explore backlogs, timelines, issues, and teams. Check out the most liked or most active projects. Filter by Kanban or Scrum.",
|
"PAGE_DESCRIPTION": "Searchable directory of Public Projects in Taiga. Explore backlogs, timelines, issues, and teams. Check out the most liked or most active projects. Filter by Kanban or Scrum.",
|
||||||
"INPUT_PLACEHOLDER": "Geben sie etwas ein...",
|
"INPUT_PLACEHOLDER": "Geben sie etwas ein...",
|
||||||
"ACTION_TITLE": "Suche",
|
"ACTION_TITLE": "Suche",
|
||||||
"RESULTS": "Search results"
|
"RESULTS": "Suchergebnisse"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -41,7 +41,8 @@
|
||||||
"IOCAINE_TEXT": "Feeling a bit overwhelmed by a task? Make sure others know about it by clicking on Iocaine when editing a task. It's possible to become immune to this (fictional) deadly poison by consuming small amounts over time just as it's possible to get better at what you do by occasionally taking on extra challenges!",
|
"IOCAINE_TEXT": "Feeling a bit overwhelmed by a task? Make sure others know about it by clicking on Iocaine when editing a task. It's possible to become immune to this (fictional) deadly poison by consuming small amounts over time just as it's possible to get better at what you do by occasionally taking on extra challenges!",
|
||||||
"CLIENT_REQUIREMENT": "Client requirement is new requirement that was not previously expected and it is required to be part of the project",
|
"CLIENT_REQUIREMENT": "Client requirement is new requirement that was not previously expected and it is required to be part of the project",
|
||||||
"TEAM_REQUIREMENT": "Team requirement is a requirement that must exist in the project but should have no cost for the client",
|
"TEAM_REQUIREMENT": "Team requirement is a requirement that must exist in the project but should have no cost for the client",
|
||||||
"CAPSLOCK_WARNING": "Be careful! You're writing with capital letters and this input is case sensitive.",
|
"OWNER": "Project Owner",
|
||||||
|
"CAPSLOCK_WARNING": "Be careful! You are using capital letters in an input field that is case sensitive.",
|
||||||
"FORM_ERRORS": {
|
"FORM_ERRORS": {
|
||||||
"DEFAULT_MESSAGE": "This value seems to be invalid.",
|
"DEFAULT_MESSAGE": "This value seems to be invalid.",
|
||||||
"TYPE_EMAIL": "This value should be a valid email.",
|
"TYPE_EMAIL": "This value should be a valid email.",
|
||||||
|
@ -65,7 +66,9 @@
|
||||||
"MIN_CHECK": "You must select at least %s choices.",
|
"MIN_CHECK": "You must select at least %s choices.",
|
||||||
"MAX_CHECK": "You must select %s choices or less.",
|
"MAX_CHECK": "You must select %s choices or less.",
|
||||||
"RANGE_CHECK": "You must select between %s and %s choices.",
|
"RANGE_CHECK": "You must select between %s and %s choices.",
|
||||||
"EQUAL_TO": "This value should be the same."
|
"EQUAL_TO": "This value should be the same.",
|
||||||
|
"LINEWIDTH": "One or more lines is perhaps too long. Try to keep under %s characters.",
|
||||||
|
"PIKADAY": "Invalid date format, please use DD MMM YYYY (like 23 Mar 1984)"
|
||||||
},
|
},
|
||||||
"PICKERDATE": {
|
"PICKERDATE": {
|
||||||
"FORMAT": "DD MMM YYYY",
|
"FORMAT": "DD MMM YYYY",
|
||||||
|
@ -315,7 +318,8 @@
|
||||||
"PLACEHOLDER_FIELD": "Username or email",
|
"PLACEHOLDER_FIELD": "Username or email",
|
||||||
"ACTION_RESET_PASSWORD": "Reset Password",
|
"ACTION_RESET_PASSWORD": "Reset Password",
|
||||||
"LINK_CANCEL": "Nah, take me back. I think I remember it.",
|
"LINK_CANCEL": "Nah, take me back. I think I remember it.",
|
||||||
"SUCCESS": "<strong>Check your inbox!</strong><br />We have sent you an email with the instructions to set a new password",
|
"SUCCESS_TITLE": "Check your inbox!",
|
||||||
|
"SUCCESS_TEXT": "We sent you an email with the instructions to set a new password",
|
||||||
"ERROR": "According to our Oompa Loompas, your are not registered yet."
|
"ERROR": "According to our Oompa Loompas, your are not registered yet."
|
||||||
},
|
},
|
||||||
"CHANGE_PASSWORD": {
|
"CHANGE_PASSWORD": {
|
||||||
|
@ -405,7 +409,9 @@
|
||||||
"TITLE": "Manage members",
|
"TITLE": "Manage members",
|
||||||
"PAGE_TITLE": "Memberships - {{projectName}}",
|
"PAGE_TITLE": "Memberships - {{projectName}}",
|
||||||
"ADD_BUTTON": "+ New member",
|
"ADD_BUTTON": "+ New member",
|
||||||
"ADD_BUTTON_TITLE": "Add new member"
|
"ADD_BUTTON_TITLE": "Add new member",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_ADMIN": "Unfortunately, this project has reached its limit of <strong>({{members}})</strong> allowed members.",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_OWNER": "This project has reached its limit of <strong>({{members}})</strong> allowed members. If you would like to increase that limit please contact the administrator."
|
||||||
},
|
},
|
||||||
"PROJECT_EXPORT": {
|
"PROJECT_EXPORT": {
|
||||||
"TITLE": "Export",
|
"TITLE": "Export",
|
||||||
|
@ -427,6 +433,10 @@
|
||||||
"DISABLE": "Disable",
|
"DISABLE": "Disable",
|
||||||
"BACKLOG": "Backlog",
|
"BACKLOG": "Backlog",
|
||||||
"BACKLOG_DESCRIPTION": "Manage your user stories to maintain an organized view of upcoming and prioritized work.",
|
"BACKLOG_DESCRIPTION": "Manage your user stories to maintain an organized view of upcoming and prioritized work.",
|
||||||
|
"NUMBER_SPRINTS": "Expected number of sprints",
|
||||||
|
"NUMBER_SPRINTS_HELP": "0 for an undetermined number",
|
||||||
|
"NUMBER_US_POINTS": "Expected total of story points",
|
||||||
|
"NUMBER_US_POINTS_HELP": "0 for an undetermined number",
|
||||||
"KANBAN": "Kanban",
|
"KANBAN": "Kanban",
|
||||||
"KANBAN_DESCRIPTION": "Organize your project in a lean way with this board.",
|
"KANBAN_DESCRIPTION": "Organize your project in a lean way with this board.",
|
||||||
"ISSUES": "Issues",
|
"ISSUES": "Issues",
|
||||||
|
@ -434,9 +444,9 @@
|
||||||
"WIKI": "Wiki",
|
"WIKI": "Wiki",
|
||||||
"WIKI_DESCRIPTION": "Add, modify, or delete content in collaboration with others. This is the right place for your project documentation.",
|
"WIKI_DESCRIPTION": "Add, modify, or delete content in collaboration with others. This is the right place for your project documentation.",
|
||||||
"MEETUP": "Meet Up",
|
"MEETUP": "Meet Up",
|
||||||
"MEETUP_DESCRIPTION": "Choose your videoconference system. Even developers need face to face contact.",
|
"MEETUP_DESCRIPTION": "Choose your videoconference system.",
|
||||||
"SELECT_VIDEOCONFERENCE": "Select a videoconference system",
|
"SELECT_VIDEOCONFERENCE": "Select a videoconference system",
|
||||||
"SALT_CHAT_ROOM": "If you want you can append a salt code to the name of the chat room",
|
"SALT_CHAT_ROOM": "Add a prefix to the chatroom name",
|
||||||
"JITSI_CHAT_ROOM": "Jitsi",
|
"JITSI_CHAT_ROOM": "Jitsi",
|
||||||
"APPEARIN_CHAT_ROOM": "AppearIn",
|
"APPEARIN_CHAT_ROOM": "AppearIn",
|
||||||
"TALKY_CHAT_ROOM": "Talky",
|
"TALKY_CHAT_ROOM": "Talky",
|
||||||
|
@ -448,22 +458,31 @@
|
||||||
"PROJECT_DETAILS": "Project details",
|
"PROJECT_DETAILS": "Project details",
|
||||||
"PROJECT_NAME": "Project name",
|
"PROJECT_NAME": "Project name",
|
||||||
"PROJECT_SLUG": "Project slug",
|
"PROJECT_SLUG": "Project slug",
|
||||||
"NUMBER_SPRINTS": "Number of sprints (0 for an undetermined quantity)",
|
|
||||||
"NUMBER_US_POINTS": "Number of US points (0 for an undetermined quantity)",
|
|
||||||
"TAGS": "Tags",
|
"TAGS": "Tags",
|
||||||
"DESCRIPTION": "Description",
|
"DESCRIPTION": "Description",
|
||||||
"RECRUITING": "Is this project looking for people?",
|
"RECRUITING": "Is this project looking for people?",
|
||||||
"RECRUITING_MESSAGE": "Who are you looking for?",
|
"RECRUITING_MESSAGE": "Who are you looking for?",
|
||||||
"RECRUITING_PLACEHOLDER": "Define the profiles you are looking for",
|
"RECRUITING_PLACEHOLDER": "Define the profiles you are looking for",
|
||||||
"PUBLIC_PROJECT": "Public project",
|
"PUBLIC_PROJECT": "Public project",
|
||||||
"PUBLIC_PROJECT_DESC": "Users will be able to find and view your project",
|
|
||||||
"PRIVATE_PROJECT": "Private project",
|
"PRIVATE_PROJECT": "Private project",
|
||||||
"PRIVATE_PROJECT_DESC": "By default, this project will be hidden to the public",
|
|
||||||
"PRIVATE_OR_PUBLIC": "What's the difference between public and private projects?",
|
"PRIVATE_OR_PUBLIC": "What's the difference between public and private projects?",
|
||||||
"DELETE": "Delete this project",
|
"DELETE": "Delete this project",
|
||||||
"LOGO_HELP": "The image will be scaled to 80x80px.",
|
"LOGO_HELP": "The image will be scaled to 80x80px.",
|
||||||
"CHANGE_LOGO": "Change logo",
|
"CHANGE_LOGO": "Change logo",
|
||||||
"ACTION_USE_DEFAULT_LOGO": "Use default image"
|
"ACTION_USE_DEFAULT_LOGO": "Use default image",
|
||||||
|
"MAX_PRIVATE_PROJECTS": "You've reached the maximum number of private projects allowed by your current plan",
|
||||||
|
"MAX_PRIVATE_PROJECTS_MEMBERS": "The maximum number of members for private projects has been exceeded",
|
||||||
|
"MAX_PUBLIC_PROJECTS": "Unfortunately, you've reached the maximum number of public projects allowed by your current plan",
|
||||||
|
"MAX_PUBLIC_PROJECTS_MEMBERS": "The project exceeds your maximum number of members for public projects",
|
||||||
|
"PROJECT_OWNER": "Project owner",
|
||||||
|
"REQUEST_OWNERSHIP": "Request ownership",
|
||||||
|
"REQUEST_OWNERSHIP_CONFIRMATION_TITLE": "Do you want to become the new project owner?",
|
||||||
|
"REQUEST_OWNERSHIP_DESC": "Request that current project owner {{name}} transfer ownership of this project to you.",
|
||||||
|
"REQUEST_OWNERSHIP_BUTTON": "Request",
|
||||||
|
"REQUEST_OWNERSHIP_SUCCESS": "We'll notify the project owner",
|
||||||
|
"CHANGE_OWNER": "Change owner",
|
||||||
|
"CHANGE_OWNER_SUCCESS_TITLE": "Ok, your request has been sent!",
|
||||||
|
"CHANGE_OWNER_SUCCESS_DESC": "We will notify you by email if the project ownership request is accepted or declined"
|
||||||
},
|
},
|
||||||
"REPORTS": {
|
"REPORTS": {
|
||||||
"TITLE": "Reports",
|
"TITLE": "Reports",
|
||||||
|
@ -494,7 +513,8 @@
|
||||||
"ISSUE_ADD": "Add a custom field in issues",
|
"ISSUE_ADD": "Add a custom field in issues",
|
||||||
"FIELD_TYPE_TEXT": "Text",
|
"FIELD_TYPE_TEXT": "Text",
|
||||||
"FIELD_TYPE_MULTI": "Multi-line",
|
"FIELD_TYPE_MULTI": "Multi-line",
|
||||||
"FIELD_TYPE_DATE": "Date"
|
"FIELD_TYPE_DATE": "Date",
|
||||||
|
"FIELD_TYPE_URL": "Url"
|
||||||
},
|
},
|
||||||
"PROJECT_VALUES": {
|
"PROJECT_VALUES": {
|
||||||
"PAGE_TITLE": "{{sectionName}} - Project values - {{projectName}}",
|
"PAGE_TITLE": "{{sectionName}} - Project values - {{projectName}}",
|
||||||
|
@ -542,7 +562,7 @@
|
||||||
"COUNT_MEMBERS": "{{ role.members_count }} members with this role",
|
"COUNT_MEMBERS": "{{ role.members_count }} members with this role",
|
||||||
"TITLE_DELETE_ROLE": "Delete Role",
|
"TITLE_DELETE_ROLE": "Delete Role",
|
||||||
"REPLACEMENT_ROLE": "All the users with this role will be moved to",
|
"REPLACEMENT_ROLE": "All the users with this role will be moved to",
|
||||||
"WARNING_DELETE_ROLE": "<strong>Be careful, all role estimations will be removed</strong>",
|
"WARNING_DELETE_ROLE": "Be careful! All role estimations will be removed",
|
||||||
"ERROR_DELETE_ALL": "You can't delete all values",
|
"ERROR_DELETE_ALL": "You can't delete all values",
|
||||||
"EXTERNAL_USER": "External user"
|
"EXTERNAL_USER": "External user"
|
||||||
},
|
},
|
||||||
|
@ -670,6 +690,24 @@
|
||||||
},
|
},
|
||||||
"SUBMENU_THIDPARTIES": {
|
"SUBMENU_THIDPARTIES": {
|
||||||
"TITLE": "Services"
|
"TITLE": "Services"
|
||||||
|
},
|
||||||
|
"PROJECT_TRANSFER": {
|
||||||
|
"DO_YOU_ACCEPT_PROJECT_OWNERNSHIP": "Would you like to become the new project owner?",
|
||||||
|
"PRIVATE": "Private",
|
||||||
|
"ACCEPTED_PROJECT_OWNERNSHIP": "Congratulations! You're now the new project owner.",
|
||||||
|
"REJECTED_PROJECT_OWNERNSHIP": "OK. We'll contact the current project owner",
|
||||||
|
"ACCEPT": "Accept",
|
||||||
|
"REJECT": "Reject",
|
||||||
|
"PROPOSE_OWNERSHIP": "<strong>{{owner}}</strong>, the current owner of the project <strong>{{project}}</strong> has asked that you become the new project owner.",
|
||||||
|
"ADD_COMMENT_QUESTION": "Would you like to send a question to the project owner?",
|
||||||
|
"ADD_COMMENT": "Would you like to add a comment for the project owner?",
|
||||||
|
"UNLIMITED_PROJECTS": "Unlimited",
|
||||||
|
"OWNER_MESSAGE": {
|
||||||
|
"PRIVATE": "Please remember that you can own up to <strong>{{maxProjects}}</strong> private projects. You currently own <strong>{{currentProjects}}</strong> private projects",
|
||||||
|
"PUBLIC": "Please remember that you can own up to <strong>{{maxProjects}}</strong> public projects. You currently own <strong>{{currentProjects}}</strong> public projects"
|
||||||
|
},
|
||||||
|
"CANT_BE_OWNED": "At the moment you cannot become an owner of a project of this type. If you would like to become the owner of this project, please contact the administrator so they change your account settings to enable project ownership.",
|
||||||
|
"CHANGE_MY_PLAN": "Change my plan"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"USER": {
|
"USER": {
|
||||||
|
@ -730,6 +768,11 @@
|
||||||
"FANS_COUNTER_TITLE": "{total, plural, one{one fan} other{# fans}}",
|
"FANS_COUNTER_TITLE": "{total, plural, one{one fan} other{# fans}}",
|
||||||
"WATCHERS_COUNTER_TITLE": "{total, plural, one{one watcher} other{# watchers}}",
|
"WATCHERS_COUNTER_TITLE": "{total, plural, one{one watcher} other{# watchers}}",
|
||||||
"MEMBERS_COUNTER_TITLE": "{total, plural, one{one member} other{# members}}",
|
"MEMBERS_COUNTER_TITLE": "{total, plural, one{one member} other{# members}}",
|
||||||
|
"BLOCKED_PROJECT": {
|
||||||
|
"BLOCKED": "Blocked project",
|
||||||
|
"THIS_PROJECT_IS_BLOCKED": "This project is temporarily blocked",
|
||||||
|
"TO_UNBLOCK_CONTACT_THE_ADMIN_STAFF": "In order to unblock your projects, contact the administrator."
|
||||||
|
},
|
||||||
"STATS": {
|
"STATS": {
|
||||||
"PROJECT": "project<br/> points",
|
"PROJECT": "project<br/> points",
|
||||||
"DEFINED": "defined<br/> points",
|
"DEFINED": "defined<br/> points",
|
||||||
|
@ -776,6 +819,7 @@
|
||||||
"CHANGE_PASSWORD": "Change password",
|
"CHANGE_PASSWORD": "Change password",
|
||||||
"DASHBOARD_TITLE": "Dashboard",
|
"DASHBOARD_TITLE": "Dashboard",
|
||||||
"DISCOVER_TITLE": "Discover trending projects",
|
"DISCOVER_TITLE": "Discover trending projects",
|
||||||
|
"NEW_ITEM": "New",
|
||||||
"DISCOVER": "Discover",
|
"DISCOVER": "Discover",
|
||||||
"ACTION_REORDER": "Drag & drop to reorder"
|
"ACTION_REORDER": "Drag & drop to reorder"
|
||||||
},
|
},
|
||||||
|
@ -790,7 +834,32 @@
|
||||||
"ERROR_TOO_MANY_REQUEST": "Sorry, our Oompa Loompas are very busy right now. Please try again in a few minutes.",
|
"ERROR_TOO_MANY_REQUEST": "Sorry, our Oompa Loompas are very busy right now. Please try again in a few minutes.",
|
||||||
"ERROR_MESSAGE": "Our Oompa Loompas have some problems importing your dump data: {{error_message}}",
|
"ERROR_MESSAGE": "Our Oompa Loompas have some problems importing your dump data: {{error_message}}",
|
||||||
"ERROR_MAX_SIZE_EXCEEDED": "'{{fileName}}' ({{fileSize}}) is too heavy for our Oompa Loompas, try it with a smaller than ({{maxFileSize}})",
|
"ERROR_MAX_SIZE_EXCEEDED": "'{{fileName}}' ({{fileSize}}) is too heavy for our Oompa Loompas, try it with a smaller than ({{maxFileSize}})",
|
||||||
"SYNC_SUCCESS": "Your project has been imported successfuly"
|
"SYNC_SUCCESS": "Your project has been imported successfuly",
|
||||||
|
"PROJECT_RESTRICTIONS": {
|
||||||
|
"PROJECT_MEMBERS_DESC": "The project you are trying to import has {{members}} members, unfortunately, your current plan allows for a maximum of {{max_memberships}} members per project. If you would like to increase that limit please contact the administrator.",
|
||||||
|
"PRIVATE_PROJECTS_SPACE": {
|
||||||
|
"TITLE": "Unfortunately, your current plan does not allow for additional private projects",
|
||||||
|
"DESC": "The project you are trying to import is private. Unfortunately, your current plan does not allow for additional private projects."
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_SPACE": {
|
||||||
|
"TITLE": "Unfortunately, your current plan does not allow for additional private projects",
|
||||||
|
"DESC": "The project you are trying to import is public. Unfortunately, your current plan does not allow additional public projects."
|
||||||
|
},
|
||||||
|
"PRIVATE_PROJECTS_MEMBERS": {
|
||||||
|
"TITLE": "Your current plan allows for a maximum of {{max_memberships}} members per private project"
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_MEMBERS": {
|
||||||
|
"TITLE": "Your current plan allows for a maximum of {{max_memberships}} members per public project."
|
||||||
|
},
|
||||||
|
"PRIVATE_PROJECTS_SPACE_MEMBERS": {
|
||||||
|
"TITLE": "Unfortunately your current plan doesn't allow additional private projects or an increase of more than {{max_memberships}} members per private project",
|
||||||
|
"DESC": "The project that you are trying to import is private and has {{members}} members."
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_SPACE_MEMBERS": {
|
||||||
|
"TITLE": "Unfortunately your current plan doesn't allow additional public projects or an increase of more than {{max_memberships}} members per public project",
|
||||||
|
"DESC": "The project that you are trying to import is public and has more than {{members}} members."
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"LIKE_BUTTON": {
|
"LIKE_BUTTON": {
|
||||||
"LIKE": "Like",
|
"LIKE": "Like",
|
||||||
|
@ -818,9 +887,11 @@
|
||||||
"DELETE_ACCOUNT": {
|
"DELETE_ACCOUNT": {
|
||||||
"SECTION_NAME": "Delete Taiga Account",
|
"SECTION_NAME": "Delete Taiga Account",
|
||||||
"CONFIRM": "Are you sure you want to delete your Taiga account?",
|
"CONFIRM": "Are you sure you want to delete your Taiga account?",
|
||||||
"SUBTITLE": "We're going to miss you! :-(",
|
"NEWSLETTER_LABEL_TEXT": "I don't wanna receive your newsletter anymore",
|
||||||
"NEWSLETTER_LABEL_TEXT": "I don't wanna receive your newsletter anymore"
|
"CANCEL": "Back to settings",
|
||||||
|
"ACCEPT": "Delete account",
|
||||||
|
"BLOCK_PROJECT": "Note that all the projects you own projects will be <strong>blocked</strong> after you delete your account. If you do want a project blocked, transfer ownership to another member of each project prior to deleting your account. ",
|
||||||
|
"SUBTITLE": "Sorry to see you go. We'll be here if you should ever consider us again! :("
|
||||||
},
|
},
|
||||||
"DELETE_PROJECT": {
|
"DELETE_PROJECT": {
|
||||||
"TITLE": "Delete project",
|
"TITLE": "Delete project",
|
||||||
|
@ -876,13 +947,30 @@
|
||||||
},
|
},
|
||||||
"CREATE_MEMBER": {
|
"CREATE_MEMBER": {
|
||||||
"PLACEHOLDER_INVITATION_TEXT": "(Optional) Add a personalized text to the invitation. Tell something lovely to your new members ;-)",
|
"PLACEHOLDER_INVITATION_TEXT": "(Optional) Add a personalized text to the invitation. Tell something lovely to your new members ;-)",
|
||||||
"PLACEHOLDER_TYPE_EMAIL": "Type an Email"
|
"PLACEHOLDER_TYPE_EMAIL": "Type an Email",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_OWNER": "Unfortunately, this project can't have more than <strong>{{maxMembers}}</strong> members.<br> If you would like to increase the current limit, please contact the administrator.",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE": "Unfortunately, this project can't have more than <strong>{{maxMembers}}</strong> members."
|
||||||
|
},
|
||||||
|
"LEAVE_PROJECT_WARNING": {
|
||||||
|
"TITLE": "Unfortunately, this project can't be left without an owner",
|
||||||
|
"CURRENT_USER_OWNER": {
|
||||||
|
"DESC": "You are the current owner of this project. Before leaving, please transfer ownership to someone else.",
|
||||||
|
"BUTTON": "Change the project owner"
|
||||||
|
},
|
||||||
|
"OTHER_USER_OWNER": {
|
||||||
|
"DESC": "Unfortunately, you can't delete a member who is also the current project owner. First, please assign a new project owner.",
|
||||||
|
"BUTTON": "Request project owner change"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"CHANGE_OWNER": {
|
||||||
|
"TITLE": "Who do you want to be the new project owner?",
|
||||||
|
"ADD_COMMENT": "Add comment",
|
||||||
|
"BUTTON": "Ask this project member to become the new project owner"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"US": {
|
"US": {
|
||||||
"PAGE_TITLE": "{{userStorySubject}} - User Story {{userStoryRef}} - {{projectName}}",
|
"PAGE_TITLE": "{{userStorySubject}} - User Story {{userStoryRef}} - {{projectName}}",
|
||||||
"PAGE_DESCRIPTION": "Status: {{userStoryStatus }}. Completed {{userStoryProgressPercentage}}% ({{userStoryClosedTasks}} of {{userStoryTotalTasks}} tasks closed). Points: {{userStoryPoints}}. Description: {{userStoryDescription}}",
|
"PAGE_DESCRIPTION": "Status: {{userStoryStatus }}. Completed {{userStoryProgressPercentage}}% ({{userStoryClosedTasks}} of {{userStoryTotalTasks}} tasks closed). Points: {{userStoryPoints}}. Description: {{userStoryDescription}}",
|
||||||
|
|
||||||
"SECTION_NAME": "User story details",
|
"SECTION_NAME": "User story details",
|
||||||
"LINK_TASKBOARD": "Taskboard",
|
"LINK_TASKBOARD": "Taskboard",
|
||||||
"TITLE_LINK_TASKBOARD": "Go to the taskboard",
|
"TITLE_LINK_TASKBOARD": "Go to the taskboard",
|
||||||
|
@ -987,11 +1075,10 @@
|
||||||
"CREATE_NEW_US_EMPTY_HELP": "You may want to create a new user story",
|
"CREATE_NEW_US_EMPTY_HELP": "You may want to create a new user story",
|
||||||
"EXCESS_OF_POINTS": "Excess of points",
|
"EXCESS_OF_POINTS": "Excess of points",
|
||||||
"PENDING_POINTS": "Pending Points",
|
"PENDING_POINTS": "Pending Points",
|
||||||
"CLOSED_POINTS": "Closed points",
|
"CLOSED_POINTS": "closed",
|
||||||
"COMPACT_SPRINT": "Compact Sprint",
|
"COMPACT_SPRINT": "Compact Sprint",
|
||||||
"GO_TO_TASKBOARD": "Go to the taskboard of {{::name}}",
|
"GO_TO_TASKBOARD": "Go to the taskboard of {{::name}}",
|
||||||
"EDIT_SPRINT": "Edit Sprint",
|
"EDIT_SPRINT": "Edit Sprint",
|
||||||
"CLOSED_POINTS": "closed",
|
|
||||||
"TOTAL_POINTS": "total",
|
"TOTAL_POINTS": "total",
|
||||||
"STATUS_NAME": "Status Name",
|
"STATUS_NAME": "Status Name",
|
||||||
"SORTABLE_FILTER_ERROR": "You can't drop on backlog when filters are open",
|
"SORTABLE_FILTER_ERROR": "You can't drop on backlog when filters are open",
|
||||||
|
@ -1306,12 +1393,18 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"WIZARD": {
|
"WIZARD": {
|
||||||
"SECTION_TITLE_CHOOSE_TEMPLATE": "Choose a template",
|
|
||||||
"CHOOSE_TEMPLATE_TEXT": "Which template would fit better in your project?",
|
|
||||||
"SECTION_TITLE_CREATE_PROJECT": "Create Project",
|
"SECTION_TITLE_CREATE_PROJECT": "Create Project",
|
||||||
"CREATE_PROJECT_TEXT": "Fresh and clean. So exciting!",
|
"CREATE_PROJECT_TEXT": "Fresh and clean. So exciting!",
|
||||||
"PROGRESS_TEMPLATE_SELECTION": "Template selection",
|
"CHOOSE_TEMPLATE": "Which template fits your project best?",
|
||||||
"PROGRESS_NAME_DESCRIPTION": "Name and description"
|
"CHOOSE_TEMPLATE_TITLE": "More info about project templates",
|
||||||
|
"CHOOSE_TEMPLATE_INFO": "More info",
|
||||||
|
"PROJECT_DETAILS": "Project Details",
|
||||||
|
"PUBLIC_PROJECT": "Public Project",
|
||||||
|
"PRIVATE_PROJECT": "Private Project",
|
||||||
|
"CREATE_PROJECT": "Create project",
|
||||||
|
"MAX_PRIVATE_PROJECTS": "You've reached the maximum number of private projects",
|
||||||
|
"MAX_PUBLIC_PROJECTS": "Unfortunately, you've reached the maximum number of public projects",
|
||||||
|
"CHANGE_PLANS": "change plans"
|
||||||
},
|
},
|
||||||
"WIKI": {
|
"WIKI": {
|
||||||
"PAGE_TITLE": "{{wikiPageName}} - Wiki - {{projectName}}",
|
"PAGE_TITLE": "{{wikiPageName}} - Wiki - {{projectName}}",
|
||||||
|
|
|
@ -41,7 +41,8 @@
|
||||||
"IOCAINE_TEXT": "¿Te sientes fuera de tu zona de confort en una tarea? Asegúrate de que los demás están al tanto de ello, marca el check de la Iocaína al editar una tarea. Igual eu era posible llegar a ser inmune a este veneno mortal a base de consumir pequeñas dosis a lo largo del tiempo, es posible conseguir mejor en lo que estás haciendo si afrontas de vez en cuando esta clase de retos!",
|
"IOCAINE_TEXT": "¿Te sientes fuera de tu zona de confort en una tarea? Asegúrate de que los demás están al tanto de ello, marca el check de la Iocaína al editar una tarea. Igual eu era posible llegar a ser inmune a este veneno mortal a base de consumir pequeñas dosis a lo largo del tiempo, es posible conseguir mejor en lo que estás haciendo si afrontas de vez en cuando esta clase de retos!",
|
||||||
"CLIENT_REQUIREMENT": "Requerimiento de cliente es un nuevo requisito que no se esperaba y es necesario que forme parte del proyecto.",
|
"CLIENT_REQUIREMENT": "Requerimiento de cliente es un nuevo requisito que no se esperaba y es necesario que forme parte del proyecto.",
|
||||||
"TEAM_REQUIREMENT": "Requerimiento del equipo es un nuevo requisito que debe existir en el proyecto pero que no conllevará ningún coste para el cliente.",
|
"TEAM_REQUIREMENT": "Requerimiento del equipo es un nuevo requisito que debe existir en el proyecto pero que no conllevará ningún coste para el cliente.",
|
||||||
"CAPSLOCK_WARNING": "¡Ten cuidado! Usted está escribiendo con mayúsculas y esta entrada es sensible a mayúsculas.",
|
"OWNER": "Project Owner",
|
||||||
|
"CAPSLOCK_WARNING": "Be careful! You are using capital letters in an input field that is case sensitive.",
|
||||||
"FORM_ERRORS": {
|
"FORM_ERRORS": {
|
||||||
"DEFAULT_MESSAGE": "Este valor parece inválido.",
|
"DEFAULT_MESSAGE": "Este valor parece inválido.",
|
||||||
"TYPE_EMAIL": "El valor debe ser un email.",
|
"TYPE_EMAIL": "El valor debe ser un email.",
|
||||||
|
@ -65,7 +66,9 @@
|
||||||
"MIN_CHECK": "Debes seleccionar al menos %s.",
|
"MIN_CHECK": "Debes seleccionar al menos %s.",
|
||||||
"MAX_CHECK": "Debes seleccionar %s o menos.",
|
"MAX_CHECK": "Debes seleccionar %s o menos.",
|
||||||
"RANGE_CHECK": "Debes seleccionar de %s a %s.",
|
"RANGE_CHECK": "Debes seleccionar de %s a %s.",
|
||||||
"EQUAL_TO": "Este valor debe ser el mismo."
|
"EQUAL_TO": "Este valor debe ser el mismo.",
|
||||||
|
"LINEWIDTH": "One or more lines is perhaps too long. Try to keep under %s characters.",
|
||||||
|
"PIKADAY": "Invalid date format, please use DD MMM YYYY (like 23 Mar 1984)"
|
||||||
},
|
},
|
||||||
"PICKERDATE": {
|
"PICKERDATE": {
|
||||||
"FORMAT": "DD MMM YYYY",
|
"FORMAT": "DD MMM YYYY",
|
||||||
|
@ -315,7 +318,8 @@
|
||||||
"PLACEHOLDER_FIELD": "Nombre de usuario o email",
|
"PLACEHOLDER_FIELD": "Nombre de usuario o email",
|
||||||
"ACTION_RESET_PASSWORD": "Restablecer Contraseña",
|
"ACTION_RESET_PASSWORD": "Restablecer Contraseña",
|
||||||
"LINK_CANCEL": "Nah, llévame de vuelta, creo que lo recordé.",
|
"LINK_CANCEL": "Nah, llévame de vuelta, creo que lo recordé.",
|
||||||
"SUCCESS": "<strong>¡Revisa tu bandeja de entrada!</strong><br />Te hemos enviado un mail con las instrucciones necesarias para restablecer tu contraseña\n",
|
"SUCCESS_TITLE": "Check your inbox!",
|
||||||
|
"SUCCESS_TEXT": "We sent you an email with the instructions to set a new password",
|
||||||
"ERROR": "Según nuestros Oompa Loompas tú no estás registrado"
|
"ERROR": "Según nuestros Oompa Loompas tú no estás registrado"
|
||||||
},
|
},
|
||||||
"CHANGE_PASSWORD": {
|
"CHANGE_PASSWORD": {
|
||||||
|
@ -373,7 +377,6 @@
|
||||||
"DEPRECATED_FILE": "¿Desactualizado?",
|
"DEPRECATED_FILE": "¿Desactualizado?",
|
||||||
"ADD": "Agrega nuevos adjunto. {{maxFileSizeMsg}}",
|
"ADD": "Agrega nuevos adjunto. {{maxFileSizeMsg}}",
|
||||||
"DROP": "¡Arrastre los archivos adjuntos aquí!",
|
"DROP": "¡Arrastre los archivos adjuntos aquí!",
|
||||||
"MAX_FILE_SIZE": "[Tamaño Max. : {{maxFileSize}}]",
|
|
||||||
"SHOW_DEPRECATED": "+ muestra adjuntos desactualizados",
|
"SHOW_DEPRECATED": "+ muestra adjuntos desactualizados",
|
||||||
"HIDE_DEPRECATED": "- ocultar adjuntos obsoletos",
|
"HIDE_DEPRECATED": "- ocultar adjuntos obsoletos",
|
||||||
"COUNT_DEPRECATED": "({{ counter }} obsoletos)\n",
|
"COUNT_DEPRECATED": "({{ counter }} obsoletos)\n",
|
||||||
|
@ -406,7 +409,9 @@
|
||||||
"TITLE": "Administrar miembros",
|
"TITLE": "Administrar miembros",
|
||||||
"PAGE_TITLE": "Miembros - {{projectName}}",
|
"PAGE_TITLE": "Miembros - {{projectName}}",
|
||||||
"ADD_BUTTON": "+ Nuevo miembro",
|
"ADD_BUTTON": "+ Nuevo miembro",
|
||||||
"ADD_BUTTON_TITLE": "Añadir un nuevo miembro"
|
"ADD_BUTTON_TITLE": "Añadir un nuevo miembro",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_ADMIN": "Unfortunately, this project has reached its limit of <strong>({{members}})</strong> allowed members.",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_OWNER": "This project has reached its limit of <strong>({{members}})</strong> allowed members. If you would like to increase that limit please contact the administrator."
|
||||||
},
|
},
|
||||||
"PROJECT_EXPORT": {
|
"PROJECT_EXPORT": {
|
||||||
"TITLE": "Exportar",
|
"TITLE": "Exportar",
|
||||||
|
@ -428,6 +433,10 @@
|
||||||
"DISABLE": "Desactivado",
|
"DISABLE": "Desactivado",
|
||||||
"BACKLOG": "Backlog",
|
"BACKLOG": "Backlog",
|
||||||
"BACKLOG_DESCRIPTION": "Gestiona tus historias de usuario para mantener una vista organizada y priorizada de los próximos trabajos que deberás afrontar. ",
|
"BACKLOG_DESCRIPTION": "Gestiona tus historias de usuario para mantener una vista organizada y priorizada de los próximos trabajos que deberás afrontar. ",
|
||||||
|
"NUMBER_SPRINTS": "Expected number of sprints",
|
||||||
|
"NUMBER_SPRINTS_HELP": "0 for an undetermined number",
|
||||||
|
"NUMBER_US_POINTS": "Expected total of story points",
|
||||||
|
"NUMBER_US_POINTS_HELP": "0 for an undetermined number",
|
||||||
"KANBAN": "Kanban",
|
"KANBAN": "Kanban",
|
||||||
"KANBAN_DESCRIPTION": "Organiza tus proyectos de una manera flexible con este panel.",
|
"KANBAN_DESCRIPTION": "Organiza tus proyectos de una manera flexible con este panel.",
|
||||||
"ISSUES": "Peticiones",
|
"ISSUES": "Peticiones",
|
||||||
|
@ -435,9 +444,9 @@
|
||||||
"WIKI": "Wiki",
|
"WIKI": "Wiki",
|
||||||
"WIKI_DESCRIPTION": "Añade, modifica o borra contenido en colaboración con otros miembros. Este es el lugar adecuado para la documentación de tu proyecto.",
|
"WIKI_DESCRIPTION": "Añade, modifica o borra contenido en colaboración con otros miembros. Este es el lugar adecuado para la documentación de tu proyecto.",
|
||||||
"MEETUP": "Meet Up",
|
"MEETUP": "Meet Up",
|
||||||
"MEETUP_DESCRIPTION": "Elige tu sistema de videoconferencia. Incluso los desarrolladores necesitan el contacto cara a cara.",
|
"MEETUP_DESCRIPTION": "Choose your videoconference system.",
|
||||||
"SELECT_VIDEOCONFERENCE": "Elige un sistema de videoconferencia",
|
"SELECT_VIDEOCONFERENCE": "Elige un sistema de videoconferencia",
|
||||||
"SALT_CHAT_ROOM": "Puedes añadirle un código salt al nombre del chat room",
|
"SALT_CHAT_ROOM": "Add a prefix to the chatroom name",
|
||||||
"JITSI_CHAT_ROOM": "Jitsi",
|
"JITSI_CHAT_ROOM": "Jitsi",
|
||||||
"APPEARIN_CHAT_ROOM": "AppearIn",
|
"APPEARIN_CHAT_ROOM": "AppearIn",
|
||||||
"TALKY_CHAT_ROOM": "Talky",
|
"TALKY_CHAT_ROOM": "Talky",
|
||||||
|
@ -449,22 +458,31 @@
|
||||||
"PROJECT_DETAILS": "Info del proyecto",
|
"PROJECT_DETAILS": "Info del proyecto",
|
||||||
"PROJECT_NAME": "Nombre del proyecto",
|
"PROJECT_NAME": "Nombre del proyecto",
|
||||||
"PROJECT_SLUG": "Slug de proyecto",
|
"PROJECT_SLUG": "Slug de proyecto",
|
||||||
"NUMBER_SPRINTS": "Número de sprints (0 para cantidad indeterminada)",
|
|
||||||
"NUMBER_US_POINTS": "Número de puntos de historias de usuario (0 para indeterminado)",
|
|
||||||
"TAGS": "Etiquetas",
|
"TAGS": "Etiquetas",
|
||||||
"DESCRIPTION": "Descripción",
|
"DESCRIPTION": "Descripción",
|
||||||
"RECRUITING": "¿Este proyecto está buscando a gente?",
|
"RECRUITING": "¿Este proyecto está buscando a gente?",
|
||||||
"RECRUITING_MESSAGE": "¿Qué estás buscando?",
|
"RECRUITING_MESSAGE": "¿Qué estás buscando?",
|
||||||
"RECRUITING_PLACEHOLDER": "Define el perfil de lo que estás buscando",
|
"RECRUITING_PLACEHOLDER": "Define el perfil de lo que estás buscando",
|
||||||
"PUBLIC_PROJECT": "Proyecto público",
|
"PUBLIC_PROJECT": "Proyecto público",
|
||||||
"PUBLIC_PROJECT_DESC": "Los usuarios serán capaces de encontrar y ver tu proyecto",
|
|
||||||
"PRIVATE_PROJECT": "Proyecto privado",
|
"PRIVATE_PROJECT": "Proyecto privado",
|
||||||
"PRIVATE_PROJECT_DESC": "Este proyecto estará oculto al público por defecto.",
|
|
||||||
"PRIVATE_OR_PUBLIC": "¿Cuál es la diferencia entre proyecto público y privado?",
|
"PRIVATE_OR_PUBLIC": "¿Cuál es la diferencia entre proyecto público y privado?",
|
||||||
"DELETE": "Eliminar este proyecto",
|
"DELETE": "Eliminar este proyecto",
|
||||||
"LOGO_HELP": "La imagen se escalará a 80x80px.",
|
"LOGO_HELP": "La imagen se escalará a 80x80px.",
|
||||||
"CHANGE_LOGO": "Cambia el logo",
|
"CHANGE_LOGO": "Cambia el logo",
|
||||||
"ACTION_USE_DEFAULT_LOGO": "Usar imagen por defecto"
|
"ACTION_USE_DEFAULT_LOGO": "Usar imagen por defecto",
|
||||||
|
"MAX_PRIVATE_PROJECTS": "You've reached the maximum number of private projects allowed by your current plan",
|
||||||
|
"MAX_PRIVATE_PROJECTS_MEMBERS": "The maximum number of members for private projects has been exceeded",
|
||||||
|
"MAX_PUBLIC_PROJECTS": "Unfortunately, you've reached the maximum number of public projects allowed by your current plan",
|
||||||
|
"MAX_PUBLIC_PROJECTS_MEMBERS": "The project exceeds your maximum number of members for public projects",
|
||||||
|
"PROJECT_OWNER": "Project owner",
|
||||||
|
"REQUEST_OWNERSHIP": "Request ownership",
|
||||||
|
"REQUEST_OWNERSHIP_CONFIRMATION_TITLE": "Do you want to become the new project owner?",
|
||||||
|
"REQUEST_OWNERSHIP_DESC": "Request that current project owner {{name}} transfer ownership of this project to you.",
|
||||||
|
"REQUEST_OWNERSHIP_BUTTON": "Solicitud",
|
||||||
|
"REQUEST_OWNERSHIP_SUCCESS": "We'll notify the project owner",
|
||||||
|
"CHANGE_OWNER": "Change owner",
|
||||||
|
"CHANGE_OWNER_SUCCESS_TITLE": "Ok, your request has been sent!",
|
||||||
|
"CHANGE_OWNER_SUCCESS_DESC": "We will notify you by email if the project ownership request is accepted or declined"
|
||||||
},
|
},
|
||||||
"REPORTS": {
|
"REPORTS": {
|
||||||
"TITLE": "Informes",
|
"TITLE": "Informes",
|
||||||
|
@ -495,7 +513,8 @@
|
||||||
"ISSUE_ADD": "Añadir un atributo personalizado en las peticiones",
|
"ISSUE_ADD": "Añadir un atributo personalizado en las peticiones",
|
||||||
"FIELD_TYPE_TEXT": "Texto",
|
"FIELD_TYPE_TEXT": "Texto",
|
||||||
"FIELD_TYPE_MULTI": "Multilínea",
|
"FIELD_TYPE_MULTI": "Multilínea",
|
||||||
"FIELD_TYPE_DATE": "Fecha"
|
"FIELD_TYPE_DATE": "Fecha",
|
||||||
|
"FIELD_TYPE_URL": "Url"
|
||||||
},
|
},
|
||||||
"PROJECT_VALUES": {
|
"PROJECT_VALUES": {
|
||||||
"PAGE_TITLE": "{{sectionName}} - Valores del Proyectos - {{projectName}}",
|
"PAGE_TITLE": "{{sectionName}} - Valores del Proyectos - {{projectName}}",
|
||||||
|
@ -543,7 +562,7 @@
|
||||||
"COUNT_MEMBERS": "{{ role.members_count }} miembros con este rol",
|
"COUNT_MEMBERS": "{{ role.members_count }} miembros con este rol",
|
||||||
"TITLE_DELETE_ROLE": "Borrar Rol",
|
"TITLE_DELETE_ROLE": "Borrar Rol",
|
||||||
"REPLACEMENT_ROLE": "Todos los usuarios con este rol serán movidos a",
|
"REPLACEMENT_ROLE": "Todos los usuarios con este rol serán movidos a",
|
||||||
"WARNING_DELETE_ROLE": "<strong>Cuidado, todas las estimaciones asociadas a este rol se perderán</strong>",
|
"WARNING_DELETE_ROLE": "Be careful! All role estimations will be removed",
|
||||||
"ERROR_DELETE_ALL": "No puedes eliminar todos los valores",
|
"ERROR_DELETE_ALL": "No puedes eliminar todos los valores",
|
||||||
"EXTERNAL_USER": "Usuario externo"
|
"EXTERNAL_USER": "Usuario externo"
|
||||||
},
|
},
|
||||||
|
@ -671,6 +690,24 @@
|
||||||
},
|
},
|
||||||
"SUBMENU_THIDPARTIES": {
|
"SUBMENU_THIDPARTIES": {
|
||||||
"TITLE": "Servicios"
|
"TITLE": "Servicios"
|
||||||
|
},
|
||||||
|
"PROJECT_TRANSFER": {
|
||||||
|
"DO_YOU_ACCEPT_PROJECT_OWNERNSHIP": "Would you like to become the new project owner?",
|
||||||
|
"PRIVATE": "Private",
|
||||||
|
"ACCEPTED_PROJECT_OWNERNSHIP": "Congratulations! You're now the new project owner.",
|
||||||
|
"REJECTED_PROJECT_OWNERNSHIP": "OK. We'll contact the current project owner",
|
||||||
|
"ACCEPT": "Aceptar",
|
||||||
|
"REJECT": "Reject",
|
||||||
|
"PROPOSE_OWNERSHIP": "<strong>{{owner}}</strong>, the current owner of the project <strong>{{project}}</strong> has asked that you become the new project owner.",
|
||||||
|
"ADD_COMMENT_QUESTION": "Would you like to send a question to the project owner?",
|
||||||
|
"ADD_COMMENT": "Would you like to add a comment for the project owner?",
|
||||||
|
"UNLIMITED_PROJECTS": "Unlimited",
|
||||||
|
"OWNER_MESSAGE": {
|
||||||
|
"PRIVATE": "Please remember that you can own up to <strong>{{maxProjects}}</strong> private projects. You currently own <strong>{{currentProjects}}</strong> private projects",
|
||||||
|
"PUBLIC": "Please remember that you can own up to <strong>{{maxProjects}}</strong> public projects. You currently own <strong>{{currentProjects}}</strong> public projects"
|
||||||
|
},
|
||||||
|
"CANT_BE_OWNED": "At the moment you cannot become an owner of a project of this type. If you would like to become the owner of this project, please contact the administrator so they change your account settings to enable project ownership.",
|
||||||
|
"CHANGE_MY_PLAN": "Change my plan"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"USER": {
|
"USER": {
|
||||||
|
@ -731,6 +768,11 @@
|
||||||
"FANS_COUNTER_TITLE": "{total, plural, one{un fan} other{# fans}}",
|
"FANS_COUNTER_TITLE": "{total, plural, one{un fan} other{# fans}}",
|
||||||
"WATCHERS_COUNTER_TITLE": "{total, plural, one{un observador} other{# observadores}}",
|
"WATCHERS_COUNTER_TITLE": "{total, plural, one{un observador} other{# observadores}}",
|
||||||
"MEMBERS_COUNTER_TITLE": "{total, plural, one{un miembro} other{# miembros}}",
|
"MEMBERS_COUNTER_TITLE": "{total, plural, one{un miembro} other{# miembros}}",
|
||||||
|
"BLOCKED_PROJECT": {
|
||||||
|
"BLOCKED": "Blocked project",
|
||||||
|
"THIS_PROJECT_IS_BLOCKED": "This project is temporarily blocked",
|
||||||
|
"TO_UNBLOCK_CONTACT_THE_ADMIN_STAFF": "In order to unblock your projects, contact the administrator."
|
||||||
|
},
|
||||||
"STATS": {
|
"STATS": {
|
||||||
"PROJECT": "puntos<br/> proyecto",
|
"PROJECT": "puntos<br/> proyecto",
|
||||||
"DEFINED": "puntos<br/> definidos",
|
"DEFINED": "puntos<br/> definidos",
|
||||||
|
@ -777,6 +819,7 @@
|
||||||
"CHANGE_PASSWORD": "Cambiar contraseña",
|
"CHANGE_PASSWORD": "Cambiar contraseña",
|
||||||
"DASHBOARD_TITLE": "Dashboard",
|
"DASHBOARD_TITLE": "Dashboard",
|
||||||
"DISCOVER_TITLE": "Descubre los proyectos más relevantes",
|
"DISCOVER_TITLE": "Descubre los proyectos más relevantes",
|
||||||
|
"NEW_ITEM": "Nueva",
|
||||||
"DISCOVER": "Descubrir",
|
"DISCOVER": "Descubrir",
|
||||||
"ACTION_REORDER": "Arrastrar y soltar para reordenar"
|
"ACTION_REORDER": "Arrastrar y soltar para reordenar"
|
||||||
},
|
},
|
||||||
|
@ -791,7 +834,32 @@
|
||||||
"ERROR_TOO_MANY_REQUEST": "Lo sentimos, nuestros Oompa Loompas están muy ocupados en este momento. Por favor inténtalo nuevamente en unos minutos.",
|
"ERROR_TOO_MANY_REQUEST": "Lo sentimos, nuestros Oompa Loompas están muy ocupados en este momento. Por favor inténtalo nuevamente en unos minutos.",
|
||||||
"ERROR_MESSAGE": "Nuestros Oompa Loompas tienen algunos problemas importando tus datos: {{error_message}}",
|
"ERROR_MESSAGE": "Nuestros Oompa Loompas tienen algunos problemas importando tus datos: {{error_message}}",
|
||||||
"ERROR_MAX_SIZE_EXCEEDED": "El fichero '{{fileName}}' ({{fileSize}}) es demasiado pesado para nuestros Oompa Loompas, prueba con uno de menos de ({{maxFileSize}}).",
|
"ERROR_MAX_SIZE_EXCEEDED": "El fichero '{{fileName}}' ({{fileSize}}) es demasiado pesado para nuestros Oompa Loompas, prueba con uno de menos de ({{maxFileSize}}).",
|
||||||
"SYNC_SUCCESS": "Tu proyecto se ha importado con éxito."
|
"SYNC_SUCCESS": "Tu proyecto se ha importado con éxito.",
|
||||||
|
"PROJECT_RESTRICTIONS": {
|
||||||
|
"PROJECT_MEMBERS_DESC": "The project you are trying to import has {{members}} members, unfortunately, your current plan allows for a maximum of {{max_memberships}} members per project. If you would like to increase that limit please contact the administrator.",
|
||||||
|
"PRIVATE_PROJECTS_SPACE": {
|
||||||
|
"TITLE": "Unfortunately, your current plan does not allow for additional private projects",
|
||||||
|
"DESC": "The project you are trying to import is private. Unfortunately, your current plan does not allow for additional private projects."
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_SPACE": {
|
||||||
|
"TITLE": "Unfortunately, your current plan does not allow for additional private projects",
|
||||||
|
"DESC": "The project you are trying to import is public. Unfortunately, your current plan does not allow additional public projects."
|
||||||
|
},
|
||||||
|
"PRIVATE_PROJECTS_MEMBERS": {
|
||||||
|
"TITLE": "Your current plan allows for a maximum of {{max_memberships}} members per private project"
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_MEMBERS": {
|
||||||
|
"TITLE": "Your current plan allows for a maximum of {{max_memberships}} members per public project."
|
||||||
|
},
|
||||||
|
"PRIVATE_PROJECTS_SPACE_MEMBERS": {
|
||||||
|
"TITLE": "Unfortunately your current plan doesn't allow additional private projects or an increase of more than {{max_memberships}} members per private project",
|
||||||
|
"DESC": "The project that you are trying to import is private and has {{members}} members."
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_SPACE_MEMBERS": {
|
||||||
|
"TITLE": "Unfortunately your current plan doesn't allow additional public projects or an increase of more than {{max_memberships}} members per public project",
|
||||||
|
"DESC": "The project that you are trying to import is public and has more than {{members}} members."
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"LIKE_BUTTON": {
|
"LIKE_BUTTON": {
|
||||||
"LIKE": "Me gusta",
|
"LIKE": "Me gusta",
|
||||||
|
@ -819,8 +887,11 @@
|
||||||
"DELETE_ACCOUNT": {
|
"DELETE_ACCOUNT": {
|
||||||
"SECTION_NAME": "Eliminar cuenta de Taiga",
|
"SECTION_NAME": "Eliminar cuenta de Taiga",
|
||||||
"CONFIRM": "¿Está seguro que deseas eliminar tu cuenta de Taiga?",
|
"CONFIRM": "¿Está seguro que deseas eliminar tu cuenta de Taiga?",
|
||||||
"SUBTITLE": "¡Te extrañaremos! :-(",
|
"NEWSLETTER_LABEL_TEXT": "No quiero recibir la newsletter nunca más.",
|
||||||
"NEWSLETTER_LABEL_TEXT": "No quiero recibir la newsletter nunca más."
|
"CANCEL": "Back to settings",
|
||||||
|
"ACCEPT": "Delete account",
|
||||||
|
"BLOCK_PROJECT": "Note that all the projects you own projects will be <strong>blocked</strong> after you delete your account. If you do want a project blocked, transfer ownership to another member of each project prior to deleting your account.",
|
||||||
|
"SUBTITLE": "Sorry to see you go. We'll be here if you should ever consider us again! :("
|
||||||
},
|
},
|
||||||
"DELETE_PROJECT": {
|
"DELETE_PROJECT": {
|
||||||
"TITLE": "Borrar proyecto",
|
"TITLE": "Borrar proyecto",
|
||||||
|
@ -876,7 +947,25 @@
|
||||||
},
|
},
|
||||||
"CREATE_MEMBER": {
|
"CREATE_MEMBER": {
|
||||||
"PLACEHOLDER_INVITATION_TEXT": "(Opcional) Añade un texto personalizado a la invitación. Dile algo encantador a tus nuevos miembros ;-)",
|
"PLACEHOLDER_INVITATION_TEXT": "(Opcional) Añade un texto personalizado a la invitación. Dile algo encantador a tus nuevos miembros ;-)",
|
||||||
"PLACEHOLDER_TYPE_EMAIL": "Escribe un email"
|
"PLACEHOLDER_TYPE_EMAIL": "Escribe un email",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_OWNER": "Unfortunately, this project can't have more than <strong>{{maxMembers}}</strong> members.<br> If you would like to increase the current limit, please contact the administrator.",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE": "Unfortunately, this project can't have more than <strong>{{maxMembers}}</strong> members."
|
||||||
|
},
|
||||||
|
"LEAVE_PROJECT_WARNING": {
|
||||||
|
"TITLE": "Unfortunately, this project can't be left without an owner",
|
||||||
|
"CURRENT_USER_OWNER": {
|
||||||
|
"DESC": "You are the current owner of this project. Before leaving, please transfer ownership to someone else.",
|
||||||
|
"BUTTON": "Change the project owner"
|
||||||
|
},
|
||||||
|
"OTHER_USER_OWNER": {
|
||||||
|
"DESC": "Unfortunately, you can't delete a member who is also the current project owner. First, please assign a new project owner.",
|
||||||
|
"BUTTON": "Request project owner change"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"CHANGE_OWNER": {
|
||||||
|
"TITLE": "Who do you want to be the new project owner?",
|
||||||
|
"ADD_COMMENT": "Add comment",
|
||||||
|
"BUTTON": "Ask this project member to become the new project owner"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"US": {
|
"US": {
|
||||||
|
@ -1304,12 +1393,18 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"WIZARD": {
|
"WIZARD": {
|
||||||
"SECTION_TITLE_CHOOSE_TEMPLATE": "Elija una plantilla",
|
|
||||||
"CHOOSE_TEMPLATE_TEXT": "¿Que plantilla se ajusta mejor con tu proyecto?",
|
|
||||||
"SECTION_TITLE_CREATE_PROJECT": "Crear Proyecto",
|
"SECTION_TITLE_CREATE_PROJECT": "Crear Proyecto",
|
||||||
"CREATE_PROJECT_TEXT": "Fresco y claro. ¡Es emocionante!",
|
"CREATE_PROJECT_TEXT": "Fresco y claro. ¡Es emocionante!",
|
||||||
"PROGRESS_TEMPLATE_SELECTION": "Selección de plantilla",
|
"CHOOSE_TEMPLATE": "Which template fits your project best?",
|
||||||
"PROGRESS_NAME_DESCRIPTION": "Nombre y descripción"
|
"CHOOSE_TEMPLATE_TITLE": "More info about project templates",
|
||||||
|
"CHOOSE_TEMPLATE_INFO": "More info",
|
||||||
|
"PROJECT_DETAILS": "Project Details",
|
||||||
|
"PUBLIC_PROJECT": "Public Project",
|
||||||
|
"PRIVATE_PROJECT": "Private Project",
|
||||||
|
"CREATE_PROJECT": "Crear proyecto",
|
||||||
|
"MAX_PRIVATE_PROJECTS": "You've reached the maximum number of private projects",
|
||||||
|
"MAX_PUBLIC_PROJECTS": "Unfortunately, you've reached the maximum number of public projects",
|
||||||
|
"CHANGE_PLANS": "change plans"
|
||||||
},
|
},
|
||||||
"WIKI": {
|
"WIKI": {
|
||||||
"PAGE_TITLE": "{{wikiPageName}} - Wiki - {{projectName}}",
|
"PAGE_TITLE": "{{wikiPageName}} - Wiki - {{projectName}}",
|
||||||
|
@ -1446,8 +1541,8 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"DISCOVER": {
|
"DISCOVER": {
|
||||||
"PAGE_TITLE": "Discover projects - Taiga",
|
"PAGE_TITLE": "Descubre proyectos - Taiga",
|
||||||
"PAGE_DESCRIPTION": "Searchable directory of Public Projects in Taiga. Explore backlogs, timelines, issues, and teams. Check out the most liked or most active projects. Filter by Kanban or Scrum.",
|
"PAGE_DESCRIPTION": "Directorio de búsqueda de Proyectos Públicos en Taiga. Explora los backlogs, timelines, peticiones y equipos. Echa un vistazo a los proyectos que más gustan o más activos. Filtrar por Kanban o Scrum.",
|
||||||
"DISCOVER_TITLE": "Descubre proyectos",
|
"DISCOVER_TITLE": "Descubre proyectos",
|
||||||
"DISCOVER_SUBTITLE": "{projects, plural, one{Un proyecto público por descubrir} other{# proyectos público por descubrir}}\n",
|
"DISCOVER_SUBTITLE": "{projects, plural, one{Un proyecto público por descubrir} other{# proyectos público por descubrir}}\n",
|
||||||
"MOST_ACTIVE": "Más activos",
|
"MOST_ACTIVE": "Más activos",
|
||||||
|
@ -1470,8 +1565,8 @@
|
||||||
"CLEAR": "Borrar filtros"
|
"CLEAR": "Borrar filtros"
|
||||||
},
|
},
|
||||||
"SEARCH": {
|
"SEARCH": {
|
||||||
"PAGE_TITLE": "Search - Discover projects - Taiga",
|
"PAGE_TITLE": "Buscar - Descubre proyectos - Taiga",
|
||||||
"PAGE_DESCRIPTION": "Searchable directory of Public Projects in Taiga. Explore backlogs, timelines, issues, and teams. Check out the most liked or most active projects. Filter by Kanban or Scrum.",
|
"PAGE_DESCRIPTION": "Directorio de búsqueda de Proyectos Públicos en Taiga. Explora los backlogs, timelines, peticiones y equipos. Echa un vistazo a los proyectos que más gustan o más activos. Filtrar por Kanban o Scrum.",
|
||||||
"INPUT_PLACEHOLDER": "Escribe algo...",
|
"INPUT_PLACEHOLDER": "Escribe algo...",
|
||||||
"ACTION_TITLE": "Buscar",
|
"ACTION_TITLE": "Buscar",
|
||||||
"RESULTS": "Resultados de búsqueda"
|
"RESULTS": "Resultados de búsqueda"
|
||||||
|
|
|
@ -41,7 +41,8 @@
|
||||||
"IOCAINE_TEXT": "Jos tehtävä ahdistaa, merkitse se myrkylliseksi. Ajan mittaa pieninä annoksina saattaa kastokykysi myrkkyä vastaan parantua.",
|
"IOCAINE_TEXT": "Jos tehtävä ahdistaa, merkitse se myrkylliseksi. Ajan mittaa pieninä annoksina saattaa kastokykysi myrkkyä vastaan parantua.",
|
||||||
"CLIENT_REQUIREMENT": "Client requirement is new requirement that was not previously expected and it is required to be part of the project",
|
"CLIENT_REQUIREMENT": "Client requirement is new requirement that was not previously expected and it is required to be part of the project",
|
||||||
"TEAM_REQUIREMENT": "Team requirement is a requirement that must exist in the project but should have no cost for the client",
|
"TEAM_REQUIREMENT": "Team requirement is a requirement that must exist in the project but should have no cost for the client",
|
||||||
"CAPSLOCK_WARNING": "Be careful! You're writing with capital letters and this input is case sensitive.",
|
"OWNER": "Project Owner",
|
||||||
|
"CAPSLOCK_WARNING": "Be careful! You are using capital letters in an input field that is case sensitive.",
|
||||||
"FORM_ERRORS": {
|
"FORM_ERRORS": {
|
||||||
"DEFAULT_MESSAGE": "Tämä arvo vaikuttaa virheelliseltä.",
|
"DEFAULT_MESSAGE": "Tämä arvo vaikuttaa virheelliseltä.",
|
||||||
"TYPE_EMAIL": "Tämän pitäisi olla toimiva sähköpostiosoite.",
|
"TYPE_EMAIL": "Tämän pitäisi olla toimiva sähköpostiosoite.",
|
||||||
|
@ -65,7 +66,9 @@
|
||||||
"MIN_CHECK": "Sinun täytyy valita vähintään %s valintaa.",
|
"MIN_CHECK": "Sinun täytyy valita vähintään %s valintaa.",
|
||||||
"MAX_CHECK": "Valitse korkeintaan %s vaihtoehtoa.",
|
"MAX_CHECK": "Valitse korkeintaan %s vaihtoehtoa.",
|
||||||
"RANGE_CHECK": "Valitse %s - %s vaihteohtoa.",
|
"RANGE_CHECK": "Valitse %s - %s vaihteohtoa.",
|
||||||
"EQUAL_TO": "Arvojen pitäisi olla samat."
|
"EQUAL_TO": "Arvojen pitäisi olla samat.",
|
||||||
|
"LINEWIDTH": "One or more lines is perhaps too long. Try to keep under %s characters.",
|
||||||
|
"PIKADAY": "Invalid date format, please use DD MMM YYYY (like 23 Mar 1984)"
|
||||||
},
|
},
|
||||||
"PICKERDATE": {
|
"PICKERDATE": {
|
||||||
"FORMAT": "DD.MM.YY",
|
"FORMAT": "DD.MM.YY",
|
||||||
|
@ -315,7 +318,8 @@
|
||||||
"PLACEHOLDER_FIELD": "Käyttäjänimi tai sähköposti",
|
"PLACEHOLDER_FIELD": "Käyttäjänimi tai sähköposti",
|
||||||
"ACTION_RESET_PASSWORD": "Uusi salsanasi",
|
"ACTION_RESET_PASSWORD": "Uusi salsanasi",
|
||||||
"LINK_CANCEL": "Vie minut takaisin, muistan sen.",
|
"LINK_CANCEL": "Vie minut takaisin, muistan sen.",
|
||||||
"SUCCESS": "<strong>Tarkista sähköpostisi!</strong><br />Olemme lähettäneet sinulle sähköpostissa kirjautumisohjeet",
|
"SUCCESS_TITLE": "Check your inbox!",
|
||||||
|
"SUCCESS_TEXT": "We sent you an email with the instructions to set a new password",
|
||||||
"ERROR": "Oompa Loompas sanovat että käyttäjänimesi tai sähköpostisi tai salasanasi on väärä."
|
"ERROR": "Oompa Loompas sanovat että käyttäjänimesi tai sähköpostisi tai salasanasi on väärä."
|
||||||
},
|
},
|
||||||
"CHANGE_PASSWORD": {
|
"CHANGE_PASSWORD": {
|
||||||
|
@ -373,7 +377,6 @@
|
||||||
"DEPRECATED_FILE": "Vanhentunut?",
|
"DEPRECATED_FILE": "Vanhentunut?",
|
||||||
"ADD": "Add new attachment. {{maxFileSizeMsg}}",
|
"ADD": "Add new attachment. {{maxFileSizeMsg}}",
|
||||||
"DROP": "Drop attachments here!",
|
"DROP": "Drop attachments here!",
|
||||||
"MAX_FILE_SIZE": "[Maks. koko: {{maxFileSize}}]",
|
|
||||||
"SHOW_DEPRECATED": "+ näytä vanhentuneet liitteet",
|
"SHOW_DEPRECATED": "+ näytä vanhentuneet liitteet",
|
||||||
"HIDE_DEPRECATED": "- piilota vanhentuneet liitteet",
|
"HIDE_DEPRECATED": "- piilota vanhentuneet liitteet",
|
||||||
"COUNT_DEPRECATED": "({{ counter }} vanhentunutta)",
|
"COUNT_DEPRECATED": "({{ counter }} vanhentunutta)",
|
||||||
|
@ -406,7 +409,9 @@
|
||||||
"TITLE": "Hallinnoi jäseniä",
|
"TITLE": "Hallinnoi jäseniä",
|
||||||
"PAGE_TITLE": "Memberships - {{projectName}}",
|
"PAGE_TITLE": "Memberships - {{projectName}}",
|
||||||
"ADD_BUTTON": "+ Uusi jäsen",
|
"ADD_BUTTON": "+ Uusi jäsen",
|
||||||
"ADD_BUTTON_TITLE": "Lisää jäsen"
|
"ADD_BUTTON_TITLE": "Lisää jäsen",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_ADMIN": "Unfortunately, this project has reached its limit of <strong>({{members}})</strong> allowed members.",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_OWNER": "This project has reached its limit of <strong>({{members}})</strong> allowed members. If you would like to increase that limit please contact the administrator."
|
||||||
},
|
},
|
||||||
"PROJECT_EXPORT": {
|
"PROJECT_EXPORT": {
|
||||||
"TITLE": "Vie",
|
"TITLE": "Vie",
|
||||||
|
@ -428,6 +433,10 @@
|
||||||
"DISABLE": "Passivoi",
|
"DISABLE": "Passivoi",
|
||||||
"BACKLOG": "Odottavat",
|
"BACKLOG": "Odottavat",
|
||||||
"BACKLOG_DESCRIPTION": "Hallinnoi käyttäjätarinoita: järjestele ja priorisoi työtä.",
|
"BACKLOG_DESCRIPTION": "Hallinnoi käyttäjätarinoita: järjestele ja priorisoi työtä.",
|
||||||
|
"NUMBER_SPRINTS": "Expected number of sprints",
|
||||||
|
"NUMBER_SPRINTS_HELP": "0 for an undetermined number",
|
||||||
|
"NUMBER_US_POINTS": "Expected total of story points",
|
||||||
|
"NUMBER_US_POINTS_HELP": "0 for an undetermined number",
|
||||||
"KANBAN": "Kanban",
|
"KANBAN": "Kanban",
|
||||||
"KANBAN_DESCRIPTION": "Järjestä projektisi tehokkaasti tällä taululla.",
|
"KANBAN_DESCRIPTION": "Järjestä projektisi tehokkaasti tällä taululla.",
|
||||||
"ISSUES": "Pyynnöt",
|
"ISSUES": "Pyynnöt",
|
||||||
|
@ -435,9 +444,9 @@
|
||||||
"WIKI": "Wiki",
|
"WIKI": "Wiki",
|
||||||
"WIKI_DESCRIPTION": "Lisää, muokkaa tai poista sisältöä yhteistyössä muiden kanssa. Tämä on oikea paikka projektin dokumentaatiolle.",
|
"WIKI_DESCRIPTION": "Lisää, muokkaa tai poista sisältöä yhteistyössä muiden kanssa. Tämä on oikea paikka projektin dokumentaatiolle.",
|
||||||
"MEETUP": "Tapaa",
|
"MEETUP": "Tapaa",
|
||||||
"MEETUP_DESCRIPTION": "Valitse videoneuvottelu- järjestelmä. Jopa kehittäjät tarvitsevat katsekontaktia.",
|
"MEETUP_DESCRIPTION": "Choose your videoconference system.",
|
||||||
"SELECT_VIDEOCONFERENCE": "Valitse videoconferenssi-järjestelmä",
|
"SELECT_VIDEOCONFERENCE": "Valitse videoconferenssi-järjestelmä",
|
||||||
"SALT_CHAT_ROOM": "Voit halutessasi lisätä suolaan chat-huoneen nimeen",
|
"SALT_CHAT_ROOM": "Add a prefix to the chatroom name",
|
||||||
"JITSI_CHAT_ROOM": "Jitsi",
|
"JITSI_CHAT_ROOM": "Jitsi",
|
||||||
"APPEARIN_CHAT_ROOM": "AppearIn",
|
"APPEARIN_CHAT_ROOM": "AppearIn",
|
||||||
"TALKY_CHAT_ROOM": "Talky",
|
"TALKY_CHAT_ROOM": "Talky",
|
||||||
|
@ -449,22 +458,31 @@
|
||||||
"PROJECT_DETAILS": "Projektin tiedot",
|
"PROJECT_DETAILS": "Projektin tiedot",
|
||||||
"PROJECT_NAME": "Projektin nimi",
|
"PROJECT_NAME": "Projektin nimi",
|
||||||
"PROJECT_SLUG": "Projektin hukka-aika",
|
"PROJECT_SLUG": "Projektin hukka-aika",
|
||||||
"NUMBER_SPRINTS": "Number of sprints (0 for an undetermined quantity)",
|
|
||||||
"NUMBER_US_POINTS": "Number of US points (0 for an undetermined quantity)",
|
|
||||||
"TAGS": "Avainsanat",
|
"TAGS": "Avainsanat",
|
||||||
"DESCRIPTION": "Kuvaus",
|
"DESCRIPTION": "Kuvaus",
|
||||||
"RECRUITING": "Is this project looking for people?",
|
"RECRUITING": "Is this project looking for people?",
|
||||||
"RECRUITING_MESSAGE": "Who are you looking for?",
|
"RECRUITING_MESSAGE": "Who are you looking for?",
|
||||||
"RECRUITING_PLACEHOLDER": "Define the profiles you are looking for",
|
"RECRUITING_PLACEHOLDER": "Define the profiles you are looking for",
|
||||||
"PUBLIC_PROJECT": "Julkinen projekti",
|
"PUBLIC_PROJECT": "Julkinen projekti",
|
||||||
"PUBLIC_PROJECT_DESC": "Users will be able to find and view your project",
|
|
||||||
"PRIVATE_PROJECT": "Yksityinen projekti",
|
"PRIVATE_PROJECT": "Yksityinen projekti",
|
||||||
"PRIVATE_PROJECT_DESC": "By default, this project will be hidden to the public",
|
|
||||||
"PRIVATE_OR_PUBLIC": "What's the difference between public and private projects?",
|
"PRIVATE_OR_PUBLIC": "What's the difference between public and private projects?",
|
||||||
"DELETE": "Poista tämä projekti",
|
"DELETE": "Poista tämä projekti",
|
||||||
"LOGO_HELP": "The image will be scaled to 80x80px.",
|
"LOGO_HELP": "The image will be scaled to 80x80px.",
|
||||||
"CHANGE_LOGO": "Change logo",
|
"CHANGE_LOGO": "Change logo",
|
||||||
"ACTION_USE_DEFAULT_LOGO": "Use default image"
|
"ACTION_USE_DEFAULT_LOGO": "Use default image",
|
||||||
|
"MAX_PRIVATE_PROJECTS": "You've reached the maximum number of private projects allowed by your current plan",
|
||||||
|
"MAX_PRIVATE_PROJECTS_MEMBERS": "The maximum number of members for private projects has been exceeded",
|
||||||
|
"MAX_PUBLIC_PROJECTS": "Unfortunately, you've reached the maximum number of public projects allowed by your current plan",
|
||||||
|
"MAX_PUBLIC_PROJECTS_MEMBERS": "The project exceeds your maximum number of members for public projects",
|
||||||
|
"PROJECT_OWNER": "Project owner",
|
||||||
|
"REQUEST_OWNERSHIP": "Request ownership",
|
||||||
|
"REQUEST_OWNERSHIP_CONFIRMATION_TITLE": "Do you want to become the new project owner?",
|
||||||
|
"REQUEST_OWNERSHIP_DESC": "Request that current project owner {{name}} transfer ownership of this project to you.",
|
||||||
|
"REQUEST_OWNERSHIP_BUTTON": "Pyyntö",
|
||||||
|
"REQUEST_OWNERSHIP_SUCCESS": "We'll notify the project owner",
|
||||||
|
"CHANGE_OWNER": "Change owner",
|
||||||
|
"CHANGE_OWNER_SUCCESS_TITLE": "Ok, your request has been sent!",
|
||||||
|
"CHANGE_OWNER_SUCCESS_DESC": "We will notify you by email if the project ownership request is accepted or declined"
|
||||||
},
|
},
|
||||||
"REPORTS": {
|
"REPORTS": {
|
||||||
"TITLE": "Raportit",
|
"TITLE": "Raportit",
|
||||||
|
@ -495,7 +513,8 @@
|
||||||
"ISSUE_ADD": "Lisää oma kenttä pyynnöille",
|
"ISSUE_ADD": "Lisää oma kenttä pyynnöille",
|
||||||
"FIELD_TYPE_TEXT": "Text",
|
"FIELD_TYPE_TEXT": "Text",
|
||||||
"FIELD_TYPE_MULTI": "Multi-line",
|
"FIELD_TYPE_MULTI": "Multi-line",
|
||||||
"FIELD_TYPE_DATE": "Date"
|
"FIELD_TYPE_DATE": "Date",
|
||||||
|
"FIELD_TYPE_URL": "Url"
|
||||||
},
|
},
|
||||||
"PROJECT_VALUES": {
|
"PROJECT_VALUES": {
|
||||||
"PAGE_TITLE": "{{sectionName}} - Project values - {{projectName}}",
|
"PAGE_TITLE": "{{sectionName}} - Project values - {{projectName}}",
|
||||||
|
@ -543,7 +562,7 @@
|
||||||
"COUNT_MEMBERS": "{{ role.members_count }} jäsentä joilla tämä rooli",
|
"COUNT_MEMBERS": "{{ role.members_count }} jäsentä joilla tämä rooli",
|
||||||
"TITLE_DELETE_ROLE": "Poista rooli",
|
"TITLE_DELETE_ROLE": "Poista rooli",
|
||||||
"REPLACEMENT_ROLE": "Kaikki käyttäjä joilla on tämä rooli siirretään",
|
"REPLACEMENT_ROLE": "Kaikki käyttäjä joilla on tämä rooli siirretään",
|
||||||
"WARNING_DELETE_ROLE": "<strong>Ole varovainen, rooli-arvioinnit poistetaan</strong>",
|
"WARNING_DELETE_ROLE": "Be careful! All role estimations will be removed",
|
||||||
"ERROR_DELETE_ALL": "Voit poistaa kaikki arvot",
|
"ERROR_DELETE_ALL": "Voit poistaa kaikki arvot",
|
||||||
"EXTERNAL_USER": "Ulkoinen käyttäjä"
|
"EXTERNAL_USER": "Ulkoinen käyttäjä"
|
||||||
},
|
},
|
||||||
|
@ -671,6 +690,24 @@
|
||||||
},
|
},
|
||||||
"SUBMENU_THIDPARTIES": {
|
"SUBMENU_THIDPARTIES": {
|
||||||
"TITLE": "Palvelut"
|
"TITLE": "Palvelut"
|
||||||
|
},
|
||||||
|
"PROJECT_TRANSFER": {
|
||||||
|
"DO_YOU_ACCEPT_PROJECT_OWNERNSHIP": "Would you like to become the new project owner?",
|
||||||
|
"PRIVATE": "Private",
|
||||||
|
"ACCEPTED_PROJECT_OWNERNSHIP": "Congratulations! You're now the new project owner.",
|
||||||
|
"REJECTED_PROJECT_OWNERNSHIP": "OK. We'll contact the current project owner",
|
||||||
|
"ACCEPT": "Hyväksy",
|
||||||
|
"REJECT": "Reject",
|
||||||
|
"PROPOSE_OWNERSHIP": "<strong>{{owner}}</strong>, the current owner of the project <strong>{{project}}</strong> has asked that you become the new project owner.",
|
||||||
|
"ADD_COMMENT_QUESTION": "Would you like to send a question to the project owner?",
|
||||||
|
"ADD_COMMENT": "Would you like to add a comment for the project owner?",
|
||||||
|
"UNLIMITED_PROJECTS": "Unlimited",
|
||||||
|
"OWNER_MESSAGE": {
|
||||||
|
"PRIVATE": "Please remember that you can own up to <strong>{{maxProjects}}</strong> private projects. You currently own <strong>{{currentProjects}}</strong> private projects",
|
||||||
|
"PUBLIC": "Please remember that you can own up to <strong>{{maxProjects}}</strong> public projects. You currently own <strong>{{currentProjects}}</strong> public projects"
|
||||||
|
},
|
||||||
|
"CANT_BE_OWNED": "At the moment you cannot become an owner of a project of this type. If you would like to become the owner of this project, please contact the administrator so they change your account settings to enable project ownership.",
|
||||||
|
"CHANGE_MY_PLAN": "Change my plan"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"USER": {
|
"USER": {
|
||||||
|
@ -731,6 +768,11 @@
|
||||||
"FANS_COUNTER_TITLE": "{total, plural, one{one fan} other{# fans}}",
|
"FANS_COUNTER_TITLE": "{total, plural, one{one fan} other{# fans}}",
|
||||||
"WATCHERS_COUNTER_TITLE": "{total, plural, one{one watcher} other{# watchers}}",
|
"WATCHERS_COUNTER_TITLE": "{total, plural, one{one watcher} other{# watchers}}",
|
||||||
"MEMBERS_COUNTER_TITLE": "{total, plural, one{one member} other{# members}}",
|
"MEMBERS_COUNTER_TITLE": "{total, plural, one{one member} other{# members}}",
|
||||||
|
"BLOCKED_PROJECT": {
|
||||||
|
"BLOCKED": "Blocked project",
|
||||||
|
"THIS_PROJECT_IS_BLOCKED": "This project is temporarily blocked",
|
||||||
|
"TO_UNBLOCK_CONTACT_THE_ADMIN_STAFF": "In order to unblock your projects, contact the administrator."
|
||||||
|
},
|
||||||
"STATS": {
|
"STATS": {
|
||||||
"PROJECT": "projekti<br/> pisteet",
|
"PROJECT": "projekti<br/> pisteet",
|
||||||
"DEFINED": "määritely<br/> pistettä",
|
"DEFINED": "määritely<br/> pistettä",
|
||||||
|
@ -777,6 +819,7 @@
|
||||||
"CHANGE_PASSWORD": "Muuta salasanaa",
|
"CHANGE_PASSWORD": "Muuta salasanaa",
|
||||||
"DASHBOARD_TITLE": "Dashboard",
|
"DASHBOARD_TITLE": "Dashboard",
|
||||||
"DISCOVER_TITLE": "Discover trending projects",
|
"DISCOVER_TITLE": "Discover trending projects",
|
||||||
|
"NEW_ITEM": "Uusi",
|
||||||
"DISCOVER": "Discover",
|
"DISCOVER": "Discover",
|
||||||
"ACTION_REORDER": "Drag & drop to reorder"
|
"ACTION_REORDER": "Drag & drop to reorder"
|
||||||
},
|
},
|
||||||
|
@ -791,7 +834,32 @@
|
||||||
"ERROR_TOO_MANY_REQUEST": "Oompa Loompas ovat kiireisiä juuri nyt. Yritä hetken päästä uudelleen.",
|
"ERROR_TOO_MANY_REQUEST": "Oompa Loompas ovat kiireisiä juuri nyt. Yritä hetken päästä uudelleen.",
|
||||||
"ERROR_MESSAGE": "Oompa Loompas eivät pysty lukemaan tiedostoasi: {{error_message}}",
|
"ERROR_MESSAGE": "Oompa Loompas eivät pysty lukemaan tiedostoasi: {{error_message}}",
|
||||||
"ERROR_MAX_SIZE_EXCEEDED": "'{{fileName}}' ({{fileSize}}) on liian iso Oompa Loompaseille, kokeile pienemmällä kuin ({{maxFileSize}})",
|
"ERROR_MAX_SIZE_EXCEEDED": "'{{fileName}}' ({{fileSize}}) on liian iso Oompa Loompaseille, kokeile pienemmällä kuin ({{maxFileSize}})",
|
||||||
"SYNC_SUCCESS": "Projektisi on tuotu sisään onnistuneesti"
|
"SYNC_SUCCESS": "Projektisi on tuotu sisään onnistuneesti",
|
||||||
|
"PROJECT_RESTRICTIONS": {
|
||||||
|
"PROJECT_MEMBERS_DESC": "The project you are trying to import has {{members}} members, unfortunately, your current plan allows for a maximum of {{max_memberships}} members per project. If you would like to increase that limit please contact the administrator.",
|
||||||
|
"PRIVATE_PROJECTS_SPACE": {
|
||||||
|
"TITLE": "Unfortunately, your current plan does not allow for additional private projects",
|
||||||
|
"DESC": "The project you are trying to import is private. Unfortunately, your current plan does not allow for additional private projects."
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_SPACE": {
|
||||||
|
"TITLE": "Unfortunately, your current plan does not allow for additional private projects",
|
||||||
|
"DESC": "The project you are trying to import is public. Unfortunately, your current plan does not allow additional public projects."
|
||||||
|
},
|
||||||
|
"PRIVATE_PROJECTS_MEMBERS": {
|
||||||
|
"TITLE": "Your current plan allows for a maximum of {{max_memberships}} members per private project"
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_MEMBERS": {
|
||||||
|
"TITLE": "Your current plan allows for a maximum of {{max_memberships}} members per public project."
|
||||||
|
},
|
||||||
|
"PRIVATE_PROJECTS_SPACE_MEMBERS": {
|
||||||
|
"TITLE": "Unfortunately your current plan doesn't allow additional private projects or an increase of more than {{max_memberships}} members per private project",
|
||||||
|
"DESC": "The project that you are trying to import is private and has {{members}} members."
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_SPACE_MEMBERS": {
|
||||||
|
"TITLE": "Unfortunately your current plan doesn't allow additional public projects or an increase of more than {{max_memberships}} members per public project",
|
||||||
|
"DESC": "The project that you are trying to import is public and has more than {{members}} members."
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"LIKE_BUTTON": {
|
"LIKE_BUTTON": {
|
||||||
"LIKE": "Like",
|
"LIKE": "Like",
|
||||||
|
@ -819,8 +887,11 @@
|
||||||
"DELETE_ACCOUNT": {
|
"DELETE_ACCOUNT": {
|
||||||
"SECTION_NAME": "Poista Taiga-tunnus",
|
"SECTION_NAME": "Poista Taiga-tunnus",
|
||||||
"CONFIRM": "Haluatko varmasti poistaa Taiga-tunnuksesi?",
|
"CONFIRM": "Haluatko varmasti poistaa Taiga-tunnuksesi?",
|
||||||
"SUBTITLE": "Tulemme kaipaamaan sinua! :-(",
|
"NEWSLETTER_LABEL_TEXT": "En halua uutiskirjettä enää",
|
||||||
"NEWSLETTER_LABEL_TEXT": "En halua uutiskirjettä enää"
|
"CANCEL": "Back to settings",
|
||||||
|
"ACCEPT": "Delete account",
|
||||||
|
"BLOCK_PROJECT": "Note that all the projects you own projects will be <strong>blocked</strong> after you delete your account. If you do want a project blocked, transfer ownership to another member of each project prior to deleting your account.",
|
||||||
|
"SUBTITLE": "Sorry to see you go. We'll be here if you should ever consider us again! :("
|
||||||
},
|
},
|
||||||
"DELETE_PROJECT": {
|
"DELETE_PROJECT": {
|
||||||
"TITLE": "Poista projekti",
|
"TITLE": "Poista projekti",
|
||||||
|
@ -876,7 +947,25 @@
|
||||||
},
|
},
|
||||||
"CREATE_MEMBER": {
|
"CREATE_MEMBER": {
|
||||||
"PLACEHOLDER_INVITATION_TEXT": "(Vapaaehtoinen) Lisää oma kuvaus kutsuusi uusille jäsenille ;-)",
|
"PLACEHOLDER_INVITATION_TEXT": "(Vapaaehtoinen) Lisää oma kuvaus kutsuusi uusille jäsenille ;-)",
|
||||||
"PLACEHOLDER_TYPE_EMAIL": "Anna sähköposti"
|
"PLACEHOLDER_TYPE_EMAIL": "Anna sähköposti",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_OWNER": "Unfortunately, this project can't have more than <strong>{{maxMembers}}</strong> members.<br> If you would like to increase the current limit, please contact the administrator.",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE": "Unfortunately, this project can't have more than <strong>{{maxMembers}}</strong> members."
|
||||||
|
},
|
||||||
|
"LEAVE_PROJECT_WARNING": {
|
||||||
|
"TITLE": "Unfortunately, this project can't be left without an owner",
|
||||||
|
"CURRENT_USER_OWNER": {
|
||||||
|
"DESC": "You are the current owner of this project. Before leaving, please transfer ownership to someone else.",
|
||||||
|
"BUTTON": "Change the project owner"
|
||||||
|
},
|
||||||
|
"OTHER_USER_OWNER": {
|
||||||
|
"DESC": "Unfortunately, you can't delete a member who is also the current project owner. First, please assign a new project owner.",
|
||||||
|
"BUTTON": "Request project owner change"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"CHANGE_OWNER": {
|
||||||
|
"TITLE": "Who do you want to be the new project owner?",
|
||||||
|
"ADD_COMMENT": "Add comment",
|
||||||
|
"BUTTON": "Ask this project member to become the new project owner"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"US": {
|
"US": {
|
||||||
|
@ -1304,12 +1393,18 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"WIZARD": {
|
"WIZARD": {
|
||||||
"SECTION_TITLE_CHOOSE_TEMPLATE": "Valitse pohja",
|
|
||||||
"CHOOSE_TEMPLATE_TEXT": "Mikä pohja sopii paremmin projektillesi?",
|
|
||||||
"SECTION_TITLE_CREATE_PROJECT": "Luo projekti",
|
"SECTION_TITLE_CREATE_PROJECT": "Luo projekti",
|
||||||
"CREATE_PROJECT_TEXT": "Täysin koskematon. Jännittävää!",
|
"CREATE_PROJECT_TEXT": "Täysin koskematon. Jännittävää!",
|
||||||
"PROGRESS_TEMPLATE_SELECTION": "Pohjan valinta",
|
"CHOOSE_TEMPLATE": "Which template fits your project best?",
|
||||||
"PROGRESS_NAME_DESCRIPTION": "Nimi ja kuvaus"
|
"CHOOSE_TEMPLATE_TITLE": "More info about project templates",
|
||||||
|
"CHOOSE_TEMPLATE_INFO": "More info",
|
||||||
|
"PROJECT_DETAILS": "Project Details",
|
||||||
|
"PUBLIC_PROJECT": "Public Project",
|
||||||
|
"PRIVATE_PROJECT": "Private Project",
|
||||||
|
"CREATE_PROJECT": "Luo projekti",
|
||||||
|
"MAX_PRIVATE_PROJECTS": "You've reached the maximum number of private projects",
|
||||||
|
"MAX_PUBLIC_PROJECTS": "Unfortunately, you've reached the maximum number of public projects",
|
||||||
|
"CHANGE_PLANS": "change plans"
|
||||||
},
|
},
|
||||||
"WIKI": {
|
"WIKI": {
|
||||||
"PAGE_TITLE": "{{wikiPageName}} - Wiki - {{projectName}}",
|
"PAGE_TITLE": "{{wikiPageName}} - Wiki - {{projectName}}",
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
"UNBLOCK": "Débloquer",
|
"UNBLOCK": "Débloquer",
|
||||||
"UNBLOCK_TITLE": "Débloquer cet élément",
|
"UNBLOCK_TITLE": "Débloquer cet élément",
|
||||||
"BLOCKED_NOTE": "Pourquoi est-ce bloqué ?",
|
"BLOCKED_NOTE": "Pourquoi est-ce bloqué ?",
|
||||||
"BLOCKED_REASON": "Veillez s'il vous plait indiquer la raison",
|
"BLOCKED_REASON": "Veuillez s'il vous plait indiquer la raison",
|
||||||
"CREATED_BY": "Créé par {{fullDisplayName}}",
|
"CREATED_BY": "Créé par {{fullDisplayName}}",
|
||||||
"FROM": "de",
|
"FROM": "de",
|
||||||
"TO": "à",
|
"TO": "à",
|
||||||
|
@ -38,10 +38,11 @@
|
||||||
"LOGOUT": "Déconnexion",
|
"LOGOUT": "Déconnexion",
|
||||||
"EXTERNAL_USER": "un utilisateur externe",
|
"EXTERNAL_USER": "un utilisateur externe",
|
||||||
"GENERIC_ERROR": "L'un de nos Oompa Loompas dit {{error}}.",
|
"GENERIC_ERROR": "L'un de nos Oompa Loompas dit {{error}}.",
|
||||||
"IOCAINE_TEXT": "Vous vous sentez un peu submergé par une tâche ? Soyez certains d'en informer les autres en cliquant su Iocaine lors de la modification de la tâche. Il est possible de s'immuniser contre ce poison (fictif) en consommant de petites quantités en heures supplémentaires, tout comme il est possible de s'améliorer en acceptant parfois de nouveaux défis !",
|
"IOCAINE_TEXT": "Vous vous sentez un peu submergé(e) par une tâche ? Soyez certains d'en informer les autres en cliquant sur Iocaine lors de la modification de la tâche. Il est possible de s'immuniser contre ce poison (fictif) en consommant de petites quantités en heures supplémentaires, tout comme il est possible de s'améliorer en acceptant parfois de nouveaux défis !",
|
||||||
"CLIENT_REQUIREMENT": "Un besoin client est un nouveau besoin qui n'était pas prévu et qu'il est nécessaire d'intégrer au projet",
|
"CLIENT_REQUIREMENT": "Un besoin client est un nouveau besoin qui n'était pas prévu et qu'il est nécessaire d'intégrer au projet",
|
||||||
"TEAM_REQUIREMENT": "Un besoin projet est un besoin qui est nécessaire au projet mais qui ne doit avoir aucun impact pour le client",
|
"TEAM_REQUIREMENT": "Un besoin projet est un besoin qui est nécessaire au projet mais qui ne doit avoir aucun impact pour le client",
|
||||||
"CAPSLOCK_WARNING": "Attention ! Vous tapez en lettres majuscules et ce champ est sensible à la casse.",
|
"OWNER": "Propriétaire du Projet",
|
||||||
|
"CAPSLOCK_WARNING": "Be careful! You are using capital letters in an input field that is case sensitive.",
|
||||||
"FORM_ERRORS": {
|
"FORM_ERRORS": {
|
||||||
"DEFAULT_MESSAGE": "Cette valeur semble être invalide.",
|
"DEFAULT_MESSAGE": "Cette valeur semble être invalide.",
|
||||||
"TYPE_EMAIL": "Cette valeur devrait être une adresse courriel valide.",
|
"TYPE_EMAIL": "Cette valeur devrait être une adresse courriel valide.",
|
||||||
|
@ -65,7 +66,9 @@
|
||||||
"MIN_CHECK": "Vous devez sélectionner au moins %s options.",
|
"MIN_CHECK": "Vous devez sélectionner au moins %s options.",
|
||||||
"MAX_CHECK": "Vous devez sélectionner %s options ou moins.",
|
"MAX_CHECK": "Vous devez sélectionner %s options ou moins.",
|
||||||
"RANGE_CHECK": "Vous devez sélectionner parmi les choix %s et %s.",
|
"RANGE_CHECK": "Vous devez sélectionner parmi les choix %s et %s.",
|
||||||
"EQUAL_TO": "Cette valeur doit être identique."
|
"EQUAL_TO": "Cette valeur doit être identique.",
|
||||||
|
"LINEWIDTH": "One or more lines is perhaps too long. Try to keep under %s characters.",
|
||||||
|
"PIKADAY": "Invalid date format, please use DD MMM YYYY (like 23 Mar 1984)"
|
||||||
},
|
},
|
||||||
"PICKERDATE": {
|
"PICKERDATE": {
|
||||||
"FORMAT": "DD MMM YYYY",
|
"FORMAT": "DD MMM YYYY",
|
||||||
|
@ -144,13 +147,13 @@
|
||||||
},
|
},
|
||||||
"ASSIGNED_TO": {
|
"ASSIGNED_TO": {
|
||||||
"NOT_ASSIGNED": "Non affecté",
|
"NOT_ASSIGNED": "Non affecté",
|
||||||
"ASSIGN": "Assigné",
|
"ASSIGN": "Affecter",
|
||||||
"DELETE_ASSIGNMENT": "Supprimer l'affectation",
|
"DELETE_ASSIGNMENT": "Supprimer l'affectation",
|
||||||
"REMOVE_ASSIGNED": "Supprimer l'affectation",
|
"REMOVE_ASSIGNED": "Supprimer l'affectation",
|
||||||
"TOO_MANY": "...trop d'utilisateurs ; filtrez davantage",
|
"TOO_MANY": "...trop d'utilisateurs ; filtrez davantage",
|
||||||
"CONFIRM_UNASSIGNED": "Etes-vous sûr de vouloir continuer sans affectation ?",
|
"CONFIRM_UNASSIGNED": "Etes-vous sûr de vouloir continuer sans affectation ?",
|
||||||
"TITLE_ACTION_EDIT_ASSIGNMENT": "Modifier l'affectation",
|
"TITLE_ACTION_EDIT_ASSIGNMENT": "Modifier l'affectation",
|
||||||
"SELF": "Me l'assigné"
|
"SELF": "Me l'affecter"
|
||||||
},
|
},
|
||||||
"STATUS": {
|
"STATUS": {
|
||||||
"CLOSED": "Fermé",
|
"CLOSED": "Fermé",
|
||||||
|
@ -315,7 +318,8 @@
|
||||||
"PLACEHOLDER_FIELD": "Nom d'utilisateur ou adresse courriel",
|
"PLACEHOLDER_FIELD": "Nom d'utilisateur ou adresse courriel",
|
||||||
"ACTION_RESET_PASSWORD": "Réinitialiser le mot de passe",
|
"ACTION_RESET_PASSWORD": "Réinitialiser le mot de passe",
|
||||||
"LINK_CANCEL": "Nan, ramenez-moi en arrière. Je crois que je m'en souviens.",
|
"LINK_CANCEL": "Nan, ramenez-moi en arrière. Je crois que je m'en souviens.",
|
||||||
"SUCCESS": "<strong>Consultez votre messagerie !</strong><br />Nous venons d'envoyer un courriel avec les instructions pour créer un nouveau mot de passe",
|
"SUCCESS_TITLE": "Check your inbox!",
|
||||||
|
"SUCCESS_TEXT": "We sent you an email with the instructions to set a new password",
|
||||||
"ERROR": "D'après nos Oompa Loompas, vous n'êtes pas encore enregistré."
|
"ERROR": "D'après nos Oompa Loompas, vous n'êtes pas encore enregistré."
|
||||||
},
|
},
|
||||||
"CHANGE_PASSWORD": {
|
"CHANGE_PASSWORD": {
|
||||||
|
@ -373,7 +377,6 @@
|
||||||
"DEPRECATED_FILE": "Obsolète ?",
|
"DEPRECATED_FILE": "Obsolète ?",
|
||||||
"ADD": "Ajoutez une nouvelle pièce jointe. {{maxFileSizeMsg}}",
|
"ADD": "Ajoutez une nouvelle pièce jointe. {{maxFileSizeMsg}}",
|
||||||
"DROP": "Déposer les pièces jointes ici !",
|
"DROP": "Déposer les pièces jointes ici !",
|
||||||
"MAX_FILE_SIZE": "[Taille max. : {{maxFileSize}}]",
|
|
||||||
"SHOW_DEPRECATED": "+ montrer les pièces jointes obsolètes",
|
"SHOW_DEPRECATED": "+ montrer les pièces jointes obsolètes",
|
||||||
"HIDE_DEPRECATED": "- cacher les pièces jointes obsolètes",
|
"HIDE_DEPRECATED": "- cacher les pièces jointes obsolètes",
|
||||||
"COUNT_DEPRECATED": "({{ counter }} obsolètes)",
|
"COUNT_DEPRECATED": "({{ counter }} obsolètes)",
|
||||||
|
@ -406,7 +409,9 @@
|
||||||
"TITLE": "Gérer les membres",
|
"TITLE": "Gérer les membres",
|
||||||
"PAGE_TITLE": "Membres - {{projectName}}",
|
"PAGE_TITLE": "Membres - {{projectName}}",
|
||||||
"ADD_BUTTON": "+ Nouveau membre",
|
"ADD_BUTTON": "+ Nouveau membre",
|
||||||
"ADD_BUTTON_TITLE": "Ajouter un membre"
|
"ADD_BUTTON_TITLE": "Ajouter un membre",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_ADMIN": "Unfortunately, this project has reached its limit of <strong>({{members}})</strong> allowed members.",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_OWNER": "This project has reached its limit of <strong>({{members}})</strong> allowed members. If you would like to increase that limit please contact the administrator."
|
||||||
},
|
},
|
||||||
"PROJECT_EXPORT": {
|
"PROJECT_EXPORT": {
|
||||||
"TITLE": "Exporter",
|
"TITLE": "Exporter",
|
||||||
|
@ -428,6 +433,10 @@
|
||||||
"DISABLE": "Désactiver",
|
"DISABLE": "Désactiver",
|
||||||
"BACKLOG": "Backlog",
|
"BACKLOG": "Backlog",
|
||||||
"BACKLOG_DESCRIPTION": "Gérez votre récits utilisateur pour garder une vue organisée des travaux à venir et priorisés.",
|
"BACKLOG_DESCRIPTION": "Gérez votre récits utilisateur pour garder une vue organisée des travaux à venir et priorisés.",
|
||||||
|
"NUMBER_SPRINTS": "Nombre prévu de sprints",
|
||||||
|
"NUMBER_SPRINTS_HELP": "0 for an undetermined number",
|
||||||
|
"NUMBER_US_POINTS": "Total prévu de points d'histoire",
|
||||||
|
"NUMBER_US_POINTS_HELP": "0 for an undetermined number",
|
||||||
"KANBAN": "Kanban",
|
"KANBAN": "Kanban",
|
||||||
"KANBAN_DESCRIPTION": "Organisez votre projet de manière agile avec ce tableau.",
|
"KANBAN_DESCRIPTION": "Organisez votre projet de manière agile avec ce tableau.",
|
||||||
"ISSUES": "Tickets",
|
"ISSUES": "Tickets",
|
||||||
|
@ -435,9 +444,9 @@
|
||||||
"WIKI": "Wiki",
|
"WIKI": "Wiki",
|
||||||
"WIKI_DESCRIPTION": "Ajoutez, modifiez, ou supprimez du contenu en collaboration avec d'autres. C'est le bon endroit pour la documentation de votre projet.",
|
"WIKI_DESCRIPTION": "Ajoutez, modifiez, ou supprimez du contenu en collaboration avec d'autres. C'est le bon endroit pour la documentation de votre projet.",
|
||||||
"MEETUP": "Meet Up",
|
"MEETUP": "Meet Up",
|
||||||
"MEETUP_DESCRIPTION": "Choisissez votre système de vidéoconférence. Même les développeurs ont besoin de contact en face à face.",
|
"MEETUP_DESCRIPTION": "Choisissez un système de vidéoconférence",
|
||||||
"SELECT_VIDEOCONFERENCE": "Choisissez un système de vidéoconférence",
|
"SELECT_VIDEOCONFERENCE": "Choisissez un système de vidéoconférence",
|
||||||
"SALT_CHAT_ROOM": "Si vous le souhaitez vous pouvez ajouter un code de salage au nom du salon de discussion",
|
"SALT_CHAT_ROOM": "Add a prefix to the chatroom name",
|
||||||
"JITSI_CHAT_ROOM": "Jitsi",
|
"JITSI_CHAT_ROOM": "Jitsi",
|
||||||
"APPEARIN_CHAT_ROOM": "AppearIn",
|
"APPEARIN_CHAT_ROOM": "AppearIn",
|
||||||
"TALKY_CHAT_ROOM": "Talky",
|
"TALKY_CHAT_ROOM": "Talky",
|
||||||
|
@ -449,22 +458,31 @@
|
||||||
"PROJECT_DETAILS": "Détails du projet",
|
"PROJECT_DETAILS": "Détails du projet",
|
||||||
"PROJECT_NAME": "Nom du projet",
|
"PROJECT_NAME": "Nom du projet",
|
||||||
"PROJECT_SLUG": "Label du projet",
|
"PROJECT_SLUG": "Label du projet",
|
||||||
"NUMBER_SPRINTS": "Nombre de sprints (0 pour non déterminé)",
|
|
||||||
"NUMBER_US_POINTS": "Nombre de points de RU (0 pour non déterminé)",
|
|
||||||
"TAGS": "Mots-clés",
|
"TAGS": "Mots-clés",
|
||||||
"DESCRIPTION": "Description",
|
"DESCRIPTION": "Description",
|
||||||
"RECRUITING": "Est-ce que ce projet recherche des membres ?",
|
"RECRUITING": "Est-ce que ce projet recherche des membres ?",
|
||||||
"RECRUITING_MESSAGE": "Qui cherchez-vous ?",
|
"RECRUITING_MESSAGE": "Qui cherchez-vous ?",
|
||||||
"RECRUITING_PLACEHOLDER": "Définissez le profil que vous recherchez",
|
"RECRUITING_PLACEHOLDER": "Définissez le profil que vous recherchez",
|
||||||
"PUBLIC_PROJECT": "Projet public",
|
"PUBLIC_PROJECT": "Projet public",
|
||||||
"PUBLIC_PROJECT_DESC": "Les membres vont pouvoir chercher et voir votre projet.",
|
|
||||||
"PRIVATE_PROJECT": "Projet privé",
|
"PRIVATE_PROJECT": "Projet privé",
|
||||||
"PRIVATE_PROJECT_DESC": "Par défaut, ce project va être caché au public",
|
|
||||||
"PRIVATE_OR_PUBLIC": "Quelle est la différence entre les projets publics et privés ?",
|
"PRIVATE_OR_PUBLIC": "Quelle est la différence entre les projets publics et privés ?",
|
||||||
"DELETE": "Supprimer ce projet",
|
"DELETE": "Supprimer ce projet",
|
||||||
"LOGO_HELP": "L'image va être agrandie à 80x80px",
|
"LOGO_HELP": "L'image va être agrandie à 80x80px",
|
||||||
"CHANGE_LOGO": "Changer le logo",
|
"CHANGE_LOGO": "Changer le logo",
|
||||||
"ACTION_USE_DEFAULT_LOGO": "Utiliser l'image par défaut "
|
"ACTION_USE_DEFAULT_LOGO": "Utiliser l'image par défaut",
|
||||||
|
"MAX_PRIVATE_PROJECTS": "You've reached the maximum number of private projects allowed by your current plan",
|
||||||
|
"MAX_PRIVATE_PROJECTS_MEMBERS": "The maximum number of members for private projects has been exceeded",
|
||||||
|
"MAX_PUBLIC_PROJECTS": "Unfortunately, you've reached the maximum number of public projects allowed by your current plan",
|
||||||
|
"MAX_PUBLIC_PROJECTS_MEMBERS": "The project exceeds your maximum number of members for public projects",
|
||||||
|
"PROJECT_OWNER": "Project owner",
|
||||||
|
"REQUEST_OWNERSHIP": "Request ownership",
|
||||||
|
"REQUEST_OWNERSHIP_CONFIRMATION_TITLE": "Do you want to become the new project owner?",
|
||||||
|
"REQUEST_OWNERSHIP_DESC": "Request that current project owner {{name}} transfer ownership of this project to you.",
|
||||||
|
"REQUEST_OWNERSHIP_BUTTON": "Requête",
|
||||||
|
"REQUEST_OWNERSHIP_SUCCESS": "We'll notify the project owner",
|
||||||
|
"CHANGE_OWNER": "Change owner",
|
||||||
|
"CHANGE_OWNER_SUCCESS_TITLE": "Ok, your request has been sent!",
|
||||||
|
"CHANGE_OWNER_SUCCESS_DESC": "We will notify you by email if the project ownership request is accepted or declined"
|
||||||
},
|
},
|
||||||
"REPORTS": {
|
"REPORTS": {
|
||||||
"TITLE": "Rapports",
|
"TITLE": "Rapports",
|
||||||
|
@ -495,7 +513,8 @@
|
||||||
"ISSUE_ADD": "Ajouter un champ personnalisé dans les tickets",
|
"ISSUE_ADD": "Ajouter un champ personnalisé dans les tickets",
|
||||||
"FIELD_TYPE_TEXT": "Texte",
|
"FIELD_TYPE_TEXT": "Texte",
|
||||||
"FIELD_TYPE_MULTI": "Multiligne",
|
"FIELD_TYPE_MULTI": "Multiligne",
|
||||||
"FIELD_TYPE_DATE": "Date"
|
"FIELD_TYPE_DATE": "Date",
|
||||||
|
"FIELD_TYPE_URL": "Url"
|
||||||
},
|
},
|
||||||
"PROJECT_VALUES": {
|
"PROJECT_VALUES": {
|
||||||
"PAGE_TITLE": "{{sectionName}} - Valeurs du projet - {{projectName}}",
|
"PAGE_TITLE": "{{sectionName}} - Valeurs du projet - {{projectName}}",
|
||||||
|
@ -543,7 +562,7 @@
|
||||||
"COUNT_MEMBERS": "{{ role.members_count }} membres avec ce rôle",
|
"COUNT_MEMBERS": "{{ role.members_count }} membres avec ce rôle",
|
||||||
"TITLE_DELETE_ROLE": "Supprimer des rôles",
|
"TITLE_DELETE_ROLE": "Supprimer des rôles",
|
||||||
"REPLACEMENT_ROLE": "Tous les utilisateurs avec ce rôle seront déplacés dans",
|
"REPLACEMENT_ROLE": "Tous les utilisateurs avec ce rôle seront déplacés dans",
|
||||||
"WARNING_DELETE_ROLE": "<strong>Attention, toutes les estimations de rôle seront supprimées</strong>",
|
"WARNING_DELETE_ROLE": "Be careful! All role estimations will be removed",
|
||||||
"ERROR_DELETE_ALL": "Vous ne pouvez pas supprimer toutes les valeurs",
|
"ERROR_DELETE_ALL": "Vous ne pouvez pas supprimer toutes les valeurs",
|
||||||
"EXTERNAL_USER": "Utilisateur externe"
|
"EXTERNAL_USER": "Utilisateur externe"
|
||||||
},
|
},
|
||||||
|
@ -671,6 +690,24 @@
|
||||||
},
|
},
|
||||||
"SUBMENU_THIDPARTIES": {
|
"SUBMENU_THIDPARTIES": {
|
||||||
"TITLE": "Services"
|
"TITLE": "Services"
|
||||||
|
},
|
||||||
|
"PROJECT_TRANSFER": {
|
||||||
|
"DO_YOU_ACCEPT_PROJECT_OWNERNSHIP": "Would you like to become the new project owner?",
|
||||||
|
"PRIVATE": "Private",
|
||||||
|
"ACCEPTED_PROJECT_OWNERNSHIP": "Congratulations! You're now the new project owner.",
|
||||||
|
"REJECTED_PROJECT_OWNERNSHIP": "OK. We'll contact the current project owner",
|
||||||
|
"ACCEPT": "Accepter",
|
||||||
|
"REJECT": "Reject",
|
||||||
|
"PROPOSE_OWNERSHIP": "<strong>{{owner}}</strong>, the current owner of the project <strong>{{project}}</strong> has asked that you become the new project owner.",
|
||||||
|
"ADD_COMMENT_QUESTION": "Would you like to send a question to the project owner?",
|
||||||
|
"ADD_COMMENT": "Would you like to add a comment for the project owner?",
|
||||||
|
"UNLIMITED_PROJECTS": "Unlimited",
|
||||||
|
"OWNER_MESSAGE": {
|
||||||
|
"PRIVATE": "Please remember that you can own up to <strong>{{maxProjects}}</strong> private projects. You currently own <strong>{{currentProjects}}</strong> private projects",
|
||||||
|
"PUBLIC": "Please remember that you can own up to <strong>{{maxProjects}}</strong> public projects. You currently own <strong>{{currentProjects}}</strong> public projects"
|
||||||
|
},
|
||||||
|
"CANT_BE_OWNED": "At the moment you cannot become an owner of a project of this type. If you would like to become the owner of this project, please contact the administrator so they change your account settings to enable project ownership.",
|
||||||
|
"CHANGE_MY_PLAN": "Change my plan"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"USER": {
|
"USER": {
|
||||||
|
@ -703,7 +740,7 @@
|
||||||
},
|
},
|
||||||
"PROFILE_SIDEBAR": {
|
"PROFILE_SIDEBAR": {
|
||||||
"TITLE": "Votre profil",
|
"TITLE": "Votre profil",
|
||||||
"DESCRIPTION": "Tout le monde peut voir ce que vous fêtes et ce sur quoi vous travaillez. Ajoutez votre bio pour donner une version améliorée de vos informations.",
|
"DESCRIPTION": "Tout le monde peut voir ce que vous faites et ce sur quoi vous travaillez. Ajoutez votre bio pour donner une version améliorée de vos informations.",
|
||||||
"ADD_INFO": "Editer la biographie"
|
"ADD_INFO": "Editer la biographie"
|
||||||
},
|
},
|
||||||
"PROFILE_FAVS": {
|
"PROFILE_FAVS": {
|
||||||
|
@ -731,6 +768,11 @@
|
||||||
"FANS_COUNTER_TITLE": "{total, plural, one{un fan} other{# fans}}",
|
"FANS_COUNTER_TITLE": "{total, plural, one{un fan} other{# fans}}",
|
||||||
"WATCHERS_COUNTER_TITLE": "{total, plural, one{un observateur} other{# observateurs}}",
|
"WATCHERS_COUNTER_TITLE": "{total, plural, one{un observateur} other{# observateurs}}",
|
||||||
"MEMBERS_COUNTER_TITLE": "{total, plural, one{un membre} other{# membres}}",
|
"MEMBERS_COUNTER_TITLE": "{total, plural, one{un membre} other{# membres}}",
|
||||||
|
"BLOCKED_PROJECT": {
|
||||||
|
"BLOCKED": "Projet bloqué",
|
||||||
|
"THIS_PROJECT_IS_BLOCKED": "Ce projet est temporairement verrouillé",
|
||||||
|
"TO_UNBLOCK_CONTACT_THE_ADMIN_STAFF": "In order to unblock your projects, contact the administrator."
|
||||||
|
},
|
||||||
"STATS": {
|
"STATS": {
|
||||||
"PROJECT": "points<br/> projet",
|
"PROJECT": "points<br/> projet",
|
||||||
"DEFINED": "points<br/> définis",
|
"DEFINED": "points<br/> définis",
|
||||||
|
@ -777,6 +819,7 @@
|
||||||
"CHANGE_PASSWORD": "Modifier le mot de passe",
|
"CHANGE_PASSWORD": "Modifier le mot de passe",
|
||||||
"DASHBOARD_TITLE": "Tableau de bord",
|
"DASHBOARD_TITLE": "Tableau de bord",
|
||||||
"DISCOVER_TITLE": "Découvrir les projets populaires",
|
"DISCOVER_TITLE": "Découvrir les projets populaires",
|
||||||
|
"NEW_ITEM": "Nouveau",
|
||||||
"DISCOVER": "Découvrir",
|
"DISCOVER": "Découvrir",
|
||||||
"ACTION_REORDER": "Glisser-déposer pour réorganiser"
|
"ACTION_REORDER": "Glisser-déposer pour réorganiser"
|
||||||
},
|
},
|
||||||
|
@ -791,7 +834,32 @@
|
||||||
"ERROR_TOO_MANY_REQUEST": "Nous sommes désolés, nos Oompa Loompas sont très occupés en ce moment. Veuillez réessayer dans quelques minutes.",
|
"ERROR_TOO_MANY_REQUEST": "Nous sommes désolés, nos Oompa Loompas sont très occupés en ce moment. Veuillez réessayer dans quelques minutes.",
|
||||||
"ERROR_MESSAGE": "Nos Oompa Loompas ont des problèmes pour importer vos données de vidage : {{error_message}}",
|
"ERROR_MESSAGE": "Nos Oompa Loompas ont des problèmes pour importer vos données de vidage : {{error_message}}",
|
||||||
"ERROR_MAX_SIZE_EXCEEDED": "'{{fileName}}' ({{fileSize}}) est un peu trop lourd pour nos Oompa Loompas, réessayez avec un fichier d'une taille inférieure à ({{maxFileSize}})",
|
"ERROR_MAX_SIZE_EXCEEDED": "'{{fileName}}' ({{fileSize}}) est un peu trop lourd pour nos Oompa Loompas, réessayez avec un fichier d'une taille inférieure à ({{maxFileSize}})",
|
||||||
"SYNC_SUCCESS": "Votre projet a été importé avec succès"
|
"SYNC_SUCCESS": "Votre projet a été importé avec succès",
|
||||||
|
"PROJECT_RESTRICTIONS": {
|
||||||
|
"PROJECT_MEMBERS_DESC": "The project you are trying to import has {{members}} members, unfortunately, your current plan allows for a maximum of {{max_memberships}} members per project. If you would like to increase that limit please contact the administrator.",
|
||||||
|
"PRIVATE_PROJECTS_SPACE": {
|
||||||
|
"TITLE": "Unfortunately, your current plan does not allow for additional private projects",
|
||||||
|
"DESC": "The project you are trying to import is private. Unfortunately, your current plan does not allow for additional private projects."
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_SPACE": {
|
||||||
|
"TITLE": "Unfortunately, your current plan does not allow for additional private projects",
|
||||||
|
"DESC": "The project you are trying to import is public. Unfortunately, your current plan does not allow additional public projects."
|
||||||
|
},
|
||||||
|
"PRIVATE_PROJECTS_MEMBERS": {
|
||||||
|
"TITLE": "Your current plan allows for a maximum of {{max_memberships}} members per private project"
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_MEMBERS": {
|
||||||
|
"TITLE": "Your current plan allows for a maximum of {{max_memberships}} members per public project."
|
||||||
|
},
|
||||||
|
"PRIVATE_PROJECTS_SPACE_MEMBERS": {
|
||||||
|
"TITLE": "Unfortunately your current plan doesn't allow additional private projects or an increase of more than {{max_memberships}} members per private project",
|
||||||
|
"DESC": "The project that you are trying to import is private and has {{members}} members."
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_SPACE_MEMBERS": {
|
||||||
|
"TITLE": "Unfortunately your current plan doesn't allow additional public projects or an increase of more than {{max_memberships}} members per public project",
|
||||||
|
"DESC": "The project that you are trying to import is public and has more than {{members}} members."
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"LIKE_BUTTON": {
|
"LIKE_BUTTON": {
|
||||||
"LIKE": "J'aime",
|
"LIKE": "J'aime",
|
||||||
|
@ -819,8 +887,11 @@
|
||||||
"DELETE_ACCOUNT": {
|
"DELETE_ACCOUNT": {
|
||||||
"SECTION_NAME": "Supprimer le compte Taiga",
|
"SECTION_NAME": "Supprimer le compte Taiga",
|
||||||
"CONFIRM": "Etes-vous sûr de vouloir supprimer votre compte Taiga ?",
|
"CONFIRM": "Etes-vous sûr de vouloir supprimer votre compte Taiga ?",
|
||||||
"SUBTITLE": "Vous allez nous manquer ! :-(",
|
"NEWSLETTER_LABEL_TEXT": "Je ne veux plus recevoir votre bulletin d'information",
|
||||||
"NEWSLETTER_LABEL_TEXT": "Je ne veux plus recevoir votre bulletin d'information"
|
"CANCEL": "Retour aux réglages",
|
||||||
|
"ACCEPT": "Supprimer le compte",
|
||||||
|
"BLOCK_PROJECT": "Note that all the projects you own projects will be <strong>blocked</strong> after you delete your account. If you do want a project blocked, transfer ownership to another member of each project prior to deleting your account.",
|
||||||
|
"SUBTITLE": "Sorry to see you go. We'll be here if you should ever consider us again! :("
|
||||||
},
|
},
|
||||||
"DELETE_PROJECT": {
|
"DELETE_PROJECT": {
|
||||||
"TITLE": "Supprimer le projet",
|
"TITLE": "Supprimer le projet",
|
||||||
|
@ -876,7 +947,25 @@
|
||||||
},
|
},
|
||||||
"CREATE_MEMBER": {
|
"CREATE_MEMBER": {
|
||||||
"PLACEHOLDER_INVITATION_TEXT": "(Optionnel) Ajoutez un texte personnalisé à l'invitation. Dites quelque chose de gentil à vos nouveaux membres ;-)",
|
"PLACEHOLDER_INVITATION_TEXT": "(Optionnel) Ajoutez un texte personnalisé à l'invitation. Dites quelque chose de gentil à vos nouveaux membres ;-)",
|
||||||
"PLACEHOLDER_TYPE_EMAIL": "Saisissez une adresse courriel"
|
"PLACEHOLDER_TYPE_EMAIL": "Saisissez une adresse courriel",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_OWNER": "Unfortunately, this project can't have more than <strong>{{maxMembers}}</strong> members.<br> If you would like to increase the current limit, please contact the administrator.",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE": "Unfortunately, this project can't have more than <strong>{{maxMembers}}</strong> members."
|
||||||
|
},
|
||||||
|
"LEAVE_PROJECT_WARNING": {
|
||||||
|
"TITLE": "Unfortunately, this project can't be left without an owner",
|
||||||
|
"CURRENT_USER_OWNER": {
|
||||||
|
"DESC": "You are the current owner of this project. Before leaving, please transfer ownership to someone else.",
|
||||||
|
"BUTTON": "Change the project owner"
|
||||||
|
},
|
||||||
|
"OTHER_USER_OWNER": {
|
||||||
|
"DESC": "Unfortunately, you can't delete a member who is also the current project owner. First, please assign a new project owner.",
|
||||||
|
"BUTTON": "Request project owner change"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"CHANGE_OWNER": {
|
||||||
|
"TITLE": "Who do you want to be the new project owner?",
|
||||||
|
"ADD_COMMENT": "Add comment",
|
||||||
|
"BUTTON": "Ask this project member to become the new project owner"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"US": {
|
"US": {
|
||||||
|
@ -1013,7 +1102,7 @@
|
||||||
},
|
},
|
||||||
"SPRINT_SUMMARY": {
|
"SPRINT_SUMMARY": {
|
||||||
"TOTAL_POINTS": "total<br />points",
|
"TOTAL_POINTS": "total<br />points",
|
||||||
"COMPLETED_POINTS": "complétés<br />points",
|
"COMPLETED_POINTS": "points<br />complétés",
|
||||||
"OPEN_TASKS": "tâches<br /> ouvertes",
|
"OPEN_TASKS": "tâches<br /> ouvertes",
|
||||||
"CLOSED_TASKS": "tâches<br />fermées",
|
"CLOSED_TASKS": "tâches<br />fermées",
|
||||||
"IOCAINE_DOSES": "doses<br />de iocaine",
|
"IOCAINE_DOSES": "doses<br />de iocaine",
|
||||||
|
@ -1108,7 +1197,7 @@
|
||||||
"IS_IOCAINE": "est sous iocaine"
|
"IS_IOCAINE": "est sous iocaine"
|
||||||
},
|
},
|
||||||
"ACTION_IOCAINE": "locaine",
|
"ACTION_IOCAINE": "locaine",
|
||||||
"TITLE_ACTION_IOCAINE": "Vous vous sentez un peu dépassé par une tâche ? Assurez-vous que les autres le savent en cliquant sur locaine en éditant une tâche. Il est possible de s'immuniser contre ce poison (fictif) en en consommant de faibles doses pendant un moment tout comme il est possible de devenir meilleur à ce que vous faîtes en relevant quelques défis à l'occasion !"
|
"TITLE_ACTION_IOCAINE": "Vous vous sentez un peu dépassé(e) par une tâche ? Assurez-vous que les autres le savent en cliquant sur locaine en éditant une tâche. Il est possible de s'immuniser contre ce poison (fictif) en en consommant de faibles doses pendant un moment tout comme il est possible de devenir meilleur à ce que vous faîtes en relevant quelques défis à l'occasion !"
|
||||||
},
|
},
|
||||||
"NOTIFICATION": {
|
"NOTIFICATION": {
|
||||||
"OK": "Tout est ok",
|
"OK": "Tout est ok",
|
||||||
|
@ -1300,16 +1389,22 @@
|
||||||
"LANGUAGE": "Langue",
|
"LANGUAGE": "Langue",
|
||||||
"LANGUAGE_DEFAULT": "-- utiliser la langue par défaut --",
|
"LANGUAGE_DEFAULT": "-- utiliser la langue par défaut --",
|
||||||
"THEME": "Thème",
|
"THEME": "Thème",
|
||||||
"THEME_DEFAULT": "-- Utiliser la langue par défaut --"
|
"THEME_DEFAULT": "-- utiliser le thème par défaut --"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"WIZARD": {
|
"WIZARD": {
|
||||||
"SECTION_TITLE_CHOOSE_TEMPLATE": "Choisissez un template",
|
|
||||||
"CHOOSE_TEMPLATE_TEXT": "Quel template conviendrait le mieux à votre projet ?",
|
|
||||||
"SECTION_TITLE_CREATE_PROJECT": "Créer un projet",
|
"SECTION_TITLE_CREATE_PROJECT": "Créer un projet",
|
||||||
"CREATE_PROJECT_TEXT": "Tout beau, tout nouveau !",
|
"CREATE_PROJECT_TEXT": "Tout beau, tout nouveau !",
|
||||||
"PROGRESS_TEMPLATE_SELECTION": "Choix du modèle",
|
"CHOOSE_TEMPLATE": "Which template fits your project best?",
|
||||||
"PROGRESS_NAME_DESCRIPTION": "Nom et description"
|
"CHOOSE_TEMPLATE_TITLE": "Plus d'information sur les templates de projets",
|
||||||
|
"CHOOSE_TEMPLATE_INFO": "Plus d'informations",
|
||||||
|
"PROJECT_DETAILS": "Détails du projet",
|
||||||
|
"PUBLIC_PROJECT": "Projet public",
|
||||||
|
"PRIVATE_PROJECT": "Projet privé",
|
||||||
|
"CREATE_PROJECT": "Créer un projet",
|
||||||
|
"MAX_PRIVATE_PROJECTS": "Vous avez atteint le nombre maximum de projets privés",
|
||||||
|
"MAX_PUBLIC_PROJECTS": "Unfortunately, you've reached the maximum number of public projects",
|
||||||
|
"CHANGE_PLANS": "changer de souscription"
|
||||||
},
|
},
|
||||||
"WIKI": {
|
"WIKI": {
|
||||||
"PAGE_TITLE": "{{wikiPageName}} - Wiki - {{projectName}}",
|
"PAGE_TITLE": "{{wikiPageName}} - Wiki - {{projectName}}",
|
||||||
|
@ -1446,12 +1541,12 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"DISCOVER": {
|
"DISCOVER": {
|
||||||
"PAGE_TITLE": "Discover projects - Taiga",
|
"PAGE_TITLE": "Découvrir les projets - Taiga",
|
||||||
"PAGE_DESCRIPTION": "Searchable directory of Public Projects in Taiga. Explore backlogs, timelines, issues, and teams. Check out the most liked or most active projects. Filter by Kanban or Scrum.",
|
"PAGE_DESCRIPTION": "Searchable directory of Public Projects in Taiga. Explore backlogs, timelines, issues, and teams. Check out the most liked or most active projects. Filter by Kanban or Scrum.",
|
||||||
"DISCOVER_TITLE": "Découvrir les projets",
|
"DISCOVER_TITLE": "Découvrir les projets",
|
||||||
"DISCOVER_SUBTITLE": "{projects, plural, one{Un projet public à découvrir} other{# projets publics à découvrir}}",
|
"DISCOVER_SUBTITLE": "{projects, plural, one{Un projet public à découvrir} other{# projets publics à découvrir}}",
|
||||||
"MOST_ACTIVE": "les plus actifs",
|
"MOST_ACTIVE": "les plus actifs",
|
||||||
"MOST_ACTIVE_EMPTY": "Il n'y a pas de projets actifs pour le moment",
|
"MOST_ACTIVE_EMPTY": "Il n'y a pas de projet actif pour le moment",
|
||||||
"MOST_LIKED": "Les plus « aimés »",
|
"MOST_LIKED": "Les plus « aimés »",
|
||||||
"MOST_LIKED_EMPTY": "Il n'y a pas encore de projet « aimé »",
|
"MOST_LIKED_EMPTY": "Il n'y a pas encore de projet « aimé »",
|
||||||
"VIEW_MORE": "Voir plus",
|
"VIEW_MORE": "Voir plus",
|
||||||
|
@ -1465,12 +1560,12 @@
|
||||||
"PEOPLE": "En recherche de membres",
|
"PEOPLE": "En recherche de membres",
|
||||||
"WEEK": "Semaine dernière",
|
"WEEK": "Semaine dernière",
|
||||||
"MONTH": "Mois dernier",
|
"MONTH": "Mois dernier",
|
||||||
"YEAR": "Leanne dernière",
|
"YEAR": "Année dernière",
|
||||||
"ALL_TIME": "Tout le temps",
|
"ALL_TIME": "Tout le temps",
|
||||||
"CLEAR": "Effacer les filtres"
|
"CLEAR": "Effacer les filtres"
|
||||||
},
|
},
|
||||||
"SEARCH": {
|
"SEARCH": {
|
||||||
"PAGE_TITLE": "Search - Discover projects - Taiga",
|
"PAGE_TITLE": "Rechercher - Découvrir les projets - Taiga",
|
||||||
"PAGE_DESCRIPTION": "Searchable directory of Public Projects in Taiga. Explore backlogs, timelines, issues, and teams. Check out the most liked or most active projects. Filter by Kanban or Scrum.",
|
"PAGE_DESCRIPTION": "Searchable directory of Public Projects in Taiga. Explore backlogs, timelines, issues, and teams. Check out the most liked or most active projects. Filter by Kanban or Scrum.",
|
||||||
"INPUT_PLACEHOLDER": "Écrivez quelque chose...",
|
"INPUT_PLACEHOLDER": "Écrivez quelque chose...",
|
||||||
"ACTION_TITLE": "Rechercher",
|
"ACTION_TITLE": "Rechercher",
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
"COMMON": {
|
"COMMON": {
|
||||||
"YES": "Sì",
|
"YES": "Sì",
|
||||||
"NO": "No",
|
"NO": "No",
|
||||||
"OR": "or",
|
"OR": "o",
|
||||||
"LOADING": "Caricamento...",
|
"LOADING": "Caricamento...",
|
||||||
"LOADING_PROJECT": "Stiamo caricando il progetto...",
|
"LOADING_PROJECT": "Stiamo caricando il progetto...",
|
||||||
"DATE": "DD MMM YYYY",
|
"DATE": "DD MMM YYYY",
|
||||||
|
@ -22,8 +22,8 @@
|
||||||
"BLOCK_TITLE": "Block this item for example if it has a dependency that can not be satisfied",
|
"BLOCK_TITLE": "Block this item for example if it has a dependency that can not be satisfied",
|
||||||
"BLOCKED": "Bloccato",
|
"BLOCKED": "Bloccato",
|
||||||
"UNBLOCK": "Sblocca",
|
"UNBLOCK": "Sblocca",
|
||||||
"UNBLOCK_TITLE": "Unblock this item",
|
"UNBLOCK_TITLE": "Sblocca questo elemento",
|
||||||
"BLOCKED_NOTE": "Why is this blocked?",
|
"BLOCKED_NOTE": "Perché questo compito è bloccato?",
|
||||||
"BLOCKED_REASON": "Spiega il motivo",
|
"BLOCKED_REASON": "Spiega il motivo",
|
||||||
"CREATED_BY": "Creato da {{fullDisplayName}}",
|
"CREATED_BY": "Creato da {{fullDisplayName}}",
|
||||||
"FROM": "da",
|
"FROM": "da",
|
||||||
|
@ -41,7 +41,8 @@
|
||||||
"IOCAINE_TEXT": "Sei stremato? Assicurati che gli altri lo sappiano cliccando su 'aspirina' quando stai lavorando su un compito che ti affatica. Ma non demordere, ricordati: si può migliorare solo se di tanto in tanto si accettano sfide extra!",
|
"IOCAINE_TEXT": "Sei stremato? Assicurati che gli altri lo sappiano cliccando su 'aspirina' quando stai lavorando su un compito che ti affatica. Ma non demordere, ricordati: si può migliorare solo se di tanto in tanto si accettano sfide extra!",
|
||||||
"CLIENT_REQUIREMENT": "Requisito del Cliente è un nuovo requisito che non era stato previsto ed ora è stato richiesto come requisito del progetto",
|
"CLIENT_REQUIREMENT": "Requisito del Cliente è un nuovo requisito che non era stato previsto ed ora è stato richiesto come requisito del progetto",
|
||||||
"TEAM_REQUIREMENT": "Requisito del Team è un requisito che deve esistere nel progetto ma non deve avere costi per il cliente",
|
"TEAM_REQUIREMENT": "Requisito del Team è un requisito che deve esistere nel progetto ma non deve avere costi per il cliente",
|
||||||
"CAPSLOCK_WARNING": "Attento! stai scrivendo in maiuscolo e questo input è sensibile alle maiuscole..",
|
"OWNER": "Project Owner",
|
||||||
|
"CAPSLOCK_WARNING": "Be careful! You are using capital letters in an input field that is case sensitive.",
|
||||||
"FORM_ERRORS": {
|
"FORM_ERRORS": {
|
||||||
"DEFAULT_MESSAGE": "Questo valore non è valido.",
|
"DEFAULT_MESSAGE": "Questo valore non è valido.",
|
||||||
"TYPE_EMAIL": "Questo valore dovrebbe corrispondere ad una mail valida",
|
"TYPE_EMAIL": "Questo valore dovrebbe corrispondere ad una mail valida",
|
||||||
|
@ -65,7 +66,9 @@
|
||||||
"MIN_CHECK": "Devi selezionare almeno %s scelte.",
|
"MIN_CHECK": "Devi selezionare almeno %s scelte.",
|
||||||
"MAX_CHECK": "Devi selezionare la scelta %s o meno.",
|
"MAX_CHECK": "Devi selezionare la scelta %s o meno.",
|
||||||
"RANGE_CHECK": "Devi selezionare tra %s e %s scelta.",
|
"RANGE_CHECK": "Devi selezionare tra %s e %s scelta.",
|
||||||
"EQUAL_TO": "Il valore dovrebbe essere uguale"
|
"EQUAL_TO": "Il valore dovrebbe essere uguale",
|
||||||
|
"LINEWIDTH": "One or more lines is perhaps too long. Try to keep under %s characters.",
|
||||||
|
"PIKADAY": "Invalid date format, please use DD MMM YYYY (like 23 Mar 1984)"
|
||||||
},
|
},
|
||||||
"PICKERDATE": {
|
"PICKERDATE": {
|
||||||
"FORMAT": "DD MMM YYYY",
|
"FORMAT": "DD MMM YYYY",
|
||||||
|
@ -315,7 +318,8 @@
|
||||||
"PLACEHOLDER_FIELD": "Nome utente o email",
|
"PLACEHOLDER_FIELD": "Nome utente o email",
|
||||||
"ACTION_RESET_PASSWORD": "Reimposta la password",
|
"ACTION_RESET_PASSWORD": "Reimposta la password",
|
||||||
"LINK_CANCEL": "Fa niente dai, riportami indietro. Penso di ricordarmela.",
|
"LINK_CANCEL": "Fa niente dai, riportami indietro. Penso di ricordarmela.",
|
||||||
"SUCCESS": "<strong>Controlla la tua posta!</strong><br />Ti abbiamo inviato una email con le istruzioni per reimpostare la password",
|
"SUCCESS_TITLE": "Check your inbox!",
|
||||||
|
"SUCCESS_TEXT": "We sent you an email with the instructions to set a new password",
|
||||||
"ERROR": "Secondo i nostri Oompa Loompa, non sei ancora registrato."
|
"ERROR": "Secondo i nostri Oompa Loompa, non sei ancora registrato."
|
||||||
},
|
},
|
||||||
"CHANGE_PASSWORD": {
|
"CHANGE_PASSWORD": {
|
||||||
|
@ -373,7 +377,6 @@
|
||||||
"DEPRECATED_FILE": "Deprecato?",
|
"DEPRECATED_FILE": "Deprecato?",
|
||||||
"ADD": "Aggiungi un nuovo allegato. {{maxFileSizeMsg}}",
|
"ADD": "Aggiungi un nuovo allegato. {{maxFileSizeMsg}}",
|
||||||
"DROP": "Rilascia qui l'allegato!",
|
"DROP": "Rilascia qui l'allegato!",
|
||||||
"MAX_FILE_SIZE": "[Dimensione max. {{maxFileSize}}]",
|
|
||||||
"SHOW_DEPRECATED": "+ visualizza allegati deprecati",
|
"SHOW_DEPRECATED": "+ visualizza allegati deprecati",
|
||||||
"HIDE_DEPRECATED": "- nascondi allegati deprecati",
|
"HIDE_DEPRECATED": "- nascondi allegati deprecati",
|
||||||
"COUNT_DEPRECATED": "({{ counter }} deprecati)",
|
"COUNT_DEPRECATED": "({{ counter }} deprecati)",
|
||||||
|
@ -406,7 +409,9 @@
|
||||||
"TITLE": "Gestisci membri",
|
"TITLE": "Gestisci membri",
|
||||||
"PAGE_TITLE": "Webhooks - {{projectName}}",
|
"PAGE_TITLE": "Webhooks - {{projectName}}",
|
||||||
"ADD_BUTTON": "Nuovo Membro",
|
"ADD_BUTTON": "Nuovo Membro",
|
||||||
"ADD_BUTTON_TITLE": "Aggiungi un nuovo membro"
|
"ADD_BUTTON_TITLE": "Aggiungi un nuovo membro",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_ADMIN": "Unfortunately, this project has reached its limit of <strong>({{members}})</strong> allowed members.",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_OWNER": "This project has reached its limit of <strong>({{members}})</strong> allowed members. If you would like to increase that limit please contact the administrator."
|
||||||
},
|
},
|
||||||
"PROJECT_EXPORT": {
|
"PROJECT_EXPORT": {
|
||||||
"TITLE": "Esporta",
|
"TITLE": "Esporta",
|
||||||
|
@ -428,6 +433,10 @@
|
||||||
"DISABLE": "Disabilita",
|
"DISABLE": "Disabilita",
|
||||||
"BACKLOG": "Backlog",
|
"BACKLOG": "Backlog",
|
||||||
"BACKLOG_DESCRIPTION": "Amministra le storie degli utenti per mantenere una visione organizzata dei lavori in arrivo e di quelli ad alta priorità ",
|
"BACKLOG_DESCRIPTION": "Amministra le storie degli utenti per mantenere una visione organizzata dei lavori in arrivo e di quelli ad alta priorità ",
|
||||||
|
"NUMBER_SPRINTS": "Expected number of sprints",
|
||||||
|
"NUMBER_SPRINTS_HELP": "0 for an undetermined number",
|
||||||
|
"NUMBER_US_POINTS": "Expected total of story points",
|
||||||
|
"NUMBER_US_POINTS_HELP": "0 for an undetermined number",
|
||||||
"KANBAN": "Kanban",
|
"KANBAN": "Kanban",
|
||||||
"KANBAN_DESCRIPTION": "Organizza in modo semplice il tuo progetto con questa board",
|
"KANBAN_DESCRIPTION": "Organizza in modo semplice il tuo progetto con questa board",
|
||||||
"ISSUES": "problemi",
|
"ISSUES": "problemi",
|
||||||
|
@ -435,9 +444,9 @@
|
||||||
"WIKI": "Wiki",
|
"WIKI": "Wiki",
|
||||||
"WIKI_DESCRIPTION": "Aggiungi, modifica o elimina i contenuti in collaborazione con gli altri. E' il posto giusto per la documentazione del tuo progetto",
|
"WIKI_DESCRIPTION": "Aggiungi, modifica o elimina i contenuti in collaborazione con gli altri. E' il posto giusto per la documentazione del tuo progetto",
|
||||||
"MEETUP": "Incontro",
|
"MEETUP": "Incontro",
|
||||||
"MEETUP_DESCRIPTION": "Scegli il tuo sistema di videoconferenza. Anche gli sviluppatori hanno bisogno di qualche contatto faccia a faccia. ",
|
"MEETUP_DESCRIPTION": "Choose your videoconference system.",
|
||||||
"SELECT_VIDEOCONFERENCE": "Seleziona un sistema di videoconferenza",
|
"SELECT_VIDEOCONFERENCE": "Seleziona un sistema di videoconferenza",
|
||||||
"SALT_CHAT_ROOM": "Se preferisci puoi aggiungere un valore sale al nome della chat room",
|
"SALT_CHAT_ROOM": "Add a prefix to the chatroom name",
|
||||||
"JITSI_CHAT_ROOM": "Jitsi",
|
"JITSI_CHAT_ROOM": "Jitsi",
|
||||||
"APPEARIN_CHAT_ROOM": "AppearIn",
|
"APPEARIN_CHAT_ROOM": "AppearIn",
|
||||||
"TALKY_CHAT_ROOM": "Talky",
|
"TALKY_CHAT_ROOM": "Talky",
|
||||||
|
@ -449,22 +458,31 @@
|
||||||
"PROJECT_DETAILS": "Dettagli progetto",
|
"PROJECT_DETAILS": "Dettagli progetto",
|
||||||
"PROJECT_NAME": "Nome progetto",
|
"PROJECT_NAME": "Nome progetto",
|
||||||
"PROJECT_SLUG": "Progetto lumaca",
|
"PROJECT_SLUG": "Progetto lumaca",
|
||||||
"NUMBER_SPRINTS": "Numero di sprint (0 come quantità indeterminata)",
|
|
||||||
"NUMBER_US_POINTS": "Numero di punti delle storie utente (0 come quantità indeterminata)",
|
|
||||||
"TAGS": "Tag",
|
"TAGS": "Tag",
|
||||||
"DESCRIPTION": "Descrizione",
|
"DESCRIPTION": "Descrizione",
|
||||||
"RECRUITING": "Il progetto cerca persone?",
|
"RECRUITING": "Il progetto cerca persone?",
|
||||||
"RECRUITING_MESSAGE": "Chi stai cercando?",
|
"RECRUITING_MESSAGE": "Chi stai cercando?",
|
||||||
"RECRUITING_PLACEHOLDER": "Definisci il profilo che stai cercando",
|
"RECRUITING_PLACEHOLDER": "Definisci il profilo che stai cercando",
|
||||||
"PUBLIC_PROJECT": "Progetto pubblico",
|
"PUBLIC_PROJECT": "Progetto pubblico",
|
||||||
"PUBLIC_PROJECT_DESC": "Gli utenti possono cercare e vedere il tuo progetto",
|
|
||||||
"PRIVATE_PROJECT": "Progetto privato",
|
"PRIVATE_PROJECT": "Progetto privato",
|
||||||
"PRIVATE_PROJECT_DESC": "Di default, il progetto sarà nascosto al pubblico",
|
|
||||||
"PRIVATE_OR_PUBLIC": "Quale è la differenza tra progetto privato e pubblico?",
|
"PRIVATE_OR_PUBLIC": "Quale è la differenza tra progetto privato e pubblico?",
|
||||||
"DELETE": "Elimina questo progetto",
|
"DELETE": "Elimina questo progetto",
|
||||||
"LOGO_HELP": "L'immagine sarà scalata a 80x80px.",
|
"LOGO_HELP": "L'immagine sarà scalata a 80x80px.",
|
||||||
"CHANGE_LOGO": "Cambia Logo",
|
"CHANGE_LOGO": "Cambia Logo",
|
||||||
"ACTION_USE_DEFAULT_LOGO": "Usa l'immagine di default"
|
"ACTION_USE_DEFAULT_LOGO": "Usa l'immagine di default",
|
||||||
|
"MAX_PRIVATE_PROJECTS": "You've reached the maximum number of private projects allowed by your current plan",
|
||||||
|
"MAX_PRIVATE_PROJECTS_MEMBERS": "The maximum number of members for private projects has been exceeded",
|
||||||
|
"MAX_PUBLIC_PROJECTS": "Unfortunately, you've reached the maximum number of public projects allowed by your current plan",
|
||||||
|
"MAX_PUBLIC_PROJECTS_MEMBERS": "The project exceeds your maximum number of members for public projects",
|
||||||
|
"PROJECT_OWNER": "Project owner",
|
||||||
|
"REQUEST_OWNERSHIP": "Request ownership",
|
||||||
|
"REQUEST_OWNERSHIP_CONFIRMATION_TITLE": "Do you want to become the new project owner?",
|
||||||
|
"REQUEST_OWNERSHIP_DESC": "Request that current project owner {{name}} transfer ownership of this project to you.",
|
||||||
|
"REQUEST_OWNERSHIP_BUTTON": "Richiesta",
|
||||||
|
"REQUEST_OWNERSHIP_SUCCESS": "We'll notify the project owner",
|
||||||
|
"CHANGE_OWNER": "Change owner",
|
||||||
|
"CHANGE_OWNER_SUCCESS_TITLE": "Ok, your request has been sent!",
|
||||||
|
"CHANGE_OWNER_SUCCESS_DESC": "We will notify you by email if the project ownership request is accepted or declined"
|
||||||
},
|
},
|
||||||
"REPORTS": {
|
"REPORTS": {
|
||||||
"TITLE": "Rapporti",
|
"TITLE": "Rapporti",
|
||||||
|
@ -495,7 +513,8 @@
|
||||||
"ISSUE_ADD": "Aggiungi un campo personalizzato alla criticitá",
|
"ISSUE_ADD": "Aggiungi un campo personalizzato alla criticitá",
|
||||||
"FIELD_TYPE_TEXT": "Testo",
|
"FIELD_TYPE_TEXT": "Testo",
|
||||||
"FIELD_TYPE_MULTI": "Multilinea",
|
"FIELD_TYPE_MULTI": "Multilinea",
|
||||||
"FIELD_TYPE_DATE": "Data"
|
"FIELD_TYPE_DATE": "Data",
|
||||||
|
"FIELD_TYPE_URL": "Url"
|
||||||
},
|
},
|
||||||
"PROJECT_VALUES": {
|
"PROJECT_VALUES": {
|
||||||
"PAGE_TITLE": "{{sectionName}} - Valori di progetto - {{projectName}}",
|
"PAGE_TITLE": "{{sectionName}} - Valori di progetto - {{projectName}}",
|
||||||
|
@ -543,7 +562,7 @@
|
||||||
"COUNT_MEMBERS": "{{ role.members_count }} membri con questo ruolo",
|
"COUNT_MEMBERS": "{{ role.members_count }} membri con questo ruolo",
|
||||||
"TITLE_DELETE_ROLE": "Elimina ruolo",
|
"TITLE_DELETE_ROLE": "Elimina ruolo",
|
||||||
"REPLACEMENT_ROLE": "Tutti gli utenti con questo ruolo saranno spostati a ",
|
"REPLACEMENT_ROLE": "Tutti gli utenti con questo ruolo saranno spostati a ",
|
||||||
"WARNING_DELETE_ROLE": "<strong>Attento, tutte le stime dei ruoli saranno eliminate</strong>",
|
"WARNING_DELETE_ROLE": "Be careful! All role estimations will be removed",
|
||||||
"ERROR_DELETE_ALL": "Non puoi cancellare tutti i valori",
|
"ERROR_DELETE_ALL": "Non puoi cancellare tutti i valori",
|
||||||
"EXTERNAL_USER": "Utente esterno"
|
"EXTERNAL_USER": "Utente esterno"
|
||||||
},
|
},
|
||||||
|
@ -671,6 +690,24 @@
|
||||||
},
|
},
|
||||||
"SUBMENU_THIDPARTIES": {
|
"SUBMENU_THIDPARTIES": {
|
||||||
"TITLE": "Servizi"
|
"TITLE": "Servizi"
|
||||||
|
},
|
||||||
|
"PROJECT_TRANSFER": {
|
||||||
|
"DO_YOU_ACCEPT_PROJECT_OWNERNSHIP": "Would you like to become the new project owner?",
|
||||||
|
"PRIVATE": "Private",
|
||||||
|
"ACCEPTED_PROJECT_OWNERNSHIP": "Congratulations! You're now the new project owner.",
|
||||||
|
"REJECTED_PROJECT_OWNERNSHIP": "OK. We'll contact the current project owner",
|
||||||
|
"ACCEPT": "Accetta",
|
||||||
|
"REJECT": "Reject",
|
||||||
|
"PROPOSE_OWNERSHIP": "<strong>{{owner}}</strong>, the current owner of the project <strong>{{project}}</strong> has asked that you become the new project owner.",
|
||||||
|
"ADD_COMMENT_QUESTION": "Would you like to send a question to the project owner?",
|
||||||
|
"ADD_COMMENT": "Would you like to add a comment for the project owner?",
|
||||||
|
"UNLIMITED_PROJECTS": "Unlimited",
|
||||||
|
"OWNER_MESSAGE": {
|
||||||
|
"PRIVATE": "Please remember that you can own up to <strong>{{maxProjects}}</strong> private projects. You currently own <strong>{{currentProjects}}</strong> private projects",
|
||||||
|
"PUBLIC": "Please remember that you can own up to <strong>{{maxProjects}}</strong> public projects. You currently own <strong>{{currentProjects}}</strong> public projects"
|
||||||
|
},
|
||||||
|
"CANT_BE_OWNED": "At the moment you cannot become an owner of a project of this type. If you would like to become the owner of this project, please contact the administrator so they change your account settings to enable project ownership.",
|
||||||
|
"CHANGE_MY_PLAN": "Change my plan"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"USER": {
|
"USER": {
|
||||||
|
@ -731,6 +768,11 @@
|
||||||
"FANS_COUNTER_TITLE": "{total, plural, one{un follower} other{# followers}}",
|
"FANS_COUNTER_TITLE": "{total, plural, one{un follower} other{# followers}}",
|
||||||
"WATCHERS_COUNTER_TITLE": "{total, plural, one{un osservatore} other{# osservatori}} ",
|
"WATCHERS_COUNTER_TITLE": "{total, plural, one{un osservatore} other{# osservatori}} ",
|
||||||
"MEMBERS_COUNTER_TITLE": "{total, plural, one{un membro} other{# membri}}",
|
"MEMBERS_COUNTER_TITLE": "{total, plural, one{un membro} other{# membri}}",
|
||||||
|
"BLOCKED_PROJECT": {
|
||||||
|
"BLOCKED": "Blocked project",
|
||||||
|
"THIS_PROJECT_IS_BLOCKED": "This project is temporarily blocked",
|
||||||
|
"TO_UNBLOCK_CONTACT_THE_ADMIN_STAFF": "In order to unblock your projects, contact the administrator."
|
||||||
|
},
|
||||||
"STATS": {
|
"STATS": {
|
||||||
"PROJECT": "progetto<br/> punti",
|
"PROJECT": "progetto<br/> punti",
|
||||||
"DEFINED": "Definiti <br/> punti",
|
"DEFINED": "Definiti <br/> punti",
|
||||||
|
@ -777,6 +819,7 @@
|
||||||
"CHANGE_PASSWORD": "Cambia password",
|
"CHANGE_PASSWORD": "Cambia password",
|
||||||
"DASHBOARD_TITLE": "Dashboard",
|
"DASHBOARD_TITLE": "Dashboard",
|
||||||
"DISCOVER_TITLE": "Scopri i progetti più seguiti",
|
"DISCOVER_TITLE": "Scopri i progetti più seguiti",
|
||||||
|
"NEW_ITEM": "Nuovo",
|
||||||
"DISCOVER": "Scopri",
|
"DISCOVER": "Scopri",
|
||||||
"ACTION_REORDER": "Usa drag & drop per riordinare"
|
"ACTION_REORDER": "Usa drag & drop per riordinare"
|
||||||
},
|
},
|
||||||
|
@ -791,7 +834,32 @@
|
||||||
"ERROR_TOO_MANY_REQUEST": "Scusaci, i nostri Oompa Loompa sono di nuovo occupati. Riprova di nuovo in qualche minuto.",
|
"ERROR_TOO_MANY_REQUEST": "Scusaci, i nostri Oompa Loompa sono di nuovo occupati. Riprova di nuovo in qualche minuto.",
|
||||||
"ERROR_MESSAGE": "I nostri Oompa Loompa hanno qualche problema ad importare il dump dei tuoi dati: {{error_message}}",
|
"ERROR_MESSAGE": "I nostri Oompa Loompa hanno qualche problema ad importare il dump dei tuoi dati: {{error_message}}",
|
||||||
"ERROR_MAX_SIZE_EXCEEDED": "'{{fileName}}' ({{fileSize}}) è troppo pesante per i nostri Oompa Loompa; falli contenti, prova con una dimensione minore di ({{maxFileSize}})",
|
"ERROR_MAX_SIZE_EXCEEDED": "'{{fileName}}' ({{fileSize}}) è troppo pesante per i nostri Oompa Loompa; falli contenti, prova con una dimensione minore di ({{maxFileSize}})",
|
||||||
"SYNC_SUCCESS": "Il tuo progetto è stato importato con successo"
|
"SYNC_SUCCESS": "Il tuo progetto è stato importato con successo",
|
||||||
|
"PROJECT_RESTRICTIONS": {
|
||||||
|
"PROJECT_MEMBERS_DESC": "The project you are trying to import has {{members}} members, unfortunately, your current plan allows for a maximum of {{max_memberships}} members per project. If you would like to increase that limit please contact the administrator.",
|
||||||
|
"PRIVATE_PROJECTS_SPACE": {
|
||||||
|
"TITLE": "Unfortunately, your current plan does not allow for additional private projects",
|
||||||
|
"DESC": "The project you are trying to import is private. Unfortunately, your current plan does not allow for additional private projects."
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_SPACE": {
|
||||||
|
"TITLE": "Unfortunately, your current plan does not allow for additional private projects",
|
||||||
|
"DESC": "The project you are trying to import is public. Unfortunately, your current plan does not allow additional public projects."
|
||||||
|
},
|
||||||
|
"PRIVATE_PROJECTS_MEMBERS": {
|
||||||
|
"TITLE": "Your current plan allows for a maximum of {{max_memberships}} members per private project"
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_MEMBERS": {
|
||||||
|
"TITLE": "Your current plan allows for a maximum of {{max_memberships}} members per public project."
|
||||||
|
},
|
||||||
|
"PRIVATE_PROJECTS_SPACE_MEMBERS": {
|
||||||
|
"TITLE": "Unfortunately your current plan doesn't allow additional private projects or an increase of more than {{max_memberships}} members per private project",
|
||||||
|
"DESC": "The project that you are trying to import is private and has {{members}} members."
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_SPACE_MEMBERS": {
|
||||||
|
"TITLE": "Unfortunately your current plan doesn't allow additional public projects or an increase of more than {{max_memberships}} members per public project",
|
||||||
|
"DESC": "The project that you are trying to import is public and has more than {{members}} members."
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"LIKE_BUTTON": {
|
"LIKE_BUTTON": {
|
||||||
"LIKE": "Mi piace",
|
"LIKE": "Mi piace",
|
||||||
|
@ -819,8 +887,11 @@
|
||||||
"DELETE_ACCOUNT": {
|
"DELETE_ACCOUNT": {
|
||||||
"SECTION_NAME": "Elimina Account Taiga",
|
"SECTION_NAME": "Elimina Account Taiga",
|
||||||
"CONFIRM": "Sei sicuro di voler eliminare il tuo account Taiga?",
|
"CONFIRM": "Sei sicuro di voler eliminare il tuo account Taiga?",
|
||||||
"SUBTITLE": "Ci mancherai! :-(",
|
"NEWSLETTER_LABEL_TEXT": "Non voglio più ricevere le vostre newsletter",
|
||||||
"NEWSLETTER_LABEL_TEXT": "Non voglio più ricevere le vostre newsletter"
|
"CANCEL": "Back to settings",
|
||||||
|
"ACCEPT": "Delete account",
|
||||||
|
"BLOCK_PROJECT": "Note that all the projects you own projects will be <strong>blocked</strong> after you delete your account. If you do want a project blocked, transfer ownership to another member of each project prior to deleting your account.",
|
||||||
|
"SUBTITLE": "Sorry to see you go. We'll be here if you should ever consider us again! :("
|
||||||
},
|
},
|
||||||
"DELETE_PROJECT": {
|
"DELETE_PROJECT": {
|
||||||
"TITLE": "Elimina progetto",
|
"TITLE": "Elimina progetto",
|
||||||
|
@ -876,7 +947,25 @@
|
||||||
},
|
},
|
||||||
"CREATE_MEMBER": {
|
"CREATE_MEMBER": {
|
||||||
"PLACEHOLDER_INVITATION_TEXT": "(facoltativo) aggiungi un testo personalizzato all'invito. Di qualcosa di simpatico ai tuoi nuovi membri ;-)",
|
"PLACEHOLDER_INVITATION_TEXT": "(facoltativo) aggiungi un testo personalizzato all'invito. Di qualcosa di simpatico ai tuoi nuovi membri ;-)",
|
||||||
"PLACEHOLDER_TYPE_EMAIL": "Scrivi una mail"
|
"PLACEHOLDER_TYPE_EMAIL": "Scrivi una mail",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_OWNER": "Unfortunately, this project can't have more than <strong>{{maxMembers}}</strong> members.<br> If you would like to increase the current limit, please contact the administrator.",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE": "Unfortunately, this project can't have more than <strong>{{maxMembers}}</strong> members."
|
||||||
|
},
|
||||||
|
"LEAVE_PROJECT_WARNING": {
|
||||||
|
"TITLE": "Unfortunately, this project can't be left without an owner",
|
||||||
|
"CURRENT_USER_OWNER": {
|
||||||
|
"DESC": "You are the current owner of this project. Before leaving, please transfer ownership to someone else.",
|
||||||
|
"BUTTON": "Change the project owner"
|
||||||
|
},
|
||||||
|
"OTHER_USER_OWNER": {
|
||||||
|
"DESC": "Unfortunately, you can't delete a member who is also the current project owner. First, please assign a new project owner.",
|
||||||
|
"BUTTON": "Request project owner change"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"CHANGE_OWNER": {
|
||||||
|
"TITLE": "Who do you want to be the new project owner?",
|
||||||
|
"ADD_COMMENT": "Add comment",
|
||||||
|
"BUTTON": "Ask this project member to become the new project owner"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"US": {
|
"US": {
|
||||||
|
@ -914,7 +1003,7 @@
|
||||||
"TYPE_NEW_COMMENT": "Scrivi un nuovo commento qui",
|
"TYPE_NEW_COMMENT": "Scrivi un nuovo commento qui",
|
||||||
"SHOW_DELETED": "Visualizza commento cancellato",
|
"SHOW_DELETED": "Visualizza commento cancellato",
|
||||||
"HIDE_DELETED": "Nascondi commento cancellato",
|
"HIDE_DELETED": "Nascondi commento cancellato",
|
||||||
"DELETE": "Delete comment",
|
"DELETE": "Cancella commento",
|
||||||
"RESTORE": "Ripristina commento"
|
"RESTORE": "Ripristina commento"
|
||||||
},
|
},
|
||||||
"ACTIVITY": {
|
"ACTIVITY": {
|
||||||
|
@ -1304,12 +1393,18 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"WIZARD": {
|
"WIZARD": {
|
||||||
"SECTION_TITLE_CHOOSE_TEMPLATE": "Scegli il tema",
|
|
||||||
"CHOOSE_TEMPLATE_TEXT": "Quale template si adatta meglio al tuo progetto?",
|
|
||||||
"SECTION_TITLE_CREATE_PROJECT": "Crea Progetto",
|
"SECTION_TITLE_CREATE_PROJECT": "Crea Progetto",
|
||||||
"CREATE_PROJECT_TEXT": "Nuovo di zecca. Vai così!",
|
"CREATE_PROJECT_TEXT": "Nuovo di zecca. Vai così!",
|
||||||
"PROGRESS_TEMPLATE_SELECTION": "Selezione del template",
|
"CHOOSE_TEMPLATE": "Which template fits your project best?",
|
||||||
"PROGRESS_NAME_DESCRIPTION": "Nome e descrizione"
|
"CHOOSE_TEMPLATE_TITLE": "More info about project templates",
|
||||||
|
"CHOOSE_TEMPLATE_INFO": "More info",
|
||||||
|
"PROJECT_DETAILS": "Project Details",
|
||||||
|
"PUBLIC_PROJECT": "Public Project",
|
||||||
|
"PRIVATE_PROJECT": "Private Project",
|
||||||
|
"CREATE_PROJECT": "Crea progetto",
|
||||||
|
"MAX_PRIVATE_PROJECTS": "You've reached the maximum number of private projects",
|
||||||
|
"MAX_PUBLIC_PROJECTS": "Unfortunately, you've reached the maximum number of public projects",
|
||||||
|
"CHANGE_PLANS": "change plans"
|
||||||
},
|
},
|
||||||
"WIKI": {
|
"WIKI": {
|
||||||
"PAGE_TITLE": "{{wikiPageName}} - Wiki - {{projectName}}",
|
"PAGE_TITLE": "{{wikiPageName}} - Wiki - {{projectName}}",
|
||||||
|
@ -1446,7 +1541,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"DISCOVER": {
|
"DISCOVER": {
|
||||||
"PAGE_TITLE": "Discover projects - Taiga",
|
"PAGE_TITLE": "Scopri i progetti - Taiga",
|
||||||
"PAGE_DESCRIPTION": "Searchable directory of Public Projects in Taiga. Explore backlogs, timelines, issues, and teams. Check out the most liked or most active projects. Filter by Kanban or Scrum.",
|
"PAGE_DESCRIPTION": "Searchable directory of Public Projects in Taiga. Explore backlogs, timelines, issues, and teams. Check out the most liked or most active projects. Filter by Kanban or Scrum.",
|
||||||
"DISCOVER_TITLE": "Scopri progetti",
|
"DISCOVER_TITLE": "Scopri progetti",
|
||||||
"DISCOVER_SUBTITLE": "{projects, plural, one{Un progetto pubblico da scoprire} other{# progetti pubblici da scoprire}}",
|
"DISCOVER_SUBTITLE": "{projects, plural, one{Un progetto pubblico da scoprire} other{# progetti pubblici da scoprire}}",
|
||||||
|
@ -1470,7 +1565,7 @@
|
||||||
"CLEAR": "Cancella filtri"
|
"CLEAR": "Cancella filtri"
|
||||||
},
|
},
|
||||||
"SEARCH": {
|
"SEARCH": {
|
||||||
"PAGE_TITLE": "Search - Discover projects - Taiga",
|
"PAGE_TITLE": "Cerca - Scopri i progetti - Taiga",
|
||||||
"PAGE_DESCRIPTION": "Searchable directory of Public Projects in Taiga. Explore backlogs, timelines, issues, and teams. Check out the most liked or most active projects. Filter by Kanban or Scrum.",
|
"PAGE_DESCRIPTION": "Searchable directory of Public Projects in Taiga. Explore backlogs, timelines, issues, and teams. Check out the most liked or most active projects. Filter by Kanban or Scrum.",
|
||||||
"INPUT_PLACEHOLDER": "Inserisci testo...",
|
"INPUT_PLACEHOLDER": "Inserisci testo...",
|
||||||
"ACTION_TITLE": "Cerca",
|
"ACTION_TITLE": "Cerca",
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
"COMMON": {
|
"COMMON": {
|
||||||
"YES": "Ja",
|
"YES": "Ja",
|
||||||
"NO": "Nee",
|
"NO": "Nee",
|
||||||
"OR": "or",
|
"OR": "of",
|
||||||
"LOADING": "Aan het laden...",
|
"LOADING": "Aan het laden...",
|
||||||
"LOADING_PROJECT": "Project laden...",
|
"LOADING_PROJECT": "Project laden...",
|
||||||
"DATE": "DD MMM YYYY",
|
"DATE": "DD MMM YYYY",
|
||||||
|
@ -41,7 +41,8 @@
|
||||||
"IOCAINE_TEXT": "Voel je je wat overweldigd door een taak? Zorg ervoor dat anderen dit weten door op Iocaine te klikken bij het wijzigen van een taak. Je kan stapsgewijs immuun worden tegen dit (fictioneel) dodelijk gif door kleine dosissen op te nemen. Net zoals je beter kan worden in wat je doet door af en toe een extra uitdaging aan te gaan!",
|
"IOCAINE_TEXT": "Voel je je wat overweldigd door een taak? Zorg ervoor dat anderen dit weten door op Iocaine te klikken bij het wijzigen van een taak. Je kan stapsgewijs immuun worden tegen dit (fictioneel) dodelijk gif door kleine dosissen op te nemen. Net zoals je beter kan worden in wat je doet door af en toe een extra uitdaging aan te gaan!",
|
||||||
"CLIENT_REQUIREMENT": "Client requirement is new requirement that was not previously expected and it is required to be part of the project",
|
"CLIENT_REQUIREMENT": "Client requirement is new requirement that was not previously expected and it is required to be part of the project",
|
||||||
"TEAM_REQUIREMENT": "Team requirement is a requirement that must exist in the project but should have no cost for the client",
|
"TEAM_REQUIREMENT": "Team requirement is a requirement that must exist in the project but should have no cost for the client",
|
||||||
"CAPSLOCK_WARNING": "Let op! Je schrijft met alleen hoofdletters en dit veld is hoofdlettergevoelig.",
|
"OWNER": "Project Owner",
|
||||||
|
"CAPSLOCK_WARNING": "Be careful! You are using capital letters in an input field that is case sensitive.",
|
||||||
"FORM_ERRORS": {
|
"FORM_ERRORS": {
|
||||||
"DEFAULT_MESSAGE": "Deze waarde lijkt ongeldig te zijn",
|
"DEFAULT_MESSAGE": "Deze waarde lijkt ongeldig te zijn",
|
||||||
"TYPE_EMAIL": "Deze waarde moet een geldig emailadres bevatten",
|
"TYPE_EMAIL": "Deze waarde moet een geldig emailadres bevatten",
|
||||||
|
@ -65,7 +66,9 @@
|
||||||
"MIN_CHECK": "Je moet minstens %s opties selecteren.",
|
"MIN_CHECK": "Je moet minstens %s opties selecteren.",
|
||||||
"MAX_CHECK": "Je moet %s keuzes of minder selecteren.",
|
"MAX_CHECK": "Je moet %s keuzes of minder selecteren.",
|
||||||
"RANGE_CHECK": "Je moet tussen %s en %s keuzes selecteren.",
|
"RANGE_CHECK": "Je moet tussen %s en %s keuzes selecteren.",
|
||||||
"EQUAL_TO": "Deze waarde zou hetzelfde moeten zijn."
|
"EQUAL_TO": "Deze waarde zou hetzelfde moeten zijn.",
|
||||||
|
"LINEWIDTH": "One or more lines is perhaps too long. Try to keep under %s characters.",
|
||||||
|
"PIKADAY": "Invalid date format, please use DD MMM YYYY (like 23 Mar 1984)"
|
||||||
},
|
},
|
||||||
"PICKERDATE": {
|
"PICKERDATE": {
|
||||||
"FORMAT": "DD MMM YYYY",
|
"FORMAT": "DD MMM YYYY",
|
||||||
|
@ -282,7 +285,7 @@
|
||||||
"HEADER": "Ik heb al een Taiga login",
|
"HEADER": "Ik heb al een Taiga login",
|
||||||
"PLACEHOLDER_AUTH_NAME": "Gebruikersnaam of email (case sensitive)",
|
"PLACEHOLDER_AUTH_NAME": "Gebruikersnaam of email (case sensitive)",
|
||||||
"LINK_FORGOT_PASSWORD": "Vergeten?",
|
"LINK_FORGOT_PASSWORD": "Vergeten?",
|
||||||
"TITLE_LINK_FORGOT_PASSWORD": "Did you forget your password?",
|
"TITLE_LINK_FORGOT_PASSWORD": "Ben je je wachtwoord vergeten?",
|
||||||
"ACTION_ENTER": "Enter",
|
"ACTION_ENTER": "Enter",
|
||||||
"ACTION_SIGN_IN": "Log in",
|
"ACTION_SIGN_IN": "Log in",
|
||||||
"PLACEHOLDER_AUTH_PASSWORD": "Wachtwoord (hoofdlettergevoelig)"
|
"PLACEHOLDER_AUTH_PASSWORD": "Wachtwoord (hoofdlettergevoelig)"
|
||||||
|
@ -315,7 +318,8 @@
|
||||||
"PLACEHOLDER_FIELD": "Gebruikersnaam of e-mail",
|
"PLACEHOLDER_FIELD": "Gebruikersnaam of e-mail",
|
||||||
"ACTION_RESET_PASSWORD": "Wachtwoord resetten",
|
"ACTION_RESET_PASSWORD": "Wachtwoord resetten",
|
||||||
"LINK_CANCEL": "Nah, stuur me terug. I denk dat ik het zal onthouden.",
|
"LINK_CANCEL": "Nah, stuur me terug. I denk dat ik het zal onthouden.",
|
||||||
"SUCCESS": "<strong>Controleer je inbox!</strong><br />We hebben je een email gestuurd met instructie om een nieuw wachtwoord aan te maken",
|
"SUCCESS_TITLE": "Check your inbox!",
|
||||||
|
"SUCCESS_TEXT": "We sent you an email with the instructions to set a new password",
|
||||||
"ERROR": "Volgens onze Oempa-Loempa's ben je nog niet geregisteerd"
|
"ERROR": "Volgens onze Oempa-Loempa's ben je nog niet geregisteerd"
|
||||||
},
|
},
|
||||||
"CHANGE_PASSWORD": {
|
"CHANGE_PASSWORD": {
|
||||||
|
@ -336,7 +340,7 @@
|
||||||
"PLACEHOLDER_NEW_PASSWORD": "Nieuw wachtwoord",
|
"PLACEHOLDER_NEW_PASSWORD": "Nieuw wachtwoord",
|
||||||
"PLACEHOLDER_RE_TYPE_NEW_PASSWORD": "Herhaal wachtwoord",
|
"PLACEHOLDER_RE_TYPE_NEW_PASSWORD": "Herhaal wachtwoord",
|
||||||
"ACTION_RESET_PASSWORD": "Wachtwoord resetten",
|
"ACTION_RESET_PASSWORD": "Wachtwoord resetten",
|
||||||
"ERROR": "Our Oompa Loompas can't find your request to recover your password. Try to ask for it again.",
|
"ERROR": "Onze Oempa-Loempa's kunnen het verzoek om je wachtwoord te herstellen niet terugvinden. Probeer het nog een keer.",
|
||||||
"SUCCESS": "Onze Oempa-Loempas hebben je nieuwe wachtwoord opgeslagen.<br /> Probeer ermee <strong>in te loggen</strong>."
|
"SUCCESS": "Onze Oempa-Loempas hebben je nieuwe wachtwoord opgeslagen.<br /> Probeer ermee <strong>in te loggen</strong>."
|
||||||
},
|
},
|
||||||
"INVITATION": {
|
"INVITATION": {
|
||||||
|
@ -351,8 +355,8 @@
|
||||||
"HOME": {
|
"HOME": {
|
||||||
"PAGE_TITLE": "Home -Taiga",
|
"PAGE_TITLE": "Home -Taiga",
|
||||||
"PAGE_DESCRIPTION": "De Taiga start pagina met jouw projecten en de aan jou toegewezen en gevolgde user stories, taken en issues",
|
"PAGE_DESCRIPTION": "De Taiga start pagina met jouw projecten en de aan jou toegewezen en gevolgde user stories, taken en issues",
|
||||||
"EMPTY_WORKING_ON": "<strong>It feels empty, doesn't it?</strong> Start working with Taiga and you'll see here the stories, tasks and issues you are workin on.",
|
"EMPTY_WORKING_ON": "<strong>Beetje kaal, vind je niet?</strong> Als je aan de slag gaat met Taiga, zie je hier de stories, taken en issues waar je aan werkt",
|
||||||
"EMPTY_WATCHING": "<strong>Follow</strong> User Stories, Tasks, Issues in your projects and be notified about its changes :)",
|
"EMPTY_WATCHING": "<strong>Volg</strong> User Stories, Taken, Issues binnen jouw projecten en ontvang een bericht bij veranderingen :)",
|
||||||
"EMPTY_PROJECT_LIST": "Je hebt nog geen projecten",
|
"EMPTY_PROJECT_LIST": "Je hebt nog geen projecten",
|
||||||
"WORKING_ON_SECTION": "Werkt aan",
|
"WORKING_ON_SECTION": "Werkt aan",
|
||||||
"WATCHING_SECTION": "Volgers",
|
"WATCHING_SECTION": "Volgers",
|
||||||
|
@ -366,14 +370,13 @@
|
||||||
"ATTACHMENT": {
|
"ATTACHMENT": {
|
||||||
"SECTION_NAME": "bijlagen",
|
"SECTION_NAME": "bijlagen",
|
||||||
"TITLE": "{{ fileName }} toegevoegd op {{ date }}",
|
"TITLE": "{{ fileName }} toegevoegd op {{ date }}",
|
||||||
"LIST_VIEW_MODE": "List view mode",
|
"LIST_VIEW_MODE": "Lijst weergave",
|
||||||
"GALLERY_VIEW_MODE": "Gallery view mode",
|
"GALLERY_VIEW_MODE": "Afbeeldingweergave",
|
||||||
"DESCRIPTION": "Geef een korte beschrijving",
|
"DESCRIPTION": "Geef een korte beschrijving",
|
||||||
"DEPRECATED": "(verouderd)",
|
"DEPRECATED": "(verouderd)",
|
||||||
"DEPRECATED_FILE": "Verouderd?",
|
"DEPRECATED_FILE": "Verouderd?",
|
||||||
"ADD": "Nieuwe bijlage toevoegen. {{maxFileSizeMsg}}",
|
"ADD": "Nieuwe bijlage toevoegen. {{maxFileSizeMsg}}",
|
||||||
"DROP": "Drop attachments here!",
|
"DROP": "Drop attachments here!",
|
||||||
"MAX_FILE_SIZE": "[Max. grootte: {{maxFileSize}}]",
|
|
||||||
"SHOW_DEPRECATED": "+ toon verouderde bijlagen",
|
"SHOW_DEPRECATED": "+ toon verouderde bijlagen",
|
||||||
"HIDE_DEPRECATED": "- verberg verouderde bijlagen",
|
"HIDE_DEPRECATED": "- verberg verouderde bijlagen",
|
||||||
"COUNT_DEPRECATED": "({{ counter }} verouderd)",
|
"COUNT_DEPRECATED": "({{ counter }} verouderd)",
|
||||||
|
@ -406,7 +409,9 @@
|
||||||
"TITLE": "Gebruikers beheren",
|
"TITLE": "Gebruikers beheren",
|
||||||
"PAGE_TITLE": "Lidmaatschappen - {{projectName}}",
|
"PAGE_TITLE": "Lidmaatschappen - {{projectName}}",
|
||||||
"ADD_BUTTON": "+ Nieuwe gebruiker",
|
"ADD_BUTTON": "+ Nieuwe gebruiker",
|
||||||
"ADD_BUTTON_TITLE": "Nieuwe gebruiker toevoegen"
|
"ADD_BUTTON_TITLE": "Nieuwe gebruiker toevoegen",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_ADMIN": "Unfortunately, this project has reached its limit of <strong>({{members}})</strong> allowed members.",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_OWNER": "This project has reached its limit of <strong>({{members}})</strong> allowed members. If you would like to increase that limit please contact the administrator."
|
||||||
},
|
},
|
||||||
"PROJECT_EXPORT": {
|
"PROJECT_EXPORT": {
|
||||||
"TITLE": "Export",
|
"TITLE": "Export",
|
||||||
|
@ -428,6 +433,10 @@
|
||||||
"DISABLE": "Uitschakelen",
|
"DISABLE": "Uitschakelen",
|
||||||
"BACKLOG": "Backlog",
|
"BACKLOG": "Backlog",
|
||||||
"BACKLOG_DESCRIPTION": "Organiseer je user stories om een duidelijk overzicht van aankomend en geprioritiseerd werk te behouden.",
|
"BACKLOG_DESCRIPTION": "Organiseer je user stories om een duidelijk overzicht van aankomend en geprioritiseerd werk te behouden.",
|
||||||
|
"NUMBER_SPRINTS": "Expected number of sprints",
|
||||||
|
"NUMBER_SPRINTS_HELP": "0 for an undetermined number",
|
||||||
|
"NUMBER_US_POINTS": "Expected total of story points",
|
||||||
|
"NUMBER_US_POINTS_HELP": "0 for an undetermined number",
|
||||||
"KANBAN": "Kanban",
|
"KANBAN": "Kanban",
|
||||||
"KANBAN_DESCRIPTION": "Organiseer je project volgens het lean principe met dit bord.",
|
"KANBAN_DESCRIPTION": "Organiseer je project volgens het lean principe met dit bord.",
|
||||||
"ISSUES": "Issues",
|
"ISSUES": "Issues",
|
||||||
|
@ -435,9 +444,9 @@
|
||||||
"WIKI": "Wiki\n",
|
"WIKI": "Wiki\n",
|
||||||
"WIKI_DESCRIPTION": "Voeg toe, wijzig of verwijder inhoud in samenwerking met anderen. Dit is the juiste plaats voor je project documentatie.",
|
"WIKI_DESCRIPTION": "Voeg toe, wijzig of verwijder inhoud in samenwerking met anderen. Dit is the juiste plaats voor je project documentatie.",
|
||||||
"MEETUP": "Meet Up",
|
"MEETUP": "Meet Up",
|
||||||
"MEETUP_DESCRIPTION": "Kies je videoconference systeem. Zelfs programmeurs hebben face-to-face contact nodig.",
|
"MEETUP_DESCRIPTION": "Choose your videoconference system.",
|
||||||
"SELECT_VIDEOCONFERENCE": "Kies een videoconference systeem",
|
"SELECT_VIDEOCONFERENCE": "Kies een videoconference systeem",
|
||||||
"SALT_CHAT_ROOM": "Als je wil kan je een salt code aan de naam van de chatroom toevoegen",
|
"SALT_CHAT_ROOM": "Add a prefix to the chatroom name",
|
||||||
"JITSI_CHAT_ROOM": "Jitsi",
|
"JITSI_CHAT_ROOM": "Jitsi",
|
||||||
"APPEARIN_CHAT_ROOM": "AppearIn",
|
"APPEARIN_CHAT_ROOM": "AppearIn",
|
||||||
"TALKY_CHAT_ROOM": "Talky",
|
"TALKY_CHAT_ROOM": "Talky",
|
||||||
|
@ -449,22 +458,31 @@
|
||||||
"PROJECT_DETAILS": "Project details",
|
"PROJECT_DETAILS": "Project details",
|
||||||
"PROJECT_NAME": "Naam project",
|
"PROJECT_NAME": "Naam project",
|
||||||
"PROJECT_SLUG": "Project Slug",
|
"PROJECT_SLUG": "Project Slug",
|
||||||
"NUMBER_SPRINTS": "Aantal sprinten (0 voor een onbepaalde hoeveelheid)",
|
|
||||||
"NUMBER_US_POINTS": "Aantal US punten (0 voor een onbepaalde hoeveelheid)",
|
|
||||||
"TAGS": "Tags",
|
"TAGS": "Tags",
|
||||||
"DESCRIPTION": "Beschrijving",
|
"DESCRIPTION": "Beschrijving",
|
||||||
"RECRUITING": "Is this project looking for people?",
|
"RECRUITING": "Is this project looking for people?",
|
||||||
"RECRUITING_MESSAGE": "Who are you looking for?",
|
"RECRUITING_MESSAGE": "Who are you looking for?",
|
||||||
"RECRUITING_PLACEHOLDER": "Define the profiles you are looking for",
|
"RECRUITING_PLACEHOLDER": "Define the profiles you are looking for",
|
||||||
"PUBLIC_PROJECT": "Open project",
|
"PUBLIC_PROJECT": "Open project",
|
||||||
"PUBLIC_PROJECT_DESC": "Users will be able to find and view your project",
|
|
||||||
"PRIVATE_PROJECT": "Gesloten project",
|
"PRIVATE_PROJECT": "Gesloten project",
|
||||||
"PRIVATE_PROJECT_DESC": "By default, this project will be hidden to the public",
|
|
||||||
"PRIVATE_OR_PUBLIC": "What's the difference between public and private projects?",
|
"PRIVATE_OR_PUBLIC": "What's the difference between public and private projects?",
|
||||||
"DELETE": "Verwijder dit project",
|
"DELETE": "Verwijder dit project",
|
||||||
"LOGO_HELP": "The image will be scaled to 80x80px.",
|
"LOGO_HELP": "The image will be scaled to 80x80px.",
|
||||||
"CHANGE_LOGO": "Change logo",
|
"CHANGE_LOGO": "Change logo",
|
||||||
"ACTION_USE_DEFAULT_LOGO": "Use default image"
|
"ACTION_USE_DEFAULT_LOGO": "Use default image",
|
||||||
|
"MAX_PRIVATE_PROJECTS": "You've reached the maximum number of private projects allowed by your current plan",
|
||||||
|
"MAX_PRIVATE_PROJECTS_MEMBERS": "The maximum number of members for private projects has been exceeded",
|
||||||
|
"MAX_PUBLIC_PROJECTS": "Unfortunately, you've reached the maximum number of public projects allowed by your current plan",
|
||||||
|
"MAX_PUBLIC_PROJECTS_MEMBERS": "The project exceeds your maximum number of members for public projects",
|
||||||
|
"PROJECT_OWNER": "Project owner",
|
||||||
|
"REQUEST_OWNERSHIP": "Request ownership",
|
||||||
|
"REQUEST_OWNERSHIP_CONFIRMATION_TITLE": "Do you want to become the new project owner?",
|
||||||
|
"REQUEST_OWNERSHIP_DESC": "Request that current project owner {{name}} transfer ownership of this project to you.",
|
||||||
|
"REQUEST_OWNERSHIP_BUTTON": "Verzoek",
|
||||||
|
"REQUEST_OWNERSHIP_SUCCESS": "We'll notify the project owner",
|
||||||
|
"CHANGE_OWNER": "Change owner",
|
||||||
|
"CHANGE_OWNER_SUCCESS_TITLE": "Ok, your request has been sent!",
|
||||||
|
"CHANGE_OWNER_SUCCESS_DESC": "We will notify you by email if the project ownership request is accepted or declined"
|
||||||
},
|
},
|
||||||
"REPORTS": {
|
"REPORTS": {
|
||||||
"TITLE": "Rapporten",
|
"TITLE": "Rapporten",
|
||||||
|
@ -495,7 +513,8 @@
|
||||||
"ISSUE_ADD": "Voeg een aangepast veld toe in issues",
|
"ISSUE_ADD": "Voeg een aangepast veld toe in issues",
|
||||||
"FIELD_TYPE_TEXT": "Tekst",
|
"FIELD_TYPE_TEXT": "Tekst",
|
||||||
"FIELD_TYPE_MULTI": "Over meerdere regels",
|
"FIELD_TYPE_MULTI": "Over meerdere regels",
|
||||||
"FIELD_TYPE_DATE": "Date"
|
"FIELD_TYPE_DATE": "Date",
|
||||||
|
"FIELD_TYPE_URL": "Url"
|
||||||
},
|
},
|
||||||
"PROJECT_VALUES": {
|
"PROJECT_VALUES": {
|
||||||
"PAGE_TITLE": "{{sectionName}} - Project waardes - {{projectName}}",
|
"PAGE_TITLE": "{{sectionName}} - Project waardes - {{projectName}}",
|
||||||
|
@ -543,7 +562,7 @@
|
||||||
"COUNT_MEMBERS": "{{ role.members_count }} leden met deze rol",
|
"COUNT_MEMBERS": "{{ role.members_count }} leden met deze rol",
|
||||||
"TITLE_DELETE_ROLE": "Verwijder Rol",
|
"TITLE_DELETE_ROLE": "Verwijder Rol",
|
||||||
"REPLACEMENT_ROLE": "Al de gebruikers met deze rol zullen verplaats worden naar",
|
"REPLACEMENT_ROLE": "Al de gebruikers met deze rol zullen verplaats worden naar",
|
||||||
"WARNING_DELETE_ROLE": "<strong>Wees voorzichtig, alle schattingen door deze rol zullen worden verwijderd</strong>",
|
"WARNING_DELETE_ROLE": "Be careful! All role estimations will be removed",
|
||||||
"ERROR_DELETE_ALL": "Je kan niet alle waarden verwijderen",
|
"ERROR_DELETE_ALL": "Je kan niet alle waarden verwijderen",
|
||||||
"EXTERNAL_USER": "Externe gebruiker"
|
"EXTERNAL_USER": "Externe gebruiker"
|
||||||
},
|
},
|
||||||
|
@ -671,6 +690,24 @@
|
||||||
},
|
},
|
||||||
"SUBMENU_THIDPARTIES": {
|
"SUBMENU_THIDPARTIES": {
|
||||||
"TITLE": "Services"
|
"TITLE": "Services"
|
||||||
|
},
|
||||||
|
"PROJECT_TRANSFER": {
|
||||||
|
"DO_YOU_ACCEPT_PROJECT_OWNERNSHIP": "Would you like to become the new project owner?",
|
||||||
|
"PRIVATE": "Private",
|
||||||
|
"ACCEPTED_PROJECT_OWNERNSHIP": "Congratulations! You're now the new project owner.",
|
||||||
|
"REJECTED_PROJECT_OWNERNSHIP": "OK. We'll contact the current project owner",
|
||||||
|
"ACCEPT": "Accepteren",
|
||||||
|
"REJECT": "Reject",
|
||||||
|
"PROPOSE_OWNERSHIP": "<strong>{{owner}}</strong>, the current owner of the project <strong>{{project}}</strong> has asked that you become the new project owner.",
|
||||||
|
"ADD_COMMENT_QUESTION": "Would you like to send a question to the project owner?",
|
||||||
|
"ADD_COMMENT": "Would you like to add a comment for the project owner?",
|
||||||
|
"UNLIMITED_PROJECTS": "Unlimited",
|
||||||
|
"OWNER_MESSAGE": {
|
||||||
|
"PRIVATE": "Please remember that you can own up to <strong>{{maxProjects}}</strong> private projects. You currently own <strong>{{currentProjects}}</strong> private projects",
|
||||||
|
"PUBLIC": "Please remember that you can own up to <strong>{{maxProjects}}</strong> public projects. You currently own <strong>{{currentProjects}}</strong> public projects"
|
||||||
|
},
|
||||||
|
"CANT_BE_OWNED": "At the moment you cannot become an owner of a project of this type. If you would like to become the owner of this project, please contact the administrator so they change your account settings to enable project ownership.",
|
||||||
|
"CHANGE_MY_PLAN": "Change my plan"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"USER": {
|
"USER": {
|
||||||
|
@ -731,6 +768,11 @@
|
||||||
"FANS_COUNTER_TITLE": "{total, plural, one{one fan} other{# fans}}",
|
"FANS_COUNTER_TITLE": "{total, plural, one{one fan} other{# fans}}",
|
||||||
"WATCHERS_COUNTER_TITLE": "{total, plural, one{one watcher} other{# watchers}}",
|
"WATCHERS_COUNTER_TITLE": "{total, plural, one{one watcher} other{# watchers}}",
|
||||||
"MEMBERS_COUNTER_TITLE": "{total, plural, one{one member} other{# members}}",
|
"MEMBERS_COUNTER_TITLE": "{total, plural, one{one member} other{# members}}",
|
||||||
|
"BLOCKED_PROJECT": {
|
||||||
|
"BLOCKED": "Blocked project",
|
||||||
|
"THIS_PROJECT_IS_BLOCKED": "This project is temporarily blocked",
|
||||||
|
"TO_UNBLOCK_CONTACT_THE_ADMIN_STAFF": "In order to unblock your projects, contact the administrator."
|
||||||
|
},
|
||||||
"STATS": {
|
"STATS": {
|
||||||
"PROJECT": "project<br/> punten",
|
"PROJECT": "project<br/> punten",
|
||||||
"DEFINED": "gedefinieerde<br/> punten",
|
"DEFINED": "gedefinieerde<br/> punten",
|
||||||
|
@ -777,6 +819,7 @@
|
||||||
"CHANGE_PASSWORD": "Wachtwoord wijzigen",
|
"CHANGE_PASSWORD": "Wachtwoord wijzigen",
|
||||||
"DASHBOARD_TITLE": "Dashboard",
|
"DASHBOARD_TITLE": "Dashboard",
|
||||||
"DISCOVER_TITLE": "Ontdek trending projecten",
|
"DISCOVER_TITLE": "Ontdek trending projecten",
|
||||||
|
"NEW_ITEM": "Nieuw",
|
||||||
"DISCOVER": "Ontdek",
|
"DISCOVER": "Ontdek",
|
||||||
"ACTION_REORDER": "Sleep om de volgorde te veranderen"
|
"ACTION_REORDER": "Sleep om de volgorde te veranderen"
|
||||||
},
|
},
|
||||||
|
@ -791,7 +834,32 @@
|
||||||
"ERROR_TOO_MANY_REQUEST": "Sorry, onze Oempa-Loempa's zijn op het moment erg druk. Probeer het nog eens over een paar minuten.",
|
"ERROR_TOO_MANY_REQUEST": "Sorry, onze Oempa-Loempa's zijn op het moment erg druk. Probeer het nog eens over een paar minuten.",
|
||||||
"ERROR_MESSAGE": "Onze Oempa-Loempa's hebben wat problemen met het importeren van je dump: {{error_message}}",
|
"ERROR_MESSAGE": "Onze Oempa-Loempa's hebben wat problemen met het importeren van je dump: {{error_message}}",
|
||||||
"ERROR_MAX_SIZE_EXCEEDED": "'{{fileName}}' ({{fileSize}}) is te zwaar voor onze Oempa-Loempa's, probeer het met een bestand kleiner dan ({{maxFileSize}})",
|
"ERROR_MAX_SIZE_EXCEEDED": "'{{fileName}}' ({{fileSize}}) is te zwaar voor onze Oempa-Loempa's, probeer het met een bestand kleiner dan ({{maxFileSize}})",
|
||||||
"SYNC_SUCCESS": "Je project werd met succes geïmporteerd"
|
"SYNC_SUCCESS": "Je project werd met succes geïmporteerd",
|
||||||
|
"PROJECT_RESTRICTIONS": {
|
||||||
|
"PROJECT_MEMBERS_DESC": "The project you are trying to import has {{members}} members, unfortunately, your current plan allows for a maximum of {{max_memberships}} members per project. If you would like to increase that limit please contact the administrator.",
|
||||||
|
"PRIVATE_PROJECTS_SPACE": {
|
||||||
|
"TITLE": "Unfortunately, your current plan does not allow for additional private projects",
|
||||||
|
"DESC": "The project you are trying to import is private. Unfortunately, your current plan does not allow for additional private projects."
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_SPACE": {
|
||||||
|
"TITLE": "Unfortunately, your current plan does not allow for additional private projects",
|
||||||
|
"DESC": "The project you are trying to import is public. Unfortunately, your current plan does not allow additional public projects."
|
||||||
|
},
|
||||||
|
"PRIVATE_PROJECTS_MEMBERS": {
|
||||||
|
"TITLE": "Your current plan allows for a maximum of {{max_memberships}} members per private project"
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_MEMBERS": {
|
||||||
|
"TITLE": "Your current plan allows for a maximum of {{max_memberships}} members per public project."
|
||||||
|
},
|
||||||
|
"PRIVATE_PROJECTS_SPACE_MEMBERS": {
|
||||||
|
"TITLE": "Unfortunately your current plan doesn't allow additional private projects or an increase of more than {{max_memberships}} members per private project",
|
||||||
|
"DESC": "The project that you are trying to import is private and has {{members}} members."
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_SPACE_MEMBERS": {
|
||||||
|
"TITLE": "Unfortunately your current plan doesn't allow additional public projects or an increase of more than {{max_memberships}} members per public project",
|
||||||
|
"DESC": "The project that you are trying to import is public and has more than {{members}} members."
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"LIKE_BUTTON": {
|
"LIKE_BUTTON": {
|
||||||
"LIKE": "Vind ik leuk",
|
"LIKE": "Vind ik leuk",
|
||||||
|
@ -819,8 +887,11 @@
|
||||||
"DELETE_ACCOUNT": {
|
"DELETE_ACCOUNT": {
|
||||||
"SECTION_NAME": "Taiga account verwijderen",
|
"SECTION_NAME": "Taiga account verwijderen",
|
||||||
"CONFIRM": "Weet je zeker dat je je Taiga account wilt verwijderen?",
|
"CONFIRM": "Weet je zeker dat je je Taiga account wilt verwijderen?",
|
||||||
"SUBTITLE": "We gaan je missen! :-(",
|
"NEWSLETTER_LABEL_TEXT": "Ik wil de nieuwsbrief niet meer ontvangen",
|
||||||
"NEWSLETTER_LABEL_TEXT": "Ik wil de nieuwsbrief niet meer ontvangen"
|
"CANCEL": "Back to settings",
|
||||||
|
"ACCEPT": "Delete account",
|
||||||
|
"BLOCK_PROJECT": "Note that all the projects you own projects will be <strong>blocked</strong> after you delete your account. If you do want a project blocked, transfer ownership to another member of each project prior to deleting your account.",
|
||||||
|
"SUBTITLE": "Sorry to see you go. We'll be here if you should ever consider us again! :("
|
||||||
},
|
},
|
||||||
"DELETE_PROJECT": {
|
"DELETE_PROJECT": {
|
||||||
"TITLE": "Verwijder project",
|
"TITLE": "Verwijder project",
|
||||||
|
@ -876,7 +947,25 @@
|
||||||
},
|
},
|
||||||
"CREATE_MEMBER": {
|
"CREATE_MEMBER": {
|
||||||
"PLACEHOLDER_INVITATION_TEXT": "(Optioneel) Voeg een gepersonaliseerd bericht toe aan je uitnodiging. Vertel iets leuks aan je nieuwe leden ;-)",
|
"PLACEHOLDER_INVITATION_TEXT": "(Optioneel) Voeg een gepersonaliseerd bericht toe aan je uitnodiging. Vertel iets leuks aan je nieuwe leden ;-)",
|
||||||
"PLACEHOLDER_TYPE_EMAIL": "Type en E-mail"
|
"PLACEHOLDER_TYPE_EMAIL": "Type en E-mail",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_OWNER": "Unfortunately, this project can't have more than <strong>{{maxMembers}}</strong> members.<br> If you would like to increase the current limit, please contact the administrator.",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE": "Unfortunately, this project can't have more than <strong>{{maxMembers}}</strong> members."
|
||||||
|
},
|
||||||
|
"LEAVE_PROJECT_WARNING": {
|
||||||
|
"TITLE": "Unfortunately, this project can't be left without an owner",
|
||||||
|
"CURRENT_USER_OWNER": {
|
||||||
|
"DESC": "You are the current owner of this project. Before leaving, please transfer ownership to someone else.",
|
||||||
|
"BUTTON": "Change the project owner"
|
||||||
|
},
|
||||||
|
"OTHER_USER_OWNER": {
|
||||||
|
"DESC": "Unfortunately, you can't delete a member who is also the current project owner. First, please assign a new project owner.",
|
||||||
|
"BUTTON": "Request project owner change"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"CHANGE_OWNER": {
|
||||||
|
"TITLE": "Who do you want to be the new project owner?",
|
||||||
|
"ADD_COMMENT": "Add comment",
|
||||||
|
"BUTTON": "Ask this project member to become the new project owner"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"US": {
|
"US": {
|
||||||
|
@ -1171,7 +1260,7 @@
|
||||||
"SEVERITY": "Ernst",
|
"SEVERITY": "Ernst",
|
||||||
"PRIORITIES": "Prioriteiten",
|
"PRIORITIES": "Prioriteiten",
|
||||||
"TAGS": "Tags",
|
"TAGS": "Tags",
|
||||||
"ASSIGNED_TO": "Toegezen aan",
|
"ASSIGNED_TO": "Toegewezen aan",
|
||||||
"CREATED_BY": "Aangemaakt door",
|
"CREATED_BY": "Aangemaakt door",
|
||||||
"CUSTOM_FILTERS": "Eigen filters"
|
"CUSTOM_FILTERS": "Eigen filters"
|
||||||
},
|
},
|
||||||
|
@ -1304,12 +1393,18 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"WIZARD": {
|
"WIZARD": {
|
||||||
"SECTION_TITLE_CHOOSE_TEMPLATE": "Kies een template",
|
|
||||||
"CHOOSE_TEMPLATE_TEXT": "Welk template zou beter bij je project passen?",
|
|
||||||
"SECTION_TITLE_CREATE_PROJECT": "Project aanmaken",
|
"SECTION_TITLE_CREATE_PROJECT": "Project aanmaken",
|
||||||
"CREATE_PROJECT_TEXT": "Vers en proper. Spanned!",
|
"CREATE_PROJECT_TEXT": "Vers en proper. Spanned!",
|
||||||
"PROGRESS_TEMPLATE_SELECTION": "Template selectie",
|
"CHOOSE_TEMPLATE": "Which template fits your project best?",
|
||||||
"PROGRESS_NAME_DESCRIPTION": "Naam en beschrijving"
|
"CHOOSE_TEMPLATE_TITLE": "More info about project templates",
|
||||||
|
"CHOOSE_TEMPLATE_INFO": "More info",
|
||||||
|
"PROJECT_DETAILS": "Project Details",
|
||||||
|
"PUBLIC_PROJECT": "Public Project",
|
||||||
|
"PRIVATE_PROJECT": "Private Project",
|
||||||
|
"CREATE_PROJECT": "Project aanmaken",
|
||||||
|
"MAX_PRIVATE_PROJECTS": "You've reached the maximum number of private projects",
|
||||||
|
"MAX_PUBLIC_PROJECTS": "Unfortunately, you've reached the maximum number of public projects",
|
||||||
|
"CHANGE_PLANS": "change plans"
|
||||||
},
|
},
|
||||||
"WIKI": {
|
"WIKI": {
|
||||||
"PAGE_TITLE": "{{wikiPageName}} - Wiki - {{projectName}}",
|
"PAGE_TITLE": "{{wikiPageName}} - Wiki - {{projectName}}",
|
||||||
|
|
|
@ -41,7 +41,8 @@
|
||||||
"IOCAINE_TEXT": "Czujesz się trochę przytłoczony zadaniem? Daj znać innym klikając na ikonę Iokainy podczas edycji zadania. Jest szansa, że staniesz się odporny na tą (fikcyjną ;) ) śmiertelną truciznę biorąc małe dawki. Z pewnością jednak da Ci ona dodatkowego kopa, który pomoże w pokonaniu nowego wyzwania i staniu się lepszym w tym co robisz!",
|
"IOCAINE_TEXT": "Czujesz się trochę przytłoczony zadaniem? Daj znać innym klikając na ikonę Iokainy podczas edycji zadania. Jest szansa, że staniesz się odporny na tą (fikcyjną ;) ) śmiertelną truciznę biorąc małe dawki. Z pewnością jednak da Ci ona dodatkowego kopa, który pomoże w pokonaniu nowego wyzwania i staniu się lepszym w tym co robisz!",
|
||||||
"CLIENT_REQUIREMENT": "Client requirement is new requirement that was not previously expected and it is required to be part of the project",
|
"CLIENT_REQUIREMENT": "Client requirement is new requirement that was not previously expected and it is required to be part of the project",
|
||||||
"TEAM_REQUIREMENT": "Team requirement is a requirement that must exist in the project but should have no cost for the client",
|
"TEAM_REQUIREMENT": "Team requirement is a requirement that must exist in the project but should have no cost for the client",
|
||||||
"CAPSLOCK_WARNING": "UWAGA! Klawisz CAPSLOCK jest aktywny.",
|
"OWNER": "Project Owner",
|
||||||
|
"CAPSLOCK_WARNING": "Be careful! You are using capital letters in an input field that is case sensitive.",
|
||||||
"FORM_ERRORS": {
|
"FORM_ERRORS": {
|
||||||
"DEFAULT_MESSAGE": "Nieprawidłowa wartość",
|
"DEFAULT_MESSAGE": "Nieprawidłowa wartość",
|
||||||
"TYPE_EMAIL": "Podaj prawidłowy adres email.",
|
"TYPE_EMAIL": "Podaj prawidłowy adres email.",
|
||||||
|
@ -65,7 +66,9 @@
|
||||||
"MIN_CHECK": "Musisz zaznaczyć przynajmniej %s pozycji.",
|
"MIN_CHECK": "Musisz zaznaczyć przynajmniej %s pozycji.",
|
||||||
"MAX_CHECK": "Musisz zaznaczyć %s pozycji lub mniej.",
|
"MAX_CHECK": "Musisz zaznaczyć %s pozycji lub mniej.",
|
||||||
"RANGE_CHECK": "Musisz zaznaczyć pomiędzy %s a %s pozycji.",
|
"RANGE_CHECK": "Musisz zaznaczyć pomiędzy %s a %s pozycji.",
|
||||||
"EQUAL_TO": "Ta wartość powinna być taka sama."
|
"EQUAL_TO": "Ta wartość powinna być taka sama.",
|
||||||
|
"LINEWIDTH": "One or more lines is perhaps too long. Try to keep under %s characters.",
|
||||||
|
"PIKADAY": "Invalid date format, please use DD MMM YYYY (like 23 Mar 1984)"
|
||||||
},
|
},
|
||||||
"PICKERDATE": {
|
"PICKERDATE": {
|
||||||
"FORMAT": "DD MMM YYYY",
|
"FORMAT": "DD MMM YYYY",
|
||||||
|
@ -315,7 +318,8 @@
|
||||||
"PLACEHOLDER_FIELD": "Login albo e-mail",
|
"PLACEHOLDER_FIELD": "Login albo e-mail",
|
||||||
"ACTION_RESET_PASSWORD": "Resetuj hasło",
|
"ACTION_RESET_PASSWORD": "Resetuj hasło",
|
||||||
"LINK_CANCEL": "Nie, zabierz mnie stąd. Chyba je pamiętam.",
|
"LINK_CANCEL": "Nie, zabierz mnie stąd. Chyba je pamiętam.",
|
||||||
"SUCCESS": "<strong>Sprawdź swoją skrzynkę!</strong><br />Wysłaliśmy Ci wiadomość e-mail z instrukcją jak ustawić nowe hasło.",
|
"SUCCESS_TITLE": "Check your inbox!",
|
||||||
|
"SUCCESS_TEXT": "We sent you an email with the instructions to set a new password",
|
||||||
"ERROR": "Nasze Umpa Lumpy twierdzą, że nie jesteś jeszcze zarejestrowany."
|
"ERROR": "Nasze Umpa Lumpy twierdzą, że nie jesteś jeszcze zarejestrowany."
|
||||||
},
|
},
|
||||||
"CHANGE_PASSWORD": {
|
"CHANGE_PASSWORD": {
|
||||||
|
@ -373,7 +377,6 @@
|
||||||
"DEPRECATED_FILE": "Przestarzałe?",
|
"DEPRECATED_FILE": "Przestarzałe?",
|
||||||
"ADD": "Dodaj nowy załącznik. {{maxFileSizeMsg}}",
|
"ADD": "Dodaj nowy załącznik. {{maxFileSizeMsg}}",
|
||||||
"DROP": "Drop attachments here!",
|
"DROP": "Drop attachments here!",
|
||||||
"MAX_FILE_SIZE": "[Maks. rozmiar: {{maxFileSize}}]",
|
|
||||||
"SHOW_DEPRECATED": "+ pokaż przestarzałe załączniki",
|
"SHOW_DEPRECATED": "+ pokaż przestarzałe załączniki",
|
||||||
"HIDE_DEPRECATED": "- ukryj przestarzałe załączniki",
|
"HIDE_DEPRECATED": "- ukryj przestarzałe załączniki",
|
||||||
"COUNT_DEPRECATED": "({{ counter }} przestarzałych",
|
"COUNT_DEPRECATED": "({{ counter }} przestarzałych",
|
||||||
|
@ -406,7 +409,9 @@
|
||||||
"TITLE": "Zarządzaj członkami",
|
"TITLE": "Zarządzaj członkami",
|
||||||
"PAGE_TITLE": "Członkostwa - {{projectName}}",
|
"PAGE_TITLE": "Członkostwa - {{projectName}}",
|
||||||
"ADD_BUTTON": "+ Nowy członek",
|
"ADD_BUTTON": "+ Nowy członek",
|
||||||
"ADD_BUTTON_TITLE": "Dodaj nowego członka"
|
"ADD_BUTTON_TITLE": "Dodaj nowego członka",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_ADMIN": "Unfortunately, this project has reached its limit of <strong>({{members}})</strong> allowed members.",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_OWNER": "This project has reached its limit of <strong>({{members}})</strong> allowed members. If you would like to increase that limit please contact the administrator."
|
||||||
},
|
},
|
||||||
"PROJECT_EXPORT": {
|
"PROJECT_EXPORT": {
|
||||||
"TITLE": "Eksport",
|
"TITLE": "Eksport",
|
||||||
|
@ -428,6 +433,10 @@
|
||||||
"DISABLE": "Wyłącz",
|
"DISABLE": "Wyłącz",
|
||||||
"BACKLOG": "Dziennik",
|
"BACKLOG": "Dziennik",
|
||||||
"BACKLOG_DESCRIPTION": "Zarządzaj swoimi historyjkami użytkownika aby utrzymać zorganizowany widok i priorytety zadań",
|
"BACKLOG_DESCRIPTION": "Zarządzaj swoimi historyjkami użytkownika aby utrzymać zorganizowany widok i priorytety zadań",
|
||||||
|
"NUMBER_SPRINTS": "Expected number of sprints",
|
||||||
|
"NUMBER_SPRINTS_HELP": "0 for an undetermined number",
|
||||||
|
"NUMBER_US_POINTS": "Expected total of story points",
|
||||||
|
"NUMBER_US_POINTS_HELP": "0 for an undetermined number",
|
||||||
"KANBAN": "Kanban",
|
"KANBAN": "Kanban",
|
||||||
"KANBAN_DESCRIPTION": "Organizuj swój projekt przy użyciu metody lean.",
|
"KANBAN_DESCRIPTION": "Organizuj swój projekt przy użyciu metody lean.",
|
||||||
"ISSUES": "Zgłoszenia",
|
"ISSUES": "Zgłoszenia",
|
||||||
|
@ -435,9 +444,9 @@
|
||||||
"WIKI": "Wiki",
|
"WIKI": "Wiki",
|
||||||
"WIKI_DESCRIPTION": "Dodawaj, modyfikuj lub usuwaj dane we współpracy z innymi. To jest właściwe miejsce dla Twojej dokumentacji projektowej.",
|
"WIKI_DESCRIPTION": "Dodawaj, modyfikuj lub usuwaj dane we współpracy z innymi. To jest właściwe miejsce dla Twojej dokumentacji projektowej.",
|
||||||
"MEETUP": "Spotkaj się",
|
"MEETUP": "Spotkaj się",
|
||||||
"MEETUP_DESCRIPTION": "Wybierz system wideokonferencji. Nawet programiści potrzebują kontaktu twarzą w twarz.",
|
"MEETUP_DESCRIPTION": "Choose your videoconference system.",
|
||||||
"SELECT_VIDEOCONFERENCE": "Wybierz system do wideokonferencji.",
|
"SELECT_VIDEOCONFERENCE": "Wybierz system do wideokonferencji.",
|
||||||
"SALT_CHAT_ROOM": "Jeśli chcesz możesz dodać salt code do nazwy pokoju chatu.",
|
"SALT_CHAT_ROOM": "Add a prefix to the chatroom name",
|
||||||
"JITSI_CHAT_ROOM": "Jitsi",
|
"JITSI_CHAT_ROOM": "Jitsi",
|
||||||
"APPEARIN_CHAT_ROOM": "AppearIn",
|
"APPEARIN_CHAT_ROOM": "AppearIn",
|
||||||
"TALKY_CHAT_ROOM": "Talky",
|
"TALKY_CHAT_ROOM": "Talky",
|
||||||
|
@ -449,22 +458,31 @@
|
||||||
"PROJECT_DETAILS": "Szczegóły projektu",
|
"PROJECT_DETAILS": "Szczegóły projektu",
|
||||||
"PROJECT_NAME": "Nazwa projektu",
|
"PROJECT_NAME": "Nazwa projektu",
|
||||||
"PROJECT_SLUG": "Szczegóły projektu",
|
"PROJECT_SLUG": "Szczegóły projektu",
|
||||||
"NUMBER_SPRINTS": "Number of sprints (0 for an undetermined quantity)",
|
|
||||||
"NUMBER_US_POINTS": "Number of US points (0 for an undetermined quantity)",
|
|
||||||
"TAGS": "Tagi",
|
"TAGS": "Tagi",
|
||||||
"DESCRIPTION": "Opis",
|
"DESCRIPTION": "Opis",
|
||||||
"RECRUITING": "Is this project looking for people?",
|
"RECRUITING": "Is this project looking for people?",
|
||||||
"RECRUITING_MESSAGE": "Who are you looking for?",
|
"RECRUITING_MESSAGE": "Who are you looking for?",
|
||||||
"RECRUITING_PLACEHOLDER": "Define the profiles you are looking for",
|
"RECRUITING_PLACEHOLDER": "Define the profiles you are looking for",
|
||||||
"PUBLIC_PROJECT": "Projekt publiczny",
|
"PUBLIC_PROJECT": "Projekt publiczny",
|
||||||
"PUBLIC_PROJECT_DESC": "Users will be able to find and view your project",
|
|
||||||
"PRIVATE_PROJECT": "Projekt prywatny",
|
"PRIVATE_PROJECT": "Projekt prywatny",
|
||||||
"PRIVATE_PROJECT_DESC": "By default, this project will be hidden to the public",
|
|
||||||
"PRIVATE_OR_PUBLIC": "What's the difference between public and private projects?",
|
"PRIVATE_OR_PUBLIC": "What's the difference between public and private projects?",
|
||||||
"DELETE": "Usuń ten projekt",
|
"DELETE": "Usuń ten projekt",
|
||||||
"LOGO_HELP": "The image will be scaled to 80x80px.",
|
"LOGO_HELP": "The image will be scaled to 80x80px.",
|
||||||
"CHANGE_LOGO": "Change logo",
|
"CHANGE_LOGO": "Change logo",
|
||||||
"ACTION_USE_DEFAULT_LOGO": "Use default image"
|
"ACTION_USE_DEFAULT_LOGO": "Use default image",
|
||||||
|
"MAX_PRIVATE_PROJECTS": "You've reached the maximum number of private projects allowed by your current plan",
|
||||||
|
"MAX_PRIVATE_PROJECTS_MEMBERS": "The maximum number of members for private projects has been exceeded",
|
||||||
|
"MAX_PUBLIC_PROJECTS": "Unfortunately, you've reached the maximum number of public projects allowed by your current plan",
|
||||||
|
"MAX_PUBLIC_PROJECTS_MEMBERS": "The project exceeds your maximum number of members for public projects",
|
||||||
|
"PROJECT_OWNER": "Project owner",
|
||||||
|
"REQUEST_OWNERSHIP": "Request ownership",
|
||||||
|
"REQUEST_OWNERSHIP_CONFIRMATION_TITLE": "Do you want to become the new project owner?",
|
||||||
|
"REQUEST_OWNERSHIP_DESC": "Request that current project owner {{name}} transfer ownership of this project to you.",
|
||||||
|
"REQUEST_OWNERSHIP_BUTTON": "Żądanie",
|
||||||
|
"REQUEST_OWNERSHIP_SUCCESS": "We'll notify the project owner",
|
||||||
|
"CHANGE_OWNER": "Change owner",
|
||||||
|
"CHANGE_OWNER_SUCCESS_TITLE": "Ok, your request has been sent!",
|
||||||
|
"CHANGE_OWNER_SUCCESS_DESC": "We will notify you by email if the project ownership request is accepted or declined"
|
||||||
},
|
},
|
||||||
"REPORTS": {
|
"REPORTS": {
|
||||||
"TITLE": "Raporty",
|
"TITLE": "Raporty",
|
||||||
|
@ -495,7 +513,8 @@
|
||||||
"ISSUE_ADD": "Dodaj własne pole dla zgłoszeń",
|
"ISSUE_ADD": "Dodaj własne pole dla zgłoszeń",
|
||||||
"FIELD_TYPE_TEXT": "Tekst",
|
"FIELD_TYPE_TEXT": "Tekst",
|
||||||
"FIELD_TYPE_MULTI": "Pole wielowierszowe",
|
"FIELD_TYPE_MULTI": "Pole wielowierszowe",
|
||||||
"FIELD_TYPE_DATE": "Date"
|
"FIELD_TYPE_DATE": "Date",
|
||||||
|
"FIELD_TYPE_URL": "Url"
|
||||||
},
|
},
|
||||||
"PROJECT_VALUES": {
|
"PROJECT_VALUES": {
|
||||||
"PAGE_TITLE": "{{sectionName}} - Wartości projektu - {{projectName}}",
|
"PAGE_TITLE": "{{sectionName}} - Wartości projektu - {{projectName}}",
|
||||||
|
@ -543,7 +562,7 @@
|
||||||
"COUNT_MEMBERS": "{{ role.members_count }} użytkowników pełniących tę rolę w projekcie",
|
"COUNT_MEMBERS": "{{ role.members_count }} użytkowników pełniących tę rolę w projekcie",
|
||||||
"TITLE_DELETE_ROLE": "Usuń rolę",
|
"TITLE_DELETE_ROLE": "Usuń rolę",
|
||||||
"REPLACEMENT_ROLE": "Wszyscy użytkownicy pełniący tę rolę zostaną przeniesieni do",
|
"REPLACEMENT_ROLE": "Wszyscy użytkownicy pełniący tę rolę zostaną przeniesieni do",
|
||||||
"WARNING_DELETE_ROLE": "<strong>Ostrożnie, wszystkie estymaty dodane przez ludzi pełniących tę rolę zostaną usunięte</strong>",
|
"WARNING_DELETE_ROLE": "Be careful! All role estimations will be removed",
|
||||||
"ERROR_DELETE_ALL": "Nie możesz usunąć wszystkich wartości",
|
"ERROR_DELETE_ALL": "Nie możesz usunąć wszystkich wartości",
|
||||||
"EXTERNAL_USER": "Zewnętrzny użytkownik"
|
"EXTERNAL_USER": "Zewnętrzny użytkownik"
|
||||||
},
|
},
|
||||||
|
@ -671,6 +690,24 @@
|
||||||
},
|
},
|
||||||
"SUBMENU_THIDPARTIES": {
|
"SUBMENU_THIDPARTIES": {
|
||||||
"TITLE": "Ważność"
|
"TITLE": "Ważność"
|
||||||
|
},
|
||||||
|
"PROJECT_TRANSFER": {
|
||||||
|
"DO_YOU_ACCEPT_PROJECT_OWNERNSHIP": "Would you like to become the new project owner?",
|
||||||
|
"PRIVATE": "Private",
|
||||||
|
"ACCEPTED_PROJECT_OWNERNSHIP": "Congratulations! You're now the new project owner.",
|
||||||
|
"REJECTED_PROJECT_OWNERNSHIP": "OK. We'll contact the current project owner",
|
||||||
|
"ACCEPT": "Akceptuj",
|
||||||
|
"REJECT": "Reject",
|
||||||
|
"PROPOSE_OWNERSHIP": "<strong>{{owner}}</strong>, the current owner of the project <strong>{{project}}</strong> has asked that you become the new project owner.",
|
||||||
|
"ADD_COMMENT_QUESTION": "Would you like to send a question to the project owner?",
|
||||||
|
"ADD_COMMENT": "Would you like to add a comment for the project owner?",
|
||||||
|
"UNLIMITED_PROJECTS": "Unlimited",
|
||||||
|
"OWNER_MESSAGE": {
|
||||||
|
"PRIVATE": "Please remember that you can own up to <strong>{{maxProjects}}</strong> private projects. You currently own <strong>{{currentProjects}}</strong> private projects",
|
||||||
|
"PUBLIC": "Please remember that you can own up to <strong>{{maxProjects}}</strong> public projects. You currently own <strong>{{currentProjects}}</strong> public projects"
|
||||||
|
},
|
||||||
|
"CANT_BE_OWNED": "At the moment you cannot become an owner of a project of this type. If you would like to become the owner of this project, please contact the administrator so they change your account settings to enable project ownership.",
|
||||||
|
"CHANGE_MY_PLAN": "Change my plan"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"USER": {
|
"USER": {
|
||||||
|
@ -731,6 +768,11 @@
|
||||||
"FANS_COUNTER_TITLE": "{total, plural, one{one fan} other{# fans}}",
|
"FANS_COUNTER_TITLE": "{total, plural, one{one fan} other{# fans}}",
|
||||||
"WATCHERS_COUNTER_TITLE": "{total, plural, one{one watcher} other{# watchers}}",
|
"WATCHERS_COUNTER_TITLE": "{total, plural, one{one watcher} other{# watchers}}",
|
||||||
"MEMBERS_COUNTER_TITLE": "{total, plural, one{one member} other{# members}}",
|
"MEMBERS_COUNTER_TITLE": "{total, plural, one{one member} other{# members}}",
|
||||||
|
"BLOCKED_PROJECT": {
|
||||||
|
"BLOCKED": "Blocked project",
|
||||||
|
"THIS_PROJECT_IS_BLOCKED": "This project is temporarily blocked",
|
||||||
|
"TO_UNBLOCK_CONTACT_THE_ADMIN_STAFF": "In order to unblock your projects, contact the administrator."
|
||||||
|
},
|
||||||
"STATS": {
|
"STATS": {
|
||||||
"PROJECT": "projekt<br/> punkty",
|
"PROJECT": "projekt<br/> punkty",
|
||||||
"DEFINED": "zdefiniowane<br/> punkty",
|
"DEFINED": "zdefiniowane<br/> punkty",
|
||||||
|
@ -777,6 +819,7 @@
|
||||||
"CHANGE_PASSWORD": "Zmień hasło",
|
"CHANGE_PASSWORD": "Zmień hasło",
|
||||||
"DASHBOARD_TITLE": "Dashboard",
|
"DASHBOARD_TITLE": "Dashboard",
|
||||||
"DISCOVER_TITLE": "Odkryj projekty",
|
"DISCOVER_TITLE": "Odkryj projekty",
|
||||||
|
"NEW_ITEM": "Nowe",
|
||||||
"DISCOVER": "Odkryj",
|
"DISCOVER": "Odkryj",
|
||||||
"ACTION_REORDER": "Przeciągnij i upuść żeby zmienić kolejność"
|
"ACTION_REORDER": "Przeciągnij i upuść żeby zmienić kolejność"
|
||||||
},
|
},
|
||||||
|
@ -791,7 +834,32 @@
|
||||||
"ERROR_TOO_MANY_REQUEST": "Umpa Lumpy są teraz zajęte a serwer ma zadyszkę. Spróbuj ponownie za chwilę.",
|
"ERROR_TOO_MANY_REQUEST": "Umpa Lumpy są teraz zajęte a serwer ma zadyszkę. Spróbuj ponownie za chwilę.",
|
||||||
"ERROR_MESSAGE": "Przy imporcie wystąpił następujący problem: {{error_message}}",
|
"ERROR_MESSAGE": "Przy imporcie wystąpił następujący problem: {{error_message}}",
|
||||||
"ERROR_MAX_SIZE_EXCEEDED": "'{{fileName}}' ({{fileSize}}) plik jest za ciężki, maksymalna wartość to: ({{maxFileSize}})",
|
"ERROR_MAX_SIZE_EXCEEDED": "'{{fileName}}' ({{fileSize}}) plik jest za ciężki, maksymalna wartość to: ({{maxFileSize}})",
|
||||||
"SYNC_SUCCESS": "Twój projekt zaimportował się prawidłowo!"
|
"SYNC_SUCCESS": "Twój projekt zaimportował się prawidłowo!",
|
||||||
|
"PROJECT_RESTRICTIONS": {
|
||||||
|
"PROJECT_MEMBERS_DESC": "The project you are trying to import has {{members}} members, unfortunately, your current plan allows for a maximum of {{max_memberships}} members per project. If you would like to increase that limit please contact the administrator.",
|
||||||
|
"PRIVATE_PROJECTS_SPACE": {
|
||||||
|
"TITLE": "Unfortunately, your current plan does not allow for additional private projects",
|
||||||
|
"DESC": "The project you are trying to import is private. Unfortunately, your current plan does not allow for additional private projects."
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_SPACE": {
|
||||||
|
"TITLE": "Unfortunately, your current plan does not allow for additional private projects",
|
||||||
|
"DESC": "The project you are trying to import is public. Unfortunately, your current plan does not allow additional public projects."
|
||||||
|
},
|
||||||
|
"PRIVATE_PROJECTS_MEMBERS": {
|
||||||
|
"TITLE": "Your current plan allows for a maximum of {{max_memberships}} members per private project"
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_MEMBERS": {
|
||||||
|
"TITLE": "Your current plan allows for a maximum of {{max_memberships}} members per public project."
|
||||||
|
},
|
||||||
|
"PRIVATE_PROJECTS_SPACE_MEMBERS": {
|
||||||
|
"TITLE": "Unfortunately your current plan doesn't allow additional private projects or an increase of more than {{max_memberships}} members per private project",
|
||||||
|
"DESC": "The project that you are trying to import is private and has {{members}} members."
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_SPACE_MEMBERS": {
|
||||||
|
"TITLE": "Unfortunately your current plan doesn't allow additional public projects or an increase of more than {{max_memberships}} members per public project",
|
||||||
|
"DESC": "The project that you are trying to import is public and has more than {{members}} members."
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"LIKE_BUTTON": {
|
"LIKE_BUTTON": {
|
||||||
"LIKE": "Like",
|
"LIKE": "Like",
|
||||||
|
@ -819,8 +887,11 @@
|
||||||
"DELETE_ACCOUNT": {
|
"DELETE_ACCOUNT": {
|
||||||
"SECTION_NAME": "Usuń konto z Taiga",
|
"SECTION_NAME": "Usuń konto z Taiga",
|
||||||
"CONFIRM": "Czy na pewno chcesz usunąć swoje konto z Taiga?",
|
"CONFIRM": "Czy na pewno chcesz usunąć swoje konto z Taiga?",
|
||||||
"SUBTITLE": "Będziemy tęsknić! :(",
|
"NEWSLETTER_LABEL_TEXT": "Nie chcę więcej otrzymywać waszego newslettera",
|
||||||
"NEWSLETTER_LABEL_TEXT": "Nie chcę więcej otrzymywać waszego newslettera"
|
"CANCEL": "Back to settings",
|
||||||
|
"ACCEPT": "Delete account",
|
||||||
|
"BLOCK_PROJECT": "Note that all the projects you own projects will be <strong>blocked</strong> after you delete your account. If you do want a project blocked, transfer ownership to another member of each project prior to deleting your account.",
|
||||||
|
"SUBTITLE": "Sorry to see you go. We'll be here if you should ever consider us again! :("
|
||||||
},
|
},
|
||||||
"DELETE_PROJECT": {
|
"DELETE_PROJECT": {
|
||||||
"TITLE": "Usuń projekt",
|
"TITLE": "Usuń projekt",
|
||||||
|
@ -876,7 +947,25 @@
|
||||||
},
|
},
|
||||||
"CREATE_MEMBER": {
|
"CREATE_MEMBER": {
|
||||||
"PLACEHOLDER_INVITATION_TEXT": "(Opcjonalne) Dodaj spersonalizowany tekst do zaproszenia. Napisz coś słodziachnego do nowego członka zespołu :)",
|
"PLACEHOLDER_INVITATION_TEXT": "(Opcjonalne) Dodaj spersonalizowany tekst do zaproszenia. Napisz coś słodziachnego do nowego członka zespołu :)",
|
||||||
"PLACEHOLDER_TYPE_EMAIL": "Wpisz Email"
|
"PLACEHOLDER_TYPE_EMAIL": "Wpisz Email",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_OWNER": "Unfortunately, this project can't have more than <strong>{{maxMembers}}</strong> members.<br> If you would like to increase the current limit, please contact the administrator.",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE": "Unfortunately, this project can't have more than <strong>{{maxMembers}}</strong> members."
|
||||||
|
},
|
||||||
|
"LEAVE_PROJECT_WARNING": {
|
||||||
|
"TITLE": "Unfortunately, this project can't be left without an owner",
|
||||||
|
"CURRENT_USER_OWNER": {
|
||||||
|
"DESC": "You are the current owner of this project. Before leaving, please transfer ownership to someone else.",
|
||||||
|
"BUTTON": "Change the project owner"
|
||||||
|
},
|
||||||
|
"OTHER_USER_OWNER": {
|
||||||
|
"DESC": "Unfortunately, you can't delete a member who is also the current project owner. First, please assign a new project owner.",
|
||||||
|
"BUTTON": "Request project owner change"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"CHANGE_OWNER": {
|
||||||
|
"TITLE": "Who do you want to be the new project owner?",
|
||||||
|
"ADD_COMMENT": "Add comment",
|
||||||
|
"BUTTON": "Ask this project member to become the new project owner"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"US": {
|
"US": {
|
||||||
|
@ -1304,12 +1393,18 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"WIZARD": {
|
"WIZARD": {
|
||||||
"SECTION_TITLE_CHOOSE_TEMPLATE": "Wybierz szablon",
|
|
||||||
"CHOOSE_TEMPLATE_TEXT": "Który szablon lepiej pasuje do Twojego projektu?",
|
|
||||||
"SECTION_TITLE_CREATE_PROJECT": "Utwórz projekt",
|
"SECTION_TITLE_CREATE_PROJECT": "Utwórz projekt",
|
||||||
"CREATE_PROJECT_TEXT": "Nowy, zwinny! To takie ekscytujące!",
|
"CREATE_PROJECT_TEXT": "Nowy, zwinny! To takie ekscytujące!",
|
||||||
"PROGRESS_TEMPLATE_SELECTION": "Wybór szablonu",
|
"CHOOSE_TEMPLATE": "Which template fits your project best?",
|
||||||
"PROGRESS_NAME_DESCRIPTION": "Nazwa i opis"
|
"CHOOSE_TEMPLATE_TITLE": "More info about project templates",
|
||||||
|
"CHOOSE_TEMPLATE_INFO": "More info",
|
||||||
|
"PROJECT_DETAILS": "Project Details",
|
||||||
|
"PUBLIC_PROJECT": "Public Project",
|
||||||
|
"PRIVATE_PROJECT": "Private Project",
|
||||||
|
"CREATE_PROJECT": "Utwórz projekt",
|
||||||
|
"MAX_PRIVATE_PROJECTS": "You've reached the maximum number of private projects",
|
||||||
|
"MAX_PUBLIC_PROJECTS": "Unfortunately, you've reached the maximum number of public projects",
|
||||||
|
"CHANGE_PLANS": "change plans"
|
||||||
},
|
},
|
||||||
"WIKI": {
|
"WIKI": {
|
||||||
"PAGE_TITLE": "{{wikiPageName}} - Wiki - {{projectName}}",
|
"PAGE_TITLE": "{{wikiPageName}} - Wiki - {{projectName}}",
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
"COMMON": {
|
"COMMON": {
|
||||||
"YES": "Sim",
|
"YES": "Sim",
|
||||||
"NO": "Não",
|
"NO": "Não",
|
||||||
"OR": "or",
|
"OR": "ou",
|
||||||
"LOADING": "Carregando...",
|
"LOADING": "Carregando...",
|
||||||
"LOADING_PROJECT": "Carregando o projeto...",
|
"LOADING_PROJECT": "Carregando o projeto...",
|
||||||
"DATE": "DD MMM YYYY",
|
"DATE": "DD MMM YYYY",
|
||||||
|
@ -19,11 +19,11 @@
|
||||||
"TAG_LINE": "Sua ferramenta de código aberto, gratuita e ágil.",
|
"TAG_LINE": "Sua ferramenta de código aberto, gratuita e ágil.",
|
||||||
"TAG_LINE_2": "AME SEU PROJETO",
|
"TAG_LINE_2": "AME SEU PROJETO",
|
||||||
"BLOCK": "Bloquear",
|
"BLOCK": "Bloquear",
|
||||||
"BLOCK_TITLE": "Block this item for example if it has a dependency that can not be satisfied",
|
"BLOCK_TITLE": "Bloqueia este item, por exemplo, se ele possui uma dependência não resolvida",
|
||||||
"BLOCKED": "Bloqueado",
|
"BLOCKED": "Bloqueado",
|
||||||
"UNBLOCK": "Desbloquear",
|
"UNBLOCK": "Desbloquear",
|
||||||
"UNBLOCK_TITLE": "Unblock this item",
|
"UNBLOCK_TITLE": "Desbloquear este item",
|
||||||
"BLOCKED_NOTE": "Why is this blocked?",
|
"BLOCKED_NOTE": "Por que esta bloqueado?",
|
||||||
"BLOCKED_REASON": "Por favor, explique a razão",
|
"BLOCKED_REASON": "Por favor, explique a razão",
|
||||||
"CREATED_BY": "Criado por {{fullDisplayName}}",
|
"CREATED_BY": "Criado por {{fullDisplayName}}",
|
||||||
"FROM": "de",
|
"FROM": "de",
|
||||||
|
@ -41,7 +41,8 @@
|
||||||
"IOCAINE_TEXT": "Se sentindo sobrecarregado por uma tarefa? Assegure-se de que os outros saibam disso clicando em Iocaine quando estiver editando a tarefa. É possível se tornar imune a essse veneno mortal (fictício) consumindo pequenas quantidades ao longo do tempo, assim como é possível ficar melhor no que faz, ocasionalmente, por assumir desafios extras!",
|
"IOCAINE_TEXT": "Se sentindo sobrecarregado por uma tarefa? Assegure-se de que os outros saibam disso clicando em Iocaine quando estiver editando a tarefa. É possível se tornar imune a essse veneno mortal (fictício) consumindo pequenas quantidades ao longo do tempo, assim como é possível ficar melhor no que faz, ocasionalmente, por assumir desafios extras!",
|
||||||
"CLIENT_REQUIREMENT": "Client requirement is new requirement that was not previously expected and it is required to be part of the project",
|
"CLIENT_REQUIREMENT": "Client requirement is new requirement that was not previously expected and it is required to be part of the project",
|
||||||
"TEAM_REQUIREMENT": "Team requirement is a requirement that must exist in the project but should have no cost for the client",
|
"TEAM_REQUIREMENT": "Team requirement is a requirement that must exist in the project but should have no cost for the client",
|
||||||
"CAPSLOCK_WARNING": "Seja cuidadoso! Você está escrevendo em letras maiúsculas e esse campo é case sensitive, ou seja trata com distinção letras maiúsculas das minúsculas",
|
"OWNER": "Project Owner",
|
||||||
|
"CAPSLOCK_WARNING": "Be careful! You are using capital letters in an input field that is case sensitive.",
|
||||||
"FORM_ERRORS": {
|
"FORM_ERRORS": {
|
||||||
"DEFAULT_MESSAGE": "Este valor parece ser inválido.",
|
"DEFAULT_MESSAGE": "Este valor parece ser inválido.",
|
||||||
"TYPE_EMAIL": "Este valor deve ser um e-mail válido.",
|
"TYPE_EMAIL": "Este valor deve ser um e-mail válido.",
|
||||||
|
@ -65,7 +66,9 @@
|
||||||
"MIN_CHECK": "Você deve selecionar pelo menos %s escolhas.",
|
"MIN_CHECK": "Você deve selecionar pelo menos %s escolhas.",
|
||||||
"MAX_CHECK": "Você deve selecionar %s escolhas ou menos.",
|
"MAX_CHECK": "Você deve selecionar %s escolhas ou menos.",
|
||||||
"RANGE_CHECK": "Você deve selecionar entre %s e %s escolhas.",
|
"RANGE_CHECK": "Você deve selecionar entre %s e %s escolhas.",
|
||||||
"EQUAL_TO": "Esse valor deveria ser o mesmo."
|
"EQUAL_TO": "Esse valor deveria ser o mesmo.",
|
||||||
|
"LINEWIDTH": "One or more lines is perhaps too long. Try to keep under %s characters.",
|
||||||
|
"PIKADAY": "Invalid date format, please use DD MMM YYYY (like 23 Mar 1984)"
|
||||||
},
|
},
|
||||||
"PICKERDATE": {
|
"PICKERDATE": {
|
||||||
"FORMAT": "DD MMM YYYY",
|
"FORMAT": "DD MMM YYYY",
|
||||||
|
@ -205,11 +208,11 @@
|
||||||
"BOLD_BUTTON_SAMPLE_TEXT": "Seu texto aqui...",
|
"BOLD_BUTTON_SAMPLE_TEXT": "Seu texto aqui...",
|
||||||
"ITALIC_BUTTON": "Itálico",
|
"ITALIC_BUTTON": "Itálico",
|
||||||
"ITALIC_SAMPLE_TEXT": "Seu texto aqui...",
|
"ITALIC_SAMPLE_TEXT": "Seu texto aqui...",
|
||||||
"STRIKE_BUTTON": "Strike",
|
"STRIKE_BUTTON": "Riscar",
|
||||||
"STRIKE_SAMPLE_TEXT": "Seu texto aqui...",
|
"STRIKE_SAMPLE_TEXT": "Seu texto aqui...",
|
||||||
"BULLETED_LIST_BUTTON": "Lista de Marcadores",
|
"BULLETED_LIST_BUTTON": "Lista de marcadores",
|
||||||
"BULLETED_LIST_SAMPLE_TEXT": "Seu texto aqui...",
|
"BULLETED_LIST_SAMPLE_TEXT": "Seu texto aqui...",
|
||||||
"NUMERIC_LIST_BUTTON": "Lista Numérica",
|
"NUMERIC_LIST_BUTTON": "Lista numérica",
|
||||||
"NUMERIC_LIST_SAMPLE_TEXT": "Seu texto aqui...",
|
"NUMERIC_LIST_SAMPLE_TEXT": "Seu texto aqui...",
|
||||||
"PICTURE_BUTTON": "Imagem",
|
"PICTURE_BUTTON": "Imagem",
|
||||||
"PICTURE_SAMPLE_TEXT": "Seu texto alternativo para a imagem aqui...",
|
"PICTURE_SAMPLE_TEXT": "Seu texto alternativo para a imagem aqui...",
|
||||||
|
@ -217,7 +220,7 @@
|
||||||
"LINK_SAMPLE_TEXT": "Seu texto para o link vai aqui...",
|
"LINK_SAMPLE_TEXT": "Seu texto para o link vai aqui...",
|
||||||
"QUOTE_BLOCK_BUTTON": "Bloco de citação",
|
"QUOTE_BLOCK_BUTTON": "Bloco de citação",
|
||||||
"QUOTE_BLOCK_SAMPLE_TEXT": "Seu texto aqui...",
|
"QUOTE_BLOCK_SAMPLE_TEXT": "Seu texto aqui...",
|
||||||
"CODE_BLOCK_BUTTON": "Bloco de Código",
|
"CODE_BLOCK_BUTTON": "Bloco de código",
|
||||||
"CODE_BLOCK_SAMPLE_TEXT": "Seu texto aqui...",
|
"CODE_BLOCK_SAMPLE_TEXT": "Seu texto aqui...",
|
||||||
"PREVIEW_BUTTON": "Pré Visualizar",
|
"PREVIEW_BUTTON": "Pré Visualizar",
|
||||||
"EDIT_BUTTON": "Editar",
|
"EDIT_BUTTON": "Editar",
|
||||||
|
@ -229,13 +232,13 @@
|
||||||
"VIEW_SPRINTS": "Ver sprints",
|
"VIEW_SPRINTS": "Ver sprints",
|
||||||
"ADD_SPRINTS": "Adicionar sprints",
|
"ADD_SPRINTS": "Adicionar sprints",
|
||||||
"MODIFY_SPRINTS": "Modificar sprints",
|
"MODIFY_SPRINTS": "Modificar sprints",
|
||||||
"DELETE_SPRINTS": "Apagar Sprints"
|
"DELETE_SPRINTS": "Apagar sprints"
|
||||||
},
|
},
|
||||||
"USER_STORIES": {
|
"USER_STORIES": {
|
||||||
"NAME": "User Stories",
|
"NAME": "User Stories",
|
||||||
"VIEW_USER_STORIES": "Ver user stories",
|
"VIEW_USER_STORIES": "Ver user stories",
|
||||||
"ADD_USER_STORIES": "Adicionar user stories",
|
"ADD_USER_STORIES": "Adicionar user stories",
|
||||||
"MODIFY_USER_STORIES": "Modificar user stories",
|
"MODIFY_USER_STORIES": "Modificar estórias de usuário",
|
||||||
"DELETE_USER_STORIES": "Apagar user stories"
|
"DELETE_USER_STORIES": "Apagar user stories"
|
||||||
},
|
},
|
||||||
"TASKS": {
|
"TASKS": {
|
||||||
|
@ -315,7 +318,8 @@
|
||||||
"PLACEHOLDER_FIELD": "Nome de usuário ou email",
|
"PLACEHOLDER_FIELD": "Nome de usuário ou email",
|
||||||
"ACTION_RESET_PASSWORD": "Resetar Senha",
|
"ACTION_RESET_PASSWORD": "Resetar Senha",
|
||||||
"LINK_CANCEL": "Nããão, me leve de volta. Acho que me lembrei.",
|
"LINK_CANCEL": "Nããão, me leve de volta. Acho que me lembrei.",
|
||||||
"SUCCESS": "<strong>Verifique sua conta de email</strong><br />Enviamos um email com as instruções para configurar uma nova senha",
|
"SUCCESS_TITLE": "Check your inbox!",
|
||||||
|
"SUCCESS_TEXT": "We sent you an email with the instructions to set a new password",
|
||||||
"ERROR": "Segundo nossos Oompa Loompas, você ainda não está inscrito."
|
"ERROR": "Segundo nossos Oompa Loompas, você ainda não está inscrito."
|
||||||
},
|
},
|
||||||
"CHANGE_PASSWORD": {
|
"CHANGE_PASSWORD": {
|
||||||
|
@ -350,9 +354,9 @@
|
||||||
},
|
},
|
||||||
"HOME": {
|
"HOME": {
|
||||||
"PAGE_TITLE": "Início - Taiga",
|
"PAGE_TITLE": "Início - Taiga",
|
||||||
"PAGE_DESCRIPTION": "A página inicial do Taiga contém seus projetos principais e todos as user stories atribuídas ou observadas por você, tarefas e casos",
|
"PAGE_DESCRIPTION": "A página inicial do Taiga com seus principais projetos e todas as estórias atribuídas ou observadas por você, tarefas e problemas",
|
||||||
"EMPTY_WORKING_ON": "<strong>Isso parece vazio não acha?</strong> Comece a trabalhar com Taiga para começar a ver estórias, tarefas e casos em que está trabalhando.",
|
"EMPTY_WORKING_ON": "<strong>Isso parece vazio não acha?</strong> Comece a trabalhar com Taiga para começar a ver estórias, tarefas e problemas em que está trabalhando.",
|
||||||
"EMPTY_WATCHING": "<strong>Siga</strong> Estórias, Tarefas e Casos nos seus projetos e seja notificado das mudanças :)",
|
"EMPTY_WATCHING": "<strong>Siga</strong> Estórias, Tarefas e Problemas nos seus projetos e seja notificado das mudanças :)",
|
||||||
"EMPTY_PROJECT_LIST": "Você ainda não tem projetos",
|
"EMPTY_PROJECT_LIST": "Você ainda não tem projetos",
|
||||||
"WORKING_ON_SECTION": "Trabalhando em",
|
"WORKING_ON_SECTION": "Trabalhando em",
|
||||||
"WATCHING_SECTION": "Observando",
|
"WATCHING_SECTION": "Observando",
|
||||||
|
@ -366,14 +370,13 @@
|
||||||
"ATTACHMENT": {
|
"ATTACHMENT": {
|
||||||
"SECTION_NAME": "anexos",
|
"SECTION_NAME": "anexos",
|
||||||
"TITLE": "{{ fileName }} enviado em {{ date }}",
|
"TITLE": "{{ fileName }} enviado em {{ date }}",
|
||||||
"LIST_VIEW_MODE": "List view mode",
|
"LIST_VIEW_MODE": "Modo de visualização lista",
|
||||||
"GALLERY_VIEW_MODE": "Gallery view mode",
|
"GALLERY_VIEW_MODE": "Modo de Visualização Galeria",
|
||||||
"DESCRIPTION": "Escreva uma curta descrição",
|
"DESCRIPTION": "Escreva uma curta descrição",
|
||||||
"DEPRECATED": "(obsoleto)",
|
"DEPRECATED": "(obsoleto)",
|
||||||
"DEPRECATED_FILE": "Obsoleto?",
|
"DEPRECATED_FILE": "Obsoleto?",
|
||||||
"ADD": "Adicionar novo anexo. {{maxFileSizeMsg}}",
|
"ADD": "Adicionar novo anexo. {{maxFileSizeMsg}}",
|
||||||
"DROP": "Jogue os anexos aqui!",
|
"DROP": "Jogue os anexos aqui!",
|
||||||
"MAX_FILE_SIZE": "[Tamanho Máximo: {{maxFileSize}}]",
|
|
||||||
"SHOW_DEPRECATED": "+ mostrar anexos deprecados",
|
"SHOW_DEPRECATED": "+ mostrar anexos deprecados",
|
||||||
"HIDE_DEPRECATED": "- esconder anexos obsoletos",
|
"HIDE_DEPRECATED": "- esconder anexos obsoletos",
|
||||||
"COUNT_DEPRECATED": "({{ counter }} deprecados)",
|
"COUNT_DEPRECATED": "({{ counter }} deprecados)",
|
||||||
|
@ -406,7 +409,9 @@
|
||||||
"TITLE": "Gerenciar Membros",
|
"TITLE": "Gerenciar Membros",
|
||||||
"PAGE_TITLE": "Filiados - {{projectName}}",
|
"PAGE_TITLE": "Filiados - {{projectName}}",
|
||||||
"ADD_BUTTON": "+ Novo Membro",
|
"ADD_BUTTON": "+ Novo Membro",
|
||||||
"ADD_BUTTON_TITLE": "Adicionar novo membro"
|
"ADD_BUTTON_TITLE": "Adicionar novo membro",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_ADMIN": "Unfortunately, this project has reached its limit of <strong>({{members}})</strong> allowed members.",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_OWNER": "This project has reached its limit of <strong>({{members}})</strong> allowed members. If you would like to increase that limit please contact the administrator."
|
||||||
},
|
},
|
||||||
"PROJECT_EXPORT": {
|
"PROJECT_EXPORT": {
|
||||||
"TITLE": "Exportar",
|
"TITLE": "Exportar",
|
||||||
|
@ -428,16 +433,20 @@
|
||||||
"DISABLE": "Desabilitar",
|
"DISABLE": "Desabilitar",
|
||||||
"BACKLOG": "Backlog",
|
"BACKLOG": "Backlog",
|
||||||
"BACKLOG_DESCRIPTION": "Gerencie suas user stories para manter uma visualização organizada de trabalhos futuros e priorizados.",
|
"BACKLOG_DESCRIPTION": "Gerencie suas user stories para manter uma visualização organizada de trabalhos futuros e priorizados.",
|
||||||
|
"NUMBER_SPRINTS": "Expected number of sprints",
|
||||||
|
"NUMBER_SPRINTS_HELP": "0 for an undetermined number",
|
||||||
|
"NUMBER_US_POINTS": "Expected total of story points",
|
||||||
|
"NUMBER_US_POINTS_HELP": "0 for an undetermined number",
|
||||||
"KANBAN": "Kanban",
|
"KANBAN": "Kanban",
|
||||||
"KANBAN_DESCRIPTION": "Organize seu projeto de um jeito \"lean\" com esse mural",
|
"KANBAN_DESCRIPTION": "Organize seu projeto de um jeito \"lean\" com esse mural",
|
||||||
"ISSUES": "Casos",
|
"ISSUES": "Problemas",
|
||||||
"ISSUES_DESCRIPTION": "Acompanhe os bugs, questões e melhorias relacionadas ao seu projeto. Não perca nada!",
|
"ISSUES_DESCRIPTION": "Acompanhe os bugs, questões e melhorias relacionadas ao seu projeto. Não perca nada!",
|
||||||
"WIKI": "Wiki",
|
"WIKI": "Wiki",
|
||||||
"WIKI_DESCRIPTION": "Adicione, modifique ou apague conteúdo em colaboração com outras pessoas. Este é o local certo pra documentação do seu projeto.",
|
"WIKI_DESCRIPTION": "Adicione, modifique ou apague conteúdo em colaboração com outras pessoas. Este é o local certo pra documentação do seu projeto.",
|
||||||
"MEETUP": "Reunião",
|
"MEETUP": "Reunião",
|
||||||
"MEETUP_DESCRIPTION": "Escolha seu sistema de vídeo conferência. Até desenvolvedores precisam de contato cara a cara.",
|
"MEETUP_DESCRIPTION": "Choose your videoconference system.",
|
||||||
"SELECT_VIDEOCONFERENCE": "Selecione um sistema de video conferência",
|
"SELECT_VIDEOCONFERENCE": "Selecione um sistema de video conferência",
|
||||||
"SALT_CHAT_ROOM": "Se você quiser, pode acrescentar um 'salt code' para o nome da sala de bate-papo",
|
"SALT_CHAT_ROOM": "Add a prefix to the chatroom name",
|
||||||
"JITSI_CHAT_ROOM": "Jitsi",
|
"JITSI_CHAT_ROOM": "Jitsi",
|
||||||
"APPEARIN_CHAT_ROOM": "AppearIn",
|
"APPEARIN_CHAT_ROOM": "AppearIn",
|
||||||
"TALKY_CHAT_ROOM": "Talky",
|
"TALKY_CHAT_ROOM": "Talky",
|
||||||
|
@ -449,22 +458,31 @@
|
||||||
"PROJECT_DETAILS": "Detalhes do projeto",
|
"PROJECT_DETAILS": "Detalhes do projeto",
|
||||||
"PROJECT_NAME": "Nome do projeto",
|
"PROJECT_NAME": "Nome do projeto",
|
||||||
"PROJECT_SLUG": "Slug do projeto",
|
"PROJECT_SLUG": "Slug do projeto",
|
||||||
"NUMBER_SPRINTS": "Número de sprints (0 para uma quantidade indeterminada)",
|
|
||||||
"NUMBER_US_POINTS": "Número de pontos US (0 para uma quantidade indeterminada)",
|
|
||||||
"TAGS": "Tags",
|
"TAGS": "Tags",
|
||||||
"DESCRIPTION": "Descrição",
|
"DESCRIPTION": "Descrição",
|
||||||
"RECRUITING": "Is this project looking for people?",
|
"RECRUITING": "Este projeto esta a procura de colaboradores?",
|
||||||
"RECRUITING_MESSAGE": "O que você está procurando?",
|
"RECRUITING_MESSAGE": "O que você está procurando?",
|
||||||
"RECRUITING_PLACEHOLDER": "Define the profiles you are looking for",
|
"RECRUITING_PLACEHOLDER": "Defina o perfil que você procura?",
|
||||||
"PUBLIC_PROJECT": "Projeto Publico",
|
"PUBLIC_PROJECT": "Projeto Publico",
|
||||||
"PUBLIC_PROJECT_DESC": "Users will be able to find and view your project",
|
|
||||||
"PRIVATE_PROJECT": "Projeto Privado",
|
"PRIVATE_PROJECT": "Projeto Privado",
|
||||||
"PRIVATE_PROJECT_DESC": "Por padrão, esse projeto é escondido do público",
|
|
||||||
"PRIVATE_OR_PUBLIC": "Qual a diferença entre projeto público e privado?",
|
"PRIVATE_OR_PUBLIC": "Qual a diferença entre projeto público e privado?",
|
||||||
"DELETE": "Apagar este projeto",
|
"DELETE": "Apagar este projeto",
|
||||||
"LOGO_HELP": "A imagem deve ser na escala de 80x80px.",
|
"LOGO_HELP": "A imagem deve ser na escala de 80x80px.",
|
||||||
"CHANGE_LOGO": "Alterar logo",
|
"CHANGE_LOGO": "Alterar logo",
|
||||||
"ACTION_USE_DEFAULT_LOGO": "Usar imagem padrão"
|
"ACTION_USE_DEFAULT_LOGO": "Usar imagem padrão",
|
||||||
|
"MAX_PRIVATE_PROJECTS": "You've reached the maximum number of private projects allowed by your current plan",
|
||||||
|
"MAX_PRIVATE_PROJECTS_MEMBERS": "The maximum number of members for private projects has been exceeded",
|
||||||
|
"MAX_PUBLIC_PROJECTS": "Unfortunately, you've reached the maximum number of public projects allowed by your current plan",
|
||||||
|
"MAX_PUBLIC_PROJECTS_MEMBERS": "The project exceeds your maximum number of members for public projects",
|
||||||
|
"PROJECT_OWNER": "Project owner",
|
||||||
|
"REQUEST_OWNERSHIP": "Request ownership",
|
||||||
|
"REQUEST_OWNERSHIP_CONFIRMATION_TITLE": "Do you want to become the new project owner?",
|
||||||
|
"REQUEST_OWNERSHIP_DESC": "Request that current project owner {{name}} transfer ownership of this project to you.",
|
||||||
|
"REQUEST_OWNERSHIP_BUTTON": "Solicitação",
|
||||||
|
"REQUEST_OWNERSHIP_SUCCESS": "We'll notify the project owner",
|
||||||
|
"CHANGE_OWNER": "Change owner",
|
||||||
|
"CHANGE_OWNER_SUCCESS_TITLE": "Ok, your request has been sent!",
|
||||||
|
"CHANGE_OWNER_SUCCESS_DESC": "We will notify you by email if the project ownership request is accepted or declined"
|
||||||
},
|
},
|
||||||
"REPORTS": {
|
"REPORTS": {
|
||||||
"TITLE": "Relatórios",
|
"TITLE": "Relatórios",
|
||||||
|
@ -477,7 +495,7 @@
|
||||||
"CSV": {
|
"CSV": {
|
||||||
"SECTION_TITLE_US": "Relatórios de user stories",
|
"SECTION_TITLE_US": "Relatórios de user stories",
|
||||||
"SECTION_TITLE_TASK": "relatórios de tarefas",
|
"SECTION_TITLE_TASK": "relatórios de tarefas",
|
||||||
"SECTION_TITLE_ISSUE": "relatórios de casos",
|
"SECTION_TITLE_ISSUE": "relatórios de problemas",
|
||||||
"DOWNLOAD": "Baixar CSV",
|
"DOWNLOAD": "Baixar CSV",
|
||||||
"URL_FIELD_PLACEHOLDER": "Por favor, gere novamente a url do CSV",
|
"URL_FIELD_PLACEHOLDER": "Por favor, gere novamente a url do CSV",
|
||||||
"TITLE_REGENERATE_URL": "Regerar URL CSV",
|
"TITLE_REGENERATE_URL": "Regerar URL CSV",
|
||||||
|
@ -486,16 +504,17 @@
|
||||||
},
|
},
|
||||||
"CUSTOM_FIELDS": {
|
"CUSTOM_FIELDS": {
|
||||||
"TITLE": "Campos Personalizados",
|
"TITLE": "Campos Personalizados",
|
||||||
"SUBTITLE": "Especificar campos personalizados para user stories, tarefas e casos",
|
"SUBTITLE": "Especificar campos personalizados para estórias, tarefas e problemas",
|
||||||
"US_DESCRIPTION": "Campos personalizados das user stories",
|
"US_DESCRIPTION": "Campos personalizados das user stories",
|
||||||
"US_ADD": "Adicionar campo personalizado nas user stories",
|
"US_ADD": "Adicionar campo personalizado nas user stories",
|
||||||
"TASK_DESCRIPTION": "Campos personalizados das Tarefas\n",
|
"TASK_DESCRIPTION": "Campos personalizados das Tarefas\n",
|
||||||
"TASK_ADD": "Adicionar campos personalizados na tarefa",
|
"TASK_ADD": "Adicionar campos personalizados na tarefa",
|
||||||
"ISSUE_DESCRIPTION": "Campos personalizados dos casos",
|
"ISSUE_DESCRIPTION": "Campos personalizados dos problemas",
|
||||||
"ISSUE_ADD": "Adicionar um campo personalizado no caso",
|
"ISSUE_ADD": "Adicionar um campo personalizado no problema",
|
||||||
"FIELD_TYPE_TEXT": "Texto",
|
"FIELD_TYPE_TEXT": "Texto",
|
||||||
"FIELD_TYPE_MULTI": "Multi-linha",
|
"FIELD_TYPE_MULTI": "Multi-linha",
|
||||||
"FIELD_TYPE_DATE": "Data"
|
"FIELD_TYPE_DATE": "Data",
|
||||||
|
"FIELD_TYPE_URL": "Url"
|
||||||
},
|
},
|
||||||
"PROJECT_VALUES": {
|
"PROJECT_VALUES": {
|
||||||
"PAGE_TITLE": "{{sectionName}} - Valores do projeto - {{projectName}}",
|
"PAGE_TITLE": "{{sectionName}} - Valores do projeto - {{projectName}}",
|
||||||
|
@ -510,26 +529,26 @@
|
||||||
},
|
},
|
||||||
"PROJECT_VALUES_PRIORITIES": {
|
"PROJECT_VALUES_PRIORITIES": {
|
||||||
"TITLE": "Prioridades",
|
"TITLE": "Prioridades",
|
||||||
"SUBTITLE": "Especifique as prioridades que seus casos terão",
|
"SUBTITLE": "Especifique as prioridades que seus problemas terão",
|
||||||
"ISSUE_TITLE": "Prioridades do caso",
|
"ISSUE_TITLE": "Prioridades do problema",
|
||||||
"ACTION_ADD": "Adicionar nova prioridade"
|
"ACTION_ADD": "Adicionar nova prioridade"
|
||||||
},
|
},
|
||||||
"PROJECT_VALUES_SEVERITIES": {
|
"PROJECT_VALUES_SEVERITIES": {
|
||||||
"TITLE": "Seriedades",
|
"TITLE": "Seriedades",
|
||||||
"SUBTITLE": "Especifique a severidade que seus casos terão",
|
"SUBTITLE": "Especifique as severidades que seus problemas terão",
|
||||||
"ISSUE_TITLE": "Seriedades do caso",
|
"ISSUE_TITLE": "Seriedades do problema",
|
||||||
"ACTION_ADD": "Adicionar nova severidade"
|
"ACTION_ADD": "Adicionar nova severidade"
|
||||||
},
|
},
|
||||||
"PROJECT_VALUES_STATUS": {
|
"PROJECT_VALUES_STATUS": {
|
||||||
"TITLE": "Situação",
|
"TITLE": "Situação",
|
||||||
"SUBTITLE": "Especifique os status pelos quais suas user stories, tarefas e casos passarão",
|
"SUBTITLE": "Especifique os status pelos quais suas estórias, tarefas e problemas passarão",
|
||||||
"US_TITLE": "Estados das Users Strories",
|
"US_TITLE": "Estados das Users Strories",
|
||||||
"TASK_TITLE": "Estados da tarefa",
|
"TASK_TITLE": "Estados da tarefa",
|
||||||
"ISSUE_TITLE": "Estados do caso"
|
"ISSUE_TITLE": "Estados do caso"
|
||||||
},
|
},
|
||||||
"PROJECT_VALUES_TYPES": {
|
"PROJECT_VALUES_TYPES": {
|
||||||
"TITLE": "Tipos",
|
"TITLE": "Tipos",
|
||||||
"SUBTITLE": "Especifique os tipos que seu caso pode ser",
|
"SUBTITLE": "Especifique os tipos que seu problema pode ser",
|
||||||
"ISSUE_TITLE": "Tipos de casos",
|
"ISSUE_TITLE": "Tipos de casos",
|
||||||
"ACTION_ADD": "Adicionar novo {{objName}}"
|
"ACTION_ADD": "Adicionar novo {{objName}}"
|
||||||
},
|
},
|
||||||
|
@ -543,7 +562,7 @@
|
||||||
"COUNT_MEMBERS": "{{ role.members_count }} membros com a mesma função",
|
"COUNT_MEMBERS": "{{ role.members_count }} membros com a mesma função",
|
||||||
"TITLE_DELETE_ROLE": "Apagar Função",
|
"TITLE_DELETE_ROLE": "Apagar Função",
|
||||||
"REPLACEMENT_ROLE": "Todos os usuários com essa função serão movidos para",
|
"REPLACEMENT_ROLE": "Todos os usuários com essa função serão movidos para",
|
||||||
"WARNING_DELETE_ROLE": "<strong>Seja cuidadoso, todas as estimativas para as funções serão removidas.</strong>",
|
"WARNING_DELETE_ROLE": "Be careful! All role estimations will be removed",
|
||||||
"ERROR_DELETE_ALL": "Você não pode apagar todos os valores",
|
"ERROR_DELETE_ALL": "Você não pode apagar todos os valores",
|
||||||
"EXTERNAL_USER": "Usuário externo"
|
"EXTERNAL_USER": "Usuário externo"
|
||||||
},
|
},
|
||||||
|
@ -671,6 +690,24 @@
|
||||||
},
|
},
|
||||||
"SUBMENU_THIDPARTIES": {
|
"SUBMENU_THIDPARTIES": {
|
||||||
"TITLE": "Serviços"
|
"TITLE": "Serviços"
|
||||||
|
},
|
||||||
|
"PROJECT_TRANSFER": {
|
||||||
|
"DO_YOU_ACCEPT_PROJECT_OWNERNSHIP": "Would you like to become the new project owner?",
|
||||||
|
"PRIVATE": "Private",
|
||||||
|
"ACCEPTED_PROJECT_OWNERNSHIP": "Congratulations! You're now the new project owner.",
|
||||||
|
"REJECTED_PROJECT_OWNERNSHIP": "OK. We'll contact the current project owner",
|
||||||
|
"ACCEPT": "Aceitar",
|
||||||
|
"REJECT": "Reject",
|
||||||
|
"PROPOSE_OWNERSHIP": "<strong>{{owner}}</strong>, the current owner of the project <strong>{{project}}</strong> has asked that you become the new project owner.",
|
||||||
|
"ADD_COMMENT_QUESTION": "Would you like to send a question to the project owner?",
|
||||||
|
"ADD_COMMENT": "Would you like to add a comment for the project owner?",
|
||||||
|
"UNLIMITED_PROJECTS": "Unlimited",
|
||||||
|
"OWNER_MESSAGE": {
|
||||||
|
"PRIVATE": "Please remember that you can own up to <strong>{{maxProjects}}</strong> private projects. You currently own <strong>{{currentProjects}}</strong> private projects",
|
||||||
|
"PUBLIC": "Please remember that you can own up to <strong>{{maxProjects}}</strong> public projects. You currently own <strong>{{currentProjects}}</strong> public projects"
|
||||||
|
},
|
||||||
|
"CANT_BE_OWNED": "At the moment you cannot become an owner of a project of this type. If you would like to become the owner of this project, please contact the administrator so they change your account settings to enable project ownership.",
|
||||||
|
"CHANGE_MY_PLAN": "Change my plan"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"USER": {
|
"USER": {
|
||||||
|
@ -703,7 +740,7 @@
|
||||||
},
|
},
|
||||||
"PROFILE_SIDEBAR": {
|
"PROFILE_SIDEBAR": {
|
||||||
"TITLE": "Seu perfil",
|
"TITLE": "Seu perfil",
|
||||||
"DESCRIPTION": "People can see everything you do and what you are working on. Add a nice bio to give an enhanced version of your information.",
|
"DESCRIPTION": "As pessoas podem ver tudo que você faz e no que você está trabalhando. Adicione uma bela biografia para disponibilizar uma versão melhorada das sua informações.",
|
||||||
"ADD_INFO": "Editar biografia"
|
"ADD_INFO": "Editar biografia"
|
||||||
},
|
},
|
||||||
"PROFILE_FAVS": {
|
"PROFILE_FAVS": {
|
||||||
|
@ -716,7 +753,7 @@
|
||||||
"FILTER_TYPE_USER_STORIES_TITLES": "Mostrar apenas user stories",
|
"FILTER_TYPE_USER_STORIES_TITLES": "Mostrar apenas user stories",
|
||||||
"FILTER_TYPE_TASKS": "Tarefas",
|
"FILTER_TYPE_TASKS": "Tarefas",
|
||||||
"FILTER_TYPE_TASK_TITLES": "Mostrar apenas tarefas",
|
"FILTER_TYPE_TASK_TITLES": "Mostrar apenas tarefas",
|
||||||
"FILTER_TYPE_ISSUES": "Casos",
|
"FILTER_TYPE_ISSUES": "Problemas",
|
||||||
"FILTER_TYPE_ISSUES_TITLE": "mostrar apenas problemas",
|
"FILTER_TYPE_ISSUES_TITLE": "mostrar apenas problemas",
|
||||||
"EMPTY_TITLE": "Parece que não há nada para exibir aqui."
|
"EMPTY_TITLE": "Parece que não há nada para exibir aqui."
|
||||||
}
|
}
|
||||||
|
@ -727,10 +764,15 @@
|
||||||
"SECTION_PROJECTS": "Projetos",
|
"SECTION_PROJECTS": "Projetos",
|
||||||
"HELP": "Reordene seus projetos para colocar no topo os mais usados.<br/> Os 10 primeiros projetos aparecerão na lista de projetos da barra de navegação superior.",
|
"HELP": "Reordene seus projetos para colocar no topo os mais usados.<br/> Os 10 primeiros projetos aparecerão na lista de projetos da barra de navegação superior.",
|
||||||
"PRIVATE": "Projeto Privado",
|
"PRIVATE": "Projeto Privado",
|
||||||
"LOOKING_FOR_PEOPLE": "This project is looking for people",
|
"LOOKING_FOR_PEOPLE": "Este projeto esta a procura de colaboradores",
|
||||||
"FANS_COUNTER_TITLE": "{total, plural, um{um fã} outro{# fãs}}",
|
"FANS_COUNTER_TITLE": "{total, plural, um{um fã} outro{# fãs}}",
|
||||||
"WATCHERS_COUNTER_TITLE": "{total, plural, um{um observador} outro{#watchers}}",
|
"WATCHERS_COUNTER_TITLE": "{total, plural, um{um observador} outro{#watchers}}",
|
||||||
"MEMBERS_COUNTER_TITLE": "{total, plural, um{one member} outro{# members}}",
|
"MEMBERS_COUNTER_TITLE": "{total, plural, um{one member} outro{# members}}",
|
||||||
|
"BLOCKED_PROJECT": {
|
||||||
|
"BLOCKED": "Blocked project",
|
||||||
|
"THIS_PROJECT_IS_BLOCKED": "This project is temporarily blocked",
|
||||||
|
"TO_UNBLOCK_CONTACT_THE_ADMIN_STAFF": "In order to unblock your projects, contact the administrator."
|
||||||
|
},
|
||||||
"STATS": {
|
"STATS": {
|
||||||
"PROJECT": "projetos<br/> pontos",
|
"PROJECT": "projetos<br/> pontos",
|
||||||
"DEFINED": "pontos<br/> definidos",
|
"DEFINED": "pontos<br/> definidos",
|
||||||
|
@ -742,7 +784,7 @@
|
||||||
"TIMELINE": "Linha do Tempo",
|
"TIMELINE": "Linha do Tempo",
|
||||||
"BACKLOG": "Backlog",
|
"BACKLOG": "Backlog",
|
||||||
"KANBAN": "Kanban",
|
"KANBAN": "Kanban",
|
||||||
"ISSUES": "Casos",
|
"ISSUES": "Problemas",
|
||||||
"WIKI": "Wiki",
|
"WIKI": "Wiki",
|
||||||
"TEAM": "Time",
|
"TEAM": "Time",
|
||||||
"MEETUP": "Reunião",
|
"MEETUP": "Reunião",
|
||||||
|
@ -777,6 +819,7 @@
|
||||||
"CHANGE_PASSWORD": "Alterar senha",
|
"CHANGE_PASSWORD": "Alterar senha",
|
||||||
"DASHBOARD_TITLE": "Painel",
|
"DASHBOARD_TITLE": "Painel",
|
||||||
"DISCOVER_TITLE": "Descobrir projetos em destaques",
|
"DISCOVER_TITLE": "Descobrir projetos em destaques",
|
||||||
|
"NEW_ITEM": "Novo",
|
||||||
"DISCOVER": "Descubra",
|
"DISCOVER": "Descubra",
|
||||||
"ACTION_REORDER": "Seguro e arraste para ordenar"
|
"ACTION_REORDER": "Seguro e arraste para ordenar"
|
||||||
},
|
},
|
||||||
|
@ -791,7 +834,32 @@
|
||||||
"ERROR_TOO_MANY_REQUEST": "Desculpe, nossos Oompa Loompas estão muito ocupados neste instante. Tente novamente em alguns minutos.",
|
"ERROR_TOO_MANY_REQUEST": "Desculpe, nossos Oompa Loompas estão muito ocupados neste instante. Tente novamente em alguns minutos.",
|
||||||
"ERROR_MESSAGE": "Nossos Oompa Loompas tiveram alguns problemas ao importar seu arquivo de despejo: {{error_message}}",
|
"ERROR_MESSAGE": "Nossos Oompa Loompas tiveram alguns problemas ao importar seu arquivo de despejo: {{error_message}}",
|
||||||
"ERROR_MAX_SIZE_EXCEEDED": "'{{fileName}}' ({{fileSize}}) é muito pesado para nossos Oompa Loompas, tente algo menor que ({{maxFileSize}})",
|
"ERROR_MAX_SIZE_EXCEEDED": "'{{fileName}}' ({{fileSize}}) é muito pesado para nossos Oompa Loompas, tente algo menor que ({{maxFileSize}})",
|
||||||
"SYNC_SUCCESS": "Seu projeto foi importado com sucesso"
|
"SYNC_SUCCESS": "Seu projeto foi importado com sucesso",
|
||||||
|
"PROJECT_RESTRICTIONS": {
|
||||||
|
"PROJECT_MEMBERS_DESC": "The project you are trying to import has {{members}} members, unfortunately, your current plan allows for a maximum of {{max_memberships}} members per project. If you would like to increase that limit please contact the administrator.",
|
||||||
|
"PRIVATE_PROJECTS_SPACE": {
|
||||||
|
"TITLE": "Unfortunately, your current plan does not allow for additional private projects",
|
||||||
|
"DESC": "The project you are trying to import is private. Unfortunately, your current plan does not allow for additional private projects."
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_SPACE": {
|
||||||
|
"TITLE": "Unfortunately, your current plan does not allow for additional private projects",
|
||||||
|
"DESC": "The project you are trying to import is public. Unfortunately, your current plan does not allow additional public projects."
|
||||||
|
},
|
||||||
|
"PRIVATE_PROJECTS_MEMBERS": {
|
||||||
|
"TITLE": "Your current plan allows for a maximum of {{max_memberships}} members per private project"
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_MEMBERS": {
|
||||||
|
"TITLE": "Your current plan allows for a maximum of {{max_memberships}} members per public project."
|
||||||
|
},
|
||||||
|
"PRIVATE_PROJECTS_SPACE_MEMBERS": {
|
||||||
|
"TITLE": "Unfortunately your current plan doesn't allow additional private projects or an increase of more than {{max_memberships}} members per private project",
|
||||||
|
"DESC": "The project that you are trying to import is private and has {{members}} members."
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_SPACE_MEMBERS": {
|
||||||
|
"TITLE": "Unfortunately your current plan doesn't allow additional public projects or an increase of more than {{max_memberships}} members per public project",
|
||||||
|
"DESC": "The project that you are trying to import is public and has more than {{members}} members."
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"LIKE_BUTTON": {
|
"LIKE_BUTTON": {
|
||||||
"LIKE": "Curtir",
|
"LIKE": "Curtir",
|
||||||
|
@ -819,13 +887,16 @@
|
||||||
"DELETE_ACCOUNT": {
|
"DELETE_ACCOUNT": {
|
||||||
"SECTION_NAME": "Apagar conta no Taiga",
|
"SECTION_NAME": "Apagar conta no Taiga",
|
||||||
"CONFIRM": "Você tem certeza que quer apagar sua conta Taiga?",
|
"CONFIRM": "Você tem certeza que quer apagar sua conta Taiga?",
|
||||||
"SUBTITLE": "Nós vamos sentir sua falta! :-(",
|
"NEWSLETTER_LABEL_TEXT": "Eu não quero receber mais os informativos",
|
||||||
"NEWSLETTER_LABEL_TEXT": "Eu não quero receber mais os informativos"
|
"CANCEL": "Back to settings",
|
||||||
|
"ACCEPT": "Delete account",
|
||||||
|
"BLOCK_PROJECT": "Note that all the projects you own projects will be <strong>blocked</strong> after you delete your account. If you do want a project blocked, transfer ownership to another member of each project prior to deleting your account.",
|
||||||
|
"SUBTITLE": "Sorry to see you go. We'll be here if you should ever consider us again! :("
|
||||||
},
|
},
|
||||||
"DELETE_PROJECT": {
|
"DELETE_PROJECT": {
|
||||||
"TITLE": "Apagar projeto",
|
"TITLE": "Apagar projeto",
|
||||||
"QUESTION": "Você tem certeza que quer apagar este projeto?",
|
"QUESTION": "Você tem certeza que quer apagar este projeto?",
|
||||||
"SUBTITLE": "Todas as informações do projeto (estórias de uso, tarefas, casos, sprints e páginas de wiki) serão perdidos! :-(",
|
"SUBTITLE": "Todas as informações do projeto (estórias, tarefas, problemas, sprints e páginas de wiki) serão perdidos! :-(",
|
||||||
"CONFIRM": "Sim, eu tenho certeza"
|
"CONFIRM": "Sim, eu tenho certeza"
|
||||||
},
|
},
|
||||||
"ASSIGNED_TO": {
|
"ASSIGNED_TO": {
|
||||||
|
@ -837,7 +908,7 @@
|
||||||
"HELP_TEXT": "Se os usuários já estiverem registrados no Taiga, eles serão adicionados automaticamente. Caso contrário, eles receberão um convite."
|
"HELP_TEXT": "Se os usuários já estiverem registrados no Taiga, eles serão adicionados automaticamente. Caso contrário, eles receberão um convite."
|
||||||
},
|
},
|
||||||
"CREATE_ISSUE": {
|
"CREATE_ISSUE": {
|
||||||
"TITLE": "Adicionar caso"
|
"TITLE": "Adicionar problema"
|
||||||
},
|
},
|
||||||
"FEEDBACK": {
|
"FEEDBACK": {
|
||||||
"TITLE": "Diga-nos algo...",
|
"TITLE": "Diga-nos algo...",
|
||||||
|
@ -850,10 +921,10 @@
|
||||||
},
|
},
|
||||||
"ADD_EDIT_SPRINT": {
|
"ADD_EDIT_SPRINT": {
|
||||||
"TITLE": "Novo Sprint",
|
"TITLE": "Novo Sprint",
|
||||||
"PLACEHOLDER_SPRINT_NAME": "nome do Sprint",
|
"PLACEHOLDER_SPRINT_NAME": "nome do sprint",
|
||||||
"PLACEHOLDER_SPRINT_START": "Inicio Estimado",
|
"PLACEHOLDER_SPRINT_START": "Inicio Estimado",
|
||||||
"PLACEHOLDER_SPRINT_END": "Estimativa de Termino",
|
"PLACEHOLDER_SPRINT_END": "Estimativa de Termino",
|
||||||
"ACTION_DELETE_SPRINT": "Você quer apagar este Sprint?",
|
"ACTION_DELETE_SPRINT": "Você quer apagar este sprint?",
|
||||||
"TITLE_ACTION_DELETE_SPRINT": "apagar sprint",
|
"TITLE_ACTION_DELETE_SPRINT": "apagar sprint",
|
||||||
"LAST_SPRINT_NAME": "último sprint é <strong>{{lastSprint}} ;-) </strong>"
|
"LAST_SPRINT_NAME": "último sprint é <strong>{{lastSprint}} ;-) </strong>"
|
||||||
},
|
},
|
||||||
|
@ -872,11 +943,29 @@
|
||||||
"EDIT_US": "Editar user story"
|
"EDIT_US": "Editar user story"
|
||||||
},
|
},
|
||||||
"DELETE_SPRINT": {
|
"DELETE_SPRINT": {
|
||||||
"TITLE": "Apagar Sprint"
|
"TITLE": "Apagar sprint"
|
||||||
},
|
},
|
||||||
"CREATE_MEMBER": {
|
"CREATE_MEMBER": {
|
||||||
"PLACEHOLDER_INVITATION_TEXT": "(Opcional) Adicione uma mensagem de texto ao convite. Diga algo animador para os novos membros ;-)",
|
"PLACEHOLDER_INVITATION_TEXT": "(Opcional) Adicione uma mensagem de texto ao convite. Diga algo animador para os novos membros ;-)",
|
||||||
"PLACEHOLDER_TYPE_EMAIL": "Digite um Email"
|
"PLACEHOLDER_TYPE_EMAIL": "Digite um Email",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_OWNER": "Unfortunately, this project can't have more than <strong>{{maxMembers}}</strong> members.<br> If you would like to increase the current limit, please contact the administrator.",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE": "Unfortunately, this project can't have more than <strong>{{maxMembers}}</strong> members."
|
||||||
|
},
|
||||||
|
"LEAVE_PROJECT_WARNING": {
|
||||||
|
"TITLE": "Unfortunately, this project can't be left without an owner",
|
||||||
|
"CURRENT_USER_OWNER": {
|
||||||
|
"DESC": "You are the current owner of this project. Before leaving, please transfer ownership to someone else.",
|
||||||
|
"BUTTON": "Change the project owner"
|
||||||
|
},
|
||||||
|
"OTHER_USER_OWNER": {
|
||||||
|
"DESC": "Unfortunately, you can't delete a member who is also the current project owner. First, please assign a new project owner.",
|
||||||
|
"BUTTON": "Request project owner change"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"CHANGE_OWNER": {
|
||||||
|
"TITLE": "Who do you want to be the new project owner?",
|
||||||
|
"ADD_COMMENT": "Add comment",
|
||||||
|
"BUTTON": "Ask this project member to become the new project owner"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"US": {
|
"US": {
|
||||||
|
@ -888,8 +977,8 @@
|
||||||
"TOTAL_POINTS": "total de pontos",
|
"TOTAL_POINTS": "total de pontos",
|
||||||
"ADD": "+ Adicionar uma nova User Story",
|
"ADD": "+ Adicionar uma nova User Story",
|
||||||
"ADD_BULK": "Adicionar User Stories em lote",
|
"ADD_BULK": "Adicionar User Stories em lote",
|
||||||
"PROMOTED": "Esta estória de uso foi promovida do caso:",
|
"PROMOTED": "Esta estória de uso foi promovida do problema:",
|
||||||
"TITLE_LINK_GO_TO_ISSUE": "Ir para caso",
|
"TITLE_LINK_GO_TO_ISSUE": "Ir para problema",
|
||||||
"EXTERNAL_REFERENCE": "Esta EU foi criada de",
|
"EXTERNAL_REFERENCE": "Esta EU foi criada de",
|
||||||
"GO_TO_EXTERNAL_REFERENCE": "Ir para a origem",
|
"GO_TO_EXTERNAL_REFERENCE": "Ir para a origem",
|
||||||
"BLOCKED": "Esta user story está bloqueada",
|
"BLOCKED": "Esta user story está bloqueada",
|
||||||
|
@ -914,7 +1003,7 @@
|
||||||
"TYPE_NEW_COMMENT": "Escreva um novo comentário aqui",
|
"TYPE_NEW_COMMENT": "Escreva um novo comentário aqui",
|
||||||
"SHOW_DELETED": "Mostrar comentários apagados",
|
"SHOW_DELETED": "Mostrar comentários apagados",
|
||||||
"HIDE_DELETED": "Esconder comentário apagado",
|
"HIDE_DELETED": "Esconder comentário apagado",
|
||||||
"DELETE": "Delete comment",
|
"DELETE": "Apagar comentário",
|
||||||
"RESTORE": "Restaurar comentário"
|
"RESTORE": "Restaurar comentário"
|
||||||
},
|
},
|
||||||
"ACTIVITY": {
|
"ACTIVITY": {
|
||||||
|
@ -977,8 +1066,8 @@
|
||||||
"CUSTOMIZE_GRAPH_TEXT": "To have a nice graph that helps you follow the evolution of the project you have to set up the points and sprints through the",
|
"CUSTOMIZE_GRAPH_TEXT": "To have a nice graph that helps you follow the evolution of the project you have to set up the points and sprints through the",
|
||||||
"CUSTOMIZE_GRAPH_ADMIN": "Administrador",
|
"CUSTOMIZE_GRAPH_ADMIN": "Administrador",
|
||||||
"CUSTOMIZE_GRAPH_TITLE": "Configure os pontos e sprints pelo Administrador",
|
"CUSTOMIZE_GRAPH_TITLE": "Configure os pontos e sprints pelo Administrador",
|
||||||
"MOVE_US_TO_CURRENT_SPRINT": "Mover para Sprint Corrente",
|
"MOVE_US_TO_CURRENT_SPRINT": "Mover para sprint corrente",
|
||||||
"MOVE_US_TO_LATEST_SPRINT": "ir para o último Sprint",
|
"MOVE_US_TO_LATEST_SPRINT": "ir para o último sprint",
|
||||||
"SHOW_FILTERS": "Mostrar filtros",
|
"SHOW_FILTERS": "Mostrar filtros",
|
||||||
"SHOW_TAGS": "Exibir tags",
|
"SHOW_TAGS": "Exibir tags",
|
||||||
"EMPTY": "O backlog está vazio!",
|
"EMPTY": "O backlog está vazio!",
|
||||||
|
@ -989,7 +1078,7 @@
|
||||||
"CLOSED_POINTS": "fechado",
|
"CLOSED_POINTS": "fechado",
|
||||||
"COMPACT_SPRINT": "Sprint Resumido",
|
"COMPACT_SPRINT": "Sprint Resumido",
|
||||||
"GO_TO_TASKBOARD": "Ir ao quadro de tarefas de {{::name}}",
|
"GO_TO_TASKBOARD": "Ir ao quadro de tarefas de {{::name}}",
|
||||||
"EDIT_SPRINT": "Editar Sprint",
|
"EDIT_SPRINT": "Editar sprint",
|
||||||
"TOTAL_POINTS": "total",
|
"TOTAL_POINTS": "total",
|
||||||
"STATUS_NAME": "Nome de Situação",
|
"STATUS_NAME": "Nome de Situação",
|
||||||
"SORTABLE_FILTER_ERROR": "Você não pode jogar sobre o backlog quando filtros estão abertos",
|
"SORTABLE_FILTER_ERROR": "Você não pode jogar sobre o backlog quando filtros estão abertos",
|
||||||
|
@ -998,9 +1087,9 @@
|
||||||
"XAXIS_LABEL": "Sprintes",
|
"XAXIS_LABEL": "Sprintes",
|
||||||
"YAXIS_LABEL": "Pontos",
|
"YAXIS_LABEL": "Pontos",
|
||||||
"OPTIMAL": "Ideal de pontos pendentes para o sprint \"{{sprintName}}\" deve ser {{value}}",
|
"OPTIMAL": "Ideal de pontos pendentes para o sprint \"{{sprintName}}\" deve ser {{value}}",
|
||||||
"REAL": "Real pending points for sprint \"{{sprintName}}\" is {{value}}",
|
"REAL": "Pontos realmente pendentes para o sprint \"{{sprintName}}\" é {{value}}",
|
||||||
"INCREMENT_TEAM": "Pontos incrementados pelos requerimentos do time para o sprint \"{{sprintName}}\" é {{value}}",
|
"INCREMENT_TEAM": "Pontos incrementados pelos requisitos do time para o sprint \"{{sprintName}}\" é {{value}}",
|
||||||
"INCREMENT_CLIENT": "Pontos incrementados pelos requerimentos do cliente para o sprint \"{{sprintName}}\" é {{value}}"
|
"INCREMENT_CLIENT": "Pontos incrementados pelos requisitos do cliente para o sprint \"{{sprintName}}\" é {{value}}"
|
||||||
},
|
},
|
||||||
"TAGS": {
|
"TAGS": {
|
||||||
"TOGGLE": "Alternar visibilidade das tags",
|
"TOGGLE": "Alternar visibilidade das tags",
|
||||||
|
@ -1014,7 +1103,7 @@
|
||||||
"SPRINT_SUMMARY": {
|
"SPRINT_SUMMARY": {
|
||||||
"TOTAL_POINTS": "pontos<br />totais",
|
"TOTAL_POINTS": "pontos<br />totais",
|
||||||
"COMPLETED_POINTS": "pontos <br />completados",
|
"COMPLETED_POINTS": "pontos <br />completados",
|
||||||
"OPEN_TASKS": "tasks<br />abertas",
|
"OPEN_TASKS": "tarefas<br />abertas",
|
||||||
"CLOSED_TASKS": "tarefas<br />fechadas",
|
"CLOSED_TASKS": "tarefas<br />fechadas",
|
||||||
"IOCAINE_DOSES": "iocaine<br />doses",
|
"IOCAINE_DOSES": "iocaine<br />doses",
|
||||||
"SHOW_STATISTICS_TITLE": "Mostrar estatísticas",
|
"SHOW_STATISTICS_TITLE": "Mostrar estatísticas",
|
||||||
|
@ -1038,13 +1127,13 @@
|
||||||
"SPRINTS": {
|
"SPRINTS": {
|
||||||
"TITLE": "SPRINTS",
|
"TITLE": "SPRINTS",
|
||||||
"DATE": "DD MMM YYYY",
|
"DATE": "DD MMM YYYY",
|
||||||
"LINK_TASKBOARD": "Sprint quadro de tarefas",
|
"LINK_TASKBOARD": "Quadro de tarefas do sprint",
|
||||||
"TITLE_LINK_TASKBOARD": "ir para quadro de tarefas de \"{{name}}\"",
|
"TITLE_LINK_TASKBOARD": "ir para quadro de tarefas de \"{{name}}\"",
|
||||||
"NUMBER_SPRINTS": "<br/>sprints",
|
"NUMBER_SPRINTS": "<br/>sprints",
|
||||||
"EMPTY": "Ainda não temos sprints.",
|
"EMPTY": "Ainda não temos sprints.",
|
||||||
"WARNING_EMPTY_SPRINT_ANONYMOUS": "Esse sprint não tem Estórias",
|
"WARNING_EMPTY_SPRINT_ANONYMOUS": "Esse sprint não tem estórias de usuário",
|
||||||
"WARNING_EMPTY_SPRINT": "Solte aqui Estórias do seu backlog para iniciar uma nova sprint",
|
"WARNING_EMPTY_SPRINT": "Solte aqui estórias do seu backlog para iniciar uma nova sprint",
|
||||||
"TITLE_ACTION_NEW_SPRINT": "Add nova sprint",
|
"TITLE_ACTION_NEW_SPRINT": "Adicionar nova sprint",
|
||||||
"TEXT_ACTION_NEW_SPRINT": "Você poderá querer criar uma nova sprint em seu projeto",
|
"TEXT_ACTION_NEW_SPRINT": "Você poderá querer criar uma nova sprint em seu projeto",
|
||||||
"ACTION_SHOW_CLOSED_SPRINTS": "Mostre os sprints fechados",
|
"ACTION_SHOW_CLOSED_SPRINTS": "Mostre os sprints fechados",
|
||||||
"ACTION_HIDE_CLOSED_SPRINTS": "Esconder sprints fechados"
|
"ACTION_HIDE_CLOSED_SPRINTS": "Esconder sprints fechados"
|
||||||
|
@ -1134,9 +1223,9 @@
|
||||||
"SUCCESS": "Nossos Oompa Loompas atualizaram seu email"
|
"SUCCESS": "Nossos Oompa Loompas atualizaram seu email"
|
||||||
},
|
},
|
||||||
"ISSUES": {
|
"ISSUES": {
|
||||||
"PAGE_TITLE": "Casos - {{projectName}}",
|
"PAGE_TITLE": "Problemas - {{projectName}}",
|
||||||
"PAGE_DESCRIPTION": "O painel de casos do projeto {{projectName}}: {{projectDescription}}",
|
"PAGE_DESCRIPTION": "O painel de problemas do projeto {{projectName}}: {{projectDescription}}",
|
||||||
"LIST_SECTION_NAME": "Casos",
|
"LIST_SECTION_NAME": "Problemas",
|
||||||
"SECTION_NAME": "Detalhes do caso",
|
"SECTION_NAME": "Detalhes do caso",
|
||||||
"ACTION_NEW_ISSUE": "+ NOVO CASO",
|
"ACTION_NEW_ISSUE": "+ NOVO CASO",
|
||||||
"ACTION_PROMOTE_TO_US": "Promover para User Story",
|
"ACTION_PROMOTE_TO_US": "Promover para User Story",
|
||||||
|
@ -1201,7 +1290,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ISSUE": {
|
"ISSUE": {
|
||||||
"PAGE_TITLE": "{{issueSubject}} - caso {{issueRef}} - {{projectName}}",
|
"PAGE_TITLE": "{{issueSubject}} - problema {{issueRef}} - {{projectName}}",
|
||||||
"PAGE_DESCRIPTION": "Estado: {{issueStatus }}. Tipo: {{issueType}}, Prioridade: {{issuePriority}}. severidade: {{issueSeverity}}. Descrição: {{issueDescription}}"
|
"PAGE_DESCRIPTION": "Estado: {{issueStatus }}. Tipo: {{issueType}}, Prioridade: {{issuePriority}}. severidade: {{issueSeverity}}. Descrição: {{issueDescription}}"
|
||||||
},
|
},
|
||||||
"KANBAN": {
|
"KANBAN": {
|
||||||
|
@ -1304,12 +1393,18 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"WIZARD": {
|
"WIZARD": {
|
||||||
"SECTION_TITLE_CHOOSE_TEMPLATE": "Escolher um template",
|
|
||||||
"CHOOSE_TEMPLATE_TEXT": "Qual template se encaixa melhor no seu projeto?",
|
|
||||||
"SECTION_TITLE_CREATE_PROJECT": "Criar Projeto",
|
"SECTION_TITLE_CREATE_PROJECT": "Criar Projeto",
|
||||||
"CREATE_PROJECT_TEXT": "Novo em folha. Tão excitante!",
|
"CREATE_PROJECT_TEXT": "Novo em folha. Tão excitante!",
|
||||||
"PROGRESS_TEMPLATE_SELECTION": "Seleção de tipo de projeto",
|
"CHOOSE_TEMPLATE": "Which template fits your project best?",
|
||||||
"PROGRESS_NAME_DESCRIPTION": "Nome e descrição"
|
"CHOOSE_TEMPLATE_TITLE": "More info about project templates",
|
||||||
|
"CHOOSE_TEMPLATE_INFO": "More info",
|
||||||
|
"PROJECT_DETAILS": "Project Details",
|
||||||
|
"PUBLIC_PROJECT": "Public Project",
|
||||||
|
"PRIVATE_PROJECT": "Private Project",
|
||||||
|
"CREATE_PROJECT": "Criar projeto",
|
||||||
|
"MAX_PRIVATE_PROJECTS": "You've reached the maximum number of private projects",
|
||||||
|
"MAX_PUBLIC_PROJECTS": "Unfortunately, you've reached the maximum number of public projects",
|
||||||
|
"CHANGE_PLANS": "change plans"
|
||||||
},
|
},
|
||||||
"WIKI": {
|
"WIKI": {
|
||||||
"PAGE_TITLE": "{{wikiPageName}} - Wiki - {{projectName}}",
|
"PAGE_TITLE": "{{wikiPageName}} - Wiki - {{projectName}}",
|
||||||
|
@ -1335,7 +1430,7 @@
|
||||||
"HINT1_TITLE": "Você sabia que você pode importar e exportar projetos?",
|
"HINT1_TITLE": "Você sabia que você pode importar e exportar projetos?",
|
||||||
"HINT1_TEXT": "Isso permite você extrair todo o seu conteúdo de um Taiga e mover para outro.",
|
"HINT1_TEXT": "Isso permite você extrair todo o seu conteúdo de um Taiga e mover para outro.",
|
||||||
"HINT2_TITLE": "Você sabia que pode criar campos personalizados?",
|
"HINT2_TITLE": "Você sabia que pode criar campos personalizados?",
|
||||||
"HINT2_TEXT": "Teams can now create custom fields as a flexible means to enter specific data useful for their particular workflow.",
|
"HINT2_TEXT": "Equipes agora podem personalizar campos, um jeito flexível de inserir dados específicos para uso em seu próprio fluxo de trabalho.",
|
||||||
"HINT3_TITLE": "Reorder your projects to feature those most relevant to you.",
|
"HINT3_TITLE": "Reorder your projects to feature those most relevant to you.",
|
||||||
"HINT3_TEXT": "The 10 projects are listed in the direct access bar at the top.",
|
"HINT3_TEXT": "The 10 projects are listed in the direct access bar at the top.",
|
||||||
"HINT4_TITLE": "Você esqueceu onde está trabalhando?",
|
"HINT4_TITLE": "Você esqueceu onde está trabalhando?",
|
||||||
|
@ -1365,12 +1460,12 @@
|
||||||
"NEW_COMMENT_ISSUE": "{{username}} comentou no issue {{obj_name}}",
|
"NEW_COMMENT_ISSUE": "{{username}} comentou no issue {{obj_name}}",
|
||||||
"NEW_COMMENT_TASK": "{{username}} comentou na tarefa {{obj_name}}",
|
"NEW_COMMENT_TASK": "{{username}} comentou na tarefa {{obj_name}}",
|
||||||
"NEW_MEMBER": "{{project_name}} tem um membro novo",
|
"NEW_MEMBER": "{{project_name}} tem um membro novo",
|
||||||
"US_ADDED_MILESTONE": "{{username}} adicionou a US {{obj_name}} a {{sprint_name}}",
|
"US_ADDED_MILESTONE": "{{username}} adicionou a estória {{obj_name}} a {{sprint_name}}",
|
||||||
"US_MOVED": "{{username}} moveu a US {{obj_name}}",
|
"US_MOVED": "{{username}} moveu a US {{obj_name}}",
|
||||||
"US_REMOVED_FROM_MILESTONE": "{{username}} adicionou a US {{obj_name}} ao backlog",
|
"US_REMOVED_FROM_MILESTONE": "{{username}} adicionou a US {{obj_name}} ao backlog",
|
||||||
"BLOCKED": "{{username}} bloqueou {{obj_name}}",
|
"BLOCKED": "{{username}} bloqueou {{obj_name}}",
|
||||||
"UNBLOCKED": "{{username}} desbloqueou {{obj_name}}",
|
"UNBLOCKED": "{{username}} desbloqueou {{obj_name}}",
|
||||||
"NEW_USER": "{{username}} ingressou no taiga"
|
"NEW_USER": "{{username}} ingressou no Taiga"
|
||||||
},
|
},
|
||||||
"LEGAL": {
|
"LEGAL": {
|
||||||
"TERMS_OF_SERVICE_AND_PRIVACY_POLICY_AD": "<span>When creating a new account, you agree to our <br /></span><a href=\"{{ termsOfServiceUrl }}\" title=\"See terms of service\" target=\"_blank\">terms of service</a><span> and </span><a href=\"{{ privacyPolicyUrl }}\" title=\"See privacy policy\" target=\"_blank\">privacy policy</a>."
|
"TERMS_OF_SERVICE_AND_PRIVACY_POLICY_AD": "<span>When creating a new account, you agree to our <br /></span><a href=\"{{ termsOfServiceUrl }}\" title=\"See terms of service\" target=\"_blank\">terms of service</a><span> and </span><a href=\"{{ privacyPolicyUrl }}\" title=\"See privacy policy\" target=\"_blank\">privacy policy</a>."
|
||||||
|
@ -1414,7 +1509,7 @@
|
||||||
"STEP1": {
|
"STEP1": {
|
||||||
"TITLE": "Sumário do projeto",
|
"TITLE": "Sumário do projeto",
|
||||||
"TEXT1": "Aqui você verá o estado do seu projeto",
|
"TEXT1": "Aqui você verá o estado do seu projeto",
|
||||||
"TEXT2": "You can change every kind of project settings through the admin."
|
"TEXT2": "Você pode alterar qualquer configuração do projeto no menu admin."
|
||||||
},
|
},
|
||||||
"STEP2": {
|
"STEP2": {
|
||||||
"TITLE": "Backlog do Produto",
|
"TITLE": "Backlog do Produto",
|
||||||
|
@ -1426,7 +1521,7 @@
|
||||||
},
|
},
|
||||||
"STEP4": {
|
"STEP4": {
|
||||||
"TITLE": "User Stories",
|
"TITLE": "User Stories",
|
||||||
"TEXT": "Those are the requirements at high level. You can add them to the backlog and drag them to the sprint in which it should be delivered."
|
"TEXT": "Estes são os requisitos em alto nível. Você pode adicioná-los ao backlog e arrastá-los ao sprint em que deve ser entregue. "
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"KANBAN": {
|
"KANBAN": {
|
||||||
|
@ -1455,7 +1550,7 @@
|
||||||
"MOST_LIKED": "Mais curtidas",
|
"MOST_LIKED": "Mais curtidas",
|
||||||
"MOST_LIKED_EMPTY": "Não existe projetos curtidos ainda",
|
"MOST_LIKED_EMPTY": "Não existe projetos curtidos ainda",
|
||||||
"VIEW_MORE": "Visualizar mais",
|
"VIEW_MORE": "Visualizar mais",
|
||||||
"RECRUITING": "This project is looking for people",
|
"RECRUITING": "Este projeto esta procurando colaboradores",
|
||||||
"FEATURED": "Featured Projects",
|
"FEATURED": "Featured Projects",
|
||||||
"EMPTY": "There are no projects to show with this search criteria.<br> Try again!",
|
"EMPTY": "There are no projects to show with this search criteria.<br> Try again!",
|
||||||
"FILTERS": {
|
"FILTERS": {
|
||||||
|
@ -1470,7 +1565,7 @@
|
||||||
"CLEAR": "Limpar filtros"
|
"CLEAR": "Limpar filtros"
|
||||||
},
|
},
|
||||||
"SEARCH": {
|
"SEARCH": {
|
||||||
"PAGE_TITLE": "Search - Discover projects - Taiga",
|
"PAGE_TITLE": "Procurar - Descobrir projetos - Taiga",
|
||||||
"PAGE_DESCRIPTION": "Searchable directory of Public Projects in Taiga. Explore backlogs, timelines, issues, and teams. Check out the most liked or most active projects. Filter by Kanban or Scrum.",
|
"PAGE_DESCRIPTION": "Searchable directory of Public Projects in Taiga. Explore backlogs, timelines, issues, and teams. Check out the most liked or most active projects. Filter by Kanban or Scrum.",
|
||||||
"INPUT_PLACEHOLDER": "Digite algo...",
|
"INPUT_PLACEHOLDER": "Digite algo...",
|
||||||
"ACTION_TITLE": "Procurar",
|
"ACTION_TITLE": "Procurar",
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
"COMMON": {
|
"COMMON": {
|
||||||
"YES": "Да",
|
"YES": "Да",
|
||||||
"NO": "Нет",
|
"NO": "Нет",
|
||||||
"OR": "or",
|
"OR": "или",
|
||||||
"LOADING": "Пожалуйста, подождите...",
|
"LOADING": "Пожалуйста, подождите...",
|
||||||
"LOADING_PROJECT": "Проект загружается...",
|
"LOADING_PROJECT": "Проект загружается...",
|
||||||
"DATE": "DD MMM YYYY",
|
"DATE": "DD MMM YYYY",
|
||||||
|
@ -19,11 +19,11 @@
|
||||||
"TAG_LINE": "Ваш свободный, agile инструмент управления проектами с открытым исходным кодом",
|
"TAG_LINE": "Ваш свободный, agile инструмент управления проектами с открытым исходным кодом",
|
||||||
"TAG_LINE_2": "Любит ваши проекты",
|
"TAG_LINE_2": "Любит ваши проекты",
|
||||||
"BLOCK": "Блокировать",
|
"BLOCK": "Блокировать",
|
||||||
"BLOCK_TITLE": "Block this item for example if it has a dependency that can not be satisfied",
|
"BLOCK_TITLE": "Заблокировать это, например, если имеются зависимости, которые не могут быть удовлетворены",
|
||||||
"BLOCKED": "Заблокирован",
|
"BLOCKED": "Заблокирован",
|
||||||
"UNBLOCK": "Разблокировать",
|
"UNBLOCK": "Разблокировать",
|
||||||
"UNBLOCK_TITLE": "Unblock this item",
|
"UNBLOCK_TITLE": "Разблокировать это",
|
||||||
"BLOCKED_NOTE": "Why is this blocked?",
|
"BLOCKED_NOTE": "Почему это заблокировано?",
|
||||||
"BLOCKED_REASON": "Пожалуйста разъясните причину",
|
"BLOCKED_REASON": "Пожалуйста разъясните причину",
|
||||||
"CREATED_BY": "Создано {{fullDisplayName}}",
|
"CREATED_BY": "Создано {{fullDisplayName}}",
|
||||||
"FROM": "от",
|
"FROM": "от",
|
||||||
|
@ -41,7 +41,8 @@
|
||||||
"IOCAINE_TEXT": "Чувствуете, что задание берет верх над вами? Дайте другим знать об этом, нажав на \"Иокаин\", когда редактируете задание. Возможно стать неуязвимым к этому (выдуманному) смертельном яду, потребляя небольшие количества время от времени, так же как возможно стать лучше в том, что вы делаете, временами беря на себя дополнительные препятствия!",
|
"IOCAINE_TEXT": "Чувствуете, что задание берет верх над вами? Дайте другим знать об этом, нажав на \"Иокаин\", когда редактируете задание. Возможно стать неуязвимым к этому (выдуманному) смертельном яду, потребляя небольшие количества время от времени, так же как возможно стать лучше в том, что вы делаете, временами беря на себя дополнительные препятствия!",
|
||||||
"CLIENT_REQUIREMENT": "Client requirement is new requirement that was not previously expected and it is required to be part of the project",
|
"CLIENT_REQUIREMENT": "Client requirement is new requirement that was not previously expected and it is required to be part of the project",
|
||||||
"TEAM_REQUIREMENT": "Team requirement is a requirement that must exist in the project but should have no cost for the client",
|
"TEAM_REQUIREMENT": "Team requirement is a requirement that must exist in the project but should have no cost for the client",
|
||||||
"CAPSLOCK_WARNING": "Будьте внимательны! Введённый текст состоит из заглавных букв, а регистр имеет значение.",
|
"OWNER": "Project Owner",
|
||||||
|
"CAPSLOCK_WARNING": "Be careful! You are using capital letters in an input field that is case sensitive.",
|
||||||
"FORM_ERRORS": {
|
"FORM_ERRORS": {
|
||||||
"DEFAULT_MESSAGE": "Кажется, это значение некорректно.",
|
"DEFAULT_MESSAGE": "Кажется, это значение некорректно.",
|
||||||
"TYPE_EMAIL": "Это значение должно быть корректным email-адресом.",
|
"TYPE_EMAIL": "Это значение должно быть корректным email-адресом.",
|
||||||
|
@ -65,7 +66,9 @@
|
||||||
"MIN_CHECK": "Вы должны выбрать хотя бы %s вариантов.",
|
"MIN_CHECK": "Вы должны выбрать хотя бы %s вариантов.",
|
||||||
"MAX_CHECK": "Вы должны выбрать %s вариантов или меньше.",
|
"MAX_CHECK": "Вы должны выбрать %s вариантов или меньше.",
|
||||||
"RANGE_CHECK": "Вы должны выбрать от %s до %s вариантов.",
|
"RANGE_CHECK": "Вы должны выбрать от %s до %s вариантов.",
|
||||||
"EQUAL_TO": "Это значение должно быть таким же."
|
"EQUAL_TO": "Это значение должно быть таким же.",
|
||||||
|
"LINEWIDTH": "One or more lines is perhaps too long. Try to keep under %s characters.",
|
||||||
|
"PIKADAY": "Invalid date format, please use DD MMM YYYY (like 23 Mar 1984)"
|
||||||
},
|
},
|
||||||
"PICKERDATE": {
|
"PICKERDATE": {
|
||||||
"FORMAT": "DD MMM YYYY",
|
"FORMAT": "DD MMM YYYY",
|
||||||
|
@ -144,13 +147,13 @@
|
||||||
},
|
},
|
||||||
"ASSIGNED_TO": {
|
"ASSIGNED_TO": {
|
||||||
"NOT_ASSIGNED": "Не назначен",
|
"NOT_ASSIGNED": "Не назначен",
|
||||||
"ASSIGN": "Assign",
|
"ASSIGN": "Назначить",
|
||||||
"DELETE_ASSIGNMENT": "Удалить назначение",
|
"DELETE_ASSIGNMENT": "Удалить назначение",
|
||||||
"REMOVE_ASSIGNED": "Удалить назначение",
|
"REMOVE_ASSIGNED": "Удалить назначение",
|
||||||
"TOO_MANY": "...слишком много пользователей, продолжайте фильтровать",
|
"TOO_MANY": "...слишком много пользователей, продолжайте фильтровать",
|
||||||
"CONFIRM_UNASSIGNED": "Вы уверены что не хотите назначить ответственного?",
|
"CONFIRM_UNASSIGNED": "Вы уверены что не хотите назначить ответственного?",
|
||||||
"TITLE_ACTION_EDIT_ASSIGNMENT": "Изменить назначение",
|
"TITLE_ACTION_EDIT_ASSIGNMENT": "Изменить назначение",
|
||||||
"SELF": "Assign to me"
|
"SELF": "Назначено мне"
|
||||||
},
|
},
|
||||||
"STATUS": {
|
"STATUS": {
|
||||||
"CLOSED": "Закрыт",
|
"CLOSED": "Закрыт",
|
||||||
|
@ -175,7 +178,7 @@
|
||||||
"UPVOTE": "Повысить",
|
"UPVOTE": "Повысить",
|
||||||
"UPVOTED": "Повышено",
|
"UPVOTED": "Повышено",
|
||||||
"DOWNVOTE": "Понизить",
|
"DOWNVOTE": "Понизить",
|
||||||
"VOTERS": "Voters",
|
"VOTERS": "Проголосовавшие",
|
||||||
"BUTTON_TITLE": "Повысить/понизить",
|
"BUTTON_TITLE": "Повысить/понизить",
|
||||||
"COUNTER_TITLE": "{total, plural, one{один голос} other{# голоса (-ов)}}"
|
"COUNTER_TITLE": "{total, plural, one{один голос} other{# голоса (-ов)}}"
|
||||||
},
|
},
|
||||||
|
@ -315,7 +318,8 @@
|
||||||
"PLACEHOLDER_FIELD": "Логин или e-mail",
|
"PLACEHOLDER_FIELD": "Логин или e-mail",
|
||||||
"ACTION_RESET_PASSWORD": "Сбросить пароль",
|
"ACTION_RESET_PASSWORD": "Сбросить пароль",
|
||||||
"LINK_CANCEL": "Не, давай назад, думаю я вспомню.",
|
"LINK_CANCEL": "Не, давай назад, думаю я вспомню.",
|
||||||
"SUCCESS": "<strong>Проверьте почту!</strong><br />Мы выслали Вам письмо с инструкцией по установке нового пароля",
|
"SUCCESS_TITLE": "Check your inbox!",
|
||||||
|
"SUCCESS_TEXT": "We sent you an email with the instructions to set a new password",
|
||||||
"ERROR": "Умпа-Лумпы говорят, что вы еще не зарегистрированы."
|
"ERROR": "Умпа-Лумпы говорят, что вы еще не зарегистрированы."
|
||||||
},
|
},
|
||||||
"CHANGE_PASSWORD": {
|
"CHANGE_PASSWORD": {
|
||||||
|
@ -352,11 +356,11 @@
|
||||||
"PAGE_TITLE": "Домашняя страница - Taiga",
|
"PAGE_TITLE": "Домашняя страница - Taiga",
|
||||||
"PAGE_DESCRIPTION": "Главная страница Taiga с вашими основными проектами, назначенными и отслеживаемыми ПИ, задачами и запросами",
|
"PAGE_DESCRIPTION": "Главная страница Taiga с вашими основными проектами, назначенными и отслеживаемыми ПИ, задачами и запросами",
|
||||||
"EMPTY_WORKING_ON": "<strong>Пустовато, не правда ли?</strong> Начните работать в Taiga - и тут появятся ПИ, задачи и запросы, над которыми вы работаете.",
|
"EMPTY_WORKING_ON": "<strong>Пустовато, не правда ли?</strong> Начните работать в Taiga - и тут появятся ПИ, задачи и запросы, над которыми вы работаете.",
|
||||||
"EMPTY_WATCHING": "<strong>Follow</strong> User Stories, Tasks, Issues in your projects and be notified about its changes :)",
|
"EMPTY_WATCHING": "<strong>Следите</strong> за пользовательскими историями, задачами, запросами в ваших проектах и будьте уведомлены об изменениях :)",
|
||||||
"EMPTY_PROJECT_LIST": "У Вас пока нет проектов",
|
"EMPTY_PROJECT_LIST": "У Вас пока нет проектов",
|
||||||
"WORKING_ON_SECTION": "Работает над",
|
"WORKING_ON_SECTION": "Работает над",
|
||||||
"WATCHING_SECTION": "Отслеживаемые",
|
"WATCHING_SECTION": "Отслеживаемые",
|
||||||
"DASHBOARD": "Projects Dashboard"
|
"DASHBOARD": "Рабочий стол с проектами"
|
||||||
},
|
},
|
||||||
"PROJECTS": {
|
"PROJECTS": {
|
||||||
"PAGE_TITLE": "Мои проекты",
|
"PAGE_TITLE": "Мои проекты",
|
||||||
|
@ -366,14 +370,13 @@
|
||||||
"ATTACHMENT": {
|
"ATTACHMENT": {
|
||||||
"SECTION_NAME": "Вложения",
|
"SECTION_NAME": "Вложения",
|
||||||
"TITLE": "{{ fileName }} загружен {{ date }}",
|
"TITLE": "{{ fileName }} загружен {{ date }}",
|
||||||
"LIST_VIEW_MODE": "List view mode",
|
"LIST_VIEW_MODE": "Режим \"список\"",
|
||||||
"GALLERY_VIEW_MODE": "Gallery view mode",
|
"GALLERY_VIEW_MODE": "Режим \"галерея\"",
|
||||||
"DESCRIPTION": "Введите краткое описание",
|
"DESCRIPTION": "Введите краткое описание",
|
||||||
"DEPRECATED": "(устаревший)",
|
"DEPRECATED": "(устаревший)",
|
||||||
"DEPRECATED_FILE": "Устаревший?",
|
"DEPRECATED_FILE": "Устаревший?",
|
||||||
"ADD": "Добавить вложение. {{maxFileSizeMsg}}",
|
"ADD": "Добавить вложение. {{maxFileSizeMsg}}",
|
||||||
"DROP": "Drop attachments here!",
|
"DROP": "Перетяните вложение сюда",
|
||||||
"MAX_FILE_SIZE": "[Макс. размер: {{maxFileSize}}]",
|
|
||||||
"SHOW_DEPRECATED": "Показать устаревшие приложения",
|
"SHOW_DEPRECATED": "Показать устаревшие приложения",
|
||||||
"HIDE_DEPRECATED": "- спрятать устаревшие приложения",
|
"HIDE_DEPRECATED": "- спрятать устаревшие приложения",
|
||||||
"COUNT_DEPRECATED": "({{ counter }} устарело)",
|
"COUNT_DEPRECATED": "({{ counter }} устарело)",
|
||||||
|
@ -406,7 +409,9 @@
|
||||||
"TITLE": "Управление участниками",
|
"TITLE": "Управление участниками",
|
||||||
"PAGE_TITLE": "Участие - {{projectName}}",
|
"PAGE_TITLE": "Участие - {{projectName}}",
|
||||||
"ADD_BUTTON": "+ Новый участник",
|
"ADD_BUTTON": "+ Новый участник",
|
||||||
"ADD_BUTTON_TITLE": "Добавить нового участника"
|
"ADD_BUTTON_TITLE": "Добавить нового участника",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_ADMIN": "Unfortunately, this project has reached its limit of <strong>({{members}})</strong> allowed members.",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_OWNER": "This project has reached its limit of <strong>({{members}})</strong> allowed members. If you would like to increase that limit please contact the administrator."
|
||||||
},
|
},
|
||||||
"PROJECT_EXPORT": {
|
"PROJECT_EXPORT": {
|
||||||
"TITLE": "Экспорт",
|
"TITLE": "Экспорт",
|
||||||
|
@ -428,6 +433,10 @@
|
||||||
"DISABLE": "Выключить",
|
"DISABLE": "Выключить",
|
||||||
"BACKLOG": "Список задач",
|
"BACKLOG": "Список задач",
|
||||||
"BACKLOG_DESCRIPTION": "Управляйте пользовательскими историями, чтобы поддерживать организованное видение важных и приоритетных задач.",
|
"BACKLOG_DESCRIPTION": "Управляйте пользовательскими историями, чтобы поддерживать организованное видение важных и приоритетных задач.",
|
||||||
|
"NUMBER_SPRINTS": "Expected number of sprints",
|
||||||
|
"NUMBER_SPRINTS_HELP": "0 for an undetermined number",
|
||||||
|
"NUMBER_US_POINTS": "Expected total of story points",
|
||||||
|
"NUMBER_US_POINTS_HELP": "0 for an undetermined number",
|
||||||
"KANBAN": "Kanban",
|
"KANBAN": "Kanban",
|
||||||
"KANBAN_DESCRIPTION": "Организуйте эффективную работу с проектом с помощью этой панели",
|
"KANBAN_DESCRIPTION": "Организуйте эффективную работу с проектом с помощью этой панели",
|
||||||
"ISSUES": "Запросы",
|
"ISSUES": "Запросы",
|
||||||
|
@ -435,9 +444,9 @@
|
||||||
"WIKI": "Вики",
|
"WIKI": "Вики",
|
||||||
"WIKI_DESCRIPTION": "Добавляйте, изменяйте или удаляйте контент совместно с остальными. Это самое правильное место для документации вашего проекта.",
|
"WIKI_DESCRIPTION": "Добавляйте, изменяйте или удаляйте контент совместно с остальными. Это самое правильное место для документации вашего проекта.",
|
||||||
"MEETUP": "Созвониться",
|
"MEETUP": "Созвониться",
|
||||||
"MEETUP_DESCRIPTION": "Выберите вашу систему для видеоконференций. Даже разработчикам нужны митинги \"лицом к лицу\"",
|
"MEETUP_DESCRIPTION": "Choose your videoconference system.",
|
||||||
"SELECT_VIDEOCONFERENCE": "Выберите систему видеоконференций",
|
"SELECT_VIDEOCONFERENCE": "Выберите систему видеоконференций",
|
||||||
"SALT_CHAT_ROOM": "Если хотите, можете добавить \"соль\" к имени чат-комнаты",
|
"SALT_CHAT_ROOM": "Add a prefix to the chatroom name",
|
||||||
"JITSI_CHAT_ROOM": "Jitsi",
|
"JITSI_CHAT_ROOM": "Jitsi",
|
||||||
"APPEARIN_CHAT_ROOM": "AppearIn",
|
"APPEARIN_CHAT_ROOM": "AppearIn",
|
||||||
"TALKY_CHAT_ROOM": "Talky",
|
"TALKY_CHAT_ROOM": "Talky",
|
||||||
|
@ -449,22 +458,31 @@
|
||||||
"PROJECT_DETAILS": "Детали проекта",
|
"PROJECT_DETAILS": "Детали проекта",
|
||||||
"PROJECT_NAME": "Название проекта",
|
"PROJECT_NAME": "Название проекта",
|
||||||
"PROJECT_SLUG": "Ссылочное имя проекта",
|
"PROJECT_SLUG": "Ссылочное имя проекта",
|
||||||
"NUMBER_SPRINTS": "Количество спринтов (0 - неопределенное количество)",
|
|
||||||
"NUMBER_US_POINTS": "Количество очков ПИ (0 - неопределенное количество)",
|
|
||||||
"TAGS": "Тэги",
|
"TAGS": "Тэги",
|
||||||
"DESCRIPTION": "Описание",
|
"DESCRIPTION": "Описание",
|
||||||
"RECRUITING": "Is this project looking for people?",
|
"RECRUITING": "Этот проект ищет людей?",
|
||||||
"RECRUITING_MESSAGE": "Who are you looking for?",
|
"RECRUITING_MESSAGE": "Кого вы ищете?",
|
||||||
"RECRUITING_PLACEHOLDER": "Define the profiles you are looking for",
|
"RECRUITING_PLACEHOLDER": "Уточните, какие профили вы ищете",
|
||||||
"PUBLIC_PROJECT": "Публичный проект",
|
"PUBLIC_PROJECT": "Публичный проект",
|
||||||
"PUBLIC_PROJECT_DESC": "Users will be able to find and view your project",
|
|
||||||
"PRIVATE_PROJECT": "Закрытый проект",
|
"PRIVATE_PROJECT": "Закрытый проект",
|
||||||
"PRIVATE_PROJECT_DESC": "By default, this project will be hidden to the public",
|
"PRIVATE_OR_PUBLIC": "В чём разница между публичными и приватными проектами?",
|
||||||
"PRIVATE_OR_PUBLIC": "What's the difference between public and private projects?",
|
|
||||||
"DELETE": "Удалить проект",
|
"DELETE": "Удалить проект",
|
||||||
"LOGO_HELP": "The image will be scaled to 80x80px.",
|
"LOGO_HELP": "Изображение будет отмасштабировано до 80x80px.",
|
||||||
"CHANGE_LOGO": "Change logo",
|
"CHANGE_LOGO": "Change logo",
|
||||||
"ACTION_USE_DEFAULT_LOGO": "Use default image"
|
"ACTION_USE_DEFAULT_LOGO": "Использовать картинку по умолчанию",
|
||||||
|
"MAX_PRIVATE_PROJECTS": "You've reached the maximum number of private projects allowed by your current plan",
|
||||||
|
"MAX_PRIVATE_PROJECTS_MEMBERS": "The maximum number of members for private projects has been exceeded",
|
||||||
|
"MAX_PUBLIC_PROJECTS": "Unfortunately, you've reached the maximum number of public projects allowed by your current plan",
|
||||||
|
"MAX_PUBLIC_PROJECTS_MEMBERS": "The project exceeds your maximum number of members for public projects",
|
||||||
|
"PROJECT_OWNER": "Project owner",
|
||||||
|
"REQUEST_OWNERSHIP": "Request ownership",
|
||||||
|
"REQUEST_OWNERSHIP_CONFIRMATION_TITLE": "Do you want to become the new project owner?",
|
||||||
|
"REQUEST_OWNERSHIP_DESC": "Request that current project owner {{name}} transfer ownership of this project to you.",
|
||||||
|
"REQUEST_OWNERSHIP_BUTTON": "Запрос",
|
||||||
|
"REQUEST_OWNERSHIP_SUCCESS": "We'll notify the project owner",
|
||||||
|
"CHANGE_OWNER": "Change owner",
|
||||||
|
"CHANGE_OWNER_SUCCESS_TITLE": "Ok, your request has been sent!",
|
||||||
|
"CHANGE_OWNER_SUCCESS_DESC": "We will notify you by email if the project ownership request is accepted or declined"
|
||||||
},
|
},
|
||||||
"REPORTS": {
|
"REPORTS": {
|
||||||
"TITLE": "Отчеты",
|
"TITLE": "Отчеты",
|
||||||
|
@ -495,7 +513,8 @@
|
||||||
"ISSUE_ADD": "Добавить специальное поле для запросов",
|
"ISSUE_ADD": "Добавить специальное поле для запросов",
|
||||||
"FIELD_TYPE_TEXT": "Текст",
|
"FIELD_TYPE_TEXT": "Текст",
|
||||||
"FIELD_TYPE_MULTI": "Многостроковое",
|
"FIELD_TYPE_MULTI": "Многостроковое",
|
||||||
"FIELD_TYPE_DATE": "Дата"
|
"FIELD_TYPE_DATE": "Дата",
|
||||||
|
"FIELD_TYPE_URL": "Url"
|
||||||
},
|
},
|
||||||
"PROJECT_VALUES": {
|
"PROJECT_VALUES": {
|
||||||
"PAGE_TITLE": "{{sectionName}} - Значения атрибутов проекта - {{projectName}}",
|
"PAGE_TITLE": "{{sectionName}} - Значения атрибутов проекта - {{projectName}}",
|
||||||
|
@ -539,11 +558,11 @@
|
||||||
"HELP_ROLE_ENABLED": "Когда включено, участники, назначенные на эту роль, смогут оценивать очки для пользовательских историй",
|
"HELP_ROLE_ENABLED": "Когда включено, участники, назначенные на эту роль, смогут оценивать очки для пользовательских историй",
|
||||||
"DISABLE_COMPUTABLE_ALERT_TITLE": "Отключить оценку очков для этой роли",
|
"DISABLE_COMPUTABLE_ALERT_TITLE": "Отключить оценку очков для этой роли",
|
||||||
"DISABLE_COMPUTABLE_ALERT_SUBTITLE": "If you disable estimation permissions for role {{roleName}} all previous estimations made by this role will be removed",
|
"DISABLE_COMPUTABLE_ALERT_SUBTITLE": "If you disable estimation permissions for role {{roleName}} all previous estimations made by this role will be removed",
|
||||||
"DISABLE_COMPUTABLE_ALERT_MESSAGE": "<strong>Are you sure you want to disable this role estimations?</strong>",
|
"DISABLE_COMPUTABLE_ALERT_MESSAGE": "<strong>Вы уверены, что хотите отключить оценку очков для этой роли?</strong>",
|
||||||
"COUNT_MEMBERS": "{{ role.members_count }} участников с этой ролью",
|
"COUNT_MEMBERS": "{{ role.members_count }} участников с этой ролью",
|
||||||
"TITLE_DELETE_ROLE": "Удалить Роль",
|
"TITLE_DELETE_ROLE": "Удалить Роль",
|
||||||
"REPLACEMENT_ROLE": "Все пользователи этой роли будут перемещены в",
|
"REPLACEMENT_ROLE": "Все пользователи этой роли будут перемещены в",
|
||||||
"WARNING_DELETE_ROLE": "<strong>Осторожнее, все оценки, связанные с этой будут удалены</strong>",
|
"WARNING_DELETE_ROLE": "Be careful! All role estimations will be removed",
|
||||||
"ERROR_DELETE_ALL": "Вы не можете удалить все значения",
|
"ERROR_DELETE_ALL": "Вы не можете удалить все значения",
|
||||||
"EXTERNAL_USER": "Внешний пользователь"
|
"EXTERNAL_USER": "Внешний пользователь"
|
||||||
},
|
},
|
||||||
|
@ -671,6 +690,24 @@
|
||||||
},
|
},
|
||||||
"SUBMENU_THIDPARTIES": {
|
"SUBMENU_THIDPARTIES": {
|
||||||
"TITLE": "Сервисы"
|
"TITLE": "Сервисы"
|
||||||
|
},
|
||||||
|
"PROJECT_TRANSFER": {
|
||||||
|
"DO_YOU_ACCEPT_PROJECT_OWNERNSHIP": "Would you like to become the new project owner?",
|
||||||
|
"PRIVATE": "Private",
|
||||||
|
"ACCEPTED_PROJECT_OWNERNSHIP": "Congratulations! You're now the new project owner.",
|
||||||
|
"REJECTED_PROJECT_OWNERNSHIP": "OK. We'll contact the current project owner",
|
||||||
|
"ACCEPT": "Принимаю",
|
||||||
|
"REJECT": "Reject",
|
||||||
|
"PROPOSE_OWNERSHIP": "<strong>{{owner}}</strong>, the current owner of the project <strong>{{project}}</strong> has asked that you become the new project owner.",
|
||||||
|
"ADD_COMMENT_QUESTION": "Would you like to send a question to the project owner?",
|
||||||
|
"ADD_COMMENT": "Would you like to add a comment for the project owner?",
|
||||||
|
"UNLIMITED_PROJECTS": "Unlimited",
|
||||||
|
"OWNER_MESSAGE": {
|
||||||
|
"PRIVATE": "Please remember that you can own up to <strong>{{maxProjects}}</strong> private projects. You currently own <strong>{{currentProjects}}</strong> private projects",
|
||||||
|
"PUBLIC": "Please remember that you can own up to <strong>{{maxProjects}}</strong> public projects. You currently own <strong>{{currentProjects}}</strong> public projects"
|
||||||
|
},
|
||||||
|
"CANT_BE_OWNED": "At the moment you cannot become an owner of a project of this type. If you would like to become the owner of this project, please contact the administrator so they change your account settings to enable project ownership.",
|
||||||
|
"CHANGE_MY_PLAN": "Change my plan"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"USER": {
|
"USER": {
|
||||||
|
@ -692,13 +729,13 @@
|
||||||
"PROJECTS_TAB": "Проекты",
|
"PROJECTS_TAB": "Проекты",
|
||||||
"PROJECTS_TAB_TITLE": "Список всех проектов, в которых участвует пользователь",
|
"PROJECTS_TAB_TITLE": "Список всех проектов, в которых участвует пользователь",
|
||||||
"LIKES_TAB": "Лайки",
|
"LIKES_TAB": "Лайки",
|
||||||
"LIKES_TAB_TITLE": "List all likes made by this user",
|
"LIKES_TAB_TITLE": "Список всех лайков, поставленных этим пользователем",
|
||||||
"VOTES_TAB": "Голоса",
|
"VOTES_TAB": "Голоса",
|
||||||
"VOTES_TAB_TITLE": "List all votes made by this user",
|
"VOTES_TAB_TITLE": "Список всех голосов, сделанных этим пользователем",
|
||||||
"WATCHED_TAB": "Просмотренные",
|
"WATCHED_TAB": "Просмотренные",
|
||||||
"WATCHED_TAB_TITLE": "Список всего, за чем наблюдает пользователь",
|
"WATCHED_TAB_TITLE": "Список всего, за чем наблюдает пользователь",
|
||||||
"CONTACTS_TAB": "Контакты",
|
"CONTACTS_TAB": "Контакты",
|
||||||
"CONTACTS_TAB_TITLE": "List all contacts made by this user"
|
"CONTACTS_TAB_TITLE": "Список всех контактов, созданных этим пользователем"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"PROFILE_SIDEBAR": {
|
"PROFILE_SIDEBAR": {
|
||||||
|
@ -727,10 +764,15 @@
|
||||||
"SECTION_PROJECTS": "Проекты",
|
"SECTION_PROJECTS": "Проекты",
|
||||||
"HELP": "Реорганизуйте свои проекты так чтобы часто используемые были бы наверху.<br/> Первые 10 проектов будут находится вверху списка проектов.",
|
"HELP": "Реорганизуйте свои проекты так чтобы часто используемые были бы наверху.<br/> Первые 10 проектов будут находится вверху списка проектов.",
|
||||||
"PRIVATE": "Закрытый проект",
|
"PRIVATE": "Закрытый проект",
|
||||||
"LOOKING_FOR_PEOPLE": "This project is looking for people",
|
"LOOKING_FOR_PEOPLE": "Этот проект ищет людей",
|
||||||
"FANS_COUNTER_TITLE": "{total, plural, one{один фанат} other{# фаната (-ов)}}",
|
"FANS_COUNTER_TITLE": "{total, plural, one{один фанат} other{# фаната (-ов)}}",
|
||||||
"WATCHERS_COUNTER_TITLE": "{total, plural, one{один наблюдатель} other{# наблюдателя (-ей)}}",
|
"WATCHERS_COUNTER_TITLE": "{total, plural, one{один наблюдатель} other{# наблюдателя (-ей)}}",
|
||||||
"MEMBERS_COUNTER_TITLE": "{total, plural, one{one member} other{# members}}",
|
"MEMBERS_COUNTER_TITLE": "{total, plural, one{one member} other{# members}}",
|
||||||
|
"BLOCKED_PROJECT": {
|
||||||
|
"BLOCKED": "Blocked project",
|
||||||
|
"THIS_PROJECT_IS_BLOCKED": "This project is temporarily blocked",
|
||||||
|
"TO_UNBLOCK_CONTACT_THE_ADMIN_STAFF": "In order to unblock your projects, contact the administrator."
|
||||||
|
},
|
||||||
"STATS": {
|
"STATS": {
|
||||||
"PROJECT": "проекта<br/> очки",
|
"PROJECT": "проекта<br/> очки",
|
||||||
"DEFINED": "заданные<br/> очки",
|
"DEFINED": "заданные<br/> очки",
|
||||||
|
@ -753,14 +795,14 @@
|
||||||
"PLACEHOLDER_SEARCH": "Искать в...",
|
"PLACEHOLDER_SEARCH": "Искать в...",
|
||||||
"ACTION_CREATE_PROJECT": "Создать проект",
|
"ACTION_CREATE_PROJECT": "Создать проект",
|
||||||
"ACTION_IMPORT_PROJECT": "Импортировать проект",
|
"ACTION_IMPORT_PROJECT": "Импортировать проект",
|
||||||
"MANAGE_PROJECTS": "Manage projects",
|
"MANAGE_PROJECTS": "Управлять проектами",
|
||||||
"TITLE_CREATE_PROJECT": "Создать проект",
|
"TITLE_CREATE_PROJECT": "Создать проект",
|
||||||
"TITLE_IMPORT_PROJECT": "Импортировать проект",
|
"TITLE_IMPORT_PROJECT": "Импортировать проект",
|
||||||
"TITLE_PRVIOUS_PROJECT": "Показать предыдущие проекты",
|
"TITLE_PRVIOUS_PROJECT": "Показать предыдущие проекты",
|
||||||
"TITLE_NEXT_PROJECT": "Показать следующие проекты",
|
"TITLE_NEXT_PROJECT": "Показать следующие проекты",
|
||||||
"HELP_TITLE": "Страница поддержки Taiga",
|
"HELP_TITLE": "Страница поддержки Taiga",
|
||||||
"HELP": "Помощь",
|
"HELP": "Помощь",
|
||||||
"HOMEPAGE": "Homepage",
|
"HOMEPAGE": "Домашняя страница",
|
||||||
"FEEDBACK_TITLE": "Оставить отзыв",
|
"FEEDBACK_TITLE": "Оставить отзыв",
|
||||||
"FEEDBACK": "Обратная связь",
|
"FEEDBACK": "Обратная связь",
|
||||||
"NOTIFICATIONS_TITLE": "Настроить уведомления",
|
"NOTIFICATIONS_TITLE": "Настроить уведомления",
|
||||||
|
@ -777,6 +819,7 @@
|
||||||
"CHANGE_PASSWORD": "Изменить пароль",
|
"CHANGE_PASSWORD": "Изменить пароль",
|
||||||
"DASHBOARD_TITLE": "Рабочий стол",
|
"DASHBOARD_TITLE": "Рабочий стол",
|
||||||
"DISCOVER_TITLE": "Найти проекты в тренде",
|
"DISCOVER_TITLE": "Найти проекты в тренде",
|
||||||
|
"NEW_ITEM": "Новая",
|
||||||
"DISCOVER": "Найти",
|
"DISCOVER": "Найти",
|
||||||
"ACTION_REORDER": "Можно перетаскивать мышкой"
|
"ACTION_REORDER": "Можно перетаскивать мышкой"
|
||||||
},
|
},
|
||||||
|
@ -791,7 +834,32 @@
|
||||||
"ERROR_TOO_MANY_REQUEST": "Извините, Oompa Loompas очень загружен сейчас. Повторите через несколько минут.",
|
"ERROR_TOO_MANY_REQUEST": "Извините, Oompa Loompas очень загружен сейчас. Повторите через несколько минут.",
|
||||||
"ERROR_MESSAGE": "У Oompa Loompas возникли проблемы при импорте резервной копии: {{error_message}}",
|
"ERROR_MESSAGE": "У Oompa Loompas возникли проблемы при импорте резервной копии: {{error_message}}",
|
||||||
"ERROR_MAX_SIZE_EXCEEDED": "'{{fileName}}' ({{fileSize}}) это слишком много для наших Умпа-Лумп, попробуйте еще раз с размером меньшим, чем ({{maxFileSize}})",
|
"ERROR_MAX_SIZE_EXCEEDED": "'{{fileName}}' ({{fileSize}}) это слишком много для наших Умпа-Лумп, попробуйте еще раз с размером меньшим, чем ({{maxFileSize}})",
|
||||||
"SYNC_SUCCESS": "Импорт проекта выполнен успешно"
|
"SYNC_SUCCESS": "Импорт проекта выполнен успешно",
|
||||||
|
"PROJECT_RESTRICTIONS": {
|
||||||
|
"PROJECT_MEMBERS_DESC": "The project you are trying to import has {{members}} members, unfortunately, your current plan allows for a maximum of {{max_memberships}} members per project. If you would like to increase that limit please contact the administrator.",
|
||||||
|
"PRIVATE_PROJECTS_SPACE": {
|
||||||
|
"TITLE": "Unfortunately, your current plan does not allow for additional private projects",
|
||||||
|
"DESC": "The project you are trying to import is private. Unfortunately, your current plan does not allow for additional private projects."
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_SPACE": {
|
||||||
|
"TITLE": "Unfortunately, your current plan does not allow for additional private projects",
|
||||||
|
"DESC": "The project you are trying to import is public. Unfortunately, your current plan does not allow additional public projects."
|
||||||
|
},
|
||||||
|
"PRIVATE_PROJECTS_MEMBERS": {
|
||||||
|
"TITLE": "Your current plan allows for a maximum of {{max_memberships}} members per private project"
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_MEMBERS": {
|
||||||
|
"TITLE": "Your current plan allows for a maximum of {{max_memberships}} members per public project."
|
||||||
|
},
|
||||||
|
"PRIVATE_PROJECTS_SPACE_MEMBERS": {
|
||||||
|
"TITLE": "Unfortunately your current plan doesn't allow additional private projects or an increase of more than {{max_memberships}} members per private project",
|
||||||
|
"DESC": "The project that you are trying to import is private and has {{members}} members."
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_SPACE_MEMBERS": {
|
||||||
|
"TITLE": "Unfortunately your current plan doesn't allow additional public projects or an increase of more than {{max_memberships}} members per public project",
|
||||||
|
"DESC": "The project that you are trying to import is public and has more than {{members}} members."
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"LIKE_BUTTON": {
|
"LIKE_BUTTON": {
|
||||||
"LIKE": "Мне нравится",
|
"LIKE": "Мне нравится",
|
||||||
|
@ -819,8 +887,11 @@
|
||||||
"DELETE_ACCOUNT": {
|
"DELETE_ACCOUNT": {
|
||||||
"SECTION_NAME": "Удалить аккаунт",
|
"SECTION_NAME": "Удалить аккаунт",
|
||||||
"CONFIRM": "Вы уверены, что хотите удалить ваш аккаунт?",
|
"CONFIRM": "Вы уверены, что хотите удалить ваш аккаунт?",
|
||||||
"SUBTITLE": "Мы будем скучать по вам! :-(",
|
"NEWSLETTER_LABEL_TEXT": "Я больше не хочу получать вашу новостную рассылку",
|
||||||
"NEWSLETTER_LABEL_TEXT": "Я больше не хочу получать вашу новостную рассылку"
|
"CANCEL": "Back to settings",
|
||||||
|
"ACCEPT": "Delete account",
|
||||||
|
"BLOCK_PROJECT": "Note that all the projects you own projects will be <strong>blocked</strong> after you delete your account. If you do want a project blocked, transfer ownership to another member of each project prior to deleting your account.",
|
||||||
|
"SUBTITLE": "Sorry to see you go. We'll be here if you should ever consider us again! :("
|
||||||
},
|
},
|
||||||
"DELETE_PROJECT": {
|
"DELETE_PROJECT": {
|
||||||
"TITLE": "Удалить проект",
|
"TITLE": "Удалить проект",
|
||||||
|
@ -876,7 +947,25 @@
|
||||||
},
|
},
|
||||||
"CREATE_MEMBER": {
|
"CREATE_MEMBER": {
|
||||||
"PLACEHOLDER_INVITATION_TEXT": "(Необязательно) Добавьте персональный текст в приглашение. Скажите что-нибудь приятное вашим новым участникам ;-)",
|
"PLACEHOLDER_INVITATION_TEXT": "(Необязательно) Добавьте персональный текст в приглашение. Скажите что-нибудь приятное вашим новым участникам ;-)",
|
||||||
"PLACEHOLDER_TYPE_EMAIL": "Укажите e-mail"
|
"PLACEHOLDER_TYPE_EMAIL": "Укажите e-mail",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_OWNER": "Unfortunately, this project can't have more than <strong>{{maxMembers}}</strong> members.<br> If you would like to increase the current limit, please contact the administrator.",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE": "Unfortunately, this project can't have more than <strong>{{maxMembers}}</strong> members."
|
||||||
|
},
|
||||||
|
"LEAVE_PROJECT_WARNING": {
|
||||||
|
"TITLE": "Unfortunately, this project can't be left without an owner",
|
||||||
|
"CURRENT_USER_OWNER": {
|
||||||
|
"DESC": "You are the current owner of this project. Before leaving, please transfer ownership to someone else.",
|
||||||
|
"BUTTON": "Change the project owner"
|
||||||
|
},
|
||||||
|
"OTHER_USER_OWNER": {
|
||||||
|
"DESC": "Unfortunately, you can't delete a member who is also the current project owner. First, please assign a new project owner.",
|
||||||
|
"BUTTON": "Request project owner change"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"CHANGE_OWNER": {
|
||||||
|
"TITLE": "Who do you want to be the new project owner?",
|
||||||
|
"ADD_COMMENT": "Add comment",
|
||||||
|
"BUTTON": "Ask this project member to become the new project owner"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"US": {
|
"US": {
|
||||||
|
@ -914,7 +1003,7 @@
|
||||||
"TYPE_NEW_COMMENT": "Добавить комментарий",
|
"TYPE_NEW_COMMENT": "Добавить комментарий",
|
||||||
"SHOW_DELETED": "Показать удаленный комментарий",
|
"SHOW_DELETED": "Показать удаленный комментарий",
|
||||||
"HIDE_DELETED": "Скрыть удаленный комментарий",
|
"HIDE_DELETED": "Скрыть удаленный комментарий",
|
||||||
"DELETE": "Delete comment",
|
"DELETE": "Удалить комментарий",
|
||||||
"RESTORE": "Показать удаленный комментарий"
|
"RESTORE": "Показать удаленный комментарий"
|
||||||
},
|
},
|
||||||
"ACTIVITY": {
|
"ACTIVITY": {
|
||||||
|
@ -973,12 +1062,12 @@
|
||||||
"PAGE_TITLE": "Список задач - {{projectName}}",
|
"PAGE_TITLE": "Список задач - {{projectName}}",
|
||||||
"PAGE_DESCRIPTION": "Список задач с пользовательскими историями и спринтами проекта {{projectName}}: {{projectDescription}}",
|
"PAGE_DESCRIPTION": "Список задач с пользовательскими историями и спринтами проекта {{projectName}}: {{projectDescription}}",
|
||||||
"SECTION_NAME": "Список задач",
|
"SECTION_NAME": "Список задач",
|
||||||
"CUSTOMIZE_GRAPH": "Customize your backlog graph",
|
"CUSTOMIZE_GRAPH": "Настроить граф вашего списка задач",
|
||||||
"CUSTOMIZE_GRAPH_TEXT": "To have a nice graph that helps you follow the evolution of the project you have to set up the points and sprints through the",
|
"CUSTOMIZE_GRAPH_TEXT": "To have a nice graph that helps you follow the evolution of the project you have to set up the points and sprints through the",
|
||||||
"CUSTOMIZE_GRAPH_ADMIN": "Админка",
|
"CUSTOMIZE_GRAPH_ADMIN": "Админка",
|
||||||
"CUSTOMIZE_GRAPH_TITLE": "Настройте очки и спринты в админке",
|
"CUSTOMIZE_GRAPH_TITLE": "Настройте очки и спринты в админке",
|
||||||
"MOVE_US_TO_CURRENT_SPRINT": "Перейти к текущему спринту",
|
"MOVE_US_TO_CURRENT_SPRINT": "Перейти к текущему спринту",
|
||||||
"MOVE_US_TO_LATEST_SPRINT": "Move to latest Sprint",
|
"MOVE_US_TO_LATEST_SPRINT": "Перейти к последнему спринту",
|
||||||
"SHOW_FILTERS": "Показать фильтры",
|
"SHOW_FILTERS": "Показать фильтры",
|
||||||
"SHOW_TAGS": "Показать теги",
|
"SHOW_TAGS": "Показать теги",
|
||||||
"EMPTY": "Список задач пуст!",
|
"EMPTY": "Список задач пуст!",
|
||||||
|
@ -1042,7 +1131,7 @@
|
||||||
"TITLE_LINK_TASKBOARD": "Перейти к Панели Задач \"{{name}}\"",
|
"TITLE_LINK_TASKBOARD": "Перейти к Панели Задач \"{{name}}\"",
|
||||||
"NUMBER_SPRINTS": "<br/>спринты",
|
"NUMBER_SPRINTS": "<br/>спринты",
|
||||||
"EMPTY": "Спринтов пока что нет",
|
"EMPTY": "Спринтов пока что нет",
|
||||||
"WARNING_EMPTY_SPRINT_ANONYMOUS": "This sprint has no User Stories",
|
"WARNING_EMPTY_SPRINT_ANONYMOUS": "У этого спринта нет пользовательских историй",
|
||||||
"WARNING_EMPTY_SPRINT": "Накидайте сюда ПИ из списка задач чтобы начать новый спринт",
|
"WARNING_EMPTY_SPRINT": "Накидайте сюда ПИ из списка задач чтобы начать новый спринт",
|
||||||
"TITLE_ACTION_NEW_SPRINT": "Добавить новый спринт",
|
"TITLE_ACTION_NEW_SPRINT": "Добавить новый спринт",
|
||||||
"TEXT_ACTION_NEW_SPRINT": "Вы можете создать новый спринт в проекте",
|
"TEXT_ACTION_NEW_SPRINT": "Вы можете создать новый спринт в проекте",
|
||||||
|
@ -1066,7 +1155,7 @@
|
||||||
"TITLE_ACTION_ADD_BULK": "Добавить новые задачи пакетно",
|
"TITLE_ACTION_ADD_BULK": "Добавить новые задачи пакетно",
|
||||||
"TITLE_ACTION_ASSIGN": "Назначить задачу",
|
"TITLE_ACTION_ASSIGN": "Назначить задачу",
|
||||||
"TITLE_ACTION_EDIT": "Редактировать задачу",
|
"TITLE_ACTION_EDIT": "Редактировать задачу",
|
||||||
"PLACEHOLDER_CARD_TITLE": "This could be a task",
|
"PLACEHOLDER_CARD_TITLE": "Это может быть задачей",
|
||||||
"PLACEHOLDER_CARD_TEXT": "Разделяйте ПИ в задачи чтобы отслеживать их по отдельности",
|
"PLACEHOLDER_CARD_TEXT": "Разделяйте ПИ в задачи чтобы отслеживать их по отдельности",
|
||||||
"TABLE": {
|
"TABLE": {
|
||||||
"COLUMN": "Пользовательская история",
|
"COLUMN": "Пользовательская история",
|
||||||
|
@ -1268,8 +1357,8 @@
|
||||||
"NOTIFICATIONS": {
|
"NOTIFICATIONS": {
|
||||||
"SECTION_NAME": "Уведомления почтой",
|
"SECTION_NAME": "Уведомления почтой",
|
||||||
"COLUMN_PROJECT": "Проект",
|
"COLUMN_PROJECT": "Проект",
|
||||||
"COLUMN_RECEIVE_ALL": "Получать Всё",
|
"COLUMN_RECEIVE_ALL": "Получать все",
|
||||||
"COLUMN_ONLY_INVOLVED": "Только задействованные",
|
"COLUMN_ONLY_INVOLVED": "Только вовлечённые",
|
||||||
"COLUMN_NO_NOTIFICATIONS": "Уведомлений нет",
|
"COLUMN_NO_NOTIFICATIONS": "Уведомлений нет",
|
||||||
"OPTION_ALL": "Все",
|
"OPTION_ALL": "Все",
|
||||||
"OPTION_INVOLVED": "Вовлечен",
|
"OPTION_INVOLVED": "Вовлечен",
|
||||||
|
@ -1284,9 +1373,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"USER_PROFILE": {
|
"USER_PROFILE": {
|
||||||
"IMAGE_HELP": "The image will be scaled to 80x80px.",
|
"IMAGE_HELP": "Изображение будет отмасштабировано до 80x80px.",
|
||||||
"ACTION_CHANGE_IMAGE": "Изменить",
|
"ACTION_CHANGE_IMAGE": "Изменить",
|
||||||
"ACTION_USE_GRAVATAR": "Use default image",
|
"ACTION_USE_GRAVATAR": "Использовать картинку по умолчанию",
|
||||||
"ACTION_DELETE_ACCOUNT": "Удалить аккаунт",
|
"ACTION_DELETE_ACCOUNT": "Удалить аккаунт",
|
||||||
"CHANGE_EMAIL_SUCCESS": "<strong>Проверьте входящие письма!</strong><br />Мы послали письмо на ваш аккаунт<br />с инструкциями по установке вашего нового адреса.",
|
"CHANGE_EMAIL_SUCCESS": "<strong>Проверьте входящие письма!</strong><br />Мы послали письмо на ваш аккаунт<br />с инструкциями по установке вашего нового адреса.",
|
||||||
"CHANGE_PHOTO": "Изменить фото",
|
"CHANGE_PHOTO": "Изменить фото",
|
||||||
|
@ -1294,7 +1383,7 @@
|
||||||
"USERNAME": "Имя пользователя",
|
"USERNAME": "Имя пользователя",
|
||||||
"EMAIL": "Email",
|
"EMAIL": "Email",
|
||||||
"FULL_NAME": "Полное имя",
|
"FULL_NAME": "Полное имя",
|
||||||
"PLACEHOLDER_FULL_NAME": "Установите ваше полное имя (например, Игорь Николаев)",
|
"PLACEHOLDER_FULL_NAME": "Полное имя (например, Игорь Николаев)",
|
||||||
"BIO": "Биография (не более 210 символов)",
|
"BIO": "Биография (не более 210 символов)",
|
||||||
"PLACEHOLDER_BIO": "Расскажите нам что-нибудь о себе",
|
"PLACEHOLDER_BIO": "Расскажите нам что-нибудь о себе",
|
||||||
"LANGUAGE": "Язык",
|
"LANGUAGE": "Язык",
|
||||||
|
@ -1304,12 +1393,18 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"WIZARD": {
|
"WIZARD": {
|
||||||
"SECTION_TITLE_CHOOSE_TEMPLATE": "Выберете шаблон",
|
|
||||||
"CHOOSE_TEMPLATE_TEXT": "Какой шаблон лучше всего подойдет для Вашего проекта?",
|
|
||||||
"SECTION_TITLE_CREATE_PROJECT": "Создать проект",
|
"SECTION_TITLE_CREATE_PROJECT": "Создать проект",
|
||||||
"CREATE_PROJECT_TEXT": "Свежий и чистый! Так здóрово!",
|
"CREATE_PROJECT_TEXT": "Свежий и чистый! Так здóрово!",
|
||||||
"PROGRESS_TEMPLATE_SELECTION": "Выбор шаблона",
|
"CHOOSE_TEMPLATE": "Which template fits your project best?",
|
||||||
"PROGRESS_NAME_DESCRIPTION": "Название и описание"
|
"CHOOSE_TEMPLATE_TITLE": "More info about project templates",
|
||||||
|
"CHOOSE_TEMPLATE_INFO": "More info",
|
||||||
|
"PROJECT_DETAILS": "Project Details",
|
||||||
|
"PUBLIC_PROJECT": "Public Project",
|
||||||
|
"PRIVATE_PROJECT": "Private Project",
|
||||||
|
"CREATE_PROJECT": "Создать проект",
|
||||||
|
"MAX_PRIVATE_PROJECTS": "You've reached the maximum number of private projects",
|
||||||
|
"MAX_PUBLIC_PROJECTS": "Unfortunately, you've reached the maximum number of public projects",
|
||||||
|
"CHANGE_PLANS": "change plans"
|
||||||
},
|
},
|
||||||
"WIKI": {
|
"WIKI": {
|
||||||
"PAGE_TITLE": "{{wikiPageName}} - Вики - {{projectName}}",
|
"PAGE_TITLE": "{{wikiPageName}} - Вики - {{projectName}}",
|
||||||
|
@ -1338,7 +1433,7 @@
|
||||||
"HINT2_TEXT": "Теперь команды могут создавать специальные поля, чтобы гибко вводить данные, специфические для их рабочего процесса.",
|
"HINT2_TEXT": "Теперь команды могут создавать специальные поля, чтобы гибко вводить данные, специфические для их рабочего процесса.",
|
||||||
"HINT3_TITLE": "Перестройте список своих проектов так, чтобы выделить самые важные для себя.",
|
"HINT3_TITLE": "Перестройте список своих проектов так, чтобы выделить самые важные для себя.",
|
||||||
"HINT3_TEXT": "Первые 10 проектов доступны из панели прямого доступа сверху.",
|
"HINT3_TEXT": "Первые 10 проектов доступны из панели прямого доступа сверху.",
|
||||||
"HINT4_TITLE": "Did you forget what were you working on?",
|
"HINT4_TITLE": "Забыли, над чем вы работали?",
|
||||||
"HINT4_TEXT": "Не переживайте, на вашем рабочем столе вы найдёте ваши активные задачи, запросы и пользовательские истории в том порядке, в котором вы над ними работали."
|
"HINT4_TEXT": "Не переживайте, на вашем рабочем столе вы найдёте ваши активные задачи, запросы и пользовательские истории в том порядке, в котором вы над ними работали."
|
||||||
},
|
},
|
||||||
"TIMELINE": {
|
"TIMELINE": {
|
||||||
|
@ -1387,7 +1482,7 @@
|
||||||
"NAV": {
|
"NAV": {
|
||||||
"NEXT": "Следующий",
|
"NEXT": "Следующий",
|
||||||
"BACK": "Бэкенд разработчик",
|
"BACK": "Бэкенд разработчик",
|
||||||
"SKIP": "Skip",
|
"SKIP": "Пропустить",
|
||||||
"DONE": "Завершена"
|
"DONE": "Завершена"
|
||||||
},
|
},
|
||||||
"DASHBOARD": {
|
"DASHBOARD": {
|
||||||
|
@ -1402,7 +1497,7 @@
|
||||||
"STEP3": {
|
"STEP3": {
|
||||||
"TITLE": "Отслеживаемое",
|
"TITLE": "Отслеживаемое",
|
||||||
"TEXT1": "And right here you will find the ones in your projects that you want to know about.",
|
"TEXT1": "And right here you will find the ones in your projects that you want to know about.",
|
||||||
"TEXT2": "You are already working with Taiga ;)"
|
"TEXT2": "Вы уже работаете с Taiga ;)"
|
||||||
},
|
},
|
||||||
"STEP4": {
|
"STEP4": {
|
||||||
"TITLE": "Давайте начнём",
|
"TITLE": "Давайте начнём",
|
||||||
|
@ -1446,35 +1541,35 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"DISCOVER": {
|
"DISCOVER": {
|
||||||
"PAGE_TITLE": "Discover projects - Taiga",
|
"PAGE_TITLE": "Найти проекты - Taiga",
|
||||||
"PAGE_DESCRIPTION": "Searchable directory of Public Projects in Taiga. Explore backlogs, timelines, issues, and teams. Check out the most liked or most active projects. Filter by Kanban or Scrum.",
|
"PAGE_DESCRIPTION": "Searchable directory of Public Projects in Taiga. Explore backlogs, timelines, issues, and teams. Check out the most liked or most active projects. Filter by Kanban or Scrum.",
|
||||||
"DISCOVER_TITLE": "Discover projects",
|
"DISCOVER_TITLE": "Найти проекты",
|
||||||
"DISCOVER_SUBTITLE": "{projects, plural, one{One public project to discover} other{# public projects to discover}}",
|
"DISCOVER_SUBTITLE": "{projects, plural, one{One public project to discover} other{# public projects to discover}}",
|
||||||
"MOST_ACTIVE": "Most active",
|
"MOST_ACTIVE": "Наиболее активные",
|
||||||
"MOST_ACTIVE_EMPTY": "There are no ACTIVE projects yet",
|
"MOST_ACTIVE_EMPTY": "There are no ACTIVE projects yet",
|
||||||
"MOST_LIKED": "Most liked",
|
"MOST_LIKED": "Больше всего лайков",
|
||||||
"MOST_LIKED_EMPTY": "There are no LIKED projects yet",
|
"MOST_LIKED_EMPTY": "There are no LIKED projects yet",
|
||||||
"VIEW_MORE": "View more",
|
"VIEW_MORE": "Показать больше",
|
||||||
"RECRUITING": "This project is looking for people",
|
"RECRUITING": "Этот проект ищет людей",
|
||||||
"FEATURED": "Featured Projects",
|
"FEATURED": "Популярные проекты",
|
||||||
"EMPTY": "There are no projects to show with this search criteria.<br> Try again!",
|
"EMPTY": "Нету проектов, удовлетворяющих заданным критериям поиска.<br/> Попробуйте снова!",
|
||||||
"FILTERS": {
|
"FILTERS": {
|
||||||
"ALL": "Все",
|
"ALL": "Все",
|
||||||
"KANBAN": "Kanban",
|
"KANBAN": "Kanban",
|
||||||
"SCRUM": "Scrum",
|
"SCRUM": "Scrum",
|
||||||
"PEOPLE": "Looking for people",
|
"PEOPLE": "Ищем людей",
|
||||||
"WEEK": "Last week",
|
"WEEK": "За неделю",
|
||||||
"MONTH": "Last month",
|
"MONTH": "За месяц",
|
||||||
"YEAR": "Last year",
|
"YEAR": "За год",
|
||||||
"ALL_TIME": "All time",
|
"ALL_TIME": "За всё время",
|
||||||
"CLEAR": "Clear filters"
|
"CLEAR": "Очистить фильтры"
|
||||||
},
|
},
|
||||||
"SEARCH": {
|
"SEARCH": {
|
||||||
"PAGE_TITLE": "Search - Discover projects - Taiga",
|
"PAGE_TITLE": "Поиск - Найти проекты - Taiga",
|
||||||
"PAGE_DESCRIPTION": "Searchable directory of Public Projects in Taiga. Explore backlogs, timelines, issues, and teams. Check out the most liked or most active projects. Filter by Kanban or Scrum.",
|
"PAGE_DESCRIPTION": "Searchable directory of Public Projects in Taiga. Explore backlogs, timelines, issues, and teams. Check out the most liked or most active projects. Filter by Kanban or Scrum.",
|
||||||
"INPUT_PLACEHOLDER": "Введите что-нибудь...",
|
"INPUT_PLACEHOLDER": "Введите что-нибудь...",
|
||||||
"ACTION_TITLE": "Поиск",
|
"ACTION_TITLE": "Поиск",
|
||||||
"RESULTS": "Search results"
|
"RESULTS": "Результаты поиска"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -41,7 +41,8 @@
|
||||||
"IOCAINE_TEXT": "Känner du dig lite bortkommen med en uppgift? Försäkra dig om att andra känner till uppgiften när du klickar på Iocaine-knappen när du ändrar uppgiften. Det är möjligt att bli immun till det här (påhittade) dödliga giftet om du tar små mängder över tid - och du kan även så småningom om bli bättre på vad du gör när du då och då tar på dig större utmaningar!",
|
"IOCAINE_TEXT": "Känner du dig lite bortkommen med en uppgift? Försäkra dig om att andra känner till uppgiften när du klickar på Iocaine-knappen när du ändrar uppgiften. Det är möjligt att bli immun till det här (påhittade) dödliga giftet om du tar små mängder över tid - och du kan även så småningom om bli bättre på vad du gör när du då och då tar på dig större utmaningar!",
|
||||||
"CLIENT_REQUIREMENT": "Client requirement is new requirement that was not previously expected and it is required to be part of the project",
|
"CLIENT_REQUIREMENT": "Client requirement is new requirement that was not previously expected and it is required to be part of the project",
|
||||||
"TEAM_REQUIREMENT": "Team requirement is a requirement that must exist in the project but should have no cost for the client",
|
"TEAM_REQUIREMENT": "Team requirement is a requirement that must exist in the project but should have no cost for the client",
|
||||||
"CAPSLOCK_WARNING": "Var försiktig! Du skriver med STORA bokstäver och det här fältet är skriftlägekänsligt.",
|
"OWNER": "Project Owner",
|
||||||
|
"CAPSLOCK_WARNING": "Be careful! You are using capital letters in an input field that is case sensitive.",
|
||||||
"FORM_ERRORS": {
|
"FORM_ERRORS": {
|
||||||
"DEFAULT_MESSAGE": "Det här värdet är felaktigt. ",
|
"DEFAULT_MESSAGE": "Det här värdet är felaktigt. ",
|
||||||
"TYPE_EMAIL": "Värdet måste vara en giltig e-postadress",
|
"TYPE_EMAIL": "Värdet måste vara en giltig e-postadress",
|
||||||
|
@ -65,7 +66,9 @@
|
||||||
"MIN_CHECK": "Du måste välja minst %s val.",
|
"MIN_CHECK": "Du måste välja minst %s val.",
|
||||||
"MAX_CHECK": "Du måste välja %s val eller mindre.",
|
"MAX_CHECK": "Du måste välja %s val eller mindre.",
|
||||||
"RANGE_CHECK": "Du måste välja mellan %s och %s val.",
|
"RANGE_CHECK": "Du måste välja mellan %s och %s val.",
|
||||||
"EQUAL_TO": "Det här värdet skulle vara det samma. "
|
"EQUAL_TO": "Det här värdet skulle vara det samma. ",
|
||||||
|
"LINEWIDTH": "One or more lines is perhaps too long. Try to keep under %s characters.",
|
||||||
|
"PIKADAY": "Invalid date format, please use DD MMM YYYY (like 23 Mar 1984)"
|
||||||
},
|
},
|
||||||
"PICKERDATE": {
|
"PICKERDATE": {
|
||||||
"FORMAT": "YYYY-MM-DD",
|
"FORMAT": "YYYY-MM-DD",
|
||||||
|
@ -315,7 +318,8 @@
|
||||||
"PLACEHOLDER_FIELD": "Användarnamn eller e-postadress",
|
"PLACEHOLDER_FIELD": "Användarnamn eller e-postadress",
|
||||||
"ACTION_RESET_PASSWORD": "Återställ lösenord",
|
"ACTION_RESET_PASSWORD": "Återställ lösenord",
|
||||||
"LINK_CANCEL": "Nej, ta mig tillbaka. Jag tror att jag minns det.",
|
"LINK_CANCEL": "Nej, ta mig tillbaka. Jag tror att jag minns det.",
|
||||||
"SUCCESS": "<strong>Kolla inboxen!</strong><br/>Du ska ha fått ett e-postmeddelande med instruktioner för hur du ändrar lösenordet",
|
"SUCCESS_TITLE": "Check your inbox!",
|
||||||
|
"SUCCESS_TEXT": "We sent you an email with the instructions to set a new password",
|
||||||
"ERROR": "Enligt våra Oompaloompier är du inte registrerad ännu."
|
"ERROR": "Enligt våra Oompaloompier är du inte registrerad ännu."
|
||||||
},
|
},
|
||||||
"CHANGE_PASSWORD": {
|
"CHANGE_PASSWORD": {
|
||||||
|
@ -373,7 +377,6 @@
|
||||||
"DEPRECATED_FILE": "Borttagen?",
|
"DEPRECATED_FILE": "Borttagen?",
|
||||||
"ADD": "Lägg till ny bilaga. {{maxFileSizeMsg}}",
|
"ADD": "Lägg till ny bilaga. {{maxFileSizeMsg}}",
|
||||||
"DROP": "Drag och släpp filer som ska bifogas här!",
|
"DROP": "Drag och släpp filer som ska bifogas här!",
|
||||||
"MAX_FILE_SIZE": "[Max. size: {{maxFileSize}}]",
|
|
||||||
"SHOW_DEPRECATED": "+ visa ogillade bilagor",
|
"SHOW_DEPRECATED": "+ visa ogillade bilagor",
|
||||||
"HIDE_DEPRECATED": "- dölj ogillade bilagor",
|
"HIDE_DEPRECATED": "- dölj ogillade bilagor",
|
||||||
"COUNT_DEPRECATED": "({{ counter }} deprecated)",
|
"COUNT_DEPRECATED": "({{ counter }} deprecated)",
|
||||||
|
@ -406,7 +409,9 @@
|
||||||
"TITLE": "Hantera medlemmar",
|
"TITLE": "Hantera medlemmar",
|
||||||
"PAGE_TITLE": "Medlemskap - {{projectName}}",
|
"PAGE_TITLE": "Medlemskap - {{projectName}}",
|
||||||
"ADD_BUTTON": "+ Ny medlem",
|
"ADD_BUTTON": "+ Ny medlem",
|
||||||
"ADD_BUTTON_TITLE": "Lägg till ny medlem"
|
"ADD_BUTTON_TITLE": "Lägg till ny medlem",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_ADMIN": "Unfortunately, this project has reached its limit of <strong>({{members}})</strong> allowed members.",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_OWNER": "This project has reached its limit of <strong>({{members}})</strong> allowed members. If you would like to increase that limit please contact the administrator."
|
||||||
},
|
},
|
||||||
"PROJECT_EXPORT": {
|
"PROJECT_EXPORT": {
|
||||||
"TITLE": "Exportera",
|
"TITLE": "Exportera",
|
||||||
|
@ -428,6 +433,10 @@
|
||||||
"DISABLE": "Avvaktivera",
|
"DISABLE": "Avvaktivera",
|
||||||
"BACKLOG": "Inkorg",
|
"BACKLOG": "Inkorg",
|
||||||
"BACKLOG_DESCRIPTION": "Hantera dina användarhistorier för att organisera visningar av kommande och prioriterade jobb. ",
|
"BACKLOG_DESCRIPTION": "Hantera dina användarhistorier för att organisera visningar av kommande och prioriterade jobb. ",
|
||||||
|
"NUMBER_SPRINTS": "Expected number of sprints",
|
||||||
|
"NUMBER_SPRINTS_HELP": "0 for an undetermined number",
|
||||||
|
"NUMBER_US_POINTS": "Expected total of story points",
|
||||||
|
"NUMBER_US_POINTS_HELP": "0 for an undetermined number",
|
||||||
"KANBAN": "Kanban",
|
"KANBAN": "Kanban",
|
||||||
"KANBAN_DESCRIPTION": "Organisera dina projekt med Lean med den här tavlan. ",
|
"KANBAN_DESCRIPTION": "Organisera dina projekt med Lean med den här tavlan. ",
|
||||||
"ISSUES": "Frågor",
|
"ISSUES": "Frågor",
|
||||||
|
@ -435,9 +444,9 @@
|
||||||
"WIKI": "Wiki",
|
"WIKI": "Wiki",
|
||||||
"WIKI_DESCRIPTION": "Lägg till, modifiera eller ta bort innehåll i samarbetet med andra. Det här är rätt plats för ditt projektdokumentation. ",
|
"WIKI_DESCRIPTION": "Lägg till, modifiera eller ta bort innehåll i samarbetet med andra. Det här är rätt plats för ditt projektdokumentation. ",
|
||||||
"MEETUP": "Möt upp",
|
"MEETUP": "Möt upp",
|
||||||
"MEETUP_DESCRIPTION": "Välj ditt videokonferenssystem. Även utvecklare behöver mötas ansikte mot ansikte.",
|
"MEETUP_DESCRIPTION": "Choose your videoconference system.",
|
||||||
"SELECT_VIDEOCONFERENCE": "Välj videokonferenssystem",
|
"SELECT_VIDEOCONFERENCE": "Välj videokonferenssystem",
|
||||||
"SALT_CHAT_ROOM": "Om du önskar det kan du lägga till några tillfälliga tecken till chat-rummets namn. ",
|
"SALT_CHAT_ROOM": "Add a prefix to the chatroom name",
|
||||||
"JITSI_CHAT_ROOM": "Jitsi",
|
"JITSI_CHAT_ROOM": "Jitsi",
|
||||||
"APPEARIN_CHAT_ROOM": "Dyker upp i ",
|
"APPEARIN_CHAT_ROOM": "Dyker upp i ",
|
||||||
"TALKY_CHAT_ROOM": "Talky",
|
"TALKY_CHAT_ROOM": "Talky",
|
||||||
|
@ -449,22 +458,31 @@
|
||||||
"PROJECT_DETAILS": "Projektdetaljer",
|
"PROJECT_DETAILS": "Projektdetaljer",
|
||||||
"PROJECT_NAME": "Projektnamn",
|
"PROJECT_NAME": "Projektnamn",
|
||||||
"PROJECT_SLUG": "Projektslugg",
|
"PROJECT_SLUG": "Projektslugg",
|
||||||
"NUMBER_SPRINTS": "Antal sprintar (0 för en obestämd kvantitet)",
|
|
||||||
"NUMBER_US_POINTS": "Antal US-poäng (0 för ett obestämd antal)",
|
|
||||||
"TAGS": "Etiketter",
|
"TAGS": "Etiketter",
|
||||||
"DESCRIPTION": "Beskrivning",
|
"DESCRIPTION": "Beskrivning",
|
||||||
"RECRUITING": "Is this project looking for people?",
|
"RECRUITING": "Is this project looking for people?",
|
||||||
"RECRUITING_MESSAGE": "Vem letar du efter?",
|
"RECRUITING_MESSAGE": "Vem letar du efter?",
|
||||||
"RECRUITING_PLACEHOLDER": "Define the profiles you are looking for",
|
"RECRUITING_PLACEHOLDER": "Define the profiles you are looking for",
|
||||||
"PUBLIC_PROJECT": "Publika projekt",
|
"PUBLIC_PROJECT": "Publika projekt",
|
||||||
"PUBLIC_PROJECT_DESC": "Users will be able to find and view your project",
|
|
||||||
"PRIVATE_PROJECT": "Privata projekt",
|
"PRIVATE_PROJECT": "Privata projekt",
|
||||||
"PRIVATE_PROJECT_DESC": "By default, this project will be hidden to the public",
|
|
||||||
"PRIVATE_OR_PUBLIC": "Vad är skillnaden mellan publika och privata projekt?",
|
"PRIVATE_OR_PUBLIC": "Vad är skillnaden mellan publika och privata projekt?",
|
||||||
"DELETE": "Ta bort projekt",
|
"DELETE": "Ta bort projekt",
|
||||||
"LOGO_HELP": "Bilden kommer skalas till 80x80px.",
|
"LOGO_HELP": "Bilden kommer skalas till 80x80px.",
|
||||||
"CHANGE_LOGO": "Ändra logga",
|
"CHANGE_LOGO": "Ändra logga",
|
||||||
"ACTION_USE_DEFAULT_LOGO": "Use default image"
|
"ACTION_USE_DEFAULT_LOGO": "Use default image",
|
||||||
|
"MAX_PRIVATE_PROJECTS": "You've reached the maximum number of private projects allowed by your current plan",
|
||||||
|
"MAX_PRIVATE_PROJECTS_MEMBERS": "The maximum number of members for private projects has been exceeded",
|
||||||
|
"MAX_PUBLIC_PROJECTS": "Unfortunately, you've reached the maximum number of public projects allowed by your current plan",
|
||||||
|
"MAX_PUBLIC_PROJECTS_MEMBERS": "The project exceeds your maximum number of members for public projects",
|
||||||
|
"PROJECT_OWNER": "Project owner",
|
||||||
|
"REQUEST_OWNERSHIP": "Request ownership",
|
||||||
|
"REQUEST_OWNERSHIP_CONFIRMATION_TITLE": "Do you want to become the new project owner?",
|
||||||
|
"REQUEST_OWNERSHIP_DESC": "Request that current project owner {{name}} transfer ownership of this project to you.",
|
||||||
|
"REQUEST_OWNERSHIP_BUTTON": "Förfrågan",
|
||||||
|
"REQUEST_OWNERSHIP_SUCCESS": "We'll notify the project owner",
|
||||||
|
"CHANGE_OWNER": "Change owner",
|
||||||
|
"CHANGE_OWNER_SUCCESS_TITLE": "Ok, your request has been sent!",
|
||||||
|
"CHANGE_OWNER_SUCCESS_DESC": "We will notify you by email if the project ownership request is accepted or declined"
|
||||||
},
|
},
|
||||||
"REPORTS": {
|
"REPORTS": {
|
||||||
"TITLE": "Rapporter",
|
"TITLE": "Rapporter",
|
||||||
|
@ -495,7 +513,8 @@
|
||||||
"ISSUE_ADD": "Anpassade fält för ärenden",
|
"ISSUE_ADD": "Anpassade fält för ärenden",
|
||||||
"FIELD_TYPE_TEXT": "Text",
|
"FIELD_TYPE_TEXT": "Text",
|
||||||
"FIELD_TYPE_MULTI": "Flerradig",
|
"FIELD_TYPE_MULTI": "Flerradig",
|
||||||
"FIELD_TYPE_DATE": "Datum"
|
"FIELD_TYPE_DATE": "Datum",
|
||||||
|
"FIELD_TYPE_URL": "Url"
|
||||||
},
|
},
|
||||||
"PROJECT_VALUES": {
|
"PROJECT_VALUES": {
|
||||||
"PAGE_TITLE": "{{sectionName}} - Projektvärden - {{projectName}}",
|
"PAGE_TITLE": "{{sectionName}} - Projektvärden - {{projectName}}",
|
||||||
|
@ -543,7 +562,7 @@
|
||||||
"COUNT_MEMBERS": "{{ role.members_count }} medlemmar med den här rollen",
|
"COUNT_MEMBERS": "{{ role.members_count }} medlemmar med den här rollen",
|
||||||
"TITLE_DELETE_ROLE": "Ta bort rollen",
|
"TITLE_DELETE_ROLE": "Ta bort rollen",
|
||||||
"REPLACEMENT_ROLE": "Alla användarna med den här rollen vill flyttas till",
|
"REPLACEMENT_ROLE": "Alla användarna med den här rollen vill flyttas till",
|
||||||
"WARNING_DELETE_ROLE": "<strong>Var försiktig. Alla beräkninger för den här rollen vill tas bort</strong>",
|
"WARNING_DELETE_ROLE": "Be careful! All role estimations will be removed",
|
||||||
"ERROR_DELETE_ALL": "Du kan inte ta bort alla värden",
|
"ERROR_DELETE_ALL": "Du kan inte ta bort alla värden",
|
||||||
"EXTERNAL_USER": "Extern användare"
|
"EXTERNAL_USER": "Extern användare"
|
||||||
},
|
},
|
||||||
|
@ -671,6 +690,24 @@
|
||||||
},
|
},
|
||||||
"SUBMENU_THIDPARTIES": {
|
"SUBMENU_THIDPARTIES": {
|
||||||
"TITLE": "Tjänster"
|
"TITLE": "Tjänster"
|
||||||
|
},
|
||||||
|
"PROJECT_TRANSFER": {
|
||||||
|
"DO_YOU_ACCEPT_PROJECT_OWNERNSHIP": "Would you like to become the new project owner?",
|
||||||
|
"PRIVATE": "Private",
|
||||||
|
"ACCEPTED_PROJECT_OWNERNSHIP": "Congratulations! You're now the new project owner.",
|
||||||
|
"REJECTED_PROJECT_OWNERNSHIP": "OK. We'll contact the current project owner",
|
||||||
|
"ACCEPT": "Acceptera",
|
||||||
|
"REJECT": "Reject",
|
||||||
|
"PROPOSE_OWNERSHIP": "<strong>{{owner}}</strong>, the current owner of the project <strong>{{project}}</strong> has asked that you become the new project owner.",
|
||||||
|
"ADD_COMMENT_QUESTION": "Would you like to send a question to the project owner?",
|
||||||
|
"ADD_COMMENT": "Would you like to add a comment for the project owner?",
|
||||||
|
"UNLIMITED_PROJECTS": "Unlimited",
|
||||||
|
"OWNER_MESSAGE": {
|
||||||
|
"PRIVATE": "Please remember that you can own up to <strong>{{maxProjects}}</strong> private projects. You currently own <strong>{{currentProjects}}</strong> private projects",
|
||||||
|
"PUBLIC": "Please remember that you can own up to <strong>{{maxProjects}}</strong> public projects. You currently own <strong>{{currentProjects}}</strong> public projects"
|
||||||
|
},
|
||||||
|
"CANT_BE_OWNED": "At the moment you cannot become an owner of a project of this type. If you would like to become the owner of this project, please contact the administrator so they change your account settings to enable project ownership.",
|
||||||
|
"CHANGE_MY_PLAN": "Change my plan"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"USER": {
|
"USER": {
|
||||||
|
@ -731,6 +768,11 @@
|
||||||
"FANS_COUNTER_TITLE": "{total, plural, one{one fan} andra{# fans}}",
|
"FANS_COUNTER_TITLE": "{total, plural, one{one fan} andra{# fans}}",
|
||||||
"WATCHERS_COUNTER_TITLE": "{total, plural, en{one watcher} andra{# watchers}}",
|
"WATCHERS_COUNTER_TITLE": "{total, plural, en{one watcher} andra{# watchers}}",
|
||||||
"MEMBERS_COUNTER_TITLE": "{total, plural, one{one member} other{# members}}",
|
"MEMBERS_COUNTER_TITLE": "{total, plural, one{one member} other{# members}}",
|
||||||
|
"BLOCKED_PROJECT": {
|
||||||
|
"BLOCKED": "Blocked project",
|
||||||
|
"THIS_PROJECT_IS_BLOCKED": "This project is temporarily blocked",
|
||||||
|
"TO_UNBLOCK_CONTACT_THE_ADMIN_STAFF": "In order to unblock your projects, contact the administrator."
|
||||||
|
},
|
||||||
"STATS": {
|
"STATS": {
|
||||||
"PROJECT": "projekt<br/> poäng",
|
"PROJECT": "projekt<br/> poäng",
|
||||||
"DEFINED": "definierad<br/> poäng",
|
"DEFINED": "definierad<br/> poäng",
|
||||||
|
@ -777,6 +819,7 @@
|
||||||
"CHANGE_PASSWORD": "Byt lösenord",
|
"CHANGE_PASSWORD": "Byt lösenord",
|
||||||
"DASHBOARD_TITLE": "Instrumentpanel",
|
"DASHBOARD_TITLE": "Instrumentpanel",
|
||||||
"DISCOVER_TITLE": "Upptäck nya rörliga projekt",
|
"DISCOVER_TITLE": "Upptäck nya rörliga projekt",
|
||||||
|
"NEW_ITEM": "Ny",
|
||||||
"DISCOVER": "Upptäck",
|
"DISCOVER": "Upptäck",
|
||||||
"ACTION_REORDER": "Dra & släpp för att sortera"
|
"ACTION_REORDER": "Dra & släpp för att sortera"
|
||||||
},
|
},
|
||||||
|
@ -791,7 +834,32 @@
|
||||||
"ERROR_TOO_MANY_REQUEST": "Beklagar. Våra oompa loompier är mycket upptagna. Vänligen försök på nytt om några minuter. ",
|
"ERROR_TOO_MANY_REQUEST": "Beklagar. Våra oompa loompier är mycket upptagna. Vänligen försök på nytt om några minuter. ",
|
||||||
"ERROR_MESSAGE": "Våra Oompa Loompier har lite problem med att importera dina hämtningsdata: {{error_message}}",
|
"ERROR_MESSAGE": "Våra Oompa Loompier har lite problem med att importera dina hämtningsdata: {{error_message}}",
|
||||||
"ERROR_MAX_SIZE_EXCEEDED": "'{{fileName}}' ({{fileSize}}) är för tungt för våra Oompa Loompier. Försök med något mindre än ({{maxFileSize}})",
|
"ERROR_MAX_SIZE_EXCEEDED": "'{{fileName}}' ({{fileSize}}) är för tungt för våra Oompa Loompier. Försök med något mindre än ({{maxFileSize}})",
|
||||||
"SYNC_SUCCESS": "Ditt projekt är korrekt importerad"
|
"SYNC_SUCCESS": "Ditt projekt är korrekt importerad",
|
||||||
|
"PROJECT_RESTRICTIONS": {
|
||||||
|
"PROJECT_MEMBERS_DESC": "The project you are trying to import has {{members}} members, unfortunately, your current plan allows for a maximum of {{max_memberships}} members per project. If you would like to increase that limit please contact the administrator.",
|
||||||
|
"PRIVATE_PROJECTS_SPACE": {
|
||||||
|
"TITLE": "Unfortunately, your current plan does not allow for additional private projects",
|
||||||
|
"DESC": "The project you are trying to import is private. Unfortunately, your current plan does not allow for additional private projects."
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_SPACE": {
|
||||||
|
"TITLE": "Unfortunately, your current plan does not allow for additional private projects",
|
||||||
|
"DESC": "The project you are trying to import is public. Unfortunately, your current plan does not allow additional public projects."
|
||||||
|
},
|
||||||
|
"PRIVATE_PROJECTS_MEMBERS": {
|
||||||
|
"TITLE": "Your current plan allows for a maximum of {{max_memberships}} members per private project"
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_MEMBERS": {
|
||||||
|
"TITLE": "Your current plan allows for a maximum of {{max_memberships}} members per public project."
|
||||||
|
},
|
||||||
|
"PRIVATE_PROJECTS_SPACE_MEMBERS": {
|
||||||
|
"TITLE": "Unfortunately your current plan doesn't allow additional private projects or an increase of more than {{max_memberships}} members per private project",
|
||||||
|
"DESC": "The project that you are trying to import is private and has {{members}} members."
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_SPACE_MEMBERS": {
|
||||||
|
"TITLE": "Unfortunately your current plan doesn't allow additional public projects or an increase of more than {{max_memberships}} members per public project",
|
||||||
|
"DESC": "The project that you are trying to import is public and has more than {{members}} members."
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"LIKE_BUTTON": {
|
"LIKE_BUTTON": {
|
||||||
"LIKE": "Gillar",
|
"LIKE": "Gillar",
|
||||||
|
@ -819,8 +887,11 @@
|
||||||
"DELETE_ACCOUNT": {
|
"DELETE_ACCOUNT": {
|
||||||
"SECTION_NAME": "Ta bort konto",
|
"SECTION_NAME": "Ta bort konto",
|
||||||
"CONFIRM": "Är du säker på att du vill radera kontot?",
|
"CONFIRM": "Är du säker på att du vill radera kontot?",
|
||||||
"SUBTITLE": "Vi kommer att sakna dig!",
|
"NEWSLETTER_LABEL_TEXT": "Jag vill inte motta flera nyhetsbrev",
|
||||||
"NEWSLETTER_LABEL_TEXT": "Jag vill inte motta flera nyhetsbrev"
|
"CANCEL": "Back to settings",
|
||||||
|
"ACCEPT": "Delete account",
|
||||||
|
"BLOCK_PROJECT": "Note that all the projects you own projects will be <strong>blocked</strong> after you delete your account. If you do want a project blocked, transfer ownership to another member of each project prior to deleting your account.",
|
||||||
|
"SUBTITLE": "Sorry to see you go. We'll be here if you should ever consider us again! :("
|
||||||
},
|
},
|
||||||
"DELETE_PROJECT": {
|
"DELETE_PROJECT": {
|
||||||
"TITLE": "Ta bort projekt",
|
"TITLE": "Ta bort projekt",
|
||||||
|
@ -876,7 +947,25 @@
|
||||||
},
|
},
|
||||||
"CREATE_MEMBER": {
|
"CREATE_MEMBER": {
|
||||||
"PLACEHOLDER_INVITATION_TEXT": "(Valfritt) Lägg till en personlig hälsning till invitationen. Berätta något trevligt till din nya projektmedlem ;-)",
|
"PLACEHOLDER_INVITATION_TEXT": "(Valfritt) Lägg till en personlig hälsning till invitationen. Berätta något trevligt till din nya projektmedlem ;-)",
|
||||||
"PLACEHOLDER_TYPE_EMAIL": "Skriv in en e-postadress"
|
"PLACEHOLDER_TYPE_EMAIL": "Skriv in en e-postadress",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_OWNER": "Unfortunately, this project can't have more than <strong>{{maxMembers}}</strong> members.<br> If you would like to increase the current limit, please contact the administrator.",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE": "Unfortunately, this project can't have more than <strong>{{maxMembers}}</strong> members."
|
||||||
|
},
|
||||||
|
"LEAVE_PROJECT_WARNING": {
|
||||||
|
"TITLE": "Unfortunately, this project can't be left without an owner",
|
||||||
|
"CURRENT_USER_OWNER": {
|
||||||
|
"DESC": "You are the current owner of this project. Before leaving, please transfer ownership to someone else.",
|
||||||
|
"BUTTON": "Change the project owner"
|
||||||
|
},
|
||||||
|
"OTHER_USER_OWNER": {
|
||||||
|
"DESC": "Unfortunately, you can't delete a member who is also the current project owner. First, please assign a new project owner.",
|
||||||
|
"BUTTON": "Request project owner change"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"CHANGE_OWNER": {
|
||||||
|
"TITLE": "Who do you want to be the new project owner?",
|
||||||
|
"ADD_COMMENT": "Add comment",
|
||||||
|
"BUTTON": "Ask this project member to become the new project owner"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"US": {
|
"US": {
|
||||||
|
@ -1304,12 +1393,18 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"WIZARD": {
|
"WIZARD": {
|
||||||
"SECTION_TITLE_CHOOSE_TEMPLATE": "Välj en mall",
|
|
||||||
"CHOOSE_TEMPLATE_TEXT": "Vilken mall skulle passa bättre i det här projektet? ",
|
|
||||||
"SECTION_TITLE_CREATE_PROJECT": "Skapa projekt",
|
"SECTION_TITLE_CREATE_PROJECT": "Skapa projekt",
|
||||||
"CREATE_PROJECT_TEXT": "Fräscht och rent. Så trevligt!",
|
"CREATE_PROJECT_TEXT": "Fräscht och rent. Så trevligt!",
|
||||||
"PROGRESS_TEMPLATE_SELECTION": "Urval mallar",
|
"CHOOSE_TEMPLATE": "Which template fits your project best?",
|
||||||
"PROGRESS_NAME_DESCRIPTION": "Namn och beskrivning"
|
"CHOOSE_TEMPLATE_TITLE": "More info about project templates",
|
||||||
|
"CHOOSE_TEMPLATE_INFO": "More info",
|
||||||
|
"PROJECT_DETAILS": "Project Details",
|
||||||
|
"PUBLIC_PROJECT": "Public Project",
|
||||||
|
"PRIVATE_PROJECT": "Private Project",
|
||||||
|
"CREATE_PROJECT": "Skapa projekt",
|
||||||
|
"MAX_PRIVATE_PROJECTS": "You've reached the maximum number of private projects",
|
||||||
|
"MAX_PUBLIC_PROJECTS": "Unfortunately, you've reached the maximum number of public projects",
|
||||||
|
"CHANGE_PLANS": "change plans"
|
||||||
},
|
},
|
||||||
"WIKI": {
|
"WIKI": {
|
||||||
"PAGE_TITLE": "{{wikiPageName}} - Wiki - {{projectName}}",
|
"PAGE_TITLE": "{{wikiPageName}} - Wiki - {{projectName}}",
|
||||||
|
|
|
@ -41,7 +41,8 @@
|
||||||
"IOCAINE_TEXT": "Bir görev size ağır geldi ve bunaldınız mı? Diğerlerinin bu durumdan haberi olması için bir görevi düzenlerken baldıran zehrinin üzerine tıklayın. Nasıl ki zaman zaman ekstra meydan okumalarla bir işte gittikce iyi olmanız mümkünse, zaman içerisinde küçük dozlar alarak bu ölümcül zehre de bağışıklık kazanabilmek mümkün!",
|
"IOCAINE_TEXT": "Bir görev size ağır geldi ve bunaldınız mı? Diğerlerinin bu durumdan haberi olması için bir görevi düzenlerken baldıran zehrinin üzerine tıklayın. Nasıl ki zaman zaman ekstra meydan okumalarla bir işte gittikce iyi olmanız mümkünse, zaman içerisinde küçük dozlar alarak bu ölümcül zehre de bağışıklık kazanabilmek mümkün!",
|
||||||
"CLIENT_REQUIREMENT": "Müşteri gereksinimi, daha önceden belli olmayan ama projeye dahil olması gereken bir gereksinimdir",
|
"CLIENT_REQUIREMENT": "Müşteri gereksinimi, daha önceden belli olmayan ama projeye dahil olması gereken bir gereksinimdir",
|
||||||
"TEAM_REQUIREMENT": "Takım gereksinimi, müsteriyi ilgilendirmeyen, ama projede yer alması zorunlu olan bir gereksinimdir.",
|
"TEAM_REQUIREMENT": "Takım gereksinimi, müsteriyi ilgilendirmeyen, ama projede yer alması zorunlu olan bir gereksinimdir.",
|
||||||
"CAPSLOCK_WARNING": "Dikkat! Büyük harflerle yazıyorsunuz ve bu girdi büyüklük küçüklük duyarlı.",
|
"OWNER": "Project Owner",
|
||||||
|
"CAPSLOCK_WARNING": "Be careful! You are using capital letters in an input field that is case sensitive.",
|
||||||
"FORM_ERRORS": {
|
"FORM_ERRORS": {
|
||||||
"DEFAULT_MESSAGE": "Bu değer geçersiz gözüküyor",
|
"DEFAULT_MESSAGE": "Bu değer geçersiz gözüküyor",
|
||||||
"TYPE_EMAIL": "Bu değer geçerli bir e-posta adresi olmalı.",
|
"TYPE_EMAIL": "Bu değer geçerli bir e-posta adresi olmalı.",
|
||||||
|
@ -65,7 +66,9 @@
|
||||||
"MIN_CHECK": "En az %s seçenek belirtmek zorundasınız.",
|
"MIN_CHECK": "En az %s seçenek belirtmek zorundasınız.",
|
||||||
"MAX_CHECK": "%s seçenek ya da daha azını seçmek zorunlu.",
|
"MAX_CHECK": "%s seçenek ya da daha azını seçmek zorunlu.",
|
||||||
"RANGE_CHECK": "%s ve %s seçenekleri arasında bir seçim yapmak zorunludu.",
|
"RANGE_CHECK": "%s ve %s seçenekleri arasında bir seçim yapmak zorunludu.",
|
||||||
"EQUAL_TO": "Bu değer aynı olmalı."
|
"EQUAL_TO": "Bu değer aynı olmalı.",
|
||||||
|
"LINEWIDTH": "One or more lines is perhaps too long. Try to keep under %s characters.",
|
||||||
|
"PIKADAY": "Invalid date format, please use DD MMM YYYY (like 23 Mar 1984)"
|
||||||
},
|
},
|
||||||
"PICKERDATE": {
|
"PICKERDATE": {
|
||||||
"FORMAT": "DD MM YYYY",
|
"FORMAT": "DD MM YYYY",
|
||||||
|
@ -315,7 +318,8 @@
|
||||||
"PLACEHOLDER_FIELD": "Kullanıcı adı veya e-posta",
|
"PLACEHOLDER_FIELD": "Kullanıcı adı veya e-posta",
|
||||||
"ACTION_RESET_PASSWORD": "Parolayı Sıfırla",
|
"ACTION_RESET_PASSWORD": "Parolayı Sıfırla",
|
||||||
"LINK_CANCEL": "Boşver, geri gidelim. Sanırım hatırladım.",
|
"LINK_CANCEL": "Boşver, geri gidelim. Sanırım hatırladım.",
|
||||||
"SUCCESS": "<strong>Gelen kutunuzu kontrol edin!</strong><br />Yeni parolanızı oluşturabilmeniz için gerekli yönergeleri içeren bir e-posta gönderdik",
|
"SUCCESS_TITLE": "Check your inbox!",
|
||||||
|
"SUCCESS_TEXT": "We sent you an email with the instructions to set a new password",
|
||||||
"ERROR": "Honki ponkilerimize göre, siz henüz bir kayıt yaptırmamış durumdasınız."
|
"ERROR": "Honki ponkilerimize göre, siz henüz bir kayıt yaptırmamış durumdasınız."
|
||||||
},
|
},
|
||||||
"CHANGE_PASSWORD": {
|
"CHANGE_PASSWORD": {
|
||||||
|
@ -373,7 +377,6 @@
|
||||||
"DEPRECATED_FILE": "Kaldırıldı mı?",
|
"DEPRECATED_FILE": "Kaldırıldı mı?",
|
||||||
"ADD": "Yeni ek ekleyin {{maxFileSizeMsg}}",
|
"ADD": "Yeni ek ekleyin {{maxFileSizeMsg}}",
|
||||||
"DROP": "Ekleri buraya bırakın!",
|
"DROP": "Ekleri buraya bırakın!",
|
||||||
"MAX_FILE_SIZE": "[Max. boyut: {{maxFileSize}}]",
|
|
||||||
"SHOW_DEPRECATED": "+ kaldırılan ekleri göster",
|
"SHOW_DEPRECATED": "+ kaldırılan ekleri göster",
|
||||||
"HIDE_DEPRECATED": "- kaldırılan ekleri gizle",
|
"HIDE_DEPRECATED": "- kaldırılan ekleri gizle",
|
||||||
"COUNT_DEPRECATED": "({{ counter }} kaldırılmış)",
|
"COUNT_DEPRECATED": "({{ counter }} kaldırılmış)",
|
||||||
|
@ -406,7 +409,9 @@
|
||||||
"TITLE": "Üyeleri yönet",
|
"TITLE": "Üyeleri yönet",
|
||||||
"PAGE_TITLE": "Üyelikler - {{projectName}}",
|
"PAGE_TITLE": "Üyelikler - {{projectName}}",
|
||||||
"ADD_BUTTON": "+ Yeni üye",
|
"ADD_BUTTON": "+ Yeni üye",
|
||||||
"ADD_BUTTON_TITLE": "Yeni üye ekle"
|
"ADD_BUTTON_TITLE": "Yeni üye ekle",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_ADMIN": "Unfortunately, this project has reached its limit of <strong>({{members}})</strong> allowed members.",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_OWNER": "This project has reached its limit of <strong>({{members}})</strong> allowed members. If you would like to increase that limit please contact the administrator."
|
||||||
},
|
},
|
||||||
"PROJECT_EXPORT": {
|
"PROJECT_EXPORT": {
|
||||||
"TITLE": "Dışarı aktar",
|
"TITLE": "Dışarı aktar",
|
||||||
|
@ -428,6 +433,10 @@
|
||||||
"DISABLE": "Pasifleştir",
|
"DISABLE": "Pasifleştir",
|
||||||
"BACKLOG": "Havuz",
|
"BACKLOG": "Havuz",
|
||||||
"BACKLOG_DESCRIPTION": "Yeni gelen ve önceliklendirilmiş işler için düzenli bir görünüm elde etmek için kullanıcı hikayelerinizi yönetin.",
|
"BACKLOG_DESCRIPTION": "Yeni gelen ve önceliklendirilmiş işler için düzenli bir görünüm elde etmek için kullanıcı hikayelerinizi yönetin.",
|
||||||
|
"NUMBER_SPRINTS": "Expected number of sprints",
|
||||||
|
"NUMBER_SPRINTS_HELP": "0 for an undetermined number",
|
||||||
|
"NUMBER_US_POINTS": "Expected total of story points",
|
||||||
|
"NUMBER_US_POINTS_HELP": "0 for an undetermined number",
|
||||||
"KANBAN": "Kanban",
|
"KANBAN": "Kanban",
|
||||||
"KANBAN_DESCRIPTION": "Bu pano ile projenizi güzel bir şekilde düzenleyin.",
|
"KANBAN_DESCRIPTION": "Bu pano ile projenizi güzel bir şekilde düzenleyin.",
|
||||||
"ISSUES": "Sorunlar",
|
"ISSUES": "Sorunlar",
|
||||||
|
@ -435,9 +444,9 @@
|
||||||
"WIKI": "Wiki",
|
"WIKI": "Wiki",
|
||||||
"WIKI_DESCRIPTION": "Diğerleriyle işbirliği yaparak içerik ekleyin, düzenleyin ve silin. Burası projenizin dokümantasyonu için doğru yer.",
|
"WIKI_DESCRIPTION": "Diğerleriyle işbirliği yaparak içerik ekleyin, düzenleyin ve silin. Burası projenizin dokümantasyonu için doğru yer.",
|
||||||
"MEETUP": "Toplantı",
|
"MEETUP": "Toplantı",
|
||||||
"MEETUP_DESCRIPTION": "Video konferans sisteminizi seçin. Yazılımcılar bile yüz yüze görüşmeye ihtiyaç duyarlar.",
|
"MEETUP_DESCRIPTION": "Choose your videoconference system.",
|
||||||
"SELECT_VIDEOCONFERENCE": "Bir video konferans sistemi seç",
|
"SELECT_VIDEOCONFERENCE": "Bir video konferans sistemi seç",
|
||||||
"SALT_CHAT_ROOM": "Eğer isterseniz sohbet odası adına salt kod ekleyebilirsiniz",
|
"SALT_CHAT_ROOM": "Add a prefix to the chatroom name",
|
||||||
"JITSI_CHAT_ROOM": "Jitsi",
|
"JITSI_CHAT_ROOM": "Jitsi",
|
||||||
"APPEARIN_CHAT_ROOM": "AppearIn",
|
"APPEARIN_CHAT_ROOM": "AppearIn",
|
||||||
"TALKY_CHAT_ROOM": "Talky",
|
"TALKY_CHAT_ROOM": "Talky",
|
||||||
|
@ -449,22 +458,31 @@
|
||||||
"PROJECT_DETAILS": "Proje detayları",
|
"PROJECT_DETAILS": "Proje detayları",
|
||||||
"PROJECT_NAME": "Proje adı",
|
"PROJECT_NAME": "Proje adı",
|
||||||
"PROJECT_SLUG": "Proje satırı",
|
"PROJECT_SLUG": "Proje satırı",
|
||||||
"NUMBER_SPRINTS": "Koşu sayısı (belirsiz bir miktar için 0)",
|
|
||||||
"NUMBER_US_POINTS": "KH puanları sayısı (belirlenmemiş miktarlar için 0)",
|
|
||||||
"TAGS": "Etiketler",
|
"TAGS": "Etiketler",
|
||||||
"DESCRIPTION": "Tanım",
|
"DESCRIPTION": "Tanım",
|
||||||
"RECRUITING": "Bu proje insan arıyor mu?",
|
"RECRUITING": "Bu proje insan arıyor mu?",
|
||||||
"RECRUITING_MESSAGE": "Ne aramıştınız?",
|
"RECRUITING_MESSAGE": "Ne aramıştınız?",
|
||||||
"RECRUITING_PLACEHOLDER": "Aradığınız özellikleri yazın",
|
"RECRUITING_PLACEHOLDER": "Aradığınız özellikleri yazın",
|
||||||
"PUBLIC_PROJECT": "Açık Proje",
|
"PUBLIC_PROJECT": "Açık Proje",
|
||||||
"PUBLIC_PROJECT_DESC": "Kullanıcılar projenizi bulabilir ve görebilir",
|
|
||||||
"PRIVATE_PROJECT": "Gizli proje",
|
"PRIVATE_PROJECT": "Gizli proje",
|
||||||
"PRIVATE_PROJECT_DESC": "Normalde bu proje gizli olacak",
|
|
||||||
"PRIVATE_OR_PUBLIC": "Açık ve özel projeler arasındaki fark nedir?",
|
"PRIVATE_OR_PUBLIC": "Açık ve özel projeler arasındaki fark nedir?",
|
||||||
"DELETE": "Bu projeyi sil",
|
"DELETE": "Bu projeyi sil",
|
||||||
"LOGO_HELP": "Resim 80×80 piksel boyutuna ölçeklenecek. ",
|
"LOGO_HELP": "Resim 80×80 piksel boyutuna ölçeklenecek. ",
|
||||||
"CHANGE_LOGO": "Logoyu değiştir",
|
"CHANGE_LOGO": "Logoyu değiştir",
|
||||||
"ACTION_USE_DEFAULT_LOGO": "Varsayılan resmi kullan"
|
"ACTION_USE_DEFAULT_LOGO": "Varsayılan resmi kullan",
|
||||||
|
"MAX_PRIVATE_PROJECTS": "You've reached the maximum number of private projects allowed by your current plan",
|
||||||
|
"MAX_PRIVATE_PROJECTS_MEMBERS": "The maximum number of members for private projects has been exceeded",
|
||||||
|
"MAX_PUBLIC_PROJECTS": "Unfortunately, you've reached the maximum number of public projects allowed by your current plan",
|
||||||
|
"MAX_PUBLIC_PROJECTS_MEMBERS": "The project exceeds your maximum number of members for public projects",
|
||||||
|
"PROJECT_OWNER": "Project owner",
|
||||||
|
"REQUEST_OWNERSHIP": "Request ownership",
|
||||||
|
"REQUEST_OWNERSHIP_CONFIRMATION_TITLE": "Do you want to become the new project owner?",
|
||||||
|
"REQUEST_OWNERSHIP_DESC": "Request that current project owner {{name}} transfer ownership of this project to you.",
|
||||||
|
"REQUEST_OWNERSHIP_BUTTON": "Talep",
|
||||||
|
"REQUEST_OWNERSHIP_SUCCESS": "We'll notify the project owner",
|
||||||
|
"CHANGE_OWNER": "Change owner",
|
||||||
|
"CHANGE_OWNER_SUCCESS_TITLE": "Ok, your request has been sent!",
|
||||||
|
"CHANGE_OWNER_SUCCESS_DESC": "We will notify you by email if the project ownership request is accepted or declined"
|
||||||
},
|
},
|
||||||
"REPORTS": {
|
"REPORTS": {
|
||||||
"TITLE": "Raporlar",
|
"TITLE": "Raporlar",
|
||||||
|
@ -495,7 +513,8 @@
|
||||||
"ISSUE_ADD": "Sorunlara yeni bir özel alan ekle",
|
"ISSUE_ADD": "Sorunlara yeni bir özel alan ekle",
|
||||||
"FIELD_TYPE_TEXT": "Metin",
|
"FIELD_TYPE_TEXT": "Metin",
|
||||||
"FIELD_TYPE_MULTI": "Çoklu-satır",
|
"FIELD_TYPE_MULTI": "Çoklu-satır",
|
||||||
"FIELD_TYPE_DATE": "Tarih"
|
"FIELD_TYPE_DATE": "Tarih",
|
||||||
|
"FIELD_TYPE_URL": "Url"
|
||||||
},
|
},
|
||||||
"PROJECT_VALUES": {
|
"PROJECT_VALUES": {
|
||||||
"PAGE_TITLE": "{{sectionName}} - Proje değerleri- {{projectName}}",
|
"PAGE_TITLE": "{{sectionName}} - Proje değerleri- {{projectName}}",
|
||||||
|
@ -543,7 +562,7 @@
|
||||||
"COUNT_MEMBERS": "bu roldeki üyelerin sayısı {{ role.members_count }} ",
|
"COUNT_MEMBERS": "bu roldeki üyelerin sayısı {{ role.members_count }} ",
|
||||||
"TITLE_DELETE_ROLE": "Rol Sil",
|
"TITLE_DELETE_ROLE": "Rol Sil",
|
||||||
"REPLACEMENT_ROLE": "Bu role sahip kullanıcıların taşınacağı",
|
"REPLACEMENT_ROLE": "Bu role sahip kullanıcıların taşınacağı",
|
||||||
"WARNING_DELETE_ROLE": "<strong>Dikkat lütfen, bütün rol kestirimleri silinecek</strong>",
|
"WARNING_DELETE_ROLE": "Be careful! All role estimations will be removed",
|
||||||
"ERROR_DELETE_ALL": "Bütün değerleri silemezsiniz",
|
"ERROR_DELETE_ALL": "Bütün değerleri silemezsiniz",
|
||||||
"EXTERNAL_USER": "Dış kullanıcı"
|
"EXTERNAL_USER": "Dış kullanıcı"
|
||||||
},
|
},
|
||||||
|
@ -671,6 +690,24 @@
|
||||||
},
|
},
|
||||||
"SUBMENU_THIDPARTIES": {
|
"SUBMENU_THIDPARTIES": {
|
||||||
"TITLE": "Servisler"
|
"TITLE": "Servisler"
|
||||||
|
},
|
||||||
|
"PROJECT_TRANSFER": {
|
||||||
|
"DO_YOU_ACCEPT_PROJECT_OWNERNSHIP": "Would you like to become the new project owner?",
|
||||||
|
"PRIVATE": "Private",
|
||||||
|
"ACCEPTED_PROJECT_OWNERNSHIP": "Congratulations! You're now the new project owner.",
|
||||||
|
"REJECTED_PROJECT_OWNERNSHIP": "OK. We'll contact the current project owner",
|
||||||
|
"ACCEPT": "Kabul et",
|
||||||
|
"REJECT": "Reject",
|
||||||
|
"PROPOSE_OWNERSHIP": "<strong>{{owner}}</strong>, the current owner of the project <strong>{{project}}</strong> has asked that you become the new project owner.",
|
||||||
|
"ADD_COMMENT_QUESTION": "Would you like to send a question to the project owner?",
|
||||||
|
"ADD_COMMENT": "Would you like to add a comment for the project owner?",
|
||||||
|
"UNLIMITED_PROJECTS": "Unlimited",
|
||||||
|
"OWNER_MESSAGE": {
|
||||||
|
"PRIVATE": "Please remember that you can own up to <strong>{{maxProjects}}</strong> private projects. You currently own <strong>{{currentProjects}}</strong> private projects",
|
||||||
|
"PUBLIC": "Please remember that you can own up to <strong>{{maxProjects}}</strong> public projects. You currently own <strong>{{currentProjects}}</strong> public projects"
|
||||||
|
},
|
||||||
|
"CANT_BE_OWNED": "At the moment you cannot become an owner of a project of this type. If you would like to become the owner of this project, please contact the administrator so they change your account settings to enable project ownership.",
|
||||||
|
"CHANGE_MY_PLAN": "Change my plan"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"USER": {
|
"USER": {
|
||||||
|
@ -731,6 +768,11 @@
|
||||||
"FANS_COUNTER_TITLE": "{total, plural, one{bir meraklı} other{# meraklı}}",
|
"FANS_COUNTER_TITLE": "{total, plural, one{bir meraklı} other{# meraklı}}",
|
||||||
"WATCHERS_COUNTER_TITLE": "{total, plural, one{bir takipçi} other{# takipçi}}",
|
"WATCHERS_COUNTER_TITLE": "{total, plural, one{bir takipçi} other{# takipçi}}",
|
||||||
"MEMBERS_COUNTER_TITLE": "{total, plural, one{bir üye} other{# üye}}",
|
"MEMBERS_COUNTER_TITLE": "{total, plural, one{bir üye} other{# üye}}",
|
||||||
|
"BLOCKED_PROJECT": {
|
||||||
|
"BLOCKED": "Blocked project",
|
||||||
|
"THIS_PROJECT_IS_BLOCKED": "This project is temporarily blocked",
|
||||||
|
"TO_UNBLOCK_CONTACT_THE_ADMIN_STAFF": "In order to unblock your projects, contact the administrator."
|
||||||
|
},
|
||||||
"STATS": {
|
"STATS": {
|
||||||
"PROJECT": "proje<br/> puanlar",
|
"PROJECT": "proje<br/> puanlar",
|
||||||
"DEFINED": "tanımlı<br/> puanlar",
|
"DEFINED": "tanımlı<br/> puanlar",
|
||||||
|
@ -777,6 +819,7 @@
|
||||||
"CHANGE_PASSWORD": "Parolayı değiştir",
|
"CHANGE_PASSWORD": "Parolayı değiştir",
|
||||||
"DASHBOARD_TITLE": "Pano",
|
"DASHBOARD_TITLE": "Pano",
|
||||||
"DISCOVER_TITLE": "Trend projeleri keşfet",
|
"DISCOVER_TITLE": "Trend projeleri keşfet",
|
||||||
|
"NEW_ITEM": "Yeni",
|
||||||
"DISCOVER": "Keşfet",
|
"DISCOVER": "Keşfet",
|
||||||
"ACTION_REORDER": "Yeniden sıralamak için sürükleyin ve bırakın"
|
"ACTION_REORDER": "Yeniden sıralamak için sürükleyin ve bırakın"
|
||||||
},
|
},
|
||||||
|
@ -791,7 +834,32 @@
|
||||||
"ERROR_TOO_MANY_REQUEST": "Üzgünüm, bizim honki ponkiler şu anda çok meşgul. Lütfen birkaç dakika içinde yeniden deneyin.",
|
"ERROR_TOO_MANY_REQUEST": "Üzgünüm, bizim honki ponkiler şu anda çok meşgul. Lütfen birkaç dakika içinde yeniden deneyin.",
|
||||||
"ERROR_MESSAGE": "Honki ponkilerimiz döküm dosyanızı içeri aktarırken birkaç problem yaşadı: {{error_message}}",
|
"ERROR_MESSAGE": "Honki ponkilerimiz döküm dosyanızı içeri aktarırken birkaç problem yaşadı: {{error_message}}",
|
||||||
"ERROR_MAX_SIZE_EXCEEDED": "({{fileSize}}) boyutundaki '{{fileName}}' dosya honki ponkilerimiz için oldukça ağır geldi, ({{maxFileSize}}) boyutundan daha küçük bir şeylerle deneyin",
|
"ERROR_MAX_SIZE_EXCEEDED": "({{fileSize}}) boyutundaki '{{fileName}}' dosya honki ponkilerimiz için oldukça ağır geldi, ({{maxFileSize}}) boyutundan daha küçük bir şeylerle deneyin",
|
||||||
"SYNC_SUCCESS": "Projeniz başarıyla içe aktarıldı"
|
"SYNC_SUCCESS": "Projeniz başarıyla içe aktarıldı",
|
||||||
|
"PROJECT_RESTRICTIONS": {
|
||||||
|
"PROJECT_MEMBERS_DESC": "The project you are trying to import has {{members}} members, unfortunately, your current plan allows for a maximum of {{max_memberships}} members per project. If you would like to increase that limit please contact the administrator.",
|
||||||
|
"PRIVATE_PROJECTS_SPACE": {
|
||||||
|
"TITLE": "Unfortunately, your current plan does not allow for additional private projects",
|
||||||
|
"DESC": "The project you are trying to import is private. Unfortunately, your current plan does not allow for additional private projects."
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_SPACE": {
|
||||||
|
"TITLE": "Unfortunately, your current plan does not allow for additional private projects",
|
||||||
|
"DESC": "The project you are trying to import is public. Unfortunately, your current plan does not allow additional public projects."
|
||||||
|
},
|
||||||
|
"PRIVATE_PROJECTS_MEMBERS": {
|
||||||
|
"TITLE": "Your current plan allows for a maximum of {{max_memberships}} members per private project"
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_MEMBERS": {
|
||||||
|
"TITLE": "Your current plan allows for a maximum of {{max_memberships}} members per public project."
|
||||||
|
},
|
||||||
|
"PRIVATE_PROJECTS_SPACE_MEMBERS": {
|
||||||
|
"TITLE": "Unfortunately your current plan doesn't allow additional private projects or an increase of more than {{max_memberships}} members per private project",
|
||||||
|
"DESC": "The project that you are trying to import is private and has {{members}} members."
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_SPACE_MEMBERS": {
|
||||||
|
"TITLE": "Unfortunately your current plan doesn't allow additional public projects or an increase of more than {{max_memberships}} members per public project",
|
||||||
|
"DESC": "The project that you are trying to import is public and has more than {{members}} members."
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"LIKE_BUTTON": {
|
"LIKE_BUTTON": {
|
||||||
"LIKE": "Beğen",
|
"LIKE": "Beğen",
|
||||||
|
@ -819,8 +887,11 @@
|
||||||
"DELETE_ACCOUNT": {
|
"DELETE_ACCOUNT": {
|
||||||
"SECTION_NAME": "Taiga Hesabını Sil",
|
"SECTION_NAME": "Taiga Hesabını Sil",
|
||||||
"CONFIRM": "Taiga hesabınızı silmek istediğinizden emin misiniz?",
|
"CONFIRM": "Taiga hesabınızı silmek istediğinizden emin misiniz?",
|
||||||
"SUBTITLE": "Sizi özleyeceğiz! :-(",
|
"NEWSLETTER_LABEL_TEXT": "Bundan böyle bülteninizi almak istemiyorum.",
|
||||||
"NEWSLETTER_LABEL_TEXT": "Bundan böyle bülteninizi almak istemiyorum."
|
"CANCEL": "Back to settings",
|
||||||
|
"ACCEPT": "Delete account",
|
||||||
|
"BLOCK_PROJECT": "Note that all the projects you own projects will be <strong>blocked</strong> after you delete your account. If you do want a project blocked, transfer ownership to another member of each project prior to deleting your account.",
|
||||||
|
"SUBTITLE": "Sorry to see you go. We'll be here if you should ever consider us again! :("
|
||||||
},
|
},
|
||||||
"DELETE_PROJECT": {
|
"DELETE_PROJECT": {
|
||||||
"TITLE": "Proje Sil",
|
"TITLE": "Proje Sil",
|
||||||
|
@ -876,7 +947,25 @@
|
||||||
},
|
},
|
||||||
"CREATE_MEMBER": {
|
"CREATE_MEMBER": {
|
||||||
"PLACEHOLDER_INVITATION_TEXT": "(Opsiyonel) Davetinize kişiselleştirilmiş bir metin ekleyin. Yeni üyelerinize tatlı bir şeyler söyleyin ;-)",
|
"PLACEHOLDER_INVITATION_TEXT": "(Opsiyonel) Davetinize kişiselleştirilmiş bir metin ekleyin. Yeni üyelerinize tatlı bir şeyler söyleyin ;-)",
|
||||||
"PLACEHOLDER_TYPE_EMAIL": "Bir e-posta girin"
|
"PLACEHOLDER_TYPE_EMAIL": "Bir e-posta girin",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_OWNER": "Unfortunately, this project can't have more than <strong>{{maxMembers}}</strong> members.<br> If you would like to increase the current limit, please contact the administrator.",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE": "Unfortunately, this project can't have more than <strong>{{maxMembers}}</strong> members."
|
||||||
|
},
|
||||||
|
"LEAVE_PROJECT_WARNING": {
|
||||||
|
"TITLE": "Unfortunately, this project can't be left without an owner",
|
||||||
|
"CURRENT_USER_OWNER": {
|
||||||
|
"DESC": "You are the current owner of this project. Before leaving, please transfer ownership to someone else.",
|
||||||
|
"BUTTON": "Change the project owner"
|
||||||
|
},
|
||||||
|
"OTHER_USER_OWNER": {
|
||||||
|
"DESC": "Unfortunately, you can't delete a member who is also the current project owner. First, please assign a new project owner.",
|
||||||
|
"BUTTON": "Request project owner change"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"CHANGE_OWNER": {
|
||||||
|
"TITLE": "Who do you want to be the new project owner?",
|
||||||
|
"ADD_COMMENT": "Add comment",
|
||||||
|
"BUTTON": "Ask this project member to become the new project owner"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"US": {
|
"US": {
|
||||||
|
@ -1304,12 +1393,18 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"WIZARD": {
|
"WIZARD": {
|
||||||
"SECTION_TITLE_CHOOSE_TEMPLATE": "Bir şablon seç",
|
|
||||||
"CHOOSE_TEMPLATE_TEXT": "Hangi şablon sizin projeniz için daha uygun?",
|
|
||||||
"SECTION_TITLE_CREATE_PROJECT": "Proje Oluştur",
|
"SECTION_TITLE_CREATE_PROJECT": "Proje Oluştur",
|
||||||
"CREATE_PROJECT_TEXT": "Taze ve temiz. Heycan verici!",
|
"CREATE_PROJECT_TEXT": "Taze ve temiz. Heycan verici!",
|
||||||
"PROGRESS_TEMPLATE_SELECTION": "Şablon seçimi",
|
"CHOOSE_TEMPLATE": "Which template fits your project best?",
|
||||||
"PROGRESS_NAME_DESCRIPTION": "İsim ve tanım"
|
"CHOOSE_TEMPLATE_TITLE": "More info about project templates",
|
||||||
|
"CHOOSE_TEMPLATE_INFO": "More info",
|
||||||
|
"PROJECT_DETAILS": "Project Details",
|
||||||
|
"PUBLIC_PROJECT": "Public Project",
|
||||||
|
"PRIVATE_PROJECT": "Private Project",
|
||||||
|
"CREATE_PROJECT": "Proje oluştur",
|
||||||
|
"MAX_PRIVATE_PROJECTS": "You've reached the maximum number of private projects",
|
||||||
|
"MAX_PUBLIC_PROJECTS": "Unfortunately, you've reached the maximum number of public projects",
|
||||||
|
"CHANGE_PLANS": "change plans"
|
||||||
},
|
},
|
||||||
"WIKI": {
|
"WIKI": {
|
||||||
"PAGE_TITLE": "{{wikiPageName}} - Wiki - {{projectName}}",
|
"PAGE_TITLE": "{{wikiPageName}} - Wiki - {{projectName}}",
|
||||||
|
|
|
@ -41,7 +41,8 @@
|
||||||
"IOCAINE_TEXT": "感到任務的不堪負荷?確認其它人在編輯任務時知道此狀況,可以點選Iocaine。它可能會成為免疫的致命狀況,只要長期小量消耗,但如果你只是偶而挑戰它可有助表現。",
|
"IOCAINE_TEXT": "感到任務的不堪負荷?確認其它人在編輯任務時知道此狀況,可以點選Iocaine。它可能會成為免疫的致命狀況,只要長期小量消耗,但如果你只是偶而挑戰它可有助表現。",
|
||||||
"CLIENT_REQUIREMENT": "Client requirement is new requirement that was not previously expected and it is required to be part of the project",
|
"CLIENT_REQUIREMENT": "Client requirement is new requirement that was not previously expected and it is required to be part of the project",
|
||||||
"TEAM_REQUIREMENT": "Team requirement is a requirement that must exist in the project but should have no cost for the client",
|
"TEAM_REQUIREMENT": "Team requirement is a requirement that must exist in the project but should have no cost for the client",
|
||||||
"CAPSLOCK_WARNING": "注意你輸入了大寫符號,大小寫字母有所不同",
|
"OWNER": "Project Owner",
|
||||||
|
"CAPSLOCK_WARNING": "Be careful! You are using capital letters in an input field that is case sensitive.",
|
||||||
"FORM_ERRORS": {
|
"FORM_ERRORS": {
|
||||||
"DEFAULT_MESSAGE": "該數值似乎為無效",
|
"DEFAULT_MESSAGE": "該數值似乎為無效",
|
||||||
"TYPE_EMAIL": "該電子郵件應為有效地址",
|
"TYPE_EMAIL": "該電子郵件應為有效地址",
|
||||||
|
@ -65,7 +66,9 @@
|
||||||
"MIN_CHECK": "你必須至少選擇 %s 選項",
|
"MIN_CHECK": "你必須至少選擇 %s 選項",
|
||||||
"MAX_CHECK": "你必須至多選出 %s選項",
|
"MAX_CHECK": "你必須至多選出 %s選項",
|
||||||
"RANGE_CHECK": "你必須在%s 與 %s 之間作出選擇",
|
"RANGE_CHECK": "你必須在%s 與 %s 之間作出選擇",
|
||||||
"EQUAL_TO": "該數值應為一致"
|
"EQUAL_TO": "該數值應為一致",
|
||||||
|
"LINEWIDTH": "One or more lines is perhaps too long. Try to keep under %s characters.",
|
||||||
|
"PIKADAY": "Invalid date format, please use DD MMM YYYY (like 23 Mar 1984)"
|
||||||
},
|
},
|
||||||
"PICKERDATE": {
|
"PICKERDATE": {
|
||||||
"FORMAT": "DD MMM YYYY",
|
"FORMAT": "DD MMM YYYY",
|
||||||
|
@ -315,7 +318,8 @@
|
||||||
"PLACEHOLDER_FIELD": "使用者名稱或電子郵件",
|
"PLACEHOLDER_FIELD": "使用者名稱或電子郵件",
|
||||||
"ACTION_RESET_PASSWORD": "重設密碼 ",
|
"ACTION_RESET_PASSWORD": "重設密碼 ",
|
||||||
"LINK_CANCEL": "不,請帶我回去,我記起來了",
|
"LINK_CANCEL": "不,請帶我回去,我記起來了",
|
||||||
"SUCCESS": "<strong>檢查你的收信箱</strong><br />我們送出了一封信<br />裏面有設定你新電子郵件的相關指示",
|
"SUCCESS_TITLE": "Check your inbox!",
|
||||||
|
"SUCCESS_TEXT": "We sent you an email with the instructions to set a new password",
|
||||||
"ERROR": "按我們的記錄,你尚未註冊"
|
"ERROR": "按我們的記錄,你尚未註冊"
|
||||||
},
|
},
|
||||||
"CHANGE_PASSWORD": {
|
"CHANGE_PASSWORD": {
|
||||||
|
@ -373,7 +377,6 @@
|
||||||
"DEPRECATED_FILE": "棄用?",
|
"DEPRECATED_FILE": "棄用?",
|
||||||
"ADD": "加入新附件 {{maxFileSizeMsg}}",
|
"ADD": "加入新附件 {{maxFileSizeMsg}}",
|
||||||
"DROP": "在此移除附件 ",
|
"DROP": "在此移除附件 ",
|
||||||
"MAX_FILE_SIZE": "[Max. size: {{maxFileSize}}]",
|
|
||||||
"SHOW_DEPRECATED": "+ 顯示棄用的附件",
|
"SHOW_DEPRECATED": "+ 顯示棄用的附件",
|
||||||
"HIDE_DEPRECATED": "+ 隱藏棄用的附件",
|
"HIDE_DEPRECATED": "+ 隱藏棄用的附件",
|
||||||
"COUNT_DEPRECATED": "({{ counter }} 遭棄用)",
|
"COUNT_DEPRECATED": "({{ counter }} 遭棄用)",
|
||||||
|
@ -406,7 +409,9 @@
|
||||||
"TITLE": "管理成員",
|
"TITLE": "管理成員",
|
||||||
"PAGE_TITLE": "成員資格 - {{projectName}}",
|
"PAGE_TITLE": "成員資格 - {{projectName}}",
|
||||||
"ADD_BUTTON": "+ 新成員",
|
"ADD_BUTTON": "+ 新成員",
|
||||||
"ADD_BUTTON_TITLE": "增加新成員"
|
"ADD_BUTTON_TITLE": "增加新成員",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_ADMIN": "Unfortunately, this project has reached its limit of <strong>({{members}})</strong> allowed members.",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_OWNER": "This project has reached its limit of <strong>({{members}})</strong> allowed members. If you would like to increase that limit please contact the administrator."
|
||||||
},
|
},
|
||||||
"PROJECT_EXPORT": {
|
"PROJECT_EXPORT": {
|
||||||
"TITLE": "匯出",
|
"TITLE": "匯出",
|
||||||
|
@ -428,6 +433,10 @@
|
||||||
"DISABLE": "停用",
|
"DISABLE": "停用",
|
||||||
"BACKLOG": "待辦任務優先表",
|
"BACKLOG": "待辦任務優先表",
|
||||||
"BACKLOG_DESCRIPTION": "管理你的 User Story 讓接下來的及優先的工作能被有條理地檢視 ",
|
"BACKLOG_DESCRIPTION": "管理你的 User Story 讓接下來的及優先的工作能被有條理地檢視 ",
|
||||||
|
"NUMBER_SPRINTS": "Expected number of sprints",
|
||||||
|
"NUMBER_SPRINTS_HELP": "0 for an undetermined number",
|
||||||
|
"NUMBER_US_POINTS": "Expected total of story points",
|
||||||
|
"NUMBER_US_POINTS_HELP": "0 for an undetermined number",
|
||||||
"KANBAN": "Kanban(看板)",
|
"KANBAN": "Kanban(看板)",
|
||||||
"KANBAN_DESCRIPTION": "在此看板上組織你的專案",
|
"KANBAN_DESCRIPTION": "在此看板上組織你的專案",
|
||||||
"ISSUES": "問題 ",
|
"ISSUES": "問題 ",
|
||||||
|
@ -435,9 +444,9 @@
|
||||||
"WIKI": "維基",
|
"WIKI": "維基",
|
||||||
"WIKI_DESCRIPTION": "新增,修正或是刪除與他人合作的內容。這裏正是專案文件記錄區",
|
"WIKI_DESCRIPTION": "新增,修正或是刪除與他人合作的內容。這裏正是專案文件記錄區",
|
||||||
"MEETUP": "符合",
|
"MEETUP": "符合",
|
||||||
"MEETUP_DESCRIPTION": "選擇你的視訊系統。有些開發者需要面對面接觸",
|
"MEETUP_DESCRIPTION": "Choose your videoconference system.",
|
||||||
"SELECT_VIDEOCONFERENCE": "選擇一個視訊會議系統 ",
|
"SELECT_VIDEOCONFERENCE": "選擇一個視訊會議系統 ",
|
||||||
"SALT_CHAT_ROOM": "你可以把聊天室名稱加上salt code亂數密碼 ",
|
"SALT_CHAT_ROOM": "Add a prefix to the chatroom name",
|
||||||
"JITSI_CHAT_ROOM": "Jitsi",
|
"JITSI_CHAT_ROOM": "Jitsi",
|
||||||
"APPEARIN_CHAT_ROOM": "AppearIn",
|
"APPEARIN_CHAT_ROOM": "AppearIn",
|
||||||
"TALKY_CHAT_ROOM": "Talky",
|
"TALKY_CHAT_ROOM": "Talky",
|
||||||
|
@ -449,22 +458,31 @@
|
||||||
"PROJECT_DETAILS": "專案細節",
|
"PROJECT_DETAILS": "專案細節",
|
||||||
"PROJECT_NAME": "專案名稱",
|
"PROJECT_NAME": "專案名稱",
|
||||||
"PROJECT_SLUG": "專案代稱",
|
"PROJECT_SLUG": "專案代稱",
|
||||||
"NUMBER_SPRINTS": "衝刺任務數目(0為未決定數量)",
|
|
||||||
"NUMBER_US_POINTS": "使用者故事點數數目 (0 為未決定數目)",
|
|
||||||
"TAGS": "標籤",
|
"TAGS": "標籤",
|
||||||
"DESCRIPTION": "描述",
|
"DESCRIPTION": "描述",
|
||||||
"RECRUITING": "這個專案是否在徵人",
|
"RECRUITING": "這個專案是否在徵人",
|
||||||
"RECRUITING_MESSAGE": "你在找誰?",
|
"RECRUITING_MESSAGE": "你在找誰?",
|
||||||
"RECRUITING_PLACEHOLDER": "定義你要找的資訊",
|
"RECRUITING_PLACEHOLDER": "定義你要找的資訊",
|
||||||
"PUBLIC_PROJECT": "公開專案",
|
"PUBLIC_PROJECT": "公開專案",
|
||||||
"PUBLIC_PROJECT_DESC": "用戶能夠找到並檢視你的專案",
|
|
||||||
"PRIVATE_PROJECT": "不公開專案",
|
"PRIVATE_PROJECT": "不公開專案",
|
||||||
"PRIVATE_PROJECT_DESC": "本專案預設為私密不公開顯示",
|
|
||||||
"PRIVATE_OR_PUBLIC": "公開專案和私密專案有何差異?",
|
"PRIVATE_OR_PUBLIC": "公開專案和私密專案有何差異?",
|
||||||
"DELETE": "刪除此專案",
|
"DELETE": "刪除此專案",
|
||||||
"LOGO_HELP": "此圖片將被裁成80x80px.<br>",
|
"LOGO_HELP": "此圖片將被裁成80x80px.<br>",
|
||||||
"CHANGE_LOGO": "更改圖標",
|
"CHANGE_LOGO": "更改圖標",
|
||||||
"ACTION_USE_DEFAULT_LOGO": "使用設預圖片"
|
"ACTION_USE_DEFAULT_LOGO": "使用設預圖片",
|
||||||
|
"MAX_PRIVATE_PROJECTS": "You've reached the maximum number of private projects allowed by your current plan",
|
||||||
|
"MAX_PRIVATE_PROJECTS_MEMBERS": "The maximum number of members for private projects has been exceeded",
|
||||||
|
"MAX_PUBLIC_PROJECTS": "Unfortunately, you've reached the maximum number of public projects allowed by your current plan",
|
||||||
|
"MAX_PUBLIC_PROJECTS_MEMBERS": "The project exceeds your maximum number of members for public projects",
|
||||||
|
"PROJECT_OWNER": "Project owner",
|
||||||
|
"REQUEST_OWNERSHIP": "Request ownership",
|
||||||
|
"REQUEST_OWNERSHIP_CONFIRMATION_TITLE": "Do you want to become the new project owner?",
|
||||||
|
"REQUEST_OWNERSHIP_DESC": "Request that current project owner {{name}} transfer ownership of this project to you.",
|
||||||
|
"REQUEST_OWNERSHIP_BUTTON": "要求",
|
||||||
|
"REQUEST_OWNERSHIP_SUCCESS": "We'll notify the project owner",
|
||||||
|
"CHANGE_OWNER": "Change owner",
|
||||||
|
"CHANGE_OWNER_SUCCESS_TITLE": "Ok, your request has been sent!",
|
||||||
|
"CHANGE_OWNER_SUCCESS_DESC": "We will notify you by email if the project ownership request is accepted or declined"
|
||||||
},
|
},
|
||||||
"REPORTS": {
|
"REPORTS": {
|
||||||
"TITLE": "Reports",
|
"TITLE": "Reports",
|
||||||
|
@ -495,7 +513,8 @@
|
||||||
"ISSUE_ADD": "在問題中加入客制欄位",
|
"ISSUE_ADD": "在問題中加入客制欄位",
|
||||||
"FIELD_TYPE_TEXT": "單行文字",
|
"FIELD_TYPE_TEXT": "單行文字",
|
||||||
"FIELD_TYPE_MULTI": "多行",
|
"FIELD_TYPE_MULTI": "多行",
|
||||||
"FIELD_TYPE_DATE": "日期"
|
"FIELD_TYPE_DATE": "日期",
|
||||||
|
"FIELD_TYPE_URL": "Url"
|
||||||
},
|
},
|
||||||
"PROJECT_VALUES": {
|
"PROJECT_VALUES": {
|
||||||
"PAGE_TITLE": "{{sectionName}} - 專案數值 - {{projectName}}",
|
"PAGE_TITLE": "{{sectionName}} - 專案數值 - {{projectName}}",
|
||||||
|
@ -543,7 +562,7 @@
|
||||||
"COUNT_MEMBERS": "{{ role.members_count }} 這類角色的成員",
|
"COUNT_MEMBERS": "{{ role.members_count }} 這類角色的成員",
|
||||||
"TITLE_DELETE_ROLE": "删除角色",
|
"TITLE_DELETE_ROLE": "删除角色",
|
||||||
"REPLACEMENT_ROLE": "和此角色有關的使用者都將遭移除 ",
|
"REPLACEMENT_ROLE": "和此角色有關的使用者都將遭移除 ",
|
||||||
"WARNING_DELETE_ROLE": "<strong>小心, 所有角色的估算都將會移除</strong>",
|
"WARNING_DELETE_ROLE": "Be careful! All role estimations will be removed",
|
||||||
"ERROR_DELETE_ALL": "你不能刪除所有數值",
|
"ERROR_DELETE_ALL": "你不能刪除所有數值",
|
||||||
"EXTERNAL_USER": "外部使用者"
|
"EXTERNAL_USER": "外部使用者"
|
||||||
},
|
},
|
||||||
|
@ -671,6 +690,24 @@
|
||||||
},
|
},
|
||||||
"SUBMENU_THIDPARTIES": {
|
"SUBMENU_THIDPARTIES": {
|
||||||
"TITLE": "服務 "
|
"TITLE": "服務 "
|
||||||
|
},
|
||||||
|
"PROJECT_TRANSFER": {
|
||||||
|
"DO_YOU_ACCEPT_PROJECT_OWNERNSHIP": "Would you like to become the new project owner?",
|
||||||
|
"PRIVATE": "Private",
|
||||||
|
"ACCEPTED_PROJECT_OWNERNSHIP": "Congratulations! You're now the new project owner.",
|
||||||
|
"REJECTED_PROJECT_OWNERNSHIP": "OK. We'll contact the current project owner",
|
||||||
|
"ACCEPT": "接受",
|
||||||
|
"REJECT": "Reject",
|
||||||
|
"PROPOSE_OWNERSHIP": "<strong>{{owner}}</strong>, the current owner of the project <strong>{{project}}</strong> has asked that you become the new project owner.",
|
||||||
|
"ADD_COMMENT_QUESTION": "Would you like to send a question to the project owner?",
|
||||||
|
"ADD_COMMENT": "Would you like to add a comment for the project owner?",
|
||||||
|
"UNLIMITED_PROJECTS": "Unlimited",
|
||||||
|
"OWNER_MESSAGE": {
|
||||||
|
"PRIVATE": "Please remember that you can own up to <strong>{{maxProjects}}</strong> private projects. You currently own <strong>{{currentProjects}}</strong> private projects",
|
||||||
|
"PUBLIC": "Please remember that you can own up to <strong>{{maxProjects}}</strong> public projects. You currently own <strong>{{currentProjects}}</strong> public projects"
|
||||||
|
},
|
||||||
|
"CANT_BE_OWNED": "At the moment you cannot become an owner of a project of this type. If you would like to become the owner of this project, please contact the administrator so they change your account settings to enable project ownership.",
|
||||||
|
"CHANGE_MY_PLAN": "Change my plan"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"USER": {
|
"USER": {
|
||||||
|
@ -731,6 +768,11 @@
|
||||||
"FANS_COUNTER_TITLE": "{total, plural, one{一個粉絲} other{# 粉絲}}",
|
"FANS_COUNTER_TITLE": "{total, plural, one{一個粉絲} other{# 粉絲}}",
|
||||||
"WATCHERS_COUNTER_TITLE": "{total, plural, one{一個觀注者} other{# 觀注者}}",
|
"WATCHERS_COUNTER_TITLE": "{total, plural, one{一個觀注者} other{# 觀注者}}",
|
||||||
"MEMBERS_COUNTER_TITLE": "{total, plural, one{one member} other{# members}}",
|
"MEMBERS_COUNTER_TITLE": "{total, plural, one{one member} other{# members}}",
|
||||||
|
"BLOCKED_PROJECT": {
|
||||||
|
"BLOCKED": "Blocked project",
|
||||||
|
"THIS_PROJECT_IS_BLOCKED": "This project is temporarily blocked",
|
||||||
|
"TO_UNBLOCK_CONTACT_THE_ADMIN_STAFF": "In order to unblock your projects, contact the administrator."
|
||||||
|
},
|
||||||
"STATS": {
|
"STATS": {
|
||||||
"PROJECT": "專案<br/> 點數",
|
"PROJECT": "專案<br/> 點數",
|
||||||
"DEFINED": "已定義<br/> 點數",
|
"DEFINED": "已定義<br/> 點數",
|
||||||
|
@ -777,6 +819,7 @@
|
||||||
"CHANGE_PASSWORD": "更換密碼 ",
|
"CHANGE_PASSWORD": "更換密碼 ",
|
||||||
"DASHBOARD_TITLE": "控制台",
|
"DASHBOARD_TITLE": "控制台",
|
||||||
"DISCOVER_TITLE": "發現流行專案",
|
"DISCOVER_TITLE": "發現流行專案",
|
||||||
|
"NEW_ITEM": "新 ",
|
||||||
"DISCOVER": "發現",
|
"DISCOVER": "發現",
|
||||||
"ACTION_REORDER": "拖移 & 丟到來記錄"
|
"ACTION_REORDER": "拖移 & 丟到來記錄"
|
||||||
},
|
},
|
||||||
|
@ -791,7 +834,32 @@
|
||||||
"ERROR_TOO_MANY_REQUEST": "抱歉系統繁忙中,請稍後再試試 ",
|
"ERROR_TOO_MANY_REQUEST": "抱歉系統繁忙中,請稍後再試試 ",
|
||||||
"ERROR_MESSAGE": "我們的系統無法滙入你的資料",
|
"ERROR_MESSAGE": "我們的系統無法滙入你的資料",
|
||||||
"ERROR_MAX_SIZE_EXCEEDED": "'{{fileName}}' ({{fileSize}}) 超過系統容量上限, 請重傳小一點的檔案 ({{maxFileSize}})",
|
"ERROR_MAX_SIZE_EXCEEDED": "'{{fileName}}' ({{fileSize}}) 超過系統容量上限, 請重傳小一點的檔案 ({{maxFileSize}})",
|
||||||
"SYNC_SUCCESS": "你的專案已成功滙入"
|
"SYNC_SUCCESS": "你的專案已成功滙入",
|
||||||
|
"PROJECT_RESTRICTIONS": {
|
||||||
|
"PROJECT_MEMBERS_DESC": "The project you are trying to import has {{members}} members, unfortunately, your current plan allows for a maximum of {{max_memberships}} members per project. If you would like to increase that limit please contact the administrator.",
|
||||||
|
"PRIVATE_PROJECTS_SPACE": {
|
||||||
|
"TITLE": "Unfortunately, your current plan does not allow for additional private projects",
|
||||||
|
"DESC": "The project you are trying to import is private. Unfortunately, your current plan does not allow for additional private projects."
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_SPACE": {
|
||||||
|
"TITLE": "Unfortunately, your current plan does not allow for additional private projects",
|
||||||
|
"DESC": "The project you are trying to import is public. Unfortunately, your current plan does not allow additional public projects."
|
||||||
|
},
|
||||||
|
"PRIVATE_PROJECTS_MEMBERS": {
|
||||||
|
"TITLE": "Your current plan allows for a maximum of {{max_memberships}} members per private project"
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_MEMBERS": {
|
||||||
|
"TITLE": "Your current plan allows for a maximum of {{max_memberships}} members per public project."
|
||||||
|
},
|
||||||
|
"PRIVATE_PROJECTS_SPACE_MEMBERS": {
|
||||||
|
"TITLE": "Unfortunately your current plan doesn't allow additional private projects or an increase of more than {{max_memberships}} members per private project",
|
||||||
|
"DESC": "The project that you are trying to import is private and has {{members}} members."
|
||||||
|
},
|
||||||
|
"PUBLIC_PROJECTS_SPACE_MEMBERS": {
|
||||||
|
"TITLE": "Unfortunately your current plan doesn't allow additional public projects or an increase of more than {{max_memberships}} members per public project",
|
||||||
|
"DESC": "The project that you are trying to import is public and has more than {{members}} members."
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"LIKE_BUTTON": {
|
"LIKE_BUTTON": {
|
||||||
"LIKE": "喜歡",
|
"LIKE": "喜歡",
|
||||||
|
@ -819,8 +887,11 @@
|
||||||
"DELETE_ACCOUNT": {
|
"DELETE_ACCOUNT": {
|
||||||
"SECTION_NAME": "刪除Taiga帳戶",
|
"SECTION_NAME": "刪除Taiga帳戶",
|
||||||
"CONFIRM": "你確定要刪除Taiga帳戶嗎?",
|
"CONFIRM": "你確定要刪除Taiga帳戶嗎?",
|
||||||
"SUBTITLE": "我們會想念你:-(",
|
"NEWSLETTER_LABEL_TEXT": "不願再收到電子月報",
|
||||||
"NEWSLETTER_LABEL_TEXT": "不願再收到電子月報"
|
"CANCEL": "Back to settings",
|
||||||
|
"ACCEPT": "Delete account",
|
||||||
|
"BLOCK_PROJECT": "Note that all the projects you own projects will be <strong>blocked</strong> after you delete your account. If you do want a project blocked, transfer ownership to another member of each project prior to deleting your account.",
|
||||||
|
"SUBTITLE": "Sorry to see you go. We'll be here if you should ever consider us again! :("
|
||||||
},
|
},
|
||||||
"DELETE_PROJECT": {
|
"DELETE_PROJECT": {
|
||||||
"TITLE": "刪除專案",
|
"TITLE": "刪除專案",
|
||||||
|
@ -876,7 +947,25 @@
|
||||||
},
|
},
|
||||||
"CREATE_MEMBER": {
|
"CREATE_MEMBER": {
|
||||||
"PLACEHOLDER_INVITATION_TEXT": "(非必要) 加上一段私人文字在邀請信,告訴你的新成員一些好事 ;-)",
|
"PLACEHOLDER_INVITATION_TEXT": "(非必要) 加上一段私人文字在邀請信,告訴你的新成員一些好事 ;-)",
|
||||||
"PLACEHOLDER_TYPE_EMAIL": "輸入一個電郵地址"
|
"PLACEHOLDER_TYPE_EMAIL": "輸入一個電郵地址",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE_FOR_OWNER": "Unfortunately, this project can't have more than <strong>{{maxMembers}}</strong> members.<br> If you would like to increase the current limit, please contact the administrator.",
|
||||||
|
"LIMIT_USERS_WARNING_MESSAGE": "Unfortunately, this project can't have more than <strong>{{maxMembers}}</strong> members."
|
||||||
|
},
|
||||||
|
"LEAVE_PROJECT_WARNING": {
|
||||||
|
"TITLE": "Unfortunately, this project can't be left without an owner",
|
||||||
|
"CURRENT_USER_OWNER": {
|
||||||
|
"DESC": "You are the current owner of this project. Before leaving, please transfer ownership to someone else.",
|
||||||
|
"BUTTON": "Change the project owner"
|
||||||
|
},
|
||||||
|
"OTHER_USER_OWNER": {
|
||||||
|
"DESC": "Unfortunately, you can't delete a member who is also the current project owner. First, please assign a new project owner.",
|
||||||
|
"BUTTON": "Request project owner change"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"CHANGE_OWNER": {
|
||||||
|
"TITLE": "Who do you want to be the new project owner?",
|
||||||
|
"ADD_COMMENT": "Add comment",
|
||||||
|
"BUTTON": "Ask this project member to become the new project owner"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"US": {
|
"US": {
|
||||||
|
@ -1304,12 +1393,18 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"WIZARD": {
|
"WIZARD": {
|
||||||
"SECTION_TITLE_CHOOSE_TEMPLATE": "選擇外觀 ",
|
|
||||||
"CHOOSE_TEMPLATE_TEXT": "哪一個樣版最適合你的專案",
|
|
||||||
"SECTION_TITLE_CREATE_PROJECT": "創建專案",
|
"SECTION_TITLE_CREATE_PROJECT": "創建專案",
|
||||||
"CREATE_PROJECT_TEXT": "新鮮與乾淨,太好了",
|
"CREATE_PROJECT_TEXT": "新鮮與乾淨,太好了",
|
||||||
"PROGRESS_TEMPLATE_SELECTION": "外觀選擇",
|
"CHOOSE_TEMPLATE": "Which template fits your project best?",
|
||||||
"PROGRESS_NAME_DESCRIPTION": "名稱與描述"
|
"CHOOSE_TEMPLATE_TITLE": "More info about project templates",
|
||||||
|
"CHOOSE_TEMPLATE_INFO": "More info",
|
||||||
|
"PROJECT_DETAILS": "Project Details",
|
||||||
|
"PUBLIC_PROJECT": "Public Project",
|
||||||
|
"PRIVATE_PROJECT": "Private Project",
|
||||||
|
"CREATE_PROJECT": "創建專案",
|
||||||
|
"MAX_PRIVATE_PROJECTS": "You've reached the maximum number of private projects",
|
||||||
|
"MAX_PUBLIC_PROJECTS": "Unfortunately, you've reached the maximum number of public projects",
|
||||||
|
"CHANGE_PLANS": "change plans"
|
||||||
},
|
},
|
||||||
"WIKI": {
|
"WIKI": {
|
||||||
"PAGE_TITLE": "{{wikiPageName}} - 維基 - {{projectName}}",
|
"PAGE_TITLE": "{{wikiPageName}} - 維基 - {{projectName}}",
|
||||||
|
|
|
@ -13,6 +13,12 @@
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.attachment-name {
|
||||||
|
@extend %light;
|
||||||
|
@include ellipsis(175px);
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
}
|
||||||
.attachment-image {
|
.attachment-image {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
@ -38,20 +44,20 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
}
|
}
|
||||||
.attachment-name {
|
|
||||||
@extend %light;
|
|
||||||
@include ellipsis(175px);
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
.icon-delete {
|
.icon-delete {
|
||||||
color: $red-light;
|
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
transition: opacity .3s ease-in;
|
transition: opacity .2s ease-in;
|
||||||
transition-delay: .2s;
|
transition-delay: .1s;
|
||||||
|
svg {
|
||||||
|
fill: $red-light;
|
||||||
|
}
|
||||||
&:hover {
|
&:hover {
|
||||||
|
svg {
|
||||||
color: $red;
|
color: $red;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.loading-container {
|
.loading-container {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
@ -67,4 +73,3 @@
|
||||||
max-width: 3rem;
|
max-width: 3rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
|
@ -47,36 +47,31 @@
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
justify-content: space-around;
|
justify-content: space-around;
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
.settings,
|
|
||||||
.editable-settings {
|
|
||||||
@extend %large;
|
|
||||||
color: $gray-light;
|
|
||||||
&:hover {
|
|
||||||
color: $primary;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.settings {
|
.settings {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
.editable-settings {
|
.editable-settings {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
.icon-delete {
|
svg {
|
||||||
|
fill: $gray-light;
|
||||||
|
}
|
||||||
|
.icon-edit,
|
||||||
|
.icon-save {
|
||||||
&:hover {
|
&:hover {
|
||||||
color: $red;
|
fill: $primary;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.icon-drag-v {
|
.icon-trash,
|
||||||
|
.icon-close {
|
||||||
|
&:hover {
|
||||||
|
fill: $red;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.icon-drag {
|
||||||
cursor: move;
|
cursor: move;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.icon-delete {
|
|
||||||
@extend %large;
|
|
||||||
color: $gray-light;
|
|
||||||
&:hover {
|
|
||||||
color: $red;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.editable-attachment-deprecated {
|
.editable-attachment-deprecated {
|
||||||
display: flex;
|
display: flex;
|
||||||
padding-left: 1rem;
|
padding-left: 1rem;
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.attachments-header {
|
.attachments-header {
|
||||||
align-content: space-between;
|
align-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
background: $whitish;
|
background: $whitish;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
@ -34,9 +34,9 @@
|
||||||
}
|
}
|
||||||
svg {
|
svg {
|
||||||
fill: $white;
|
fill: $white;
|
||||||
height: 1.25rem;
|
height: 1.2rem;
|
||||||
margin-bottom: -.2rem;
|
margin-bottom: -.2rem;
|
||||||
width: 1.25rem;
|
width: 1.2rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
button {
|
button {
|
||||||
|
@ -51,7 +51,6 @@
|
||||||
svg {
|
svg {
|
||||||
fill: $gray-light;
|
fill: $gray-light;
|
||||||
height: 1.6rem;
|
height: 1.6rem;
|
||||||
margin-bottom: -.2rem;
|
|
||||||
width: 1.6rem;
|
width: 1.6rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -78,6 +77,7 @@
|
||||||
|
|
||||||
.single-attachment {
|
.single-attachment {
|
||||||
@extend %small;
|
@extend %small;
|
||||||
|
background: rgba($white, .9);
|
||||||
&.ui-sortable-helper {
|
&.ui-sortable-helper {
|
||||||
background: lighten($primary, 60%);
|
background: lighten($primary, 60%);
|
||||||
box-shadow: 1px 1px 10px rgba($black, .1);
|
box-shadow: 1px 1px 10px rgba($black, .1);
|
||||||
|
@ -90,12 +90,11 @@
|
||||||
.attachment-name {
|
.attachment-name {
|
||||||
@extend %bold;
|
@extend %bold;
|
||||||
padding-right: 1rem;
|
padding-right: 1rem;
|
||||||
.icon {
|
|
||||||
margin-right: .25rem;
|
|
||||||
}
|
|
||||||
svg {
|
svg {
|
||||||
height: 1.2rem;
|
fill: $gray;
|
||||||
width: 1.2rem;
|
height: .9rem;
|
||||||
|
margin-right: .25rem;
|
||||||
|
width: .9rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.attachment-size {
|
.attachment-size {
|
||||||
|
|
|
@ -30,8 +30,9 @@
|
||||||
span {{::vm.attachment.getIn(['file', 'name'])}}
|
span {{::vm.attachment.getIn(['file', 'name'])}}
|
||||||
|
|
||||||
a.icon-delete(
|
a.icon-delete(
|
||||||
ng-if="vm.attachment.get('editable')"
|
|
||||||
href=""
|
href=""
|
||||||
title="{{'COMMON.DELETE' | translate}}"
|
title="{{'COMMON.DELETE' | translate}}"
|
||||||
ng-click="vm.delete()"
|
ng-click="vm.delete()"
|
||||||
)
|
)
|
||||||
|
svg.icon.icon-trash
|
||||||
|
use(xlink:href="#icon-trash")
|
||||||
|
|
|
@ -12,8 +12,8 @@ form.single-attachment(
|
||||||
target="_blank"
|
target="_blank"
|
||||||
download="{{::vm.attachment.getIn(['file', 'name'])}}"
|
download="{{::vm.attachment.getIn(['file', 'name'])}}"
|
||||||
)
|
)
|
||||||
span.icon
|
svg.icon.icon-attachment
|
||||||
include ../../../svg/attachment.svg
|
use(xlink:href="#icon-attachment")
|
||||||
span {{::vm.attachment.getIn(['file', 'name'])}}
|
span {{::vm.attachment.getIn(['file', 'name'])}}
|
||||||
|
|
||||||
.attachment-comments(ng-if="!vm.attachment.get('editable') && vm.attachment.getIn(['file', 'description'])")
|
.attachment-comments(ng-if="!vm.attachment.get('editable') && vm.attachment.getIn(['file', 'description'])")
|
||||||
|
@ -47,34 +47,44 @@ form.single-attachment(
|
||||||
|
|
||||||
.attachment-settings(ng-if="vm.attachment.get('editable')")
|
.attachment-settings(ng-if="vm.attachment.get('editable')")
|
||||||
div(tg-loading="vm.attachment.get('loading')")
|
div(tg-loading="vm.attachment.get('loading')")
|
||||||
a.editable-settings.icon.icon-floppy(
|
a.editable-settings(
|
||||||
href=""
|
href=""
|
||||||
title="{{'COMMON.SAVE' | translate}}"
|
title="{{'COMMON.SAVE' | translate}}"
|
||||||
ng-click="vm.save()"
|
ng-click="vm.save()"
|
||||||
)
|
)
|
||||||
|
svg.drag.icon.icon-save
|
||||||
|
use(xlink:href="#icon-save")
|
||||||
|
|
||||||
div
|
div
|
||||||
a.editable-settings.icon.icon-delete(
|
a.editable-settings(
|
||||||
href=""
|
href=""
|
||||||
title="{{'COMMON.CANCEL' | translate}}"
|
title="{{'COMMON.CANCEL' | translate}}"
|
||||||
ng-click="vm.editMode(false)"
|
ng-click="vm.editMode(false)"
|
||||||
)
|
)
|
||||||
|
svg.drag.icon.icon-close
|
||||||
|
use(xlink:href="#icon-close")
|
||||||
|
|
||||||
.attachment-settings(
|
.attachment-settings(
|
||||||
ng-if="!vm.attachment.get('editable')"
|
ng-if="!vm.attachment.get('editable')"
|
||||||
tg-check-permission="modify_{{vm.type}}"
|
tg-check-permission="modify_{{vm.type}}"
|
||||||
)
|
)
|
||||||
a.settings.icon.icon-edit(
|
a.settings(
|
||||||
href=""
|
href=""
|
||||||
title="{{'COMMON.EDIT' | translate}}"
|
title="{{'COMMON.EDIT' | translate}}"
|
||||||
ng-click="vm.editMode(true)"
|
ng-click="vm.editMode(true)"
|
||||||
)
|
)
|
||||||
a.settings.icon.icon-delete(
|
svg.drag.icon.icon-edit
|
||||||
|
use(xlink:href="#icon-edit")
|
||||||
|
a.settings(
|
||||||
href=""
|
href=""
|
||||||
title="{{'COMMON.DELETE' | translate}}"
|
title="{{'COMMON.DELETE' | translate}}"
|
||||||
ng-click="vm.delete()"
|
ng-click="vm.delete()"
|
||||||
)
|
)
|
||||||
a.settings.icon.icon-drag-v(
|
svg.drag.icon.icon-trash
|
||||||
|
use(xlink:href="#icon-trash")
|
||||||
|
a.settings(
|
||||||
href=""
|
href=""
|
||||||
title="{{'COMMON.DRAG' | translate}}"
|
title="{{'COMMON.DRAG' | translate}}"
|
||||||
)
|
)
|
||||||
|
svg.drag.icon.icon-drag
|
||||||
|
use(xlink:href="#icon-drag")
|
||||||
|
|
|
@ -11,21 +11,24 @@ section.attachments(
|
||||||
ng-click="vm.setMode('gallery')"
|
ng-click="vm.setMode('gallery')"
|
||||||
title="{{ 'ATTACHMENT.GALLERY_VIEW_MODE' | translate }}"
|
title="{{ 'ATTACHMENT.GALLERY_VIEW_MODE' | translate }}"
|
||||||
)
|
)
|
||||||
include ../../../svg/gallery.svg
|
svg.icon.icon-gallery
|
||||||
|
use(xlink:href="#icon-gallery")
|
||||||
button.view-list(
|
button.view-list(
|
||||||
ng-class="{'is-active': vm.mode == 'list'}"
|
ng-class="{'is-active': vm.mode == 'list'}"
|
||||||
ng-if="vm.attachments.size"
|
ng-if="vm.attachments.size"
|
||||||
ng-click="vm.setMode('list')"
|
ng-click="vm.setMode('list')"
|
||||||
title="{{ 'ATTACHMENT.LIST_VIEW_MODE' | translate }}"
|
title="{{ 'ATTACHMENT.LIST_VIEW_MODE' | translate }}"
|
||||||
)
|
)
|
||||||
include ../../../svg/list.svg
|
svg.icon.icon-list
|
||||||
|
use(xlink:href="#icon-list")
|
||||||
.add-attach(
|
.add-attach(
|
||||||
tg-check-permission="modify_{{vm.type}}"
|
tg-check-permission="modify_{{vm.type}}"
|
||||||
title!="{{'ATTACHMENT.ADD' | translate}}"
|
title!="{{'ATTACHMENT.ADD' | translate}}"
|
||||||
)
|
)
|
||||||
|
|
||||||
label.add-attachment-button(for="add-attach")
|
label.add-attachment-button(for="add-attach")
|
||||||
include ../../../svg/add.svg
|
svg.icon.icon-add
|
||||||
|
use(xlink:href="#icon-add")
|
||||||
|
|
||||||
input(
|
input(
|
||||||
id="add-attach",
|
id="add-attach",
|
||||||
|
@ -52,12 +55,11 @@ section.attachments(
|
||||||
|
|
||||||
.single-attachment(ng-repeat="file in vm.uploadingAttachments()")
|
.single-attachment(ng-repeat="file in vm.uploadingAttachments()")
|
||||||
.attachment-name
|
.attachment-name
|
||||||
span.icon
|
svg.icon.icon-attachment
|
||||||
include ../../../svg/attachment.svg
|
use(xlink:href="#icon-attachment")
|
||||||
span {{file.name}}
|
span {{file.name}}
|
||||||
.attachment-size
|
.attachment-size
|
||||||
span {{file.size | sizeFormat}}
|
span {{file.size | sizeFormat}}
|
||||||
|
|
||||||
.attachment-comments
|
.attachment-comments
|
||||||
span {{file.progressMessage}}
|
span {{file.progressMessage}}
|
||||||
.percentage(ng-style="{'width': file.progressPercent}")
|
.percentage(ng-style="{'width': file.progressPercent}")
|
||||||
|
|
|
@ -5,7 +5,8 @@ section.attachments(tg-attachments-drop="vm.addAttachments(files)")
|
||||||
h3.attachments-title #[span.attachments-num {{vm.attachments.size}}] #[span.attachments-text(translate="ATTACHMENT.SECTION_NAME")]
|
h3.attachments-title #[span.attachments-num {{vm.attachments.size}}] #[span.attachments-text(translate="ATTACHMENT.SECTION_NAME")]
|
||||||
.add-attach(title!="{{'ATTACHMENT.ADD' | translate}}")
|
.add-attach(title!="{{'ATTACHMENT.ADD' | translate}}")
|
||||||
label.add-attachment-button(for="add-attach")
|
label.add-attachment-button(for="add-attach")
|
||||||
include ../../../svg/add.svg
|
svg.icon.icon-add
|
||||||
|
use(xlink:href="#icon-add")
|
||||||
input(
|
input(
|
||||||
id="add-attach"
|
id="add-attach"
|
||||||
type="file"
|
type="file"
|
||||||
|
@ -18,8 +19,8 @@ section.attachments(tg-attachments-drop="vm.addAttachments(files)")
|
||||||
.attachment-body.attachment-list
|
.attachment-body.attachment-list
|
||||||
.single-attachment(tg-repeat="attachment in vm.attachments track by $index")
|
.single-attachment(tg-repeat="attachment in vm.attachments track by $index")
|
||||||
.attachment-name
|
.attachment-name
|
||||||
span.icon
|
svg.icon.icon-attachment
|
||||||
include ../../../svg/attachment.svg
|
use(xlink:href="#icon-attachment")
|
||||||
span {{attachment.get('name')}}
|
span {{attachment.get('name')}}
|
||||||
.attachment-size
|
.attachment-size
|
||||||
span {{attachment.get('size') | sizeFormat}}
|
span {{attachment.get('size') | sizeFormat}}
|
||||||
|
@ -30,4 +31,5 @@ section.attachments(tg-attachments-drop="vm.addAttachments(files)")
|
||||||
title="{{'COMMON.DELETE' | translate}}"
|
title="{{'COMMON.DELETE' | translate}}"
|
||||||
ng-click="vm.deleteAttachment(attachment)"
|
ng-click="vm.deleteAttachment(attachment)"
|
||||||
)
|
)
|
||||||
include ../../../svg/remove.svg
|
svg.icon.icon-trash
|
||||||
|
use(xlink:href="#icon-trash")
|
||||||
|
|
|
@ -23,7 +23,7 @@ AttachmentSortableDirective = ($parse) ->
|
||||||
|
|
||||||
el.sortable({
|
el.sortable({
|
||||||
items: "div[tg-bind-scope]"
|
items: "div[tg-bind-scope]"
|
||||||
handle: "a.settings.icon.icon-drag-v"
|
handle: ".settings .icon"
|
||||||
containment: ".attachments"
|
containment: ".attachments"
|
||||||
dropOnEmpty: true
|
dropOnEmpty: true
|
||||||
helper: 'clone'
|
helper: 'clone'
|
||||||
|
|
|
@ -9,4 +9,5 @@
|
||||||
href=""
|
href=""
|
||||||
title="{{ COMMON.CLOSE | translate }}"
|
title="{{ COMMON.CLOSE | translate }}"
|
||||||
)
|
)
|
||||||
include ../../../svg/remove.svg
|
svg.icon.icon-close
|
||||||
|
use(xlink:href="#icon-close")
|
||||||
|
|
|
@ -95,25 +95,28 @@ class ProjectMenuController
|
||||||
return sectionName
|
return sectionName
|
||||||
|
|
||||||
_videoConferenceUrl: () ->
|
_videoConferenceUrl: () ->
|
||||||
|
# Get base url
|
||||||
if @.project.get("videoconferences") == "appear-in"
|
if @.project.get("videoconferences") == "appear-in"
|
||||||
baseUrl = "https://appear.in/"
|
baseUrl = "https://appear.in/"
|
||||||
else if @.project.get("videoconferences") == "talky"
|
else if @.project.get("videoconferences") == "talky"
|
||||||
baseUrl = "https://talky.io/"
|
baseUrl = "https://talky.io/"
|
||||||
else if @.project.get("videoconferences") == "jitsi"
|
else if @.project.get("videoconferences") == "jitsi"
|
||||||
baseUrl = "https://meet.jit.si/"
|
baseUrl = "https://meet.jit.si/"
|
||||||
url = @.project.get("slug") + "-" + taiga.slugify(@.project.get("videoconferences_extra_data"))
|
|
||||||
url = url.replace(/-/g, "")
|
|
||||||
return baseUrl + url
|
|
||||||
else if @.project.get("videoconferences") == "custom"
|
else if @.project.get("videoconferences") == "custom"
|
||||||
return @.project.get("videoconferences_extra_data")
|
return @.project.get("videoconferences_extra_data")
|
||||||
else
|
else
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
# Add prefix to the chat room name if exist
|
||||||
if @.project.get("videoconferences_extra_data")
|
if @.project.get("videoconferences_extra_data")
|
||||||
url = @.project.get("slug") + "-" + @.project.get("videoconferences_extra_data")
|
url = @.project.get("slug") + "-" + taiga.slugify(@.project.get("videoconferences_extra_data"))
|
||||||
else
|
else
|
||||||
url = @.project.get("slug")
|
url = @.project.get("slug")
|
||||||
|
|
||||||
|
# Some special cases
|
||||||
|
if @.project.get("videoconferences") == "jitsi"
|
||||||
|
url = url.replace(/-/g, "")
|
||||||
|
|
||||||
return baseUrl + url
|
return baseUrl + url
|
||||||
|
|
||||||
angular.module("taigaComponents").controller("ProjectMenu", ProjectMenuController)
|
angular.module("taigaComponents").controller("ProjectMenu", ProjectMenuController)
|
||||||
|
|
|
@ -12,7 +12,8 @@ nav.menu(
|
||||||
aria-label="{{'PROJECT.SECTION.SEARCH' | translate}}"
|
aria-label="{{'PROJECT.SECTION.SEARCH' | translate}}"
|
||||||
tabindex="1"
|
tabindex="1"
|
||||||
)
|
)
|
||||||
span.icon.icon-search
|
svg.icon.icon-search
|
||||||
|
use(xlink:href="#icon-search")
|
||||||
span.helper(translate="PROJECT.SECTION.SEARCH")
|
span.helper(translate="PROJECT.SECTION.SEARCH")
|
||||||
|
|
||||||
li(id="nav-timeline")
|
li(id="nav-timeline")
|
||||||
|
@ -22,7 +23,8 @@ nav.menu(
|
||||||
aria-label="{{'PROJECT.SECTION.TIMELINE' | translate}}"
|
aria-label="{{'PROJECT.SECTION.TIMELINE' | translate}}"
|
||||||
tabindex="2"
|
tabindex="2"
|
||||||
)
|
)
|
||||||
include ../../../svg/timeline.svg
|
svg.icon.icon-timeline
|
||||||
|
use(xlink:href="#icon-timeline")
|
||||||
span.helper(translate="PROJECT.SECTION.TIMELINE")
|
span.helper(translate="PROJECT.SECTION.TIMELINE")
|
||||||
|
|
||||||
li(id="nav-backlog", ng-if="vm.menu.get('backlog')")
|
li(id="nav-backlog", ng-if="vm.menu.get('backlog')")
|
||||||
|
@ -32,7 +34,8 @@ nav.menu(
|
||||||
aria-label="{{'PROJECT.SECTION.BACKLOG' | translate}}"
|
aria-label="{{'PROJECT.SECTION.BACKLOG' | translate}}"
|
||||||
tabindex="2"
|
tabindex="2"
|
||||||
)
|
)
|
||||||
span.icon.icon-scrum
|
svg.icon.icon-scrum
|
||||||
|
use(xlink:href="#icon-scrum")
|
||||||
span.helper(translate="PROJECT.SECTION.BACKLOG")
|
span.helper(translate="PROJECT.SECTION.BACKLOG")
|
||||||
|
|
||||||
li(id="nav-kanban", ng-if="vm.menu.get('kanban')")
|
li(id="nav-kanban", ng-if="vm.menu.get('kanban')")
|
||||||
|
@ -42,7 +45,8 @@ nav.menu(
|
||||||
aria-label="{{'PROJECT.SECTION.KANBAN' | translate}}"
|
aria-label="{{'PROJECT.SECTION.KANBAN' | translate}}"
|
||||||
tabindex="3"
|
tabindex="3"
|
||||||
)
|
)
|
||||||
span.icon.icon-kanban
|
svg.icon.icon-kanban
|
||||||
|
use(xlink:href="#icon-kanban")
|
||||||
span.helper(translate="PROJECT.SECTION.KANBAN")
|
span.helper(translate="PROJECT.SECTION.KANBAN")
|
||||||
|
|
||||||
li(id="nav-issues", ng-if="vm.menu.get('issues')")
|
li(id="nav-issues", ng-if="vm.menu.get('issues')")
|
||||||
|
@ -52,7 +56,8 @@ nav.menu(
|
||||||
aria-label="{{'PROJECT.SECTION.ISSUES' | translate}}"
|
aria-label="{{'PROJECT.SECTION.ISSUES' | translate}}"
|
||||||
tabindex="4"
|
tabindex="4"
|
||||||
)
|
)
|
||||||
span.icon.icon-issues
|
svg.icon.icon-issues
|
||||||
|
use(xlink:href="#icon-issues")
|
||||||
span.helper(translate="PROJECT.SECTION.ISSUES")
|
span.helper(translate="PROJECT.SECTION.ISSUES")
|
||||||
|
|
||||||
li(id="nav-wiki", ng-if="vm.menu.get('wiki')")
|
li(id="nav-wiki", ng-if="vm.menu.get('wiki')")
|
||||||
|
@ -62,7 +67,8 @@ nav.menu(
|
||||||
aria-label="{{'PROJECT.SECTION.WIKI' | translate}}"
|
aria-label="{{'PROJECT.SECTION.WIKI' | translate}}"
|
||||||
tabindex="5"
|
tabindex="5"
|
||||||
)
|
)
|
||||||
span.icon.icon-wiki
|
svg.icon.icon-wiki
|
||||||
|
use(xlink:href="#icon-wiki")
|
||||||
span.helper(translate="PROJECT.SECTION.WIKI")
|
span.helper(translate="PROJECT.SECTION.WIKI")
|
||||||
|
|
||||||
li(id="nav-team")
|
li(id="nav-team")
|
||||||
|
@ -72,7 +78,8 @@ nav.menu(
|
||||||
aria-label="{{'PROJECT.SECTION.TEAM' | translate}}"
|
aria-label="{{'PROJECT.SECTION.TEAM' | translate}}"
|
||||||
tabindex="6"
|
tabindex="6"
|
||||||
)
|
)
|
||||||
span(class="icon icon-team")
|
svg.icon.icon-team
|
||||||
|
use(xlink:href="#icon-team")
|
||||||
span.helper(translate="PROJECT.SECTION.TEAM")
|
span.helper(translate="PROJECT.SECTION.TEAM")
|
||||||
|
|
||||||
li(id="nav-video", ng-if="vm.project.get('videoconferenceUrl')")
|
li(id="nav-video", ng-if="vm.project.get('videoconferenceUrl')")
|
||||||
|
@ -82,15 +89,17 @@ nav.menu(
|
||||||
aria-label="{{'PROJECT.SECTION.MEETUP' | translate}}"
|
aria-label="{{'PROJECT.SECTION.MEETUP' | translate}}"
|
||||||
tabindex="7"
|
tabindex="7"
|
||||||
)
|
)
|
||||||
span.icon.icon-video
|
svg.icon.icon-bubble
|
||||||
|
use(xlink:href="#icon-bubble")
|
||||||
span.helper(translate="PROJECT.SECTION.MEETUP")
|
span.helper(translate="PROJECT.SECTION.MEETUP")
|
||||||
|
|
||||||
li(id="nav-admin", ng-if="vm.project.get('i_am_owner')")
|
li(id="nav-admin", ng-if="vm.project.get('i_am_admin')")
|
||||||
a(
|
a(
|
||||||
tg-nav="project-admin-home:project=vm.project.get('slug')"
|
tg-nav="project-admin-home:project=vm.project.get('slug')"
|
||||||
ng-class="{active: vm.active == 'admin'}"
|
ng-class="{active: vm.active == 'admin'}"
|
||||||
aria-label="{{'PROJECT.SECTION.ADMIN' | translate}}"
|
aria-label="{{'PROJECT.SECTION.ADMIN' | translate}}"
|
||||||
tabindex="8"
|
tabindex="8"
|
||||||
)
|
)
|
||||||
span.icon.icon-settings
|
svg.icon.icon-settings
|
||||||
|
use(xlink:href="#icon-settings")
|
||||||
span.helper(translate="PROJECT.SECTION.ADMIN")
|
span.helper(translate="PROJECT.SECTION.ADMIN")
|
||||||
|
|
|
@ -9,7 +9,8 @@ a.vote-inner(
|
||||||
ng-mouseleave="vm.showTextWhenMouseIsLeave()"
|
ng-mouseleave="vm.showTextWhenMouseIsLeave()"
|
||||||
)
|
)
|
||||||
span.track-icon
|
span.track-icon
|
||||||
include ../../../svg/upvote.svg
|
svg.icon.icon-upvote
|
||||||
|
use(xlink:href="#icon-upvote")
|
||||||
span.track-button-counter(
|
span.track-button-counter(
|
||||||
title="{{ 'COMMON.VOTE_BUTTON.COUNTER_TITLE'|translate:{total:vm.item.total_voters||0}:'messageformat' }}",
|
title="{{ 'COMMON.VOTE_BUTTON.COUNTER_TITLE'|translate:{total:vm.item.total_voters||0}:'messageformat' }}",
|
||||||
tg-loading="vm.loading"
|
tg-loading="vm.loading"
|
||||||
|
@ -18,7 +19,8 @@ a.vote-inner(
|
||||||
//- Anonymous user button
|
//- Anonymous user button
|
||||||
span.vote-inner(ng-if="::!vm.user")
|
span.vote-inner(ng-if="::!vm.user")
|
||||||
span.track-icon
|
span.track-icon
|
||||||
include ../../../svg/upvote.svg
|
svg.icon.icon-upvote
|
||||||
|
use(xlink:href="#icon-upvote")
|
||||||
span.track-button-counter(
|
span.track-button-counter(
|
||||||
title="{{ 'COMMON.VOTE_BUTTON.COUNTER_TITLE'|translate:{total:vm.item.total_voters||0}:'messageformat' }}"
|
title="{{ 'COMMON.VOTE_BUTTON.COUNTER_TITLE'|translate:{total:vm.item.total_voters||0}:'messageformat' }}"
|
||||||
) {{ ::vm.item.total_voters }}
|
) {{ ::vm.item.total_voters }}
|
||||||
|
|
|
@ -13,20 +13,18 @@ div.ticket-watch-inner
|
||||||
ng-mouseover="vm.showTextWhenMouseIsOver()"
|
ng-mouseover="vm.showTextWhenMouseIsOver()"
|
||||||
ng-mouseleave="vm.showTextWhenMouseIsLeave()"
|
ng-mouseleave="vm.showTextWhenMouseIsLeave()"
|
||||||
)
|
)
|
||||||
span.track-icon
|
span(ng-if="!vm.item.is_watcher")
|
||||||
include ../../../svg/watch.svg
|
svg.icon.icon-watch
|
||||||
span(
|
use(xlink:href="#icon-watch")
|
||||||
ng-if="!vm.item.is_watcher",
|
| {{'COMMON.WATCH_BUTTON.WATCH' | translate}}
|
||||||
translate="COMMON.WATCH_BUTTON.WATCH"
|
span(ng-if="vm.item.is_watcher && !vm.isMouseOver",)
|
||||||
)
|
svg.icon.icon-watch
|
||||||
span(
|
use(xlink:href="#icon-watch")
|
||||||
ng-if="vm.item.is_watcher && !vm.isMouseOver",
|
| {{'COMMON.WATCH_BUTTON.WATCHING' | translate}}
|
||||||
translate="COMMON.WATCH_BUTTON.WATCHING"
|
span(ng-if="vm.item.is_watcher && vm.isMouseOver")
|
||||||
)
|
svg.icon.icon-unwatch
|
||||||
span(
|
use(xlink:href="#icon-unwatch")
|
||||||
ng-if="vm.item.is_watcher && vm.isMouseOver",
|
| {{'COMMON.WATCH_BUTTON.UNWATCH' | translate}}
|
||||||
translate="COMMON.WATCH_BUTTON.UNWATCH"
|
|
||||||
)
|
|
||||||
|
|
||||||
a.add-watcher(
|
a.add-watcher(
|
||||||
href=""
|
href=""
|
||||||
|
|
|
@ -2,8 +2,7 @@ mixin counter
|
||||||
span.track-button-counter(
|
span.track-button-counter(
|
||||||
title="{{ 'COMMON.WATCH_BUTTON.COUNTER_TITLE'|translate:{total:vm.item.watchers.length||0}:'messageformat' }}",
|
title="{{ 'COMMON.WATCH_BUTTON.COUNTER_TITLE'|translate:{total:vm.item.watchers.length||0}:'messageformat' }}",
|
||||||
tg-loading="vm.loading"
|
tg-loading="vm.loading"
|
||||||
)
|
) {{ vm.item.watchers.length }}
|
||||||
| {{ vm.item.watchers.length }}
|
|
||||||
|
|
||||||
|
|
||||||
//- Registered user button
|
//- Registered user button
|
||||||
|
@ -17,8 +16,8 @@ a.track-button.watch-button.watch-container(
|
||||||
ng-mouseleave="vm.showTextWhenMouseIsLeave()"
|
ng-mouseleave="vm.showTextWhenMouseIsLeave()"
|
||||||
)
|
)
|
||||||
span.track-inner
|
span.track-inner
|
||||||
span.track-icon
|
svg.icon.icon-watch
|
||||||
include ../../../svg/watch.svg
|
use(xlink:href="#icon-watch")
|
||||||
span(
|
span(
|
||||||
ng-if="!vm.item.is_watcher",
|
ng-if="!vm.item.is_watcher",
|
||||||
translate="COMMON.WATCH_BUTTON.WATCH"
|
translate="COMMON.WATCH_BUTTON.WATCH"
|
||||||
|
@ -39,6 +38,7 @@ span.track-button.watch-button.watch-container(
|
||||||
)
|
)
|
||||||
span.track-inner
|
span.track-inner
|
||||||
span.track-icon
|
span.track-icon
|
||||||
include ../../../svg/watch.svg
|
svg.icon.icon-watch
|
||||||
|
use(xlink:href="#icon-watch")
|
||||||
span(translate="COMMON.WATCH_BUTTON.WATCHERS")
|
span(translate="COMMON.WATCH_BUTTON.WATCHERS")
|
||||||
+counter
|
+counter
|
||||||
|
|
|
@ -3,7 +3,8 @@
|
||||||
href="#"
|
href="#"
|
||||||
ng-click="vm.open()"
|
ng-click="vm.open()"
|
||||||
) {{vm.currentText()}}
|
) {{vm.currentText()}}
|
||||||
span.icon-arrow-bottom
|
svg.icon.icon-arrow-down
|
||||||
|
use(xlink:href="#icon-arrow-down")
|
||||||
|
|
||||||
ul.filter-list(ng-if="vm.is_open")
|
ul.filter-list(ng-if="vm.is_open")
|
||||||
li(ng-click="vm.orderBy('week')") {{ 'DISCOVER.FILTERS.WEEK' | translate }}
|
li(ng-click="vm.orderBy('week')") {{ 'DISCOVER.FILTERS.WEEK' | translate }}
|
||||||
|
|
|
@ -18,12 +18,12 @@ div.discover-header
|
||||||
placeholder="{{ 'DISCOVER.SEARCH.INPUT_PLACEHOLDER' | translate }}"
|
placeholder="{{ 'DISCOVER.SEARCH.INPUT_PLACEHOLDER' | translate }}"
|
||||||
ng-model="vm.q"
|
ng-model="vm.q"
|
||||||
)
|
)
|
||||||
a.search-button(
|
svg.search-button.icon.icon-search(
|
||||||
ng-click="vm.submitFilter()"
|
ng-click="vm.submitFilter()"
|
||||||
href="#"
|
href="#"
|
||||||
title="{{ 'DISCOVER.SEARCH.ACTION_TITLE' | translate }}"
|
title="{{ 'DISCOVER.SEARCH.ACTION_TITLE' | translate }}"
|
||||||
)
|
)
|
||||||
include ../../../../svg/search.svg
|
use(xlink:href="#icon-search")
|
||||||
|
|
||||||
fieldset.searchbox-filters(ng-if="vm.filter")
|
fieldset.searchbox-filters(ng-if="vm.filter")
|
||||||
input(
|
input(
|
||||||
|
|
|
@ -36,19 +36,15 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.search-button {
|
.search-button {
|
||||||
|
@include svg-size(1.5rem);
|
||||||
|
fill: $gray-light;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 1rem;
|
right: 1rem;
|
||||||
top: 1rem;
|
top: 1rem;
|
||||||
|
transition: fill .2s;
|
||||||
&:hover {
|
&:hover {
|
||||||
svg {
|
cursor: pointer;
|
||||||
fill: $primary;
|
fill: $primary;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
svg {
|
|
||||||
fill: $gray-light;
|
|
||||||
height: 1.5rem;
|
|
||||||
transition: all .2;
|
|
||||||
width: 1.5rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
.discover-results-header
|
.discover-results-header
|
||||||
.discover-results-header-inner
|
.discover-results-header-inner
|
||||||
.title
|
.title
|
||||||
include ../../../../svg/search.svg
|
svg.icon.icon-search
|
||||||
|
use(xlink:href="#icon-search")
|
||||||
h2 {{ 'DISCOVER.SEARCH.RESULTS' | translate }}
|
h2 {{ 'DISCOVER.SEARCH.RESULTS' | translate }}
|
||||||
|
|
||||||
.filter-discover-search(ng-mouseleave="vm.toggleClose()")
|
.filter-discover-search(ng-mouseleave="vm.toggleClose()")
|
||||||
|
@ -10,14 +11,16 @@
|
||||||
ng-click="vm.openLike()"
|
ng-click="vm.openLike()"
|
||||||
ng-class="{active: vm.like_is_open}"
|
ng-class="{active: vm.like_is_open}"
|
||||||
)
|
)
|
||||||
include ../../../../svg/like.svg
|
svg.icon.icon-like
|
||||||
|
use(xlink:href="#icon-like")
|
||||||
span {{ 'DISCOVER.MOST_LIKED' | translate }}
|
span {{ 'DISCOVER.MOST_LIKED' | translate }}
|
||||||
a.discover-search-filter(
|
a.discover-search-filter(
|
||||||
href="#"
|
href="#"
|
||||||
ng-click="vm.openActivity()"
|
ng-click="vm.openActivity()"
|
||||||
ng-class="{active: vm.activity_is_open}"
|
ng-class="{active: vm.activity_is_open}"
|
||||||
)
|
)
|
||||||
include ../../../../svg/activity.svg
|
svg.icon.icon-activity
|
||||||
|
use(xlink:href="#icon-activity")
|
||||||
span {{ 'DISCOVER.MOST_ACTIVE' | translate }}
|
span {{ 'DISCOVER.MOST_ACTIVE' | translate }}
|
||||||
|
|
||||||
.discover-search-subfilter.most-liked-subfilter(ng-if="vm.like_is_open")
|
.discover-search-subfilter.most-liked-subfilter(ng-if="vm.like_is_open")
|
||||||
|
|
|
@ -5,8 +5,9 @@
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
}
|
}
|
||||||
svg {
|
svg {
|
||||||
@include svg-size(1.1rem);
|
@include svg-size(1.2rem);
|
||||||
fill: $gray-light;
|
fill: $gray-light;
|
||||||
|
margin-right: .25rem;
|
||||||
}
|
}
|
||||||
.title {
|
.title {
|
||||||
@extend %bold;
|
@extend %bold;
|
||||||
|
@ -23,9 +24,15 @@
|
||||||
margin-right: 1rem;
|
margin-right: 1rem;
|
||||||
&.active {
|
&.active {
|
||||||
color: $primary;
|
color: $primary;
|
||||||
|
svg {
|
||||||
|
fill: $primary;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
svg {
|
||||||
|
@include svg-size(.8rem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.discover-search-subfilter {
|
.discover-search-subfilter {
|
||||||
@include arrow('bottom', $whitish, $whitish, 1, 8);
|
@include arrow('bottom', $whitish, $whitish, 1, 8);
|
||||||
|
|
|
@ -26,28 +26,31 @@
|
||||||
tg-nav="project:project=project.get('slug')"
|
tg-nav="project:project=project.get('slug')"
|
||||||
title="{{::project.get('name')}}"
|
title="{{::project.get('name')}}"
|
||||||
) {{::project.get('name')}}
|
) {{::project.get('name')}}
|
||||||
span.look-for-people(
|
svg.look-for-people.icon.icon-recruit(
|
||||||
ng-if="project.get('is_looking_for_people')"
|
ng-if="project.get('is_looking_for_people')"
|
||||||
title="{{ ::project.get('looking_for_people_note') }}"
|
|
||||||
)
|
)
|
||||||
include ../../../../svg/recruit.svg
|
use(xlink:href="#icon-recruit")
|
||||||
|
title="{{ ::project.get('looking_for_people_note') }}"
|
||||||
p.project-card-description {{ ::project.get('description') | limitTo:100 }}{{ ::project.get('description').length < 100 ? '' : '...'}}
|
p.project-card-description {{ ::project.get('description') | limitTo:100 }}{{ ::project.get('description').length < 100 ? '' : '...'}}
|
||||||
.project-card-statistics
|
.project-card-statistics
|
||||||
span.statistic(
|
span.statistic(
|
||||||
ng-class="{'active': project.get('is_fan')}"
|
ng-class="{'active': project.get('is_fan')}"
|
||||||
title="{{ 'PROJECT.FANS_COUNTER_TITLE'|translate:{total:project.get('total_fans')||0}:'messageformat' }}"
|
title="{{ 'PROJECT.FANS_COUNTER_TITLE'|translate:{total:project.get('total_fans')||0}:'messageformat' }}"
|
||||||
)
|
)
|
||||||
include ../../../../svg/like.svg
|
svg.icon.icon-like
|
||||||
|
use(xlink:href="#icon-like")
|
||||||
span {{::project.get('total_fans')}}
|
span {{::project.get('total_fans')}}
|
||||||
span.statistic(
|
span.statistic(
|
||||||
ng-class="{'active': project.get('is_watcher')}"
|
ng-class="{'active': project.get('is_watcher')}"
|
||||||
title="{{ 'PROJECT.WATCHERS_COUNTER_TITLE'|translate:{total:project.get('total_watchers')||0}:'messageformat' }}"
|
title="{{ 'PROJECT.WATCHERS_COUNTER_TITLE'|translate:{total:project.get('total_watchers')||0}:'messageformat' }}"
|
||||||
)
|
)
|
||||||
include ../../../../svg/eye.svg
|
svg.icon.icon-watch
|
||||||
|
use(xlink:href="#icon-watch")
|
||||||
span {{::project.get('total_watchers')}}
|
span {{::project.get('total_watchers')}}
|
||||||
span.statistic(
|
span.statistic(
|
||||||
ng-class="{'active': project.get('i_am_member')}"
|
ng-class="{'active': project.get('i_am_member')}"
|
||||||
title="{{ 'PROJECT.MEMBERS_COUNTER_TITLE'|translate:{total:project.get('members').size||0}:'messageformat' }}"
|
title="{{ 'PROJECT.MEMBERS_COUNTER_TITLE'|translate:{total:project.get('members').size||0}:'messageformat' }}"
|
||||||
)
|
)
|
||||||
include ../../../../svg/team.svg
|
svg.icon.icon-team
|
||||||
|
use(xlink:href="#icon-team")
|
||||||
span.statistics-num {{ ::project.get('members').size }}
|
span.statistics-num {{ ::project.get('members').size }}
|
||||||
|
|
|
@ -24,29 +24,30 @@
|
||||||
tg-nav="project:project=project.get('slug')"
|
tg-nav="project:project=project.get('slug')"
|
||||||
title="{{::project.get('name')}}"
|
title="{{::project.get('name')}}"
|
||||||
) {{::project.get('name')}}
|
) {{::project.get('name')}}
|
||||||
span.look-for-people(
|
svg.look-for-people.icon.icon-recruit(ng-if="project.get('is_looking_for_people')")
|
||||||
ng-if="project.get('is_looking_for_people')"
|
use(xlink:href="#icon-recruit")
|
||||||
title="{{ ::project.get('looking_for_people_note') }}"
|
title="{{ ::project.get('looking_for_people_note') }}"
|
||||||
)
|
|
||||||
include ../../../../svg/recruit.svg
|
|
||||||
.project-statistics
|
.project-statistics
|
||||||
span.statistic(
|
span.statistic(
|
||||||
ng-class="{'active': project.get('is_fan')}"
|
ng-class="{'active': project.get('is_fan')}"
|
||||||
title="{{ 'PROJECT.FANS_COUNTER_TITLE'|translate:{total:project.get('total_fans')||0}:'messageformat' }}"
|
title="{{ 'PROJECT.FANS_COUNTER_TITLE'|translate:{total:project.get('total_fans')||0}:'messageformat' }}"
|
||||||
)
|
)
|
||||||
include ../../../../svg/like.svg
|
svg.icon.icon-like
|
||||||
|
use(xlink:href="#icon-like")
|
||||||
span {{::project.get('total_fans')}}
|
span {{::project.get('total_fans')}}
|
||||||
span.statistic(
|
span.statistic(
|
||||||
ng-class="{'active': project.get('is_watcher')}"
|
ng-class="{'active': project.get('is_watcher')}"
|
||||||
title="{{ 'PROJECT.WATCHERS_COUNTER_TITLE'|translate:{total:project.get('total_watchers')||0}:'messageformat' }}"
|
title="{{ 'PROJECT.WATCHERS_COUNTER_TITLE'|translate:{total:project.get('total_watchers')||0}:'messageformat' }}"
|
||||||
)
|
)
|
||||||
include ../../../../svg/eye.svg
|
svg.icon.icon-watch
|
||||||
|
use(xlink:href="#icon-watch")
|
||||||
span {{::project.get('total_watchers')}}
|
span {{::project.get('total_watchers')}}
|
||||||
span.statistic(
|
span.statistic(
|
||||||
ng-class="{'active': project.get('i_am_member')}"
|
ng-class="{'active': project.get('i_am_member')}"
|
||||||
title="{{ 'PROJECT.MEMBERS_COUNTER_TITLE'|translate:{total:project.get('members').size||0}:'messageformat' }}"
|
title="{{ 'PROJECT.MEMBERS_COUNTER_TITLE'|translate:{total:project.get('members').size||0}:'messageformat' }}"
|
||||||
)
|
)
|
||||||
include ../../../../svg/team.svg
|
svg.icon.icon-team
|
||||||
|
use(xlink:href="#icon-team")
|
||||||
span.statistics-num {{ ::project.get('members').size }}
|
span.statistics-num {{ ::project.get('members').size }}
|
||||||
p.project-description {{ ::project.get('description') | limitTo:150 }}{{ ::project.get('description').length < 150 ? '' : '...'}}
|
p.project-description {{ ::project.get('description') | limitTo:150 }}{{ ::project.get('description').length < 150 ? '' : '...'}}
|
||||||
|
|
||||||
|
|
|
@ -34,14 +34,19 @@
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
margin-bottom: 1rem;
|
margin-bottom: 1rem;
|
||||||
svg {
|
svg {
|
||||||
@include svg-size(1.5rem);
|
@include svg-size(.8rem);
|
||||||
fill: $gray-light;
|
fill: $gray-light;
|
||||||
margin: .5rem;
|
margin-left: .5rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.title-wrapper {
|
.title-wrapper {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
svg {
|
||||||
|
@include svg-size(1.25rem);
|
||||||
|
fill: $gray-light;
|
||||||
|
margin-right: .5rem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.title {
|
.title {
|
||||||
@extend %bold;
|
@extend %bold;
|
||||||
|
@ -97,6 +102,11 @@
|
||||||
position: relative;
|
position: relative;
|
||||||
top: .2rem;
|
top: .2rem;
|
||||||
}
|
}
|
||||||
|
&:hover {
|
||||||
|
svg {
|
||||||
|
fill: currentColor;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.filter-list {
|
.filter-list {
|
||||||
background: $black;
|
background: $black;
|
||||||
|
@ -163,12 +173,10 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.look-for-people {
|
.look-for-people {
|
||||||
svg {
|
|
||||||
@include svg-size();
|
@include svg-size();
|
||||||
fill: $gray-light;
|
fill: $gray-light;
|
||||||
margin-left: .5rem;
|
margin-left: .5rem;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
.project-description {
|
.project-description {
|
||||||
@extend %small;
|
@extend %small;
|
||||||
color: $gray;
|
color: $gray;
|
||||||
|
@ -179,8 +187,9 @@
|
||||||
flex-basis: 140px;
|
flex-basis: 140px;
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
svg {
|
svg {
|
||||||
@include svg-size(.8rem);
|
@include svg-size(.75rem);
|
||||||
fill: $gray-light;
|
fill: $gray-light;
|
||||||
|
margin-right: .25rem;
|
||||||
}
|
}
|
||||||
.svg-eye-closed {
|
.svg-eye-closed {
|
||||||
display: none;
|
display: none;
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
.most-active(ng-if="vm.highlighted.size")
|
.most-active(ng-if="vm.highlighted.size")
|
||||||
.header
|
.header
|
||||||
.title-wrapper
|
.title-wrapper
|
||||||
include ../../../../svg/activity.svg
|
svg.icon.icon-activity
|
||||||
|
use(xlink:href="#icon-activity")
|
||||||
h1.title {{ 'DISCOVER.MOST_ACTIVE' | translate }}
|
h1.title {{ 'DISCOVER.MOST_ACTIVE' | translate }}
|
||||||
tg-discover-home-order-by(on-change="vm.orderBy(orderBy)", order-by="vm.currentOrderBy")
|
tg-discover-home-order-by(on-change="vm.orderBy(orderBy)", order-by="vm.currentOrderBy")
|
||||||
|
|
||||||
|
@ -14,5 +15,6 @@
|
||||||
.empty-highlighted-project(
|
.empty-highlighted-project(
|
||||||
ng-if="!vm.highlighted.size"
|
ng-if="!vm.highlighted.size"
|
||||||
)
|
)
|
||||||
include ../../../../svg/activity.svg
|
svg.icon.icon-activity
|
||||||
|
use(xlink:href="#icon-activity")
|
||||||
span {{ 'DISCOVER.MOST_ACTIVE_EMPTY' | translate }}
|
span {{ 'DISCOVER.MOST_ACTIVE_EMPTY' | translate }}
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
.most-liked(ng-if="vm.highlighted.size")
|
.most-liked(ng-if="vm.highlighted.size")
|
||||||
.header
|
.header
|
||||||
.title-wrapper
|
.title-wrapper
|
||||||
include ../../../../svg/like.svg
|
svg.icon.icon-like
|
||||||
|
use(xlink:href="#icon-like")
|
||||||
h1.title {{ 'DISCOVER.MOST_LIKED' | translate }}
|
h1.title {{ 'DISCOVER.MOST_LIKED' | translate }}
|
||||||
tg-discover-home-order-by(on-change="vm.orderBy(orderBy)", order-by="vm.currentOrderBy")
|
tg-discover-home-order-by(on-change="vm.orderBy(orderBy)", order-by="vm.currentOrderBy")
|
||||||
tg-highlighted(
|
tg-highlighted(
|
||||||
|
@ -13,5 +14,6 @@
|
||||||
.empty-highlighted-project(
|
.empty-highlighted-project(
|
||||||
ng-if="!vm.highlighted.size"
|
ng-if="!vm.highlighted.size"
|
||||||
)
|
)
|
||||||
include ../../../../svg/like.svg
|
svg.icon.icon-like
|
||||||
|
use(xlink:href="#icon-like")
|
||||||
span {{ 'DISCOVER.MOST_LIKED_EMPTY' | translate }}
|
span {{ 'DISCOVER.MOST_LIKED_EMPTY' | translate }}
|
||||||
|
|
|
@ -43,11 +43,9 @@ div(tg-discover-search)
|
||||||
tg-nav="project:project=project.get('slug')"
|
tg-nav="project:project=project.get('slug')"
|
||||||
title="{{ ::project.get('name') }}"
|
title="{{ ::project.get('name') }}"
|
||||||
) {{project.get('name')}}
|
) {{project.get('name')}}
|
||||||
span.look-for-people(
|
svg.look-for-people.icon.icon-recruit(ng-if="project.get('is_looking_for_people')")
|
||||||
ng-if="project.get('is_looking_for_people')"
|
use(xlink:href="#icon-recruit")
|
||||||
title="{{ ::project.get('looking_for_people_note') }}"
|
title="{{ ::project.get('looking_for_people_note') }}"
|
||||||
)
|
|
||||||
include ../../../svg/recruit.svg
|
|
||||||
p {{ ::project.get('description') | limitTo:300 }}
|
p {{ ::project.get('description') | limitTo:300 }}
|
||||||
span(ng-if="::project.get('description').length > 300") ...
|
span(ng-if="::project.get('description').length > 300") ...
|
||||||
.list-itemtype-project-right.project-statistics
|
.list-itemtype-project-right.project-statistics
|
||||||
|
@ -55,19 +53,22 @@ div(tg-discover-search)
|
||||||
ng-class="{'active': project.get('is_fan')}"
|
ng-class="{'active': project.get('is_fan')}"
|
||||||
title="{{ 'PROJECT.FANS_COUNTER_TITLE'|translate:{total:project.get('total_fans')||0}:'messageformat' }}"
|
title="{{ 'PROJECT.FANS_COUNTER_TITLE'|translate:{total:project.get('total_fans')||0}:'messageformat' }}"
|
||||||
)
|
)
|
||||||
include ../../../svg/like.svg
|
svg.icon.icon-like
|
||||||
|
use(xlink:href="#icon-like")
|
||||||
span {{::project.get('total_fans')}}
|
span {{::project.get('total_fans')}}
|
||||||
span.statistic(
|
span.statistic(
|
||||||
ng-class="{'active': project.get('is_watcher')}"
|
ng-class="{'active': project.get('is_watcher')}"
|
||||||
title="{{ 'PROJECT.WATCHERS_COUNTER_TITLE'|translate:{total:project.get('total_watchers')||0}:'messageformat' }}"
|
title="{{ 'PROJECT.WATCHERS_COUNTER_TITLE'|translate:{total:project.get('total_watchers')||0}:'messageformat' }}"
|
||||||
)
|
)
|
||||||
include ../../../svg/eye.svg
|
svg.icon.icon-watch
|
||||||
|
use(xlink:href="#icon-watch")
|
||||||
span {{::project.get('total_watchers')}}
|
span {{::project.get('total_watchers')}}
|
||||||
span.statistic(
|
span.statistic(
|
||||||
ng-class="{'active': project.get('i_am_member')}"
|
ng-class="{'active': project.get('i_am_member')}"
|
||||||
title="{{ 'PROJECT.MEMBERS_COUNTER_TITLE'|translate:{total:project.get('members').size||0}:'messageformat' }}"
|
title="{{ 'PROJECT.MEMBERS_COUNTER_TITLE'|translate:{total:project.get('members').size||0}:'messageformat' }}"
|
||||||
)
|
)
|
||||||
include ../../../svg/team.svg
|
svg.icon.icon-team
|
||||||
|
use(xlink:href="#icon-team")
|
||||||
span.statistics-num {{ ::project.get('members').size }}
|
span.statistics-num {{ ::project.get('members').size }}
|
||||||
|
|
||||||
a.button-green.more-results(
|
a.button-green.more-results(
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
margin: 0 8rem;
|
margin: 0 8rem;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.search-button {
|
.search-button {
|
||||||
left: 1rem;
|
left: 1rem;
|
||||||
right: auto;
|
right: auto;
|
||||||
|
@ -73,19 +72,17 @@
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
.look-for-people {
|
.look-for-people {
|
||||||
margin-left: .5rem;
|
|
||||||
svg {
|
|
||||||
@include svg-size(1rem);
|
|
||||||
fill: $gray-light;
|
fill: $gray-light;
|
||||||
}
|
margin-left: .5rem;
|
||||||
}
|
}
|
||||||
.project-statistics {
|
.project-statistics {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-basis: 300px;
|
flex-basis: 300px;
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
svg {
|
svg {
|
||||||
@include svg-size(.8rem);
|
@include svg-size(.7rem);
|
||||||
fill: $gray-light;
|
fill: $gray-light;
|
||||||
|
margin-right: .2rem;
|
||||||
}
|
}
|
||||||
.svg-eye-closed {
|
.svg-eye-closed {
|
||||||
display: none;
|
display: none;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
a.list-itemtype-ticket(
|
a.list-itemtype-ticket(
|
||||||
href="{{ ::vm.duty.get('url') }}"
|
href="{{ ::vm.duty.get('url') }}"
|
||||||
title="{{ ::duty.get('subject') }}"
|
title="{{ ::duty.get('subject') }}"
|
||||||
ng-class="{'blocked': vm.duty.get('is_blocked')}"
|
ng-class="{'blocked': vm.duty.get('is_blocked'), 'blocked-project': vm.duty.get('blockedProject')}"
|
||||||
)
|
)
|
||||||
div.list-itemtype-avatar(ng-if="::vm.duty.get('assigned_to_extra_info')")
|
div.list-itemtype-avatar(ng-if="::vm.duty.get('assigned_to_extra_info')")
|
||||||
img(
|
img(
|
||||||
|
@ -16,8 +16,12 @@ a.list-itemtype-ticket(
|
||||||
div.list-itemtype-ticket-data
|
div.list-itemtype-ticket-data
|
||||||
p
|
p
|
||||||
span.ticket-project {{ ::vm.duty.get('projectName')}}
|
span.ticket-project {{ ::vm.duty.get('projectName')}}
|
||||||
|
|
||||||
span.ticket-type {{ ::vm.getDutyType() }}
|
span.ticket-type {{ ::vm.getDutyType() }}
|
||||||
span.ticket-status(ng-style="{'color': vm.duty.get('status_extra_info').get('color')}") {{ ::vm.duty.get('status_extra_info').get('name') }}
|
span.ticket-status(ng-style="{'color': vm.duty.get('status_extra_info').get('color')}") {{ ::vm.duty.get('status_extra_info').get('name') }}
|
||||||
|
svg.icon.icon-blocked-project(ng-if="vm.duty.get('blockedProject')")
|
||||||
|
use(xlink:href="#icon-blocked-project")
|
||||||
|
title(translate="PROJECT.BLOCKED_PROJECT.BLOCKED")
|
||||||
|
|
||||||
h2
|
h2
|
||||||
span.ticket-id(tg-bo-ref="duty.get('ref')")
|
span.ticket-id(tg-bo-ref="duty.get('ref')")
|
||||||
|
|
|
@ -41,6 +41,7 @@ class HomeService extends taiga.Service
|
||||||
|
|
||||||
duty = duty.set('url', url)
|
duty = duty.set('url', url)
|
||||||
duty = duty.set('projectName', project.get('name'))
|
duty = duty.set('projectName', project.get('name'))
|
||||||
|
duty = duty.set('blockedProject', project.get('blocked_code'))
|
||||||
duty = duty.set("_name", objType)
|
duty = duty.set("_name", objType)
|
||||||
|
|
||||||
return duty
|
return duty
|
||||||
|
|
|
@ -128,6 +128,7 @@ describe "tgHome", ->
|
||||||
project: '1',
|
project: '1',
|
||||||
url: '/testing-project/us/1',
|
url: '/testing-project/us/1',
|
||||||
projectName: 'fake1',
|
projectName: 'fake1',
|
||||||
|
blockedProject: undefined,
|
||||||
_name: 'userstories'
|
_name: 'userstories'
|
||||||
}]
|
}]
|
||||||
tasks: [{
|
tasks: [{
|
||||||
|
@ -136,6 +137,7 @@ describe "tgHome", ->
|
||||||
project: '1',
|
project: '1',
|
||||||
url: '/testing-project/tasks/1',
|
url: '/testing-project/tasks/1',
|
||||||
projectName: 'fake1',
|
projectName: 'fake1',
|
||||||
|
blockedProject: undefined,
|
||||||
_name: 'tasks'
|
_name: 'tasks'
|
||||||
}]
|
}]
|
||||||
issues: [{
|
issues: [{
|
||||||
|
@ -144,6 +146,7 @@ describe "tgHome", ->
|
||||||
project: '1',
|
project: '1',
|
||||||
url: '/testing-project/issues/1',
|
url: '/testing-project/issues/1',
|
||||||
projectName: 'fake1',
|
projectName: 'fake1',
|
||||||
|
blockedProject: undefined,
|
||||||
_name: 'issues'
|
_name: 'issues'
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
|
@ -154,6 +157,7 @@ describe "tgHome", ->
|
||||||
project: '1',
|
project: '1',
|
||||||
url: '/testing-project/us/1',
|
url: '/testing-project/us/1',
|
||||||
projectName: 'fake1',
|
projectName: 'fake1',
|
||||||
|
blockedProject: undefined,
|
||||||
_name: 'userstories'
|
_name: 'userstories'
|
||||||
}]
|
}]
|
||||||
tasks: [{
|
tasks: [{
|
||||||
|
@ -162,6 +166,7 @@ describe "tgHome", ->
|
||||||
project: '1',
|
project: '1',
|
||||||
url: '/testing-project/tasks/1',
|
url: '/testing-project/tasks/1',
|
||||||
projectName: 'fake1',
|
projectName: 'fake1',
|
||||||
|
blockedProject: undefined,
|
||||||
_name: 'tasks'
|
_name: 'tasks'
|
||||||
}]
|
}]
|
||||||
issues: [{
|
issues: [{
|
||||||
|
@ -170,6 +175,7 @@ describe "tgHome", ->
|
||||||
project: '1',
|
project: '1',
|
||||||
url: '/testing-project/issues/1',
|
url: '/testing-project/issues/1',
|
||||||
projectName: 'fake1',
|
projectName: 'fake1',
|
||||||
|
blockedProject: undefined,
|
||||||
_name: 'issues'
|
_name: 'issues'
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
section.home-project-list(ng-if="vm.projects.size")
|
section.home-project-list(ng-if="vm.projects.size")
|
||||||
|
|
||||||
.home-project(tg-bind-scope, tg-repeat="project in vm.projects")
|
.home-project(
|
||||||
|
tg-bind-scope
|
||||||
|
tg-repeat="project in vm.projects"
|
||||||
|
ng-class="{'blocked-project': project.get('blocked_code')}"
|
||||||
|
)
|
||||||
.tags-container
|
.tags-container
|
||||||
.project-tag(
|
.project-tag(
|
||||||
style="background: {{tag.get('color')}}"
|
style="background: {{tag.get('color')}}"
|
||||||
|
@ -19,16 +23,18 @@ section.home-project-list(ng-if="vm.projects.size")
|
||||||
alt="{{::project.get('name')}}"
|
alt="{{::project.get('name')}}"
|
||||||
)
|
)
|
||||||
h2.project-card-name
|
h2.project-card-name
|
||||||
a(
|
a.project-title(
|
||||||
href="#"
|
href="#"
|
||||||
tg-nav="project:project=project.get('slug')"
|
tg-nav="project:project=project.get('slug')"
|
||||||
title="{{::project.get('name')}}"
|
title="{{::project.get('name')}}"
|
||||||
) {{::project.get('name')}}
|
) {{::project.get('name')}}
|
||||||
span.look-for-people(
|
svg.look-for-people.icon.icon-recruit(ng-if="project.get('is_looking_for_people')")
|
||||||
ng-if="project.get('is_looking_for_people')"
|
use(xlink:href="#icon-recruit")
|
||||||
title="{{ ::project.get('looking_for_people_note') }}"
|
title="{{ ::project.get('looking_for_people_note') }}"
|
||||||
)
|
svg.icon.icon-blocked-project(ng-if="project.get('blocked_code')")
|
||||||
include ../../../svg/recruit.svg
|
use(xlink:href="#icon-blocked-project")
|
||||||
|
title(translate="PROJECT.BLOCKED_PROJECT.BLOCKED")
|
||||||
|
|
||||||
p.project-card-description {{::project.get('description')| limitTo:100 }}
|
p.project-card-description {{::project.get('description')| limitTo:100 }}
|
||||||
span(ng-if="::project.get('description').length > 100") ...
|
span(ng-if="::project.get('description').length > 100") ...
|
||||||
.project-card-statistics
|
.project-card-statistics
|
||||||
|
@ -36,25 +42,29 @@ section.home-project-list(ng-if="vm.projects.size")
|
||||||
ng-class="{'active': project.get('is_fan')}"
|
ng-class="{'active': project.get('is_fan')}"
|
||||||
title="{{ 'PROJECT.FANS_COUNTER_TITLE'|translate:{total:project.get('total_fans')||0}:'messageformat' }}"
|
title="{{ 'PROJECT.FANS_COUNTER_TITLE'|translate:{total:project.get('total_fans')||0}:'messageformat' }}"
|
||||||
)
|
)
|
||||||
include ../../../svg/like.svg
|
svg.icon.icon-like
|
||||||
|
use(xlink:href="#icon-like")
|
||||||
span {{::project.get('total_fans')}}
|
span {{::project.get('total_fans')}}
|
||||||
span.statistic(
|
span.statistic(
|
||||||
ng-class="{'active': project.get('is_watcher')}"
|
ng-class="{'active': project.get('is_watcher')}"
|
||||||
title="{{ 'PROJECT.WATCHERS_COUNTER_TITLE'|translate:{total:project.get('total_watchers')||0}:'messageformat' }}"
|
title="{{ 'PROJECT.WATCHERS_COUNTER_TITLE'|translate:{total:project.get('total_watchers')||0}:'messageformat' }}"
|
||||||
)
|
)
|
||||||
include ../../../svg/eye.svg
|
svg.icon.icon-watch
|
||||||
|
use(xlink:href="#icon-watch")
|
||||||
span {{::project.get('total_watchers')}}
|
span {{::project.get('total_watchers')}}
|
||||||
span.statistic(
|
span.statistic(
|
||||||
ng-class="{'active': project.get('i_am_member')}"
|
ng-class="{'active': project.get('i_am_member')}"
|
||||||
title="{{ 'PROJECT.MEMBERS_COUNTER_TITLE'|translate:{total:project.get('members').size||0}:'messageformat' }}"
|
title="{{ 'PROJECT.MEMBERS_COUNTER_TITLE'|translate:{total:project.get('members').size||0}:'messageformat' }}"
|
||||||
)
|
)
|
||||||
include ../../../svg/team.svg
|
svg.icon.icon-team
|
||||||
|
use(xlink:href="#icon-team")
|
||||||
span.statistics-num {{ ::project.get('members').size }}
|
span.statistics-num {{ ::project.get('members').size }}
|
||||||
span.statistic(
|
span.statistic(
|
||||||
ng-if="::project.get('is_private')"
|
ng-if="::project.get('is_private')"
|
||||||
title="{{ 'PROJECT.PRIVATE' | translate }}"
|
title="{{ 'PROJECT.PRIVATE' | translate }}"
|
||||||
)
|
)
|
||||||
include ../../../svg/lock.svg
|
svg.icon.icon-lock
|
||||||
|
use(xlink:href="#icon-lock")
|
||||||
|
|
||||||
a.see-more-projects-btn.button-gray(
|
a.see-more-projects-btn.button-gray(
|
||||||
href="#",
|
href="#",
|
||||||
|
@ -65,7 +75,8 @@ section.home-project-list(ng-if="vm.projects.size")
|
||||||
)
|
)
|
||||||
|
|
||||||
section.projects-empty(ng-if="vm.projects != undefined && vm.projects.size === 0")
|
section.projects-empty(ng-if="vm.projects != undefined && vm.projects.size === 0")
|
||||||
include ../../../svg/empty-project.svg
|
svg.icon.icon-project
|
||||||
|
use(xlink:href="#icon-project")
|
||||||
p(translate="HOME.EMPTY_PROJECT_LIST")
|
p(translate="HOME.EMPTY_PROJECT_LIST")
|
||||||
a.create-project-button.button-green(href="#", ng-click="vm.newProject()",
|
a.create-project-button.button-green(href="#", ng-click="vm.newProject()",
|
||||||
title="{{'PROJECT.NAVIGATION.TITLE_CREATE_PROJECT' | translate}}",
|
title="{{'PROJECT.NAVIGATION.TITLE_CREATE_PROJECT' | translate}}",
|
||||||
|
|
|
@ -4,23 +4,36 @@
|
||||||
@include project-card;
|
@include project-card;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
margin-bottom: 1rem;
|
margin-bottom: 1rem;
|
||||||
transition: .2s;
|
transition: all .2s;
|
||||||
transition-delay: .1s;
|
|
||||||
&:hover {
|
&:hover {
|
||||||
border: 1px solid $primary-light;
|
border: 1px solid rgba($primary-light, .2);
|
||||||
|
box-shadow: 0 0 5px $whitish;
|
||||||
|
}
|
||||||
|
&.blocked-project {
|
||||||
|
border: $whitish;
|
||||||
|
&:hover {
|
||||||
|
border: $whitish;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.tags-container,
|
||||||
|
.project-card-logo,
|
||||||
|
.project-card-name a,
|
||||||
|
.icon-recruit,
|
||||||
|
.project-card-description,
|
||||||
|
.project-card-statistics {
|
||||||
|
opacity: .3;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.projects-empty {
|
.projects-empty {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
svg {
|
svg {
|
||||||
|
fill: $whitish;
|
||||||
height: 100px;
|
height: 100px;
|
||||||
margin: 1rem auto;
|
margin: 1rem auto;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
path {
|
|
||||||
fill: $whitish;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
p {
|
p {
|
||||||
@extend %small;
|
@extend %small;
|
||||||
|
|
|
@ -20,7 +20,11 @@ section.watching-container
|
||||||
.title-bar.watching-title(translate="HOME.WATCHING_SECTION")
|
.title-bar.watching-title(translate="HOME.WATCHING_SECTION")
|
||||||
|
|
||||||
.watching(ng-if="vm.watching.size")
|
.watching(ng-if="vm.watching.size")
|
||||||
.duty-single(tg-duty="duty", tg-repeat="duty in vm.watching", ng-class="{'blocked': duty.is_blocked}")
|
.duty-single(
|
||||||
|
tg-duty="duty"
|
||||||
|
tg-repeat="duty in vm.watching"
|
||||||
|
ng-class="{'blocked': duty.is_blocked}"
|
||||||
|
)
|
||||||
|
|
||||||
.watching-empty(ng-if="vm.watching != undefined && vm.watching.size === 0")
|
.watching-empty(ng-if="vm.watching != undefined && vm.watching.size === 0")
|
||||||
p(translate="HOME.EMPTY_WATCHING")
|
p(translate="HOME.EMPTY_WATCHING")
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
#TODO: fill correctly when implemented
|
|
||||||
a(href="#", title="Organizations")
|
|
||||||
include ../../../svg/organizations.svg
|
|
||||||
|
|
||||||
div.navbar-dropdown.dropdown-organization-list
|
|
||||||
ul
|
|
||||||
- for (var x = 0; x < 4; x++)
|
|
||||||
li
|
|
||||||
a(href="#", title="{{ project.title }}") Organization 1
|
|
||||||
a.create-organization-btn.button-green(href="#", title="Create Organization") Create Organization
|
|
|
@ -1,10 +1,19 @@
|
||||||
a(href="", title="Projects", tg-nav="projects")
|
a(href="", title="Projects", tg-nav="projects")
|
||||||
include ../../../svg/projects.svg
|
svg.icon.icon-project
|
||||||
|
use(xlink:href="#icon-project")
|
||||||
|
|
||||||
div.navbar-dropdown.dropdown-project-list
|
div.navbar-dropdown.dropdown-project-list
|
||||||
ul
|
ul
|
||||||
li(tg-repeat="project in vm.projects track by project.get('id')")
|
li(tg-repeat="project in vm.projects track by project.get('id')")
|
||||||
a(href="#", tg-nav="project:project=project.get('slug')") {{::project.get("name")}}
|
a(
|
||||||
|
href="#"
|
||||||
|
tg-nav="project:project=project.get('slug')"
|
||||||
|
ng-class="{'blocked-project': project.get('blocked_code')}"
|
||||||
|
)
|
||||||
|
span {{::project.get("name")}}
|
||||||
|
svg.icon.icon-blocked-project(ng-if="project.get('blocked_code')")
|
||||||
|
use(xlink:href="#icon-blocked-project")
|
||||||
|
title(translate="PROJECT.BLOCKED_PROJECT.BLOCKED")
|
||||||
|
|
||||||
a.see-more-projects-btn.button-gray(
|
a.see-more-projects-btn.button-gray(
|
||||||
href="#",
|
href="#",
|
||||||
|
@ -20,6 +29,10 @@ div.navbar-dropdown.dropdown-project-list
|
||||||
translate="PROJECT.NAVIGATION.ACTION_CREATE_PROJECT")
|
translate="PROJECT.NAVIGATION.ACTION_CREATE_PROJECT")
|
||||||
|
|
||||||
span(tg-import-project-button)
|
span(tg-import-project-button)
|
||||||
a.button-blackish.import-project-button(href="", title="{{'PROJECT.NAVIGATION.TITLE_IMPORT_PROJECT' | translate}}")
|
a.button-blackish.import-project-button(
|
||||||
span.icon.icon-upload
|
href=""
|
||||||
|
title="{{'PROJECT.NAVIGATION.TITLE_IMPORT_PROJECT' | translate}}"
|
||||||
|
)
|
||||||
|
svg.icon.icon-upload
|
||||||
|
use(xlink:href="#icon-upload")
|
||||||
input.import-file.hidden(type="file")
|
input.import-file.hidden(type="file")
|
|
@ -18,7 +18,7 @@
|
||||||
###
|
###
|
||||||
|
|
||||||
DropdownUserDirective = (authService, configService, locationService,
|
DropdownUserDirective = (authService, configService, locationService,
|
||||||
navUrlsService, feedbackService) ->
|
navUrlsService, feedbackService, $rootScope) ->
|
||||||
|
|
||||||
link = (scope, el, attrs, ctrl) ->
|
link = (scope, el, attrs, ctrl) ->
|
||||||
scope.vm = {}
|
scope.vm = {}
|
||||||
|
@ -33,6 +33,8 @@ DropdownUserDirective = (authService, configService, locationService,
|
||||||
scope.vm.sendFeedback = ->
|
scope.vm.sendFeedback = ->
|
||||||
feedbackService.sendFeedback()
|
feedbackService.sendFeedback()
|
||||||
|
|
||||||
|
scope.vm.userSettingsPlugins = _.filter($rootScope.userSettingsPlugins, {userMenu: true})
|
||||||
|
|
||||||
directive = {
|
directive = {
|
||||||
templateUrl: "navigation-bar/dropdown-user/dropdown-user.html"
|
templateUrl: "navigation-bar/dropdown-user/dropdown-user.html"
|
||||||
scope: {}
|
scope: {}
|
||||||
|
@ -46,7 +48,8 @@ DropdownUserDirective.$inject = [
|
||||||
"$tgConfig",
|
"$tgConfig",
|
||||||
"$tgLocation",
|
"$tgLocation",
|
||||||
"$tgNavUrls",
|
"$tgNavUrls",
|
||||||
"tgFeedbackService"
|
"tgFeedbackService",
|
||||||
|
"$rootScope"
|
||||||
]
|
]
|
||||||
|
|
||||||
angular.module("taigaNavigationBar").directive("tgDropdownUser", DropdownUserDirective)
|
angular.module("taigaNavigationBar").directive("tgDropdownUser", DropdownUserDirective)
|
||||||
|
|
|
@ -22,6 +22,16 @@ div.navbar-dropdown.dropdown-user
|
||||||
tg-nav="user-settings-user-profile",
|
tg-nav="user-settings-user-profile",
|
||||||
title="{{'PROJECT.NAVIGATION.EDIT_PROFILE_TITLE' | translate}}",
|
title="{{'PROJECT.NAVIGATION.EDIT_PROFILE_TITLE' | translate}}",
|
||||||
translate="PROJECT.NAVIGATION.EDIT_PROFILE")
|
translate="PROJECT.NAVIGATION.EDIT_PROFILE")
|
||||||
|
|
||||||
|
li.plugin(ng-repeat="plugin in vm.userSettingsPlugins")
|
||||||
|
a(
|
||||||
|
href=""
|
||||||
|
tg-nav="user-settings-contrib:plugin=plugin.slug"
|
||||||
|
ng-class="{active: plugin.slug == currentPlugin.slug}"
|
||||||
|
)
|
||||||
|
span.title {{ plugin.name }}
|
||||||
|
span.new(translate="PROJECT.NAVIGATION.NEW_ITEM")
|
||||||
|
|
||||||
li
|
li
|
||||||
a(
|
a(
|
||||||
href="#",
|
href="#",
|
||||||
|
|
|
@ -49,6 +49,13 @@ describe "navigationBarDirective", () ->
|
||||||
|
|
||||||
provide.value "$tgLocation", mocks.locationService
|
provide.value "$tgLocation", mocks.locationService
|
||||||
|
|
||||||
|
_mocksConfig = () ->
|
||||||
|
mocks.config = Immutable.fromJS({
|
||||||
|
publicRegisterEnabled: true
|
||||||
|
})
|
||||||
|
|
||||||
|
provide.value "$tgConfig", mocks.config
|
||||||
|
|
||||||
_mockTgNavUrls = () ->
|
_mockTgNavUrls = () ->
|
||||||
mocks.navUrls = {
|
mocks.navUrls = {
|
||||||
resolve: sinon.stub()
|
resolve: sinon.stub()
|
||||||
|
@ -76,6 +83,8 @@ describe "navigationBarDirective", () ->
|
||||||
_mockTranslateFilter()
|
_mockTranslateFilter()
|
||||||
_mockTgDropdownProjectListDirective()
|
_mockTgDropdownProjectListDirective()
|
||||||
_mockTgDropdownUserDirective()
|
_mockTgDropdownUserDirective()
|
||||||
|
_mocksConfig()
|
||||||
|
|
||||||
return null
|
return null
|
||||||
|
|
||||||
beforeEach ->
|
beforeEach ->
|
||||||
|
@ -120,6 +129,7 @@ describe "navigationBarDirective", () ->
|
||||||
expect(mocks.locationService.search.callCount).to.be.equal(1)
|
expect(mocks.locationService.search.callCount).to.be.equal(1)
|
||||||
expect(mocks.locationService.url.calledWith("/login")).to.be.true
|
expect(mocks.locationService.url.calledWith("/login")).to.be.true
|
||||||
expect(mocks.locationService.search.calledWith({next: encodeURIComponent(nextUrl)})).to.be.true
|
expect(mocks.locationService.search.calledWith({next: encodeURIComponent(nextUrl)})).to.be.true
|
||||||
|
expect(vm.publicRegisterEnabled).to.be.true
|
||||||
|
|
||||||
it "navigation bar register", () ->
|
it "navigation bar register", () ->
|
||||||
mocks.navUrls.resolve.withArgs("register").returns("/register")
|
mocks.navUrls.resolve.withArgs("register").returns("/register")
|
||||||
|
@ -135,3 +145,4 @@ describe "navigationBarDirective", () ->
|
||||||
expect(mocks.locationService.search.callCount).to.be.equal(1)
|
expect(mocks.locationService.search.callCount).to.be.equal(1)
|
||||||
expect(mocks.locationService.url.calledWith("/register")).to.be.true
|
expect(mocks.locationService.url.calledWith("/register")).to.be.true
|
||||||
expect(mocks.locationService.search.calledWith({next: encodeURIComponent(nextUrl)})).to.be.true
|
expect(mocks.locationService.search.calledWith({next: encodeURIComponent(nextUrl)})).to.be.true
|
||||||
|
expect(vm.publicRegisterEnabled).to.be.true
|
||||||
|
|
|
@ -34,14 +34,16 @@ nav.navbar(ng-if="vm.isEnabledHeader")
|
||||||
ng-class="{active: vm.active}",
|
ng-class="{active: vm.active}",
|
||||||
title="{{'PROJECT.NAVIGATION.DASHBOARD_TITLE' | translate}}")
|
title="{{'PROJECT.NAVIGATION.DASHBOARD_TITLE' | translate}}")
|
||||||
|
|
||||||
include ../../svg/dashboard.svg
|
svg.icon.icon-dashboard
|
||||||
|
use(xlink:href="#icon-dashboard")
|
||||||
|
|
||||||
a(
|
a(
|
||||||
href="#",
|
href="#",
|
||||||
tg-nav="discover",
|
tg-nav="discover",
|
||||||
title="{{'PROJECT.NAVIGATION.DISCOVER_TITLE' | translate}}",
|
title="{{'PROJECT.NAVIGATION.DISCOVER_TITLE' | translate}}",
|
||||||
)
|
)
|
||||||
include ../../svg/discover.svg
|
svg.icon.icon-discover
|
||||||
|
use(xlink:href="#icon-discover")
|
||||||
|
|
||||||
div.topnav-dropdown-wrapper(ng-show="vm.projects.size", tg-dropdown-project-list)
|
div.topnav-dropdown-wrapper(ng-show="vm.projects.size", tg-dropdown-project-list)
|
||||||
//- div.topnav-dropdown-wrapper(tg-dropdown-organization-list)
|
//- div.topnav-dropdown-wrapper(tg-dropdown-organization-list)
|
||||||
|
|
|
@ -52,13 +52,14 @@ $dropdown-width: 350px;
|
||||||
color: $white;
|
color: $white;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
transition: all .2s linear;
|
transition: all .2s linear;
|
||||||
svg path {
|
svg {
|
||||||
fill: darken($primary-dark, 8%);
|
fill: rgba($primary-dark, .8);
|
||||||
|
transition: all .2s linear;
|
||||||
}
|
}
|
||||||
&:hover {
|
&:hover {
|
||||||
background: rgba($black, .2);
|
background: rgba($black, .2);
|
||||||
color: $primary-light;
|
color: $primary-light;
|
||||||
svg path {
|
svg {
|
||||||
fill: $white;
|
fill: $white;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -84,10 +85,6 @@ $dropdown-width: 350px;
|
||||||
max-height: 1.2rem;
|
max-height: 1.2rem;
|
||||||
max-width: 1.2rem;
|
max-width: 1.2rem;
|
||||||
width: 1.2rem;
|
width: 1.2rem;
|
||||||
path {
|
|
||||||
fill: $top-icon-color;
|
|
||||||
transition: all .2s;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
.topnav-dropdown-wrapper {
|
.topnav-dropdown-wrapper {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
@ -132,6 +129,20 @@ $dropdown-width: 350px;
|
||||||
margin-bottom: .5rem;
|
margin-bottom: .5rem;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
.plugin {
|
||||||
|
&:hover {
|
||||||
|
.new {
|
||||||
|
color: $white;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.new {
|
||||||
|
@extend %small;
|
||||||
|
background: $red-light;
|
||||||
|
float: right;
|
||||||
|
margin-left: auto;
|
||||||
|
padding: .1rem .25rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
a {
|
a {
|
||||||
color: $gray-light;
|
color: $gray-light;
|
||||||
display: block;
|
display: block;
|
||||||
|
@ -152,14 +163,30 @@ $dropdown-width: 350px;
|
||||||
&.see-more-projects-btn {
|
&.see-more-projects-btn {
|
||||||
margin-bottom: .3rem;
|
margin-bottom: .3rem;
|
||||||
}
|
}
|
||||||
|
&.import-project-button {
|
||||||
|
padding: .8rem 1rem;
|
||||||
|
}
|
||||||
&.create-project-btn {
|
&.create-project-btn {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
}
|
}
|
||||||
&.import-project-button {
|
&.blocked-project {
|
||||||
padding-left: .75rem;
|
color: $gray;
|
||||||
padding-right: .75rem;
|
svg {
|
||||||
|
margin-left: .5rem;
|
||||||
|
position: relative;
|
||||||
|
top: .25rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.import-project-button {
|
||||||
|
&:hover {
|
||||||
|
svg {
|
||||||
|
fill: $primary-light;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
svg {
|
||||||
|
fill: $white;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
.create-options {
|
.create-options {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
|
@ -2,19 +2,10 @@ section.profile-bar
|
||||||
div.profile-image-wrapper(ng-class="::{'is-current-user': vm.isCurrentUser}")
|
div.profile-image-wrapper(ng-class="::{'is-current-user': vm.isCurrentUser}")
|
||||||
img.profile-img(ng-src="{{::vm.user.get('big_photo')}}", alt="{{::vm.user.get('full_name')}}")
|
img.profile-img(ng-src="{{::vm.user.get('big_photo')}}", alt="{{::vm.user.get('full_name')}}")
|
||||||
a.profile-edition(title="{{ 'USER.PROFILE.EDIT' | translate }}", tg-nav="user-settings-user-profile", translate="USER.PROFILE.EDIT")
|
a.profile-edition(title="{{ 'USER.PROFILE.EDIT' | translate }}", tg-nav="user-settings-user-profile", translate="USER.PROFILE.EDIT")
|
||||||
// a.button-green
|
|
||||||
// span(translate="USER.PROFILE.FOLLOW")
|
|
||||||
div.profile-data
|
div.profile-data
|
||||||
h1(ng-class="{'not-full-name': !vm.user.get('full_name')}") {{::vm.user.get("full_name_display")}}
|
h1(ng-class="{'not-full-name': !vm.user.get('full_name')}") {{::vm.user.get("full_name_display")}}
|
||||||
.username @{{::vm.user.get("username")}}
|
.username @{{::vm.user.get("username")}}
|
||||||
h2 {{::vm.stats.get('roles').join(", ")}}
|
h2 {{::vm.stats.get('roles').join(", ")}}
|
||||||
// div.location
|
|
||||||
// include ../../../svg/location.svg
|
|
||||||
// span Madrid
|
|
||||||
// Remove Abuse Flag when a user is seeing itself
|
|
||||||
// a.flag(href="", title="{{ 'USER.PROFILE.REPORT' | translate }}")
|
|
||||||
// include ../../../svg/flag.svg
|
|
||||||
// These values in profile stats are not defined yet in UX. Please ask
|
|
||||||
div.profile-stats
|
div.profile-stats
|
||||||
div.stat
|
div.stat
|
||||||
span.stat-number {{::vm.stats.get('total_num_projects')}}
|
span.stat-number {{::vm.stats.get('total_num_projects')}}
|
||||||
|
@ -25,14 +16,6 @@ section.profile-bar
|
||||||
div.stat
|
div.stat
|
||||||
span.stat-number {{::vm.stats.get('total_num_contacts')}}
|
span.stat-number {{::vm.stats.get('total_num_contacts')}}
|
||||||
span.stat-name(translate="USER.PROFILE.CONTACTS")
|
span.stat-name(translate="USER.PROFILE.CONTACTS")
|
||||||
// TODO Hide until organizations come
|
|
||||||
// div.profile-organizations
|
|
||||||
// h3 Organizations
|
|
||||||
// div.profile-organizations-wrapper
|
|
||||||
// div.organization
|
|
||||||
// div.organization
|
|
||||||
// div.organization
|
|
||||||
// div.organization
|
|
||||||
|
|
||||||
div.profile-quote(ng-if="::vm.user.get('bio')")
|
div.profile-quote(ng-if="::vm.user.get('bio')")
|
||||||
span {{::vm.user.get("bio") | limitTo:210 }}{{vm.user.get("bio").length < 210 ? '' : '...'}}
|
span {{::vm.user.get("bio") | limitTo:210 }}{{vm.user.get("bio").length < 210 ? '' : '...'}}
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue