This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository coselmar. See http://git.codelutin.com/coselmar.git commit 6220fb4517925d89d3eb5c5fe3dfb1d9b9b7e2fb Author: Yannick Martel <martel@©odelutin.com> Date: Fri Jan 23 15:14:27 2015 +0100 i18n french translation --- coselmar-ui/src/main/webapp/i18n/en.js | 32 +++- coselmar-ui/src/main/webapp/i18n/fr.js | 191 ++++++++++++++++++++- coselmar-ui/src/main/webapp/index.html | 6 +- .../src/main/webapp/js/coselmar-controllers.js | 2 +- .../src/main/webapp/views/admin/admintools.html | 12 +- .../main/webapp/views/referential/referential.html | 33 ++-- 6 files changed, 248 insertions(+), 28 deletions(-) diff --git a/coselmar-ui/src/main/webapp/i18n/en.js b/coselmar-ui/src/main/webapp/i18n/en.js index 6ed10bb..75e7453 100644 --- a/coselmar-ui/src/main/webapp/i18n/en.js +++ b/coselmar-ui/src/main/webapp/i18n/en.js @@ -18,11 +18,19 @@ var translateEN = { "menu.button.profile" : "Profile", "menu.button.logout" : "Logout", +//Footer + +"footer.item.licence" : "Licence", +"footer.item.report" : "Bug report", +"footer.item.support" : "User support", + +//Documents part + "document.list.title" : "All documents", "document.modalSearch.title" : "Search Documents", "document.button.add" : "Add a document", "document.message.delete" : "Do you really want to delete this document ?", -"document.view.title" : "Document's details", +"document.view.title" : "Document's details", "document.create.title" : "New document", "document.create.info" : "Here you can add a new document in the repository. For each document,\ some keywords are needed to make easier search of the document, and you\ @@ -61,7 +69,7 @@ var translateEN = { "document.message.requiredAuthors" : "Document authors is required.", "document.message.requiredCopyright" : "Document copyright is required.", "document.message.requiredSummary" : "A summary is required.", -"document.privacy.questionRestricted" : "Restricted to current Question", +"document.privacy.questionRestricted" : "Restricted to Question participants", "document.button.download" : "Download", "document.button.openLink" : "Open link", @@ -162,6 +170,26 @@ var translateEN = { "user.button.enable" : "Enable", "user.button.showDisable" : "Show disable", +//Referential part + +"referential.search.title" : "Ask the Referential", +"referential.search.keywords" : "Keywords", +"referential.search.documents" : "Documents", +"referential.search.questions" : "Questions", +"referential.search.singleDocumentFound" : "document found.", +"referential.search.multipleDocumentsFound" : "documents found.", +"referential.search.singleQuestionFound" : "question found.", +"referential.search.multipleQuestionsFound" : "questions found.", + +//Admin part + +"admin.tools.title" : "Admin tools", +"admin.tools.label.luceneRefresh" : "Refresh Search Index", +"admin.tools.button.refresh" : "Refresh !", +"admin.tools.message.refresh.inprogress" : "Refresh in progress.", +"admin.tools.message.refresh.done" : "Search index has been well refreshed !", +"admin.tools.message.refresh.errors" : "Error during search index refresh. Please try again. If problem persist, see server administrator.", + //Common part "common.privacy.private" : "Private", diff --git a/coselmar-ui/src/main/webapp/i18n/fr.js b/coselmar-ui/src/main/webapp/i18n/fr.js index 8667b78..979cfbd 100644 --- a/coselmar-ui/src/main/webapp/i18n/fr.js +++ b/coselmar-ui/src/main/webapp/i18n/fr.js @@ -16,6 +16,195 @@ var translateFR = { "menu.button.login" : "Connexion", "menu.button.profile" : "Profil", -"menu.button.logout" : "Déconnexion" +"menu.button.logout" : "Déconnexion", + +//Footer + +"footer.item.licence" : "License", +"footer.item.report" : "Rapport de bug", +"footer.item.support" : "Support utilisateur", + +//Documents part + +"document.list.title" : "Liste des documents", +"document.modalSearch.title" : "Recherche de documents", +"document.button.add" : "Ajouter un document", +"document.message.delete" : "Êtes vous sûrs de vouloir supprimer ce document ?", +"document.view.title" : "Détails du document", +"document.create.title" : "Nouveau document", +"document.create.info" : "Vous pouvez ajouter un nouveau document à la base de connaissance. Pour chaque document,\ + des mots clefs sont nécessaires pour facilier la recherche des documents, et vous pouvez\ + précisez la visibilité :\ + <ul>\ + <li>Publique : tous les membres peuvent accéder au document</li>\ + <li>Privé : vous seul pouvez accéder au document</li>\ + <li>Restreint : le document ne sera accessible qu'aux participants d'une question ou est attaché le document</li>\ + </ul>", + +"document.metadata.name" : "Titre", +"document.metadata.authors" : "Auteurs", +"document.metadata.privacy" : "Visibilité", +"document.metadata.keywords" : "Mots clefs", +"document.metadata.depositor" : "Déposant", +"document.metadata.depositDate" : "Date de dépôt", +"document.metadata.relatedQuestions" : "Questions relatives", +"document.metadata.view.relatedQuestions" : "Questions utilisant ce document", +"document.metadata.type" : "Type", +"document.metadata.file" : "Fichier", +"document.metadata.externalUrl" : "URL externe", +"document.metadata.copyright" : "Copyright", +"document.metadata.licence" : "License", +"document.metadata.language" : "Langue", +"document.metadata.publicationDate" : "Date de publication", +"document.metadata.summary" : "Résumé", +"document.metadata.comment" : "Commentaire", +"document.metadata.fileName" : "Nom du fichier associé", +"document.metadata.externalLink" : "Lien externe", + +"document.message.requiredName" : "Le nom du document est requis.", +"document.message.requiredType" : "Le type du document est requis.", +"document.message.requiredExternalUrlOrFile" : "Un fichier ou un lien externe est requis.", +"document.message.requiredExternalUrl" : "Pour ce document, une URL externe est requise.", +"document.message.requiredKeywords" : "Au moins un mot clef est requis.", +"document.message.requiredAuthors" : "Le ou les auteur(s) du document est requis.", +"document.message.requiredCopyright" : "Le copyright du document est requis.", +"document.message.requiredSummary" : "Un résumé est requis.", +"document.privacy.questionRestricted" : "Restreint aux participants de question.", + +"document.button.download" : "Télécharger", +"document.button.openLink" : "Ouvrir le lien", + +//Questions part + +"question.list.title" : "Questions", +"question.add.title" : "Ajouter une question", +"question.newDocument.title" : "Contribuer avec de nouveaux documents", +"question.modal.parents.title" : "Désigner une question parente", + +"question.metadata.title" : "Titre", +"question.metadata.type" : "Type", +"question.metadata.privacy" : "Visibilité", +"question.metadata.themes" : "Thèmes", +"question.metadata.submissionDate" : "Date de soumission", +"question.metadata.deadline" : "Date limite", +"question.metadata.summary" : "Résumé", +"question.metadata.status" : "Status", +"question.metadata.supervisors" : "Superviseurs", +"question.metadata.experts" : "Experts", +"question.metadata.externalExperts" : "Experts extérieurs", +"question.metadata.clients" : "Clients", +"question.metadata.contributors" : "Contributeurs", +"question.metadata.relatedDocuments" : "Documents associés", +"question.metadata.conclusion" : "Conclusion", +"question.metadata.conclusionDocuments" : "Documents de conclusion", +"question.metadata.parents" : "Questions parentes", +"question.metadata.parentsPhrase" : "Provoquée ou inspirée par", +"question.metadata.childrenPhrase" : "A provoqué ou inspiré", +"question.metadata.participants" : "Participants", + +"question.message.requiredTitle" : "Le titre est requis, avec au minimum 10 caractères.", +"question.message.requiredType" : "Le type est requis..", +"question.message.requiredSummary" : "Un résumé est requis.", +"question.message.requiredThemes" : "Au moins un thème est requis.", + +"question.button.add" : "Ajouter une question", +"question.button.reopen" : "Réouvrir", +"question.button.close" : "Fermer", +"question.button.close.fullText" : "Fermer cette question", +"question.button.adjourn" : "Ajourner", +"question.button.validateChanges" : "Valider les modifications", +"question.button.validateNewDocuments" : "Valider les nouveaux documents", + +"question.message.notAvailable" : "Cette question n'est pas disponible à la consultation.", +"question.message.notAllowedToCreate" : "Vous n'êtes pas autorisé à déposer une question", +"question.message.delete" : "Êtes vous sûr de vouloir supprimer cette question ?", +"question.message.closedOn" : "Fermé le ", + +//Users part + +"user.list.title" : "Liste des utilisateurs", +"user.create.title" : "Ajouter un utilisateur", +"user.create.info" : "Créer un nouvel utilisateur, avec l'un des rôles suivants :\ + <ul>\ + <li>Superviseur : Manager qui relaie les questions de clients et qui assigne les experts aux questions</li>\ + <li>Expert : Scientifique, qui peut ajouter des nouveaux documents à la base de connaissance et voir les documents des autres scientifiques (en fonction des permissions)</li>\ + <li>Membre</li>\ + <li>Client</li>\ + </ul>", +"user.create.client.info" : "Créer un nouvel utilisateur de rôle \"Client\"", + +"user.metadata.name" : "Nom", +"user.metadata.firstName" : "Prénom", +"user.metadata.mail" : "Contact", +"user.metadata.phone" : "Numéro de téléphone", +"user.metadata.qualification" : "Profession", +"user.metadata.organization" : "Organisation", +"user.metadata.role" : "Rôle", +"user.metadata.status" : "Status", +"user.metadata.status.disable" : "Désactivé", +"user.metadata.status.enable" : "Activé", +"user.metadata.password" : "Mot de passe", +"user.metadata.password.new" : "Nouveau mot de passe", +"user.metadata.role.all" : "Tous", +"user.metadata.role.admin" : "Admin", +"user.metadata.role.supervisor" : "Superviseur", +"user.metadata.role.expert" : "Expert", +"user.metadata.role.member" : "Membre", +"user.metadata.role.client" : "Client", + +"user.message.disable" : "Êtes vous sûr de vouloir désactiver cet utilisateur ?", +"user.message.delete" : "Êtes vous sûr de vouloir supprimer cet utilisateur ", +"user.message.requiredFirsName" : "Le prénom est obligatoire.", +"user.message.requiredName" : "Le nom est obligatoire.", +"user.message.invalidMail" : "Entrer une adresse courriel valide.", +"user.message.requiredQualification" : "La profession est obligatoire.", +"user.message.requiredPassword" : "Le mot de passe est obligatoire pour valider les modifications.", +"user.label.currentPasswordToValidate" : "Entrer votre mot de passe pour valider les modifications", +"user.message.wannaChangePassword" : "Je veux changer mon mot de passe", +"user.message.tooShortPassword" : "Le nouveau mot de passe doit contenir au moins 6 caractères.", +"user.message.passwordsNoMatch" : "Les deux mots de passe entrés sont différents.", + +"user.button.add" : "Ajouter un utilisateur", +"user.button.add.client" : "Ajouter un client", +"user.button.disable" : "Désactiver", +"user.button.enable" : "Activer", +"user.button.showDisable" : "Montrer les désactivés", + +//Referential part + +"referential.search.title" : "Rerchercher dans le référentiel", +"referential.search.keywords" : "Mots clefs", +"referential.search.documents" : "Documents", +"referential.search.questions" : "Questions", +"referential.search.singleDocumentFound" : "document trouvé.", +"referential.search.multipleDocumentsFound" : "documents trouvés.", +"referential.search.singleQuestionFound" : "question trouvée.", +"referential.search.multipleQuestionsFound" : "questions trouvées.", + +//Admin part + +"admin.tools.title" : "Outils Admin", +"admin.tools.label.luceneRefresh" : "Rafraichir l'index de rechercher", +"admin.tools.button.refresh" : "Rafraichir !", +"admin.tools.message.refresh.inprogress" : "Mise à jour en cours.", +"admin.tools.message.refresh.done" : "L'index de recherche à bien été raffraichi !", +"admin.tools.message.refresh.errors" : "Une erreur est survenue durant la mise à jour de l'index de recherche. Veuillez contacter l'administrateur serveur.", + +//Common part + +"common.privacy.private" : "Privé", +"common.privacy.public" : "Publique", +"common.privacy.restricted" : "Restreint", + +"common.button.delete" : "Supprimer", +"common.button.edit" : "Éditer", +"common.button.add" : "Ajouter", +"common.button.cancel" : "Annuler", +"common.button.search" : "Rechercher", +"common.button.advanceSearch" : "Recherche avancée", +"common.button.simpleSearch" : "Recherche simple", +"common.message.missingMandatoryFields" : "Certains champs obligatoires (*) n'ont pas été remplis.", +"common.message.notYetAvailable" : "Pas encore disponible.", +"common.message.mandatoryFieldsInfo" : "Les champs avec un <strong><big>*</big></strong> sont obligatoires.", } \ No newline at end of file diff --git a/coselmar-ui/src/main/webapp/index.html b/coselmar-ui/src/main/webapp/index.html index d3d788d..413540f 100644 --- a/coselmar-ui/src/main/webapp/index.html +++ b/coselmar-ui/src/main/webapp/index.html @@ -168,16 +168,16 @@ <a href="http://www.coselmar.fr" target="_blank">Coselmar</a> <a href="https://forge.codelutin.com/projects/coselmar/files" target="_blank">{{version}}</a> <span class="separator">-</span> - <a href="http://www.gnu.org/licenses/gpl.html" target="_blank">Licence</a> + <a href="http://www.gnu.org/licenses/gpl.html" target="_blank">{{ 'footer.item.licence' | translate}}</a> <span class="separator">-</span> ©2014 <a href="http://wwz.ifremer.fr/" target="_blank">Ifremer</a> & <a href="http://www.codelutin.com/" target="_blank">Code Lutin</a> <span class="separator">-</span> - <a href="https://forge.codelutin.com/projects/coselmar/issues" target="_blank">Rapport de bug</a> + <a href="https://forge.codelutin.com/projects/coselmar/issues" target="_blank">{{ 'footer.item.report' | translate}}</a> <span class="separator">-</span> - <a href="http://list.forge.codelutin.com/cgi-bin/mailman/listinfo/coselmar-users" target="_blank">Support utilisateur</a> + <a href="http://list.forge.codelutin.com/cgi-bin/mailman/listinfo/coselmar-users" target="_blank">{{ 'footer.item.support' | translate}}</a> </div> </footer> diff --git a/coselmar-ui/src/main/webapp/js/coselmar-controllers.js b/coselmar-ui/src/main/webapp/js/coselmar-controllers.js index 8f328e9..2312bea 100644 --- a/coselmar-ui/src/main/webapp/js/coselmar-controllers.js +++ b/coselmar-ui/src/main/webapp/js/coselmar-controllers.js @@ -1216,7 +1216,7 @@ coselmarControllers.directive('ngConfirmClick', ['$modal', function($modal) { var modalHtml = '<div class="modal-title"><h2>Confirm Action</h2></div>'; modalHtml += '<div class="modal-body"> {{\'' + message + '\' | translate}}</div>'; - modalHtml += '<div class="modal-footer"><button class="btn btn-primary" ng-click="ok()">OK</button><button class="btn btn-warning" ng-click="cancel()">Cancel</button></div>'; + modalHtml += '<div class="modal-footer"><button class="btn btn-primary" ng-click="ok()">OK</button><button class="btn btn-warning" ng-click="cancel()">{{ \'common.button.cancel\' | translate }}</button></div>'; var modalInstance = $modal.open({ template: modalHtml, diff --git a/coselmar-ui/src/main/webapp/views/admin/admintools.html b/coselmar-ui/src/main/webapp/views/admin/admintools.html index 09779c9..2c41cec 100644 --- a/coselmar-ui/src/main/webapp/views/admin/admintools.html +++ b/coselmar-ui/src/main/webapp/views/admin/admintools.html @@ -25,29 +25,29 @@ <div class="page-header" style="margin: 0"> <h1> <!-- Heading goes here --> - Admin Tools + {{ 'admin.tools.title' | translate }} </h1> </div> <div class="form-group"> <div class="form-group"> - <label class="col-md-5 control-label">Refresh Search Index</label> + <label class="col-md-5 control-label">{{ 'admin.tools.label.luceneRefresh' | translate }}</label> <div class="col-md-7 "> - <a class="form-inline btn btn-primary" ng-click="refreshIndex()">Refresh !</a> + <a class="form-inline btn btn-primary" ng-click="refreshIndex()">{{ 'admin.tools.button.refresh' | translate }}</a> </div> </div> <div ng-show="status.indexRefresh != 'none'" > <div ng-show="status.indexRefresh === 'inprogress'"> - Refresh in progress. + {{ 'admin.tools.message.refresh.inprogress' | translate }} </div> <div ng-show="status.indexRefresh === 'finish'"> - Search index has been well refreshed ! + {{ 'admin.tools.message.refresh.done' | translate }} </div> <div ng-show="status.indexRefresh === 'error'"> - Error during search index refresh. Please try again. If problem persist, see server administrator. + {{ 'admin.tools.message.refresh.error' | translate }} </div> </div> <br/> diff --git a/coselmar-ui/src/main/webapp/views/referential/referential.html b/coselmar-ui/src/main/webapp/views/referential/referential.html index 5a32ab4..bf8351e 100644 --- a/coselmar-ui/src/main/webapp/views/referential/referential.html +++ b/coselmar-ui/src/main/webapp/views/referential/referential.html @@ -23,12 +23,12 @@ --> <div style="padding: 0px 0px 0px 30px"> <div class="page-header" style="margin: 0"> - <h2>Ask the Referential</h2> + <h2>{{ 'referential.search.title' | translate }}</h2> </div> <!-- Search Line --> <div class="form-group row"> - <label class="col-md-2 control-label">Keywords</label> + <label class="col-md-2 control-label">{{ 'referential.search.keywords' | translate }}</label> <div class="col-md-4"> <input type="text" class="form-control" name="keywords" @@ -38,20 +38,20 @@ <div class="col-md-2"> <label> <input type="checkbox" name="onDocuments" ng-model="search.onDocuments" /> - documents + {{ 'referential.search.documents' | translate }} </label> </div> <div class="col-md-2"> <label> <input type="checkbox" name="onQuestions" ng-model="search.onQuestions" /> - questions + {{ 'referential.search.questions' | translate }} </label> </div> <div class="col-md-2"> <a class="btn btn-action btn-success" ng-click="searchInReferential()"> - <span class="fa fa-search" aria-hidden="true"></span>Search + <span class="fa fa-search" aria-hidden="true"></span>{{ 'common.button.search' | translate }} </a> </div> @@ -64,14 +64,15 @@ <!-- Documents Table --> <div class="" ng-if="result.documents && result.documents.length > 0"> - <h3>{{result.documents.length}} document<span ng-if="result.documents.length > 1">s</span> found</h3> + <h3 ng-if="result.documents.length > 1">{{result.documents.length}} {{ 'referential.search.multipleDocumentsFound' | translate }}</h3> + <h3 ng-if="result.documents.length < 2">{{result.documents.length}} {{ 'referential.search.singleDocumentFound' | translate }}</h3> <table class="table" title="Documents"> <tr> - <th>Name</th> - <th>Deposit Date</th> - <th>Authors</th> - <th>Keywords</th> + <th>{{ 'document.metadata.name' | translate }}</th> + <th>{{ 'document.metadata.depositDate' | translate }}</th> + <th>{{ 'document.metadata.authors' | translate }}</th> + <th>{{ 'document.metadata.keywords' | translate }}</th> </tr> <tr ng-repeat="document in result.documents"> <td> @@ -91,14 +92,16 @@ <!-- Questions Table --> <div class="" ng-if="result.questions && result.questions.length > 0"> - <h3>{{result.questions.length}} question<span ng-if="result.questions.length > 1">s</span> found</h3> + <h3 ng-if="result.questions.length > 1">{{result.questions.length}} {{ 'referential.search.multipleQuestionsFound' | translate }}</h3> + <h3 ng-if="result.questions.length < 2">{{result.questions.length}} {{ 'referential.search.singleQuestionFound' | translate }}</h3> + <table class="table" title="Questions"> <tr> - <th>Title</th> - <th>Deposit Date</th> - <th>Themes</th> - <th>Status</th> + <th>{{ 'question.metadata.title' | translate }}</th> + <th>{{ 'question.metadata.submissionDate' | translate }}</th> + <th>{{ 'question.metadata.themes' | translate }}</th> + <th>{{ 'question.metadata.status' | translate }}</th> </tr> <tr ng-repeat="question in result.questions"> <td ng-if="currentUser.role != 'MEMBER'"> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.