Move Google authentication to an external plugin

This commit is contained in:
Frederic Guillot
2016-01-29 20:15:53 -05:00
parent 915bf58822
commit dae0c7391a
39 changed files with 41 additions and 574 deletions

View File

@@ -1,6 +1,11 @@
Version 1.0.25 (unreleased) Version 1.0.25 (unreleased)
-------------- --------------
Breaking changes:
* Core functionalities moved to external plugins:
- Google Auth: https://github.com/kanboard/plugin-google-auth
New features: New features:
* Add project owner (Directly Responsible Individual) * Add project owner (Directly Responsible Individual)

View File

@@ -1,143 +0,0 @@
<?php
namespace Kanboard\Auth;
use Kanboard\Core\Base;
use Kanboard\Core\Security\OAuthAuthenticationProviderInterface;
use Kanboard\User\GoogleUserProvider;
/**
* Google Authentication Provider
*
* @package auth
* @author Frederic Guillot
*/
class GoogleAuth extends Base implements OAuthAuthenticationProviderInterface
{
/**
* User properties
*
* @access protected
* @var \Kanboard\User\GoogleUserProvider
*/
protected $userInfo = null;
/**
* OAuth2 instance
*
* @access protected
* @var \Kanboard\Core\Http\OAuth2
*/
protected $service;
/**
* OAuth2 code
*
* @access protected
* @var string
*/
protected $code = '';
/**
* Get authentication provider name
*
* @access public
* @return string
*/
public function getName()
{
return 'Google';
}
/**
* Authenticate the user
*
* @access public
* @return boolean
*/
public function authenticate()
{
$profile = $this->getProfile();
if (! empty($profile)) {
$this->userInfo = new GoogleUserProvider($profile);
return true;
}
return false;
}
/**
* Set Code
*
* @access public
* @param string $code
* @return GoogleAuth
*/
public function setCode($code)
{
$this->code = $code;
return $this;
}
/**
* Get user object
*
* @access public
* @return GoogleUserProvider
*/
public function getUser()
{
return $this->userInfo;
}
/**
* Get configured OAuth2 service
*
* @access public
* @return \Kanboard\Core\Http\OAuth2
*/
public function getService()
{
if (empty($this->service)) {
$this->service = $this->oauth->createService(
GOOGLE_CLIENT_ID,
GOOGLE_CLIENT_SECRET,
$this->helper->url->to('oauth', 'google', array(), '', true),
'https://accounts.google.com/o/oauth2/auth',
'https://accounts.google.com/o/oauth2/token',
array('https://www.googleapis.com/auth/userinfo.email', 'https://www.googleapis.com/auth/userinfo.profile')
);
}
return $this->service;
}
/**
* Get Google profile
*
* @access public
* @return array
*/
public function getProfile()
{
$this->getService()->getAccessToken($this->code);
return $this->httpClient->getJson(
'https://www.googleapis.com/oauth2/v1/userinfo',
array($this->getService()->getAuthorizationHeader())
);
}
/**
* Unlink user
*
* @access public
* @param integer $userId
* @return bool
*/
public function unlink($userId)
{
return $this->user->update(array('id' => $userId, 'google_id' => ''));
}
}

View File

@@ -10,16 +10,6 @@ namespace Kanboard\Controller;
*/ */
class Oauth extends Base class Oauth extends Base
{ {
/**
* Link or authenticate a Google account
*
* @access public
*/
public function google()
{
$this->step1('Google');
}
/** /**
* Link or authenticate a Github account * Link or authenticate a Github account
* *
@@ -65,7 +55,7 @@ class Oauth extends Base
* @access private * @access private
* @param string $provider * @param string $provider
*/ */
private function step1($provider) protected function step1($provider)
{ {
$code = $this->request->getStringParam('code'); $code = $this->request->getStringParam('code');
@@ -79,11 +69,11 @@ class Oauth extends Base
/** /**
* Link or authenticate the user * Link or authenticate the user
* *
* @access private * @access protected
* @param string $provider * @param string $provider
* @param string $code * @param string $code
*/ */
private function step2($provider, $code) protected function step2($provider, $code)
{ {
$this->authenticationManager->getProvider($provider)->setCode($code); $this->authenticationManager->getProvider($provider)->setCode($code);
@@ -97,10 +87,10 @@ class Oauth extends Base
/** /**
* Link the account * Link the account
* *
* @access private * @access protected
* @param string $provider * @param string $provider
*/ */
private function link($provider) protected function link($provider)
{ {
$authProvider = $this->authenticationManager->getProvider($provider); $authProvider = $this->authenticationManager->getProvider($provider);
@@ -117,10 +107,10 @@ class Oauth extends Base
/** /**
* Authenticate the account * Authenticate the account
* *
* @access private * @access protected
* @param string $provider * @param string $provider
*/ */
private function authenticate($provider) protected function authenticate($provider)
{ {
if ($this->authenticationManager->oauthAuthentication($provider)) { if ($this->authenticationManager->oauthAuthentication($provider)) {
$this->response->redirect($this->helper->url->to('app', 'index')); $this->response->redirect($this->helper->url->to('app', 'index'));

View File

@@ -260,9 +260,6 @@ return array(
'External authentication failed' => 'Vanjska autentikacija nije uspostavljena', 'External authentication failed' => 'Vanjska autentikacija nije uspostavljena',
'Your external account is linked to your profile successfully.' => 'Uspješno uspostavljena vanjska autentikacija', 'Your external account is linked to your profile successfully.' => 'Uspješno uspostavljena vanjska autentikacija',
'Email' => 'E-mail', 'Email' => 'E-mail',
'Link my Google Account' => 'Poveži sa Google nalogom',
'Unlink my Google Account' => 'Ukini vezu sa Google nalogom',
'Login with my Google Account' => 'Prijavi se preko Google naloga',
'Project not found.' => 'Projekat nije pronađen.', 'Project not found.' => 'Projekat nije pronađen.',
'Task removed successfully.' => 'Zadatak uspješno uklonjen.', 'Task removed successfully.' => 'Zadatak uspješno uklonjen.',
'Unable to remove this task.' => 'Nemoguće uklanjanje zadatka.', 'Unable to remove this task.' => 'Nemoguće uklanjanje zadatka.',
@@ -395,7 +392,6 @@ return array(
'Change password' => 'Promijeni šifru', 'Change password' => 'Promijeni šifru',
'Password modification' => 'Izmjena šifre', 'Password modification' => 'Izmjena šifre',
'External authentications' => 'Vanjske autentikacije', 'External authentications' => 'Vanjske autentikacije',
'Google Account' => 'Google korisnički račun',
'Github Account' => 'Github korisnički račun', 'Github Account' => 'Github korisnički račun',
'Never connected.' => 'Bez konekcija.', 'Never connected.' => 'Bez konekcija.',
'No account linked.' => 'Bez povezanih korisničkih računa.', 'No account linked.' => 'Bez povezanih korisničkih računa.',
@@ -846,8 +842,6 @@ return array(
'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Ovaj grafik pokazuje prosjek vremena vođenja i vremenskog ciklusa za posljednjih %d zadataka tokom vremena.', 'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Ovaj grafik pokazuje prosjek vremena vođenja i vremenskog ciklusa za posljednjih %d zadataka tokom vremena.',
'Average time into each column' => 'Prosječno vrijeme u svakoj koloni', 'Average time into each column' => 'Prosječno vrijeme u svakoj koloni',
'Lead and cycle time' => 'Vrijeme vođenja i vremenski ciklus', 'Lead and cycle time' => 'Vrijeme vođenja i vremenski ciklus',
'Google Authentication' => 'Google autentifikacija',
'Help on Google authentication' => 'Pomoć na Google autentifikacija',
'Github Authentication' => 'Github autentifikacija', 'Github Authentication' => 'Github autentifikacija',
'Help on Github authentication' => 'Pomoć na Github autentifikacija', 'Help on Github authentication' => 'Pomoć na Github autentifikacija',
'Lead time: ' => 'Vrijeme vođenja: ', 'Lead time: ' => 'Vrijeme vođenja: ',
@@ -858,7 +852,6 @@ return array(
'If the task is not closed the current time is used instead of the completion date.' => 'Ako zadatak nije zatvoren trenutno vrijeme je iskorišteno umjesto datuma završetka.', 'If the task is not closed the current time is used instead of the completion date.' => 'Ako zadatak nije zatvoren trenutno vrijeme je iskorišteno umjesto datuma završetka.',
'Set automatically the start date' => 'Automatski postavi početno vrijeme', 'Set automatically the start date' => 'Automatski postavi početno vrijeme',
'Edit Authentication' => 'Uredi autentifikaciju', 'Edit Authentication' => 'Uredi autentifikaciju',
'Google Id' => 'Google Id',
'Github Id' => 'Github Id', 'Github Id' => 'Github Id',
'Remote user' => 'Vanjski korisnik', 'Remote user' => 'Vanjski korisnik',
'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Vanjski korisnik ne čuva šifru u Kanboard bazi, npr: LDAP, Google i Github korisnički računi.', 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Vanjski korisnik ne čuva šifru u Kanboard bazi, npr: LDAP, Google i Github korisnički računi.',

View File

@@ -260,9 +260,6 @@ return array(
// 'External authentication failed' => '', // 'External authentication failed' => '',
// 'Your external account is linked to your profile successfully.' => '', // 'Your external account is linked to your profile successfully.' => '',
'Email' => 'E-Mail', 'Email' => 'E-Mail',
'Link my Google Account' => 'Propojit s Google účtem',
'Unlink my Google Account' => 'Odpojit Google účet',
'Login with my Google Account' => 'Přihlášení pomocí Google účtu',
'Project not found.' => 'Projekt nebyl nalezen.', 'Project not found.' => 'Projekt nebyl nalezen.',
'Task removed successfully.' => 'Úkol byl úspěšně odebrán.', 'Task removed successfully.' => 'Úkol byl úspěšně odebrán.',
'Unable to remove this task.' => 'Tento úkol nelze odebrat.', 'Unable to remove this task.' => 'Tento úkol nelze odebrat.',
@@ -395,7 +392,6 @@ return array(
'Change password' => 'Změnit heslo', 'Change password' => 'Změnit heslo',
'Password modification' => 'Změna hesla', 'Password modification' => 'Změna hesla',
'External authentications' => 'Vzdálená autorizace', 'External authentications' => 'Vzdálená autorizace',
'Google Account' => 'Google účet',
'Github Account' => 'github účet', 'Github Account' => 'github účet',
'Never connected.' => 'Zatím nikdy nespojen.', 'Never connected.' => 'Zatím nikdy nespojen.',
'No account linked.' => 'Žádné propojení účtu.', 'No account linked.' => 'Žádné propojení účtu.',
@@ -846,8 +842,6 @@ return array(
'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Graf ukazuje průměrnou dodací lhůtu a dobu cyklu pro posledních %d úkolů v průběhu času', 'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Graf ukazuje průměrnou dodací lhůtu a dobu cyklu pro posledních %d úkolů v průběhu času',
'Average time into each column' => 'Průměrná doba v každé fázi', 'Average time into each column' => 'Průměrná doba v každé fázi',
'Lead and cycle time' => 'Dodací lhůta a doba cyklu', 'Lead and cycle time' => 'Dodací lhůta a doba cyklu',
'Google Authentication' => 'Ověřování pomocí služby Google',
'Help on Google authentication' => 'Nápověda k ověřování pomocí služby Google',
'Github Authentication' => 'Ověřování pomocí služby Github', 'Github Authentication' => 'Ověřování pomocí služby Github',
'Help on Github authentication' => 'Nápověda k ověřování pomocí služby Github', 'Help on Github authentication' => 'Nápověda k ověřování pomocí služby Github',
'Lead time: ' => 'Dodací lhůta: ', 'Lead time: ' => 'Dodací lhůta: ',
@@ -858,7 +852,6 @@ return array(
'If the task is not closed the current time is used instead of the completion date.' => 'Jestliže není úkol uzavřen, místo termínu dokončení je použit aktuální čas.', 'If the task is not closed the current time is used instead of the completion date.' => 'Jestliže není úkol uzavřen, místo termínu dokončení je použit aktuální čas.',
'Set automatically the start date' => 'Nastavit automaticky počáteční datum', 'Set automatically the start date' => 'Nastavit automaticky počáteční datum',
'Edit Authentication' => 'Upravit ověřování', 'Edit Authentication' => 'Upravit ověřování',
'Google Id' => 'Google ID',
'Github Id' => 'Github ID', 'Github Id' => 'Github ID',
'Remote user' => 'Vzdálený uživatel', 'Remote user' => 'Vzdálený uživatel',
'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Hesla vzdáleným uživatelům se neukládají do databáze Kanboard. Naříklad: LDAP, Google a Github účty.', 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Hesla vzdáleným uživatelům se neukládají do databáze Kanboard. Naříklad: LDAP, Google a Github účty.',

View File

@@ -260,9 +260,6 @@ return array(
// 'External authentication failed' => '', // 'External authentication failed' => '',
// 'Your external account is linked to your profile successfully.' => '', // 'Your external account is linked to your profile successfully.' => '',
'Email' => 'E-Mail', 'Email' => 'E-Mail',
'Link my Google Account' => 'Forbind min Google-konto',
'Unlink my Google Account' => 'Fjern forbindelsen til min Google-konto',
'Login with my Google Account' => 'Login med min Google-konto',
'Project not found.' => 'Projekt ikke fundet.', 'Project not found.' => 'Projekt ikke fundet.',
'Task removed successfully.' => 'Opgaven er fjernet.', 'Task removed successfully.' => 'Opgaven er fjernet.',
'Unable to remove this task.' => 'Opgaven kunne ikke fjernes.', 'Unable to remove this task.' => 'Opgaven kunne ikke fjernes.',
@@ -395,7 +392,6 @@ return array(
'Change password' => 'Skift adgangskode', 'Change password' => 'Skift adgangskode',
'Password modification' => 'Adgangskode ændring', 'Password modification' => 'Adgangskode ændring',
'External authentications' => 'Ekstern autentificering', 'External authentications' => 'Ekstern autentificering',
'Google Account' => 'Google-konto',
'Github Account' => 'Github-konto', 'Github Account' => 'Github-konto',
'Never connected.' => 'Aldrig forbundet.', 'Never connected.' => 'Aldrig forbundet.',
'No account linked.' => 'Ingen kontoer forfundet.', 'No account linked.' => 'Ingen kontoer forfundet.',
@@ -846,8 +842,6 @@ return array(
// 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '', // 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '',
// 'Average time into each column' => '', // 'Average time into each column' => '',
// 'Lead and cycle time' => '', // 'Lead and cycle time' => '',
// 'Google Authentication' => '',
// 'Help on Google authentication' => '',
// 'Github Authentication' => '', // 'Github Authentication' => '',
// 'Help on Github authentication' => '', // 'Help on Github authentication' => '',
// 'Lead time: ' => '', // 'Lead time: ' => '',
@@ -858,7 +852,6 @@ return array(
// 'If the task is not closed the current time is used instead of the completion date.' => '', // 'If the task is not closed the current time is used instead of the completion date.' => '',
// 'Set automatically the start date' => '', // 'Set automatically the start date' => '',
// 'Edit Authentication' => '', // 'Edit Authentication' => '',
// 'Google Id' => '',
// 'Github Id' => '', // 'Github Id' => '',
// 'Remote user' => '', // 'Remote user' => '',
// 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '', // 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '',

View File

@@ -260,9 +260,6 @@ return array(
'External authentication failed' => 'Externe Authentifizierung fehlgeschlagen', 'External authentication failed' => 'Externe Authentifizierung fehlgeschlagen',
'Your external account is linked to your profile successfully.' => 'Dein externer Account wurde erfolgreich mit deinem Profil verbunden', 'Your external account is linked to your profile successfully.' => 'Dein externer Account wurde erfolgreich mit deinem Profil verbunden',
'Email' => 'E-Mail', 'Email' => 'E-Mail',
'Link my Google Account' => 'Verbinde meinen Google-Account',
'Unlink my Google Account' => 'Verbindung mit meinem Google-Account trennen',
'Login with my Google Account' => 'Anmelden mit meinem Google-Account',
'Project not found.' => 'Das Projekt wurde nicht gefunden.', 'Project not found.' => 'Das Projekt wurde nicht gefunden.',
'Task removed successfully.' => 'Aufgabe erfolgreich gelöscht.', 'Task removed successfully.' => 'Aufgabe erfolgreich gelöscht.',
'Unable to remove this task.' => 'Löschen der Aufgabe nicht möglich.', 'Unable to remove this task.' => 'Löschen der Aufgabe nicht möglich.',
@@ -395,7 +392,6 @@ return array(
'Change password' => 'Passwort ändern', 'Change password' => 'Passwort ändern',
'Password modification' => 'Passwortänderung', 'Password modification' => 'Passwortänderung',
'External authentications' => 'Externe Authentisierungsmethoden', 'External authentications' => 'Externe Authentisierungsmethoden',
'Google Account' => 'Google-Account',
'Github Account' => 'Github-Account', 'Github Account' => 'Github-Account',
'Never connected.' => 'Noch nie verbunden.', 'Never connected.' => 'Noch nie verbunden.',
'No account linked.' => 'Kein Account verbunden.', 'No account linked.' => 'Kein Account verbunden.',
@@ -846,8 +842,6 @@ return array(
'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Das Diagramm zeigt die durchschnittliche Durchlauf- und Zykluszeit der letzten %d Aufgaben über die Zeit an.', 'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Das Diagramm zeigt die durchschnittliche Durchlauf- und Zykluszeit der letzten %d Aufgaben über die Zeit an.',
'Average time into each column' => 'Durchschnittzeit in jeder Spalte', 'Average time into each column' => 'Durchschnittzeit in jeder Spalte',
'Lead and cycle time' => 'Durchlauf- und Zykluszeit', 'Lead and cycle time' => 'Durchlauf- und Zykluszeit',
'Google Authentication' => 'Google-Authentifizierung',
'Help on Google authentication' => 'Hilfe bei Google-Authentifizierung',
'Github Authentication' => 'Github-Authentifizierung', 'Github Authentication' => 'Github-Authentifizierung',
'Help on Github authentication' => 'Hilfe bei Github-Authentifizierung', 'Help on Github authentication' => 'Hilfe bei Github-Authentifizierung',
'Lead time: ' => 'Durchlaufzeit:', 'Lead time: ' => 'Durchlaufzeit:',
@@ -858,7 +852,6 @@ return array(
'If the task is not closed the current time is used instead of the completion date.' => 'Wenn die Aufgabe nicht geschlossen ist, wird die aktuelle Zeit statt der Fertigstellung verwendet.', 'If the task is not closed the current time is used instead of the completion date.' => 'Wenn die Aufgabe nicht geschlossen ist, wird die aktuelle Zeit statt der Fertigstellung verwendet.',
'Set automatically the start date' => 'Setze Startdatum automatisch', 'Set automatically the start date' => 'Setze Startdatum automatisch',
'Edit Authentication' => 'Authentifizierung bearbeiten', 'Edit Authentication' => 'Authentifizierung bearbeiten',
'Google Id' => 'Google Id',
'Github Id' => 'Github Id', 'Github Id' => 'Github Id',
'Remote user' => 'Remote-Benutzer', 'Remote user' => 'Remote-Benutzer',
'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Remote-Benutzer haben kein Passwort in der Kanboard Datenbank, Beispiel LDAP, Goole und Github Accounts', 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Remote-Benutzer haben kein Passwort in der Kanboard Datenbank, Beispiel LDAP, Goole und Github Accounts',

View File

@@ -25,7 +25,7 @@ return array(
'Dark Grey' => 'Βαθύ γκρί', 'Dark Grey' => 'Βαθύ γκρί',
'Pink' => 'Ρόζ', 'Pink' => 'Ρόζ',
'Teal' => 'Τουρκουάζ', 'Teal' => 'Τουρκουάζ',
'Cyan'=> 'Γαλάζιο', 'Cyan' => 'Γαλάζιο',
'Lime' => 'Λεμονί', 'Lime' => 'Λεμονί',
'Light Green' => 'Ανοιχτό πράσινο', 'Light Green' => 'Ανοιχτό πράσινο',
'Amber' => 'Κεχριμπαρί', 'Amber' => 'Κεχριμπαρί',
@@ -260,9 +260,6 @@ return array(
'External authentication failed' => 'Αποτυχία εξωτερικής σύνδεσης', 'External authentication failed' => 'Αποτυχία εξωτερικής σύνδεσης',
'Your external account is linked to your profile successfully.' => 'Ο λογαριασμός σας συνδέθηκε με το προφίλ σας με επιτυχία.', 'Your external account is linked to your profile successfully.' => 'Ο λογαριασμός σας συνδέθηκε με το προφίλ σας με επιτυχία.',
'Email' => 'Email', 'Email' => 'Email',
'Link my Google Account' => 'Σύνδεση του Google Account μου',
'Unlink my Google Account' => 'Αποσύνδεση του Google Account μου',
'Login with my Google Account' => 'Σύνδεση με Google Account',
'Project not found.' => 'Το έργο δεν βρέθηκε.', 'Project not found.' => 'Το έργο δεν βρέθηκε.',
'Task removed successfully.' => 'Η εργασία αφαιρέθηκε με επιτυχία.', 'Task removed successfully.' => 'Η εργασία αφαιρέθηκε με επιτυχία.',
'Unable to remove this task.' => 'Δεν είναι δυνατή η αφαίρεση της εργασίας.', 'Unable to remove this task.' => 'Δεν είναι δυνατή η αφαίρεση της εργασίας.',
@@ -329,7 +326,7 @@ return array(
'Display another project' => 'Εμφάνιση άλλου έργου', 'Display another project' => 'Εμφάνιση άλλου έργου',
'Login with my Github Account' => 'Σύνδεση με το Github Account μου', 'Login with my Github Account' => 'Σύνδεση με το Github Account μου',
'Link my Github Account' => 'Σύνδεση Github Account', 'Link my Github Account' => 'Σύνδεση Github Account',
'Unlink my Github Account' => 'Αποσύνδεση του Github Account μου', 'Unlink my Github Account' => 'Αποσύνδεση του Github Account μου',
'Created by %s' => 'Δημιουργήθηκε από %s', 'Created by %s' => 'Δημιουργήθηκε από %s',
'Last modified on %B %e, %Y at %k:%M %p' => 'Τελευταία ενημέρωση: %d/%m/%Y à %H:%M', 'Last modified on %B %e, %Y at %k:%M %p' => 'Τελευταία ενημέρωση: %d/%m/%Y à %H:%M',
'Tasks Export' => 'Εξαγωγή εργασιών', 'Tasks Export' => 'Εξαγωγή εργασιών',
@@ -355,14 +352,12 @@ return array(
'Time tracking:' => 'Παρακολούθηση του χρόνου :', 'Time tracking:' => 'Παρακολούθηση του χρόνου :',
'New sub-task' => 'Νέα υπο-εργασία', 'New sub-task' => 'Νέα υπο-εργασία',
'New attachment added "%s"' => 'Νέα επικόλληση προστέθηκε « %s »', 'New attachment added "%s"' => 'Νέα επικόλληση προστέθηκε « %s »',
'Comment updated' => 'Το σχόλιο ενημηρώθηκε', 'Comment updated' => 'Το σχόλιο ενημερώθηκε',
'New comment posted by %s' => 'Νέο σχόλιο από τον χρήστη « %s »', 'New comment posted by %s' => 'Νέο σχόλιο από τον χρήστη « %s »',
'New attachment' => 'New attachment', 'New attachment' => 'New attachment',
'New comment' => 'Νέο σχόλιο', 'New comment' => 'Νέο σχόλιο',
'Comment updated' => 'Το σχόλιο ενημερώθηκε',
'New subtask' => 'Νέα υπο-εργασία', 'New subtask' => 'Νέα υπο-εργασία',
'Subtask updated' => 'Υπο-Εργασία ενημερώθηκε', 'Subtask updated' => 'Υπο-Εργασία ενημερώθηκε',
'New task' => 'Νέα εργασία',
'Task updated' => 'Η εργασία ενημερώθηκε', 'Task updated' => 'Η εργασία ενημερώθηκε',
'Task closed' => 'Η εργασία έκλεισε', 'Task closed' => 'Η εργασία έκλεισε',
'Task opened' => 'Η εργασία άνοιξε', 'Task opened' => 'Η εργασία άνοιξε',
@@ -397,7 +392,6 @@ return array(
'Change password' => 'Αλλαγή password', 'Change password' => 'Αλλαγή password',
'Password modification' => 'Τροποποίηση password ', 'Password modification' => 'Τροποποίηση password ',
'External authentications' => 'Εξωτερικές πιστοποιήσεις', 'External authentications' => 'Εξωτερικές πιστοποιήσεις',
'Google Account' => 'Google Account',
'Github Account' => 'Github Account', 'Github Account' => 'Github Account',
'Never connected.' => 'Ποτέ δεν συνδέθηκε.', 'Never connected.' => 'Ποτέ δεν συνδέθηκε.',
'No account linked.' => 'Δεν υπάρχουν ενεργοί λογαριασμοί', 'No account linked.' => 'Δεν υπάρχουν ενεργοί λογαριασμοί',
@@ -688,7 +682,6 @@ return array(
'Take a screenshot and press CTRL+V or ⌘+V to paste here.' => 'Πάρτε ένα screenshot και πατήστε CTRL+V or ⌘+V για να το επικολλήσετε εδώ.', 'Take a screenshot and press CTRL+V or ⌘+V to paste here.' => 'Πάρτε ένα screenshot και πατήστε CTRL+V or ⌘+V για να το επικολλήσετε εδώ.',
'Screenshot uploaded successfully.' => 'Το screenshot ανέβηκε με επιτυχία.', 'Screenshot uploaded successfully.' => 'Το screenshot ανέβηκε με επιτυχία.',
'SEK - Swedish Krona' => 'SEK - Swedish Krona', 'SEK - Swedish Krona' => 'SEK - Swedish Krona',
'The project identifier is an optional alphanumeric code used to identify your project.' => 'Το αναγνωριστικό έργου είναι ένας προαιρετικός αλφαριθμητικός κωδικός που χρησιμοποιείται για την αναγνώριση του έργου σας.',
'Identifier' => 'Αναγνωριστικό', 'Identifier' => 'Αναγνωριστικό',
'Disable two factor authentication' => 'Απενεργοποίηση κωδικού ελέγχου ταυτότητας δύο παραγόντων', 'Disable two factor authentication' => 'Απενεργοποίηση κωδικού ελέγχου ταυτότητας δύο παραγόντων',
'Do you really want to disable the two factor authentication for this user: "%s"?' => 'Είστε σίγουροι ότι θέλετε να απενεργοποίησετε τον κωδικό ελέγχου ταυτότητας δύο παραγόντων : « %s » ?', 'Do you really want to disable the two factor authentication for this user: "%s"?' => 'Είστε σίγουροι ότι θέλετε να απενεργοποίησετε τον κωδικό ελέγχου ταυτότητας δύο παραγόντων : « %s » ?',
@@ -849,8 +842,6 @@ return array(
'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Αυτό το γράφημα δείχνει το average lead and cycle time για τις τελευταίες %d εργασίες κατά τη διάρκεια του χρόνου.', 'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Αυτό το γράφημα δείχνει το average lead and cycle time για τις τελευταίες %d εργασίες κατά τη διάρκεια του χρόνου.',
'Average time into each column' => 'Μέσος χρόνος σε κάθε στήλη', 'Average time into each column' => 'Μέσος χρόνος σε κάθε στήλη',
'Lead and cycle time' => 'Lead et cycle time', 'Lead and cycle time' => 'Lead et cycle time',
'Google Authentication' => 'Πιστοποίηση Google',
'Help on Google authentication' => 'Βοήθεια για την πιστοποίηση της Google',
'Github Authentication' => 'Πιστοποίηση Github', 'Github Authentication' => 'Πιστοποίηση Github',
'Help on Github authentication' => 'Βοήθεια για την πιστοποίηση της Github', 'Help on Github authentication' => 'Βοήθεια για την πιστοποίηση της Github',
'Lead time: ' => 'Lead time : ', 'Lead time: ' => 'Lead time : ',
@@ -861,7 +852,6 @@ return array(
'If the task is not closed the current time is used instead of the completion date.' => 'Εάν η εργασία δεν έχει κλείσει η τρέχουσα ώρα χρησιμοποιείται αντί της ημερομηνίας ολοκλήρωσης.', 'If the task is not closed the current time is used instead of the completion date.' => 'Εάν η εργασία δεν έχει κλείσει η τρέχουσα ώρα χρησιμοποιείται αντί της ημερομηνίας ολοκλήρωσης.',
'Set automatically the start date' => 'Ρυθμίστε αυτόματα την ημερομηνία έναρξης', 'Set automatically the start date' => 'Ρυθμίστε αυτόματα την ημερομηνία έναρξης',
'Edit Authentication' => 'Επεξεργασία ταυτοποίησης', 'Edit Authentication' => 'Επεξεργασία ταυτοποίησης',
'Google Id' => 'Id Google',
'Github Id' => 'Id Github', 'Github Id' => 'Id Github',
'Remote user' => 'Απομακρυσμένος χρήστης', 'Remote user' => 'Απομακρυσμένος χρήστης',
'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Στους απομακρυσμένους χρήστες δεν αποθηκεύονται οι κωδικοί πρόσβασης εντός της βάσης δεδομένων της τρέχουσας εφαρμογής, Παραδείγματα: LDAP, Google and Github accounts.', 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Στους απομακρυσμένους χρήστες δεν αποθηκεύονται οι κωδικοί πρόσβασης εντός της βάσης δεδομένων της τρέχουσας εφαρμογής, Παραδείγματα: LDAP, Google and Github accounts.',
@@ -1014,7 +1004,6 @@ return array(
'Usernames must be lowercase and unique' => 'Οι ονομασίες χρηστών πρέπει να είναι σε μικρά γράμματα (lowercase) και μοναδικά', 'Usernames must be lowercase and unique' => 'Οι ονομασίες χρηστών πρέπει να είναι σε μικρά γράμματα (lowercase) και μοναδικά',
'Passwords will be encrypted if present' => 'Οι κωδικοί πρόσβασης κρυπτογραφούνται, αν υπάρχουν', 'Passwords will be encrypted if present' => 'Οι κωδικοί πρόσβασης κρυπτογραφούνται, αν υπάρχουν',
'%s attached a new file to the task %s' => '%s νέο συνημμένο αρχείο της εργασίας %s', '%s attached a new file to the task %s' => '%s νέο συνημμένο αρχείο της εργασίας %s',
'Link type' => 'Τύπος συνδέσμου',
'Assign automatically a category based on a link' => 'Ανατίθεται αυτόματα κατηγορία, βασισμένη στον σύνδεσμο', 'Assign automatically a category based on a link' => 'Ανατίθεται αυτόματα κατηγορία, βασισμένη στον σύνδεσμο',
'BAM - Konvertible Mark' => 'BAM - Konvertible Mark', 'BAM - Konvertible Mark' => 'BAM - Konvertible Mark',
'Assignee Username' => 'Δικαιοδόχο όνομα χρήστη', 'Assignee Username' => 'Δικαιοδόχο όνομα χρήστη',
@@ -1107,4 +1096,19 @@ return array(
'No plugin has registered a project notification method. You can still configure individual notifications in your user profile.' => 'Κανένα plugin δεν έχει καταχωρηθεί με τη μέθοδο της κοινοποίησης του έργου. Μπορείτε ακόμα να διαμορφώσετε τις μεμονωμένες κοινοποιήσεις στο προφίλ χρήστη σας.', 'No plugin has registered a project notification method. You can still configure individual notifications in your user profile.' => 'Κανένα plugin δεν έχει καταχωρηθεί με τη μέθοδο της κοινοποίησης του έργου. Μπορείτε ακόμα να διαμορφώσετε τις μεμονωμένες κοινοποιήσεις στο προφίλ χρήστη σας.',
'My dashboard' => 'Το κεντρικό ταμπλό μου', 'My dashboard' => 'Το κεντρικό ταμπλό μου',
'My profile' => 'Το προφίλ μου', 'My profile' => 'Το προφίλ μου',
// 'Project owner: ' => '',
// 'The project identifier is optional and must be alphanumeric, example: MYPROJECT.' => '',
// 'Project owner' => '',
// 'Those dates are useful for the project Gantt chart.' => '',
// 'Private projects do not have users and groups management.' => '',
// 'There is no project member.' => '',
// 'Priority' => '',
// 'Task priority' => '',
// 'General' => '',
// 'Dates' => '',
// 'Default priority' => '',
// 'Lowest priority' => '',
// 'Highest priority' => '',
// 'If you put zero to the low and high priority, this feature will be disabled.' => '',
// 'Priority: %d' => '',
); );

View File

@@ -260,9 +260,6 @@ return array(
'External authentication failed' => 'Falló la autenticación externa', 'External authentication failed' => 'Falló la autenticación externa',
'Your external account is linked to your profile successfully.' => 'Su cuenta externa se ha vinculado exitosamente con su perfil.', 'Your external account is linked to your profile successfully.' => 'Su cuenta externa se ha vinculado exitosamente con su perfil.',
'Email' => 'Correo', 'Email' => 'Correo',
'Link my Google Account' => 'Vincular con mi Cuenta en Google',
'Unlink my Google Account' => 'Desvincular de mi Cuenta en Google',
'Login with my Google Account' => 'Ingresar con mi Cuenta de Google',
'Project not found.' => 'Proyecto no hallado.', 'Project not found.' => 'Proyecto no hallado.',
'Task removed successfully.' => 'Tarea suprimida correctamente.', 'Task removed successfully.' => 'Tarea suprimida correctamente.',
'Unable to remove this task.' => 'No pude suprimir esta tarea.', 'Unable to remove this task.' => 'No pude suprimir esta tarea.',
@@ -395,7 +392,6 @@ return array(
'Change password' => 'Cambiar contraseña', 'Change password' => 'Cambiar contraseña',
'Password modification' => 'Modificacion de contraseña', 'Password modification' => 'Modificacion de contraseña',
'External authentications' => 'Autenticación externa', 'External authentications' => 'Autenticación externa',
'Google Account' => 'Cuenta de Google',
'Github Account' => 'Cuenta de Github', 'Github Account' => 'Cuenta de Github',
'Never connected.' => 'Nunca se ha conectado.', 'Never connected.' => 'Nunca se ha conectado.',
'No account linked.' => 'Sin vínculo con cuenta.', 'No account linked.' => 'Sin vínculo con cuenta.',
@@ -846,8 +842,6 @@ return array(
'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Esta gráfica muestra el plazo medio de entrega y de ciclo para las %d últimas tareas transcurridas.', 'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Esta gráfica muestra el plazo medio de entrega y de ciclo para las %d últimas tareas transcurridas.',
'Average time into each column' => 'Tiempo medio en cada columna', 'Average time into each column' => 'Tiempo medio en cada columna',
'Lead and cycle time' => 'Plazo de entrega y de ciclo', 'Lead and cycle time' => 'Plazo de entrega y de ciclo',
'Google Authentication' => 'Autenticación de Google',
'Help on Google authentication' => 'Ayuda con la aAutenticación de Google',
'Github Authentication' => 'Autenticación de Github', 'Github Authentication' => 'Autenticación de Github',
'Help on Github authentication' => 'Ayuda con la autenticación de Github', 'Help on Github authentication' => 'Ayuda con la autenticación de Github',
'Lead time: ' => 'Plazo de entrega: ', 'Lead time: ' => 'Plazo de entrega: ',
@@ -858,7 +852,6 @@ return array(
'If the task is not closed the current time is used instead of the completion date.' => 'Si la tarea no se cierra, se usa la fecha actual en lugar de la de terminación.', 'If the task is not closed the current time is used instead of the completion date.' => 'Si la tarea no se cierra, se usa la fecha actual en lugar de la de terminación.',
'Set automatically the start date' => 'Poner la fecha de inicio de forma automática', 'Set automatically the start date' => 'Poner la fecha de inicio de forma automática',
'Edit Authentication' => 'Editar autenticación', 'Edit Authentication' => 'Editar autenticación',
'Google Id' => 'Id de Google',
'Github Id' => 'Id de Github', 'Github Id' => 'Id de Github',
'Remote user' => 'Usuario remoto', 'Remote user' => 'Usuario remoto',
'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Los usuarios remotos no almacenan sus contraseñas en la base de datos Kanboard, por ejemplo: cuentas de LDAP, Google y Github', 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Los usuarios remotos no almacenan sus contraseñas en la base de datos Kanboard, por ejemplo: cuentas de LDAP, Google y Github',

View File

@@ -260,9 +260,6 @@ return array(
// 'External authentication failed' => '', // 'External authentication failed' => '',
// 'Your external account is linked to your profile successfully.' => '', // 'Your external account is linked to your profile successfully.' => '',
'Email' => 'Sähköposti', 'Email' => 'Sähköposti',
'Link my Google Account' => 'Linkitä Google-tili',
'Unlink my Google Account' => 'Poista Google-tilin linkitys',
'Login with my Google Account' => 'Kirjaudu Google tunnuksella',
'Project not found.' => 'Projektia ei löytynyt.', 'Project not found.' => 'Projektia ei löytynyt.',
'Task removed successfully.' => 'Tehtävä poistettiin onnistuneesti.', 'Task removed successfully.' => 'Tehtävä poistettiin onnistuneesti.',
'Unable to remove this task.' => 'Tehtävän poistaminen epäonnistui.', 'Unable to remove this task.' => 'Tehtävän poistaminen epäonnistui.',
@@ -395,7 +392,6 @@ return array(
'Change password' => 'Vaihda salasana', 'Change password' => 'Vaihda salasana',
'Password modification' => 'Salasanan vaihto', 'Password modification' => 'Salasanan vaihto',
'External authentications' => 'Muut tunnistautumistavat', 'External authentications' => 'Muut tunnistautumistavat',
'Google Account' => 'Google-tili',
'Github Account' => 'Github-tili', 'Github Account' => 'Github-tili',
'Never connected.' => 'Ei koskaan liitetty.', 'Never connected.' => 'Ei koskaan liitetty.',
'No account linked.' => 'Tiliä ei ole liitetty.', 'No account linked.' => 'Tiliä ei ole liitetty.',
@@ -846,8 +842,6 @@ return array(
// 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '', // 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '',
// 'Average time into each column' => '', // 'Average time into each column' => '',
// 'Lead and cycle time' => '', // 'Lead and cycle time' => '',
// 'Google Authentication' => '',
// 'Help on Google authentication' => '',
// 'Github Authentication' => '', // 'Github Authentication' => '',
// 'Help on Github authentication' => '', // 'Help on Github authentication' => '',
// 'Lead time: ' => '', // 'Lead time: ' => '',
@@ -858,7 +852,6 @@ return array(
// 'If the task is not closed the current time is used instead of the completion date.' => '', // 'If the task is not closed the current time is used instead of the completion date.' => '',
// 'Set automatically the start date' => '', // 'Set automatically the start date' => '',
// 'Edit Authentication' => '', // 'Edit Authentication' => '',
// 'Google Id' => '',
// 'Github Id' => '', // 'Github Id' => '',
// 'Remote user' => '', // 'Remote user' => '',
// 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '', // 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '',

View File

@@ -260,9 +260,6 @@ return array(
'External authentication failed' => 'Lauthentification externe a échoué', 'External authentication failed' => 'Lauthentification externe a échoué',
'Your external account is linked to your profile successfully.' => 'Votre compte externe est désormais lié à votre profil.', 'Your external account is linked to your profile successfully.' => 'Votre compte externe est désormais lié à votre profil.',
'Email' => 'Email', 'Email' => 'Email',
'Link my Google Account' => 'Lier mon compte Google',
'Unlink my Google Account' => 'Ne plus utiliser mon compte Google',
'Login with my Google Account' => 'Se connecter avec mon compte Google',
'Project not found.' => 'Projet introuvable.', 'Project not found.' => 'Projet introuvable.',
'Task removed successfully.' => 'Tâche supprimée avec succès.', 'Task removed successfully.' => 'Tâche supprimée avec succès.',
'Unable to remove this task.' => 'Impossible de supprimer cette tâche.', 'Unable to remove this task.' => 'Impossible de supprimer cette tâche.',
@@ -397,7 +394,6 @@ return array(
'Change password' => 'Changer le mot de passe', 'Change password' => 'Changer le mot de passe',
'Password modification' => 'Changement de mot de passe', 'Password modification' => 'Changement de mot de passe',
'External authentications' => 'Authentifications externes', 'External authentications' => 'Authentifications externes',
'Google Account' => 'Compte Google',
'Github Account' => 'Compte Github', 'Github Account' => 'Compte Github',
'Never connected.' => 'Jamais connecté.', 'Never connected.' => 'Jamais connecté.',
'No account linked.' => 'Aucun compte attaché.', 'No account linked.' => 'Aucun compte attaché.',
@@ -848,8 +844,6 @@ return array(
'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Ce graphique montre la durée moyenne du lead et cycle time pour les %d dernières tâches.', 'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Ce graphique montre la durée moyenne du lead et cycle time pour les %d dernières tâches.',
'Average time into each column' => 'Temps moyen dans chaque colonne', 'Average time into each column' => 'Temps moyen dans chaque colonne',
'Lead and cycle time' => 'Lead et cycle time', 'Lead and cycle time' => 'Lead et cycle time',
'Google Authentication' => 'Authentification Google',
'Help on Google authentication' => 'Aide sur l\'authentification Google',
'Github Authentication' => 'Authentification Github', 'Github Authentication' => 'Authentification Github',
'Help on Github authentication' => 'Aide sur l\'authentification Github', 'Help on Github authentication' => 'Aide sur l\'authentification Github',
'Lead time: ' => 'Lead time : ', 'Lead time: ' => 'Lead time : ',
@@ -860,7 +854,6 @@ return array(
'If the task is not closed the current time is used instead of the completion date.' => 'Si la tâche n\'est pas fermée, l\'heure courante est utilisée à la place de la date de complétion.', 'If the task is not closed the current time is used instead of the completion date.' => 'Si la tâche n\'est pas fermée, l\'heure courante est utilisée à la place de la date de complétion.',
'Set automatically the start date' => 'Définir automatiquement la date de début', 'Set automatically the start date' => 'Définir automatiquement la date de début',
'Edit Authentication' => 'Modifier l\'authentification', 'Edit Authentication' => 'Modifier l\'authentification',
'Google Id' => 'Identifiant Google',
'Github Id' => 'Identifiant Github', 'Github Id' => 'Identifiant Github',
'Remote user' => 'Utilisateur distant', 'Remote user' => 'Utilisateur distant',
'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Les utilisateurs distants ne stockent pas leur mot de passe dans la base de données de Kanboard, exemples : comptes LDAP, Github ou Google.', 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Les utilisateurs distants ne stockent pas leur mot de passe dans la base de données de Kanboard, exemples : comptes LDAP, Github ou Google.',

View File

@@ -260,9 +260,6 @@ return array(
// 'External authentication failed' => '', // 'External authentication failed' => '',
// 'Your external account is linked to your profile successfully.' => '', // 'Your external account is linked to your profile successfully.' => '',
'Email' => 'E-mail', 'Email' => 'E-mail',
'Link my Google Account' => 'Kapcsold össze a Google fiókkal',
'Unlink my Google Account' => 'Válaszd le a Google fiókomat',
'Login with my Google Account' => 'Jelentkezzen be Google fiókkal',
'Project not found.' => 'A projekt nem található.', 'Project not found.' => 'A projekt nem található.',
'Task removed successfully.' => 'Feladat sikeresen törölve.', 'Task removed successfully.' => 'Feladat sikeresen törölve.',
'Unable to remove this task.' => 'A feladatot nem lehet törölni.', 'Unable to remove this task.' => 'A feladatot nem lehet törölni.',
@@ -395,7 +392,6 @@ return array(
'Change password' => 'Jelszó módosítása', 'Change password' => 'Jelszó módosítása',
'Password modification' => 'Jelszó módosítása', 'Password modification' => 'Jelszó módosítása',
'External authentications' => 'Külső azonosítás', 'External authentications' => 'Külső azonosítás',
'Google Account' => 'Google fiók',
'Github Account' => 'Github fiók', 'Github Account' => 'Github fiók',
'Never connected.' => 'Sosem csatlakozva.', 'Never connected.' => 'Sosem csatlakozva.',
'No account linked.' => 'Nincs csatlakoztatott fiók.', 'No account linked.' => 'Nincs csatlakoztatott fiók.',
@@ -846,8 +842,6 @@ return array(
// 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '', // 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '',
// 'Average time into each column' => '', // 'Average time into each column' => '',
// 'Lead and cycle time' => '', // 'Lead and cycle time' => '',
// 'Google Authentication' => '',
// 'Help on Google authentication' => '',
// 'Github Authentication' => '', // 'Github Authentication' => '',
// 'Help on Github authentication' => '', // 'Help on Github authentication' => '',
// 'Lead time: ' => '', // 'Lead time: ' => '',
@@ -858,7 +852,6 @@ return array(
// 'If the task is not closed the current time is used instead of the completion date.' => '', // 'If the task is not closed the current time is used instead of the completion date.' => '',
// 'Set automatically the start date' => '', // 'Set automatically the start date' => '',
// 'Edit Authentication' => '', // 'Edit Authentication' => '',
// 'Google Id' => '',
// 'Github Id' => '', // 'Github Id' => '',
// 'Remote user' => '', // 'Remote user' => '',
// 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '', // 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '',

View File

@@ -260,9 +260,6 @@ return array(
'External authentication failed' => 'Otentifikasi eksternal gagal', 'External authentication failed' => 'Otentifikasi eksternal gagal',
'Your external account is linked to your profile successfully.' => 'Akun eksternal anda berhasil dihubungkan ke profil anda.', 'Your external account is linked to your profile successfully.' => 'Akun eksternal anda berhasil dihubungkan ke profil anda.',
'Email' => 'Email', 'Email' => 'Email',
'Link my Google Account' => 'Hubungkan akun Google saya',
'Unlink my Google Account' => 'Putuskan akun Google saya',
'Login with my Google Account' => 'Masuk menggunakan akun Google saya',
'Project not found.' => 'Proyek tidak ditemukan.', 'Project not found.' => 'Proyek tidak ditemukan.',
'Task removed successfully.' => 'Tugas berhasil dihapus.', 'Task removed successfully.' => 'Tugas berhasil dihapus.',
'Unable to remove this task.' => 'Tidak dapat menghapus tugas ini.', 'Unable to remove this task.' => 'Tidak dapat menghapus tugas ini.',
@@ -395,7 +392,6 @@ return array(
'Change password' => 'Rubah kata sandri', 'Change password' => 'Rubah kata sandri',
'Password modification' => 'Modifikasi kata sandi', 'Password modification' => 'Modifikasi kata sandi',
'External authentications' => 'Otentifikasi eksternal', 'External authentications' => 'Otentifikasi eksternal',
'Google Account' => 'Akun Google',
'Github Account' => 'Akun Github', 'Github Account' => 'Akun Github',
'Never connected.' => 'Tidak pernah terhubung.', 'Never connected.' => 'Tidak pernah terhubung.',
'No account linked.' => 'Tidak ada akun terhubung.', 'No account linked.' => 'Tidak ada akun terhubung.',
@@ -846,8 +842,6 @@ return array(
'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Grafik ini menunjukkan memimpin rata-rata dan waktu siklus untuk %d tugas terakhir dari waktu ke waktu.', 'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Grafik ini menunjukkan memimpin rata-rata dan waktu siklus untuk %d tugas terakhir dari waktu ke waktu.',
'Average time into each column' => 'Rata-rata waktu ke setiap kolom', 'Average time into each column' => 'Rata-rata waktu ke setiap kolom',
'Lead and cycle time' => 'Lead dan siklus waktu', 'Lead and cycle time' => 'Lead dan siklus waktu',
'Google Authentication' => 'Google Otentifikasi',
'Help on Google authentication' => 'Bantuan pada otentifikasi Google',
'Github Authentication' => 'Otentifikasi Github', 'Github Authentication' => 'Otentifikasi Github',
'Help on Github authentication' => 'Bantuan pada otentifikasi Github', 'Help on Github authentication' => 'Bantuan pada otentifikasi Github',
'Lead time: ' => 'Lead time : ', 'Lead time: ' => 'Lead time : ',
@@ -858,7 +852,6 @@ return array(
'If the task is not closed the current time is used instead of the completion date.' => 'Jika tugas tidak ditutup waktu saat ini yang digunakan sebagai pengganti tanggal penyelesaian.', 'If the task is not closed the current time is used instead of the completion date.' => 'Jika tugas tidak ditutup waktu saat ini yang digunakan sebagai pengganti tanggal penyelesaian.',
'Set automatically the start date' => 'Secara otomatis mengatur tanggal mulai', 'Set automatically the start date' => 'Secara otomatis mengatur tanggal mulai',
'Edit Authentication' => 'Modifikasi Otentifikasi', 'Edit Authentication' => 'Modifikasi Otentifikasi',
'Google Id' => 'Id Google',
'Github Id' => 'Id Github', 'Github Id' => 'Id Github',
'Remote user' => 'Pengguna jauh', 'Remote user' => 'Pengguna jauh',
'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Pengguna jauh tidak menyimpan kata sandi mereka dalam basis data Kanboard, contoh: akun LDAP, Google dan Github.', 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Pengguna jauh tidak menyimpan kata sandi mereka dalam basis data Kanboard, contoh: akun LDAP, Google dan Github.',

View File

@@ -260,9 +260,6 @@ return array(
'External authentication failed' => 'Autenticazione esterna fallita', 'External authentication failed' => 'Autenticazione esterna fallita',
'Your external account is linked to your profile successfully.' => 'Il tuo account esterno è stato collegato al tuo profilo con successo.', 'Your external account is linked to your profile successfully.' => 'Il tuo account esterno è stato collegato al tuo profilo con successo.',
'Email' => 'E-mail', 'Email' => 'E-mail',
'Link my Google Account' => 'Collegare il mio Account di Google',
'Unlink my Google Account' => 'Scollegare il mio account di Google',
'Login with my Google Account' => 'Entra con il mio Account di Google',
'Project not found.' => 'progetto non trovato.', 'Project not found.' => 'progetto non trovato.',
'Task removed successfully.' => 'Task cancellato correttamente.', 'Task removed successfully.' => 'Task cancellato correttamente.',
'Unable to remove this task.' => 'Impossibile cancellare questo task.', 'Unable to remove this task.' => 'Impossibile cancellare questo task.',
@@ -352,7 +349,7 @@ return array(
'Title:' => 'Titolo', 'Title:' => 'Titolo',
'Status:' => 'Stato', 'Status:' => 'Stato',
'Assignee:' => 'Assegnatario:', 'Assignee:' => 'Assegnatario:',
// 'Time tracking:' => 'Gestione del tempo:', // 'Time tracking:' => '',
'New sub-task' => 'Nuovo sotto-task', 'New sub-task' => 'Nuovo sotto-task',
'New attachment added "%s"' => 'Nuovo allegato aggiunto "%s"', 'New attachment added "%s"' => 'Nuovo allegato aggiunto "%s"',
'Comment updated' => 'Commento aggiornato', 'Comment updated' => 'Commento aggiornato',
@@ -395,7 +392,6 @@ return array(
'Change password' => 'Cambia password', 'Change password' => 'Cambia password',
'Password modification' => 'Modifica della password', 'Password modification' => 'Modifica della password',
'External authentications' => 'Autenticazione esterna', 'External authentications' => 'Autenticazione esterna',
'Google Account' => 'Account Google',
'Github Account' => 'Account Github', 'Github Account' => 'Account Github',
'Never connected.' => 'Mai connesso.', 'Never connected.' => 'Mai connesso.',
'No account linked.' => 'Nessun account collegato.', 'No account linked.' => 'Nessun account collegato.',
@@ -568,7 +564,7 @@ return array(
'Select the new status of the subtask: "%s"' => 'Seleziona il nuovo status per il sotto-task: "%s"', 'Select the new status of the subtask: "%s"' => 'Seleziona il nuovo status per il sotto-task: "%s"',
'Subtask timesheet' => 'Timesheet del sotto-task', 'Subtask timesheet' => 'Timesheet del sotto-task',
'There is nothing to show.' => 'Nulla da mostrare.', 'There is nothing to show.' => 'Nulla da mostrare.',
// 'Time Tracking' => 'Gestione del tempo', // 'Time Tracking' => '',
'You already have one subtask in progress' => 'Hai già un sotto-task in corso', 'You already have one subtask in progress' => 'Hai già un sotto-task in corso',
'Which parts of the project do you want to duplicate?' => 'Quali parti del progetto vuoi duplicare?', 'Which parts of the project do you want to duplicate?' => 'Quali parti del progetto vuoi duplicare?',
'Disallow login form' => 'Disabilita il form di login', 'Disallow login form' => 'Disabilita il form di login',
@@ -686,7 +682,6 @@ return array(
'Take a screenshot and press CTRL+V or ⌘+V to paste here.' => 'Cattura una schermata e premi CTRL+V o ⌘+V per incollarla qui.', 'Take a screenshot and press CTRL+V or ⌘+V to paste here.' => 'Cattura una schermata e premi CTRL+V o ⌘+V per incollarla qui.',
'Screenshot uploaded successfully.' => 'Schermata caricata correttamente.', 'Screenshot uploaded successfully.' => 'Schermata caricata correttamente.',
'SEK - Swedish Krona' => 'SEK - Corona svedese', 'SEK - Swedish Krona' => 'SEK - Corona svedese',
'The project identifier is an optional alphanumeric code used to identify your project.' => 'L\'identificatore di progetto è un codice alfanumerico usato per indentificare il tuo progetto. ',
'Identifier' => 'Identificatore', 'Identifier' => 'Identificatore',
'Disable two factor authentication' => 'Disabilita l\'autenticazione "two-factor"', 'Disable two factor authentication' => 'Disabilita l\'autenticazione "two-factor"',
'Do you really want to disable the two factor authentication for this user: "%s"?' => 'Vuoi davvero disabilitare l\'autenticazione "two-factor" per questo utente: "%s"?', 'Do you really want to disable the two factor authentication for this user: "%s"?' => 'Vuoi davvero disabilitare l\'autenticazione "two-factor" per questo utente: "%s"?',
@@ -815,7 +810,7 @@ return array(
'View advanced search syntax' => 'Visualizza la sintassi di ricerca avanzata', 'View advanced search syntax' => 'Visualizza la sintassi di ricerca avanzata',
'Overview' => 'Panoramica', 'Overview' => 'Panoramica',
// '%b %e %Y' => '', // '%b %e %Y' => '',
'Board/Calendar/List view' => '', // 'Board/Calendar/List view' => '',
'Switch to the board view' => 'Passa alla vista "bacheca"', 'Switch to the board view' => 'Passa alla vista "bacheca"',
'Switch to the calendar view' => 'Passa alla vista "calendario"', 'Switch to the calendar view' => 'Passa alla vista "calendario"',
'Switch to the list view' => 'Passa alla vista "elenco"', 'Switch to the list view' => 'Passa alla vista "elenco"',
@@ -847,8 +842,6 @@ return array(
'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Questo grafico mostra i tempi medi di consegna (Lead Time) e lavorazione (Cycle Time) per gli ultimi %d task.', 'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Questo grafico mostra i tempi medi di consegna (Lead Time) e lavorazione (Cycle Time) per gli ultimi %d task.',
'Average time into each column' => 'Tempo medio in ogni colonna', 'Average time into each column' => 'Tempo medio in ogni colonna',
'Lead and cycle time' => 'Tempo di consegna e lavorazione', 'Lead and cycle time' => 'Tempo di consegna e lavorazione',
'Google Authentication' => 'Autenticazione con Google',
'Help on Google authentication' => 'Aiuto sull\'autenticazione con Google',
'Github Authentication' => 'Autenticazione con Github', 'Github Authentication' => 'Autenticazione con Github',
'Help on Github authentication' => 'Aiuto sull\'autenticazione con Github', 'Help on Github authentication' => 'Aiuto sull\'autenticazione con Github',
'Lead time: ' => 'Tempo di consegna (Lead Time): ', 'Lead time: ' => 'Tempo di consegna (Lead Time): ',
@@ -859,7 +852,6 @@ return array(
'If the task is not closed the current time is used instead of the completion date.' => 'Se il task non è chiuso sarà usata la data attuale invece della data di completamento.', 'If the task is not closed the current time is used instead of the completion date.' => 'Se il task non è chiuso sarà usata la data attuale invece della data di completamento.',
'Set automatically the start date' => 'Imposta automaticamente la data di inzio', 'Set automatically the start date' => 'Imposta automaticamente la data di inzio',
'Edit Authentication' => 'Modifica Autenticazione', 'Edit Authentication' => 'Modifica Autenticazione',
'Google Id' => 'Id Google',
'Github Id' => 'Id Github', 'Github Id' => 'Id Github',
'Remote user' => 'Utente remoto', 'Remote user' => 'Utente remoto',
'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'La password degli utenti remoti (ad esempio: LDAP, account Google e Github) non è salvata nel database di Kanboard', 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'La password degli utenti remoti (ad esempio: LDAP, account Google e Github) non è salvata nel database di Kanboard',
@@ -994,7 +986,6 @@ return array(
'Append/Replace' => 'Aggiungi/Sostituisci', 'Append/Replace' => 'Aggiungi/Sostituisci',
'Append' => 'Aggiungi', 'Append' => 'Aggiungi',
'Replace' => 'Sostituisci', 'Replace' => 'Sostituisci',
'There is no notification method registered.' => 'Nessun metodo di notifica definito.',
'Import' => 'Importa', 'Import' => 'Importa',
'change sorting' => 'cambia ordinamento', 'change sorting' => 'cambia ordinamento',
'Tasks Importation' => 'Importazione task', 'Tasks Importation' => 'Importazione task',

View File

@@ -260,9 +260,6 @@ return array(
// 'External authentication failed' => '', // 'External authentication failed' => '',
// 'Your external account is linked to your profile successfully.' => '', // 'Your external account is linked to your profile successfully.' => '',
'Email' => 'Email', 'Email' => 'Email',
'Link my Google Account' => 'Google アカウントをリンクする',
'Unlink my Google Account' => 'Google アカウントのリンクを解除する',
'Login with my Google Account' => 'Google アカウントでログインする',
'Project not found.' => 'プロジェクトが見つかりません。', 'Project not found.' => 'プロジェクトが見つかりません。',
'Task removed successfully.' => 'タスクを削除しました。', 'Task removed successfully.' => 'タスクを削除しました。',
'Unable to remove this task.' => 'タスクの削除に失敗しました。', 'Unable to remove this task.' => 'タスクの削除に失敗しました。',
@@ -395,7 +392,6 @@ return array(
'Change password' => 'パスワードの変更', 'Change password' => 'パスワードの変更',
'Password modification' => 'パスワードの変更', 'Password modification' => 'パスワードの変更',
'External authentications' => '外部認証', 'External authentications' => '外部認証',
'Google Account' => 'Google アカウント',
'Github Account' => 'Github アカウント', 'Github Account' => 'Github アカウント',
'Never connected.' => '未接続。', 'Never connected.' => '未接続。',
'No account linked.' => 'アカウントがリンクしていません。', 'No account linked.' => 'アカウントがリンクしていません。',
@@ -846,8 +842,6 @@ return array(
// 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '', // 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '',
// 'Average time into each column' => '', // 'Average time into each column' => '',
// 'Lead and cycle time' => '', // 'Lead and cycle time' => '',
// 'Google Authentication' => '',
// 'Help on Google authentication' => '',
// 'Github Authentication' => '', // 'Github Authentication' => '',
// 'Help on Github authentication' => '', // 'Help on Github authentication' => '',
// 'Lead time: ' => '', // 'Lead time: ' => '',
@@ -858,7 +852,6 @@ return array(
// 'If the task is not closed the current time is used instead of the completion date.' => '', // 'If the task is not closed the current time is used instead of the completion date.' => '',
// 'Set automatically the start date' => '', // 'Set automatically the start date' => '',
// 'Edit Authentication' => '', // 'Edit Authentication' => '',
// 'Google Id' => '',
// 'Github Id' => '', // 'Github Id' => '',
// 'Remote user' => '', // 'Remote user' => '',
// 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '', // 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '',

View File

@@ -260,9 +260,6 @@ return array(
'External authentication failed' => 'Otentifikasi eksternal gagal', 'External authentication failed' => 'Otentifikasi eksternal gagal',
'Your external account is linked to your profile successfully.' => 'Akaun eksternal anda berhasil dihubungkan ke profil anda.', 'Your external account is linked to your profile successfully.' => 'Akaun eksternal anda berhasil dihubungkan ke profil anda.',
'Email' => 'Email', 'Email' => 'Email',
'Link my Google Account' => 'Hubungkan Akaun Google saya',
'Unlink my Google Account' => 'Putuskan Akaun Google saya',
'Login with my Google Account' => 'Masuk menggunakan Akaun Google saya',
'Project not found.' => 'projek tidak ditemukan.', 'Project not found.' => 'projek tidak ditemukan.',
'Task removed successfully.' => 'Tugas berhasil dihapus.', 'Task removed successfully.' => 'Tugas berhasil dihapus.',
'Unable to remove this task.' => 'Tidak dapat menghapus tugas ini.', 'Unable to remove this task.' => 'Tidak dapat menghapus tugas ini.',
@@ -395,7 +392,6 @@ return array(
'Change password' => 'Rubah kata sandri', 'Change password' => 'Rubah kata sandri',
'Password modification' => 'Modifikasi kata laluan', 'Password modification' => 'Modifikasi kata laluan',
'External authentications' => 'Otentifikasi eksternal', 'External authentications' => 'Otentifikasi eksternal',
'Google Account' => 'Akaun Google',
'Github Account' => 'Akaun Github', 'Github Account' => 'Akaun Github',
'Never connected.' => 'Tidak pernah terhubung.', 'Never connected.' => 'Tidak pernah terhubung.',
'No account linked.' => 'Tidak ada Akaun terhubung.', 'No account linked.' => 'Tidak ada Akaun terhubung.',
@@ -846,8 +842,6 @@ return array(
'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Grafik ini menunjukkan memimpin rata-rata dan waktu siklus untuk %d tugas terakhir dari waktu ke waktu.', 'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Grafik ini menunjukkan memimpin rata-rata dan waktu siklus untuk %d tugas terakhir dari waktu ke waktu.',
'Average time into each column' => 'Rata-rata waktu ke setiap kolom', 'Average time into each column' => 'Rata-rata waktu ke setiap kolom',
'Lead and cycle time' => 'Lead dan siklus waktu', 'Lead and cycle time' => 'Lead dan siklus waktu',
'Google Authentication' => 'Google Otentifikasi',
'Help on Google authentication' => 'Bantuan pada otentifikasi Google',
'Github Authentication' => 'Otentifikasi Github', 'Github Authentication' => 'Otentifikasi Github',
'Help on Github authentication' => 'Bantuan pada otentifikasi Github', 'Help on Github authentication' => 'Bantuan pada otentifikasi Github',
'Lead time: ' => 'Lead time : ', 'Lead time: ' => 'Lead time : ',
@@ -858,7 +852,6 @@ return array(
'If the task is not closed the current time is used instead of the completion date.' => 'Jika tugas tidak ditutup waktu saat ini yang digunakan sebagai pengganti tanggal penyelesaian.', 'If the task is not closed the current time is used instead of the completion date.' => 'Jika tugas tidak ditutup waktu saat ini yang digunakan sebagai pengganti tanggal penyelesaian.',
'Set automatically the start date' => 'Secara otomatis mengatur tanggal mulai', 'Set automatically the start date' => 'Secara otomatis mengatur tanggal mulai',
'Edit Authentication' => 'Modifikasi Otentifikasi', 'Edit Authentication' => 'Modifikasi Otentifikasi',
'Google Id' => 'Id Google',
'Github Id' => 'Id Github', 'Github Id' => 'Id Github',
'Remote user' => 'Pengguna jauh', 'Remote user' => 'Pengguna jauh',
'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Pengguna jauh tidak menyimpan kata laluan mereka dalam basis data Kanboard, contoh: Akaun LDAP, Google dan Github.', 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Pengguna jauh tidak menyimpan kata laluan mereka dalam basis data Kanboard, contoh: Akaun LDAP, Google dan Github.',

View File

@@ -260,9 +260,6 @@ return array(
// 'External authentication failed' => '', // 'External authentication failed' => '',
// 'Your external account is linked to your profile successfully.' => '', // 'Your external account is linked to your profile successfully.' => '',
'Email' => 'Epost', 'Email' => 'Epost',
'Link my Google Account' => 'Knytt til min Google-konto',
'Unlink my Google Account' => 'Fjern knytningen til min Google-konto',
'Login with my Google Account' => 'Login med min Google-konto',
'Project not found.' => 'Prosjekt ikke funnet.', 'Project not found.' => 'Prosjekt ikke funnet.',
'Task removed successfully.' => 'Oppgaven er fjernet.', 'Task removed successfully.' => 'Oppgaven er fjernet.',
'Unable to remove this task.' => 'Oppgaven kunne ikke fjernes.', 'Unable to remove this task.' => 'Oppgaven kunne ikke fjernes.',
@@ -395,7 +392,6 @@ return array(
'Change password' => 'Endre passord', 'Change password' => 'Endre passord',
'Password modification' => 'Passordendring', 'Password modification' => 'Passordendring',
'External authentications' => 'Ekstern godkjenning', 'External authentications' => 'Ekstern godkjenning',
'Google Account' => 'Google-konto',
'Github Account' => 'GitHub-konto', 'Github Account' => 'GitHub-konto',
'Never connected.' => 'Aldri innlogget.', 'Never connected.' => 'Aldri innlogget.',
'No account linked.' => 'Ingen kontoer knyttet.', 'No account linked.' => 'Ingen kontoer knyttet.',
@@ -846,8 +842,6 @@ return array(
// 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '', // 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '',
// 'Average time into each column' => '', // 'Average time into each column' => '',
// 'Lead and cycle time' => '', // 'Lead and cycle time' => '',
// 'Google Authentication' => '',
// 'Help on Google authentication' => '',
// 'Github Authentication' => '', // 'Github Authentication' => '',
// 'Help on Github authentication' => '', // 'Help on Github authentication' => '',
// 'Lead time: ' => '', // 'Lead time: ' => '',
@@ -858,7 +852,6 @@ return array(
// 'If the task is not closed the current time is used instead of the completion date.' => '', // 'If the task is not closed the current time is used instead of the completion date.' => '',
// 'Set automatically the start date' => '', // 'Set automatically the start date' => '',
// 'Edit Authentication' => '', // 'Edit Authentication' => '',
// 'Google Id' => '',
// 'Github Id' => '', // 'Github Id' => '',
// 'Remote user' => '', // 'Remote user' => '',
// 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '', // 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '',

View File

@@ -260,9 +260,6 @@ return array(
// 'External authentication failed' => '', // 'External authentication failed' => '',
// 'Your external account is linked to your profile successfully.' => '', // 'Your external account is linked to your profile successfully.' => '',
'Email' => 'Email', 'Email' => 'Email',
'Link my Google Account' => 'Link mijn Google Account',
'Unlink my Google Account' => 'Link met Google Account verwijderen',
'Login with my Google Account' => 'Inloggen met mijn Google Account',
'Project not found.' => 'Project niet gevonden.', 'Project not found.' => 'Project niet gevonden.',
'Task removed successfully.' => 'Taak succesvol verwijderd.', 'Task removed successfully.' => 'Taak succesvol verwijderd.',
'Unable to remove this task.' => 'Taak verwijderen niet gelukt.', 'Unable to remove this task.' => 'Taak verwijderen niet gelukt.',
@@ -395,7 +392,6 @@ return array(
'Change password' => 'Wachtwoord aanpassen', 'Change password' => 'Wachtwoord aanpassen',
'Password modification' => 'Wachtwoord aanpassen', 'Password modification' => 'Wachtwoord aanpassen',
'External authentications' => 'Externe authenticatie', 'External authentications' => 'Externe authenticatie',
'Google Account' => 'Google Account',
'Github Account' => 'Github Account', 'Github Account' => 'Github Account',
'Never connected.' => 'Nooit verbonden.', 'Never connected.' => 'Nooit verbonden.',
'No account linked.' => 'Geen account gelinkt.', 'No account linked.' => 'Geen account gelinkt.',
@@ -846,8 +842,6 @@ return array(
// 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '', // 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '',
// 'Average time into each column' => '', // 'Average time into each column' => '',
// 'Lead and cycle time' => '', // 'Lead and cycle time' => '',
// 'Google Authentication' => '',
// 'Help on Google authentication' => '',
// 'Github Authentication' => '', // 'Github Authentication' => '',
// 'Help on Github authentication' => '', // 'Help on Github authentication' => '',
// 'Lead time: ' => '', // 'Lead time: ' => '',
@@ -858,7 +852,6 @@ return array(
// 'If the task is not closed the current time is used instead of the completion date.' => '', // 'If the task is not closed the current time is used instead of the completion date.' => '',
// 'Set automatically the start date' => '', // 'Set automatically the start date' => '',
// 'Edit Authentication' => '', // 'Edit Authentication' => '',
// 'Google Id' => '',
// 'Github Id' => '', // 'Github Id' => '',
// 'Remote user' => '', // 'Remote user' => '',
// 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '', // 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '',

View File

@@ -260,9 +260,6 @@ return array(
// 'External authentication failed' => '', // 'External authentication failed' => '',
// 'Your external account is linked to your profile successfully.' => '', // 'Your external account is linked to your profile successfully.' => '',
'Email' => 'Email', 'Email' => 'Email',
'Link my Google Account' => 'Połącz z kontem Google',
'Unlink my Google Account' => 'Rozłącz z kontem Google',
'Login with my Google Account' => 'Zaloguj przy pomocy konta Google',
'Project not found.' => 'Projek nieznaleziony.', 'Project not found.' => 'Projek nieznaleziony.',
'Task removed successfully.' => 'Zadanie usunięto pomyślnie.', 'Task removed successfully.' => 'Zadanie usunięto pomyślnie.',
'Unable to remove this task.' => 'Nie można usunąć tego zadania.', 'Unable to remove this task.' => 'Nie można usunąć tego zadania.',
@@ -395,7 +392,6 @@ return array(
'Change password' => 'Zmień hasło', 'Change password' => 'Zmień hasło',
'Password modification' => 'Zmiana hasła', 'Password modification' => 'Zmiana hasła',
'External authentications' => 'Autentykacja zewnętrzna', 'External authentications' => 'Autentykacja zewnętrzna',
'Google Account' => 'Konto Google',
'Github Account' => 'Konto Github', 'Github Account' => 'Konto Github',
'Never connected.' => 'Nigdy nie połączone.', 'Never connected.' => 'Nigdy nie połączone.',
'No account linked.' => 'Brak połączonych kont.', 'No account linked.' => 'Brak połączonych kont.',
@@ -846,8 +842,6 @@ return array(
// 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '', // 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '',
// 'Average time into each column' => '', // 'Average time into each column' => '',
// 'Lead and cycle time' => '', // 'Lead and cycle time' => '',
// 'Google Authentication' => '',
// 'Help on Google authentication' => '',
// 'Github Authentication' => '', // 'Github Authentication' => '',
// 'Help on Github authentication' => '', // 'Help on Github authentication' => '',
// 'Lead time: ' => '', // 'Lead time: ' => '',
@@ -858,7 +852,6 @@ return array(
// 'If the task is not closed the current time is used instead of the completion date.' => '', // 'If the task is not closed the current time is used instead of the completion date.' => '',
// 'Set automatically the start date' => '', // 'Set automatically the start date' => '',
'Edit Authentication' => 'Edycja autoryzacji', 'Edit Authentication' => 'Edycja autoryzacji',
// 'Google Id' => '',
// 'Github Id' => '', // 'Github Id' => '',
// 'Remote user' => '', // 'Remote user' => '',
// 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '', // 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '',

View File

@@ -260,9 +260,6 @@ return array(
'External authentication failed' => 'Autenticação externa falhou', 'External authentication failed' => 'Autenticação externa falhou',
'Your external account is linked to your profile successfully.' => 'Sua conta externa está agora ligada ao seu perfil.', 'Your external account is linked to your profile successfully.' => 'Sua conta externa está agora ligada ao seu perfil.',
'Email' => 'E-mail', 'Email' => 'E-mail',
'Link my Google Account' => 'Vincular minha Conta do Google',
'Unlink my Google Account' => 'Desvincular minha Conta do Google',
'Login with my Google Account' => 'Entrar com minha Conta do Google',
'Project not found.' => 'Projeto não encontrado.', 'Project not found.' => 'Projeto não encontrado.',
'Task removed successfully.' => 'Tarefa removida com sucesso.', 'Task removed successfully.' => 'Tarefa removida com sucesso.',
'Unable to remove this task.' => 'Não foi possível remover esta tarefa.', 'Unable to remove this task.' => 'Não foi possível remover esta tarefa.',
@@ -395,7 +392,6 @@ return array(
'Change password' => 'Alterar senha', 'Change password' => 'Alterar senha',
'Password modification' => 'Alteração de senha', 'Password modification' => 'Alteração de senha',
'External authentications' => 'Autenticação externa', 'External authentications' => 'Autenticação externa',
'Google Account' => 'Conta do Google',
'Github Account' => 'Conta do Github', 'Github Account' => 'Conta do Github',
'Never connected.' => 'Nunca conectado.', 'Never connected.' => 'Nunca conectado.',
'No account linked.' => 'Nenhuma conta associada.', 'No account linked.' => 'Nenhuma conta associada.',
@@ -846,8 +842,6 @@ return array(
'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Este gráfico mostra o tempo médio do Lead and cycle time das últimas %d tarefas.', 'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Este gráfico mostra o tempo médio do Lead and cycle time das últimas %d tarefas.',
'Average time into each column' => 'Tempo médio de cada coluna', 'Average time into each column' => 'Tempo médio de cada coluna',
'Lead and cycle time' => 'Lead and cycle time', 'Lead and cycle time' => 'Lead and cycle time',
'Google Authentication' => 'Autenticação Google',
'Help on Google authentication' => 'Ajuda com a autenticação Google',
'Github Authentication' => 'Autenticação Github', 'Github Authentication' => 'Autenticação Github',
'Help on Github authentication' => 'Ajuda com a autenticação Github', 'Help on Github authentication' => 'Ajuda com a autenticação Github',
'Lead time: ' => 'Lead time: ', 'Lead time: ' => 'Lead time: ',
@@ -858,7 +852,6 @@ return array(
'If the task is not closed the current time is used instead of the completion date.' => 'Se a tarefa não está fechada, a hora atual é usada no lugar da data de conclusão.', 'If the task is not closed the current time is used instead of the completion date.' => 'Se a tarefa não está fechada, a hora atual é usada no lugar da data de conclusão.',
'Set automatically the start date' => 'Definir automaticamente a data de início', 'Set automatically the start date' => 'Definir automaticamente a data de início',
'Edit Authentication' => 'Modificar a autenticação', 'Edit Authentication' => 'Modificar a autenticação',
'Google Id' => 'Google ID',
'Github Id' => 'Github Id', 'Github Id' => 'Github Id',
'Remote user' => 'Usuário remoto', 'Remote user' => 'Usuário remoto',
'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Os usuários remotos não conservam as suas senhas no banco de dados Kanboard, exemplos: contas LDAP, Github ou Google.', 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Os usuários remotos não conservam as suas senhas no banco de dados Kanboard, exemplos: contas LDAP, Github ou Google.',

View File

@@ -260,9 +260,6 @@ return array(
'External authentication failed' => 'Autenticação externa falhou', 'External authentication failed' => 'Autenticação externa falhou',
'Your external account is linked to your profile successfully.' => 'A sua conta externa foi vinculada com sucesso ao seu perfil', 'Your external account is linked to your profile successfully.' => 'A sua conta externa foi vinculada com sucesso ao seu perfil',
'Email' => 'E-mail', 'Email' => 'E-mail',
'Link my Google Account' => 'Vincular a minha Conta do Google',
'Unlink my Google Account' => 'Desvincular a minha Conta do Google',
'Login with my Google Account' => 'Entrar com a minha Conta do Google',
'Project not found.' => 'Projecto não encontrado.', 'Project not found.' => 'Projecto não encontrado.',
'Task removed successfully.' => 'Tarefa removida com sucesso.', 'Task removed successfully.' => 'Tarefa removida com sucesso.',
'Unable to remove this task.' => 'Não foi possível remover esta tarefa.', 'Unable to remove this task.' => 'Não foi possível remover esta tarefa.',
@@ -395,7 +392,6 @@ return array(
'Change password' => 'Alterar senha', 'Change password' => 'Alterar senha',
'Password modification' => 'Alteração de senha', 'Password modification' => 'Alteração de senha',
'External authentications' => 'Autenticação externa', 'External authentications' => 'Autenticação externa',
'Google Account' => 'Conta do Google',
'Github Account' => 'Conta do Github', 'Github Account' => 'Conta do Github',
'Never connected.' => 'Nunca conectado.', 'Never connected.' => 'Nunca conectado.',
'No account linked.' => 'Nenhuma conta associada.', 'No account linked.' => 'Nenhuma conta associada.',
@@ -846,8 +842,6 @@ return array(
'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Este gráfico mostra o tempo médio de espera e ciclo para as últimas %d tarefas realizadas.', 'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Este gráfico mostra o tempo médio de espera e ciclo para as últimas %d tarefas realizadas.',
'Average time into each column' => 'Tempo médio em cada coluna', 'Average time into each column' => 'Tempo médio em cada coluna',
'Lead and cycle time' => 'Tempo de Espera e Ciclo', 'Lead and cycle time' => 'Tempo de Espera e Ciclo',
'Google Authentication' => 'Autenticação Google',
'Help on Google authentication' => 'Ajuda com autenticação Google',
'Github Authentication' => 'Autenticação Github', 'Github Authentication' => 'Autenticação Github',
'Help on Github authentication' => 'Ajuda com autenticação Github', 'Help on Github authentication' => 'Ajuda com autenticação Github',
'Lead time: ' => 'Tempo de Espera: ', 'Lead time: ' => 'Tempo de Espera: ',
@@ -858,7 +852,6 @@ return array(
'If the task is not closed the current time is used instead of the completion date.' => 'Se a tarefa não estiver fechada o hora actual será usada em vez da hora de conclusão', 'If the task is not closed the current time is used instead of the completion date.' => 'Se a tarefa não estiver fechada o hora actual será usada em vez da hora de conclusão',
'Set automatically the start date' => 'Definir data de inicio automáticamente', 'Set automatically the start date' => 'Definir data de inicio automáticamente',
'Edit Authentication' => 'Editar Autenticação', 'Edit Authentication' => 'Editar Autenticação',
'Google Id' => 'Id Google',
'Github Id' => 'Id Github', 'Github Id' => 'Id Github',
'Remote user' => 'Utilizador remoto', 'Remote user' => 'Utilizador remoto',
'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Utilizadores remotos não guardam a password na base de dados do Kanboard, por exemplo: LDAP, contas do Google e Github.', 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Utilizadores remotos não guardam a password na base de dados do Kanboard, por exemplo: LDAP, contas do Google e Github.',

View File

@@ -260,9 +260,6 @@ return array(
'External authentication failed' => 'Внешняя авторизация не удалась', 'External authentication failed' => 'Внешняя авторизация не удалась',
'Your external account is linked to your profile successfully.' => 'Ваш внешний аккаунт успешно подключен к профилю.', 'Your external account is linked to your profile successfully.' => 'Ваш внешний аккаунт успешно подключен к профилю.',
'Email' => 'E-mail', 'Email' => 'E-mail',
'Link my Google Account' => 'Привязать мой профиль к Google',
'Unlink my Google Account' => 'Отвязать мой профиль от Google',
'Login with my Google Account' => 'Аутентификация через Google',
'Project not found.' => 'Проект не найден.', 'Project not found.' => 'Проект не найден.',
'Task removed successfully.' => 'Задача удалена.', 'Task removed successfully.' => 'Задача удалена.',
'Unable to remove this task.' => 'Не удалось удалить эту задачу.', 'Unable to remove this task.' => 'Не удалось удалить эту задачу.',
@@ -395,7 +392,6 @@ return array(
'Change password' => 'Сменить пароль', 'Change password' => 'Сменить пароль',
'Password modification' => 'Изменение пароля', 'Password modification' => 'Изменение пароля',
'External authentications' => 'Внешняя аутентификация', 'External authentications' => 'Внешняя аутентификация',
'Google Account' => 'Профиль Google',
'Github Account' => 'Профиль Github', 'Github Account' => 'Профиль Github',
'Never connected.' => 'Ранее не соединялось.', 'Never connected.' => 'Ранее не соединялось.',
'No account linked.' => 'Нет связанных профилей.', 'No account linked.' => 'Нет связанных профилей.',
@@ -846,8 +842,6 @@ return array(
'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Эта диаграма показывает среднее время выполнения и цикла задачь в последние %d.', 'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Эта диаграма показывает среднее время выполнения и цикла задачь в последние %d.',
'Average time into each column' => 'Среднее время в каждом столбце', 'Average time into each column' => 'Среднее время в каждом столбце',
'Lead and cycle time' => 'Время выполнения и цикла', 'Lead and cycle time' => 'Время выполнения и цикла',
'Google Authentication' => 'Авторизация Google',
'Help on Google authentication' => 'Помощь в авторизации Google',
'Github Authentication' => 'Авторизация Github', 'Github Authentication' => 'Авторизация Github',
'Help on Github authentication' => 'Помощь в авторизации Github', 'Help on Github authentication' => 'Помощь в авторизации Github',
'Lead time: ' => 'Время выполнения:', 'Lead time: ' => 'Время выполнения:',
@@ -858,7 +852,6 @@ return array(
'If the task is not closed the current time is used instead of the completion date.' => 'Если задача не закрыта, то текущая дата будет указана в дате завершения задачи.', 'If the task is not closed the current time is used instead of the completion date.' => 'Если задача не закрыта, то текущая дата будет указана в дате завершения задачи.',
'Set automatically the start date' => 'Установить автоматическую дату начала', 'Set automatically the start date' => 'Установить автоматическую дату начала',
'Edit Authentication' => 'Редактировать авторизацию', 'Edit Authentication' => 'Редактировать авторизацию',
'Google Id' => 'Google Id',
'Github Id' => 'Github Id', 'Github Id' => 'Github Id',
'Remote user' => 'Удаленный пользователь', 'Remote user' => 'Удаленный пользователь',
'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Учетные данные для входа через LDAP, Google и Github не будут сохранены в Kanboard.', 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Учетные данные для входа через LDAP, Google и Github не будут сохранены в Kanboard.',

View File

@@ -260,9 +260,6 @@ return array(
// 'External authentication failed' => '', // 'External authentication failed' => '',
// 'Your external account is linked to your profile successfully.' => '', // 'Your external account is linked to your profile successfully.' => '',
'Email' => 'E-mail', 'Email' => 'E-mail',
'Link my Google Account' => 'Poveži sa Google nalogom',
'Unlink my Google Account' => 'Ukini vezu sa Google nalogom',
'Login with my Google Account' => 'Prijavi se preko Google naloga',
'Project not found.' => 'Projekat nije pronađen.', 'Project not found.' => 'Projekat nije pronađen.',
'Task removed successfully.' => 'Zadatak uspešno uklonjen.', 'Task removed successfully.' => 'Zadatak uspešno uklonjen.',
'Unable to remove this task.' => 'Nemoguće uklanjanje zadatka.', 'Unable to remove this task.' => 'Nemoguće uklanjanje zadatka.',
@@ -395,7 +392,6 @@ return array(
'Change password' => 'Izmeni lozinku', 'Change password' => 'Izmeni lozinku',
'Password modification' => 'Izmena lozinke', 'Password modification' => 'Izmena lozinke',
'External authentications' => 'Spoljne akcije', 'External authentications' => 'Spoljne akcije',
'Google Account' => 'Google nalog',
'Github Account' => 'Github nalog', 'Github Account' => 'Github nalog',
'Never connected.' => 'Bez konekcija.', 'Never connected.' => 'Bez konekcija.',
'No account linked.' => 'Bez povezanih naloga.', 'No account linked.' => 'Bez povezanih naloga.',
@@ -846,8 +842,6 @@ return array(
// 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '', // 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '',
// 'Average time into each column' => '', // 'Average time into each column' => '',
// 'Lead and cycle time' => '', // 'Lead and cycle time' => '',
// 'Google Authentication' => '',
// 'Help on Google authentication' => '',
// 'Github Authentication' => '', // 'Github Authentication' => '',
// 'Help on Github authentication' => '', // 'Help on Github authentication' => '',
// 'Lead time: ' => '', // 'Lead time: ' => '',
@@ -858,7 +852,6 @@ return array(
// 'If the task is not closed the current time is used instead of the completion date.' => '', // 'If the task is not closed the current time is used instead of the completion date.' => '',
// 'Set automatically the start date' => '', // 'Set automatically the start date' => '',
// 'Edit Authentication' => '', // 'Edit Authentication' => '',
// 'Google Id' => '',
// 'Github Id' => '', // 'Github Id' => '',
// 'Remote user' => '', // 'Remote user' => '',
// 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '', // 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '',

View File

@@ -260,9 +260,6 @@ return array(
'External authentication failed' => 'Extern autentisering misslyckades', 'External authentication failed' => 'Extern autentisering misslyckades',
'Your external account is linked to your profile successfully.' => 'Ditt externa konto länkades till din profil.', 'Your external account is linked to your profile successfully.' => 'Ditt externa konto länkades till din profil.',
'Email' => 'Epost', 'Email' => 'Epost',
'Link my Google Account' => 'Länka till mitt Google-konto',
'Unlink my Google Account' => 'Ta bort länken till mitt Google-konto',
'Login with my Google Account' => 'Logga in med mitt Google-konto',
'Project not found.' => 'Projektet kunde inte hittas', 'Project not found.' => 'Projektet kunde inte hittas',
'Task removed successfully.' => 'Uppgiften har tagits bort', 'Task removed successfully.' => 'Uppgiften har tagits bort',
'Unable to remove this task.' => 'Kunde inte ta bort denna uppgift', 'Unable to remove this task.' => 'Kunde inte ta bort denna uppgift',
@@ -395,7 +392,6 @@ return array(
'Change password' => 'Byt lösenord', 'Change password' => 'Byt lösenord',
'Password modification' => 'Ändra lösenord', 'Password modification' => 'Ändra lösenord',
'External authentications' => 'Extern autentisering', 'External authentications' => 'Extern autentisering',
'Google Account' => 'Googlekonto',
'Github Account' => 'Githubkonto', 'Github Account' => 'Githubkonto',
'Never connected.' => 'Inte ansluten.', 'Never connected.' => 'Inte ansluten.',
'No account linked.' => 'Inget konto länkat.', 'No account linked.' => 'Inget konto länkat.',
@@ -846,8 +842,6 @@ return array(
'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Diagramet visar medel av led och cykeltid för de senaste %d uppgifterna över tiden.', 'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Diagramet visar medel av led och cykeltid för de senaste %d uppgifterna över tiden.',
'Average time into each column' => 'Medeltidsåtgång i varje kolumn', 'Average time into each column' => 'Medeltidsåtgång i varje kolumn',
'Lead and cycle time' => 'Led och cykeltid', 'Lead and cycle time' => 'Led och cykeltid',
'Google Authentication' => 'Google autentisering',
'Help on Google authentication' => 'Hjälp för Google autentisering',
'Github Authentication' => 'Github autentisering', 'Github Authentication' => 'Github autentisering',
'Help on Github authentication' => 'Hjälp för Github autentisering', 'Help on Github authentication' => 'Hjälp för Github autentisering',
'Lead time: ' => 'Ledtid', 'Lead time: ' => 'Ledtid',
@@ -858,7 +852,6 @@ return array(
'If the task is not closed the current time is used instead of the completion date.' => 'Om uppgiften inte är stängd används nuvarande tid istället för slutförandedatum.', 'If the task is not closed the current time is used instead of the completion date.' => 'Om uppgiften inte är stängd används nuvarande tid istället för slutförandedatum.',
'Set automatically the start date' => 'Sätt startdatum automatiskt', 'Set automatically the start date' => 'Sätt startdatum automatiskt',
'Edit Authentication' => 'Ändra autentisering', 'Edit Authentication' => 'Ändra autentisering',
'Google Id' => 'Google Id',
'Github Id' => 'Github Id', 'Github Id' => 'Github Id',
'Remote user' => 'Extern användare', 'Remote user' => 'Extern användare',
'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Externa användares lösenord lagras inte i Kanboard-databasen, exempel: LDAP, Google och Github-konton.', 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Externa användares lösenord lagras inte i Kanboard-databasen, exempel: LDAP, Google och Github-konton.',

View File

@@ -260,9 +260,6 @@ return array(
// 'External authentication failed' => '', // 'External authentication failed' => '',
// 'Your external account is linked to your profile successfully.' => '', // 'Your external account is linked to your profile successfully.' => '',
'Email' => 'อีเมล', 'Email' => 'อีเมล',
'Link my Google Account' => 'เชื่อมต่อกับกูเกิลแอคเคาท์',
'Unlink my Google Account' => 'ไม่เชื่อมต่อกับกูเกิลแอคเคาท์',
'Login with my Google Account' => 'เข้าใช้ด้วยกูเกิลแอคเคาท์',
'Project not found.' => 'หาโปรเจคไม่พบ', 'Project not found.' => 'หาโปรเจคไม่พบ',
'Task removed successfully.' => 'ลบงานเรียบร้อยแล้ว', 'Task removed successfully.' => 'ลบงานเรียบร้อยแล้ว',
'Unable to remove this task.' => 'ไม่สามารถลบงานนี้', 'Unable to remove this task.' => 'ไม่สามารถลบงานนี้',
@@ -395,7 +392,6 @@ return array(
'Change password' => 'เปลี่ยนรหัสผ่าน', 'Change password' => 'เปลี่ยนรหัสผ่าน',
'Password modification' => 'แก้ไขรหัสผ่าน', 'Password modification' => 'แก้ไขรหัสผ่าน',
'External authentications' => 'การยืนยันภายนอก', 'External authentications' => 'การยืนยันภายนอก',
'Google Account' => 'กูเกิลแอคเคาท์',
'Github Account' => 'กิทฮับแอคเคาท์', 'Github Account' => 'กิทฮับแอคเคาท์',
'Never connected.' => 'ไม่เชื่อมต่อ', 'Never connected.' => 'ไม่เชื่อมต่อ',
'No account linked.' => 'แอคเคาท์ไม่มีการเชื่อม', 'No account linked.' => 'แอคเคาท์ไม่มีการเชื่อม',
@@ -846,8 +842,6 @@ return array(
// 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '', // 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '',
// 'Average time into each column' => '', // 'Average time into each column' => '',
// 'Lead and cycle time' => '', // 'Lead and cycle time' => '',
// 'Google Authentication' => '',
// 'Help on Google authentication' => '',
// 'Github Authentication' => '', // 'Github Authentication' => '',
// 'Help on Github authentication' => '', // 'Help on Github authentication' => '',
// 'Lead time: ' => '', // 'Lead time: ' => '',
@@ -858,7 +852,6 @@ return array(
// 'If the task is not closed the current time is used instead of the completion date.' => '', // 'If the task is not closed the current time is used instead of the completion date.' => '',
// 'Set automatically the start date' => '', // 'Set automatically the start date' => '',
// 'Edit Authentication' => '', // 'Edit Authentication' => '',
// 'Google Id' => '',
// 'Github Id' => '', // 'Github Id' => '',
// 'Remote user' => '', // 'Remote user' => '',
// 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '', // 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '',

View File

@@ -260,9 +260,6 @@ return array(
'External authentication failed' => 'Harici hesap doğrulaması başarısız', 'External authentication failed' => 'Harici hesap doğrulaması başarısız',
'Your external account is linked to your profile successfully.' => 'Harici hesabınız profilinizle başarıyla bağlandı.', 'Your external account is linked to your profile successfully.' => 'Harici hesabınız profilinizle başarıyla bağlandı.',
'Email' => 'E-posta', 'Email' => 'E-posta',
'Link my Google Account' => 'Google hesabımla bağ oluştur',
'Unlink my Google Account' => 'Google hesabımla bağı kaldır',
'Login with my Google Account' => 'Google hesabımla giriş yap',
'Project not found.' => 'Proje bulunamadı', 'Project not found.' => 'Proje bulunamadı',
'Task removed successfully.' => 'Görev başarıyla silindi.', 'Task removed successfully.' => 'Görev başarıyla silindi.',
'Unable to remove this task.' => 'Görev silinemiyor.', 'Unable to remove this task.' => 'Görev silinemiyor.',
@@ -395,7 +392,6 @@ return array(
'Change password' => 'Şifre değiştir', 'Change password' => 'Şifre değiştir',
'Password modification' => 'Şifre değişimi', 'Password modification' => 'Şifre değişimi',
'External authentications' => 'Dış kimlik doğrulamaları', 'External authentications' => 'Dış kimlik doğrulamaları',
'Google Account' => 'Google hesabı',
'Github Account' => 'Github hesabı', 'Github Account' => 'Github hesabı',
'Never connected.' => 'Hiç bağlanmamış.', 'Never connected.' => 'Hiç bağlanmamış.',
'No account linked.' => 'Bağlanmış hesap yok.', 'No account linked.' => 'Bağlanmış hesap yok.',
@@ -846,8 +842,6 @@ return array(
'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Bu grafik son %d görev için zaman içinde gerçekleşen ortalama teslim ve çevrim sürelerini gösterir.', 'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'Bu grafik son %d görev için zaman içinde gerçekleşen ortalama teslim ve çevrim sürelerini gösterir.',
'Average time into each column' => 'Her bir sütunda ortalama zaman', 'Average time into each column' => 'Her bir sütunda ortalama zaman',
'Lead and cycle time' => 'Teslim ve çevrim süresi', 'Lead and cycle time' => 'Teslim ve çevrim süresi',
'Google Authentication' => 'Google doğrulaması',
'Help on Google authentication' => 'Google doğrulaması hakkında yardım',
'Github Authentication' => 'Github doğrulaması', 'Github Authentication' => 'Github doğrulaması',
'Help on Github authentication' => 'Github doğrulaması hakkında yardım', 'Help on Github authentication' => 'Github doğrulaması hakkında yardım',
'Lead time: ' => 'Teslim süresi: ', 'Lead time: ' => 'Teslim süresi: ',
@@ -858,7 +852,6 @@ return array(
'If the task is not closed the current time is used instead of the completion date.' => 'Eğer görev henüz kapatılmamışsa, tamamlanma tarihi yerine şu anki tarih kullanılır.', 'If the task is not closed the current time is used instead of the completion date.' => 'Eğer görev henüz kapatılmamışsa, tamamlanma tarihi yerine şu anki tarih kullanılır.',
'Set automatically the start date' => 'Başlangıç tarihini otomatik olarak belirle', 'Set automatically the start date' => 'Başlangıç tarihini otomatik olarak belirle',
'Edit Authentication' => 'Doğrulamayı düzenle', 'Edit Authentication' => 'Doğrulamayı düzenle',
'Google Id' => 'Google kimliği',
'Github Id' => 'Github Kimliği', 'Github Id' => 'Github Kimliği',
'Remote user' => 'Uzak kullanıcı', 'Remote user' => 'Uzak kullanıcı',
'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Uzak kullanıcıların şifreleri Kanboard veritabanında saklanmaz, örnek: LDAP, Google ve Github hesapları', 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => 'Uzak kullanıcıların şifreleri Kanboard veritabanında saklanmaz, örnek: LDAP, Google ve Github hesapları',

View File

@@ -260,9 +260,6 @@ return array(
// 'External authentication failed' => '', // 'External authentication failed' => '',
// 'Your external account is linked to your profile successfully.' => '', // 'Your external account is linked to your profile successfully.' => '',
'Email' => '电子邮件', 'Email' => '电子邮件',
'Link my Google Account' => '关联我的google帐号',
'Unlink my Google Account' => '去除我的google帐号关联',
'Login with my Google Account' => '用我的google帐号登录',
'Project not found.' => '未发现项目', 'Project not found.' => '未发现项目',
'Task removed successfully.' => '任务成功去除', 'Task removed successfully.' => '任务成功去除',
'Unable to remove this task.' => '无法移除该任务。', 'Unable to remove this task.' => '无法移除该任务。',
@@ -395,7 +392,6 @@ return array(
'Change password' => '修改密码', 'Change password' => '修改密码',
'Password modification' => '修改密码', 'Password modification' => '修改密码',
'External authentications' => '外部认证', 'External authentications' => '外部认证',
'Google Account' => '谷歌账号',
'Github Account' => 'Github 账号', 'Github Account' => 'Github 账号',
'Never connected.' => '从未连接。', 'Never connected.' => '从未连接。',
'No account linked.' => '未链接账号。', 'No account linked.' => '未链接账号。',
@@ -846,8 +842,6 @@ return array(
// 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '', // 'This chart show the average lead and cycle time for the last %d tasks over the time.' => '',
// 'Average time into each column' => '', // 'Average time into each column' => '',
// 'Lead and cycle time' => '', // 'Lead and cycle time' => '',
// 'Google Authentication' => '',
// 'Help on Google authentication' => '',
// 'Github Authentication' => '', // 'Github Authentication' => '',
// 'Help on Github authentication' => '', // 'Help on Github authentication' => '',
// 'Lead time: ' => '', // 'Lead time: ' => '',
@@ -858,7 +852,6 @@ return array(
// 'If the task is not closed the current time is used instead of the completion date.' => '', // 'If the task is not closed the current time is used instead of the completion date.' => '',
// 'Set automatically the start date' => '', // 'Set automatically the start date' => '',
// 'Edit Authentication' => '', // 'Edit Authentication' => '',
// 'Google Id' => '',
// 'Github Id' => '', // 'Github Id' => '',
// 'Remote user' => '', // 'Remote user' => '',
// 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '', // 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '',

View File

@@ -48,20 +48,7 @@ class User extends Base
*/ */
public function getQuery() public function getQuery()
{ {
return $this->db return $this->db->table(self::TABLE);
->table(self::TABLE)
->columns(
'id',
'username',
'name',
'email',
'role',
'is_ldap_user',
'notifications_enabled',
'google_id',
'github_id',
'twofactor_activated'
);
} }
/** /**

View File

@@ -13,7 +13,6 @@ use Kanboard\Auth\DatabaseAuth;
use Kanboard\Auth\LdapAuth; use Kanboard\Auth\LdapAuth;
use Kanboard\Auth\GitlabAuth; use Kanboard\Auth\GitlabAuth;
use Kanboard\Auth\GithubAuth; use Kanboard\Auth\GithubAuth;
use Kanboard\Auth\GoogleAuth;
use Kanboard\Auth\TotpAuth; use Kanboard\Auth\TotpAuth;
use Kanboard\Auth\ReverseProxyAuth; use Kanboard\Auth\ReverseProxyAuth;
@@ -55,10 +54,6 @@ class AuthenticationProvider implements ServiceProviderInterface
$container['authenticationManager']->register(new GithubAuth($container)); $container['authenticationManager']->register(new GithubAuth($container));
} }
if (GOOGLE_AUTH) {
$container['authenticationManager']->register(new GoogleAuth($container));
}
$container['projectAccessMap'] = $this->getProjectAccessMap(); $container['projectAccessMap'] = $this->getProjectAccessMap();
$container['applicationAccessMap'] = $this->getApplicationAccessMap(); $container['applicationAccessMap'] = $this->getApplicationAccessMap();
@@ -126,7 +121,7 @@ class AuthenticationProvider implements ServiceProviderInterface
$acl->setRoleHierarchy(Role::APP_MANAGER, array(Role::APP_USER, Role::APP_PUBLIC)); $acl->setRoleHierarchy(Role::APP_MANAGER, array(Role::APP_USER, Role::APP_PUBLIC));
$acl->setRoleHierarchy(Role::APP_USER, array(Role::APP_PUBLIC)); $acl->setRoleHierarchy(Role::APP_USER, array(Role::APP_PUBLIC));
$acl->add('Oauth', array('google', 'github', 'gitlab'), Role::APP_PUBLIC); $acl->add('Oauth', array('github', 'gitlab'), Role::APP_PUBLIC);
$acl->add('Auth', array('login', 'check'), Role::APP_PUBLIC); $acl->add('Auth', array('login', 'check'), Role::APP_PUBLIC);
$acl->add('Captcha', '*', Role::APP_PUBLIC); $acl->add('Captcha', '*', Role::APP_PUBLIC);
$acl->add('PasswordReset', '*', Role::APP_PUBLIC); $acl->add('PasswordReset', '*', Role::APP_PUBLIC);

View File

@@ -205,7 +205,6 @@ class RouteProvider implements ServiceProviderInterface
$container['route']->addRoute('documentation', 'doc', 'show'); $container['route']->addRoute('documentation', 'doc', 'show');
// Auth routes // Auth routes
$container['route']->addRoute('oauth/google', 'oauth', 'google');
$container['route']->addRoute('oauth/github', 'oauth', 'github'); $container['route']->addRoute('oauth/github', 'oauth', 'github');
$container['route']->addRoute('oauth/gitlab', 'oauth', 'gitlab'); $container['route']->addRoute('oauth/gitlab', 'oauth', 'gitlab');
$container['route']->addRoute('login', 'auth', 'login'); $container['route']->addRoute('login', 'auth', 'login');

View File

@@ -40,12 +40,8 @@
<?= $this->hook->render('template:auth:login-form:after') ?> <?= $this->hook->render('template:auth:login-form:after') ?>
<?php if (GOOGLE_AUTH || GITHUB_AUTH || GITLAB_AUTH): ?> <?php if (GITHUB_AUTH || GITLAB_AUTH): ?>
<ul class="no-bullet"> <ul class="no-bullet">
<?php if (GOOGLE_AUTH): ?>
<li><?= $this->url->link(t('Login with my Google Account'), 'oauth', 'google') ?></li>
<?php endif ?>
<?php if (GITHUB_AUTH): ?> <?php if (GITHUB_AUTH): ?>
<li><?= $this->url->link(t('Login with my Github Account'), 'oauth', 'github') ?></li> <li><?= $this->url->link(t('Login with my Github Account'), 'oauth', 'github') ?></li>
<?php endif ?> <?php endif ?>

View File

@@ -3,17 +3,9 @@
</div> </div>
<form method="post" action="<?= $this->url->href('config', 'integrations') ?>" autocomplete="off"> <form method="post" action="<?= $this->url->href('config', 'integrations') ?>" autocomplete="off">
<?= $this->form->csrf() ?> <?= $this->form->csrf() ?>
<?= $this->hook->render('template:config:integrations', array('values' => $values)) ?> <?= $this->hook->render('template:config:integrations', array('values' => $values)) ?>
<h3><i class="fa fa-google"></i> <?= t('Google Authentication') ?></h3>
<div class="listing">
<input type="text" class="auto-select" readonly="readonly" value="<?= $this->url->href('oauth', 'google', array(), false, '', true) ?>"/><br/>
<p class="form-help"><?= $this->url->doc(t('Help on Google authentication'), 'google-authentication') ?></p>
</div>
<h3><i class="fa fa-github"></i> <?= t('Github Authentication') ?></h3> <h3><i class="fa fa-github"></i> <?= t('Github Authentication') ?></h3>
<div class="listing"> <div class="listing">
<input type="text" class="auto-select" readonly="readonly" value="<?= $this->url->href('oauth', 'github', array(), false, '', true) ?>"/><br/> <input type="text" class="auto-select" readonly="readonly" value="<?= $this->url->href('oauth', 'github', array(), false, '', true) ?>"/><br/>

View File

@@ -8,8 +8,7 @@
<?= $this->form->hidden('id', $values) ?> <?= $this->form->hidden('id', $values) ?>
<?= $this->form->hidden('username', $values) ?> <?= $this->form->hidden('username', $values) ?>
<?= $this->form->label(t('Google Id'), 'google_id') ?> <?= $this->hook->render('template:user:authentication:form', array('values' => $values, 'errors' => $errors, 'user' => $user)) ?>
<?= $this->form->text('google_id', $values, $errors) ?>
<?= $this->form->label(t('Github Id'), 'github_id') ?> <?= $this->form->label(t('Github Id'), 'github_id') ?>
<?= $this->form->text('github_id', $values, $errors) ?> <?= $this->form->text('github_id', $values, $errors) ?>

View File

@@ -2,21 +2,7 @@
<h2><?= t('External authentications') ?></h2> <h2><?= t('External authentications') ?></h2>
</div> </div>
<?php if (GOOGLE_AUTH): ?> <?php $html = $this->hook->render('template:user:external', array('user' => $user)) ?>
<h3><i class="fa fa-google"></i> <?= t('Google Account') ?></h3>
<p class="listing">
<?php if ($this->user->isCurrentUser($user['id'])): ?>
<?php if (empty($user['google_id'])): ?>
<?= $this->url->link(t('Link my Google Account'), 'oauth', 'google', array(), true) ?>
<?php else: ?>
<?= $this->url->link(t('Unlink my Google Account'), 'oauth', 'unlink', array('backend' => 'Google'), true) ?>
<?php endif ?>
<?php else: ?>
<?= empty($user['google_id']) ? t('No account linked.') : t('Account linked.') ?>
<?php endif ?>
</p>
<?php endif ?>
<?php if (GITHUB_AUTH): ?> <?php if (GITHUB_AUTH): ?>
<h3><i class="fa fa-github"></i> <?= t('Github Account') ?></h3> <h3><i class="fa fa-github"></i> <?= t('Github Account') ?></h3>
@@ -50,6 +36,8 @@
</p> </p>
<?php endif ?> <?php endif ?>
<?php if (! GOOGLE_AUTH && ! GITHUB_AUTH && ! GITLAB_AUTH): ?> <?php if (empty($html) && ! GITHUB_AUTH && ! GITLAB_AUTH): ?>
<p class="alert"><?= t('No external authentication enabled.') ?></p> <p class="alert"><?= t('No external authentication enabled.') ?></p>
<?php else: ?>
<?= $html ?>
<?php endif ?> <?php endif ?>

View File

@@ -1,23 +0,0 @@
<?php
namespace Kanboard\User;
/**
* Google OAuth User Provider
*
* @package user
* @author Frederic Guillot
*/
class GoogleUserProvider extends OAuthUserProvider
{
/**
* Get external id column name
*
* @access public
* @return string
*/
public function getExternalIdColumn()
{
return 'google_id';
}
}

View File

@@ -51,11 +51,6 @@ defined('LDAP_GROUP_BASE_DN') or define('LDAP_GROUP_BASE_DN', '');
defined('LDAP_GROUP_FILTER') or define('LDAP_GROUP_FILTER', ''); defined('LDAP_GROUP_FILTER') or define('LDAP_GROUP_FILTER', '');
defined('LDAP_GROUP_ATTRIBUTE_NAME') or define('LDAP_GROUP_ATTRIBUTE_NAME', 'cn'); defined('LDAP_GROUP_ATTRIBUTE_NAME') or define('LDAP_GROUP_ATTRIBUTE_NAME', 'cn');
// Google authentication
defined('GOOGLE_AUTH') or define('GOOGLE_AUTH', false);
defined('GOOGLE_CLIENT_ID') or define('GOOGLE_CLIENT_ID', '');
defined('GOOGLE_CLIENT_SECRET') or define('GOOGLE_CLIENT_SECRET', '');
// Github authentication // Github authentication
defined('GITHUB_AUTH') or define('GITHUB_AUTH', false); defined('GITHUB_AUTH') or define('GITHUB_AUTH', false);
defined('GITHUB_CLIENT_ID') or define('GITHUB_CLIENT_ID', ''); defined('GITHUB_CLIENT_ID') or define('GITHUB_CLIENT_ID', '');

View File

@@ -1,64 +0,0 @@
Google Authentication
=====================
Requirements
------------
OAuth Google API credentials (available in the Google Developer Console)
How does this work?
-------------------
- The Google authentication in Kanboard use the OAuth 2.0 protocol
- Any user account in Kanboard can be linked to a Google Account
- When a Kanboard user account is linked to Google, you can login with one click
Procedure to link a Google Account
----------------------------------
1. Go to your user profile
2. Click on **External accounts**
3. Click on the link **Link my Google Account**
4. You are redirected to the **Google Consent screen**
5. Authorize Kanboard by clicking on the button **Accept**
6. Your account is now linked
Now, on the login page you can be authenticated in one click with the link **Login with my Google Account**.
Your name and email are automatically updated from your Google Account.
Installation instructions
-------------------------
### Setting up OAuth 2.0 in Google Developer Console
- Follow the [official Google documentation](https://developers.google.com/accounts/docs/OAuth2Login#appsetup) to create a new application
- In Kanboard, you can get the **redirect url** in **Settings > Integrations > Google Authentication**
### Setting up Kanboad
Create a custom `config.php` file or copy the `config.default.php` file:
```php
<?php
// Enable/disable Google authentication
define('GOOGLE_AUTH', true); // Set this value to true
// Google client id (Get this value from the Google developer console)
define('GOOGLE_CLIENT_ID', 'YOUR_CLIENT_ID');
// Google client secret key (Get this value from the Google developer console)
define('GOOGLE_CLIENT_SECRET', 'YOUR_CLIENT_SECRET');
```
Notes
-----
Kanboard use these information from your Google profile:
- Full name
- Email address
- Google unique id
The Google unique id is used to link together the local user account and the Google account.

View File

@@ -118,7 +118,6 @@ Technical details
- [LDAP authentication](ldap-authentication.markdown) - [LDAP authentication](ldap-authentication.markdown)
- [LDAP group synchronization](ldap-group-sync.markdown) - [LDAP group synchronization](ldap-group-sync.markdown)
- [LDAP parameters](ldap-parameters.markdown) - [LDAP parameters](ldap-parameters.markdown)
- [Google authentication](google-authentication.markdown)
- [Github authentication](github-authentication.markdown) - [Github authentication](github-authentication.markdown)
- [Gitlab authentication](gitlab-authentication.markdown) - [Gitlab authentication](gitlab-authentication.markdown)
- [Reverse proxy authentication](reverse-proxy-authentication.markdown) - [Reverse proxy authentication](reverse-proxy-authentication.markdown)

View File

@@ -1,89 +0,0 @@
<?php
require_once __DIR__.'/../Base.php';
use Kanboard\Auth\GoogleAuth;
use Kanboard\Model\User;
class GoogleAuthTest extends Base
{
public function testGetName()
{
$provider = new GoogleAuth($this->container);
$this->assertEquals('Google', $provider->getName());
}
public function testAuthenticationSuccessful()
{
$profile = array(
'id' => 1234,
'email' => 'test@localhost',
'name' => 'Test',
);
$provider = $this
->getMockBuilder('\Kanboard\Auth\GoogleAuth')
->setConstructorArgs(array($this->container))
->setMethods(array(
'getProfile',
))
->getMock();
$provider->expects($this->once())
->method('getProfile')
->will($this->returnValue($profile));
$this->assertInstanceOf('Kanboard\Auth\GoogleAuth', $provider->setCode('1234'));
$this->assertTrue($provider->authenticate());
$user = $provider->getUser();
$this->assertInstanceOf('Kanboard\User\GoogleUserProvider', $user);
$this->assertEquals('Test', $user->getName());
$this->assertEquals('', $user->getInternalId());
$this->assertEquals(1234, $user->getExternalId());
$this->assertEquals('', $user->getRole());
$this->assertEquals('', $user->getUsername());
$this->assertEquals('test@localhost', $user->getEmail());
$this->assertEquals('google_id', $user->getExternalIdColumn());
$this->assertEquals(array(), $user->getExternalGroupIds());
$this->assertEquals(array(), $user->getExtraAttributes());
$this->assertFalse($user->isUserCreationAllowed());
}
public function testAuthenticationFailed()
{
$provider = $this
->getMockBuilder('\Kanboard\Auth\GoogleAuth')
->setConstructorArgs(array($this->container))
->setMethods(array(
'getProfile',
))
->getMock();
$provider->expects($this->once())
->method('getProfile')
->will($this->returnValue(array()));
$this->assertFalse($provider->authenticate());
$this->assertEquals(null, $provider->getUser());
}
public function testGetService()
{
$provider = new GoogleAuth($this->container);
$this->assertInstanceOf('Kanboard\Core\Http\OAuth2', $provider->getService());
}
public function testUnlink()
{
$userModel = new User($this->container);
$provider = new GoogleAuth($this->container);
$this->assertEquals(2, $userModel->create(array('username' => 'test', 'google_id' => '1234')));
$this->assertNotEmpty($userModel->getByExternalId('google_id', 1234));
$this->assertTrue($provider->unlink(2));
$this->assertEmpty($userModel->getByExternalId('google_id', 1234));
}
}