Merge remote-tracking branch 'origin/master'

# Conflicts:
#	app/Locale/ja_JP/translations.php
This commit is contained in:
torinky
2017-10-15 18:12:13 +09:00
41 changed files with 583 additions and 406 deletions

View File

@@ -1,3 +1,10 @@
# Pass HTTP Authorization header via environment variable to PHP backend
# to make HTTP Basic Authentication work for Apache/FastCGI/php-fpm
# setups (required to authenticate over the API)
<IfModule mod_setenvif.c>
SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0
</IfModule>
<IfModule mod_rewrite.c> <IfModule mod_rewrite.c>
Options -MultiViews Options -MultiViews

View File

@@ -1,10 +1,14 @@
Version 1.0.47 (unreleased) Version 1.0.47 (October 3, 2017)
--------------------------- --------------------------------
New features: New features:
* Vietnamese translation * Vietnamese translation
Improvements:
* Updated translations
Security Issues: Security Issues:
* Avoid people to alter other project resources by changing form data * Avoid people to alter other project resources by changing form data

View File

@@ -55,4 +55,14 @@ class ExternalTaskManager
return array(); return array();
} }
/**
* Get all providers
*
* @return ExternalTaskProviderInterface[]
*/
public function getProviders()
{
return $this->providers;
}
} }

View File

@@ -18,6 +18,22 @@ interface ExternalTaskProviderInterface
*/ */
public function getName(); public function getName();
/**
* Get provider icon
*
* @access public
* @return string
*/
public function getIcon();
/**
* Get label for adding a new task
*
* @access public
* @return string
*/
public function getMenuAddLabel();
/** /**
* Retrieve task from external system or cache * Retrieve task from external system or cache
* *

View File

@@ -220,6 +220,21 @@ class TaskHelper extends Base
return $html; return $html;
} }
public function renderReference(array $task)
{
if (! empty($task['reference'])) {
$reference = $this->helper->text->e($task['reference']);
if (filter_var($task['reference'], FILTER_VALIDATE_URL) !== false) {
return sprintf('<a href="%s" target=_blank">%s</a>', $reference, $reference);
}
return $reference;
}
return '';
}
public function getProgress($task) public function getProgress($task)
{ {
if (! isset($this->columns[$task['project_id']])) { if (! isset($this->columns[$task['project_id']])) {
@@ -256,4 +271,58 @@ class TaskHelper extends Base
$html .= '</ul></div></small>'; $html .= '</ul></div></small>';
return $html; return $html;
} }
public function getNewBoardTaskButton(array $swimlane, array $column)
{
$html = '<div class="board-add-icon">';
$providers = $this->externalTaskManager->getProviders();
if (empty($providers)) {
$html .= $this->helper->modal->largeIcon(
'plus',
t('Add a new task'),
'TaskCreationController',
'show', array(
'project_id' => $column['project_id'],
'column_id' => $column['id'],
'swimlane_id' => $swimlane['id'],
)
);
} else {
$html .= '<div class="dropdown">';
$html .= '<a href="#" class="dropdown-menu"><i class="fa fa-plus" aria-hidden="true"></i></a><ul>';
$link = $this->helper->modal->large(
'plus',
t('Add a new Kanboard task'),
'TaskCreationController',
'show', array(
'project_id' => $column['project_id'],
'column_id' => $column['id'],
'swimlane_id' => $swimlane['id'],
)
);
$html .= '<li>'.$link.'</li>';
foreach ($providers as $provider) {
$link = $this->helper->url->link(
$provider->getMenuAddLabel(),
'ExternalTaskCreationController',
'step1',
array('project_id' => $column['project_id'], 'swimlane_id' => $swimlane['id'], 'column_id' => $column['id'], 'provider_name' => $provider->getName()),
false,
'js-modal-large'
);
$html .= '<li>'.$provider->getIcon().' '.$link.'</li>';
}
$html .= '</ul></div>';
}
$html .= '</div>';
return $html;
}
} }

View File

@@ -1340,4 +1340,5 @@ return array(
// 'Write one subject by line.' => '', // 'Write one subject by line.' => '',
// 'Create another link' => '', // 'Create another link' => '',
// 'BRL - Brazilian Real' => '', // 'BRL - Brazilian Real' => '',
// 'Add a new Kanboard task' => '',
); );

View File

@@ -1340,4 +1340,5 @@ return array(
// 'Write one subject by line.' => '', // 'Write one subject by line.' => '',
// 'Create another link' => '', // 'Create another link' => '',
// 'BRL - Brazilian Real' => '', // 'BRL - Brazilian Real' => '',
// 'Add a new Kanboard task' => '',
); );

View File

@@ -1340,4 +1340,5 @@ return array(
// 'Write one subject by line.' => '', // 'Write one subject by line.' => '',
// 'Create another link' => '', // 'Create another link' => '',
// 'BRL - Brazilian Real' => '', // 'BRL - Brazilian Real' => '',
// 'Add a new Kanboard task' => '',
); );

View File

@@ -1340,4 +1340,5 @@ return array(
// 'Write one subject by line.' => '', // 'Write one subject by line.' => '',
// 'Create another link' => '', // 'Create another link' => '',
// 'BRL - Brazilian Real' => '', // 'BRL - Brazilian Real' => '',
// 'Add a new Kanboard task' => '',
); );

View File

@@ -1340,4 +1340,5 @@ return array(
'Write one subject by line.' => 'Schreibe ein Betreff pro Zeile.', 'Write one subject by line.' => 'Schreibe ein Betreff pro Zeile.',
// 'Create another link' => '', // 'Create another link' => '',
// 'BRL - Brazilian Real' => '', // 'BRL - Brazilian Real' => '',
// 'Add a new Kanboard task' => '',
); );

View File

@@ -1340,4 +1340,5 @@ return array(
// 'Write one subject by line.' => '', // 'Write one subject by line.' => '',
// 'Create another link' => '', // 'Create another link' => '',
// 'BRL - Brazilian Real' => '', // 'BRL - Brazilian Real' => '',
// 'Add a new Kanboard task' => '',
); );

View File

@@ -1340,4 +1340,5 @@ return array(
'Write one subject by line.' => 'Escriba un asunto por línea.', 'Write one subject by line.' => 'Escriba un asunto por línea.',
// 'Create another link' => '', // 'Create another link' => '',
// 'BRL - Brazilian Real' => '', // 'BRL - Brazilian Real' => '',
// 'Add a new Kanboard task' => '',
); );

View File

@@ -1340,4 +1340,5 @@ return array(
// 'Write one subject by line.' => '', // 'Write one subject by line.' => '',
// 'Create another link' => '', // 'Create another link' => '',
// 'BRL - Brazilian Real' => '', // 'BRL - Brazilian Real' => '',
// 'Add a new Kanboard task' => '',
); );

File diff suppressed because it is too large Load Diff

View File

@@ -1340,4 +1340,5 @@ return array(
// 'Write one subject by line.' => '', // 'Write one subject by line.' => '',
// 'Create another link' => '', // 'Create another link' => '',
// 'BRL - Brazilian Real' => '', // 'BRL - Brazilian Real' => '',
// 'Add a new Kanboard task' => '',
); );

View File

@@ -1340,4 +1340,5 @@ return array(
// 'Write one subject by line.' => '', // 'Write one subject by line.' => '',
// 'Create another link' => '', // 'Create another link' => '',
// 'BRL - Brazilian Real' => '', // 'BRL - Brazilian Real' => '',
// 'Add a new Kanboard task' => '',
); );

View File

@@ -1340,4 +1340,5 @@ return array(
// 'Write one subject by line.' => '', // 'Write one subject by line.' => '',
// 'Create another link' => '', // 'Create another link' => '',
// 'BRL - Brazilian Real' => '', // 'BRL - Brazilian Real' => '',
// 'Add a new Kanboard task' => '',
); );

View File

@@ -1340,4 +1340,5 @@ return array(
// 'Write one subject by line.' => '', // 'Write one subject by line.' => '',
// 'Create another link' => '', // 'Create another link' => '',
// 'BRL - Brazilian Real' => '', // 'BRL - Brazilian Real' => '',
// 'Add a new Kanboard task' => '',
); );

View File

@@ -1299,6 +1299,48 @@ return array(
'Assign automatically a color when due date is expired' => '期限が切れたら自動的に色を割当て', 'Assign automatically a color when due date is expired' => '期限が切れたら自動的に色を割当て',
'Total score in this column across all swimlanes' => 'このカラムのすべてのスイムレーンで合計得点', 'Total score in this column across all swimlanes' => 'このカラムのすべてのスイムレーンで合計得点',
// 'HRK - Kuna' => '', // 'HRK - Kuna' => '',
// 'ARS - Argentine Peso' => '',
// 'COP - Colombian Peso' => '',
// '%d groups' => '',
// '%d group' => '',
// 'Group ID' => '',
// 'External ID' => '',
// '%d users' => '',
// '%d user' => '',
// 'Hide subtasks' => '',
// 'Show subtasks' => '',
// 'Authentication Parameters' => '',
// 'API Access' => '',
// 'No users found.' => '',
// 'User ID' => '',
// 'Notifications are activated' => '',
// 'Notifications are disabled' => '',
// 'User disabled' => '',
// '%d notifications' => '',
// '%d notification' => '',
// 'There is no external integration installed.' => '',
// 'You are not allowed to update tasks assigned to someone else.' => '',
// 'You are not allowed to change the assignee.' => '',
// 'Task suppression is not permitted' => '',
// 'Changing assignee is not permitted' => '',
// 'Update only assigned tasks is permitted' => '',
// 'Only for tasks assigned to the current user' => '',
// 'My projects' => '',
// 'Your are not member of any project.' => '',
// 'My subtasks' => '',
// '%d subtasks' => '',
// '%d subtask' => '',
// 'Only moving task between those columns is permitted for tasks assigned to the current user' => '',
// '[DUPLICATE]' => '',
// 'DKK - Danish Krona' => '',
// 'Remove user from group' => '',
// 'Assign the task to its creator' => '',
// 'This task was sent by email to "%s" with subject "%s".' => '',
// 'Predefined Email Subjects' => '',
// 'Write one subject by line.' => '',
// 'Create another link' => '',
// 'BRL - Brazilian Real' => '',
// 'Add a new Kanboard task' => '',
'ARS - Argentine Peso' => 'ARS - アルゼンチンペソ', 'ARS - Argentine Peso' => 'ARS - アルゼンチンペソ',
'COP - Colombian Peso' => 'COP - コロンビアペソ', 'COP - Colombian Peso' => 'COP - コロンビアペソ',
'%d groups' => '%d個のグループ', '%d groups' => '%d個のグループ',

View File

@@ -1340,4 +1340,5 @@ return array(
// 'Write one subject by line.' => '', // 'Write one subject by line.' => '',
// 'Create another link' => '', // 'Create another link' => '',
// 'BRL - Brazilian Real' => '', // 'BRL - Brazilian Real' => '',
// 'Add a new Kanboard task' => '',
); );

View File

@@ -1340,4 +1340,5 @@ return array(
// 'Write one subject by line.' => '', // 'Write one subject by line.' => '',
// 'Create another link' => '', // 'Create another link' => '',
// 'BRL - Brazilian Real' => '', // 'BRL - Brazilian Real' => '',
// 'Add a new Kanboard task' => '',
); );

View File

@@ -1340,4 +1340,5 @@ return array(
// 'Write one subject by line.' => '', // 'Write one subject by line.' => '',
// 'Create another link' => '', // 'Create another link' => '',
// 'BRL - Brazilian Real' => '', // 'BRL - Brazilian Real' => '',
// 'Add a new Kanboard task' => '',
); );

View File

@@ -1340,4 +1340,5 @@ return array(
// 'Write one subject by line.' => '', // 'Write one subject by line.' => '',
// 'Create another link' => '', // 'Create another link' => '',
// 'BRL - Brazilian Real' => '', // 'BRL - Brazilian Real' => '',
// 'Add a new Kanboard task' => '',
); );

View File

@@ -1340,4 +1340,5 @@ return array(
// 'Write one subject by line.' => '', // 'Write one subject by line.' => '',
// 'Create another link' => '', // 'Create another link' => '',
// 'BRL - Brazilian Real' => '', // 'BRL - Brazilian Real' => '',
// 'Add a new Kanboard task' => '',
); );

View File

@@ -1340,4 +1340,5 @@ return array(
'Write one subject by line.' => 'Escreva um assunto por linha.', 'Write one subject by line.' => 'Escreva um assunto por linha.',
'Create another link' => 'Criar outro link', 'Create another link' => 'Criar outro link',
'BRL - Brazilian Real' => 'BRL - Real Brasileiro', 'BRL - Brazilian Real' => 'BRL - Real Brasileiro',
// 'Add a new Kanboard task' => '',
); );

View File

@@ -521,19 +521,19 @@ return array(
'Compact/wide view' => 'Alternar entre a vista compacta e ampliada', 'Compact/wide view' => 'Alternar entre a vista compacta e ampliada',
'Currency' => 'Moeda', 'Currency' => 'Moeda',
'Private project' => 'Projeto privado', 'Private project' => 'Projeto privado',
'AUD - Australian Dollar' => 'AUD - Dólar australiano', 'AUD - Australian Dollar' => 'AUD - Dólar Australiano',
'CAD - Canadian Dollar' => 'CAD - Dólar canadense', 'CAD - Canadian Dollar' => 'CAD - Dólar Canadense',
'CHF - Swiss Francs' => 'CHF - Francos Suíços', 'CHF - Swiss Francs' => 'CHF - Francos Suíços',
'Custom Stylesheet' => 'Folha de estilos personalizada', 'Custom Stylesheet' => 'Folha de estilos personalizada',
'download' => 'transferir', 'download' => 'transferir',
'EUR - Euro' => 'EUR - Euro', 'EUR - Euro' => 'EUR - Euro',
'GBP - British Pound' => 'GBP - Libra Esterlina', 'GBP - British Pound' => 'GBP - Libra Esterlina',
'INR - Indian Rupee' => 'INR - Rúpia indiana', 'INR - Indian Rupee' => 'INR - Rúpia Indiana',
'JPY - Japanese Yen' => 'JPY - Iene japonês', 'JPY - Japanese Yen' => 'JPY - Iene Japonês',
'NZD - New Zealand Dollar' => 'NZD - Dólar Neozelandês', 'NZD - New Zealand Dollar' => 'NZD - Dólar Neozelandês',
'RSD - Serbian dinar' => 'RSD - Dinar sérvio', 'RSD - Serbian dinar' => 'RSD - Dinar Sérvio',
// 'CNY - Chinese Yuan' => '', 'CNY - Chinese Yuan' => 'CNY - Yuan Chinês',
'USD - US Dollar' => 'USD - Dólar norte-americano', 'USD - US Dollar' => 'USD - Dólar Norte-americano',
'Destination column' => 'Coluna de destino', 'Destination column' => 'Coluna de destino',
'Move the task to another column when assigned to a user' => 'Mover a tarefa para uma outra coluna quando esta está atribuída a um utilizador', 'Move the task to another column when assigned to a user' => 'Mover a tarefa para uma outra coluna quando esta está atribuída a um utilizador',
'Move the task to another column when assignee is cleared' => 'Mover a tarefa para uma outra coluna quando esta não está atribuída', 'Move the task to another column when assignee is cleared' => 'Mover a tarefa para uma outra coluna quando esta não está atribuída',
@@ -570,7 +570,7 @@ return array(
'Add a screenshot' => 'Adicionar uma Screenshot', 'Add a screenshot' => 'Adicionar uma Screenshot',
'Take a screenshot and press CTRL+V or ⌘+V to paste here.' => 'Tire um screenshot e pressione CTRL + V ou ⌘ + V para colar aqui.', 'Take a screenshot and press CTRL+V or ⌘+V to paste here.' => 'Tire um screenshot e pressione CTRL + V ou ⌘ + V para colar aqui.',
'Screenshot uploaded successfully.' => 'Screenshot enviada com sucesso.', 'Screenshot uploaded successfully.' => 'Screenshot enviada com sucesso.',
'SEK - Swedish Krona' => 'SEK - Coroa sueca', 'SEK - Swedish Krona' => 'SEK - Coroa Sueca',
'Identifier' => 'Identificador', 'Identifier' => 'Identificador',
'Disable two factor authentication' => 'Desactivar autenticação com dois factores', 'Disable two factor authentication' => 'Desactivar autenticação com dois factores',
'Do you really want to disable the two factor authentication for this user: "%s"?' => 'Tem a certeza que quer desactivar a autenticação com dois factores para esse utilizador: "%s"?', 'Do you really want to disable the two factor authentication for this user: "%s"?' => 'Tem a certeza que quer desactivar a autenticação com dois factores para esse utilizador: "%s"?',
@@ -1338,6 +1338,7 @@ return array(
'This task was sent by email to "%s" with subject "%s".' => 'Esta tarefa foi enviada por email para "%s" com o assunto "%s".', 'This task was sent by email to "%s" with subject "%s".' => 'Esta tarefa foi enviada por email para "%s" com o assunto "%s".',
'Predefined Email Subjects' => 'Assuntos de email predefinidos', 'Predefined Email Subjects' => 'Assuntos de email predefinidos',
'Write one subject by line.' => 'Escreva um assunto por linha.', 'Write one subject by line.' => 'Escreva um assunto por linha.',
// 'Create another link' => '', 'Create another link' => 'Criar outro link',
// 'BRL - Brazilian Real' => '', 'BRL - Brazilian Real' => 'BRL - Real Brasileiro',
// 'Add a new Kanboard task' => '',
); );

View File

@@ -1340,4 +1340,5 @@ return array(
'Write one subject by line.' => 'Записываются по одной теме на строку.', 'Write one subject by line.' => 'Записываются по одной теме на строку.',
// 'Create another link' => '', // 'Create another link' => '',
// 'BRL - Brazilian Real' => '', // 'BRL - Brazilian Real' => '',
// 'Add a new Kanboard task' => '',
); );

View File

@@ -1340,4 +1340,5 @@ return array(
// 'Write one subject by line.' => '', // 'Write one subject by line.' => '',
// 'Create another link' => '', // 'Create another link' => '',
// 'BRL - Brazilian Real' => '', // 'BRL - Brazilian Real' => '',
// 'Add a new Kanboard task' => '',
); );

View File

@@ -1340,4 +1340,5 @@ return array(
// 'Write one subject by line.' => '', // 'Write one subject by line.' => '',
// 'Create another link' => '', // 'Create another link' => '',
// 'BRL - Brazilian Real' => '', // 'BRL - Brazilian Real' => '',
// 'Add a new Kanboard task' => '',
); );

View File

@@ -1340,4 +1340,5 @@ return array(
// 'Write one subject by line.' => '', // 'Write one subject by line.' => '',
// 'Create another link' => '', // 'Create another link' => '',
// 'BRL - Brazilian Real' => '', // 'BRL - Brazilian Real' => '',
// 'Add a new Kanboard task' => '',
); );

View File

@@ -1,8 +1,8 @@
<?php <?php
return array( return array(
// 'number.decimals_separator' => '', 'number.decimals_separator' => '.',
// 'number.thousands_separator' => '', 'number.thousands_separator' => ',',
'None' => 'Hiçbiri', 'None' => 'Hiçbiri',
'Edit' => 'Düzenle', 'Edit' => 'Düzenle',
'Remove' => 'Sil', 'Remove' => 'Sil',
@@ -71,8 +71,8 @@ return array(
'Settings' => 'Ayarlar', 'Settings' => 'Ayarlar',
'Application settings' => 'Uygulama ayarları', 'Application settings' => 'Uygulama ayarları',
'Language' => 'Dil', 'Language' => 'Dil',
// 'Webhook token:' => '', 'Webhook token:' => 'Web kancası anahtarı:',
'API token:' => 'API belirteci:', 'API token:' => 'API anahtarı:',
'Database size:' => 'Veritabanı boyutu :', 'Database size:' => 'Veritabanı boyutu :',
'Download the database' => 'Veritabanını indir', 'Download the database' => 'Veritabanını indir',
'Optimize the database' => 'Veritabanını optimize et', 'Optimize the database' => 'Veritabanını optimize et',
@@ -373,7 +373,7 @@ return array(
'Database driver:' => 'Veritabanı sürücüsü:', 'Database driver:' => 'Veritabanı sürücüsü:',
'Board settings' => 'Pano ayarları', 'Board settings' => 'Pano ayarları',
'Webhook settings' => 'Webhook ayarları', 'Webhook settings' => 'Webhook ayarları',
'Reset token' => 'Belirteci sıfırla', 'Reset token' => 'Anahtarı sıfırla',
'API endpoint:' => 'API bitiş noktası:', 'API endpoint:' => 'API bitiş noktası:',
'Refresh interval for private board' => 'Özel panolar için yenileme sıklığı', 'Refresh interval for private board' => 'Özel panolar için yenileme sıklığı',
'Refresh interval for public board' => 'Dışa açık panolar için yenileme sıklığı', 'Refresh interval for public board' => 'Dışa açık panolar için yenileme sıklığı',
@@ -382,7 +382,7 @@ return array(
'Frequency in second (60 seconds by default)' => 'Saniye olarak frekans (varsayılan 60 saniye)', 'Frequency in second (60 seconds by default)' => 'Saniye olarak frekans (varsayılan 60 saniye)',
'Frequency in second (0 to disable this feature, 10 seconds by default)' => 'Saniye olarak frekans (Bu özelliği iptal etmek için 0, varsayılan değer 10 saniye)', 'Frequency in second (0 to disable this feature, 10 seconds by default)' => 'Saniye olarak frekans (Bu özelliği iptal etmek için 0, varsayılan değer 10 saniye)',
'Application URL' => 'Uygulama URL', 'Application URL' => 'Uygulama URL',
'Token regenerated.' => 'Beliteç yeniden oluşturuldu.', 'Token regenerated.' => 'Anahtar yeniden oluşturuldu.',
'Date format' => 'Tarih formatı', 'Date format' => 'Tarih formatı',
'ISO format is always accepted, example: "%s" and "%s"' => 'ISO formatı her zaman kabul edilir, örneğin: "%s" ve "%s"', 'ISO format is always accepted, example: "%s" and "%s"' => 'ISO formatı her zaman kabul edilir, örneğin: "%s" ve "%s"',
'New private project' => 'Yeni özel proje', 'New private project' => 'Yeni özel proje',
@@ -393,11 +393,11 @@ return array(
'There is nothing assigned to you.' => 'Size atanan hiçbir şey yok.', 'There is nothing assigned to you.' => 'Size atanan hiçbir şey yok.',
'My tasks' => 'Görevlerim', 'My tasks' => 'Görevlerim',
'Activity stream' => 'Güncel olay akışı', 'Activity stream' => 'Güncel olay akışı',
'Dashboard' => 'Anasayfa', 'Dashboard' => 'Pano',
'Confirmation' => 'Onay', 'Confirmation' => 'Onay',
'Allow everybody to access to this project' => 'Bu projeye herkesin erişimine izin ver', 'Allow everybody to access to this project' => 'Bu projeye herkesin erişimine izin ver',
'Everybody have access to this project.' => 'Bu projeye herkesin erişimi var.', 'Everybody have access to this project.' => 'Bu projeye herkesin erişimi var.',
'Webhooks' => 'Webhooks', 'Webhooks' => 'Web Kancaları',
'API' => 'API', 'API' => 'API',
'Create a comment from an external provider' => 'Dış sağlayıcı ile bir yorum oluştur', 'Create a comment from an external provider' => 'Dış sağlayıcı ile bir yorum oluştur',
'Project management' => 'Proje yönetimi', 'Project management' => 'Proje yönetimi',
@@ -526,14 +526,14 @@ return array(
'CHF - Swiss Francs' => 'CHF - İsviçre Frangı', 'CHF - Swiss Francs' => 'CHF - İsviçre Frangı',
'Custom Stylesheet' => 'Özel Sitil Css', 'Custom Stylesheet' => 'Özel Sitil Css',
'download' => 'indir', 'download' => 'indir',
// 'EUR - Euro' => '', 'EUR - Euro' => 'EUR - Euro',
'GBP - British Pound' => 'GBP - İngiliz Paund', 'GBP - British Pound' => 'GBP - İngiliz Paund',
'INR - Indian Rupee' => 'INR - Hint Rupesi', 'INR - Indian Rupee' => 'INR - Hint Rupesi',
'JPY - Japanese Yen' => 'JPY - Japon Yeni', 'JPY - Japanese Yen' => 'JPY - Japon Yeni',
'NZD - New Zealand Dollar' => 'NZD - Yeni Zelanda Doları', 'NZD - New Zealand Dollar' => 'NZD - Yeni Zelanda Doları',
// 'RSD - Serbian dinar' => '', 'RSD - Serbian dinar' => 'Sırp Dinarı',
// 'CNY - Chinese Yuan' => '', 'CNY - Chinese Yuan' => 'Çin Yuanı',
'USD - US Dollar' => 'USD$ Amerikan Doları', 'USD - US Dollar' => 'USD Amerikan Doları',
'Destination column' => 'Hedef Sütun', 'Destination column' => 'Hedef Sütun',
'Move the task to another column when assigned to a user' => 'Bir kullanıcıya atandığında görevi başka bir sütuna taşı', 'Move the task to another column when assigned to a user' => 'Bir kullanıcıya atandığında görevi başka bir sütuna taşı',
'Move the task to another column when assignee is cleared' => 'Atanmış kullanıcı kaldırıldığında görevi başka bir sütuna taşı', 'Move the task to another column when assignee is cleared' => 'Atanmış kullanıcı kaldırıldığında görevi başka bir sütuna taşı',
@@ -550,7 +550,7 @@ return array(
'Reference currency' => 'Referans kur', 'Reference currency' => 'Referans kur',
'The currency rate have been added successfully.' => 'Kur başarıyla eklendi', 'The currency rate have been added successfully.' => 'Kur başarıyla eklendi',
'Unable to add this currency rate.' => 'Bu kur eklenemedi', 'Unable to add this currency rate.' => 'Bu kur eklenemedi',
// 'Webhook URL' => '', 'Webhook URL' => 'Web kancası URL',
'%s removed the assignee of the task %s' => '%s, %s görevinin atanan bilgisini kaldırdı', '%s removed the assignee of the task %s' => '%s, %s görevinin atanan bilgisini kaldırdı',
'Information' => 'Bilgi', 'Information' => 'Bilgi',
'Check two factor authentication code' => 'Çift-Kademeli doğrulama kodunu kontrol et', 'Check two factor authentication code' => 'Çift-Kademeli doğrulama kodunu kontrol et',
@@ -910,9 +910,9 @@ return array(
'%d task(s) in the column "%s" and the swimlane "%s" will be closed.' => '"%s" sütunu ve "%s" kulvarındaki %d görev kapatılacak.', '%d task(s) in the column "%s" and the swimlane "%s" will be closed.' => '"%s" sütunu ve "%s" kulvarındaki %d görev kapatılacak.',
'Close all tasks of this column' => 'Bu sütundaki tüm görevleri kapat', 'Close all tasks of this column' => 'Bu sütundaki tüm görevleri kapat',
'No plugin has registered a project notification method. You can still configure individual notifications in your user profile.' => 'Proje bildirimleri için hiçbir plugin kaydedilmedi. Yine de profil sayfanızdan bildirim ayarları yapabilirsiniz.', 'No plugin has registered a project notification method. You can still configure individual notifications in your user profile.' => 'Proje bildirimleri için hiçbir plugin kaydedilmedi. Yine de profil sayfanızdan bildirim ayarları yapabilirsiniz.',
'My dashboard' => 'Dashboard um', 'My dashboard' => 'Panom',
'My profile' => 'Profilim', 'My profile' => 'Profilim',
'Project owner: ' => 'Proje sahibi', 'Project owner: ' => 'Proje sahibi: ',
'The project identifier is optional and must be alphanumeric, example: MYPROJECT.' => 'Proje kodu opsiyoneldir ve alfanümerik olmalıdır, örneğin: PROJE1', 'The project identifier is optional and must be alphanumeric, example: MYPROJECT.' => 'Proje kodu opsiyoneldir ve alfanümerik olmalıdır, örneğin: PROJE1',
'Project owner' => 'Proje sahibi', 'Project owner' => 'Proje sahibi',
'Private projects do not have users and groups management.' => '(Kişiye) Özel projelerde kullanıcı ve grup yönetimi yoktur.', 'Private projects do not have users and groups management.' => '(Kişiye) Özel projelerde kullanıcı ve grup yönetimi yoktur.',
@@ -1012,7 +1012,7 @@ return array(
'Change subtask position' => 'Alt görev sırasını değiştir', 'Change subtask position' => 'Alt görev sırasını değiştir',
'This value must be greater than %d' => 'Bu değer %d den büyük olmalı', 'This value must be greater than %d' => 'Bu değer %d den büyük olmalı',
'Another swimlane with the same name exists in the project' => 'Projede aynı isimli başka bir kulvar var', 'Another swimlane with the same name exists in the project' => 'Projede aynı isimli başka bir kulvar var',
'Example: http://example.kanboard.net/ (used to generate absolute URLs)' => 'Örneğin: http://ornek.dediteknoloji.com/ (sabit URLler oluşturmak için)', 'Example: http://example.kanboard.net/ (used to generate absolute URLs)' => 'Örneğin: http://ornek.kanboard.net/ (sabit URLler oluşturmak için)',
'Actions duplicated successfully.' => 'İşlemler başarıyla çoklandı.', 'Actions duplicated successfully.' => 'İşlemler başarıyla çoklandı.',
'Unable to duplicate actions.' => 'İşlemler çoklanamıyor.', 'Unable to duplicate actions.' => 'İşlemler çoklanamıyor.',
'Add a new action' => 'Yeni bir işlem ekle', 'Add a new action' => 'Yeni bir işlem ekle',
@@ -1034,7 +1034,7 @@ return array(
'Display list of keyboard shortcuts' => 'Kısayol tuşları listesini göster', 'Display list of keyboard shortcuts' => 'Kısayol tuşları listesini göster',
'Menu' => 'Menü', 'Menu' => 'Menü',
'Set start date' => 'Başlangıç tarihi belirle', 'Set start date' => 'Başlangıç tarihi belirle',
// 'Avatar' => '', 'Avatar' => 'Simge',
'Upload my avatar image' => 'Avatar resmimi yükle', 'Upload my avatar image' => 'Avatar resmimi yükle',
'Remove my image' => 'Resmimi kaldır', 'Remove my image' => 'Resmimi kaldır',
'The OAuth2 state parameter is invalid' => 'OAuth2 durum parametresi geçersiz', 'The OAuth2 state parameter is invalid' => 'OAuth2 durum parametresi geçersiz',
@@ -1055,29 +1055,29 @@ return array(
'Assign automatically a color based on a priority' => 'Önceliğe bağlı olarak bir renk belirle', 'Assign automatically a color based on a priority' => 'Önceliğe bağlı olarak bir renk belirle',
'Overdue tasks for the project(s) "%s"' => '%s proje(leri) için süresi geçen görevler', 'Overdue tasks for the project(s) "%s"' => '%s proje(leri) için süresi geçen görevler',
'Upload files' => 'Dosyaları yükle', 'Upload files' => 'Dosyaları yükle',
'Installed Plugins' => 'Yüklenmiş Pluginler', 'Installed Plugins' => 'Yüklenmiş Eklentiler',
'Plugin Directory' => 'Plugin Klasörü', 'Plugin Directory' => 'Eklenti Klasörü',
'Plugin installed successfully.' => 'Plugin başarıyla kuruldu.', 'Plugin installed successfully.' => 'Eklenti başarıyla kuruldu.',
'Plugin updated successfully.' => 'Plugin başarıyla güncellendi.', 'Plugin updated successfully.' => 'Eklenti başarıyla güncellendi.',
'Plugin removed successfully.' => 'Plugin başarıyla kaldırıldı.', 'Plugin removed successfully.' => 'Eklenti başarıyla kaldırıldı.',
'Subtask converted to task successfully.' => 'Alt görev başarıyla göreve dönüştürüldü.', 'Subtask converted to task successfully.' => 'Alt görev başarıyla göreve dönüştürüldü.',
'Unable to convert the subtask.' => 'Alt görev dönüştürülemedi', 'Unable to convert the subtask.' => 'Alt görev dönüştürülemedi',
'Unable to extract plugin archive.' => 'Plugin (sıkıştırılmış) dosyasıılamadı.', 'Unable to extract plugin archive.' => 'Plugin (sıkıştırılmış) dosyasıılamadı.',
'Plugin not found.' => 'Plugin bulunamadı', 'Plugin not found.' => 'Eklenti bulunamadı',
'You don\'t have the permission to remove this plugin.' => 'Bu plugin\'i kaldırmak için yetkiniz yok.', 'You don\'t have the permission to remove this plugin.' => 'Bu plugin\'i kaldırmak için yetkiniz yok.',
'Unable to download plugin archive.' => 'Plugin dosyası indirilemedi.', 'Unable to download plugin archive.' => 'Eklenti dosyası indirilemedi.',
'Unable to write temporary file for plugin.' => 'Plugin için geçici dosya oluşturulamadı.', 'Unable to write temporary file for plugin.' => 'Eklenti için geçici dosya oluşturulamadı.',
'Unable to open plugin archive.' => 'Plugin dosyasıılamadı.', 'Unable to open plugin archive.' => 'Eklenti dosyasıılamadı.',
'There is no file in the plugin archive.' => 'Plugin (sıkıştırılmış) dosyasında, dosya bulunmuyor.', 'There is no file in the plugin archive.' => 'Eklenti (sıkıştırılmış) dosyasında, dosya bulunmuyor.',
'Create tasks in bulk' => 'Toplu olarak görev oluştur', 'Create tasks in bulk' => 'Toplu olarak görev oluştur',
'Your Kanboard instance is not configured to install plugins from the user interface.' => 'Kanbord sisteminiz arayüzden plugin kurulacak şekilde ayarlanmamış.', 'Your Kanboard instance is not configured to install plugins from the user interface.' => 'Kanbord sisteminiz arayüzden eklenti kurulacak şekilde ayarlanmamış.',
'There is no plugin available.' => 'Uygun plugin yok.', 'There is no plugin available.' => 'Uygun eklenti yok.',
'Install' => 'Kur', 'Install' => 'Kur',
'Update' => 'Güncelle', 'Update' => 'Güncelle',
'Up to date' => 'Güncel', 'Up to date' => 'Güncel',
'Not available' => 'Uygun değil', 'Not available' => 'Uygun değil',
'Remove plugin' => 'Plugini kaldır', 'Remove plugin' => 'Eklentiyi kaldır',
'Do you really want to remove this plugin: "%s"?' => '"%s" plugin i gerçekten kaldırmak istiyor musunuz?', 'Do you really want to remove this plugin: "%s"?' => '"%s" eklentiyi gerçekten kaldırmak istiyor musunuz?',
'Uninstall' => 'Kaldır', 'Uninstall' => 'Kaldır',
'Listing' => 'Listeliyor', 'Listing' => 'Listeliyor',
'Metadata' => 'Meta veri', 'Metadata' => 'Meta veri',
@@ -1092,7 +1092,7 @@ return array(
'Email settings' => 'E-posta ayarları', 'Email settings' => 'E-posta ayarları',
'Email sender address' => 'E-posta gönderen adresi', 'Email sender address' => 'E-posta gönderen adresi',
'Email transport' => 'E-posta taşıma', 'Email transport' => 'E-posta taşıma',
'Webhook token' => 'Webhook token', 'Webhook token' => 'Web kancası anahtarı',
'Project tags management' => 'Proje etiket yönetimi', 'Project tags management' => 'Proje etiket yönetimi',
'Tag created successfully.' => 'Etiket başarıyla oluturuldu.', 'Tag created successfully.' => 'Etiket başarıyla oluturuldu.',
'Unable to create this tag.' => 'Etiket oluşturulamıyor.', 'Unable to create this tag.' => 'Etiket oluşturulamıyor.',
@@ -1208,136 +1208,137 @@ return array(
'Write' => 'Yaz', 'Write' => 'Yaz',
'Write your text in Markdown' => 'Metninizi Markdown a yazın', 'Write your text in Markdown' => 'Metninizi Markdown a yazın',
'New External Task: %s' => 'Yeni Harici Görev: %s', 'New External Task: %s' => 'Yeni Harici Görev: %s',
'No personal API access token registered.' => 'Kişisel API erişim belirteç-token ınız kaydedilmedi.', 'No personal API access token registered.' => 'Kişisel API erişim anahtarınız kaydedilmedi.',
'Your personal API access token is "%s"' => 'Kişisel API erişim belirteç-token ınız"%s"', 'Your personal API access token is "%s"' => 'Kişisel API erişim anahtarınız "%s"',
'Remove your token' => 'Belirteç-token ınızı kaldır', 'Remove your token' => 'Anahtarı kaldır',
'Generate a new token' => 'Yeni bir belirteç-token oluştur', 'Generate a new token' => 'Yeni bir anahtar oluştur',
// 'Showing %d-%d of %d' => '', 'Showing %d-%d of %d' => 'Gösterilen %d-%d / %d',
// 'Outgoing Emails' => '', 'Outgoing Emails' => 'Gönderilen ePostalar',
'Add or change currency rate' => 'Kur Oranını ekle veya değiştir', 'Add or change currency rate' => 'Kur Oranını ekle veya değiştir',
// 'Reference currency: %s' => '', 'Reference currency: %s' => 'Referans parabirimi: %s',
// 'Add custom filters' => '', 'Add custom filters' => 'Özel filtre ekle',
// 'Export' => '', 'Export' => 'Dışa aktar',
// 'Add link label' => '', 'Add link label' => 'Bağlantı etiketi ekle',
// 'Incompatible Plugins' => '', 'Incompatible Plugins' => 'Uyumsuz Eklentiler',
// 'Compatibility' => '', 'Compatibility' => 'Uyumluluk',
// 'Permissions and ownership' => '', 'Permissions and ownership' => 'İzinler ve sahiplik',
// 'Priorities' => '', 'Priorities' => 'Öncelikler',
// 'Close this window' => '', 'Close this window' => 'Bu pencereyi kapat',
// 'Unable to upload this file.' => '', 'Unable to upload this file.' => 'Bu dosya yüklenemiyor',
// 'Import tasks' => '', 'Import tasks' => 'Görevleri içeri aktar',
// 'Choose a project' => '', 'Choose a project' => 'Proje seçin',
// 'Profile' => '', 'Profile' => 'Profil',
// 'Application role' => '', 'Application role' => 'Uygulama rolü',
// '%d invitations were sent.' => '', '%d invitations were sent.' => '%d Davetiye gönderildi',
// '%d invitation was sent.' => '', '%d invitation was sent.' => '%d Davetiye gönderildi',
// 'Unable to create this user.' => '', 'Unable to create this user.' => 'Bu kullanıcı oluşturulamadı.',
// 'Kanboard Invitation' => '', 'Kanboard Invitation' => 'Kanboard Daveti',
// 'Visible on dashboard' => '', 'Visible on dashboard' => 'Panoda görünür',
// 'Created at:' => '', 'Created at:' => 'Oluşturulma: ',
// 'Updated at:' => '', 'Updated at:' => 'Güncellenme: ',
// 'There is no custom filter.' => '', 'There is no custom filter.' => 'Uygulanmış özel filtre yok',
// 'New User' => '', 'New User' => 'Yeni Kullanıcı',
// 'Authentication' => '', 'Authentication' => 'Yetkilendirme',
// 'If checked, this user will use a third-party system for authentication.' => '', 'If checked, this user will use a third-party system for authentication.' => 'İşaretlenirse, bu kullanıcı kimlik doğrulama için üçüncü parti bir sistem kullanacaktır.',
// 'The password is necessary only for local users.' => '', 'The password is necessary only for local users.' => 'Parola yalnızca yerel kullanıcılar için gereklidir',
// 'You have been invited to register on Kanboard.' => '', 'You have been invited to register on Kanboard.' => 'Kanboarda kayıt yaptırmak için davet edildiniz.',
// 'Click here to join your team' => '', 'Click here to join your team' => 'Takımınıza katılmak için buraya tıklayın',
// 'Invite people' => '', 'Invite people' => 'İnsanları davet et',
// 'Emails' => '', 'Emails' => 'ePostalar',
// 'Enter one email address by line.' => '', 'Enter one email address by line.' => 'Her satıra bir adet email girin.',
// 'Add these people to this project' => '', 'Add these people to this project' => 'Kişileri bu projeye ekle',
// 'Add this person to this project' => '', 'Add this person to this project' => 'Kişiyi bu projeye ekle',
// 'Sign-up' => '', 'Sign-up' => 'Kayıt',
// 'Credentials' => '', 'Credentials' => 'Kimlik bilgileri',
// 'New user' => '', 'New user' => 'Yeni kullanıcı',
// 'This username is already taken' => '', 'This username is already taken' => 'Bu kullanıcı adı zaten alınmış',
// 'A link to reset your password has been sent by email.' => '', 'A link to reset your password has been sent by email.' => 'Parola sıfırlama linkini içeren mesaj ePosta adresinize gönderildi.',
// 'Your profile must have a valid email address.' => '', 'Your profile must have a valid email address.' => 'Profiliniz için geçerli bir ePosta adresi gerekiyor.',
// 'Unfortunately, we are unable to reset your password. Did you entered a valid username? Do you have an email address in your profile?' => '', 'Unfortunately, we are unable to reset your password. Did you entered a valid username? Do you have an email address in your profile?' => 'Malesef parolanızı sıfırlayamıyoruz. Kullanıcı adınızı doğru girdiniz mi? Profilinize kayıtlı ePosta adresiniz var mı?',
// 'TRL - Turkish Lira' => '', 'TRL - Turkish Lira' => 'TRL - Türk Lirası',
// 'The project email is optional and could be used by several plugins.' => '', 'The project email is optional and could be used by several plugins.' => 'Proje ePostası isteğe bağlıdır ve eklentiler tarafından kullanılabilir',
// 'The project email must be unique across all projects' => '', 'The project email must be unique across all projects' => 'Proje e-postası tüm projelerde benzersiz olmalıdır.',
// 'The email configuration has been disabled by the administrator.' => '', 'The email configuration has been disabled by the administrator.' => 'ePosta ayarları yönetici tarafından devre dışı bırakılmış.',
// 'Close this project' => '', 'Close this project' => 'Bu projeyi kapat',
// 'Open this project' => '', 'Open this project' => 'Bu projeyi aç',
// 'Close a project' => '', 'Close a project' => 'Proje kapat',
// 'Do you really want to close this project: "%s"?' => '', 'Do you really want to close this project: "%s"?' => 'Bu projeyi kapatmak istediğinize emin misiniz? : "%s"',
// 'Reopen a project' => '', 'Reopen a project' => 'Projeyi tekrar aç',
// 'Do you really want to reopen this project: "%s"?' => '', 'Do you really want to reopen this project: "%s"?' => 'Bu projeyi tekrar açmak istediğinizi onaylıyor musunuz? : "%s"',
// 'This project is open' => '', 'This project is open' => 'Bu proje açıktır',
// 'This project is closed' => '', 'This project is closed' => 'Bu proje kapatılmış',
// 'Unable to upload files, check the permissions of your data folder.' => '', 'Unable to upload files, check the permissions of your data folder.' => 'Dosya yüklenemedi. Lütfen yükleme dizine yazma izninizi kontrol ediniz.',
// 'Another category with the same name exists in this project' => '', 'Another category with the same name exists in this project' => 'Bu projede aynı ada sahip başka bir kategori var',
// 'Comment sent by email successfully.' => '', 'Comment sent by email successfully.' => 'Yorum ePosta ile başarıyla gönderildi.',
// 'Sent by email to [%s](mailto:%s) (%s)' => '', 'Sent by email to [%s](mailto:%s) (%s)' => 'ePostayı gönder [%s](mailto:%s) (%s)',
// 'Unable to read uploaded file.' => '', 'Unable to read uploaded file.' => 'Yüklenen dosya okunamadı.',
// 'Database uploaded successfully.' => '', 'Database uploaded successfully.' => 'Veritabanı başarıyla yüklendi.',
// 'Task sent by email successfully.' => '', 'Task sent by email successfully.' => 'Görev ePosta ile başarıyla gönderildi.',
// 'There is no category in this project.' => '', 'There is no category in this project.' => 'Bu projenin kategorisi yok',
// 'Send by email' => '', 'Send by email' => 'ePosta ile gönder',
// 'Create and send a comment by email' => '', 'Create and send a comment by email' => 'Yorum oluştur ve ePosta ile gönder',
// 'Subject' => '', 'Subject' => 'Konu',
// 'Upload the database' => '', 'Upload the database' => 'Veritabanına yükle',
// 'You could upload the previously downloaded Sqlite database (Gzip format).' => '', 'You could upload the previously downloaded Sqlite database (Gzip format).' => 'Daha önce indirdiğiniz Sqlite Veritabanı dosyasını yükleyebilirsiniz (Gzip formatında)',
// 'Database file' => '', 'Database file' => 'Veritabanı dosyası',
// 'Upload' => '', 'Upload' => 'Yükle',
// 'Your project must have at least one active swimlane.' => '', 'Your project must have at least one active swimlane.' => 'Projenizin en az bir aktif kulvara sahip olması gerekir',
// 'Project: %s' => '', 'Project: %s' => 'Proje: %s',
// 'Automatic action not found: "%s"' => '', 'Automatic action not found: "%s"' => 'Otomatik işlem bulunamadı: "%s"',
// '%d projects' => '', '%d projects' => '%d proje',
// '%d project' => '', '%d project' => '%d proje',
// 'There is no project.' => '', 'There is no project.' => 'Proje yok.',
// 'Sort' => '', 'Sort' => 'Sırala',
// 'Project ID' => '', 'Project ID' => 'Proje No',
// 'Project name' => '', 'Project name' => 'Proje Adı',
// 'Public' => '', 'Public' => 'Herkese açık',
// 'Private' => '', 'Private' => 'Gizli',
// '%d tasks' => '', '%d tasks' => '%d görev',
// '%d task' => '', '%d task' => '%d görev',
// 'Task ID' => '', 'Task ID' => 'Görev No',
// 'Assign automatically a color when due date is expired' => '', 'Assign automatically a color when due date is expired' => 'Son günü geçtiğinde otomatik olarak bir renk ata',
// 'Total score in this column across all swimlanes' => '', 'Total score in this column across all swimlanes' => 'Tüm kulvarlara göre bu kulvarın toplam puanı',
// 'HRK - Kuna' => '', 'HRK - Kuna' => 'HRK - Kuna',
// 'ARS - Argentine Peso' => '', 'ARS - Argentine Peso' => 'ARS - Arjantin Pezosu',
// 'COP - Colombian Peso' => '', 'COP - Colombian Peso' => 'COP - Kolombiya Pezosu',
// '%d groups' => '', '%d groups' => '%d grup',
// '%d group' => '', '%d group' => '%d grup',
// 'Group ID' => '', 'Group ID' => 'Grup No',
// 'External ID' => '', 'External ID' => 'Harici No',
// '%d users' => '', '%d users' => '%d kullanıcı',
// '%d user' => '', '%d user' => '%d kullanıcı',
// 'Hide subtasks' => '', 'Hide subtasks' => 'Alt görevleri gizler',
// 'Show subtasks' => '', 'Show subtasks' => 'Alt görevleri göster',
// 'Authentication Parameters' => '', 'Authentication Parameters' => 'Yetkilendirme Parametreleri',
// 'API Access' => '', 'API Access' => 'API Erişimi',
// 'No users found.' => '', 'No users found.' => 'Kullanıcı yok',
// 'User ID' => '', 'User ID' => 'Kullanıcı No',
// 'Notifications are activated' => '', 'Notifications are activated' => 'Bildirimler etkinleştirildi',
// 'Notifications are disabled' => '', 'Notifications are disabled' => 'Bildirimler devre dışı',
// 'User disabled' => '', 'User disabled' => 'Kullanıcı devre dışı',
// '%d notifications' => '', '%d notifications' => '%d bildirim',
// '%d notification' => '', '%d notification' => '%d bildirim',
// 'There is no external integration installed.' => '', 'There is no external integration installed.' => 'Yüklenmiş harici entegrasyon yok.',
// 'You are not allowed to update tasks assigned to someone else.' => '', 'You are not allowed to update tasks assigned to someone else.' => 'Başkasına atanmış görevi güncelleme izniniz yok.',
// 'You are not allowed to change the assignee.' => '', 'You are not allowed to change the assignee.' => 'Atanmış kişiyi değiştirme yetkiniz yok.',
// 'Task suppression is not permitted' => '', 'Task suppression is not permitted' => 'Görev silmeye izniniz yok',
// 'Changing assignee is not permitted' => '', 'Changing assignee is not permitted' => 'Atanmışı değiştirme izniniz yok',
// 'Update only assigned tasks is permitted' => '', 'Update only assigned tasks is permitted' => 'Yalnızca atandığınız görevleri güncelleyebilirsiniz',
// 'Only for tasks assigned to the current user' => '', 'Only for tasks assigned to the current user' => 'Yalnızca geçerli kullanıcıya atanan görevler için',
// 'My projects' => '', 'My projects' => 'Projelerim',
// 'Your are not member of any project.' => '', 'Your are not member of any project.' => 'Herhangi bir projenin üyesi değilsiniz.',
// 'My subtasks' => '', 'My subtasks' => 'Altgörevlerim',
// '%d subtasks' => '', '%d subtasks' => '%d alt görev',
// '%d subtask' => '', '%d subtask' => '%d alt görev',
// 'Only moving task between those columns is permitted for tasks assigned to the current user' => '', 'Only moving task between those columns is permitted for tasks assigned to the current user' => 'Geçerli kullanıcıya atanan görevler için yalnızca o sütunlar arasında hareket eden bir göreve izin verilir.',
// '[DUPLICATE]' => '', '[DUPLICATE]' => '[ÇİFT]',
// 'DKK - Danish Krona' => '', 'DKK - Danish Krona' => 'DKK - Danimarka Kronu',
// 'Remove user from group' => '', 'Remove user from group' => 'Kullanıcıyı gruptan çıkar',
// 'Assign the task to its creator' => '', 'Assign the task to its creator' => 'Oluşturucusuna görev ata',
// 'This task was sent by email to "%s" with subject "%s".' => '', 'This task was sent by email to "%s" with subject "%s".' => 'Bu görev "%s" konusuyla "%s" ePosta adresine gönderildi.',
// 'Predefined Email Subjects' => '', 'Predefined Email Subjects' => 'Öntanımlı ePosta konuları',
// 'Write one subject by line.' => '', 'Write one subject by line.' => 'Her satıra bir konu yazınız',
// 'Create another link' => '', 'Create another link' => 'Başka bağlantı oluştur',
// 'BRL - Brazilian Real' => '', 'BRL - Brazilian Real' => 'BRL - Brezilya Reali',
// 'Add a new Kanboard task' => '',
); );

View File

@@ -1346,4 +1346,5 @@ return array(
'Write one subject by line.' => 'Viết một chủ đề theo dòng.', 'Write one subject by line.' => 'Viết một chủ đề theo dòng.',
'Create another link' => 'Tạo liên kết khác', 'Create another link' => 'Tạo liên kết khác',
'BRL - Brazilian Real' => 'BRL - Brazilian Real', 'BRL - Brazilian Real' => 'BRL - Brazilian Real',
// 'Add a new Kanboard task' => '',
); );

View File

@@ -1340,4 +1340,5 @@ return array(
// 'Write one subject by line.' => '', // 'Write one subject by line.' => '',
// 'Create another link' => '', // 'Create another link' => '',
// 'BRL - Brazilian Real' => '', // 'BRL - Brazilian Real' => '',
// 'Add a new Kanboard task' => '',
); );

View File

@@ -16,9 +16,7 @@
<!-- column in expanded mode --> <!-- column in expanded mode -->
<div class="board-column-expanded"> <div class="board-column-expanded">
<?php if (! $not_editable && $this->projectRole->canCreateTaskInColumn($column['project_id'], $column['id'])): ?> <?php if (! $not_editable && $this->projectRole->canCreateTaskInColumn($column['project_id'], $column['id'])): ?>
<div class="board-add-icon"> <?= $this->task->getNewBoardTaskButton($swimlane, $column) ?>
<?= $this->modal->largeIcon('plus', t('Add a new task'), 'TaskCreationController', 'show', array('project_id' => $column['project_id'], 'column_id' => $column['id'], 'swimlane_id' => $swimlane['id'])) ?>
</div>
<?php endif ?> <?php endif ?>
<?php if ($swimlane['nb_swimlanes'] > 1 && ! empty($column['column_nb_tasks'])): ?> <?php if ($swimlane['nb_swimlanes'] > 1 && ! empty($column['column_nb_tasks'])): ?>

View File

@@ -32,7 +32,7 @@
<div class="task-board-icons-row"> <div class="task-board-icons-row">
<?php if ($task['reference']): ?> <?php if ($task['reference']): ?>
<span class="task-board-reference" title="<?= t('Reference') ?>"> <span class="task-board-reference" title="<?= t('Reference') ?>">
<?= $this->text->e($task['reference']) ?> <?= $this->task->renderReference($task) ?>
</span> </span>
<?php endif ?> <?php endif ?>
</div> </div>

View File

@@ -19,6 +19,7 @@
<div class="task-board-saving-icon" style="display: none;"><i class="fa fa-spinner fa-pulse"></i></div> <div class="task-board-saving-icon" style="display: none;"><i class="fa fa-spinner fa-pulse"></i></div>
<?php if ($this->user->hasProjectAccess('TaskModificationController', 'edit', $task['project_id'])): ?> <?php if ($this->user->hasProjectAccess('TaskModificationController', 'edit', $task['project_id'])): ?>
<?= $this->render('task/dropdown', array('task' => $task)) ?> <?= $this->render('task/dropdown', array('task' => $task)) ?>
<?= $this->modal->large('edit', '', 'TaskModificationController', 'edit', array('task_id' => $task['id'], 'project_id' => $task['project_id'])) ?>
<?php else: ?> <?php else: ?>
<strong><?= '#'.$task['id'] ?></strong> <strong><?= '#'.$task['id'] ?></strong>
<?php endif ?> <?php endif ?>
@@ -36,6 +37,7 @@
<div class="task-board-header"> <div class="task-board-header">
<?php if ($this->user->hasProjectAccess('TaskModificationController', 'edit', $task['project_id'])): ?> <?php if ($this->user->hasProjectAccess('TaskModificationController', 'edit', $task['project_id'])): ?>
<?= $this->render('task/dropdown', array('task' => $task)) ?> <?= $this->render('task/dropdown', array('task' => $task)) ?>
<?= $this->modal->large('edit', '', 'TaskModificationController', 'edit', array('task_id' => $task['id'], 'project_id' => $task['project_id'])) ?>
<?php else: ?> <?php else: ?>
<strong><?= '#'.$task['id'] ?></strong> <strong><?= '#'.$task['id'] ?></strong>
<?php endif ?> <?php endif ?>

View File

@@ -22,7 +22,7 @@
</li> </li>
<?php if (! empty($task['reference'])): ?> <?php if (! empty($task['reference'])): ?>
<li> <li>
<strong><?= t('Reference:') ?></strong> <span><?= $this->text->e($task['reference']) ?></span> <strong><?= t('Reference:') ?></strong> <span><?= $this->task->renderReference($task) ?></span>
</li> </li>
<?php endif ?> <?php endif ?>
<?php if (! empty($task['score'])): ?> <?php if (! empty($task['score'])): ?>

View File

@@ -1,7 +1,7 @@
<div class="task-list-icons"> <div class="task-list-icons">
<?php if ($task['reference']): ?> <?php if ($task['reference']): ?>
<span class="task-board-reference" title="<?= t('Reference') ?>"> <span class="task-board-reference" title="<?= t('Reference') ?>">
<?= $this->text->e($task['reference']) ?> <?= $this->task->renderReference($task) ?>
</span> </span>
<?php endif ?> <?php endif ?>
<?php if ($task['is_milestone'] == 1): ?> <?php if ($task['is_milestone'] == 1): ?>

View File

@@ -39,7 +39,7 @@ Before to configure the recurring task, create a batch file (*.bat or *.cmd) tha
Here an example (`C:\kanboard.bat`): Here an example (`C:\kanboard.bat`):
``` ```
"C:\php\php.exe" -f "C:\inetpub\wwwroot\kanboard\kanboard" cronjob "C:\php\php.exe" -f "C:\inetpub\wwwroot\kanboard\cli" cronjob
``` ```
**You must change the path of the PHP executable and the path of the Kanboard's script according to your installation.** **You must change the path of the PHP executable and the path of the Kanboard's script according to your installation.**

View File

@@ -48,6 +48,8 @@ Do not use Sqlite on NFS mounts, only when you have a disk with fast I/O.
Kanboard is pre-configured to work with Apache (URL rewriting). Kanboard is pre-configured to work with Apache (URL rewriting).
Note: Kanboard is not compatible with Apache `mod_security`.
### PHP Versions ### PHP Versions
| PHP Version | | PHP Version |

View File

@@ -39,7 +39,7 @@ Yinelenen görevi yapılandırmadan önce, Kanboard CLI komut dosyasını çalı
İşte bir örnek (`C:\kanboard.bat`): İşte bir örnek (`C:\kanboard.bat`):
``` ```
"C:\php\php.exe" -f "C:\inetpub\wwwroot\kanboard\kanboard" cronjob "C:\php\php.exe" -f "C:\inetpub\wwwroot\kanboard\cli" cronjob
``` ```
**Kurulumunuza göre PHP yürütülebilir dosyanın yolunu ve Kanboard'un komut dosyasının yolunu değiştirmelisiniz.** **Kurulumunuza göre PHP yürütülebilir dosyanın yolunu ve Kanboard'un komut dosyasının yolunu değiştirmelisiniz.**