diff --git a/config/config.php b/config/config.php
index e2d63a3b71..59d89decdd 100644
--- a/config/config.php
+++ b/config/config.php
@@ -37,6 +37,7 @@ $config->langs['zh-cn'] = '简体';
$config->langs['zh-tw'] = '繁體';
$config->langs['en'] = 'English';
$config->langs['de'] = 'Deutsch';
+$config->langs['fr'] = 'Français';
/* 设备类型视图文件前缀。The prefix for view file for different device. */
$config->devicePrefix['mhtml'] = '';
diff --git a/config/zentaopms.php b/config/zentaopms.php
index e0b78067a5..a5f8f0a6aa 100644
--- a/config/zentaopms.php
+++ b/config/zentaopms.php
@@ -40,6 +40,10 @@ $config->productCommonList['de'][0] = 'Produkt';
$config->productCommonList['de'][1] = 'Projekt';
$config->projectCommonList['de'][0] = 'Projekt';
$config->projectCommonList['de'][1] = 'Iteration';
+$config->productCommonList['fr'][0] = 'Product';
+$config->productCommonList['fr'][1] = 'Projet';
+$config->projectCommonList['fr'][0] = 'Projet';
+$config->projectCommonList['fr'][1] = 'Sprint';
/* Supported charsets. */
$config->charsets['zh-cn']['utf-8'] = 'UTF-8';
@@ -50,6 +54,8 @@ $config->charsets['en']['utf-8'] = 'UTF-8';
$config->charsets['en']['GBK'] = 'GBK';
$config->charsets['de']['utf-8'] = 'UTF-8';
$config->charsets['de']['GBK'] = 'GBK';
+$config->charsets['fr']['utf-8'] = 'UTF-8';
+$config->charsets['fr']['GBK'] = 'GBK';
/* IP white list settings.*/
$config->ipWhiteList = '*';
diff --git a/module/action/lang/fr.php b/module/action/lang/fr.php
new file mode 100644
index 0000000000..1f8995c672
--- /dev/null
+++ b/module/action/lang/fr.php
@@ -0,0 +1,454 @@
+
+ * @package action
+ * @version $Id: en.php 4729 2013-05-03 07:53:55Z chencongzhi520@gmail.com $
+ * @link https://www.zentao.pm
+ */
+$lang->action->common = 'Log';
+$lang->action->product = $lang->productCommon;
+$lang->action->project = $lang->projectCommon;
+$lang->action->objectType = "Type d'objet";
+$lang->action->objectID = 'ID';
+$lang->action->objectName = "Nom de l'object";
+$lang->action->actor = 'User';
+$lang->action->action = 'Action';
+$lang->action->actionID = 'Action ID';
+$lang->action->date = 'Date';
+
+$lang->action->trash = 'Corbeille';
+$lang->action->undelete = 'Restaurer';
+$lang->action->hideOne = 'Masquer';
+$lang->action->hideAll = 'Masquer Tout';
+$lang->action->editComment = 'Editer commentaire';
+$lang->action->create = 'Ajouter commentaire';
+$lang->action->comment = 'Commentaire';
+
+$lang->action->trashTips = 'Note: Les suppressions dans ZenTao sont purement logiques.';
+$lang->action->textDiff = 'Text Format';
+$lang->action->original = 'Original Format';
+$lang->action->confirmHideAll = 'Voulez-vous masquer tous les enregistrements ?';
+$lang->action->needEdit = '%s que vous voulez restaurer. SVP éditez la.';
+$lang->action->historyEdit = "l'historique Edité Par ne peut pas être vide.";
+$lang->action->noDynamic = "Pas d'historique.";
+
+$lang->action->history = new stdclass();
+$lang->action->history->action = 'Lien';
+$lang->action->history->field = 'Champ';
+$lang->action->history->old = 'Ancienne valeur';
+$lang->action->history->new = 'Nouvelle valeur';
+$lang->action->history->diff = 'Comparer';
+
+$lang->action->dynamic = new stdclass();
+$lang->action->dynamic->today = "Aujourd'hui";
+$lang->action->dynamic->yesterday = 'Hier';
+$lang->action->dynamic->twoDaysAgo = 'Il y a 2 jours';
+$lang->action->dynamic->thisWeek = 'Cette semaine';
+$lang->action->dynamic->lastWeek = 'La semaine dernière';
+$lang->action->dynamic->thisMonth = 'Ce mois';
+$lang->action->dynamic->lastMonth = 'Le mois dernier';
+$lang->action->dynamic->all = 'Tout';
+$lang->action->dynamic->hidden = 'Caché';
+$lang->action->dynamic->search = 'Rechercher';
+
+$lang->action->periods['all'] = $lang->action->dynamic->all;
+$lang->action->periods['today'] = $lang->action->dynamic->today;
+$lang->action->periods['yesterday'] = $lang->action->dynamic->yesterday;
+$lang->action->periods['thisweek'] = $lang->action->dynamic->thisWeek;
+$lang->action->periods['lastweek'] = $lang->action->dynamic->lastWeek;
+$lang->action->periods['thismonth'] = $lang->action->dynamic->thisMonth;
+$lang->action->periods['lastmonth'] = $lang->action->dynamic->lastMonth;
+
+$lang->action->objectTypes['product'] = $lang->productCommon;
+$lang->action->objectTypes['story'] = 'Story';
+$lang->action->objectTypes['productplan'] = 'Plan';
+$lang->action->objectTypes['release'] = 'Release';
+$lang->action->objectTypes['project'] = 'Projet';
+$lang->action->objectTypes['task'] = 'Tâche';
+$lang->action->objectTypes['build'] = 'Build';
+$lang->action->objectTypes['bug'] = 'Bug';
+$lang->action->objectTypes['case'] = 'CasTest';
+$lang->action->objectTypes['caseresult'] = 'CasTest Result';
+$lang->action->objectTypes['stepresult'] = 'CasTest Steps';
+$lang->action->objectTypes['testtask'] = 'Recette';
+$lang->action->objectTypes['user'] = 'Utilisateur';
+$lang->action->objectTypes['doc'] = 'Document';
+$lang->action->objectTypes['doclib'] = 'Répertoire Documents';
+$lang->action->objectTypes['todo'] = 'Todo';
+$lang->action->objectTypes['branch'] = 'Branche';
+$lang->action->objectTypes['module'] = 'Module';
+$lang->action->objectTypes['testsuite'] = 'Cahier recette';
+$lang->action->objectTypes['caselib'] = 'Library';
+$lang->action->objectTypes['testreport'] = 'Edition';
+$lang->action->objectTypes['entry'] = 'Entrée';
+$lang->action->objectTypes['webhook'] = 'Webhook';
+
+/* 用来描述操作历史记录。*/
+$lang->action->desc = new stdclass();
+$lang->action->desc->common = '$date, $action par $actor.' . "\n";
+$lang->action->desc->extra = '$date, $action en tant que $extra par $actor.' . "\n";
+$lang->action->desc->opened = '$date, initié par $actor .' . "\n";
+$lang->action->desc->created = '$date, créé par $actor .' . "\n";
+$lang->action->desc->changed = '$date, modifié par $actor .' . "\n";
+$lang->action->desc->edited = '$date, édité par $actor .' . "\n";
+$lang->action->desc->assigned = '$date, $actor affecté à $extra.' . "\n";
+$lang->action->desc->closed = '$date, fermé par $actor .' . "\n";
+$lang->action->desc->deleted = '$date, supprimé par $actor .' . "\n";
+$lang->action->desc->reflexed = '$date, mis en réflexion par $actor .' . "\n";
+$lang->action->desc->waiting = '$date, mis en attente de réalisation par $actor .' . "\n";
+$lang->action->desc->deletedfile = '$date, $actor a supprimé $extra.' . "\n";
+$lang->action->desc->editfile = '$date, $actor a édité $extra.' . "\n";
+$lang->action->desc->erased = '$date, supprimé par $actor .' . "\n";
+$lang->action->desc->undeleted = '$date, restauré par $actor .' . "\n";
+$lang->action->desc->hidden = '$date, masqué par $actor .' . "\n";
+$lang->action->desc->commented = '$date, ajouté par $actor.' . "\n";
+$lang->action->desc->activated = '$date, activé par $actor .' . "\n";
+$lang->action->desc->blocked = '$date, bloqué par $actor .' . "\n";
+$lang->action->desc->moved = '$date, déplacé par $actor , qui était "$extra".' . "\n";
+$lang->action->desc->confirmed = '$date, $actor a confirmé la modification de la story. Le dernier build est #$extra.' . "\n";
+$lang->action->desc->caseconfirmed = '$date, $actor a confirmé la modification du CasTest. Le dernier build est #$extra' . "\n";
+$lang->action->desc->bugconfirmed = '$date, $actor a confirmé le Bug.' . "\n";
+$lang->action->desc->frombug = '$date, converti par $actor. Son ID était $extra.';
+$lang->action->desc->started = '$date, commencé par $actor.' . "\n";
+$lang->action->desc->restarted = '$date, reprise par $actor.' . "\n";
+$lang->action->desc->delayed = '$date, ajourné par $actor.' . "\n";
+$lang->action->desc->suspended = '$date, suspendu par $actor.' . "\n";
+$lang->action->desc->recordestimate = '$date, enregistré par $actor et son coût est de $extra heures.';
+$lang->action->desc->editestimate = '$date, $actor a édité son temps estimé.';
+$lang->action->desc->deleteestimate = '$date, $actor a supprimé son estimation de temps.';
+$lang->action->desc->canceled = '$date, annulé par $actor.' . "\n";
+$lang->action->desc->svncommited = '$date, $actor a validé, le build est #$extra.' . "\n";
+$lang->action->desc->gitcommited = '$date, $actor a validé, le build est #$extra.' . "\n";
+$lang->action->desc->finished = '$date, terminé par $actor.' . "\n";
+$lang->action->desc->paused = '$date, mis en pause par $actor.' . "\n";
+$lang->action->desc->verified = '$date, verifié par $actor.' . "\n";
+$lang->action->desc->diff1 = '%s a changé. Il est passé de "%s" à "%s".
' . "\n";
+$lang->action->desc->diff2 = '%s a changé. La différence est ' . "\n" . "
%s" . "\n
%s"; +$lang->action->desc->diff3 = 'Le nom du fichier %s a changé pour %s .' . "\n"; +$lang->action->desc->linked2bug = '$date, affecté à $extra par $actor'; + +/* 子任务修改父任务的历史操作记录 */ +$lang->action->desc->createchildren = '$date, $actor a créé un sous-tâche $extra。' . "\n"; +$lang->action->desc->linkchildtask = '$date, $actor a raccroché une sous-tâche $extra。' . "\n"; +$lang->action->desc->linkchildtask = '$date, $actor a raccroché une sous-tâche $extra。' . "\n"; +$lang->action->desc->unlinkchildrentask = '$date, $actor a décroché une sous-tâche $extra。' . "\n"; +$lang->action->desc->linkparenttask = '$date, $actor a accroché une tâche parent $extra。' . "\n"; +$lang->action->desc->unlinkparenttask = '$date, $actor a décroché une tâche parent $extra。' . "\n"; + +/* 关联用例和移除用例时的历史操作记录。*/ +$lang->action->desc->linkrelatedcase = '$date, $actor a fait le lien avec un CasTest $extra.' . "\n"; +$lang->action->desc->unlinkrelatedcase = '$date, $actor a délié le CasTest $extra.' . "\n"; + +/* 用来显示动态信息。*/ +$lang->action->label = new stdclass(); +$lang->action->label->created = 'a créé '; +$lang->action->label->opened = 'a ouvert '; +$lang->action->label->changed = 'a changé '; +$lang->action->label->edited = 'a édité '; +$lang->action->label->assigned = 'a affecté '; +$lang->action->label->closed = 'a fermé '; +$lang->action->label->deleted = 'a supprimé '; +$lang->action->label->deletedfile = 'a supprimé '; +$lang->action->label->editfile = 'a édité '; +$lang->action->label->erased = 'a détruit '; +$lang->action->label->undeleted = 'a restauré '; +$lang->action->label->hidden = 'a masqué '; +$lang->action->label->commented = 'a commenté '; +$lang->action->label->activated = 'a activé '; +$lang->action->label->blocked = 'a bloqué '; +$lang->action->label->resolved = 'a résolu '; +$lang->action->label->reviewed = 'a revu '; +$lang->action->label->moved = 'a déplacé '; +$lang->action->label->confirmed = 'a confirmé Story '; +$lang->action->label->bugconfirmed = 'a confirmé le Bug '; +$lang->action->label->tostory = 'a converti en Story '; +$lang->action->label->frombug = 'a converti du Bug '; +$lang->action->label->fromlib = 'a importé de la Library '; +$lang->action->label->totask = 'a converti en Tâche '; +$lang->action->label->svncommited = 'a committé SVN '; +$lang->action->label->gitcommited = 'a committé Git '; +$lang->action->label->linked2plan = 'a racordé au Plan '; +$lang->action->label->unlinkedfromplan = 'a extrait du plan '; +$lang->action->label->changestatus = 'a changé le statut '; +$lang->action->label->marked = 'a marqué'; +$lang->action->label->linked2project = "a ajouté à {$lang->projectCommon}"; +$lang->action->label->unlinkedfromproject = "a enlevé de {$lang->projectCommon}"; +$lang->action->label->unlinkedfrombuild = "a enlevé du Build "; +$lang->action->label->linked2release = "a ajouté à une Release "; +$lang->action->label->unlinkedfromrelease = "a enlevé de la Release "; +$lang->action->label->linkrelatedbug = "a lié à un Bug "; +$lang->action->label->unlinkrelatedbug = "a délié du Bug "; +$lang->action->label->linkrelatedcase = "a mis en relation avec un CasTest "; +$lang->action->label->unlinkrelatedcase = "a libéré du CasTest "; +$lang->action->label->linkrelatedstory = "a lié à une Story "; +$lang->action->label->unlinkrelatedstory = "a dégagé de la Story "; +$lang->action->label->subdividestory = "a décomposé la Story "; +$lang->action->label->unlinkchildstory = "a dissocié de la Story fille "; +$lang->action->label->started = 'a commencé '; +$lang->action->label->restarted = 'a continué '; +$lang->action->label->recordestimate = 'a estimé '; +$lang->action->label->editestimate = 'a réestimé '; +$lang->action->label->canceled = 'a annulé '; +$lang->action->label->finished = 'a fini '; +$lang->action->label->paused = 'a stoppé '; +$lang->action->label->verified = 'a vérifié '; +$lang->action->label->delayed = 'a ajourné '; +$lang->action->label->suspended = 'a suspendu '; +$lang->action->label->login = "s'est Connecté"; +$lang->action->label->logout = "s'est Déconnecté"; +$lang->action->label->deleteestimate = "a remis à zéro "; +$lang->action->label->linked2build = "a ajouté au Build "; +$lang->action->label->linked2bug = "a lié au Bug "; +$lang->action->label->linkchildtask = "a raccroché à une sous-tâche"; +$lang->action->label->unlinkchildrentask = "a décroché la sous-tâche"; +$lang->action->label->linkparenttask = "a raccroché à une tâche parent"; +$lang->action->label->unlinkparenttask = "a décroché de la tâche parent"; +$lang->action->label->batchcreate = "a créé tâches par lot"; +$lang->action->label->createchildren = "a créé sous-tâches par lot"; +$lang->action->label->managed = "a managé"; +$lang->action->label->reflexed = "a mis en réflexion"; +$lang->action->label->wait = "a mis à faire"; +$lang->action->label->waiting = "a mis à faire"; + +/* 动态信息按照对象分组 */ +$lang->action->dynamicAction = new stdclass; +$lang->action->dynamicAction->todo['opened'] = 'Créer Todo'; +$lang->action->dynamicAction->todo['edited'] = 'Edit Todo'; +$lang->action->dynamicAction->todo['erased'] = 'Détruire Todo'; +$lang->action->dynamicAction->todo['finished'] = 'Finir Todo'; +$lang->action->dynamicAction->todo['activated'] = 'Activer Todo'; +$lang->action->dynamicAction->todo['closed'] = 'Fermer Todo'; +$lang->action->dynamicAction->todo['deleted'] = 'Suppr Todo'; +$lang->action->dynamicAction->todo['assigned'] = 'Assigner Todo'; +$lang->action->dynamicAction->todo['undeleted'] = 'Restaurer Todo'; +$lang->action->dynamicAction->todo['hidden'] = 'Masquer Todo'; + +$lang->action->dynamicAction->product['opened'] = 'Créer ' . $lang->productCommon; +$lang->action->dynamicAction->product['edited'] = 'Editer ' . $lang->productCommon; +$lang->action->dynamicAction->product['deleted'] = 'Supprimer ' . $lang->productCommon; +$lang->action->dynamicAction->product['closed'] = 'Fermer ' . $lang->productCommon; +$lang->action->dynamicAction->product['undeleted'] = 'Restaurer ' . $lang->productCommon; +$lang->action->dynamicAction->product['hidden'] = 'Masquer ' . $lang->productCommon; +$lang->action->dynamicAction->productplan['opened'] = 'Créer Plan'; +$lang->action->dynamicAction->productplan['edited'] = 'Editer Plan'; +$lang->action->dynamicAction->release['opened'] = 'Créer Release'; +$lang->action->dynamicAction->release['edited'] = 'Editer Release'; +$lang->action->dynamicAction->release['changestatus'] = 'Changer Statut Release'; +$lang->action->dynamicAction->release['undeleted'] = 'Restaurer Release'; +$lang->action->dynamicAction->release['hidden'] = 'Masquer Release'; +$lang->action->dynamicAction->story['opened'] = 'Créer Story'; +$lang->action->dynamicAction->story['edited'] = 'Editer Story'; +$lang->action->dynamicAction->story['activated'] = 'Activer Story'; +$lang->action->dynamicAction->story['reviewed'] = 'Consulter Story'; +$lang->action->dynamicAction->story['closed'] = 'Fermer Story'; +$lang->action->dynamicAction->story['assigned'] = 'Assigner Story'; +$lang->action->dynamicAction->story['changed'] = 'Changer Story'; +$lang->action->dynamicAction->story['linked2plan'] = 'Inclure Story au Plan'; +$lang->action->dynamicAction->story['unlinkedfromplan'] = 'Enlever Story du Plan'; +$lang->action->dynamicAction->story['linked2release'] = 'Inclure Story à la Release'; +$lang->action->dynamicAction->story['unlinkedfromrelease'] = 'Enlever Story de la Release'; +$lang->action->dynamicAction->story['linked2build'] = 'Ajouter Story au Build'; +$lang->action->dynamicAction->story['unlinkedfrombuild'] = 'Détacher Story du Build'; +$lang->action->dynamicAction->story['unlinkedfromproject'] = 'Détacher du Project'; +$lang->action->dynamicAction->story['undeleted'] = 'Restaurer Story'; +$lang->action->dynamicAction->story['hidden'] = 'Masquer Story'; + +$lang->action->dynamicAction->project['opened'] = 'Créer ' . $lang->projectCommon; +$lang->action->dynamicAction->project['edited'] = 'Editer ' . $lang->projectCommon; +$lang->action->dynamicAction->project['deleted'] = 'Supprimer ' . $lang->projectCommon; +$lang->action->dynamicAction->project['started'] = 'Commencer ' . $lang->projectCommon; +$lang->action->dynamicAction->project['delayed'] = 'Ajouter ' . $lang->projectCommon; +$lang->action->dynamicAction->project['suspended'] = 'Suspendre ' . $lang->projectCommon; +$lang->action->dynamicAction->project['activated'] = 'Activer ' . $lang->projectCommon; +$lang->action->dynamicAction->project['closed'] = 'Fermer ' . $lang->projectCommon; +$lang->action->dynamicAction->project['managed'] = 'Manager ' . $lang->projectCommon; +$lang->action->dynamicAction->project['undeleted'] = 'Restaurer ' . $lang->projectCommon; +$lang->action->dynamicAction->project['hidden'] = 'Masquer ' . $lang->projectCommon; +$lang->action->dynamicAction->project['moved'] = 'Déplacer Tâche'; +$lang->action->dynamicAction->task['opened'] = 'Créer Tâche'; +$lang->action->dynamicAction->task['edited'] = 'Editer Tâche'; +$lang->action->dynamicAction->task['commented'] = 'Commenter Tâche'; +$lang->action->dynamicAction->task['assigned'] = 'Assigner Tâche'; +$lang->action->dynamicAction->task['confirmed'] = 'Confirmer Tâche'; +$lang->action->dynamicAction->task['started'] = 'Commencer Tâche'; +$lang->action->dynamicAction->task['finished'] = 'Terminer Tâche'; +$lang->action->dynamicAction->task['recordestimate'] = 'Ajouter Estimation'; +$lang->action->dynamicAction->task['editestimate'] = 'Editer Estimation'; +$lang->action->dynamicAction->task['deleteestimate'] = 'RAZ Estimation'; +$lang->action->dynamicAction->task['paused'] = 'Stopper Tâche'; +$lang->action->dynamicAction->task['closed'] = 'Fermer Tâche'; +$lang->action->dynamicAction->task['canceled'] = 'Supprimer Tâche'; +$lang->action->dynamicAction->task['reflexed'] = 'Mûrir Tâche'; +$lang->action->dynamicAction->task['waiting'] = 'A Faire Tâche'; +$lang->action->dynamicAction->task['activated'] = 'Activer Tâche'; +$lang->action->dynamicAction->task['createchildren'] = 'Créer Sous-Tâche'; +$lang->action->dynamicAction->task['unlinkparenttask'] = 'Délier Tâche Parent'; +$lang->action->dynamicAction->task['linkparenttask'] = 'Lier Tâche Parent'; +$lang->action->dynamicAction->task['linkchildtask'] = 'Lier sous-tâche'; +$lang->action->dynamicAction->task['undeleted'] = 'Restaurer Tâche'; +$lang->action->dynamicAction->task['hidden'] = 'Masquer Tâche'; +$lang->action->dynamicAction->task['svncommited'] = 'SVN Commit'; +$lang->action->dynamicAction->task['gitcommited'] = 'GIT Commit'; +$lang->action->dynamicAction->build['opened'] = 'Créer Build'; +$lang->action->dynamicAction->build['edited'] = 'Editer Build'; + +$lang->action->dynamicAction->bug['opened'] = 'Remonter Bug'; +$lang->action->dynamicAction->bug['edited'] = 'Editer Bug'; +$lang->action->dynamicAction->bug['activated'] = 'Activer Bug'; +$lang->action->dynamicAction->bug['assigned'] = 'Assigner Bug'; +$lang->action->dynamicAction->bug['closed'] = 'Fermer Bug'; +$lang->action->dynamicAction->bug['bugconfirmed'] = 'Confirmer Bug'; +$lang->action->dynamicAction->bug['resolved'] = 'Resolu Bug'; +$lang->action->dynamicAction->bug['undeleted'] = 'Restaurer Bug'; +$lang->action->dynamicAction->bug['hidden'] = 'Masquer Bug'; +$lang->action->dynamicAction->bug['confirmed'] = 'Confirme Chang Story'; +$lang->action->dynamicAction->bug['tostory'] = 'Converti en Story'; +$lang->action->dynamicAction->bug['totask'] = 'Converti en Tâche'; +$lang->action->dynamicAction->bug['linked2plan'] = 'Lié au Plan'; +$lang->action->dynamicAction->bug['unlinkedfromplan'] = 'Enlevé du Plan'; +$lang->action->dynamicAction->bug['linked2release'] = 'Ajouté à la Release'; +$lang->action->dynamicAction->bug['unlinkedfromrelease'] = 'Enlevé de la Release'; +$lang->action->dynamicAction->bug['linked2bug'] = 'Lié au Build'; +$lang->action->dynamicAction->bug['unlinkedfrombuild'] = 'Retiré du Build'; +$lang->action->dynamicAction->testtask['opened'] = 'Créé Recette'; +$lang->action->dynamicAction->testtask['edited'] = 'Edité Recette'; +$lang->action->dynamicAction->testtask['started'] = 'Commencé Recette'; +$lang->action->dynamicAction->testtask['activated'] = 'Activé Recette'; +$lang->action->dynamicAction->testtask['closed'] = 'Fermé Recette'; +$lang->action->dynamicAction->testtask['blocked'] = 'Bloqué Recette'; +$lang->action->dynamicAction->case['opened'] = 'Créé CasTest'; +$lang->action->dynamicAction->case['edited'] = 'Edité CasTest'; +$lang->action->dynamicAction->case['deleted'] = 'Supprimé CasTest'; +$lang->action->dynamicAction->case['undeleted'] = 'Restauré CasTest'; +$lang->action->dynamicAction->case['hidden'] = 'Masqué CasTest'; +$lang->action->dynamicAction->case['reviewed'] = 'Ajouté Revue Résultats'; +$lang->action->dynamicAction->case['confirmed'] = 'Confirmé CasTest'; +$lang->action->dynamicAction->case['fromlib'] = 'Importé de CasTest Lib'; +$lang->action->dynamicAction->testreport['opened'] = 'Créé Test Report'; +$lang->action->dynamicAction->testreport['edited'] = 'Edité Test Report'; +$lang->action->dynamicAction->testreport['deleted'] = 'Supprimé Test Report'; +$lang->action->dynamicAction->testreport['undeleted'] = 'Restauré Test Report'; +$lang->action->dynamicAction->testreport['hidden'] = 'Masqué Test Report'; +$lang->action->dynamicAction->testsuite['opened'] = 'Créé Test Suite'; +$lang->action->dynamicAction->testsuite['edited'] = 'Edité Test Suite'; +$lang->action->dynamicAction->testsuite['deleted'] = 'Supprimé Test Suite'; +$lang->action->dynamicAction->testsuite['undeleted'] = 'Restauré Test Suite'; +$lang->action->dynamicAction->testsuite['hidden'] = 'Masqué Test Suite'; +$lang->action->dynamicAction->caselib['opened'] = 'Créé CasTest Lib'; +$lang->action->dynamicAction->caselib['edited'] = 'Edité CasTest Lib'; +$lang->action->dynamicAction->caselib['deleted'] = 'Supprimé CasTest Lib'; +$lang->action->dynamicAction->caselib['undeleted'] = 'Restauré CasTest Lib'; +$lang->action->dynamicAction->caselib['hidden'] = 'Masqué CasTest Lib'; + +$lang->action->dynamicAction->doclib['created'] = 'Créer Doc Library'; +$lang->action->dynamicAction->doclib['edited'] = 'Editer Doc Library'; +$lang->action->dynamicAction->doc['created'] = 'Créer Document'; +$lang->action->dynamicAction->doc['edited'] = 'Editer Document'; +$lang->action->dynamicAction->doc['commented'] = 'Commenter Document'; +$lang->action->dynamicAction->doc['deleted'] = 'Supprimer Document'; +$lang->action->dynamicAction->doc['undeleted'] = 'Restaurer Document'; +$lang->action->dynamicAction->doc['hidden'] = 'Masquer Document'; + +$lang->action->dynamicAction->user['created'] = 'Créer User'; +$lang->action->dynamicAction->user['edited'] = 'Editer User'; +$lang->action->dynamicAction->user['login'] = 'Connexion'; +$lang->action->dynamicAction->user['logout'] = 'Déconnexion'; +$lang->action->dynamicAction->user['undeleted'] = 'Restaure User'; +$lang->action->dynamicAction->user['hidden'] = 'Masquer User'; +$lang->action->dynamicAction->user['loginxuanxuan'] = 'Login Desktop'; + +$lang->action->dynamicAction->entry['created'] = 'Ajouter Application'; +$lang->action->dynamicAction->entry['edited'] = 'Editer Application'; + +/* 用来生成相应对象的链接。*/ +$lang->action->label->product = $lang->productCommon . '|product|view|productID=%s'; +$lang->action->label->productplan = 'Plan|productplan|view|productID=%s'; +$lang->action->label->release = 'Release|release|view|productID=%s'; +$lang->action->label->story = 'Story|story|view|storyID=%s'; +$lang->action->label->project = "{$lang->projectCommon}|project|view|projectID=%s"; +$lang->action->label->task = 'Tâche|task|view|taskID=%s'; +$lang->action->label->build = 'Build|build|view|buildID=%s'; +$lang->action->label->bug = 'Bug|bug|view|bugID=%s'; +$lang->action->label->case = 'CasTest|testcase|view|caseID=%s'; +$lang->action->label->testtask = 'Recette|testtask|view|caseID=%s'; +$lang->action->label->testsuite = 'Cahier Recette|testsuite|view|suiteID=%s'; +$lang->action->label->caselib = 'Library Recette|testsuite|libview|libID=%s'; +$lang->action->label->todo = 'Agenda|todo|view|todoID=%s'; +$lang->action->label->doclib = 'Bibliothèque|doc|browse|libID=%s'; +$lang->action->label->doc = 'Document|doc|view|docID=%s'; +$lang->action->label->user = 'Utilisateur|user|view|account=%s'; +$lang->action->label->testreport = 'Rapport|testreport|view|report=%s'; +$lang->action->label->entry = 'Application|entry|browse|'; +$lang->action->label->webhook = 'Webhook|webhook|browse|'; +$lang->action->label->space = ' '; + +/* Object type. */ +$lang->action->search->objectTypeList[''] = ''; +$lang->action->search->objectTypeList['product'] = $lang->productCommon; +$lang->action->search->objectTypeList['project'] = $lang->projectCommon; +$lang->action->search->objectTypeList['bug'] = 'Bug'; +$lang->action->search->objectTypeList['case'] = 'CasTest'; +$lang->action->search->objectTypeList['caseresult'] = 'CasTest Result'; +$lang->action->search->objectTypeList['stepresult'] = 'CasTest Steps'; +$lang->action->search->objectTypeList['story'] = 'Story'; +$lang->action->search->objectTypeList['task'] = 'Tâche'; +$lang->action->search->objectTypeList['testtask'] = 'Recette'; +$lang->action->search->objectTypeList['user'] = 'Utilisateur'; +$lang->action->search->objectTypeList['doc'] = 'Doc'; +$lang->action->search->objectTypeList['doclib'] = 'Doc Lib'; +$lang->action->search->objectTypeList['todo'] = 'Todo'; +$lang->action->search->objectTypeList['build'] = 'Build'; +$lang->action->search->objectTypeList['release'] = 'Release'; +$lang->action->search->objectTypeList['productplan'] = 'Plan'; +$lang->action->search->objectTypeList['branch'] = 'Branche'; +$lang->action->search->objectTypeList['testsuite'] = 'Cahier Recette'; +$lang->action->search->objectTypeList['caselib'] = 'Library'; +$lang->action->search->objectTypeList['testreport'] = 'Etat'; + +/* 用来在动态显示中显示动作 */ +$lang->action->search->label[''] = ''; +$lang->action->search->label['created'] = $lang->action->label->created; +$lang->action->search->label['opened'] = $lang->action->label->opened; +$lang->action->search->label['changed'] = $lang->action->label->changed; +$lang->action->search->label['edited'] = $lang->action->label->edited; +$lang->action->search->label['assigned'] = $lang->action->label->assigned; +$lang->action->search->label['closed'] = $lang->action->label->closed; +$lang->action->search->label['deleted'] = $lang->action->label->deleted; +$lang->action->search->label['deletedfile'] = $lang->action->label->deletedfile; +$lang->action->search->label['editfile'] = $lang->action->label->editfile; +$lang->action->search->label['erased'] = $lang->action->label->erased; +$lang->action->search->label['undeleted'] = $lang->action->label->undeleted; +$lang->action->search->label['hidden'] = $lang->action->label->hidden; +$lang->action->search->label['commented'] = $lang->action->label->commented; +$lang->action->search->label['activated'] = $lang->action->label->activated; +$lang->action->search->label['blocked'] = $lang->action->label->blocked; +$lang->action->search->label['resolved'] = $lang->action->label->resolved; +$lang->action->search->label['reviewed'] = $lang->action->label->reviewed; +$lang->action->search->label['moved'] = $lang->action->label->moved; +$lang->action->search->label['confirmed'] = $lang->action->label->confirmed; +$lang->action->search->label['bugconfirmed'] = $lang->action->label->bugconfirmed; +$lang->action->search->label['tostory'] = $lang->action->label->tostory; +$lang->action->search->label['frombug'] = $lang->action->label->frombug; +$lang->action->search->label['totask'] = $lang->action->label->totask; +$lang->action->search->label['svncommited'] = $lang->action->label->svncommited; +$lang->action->search->label['gitcommited'] = $lang->action->label->gitcommited; +$lang->action->search->label['linked2plan'] = $lang->action->label->linked2plan; +$lang->action->search->label['unlinkedfromplan'] = $lang->action->label->unlinkedfromplan; +$lang->action->search->label['changestatus'] = $lang->action->label->changestatus; +$lang->action->search->label['marked'] = $lang->action->label->marked; +$lang->action->search->label['linked2project'] = $lang->action->label->linked2project; +$lang->action->search->label['unlinkedfromproject'] = $lang->action->label->unlinkedfromproject; +$lang->action->search->label['started'] = $lang->action->label->started; +$lang->action->search->label['restarted'] = $lang->action->label->restarted; +$lang->action->search->label['recordestimate'] = $lang->action->label->recordestimate; +$lang->action->search->label['editestimate'] = $lang->action->label->editestimate; +$lang->action->search->label['canceled'] = $lang->action->label->canceled; +$lang->action->search->label['finished'] = $lang->action->label->finished; +$lang->action->search->label['paused'] = $lang->action->label->paused; +$lang->action->search->label['verified'] = $lang->action->label->verified; +$lang->action->search->label['login'] = $lang->action->label->login; +$lang->action->search->label['logout'] = $lang->action->label->logout; diff --git a/module/admin/lang/fr.php b/module/admin/lang/fr.php new file mode 100644 index 0000000000..448f2d6b24 --- /dev/null +++ b/module/admin/lang/fr.php @@ -0,0 +1,82 @@ + + * @package admin + * @version $Id: en.php 4460 2013-02-26 02:28:02Z chencongzhi520@gmail.com $ + * @link https://www.zentao.pm + */ +$lang->admin->common = 'Admin'; +$lang->admin->index = 'Admin Home'; +$lang->admin->checkDB = 'Check Database'; +$lang->admin->sso = 'Zdoo'; +$lang->admin->ssoAction = 'Link Zdoo'; +$lang->admin->safeIndex = 'Sécurité'; +$lang->admin->checkWeak = 'Contrôle niveau de sécurité des mots de passe'; +$lang->admin->certifyMobile = 'Vérifier votre smartphone'; +$lang->admin->certifyEmail = 'Vérifier votre Email'; +$lang->admin->ztCompany = 'Vérifier votre entreprise'; +$lang->admin->captcha = 'Code de vérification'; +$lang->admin->getCaptcha = 'Obtenir le Code de vérification'; + +$lang->admin->api = 'API'; +$lang->admin->log = 'Log'; +$lang->admin->setting = 'Paramétrage'; +$lang->admin->days = 'Durée de conservation'; + +$lang->admin->info = new stdclass(); +$lang->admin->info->version = 'La version actuelle est %s customisée. '; +$lang->admin->info->links = 'Vous pouvez visiter les liens ci-dessous'; +$lang->admin->info->account = 'Votre identifiant client ZenTao est %s.'; +$lang->admin->info->log = 'Les logs qui dépassent la durée de conservation seront supprimés et vous devrez exécuter un cron.'; + +$lang->admin->notice = new stdclass(); +$lang->admin->notice->register = "Note: Vous n'êtes pas enregistré sur le site officiel de ZenTao (www.zentao.pm). %s vous pourrez ensuite obtenir les dernières Mises à Jour de ZenTao et des informations."; +$lang->admin->notice->ignore = "Ignorer"; +$lang->admin->notice->int = "『 %s 』 devrait être un entier positif."; + +$lang->admin->register = new stdclass(); +$lang->admin->register->common = 'Connectez-vous avec votre nouveau compte'; +$lang->admin->register->caption = "S'enregistrer sur la communauté Zentao"; +$lang->admin->register->click = "S'enregistrer ici"; +$lang->admin->register->lblAccount = '>= 3 lettres et chiffres'; +$lang->admin->register->lblPasswd = '>= 6 lettres et chiffres'; +$lang->admin->register->submit = "S'enregistrer"; +$lang->admin->register->bind = "S'associer à un compte existant"; +$lang->admin->register->success = "Vous êtes enregistré !"; + +$lang->admin->bind = new stdclass(); +$lang->admin->bind->caption = 'Lier au compte'; +$lang->admin->bind->success = "Le compte est associé !"; + +$lang->admin->safe = new stdclass(); +$lang->admin->safe->common = 'Politique de sécurité'; +$lang->admin->safe->set = 'Paramétrages du Mot de passe'; +$lang->admin->safe->password = 'Force du Mot de passe'; +$lang->admin->safe->weak = 'Mots de passes non sécurisés courrants'; +$lang->admin->safe->reason = 'Type'; +$lang->admin->safe->checkWeak = 'Balayage des mots de passe faibles'; +$lang->admin->safe->changeWeak = 'Forcer le changement des mots de passe faibles'; +$lang->admin->safe->modifyPasswordFirstLogin = 'Forcer le changement du mot de passe après la première connexion'; + +$lang->admin->safe->modeList[0] = "Contrôle Modéré"; +$lang->admin->safe->modeList[1] = 'Contrôle Moyen'; +$lang->admin->safe->modeList[2] = 'Contrôle Fort'; + +$lang->admin->safe->modeRuleList[1] = ' >= 6 Majuscules, minuscules et chiffres'; +$lang->admin->safe->modeRuleList[2] = ' >= 10 Majuscules, minuscules, chiffres et caractères spéciaux'; + +$lang->admin->safe->reasonList['weak'] = 'Mots de passe faibles courants'; +$lang->admin->safe->reasonList['account'] = 'Identique au compte'; +$lang->admin->safe->reasonList['mobile'] = 'Identique au numéro de mobile'; +$lang->admin->safe->reasonList['phone'] = 'Identique au téléphone fixe'; +$lang->admin->safe->reasonList['birthday'] = 'Identique à la date de naissance'; + +$lang->admin->safe->modifyPasswordList[1] = 'Oui'; +$lang->admin->safe->modifyPasswordList[0] = 'Non'; + +$lang->admin->safe->noticeMode = "Le mot de passe sera vérifié quand un utilisateur se connectera ou qu'un utilisateur sera créé ou modifier."; +$lang->admin->safe->noticeStrong = ''; diff --git a/module/api/lang/fr.php b/module/api/lang/fr.php new file mode 100644 index 0000000000..5acaa81448 --- /dev/null +++ b/module/api/lang/fr.php @@ -0,0 +1,30 @@ + + * @package api + * @version $Id: English.php 824 2010-05-02 15:32:06Z wwccss $ + * @link https://www.zentao.pm + */ +$lang->api = new stdclass(); +$lang->api->common = 'API'; +$lang->api->getModel = 'Super Model API'; +$lang->api->sql = 'SQL Query API'; + +$lang->api->position = 'Position'; +$lang->api->startLine = "%s,%s"; +$lang->api->desc = 'Description'; +$lang->api->debug = 'Debug'; +$lang->api->submit = 'Soumission'; +$lang->api->url = 'Request URL'; +$lang->api->result = 'Résultats'; +$lang->api->status = 'Statut'; +$lang->api->data = 'Données'; +$lang->api->noParam = "Aucun paramètre n'est requis si GET Debug"; +$lang->api->post = 'Se référer à la liste si POST Debug'; + +$lang->api->error = new stdclass(); +$lang->api->error->onlySelect = 'Cette interface SQL ne supporte que les requêtes SELECT.'; diff --git a/module/backup/lang/fr.php b/module/backup/lang/fr.php new file mode 100644 index 0000000000..d0b813db18 --- /dev/null +++ b/module/backup/lang/fr.php @@ -0,0 +1,42 @@ +backup->common = 'Backup'; +$lang->backup->index = 'Accueil Backup'; +$lang->backup->history = 'Historique'; +$lang->backup->delete = 'Suppression Backup'; +$lang->backup->backup = 'Backup'; +$lang->backup->restore = 'Restaurer'; +$lang->backup->change = 'Editer Expiration'; +$lang->backup->changeAB = 'Editer'; +$lang->backup->rmPHPHeader = 'Enlever PHP header'; + +$lang->backup->time = 'Date'; +$lang->backup->files = 'Fichiers'; +$lang->backup->size = 'Taille'; + +$lang->backup->setting = 'Paramétrage'; +$lang->backup->settingDir = 'Répertoire Backup'; +$lang->backup->settingList['nofile'] = 'Ne pas archiver fichiers et codes.'; +$lang->backup->settingList['nozip'] = 'Copier seulement les fichiers sans les compresser.'; +$lang->backup->settingList['nosafe'] = 'Ne pas prévenir du téléchargement par PHP file header.'; + +$lang->backup->waitting = ' est en cours. Patientez s´il vous plait...'; +$lang->backup->progressSQL = '
SQL backup: %s est sauvegardé.
'; +$lang->backup->progressAttach = 'SQL backup est terminé.
Attachment backup: %s est sauvegardé avec succès.
'; +$lang->backup->progressCode = 'SQL backup est terminé.
Attachment backup est terminé.
Code backup: %s est sauvegardé avec succès.
'; +$lang->backup->confirmDelete = 'Voulez-vous supprimer la sauvegarde ?'; +$lang->backup->confirmRestore = 'Voulez-vous restaurer la sauvegarde ?'; +$lang->backup->holdDays = 'conserver les derniers %s jours de backup'; +$lang->backup->restoreTip = 'Seulement les fichiers et les bases peuvent être restaurées en cliquant sur Restaurer. Le code doit être restauré manuellement.'; + +$lang->backup->success = new stdclass(); +$lang->backup->success->backup = 'Terminé avec succès !'; +$lang->backup->success->restore = 'Restauré avec succès !'; + +$lang->backup->error = new stdclass(); +$lang->backup->error->noCreateDir = "Le répertoire n'existe pas et ne peut pas être créer. C'est problématique."; +$lang->backup->error->noWritable = "%s n'est pas autorisé à l'écriture ! Vérifier les privilèges sinon le backup ne pourra pas se faire.";
+$lang->backup->error->noDelete = "%s ne peut pas être supprimé. Modifiez les privilèges ou supprimez-le avec vos petites mains.";
+$lang->backup->error->restoreSQL = "Echec pour restaurer la database library. Error %s.";
+$lang->backup->error->restoreFile = "Echec pour restaurer le fichier. Erreur %s.";
+$lang->backup->error->backupFile = "Echec pour sauvegarder le fichier. Erreur %s.";
+$lang->backup->error->backupCode = "Echec pour sauvegarder le code. Erreur %s.";
diff --git a/module/block/lang/fr.php b/module/block/lang/fr.php
new file mode 100644
index 0000000000..6960c8c81d
--- /dev/null
+++ b/module/block/lang/fr.php
@@ -0,0 +1,404 @@
+
+ * @package block
+ * @version $Id$
+ * @link https://www.zentao.pm
+ */
+$lang->block = new stdclass();
+$lang->block->common = 'Bloc';
+$lang->block->name = 'Nom';
+$lang->block->style = 'Style';
+$lang->block->grid = 'Position';
+$lang->block->color = 'Couleur';
+$lang->block->reset = 'Réinit';
+
+$lang->block->account = 'Compte';
+$lang->block->module = 'Module';
+$lang->block->title = 'Titre';
+$lang->block->source = 'Source Module';
+$lang->block->block = 'Source Bloc';
+$lang->block->order = 'Ordre';
+$lang->block->height = 'Hauteur';
+$lang->block->role = 'Rôle';
+
+$lang->block->lblModule = 'Module';
+$lang->block->lblBlock = 'Bloc';
+$lang->block->lblNum = 'Numéro';
+$lang->block->lblHtml = 'HTML';
+$lang->block->dynamic = 'Historique';
+$lang->block->assignToMe = 'Assigné à moi';
+$lang->block->lblFlowchart = 'Organigramme';
+$lang->block->welcome = 'Bienvenue';
+$lang->block->lblTesttask = 'Détail Recette';
+
+$lang->block->leftToday = 'Reste à faire';
+$lang->block->myTask = 'Mes Tâches';
+$lang->block->myStory = 'Stories';
+$lang->block->myBug = 'Bugs';
+$lang->block->myProject = $lang->projectCommon . 's';
+$lang->block->myProduct = '' . $lang->productCommon . 's';
+$lang->block->delayed = 'Ajourné';
+$lang->block->noData = 'Pas de données pour ce type de rapport.';
+$lang->block->emptyTip = 'No data.';
+
+$lang->block->params = new stdclass();
+$lang->block->params->name = 'Nom';
+$lang->block->params->value = 'Valeur';
+
+$lang->block->createBlock = 'Ajouter Bloc';
+$lang->block->editBlock = 'Editer Bloc';
+$lang->block->ordersSaved = 'L´ordre a été sauvegardé.';
+$lang->block->confirmRemoveBlock = 'Voulez-vous vraiment supprimer ce bloc ?';
+$lang->block->noticeNewBlock = 'Une nouvelle disposition est disponible. Voulez-vous la consulter ?';
+$lang->block->confirmReset = 'Voulez-vous vraiment réinitialiser la disposition ?';
+$lang->block->closeForever = 'Fermeture Permanente';
+$lang->block->confirmClose = 'Voulez-vous vraiment fermer de façon permanente ce bloc ? Ensuite, plus personne ne pourra l´utiliser. Il pourra être réactivé par l´admin.';
+$lang->block->remove = 'Supprimer';
+$lang->block->refresh = 'Rafraichir';
+$lang->block->nbsp = ' ';
+$lang->block->hidden = 'Masquer';
+$lang->block->dynamicInfo = "%s %s %s %s %s";
+
+$lang->block->default['product']['1']['title'] = ' Rapport de ' . $lang->productCommon;
+$lang->block->default['product']['1']['block'] = 'statistic';
+$lang->block->default['product']['1']['grid'] = 8;
+
+$lang->block->default['product']['1']['params']['type'] = 'all';
+$lang->block->default['product']['1']['params']['num'] = '20';
+
+$lang->block->default['product']['2']['title'] = "Vue d'ensemble du " . $lang->productCommon;
+$lang->block->default['product']['2']['block'] = 'overview';
+$lang->block->default['product']['2']['grid'] = 4;
+
+$lang->block->default['product']['3']['title'] = $lang->productCommon . 's Actifs';
+$lang->block->default['product']['3']['block'] = 'list';
+$lang->block->default['product']['3']['grid'] = 8;
+
+$lang->block->default['product']['3']['params']['num'] = 15;
+$lang->block->default['product']['3']['params']['type'] = 'noclosed';
+
+$lang->block->default['product']['4']['title'] = 'Mes Stories';
+$lang->block->default['product']['4']['block'] = 'story';
+$lang->block->default['product']['4']['grid'] = 4;
+
+$lang->block->default['product']['4']['params']['num'] = 15;
+$lang->block->default['product']['4']['params']['orderBy'] = 'id_desc';
+$lang->block->default['product']['4']['params']['type'] = 'assignedTo';
+
+$lang->block->default['project']['1']['title'] = 'Rapport de ' . $lang->projectCommon;
+$lang->block->default['project']['1']['block'] = 'statistic';
+$lang->block->default['project']['1']['grid'] = 8;
+
+$lang->block->default['project']['1']['params']['type'] = 'all';
+$lang->block->default['project']['1']['params']['num'] = '20';
+
+$lang->block->default['project']['2']['title'] = "Vue d'ensemble du " . $lang->projectCommon;
+$lang->block->default['project']['2']['block'] = 'overview';
+$lang->block->default['project']['2']['grid'] = 4;
+
+$lang->block->default['project']['3']['title'] = $lang->projectCommon . 's Actifs';
+$lang->block->default['project']['3']['block'] = 'list';
+$lang->block->default['project']['3']['grid'] = 8;
+
+$lang->block->default['project']['3']['params']['num'] = 15;
+$lang->block->default['project']['3']['params']['orderBy'] = 'id_desc';
+$lang->block->default['project']['3']['params']['type'] = 'undone';
+
+$lang->block->default['project']['4']['title'] = 'Mes Tâches';
+$lang->block->default['project']['4']['block'] = 'task';
+$lang->block->default['project']['4']['grid'] = 4;
+
+$lang->block->default['project']['4']['params']['num'] = 15;
+$lang->block->default['project']['4']['params']['orderBy'] = 'id_desc';
+$lang->block->default['project']['4']['params']['type'] = 'assignedTo';
+
+$lang->block->default['qa']['1']['title'] = 'Rapport de Tests';
+$lang->block->default['qa']['1']['block'] = 'statistic';
+$lang->block->default['qa']['1']['grid'] = 8;
+
+$lang->block->default['qa']['1']['params']['type'] = 'noclosed';
+$lang->block->default['qa']['1']['params']['num'] = '20';
+
+//$lang->block->default['qa']['2']['title'] = 'Testcase Overview';
+//$lang->block->default['qa']['2']['block'] = 'overview';
+//$lang->block->default['qa']['2']['grid'] = 4;
+
+$lang->block->default['qa']['2']['title'] = 'Mes Bugs';
+$lang->block->default['qa']['2']['block'] = 'bug';
+$lang->block->default['qa']['2']['grid'] = 4;
+
+$lang->block->default['qa']['2']['params']['num'] = 15;
+$lang->block->default['qa']['2']['params']['orderBy'] = 'id_desc';
+$lang->block->default['qa']['2']['params']['type'] = 'assignedTo';
+
+$lang->block->default['qa']['3']['title'] = 'Mes CasTests';
+$lang->block->default['qa']['3']['block'] = 'case';
+$lang->block->default['qa']['3']['grid'] = 4;
+
+$lang->block->default['qa']['3']['params']['num'] = 15;
+$lang->block->default['qa']['3']['params']['orderBy'] = 'id_desc';
+$lang->block->default['qa']['3']['params']['type'] = 'assigntome';
+
+$lang->block->default['qa']['4']['title'] = 'Builds en attente';
+$lang->block->default['qa']['4']['block'] = 'testtask';
+$lang->block->default['qa']['4']['grid'] = 4;
+
+$lang->block->default['qa']['4']['params']['num'] = 15;
+$lang->block->default['qa']['4']['params']['orderBy'] = 'id_desc';
+$lang->block->default['qa']['4']['params']['type'] = 'wait';
+
+$lang->block->default['full']['my']['1']['title'] = 'Bienvenue';
+$lang->block->default['full']['my']['1']['block'] = 'welcome';
+$lang->block->default['full']['my']['1']['grid'] = 8;
+$lang->block->default['full']['my']['1']['source'] = '';
+$lang->block->default['full']['my']['2']['title'] = 'Historique';
+$lang->block->default['full']['my']['2']['block'] = 'dynamic';
+$lang->block->default['full']['my']['2']['grid'] = 4;
+$lang->block->default['full']['my']['2']['source'] = '';
+$lang->block->default['full']['my']['3']['title'] = 'Organigramme';
+$lang->block->default['full']['my']['3']['block'] = 'flowchart';
+$lang->block->default['full']['my']['3']['grid'] = 8;
+$lang->block->default['full']['my']['3']['source'] = '';
+$lang->block->default['full']['my']['4']['title'] = 'Mon Agenda';
+$lang->block->default['full']['my']['4']['block'] = 'list';
+$lang->block->default['full']['my']['4']['grid'] = 4;
+$lang->block->default['full']['my']['4']['source'] = 'todo';
+$lang->block->default['full']['my']['4']['params']['num'] = '20';
+$lang->block->default['full']['my']['5'] = $lang->block->default['project']['1'];
+$lang->block->default['full']['my']['5']['source'] = 'project';
+$lang->block->default['full']['my']['6'] = $lang->block->default['project']['2'];
+$lang->block->default['full']['my']['6']['source'] = 'project';
+$lang->block->default['full']['my']['7'] = $lang->block->default['product']['1'];
+$lang->block->default['full']['my']['7']['source'] = 'product';
+$lang->block->default['full']['my']['8'] = $lang->block->default['product']['2'];
+$lang->block->default['full']['my']['8']['source'] = 'product';
+$lang->block->default['full']['my']['9'] = $lang->block->default['qa']['2'];
+$lang->block->default['full']['my']['9']['source'] = 'qa';
+
+$lang->block->default['onlyTest']['my']['1'] = $lang->block->default['qa']['1'];
+$lang->block->default['onlyTest']['my']['1']['source'] = 'qa';
+$lang->block->default['onlyTest']['my']['1']['grid'] = '8';
+$lang->block->default['onlyTest']['my']['2']['title'] = 'Historique';
+$lang->block->default['onlyTest']['my']['2']['block'] = 'dynamic';
+$lang->block->default['onlyTest']['my']['2']['grid'] = 4;
+$lang->block->default['onlyTest']['my']['2']['source'] = '';
+$lang->block->default['onlyTest']['my']['3']['title'] = 'Mon Agenday';
+$lang->block->default['onlyTest']['my']['3']['block'] = 'list';
+$lang->block->default['onlyTest']['my']['3']['grid'] = 6;
+$lang->block->default['onlyTest']['my']['3']['source'] = 'todo';
+$lang->block->default['onlyTest']['my']['3']['params']['num'] = '20';
+$lang->block->default['onlyTest']['my']['4'] = $lang->block->default['qa']['2'];
+$lang->block->default['onlyTest']['my']['4']['source'] = 'qa';
+$lang->block->default['onlyTest']['my']['4']['grid'] = 6;
+
+$lang->block->default['onlyStory']['my']['1'] = $lang->block->default['project']['1'];
+$lang->block->default['onlyStory']['my']['1']['source'] = 'project';
+$lang->block->default['onlyStory']['my']['1']['grid'] = 8;
+$lang->block->default['onlyStory']['my']['2']['title'] = 'Historique';
+$lang->block->default['onlyStory']['my']['2']['block'] = 'dynamic';
+$lang->block->default['onlyStory']['my']['2']['grid'] = 4;
+$lang->block->default['onlyStory']['my']['2']['source'] = '';
+$lang->block->default['onlyStory']['my']['3']['title'] = 'Mon Agenda';
+$lang->block->default['onlyStory']['my']['3']['block'] = 'list';
+$lang->block->default['onlyStory']['my']['3']['grid'] = 6;
+$lang->block->default['onlyStory']['my']['3']['source'] = 'todo';
+$lang->block->default['onlyStory']['my']['3']['params']['num'] = '20';
+$lang->block->default['onlyStory']['my']['4'] = $lang->block->default['product']['2'];
+$lang->block->default['onlyStory']['my']['4']['source'] = 'product';
+$lang->block->default['onlyStory']['my']['4']['grid'] = 6;
+
+$lang->block->default['onlyTask']['my']['1'] = $lang->block->default['project']['1'];
+$lang->block->default['onlyTask']['my']['1']['source'] = 'project';
+$lang->block->default['onlyTask']['my']['1']['grid'] = 8;
+$lang->block->default['onlyTask']['my']['2']['title'] = 'Historique';
+$lang->block->default['onlyTask']['my']['2']['block'] = 'dynamic';
+$lang->block->default['onlyTask']['my']['2']['grid'] = 4;
+$lang->block->default['onlyTask']['my']['2']['source'] = '';
+$lang->block->default['onlyTask']['my']['3']['title'] = 'Mon Agenda';
+$lang->block->default['onlyTask']['my']['3']['block'] = 'list';
+$lang->block->default['onlyTask']['my']['3']['grid'] = 6;
+$lang->block->default['onlyTask']['my']['3']['source'] = 'todo';
+$lang->block->default['onlyTask']['my']['3']['params']['num'] = '20';
+$lang->block->default['onlyTask']['my']['4'] = $lang->block->default['project']['2'];
+$lang->block->default['onlyTask']['my']['4']['source'] = 'project';
+$lang->block->default['onlyTask']['my']['4']['grid'] = 6;
+
+$lang->block->num = 'Numéro';
+$lang->block->type = 'Type';
+$lang->block->orderBy = 'Trié par';
+
+$lang->block->availableBlocks = new stdclass();
+
+$lang->block->availableBlocks->todo = 'Ma Todo List';
+$lang->block->availableBlocks->task = 'Mes Tâches';
+$lang->block->availableBlocks->bug = 'Mes Bugs';
+$lang->block->availableBlocks->case = 'Mes CasTests';
+$lang->block->availableBlocks->story = 'Mes Stories';
+$lang->block->availableBlocks->product = $lang->productCommon . 's';
+$lang->block->availableBlocks->project = $lang->projectCommon . 's';
+$lang->block->availableBlocks->plan = 'Plans';
+$lang->block->availableBlocks->release = 'Releases';
+$lang->block->availableBlocks->build = 'Builds';
+$lang->block->availableBlocks->testtask = 'Recettes';
+
+$lang->block->moduleList['product'] = $lang->productCommon;
+$lang->block->moduleList['project'] = $lang->projectCommon;
+$lang->block->moduleList['qa'] = 'QA';
+$lang->block->moduleList['todo'] = 'Todo';
+
+$lang->block->modules['product'] = new stdclass();
+$lang->block->modules['product']->availableBlocks = new stdclass();
+$lang->block->modules['product']->availableBlocks->statistic = 'Rapport de ' . $lang->productCommon;
+$lang->block->modules['product']->availableBlocks->overview = "Vue d'ensemble du " . $lang->productCommon;
+$lang->block->modules['product']->availableBlocks->list = 'Liste ' . $lang->productCommon;
+$lang->block->modules['product']->availableBlocks->story = 'Story';
+$lang->block->modules['product']->availableBlocks->plan = 'Plan';
+$lang->block->modules['product']->availableBlocks->release = 'Release';
+$lang->block->modules['project'] = new stdclass();
+$lang->block->modules['project']->availableBlocks = new stdclass();
+$lang->block->modules['project']->availableBlocks->statistic = 'Rapport de ' . $lang->projectCommon;
+$lang->block->modules['project']->availableBlocks->overview = "Vue d'ensemble du " . $lang->projectCommon;
+$lang->block->modules['project']->availableBlocks->list = 'Liste ' . $lang->projectCommon;
+$lang->block->modules['project']->availableBlocks->task = 'Tâches';
+$lang->block->modules['project']->availableBlocks->build = 'Build';
+$lang->block->modules['qa'] = new stdclass();
+$lang->block->modules['qa']->availableBlocks = new stdclass();
+$lang->block->modules['qa']->availableBlocks->statistic = 'Rapport de Tests';
+//$lang->block->modules['qa']->availableBlocks->overview = 'Testcase Overview';
+$lang->block->modules['qa']->availableBlocks->bug = 'Bug';
+$lang->block->modules['qa']->availableBlocks->case = 'CasTests';
+$lang->block->modules['qa']->availableBlocks->testtask = 'Build';
+$lang->block->modules['todo'] = new stdclass();
+$lang->block->modules['todo']->availableBlocks = new stdclass();
+$lang->block->modules['todo']->availableBlocks->list = 'Todo';
+
+$lang->block->orderByList = new stdclass();
+
+$lang->block->orderByList->product = array();
+$lang->block->orderByList->product['id_asc'] = 'Tri par ID Produit ASC';
+$lang->block->orderByList->product['id_desc'] = 'Tri par ID Produit DESC';
+$lang->block->orderByList->product['status_asc'] = 'Tri par Statut ASC';
+$lang->block->orderByList->product['status_desc'] = 'Tri par Statut DESC';
+
+$lang->block->orderByList->project = array();
+$lang->block->orderByList->project['id_asc'] = 'Tri par ID Projet ASC';
+$lang->block->orderByList->project['id_desc'] = 'Tri par ID Projet DESC';
+$lang->block->orderByList->project['status_asc'] = 'Tri par Statut ASC';
+$lang->block->orderByList->project['status_desc'] = 'Tri par Statut DESC';
+
+$lang->block->orderByList->task = array();
+$lang->block->orderByList->task['id_asc'] = 'Tri par ID Tâche ASC';
+$lang->block->orderByList->task['id_desc'] = 'Tri par ID Tâche DESC';
+$lang->block->orderByList->task['pri_asc'] = 'Tri par Priorité de tâche ASC';
+$lang->block->orderByList->task['pri_desc'] = 'Tri par Priorité de tâche DESC';
+$lang->block->orderByList->task['estimate_asc'] = 'Tri par durée estimée tâche ASC';
+$lang->block->orderByList->task['estimate_desc'] = 'Tri par durée estimée tâche DESC';
+$lang->block->orderByList->task['status_asc'] = 'Tri par Statut ASC';
+$lang->block->orderByList->task['status_desc'] = 'Tri par Statut DESC';
+$lang->block->orderByList->task['deadline_asc'] = 'Tri par Date Butoir Tâche ASC';
+$lang->block->orderByList->task['deadline_desc'] = 'Tri par Date Butoir Tâche DESC';
+
+$lang->block->orderByList->bug = array();
+$lang->block->orderByList->bug['id_asc'] = 'Tri par ID Bug ASC';
+$lang->block->orderByList->bug['id_desc'] = 'Tri par ID Bug DESC';
+$lang->block->orderByList->bug['pri_asc'] = 'Tri par Priorité Bug ASC';
+$lang->block->orderByList->bug['pri_desc'] = 'Tri par Priorité Bug DESC';
+$lang->block->orderByList->bug['severity_asc'] = 'Tri par Sévérité Bug ASC';
+$lang->block->orderByList->bug['severity_desc'] = 'Tri par Sévérité Bug DESC';
+
+$lang->block->orderByList->case = array();
+$lang->block->orderByList->case['id_asc'] = 'Tri par ID CasTest ASC';
+$lang->block->orderByList->case['id_desc'] = 'Tri par ID CasTest DESC';
+$lang->block->orderByList->case['pri_asc'] = 'Tri par Priorité ASC';
+$lang->block->orderByList->case['pri_desc'] = 'Tri par Priorité DESC';
+
+$lang->block->orderByList->story = array();
+$lang->block->orderByList->story['id_asc'] = 'Tri par ID Story ASC';
+$lang->block->orderByList->story['id_desc'] = 'Tri par ID Story DESC';
+$lang->block->orderByList->story['pri_asc'] = 'Tri par Priorité Story ASC';
+$lang->block->orderByList->story['pri_desc'] = 'Tri par Priorité Story DESC';
+$lang->block->orderByList->story['status_asc'] = 'Tri par Statut Story ASC';
+$lang->block->orderByList->story['status_desc'] = 'Tri par Statut Story DESC';
+$lang->block->orderByList->story['stage_asc'] = 'Tri par Phase Story ASC';
+$lang->block->orderByList->story['stage_desc'] = 'Tri par Phase Story DESC';
+
+$lang->block->todoNum = 'Todo';
+$lang->block->taskNum = 'Task';
+$lang->block->bugNum = 'Bug';
+
+$lang->block->typeList = new stdclass();
+
+$lang->block->typeList->task['assignedTo'] = 'Tâches qui me sont assignées';
+$lang->block->typeList->task['openedBy'] = "Tâches que j'ai créées";
+$lang->block->typeList->task['finishedBy'] = "Tâches que j'ai terminées";
+$lang->block->typeList->task['closedBy'] = "Tâches que j'ai fermées";
+$lang->block->typeList->task['canceledBy'] = "Tâches que j'ai annulées";
+
+$lang->block->typeList->bug['assignedTo'] = 'Bugs qui me sont assignés';
+$lang->block->typeList->bug['openedBy'] = "Bugs que j'ai détectés";
+$lang->block->typeList->bug['resolvedBy'] = "Bugs que j'ai résolus";
+$lang->block->typeList->bug['closedBy'] = "Bugs que j'ai fermés";
+
+$lang->block->typeList->case['assigntome'] = 'CasTests qui me sont assignés';
+$lang->block->typeList->case['openedbyme'] = "CasTests que j'ai créés";;
+
+$lang->block->typeList->story['assignedTo'] = 'Stories qui me sont assignées';
+$lang->block->typeList->story['openedBy'] = "Stories que j'ai créées";
+$lang->block->typeList->story['reviewedBy'] = "Stories que j'ai acceptées";
+$lang->block->typeList->story['closedBy'] = "Stories que j'ai fermées";
+
+$lang->block->typeList->product['noclosed'] = 'Ouverts';
+$lang->block->typeList->product['closed'] = 'Fermés';
+$lang->block->typeList->product['all'] = 'Tous';
+$lang->block->typeList->product['involved'] = 'Impliqués';
+
+$lang->block->typeList->project['undone'] = 'Non terminés';
+$lang->block->typeList->project['doing'] = 'En cours';
+$lang->block->typeList->project['all'] = 'Tous';
+$lang->block->typeList->project['involved'] = 'Impliqués';
+
+$lang->block->typeList->testtask['wait'] = 'En attente';
+$lang->block->typeList->testtask['doing'] = 'En cours';
+$lang->block->typeList->testtask['blocked'] = 'Bloquées';
+$lang->block->typeList->testtask['done'] = 'Jouées';
+$lang->block->typeList->testtask['all'] = 'Toutes';
+
+$lang->block->modules['product']->moreLinkList = new stdclass();
+$lang->block->modules['product']->moreLinkList->list = 'product|all|product=&line=0&status=%s';
+$lang->block->modules['product']->moreLinkList->story = 'my|story|type=%s';
+
+$lang->block->modules['project']->moreLinkList = new stdclass();
+$lang->block->modules['project']->moreLinkList->list = 'project|all|status=%s&project=';
+$lang->block->modules['project']->moreLinkList->task = 'my|task|type=%s';
+
+$lang->block->modules['qa']->moreLinkList = new stdclass();
+$lang->block->modules['qa']->moreLinkList->bug = 'my|bug|type=%s';
+$lang->block->modules['qa']->moreLinkList->case = 'my|testcase|type=%s';
+$lang->block->modules['qa']->moreLinkList->testtask = 'testtask|browse|type=%s';
+
+$lang->block->modules['todo']->moreLinkList = new stdclass();
+$lang->block->modules['todo']->moreLinkList->list = 'my|todo|type=all';
+
+$lang->block->modules['common'] = new stdclass();
+$lang->block->modules['common']->moreLinkList = new stdclass();
+$lang->block->modules['common']->moreLinkList->dynamic = 'company|dynamic|';
+
+$lang->block->welcomeList['06:00'] = 'Bonjour, %s';
+$lang->block->welcomeList['11:30'] = 'Bonjour, %s';
+$lang->block->welcomeList['13:30'] = 'Bonjour, %s';
+$lang->block->welcomeList['19:00'] = 'Bonsoir, %s';
+
+$lang->block->gridOptions[8] = 'Left';
+$lang->block->gridOptions[4] = 'Right';
+
+$lang->block->flowchart = array();
+$lang->block->flowchart[] = array('Administrateur', 'Ajoute Compartiment', 'Ajoute Utilisateurs', 'Administre Privilèges');
+$lang->block->flowchart[] = array($lang->productCommon . ' Owner', 'Ajoute ' . $lang->productCommon . '/Modules', 'Ajoute ' . $lang->projectCommon . 's', 'Ajoute Stories', 'Maintient Plans', 'Crée Releases');
+$lang->block->flowchart[] = array('Scrum Master', 'Ajoute ' . $lang->projectCommon . 's', 'Constitue Equipes', 'Associe ' . $lang->productCommon . 's', 'Rattache Stories', 'Crée/Affecte Tâches');
+$lang->block->flowchart[] = array('Développeurs', 'Réclament Tâches/Bugs', 'Effectuent Tâches', 'Corrigent Bugs', 'MàJ Statuts', 'Terminent Tâches/Bugs');
+$lang->block->flowchart[] = array('Testeurs', 'Rédigent CasTests', 'Jouent CasTests', 'Détectent Bugs', 'Vérifient Corrections', 'Ferment Bugs');
diff --git a/module/branch/lang/fr.php b/module/branch/lang/fr.php
new file mode 100644
index 0000000000..4da283dcb9
--- /dev/null
+++ b/module/branch/lang/fr.php
@@ -0,0 +1,17 @@
+branch->common = 'Etablissements';
+$lang->branch->manage = 'Gérer Etablissements';
+$lang->branch->sort = 'Classer Etablissement';
+$lang->branch->delete = 'Supprimer Etablissement';
+$lang->branch->add = 'Ajout';
+
+$lang->branch->manageTitle = 'Gestion %s';
+$lang->branch->all = 'Tous';
+
+$lang->branch->id = 'ID';
+$lang->branch->product = 'Product';
+$lang->branch->name = 'Nom';
+$lang->branch->order = 'Ordre';
+
+$lang->branch->confirmDelete = "Voulez-vous vraiment supprimer l'établissement @branch@ ?";
+$lang->branch->canNotDelete = 'Attention ! Il y a des données dans @branch@. Suppression impossible !';
diff --git a/module/bug/lang/fr.php b/module/bug/lang/fr.php
new file mode 100644
index 0000000000..02e2b2ab17
--- /dev/null
+++ b/module/bug/lang/fr.php
@@ -0,0 +1,404 @@
+
+ * @package bug
+ * @version $Id: en.php 4536 2013-03-02 13:39:37Z wwccss $
+ * @link https://www.zentao.pm
+ */
+/* Fieldlist. */
+$lang->bug->common = 'Bug';
+$lang->bug->id = 'ID';
+$lang->bug->product = $lang->productCommon;
+$lang->bug->branch = 'Branche/Platforme';
+$lang->bug->productplan = 'Plan';
+$lang->bug->module = 'Module';
+$lang->bug->moduleAB = 'Module';
+$lang->bug->project = $lang->projectCommon;
+$lang->bug->story = 'Story';
+$lang->bug->task = 'Tâche';
+$lang->bug->title = 'Titre';
+$lang->bug->severity = 'Sévérité';
+$lang->bug->severityAB = 'S';
+$lang->bug->pri = 'Priorité';
+$lang->bug->type = 'Type';
+$lang->bug->os = 'OS';
+$lang->bug->browser = 'Browser';
+$lang->bug->steps = 'Repro Steps';
+$lang->bug->status = 'Statut';
+$lang->bug->statusAB = 'Statut';
+$lang->bug->activatedCount = 'Heures Activation';
+$lang->bug->activatedCountAB = 'Actif';
+$lang->bug->activatedDate = 'Date Activation';
+$lang->bug->confirmed = 'Confirmé';
+$lang->bug->confirmedAB = 'C';
+$lang->bug->toTask = 'Convertir en Tâche';
+$lang->bug->toStory = 'Convertir en Story';
+$lang->bug->mailto = 'Mailto';
+$lang->bug->openedBy = 'Signalé par';
+$lang->bug->openedByAB = 'Détecteur';
+$lang->bug->openedDate = 'Date signalement';
+$lang->bug->openedDateAB = 'Signalé';
+$lang->bug->openedBuild = 'Open Build';
+$lang->bug->assignedTo = 'Bugs qui me sont affectés';
+$lang->bug->assignBug = 'Affecter à';
+$lang->bug->assignedToAB = 'Affecté à';
+$lang->bug->assignedDate = 'Date affectation';
+$lang->bug->resolvedBy = 'Résolus par moi';
+$lang->bug->resolvedByAB = 'Résolu par';
+$lang->bug->resolution = 'Résolution';
+$lang->bug->resolutionAB = 'Résolution';
+$lang->bug->resolvedBuild = 'Build';
+$lang->bug->resolvedDate = 'Date Correction';
+$lang->bug->resolvedDateAB = 'Date Correction';
+$lang->bug->deadline = 'Date Butoir';
+$lang->bug->plan = 'Plan';
+$lang->bug->closedBy = 'Fermé par';
+$lang->bug->closedDate = 'Date Fermeture';
+$lang->bug->duplicateBug = 'Bug ID en doublon';
+$lang->bug->lastEditedBy = 'Edité par';
+$lang->bug->linkBug = 'Bugs Liés';
+$lang->bug->linkBugs = 'Associer Bug';
+$lang->bug->unlinkBug = 'Dissocier';
+$lang->bug->case = 'CasTests';
+$lang->bug->files = 'Fichiers';
+$lang->bug->keywords = 'Tags';
+$lang->bug->lastEditedByAB = 'Edité par';
+$lang->bug->lastEditedDateAB = 'Date Modif';
+$lang->bug->lastEditedDate = 'Date Modif';
+$lang->bug->fromCase = 'du CasTest';
+$lang->bug->toCase = 'vers CasTest';
+$lang->bug->colorTag = 'Couleur';
+
+/* 方法列表。*/
+$lang->bug->index = 'Accueil Bug';
+$lang->bug->create = 'Signaler un Bug';
+$lang->bug->batchCreate = 'Signaler par Lot';
+$lang->bug->confirmBug = 'Confirmer';
+$lang->bug->confirmAction = 'Confirmer Bug';
+$lang->bug->batchConfirm = 'Confirmé par Lot';
+$lang->bug->edit = 'Editer Bug';
+$lang->bug->batchEdit = 'Editer par Lot';
+$lang->bug->batchChangeModule = 'Batch Edit Modules';
+$lang->bug->batchChangeBranch = 'Batch Edit Branches';
+$lang->bug->batchClose = 'Fermer par Lot';
+$lang->bug->assignTo = 'Affecter à';
+$lang->bug->assignAction = 'Affecter Bug';
+$lang->bug->batchAssignTo = 'Affecter par Lot';
+$lang->bug->browse = 'Liste des Bugs';
+$lang->bug->view = 'Détail Bug';
+$lang->bug->resolve = 'Résoudre';
+$lang->bug->resolveAction = 'Résoudre Bug';
+$lang->bug->batchResolve = 'Résoudre par Lot';
+$lang->bug->close = 'Clôturer';
+$lang->bug->closeAction = 'Clôturer Bug';
+$lang->bug->activate = 'Activer';
+$lang->bug->activateAction = 'Activer Bug';
+$lang->bug->batchActivate = 'Activer par Lot';
+$lang->bug->reportChart = 'Signalements';
+$lang->bug->reportAction = 'Signalement Bugs';
+$lang->bug->export = 'Exporter Données';
+$lang->bug->exportAction = 'Exporter Bug';
+$lang->bug->delete = 'Supprimer';
+$lang->bug->deleteAction = 'Supprimer Bug';
+$lang->bug->deleted = 'Supprimé';
+$lang->bug->confirmStoryChange = 'Confirmer Changement Story';
+$lang->bug->copy = 'Copier';
+$lang->bug->search = 'Rechercher';
+
+/* 查询条件列表。*/
+$lang->bug->assignToMe = 'Affectés à moi';
+$lang->bug->openedByMe = 'Détectés par moi';
+$lang->bug->resolvedByMe = 'Résolus par moi';
+$lang->bug->closedByMe = 'Fermés par moi';
+$lang->bug->assignToNull = 'Non affectés';
+$lang->bug->unResolved = 'Actifs';
+$lang->bug->toClosed = 'A Fermer';
+$lang->bug->unclosed = 'Non fermés';
+$lang->bug->unconfirmed = 'Non confirmés';
+$lang->bug->longLifeBugs = 'Persistant';
+$lang->bug->postponedBugs = 'Reporté';
+$lang->bug->overdueBugs = 'Retard';
+$lang->bug->allBugs = 'Tous';
+$lang->bug->byQuery = 'Rechercher';
+$lang->bug->needConfirm = 'Story Changée';
+$lang->bug->allProduct = 'Tous les ' . $lang->productCommon . 's';
+$lang->bug->my = 'Mes';
+$lang->bug->yesterdayResolved = 'Bugs Résolus Hier ';
+$lang->bug->yesterdayConfirmed = 'Bugs Confirmés Hier ';
+$lang->bug->yesterdayClosed = 'Bugs Fermés Hier ';
+
+$lang->bug->assignToMeAB = 'Affectés à Moi';
+$lang->bug->openedByMeAB = 'Signalés par Moi';
+$lang->bug->resolvedByMeAB = 'Résolus par Moi';
+
+$lang->bug->ditto = 'Idem';
+$lang->bug->dittoNotice = "Ce bug n'est pas lié au même product que le précédent !";
+$lang->bug->noAssigned = 'Non affectés';
+$lang->bug->noBug = "Pas de bug pour l'instant. Bravo !";
+$lang->bug->noModule = "[Etape]
[Résultats]
[Résultats attendus]
Les fonctionnalités du Cron ont besoin d'être plus testées, le Cron est donc désactivé par défaut.
+EOD; +$lang->cron->confirmOpen = <<Note
+%s directory has to be created.
Run mkdir %s to create it.
%s directory has to be created.
Run mkdir -p %s to create it.
chmod o=rwx -R %s to change it.';
+
+$lang->install->timezone = 'Set Timezone';
+$lang->install->defaultLang = 'Default Language';
+$lang->install->dbHost = 'Database Host';
+$lang->install->dbHostNote = 'If 127.0.0.1 is not accessible, try localhost.';
+$lang->install->dbPort = 'Host Port';
+$lang->install->dbUser = 'Database Username';
+$lang->install->dbPassword = 'Database Password';
+$lang->install->dbName = 'Database Name';
+$lang->install->dbPrefix = 'Table Prefix';
+$lang->install->clearDB = 'Clean up existing data';
+$lang->install->importDemoData = 'Import Demo Data';
+$lang->install->working = 'Operation Mode';
+
+$lang->install->requestTypes['GET'] = 'GET';
+$lang->install->requestTypes['PATH_INFO'] = 'PATH_INFO';
+
+$lang->install->workingList['full'] = 'Application Lifecycle Management';
+$lang->install->workingList['onlyTest'] = 'Only Test Management';
+$lang->install->workingList['onlyStory'] = 'Only Story Management';
+$lang->install->workingList['onlyTask'] = 'Only Task Management';
+
+$lang->install->errorConnectDB = 'Echec de connexion à la base. ';
+$lang->install->errorDBName = 'Le nom de la base ne doit pas contenir de “.” ';
+$lang->install->errorCreateDB = 'Echec de création de la base.';
+$lang->install->errorTableExists = "La base existe. Si ZenTao a été installé précédemment, revenez à l'étape précédente et supprimez les données. Ensuite continuez l'installation.";
+$lang->install->errorCreateTable = 'Echec en création de la base.';
+$lang->install->errorImportDemoData = "Echec de l'importation des données de démo.";
+
+$lang->install->setConfig = 'Créer fichier de configuration';
+$lang->install->key = 'Objet';
+$lang->install->value = 'Valeur';
+$lang->install->saveConfig = 'Sauver config';
+$lang->install->save2File = 'Note : Afin d'obtenir les dernières infos de ZenTao, enregistrz-vous chez ZenTao(www.zentao.pm).
+EOT; + +$lang->install->product = array('chanzhi', 'ranzhi'); + +$lang->install->promotion = "Products also from Nature Easy Soft team:"; +$lang->install->chanzhi = new stdclass(); +$lang->install->chanzhi->name = 'ZSITE Content Management System'; +$lang->install->chanzhi->logo = 'images/main/chanzhi_en.png'; +$lang->install->chanzhi->url = 'http://www.zsite.net'; +$lang->install->chanzhi->desc = <<myisamchk -r -f %s.MYI pour la réparer. Mais on ne promet rien :-(";
+$lang->misc->connectFail = "Echec de connexion à la Base de données. Erreur: %s,Note :
+Enhanced test management.
Optimized the UI of Plan, Release, and Build linked stories and bugs.
Customize the feature whether to display files in child category.
Optimize details and fix bug.
'); + +$lang->misc->feature->all['11.3.stable'][] = array('title'=>'Optimize details and fix bug.', 'desc' => 'Add Child Plan to a Plan
Optimize the chosen
Add Timezone settings
Optimize Document Library and Document modules
'); + +$lang->misc->feature->all['11.2.stable'][] = array('title'=>'Optimize details and fix bug.', 'desc' => 'Add upgrade logs and database checkup after upgrading
Fixed ZenTao client and other bugs, and optimized details.
'); + +$lang->misc->feature->all['11.1.stable'][] = array('title'=>'Fix Bug.', 'desc' => ''); + +$lang->misc->feature->all['11.0.stable'][] = array('title'=>'ZenTao integrated desktop.', 'desc' => ''); + +$lang->misc->feature->all['10.6.stable'][] = array('title'=>'Adjust backup mechanism', 'desc' => 'Increase backup settings and make backup more flexible
Show backup progress
Change the backup directory
'); +$lang->misc->feature->all['10.6.stable'][] = array('title'=>'Optimize and adjust menu', 'desc' => 'Adjust admin menu
Adjust the secondary menu of My and Project
'); + +$lang->misc->feature->all['10.5.stable'][] = array('title'=>'Adjust document layout', 'desc' => "Adjust the layout method on the left side of the document library.
Add filter conditions at the bottom of the document library menu.
"); +$lang->misc->feature->all['10.5.stable'][] = array('title'=>'Adjust the child task logic and optimize the display of parent-child task.', 'desc' => ''); + +$lang->misc->feature->all['10.4.stable'][] = array('title'=>'Optimize and adjust new interface', 'desc' => 'Detail page restore to the previous layout.
Refactore forms to add user pages
When use cases are executed, do not update the use case stause if the user manually chooses to pass and write the results.
'); +$lang->misc->feature->all['10.4.stable'][] = array('title'=>'After the user machine hibernates and the login fails, the session will be refreshed again.', 'desc' => ''); +$lang->misc->feature->all['10.4.stable'][] = array('title'=>'Upgrade existing interface mechanisms', 'desc' => ''); + +$lang->misc->feature->all['10.3.stable'][] = array('title'=>'Fix Bug.', 'desc' => ''); +$lang->misc->feature->all['10.2.stable'][] = array('title'=>'ZenTao desktop is integrated!', 'desc' => ''); + +$lang->misc->feature->all['10.0.stable'][] = array('title'=>'New UI/UX and new experience', 'desc' => 'Gather Mail,SMS,webhook into Message
'); +$lang->misc->feature->all['9.8.stable'][] = array('title'=>'Add recurred Todo', 'desc' => ''); +$lang->misc->feature->all['9.8.stable'][] = array('title'=>"Add Block of 'AssignedToMe'", 'desc' => ''); +$lang->misc->feature->all['9.8.stable'][] = array('title'=>'Support generating reports on Test Builds', 'desc' => ''); + +$lang->misc->feature->all['9.7.stable'][] = array('title'=>'Optimize International package. Added Demo data.', 'desc' => ''); + +$lang->misc->feature->all['9.6.stable'][] = array('title'=>'Added Webhook Interface feature', 'desc' => 'Support communication with BearyChat, Dingding'); +$lang->misc->feature->all['9.6.stable'][] = array('title'=>'Added Point', 'desc' => 'More skilled application, more score'); +$lang->misc->feature->all['9.6.stable'][] = array('title'=>'Added multiple user task and child tasks to Project', 'desc' => ''); +$lang->misc->feature->all['9.6.stable'][] = array('title'=>'Added Product line management to Product', 'desc' => ''); + +$lang->misc->feature->all['9.5.1'][] = array('title'=>'Added restricted actions.', 'desc' => ''); + +$lang->misc->feature->all['9.3.beta'][] = array('title'=>'Upgraded ZenTao framework,enhanced security', 'desc' => ''); + +$lang->misc->feature->all['9.1.stable'][] = array('title'=>'optimize Test View', 'desc' => 'Added TestSuite, CaseLibrary and QA Report
'); +$lang->misc->feature->all['9.1.stable'][] = array('title'=>'Support Group steps of TestCase', 'desc' => ''); + +$lang->misc->feature->all['9.0.beta'][] = array('title'=>'ZenTao CloudMail has been added.', 'desc' => 'ZenTao CloudMail is a free Email service launched jointly with SendCloud. Once binded with ZenTao and passed verification, users can use this service.
'); +$lang->misc->feature->all['9.0.beta'][] = array('title'=>'Optimized Rich Text Editor and Markdown Editor.', 'desc' => ''); + +$lang->misc->feature->all['8.3.stable'][] = array('title'=>'Improved Documentation.', 'desc' => 'Added Document Home, restructured document library, and added privileges.
Markdown Editor is supported,and privilege and version managment is added.
'); + +$lang->misc->feature->all['8.2.stable'][] = array('title'=>'Custom Home', 'desc' => 'You can add blocks to Dashboard and arrange the layout.
My Zone, Product, Project, and QA all support home custom mentioned before.
'); +$lang->misc->feature->all['8.2.stable'][] = array('title'=>'Custom Navigation', 'desc' => 'You can decide which project show in navigation bar and the order of projects shown in the bar.
Hover on the navigation bar and a sign will show to its right. Click the sign and a dialog box "Custom Navigation" will show. Drag the block name to switch its order on navigation bar.
'); +$lang->misc->feature->all['8.2.stable'][] = array('title'=>'Batch Add/Edit Custom', 'desc' => 'You can batch add and edit fields on custom pages.
'); +$lang->misc->feature->all['8.2.stable'][] = array('title'=>'Custom Story/Task/Bug/Case', 'desc' => 'You can custom fileds when add a Story/Task/Bug/Case.
'); +$lang->misc->feature->all['8.2.stable'][] = array('title'=>'Custom Export', 'desc' => 'You can custom fileds when export a Story/Task/Bug/Case pages. You can also save it as template for next export.
'); +$lang->misc->feature->all['8.2.stable'][] = array('title'=>'Story/Task/Bug/Case Search ', 'desc' => 'On Story/Task/Bug/Case List page, you can do a combined search on Modules and Tabs.
'); +$lang->misc->feature->all['8.2.stable'][] = array('title'=>"ZenTao Tutorial", 'desc' => 'Tutorial for rookies is added for first-time users to know how to use ZenTao.
'); + +$lang->misc->feature->all['7.4.beta'][] = array('title'=>'Product branch feature is added.', 'desc' => 'Product branch/platform is added, and its related Story/Plan/Bug/Case/Module has Branch added too.
'); +$lang->misc->feature->all['7.4.beta'][] = array('title'=>'Release Module is improved.', 'desc' => 'Stop action has been added. If Stop to manage it, the Release will not show when Report Bug.
Bugs that have been omitted in the Release will be related manually.
'); +$lang->misc->feature->all['7.4.beta'][] = array('title'=>'Create pages of Story and Bug are improved.', 'desc' => ''); + +$lang->misc->feature->all['7.2.stable'][] = array('title'=>'Security Enhanced', 'desc' => 'Admin weak passwork check is enhanced.
ok file is required when code/upload an extension.
Sensitive action requires Admin password.
Do striptags, specialchars to content entered in ZenTao.
'); +$lang->misc->feature->all['7.2.stable'][] = array('title'=>'Details Improved', 'desc' => ''); + +$lang->misc->feature->all['7.1.stable'][] = array('title'=>'Framework of Cron is added.', 'desc' => 'Framework of Cron is added. Daily notification, Burndown Update, Backup, Send Email and so on have been added.'); +$lang->misc->feature->all['7.1.stable'][] = array('title'=>'rpm and deb packages are provided.', 'desc' => ''); + +$lang->misc->feature->all['6.3.stable'][] = array('title'=>'Data table is added.', 'desc' => 'Fields can be customized in data table and data will be displayed according to customized fields.
'); +$lang->misc->feature->all['6.3.stable'][] = array('title'=>'Continue improving details', 'desc' => ''); diff --git a/module/my/lang/fr.php b/module/my/lang/fr.php new file mode 100644 index 0000000000..d0984ec91a --- /dev/null +++ b/module/my/lang/fr.php @@ -0,0 +1,58 @@ +my->common = 'Tableau de Bord'; + +$config->productCommonList['en'][0] = 'Product'; +$config->productCommonList['en'][1] = 'Projet'; +$config->projectCommonList['en'][0] = 'Projet'; +$config->projectCommonList['en'][1] = 'Sprint'; + +/* Method List。*/ +$lang->my->index = 'Accueil'; +$lang->my->todo = 'Mon Agenda'; +$lang->my->calendar = 'Calendrier'; +$lang->my->task = 'Mes Tâches'; +$lang->my->bug = 'Mes Bugs'; +$lang->my->testTask = 'Mes Builds'; +$lang->my->testCase = 'Mes CasTests'; +$lang->my->story = 'Mes Stories'; +$lang->my->myProject = "Mes {$lang->projectCommon}s"; +$lang->my->profile = 'Mon Profil'; +$lang->my->dynamic = 'Mon Historique'; +$lang->my->editProfile = 'Edit Profil'; +$lang->my->changePassword = 'Changer le Mot de Passe'; +$lang->my->unbind = 'Dissocier de Zdoo'; +$lang->my->manageContacts = 'Gérer Contact'; +$lang->my->deleteContacts = 'Supprimer Contact'; +$lang->my->shareContacts = 'Public'; +$lang->my->limited = 'Actions Limitées (Les utilisateurs peuvent seulement éditer le contenu de ce qui leur est affecté.)'; +$lang->my->score = 'Mes Points'; +$lang->my->scoreRule = 'Règles Point'; +$lang->my->noTodo = "Je n'ai rien à faire pour l'instant."; + +$lang->my->taskMenu = new stdclass(); +$lang->my->taskMenu->assignedToMe = "Tâches qui me sont affectées"; +$lang->my->taskMenu->openedByMe = "Tâches que j'ai créées"; +$lang->my->taskMenu->finishedByMe = "Tâches que j'ai terminées"; +$lang->my->taskMenu->closedByMe = "Tâches que j'ai fermées"; +$lang->my->taskMenu->canceledByMe = "Tâches que j'ai annulées"; + +$lang->my->storyMenu = new stdclass(); +$lang->my->storyMenu->assignedToMe = 'Stories qui me sont affectées'; +$lang->my->storyMenu->openedByMe = "Stories que j'ai créées"; +$lang->my->storyMenu->reviewedByMe = "Stories que j'ai acceptées"; +$lang->my->storyMenu->closedByMe = "Stories que j'ai fermées"; + +$lang->my->home = new stdclass(); +$lang->my->home->latest = 'Historique'; +$lang->my->home->action = "%s, %s %s %s %s."; +$lang->my->home->projects = $lang->projectCommon; +$lang->my->home->products = $lang->productCommon; +$lang->my->home->createProject = "Créer un {$lang->projectCommon}"; +$lang->my->home->createProduct = "Créer un {$lang->productCommon}"; +$lang->my->home->help = "Aide"; +$lang->my->home->noProductsTip = "Aucun {$lang->productCommon} ici."; + +$lang->my->form = new stdclass(); +$lang->my->form->lblBasic = 'Infos Basiques'; +$lang->my->form->lblContact = 'Infos Contact'; +$lang->my->form->lblAccount = 'Infos Compte'; diff --git a/module/product/lang/fr.php b/module/product/lang/fr.php new file mode 100644 index 0000000000..c153dc8bac --- /dev/null +++ b/module/product/lang/fr.php @@ -0,0 +1,155 @@ + + * @package product + * @version $Id: en.php 5091 2013-07-10 06:06:46Z chencongzhi520@gmail.com $ + * @link https://www.zentao.pm + */ +$lang->product->common = $lang->productCommon; +$lang->product->index = 'Accueil ' . $lang->productCommon; +$lang->product->browse = 'Liste Stories'; +$lang->product->dynamic = 'Historique'; +$lang->product->view = "{$lang->productCommon} Détail"; +$lang->product->edit = "Editer {$lang->productCommon}"; +$lang->product->batchEdit = 'Editer par Lot'; +$lang->product->create = "Créer {$lang->productCommon}"; +$lang->product->delete = "Supprimer {$lang->productCommon}"; +$lang->product->deleted = 'Supprimé'; +$lang->product->close = "Fermer"; +$lang->product->closeAction = "Fermer {$lang->productCommon}"; +$lang->product->select = "Choisir {$lang->productCommon}"; +$lang->product->mine = 'Les miens:'; +$lang->product->other = 'Autres:'; +$lang->product->closed = 'Fermés'; +$lang->product->updateOrder = 'Ordre'; +$lang->product->orderAction = "Rang {$lang->productCommon}"; +$lang->product->all = "Tous les {$lang->productCommon}s"; +$lang->product->export = 'Export'; +$lang->product->exportAction = "Export {$lang->productCommon}"; + +$lang->product->basicInfo = 'Infos de Base'; +$lang->product->otherInfo = 'Autres Infos'; + +$lang->product->plans = 'Plans'; +$lang->product->releases = 'Releases'; +$lang->product->docs = 'Doc'; +$lang->product->bugs = 'Bug Liés'; +$lang->product->projects = "{$lang->projectCommon}s Liés"; +$lang->product->cases = 'CasTests'; +$lang->product->builds = 'Build'; +$lang->product->roadmap = "Roadmap {$lang->productCommon}"; +$lang->product->doc = "Documents {$lang->productCommon}"; +$lang->product->project = ' Liste ' . $lang->projectCommon; +$lang->product->build = 'Liste Builds'; +$lang->product->projectInfo = "Les {$lang->projectCommon}s qui sont associés à ce {$lang->productCommon} sont listés ci-dessous."; + +$lang->product->currentProject = "{$lang->projectCommon}"; +$lang->product->activeStories = 'Actives [S]'; +$lang->product->activeStoriesTitle = 'Stories Actives'; +$lang->product->changedStories = 'Changées [S]'; +$lang->product->changedStoriesTitle = 'Stories Modifiées'; +$lang->product->draftStories = 'Brouillon [S]'; +$lang->product->draftStoriesTitle = 'Stories en Analyse'; +$lang->product->closedStories = 'Fermées [S]'; +$lang->product->closedStoriesTitle = 'Stories Fermées'; +$lang->product->unResolvedBugs = 'Ouverts [B]'; +$lang->product->unResolvedBugsTitle = 'Bugs Ouverts'; +$lang->product->assignToNullBugs = 'Orphelins [B]'; +$lang->product->assignToNullBugsTitle = 'Bugs non assignés'; + +$lang->product->confirmDelete = "Voulez-vous vraiment supprimer le {$lang->productCommon} ?"; +$lang->product->errorNoProduct = "Aucun {$lang->productCommon} n'est créé pour l'instant !"; +$lang->product->accessDenied = "Vous n'avez pas accès au {$lang->productCommon}."; + +$lang->product->id = 'ID'; +$lang->product->name = "Nom du {$lang->productCommon}"; +$lang->product->code = 'Code'; +$lang->product->line = "Ligne Produit"; +$lang->product->order = 'Rang'; +$lang->product->type = 'Type'; +$lang->product->typeAB = 'Type'; +$lang->product->status = 'Statut'; +$lang->product->desc = 'Description'; +$lang->product->manager = 'Managers'; +$lang->product->PO = "{$lang->productCommon} Owner"; +$lang->product->QD = 'Quality Manager'; +$lang->product->RD = 'Release Manager'; +$lang->product->acl = "Contrôle accès"; +$lang->product->whitelist = 'Liste Blanche'; +$lang->product->branch = '%s'; +$lang->product->qa = 'QA'; +$lang->product->release = 'Release'; +$lang->product->allRelease = 'Toutes Releases'; +$lang->product->maintain = 'Maintenance'; +$lang->product->latestDynamic = 'Historique'; +$lang->product->plan = 'Plan'; +$lang->product->iteration = 'Itérations'; +$lang->product->iterationInfo = '%s Itération'; +$lang->product->iterationView = 'Détail'; + +$lang->product->searchStory = 'Recherche'; +$lang->product->assignedToMe = 'Affectées à Moi'; +$lang->product->openedByMe = 'Créées par Moi'; +$lang->product->reviewedByMe = 'Validées par Moi'; +$lang->product->closedByMe = 'Fermées par Moi'; +$lang->product->draftStory = 'A étudier'; +$lang->product->activeStory = 'Actives'; +$lang->product->changedStory = 'Changées'; +$lang->product->willClose = 'A Fermer'; +$lang->product->closedStory = 'Fermées'; +$lang->product->unclosed = 'Ouvertes'; +$lang->product->unplan = 'Non planifiées'; +$lang->product->viewByUser = 'Par Utilisateur'; + +$lang->product->allStory = 'Toutes les Stories '; +$lang->product->allProduct = 'Tous'; +$lang->product->allProductsOfProject = 'Tous les ' . $lang->productCommon . ' Associés'; + +$lang->product->typeList[''] = ''; +$lang->product->typeList['normal'] = 'Normal'; +$lang->product->typeList['branch'] = 'Multi-Branche'; +$lang->product->typeList['platform'] = 'Multi-Plateforme'; + +$lang->product->typeTips = array(); +$lang->product->typeTips['branch'] = ' (pour des contextes personnalisés, ex : équipes offshore)'; +$lang->product->typeTips['platform'] = ' (pour des applications multi-plateformes, ex : IOS, Android, PC, etc.)'; + +$lang->product->branchName['normal'] = ''; +$lang->product->branchName['branch'] = 'Branche'; +$lang->product->branchName['platform'] = 'Plateforme'; + +$lang->product->statusList[''] = ''; +$lang->product->statusList['normal'] = 'Normal'; +$lang->product->statusList['closed'] = 'Fermé'; + +$lang->product->aclList['open'] = "Défaut (Les utilisateurs ayant des droits sur {$lang->productCommon} peuvent accéder à ce {$lang->productCommon}.)"; +$lang->product->aclList['private'] = "{$lang->productCommon} Privé (seuls les membres de l'équipe {$lang->projectCommon} ont les droits)"; +$lang->product->aclList['custom'] = "Personnalisé (les membres de l'équipe et les membres de la Liste blanche peuvent y accéder.)"; + +$lang->product->storySummary = "Total de %s stories sur cette page. Estimé: %s (h), et couverture de la recette: %s."; +$lang->product->checkedSummary = "%total% stories sélectionnées, Estimé: %estimate%, et couverture de la recette: %rate%."; +$lang->product->noModule = "2. Code and Secret Key must be the same as set in Zdoo.
+EOD; +$lang->sso->bindNotice = "Un utilisateur qui a été récemment ajouté n'a pas de permission. Vous devez demander à l'administrateur ZenTao d'accorder des droits à cet utilisateur."; +$lang->sso->bindNoPassword = 'Password ne devrait pas être vide.'; +$lang->sso->bindNoUser = 'Password erroné/Utilisateur introuvable !'; +$lang->sso->bindHasAccount = "Ce nom d'utilisateur existe déjà. Modifiez votre code utilisateur ou liez-vous à lui."; diff --git a/module/story/lang/fr.php b/module/story/lang/fr.php new file mode 100644 index 0000000000..a801eadd09 --- /dev/null +++ b/module/story/lang/fr.php @@ -0,0 +1,323 @@ + + * @package story + * @version $Id: en.php 5141 2013-07-15 05:57:15Z chencongzhi520@gmail.com $ + * @link https://www.zentao.pm + */ +$lang->story->create = "Créer Story"; +$lang->story->batchCreate = "Créer par Lot"; +$lang->story->change = "Changer"; +$lang->story->changeAction = "Changer Story"; +$lang->story->changed = 'Changée'; +$lang->story->assignTo = 'Affecter'; +$lang->story->assignAction = 'Affecter Story'; +$lang->story->review = 'Valider'; +$lang->story->reviewAction = 'Valider Story'; +$lang->story->needReview = 'Validation requise'; +$lang->story->batchReview = 'Validation par lot'; +$lang->story->edit = "Editer Story"; +$lang->story->batchEdit = "Editer par Lot"; +$lang->story->subdivide = 'Décomposer'; +$lang->story->subdivideAction = 'Décomposer Story'; +$lang->story->close = 'Fermer'; +$lang->story->closeAction = 'Fermer Story'; +$lang->story->batchClose = 'Fermer par Lot'; +$lang->story->activate = 'Activer'; +$lang->story->activateAction = 'Activer Story'; +$lang->story->delete = "Supprimer"; +$lang->story->deleteAction = "Supprimer Story"; +$lang->story->view = "Détail Story"; +$lang->story->setting = "Paramétrage"; +$lang->story->tasks = "Tâches Associées"; +$lang->story->bugs = "Bugs Associés"; +$lang->story->cases = "CasTest Associés"; +$lang->story->taskCount = 'Tâches'; +$lang->story->bugCount = 'Bugs'; +$lang->story->caseCount = 'CasTests'; +$lang->story->taskCountAB = 'T'; +$lang->story->bugCountAB = 'B'; +$lang->story->caseCountAB = 'C'; +$lang->story->linkStory = 'Lier Story'; +$lang->story->unlinkStory = 'Dissocier'; +$lang->story->export = "Exporter Données"; +$lang->story->exportAction = "Exporter Story"; +$lang->story->zeroCase = "Stories sans CasTests"; +$lang->story->zeroTask = "Seulement liste des stories sans tâches"; +$lang->story->reportChart = "Rapport"; +$lang->story->reportAction = "Rapport de Story"; +$lang->story->copyTitle = "Copier Titre"; +$lang->story->batchChangePlan = "Changer Plans par lot"; +$lang->story->batchChangeBranch = "Changer Branches par lot"; +$lang->story->batchChangeStage = "Changer Phases par lot"; +$lang->story->batchAssignTo = "Affecter par lot"; +$lang->story->batchChangeModule = "Changer Modules par lot"; +$lang->story->viewAll = "Voir Tout"; + +$lang->story->common = 'Story'; +$lang->story->id = 'ID'; +$lang->story->product = $lang->productCommon; +$lang->story->branch = "Branche/Plateforme"; +$lang->story->module = 'Module'; +$lang->story->moduleAB = 'Module'; +$lang->story->source = 'De'; +$lang->story->sourceNote = 'Note'; +$lang->story->fromBug = 'Depuis Bug'; +$lang->story->title = 'Titre'; +$lang->story->spec = 'Description'; +$lang->story->assign = 'Affecter'; +$lang->story->verify = 'Acceptance'; +$lang->story->pri = 'Priorité'; +$lang->story->estimate = 'Estimation'; +$lang->story->estimateAB = 'Esti.(h)'; +$lang->story->hour = 'Heures'; +$lang->story->status = 'Statut'; +$lang->story->stage = 'Phase'; +$lang->story->stageAB = 'Phase'; +$lang->story->stagedBy = 'Fixé par'; +$lang->story->mailto = 'Mailto'; +$lang->story->openedBy = 'Créée par'; +$lang->story->openedDate = 'Date Création'; +$lang->story->assignedTo = 'Assignée à'; +$lang->story->assignedDate = 'Date Assignation'; +$lang->story->lastEditedBy = 'Editée par'; +$lang->story->lastEditedDate = 'Date Edition'; +$lang->story->closedBy = 'Fermée par'; +$lang->story->closedDate = 'Date Fermeture'; +$lang->story->closedReason = 'Raison'; +$lang->story->rejectedReason = 'Raison du Rejet'; +$lang->story->reviewedBy = 'Validée par'; +$lang->story->reviewedDate = 'Date Validation'; +$lang->story->version = 'Version'; +$lang->story->plan = 'Intégrée Plans'; +$lang->story->planAB = 'Plan'; +$lang->story->comment = 'Commentaire'; +$lang->story->linkStories = 'Stories Liées'; +$lang->story->childStories = 'Stories Décomposées'; +$lang->story->duplicateStory = 'Story Dupliquées'; +$lang->story->reviewResult = 'Résultat Validation'; +$lang->story->preVersion = 'Dernière Version'; +$lang->story->keywords = 'Tags'; +$lang->story->newStory = "Continuer d'ajouter"; +$lang->story->colorTag = 'Couleur'; +$lang->story->files = 'Fichiers'; +$lang->story->copy = "Copier Story"; +$lang->story->total = "Stories Total"; +$lang->story->allStories = 'Toutes les Stories'; +$lang->story->unclosed = 'Non Fermées'; +$lang->story->deleted = 'Supprimée'; +$lang->story->released = 'Stories Versionnées'; + +$lang->story->ditto = 'Idem'; +$lang->story->dittoNotice = "La story n'est pas associée au même product que la précédente !"; + +$lang->story->useList[0] = 'Oui'; +$lang->story->useList[1] = 'Non'; + +$lang->story->statusList[''] = ''; +$lang->story->statusList['draft'] = 'Brouillon'; +$lang->story->statusList['active'] = 'Active'; +$lang->story->statusList['closed'] = 'Fermée'; +$lang->story->statusList['changed'] = 'Changée'; + +$lang->story->stageList[''] = ''; +$lang->story->stageList['wait'] = 'En Attente'; +$lang->story->stageList['planned'] = 'Plannifée'; +$lang->story->stageList['projected'] = 'Projetée'; +$lang->story->stageList['developing'] = 'En Dév.'; +$lang->story->stageList['developed'] = 'Développée'; +$lang->story->stageList['testing'] = 'En Test'; +$lang->story->stageList['tested'] = 'Testée'; +$lang->story->stageList['verified'] = 'Acceptée'; +$lang->story->stageList['released'] = 'Versionnée'; +$lang->story->stageList['closed'] = 'Fermée'; + +$lang->story->reasonList[''] = ''; +$lang->story->reasonList['done'] = 'Déjà Fait'; +$lang->story->reasonList['subdivided'] = 'Décomposée'; +$lang->story->reasonList['duplicate'] = 'Doublon'; +$lang->story->reasonList['postponed'] = 'Reportée'; +$lang->story->reasonList['willnotdo'] = "On ne fera pas"; +$lang->story->reasonList['cancel'] = 'Annulée'; +$lang->story->reasonList['bydesign'] = 'Du Design'; +//$lang->story->reasonList['isbug'] = 'Bug!'; + +$lang->story->reviewResultList[''] = ''; +$lang->story->reviewResultList['pass'] = 'Accepté'; +$lang->story->reviewResultList['revert'] = 'Retour Arrière'; +$lang->story->reviewResultList['clarify'] = 'A Clarifier'; +$lang->story->reviewResultList['reject'] = 'Refusé'; + +$lang->story->reviewList[0] = 'Non'; +$lang->story->reviewList[1] = 'Oui'; + +$lang->story->sourceList[''] = ''; +$lang->story->sourceList['customer'] = 'Client'; +$lang->story->sourceList['user'] = 'Utilisateur'; +$lang->story->sourceList['po'] = $lang->productCommon . ' Owner'; +$lang->story->sourceList['market'] = 'Marketing'; +$lang->story->sourceList['service'] = 'Service Client'; +$lang->story->sourceList['operation'] = 'Opérations'; +$lang->story->sourceList['support'] = 'Support'; +$lang->story->sourceList['competitor'] = 'Concurrence'; +$lang->story->sourceList['partner'] = 'Partenaire'; +$lang->story->sourceList['dev'] = 'Equipe de Dev'; +$lang->story->sourceList['tester'] = 'Equipe de Test'; +$lang->story->sourceList['bug'] = 'Bug'; +$lang->story->sourceList['forum'] = 'Forum'; +$lang->story->sourceList['other'] = 'Autre'; + +$lang->story->priList[] = ''; +$lang->story->priList[1] = '1'; +$lang->story->priList[2] = '2'; +$lang->story->priList[3] = '3'; +$lang->story->priList[4] = '4'; + +$lang->story->legendBasicInfo = 'Infos de Base'; +$lang->story->legendLifeTime = 'Vie de la Story '; +$lang->story->legendRelated = 'Info Connexes'; +$lang->story->legendMailto = 'Mailto'; +$lang->story->legendAttatch = 'Fichiers'; +$lang->story->legendProjectAndTask = $lang->projectCommon . ' et Tâches'; +$lang->story->legendBugs = 'Bugs Liés'; +$lang->story->legendFromBug = 'du Bug'; +$lang->story->legendCases = 'CasTests Liés'; +$lang->story->legendLinkStories = 'Stories Liées'; +$lang->story->legendChildStories = 'Sous-Stories'; +$lang->story->legendSpec = 'Description'; +$lang->story->legendVerify = 'Acceptance'; +$lang->story->legendMisc = 'Divers'; + +$lang->story->lblChange = 'Changer'; +$lang->story->lblReview = 'Valider'; +$lang->story->lblActivate = 'Activer'; +$lang->story->lblClose = 'Fermer'; +$lang->story->lblTBC = 'Tâche/Bug/CasTest'; + +$lang->story->checkAffection = 'Influence'; +$lang->story->affectedProjects = '' . $lang->projectCommon . 's'; +$lang->story->affectedBugs = 'Bugs'; +$lang->story->affectedCases = 'CasTests'; + +$lang->story->specTemplate = "En tant que < type utilisateur >, je veux < différents objectifs > pour < différentes raisons >."; +$lang->story->needNotReview = 'Aucune Validation Requise'; +$lang->story->successSaved = "Story est sauvegardée !"; +$lang->story->confirmDelete = "Voulez-vous vraiment supprimer cette story ?"; +$lang->story->errorEmptyChildStory = '『Decomposed Stories』ne peuvent être vides.'; +$lang->story->mustChooseResult = 'Sélect Résultat'; +$lang->story->mustChoosePreVersion = 'Sélect une version pour revenir en arrière.'; +$lang->story->noStory = "Aucune story pour l'instant. "; +$lang->story->ignoreChangeStage = "Story %s est à l'état brouillon et nécessite d'être complétée et validée..."; + +$lang->story->form = new stdclass(); +$lang->story->form->area = 'Périmètre'; +$lang->story->form->desc = "Quelle story est-ce ? Quel est son état d'acceptance ?"; +$lang->story->form->resource = 'Qui va allouer des resources ? Combien de temps cela va-t-il prendre ?'; +$lang->story->form->file = 'Si certains fichiers sont associés à la story, cliquez ici pour les uploader.'; + +$lang->story->action = new stdclass(); +$lang->story->action->reviewed = array('main' => '$date, validée par $actor. Le résultat est $extra.', 'extra' => 'reviewResultList'); +$lang->story->action->closed = array('main' => '$date, Fermée par $actor. La raison est $extra $appendLink.', 'extra' => 'reasonList'); +$lang->story->action->linked2plan = array('main' => '$date, planifiée par $actor au Plan $extra'); +$lang->story->action->unlinkedfromplan = array('main' => '$date, déplanifiée par $actor du Plan $extra.'); +$lang->story->action->linked2project = array('main' => '$date, associée au ' . $lang->projectCommon . ' $extra par $actor.'); +$lang->story->action->unlinkedfromproject = array('main' => '$date, dissociée du ' . $lang->projectCommon . ' $extra par $actor.'); +$lang->story->action->linked2build = array('main' => '$date, intégrée par $actor au Build $extra'); +$lang->story->action->unlinkedfrombuild = array('main' => '$date, retirée par $actor du Build $extra.'); +$lang->story->action->linked2release = array('main' => '$date, ajoutée par $actor à la Release $extra'); +$lang->story->action->unlinkedfromrelease = array('main' => '$date, retirée par $actor de la Release $extra.'); +$lang->story->action->linkrelatedstory = array('main' => '$date, associée par $actor à la Story $extra.'); +$lang->story->action->subdividestory = array('main' => '$date, décomposée par $actor en Story $extra.'); +$lang->story->action->unlinkrelatedstory = array('main' => '$date, dissociée par $actor de la Story $extra.'); +$lang->story->action->unlinkchildstory = array('main' => '$date, dissociée par $actor de la sous-Story $extra.'); + +/* 统计报表。*/ +$lang->story->report = new stdclass(); +$lang->story->report->common = 'Rapport'; +$lang->story->report->select = 'Choix Type de Rapport'; +$lang->story->report->create = 'Créer Rapport'; +$lang->story->report->value = 'Rapports'; + +$lang->story->report->charts['storysPerProduct'] = 'Regroupé par ' . $lang->productCommon . ' Story'; +$lang->story->report->charts['storysPerModule'] = 'Regroupé par Module Story'; +$lang->story->report->charts['storysPerSource'] = 'Regroupé par Source'; +$lang->story->report->charts['storysPerPlan'] = 'Regroupé par Plan'; +$lang->story->report->charts['storysPerStatus'] = 'Regroupé par Statut'; +$lang->story->report->charts['storysPerStage'] = 'Regroupé par Phase'; +$lang->story->report->charts['storysPerPri'] = 'Regroupé par Priorité'; +$lang->story->report->charts['storysPerEstimate'] = 'Regroupé par Estimés'; +$lang->story->report->charts['storysPerOpenedBy'] = 'Regroupé par Créateur'; +$lang->story->report->charts['storysPerAssignedTo'] = 'Regroupé par Détenteur'; +$lang->story->report->charts['storysPerClosedReason'] = 'Par Raison de Fermeture'; +$lang->story->report->charts['storysPerChange'] = 'Regroupé par Modif de Story'; + +$lang->story->report->options = new stdclass(); +$lang->story->report->options->graph = new stdclass(); +$lang->story->report->options->type = 'pie'; +$lang->story->report->options->width = 500; +$lang->story->report->options->height = 140; + +$lang->story->report->storysPerProduct = new stdclass(); +$lang->story->report->storysPerModule = new stdclass(); +$lang->story->report->storysPerSource = new stdclass(); +$lang->story->report->storysPerPlan = new stdclass(); +$lang->story->report->storysPerStatus = new stdclass(); +$lang->story->report->storysPerStage = new stdclass(); +$lang->story->report->storysPerPri = new stdclass(); +$lang->story->report->storysPerOpenedBy = new stdclass(); +$lang->story->report->storysPerAssignedTo = new stdclass(); +$lang->story->report->storysPerClosedReason = new stdclass(); +$lang->story->report->storysPerEstimate = new stdclass(); +$lang->story->report->storysPerChange = new stdclass(); + +$lang->story->report->storysPerProduct->item = $lang->productCommon; +$lang->story->report->storysPerModule->item = 'Module'; +$lang->story->report->storysPerSource->item = 'Source'; +$lang->story->report->storysPerPlan->item = 'Plan'; +$lang->story->report->storysPerStatus->item = 'Statut'; +$lang->story->report->storysPerStage->item = 'Phase'; +$lang->story->report->storysPerPri->item = 'Priorité'; +$lang->story->report->storysPerOpenedBy->item = 'Créateur'; +$lang->story->report->storysPerAssignedTo->item = 'Détenteur'; +$lang->story->report->storysPerClosedReason->item = 'Raison'; +$lang->story->report->storysPerEstimate->item = 'Estimation'; +$lang->story->report->storysPerChange->item = 'Chang. Story'; + +$lang->story->report->storysPerProduct->graph = new stdclass(); +$lang->story->report->storysPerModule->graph = new stdclass(); +$lang->story->report->storysPerSource->graph = new stdclass(); +$lang->story->report->storysPerPlan->graph = new stdclass(); +$lang->story->report->storysPerStatus->graph = new stdclass(); +$lang->story->report->storysPerStage->graph = new stdclass(); +$lang->story->report->storysPerPri->graph = new stdclass(); +$lang->story->report->storysPerOpenedBy->graph = new stdclass(); +$lang->story->report->storysPerAssignedTo->graph = new stdclass(); +$lang->story->report->storysPerClosedReason->graph = new stdclass(); +$lang->story->report->storysPerEstimate->graph = new stdclass(); +$lang->story->report->storysPerChange->graph = new stdclass(); + +$lang->story->report->storysPerProduct->graph->xAxisName = $lang->productCommon; +$lang->story->report->storysPerModule->graph->xAxisName = 'Module'; +$lang->story->report->storysPerSource->graph->xAxisName = 'Source'; +$lang->story->report->storysPerPlan->graph->xAxisName = 'Plan'; +$lang->story->report->storysPerStatus->graph->xAxisName = 'Statut'; +$lang->story->report->storysPerStage->graph->xAxisName = 'Phase'; +$lang->story->report->storysPerPri->graph->xAxisName = 'Priorité'; +$lang->story->report->storysPerOpenedBy->graph->xAxisName = 'Créateur'; +$lang->story->report->storysPerAssignedTo->graph->xAxisName = 'Détenteur'; +$lang->story->report->storysPerClosedReason->graph->xAxisName = 'Raison Fermeture'; +$lang->story->report->storysPerEstimate->graph->xAxisName = 'Estimattion '; +$lang->story->report->storysPerChange->graph->xAxisName = 'Change Times'; + +$lang->story->placeholder = new stdclass(); +$lang->story->placeholder->estimate = $lang->story->hour; + +$lang->story->chosen = new stdClass(); +$lang->story->chosen->reviewedBy = 'Choisir valideur'; + +$lang->story->notice = new stdClass(); +$lang->story->notice->closed = 'La Story que vous avez sélectionnée est malheureusement fermée !'; diff --git a/module/svn/lang/fr.php b/module/svn/lang/fr.php new file mode 100644 index 0000000000..33079eedb1 --- /dev/null +++ b/module/svn/lang/fr.php @@ -0,0 +1,16 @@ + + * @package svn + * @version $Id$ + * @link https://www.zentao.pm + */ +/* Methods. */ +$lang->svn->common = 'Subversion'; +$lang->svn->cat = 'Voir Code Source'; +$lang->svn->diff = 'Comparer Code Source'; +$lang->svn->apiSync = 'API: Synchroniser Logs SVN'; diff --git a/module/task/lang/fr.php b/module/task/lang/fr.php new file mode 100644 index 0000000000..198faa3aa6 --- /dev/null +++ b/module/task/lang/fr.php @@ -0,0 +1,294 @@ + + * @package task + * @version $Id: en.php 5040 2013-07-06 06:22:18Z zhujinyonging@gmail.com $ + * @link https://www.zentao.pm + */ +$lang->task->index = "Accueil"; +$lang->task->create = "Créer Tâche"; +$lang->task->batchCreate = "Créer par Lots"; +$lang->task->batchCreateChildren = "Créer sous-tâches par lots"; +$lang->task->batchEdit = "Edition par lots"; +$lang->task->batchChangeModule = "Change Modules par lots"; +$lang->task->batchClose = "Fermeture par lots"; +$lang->task->batchCancel = "Annulation par lots"; +$lang->task->edit = "Editer Tâche"; +$lang->task->delete = "Supprimer"; +$lang->task->deleteAction = "supprimer Tâche"; +$lang->task->deleted = "Supprimée"; +$lang->task->delayed = 'Ajournées'; +$lang->task->view = "Détail Tâche"; +$lang->task->logEfforts = "Effort"; +$lang->task->record = "Estimés"; +$lang->task->start = "Démarrer"; +$lang->task->startAction = "Démarrer Tâche"; +$lang->task->restart = "Continuer"; +$lang->task->restartAction = "Continuer Tâche"; +$lang->task->finishAction = "Terminer Tâche"; +$lang->task->finish = "Finie"; +$lang->task->pause = "Interrompre"; +$lang->task->pauseAction = "Interrompre Tâche"; +$lang->task->close = "Fermer"; +$lang->task->closeAction = "Fermer Tâche"; +$lang->task->cancel = "Annuler"; +$lang->task->cancelAction = "Annuler Tâche"; +$lang->task->activateAction = "Activer Tâche"; +$lang->task->activate = "Activer"; +$lang->task->export = "Exporter Données"; +$lang->task->exportAction = "Exporter Tâche"; +$lang->task->reportChart = "Rapport Graphique"; +$lang->task->fromBug = 'à partir Bug'; +$lang->task->case = 'Associée CasTest'; +$lang->task->confirmStoryChange = "Confirmer Changement"; +$lang->task->storyChange = "Story Changée"; +$lang->task->progress = 'Progression'; +$lang->task->progressAB = '%'; +$lang->task->progressTips = 'Coût/(Coût+Reste)'; +$lang->task->copy = 'Copier Tâche'; +$lang->task->wait = 'A Faire'; +$lang->task->waitAction = 'Tâche à faire'; +$lang->task->reflex = 'Reflexion'; +$lang->task->reflexAction = "Mûrissement Tâche"; + +$lang->task->common = 'Tâche'; +$lang->task->id = 'ID'; +$lang->task->project = $lang->projectCommon; +$lang->task->module = 'Module'; +$lang->task->moduleAB = 'Module'; +$lang->task->story = 'Story'; +$lang->task->storyAB = 'Story'; +$lang->task->storySpec = 'Description Story'; +$lang->task->storyVerify = "Critères d'Acceptance"; +$lang->task->name = 'Nom'; +$lang->task->type = 'Type'; +$lang->task->pri = 'Priorité'; +$lang->task->mailto = 'Mailto'; +$lang->task->estimate = 'Estimés'; +$lang->task->estimateAB = 'Esti.'; +$lang->task->left = 'Reste Heures'; +$lang->task->leftAB = 'Reste'; +$lang->task->consumed = 'Coût Total'; +$lang->task->currentConsumed = 'Coût Actuel'; +$lang->task->myConsumed = 'Mon Coût'; +$lang->task->consumedAB = 'Coût'; +$lang->task->hour = 'Heures'; +$lang->task->consumedThisTime = 'Coût'; +$lang->task->leftThisTime = 'Reste'; +$lang->task->datePlan = 'Timeframe'; +$lang->task->estStarted = 'StartDate'; +$lang->task->realStarted = 'ActualStart'; +$lang->task->date = 'Date'; +$lang->task->deadline = 'Date Butoir'; +$lang->task->deadlineAB = 'Date Butoir'; +$lang->task->status = 'Statut'; +$lang->task->desc = 'Description'; +$lang->task->assign = 'Assigner'; +$lang->task->assignAction = 'Assigner Tâche'; +$lang->task->assignTo = $lang->task->assign; +$lang->task->batchAssignTo = 'Assigner en lots'; +$lang->task->assignedTo = 'Affectée à'; +$lang->task->assignedToAB = 'AssignedTo'; +$lang->task->assignedDate = 'AssignedDate'; +$lang->task->openedBy = 'CreatedBy'; +$lang->task->openedDate = 'CreatedDate'; +$lang->task->openedDateAB = 'CreatedOn'; +$lang->task->finishedBy = 'FinishedBy'; +$lang->task->finishedByAB = 'FinishedBy'; +$lang->task->finishedDate = 'ActualFinished'; +$lang->task->finishedDateAB = 'ActualFinish'; +$lang->task->finishedList = 'FinishedBy'; +$lang->task->canceledBy = 'CancelledBy'; +$lang->task->canceledDate = 'CancelledDate'; +$lang->task->closedBy = 'ClosedBy'; +$lang->task->closedDate = 'ClosedDate'; +$lang->task->closedReason = 'CloseReason'; +$lang->task->lastEditedBy = 'EditedBy'; +$lang->task->lastEditedDate = 'EditedDate'; +$lang->task->lastEdited = 'EditedBy'; +$lang->task->recordEstimate = 'Effort'; +$lang->task->editEstimate = 'Editer Estimé'; +$lang->task->deleteEstimate = 'Supprimer Estimés'; +$lang->task->colorTag = 'Couleur'; +$lang->task->files = 'Fichiers'; +$lang->task->hasConsumed = 'Consommé'; +$lang->task->multiple = 'Utilisateurs Multiples'; +$lang->task->multipleAB = 'M'; +$lang->task->team = 'Equipe'; +$lang->task->transfer = 'Transferer'; +$lang->task->transferTo = 'Transferer à'; +$lang->task->children = 'Sous-Tâche'; +$lang->task->childrenAB = 'C'; +$lang->task->parent = 'Tâche Parent'; +$lang->task->parentAB = 'Parent'; +$lang->task->lblPri = 'P'; +$lang->task->lblHour = '(h)'; +$lang->task->lblTestStory = 'Story Testée'; + +$lang->task->ditto = 'Idem'; +$lang->task->dittoNotice = "Cette Tâche n'est pas associée au projet comme la précédente peut l'être !"; +$lang->task->selectTestStory = 'Select Story Testé'; +$lang->task->selectAllUser = 'Tous Utilis.'; +$lang->task->noStory = 'Aucune Story associée'; +$lang->task->noAssigned = 'Non affectées'; +$lang->task->noFinished = 'Non Finies'; +$lang->task->noClosed = 'Non Fermées'; +$lang->task->yesterdayFinished = 'Tâche Terminée Hier'; +$lang->task->allTasks = 'Tâche'; + +$lang->task->statusList[''] = ''; +$lang->task->statusList['reflex'] = 'En réflexion'; +$lang->task->statusList['wait'] = 'A Faire'; +$lang->task->statusList['doing'] = 'En Cours'; +$lang->task->statusList['done'] = 'Faite'; +$lang->task->statusList['pause'] = 'Interrompue'; +$lang->task->statusList['cancel'] = 'Annulée'; +$lang->task->statusList['closed'] = 'Fermée'; + +$lang->task->typeList[''] = ''; +$lang->task->typeList['design'] = 'Design'; +$lang->task->typeList['devel'] = 'Développement'; +$lang->task->typeList['test'] = 'Test'; +$lang->task->typeList['study'] = 'Analyse'; +$lang->task->typeList['discuss'] = 'Discussion'; +$lang->task->typeList['ui'] = 'UI'; +$lang->task->typeList['affair'] = 'Commercial'; +$lang->task->typeList['misc'] = 'Divers'; + +$lang->task->priList[0] = ''; +$lang->task->priList[1] = '1'; +$lang->task->priList[2] = '2'; +$lang->task->priList[3] = '3'; +$lang->task->priList[4] = '4'; + +$lang->task->reasonList[''] = ''; +$lang->task->reasonList['done'] = 'Fait'; +$lang->task->reasonList['cancel'] = 'Annulé'; + +$lang->task->afterChoices['continueAdding'] = ' Continuer Ajouter Tâches'; +$lang->task->afterChoices['toTaskList'] = 'Aller à la liste des Tâches'; +$lang->task->afterChoices['toStoryList'] = 'Aller à la liste des Stories'; + +$lang->task->legendBasic = 'Infos de Base'; +$lang->task->legendEffort = 'Effort'; +$lang->task->legendLife = 'Vie de la Tâche'; +$lang->task->legendDesc = 'Description Tâche'; + +$lang->task->confirmDelete = "Voulez-vous réellement supprimer cette tâche ?"; +$lang->task->confirmDeleteEstimate = "Voulez-vous la supprimer ?"; +$lang->task->copyStoryTitle = 'StoryModel'; +$lang->task->afterSubmit = "Suiv. "; +$lang->task->successSaved = "Créée !"; +$lang->task->delayWarning = " Retard %s jours "; +$lang->task->remindBug = "Cette tâche a été convertie depuis un bug. Voulez-vous mettre à jour le Bug : %s ?"; +$lang->task->confirmChangeProject = "Si vous changez {$lang->projectCommon}, Module, Story et AssignedTo seront également changés. Voulez-vous le faire ?"; +$lang->task->confirmFinish = '"Heures Restantes" à 0. Voulez-vous passer le statut à "Terminée" ?'; +$lang->task->confirmRecord = '"Heures Restantes" à 0. Voulez-vous passer le statut de la tâche à "Finie" ?'; +$lang->task->confirmTransfer = '"Heures Restantes" à 0. Voulez-vous transférer la tâche ?'; +$lang->task->noticeLinkStory = "Aucune Story n'est associée. Vous pouvez %s pour ce projet, alors %s."; +$lang->task->noticeSaveRecord = "Votre temps n'a pas été sauvé. Enregistrez-le d'abord."; +$lang->task->commentActions = '%s. %s, commenté par %s.'; +$lang->task->deniedNotice = 'Seulement le %s peut %s la tâche.'; +$lang->task->noTask = "Pas de tâche pour l'instant. "; +$lang->task->createDenied = 'La création de tâches est interdite dans ce projet'; + +$lang->task->error = new stdclass(); +$lang->task->error->consumedNumber = '"Coût" doit être numérique.'; +$lang->task->error->estimateNumber = '"Estimé" doit être numérique.'; +$lang->task->error->consumedSmall = '"Coût en heures" doit être > au dernier chiffre.'; +$lang->task->error->consumedThisTime = 'Entrez le "Coût en Heures"'; +$lang->task->error->left = 'Entrez les "Heures Restantes"'; +$lang->task->error->work = '"Commentaire" doit être < %d caractères.'; +$lang->task->error->skipClose = 'Tâche: %s non “Finie” ou “Annulée”. Voulez-vous la fermer malgré tout ?'; +$lang->task->error->consumed = 'Tâche: %s heures doivent être < 0. Ignorer changements de cette tâche.'; +$lang->task->error->assignedTo = "Tâche Multi-user dans le statut courant ne peut pas être assignée à un membre qui ne fait pas partie de l'équipe."; +$lang->task->error->consumedEmpty = '"Coût Actuel" ne devrait pas être vide.'; + +/* Report. */ +$lang->task->report = new stdclass(); +$lang->task->report->common = 'Rapport'; +$lang->task->report->select = 'Choix Type de Rapport'; +$lang->task->report->create = 'Créer Rapport'; +$lang->task->report->value = 'Tâches'; + +$lang->task->report->charts['tasksPerProject'] = 'Regroupé par ' . $lang->projectCommon . ' Tâche'; +$lang->task->report->charts['tasksPerModule'] = 'Regroupé par Module'; +$lang->task->report->charts['tasksPerAssignedTo'] = 'Regroupé par Assignation'; +$lang->task->report->charts['tasksPerType'] = 'Regroupé par Type de Tâche'; +$lang->task->report->charts['tasksPerPri'] = 'Regroupé par Priorité Tâche'; +$lang->task->report->charts['tasksPerStatus'] = 'Regroupé par Statut de Tâche'; +$lang->task->report->charts['tasksPerDeadline'] = 'Regroupé par date butoir'; +$lang->task->report->charts['tasksPerEstimate'] = 'Regroupé par Estimé'; +$lang->task->report->charts['tasksPerLeft'] = 'Regroupé par H. Restantes'; +$lang->task->report->charts['tasksPerConsumed'] = 'Regroupé par H. Consommées'; +$lang->task->report->charts['tasksPerFinishedBy'] = 'Regroupé par Finisseur'; +$lang->task->report->charts['tasksPerClosedReason'] = 'Par Raison de Fermeture'; +$lang->task->report->charts['finishedTasksPerDay'] = 'Par Tâches Finies/Jour'; + +$lang->task->report->options = new stdclass(); +$lang->task->report->options->graph = new stdclass(); +$lang->task->report->options->type = 'pie'; +$lang->task->report->options->width = 500; +$lang->task->report->options->height = 140; + +$lang->task->report->tasksPerProject = new stdclass(); +$lang->task->report->tasksPerModule = new stdclass(); +$lang->task->report->tasksPerAssignedTo = new stdclass(); +$lang->task->report->tasksPerType = new stdclass(); +$lang->task->report->tasksPerPri = new stdclass(); +$lang->task->report->tasksPerStatus = new stdclass(); +$lang->task->report->tasksPerDeadline = new stdclass(); +$lang->task->report->tasksPerEstimate = new stdclass(); +$lang->task->report->tasksPerLeft = new stdclass(); +$lang->task->report->tasksPerConsumed = new stdclass(); +$lang->task->report->tasksPerFinishedBy = new stdclass(); +$lang->task->report->tasksPerClosedReason = new stdclass(); +$lang->task->report->finishedTasksPerDay = new stdclass(); + +$lang->task->report->tasksPerProject->item = $lang->projectCommon; +$lang->task->report->tasksPerModule->item = 'Module'; +$lang->task->report->tasksPerAssignedTo->item = 'Détenteur'; +$lang->task->report->tasksPerType->item = 'Type'; +$lang->task->report->tasksPerPri->item = 'Priorité'; +$lang->task->report->tasksPerStatus->item = 'Statut'; +$lang->task->report->tasksPerDeadline->item = 'Date'; +$lang->task->report->tasksPerEstimate->item = 'Estimé'; +$lang->task->report->tasksPerLeft->item = 'Reste à faire (H)'; +$lang->task->report->tasksPerConsumed->item = 'Consommé'; +$lang->task->report->tasksPerFinishedBy->item = 'Finisseur'; +$lang->task->report->tasksPerClosedReason->item = 'Raison'; +$lang->task->report->finishedTasksPerDay->item = 'Date'; + +$lang->task->report->tasksPerProject->graph = new stdclass(); +$lang->task->report->tasksPerModule->graph = new stdclass(); +$lang->task->report->tasksPerAssignedTo->graph = new stdclass(); +$lang->task->report->tasksPerType->graph = new stdclass(); +$lang->task->report->tasksPerPri->graph = new stdclass(); +$lang->task->report->tasksPerStatus->graph = new stdclass(); +$lang->task->report->tasksPerDeadline->graph = new stdclass(); +$lang->task->report->tasksPerEstimate->graph = new stdclass(); +$lang->task->report->tasksPerLeft->graph = new stdclass(); +$lang->task->report->tasksPerConsumed->graph = new stdclass(); +$lang->task->report->tasksPerFinishedBy->graph = new stdclass(); +$lang->task->report->tasksPerClosedReason->graph = new stdclass(); +$lang->task->report->finishedTasksPerDay->graph = new stdclass(); + +$lang->task->report->tasksPerProject->graph->xAxisName = $lang->projectCommon; +$lang->task->report->tasksPerModule->graph->xAxisName = 'Module'; +$lang->task->report->tasksPerAssignedTo->graph->xAxisName = 'Utilisateur'; +$lang->task->report->tasksPerType->graph->xAxisName = 'Type'; +$lang->task->report->tasksPerPri->graph->xAxisName = 'Priorité'; +$lang->task->report->tasksPerStatus->graph->xAxisName = 'Statut'; +$lang->task->report->tasksPerDeadline->graph->xAxisName = 'Date'; +$lang->task->report->tasksPerEstimate->graph->xAxisName = 'Estimé'; +$lang->task->report->tasksPerLeft->graph->xAxisName = 'R.à.Faire(h)'; +$lang->task->report->tasksPerConsumed->graph->xAxisName = 'Consommé (h)'; +$lang->task->report->tasksPerFinishedBy->graph->xAxisName = 'Utilisateur'; +$lang->task->report->tasksPerClosedReason->graph->xAxisName = 'Raison Fermeture'; + +$lang->task->report->finishedTasksPerDay->type = 'bar'; +$lang->task->report->finishedTasksPerDay->graph->xAxisName = 'Date'; diff --git a/module/testcase/lang/fr.php b/module/testcase/lang/fr.php new file mode 100644 index 0000000000..d205577e0b --- /dev/null +++ b/module/testcase/lang/fr.php @@ -0,0 +1,219 @@ + + * @package testcase + * @version $Id: en.php 4966 2013-07-02 02:59:25Z wyd621@gmail.com $ + * @link https://www.zentao.pm + */ +$lang->testcase->id = 'ID'; +$lang->testcase->product = $lang->productCommon; +$lang->testcase->module = 'Module'; +$lang->testcase->lib = "Case Library"; +$lang->testcase->branch = "Branche/Platforme"; +$lang->testcase->moduleAB = 'Module'; +$lang->testcase->story = 'Story'; +$lang->testcase->title = 'Titre'; +$lang->testcase->precondition = 'Prérequis'; +$lang->testcase->pri = 'Priorité'; +$lang->testcase->type = 'Type'; +$lang->testcase->status = 'Statur'; +$lang->testcase->steps = 'Etape'; +$lang->testcase->openedBy = 'Créé par'; +$lang->testcase->openedDate = 'Créé le'; +$lang->testcase->lastEditedBy = 'Modifié par'; +$lang->testcase->result = 'Résultat'; +$lang->testcase->real = 'Détails'; +$lang->testcase->keywords = 'Tags'; +$lang->testcase->files = 'Fichiers'; +$lang->testcase->linkCase = 'CasTests liés'; +$lang->testcase->linkCases = 'Associer CasTests'; +$lang->testcase->unlinkCase = 'Dissocier CasTest'; +$lang->testcase->stage = 'Phase'; +$lang->testcase->reviewedBy = 'Validé par'; +$lang->testcase->reviewedDate = 'Validé le'; +$lang->testcase->reviewResult = 'Résultat validation'; +$lang->testcase->reviewedByAB = 'Validé par'; +$lang->testcase->reviewedDateAB = 'Validé le'; +$lang->testcase->reviewResultAB = 'Résultat validation'; +$lang->testcase->forceNotReview = 'Aucune Validation Requise'; +$lang->testcase->lastEditedByAB = 'Modifié par'; +$lang->testcase->lastEditedDateAB = 'Modifié le'; +$lang->testcase->lastEditedDate = 'Modifié le'; +$lang->testcase->version = 'Version CasTest'; +$lang->testcase->lastRunner = 'Joué par'; +$lang->testcase->lastRunDate = 'Dernier Run'; +$lang->testcase->assignedTo = 'Affecté à'; +$lang->testcase->colorTag = 'Couleur'; +$lang->testcase->lastRunResult = 'Résultat'; +$lang->testcase->desc = 'Etape'; +$lang->testcase->expect = 'Résultat Attendu'; +$lang->testcase->allProduct = "Tous {$lang->productCommon}s"; +$lang->testcase->fromBug = 'Depuis Bug'; +$lang->testcase->toBug = 'Vers Bug'; +$lang->testcase->changed = 'Changé'; +$lang->testcase->bugs = 'Bugs Signalés'; +$lang->testcase->bugsAB = 'B'; +$lang->testcase->results = 'Résultat'; +$lang->testcase->resultsAB = 'R'; +$lang->testcase->stepNumber = 'Etape'; +$lang->testcase->stepNumberAB = 'S'; +$lang->testcase->createBug = 'Signaler Bug'; +$lang->testcase->fromModule = 'Module Source'; +$lang->testcase->fromCase = 'CasTest Source'; +$lang->testcase->sync = 'Sync. CasTests'; +$lang->testcase->ignore = 'Ignorer'; +$lang->testcase->fromTesttask = 'De Campagne'; +$lang->testcase->fromCaselib = 'De Library'; +$lang->case = $lang->testcase; // For dao checking using. Because 'case' is a php keywords, so the module name is testcase, table name is still case. + +$lang->testcase->stepID = 'ID'; +$lang->testcase->stepDesc = 'Etape'; +$lang->testcase->stepExpect = 'Résultat Attendu'; +$lang->testcase->stepVersion = 'Version'; + +$lang->testcase->common = 'CasTest'; +$lang->testcase->index = "Accueil CasTest"; +$lang->testcase->create = "Ajout CasTest"; +$lang->testcase->batchCreate = "Ajouter par Lot"; +$lang->testcase->delete = "Supprimer"; +$lang->testcase->deleteAction = "Supprimer CasTest"; +$lang->testcase->view = "Détail CasTest"; +$lang->testcase->review = "Doit être validé"; +$lang->testcase->reviewAB = "Validation"; +$lang->testcase->batchReview = "Validation par Lot"; +$lang->testcase->edit = "Modifier CasTest"; +$lang->testcase->batchEdit = "Modifier par Lot "; +$lang->testcase->batchChangeModule = "Changer Modules par Lot"; +$lang->testcase->confirmLibcaseChange = "Confirmer Modification Library"; +$lang->testcase->ignoreLibcaseChange = "Ignorer Modification Library"; +$lang->testcase->batchChangeBranch = "Changer Branches par Lot"; +$lang->testcase->groupByStories = 'Grouper par Story'; +$lang->testcase->batchDelete = "Supprimer par Lot "; +$lang->testcase->batchConfirmStoryChange = "Confirmer par Lot"; +$lang->testcase->batchCaseTypeChange = "Changer Types par Lot"; +$lang->testcase->browse = "Liste CasTests"; +$lang->testcase->groupCase = "Vue par Groupe"; +$lang->testcase->import = "Importer"; +$lang->testcase->importAction = "Importer CasTest"; +$lang->testcase->importFile = "Importer CSV"; +$lang->testcase->importFromLib = "Importer de la Library"; +$lang->testcase->showImport = "Voir Import"; +$lang->testcase->exportTemplet = "Exporter Modèle"; +$lang->testcase->export = "Exporter Données"; +$lang->testcase->exportAction = "Exporter CasTest"; +$lang->testcase->reportChart = 'Graphique'; +$lang->testcase->reportAction = 'Rapport CasTest'; +$lang->testcase->confirmChange = 'Confirmer Modification CasTest'; +$lang->testcase->confirmStoryChange = 'Confirmer Modification Story'; +$lang->testcase->copy = 'Copier CasTest'; +$lang->testcase->group = 'Groupe'; +$lang->testcase->groupName = 'Nom Groupe'; +$lang->testcase->step = 'Etapes'; +$lang->testcase->stepChild = 'Sous-Etapes'; +$lang->testcase->viewAll = 'Tous les CasTests'; + +$lang->testcase->new = 'Nouveau'; + +$lang->testcase->num = 'Ligne CasTes:'; + +$lang->testcase->deleteStep = 'Supprimer'; +$lang->testcase->insertBefore = 'Insérer Avant'; +$lang->testcase->insertAfter = 'Insérer Après'; + +$lang->testcase->assignToMe = 'Affecté à Moi'; +$lang->testcase->openedByMe = 'Créé par Moi'; +$lang->testcase->allCases = 'Tous'; +$lang->testcase->allTestcases = 'Tous les CasTests'; +$lang->testcase->needConfirm = 'Story Changée'; +$lang->testcase->bySearch = 'Rechercher'; +$lang->testcase->unexecuted = 'En Attente'; + +$lang->testcase->lblStory = 'Story liée'; +$lang->testcase->lblLastEdited = 'Modifié par'; +$lang->testcase->lblTypeValue = 'Valeur Type'; +$lang->testcase->lblStageValue = 'Valeur Phase'; +$lang->testcase->lblStatusValue = 'Valeur Statut'; + +$lang->testcase->legendBasicInfo = 'Infos de Base'; +$lang->testcase->legendAttatch = 'Fichiers'; +$lang->testcase->legendLinkBugs = 'Bugs'; +$lang->testcase->legendOpenAndEdit = 'Créer/Editer'; +$lang->testcase->legendComment = 'Commentaire'; + +$lang->testcase->summary = "Total %s castests sur cette page, et %s castests ont été joués."; +$lang->testcase->confirmDelete = 'Voulez-vous supprimer ce CasTest ?'; +$lang->testcase->confirmBatchDelete = 'Voulez-vous supprimer des Castests par Lot ?'; +$lang->testcase->ditto = 'Idem'; +$lang->testcase->dittoNotice = "Ce CasTest n'est pas associé au Product alors quele précédent l'était !"; + +$lang->testcase->reviewList[0] = 'NON'; +$lang->testcase->reviewList[1] = 'OUI'; + +$lang->testcase->priList[0] = ''; +$lang->testcase->priList[3] = 3; +$lang->testcase->priList[1] = 1; +$lang->testcase->priList[2] = 2; +$lang->testcase->priList[4] = 4; + +/* Define the types. */ +$lang->testcase->typeList[''] = ''; +$lang->testcase->typeList['feature'] = 'Fonctionnalité'; +$lang->testcase->typeList['performance'] = 'Performance'; +$lang->testcase->typeList['config'] = 'Configuration'; +$lang->testcase->typeList['install'] = 'Installation'; +$lang->testcase->typeList['security'] = 'Sécurité'; +$lang->testcase->typeList['interface'] = 'Interface'; +$lang->testcase->typeList['other'] = 'Autre'; + +$lang->testcase->stageList[''] = ''; +$lang->testcase->stageList['unittest'] = 'Test Unitaire'; +$lang->testcase->stageList['feature'] = 'Test Fonctionnel'; // recette MOE +$lang->testcase->stageList['intergrate'] = "Test d'Intégration"; // assemblage +$lang->testcase->stageList['qualif'] = "Test d'Homologation"; // recette MOA +$lang->testcase->stageList['system'] = 'Test Système'; +$lang->testcase->stageList['smoke'] = 'Test de Charge'; +$lang->testcase->stageList['bvt'] = 'Vérification Build (BVT)'; + +$lang->testcase->reviewResultList[''] = ''; +$lang->testcase->reviewResultList['pass'] = 'Réussi'; +$lang->testcase->reviewResultList['clarify'] = 'à Clarifier'; + +$lang->testcase->statusList[''] = ''; +$lang->testcase->statusList['wait'] = 'En Attente'; +$lang->testcase->statusList['normal'] = 'Normal'; +$lang->testcase->statusList['blocked'] = 'Bloqué'; +$lang->testcase->statusList['investigate'] = 'Analyse'; + +$lang->testcase->resultList['n/a'] = 'Ignorer'; +$lang->testcase->resultList['pass'] = 'Réussite'; +$lang->testcase->resultList['fail'] = 'Echec'; +$lang->testcase->resultList['blocked'] = 'Bloqué'; + +$lang->testcase->buttonToList = 'Retour'; + +$lang->testcase->errorEncode = 'No data. Please select right encoding and upload again!'; +$lang->testcase->noFunction = 'Iconv and mb_convert_encoding are not found. You cannot convert the data to the encoding you want!'; +$lang->testcase->noRequire = "Row %s has“%s ”which is a required field and it should not be blank."; +$lang->testcase->noLibrary = "Aucune library n'existe. Créez-en une pour commencer."; +$lang->testcase->mustChooseResult = 'La Validation du résultat est nécessaire.'; +$lang->testcase->noModule = "%s";
+$lang->translate->notice->failCopyFile = "Echec lors de la copie de %s vers %s. Modifiez vos privilèges.";
+$lang->translate->notice->failUnique = "L'objet avec le Code %s existe déjà.";
+$lang->translate->notice->failMaxInput = "Modifiez la valeur de max_input_vars en % dans php.ini pour vous assurer que votre formulaire est soumit.";
+$lang->translate->notice->failRuleCode = "『 Code 』 doit être composé de lettres, chiffres et souslignés.";
diff --git a/module/tree/lang/fr.php b/module/tree/lang/fr.php
new file mode 100644
index 0000000000..53b2274353
--- /dev/null
+++ b/module/tree/lang/fr.php
@@ -0,0 +1,63 @@
+
+ * @package tree
+ * @version $Id: en.php 5045 2013-07-06 07:04:40Z zhujinyonging@gmail.com $
+ * @link https://www.zentao.pm
+ */
+$lang->tree = new stdclass();
+$lang->tree->common = 'Module';
+$lang->tree->edit = 'Editer Module';
+$lang->tree->delete = 'Supprimer Module';
+$lang->tree->browse = 'Gérer les Modules Généraux';
+$lang->tree->browseTask = 'Gérer les Modules Tâche';
+$lang->tree->manage = 'Gérer les Modules';
+$lang->tree->fix = 'Corrigez Module';
+$lang->tree->manageProduct = "Gérer les Modules {$lang->productCommon}";
+$lang->tree->manageProject = "Gérer les Modules {$lang->projectCommon}";
+$lang->tree->manageLine = 'Gérer Ligne Produit';
+$lang->tree->manageBug = 'Gérer Bugs';
+$lang->tree->manageCase = 'Gérer CasTests';
+$lang->tree->manageCaseLib = 'Gérer Librairie de recette';
+$lang->tree->manageCustomDoc = 'Gérer la librairie de Doc';
+$lang->tree->updateOrder = 'Rang Module';
+$lang->tree->manageChild = 'Gérer Sous-Module';
+$lang->tree->manageStoryChild = 'Gérer Sous-Module';
+$lang->tree->manageLineChild = 'Gérer Ligne Produit';
+$lang->tree->manageBugChild = 'Gérer Sous-Bugs';
+$lang->tree->manageCaseChild = 'Gérer Sous-CasTests';
+$lang->tree->manageCaselibChild = 'Gérer Sous-Librairies';
+$lang->tree->manageTaskChild = "Gérer Sous-Modules {$lang->projectCommon}";
+$lang->tree->syncFromProduct = "Copier d'un autre {$lang->productCommon}";
+$lang->tree->dragAndSort = "Faites glisser pour ordonner";
+$lang->tree->sort = "Ordonnez";
+$lang->tree->addChild = "Ajout Sous-Module";
+$lang->tree->confirmDelete = 'Voulez-vous supprimer ce module et tous ses sous-modules ?';
+$lang->tree->confirmDeleteLine = 'Voulez-vous supprimer cette ligne de produit ?';
+$lang->tree->confirmRoot = "Les changements du {$lang->productCommon} vont impacter les stories, bugs, casTests du {$lang->productCommon} auquel ils appartiennent, ainsi que les associations de {$lang->projectCommon} et {$lang->productCommon}, ce qui est dangereux. Voulez-vous malgré tout effectuer le changement ?";
+$lang->tree->successSave = 'Sauvé.';
+$lang->tree->successFixed = 'Corrigé.';
+$lang->tree->repeatName = 'Le nom "%s" existe déjà !';
+
+$lang->tree->module = 'Module';
+$lang->tree->name = 'Nom';
+$lang->tree->line = 'Ligne Produit';
+$lang->tree->cate = 'Catégorie';
+$lang->tree->root = 'Racine';
+$lang->tree->branch = 'Plateforme/Branche';
+$lang->tree->path = 'Chemin';
+$lang->tree->type = 'Type';
+$lang->tree->parent = 'Module Parent';
+$lang->tree->parentCate = 'Catégorie Parente';
+$lang->tree->child = 'Enfants';
+$lang->tree->lineChild = 'Sous-Ligne Produit';
+$lang->tree->owner = 'Propriétaire';
+$lang->tree->order = 'Ordre';
+$lang->tree->short = 'Abbr.';
+$lang->tree->all = 'Tous les Modules';
+$lang->tree->projectDoc = "Document {$lang->projectCommon}";
+$lang->tree->product = $lang->productCommon;
diff --git a/module/tutorial/lang/fr.php b/module/tutorial/lang/fr.php
new file mode 100644
index 0000000000..89a4cd8eac
--- /dev/null
+++ b/module/tutorial/lang/fr.php
@@ -0,0 +1,67 @@
+
+ * @package ZenTaoPMS
+ * @version $Id: zh-cn.php 5116 2013-07-12 06:37:48Z sunhao@cnezsoft.com $
+ * @link https://www.zentao.pm
+ */
+$lang->tutorial = new stdclass();
+$lang->tutorial->common = 'Tutorial';
+$lang->tutorial->desc = 'You can know how to use ZenTao by doing tasks. It takes about 10 minutes, and you can quit anytime.';
+$lang->tutorial->start = "Let's go!";
+$lang->tutorial->exit = 'Quit';
+$lang->tutorial->congratulation = 'Congratulations! You have completed all tasks.';
+$lang->tutorial->restart = 'Restart';
+$lang->tutorial->currentTask = 'Current Task';
+$lang->tutorial->allTasks = 'All Tasks';
+$lang->tutorial->previous = 'Previous';
+$lang->tutorial->nextTask = 'Next';
+$lang->tutorial->openTargetPage = 'Open target';
+$lang->tutorial->atTargetPage = 'On target';
+$lang->tutorial->reloadTargetPage = 'Reload';
+$lang->tutorial->target = 'Target';
+$lang->tutorial->targetPageTip = 'Open【%s】page by following this instruction.';
+$lang->tutorial->requiredTip = '【%s】is required.';
+$lang->tutorial->congratulateTask = 'Congratulations! You have finished【】!';
+$lang->tutorial->serverErrorTip = 'Error!';
+$lang->tutorial->ajaxSetError = 'Finished task must be defined. If you want to reset the Task, please set its value as null.';
+$lang->tutorial->novice = "For a quick start, let's go through a two-minute Tutorial.";
+$lang->tutorial->dataNotSave = "Data generated in this Tutorial will not be saved!";
+
+$lang->tutorial->tasks = array();
+
+$lang->tutorial->tasks['createAccount'] = array('title' => 'Create a User');
+$lang->tutorial->tasks['createAccount']['nav'] = array('module' => 'user', 'method' => 'create', 'menuModule' => 'company', 'menu' => 'browseUser', 'form' => '#createForm', 'submit' => '#submit', 'target' => '.create-user-btn', 'targetPageName' => 'Add User');
+$lang->tutorial->tasks['createAccount']['desc'] = "Create a User:
Create a {$lang->productCommon}:
Create a story:
Create a {$lang->projectCommon}:
Manage {$lang->projectCommon} team members:
Link a Story to {$lang->projectCommon}:
Task breakdown for a story:
Report a Bug:
+1. Utilisez phpMyAdmin pour faire la sauvegarde. +2. Utilisez une commande mysql pour faire la sauvegarde. + $> mysqldump -u username -p dbname > filename + Changez le texte en rouge par les code user et le nom de la base qui correspondent. + e.g. mysqldump -u root -p zentao >zentao.bak ++EOT; +$lang->upgrade->createFileWinCMD = 'Ouvrez la fenêtre Ligne de commandes de windows et exécutez echo > %s'; +$lang->upgrade->createFileLinuxCMD = 'Executez la ligne de commande suivante: touch %s'; +$lang->upgrade->setStatusFile = '
Vous avez lu et accompli toutes les actions précédentes. Continuez la mise à jour.
'; +$lang->upgrade->selectVersion = 'Version'; +$lang->upgrade->continue = 'Continuer'; +$lang->upgrade->noteVersion = "Sélectionnez une version compatible où vous pourriez perdre des données."; +$lang->upgrade->fromVersion = 'De'; +$lang->upgrade->toVersion = 'à'; +$lang->upgrade->confirm = 'Confirmez SQL'; +$lang->upgrade->sureExecute = 'Executez'; +$lang->upgrade->forbiddenExt = 'Cette extension est incompatible avec la version. Elle a été désactivée :'; +$lang->upgrade->updateFile = "Le fichier information a besoin d'une mise à jour."; +$lang->upgrade->noticeSQL = 'Votre base de donnée est inconsistente avec le standard et il y a eu un échec pour la corriger. Exécutez la commande SQL suivante et rafraichissez.'; +$lang->upgrade->afterDeleted = "Le fichier n'est pas supprimé. Recommencez après l'avoir supprimé."; + +include dirname(__FILE__) . '/version.php'; diff --git a/module/user/lang/fr.php b/module/user/lang/fr.php new file mode 100644 index 0000000000..03c3609af8 --- /dev/null +++ b/module/user/lang/fr.php @@ -0,0 +1,208 @@ + + * @package user + * @version $Id: en.php 5053 2013-07-06 08:17:37Z wyd621@gmail.com $ + * @link https://www.zentao.pm + */ +$lang->user->common = 'Utilisateur'; +$lang->user->id = 'ID'; +$lang->user->company = 'Entreprise'; +$lang->user->dept = 'Compartiment'; +$lang->user->account = 'Compte'; +$lang->user->password = 'Mot de Passe'; +$lang->user->password2 = 'Répétez Password'; +$lang->user->role = 'Rôle'; +$lang->user->group = 'Groupe de Privilèges'; +$lang->user->realname = 'Nom'; +$lang->user->nickname = 'Pseudo'; +$lang->user->commiter = 'Compte SVN/GIT'; +$lang->user->birthyear = 'DOB'; +$lang->user->gender = 'Sexe'; +$lang->user->email = 'Email'; +$lang->user->basicInfo = 'Info. de base'; +$lang->user->accountInfo = 'Info. Compte'; +$lang->user->verify = 'Vérification'; +$lang->user->contactInfo = 'Contact'; +$lang->user->skype = 'Skype'; +$lang->user->qq = 'QQ'; +$lang->user->mobile = 'Mobile'; +$lang->user->phone = 'Tél.Fixe'; +$lang->user->weixin = 'WeChat'; +$lang->user->dingding = 'DingDing'; +$lang->user->slack = 'Slack'; +$lang->user->whatsapp = 'WhatsApp'; +$lang->user->address = 'Adresse'; +$lang->user->zipcode = 'Code Postal'; +$lang->user->join = 'Ajouté le'; +$lang->user->visits = 'Nb Visites'; +$lang->user->ip = 'Dernière IP'; +$lang->user->last = 'Dernier Login'; +$lang->user->ranzhi = 'Compte Zdoo'; +$lang->user->ditto = 'Ditto'; +$lang->user->originalPassword = 'Ancien Password'; +$lang->user->newPassword = 'Nouveau Password'; +$lang->user->verifyPassword = 'Mot de Passe'; +$lang->user->resetPassword = 'Password oublié ?'; + +$lang->user->legendBasic = 'Informations de Base'; +$lang->user->legendContribution = 'Contribution'; + +$lang->user->index = "Accueil"; +$lang->user->view = "Détail utilisateur"; +$lang->user->create = "Ajout Utilisateur"; +$lang->user->batchCreate = "Ajout par lot"; +$lang->user->edit = "Modification Utilisateur"; +$lang->user->batchEdit = "Modification par lot"; +$lang->user->unlock = "Débloquer Utilisateur"; +$lang->user->delete = "Supprimer Utilisateur"; +$lang->user->unbind = "Dissocier de Zdoo"; +$lang->user->login = "Login"; +$lang->user->mobileLogin = "Mobile"; +$lang->user->editProfile = "Editer Profil"; +$lang->user->deny = "Your access is denied."; +$lang->user->confirmDelete = "Voulez-vous supprimer cet utilisateur ?"; +$lang->user->confirmUnlock = "Voulez-vous débloquer cet utilisateur ?"; +$lang->user->confirmUnbind = "Voulez-vous dissocier cet utilisateur de Zdoo ?"; +$lang->user->relogin = "Reconnexion"; +$lang->user->asGuest = "Invité"; +$lang->user->goback = "Retour"; +$lang->user->deleted = '(Supprimé)'; +$lang->user->search = 'Recherche'; + +$lang->user->saveTemplate = 'Sauver comme Modèle'; +$lang->user->setPublic = 'Définir comme Modèle Public'; +$lang->user->deleteTemplate = 'Supprimer ce Modèle'; +$lang->user->setTemplateTitle = 'Entrez le titre du Modèle.'; +$lang->user->applyTemplate = 'Modèles'; +$lang->user->confirmDeleteTemplate = 'Voulez-vous vraiment supprimer ce modèle ?'; +$lang->user->setPublicTemplate = 'Définir comme Modèle Public'; + +$lang->user->profile = 'Profil'; +$lang->user->project = $lang->projectCommon . 's'; +$lang->user->task = 'Tâches'; +$lang->user->bug = 'Bugs'; +$lang->user->test = 'Test'; +$lang->user->testTask = 'Recettes'; +$lang->user->testCase = 'CasTests'; +$lang->user->schedule = 'Agenda'; +$lang->user->todo = 'Todo List'; +$lang->user->story = 'Stories'; +$lang->user->dynamic = 'Historique'; + +$lang->user->openedBy = 'Créé par %s'; +$lang->user->assignedTo = 'Assigné à %s'; +$lang->user->finishedBy = 'Terminé par %s'; +$lang->user->resolvedBy = 'Résolu par %s'; +$lang->user->closedBy = 'Fermé par %s'; +$lang->user->reviewedBy = 'Validé par %s'; +$lang->user->canceledBy = 'Annulé par %s'; + +$lang->user->testTask2Him = 'Recette assignée à %s'; +$lang->user->case2Him = 'CasTest assigné à %s'; +$lang->user->caseByHim = 'CasTest créé par %s'; + +$lang->user->errorDeny = "Sorry, your access to %s of %s is denied. Please contact your Admin to get privileges. Click Back to return."; +$lang->user->loginFailed = "Echec de connexion. Vérifiez votre login et mot de passe."; +$lang->user->lockWarning = "Vous avez %s essais."; +$lang->user->loginLocked = "Votre compte est bloqué. Contactez l'administrateur pour débloquer votre compte ou attendez %s minutes pour une nouvelle tentative."; +$lang->user->weakPassword = "Votre mot de passe ne respecte pas les règles de sécurité."; + +$lang->user->roleList[''] = ''; +$lang->user->roleList['dev'] = 'Développeur'; +$lang->user->roleList['qa'] = 'Testeur'; +$lang->user->roleList['pm'] = 'Scrum Master'; +$lang->user->roleList['po'] = 'Product Owner'; +$lang->user->roleList['td'] = 'Technical Manager'; +$lang->user->roleList['pd'] = 'Product Manager'; +$lang->user->roleList['qd'] = 'Tests Manager'; +$lang->user->roleList['top'] = 'Senior Manager'; +$lang->user->roleList['others'] = 'Autres'; + +$lang->user->genderList['m'] = 'Homme'; +$lang->user->genderList['f'] = 'Femme'; + +$lang->user->thirdPerson['m'] = 'lui'; +$lang->user->thirdPerson['f'] = 'lui'; + +$lang->user->passwordStrengthList[0] = "Faible"; +$lang->user->passwordStrengthList[1] = "Bon"; +$lang->user->passwordStrengthList[2] = "Fort"; + +$lang->user->statusList['active'] = 'Actif'; +$lang->user->statusList['delete'] = 'Supprimé'; + +$lang->user->personalData['createdTodo'] = 'Entrées Agenda Créées'; +$lang->user->personalData['createdStory'] = 'Stories Créées'; +$lang->user->personalData['finishedTask'] = 'Tâches Terminées'; +$lang->user->personalData['resolvedBug'] = 'Bugs Résolus'; +$lang->user->personalData['createdCase'] = 'CasTests Créés'; + +$lang->user->keepLogin['on'] = 'Rester connecté'; +$lang->user->loginWithDemoUser = "Se connecté en tant qu'invité :"; + +$lang->user->tpl = new stdclass(); +$lang->user->tpl->type = 'Type'; +$lang->user->tpl->title = 'TPL Titre'; +$lang->user->tpl->content = 'Contenu'; +$lang->user->tpl->public = 'Public'; + +$lang->user->placeholder = new stdclass(); +$lang->user->placeholder->account = '>= 3 lettres, souligné et chiffres'; +$lang->user->placeholder->password1 = '>= 6 caractères'; +$lang->user->placeholder->role = "Rôle affecte le contenu et l'ordre dans la liste des utilisateurs."; +$lang->user->placeholder->group = "Groupe correspond aux privilèges utilisateurs."; +$lang->user->placeholder->commiter = 'Compte SVN/Git'; +$lang->user->placeholder->verify = 'Entrez votre Mot de passe.'; + +$lang->user->placeholder->passwordStrength[1] = '>= 6 lettres et chiffres'; +$lang->user->placeholder->passwordStrength[2] = '>= 10 lettres, chiffres et caractères spéciaux'; + +$lang->user->error = new stdclass(); +$lang->user->error->account = "ID %s,compte doit être >= 3 lettres, souligné ou chiffres"; +$lang->user->error->accountDupl = "ID %s,compte déjà utilisé par quelqu'un d'autre."; +$lang->user->error->realname = "ID %s,doit être votre véritable nom"; +$lang->user->error->password = "ID %s,Mot de passe doit être >= 6 caractères."; +$lang->user->error->mail = "ID %s,entrez une adresse mail valide"; +$lang->user->error->reserved = "ID %s,compte réservé. Vous ne pouvez pas l'utiliser."; + +$lang->user->error->verifyPassword = "Vérification en échec. Entrez votre Mot de Passe de Connexion."; +$lang->user->error->originalPassword = "Ancien Mot de Passe incorrect."; + +$lang->user->contactFieldList['phone'] = $lang->user->phone; +$lang->user->contactFieldList['mobile'] = $lang->user->mobile; +$lang->user->contactFieldList['qq'] = $lang->user->qq; +$lang->user->contactFieldList['dingding'] = $lang->user->dingding; +$lang->user->contactFieldList['weixin'] = $lang->user->weixin; +$lang->user->contactFieldList['skype'] = $lang->user->skype; +$lang->user->contactFieldList['slack'] = $lang->user->slack; +$lang->user->contactFieldList['whatsapp'] = $lang->user->whatsapp; + +$lang->user->contacts = new stdclass(); +$lang->user->contacts->common = 'Contacts'; +$lang->user->contacts->listName = 'Nom de la Liste'; +$lang->user->contacts->userList = 'Liste Utilisateurs'; + +$lang->user->contacts->manage = 'Gérer la Liste'; +$lang->user->contacts->contactsList = 'Liste de Contacts'; +$lang->user->contacts->selectedUsers = 'Utilisateurs'; +$lang->user->contacts->selectList = 'Liste'; +$lang->user->contacts->createList = 'Créer Liste'; +$lang->user->contacts->noListYet = 'Aucune liste de contacts existante. Créez-en une première.'; +$lang->user->contacts->confirmDelete = 'Voulez-vous supprimer cette liste de contacts ?'; +$lang->user->contacts->or = ' ou '; + +$lang->user->resetFail = "ECHEC. Vérifiez votre compte."; +$lang->user->resetSuccess = "Reset ! Utilisez votre nouveau mot de passe pour vous connecter."; +$lang->user->noticeResetFile = "Note :
+