summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CONTRIBUTORS.md1
-rw-r--r--ChangeLog1
-rw-r--r--README.md2
-rw-r--r--app/Locale/fr_FR/translations.php2
-rw-r--r--app/Locale/nb_NO/translations.php169
-rw-r--r--app/Model/Config.php3
-rw-r--r--app/Template/project/index.php4
7 files changed, 128 insertions, 54 deletions
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index 9c0c2414..5fa3aa4d 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -19,6 +19,7 @@ Contributors:
- [Creador30](https://github.com/creador30)
- [Cynthia Pereira](https://github.com/cynthiapereira)
- [David-Norris](https://github.com/David-Norris)
+- [Daniel Raknes](https://github.com/danielraknes)
- [Draza (bdpsoft)](https://github.com/bdpsoft)
- [Eskiso](https://github.com/eSkiSo)
- [Esteban Monge](https://github.com/EstebanMonge)
diff --git a/ChangeLog b/ChangeLog
index e0ef2dd3..b4ed4957 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -12,6 +12,7 @@ New features:
* Add config parameter to define session duration
* Add config parameter to disable/enable RememberMe authentication
* Add Portuguese (European) translation
+* Add Norwegian translation
Improvements:
diff --git a/README.md b/README.md
index e509e481..11a9c5fb 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@ Official website: <http://kanboard.net>
- Minimalist software, focus only on essential features (Less is more)
- Open source and self-hosted
- Super simple installation
-- Translated in 20 languages
+- Translated in 21 languages
- Distributed under [MIT License](LICENSE)
- [List of features are available on the website](http://kanboard.net/features)
- [Change Log](ChangeLog)
diff --git a/app/Locale/fr_FR/translations.php b/app/Locale/fr_FR/translations.php
index 8516ee5b..f79949ed 100644
--- a/app/Locale/fr_FR/translations.php
+++ b/app/Locale/fr_FR/translations.php
@@ -163,7 +163,7 @@ return array(
'%B %e, %Y at %k:%M %p' => '%d/%m/%Y à %H:%M',
'Date created' => 'Date de création',
'Date completed' => 'Date de clôture',
- 'Id' => 'Identifiant',
+ 'Id' => 'Id.',
'%d closed tasks' => '%d tâches terminées',
'No task for this project' => 'Aucune tâche pour ce projet',
'Public link' => 'Lien public',
diff --git a/app/Locale/nb_NO/translations.php b/app/Locale/nb_NO/translations.php
index 0af02cf4..99251569 100644
--- a/app/Locale/nb_NO/translations.php
+++ b/app/Locale/nb_NO/translations.php
@@ -79,12 +79,12 @@ return array(
'Assigned to %s' => 'Tildelt: %s',
'Remove a column' => 'Fjern en kolonne',
'Remove a column from a board' => 'Fjern en kolonne fra et board',
- 'Unable to remove this column.' => 'Ikke mulig à fjerne denne kolonnen',
+ 'Unable to remove this column.' => 'Ikke mulig fjerne denne kolonnen',
'Do you really want to remove this column: "%s"?' => 'Vil du fjerne denne kolonnen: "%s"?',
'This action will REMOVE ALL TASKS associated to this column!' => 'Denne handlingen vil SLETTE ALLE OPPGAVER tilknyttet denne kolonnen',
'Settings' => 'Innstillinger',
'Application settings' => 'Applikasjonsinnstillinger',
- 'Language' => 'SpÃrÃ¥k',
+ 'Language' => 'Språk',
'Webhook token:' => 'Webhook token:',
'API token:' => 'API Token:',
'Database size:' => 'Databasestørrelse:',
@@ -121,15 +121,14 @@ return array(
'Passwords don\'t match' => 'Passordene stemmer ikke overens',
'The confirmation is required' => 'Bekreftelse er nødvendig',
'The project is required' => 'Prosjektet er påkrevet',
- 'The id is required' => 'Id\'en er pÃÃkrevet',
+ 'The id is required' => 'Id\'en er påkrevd',
'The project id is required' => 'Prosjektet-id er påkrevet',
'The project name is required' => 'Prosjektnavn er påkrevet',
'This project must be unique' => 'Prosjektnavnet skal være unikt',
'The title is required' => 'Tittel er pårevet',
- 'There is no active project, the first step is to create a new project.' => 'Det er ingen aktive prosjekter. Førstesteg er åopprette et nytt prosjekt.',
'Settings saved successfully.' => 'Innstillinger lagret.',
'Unable to save your settings.' => 'Innstillinger kunne ikke lagres.',
- 'Database optimization done.' => 'Databaseoptimering er fullfÃrt.',
+ 'Database optimization done.' => 'Databaseoptimering er fullført.',
'Your project have been created successfully.' => 'Ditt prosjekt er opprettet.',
'Unable to create your project.' => 'Prosjektet kunne ikke opprettes',
'Project updated successfully.' => 'Prosjektet er oppdatert.',
@@ -165,8 +164,6 @@ return array(
'Date created' => 'Dato for opprettelse',
'Date completed' => 'Dato for fullført',
'Id' => 'ID',
- 'Completed tasks' => 'Fullførte oppgaver',
- 'Completed tasks for "%s"' => 'Fullførte oppgaver for "%s"',
'%d closed tasks' => '%d lukkede oppgaver',
'No task for this project' => 'Ingen oppgaver i dette prosjektet',
'Public link' => 'Offentligt lenke',
@@ -213,7 +210,7 @@ return array(
'Action parameters' => 'Handlingsparametre',
'Action' => 'Handling',
'Event' => 'Begivenhet',
- 'When the selected event occurs execute the corresponding action.' => 'NÃ¥r den valgtebegivenheten oppstÃr, utfÃÃr tilsvarende handlin.',
+ 'When the selected event occurs execute the corresponding action.' => 'Når den valgtebegivenheten oppstår, utføre tilsvarende handlin.',
'Next step' => 'Neste',
'Define action parameters' => 'Definer handlingsparametre',
'Save this action' => 'Lagre handlingen',
@@ -255,25 +252,21 @@ return array(
'Expiration date' => 'Utløpsdato',
'Remember Me' => 'Husk meg',
'Creation date' => 'Opprettelsesdato',
- 'Filter by user' => 'Filtrer efter bruker',
- 'Filter by due date' => 'Filtrer etter forfallsdato',
'Everybody' => 'Alle',
'Open' => 'Ã…pen',
'Closed' => 'Lukket',
'Search' => 'Søk',
'Nothing found.' => 'Intet funnet.',
- 'Search in the project "%s"' => 'SÃk¸ i prosjektet "%s"',
'Due date' => 'Forfallsdato',
'Others formats accepted: %s and %s' => 'Andre formater: %s og %s',
'Description' => 'Beskrivelse',
'%d comments' => '%d kommentarer',
'%d comment' => '%d kommentar',
'Email address invalid' => 'Ugyldig epost',
- 'Your Google Account is not linked anymore to your profile.' => 'Din Google-konto er ikke lengre knyttet til din profil.',
- 'Unable to unlink your Google Account.' => 'Det var ikke mulig à fjerne din Google-konto.',
- 'Google authentication failed' => 'Google godjenning mislyktes',
- 'Unable to link your Google Account.' => 'Det var ikke mulig åknytte opp til din Google-konto.',
- 'Your Google Account is linked to your profile successfully.' => 'Din Google-konto er knyttet til din profil.',
+ // 'Your external account is not linked anymore to your profile.' => '',
+ // 'Unable to unlink your external account.' => '',
+ // 'External authentication failed' => '',
+ // 'Your external account is linked to your profile successfully.' => '',
'Email' => 'Epost',
'Link my Google Account' => 'Knytt til min Google-konto',
'Unlink my Google Account' => 'Fjern knytningen til min Google-konto',
@@ -301,7 +294,6 @@ return array(
'Category Name' => 'Kategorinavn',
'Add a new category' => 'Legg til ny kategori',
'Do you really want to remove this category: "%s"?' => 'Vil du virkelig fjerne kategorien: "%s"?',
- 'Filter by category' => 'Filter etter kategori',
'All categories' => 'Alle kategorier',
'No category' => 'Ingen kategori',
'The name is required' => 'Navnet er påkrevet',
@@ -310,7 +302,7 @@ return array(
'File removed successfully.' => 'Filen er fjernet.',
'Attach a document' => 'Legg til et dokument',
'Do you really want to remove this file: "%s"?' => 'Vil du virkelig fjerne filen: "%s"?',
- 'open' => 'Ãpen',
+ 'open' => 'Ã¥pen',
'Attachments' => 'Vedleggr',
'Edit the task' => 'Rediger oppgaven',
'Edit the description' => 'Rediger beskrivelsen',
@@ -333,7 +325,7 @@ return array(
'Edit a sub-task' => 'Rediger en deloppgave',
'Remove a sub-task' => 'Fjern en deloppgave',
'The time must be a numeric value' => 'Tiden skal være en nummerisk erdi',
- 'Todo' => 'GjÃremÃ¥l',
+ 'Todo' => 'Gjøremål',
'In progress' => 'Under arbeid',
'Sub-task removed successfully.' => 'Deloppgaven er fjernet.',
'Unable to remove this sub-task.' => 'Deloppgaven kunne ikke fjernes.',
@@ -344,14 +336,9 @@ return array(
'Maximum size: ' => 'Maksimum størrelse: ',
'Unable to upload the file.' => 'Filen kunne ikke lastes opp.',
'Display another project' => 'Vis annet prosjekt...',
- 'Your GitHub account was successfully linked to your profile.' => 'Din GitHub-konto er knyttet til din profil.',
- 'Unable to link your GitHub Account.' => 'Det var ikke mulig å knytte din GitHub-konto.',
- 'GitHub authentication failed' => 'GitHub godkjenning mislyktes',
- 'Your GitHub account is no longer linked to your profile.' => 'Din GitHub-konto er ikke lengere knyttet til din profil.',
- 'Unable to unlink your GitHub Account.' => 'Det var ikke muligt at fjerne forbindelsen til din GitHub-konto.',
- 'Login with my GitHub Account' => 'Login med min GitHub-konto',
- 'Link my GitHub Account' => 'Knytt min GitHub-konto',
- 'Unlink my GitHub Account' => 'Fjern knytningen til min GitHub-konto',
+ // 'Login with my Github Account' => '',
+ // 'Link my Github Account' => '',
+ // 'Unlink my Github Account' => '',
'Created by %s' => 'Opprettet av %s',
'Last modified on %B %e, %Y at %k:%M %p' => 'Sist endret %d.%m.%Y - %H:%M',
'Tasks Export' => 'Oppgave eksport',
@@ -437,7 +424,7 @@ return array(
'%s moved the task %s to the position #%d in the column "%s"' => '%s flyttet oppgaven %s til posisjonen #%d i kolonnen "%s"',
'%s moved the task %s to the column "%s"' => '%s flyttet oppgaven %s til kolonnen "%s"',
'%s created the task %s' => '%s opprettet oppgaven %s',
- '%s closed the task %s' => '%s lukket oppgaven',
+ '%s closed the task %s' => '%s lukket oppgaven %s',
'%s created a subtask for the task %s' => '%s opprettet en deloppgave for oppgaven %s',
'%s updated a subtask for the task %s' => '%s oppdaterte en deloppgave for oppgaven %s',
'Assigned to %s with an estimate of %s/%sh' => 'Tildelt til %s med et estimat på %s/%sh',
@@ -445,7 +432,6 @@ return array(
'%s updated a comment on the task %s' => '%s oppdaterte en kommentar til oppgaven %s',
'%s commented the task %s' => '%s har kommentert oppgaven %s',
'%s\'s activity' => '%s\'s aktvitet',
- 'No activity.' => 'Ingen aktivitet',
'RSS feed' => 'RSS feed',
'%s updated a comment on the task #%d' => '%s oppdaterte en kommentar til oppgaven #%d',
'%s commented on the task #%d' => '%s kommenterte oppgaven #%d',
@@ -489,9 +475,9 @@ return array(
'Refresh interval for private board' => 'Oppdateringsintervall for privat hovedside',
'Refresh interval for public board' => 'Oppdateringsintervall for offentlig hovedside',
'Task highlight period' => 'Fremhevingsperiode for oppgave',
- 'Period (in second) to consider a task was modified recently (0 to disable, 2 days by default)' => 'Periode for à anta at en oppgave nylig ble endretg (0 for å deaktivere, 2 dager som standard)',
+ 'Period (in second) to consider a task was modified recently (0 to disable, 2 days by default)' => 'Periode for å anta at en oppgave nylig ble endretg (0 for å deaktivere, 2 dager som standard)',
'Frequency in second (60 seconds by default)' => 'Frekevens i sekunder (60 sekunder som standard)',
- 'Frequency in second (0 to disable this feature, 10 seconds by default)' => 'Frekvens i sekunder (0 for Ãt deaktivere denne funksjonen, 10 sekunder som standard)',
+ 'Frequency in second (0 to disable this feature, 10 seconds by default)' => 'Frekvens i sekunder (0 for å deaktivere denne funksjonen, 10 sekunder som standard)',
'Application URL' => 'Applikasjons URL',
'Example: http://example.kanboard.net/ (used by email notifications)' => 'Eksempel: http://example.kanboard.net/ (bruges til email notifikationer)',
'Token regenerated.' => 'Token regenerert.',
@@ -499,7 +485,7 @@ return array(
'ISO format is always accepted, example: "%s" and "%s"' => 'ISO format er alltid akseptert, eksempelvis: "%s" og "%s"',
'New private project' => 'Nytt privat prosjekt',
'This project is private' => 'Dette projektet er privat',
- 'Type here to create a new sub-task' => 'Skriv her for à opprette en ny deloppgave',
+ 'Type here to create a new sub-task' => 'Skriv her for å opprette en ny deloppgave',
'Add' => 'Legg til',
'Estimated time: %s hours' => 'Estimert tid: %s timer',
'Time spent: %s hours' => 'Tid brukt: %s timer',
@@ -562,7 +548,7 @@ return array(
'Write' => 'Skriv',
'Active swimlanes' => 'Aktive svæmmebaner',
'Add a new swimlane' => 'Legg til en ny svømmebane',
- 'Change default swimlane' => 'Endre standard svÃømmebane',
+ 'Change default swimlane' => 'Endre standard svømmebane',
'Default swimlane' => 'Standard svømmebane',
// 'Do you really want to remove this swimlane: "%s"?' => '',
// 'Inactive swimlanes' => '',
@@ -605,14 +591,9 @@ return array(
'Language:' => 'Språk',
'Timezone:' => 'Tidssone',
// 'All columns' => '',
- // 'Calendar for "%s"' => '',
- // 'Filter by column' => '',
- // 'Filter by status' => '',
'Calendar' => 'Kalender',
// 'Next' => '',
// '#%d' => '',
- // 'Filter by color' => '',
- // 'Filter by swimlane' => '',
// 'All swimlanes' => '',
// 'All colors' => '',
// 'All status' => '',
@@ -627,14 +608,7 @@ return array(
// 'Time Tracking' => '',
// 'You already have one subtask in progress' => '',
'Which parts of the project do you want to duplicate?' => 'Hvilke deler av dette prosjektet ønsker du å kopiere?',
- 'Change dashboard view' => 'Endre visning',
- 'Show/hide activities' => 'Vis/skjul aktiviteter',
- 'Show/hide projects' => 'Vis/skjul prosjekter',
- 'Show/hide subtasks' => 'Vis/skjul deloppgaver',
- 'Show/hide tasks' => 'Vis/skjul oppgaver',
- 'Disable login form' => 'Deaktiver innlogging',
- 'Show/hide calendar' => 'Vis/skjul kalender',
- 'User calendar' => 'Brukerens kalender',
+ // 'Disallow login form' => '',
// 'Bitbucket commit received' => '',
// 'Bitbucket webhooks' => '',
// 'Help on Bitbucket webhooks' => '',
@@ -688,9 +662,7 @@ return array(
'Keyboard shortcuts' => 'Hurtigtaster',
// 'Open board switcher' => '',
// 'Application' => '',
- // 'Filter recently updated' => '',
'since %B %e, %Y at %k:%M %p' => 'siden %B %e, %Y at %k:%M %p',
- 'More filters' => 'Flere filtre',
'Compact view' => 'Kompakt visning',
'Horizontal scrolling' => 'Bla horisontalt',
'Compact/wide view' => 'Kompakt/bred visning',
@@ -921,7 +893,6 @@ return array(
// 'The task have been moved to the first swimlane' => '',
// 'The task have been moved to another swimlane:' => '',
// 'Overdue tasks for the project "%s"' => '',
- // 'There is no completed tasks at the moment.' => '',
// 'New title: %s' => '',
// 'The task is not assigned anymore' => '',
// 'New assignee: %s' => '',
@@ -938,7 +909,6 @@ return array(
// 'The description have been modified' => '',
// 'Do you really want to close the task "%s" as well as all subtasks?' => '',
// 'Swimlane: %s' => '',
- 'Project calendar' => 'Prosjektkalender',
// 'I want to receive notifications for:' => '',
'All tasks' => 'Alle oppgaver',
// 'Only for tasks assigned to me' => '',
@@ -958,4 +928,103 @@ return array(
'Start timer' => 'Start timer',
'Add project member' => 'Legg til prosjektmedlem',
'Enable notifications' => 'Aktiver varslinger',
+ // 'My activity stream' => '',
+ // 'My calendar' => '',
+ // 'Search tasks' => '',
+ // 'Back to the calendar' => '',
+ // 'Filters' => '',
+ // 'Reset filters' => '',
+ // 'My tasks due tomorrow' => '',
+ // 'Tasks due today' => '',
+ // 'Tasks due tomorrow' => '',
+ // 'Tasks due yesterday' => '',
+ // 'Closed tasks' => '',
+ // 'Open tasks' => '',
+ // 'Not assigned' => '',
+ // 'View advanced search syntax' => '',
+ // 'Overview' => '',
+ // '%b %e %Y' => '',
+ // 'Board/Calendar/List view' => '',
+ // 'Switch to the board view' => '',
+ // 'Switch to the calendar view' => '',
+ // 'Switch to the list view' => '',
+ // 'Go to the search/filter box' => '',
+ // 'There is no activity yet.' => '',
+ // 'No tasks found.' => '',
+ // 'Keyboard shortcut: "%s"' => '',
+ // 'List' => '',
+ // 'Filter' => '',
+ // 'Advanced search' => '',
+ // 'Example of query: ' => '',
+ // 'Search by project: ' => '',
+ // 'Search by column: ' => '',
+ // 'Search by assignee: ' => '',
+ // 'Search by color: ' => '',
+ // 'Search by category: ' => '',
+ // 'Search by description: ' => '',
+ // 'Search by due date: ' => '',
+ // 'Lead and Cycle time for "%s"' => '',
+ // 'Average time spent into each column for "%s"' => '',
+ // 'Average time spent into each column' => '',
+ // 'Average time spent' => '',
+ // 'This chart show the average time spent into each column for the last %d tasks.' => '',
+ // 'Average Lead and Cycle time' => '',
+ // 'Average lead time: ' => '',
+ // 'Average cycle time: ' => '',
+ // 'Cycle Time' => '',
+ // 'Lead Time' => '',
+ // 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '',
+ // 'Average time into each column' => '',
+ // 'Lead and cycle time' => '',
+ // 'Google Authentication' => '',
+ // 'Help on Google authentication' => '',
+ // 'Github Authentication' => '',
+ // 'Help on Github authentication' => '',
+ // 'Channel/Group/User (Optional)' => '',
+ // 'Lead time: ' => '',
+ // 'Cycle time: ' => '',
+ // 'Time spent into each column' => '',
+ // 'The lead time is the duration between the task creation and the completion.' => '',
+ // 'The cycle time is the duration between the start date and the completion.' => '',
+ // 'If the task is not closed the current time is used instead of the completion date.' => '',
+ // 'Set automatically the start date' => '',
+ // 'Edit Authentication' => '',
+ // 'Google Id' => '',
+ // 'Github Id' => '',
+ // 'Remote user' => '',
+ // 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '',
+ // 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '',
+ // 'By @%s on Gitlab' => '',
+ // 'Gitlab issue comment created' => '',
+ // 'New remote user' => '',
+ // 'New local user' => '',
+ // 'Default task color' => '',
+ // 'Hide sidebar' => '',
+ // 'Expand sidebar' => '',
+ // 'This feature does not work with all browsers.' => '',
+ // 'There is no destination project available.' => '',
+ // 'Trigger automatically subtask time tracking' => '',
+ // 'Include closed tasks in the cumulative flow diagram' => '',
+ // 'Current swimlane: %s' => '',
+ // 'Current column: %s' => '',
+ // 'Current category: %s' => '',
+ // 'no category' => '',
+ // 'Current assignee: %s' => '',
+ // 'not assigned' => '',
+ // 'Author:' => '',
+ // 'contributors' => '',
+ // 'License:' => '',
+ // 'License' => '',
+ // 'Project Administrator' => '',
+ // 'Enter the text below' => '',
+ // 'Gantt chart for %s' => '',
+ // 'Sort by position' => '',
+ // 'Sort by date' => '',
+ // 'Add task' => '',
+ // 'Start date:' => '',
+ // 'Due date:' => '',
+ // 'There is no start date or due date for this task.' => '',
+ // 'Moving or resizing a task will change the start and due date of the task.' => '',
+ // 'There is no task in your project.' => '',
+ // 'Gantt chart' => '',
);
diff --git a/app/Model/Config.php b/app/Model/Config.php
index c02cae6d..6fa98f93 100644
--- a/app/Model/Config.php
+++ b/app/Model/Config.php
@@ -41,6 +41,7 @@ class Config extends Base
'JPY' => t('JPY - Japanese Yen'),
'RSD' => t('RSD - Serbian dinar'),
'SEK' => t('SEK - Swedish Krona'),
+ 'NOK' => t('NOK - Norwegian Krone'),
);
}
@@ -83,6 +84,7 @@ class Config extends Base
'it_IT' => 'Italiano',
'hu_HU' => 'Magyar',
'nl_NL' => 'Nederlands',
+ 'nb_NO' => 'Norsk',
'pl_PL' => 'Polski',
'pt_PT' => 'Português',
'pt_BR' => 'Português (Brasil)',
@@ -121,6 +123,7 @@ class Config extends Base
'it_IT' => 'it',
'hu_HU' => 'hu',
'nl_NL' => 'nl',
+ 'nb_NO' => 'nb',
'pl_PL' => 'pl',
'pt_PT' => 'pt',
'pt_BR' => 'pt-br',
diff --git a/app/Template/project/index.php b/app/Template/project/index.php
index 96e359b6..b2cfc7e7 100644
--- a/app/Template/project/index.php
+++ b/app/Template/project/index.php
@@ -57,7 +57,7 @@
</td>
<?php if ($this->user->isAdmin() || $this->user->isProjectAdmin()): ?>
<td>
- <ul>
+ <ul class="no-bullet">
<?php foreach ($project['managers'] as $user_id => $user_name): ?>
<li><?= $this->url->link($this->e($user_name), 'projectuser', 'opens', array('user_id' => $user_id)) ?></li>
<?php endforeach ?>
@@ -67,7 +67,7 @@
<?php if ($project['is_everybody_allowed'] == 1): ?>
<?= t('Everybody') ?>
<?php else: ?>
- <ul>
+ <ul class="no-bullet">
<?php foreach ($project['members'] as $user_id => $user_name): ?>
<li><?= $this->url->link($this->e($user_name), 'projectuser', 'opens', array('user_id' => $user_id)) ?></li>
<?php endforeach ?>