[i18n] Moment, Date and Time

stable
David Barragán Merino 2015-04-30 13:35:40 +02:00
parent fdc6b83f64
commit 3b55caf6f3
13 changed files with 127 additions and 90 deletions

View File

@ -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) ->

View File

@ -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

View File

@ -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")

View File

@ -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])

View File

@ -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])
#############################################################################

View File

@ -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)

View File

@ -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

View File

@ -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)

View File

@ -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])
#############################################################################

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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",