[i18n] Moment, Date and Time
parent
fdc6b83f64
commit
3b55caf6f3
|
@ -36,7 +36,8 @@ taiga.generateUniqueSessionIdentifier = ->
|
|||
taiga.sessionId = taiga.generateUniqueSessionIdentifier()
|
||||
|
||||
|
||||
configure = ($routeProvider, $locationProvider, $httpProvider, $provide, $tgEventsProvider, tgLoaderProvider, $compileProvider, $translateProvider) ->
|
||||
configure = ($routeProvider, $locationProvider, $httpProvider, $provide, $tgEventsProvider, tgLoaderProvider,
|
||||
$compileProvider, $translateProvider) ->
|
||||
$routeProvider.when("/",
|
||||
{templateUrl: "project/projects.html", resolve: {loader: tgLoaderProvider.add()}})
|
||||
|
||||
|
@ -231,16 +232,19 @@ configure = ($routeProvider, $locationProvider, $httpProvider, $provide, $tgEven
|
|||
|
||||
$compileProvider.debugInfoEnabled(window.taigaConfig.debugInfo || false)
|
||||
|
||||
preferedLangCode = window.taigaConfig.defaultLanguage || "en"
|
||||
$translateProvider
|
||||
.useStaticFilesLoader({
|
||||
prefix: "/locales/locale-",
|
||||
suffix: ".json"
|
||||
})
|
||||
.addInterpolation('$translateMessageFormatInterpolation')
|
||||
.preferredLanguage(window.taigaConfig.defaultLanguage || "en")
|
||||
.preferredLanguage(preferedLangCode)
|
||||
|
||||
if not window.taigaConfig.debugInfo
|
||||
$translateProvider.fallbackLanguage([window.taigaConfig.defaultLanguage || "en"])
|
||||
$translateProvider.fallbackLanguage(preferedLangCode)
|
||||
|
||||
moment.lang(preferedLangCode)
|
||||
|
||||
|
||||
init = ($log, $config, $rootscope, $auth, $events, $analytics, $translate) ->
|
||||
|
|
|
@ -34,9 +34,10 @@ class AuthService extends taiga.Service
|
|||
"$tgModel",
|
||||
"$tgResources",
|
||||
"$tgHttp",
|
||||
"$tgUrls"]
|
||||
"$tgUrls",
|
||||
"$translate"]
|
||||
|
||||
constructor: (@rootscope, @storage, @model, @rs, @http, @urls) ->
|
||||
constructor: (@rootscope, @storage, @model, @rs, @http, @urls, @translate) ->
|
||||
super()
|
||||
|
||||
getUser: ->
|
||||
|
@ -56,6 +57,10 @@ class AuthService extends taiga.Service
|
|||
@storage.set("userInfo", user.getAttrs())
|
||||
@rootscope.user = user
|
||||
|
||||
if @rootscope.user.lang
|
||||
@translate.use(@rootscope.user.lang)
|
||||
moment.lang(@rootscope.user.lang)
|
||||
|
||||
clear: ->
|
||||
@rootscope.auth = null
|
||||
@rootscope.user = null
|
||||
|
|
|
@ -33,6 +33,7 @@ CreateEditSprint = ($repo, $confirm, $rs, $rootscope, lightboxService, $loading,
|
|||
link = ($scope, $el, attrs) ->
|
||||
hasErrors = false
|
||||
createSprint = true
|
||||
prettyDate = $translate.instant("BACKLOG.SPRINTS.DATE")
|
||||
|
||||
$scope.sprint = {
|
||||
project: null
|
||||
|
@ -117,18 +118,19 @@ CreateEditSprint = ($repo, $confirm, $rs, $rootscope, lightboxService, $loading,
|
|||
estimatedStart = moment($scope.sprint.estimated_start)
|
||||
else if lastSprint?
|
||||
estimatedStart = moment(lastSprint.estimated_finish)
|
||||
$scope.sprint.estimated_start = estimatedStart.format("DD MMM YYYY")
|
||||
$scope.sprint.estimated_start = estimatedStart.format(prettyDate)
|
||||
|
||||
estimatedFinish = moment().add(2, "weeks")
|
||||
if $scope.sprint.estimated_finish
|
||||
estimatedFinish = moment($scope.sprint.estimated_finish)
|
||||
else if lastSprint?
|
||||
estimatedFinish = moment(lastSprint.estimated_finish).add(2, "weeks")
|
||||
$scope.sprint.estimated_finish = estimatedFinish.format("DD MMM YYYY")
|
||||
$scope.sprint.estimated_finish = estimatedFinish.format(prettyDate)
|
||||
|
||||
lastSprintNameDom = $el.find(".last-sprint-name")
|
||||
if lastSprint?.name?
|
||||
text = $translate.instant("LIGHTBOX.ADD_EDIT_SPRINT.LAST_SPRINT_NAME", {"lastSprint": lastSprint.name})
|
||||
text = $translate.instant("LIGHTBOX.ADD_EDIT_SPRINT.LAST_SPRINT_NAME", {
|
||||
lastSprint: lastSprint.name})
|
||||
lastSprintNameDom.html(text)
|
||||
|
||||
$el.find(".delete-sprint").addClass("hidden")
|
||||
|
@ -147,8 +149,8 @@ CreateEditSprint = ($repo, $confirm, $rs, $rootscope, lightboxService, $loading,
|
|||
createSprint = false
|
||||
$scope.$apply ->
|
||||
$scope.sprint = sprint
|
||||
$scope.sprint.estimated_start = moment($scope.sprint.estimated_start).format("DD MMM YYYY")
|
||||
$scope.sprint.estimated_finish = moment($scope.sprint.estimated_finish).format("DD MMM YYYY")
|
||||
$scope.sprint.estimated_start = moment($scope.sprint.estimated_start).format(prettyDate)
|
||||
$scope.sprint.estimated_finish = moment($scope.sprint.estimated_finish).format(prettyDate)
|
||||
|
||||
$el.find(".delete-sprint").removeClass("hidden")
|
||||
|
||||
|
|
|
@ -85,10 +85,12 @@ module.directive("tgBacklogSprint", ["$tgRepo", "$rootScope", BacklogSprintDirec
|
|||
## Sprint Header Directive
|
||||
#############################################################################
|
||||
|
||||
BacklogSprintHeaderDirective = ($navUrls, $template, $compile) ->
|
||||
BacklogSprintHeaderDirective = ($navUrls, $template, $compile, $translate) ->
|
||||
template = $template.get("backlog/sprint-header.html")
|
||||
|
||||
link = ($scope, $el, $attrs, $model) ->
|
||||
prettyDate = $translate.instant("BACKLOG.SPRINTS.DATE")
|
||||
|
||||
isEditable = ->
|
||||
return $scope.project.my_permissions.indexOf("modify_milestone") != -1
|
||||
|
||||
|
@ -99,8 +101,8 @@ BacklogSprintHeaderDirective = ($navUrls, $template, $compile) ->
|
|||
taskboardUrl = $navUrls.resolve("project-taskboard",
|
||||
{project: $scope.project.slug, sprint: sprint.slug})
|
||||
|
||||
start = moment(sprint.estimated_start).format("DD MMM YYYY")
|
||||
finish = moment(sprint.estimated_finish).format("DD MMM YYYY")
|
||||
start = moment(sprint.estimated_start).format(prettyDate)
|
||||
finish = moment(sprint.estimated_finish).format(prettyDate)
|
||||
estimatedDateRange = "#{start}-#{finish}"
|
||||
|
||||
ctx = {
|
||||
|
@ -135,7 +137,9 @@ BacklogSprintHeaderDirective = ($navUrls, $template, $compile) ->
|
|||
require: "ngModel"
|
||||
}
|
||||
|
||||
module.directive("tgBacklogSprintHeader", ["$tgNavUrls", "$tgTemplate", "$compile", BacklogSprintHeaderDirective])
|
||||
module.directive("tgBacklogSprintHeader", ["$tgNavUrls", "$tgTemplate", "$compile", "$translate"
|
||||
BacklogSprintHeaderDirective])
|
||||
|
||||
|
||||
#############################################################################
|
||||
## Toggle Closed Sprints Directive
|
||||
|
@ -178,4 +182,5 @@ ToggleExcludeClosedSprintsVisualization = ($rootscope, $loading, $translate) ->
|
|||
|
||||
return {link: link}
|
||||
|
||||
module.directive("tgBacklogToggleClosedSprintsVisualization", ["$rootScope", "$tgLoading", "$translate", ToggleExcludeClosedSprintsVisualization])
|
||||
module.directive("tgBacklogToggleClosedSprintsVisualization", ["$rootScope", "$tgLoading", "$translate",
|
||||
ToggleExcludeClosedSprintsVisualization])
|
||||
|
|
|
@ -29,10 +29,11 @@ module = angular.module("taigaCommon")
|
|||
## Date Range Directive (used mainly for sprint date range)
|
||||
#############################################################################
|
||||
|
||||
DateRangeDirective = ->
|
||||
DateRangeDirective = ($translate) ->
|
||||
renderRange = ($el, first, second) ->
|
||||
initDate = moment(first).format("DD MMM YYYY")
|
||||
endDate = moment(second).format("DD MMM YYYY")
|
||||
prettyDate = $translate.instant("BACKLOG.SPRINTS.DATE")
|
||||
initDate = moment(first).format(prettyDate)
|
||||
endDate = moment(second).format(prettyDate)
|
||||
$el.html("#{initDate}-#{endDate}")
|
||||
|
||||
link = ($scope, $el, $attrs) ->
|
||||
|
@ -44,19 +45,19 @@ DateRangeDirective = ->
|
|||
|
||||
return {link:link}
|
||||
|
||||
module.directive("tgDateRange", DateRangeDirective)
|
||||
module.directive("tgDateRange", ["$translate", DateRangeDirective])
|
||||
|
||||
|
||||
#############################################################################
|
||||
## Date Selector Directive (using pikaday)
|
||||
#############################################################################
|
||||
|
||||
DateSelectorDirective =->
|
||||
DateSelectorDirective = ($translate) ->
|
||||
link = ($scope, $el, $attrs, $model) ->
|
||||
selectedDate = null
|
||||
$el.picker = new Pikaday({
|
||||
field: $el[0]
|
||||
format: "DD MMM YYYY"
|
||||
format: $translate.instant("COMMON.DATE")
|
||||
onSelect: (date) =>
|
||||
selectedDate = date
|
||||
onOpen: =>
|
||||
|
@ -71,7 +72,7 @@ DateSelectorDirective =->
|
|||
require: "ngModel"
|
||||
}
|
||||
|
||||
module.directive("tgDateSelector", DateSelectorDirective)
|
||||
module.directive("tgDateSelector", ["$translate", DateSelectorDirective])
|
||||
|
||||
|
||||
#############################################################################
|
||||
|
@ -107,7 +108,7 @@ module.directive("tgSprintProgressbar", SprintProgressBarDirective)
|
|||
## Created-by display directive
|
||||
#############################################################################
|
||||
|
||||
CreatedByDisplayDirective = ($template, $compile)->
|
||||
CreatedByDisplayDirective = ($template, $compile, $translate)->
|
||||
# Display the owner information (full name and photo) and the date of
|
||||
# creation of an object (like USs, tasks and issues).
|
||||
#
|
||||
|
@ -130,7 +131,7 @@ CreatedByDisplayDirective = ($template, $compile)->
|
|||
|
||||
html = template({
|
||||
owner: owner
|
||||
date: moment(model.created_date).format("DD MMM YYYY HH:mm")
|
||||
date: moment(model.created_date).format($translate.instant("COMMON.DATETIME"))
|
||||
})
|
||||
|
||||
html = $compile(html)($scope)
|
||||
|
@ -149,7 +150,7 @@ CreatedByDisplayDirective = ($template, $compile)->
|
|||
require: "ngModel"
|
||||
}
|
||||
|
||||
module.directive("tgCreatedByDisplay", ["$tgTemplate", "$compile", CreatedByDisplayDirective])
|
||||
module.directive("tgCreatedByDisplay", ["$tgTemplate", "$compile", "$translate", CreatedByDisplayDirective])
|
||||
|
||||
|
||||
#############################################################################
|
||||
|
|
|
@ -87,6 +87,8 @@ HistoryDirective = ($log, $loading, $qqueue, $template, $confirm, $translate, $c
|
|||
showAllComments = false
|
||||
showAllActivity = false
|
||||
|
||||
prettyDate = $translate.instant("ACTIVITY.DATETIME")
|
||||
|
||||
bindOnce $scope, $attrs.ngModel, (model) ->
|
||||
type = $attrs.type
|
||||
objectId = model.id
|
||||
|
@ -269,7 +271,7 @@ HistoryDirective = ($log, $loading, $qqueue, $template, $confirm, $translate, $c
|
|||
renderComment = (comment) ->
|
||||
if (comment.delete_comment_date or comment.delete_comment_user?.name)
|
||||
html = templateDeletedComment({
|
||||
deleteCommentDate: moment(comment.delete_comment_date).format("DD MMM YYYY HH:mm") if comment.delete_comment_date
|
||||
deleteCommentDate: moment(comment.delete_comment_date).format(prettyDate) if comment.delete_comment_date
|
||||
deleteCommentUser: comment.delete_comment_user.name
|
||||
deleteComment: comment.comment_html
|
||||
activityId: comment.id
|
||||
|
@ -284,12 +286,12 @@ HistoryDirective = ($log, $loading, $qqueue, $template, $confirm, $translate, $c
|
|||
html = templateActivity({
|
||||
avatar: getUserAvatar(comment.user.pk)
|
||||
userFullName: comment.user.name
|
||||
creationDate: moment(comment.created_at).format("DD MMM YYYY HH:mm")
|
||||
creationDate: moment(comment.created_at).format(prettyDate)
|
||||
comment: comment.comment_html
|
||||
changesText: renderChangesHelperText(comment)
|
||||
changes: renderChangeEntries(comment)
|
||||
mode: "comment"
|
||||
deleteCommentDate: moment(comment.delete_comment_date).format("DD MMM YYYY HH:mm") if comment.delete_comment_date
|
||||
deleteCommentDate: moment(comment.delete_comment_date).format(prettyDate) if comment.delete_comment_date
|
||||
deleteCommentUser: comment.delete_comment_user.name if comment.delete_comment_user?.name
|
||||
activityId: comment.id
|
||||
canDeleteComment: comment.user.pk == $scope.user?.id or $scope.project.my_permissions.indexOf("modify_project") > -1
|
||||
|
@ -303,12 +305,12 @@ HistoryDirective = ($log, $loading, $qqueue, $template, $confirm, $translate, $c
|
|||
return templateActivity({
|
||||
avatar: getUserAvatar(change.user.pk)
|
||||
userFullName: change.user.name
|
||||
creationDate: moment(change.created_at).format("DD MMM YYYY HH:mm")
|
||||
creationDate: moment(change.created_at).format(prettyDate)
|
||||
comment: change.comment_html
|
||||
changes: renderChangeEntries(change)
|
||||
changesText: ""
|
||||
mode: "activity"
|
||||
deleteCommentDate: moment(change.delete_comment_date).format("DD MMM YYYY HH:mm") if change.delete_comment_date
|
||||
deleteCommentDate: moment(change.delete_comment_date).format(prettyDate) if change.delete_comment_date
|
||||
deleteCommentUser: change.delete_comment_user.name if change.delete_comment_user?.name
|
||||
activityId: change.id
|
||||
})
|
||||
|
@ -320,9 +322,7 @@ HistoryDirective = ($log, $loading, $qqueue, $template, $confirm, $translate, $c
|
|||
showMore = totalEntries - entries.length
|
||||
|
||||
html = templateBaseEntries({entries: entries, showMore:showMore})
|
||||
|
||||
html = $compile(html)($scope)
|
||||
|
||||
return html
|
||||
|
||||
# Render into DOM (operations with dom mutability)
|
||||
|
|
|
@ -90,7 +90,7 @@ SprintGraphDirective = ($translate)->
|
|||
tooltip: true
|
||||
tooltipOpts:
|
||||
content: (label, xval, yval, flotItem) ->
|
||||
formattedDate = moment(xval).format("DD MMM")
|
||||
formattedDate = moment(xval).format($translate.instant("TASKBOARD.CHARTS.DATE"))
|
||||
roundedValue = Math.round(yval)
|
||||
|
||||
if flotItem.seriesIndex == 1
|
||||
|
|
|
@ -102,9 +102,7 @@ UserProfileDirective = ($confirm, $auth, $repo, $translate) ->
|
|||
return if not form.validate()
|
||||
|
||||
changeEmail = $scope.user.isAttributeModified("email")
|
||||
|
||||
$scope.user.lang = $scope.lang
|
||||
$translate.use($scope.user.lang)
|
||||
|
||||
onSuccess = (data) =>
|
||||
$auth.setUser(data)
|
||||
|
|
|
@ -135,7 +135,7 @@ module.controller("WikiDetailController", WikiDetailController)
|
|||
## Wiki Summary Directive
|
||||
#############################################################################
|
||||
|
||||
WikiSummaryDirective = ($log, $template, $compile) ->
|
||||
WikiSummaryDirective = ($log, $template, $compile, $translate) ->
|
||||
template = $template.get("wiki/wiki-summary.html", true)
|
||||
|
||||
link = ($scope, $el, $attrs, $model) ->
|
||||
|
@ -152,7 +152,7 @@ WikiSummaryDirective = ($log, $template, $compile) ->
|
|||
|
||||
ctx = {
|
||||
totalEditions: wiki.editions
|
||||
lastModifiedDate: moment(wiki.modified_date).format("DD MMM YYYY HH:mm")
|
||||
lastModifiedDate: moment(wiki.modified_date).format($translate.instant("WIKI.DATETIME"))
|
||||
user: user
|
||||
}
|
||||
html = template(ctx)
|
||||
|
@ -172,7 +172,7 @@ WikiSummaryDirective = ($log, $template, $compile) ->
|
|||
require: "ngModel"
|
||||
}
|
||||
|
||||
module.directive("tgWikiSummary", ["$log", "$tgTemplate", "$compile", WikiSummaryDirective])
|
||||
module.directive("tgWikiSummary", ["$log", "$tgTemplate", "$compile", "$translate", WikiSummaryDirective])
|
||||
|
||||
|
||||
#############################################################################
|
||||
|
|
|
@ -4,14 +4,14 @@
|
|||
"NO": "No",
|
||||
"LOADING": "Loading...",
|
||||
"LOADING_PROJECT": "Loading project...",
|
||||
"DATE": "DD MMM YYYY",
|
||||
"DATETIME": "DD MMM YYYY HH:mm",
|
||||
"SAVE": "Save",
|
||||
"CANCEL": "Cancel",
|
||||
"ACCEPT": "Accept",
|
||||
"DELETE": "Delete",
|
||||
"CREATE": "Create",
|
||||
"ADD": "Add",
|
||||
"YES": "Yes",
|
||||
"NO": "No",
|
||||
"COPY_TO_CLIPBOARD": "Copy to clipboard: Ctrl+C",
|
||||
"EDIT": "Edit",
|
||||
"DRAG": "Drag",
|
||||
|
@ -581,6 +581,7 @@
|
|||
},
|
||||
"ACTIVITY": {
|
||||
"SHOW_ACTIVITY": "Show activity",
|
||||
"DATETIME": "DD MMM YYYY HH:mm",
|
||||
"SHOW_MORE": "+ Show previous entries ({{showMore}} more)",
|
||||
"TITLE": "Activity",
|
||||
"REMOVED": "removed",
|
||||
|
@ -688,6 +689,7 @@
|
|||
},
|
||||
"SPRINTS": {
|
||||
"TITLE": "SPRINTS",
|
||||
"DATE": "DD MMM YYYY",
|
||||
"LINK_TASKBOARD": "Sprint Taskboard",
|
||||
"TITLE_LINK_TASKBOARD": "Go to Taskboard of \"{{name}}\"",
|
||||
"NUMBER_SPRINTS": "<br/>sprints",
|
||||
|
@ -725,7 +727,8 @@
|
|||
"XAXIS_LABEL": "Days",
|
||||
"YAXIS_LABEL": "Points",
|
||||
"OPTIMAL": "Optimal pending points for day {{formattedDate}} should be {{roundedValue}}",
|
||||
"REAL": "Real pending points for day {{formattedDate}} is {{roundedValue}}"
|
||||
"REAL": "Real pending points for day {{formattedDate}} is {{roundedValue}}",
|
||||
"DATE": "DD MMMM YYYY"
|
||||
}
|
||||
},
|
||||
"TASK": {
|
||||
|
@ -988,6 +991,7 @@
|
|||
"PROGRESS_NAME_DESCRIPTION": "Name and description"
|
||||
},
|
||||
"WIKI": {
|
||||
"DATETIME": "DD MMM YYYY HH:mm",
|
||||
"PLACEHOLDER_PAGE": "Write your wiki page",
|
||||
"REMOVE": "Remove this wiki page",
|
||||
"DELETE_LIGHTBOX_TITLE": "Delete Wiki Page",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"NO": "No",
|
||||
"LOADING": "Cargando...",
|
||||
"LOADING_PROJECT": "Cargando projecto...",
|
||||
"DATE": "DD MMM YYYY",
|
||||
"DATETIME": "DD MMM YYYY HH:mm",
|
||||
"SAVE": "Guardar",
|
||||
"CANCEL": "Cancelar",
|
||||
"ACCEPT": "Aceptar",
|
||||
|
@ -579,6 +581,7 @@
|
|||
},
|
||||
"ACTIVITY": {
|
||||
"SHOW_ACTIVITY": "Mostrar actividad",
|
||||
"DATETIME": "DD MMM YYYY HH:mm",
|
||||
"SHOW_MORE": "+ Ver entradas anteriores ({{showMore}} más)",
|
||||
"TITLE": "Actividad",
|
||||
"REMOVED": "borrado",
|
||||
|
@ -685,6 +688,7 @@
|
|||
},
|
||||
"SPRINTS": {
|
||||
"TITLE": "SPRINTS",
|
||||
"DATE": "DD MMM YYYY",
|
||||
"LINK_TASKBOARD": "Panel de Tareas del Sprint",
|
||||
"TITLE_LINK_TASKBOARD": "Ir al panel de tareas de \"{{name}}\"",
|
||||
"NUMBER_SPRINTS": "<br/>sprints",
|
||||
|
@ -722,7 +726,8 @@
|
|||
"XAXIS_LABEL": "Días",
|
||||
"YAXIS_LABEL": "Puntos",
|
||||
"OPTIMAL": "El número de puntos óptimos pendientes para el día {{formattedDate}} debería ser de {{roundedValue}}",
|
||||
"REAL": "El número de puntos pendientes para el día {{formattedDate}} es de {{roundedValue}}"
|
||||
"REAL": "El número de puntos pendientes para el día {{formattedDate}} es de {{roundedValue}}",
|
||||
"DATE": "DD MMMM YYYY"
|
||||
}
|
||||
},
|
||||
"TASK": {
|
||||
|
@ -985,6 +990,7 @@
|
|||
"PROGRESS_NAME_DESCRIPTION": "Nombre y descripción"
|
||||
},
|
||||
"WIKI": {
|
||||
"DATETIME": "DD MMM YYYY HH:mm",
|
||||
"PLACEHOLDER_PAGE": "Escribe el contenido de tu página",
|
||||
"REMOVE": "Eliminar esta página del wiki",
|
||||
"DELETE_LIGHTBOX_TITLE": "Eliminar Página del Wiki",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"NO": "Ei",
|
||||
"LOADING": "Ladataan...",
|
||||
"LOADING_PROJECT": "Ladataan projektia...",
|
||||
"DATE": "DD MMM YYYY",
|
||||
"DATETIME": "DD MMM YYYY HH:mm",
|
||||
"SAVE": "Tallenna",
|
||||
"CANCEL": "Peru",
|
||||
"ACCEPT": "Hyväksy",
|
||||
|
@ -66,7 +68,7 @@
|
|||
"REMOVE_ASSIGNED": "Poista tekijä",
|
||||
"TOO_MANY": "...liikaa käyttäjiä, lisää suodattimia",
|
||||
"CONFIRM_UNASSIGNED": "Haluatko varmasti jättää tämän ilman tekijää?",
|
||||
"TITLE_ACTION_EDIT_ASSIGNMENT": "Edit assignment"
|
||||
"TITLE_ACTION_EDIT_ASSIGNMENT": "Muokkaa tekijää"
|
||||
},
|
||||
"STATUS": {
|
||||
"CLOSED": "Suljettu",
|
||||
|
@ -145,11 +147,11 @@
|
|||
"DELETE_TASKS": "Poista tehtäviä"
|
||||
},
|
||||
"ISSUES": {
|
||||
"NAME": "Ongelmat",
|
||||
"VIEW_ISSUES": "Katso ongelmia",
|
||||
"ADD_ISSUES": "Lisää ongelmia",
|
||||
"MODIFY_ISSUES": "Muokkaa ongelmia",
|
||||
"DELETE_ISSUES": "Poista ongelmia"
|
||||
"NAME": "Pyynnöt",
|
||||
"VIEW_ISSUES": "Katso pyyntöjä",
|
||||
"ADD_ISSUES": "Lisää pyyntöjä",
|
||||
"MODIFY_ISSUES": "Muokkaa pyyntöjä",
|
||||
"DELETE_ISSUES": "Poista pyyntöjä"
|
||||
},
|
||||
"WIKI": {
|
||||
"NAME": "Wiki",
|
||||
|
@ -181,10 +183,10 @@
|
|||
"COUNT_DEPRECATED": "({{ctrl.deprecatedAttachmentsCount }} vanhentunutta)",
|
||||
"MAX_UPLOAD_SIZE": "Maksimi tiedoston koko {{maxFileSize}}",
|
||||
"DATE": "DD MMM YYYY - hh:mm",
|
||||
"ERROR_UPLOAD_ATTACHMENT": "We have not been able to upload '{{fileName}}'. {{errorMessage}}",
|
||||
"TITLE_LIGHTBOX_DELETE_ATTACHMENT": "Delete attachment...",
|
||||
"MSG_LIGHTBOX_DELETE_ATTACHMENT": "the attachment '{{fileName}}'",
|
||||
"ERROR_DELETE_ATTACHMENT": "We have not been able to delete: {{errorMessage}}",
|
||||
"ERROR_UPLOAD_ATTACHMENT": "Emme onnistuneet lataamaan tiedostoa '{{fileName}}'. {{errorMessage}}",
|
||||
"TITLE_LIGHTBOX_DELETE_ATTACHMENT": "Poista liite...",
|
||||
"MSG_LIGHTBOX_DELETE_ATTACHMENT": "liite '{{fileName}}'",
|
||||
"ERROR_DELETE_ATTACHMENT": "Emme pystyneet poistamaan: {{errorMessage}}",
|
||||
"FIELDS": {
|
||||
"IS_DEPRECATED": "on vanhentunut"
|
||||
}
|
||||
|
@ -230,7 +232,7 @@
|
|||
"BACKLOG_DESCRIPTION": "Hallinnoi käyttäjätarinoita: järjestele ja priorisoi työtä.",
|
||||
"KANBAN": "Kanban",
|
||||
"KANBAN_DESCRIPTION": "Järjestä projektisi tehokkaasti tällä taululla.",
|
||||
"ISSUES": "Ongelmat",
|
||||
"ISSUES": "Pyynnöt",
|
||||
"ISSUES_DESCRIPTION": "Seuraa projektisi virheitä, kysymyksiä ja parannusehdotuksia. Älä jätä mitään huomiotta!",
|
||||
"WIKI": "Wiki",
|
||||
"WIKI_DESCRIPTION": "Lisää, muokkaa tai poista sisältöä yhteistyössä muiden kanssa. Tämä on oikea paikka projektin dokumentaatiolle.",
|
||||
|
@ -260,17 +262,17 @@
|
|||
"REGENERATE_SUBTITLE": "Jos muutata CSV-datan URLia, edellien lakkaa toimimasta. Oletko varma?",
|
||||
"CSV_TYPE_US": "käyttäjätarinat",
|
||||
"CSV_TYPE_TASK": "tehtävät",
|
||||
"CSV_TYPE_ISSUE": "ongelmat"
|
||||
"CSV_TYPE_ISSUE": "pyynnöt"
|
||||
},
|
||||
"CUSTOM_FIELDS": {
|
||||
"TITLE": "Omat kentät",
|
||||
"SUBTITLE": "Määritele omia kenttiä käyttäjätarinoihin, tehtäviin ja ongelmiin",
|
||||
"SUBTITLE": "Määritele omia kenttiä käyttäjätarinoihin, tehtäviin ja pyytöihin",
|
||||
"US_DESCRIPTION": "Käyttäjätarinoiden omat kentät",
|
||||
"US_ADD": "Lisää käyttäjätarinoihin oma kenttä",
|
||||
"TASK_DESCRIPTION": "Tehtävien omat kentät",
|
||||
"TASK_ADD": "Lisää omia kenttiä tehtäviin",
|
||||
"ISSUE_DESCRIPTION": "Ongelmien omat kentät",
|
||||
"ISSUE_ADD": "Lisää oma kenttä ongelmille"
|
||||
"ISSUE_DESCRIPTION": "Pyyntöjen omat kentät",
|
||||
"ISSUE_ADD": "Lisää oma kenttä pyynnöille"
|
||||
},
|
||||
"PROJECT_VALUES": {
|
||||
"APP_TITLE": "Projektin arvot - {{sectionName}} - {{projectName}}",
|
||||
|
@ -283,24 +285,24 @@
|
|||
"ACTION_ADD": "Lisää uusi piste"
|
||||
},
|
||||
"PROJECT_VALUES_PRIORITIES": {
|
||||
"TITLE": "Ongelmien tärkeydet",
|
||||
"SUBTITLE": "Määrittele tärkeydet ongelmillesi"
|
||||
"TITLE": "Pyyntöjen tärkeydet",
|
||||
"SUBTITLE": "Määrittele tärkeydet pyynnöille"
|
||||
},
|
||||
"PROJECT_VALUES_SEVERITIES": {
|
||||
"TITLE": "Ongelmien vakavuudet",
|
||||
"SUBTITLE": "Määrittele ongelmiesi vakavuudet"
|
||||
"TITLE": "Pyyntöjen vakavuudet",
|
||||
"SUBTITLE": "Määrittele pyyntöjen vakavuudet"
|
||||
},
|
||||
"PROJECT_VALUES_STATUS": {
|
||||
"TITLE": "Tila",
|
||||
"SUBTITLE": "Määrittele tilat joiden kautta käyttäjätarinasi, tehtäväsi ja ongelmasi kulkevat",
|
||||
"SUBTITLE": "Määrittele tilat joiden kautta käyttäjätarinasi, tehtäväsi ja pyyntösi kulkevat",
|
||||
"US_TITLE": "Kt tilat",
|
||||
"TASK_TITLE": "Tehtävien tilat",
|
||||
"ISSUE_TITLE": "Ongelmien tilat"
|
||||
"ISSUE_TITLE": "Pyyntöjen tilat"
|
||||
},
|
||||
"PROJECT_VALUES_TYPES": {
|
||||
"TITLE": "Tyypit",
|
||||
"SUBTITLE": "Määrittele ongelmien tyypit",
|
||||
"ISSUE_TITLE": "Ongelmien tyypit",
|
||||
"SUBTITLE": "Määrittele pyyntöjen tyypit",
|
||||
"ISSUE_TITLE": "Pyyntöjen tyypit",
|
||||
"ACTION_ADD": "Lisää uusi {{objName}}"
|
||||
},
|
||||
"ROLES": {
|
||||
|
@ -390,8 +392,8 @@
|
|||
"LABEL_TASK_STATUS": "Oletusarvo tehtävän tilan valintaan",
|
||||
"LABEL_PRIORITY": "Oletus arvo tärkeyden valiintaan",
|
||||
"LABEL_SEVERITY": "Oletusarvo vakavuuden valintaan",
|
||||
"LABEL_ISSUE_TYPE": "Oletusarvo ongelman tyypin valintaan",
|
||||
"LABEL_ISSUE_STATUS": "Oletusarvo ongelmien statuksen valintaan"
|
||||
"LABEL_ISSUE_TYPE": "Oletusarvo pyynnön tyypin valintaan",
|
||||
"LABEL_ISSUE_STATUS": "Oletusarvo pyyntöjen statuksen valintaan"
|
||||
},
|
||||
"CSV": {
|
||||
"TITLE": "{{csvType}} raportit",
|
||||
|
@ -455,7 +457,7 @@
|
|||
"SEARCH": "Hae",
|
||||
"BACKLOG": "Odottavat",
|
||||
"KANBAN": "Kanban",
|
||||
"ISSUES": "Ongelmat",
|
||||
"ISSUES": "Pyynnöt",
|
||||
"WIKI": "Wiki",
|
||||
"TEAM": "Tiimi",
|
||||
"MEETUP": "Tapaa",
|
||||
|
@ -501,7 +503,7 @@
|
|||
"HELP_TEXT": "Taigan käyttäjät lisätään automaattisesti, muille lähetetään kutsu."
|
||||
},
|
||||
"CREATE_ISSUE": {
|
||||
"TITLE": "Lisää ongelma"
|
||||
"TITLE": "Lisää pyyntö"
|
||||
},
|
||||
"FEEDBACK": {
|
||||
"TITLE": "Kerro jotain...",
|
||||
|
@ -549,8 +551,8 @@
|
|||
"TOTAL_POINTS": "yhteensä",
|
||||
"ADD": "+ Lisää uusi käyttäjätarina",
|
||||
"ADD_BULK": "Lisää monta käyttäjätarinaa",
|
||||
"PROMOTED": "Tämä US on liitetty ongelmaan:",
|
||||
"TITLE_LINK_GO_TO_ISSUE": "Mene ongelmaan",
|
||||
"PROMOTED": "Tämä Kt on liitetty pyyntöön:",
|
||||
"TITLE_LINK_GO_TO_ISSUE": "Siirry pyyntöön",
|
||||
"EXTERNAL_REFERENCE": "Tämä Kt oon luotu täältä: ",
|
||||
"GO_TO_EXTERNAL_REFERENCE": "Palaa alkuun",
|
||||
"BLOCKED": "Tämä käyttäjätarina on suljettu",
|
||||
|
@ -579,6 +581,7 @@
|
|||
},
|
||||
"ACTIVITY": {
|
||||
"SHOW_ACTIVITY": "Näytä tapahtumat",
|
||||
"DATETIME": "DD MMM YYYY HH:mm",
|
||||
"SHOW_MORE": "+ Näytä edelliset rivit ({{showMore}} lisää)",
|
||||
"TITLE": "Aktiivisuus",
|
||||
"REMOVED": "poistettu",
|
||||
|
@ -685,6 +688,7 @@
|
|||
},
|
||||
"SPRINTS": {
|
||||
"TITLE": "KIERROKSET",
|
||||
"DATE": "DD MMM YYYY",
|
||||
"LINK_TASKBOARD": "Kierroksien tehtävätaulu",
|
||||
"TITLE_LINK_TASKBOARD": "Siirry tehtävätauluun {{name}}",
|
||||
"NUMBER_SPRINTS": "<br/>kierrokset",
|
||||
|
@ -722,7 +726,8 @@
|
|||
"XAXIS_LABEL": "Päivät",
|
||||
"YAXIS_LABEL": "Pisteet",
|
||||
"OPTIMAL": "Optimaaliset odottavat pisteet {{formattedDate}} ovat {{roundedValue}}",
|
||||
"REAL": "Todelliset odottavat pisteet {{formattedDate}} ovat {{roundedValue}}"
|
||||
"REAL": "Todelliset odottavat pisteet {{formattedDate}} ovat {{roundedValue}}",
|
||||
"DATE": "DD MMMM YYYY"
|
||||
}
|
||||
},
|
||||
"TASK": {
|
||||
|
@ -819,22 +824,22 @@
|
|||
"LINK_LOGIN": "Oletko jo rekisteröitynyt? Kirjaudu sisään"
|
||||
},
|
||||
"ISSUES": {
|
||||
"LIST_SECTION_NAME": "Ongelmat",
|
||||
"SECTION_NAME": "Ongelman tiedot",
|
||||
"ACTION_NEW_ISSUE": "+ UUSI ONGELMA",
|
||||
"LIST_SECTION_NAME": "Pyynnöt",
|
||||
"SECTION_NAME": "Pyyntöjen tiedot",
|
||||
"ACTION_NEW_ISSUE": "+ UUSI PYYNTÖ",
|
||||
"ACTION_PROMOTE_TO_US": "Liitä käyttäjätarinaan",
|
||||
"PLACEHOLDER_FILTER_NAME": "Anna suodattimen nimi ja paina enter",
|
||||
"PROMOTED": "Tämä ongelma on liitetty Kthen:",
|
||||
"EXTERNAL_REFERENCE": "Tämä ongelma on luotu ",
|
||||
"PROMOTED": "Tämä pyyntö on liitetty Kthen:",
|
||||
"EXTERNAL_REFERENCE": "Tämä pyyntö on luotu täältä:",
|
||||
"GO_TO_EXTERNAL_REFERENCE": "Palaa alkuun",
|
||||
"BLOCKED": "Tämä ongelma on estetty",
|
||||
"TITLE_PREVIOUS_ISSUE": "edellinen ongelma",
|
||||
"TITLE_NEXT_ISSUE": "seuraava ongelma",
|
||||
"ACTION_DELETE": "Poista ongelma",
|
||||
"LIGHTBOX_TITLE_BLOKING_ISSUE": "Estävä ongelma",
|
||||
"BLOCKED": "Tämä pyyntö on estetty",
|
||||
"TITLE_PREVIOUS_ISSUE": "edellinen pyyntö",
|
||||
"TITLE_NEXT_ISSUE": "seuraava pyyntö",
|
||||
"ACTION_DELETE": "Poista pyyntö",
|
||||
"LIGHTBOX_TITLE_BLOKING_ISSUE": "Estävä pyyntö",
|
||||
"CONFIRM_PROMOTE": {
|
||||
"TITLE": "Liitä tämä ongelma uuteen käyttäjätarinaan",
|
||||
"MESSAGE": "Haluatko varmasti lisätä uuden käyttäjätarinan tästä ongelmasta?"
|
||||
"TITLE": "Liitä tämä pyyntö uuteen käyttäjätarinaan",
|
||||
"MESSAGE": "Haluatko varmasti lisätä uuden käyttäjätarinan tästä pyynnöstä?"
|
||||
},
|
||||
"FILTERS": {
|
||||
"TITLE": "Suodattimet",
|
||||
|
@ -871,9 +876,9 @@
|
|||
"TITLE_ACTION_CHANGE_STATUS": "Muuta tilaa",
|
||||
"TITLE_ACTION_ASSIGNED_TO": "Tekijä",
|
||||
"EMPTY": {
|
||||
"TITLE": "Ei raportoitavia ongelmia:-)",
|
||||
"TITLE": "Ei raportoitavia pyyntöjä:-)",
|
||||
"SUBTITLE": "Löysitkö ongelman?",
|
||||
"ACTION_CREATE_ISSUE": "Luo uusi ongelma"
|
||||
"ACTION_CREATE_ISSUE": "Luo uusi pyyntö"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -893,7 +898,7 @@
|
|||
},
|
||||
"SEARCH": {
|
||||
"FILTER_USER_STORIES": "Käyttäjätarinat",
|
||||
"FILTER_ISSUES": "Ongelmat",
|
||||
"FILTER_ISSUES": "Pyynnöt",
|
||||
"FILTER_TASKS": "Tehtävät",
|
||||
"FILTER_WIKI": "Wiki-sivut",
|
||||
"PLACEHOLDER_SEARCH": "Etsi täältä...",
|
||||
|
@ -906,13 +911,13 @@
|
|||
"APP_TITLE": "TIIMI - {{projectName}}",
|
||||
"PLACEHOLDER_INPUT_SEARCH": "Etsi koko nimellä...",
|
||||
"COLUMN_MR_WOLF": "Mr. Wolf",
|
||||
"EXPLANATION_COLUMN_MR_WOLF": "Suljetut ongelmat",
|
||||
"EXPLANATION_COLUMN_MR_WOLF": "Suljetut pyynnöt",
|
||||
"COLUMN_IOCAINE": "Hidasteiden syöjä",
|
||||
"EXPLANATION_COLUMN_IOCAINE": "Kertyneet hidasteet",
|
||||
"COLUMN_CERVANTES": "Cervantes",
|
||||
"EXPLANATION_COLUMN_CERVANTES": "Wiki-sivuja muokattu",
|
||||
"COLUMN_BUG_HUNTER": "Virheiden metsästäjä",
|
||||
"EXPLANATION_COLUMN_BUG_HUNTER": "Ongelmia raportoitu",
|
||||
"EXPLANATION_COLUMN_BUG_HUNTER": "Pyyntöjä raportoitu",
|
||||
"COLUMN_NIGHT_SHIFT": "Yövuoro",
|
||||
"EXPLANATION_COLUMN_NIGHT_SHIFT": "Suljetut tehtävät",
|
||||
"COLUMN_TOTAL_POWER": "Kokonaisvoima",
|
||||
|
@ -985,6 +990,7 @@
|
|||
"PROGRESS_NAME_DESCRIPTION": "Nimi ja kuvaus"
|
||||
},
|
||||
"WIKI": {
|
||||
"DATETIME": "DD MMM YYYY HH:mm",
|
||||
"PLACEHOLDER_PAGE": "Kirjoita wiki-sivu",
|
||||
"REMOVE": "Poista tämä wiki-sivu",
|
||||
"DELETE_LIGHTBOX_TITLE": "Poista wiki-sivu",
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
"NO": "Non",
|
||||
"LOADING": "Chargement...",
|
||||
"LOADING_PROJECT": "Chargement du projet...",
|
||||
"DATE": "DD MMM YYYY",
|
||||
"DATETIME": "DD MMM YYYY HH:mm",
|
||||
"SAVE": "Enregistré",
|
||||
"CANCEL": "Annuler",
|
||||
"ACCEPT": "Accepter",
|
||||
|
@ -579,6 +581,7 @@
|
|||
},
|
||||
"ACTIVITY": {
|
||||
"SHOW_ACTIVITY": "Montrer l'activité",
|
||||
"DATETIME": "DD MMM YYYY HH:mm",
|
||||
"SHOW_MORE": "+ Montrer les entrées précédentes ({{showMore}} plus)",
|
||||
"TITLE": "Activité",
|
||||
"REMOVED": "supprimé",
|
||||
|
@ -685,6 +688,7 @@
|
|||
},
|
||||
"SPRINTS": {
|
||||
"TITLE": "SPRINTS",
|
||||
"DATE": "DD MMM YYYY",
|
||||
"LINK_TASKBOARD": "Taskboard du sprint",
|
||||
"TITLE_LINK_TASKBOARD": "Aller au Taskboard de \"{{name}}\"",
|
||||
"NUMBER_SPRINTS": "<br/>sprints",
|
||||
|
@ -722,7 +726,8 @@
|
|||
"XAXIS_LABEL": "Journées",
|
||||
"YAXIS_LABEL": "Points",
|
||||
"OPTIMAL": "Le nombre optimal de points pour le jour {{formattedDate}} devrait être {{roundedValue}}",
|
||||
"REAL": "Le nombre réel de points pour le jour {{formattedDate}} est {{roundedValue}}"
|
||||
"REAL": "Le nombre réel de points pour le jour {{formattedDate}} est {{roundedValue}}",
|
||||
"DATE": "DD MMMM YYYY"
|
||||
}
|
||||
},
|
||||
"TASK": {
|
||||
|
@ -985,6 +990,7 @@
|
|||
"PROGRESS_NAME_DESCRIPTION": "Nom et description"
|
||||
},
|
||||
"WIKI": {
|
||||
"DATETIME": "DD MMM YYYY HH:mm",
|
||||
"PLACEHOLDER_PAGE": "Ecrivez votre page wiki",
|
||||
"REMOVE": "Supprimer cette page wiki",
|
||||
"DELETE_LIGHTBOX_TITLE": "Supprimer la page Wiki",
|
||||
|
|
Loading…
Reference in New Issue