Commits

Marcin Kuzminski committed 1f7b8c7 Merge

Merge with beta

Comments (0)

Files changed (31)

docs/changelog.rst

 Changelog
 =========
 
+1.4.4 (**2012-10-08**)
+----------------------
+
+news
+++++
+
+- obfuscate db password in logs for engine connection string
+- #574 Show pull request status also in shortlog (if any)
+- remember selected tab in my account page
+- Bumped mercurial version to 2.3.2
+
+fixes
++++++
+
+- Add git version detection to warn users that Git used in system is to
+  old. Ref #588 - also show git version in system details in settings page
+- fixed files quick filter links
+- #590 Add GET flag that controls the way the diff are generated, for pull
+  requests we want to use non-bundle based diffs, That are far better for
+  doing code reviews. The /compare url still uses bundle compare for full
+  comparison including the incoming changesets
+- Fixed #585, checks for status of revision where to strict, and made
+  opening pull request with those revision impossible due to previously set
+  status. Checks now are made also for the repository.
+- fixes #591 git backend was causing encoding errors when handling binary
+  files - added a test case for VCS lib tests
 
 1.4.3 (**2012-09-28**)
 ----------------------

rhodecode/__init__.py

 import sys
 import platform
 
-VERSION = (1, 4, 3)
+VERSION = (1, 4, 4)
 
 try:
     from rhodecode.lib import get_current_revision

rhodecode/config/environment.py

 from rhodecode.lib import helpers
 from rhodecode.lib.auth import set_available_permissions
 from rhodecode.lib.utils import repo2db_mapper, make_ui, set_rhodecode_config,\
-    load_rcextensions
+    load_rcextensions, check_git_version
 from rhodecode.lib.utils2 import engine_from_config, str2bool
 from rhodecode.model import init_model
 from rhodecode.model.scm import ScmModel
         if not int(os.environ.get('RC_WHOOSH_TEST_DISABLE', 0)):
             create_test_index(TESTS_TMP_PATH, config, True)
 
+    #check git version
+    check_git_version()
+
     # MULTIPLE DB configs
     # Setup the SQLAlchemy database engine
     sa_engine_db1 = engine_from_config(config, 'sqlalchemy.db1.')

rhodecode/controllers/admin/settings.py

 from rhodecode.lib.base import BaseController, render
 from rhodecode.lib.celerylib import tasks, run_task
 from rhodecode.lib.utils import repo2db_mapper, invalidate_cache, \
-    set_rhodecode_config, repo_name_slug
+    set_rhodecode_config, repo_name_slug, check_git_version
 from rhodecode.model.db import RhodeCodeUi, Repository, RepoGroup, \
     RhodeCodeSetting, PullRequest, PullRequestReviewers
 from rhodecode.model.forms import UserForm, ApplicationSettingsForm, \
         c.admin_user = session.get('admin_user')
         c.admin_username = session.get('admin_username')
         c.modules = sorted([(p.project_name, p.version)
-                            for p in pkg_resources.working_set],
+                            for p in pkg_resources.working_set]
+                           + [('git', check_git_version())],
                            key=lambda k: k[0].lower())
         c.py_version = platform.python_version()
         c.platform = platform.platform()

rhodecode/controllers/compare.py

 from rhodecode.model.db import Repository
 from rhodecode.model.pull_request import PullRequestModel
 from webob.exc import HTTPBadRequest
+from rhodecode.lib.utils2 import str2bool
 
 log = logging.getLogger(__name__)
 
         org_ref = (org_ref_type, org_ref)
         other_ref = (other_ref_type, other_ref)
         other_repo = request.GET.get('repo', org_repo)
+        bundle_compare = str2bool(request.GET.get('bundle', True))
 
         c.swap_url = h.url('compare_url', repo_name=other_repo,
               org_ref_type=other_ref[0], org_ref=other_ref[1],
               other_ref_type=org_ref[0], other_ref=org_ref[1],
-              repo=org_repo)
+              repo=org_repo, as_form=request.GET.get('as_form'),
+              bundle=bundle_compare)
 
         c.org_repo = org_repo = Repository.get_by_repo_name(org_repo)
         c.other_repo = other_repo = Repository.get_by_repo_name(other_repo)
         self.__get_cs_or_redirect(rev=other_ref, repo=other_repo, partial=partial)
 
         c.cs_ranges, discovery_data = PullRequestModel().get_compare_data(
-                                       org_repo, org_ref, other_repo, other_ref
-                                      )
+                                    org_repo, org_ref, other_repo, other_ref
+                                    )
 
         c.statuses = c.rhodecode_db_repo.statuses([x.raw_id for x in
                                                    c.cs_ranges])
         if partial:
             return render('compare/compare_cs.html')
 
+        if not bundle_compare and c.cs_ranges:
+            # case we want a simple diff without incoming changesets, just
+            # for review purposes. Make the diff on the forked repo, with
+            # revision that is common ancestor
+            other_ref = ('rev', c.cs_ranges[-1].parents[0].raw_id)
+            other_repo = org_repo
+
         c.org_ref = org_ref[1]
         c.other_ref = other_ref[1]
-        # diff needs to have swapped org with other to generate proper diff
+
         _diff = diffs.differ(other_repo, other_ref, org_repo, org_ref,
-                             discovery_data)
+                             discovery_data, bundle_compare=bundle_compare)
         diff_processor = diffs.DiffProcessor(_diff, format='gitdiff')
         _parsed = diff_processor.prepare()
 

rhodecode/controllers/pullrequests.py

 
     @NotAnonymous()
     def create(self, repo_name):
+        repo = RepoModel()._get_repo(repo_name)
         try:
-            _form = PullRequestForm()().to_python(request.POST)
+            _form = PullRequestForm(repo.repo_id)().to_python(request.POST)
         except formencode.Invalid, errors:
             log.error(traceback.format_exc())
             if errors.error_dict.get('revisions'):
         c.cs_ranges, discovery_data = PullRequestModel().get_compare_data(
                                        org_repo, org_ref, other_repo, other_ref
                                       )
+        if c.cs_ranges:
+            # case we want a simple diff without incoming changesets, just
+            # for review purposes. Make the diff on the forked repo, with
+            # revision that is common ancestor
+            other_ref = ('rev', c.cs_ranges[-1].parents[0].raw_id)
+            other_repo = org_repo
 
         c.statuses = org_repo.statuses([x.raw_id for x in c.cs_ranges])
         # defines that we need hidden inputs with changesets

rhodecode/controllers/shortlog.py

 
         c.repo_changesets = RepoPage(c.rhodecode_repo, page=p,
                                     items_per_page=size, url=url_generator)
+        page_revisions = [x.raw_id for x in list(c.repo_changesets)]
+        c.statuses = c.rhodecode_db_repo.statuses(page_revisions)
 
         if not c.repo_changesets:
             return redirect(url('summary_home', repo_name=repo_name))

rhodecode/controllers/summary.py

 
         c.repo_changesets = RepoPage(c.rhodecode_repo, page=1,
                                      items_per_page=10, url=url_generator)
+        page_revisions = [x.raw_id for x in list(c.repo_changesets)]
+        c.statuses = c.rhodecode_db_repo.statuses(page_revisions)
 
         if self.rhodecode_user.username == 'default':
             # for default(anonymous) user we don't need to pass credentials

rhodecode/i18n/fr/LC_MESSAGES/rhodecode.mo

Binary file modified.

rhodecode/i18n/fr/LC_MESSAGES/rhodecode.po

 msgstr ""
 "Project-Id-Version: RhodeCode 1.1.5\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2012-09-02 20:30+0200\n"
-"PO-Revision-Date: 2012-06-05 20:07+0100\n"
+"POT-Creation-Date: 2012-10-02 11:23+0200\n"
+"PO-Revision-Date: 2012-10-02 11:32+0100\n"
 "Last-Translator: Vincent Duvert <vincent@duvert.net>\n"
 "Language-Team: fr <LL@li.org>\n"
 "Plural-Forms: nplurals=2; plural=(n > 1)\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: Babel 0.9.6\n"
 
-#: rhodecode/controllers/changelog.py:94
+#: rhodecode/controllers/changelog.py:95
 msgid "All Branches"
 msgstr "Toutes les branches"
 
 #: rhodecode/controllers/changeset.py:83
 msgid "show white space"
-msgstr "afficher les espaces et tabulations"
-
-#: rhodecode/controllers/changeset.py:90 rhodecode/controllers/changeset.py:97
+msgstr "Afficher les espaces et tabulations"
+
+#: rhodecode/controllers/changeset.py:90
+#: rhodecode/controllers/changeset.py:97
 msgid "ignore white space"
-msgstr "ignorer les espaces et tabulations"
+msgstr "Ignorer les espaces et tabulations"
 
 #: rhodecode/controllers/changeset.py:157
 #, python-format
 msgid "%s line context"
-msgstr "afficher %s lignes de contexte"
+msgstr "Afficher %s lignes de contexte"
 
 #: rhodecode/controllers/changeset.py:333
-#: rhodecode/controllers/changeset.py:348 rhodecode/lib/diffs.py:70
+#: rhodecode/controllers/changeset.py:348
+#: rhodecode/lib/diffs.py:71
 msgid "binary file"
-msgstr "fichier binaire"
-
-#: rhodecode/controllers/changeset.py:408
-msgid ""
-"Changing status on a changeset associated witha closed pull request is "
-"not allowed"
-msgstr ""
-
-#: rhodecode/controllers/compare.py:69
-#, fuzzy
+msgstr "Fichier binaire"
+
+#: rhodecode/controllers/changeset.py:381
+#: rhodecode/controllers/pullrequests.py:376
+#, python-format
+msgid "Status change -> %s"
+msgstr "Changement de statut -> %s"
+
+#: rhodecode/controllers/changeset.py:412
+msgid "Changing status on a changeset associated witha closed pull request is not allowed"
+msgstr "Le changement de statut d’un changeset associé à une pull request fermée n’est pas autorisé."
+
+#: rhodecode/controllers/compare.py:72
+#: rhodecode/controllers/pullrequests.py:114
 msgid "There are no changesets yet"
 msgstr "Il n’y a aucun changement pour le moment"
 
 
 #: rhodecode/controllers/error.py:98
 msgid "The request could not be understood by the server due to malformed syntax."
-msgstr ""
-"Le serveur n’a pas pu interpréter la requête à cause d’une erreur de "
-"syntaxe"
+msgstr "Le serveur n’a pas pu interpréter la requête à cause d’une erreur de syntaxe"
 
 #: rhodecode/controllers/error.py:101
 msgid "Unauthorized access to resource"
 msgstr "Ressource introuvable"
 
 #: rhodecode/controllers/error.py:107
-msgid ""
-"The server encountered an unexpected condition which prevented it from "
-"fulfilling the request."
-msgstr ""
-"La requête n’a pu être traitée en raison d’une erreur survenue sur le "
-"serveur."
+msgid "The server encountered an unexpected condition which prevented it from fulfilling the request."
+msgstr "La requête n’a pu être traitée en raison d’une erreur survenue sur le serveur."
 
 #: rhodecode/controllers/feed.py:49
 #, python-format
 msgid "%s %s feed"
 msgstr "Flux %s de %s"
 
-#: rhodecode/controllers/feed.py:75
+#: rhodecode/controllers/feed.py:67
+#: rhodecode/templates/changeset/changeset.html:119
+msgid "Changeset was too big and was cut off..."
+msgstr "Cet ensemble de changements était trop important et a été découpé…"
+
+#: rhodecode/controllers/feed.py:81
 msgid "commited on"
 msgstr "a commité, le"
 
 #: rhodecode/controllers/files.py:84
-#, fuzzy
 msgid "click here to add new file"
-msgstr "Ajouter un fichier"
+msgstr "Ajouter un nouveau fichier"
 
 #: rhodecode/controllers/files.py:85
 #, python-format
 msgid "There are no files yet %s"
 msgstr "Il n’y a pas encore de fichiers %s"
 
-#: rhodecode/controllers/files.py:239 rhodecode/controllers/files.py:299
+#: rhodecode/controllers/files.py:239
+#: rhodecode/controllers/files.py:299
 #, python-format
 msgid "This repository is has been locked by %s on %s"
-msgstr ""
+msgstr "Ce dépôt a été verrouillé par %s sur %s."
 
 #: rhodecode/controllers/files.py:266
 #, python-format
 msgid "No changes"
 msgstr "Aucun changement"
 
-#: rhodecode/controllers/files.py:282 rhodecode/controllers/files.py:346
+#: rhodecode/controllers/files.py:282
+#: rhodecode/controllers/files.py:346
 #, python-format
 msgid "Successfully committed to %s"
 msgstr "Commit réalisé avec succès sur %s"
 
-#: rhodecode/controllers/files.py:287 rhodecode/controllers/files.py:352
+#: rhodecode/controllers/files.py:287
+#: rhodecode/controllers/files.py:352
 msgid "Error occurred during commit"
 msgstr "Une erreur est survenue durant le commit"
 
 msgid "Changesets"
 msgstr "Changesets"
 
-#: rhodecode/controllers/files.py:495 rhodecode/controllers/pullrequests.py:72
-#: rhodecode/controllers/summary.py:232 rhodecode/model/scm.py:543
+#: rhodecode/controllers/files.py:495
+#: rhodecode/controllers/pullrequests.py:73
+#: rhodecode/controllers/summary.py:236
+#: rhodecode/model/scm.py:543
 msgid "Branches"
 msgstr "Branches"
 
-#: rhodecode/controllers/files.py:496 rhodecode/controllers/pullrequests.py:76
-#: rhodecode/controllers/summary.py:233 rhodecode/model/scm.py:554
+#: rhodecode/controllers/files.py:496
+#: rhodecode/controllers/pullrequests.py:77
+#: rhodecode/controllers/summary.py:237
+#: rhodecode/model/scm.py:554
 msgid "Tags"
 msgstr "Tags"
 
-#: rhodecode/controllers/forks.py:73 rhodecode/controllers/admin/repos.py:90
+#: rhodecode/controllers/forks.py:74
+#: rhodecode/controllers/admin/repos.py:90
 #, python-format
-msgid ""
-"%s repository is not mapped to db perhaps it was created or renamed from "
-"the filesystem please run the application again in order to rescan "
-"repositories"
-msgstr ""
-"Le dépôt %s n’est pas représenté dans la base de données. Il a "
-"probablement été créé ou renommé manuellement. Veuillez relancer "
-"l’application pour rescanner les dépôts."
-
-#: rhodecode/controllers/forks.py:133 rhodecode/controllers/settings.py:72
+msgid "%s repository is not mapped to db perhaps it was created or renamed from the filesystem please run the application again in order to rescan repositories"
+msgstr "Le dépôt %s n’est pas représenté dans la base de données. Il a probablement été créé ou renommé manuellement. Veuillez relancer l’application pour rescanner les dépôts."
+
+#: rhodecode/controllers/forks.py:134
+#: rhodecode/controllers/settings.py:73
 #, python-format
-msgid ""
-"%s repository is not mapped to db perhaps it was created or renamed from "
-"the file system please run the application again in order to rescan "
-"repositories"
-msgstr ""
-"Le dépôt %s n’est pas représenté dans la base de données. Il a "
-"probablement été créé ou renommé manuellement. Veuillez relancer "
-"l’application pour rescanner les dépôts."
-
-#: rhodecode/controllers/forks.py:167
+msgid "%s repository is not mapped to db perhaps it was created or renamed from the file system please run the application again in order to rescan repositories"
+msgstr "Le dépôt %s n’est pas représenté dans la base de données. Il a probablement été créé ou renommé manuellement. Veuillez relancer l’application pour rescanner les dépôts."
+
+#: rhodecode/controllers/forks.py:168
 #, python-format
 msgid "forked %s repository as %s"
 msgstr "dépôt %s forké en tant que %s"
 
-#: rhodecode/controllers/forks.py:181
+#: rhodecode/controllers/forks.py:182
 #, python-format
 msgid "An error occurred during repository forking %s"
 msgstr "Une erreur est survenue durant le fork du dépôt %s."
 
-#: rhodecode/controllers/journal.py:202 rhodecode/controllers/journal.py:239
-#, fuzzy
+#: rhodecode/controllers/journal.py:203
+#: rhodecode/controllers/journal.py:240
 msgid "public journal"
 msgstr "Journal public"
 
-#: rhodecode/controllers/journal.py:206 rhodecode/controllers/journal.py:243
-#: rhodecode/templates/base/base.html:220
+#: rhodecode/controllers/journal.py:207
+#: rhodecode/controllers/journal.py:244
+#: rhodecode/templates/base/base.html:229
 msgid "journal"
 msgstr "Journal"
 
 msgstr "Un lien de rénitialisation de votre mot de passe vous a été envoyé."
 
 #: rhodecode/controllers/login.py:184
-msgid ""
-"Your password reset was successful, new password has been sent to your "
-"email"
-msgstr ""
-"Votre mot de passe a été réinitialisé. Votre nouveau mot de passe vous a "
-"été envoyé par e-mail."
-
-#: rhodecode/controllers/pullrequests.py:74 rhodecode/model/scm.py:549
-#, fuzzy
+msgid "Your password reset was successful, new password has been sent to your email"
+msgstr "Votre mot de passe a été réinitialisé. Votre nouveau mot de passe vous a été envoyé par e-mail."
+
+#: rhodecode/controllers/pullrequests.py:75
+#: rhodecode/model/scm.py:549
 msgid "Bookmarks"
 msgstr "Signets"
 
-#: rhodecode/controllers/pullrequests.py:158
+#: rhodecode/controllers/pullrequests.py:182
 msgid "Pull request requires a title with min. 3 chars"
-msgstr ""
-
-#: rhodecode/controllers/pullrequests.py:160
+msgstr "Les requêtes de pull nécessitent un titre d’au moins 3 caractères."
+
+#: rhodecode/controllers/pullrequests.py:184
 msgid "error during creation of pull request"
-msgstr "erreur lors de la création de la demande traction"
-
-#: rhodecode/controllers/pullrequests.py:181
-#, fuzzy
+msgstr "Une erreur est survenue lors de la création de la requête de pull."
+
+#: rhodecode/controllers/pullrequests.py:205
 msgid "Successfully opened new pull request"
-msgstr "L’utilisateur a été supprimé avec succès."
-
-#: rhodecode/controllers/pullrequests.py:184
-#, fuzzy
+msgstr "La requête de pull a été ouverte avec succès."
+
+#: rhodecode/controllers/pullrequests.py:208
 msgid "Error occurred during sending pull request"
-msgstr "Une erreur est survenue durant la création du dépôt %s."
-
-#: rhodecode/controllers/pullrequests.py:217
-#, fuzzy
+msgstr "Une erreur est survenue durant l’envoi de la requête de pull."
+
+#: rhodecode/controllers/pullrequests.py:241
 msgid "Successfully deleted pull request"
-msgstr "L’utilisateur a été supprimé avec succès."
-
-#: rhodecode/controllers/search.py:131
+msgstr "La requête de pull a été supprimée avec succès."
+
+#: rhodecode/controllers/search.py:132
 msgid "Invalid search query. Try quoting it."
 msgstr "Requête invalide. Essayer de la mettre entre guillemets."
 
-#: rhodecode/controllers/search.py:136
+#: rhodecode/controllers/search.py:137
 msgid "There is no index to search in. Please run whoosh indexer"
-msgstr ""
-"L’index de recherche n’est pas présent. Veuillez exécuter l’indexeur de "
-"code Whoosh."
-
-#: rhodecode/controllers/search.py:140
+msgstr "L’index de recherche n’est pas présent. Veuillez exécuter l’indexeur de code Whoosh."
+
+#: rhodecode/controllers/search.py:141
 msgid "An error occurred during this search operation"
 msgstr "Une erreur est survenue durant l’opération de recherche."
 
-#: rhodecode/controllers/settings.py:107
+#: rhodecode/controllers/settings.py:108
 #: rhodecode/controllers/admin/repos.py:266
 #, python-format
 msgid "Repository %s updated successfully"
 msgstr "Dépôt %s mis à jour avec succès."
 
-#: rhodecode/controllers/settings.py:125
+#: rhodecode/controllers/settings.py:126
 #: rhodecode/controllers/admin/repos.py:284
 #, python-format
 msgid "error occurred during update of repository %s"
 msgstr "Une erreur est survenue lors de la mise à jour du dépôt %s."
 
-#: rhodecode/controllers/settings.py:143
+#: rhodecode/controllers/settings.py:144
 #: rhodecode/controllers/admin/repos.py:302
 #, python-format
-msgid ""
-"%s repository is not mapped to db perhaps it was moved or renamed  from "
-"the filesystem please run the application again in order to rescan "
-"repositories"
-msgstr ""
-"Le dépôt %s n’est pas représenté dans la base de données. Il a "
-"probablement été déplacé ou renommé manuellement. Veuillez relancer "
-"l’application pour rescanner les dépôts."
-
-#: rhodecode/controllers/settings.py:155
+msgid "%s repository is not mapped to db perhaps it was moved or renamed  from the filesystem please run the application again in order to rescan repositories"
+msgstr "Le dépôt %s n’est pas représenté dans la base de données. Il a probablement été déplacé ou renommé manuellement. Veuillez relancer l’application pour rescanner les dépôts."
+
+#: rhodecode/controllers/settings.py:156
 #: rhodecode/controllers/admin/repos.py:314
 #, python-format
 msgid "deleted repository %s"
 msgstr "Dépôt %s supprimé"
 
-#: rhodecode/controllers/settings.py:159
+#: rhodecode/controllers/settings.py:160
 #: rhodecode/controllers/admin/repos.py:324
 #: rhodecode/controllers/admin/repos.py:330
 #, python-format
 msgid "An error occurred during deletion of %s"
 msgstr "Erreur pendant la suppression de %s"
 
-#: rhodecode/controllers/summary.py:138
+#: rhodecode/controllers/settings.py:179
+#| msgid "unlock"
+msgid "unlocked"
+msgstr "déverrouillé"
+
+#: rhodecode/controllers/settings.py:182
+#| msgid "unlock"
+msgid "locked"
+msgstr "verrouillé"
+
+#: rhodecode/controllers/settings.py:184
+#, python-format
+#| msgid "forked %s repository as %s"
+msgid "Repository has been %s"
+msgstr "Le dépôt a été %s."
+
+#: rhodecode/controllers/settings.py:188
+#: rhodecode/controllers/admin/repos.py:422
+msgid "An error occurred during unlocking"
+msgstr "Une erreur est survenue durant le déverrouillage."
+
+#: rhodecode/controllers/summary.py:140
 msgid "No data loaded yet"
 msgstr "Aucune donnée actuellement disponible."
 
-#: rhodecode/controllers/summary.py:142
+#: rhodecode/controllers/summary.py:144
 #: rhodecode/templates/summary/summary.html:148
 msgid "Statistics are disabled for this repository"
 msgstr "La mise à jour des statistiques est désactivée pour ce dépôt."
 #: rhodecode/templates/admin/users_groups/users_group_edit.html:9
 #: rhodecode/templates/admin/users_groups/users_groups.html:9
 #: rhodecode/templates/base/base.html:197
-#: rhodecode/templates/base/base.html:337
-#: rhodecode/templates/base/base.html:339
-#: rhodecode/templates/base/base.html:341
+#: rhodecode/templates/base/base.html:346
+#: rhodecode/templates/base/base.html:348
+#: rhodecode/templates/base/base.html:350
 msgid "Admin"
 msgstr "Administration"
 
 
 #: rhodecode/controllers/admin/repos.py:367
 msgid "An error occurred during deletion of repository users groups"
-msgstr ""
-"Une erreur est survenue durant la suppression du groupe d’utilisateurs de"
-" ce dépôt."
+msgstr "Une erreur est survenue durant la suppression du groupe d’utilisateurs de ce dépôt."
 
 #: rhodecode/controllers/admin/repos.py:385
 msgid "An error occurred during deletion of repository stats"
 msgid "An error occurred during cache invalidation"
 msgstr "Une erreur est survenue durant l’invalidation du cache."
 
-#: rhodecode/controllers/admin/repos.py:422
-#, fuzzy
-msgid "An error occurred during unlocking"
-msgstr "Une erreur est survenue durant cette opération."
-
 #: rhodecode/controllers/admin/repos.py:442
 msgid "Updated repository visibility in public journal"
 msgstr "La visibilité du dépôt dans le journal public a été mise à jour."
 
 #: rhodecode/controllers/admin/repos.py:446
 msgid "An error occurred during setting this repository in public journal"
-msgstr ""
-"Une erreur est survenue durant la configuration du journal public pour ce"
-" dépôt."
-
-#: rhodecode/controllers/admin/repos.py:451 rhodecode/model/validators.py:299
+msgstr "Une erreur est survenue durant la configuration du journal public pour ce dépôt."
+
+#: rhodecode/controllers/admin/repos.py:451
+#: rhodecode/model/validators.py:300
 msgid "Token mismatch"
 msgstr "Jeton d’authentification incorrect."
 
 msgid "An error occurred during this operation"
 msgstr "Une erreur est survenue durant cette opération."
 
-#: rhodecode/controllers/admin/repos_groups.py:116
+#: rhodecode/controllers/admin/repos_groups.py:117
 #, python-format
 msgid "created repos group %s"
 msgstr "Le groupe de dépôts %s a été créé."
 
-#: rhodecode/controllers/admin/repos_groups.py:129
+#: rhodecode/controllers/admin/repos_groups.py:130
 #, python-format
 msgid "error occurred during creation of repos group %s"
 msgstr "Une erreur est survenue durant la création du groupe de dépôts %s."
 
-#: rhodecode/controllers/admin/repos_groups.py:163
+#: rhodecode/controllers/admin/repos_groups.py:164
 #, python-format
 msgid "updated repos group %s"
 msgstr "Le groupe de dépôts %s a été mis à jour."
 
-#: rhodecode/controllers/admin/repos_groups.py:176
+#: rhodecode/controllers/admin/repos_groups.py:177
 #, python-format
 msgid "error occurred during update of repos group %s"
 msgstr "Une erreur est survenue durant la mise à jour du groupe de dépôts %s."
 
-#: rhodecode/controllers/admin/repos_groups.py:194
+#: rhodecode/controllers/admin/repos_groups.py:195
 #, python-format
 msgid "This group contains %s repositores and cannot be deleted"
 msgstr "Ce groupe contient %s dépôts et ne peut être supprimé."
 
-#: rhodecode/controllers/admin/repos_groups.py:202
+#: rhodecode/controllers/admin/repos_groups.py:203
 #, python-format
 msgid "removed repos group %s"
 msgstr "Le groupe de dépôts %s a été supprimé."
 
-#: rhodecode/controllers/admin/repos_groups.py:208
+#: rhodecode/controllers/admin/repos_groups.py:209
 msgid "Cannot delete this group it still contains subgroups"
 msgstr "Impossible de supprimer ce groupe : Il contient des sous-groupes."
 
-#: rhodecode/controllers/admin/repos_groups.py:213
-#: rhodecode/controllers/admin/repos_groups.py:218
+#: rhodecode/controllers/admin/repos_groups.py:214
+#: rhodecode/controllers/admin/repos_groups.py:219
 #, python-format
 msgid "error occurred during deletion of repos group %s"
 msgstr "Une erreur est survenue durant la suppression du groupe de dépôts %s."
 
-#: rhodecode/controllers/admin/repos_groups.py:238
+#: rhodecode/controllers/admin/repos_groups.py:240
 msgid "An error occurred during deletion of group user"
-msgstr ""
-"Une erreur est survenue durant la suppression de l’utilisateur du groupe "
-"de dépôts."
-
-#: rhodecode/controllers/admin/repos_groups.py:258
+msgstr "Une erreur est survenue durant la suppression de l’utilisateur du groupe de dépôts."
+
+#: rhodecode/controllers/admin/repos_groups.py:261
 msgid "An error occurred during deletion of group users groups"
-msgstr ""
-"Une erreur est survenue durant la suppression du groupe d’utilisateurs du"
-" groupe de dépôts."
-
-#: rhodecode/controllers/admin/settings.py:121
+msgstr "Une erreur est survenue durant la suppression du groupe d’utilisateurs du groupe de dépôts."
+
+#: rhodecode/controllers/admin/settings.py:122
 #, python-format
 msgid "Repositories successfully rescanned added: %s,removed: %s"
 msgstr "Après re-scan : %s ajouté(s), %s enlevé(s)"
 
-#: rhodecode/controllers/admin/settings.py:129
+#: rhodecode/controllers/admin/settings.py:130
 msgid "Whoosh reindex task scheduled"
 msgstr "La tâche de réindexation Whoosh a été planifiée."
 
-#: rhodecode/controllers/admin/settings.py:160
+#: rhodecode/controllers/admin/settings.py:161
 msgid "Updated application settings"
 msgstr "Réglages mis à jour"
 
-#: rhodecode/controllers/admin/settings.py:164
-#: rhodecode/controllers/admin/settings.py:275
+#: rhodecode/controllers/admin/settings.py:165
+#: rhodecode/controllers/admin/settings.py:293
 msgid "error occurred during updating application settings"
 msgstr "Une erreur est survenue durant la mise à jour des options."
 
-#: rhodecode/controllers/admin/settings.py:200
-#, fuzzy
+#: rhodecode/controllers/admin/settings.py:201
 msgid "Updated visualisation settings"
-msgstr "Réglages mis à jour"
-
-#: rhodecode/controllers/admin/settings.py:205
-#, fuzzy
+msgstr "Réglages d’affichage mis à jour."
+
+#: rhodecode/controllers/admin/settings.py:206
 msgid "error occurred during updating visualisation settings"
-msgstr "Une erreur est survenue durant la mise à jour des options."
-
-#: rhodecode/controllers/admin/settings.py:271
-#, fuzzy
+msgstr "Une erreur est survenue durant la mise à jour des réglages d’affichages."
+
+#: rhodecode/controllers/admin/settings.py:289
 msgid "Updated VCS settings"
-msgstr "Réglages de Mercurial mis à jour"
-
-#: rhodecode/controllers/admin/settings.py:285
+msgstr "Réglages des gestionnaires de versions mis à jour."
+
+#: rhodecode/controllers/admin/settings.py:303
 msgid "Added new hook"
 msgstr "Le nouveau hook a été ajouté."
 
-#: rhodecode/controllers/admin/settings.py:297
+#: rhodecode/controllers/admin/settings.py:315
 msgid "Updated hooks"
 msgstr "Hooks mis à jour"
 
-#: rhodecode/controllers/admin/settings.py:301
+#: rhodecode/controllers/admin/settings.py:319
 msgid "error occurred during hook creation"
 msgstr "Une erreur est survenue durant la création du hook."
 
-#: rhodecode/controllers/admin/settings.py:320
+#: rhodecode/controllers/admin/settings.py:338
 msgid "Email task created"
 msgstr "La tâche d’e-mail a été créée."
 
-#: rhodecode/controllers/admin/settings.py:375
+#: rhodecode/controllers/admin/settings.py:393
 msgid "You can't edit this user since it's crucial for entire application"
-msgstr ""
-"Vous ne pouvez pas éditer cet utilisateur ; il est nécessaire pour le bon"
-" fonctionnement de l’application."
-
-#: rhodecode/controllers/admin/settings.py:406
+msgstr "Vous ne pouvez pas éditer cet utilisateur ; il est nécessaire pour le bon fonctionnement de l’application."
+
+#: rhodecode/controllers/admin/settings.py:424
 msgid "Your account was updated successfully"
 msgstr "Votre compte a été mis à jour avec succès"
 
-#: rhodecode/controllers/admin/settings.py:421
+#: rhodecode/controllers/admin/settings.py:439
 #: rhodecode/controllers/admin/users.py:191
 #, python-format
 msgid "error occurred during update of user %s"
 msgstr "La permission de création de dépôts a été révoquée à l’utilisateur."
 
 #: rhodecode/controllers/admin/users.py:277
-#, fuzzy
 msgid "Granted 'repository fork' permission to user"
-msgstr "La permission de création de dépôts a été accordée à l’utilisateur."
+msgstr "La permission de fork de dépôts a été accordée à l’utilisateur."
 
 #: rhodecode/controllers/admin/users.py:282
-#, fuzzy
 msgid "Revoked 'repository fork' permission to user"
-msgstr "La permission de création de dépôts a été révoquée à l’utilisateur."
+msgstr "La permission de fork de dépôts a été révoquée à l’utilisateur."
 
 #: rhodecode/controllers/admin/users.py:288
 #: rhodecode/controllers/admin/users_groups.py:255
-#, fuzzy
 msgid "An error occurred during permissions saving"
-msgstr "Une erreur est survenue durant cette opération."
+msgstr "Une erreur est survenue durant l’enregistrement des permissions."
 
 #: rhodecode/controllers/admin/users.py:303
 #, python-format
 msgid "Added email %s to user"
-msgstr ""
+msgstr "L’e-mail « %s » a été ajouté à l’utilisateur."
 
 #: rhodecode/controllers/admin/users.py:309
-#, fuzzy
 msgid "An error occurred during email saving"
-msgstr "Une erreur est survenue durant cette opération."
+msgstr "Une erreur est survenue durant l’enregistrement de l’e-mail."
 
 #: rhodecode/controllers/admin/users.py:319
-#, fuzzy
 msgid "Removed email from user"
-msgstr "Le groupe de dépôts %s a été supprimé."
+msgstr "L’e-mail a été enlevé de l’utilisateur."
 
 #: rhodecode/controllers/admin/users_groups.py:84
 #, python-format
 msgstr "Une erreur est survenue lors de la suppression du groupe d’utilisateurs."
 
 #: rhodecode/controllers/admin/users_groups.py:233
-#, fuzzy
 msgid "Granted 'repository create' permission to users group"
-msgstr "La permission de création de dépôts a été accordée à l’utilisateur."
+msgstr "La permission de création de dépôts a été accordée au groupe d’utilisateurs."
 
 #: rhodecode/controllers/admin/users_groups.py:238
-#, fuzzy
 msgid "Revoked 'repository create' permission to users group"
-msgstr "La permission de création de dépôts a été révoquée à l’utilisateur."
+msgstr "La permission de création de dépôts a été révoquée au groupe d’utilisateurs."
 
 #: rhodecode/controllers/admin/users_groups.py:244
-#, fuzzy
 msgid "Granted 'repository fork' permission to users group"
-msgstr "La permission de création de dépôts a été accordée à l’utilisateur."
+msgstr "La permission de fork de dépôts a été accordée au groupe d’utilisateur."
 
 #: rhodecode/controllers/admin/users_groups.py:249
-#, fuzzy
 msgid "Revoked 'repository fork' permission to users group"
-msgstr "La permission de création de dépôts a été révoquée à l’utilisateur."
+msgstr "La permission de fork de dépôts a été révoquée au groupe d’utilisateurs."
 
 #: rhodecode/lib/auth.py:499
 msgid "You need to be a registered user to perform this action"
 msgid "You need to be a signed in to view this page"
 msgstr "Vous devez être connecté pour visualiser cette page."
 
-#: rhodecode/lib/diffs.py:86
+#: rhodecode/lib/diffs.py:87
 msgid "Changeset was too big and was cut off, use diff menu to display this diff"
-msgstr ""
-"Cet ensemble de changements était trop gros pour être affiché et a été "
-"découpé, utilisez le menu « Diff » pour afficher les différences."
-
-#: rhodecode/lib/diffs.py:96
+msgstr "Cet ensemble de changements était trop gros pour être affiché et a été découpé, utilisez le menu « Diff » pour afficher les différences."
+
+#: rhodecode/lib/diffs.py:97
 msgid "No changes detected"
 msgstr "Aucun changement détecté."
 
-#: rhodecode/lib/helpers.py:372
+#: rhodecode/lib/helpers.py:373
 #, python-format
 msgid "%a, %d %b %Y %H:%M:%S"
 msgstr "%d/%m/%Y à %H:%M:%S"
 
-#: rhodecode/lib/helpers.py:484
+#: rhodecode/lib/helpers.py:485
 msgid "True"
 msgstr "Vrai"
 
-#: rhodecode/lib/helpers.py:488
+#: rhodecode/lib/helpers.py:489
 msgid "False"
 msgstr "Faux"
 
-#: rhodecode/lib/helpers.py:532
+#: rhodecode/lib/helpers.py:533
 msgid "Changeset not found"
 msgstr "Ensemble de changements non trouvé"
 
-#: rhodecode/lib/helpers.py:555
+#: rhodecode/lib/helpers.py:556
 #, python-format
 msgid "Show all combined changesets %s->%s"
 msgstr "Afficher les changements combinés %s->%s"
 
-#: rhodecode/lib/helpers.py:561
+#: rhodecode/lib/helpers.py:562
 msgid "compare view"
 msgstr "vue de comparaison"
 
-#: rhodecode/lib/helpers.py:581
+#: rhodecode/lib/helpers.py:582
 msgid "and"
 msgstr "et"
 
-#: rhodecode/lib/helpers.py:582
+#: rhodecode/lib/helpers.py:583
 #, python-format
 msgid "%s more"
 msgstr "%s de plus"
 
-#: rhodecode/lib/helpers.py:583 rhodecode/templates/changelog/changelog.html:48
+#: rhodecode/lib/helpers.py:584
+#: rhodecode/templates/changelog/changelog.html:49
 msgid "revisions"
 msgstr "révisions"
 
-#: rhodecode/lib/helpers.py:606
+#: rhodecode/lib/helpers.py:607
 msgid "fork name "
 msgstr "Nom du fork"
 
-#: rhodecode/lib/helpers.py:620
+#: rhodecode/lib/helpers.py:621
 #: rhodecode/templates/pullrequests/pullrequest_show.html:4
 #: rhodecode/templates/pullrequests/pullrequest_show.html:12
 #, python-format
 msgid "Pull request #%s"
-msgstr ""
-
-#: rhodecode/lib/helpers.py:626
+msgstr "Requête de pull nº%s"
+
+#: rhodecode/lib/helpers.py:627
 msgid "[deleted] repository"
 msgstr "[a supprimé] le dépôt"
 
-#: rhodecode/lib/helpers.py:628 rhodecode/lib/helpers.py:638
+#: rhodecode/lib/helpers.py:629
+#: rhodecode/lib/helpers.py:639
 msgid "[created] repository"
 msgstr "[a créé] le dépôt"
 
-#: rhodecode/lib/helpers.py:630
+#: rhodecode/lib/helpers.py:631
 msgid "[created] repository as fork"
 msgstr "[a créé] le dépôt en tant que fork"
 
-#: rhodecode/lib/helpers.py:632 rhodecode/lib/helpers.py:640
+#: rhodecode/lib/helpers.py:633
+#: rhodecode/lib/helpers.py:641
 msgid "[forked] repository"
 msgstr "[a forké] le dépôt"
 
-#: rhodecode/lib/helpers.py:634 rhodecode/lib/helpers.py:642
+#: rhodecode/lib/helpers.py:635
+#: rhodecode/lib/helpers.py:643
 msgid "[updated] repository"
 msgstr "[a mis à jour] le dépôt"
 
-#: rhodecode/lib/helpers.py:636
+#: rhodecode/lib/helpers.py:637
 msgid "[delete] repository"
 msgstr "[a supprimé] le dépôt"
 
-#: rhodecode/lib/helpers.py:644
+#: rhodecode/lib/helpers.py:645
 msgid "[created] user"
 msgstr "[a créé] l’utilisateur"
 
-#: rhodecode/lib/helpers.py:646
+#: rhodecode/lib/helpers.py:647
 msgid "[updated] user"
 msgstr "[a mis à jour] l’utilisateur"
 
-#: rhodecode/lib/helpers.py:648
+#: rhodecode/lib/helpers.py:649
 msgid "[created] users group"
 msgstr "[a créé] le groupe d’utilisateurs"
 
-#: rhodecode/lib/helpers.py:650
+#: rhodecode/lib/helpers.py:651
 msgid "[updated] users group"
 msgstr "[a mis à jour] le groupe d’utilisateurs"
 
-#: rhodecode/lib/helpers.py:652
+#: rhodecode/lib/helpers.py:653
 msgid "[commented] on revision in repository"
 msgstr "[a commenté] une révision du dépôt"
 
-#: rhodecode/lib/helpers.py:654
-#, fuzzy
+#: rhodecode/lib/helpers.py:655
 msgid "[commented] on pull request for"
-msgstr "[a commenté] une révision du dépôt"
-
-#: rhodecode/lib/helpers.py:656
-#, fuzzy
+msgstr "[a commenté] la requête de pull pour"
+
+#: rhodecode/lib/helpers.py:657
 msgid "[closed] pull request for"
-msgstr "[a commenté] une révision du dépôt"
-
-#: rhodecode/lib/helpers.py:658
+msgstr "[a fermé] la requête de pull de"
+
+#: rhodecode/lib/helpers.py:659
 msgid "[pushed] into"
 msgstr "[a pushé] dans"
 
-#: rhodecode/lib/helpers.py:660
+#: rhodecode/lib/helpers.py:661
 msgid "[committed via RhodeCode] into repository"
 msgstr "[a commité via RhodeCode] dans le dépôt"
 
-#: rhodecode/lib/helpers.py:662
+#: rhodecode/lib/helpers.py:663
 msgid "[pulled from remote] into repository"
 msgstr "[a pullé depuis un site distant] dans le dépôt"
 
-#: rhodecode/lib/helpers.py:664
+#: rhodecode/lib/helpers.py:665
 msgid "[pulled] from"
 msgstr "[a pullé] depuis"
 
-#: rhodecode/lib/helpers.py:666
+#: rhodecode/lib/helpers.py:667
 msgid "[started following] repository"
 msgstr "[suit maintenant] le dépôt"
 
-#: rhodecode/lib/helpers.py:668
+#: rhodecode/lib/helpers.py:669
 msgid "[stopped following] repository"
 msgstr "[ne suit plus] le dépôt"
 
-#: rhodecode/lib/helpers.py:840
+#: rhodecode/lib/helpers.py:845
 #, python-format
 msgid " and %s more"
 msgstr "et %s de plus"
 
-#: rhodecode/lib/helpers.py:844
+#: rhodecode/lib/helpers.py:849
 msgid "No Files"
 msgstr "Aucun fichier"
 
-#: rhodecode/lib/utils2.py:335
+#: rhodecode/lib/utils2.py:352
 #, python-format
 msgid "%d year"
 msgid_plural "%d years"
 msgstr[0] "%d an"
 msgstr[1] "%d ans"
 
-#: rhodecode/lib/utils2.py:336
+#: rhodecode/lib/utils2.py:353
 #, python-format
 msgid "%d month"
 msgid_plural "%d months"
 msgstr[0] "%d mois"
 msgstr[1] "%d mois"
 
-#: rhodecode/lib/utils2.py:337
+#: rhodecode/lib/utils2.py:354
 #, python-format
 msgid "%d day"
 msgid_plural "%d days"
 msgstr[0] "%d jour"
 msgstr[1] "%d jours"
 
-#: rhodecode/lib/utils2.py:338
+#: rhodecode/lib/utils2.py:355
 #, python-format
 msgid "%d hour"
 msgid_plural "%d hours"
 msgstr[0] "%d heure"
 msgstr[1] "%d heures"
 
-#: rhodecode/lib/utils2.py:339
+#: rhodecode/lib/utils2.py:356
 #, python-format
 msgid "%d minute"
 msgid_plural "%d minutes"
 msgstr[0] "%d minute"
 msgstr[1] "%d minutes"
 
-#: rhodecode/lib/utils2.py:340
+#: rhodecode/lib/utils2.py:357
 #, python-format
 msgid "%d second"
 msgid_plural "%d seconds"
 msgstr[0] "%d seconde"
 msgstr[1] "%d secondes"
 
-#: rhodecode/lib/utils2.py:355
+#: rhodecode/lib/utils2.py:372
 #, python-format
 msgid "%s ago"
 msgstr "Il y a %s"
 
-#: rhodecode/lib/utils2.py:357
+#: rhodecode/lib/utils2.py:374
 #, python-format
 msgid "%s and %s ago"
 msgstr "Il y a %s et %s"
 
-#: rhodecode/lib/utils2.py:360
+#: rhodecode/lib/utils2.py:377
 msgid "just now"
 msgstr "à l’instant"
 
 msgid "on line %s"
 msgstr "à la ligne %s"
 
-#: rhodecode/model/comment.py:157
+#: rhodecode/model/comment.py:173
 msgid "[Mention]"
 msgstr "[Mention]"
 
-#: rhodecode/model/db.py:1140
-#, fuzzy
+#: rhodecode/model/db.py:1164
 msgid "Repository no access"
-msgstr "Dépôts"
-
-#: rhodecode/model/db.py:1141
-#, fuzzy
+msgstr "Aucun accès au dépôt"
+
+#: rhodecode/model/db.py:1165
 msgid "Repository read access"
-msgstr "Ce dépôt existe déjà"
-
-#: rhodecode/model/db.py:1142
-#, fuzzy
+msgstr "Accès en lecture au dépôt"
+
+#: rhodecode/model/db.py:1166
 msgid "Repository write access"
-msgstr "Dépôts"
-
-#: rhodecode/model/db.py:1143
-#, fuzzy
+msgstr "Accès en écriture au dépôt"
+
+#: rhodecode/model/db.py:1167
 msgid "Repository admin access"
-msgstr "Dépôts"
-
-#: rhodecode/model/db.py:1145
-#, fuzzy
+msgstr "Accès administrateur au dépôt"
+
+#: rhodecode/model/db.py:1169
 msgid "Repositories Group no access"
-msgstr "Groupes de dépôts"
-
-#: rhodecode/model/db.py:1146
-#, fuzzy
+msgstr "Aucun accès au groupe de dépôts"
+
+#: rhodecode/model/db.py:1170
 msgid "Repositories Group read access"
-msgstr "Groupes de dépôts"
-
-#: rhodecode/model/db.py:1147
-#, fuzzy
+msgstr "Accès en lecture au groupe de dépôts"
+
+#: rhodecode/model/db.py:1171
 msgid "Repositories Group write access"
-msgstr "Groupes de dépôts"
-
-#: rhodecode/model/db.py:1148
-#, fuzzy
+msgstr "Accès en écriture au groupe de dépôts"
+
+#: rhodecode/model/db.py:1172
 msgid "Repositories Group admin access"
-msgstr "Groupes de dépôts"
-
-#: rhodecode/model/db.py:1150
-#, fuzzy
+msgstr "Accès administrateur au groupe de dépôts"
+
+#: rhodecode/model/db.py:1174
 msgid "RhodeCode Administrator"
-msgstr "Administration des utilisateurs"
-
-#: rhodecode/model/db.py:1151
-#, fuzzy
+msgstr "Administrateur RhodeCode"
+
+#: rhodecode/model/db.py:1175
 msgid "Repository creation disabled"
-msgstr "Création de dépôt"
-
-#: rhodecode/model/db.py:1152
-#, fuzzy
+msgstr "Création de dépôt désactivée"
+
+#: rhodecode/model/db.py:1176
 msgid "Repository creation enabled"
-msgstr "Création de dépôt"
-
-#: rhodecode/model/db.py:1153
-#, fuzzy
+msgstr "Création de dépôt activée"
+
+#: rhodecode/model/db.py:1177
 msgid "Repository forking disabled"
-msgstr "Création de dépôt"
-
-#: rhodecode/model/db.py:1154
-#, fuzzy
+msgstr "Fork de dépôt désactivé"
+
+#: rhodecode/model/db.py:1178
 msgid "Repository forking enabled"
-msgstr "Création de dépôt"
-
-#: rhodecode/model/db.py:1155
-#, fuzzy
+msgstr "Fork de dépôt activé"
+
+#: rhodecode/model/db.py:1179
 msgid "Register disabled"
-msgstr "Désactivé"
-
-#: rhodecode/model/db.py:1156
+msgstr "Enregistrement désactivé"
+
+#: rhodecode/model/db.py:1180
 msgid "Register new user with RhodeCode with manual activation"
-msgstr ""
-
-#: rhodecode/model/db.py:1159
+msgstr "Enregistrer un nouvel utilisateur Rhodecode manuellement activé"
+
+#: rhodecode/model/db.py:1183
 msgid "Register new user with RhodeCode with auto activation"
-msgstr ""
-
-#: rhodecode/model/db.py:1579
+msgstr "Enregistrer un nouvel utilisateur Rhodecode auto-activé"
+
+#: rhodecode/model/db.py:1611
 msgid "Not Reviewed"
-msgstr ""
-
-#: rhodecode/model/db.py:1580
-#, fuzzy
+msgstr "Pas encore relue"
+
+#: rhodecode/model/db.py:1612
 msgid "Approved"
-msgstr "Supprimés"
-
-#: rhodecode/model/db.py:1581
+msgstr "Approuvée "
+
+#: rhodecode/model/db.py:1613
 msgid "Rejected"
-msgstr ""
-
-#: rhodecode/model/db.py:1582
+msgstr "Rejetée"
+
+#: rhodecode/model/db.py:1614
 msgid "Under Review"
-msgstr ""
+msgstr "En cours de relecture"
 
 #: rhodecode/model/forms.py:43
 msgid "Please enter a login"
 
 #: rhodecode/model/notification.py:224
 msgid "opened new pull request"
-msgstr ""
+msgstr "a ouvert une nouvelle requête de pull"
 
 #: rhodecode/model/notification.py:225
-#, fuzzy
 msgid "commented on pull request"
-msgstr "a posté un commentaire sur le commit"
-
-#: rhodecode/model/pull_request.py:84
+msgstr "a commenté sur la requête de pull"
+
+#: rhodecode/model/pull_request.py:89
 #, python-format
 msgid "%(user)s wants you to review pull request #%(pr_id)s"
-msgstr ""
+msgstr "%(user)s voudrait que vous examiniez sa requête de pull nº%(pr_id)s"
 
 #: rhodecode/model/scm.py:535
-#, fuzzy
 msgid "latest tip"
-msgstr "Dernière connexion"
+msgstr "Dernier sommet"
 
 #: rhodecode/model/user.py:230
 msgid "new user registration"
 msgstr "Nouveau compte utilisateur enregistré"
 
-#: rhodecode/model/user.py:255 rhodecode/model/user.py:277
+#: rhodecode/model/user.py:255
+#: rhodecode/model/user.py:277
 #: rhodecode/model/user.py:299
 msgid "You can't Edit this user since it's crucial for entire application"
-msgstr ""
-"Vous ne pouvez pas éditer cet utilisateur ; il est nécessaire pour le bon"
-" fonctionnement de l’application."
+msgstr "Vous ne pouvez pas éditer cet utilisateur ; il est nécessaire pour le bon fonctionnement de l’application."
 
 #: rhodecode/model/user.py:323
 msgid "You can't remove this user since it's crucial for entire application"
-msgstr ""
-"Vous ne pouvez pas supprimer cet utilisateur ; il est nécessaire pour le "
-"bon fonctionnement de l’application."
+msgstr "Vous ne pouvez pas supprimer cet utilisateur ; il est nécessaire pour le bon fonctionnement de l’application."
 
 #: rhodecode/model/user.py:329
 #, python-format
-msgid ""
-"user \"%s\" still owns %s repositories and cannot be removed. Switch "
-"owners or remove those repositories. %s"
-msgstr ""
-"L’utilisateur « %s » possède %s dépôts et ne peut être supprimé. Changez "
-"les propriétaires de ces dépôts. %s"
-
-#: rhodecode/model/validators.py:35 rhodecode/model/validators.py:36
+msgid "user \"%s\" still owns %s repositories and cannot be removed. Switch owners or remove those repositories. %s"
+msgstr "L’utilisateur « %s » possède %s dépôts et ne peut être supprimé. Changez les propriétaires de ces dépôts. %s"
+
+#: rhodecode/model/validators.py:36
+#: rhodecode/model/validators.py:37
 msgid "Value cannot be an empty list"
-msgstr ""
-
-#: rhodecode/model/validators.py:82
-#, fuzzy, python-format
+msgstr "Cette valeur ne peut être une liste vide."
+
+#: rhodecode/model/validators.py:83
+#, python-format
 msgid "Username \"%(username)s\" already exists"
-msgstr "Ce nom \"%(username)s\" d’utilisateur existe déjà"
-
-#: rhodecode/model/validators.py:84
+msgstr "Le nom d’utilisateur « %(username)s » existe déjà."
+
+#: rhodecode/model/validators.py:85
 #, python-format
 msgid "Username \"%(username)s\" is forbidden"
-msgstr ""
-
-#: rhodecode/model/validators.py:86
-msgid ""
-"Username may only contain alphanumeric characters underscores, periods or"
-" dashes and must begin with alphanumeric character"
-msgstr ""
-"Le nom d’utilisateur peut contenir uniquement des caractères alpha-"
-"numériques ainsi que les caractères suivants : « _ . - ». Il doit "
-"commencer par un caractère alpha-numérique."
-
-#: rhodecode/model/validators.py:114
+msgstr "Le nom d’utilisateur « %(username)s » n’est pas autorisé"
+
+#: rhodecode/model/validators.py:87
+msgid "Username may only contain alphanumeric characters underscores, periods or dashes and must begin with alphanumeric character"
+msgstr "Le nom d’utilisateur peut contenir uniquement des caractères alpha-numériques ainsi que les caractères suivants : « _ . - ». Il doit commencer par un caractère alpha-numérique."
+
+#: rhodecode/model/validators.py:115
 #, python-format
 msgid "Username %(username)s is not valid"
-msgstr "%(username)s Nom d'utilisateur n'est pas valide"
-
-#: rhodecode/model/validators.py:133
-#, fuzzy
+msgstr "Le nom d’utilisateur « %(username)s » n’est pas valide."
+
+#: rhodecode/model/validators.py:134
 msgid "Invalid users group name"
-msgstr "nom d’utilisateur invalide"
-
-#: rhodecode/model/validators.py:134
+msgstr "Nom de groupe d’utilisateurs invalide."
+
+#: rhodecode/model/validators.py:135
 #, python-format
 msgid "Users group \"%(usersgroup)s\" already exists"
-msgstr "Ce groupe \"%(usersgroup)s\" d’utilisateurs existe déjà."
-
-#: rhodecode/model/validators.py:136
-msgid ""
-"users group name may only contain  alphanumeric characters underscores, "
-"periods or dashes and must begin with alphanumeric character"
-msgstr ""
-"Le nom de groupe de dépôts peut contenir uniquement des caractères alpha-"
-"numériques ainsi que les caractères suivants : « _ . - ». Il doit "
-"commencer par un caractère alpha-numérique."
-
-#: rhodecode/model/validators.py:174
+msgstr "Le groupe d’utilisateurs « %(usersgroup)s » existe déjà."
+
+#: rhodecode/model/validators.py:137
+msgid "users group name may only contain  alphanumeric characters underscores, periods or dashes and must begin with alphanumeric character"
+msgstr "Le nom de groupe d’utilisateurs peut contenir uniquement des caractères alpha-numériques ainsi que les caractères suivants : « _ . - ». Il doit commencer par un caractère alpha-numérique."
+
+#: rhodecode/model/validators.py:175
 msgid "Cannot assign this group as parent"
 msgstr "Impossible d’assigner ce groupe en tant que parent."
 
-#: rhodecode/model/validators.py:175
+#: rhodecode/model/validators.py:176
 #, python-format
 msgid "Group \"%(group_name)s\" already exists"
-msgstr "Ce nom d’utilisateur \"%(group_name)s\" existe déjà"
-
-#: rhodecode/model/validators.py:177
+msgstr "Le groupe « %(group_name)s » existe déjà."
+
+#: rhodecode/model/validators.py:178
 #, python-format
 msgid "Repository with name \"%(group_name)s\" already exists"
-msgstr "Dépôt avec le nom de \"%(group_name)s\" existe déjà"
-
-#: rhodecode/model/validators.py:235
-#, fuzzy
+msgstr "Un dépôt portant le nom « %(group_name)s » existe déjà."
+
+#: rhodecode/model/validators.py:236
 msgid "Invalid characters (non-ascii) in password"
-msgstr "Caractères incorrects dans le mot de passe"
-
-#: rhodecode/model/validators.py:250
+msgstr "Caractères incorrects (non-ASCII) dans le mot de passe."
+
+#: rhodecode/model/validators.py:251
 msgid "Passwords do not match"
 msgstr "Les mots de passe ne correspondent pas."
 
-#: rhodecode/model/validators.py:267
+#: rhodecode/model/validators.py:268
 msgid "invalid password"
 msgstr "mot de passe invalide"
 
-#: rhodecode/model/validators.py:268
+#: rhodecode/model/validators.py:269
 msgid "invalid user name"
 msgstr "nom d’utilisateur invalide"
 
-#: rhodecode/model/validators.py:269
+#: rhodecode/model/validators.py:270
 msgid "Your account is disabled"
 msgstr "Votre compte est désactivé"
 
-#: rhodecode/model/validators.py:313
+#: rhodecode/model/validators.py:314
 #, python-format
 msgid "Repository name %(repo)s is disallowed"
-msgstr "Ce nom de dépôt %(repo)s est interdit"
-
-#: rhodecode/model/validators.py:315
+msgstr "Le nom de dépôt « %(repo)s » n’est pas autorisé."
+
+#: rhodecode/model/validators.py:316
 #, python-format
 msgid "Repository named %(repo)s already exists"
-msgstr "Un dépôt portant %(repo)s ce nom existe déjà."
-
-#: rhodecode/model/validators.py:316
+msgstr "Un dépôt portant le nom « %(repo)s » existe déjà."
+
+#: rhodecode/model/validators.py:317
 #, python-format
 msgid "Repository \"%(repo)s\" already exists in group \"%(group)s\""
-msgstr "Ce dépôt \"%(repo)s\" existe déjà dans le groupe « \"%(group)s\" »."
-
-#: rhodecode/model/validators.py:318
+msgstr "Le dépôt « %(repo)s » existe déjà dans le groupe « %(group)s »."
+
+#: rhodecode/model/validators.py:319
 #, python-format
 msgid "Repositories group with name \"%(repo)s\" already exists"
-msgstr "Un dépôt portant \"%(repo)s\" ce nom existe déjà."
-
-#: rhodecode/model/validators.py:431
+msgstr "Un groupe de dépôts portant le nom « %(repo)s » existe déjà."
+
+#: rhodecode/model/validators.py:432
 msgid "invalid clone url"
 msgstr "URL de clonage invalide."
 
-#: rhodecode/model/validators.py:432
-#, fuzzy
+#: rhodecode/model/validators.py:433
 msgid "Invalid clone url, provide a valid clone http(s)/svn+http(s) url"
-msgstr ""
-"URL à cloner invalide. Veuillez fournir une URL valide commençant par "
-"http(s)."
-
-#: rhodecode/model/validators.py:457
-#, fuzzy
+msgstr "URL à cloner invalide. Veuillez fournir une URL valide en http(s) ou svn+http(s)."
+
+#: rhodecode/model/validators.py:458
 msgid "Fork have to be the same type as parent"
-msgstr "Le fork doit être du même type que l’original"
-
-#: rhodecode/model/validators.py:478
+msgstr "Le fork doit être du même type que le parent."
+
+#: rhodecode/model/validators.py:473
+#| msgid "You don't have permission to view this page"
+msgid "You don't have permissions to create repository in this group"
+msgstr "Vous n’avez pas la permission de créer un dépôt dans ce groupe."
+
+#: rhodecode/model/validators.py:498
 msgid "This username or users group name is not valid"
 msgstr "Ce nom d’utilisateur ou de groupe n’est pas valide."
 
-#: rhodecode/model/validators.py:562
+#: rhodecode/model/validators.py:582
 msgid "This is not a valid path"
 msgstr "Ceci n’est pas un chemin valide"
 
-#: rhodecode/model/validators.py:577
+#: rhodecode/model/validators.py:597
 msgid "This e-mail address is already taken"
 msgstr "Cette adresse e-mail est déjà enregistrée"
 
-#: rhodecode/model/validators.py:597
+#: rhodecode/model/validators.py:617
 #, python-format
 msgid "e-mail \"%(email)s\" does not exist."
-msgstr "Cette adresse e-mail \"%(email)s\" n’existe pas"
-
-#: rhodecode/model/validators.py:634
-msgid ""
-"The LDAP Login attribute of the CN must be specified - this is the name "
-"of the attribute that is equivalent to \"username\""
-msgstr ""
-"L’attribut Login du CN doit être spécifié. Cet attribut correspond au nom"
-" d’utilisateur."
-
-#: rhodecode/model/validators.py:653
+msgstr "L’adresse e-mail « %(email)s » n’existe pas"
+
+#: rhodecode/model/validators.py:654
+msgid "The LDAP Login attribute of the CN must be specified - this is the name of the attribute that is equivalent to \"username\""
+msgstr "L’attribut Login du CN doit être spécifié. Cet attribut correspond au nom d’utilisateur."
+
+#: rhodecode/model/validators.py:673
 #, python-format
 msgid "Revisions %(revs)s are already part of pull request or have set status"
-msgstr ""
+msgstr "Les révisions %(revs)s font déjà partie de la requête de pull ou on des statuts définis."
 
 #: rhodecode/templates/index.html:3
 msgid "Dashboard"
 
 #: rhodecode/templates/index_base.html:6
 #: rhodecode/templates/admin/repos/repos.html:9
-#: rhodecode/templates/base/base.html:221
+#: rhodecode/templates/base/base.html:230
 msgid "repositories"
 msgstr "Dépôts"
 
 #: rhodecode/templates/admin/repos/repos.html:70
 #: rhodecode/templates/admin/users/user_edit.html:192
 #: rhodecode/templates/admin/users/user_edit_my_account.html:59
-#: rhodecode/templates/admin/users/user_edit_my_account.html:157
-#: rhodecode/templates/admin/users/user_edit_my_account.html:193
+#: rhodecode/templates/admin/users/user_edit_my_account.html:181
+#: rhodecode/templates/admin/users/user_edit_my_account.html:217
 #: rhodecode/templates/admin/users/user_edit_my_account_repos.html:6
 #: rhodecode/templates/bookmarks/bookmarks.html:36
 #: rhodecode/templates/bookmarks/bookmarks_data.html:6
 
 #: rhodecode/templates/index_base.html:73
 #: rhodecode/templates/index_base.html:171
-#: rhodecode/templates/admin/users/user_edit_my_account.html:159
+#: rhodecode/templates/admin/users/user_edit_my_account.html:183
 #: rhodecode/templates/journal/journal.html:188
 msgid "Tip"
 msgstr "Sommet"
 #: rhodecode/templates/index_base.html:158
 #: rhodecode/templates/index_base.html:198
 #: rhodecode/templates/admin/repos/repos.html:94
-#: rhodecode/templates/admin/users/user_edit_my_account.html:179
+#: rhodecode/templates/admin/users/user_edit_my_account.html:203
 #: rhodecode/templates/admin/users/users.html:107
 #: rhodecode/templates/bookmarks/bookmarks.html:60
 #: rhodecode/templates/branches/branches.html:77
 #: rhodecode/templates/index_base.html:159
 #: rhodecode/templates/index_base.html:199
 #: rhodecode/templates/admin/repos/repos.html:95
-#: rhodecode/templates/admin/users/user_edit_my_account.html:180
+#: rhodecode/templates/admin/users/user_edit_my_account.html:204
 #: rhodecode/templates/admin/users/users.html:108
 #: rhodecode/templates/bookmarks/bookmarks.html:61
 #: rhodecode/templates/branches/branches.html:78
 
 #: rhodecode/templates/index_base.html:200
 #: rhodecode/templates/admin/repos/repos.html:96
-#: rhodecode/templates/admin/users/user_edit_my_account.html:181
+#: rhodecode/templates/admin/users/user_edit_my_account.html:205
 #: rhodecode/templates/admin/users/users.html:109
 #: rhodecode/templates/bookmarks/bookmarks.html:62
 #: rhodecode/templates/branches/branches.html:79
 
 #: rhodecode/templates/index_base.html:201
 #: rhodecode/templates/admin/repos/repos.html:97
-#: rhodecode/templates/admin/users/user_edit_my_account.html:182
+#: rhodecode/templates/admin/users/user_edit_my_account.html:206
 #: rhodecode/templates/admin/users/users.html:110
 #: rhodecode/templates/bookmarks/bookmarks.html:63
 #: rhodecode/templates/branches/branches.html:80
 
 #: rhodecode/templates/index_base.html:202
 #: rhodecode/templates/admin/repos/repos.html:98
-#: rhodecode/templates/admin/users/user_edit_my_account.html:183
+#: rhodecode/templates/admin/users/user_edit_my_account.html:207
 #: rhodecode/templates/admin/users/users.html:111
 #: rhodecode/templates/bookmarks/bookmarks.html:64
 #: rhodecode/templates/branches/branches.html:81
 msgid "Loading..."
 msgstr "Chargement…"
 
-#: rhodecode/templates/login.html:5 rhodecode/templates/login.html:54
+#: rhodecode/templates/login.html:5
+#: rhodecode/templates/login.html:54
 msgid "Sign In"
 msgstr "Connexion"
 
 msgid "Sign In to"
 msgstr "Connexion à"
 
-#: rhodecode/templates/login.html:31 rhodecode/templates/register.html:20
+#: rhodecode/templates/login.html:31
+#: rhodecode/templates/register.html:20
 #: rhodecode/templates/admin/admin_log.html:5
 #: rhodecode/templates/admin/users/user_add.html:32
 #: rhodecode/templates/admin/users/user_edit.html:50
 msgid "Username"
 msgstr "Nom d’utilisateur"
 
-#: rhodecode/templates/login.html:40 rhodecode/templates/register.html:29
+#: rhodecode/templates/login.html:40
+#: rhodecode/templates/register.html:29
 #: rhodecode/templates/admin/ldap/ldap.html:46
 #: rhodecode/templates/admin/users/user_add.html:41
 #: rhodecode/templates/base/base.html:92
 msgid "Forgot your password ?"
 msgstr "Mot de passe oublié ?"
 
-#: rhodecode/templates/login.html:63 rhodecode/templates/base/base.html:103
+#: rhodecode/templates/login.html:63
+#: rhodecode/templates/base/base.html:103
 msgid "Don't have an account ?"
 msgstr "Vous n’avez pas de compte ?"
 
 msgid "Password reset link will be send to matching email address"
 msgstr "Votre nouveau mot de passe sera envoyé à l’adresse correspondante."
 
-#: rhodecode/templates/register.html:5 rhodecode/templates/register.html:74
+#: rhodecode/templates/register.html:5
+#: rhodecode/templates/register.html:74
 msgid "Sign Up"
 msgstr "Inscription"
 
 
 #: rhodecode/templates/admin/notifications/notifications.html:29
 msgid "All"
-msgstr ""
+msgstr "Tous"
 
 #: rhodecode/templates/admin/notifications/notifications.html:30
-#, fuzzy
 msgid "Comments"
-msgstr "commits"
+msgstr "Commentaires"
 
 #: rhodecode/templates/admin/notifications/notifications.html:31
-#: rhodecode/templates/base/base.html:254
-#: rhodecode/templates/base/base.html:256
+#: rhodecode/templates/base/base.html:263
+#: rhodecode/templates/base/base.html:265
 msgid "Pull requests"
-msgstr ""
+msgstr "Requêtes de pull"
 
 #: rhodecode/templates/admin/notifications/notifications.html:35
 msgid "Mark all read"
 msgstr "Permissions du dépôt"
 
 #: rhodecode/templates/admin/permissions/permissions.html:49
-msgid ""
-"All default permissions on each repository will be reset to choosen "
-"permission, note that all custom default permission on repositories will "
-"be lost"
-msgstr ""
-"Les permissions par défaut de chaque dépôt vont être remplacées par la "
-"permission choisie. Toutes les permissions par défaut des dépôts seront "
-"perdues."
+msgid "All default permissions on each repository will be reset to choosen permission, note that all custom default permission on repositories will be lost"
+msgstr "Les permissions par défaut de chaque dépôt vont être remplacées par la permission choisie. Toutes les permissions par défaut des dépôts seront perdues."
 
 #: rhodecode/templates/admin/permissions/permissions.html:50
 msgid "overwrite existing settings"
 msgstr "Création de dépôt"
 
 #: rhodecode/templates/admin/permissions/permissions.html:71
-#, fuzzy
 msgid "Repository forking"
-msgstr "Création de dépôt"
+msgstr "Fork de dépôt"
 
 #: rhodecode/templates/admin/permissions/permissions.html:78
-#: rhodecode/templates/admin/repos/repo_edit.html:241
+#: rhodecode/templates/admin/repos/repo_edit.html:255
 msgid "set"
 msgstr "Définir"
 
 
 #: rhodecode/templates/admin/repos/repo_add_base.html:33
 #: rhodecode/templates/forks/fork.html:54
-#, fuzzy
 msgid "Optionaly select a group to put this repository into."
 msgstr "Sélectionnez un groupe (optionel) dans lequel sera placé le dépôt."
 
 #: rhodecode/templates/admin/repos/repo_edit.html:66
 #: rhodecode/templates/forks/fork.html:41
 #: rhodecode/templates/settings/repo_settings.html:57
-#, fuzzy
 msgid "Landing revision"
-msgstr "révision suivante"
+msgstr "Révision d’arrivée"
 
 #: rhodecode/templates/admin/repos/repo_add_base.html:51
 #: rhodecode/templates/admin/repos/repo_edit.html:70
 #: rhodecode/templates/forks/fork.html:45
 #: rhodecode/templates/settings/repo_settings.html:61
 msgid "Default revision for files page, downloads, whoosh and readme"
-msgstr ""
+msgstr "Révision par défaut pour les pages de fichiers, de téléchargements, de recherche et de documentation."
 
 #: rhodecode/templates/admin/repos/repo_add_base.html:60
 #: rhodecode/templates/admin/repos/repo_edit.html:79
 #: rhodecode/templates/forks/fork.html:63
 #: rhodecode/templates/settings/repo_settings.html:70
 msgid "Keep it short and to the point. Use a README file for longer descriptions."
-msgstr ""
-"Gardez cette description précise et concise. Utilisez un fichier README "
-"pour des descriptions plus détaillées."
+msgstr "Gardez cette description précise et concise. Utilisez un fichier README pour des descriptions plus détaillées."
 
 #: rhodecode/templates/admin/repos/repo_add_base.html:69
 #: rhodecode/templates/admin/repos/repo_edit.html:89
 #: rhodecode/templates/forks/fork.html:72
 #: rhodecode/templates/settings/repo_settings.html:80
-msgid ""
-"Private repositories are only visible to people explicitly added as "
-"collaborators."
-msgstr ""
-"Les dépôts privés sont visibles seulement par les utilisateurs ajoutés "
-"comme collaborateurs."
+msgid "Private repositories are only visible to people explicitly added as collaborators."
+msgstr "Les dépôts privés sont visibles seulement par les utilisateurs ajoutés comme collaborateurs."
 
 #: rhodecode/templates/admin/repos/repo_add_base.html:73
 msgid "add"
 
 #: rhodecode/templates/admin/repos/repo_edit.html:112
 #: rhodecode/templates/admin/repos_groups/repos_groups_edit.html:66
-#, fuzzy
 msgid "Enable locking"
-msgstr "Activer"
+msgstr "Activer le verrouillage"
 
 #: rhodecode/templates/admin/repos/repo_edit.html:116
 msgid "Enable lock-by-pulling on repository."
-msgstr ""
+msgstr "Activer le verrouillage lors d’un pull sur le dépôt."
 
 #: rhodecode/templates/admin/repos/repo_edit.html:126
 msgid "Change owner of this repository."
 #: rhodecode/templates/admin/users_groups/users_group_edit.html:136
 #: rhodecode/templates/files/files_add.html:82
 #: rhodecode/templates/files/files_edit.html:68
-#: rhodecode/templates/pullrequests/pullrequest.html:124
+#: rhodecode/templates/pullrequests/pullrequest.html:122
 #: rhodecode/templates/settings/repo_settings.html:94
 msgid "Reset"
 msgstr "Réinitialiser"
 msgid "Confirm to invalidate repository cache"
 msgstr "Voulez-vous vraiment invalider le cache du dépôt ?"
 
-#: rhodecode/templates/admin/repos/repo_edit.html:195
-#: rhodecode/templates/base/base.html:318
-#: rhodecode/templates/base/base.html:320
-#: rhodecode/templates/base/base.html:322
+#: rhodecode/templates/admin/repos/repo_edit.html:193
+msgid "Manually invalidate cache for this repository. On first access repository will be cached again"
+msgstr "Invalide manuellement le cache de ce dépôt. Au prochain accès sur ce dépôt, il sera à nouveau mis en cache."
+
+#: rhodecode/templates/admin/repos/repo_edit.html:198
+msgid "List of cached values"
+msgstr "Liste des valeurs en cache"
+
+#: rhodecode/templates/admin/repos/repo_edit.html:209
+#: rhodecode/templates/base/base.html:327
+#: rhodecode/templates/base/base.html:329
+#: rhodecode/templates/base/base.html:331
 msgid "Public journal"
 msgstr "Journal public"
 
-#: rhodecode/templates/admin/repos/repo_edit.html:201
+#: rhodecode/templates/admin/repos/repo_edit.html:215
 msgid "Remove from public journal"
 msgstr "Supprimer du journal public"
 
-#: rhodecode/templates/admin/repos/repo_edit.html:203
+#: rhodecode/templates/admin/repos/repo_edit.html:217
 msgid "Add to public journal"
 msgstr "Ajouter le dépôt au journal public"
 
-#: rhodecode/templates/admin/repos/repo_edit.html:208
-msgid ""
-"All actions made on this repository will be accessible to everyone in "
-"public journal"
-msgstr ""
-"Le descriptif des actions réalisées sur ce dépôt sera visible à tous "
-"depuis le journal public."
-
-#: rhodecode/templates/admin/repos/repo_edit.html:215
-#, fuzzy
+#: rhodecode/templates/admin/repos/repo_edit.html:222
+msgid "All actions made on this repository will be accessible to everyone in public journal"
+msgstr "Le descriptif des actions réalisées sur ce dépôt sera visible à tous depuis le journal public."
+
+#: rhodecode/templates/admin/repos/repo_edit.html:229
 msgid "Locking"
-msgstr "Déverrouiller"
-
-#: rhodecode/templates/admin/repos/repo_edit.html:220
+msgstr "Verrouillage"
+
+#: rhodecode/templates/admin/repos/repo_edit.html:234
 msgid "Unlock locked repo"
-msgstr ""
-
-#: rhodecode/templates/admin/repos/repo_edit.html:220
-#, fuzzy
+msgstr "Déverrouiller le dépôt"
+
+#: rhodecode/templates/admin/repos/repo_edit.html:234
 msgid "Confirm to unlock repository"
-msgstr "Voulez-vous vraiment supprimer ce dépôt ?"
-
-#: rhodecode/templates/admin/repos/repo_edit.html:223
+msgstr "Veuillez confirmer le déverrouillage de ce dépôt."
+
+#: rhodecode/templates/admin/repos/repo_edit.html:237
 msgid "lock repo"
-msgstr ""
-
-#: rhodecode/templates/admin/repos/repo_edit.html:223
-#, fuzzy
+msgstr "Verrouiller le dépôt"
+
+#: rhodecode/templates/admin/repos/repo_edit.html:237
 msgid "Confirm to lock repository"
-msgstr "Voulez-vous vraiment supprimer ce dépôt ?"
-
-#: rhodecode/templates/admin/repos/repo_edit.html:224
-#, fuzzy
+msgstr "Veuillez confirmer le verrouillage de ce dépôt."
+
+#: rhodecode/templates/admin/repos/repo_edit.html:238
 msgid "Repository is not locked"
-msgstr "Dépôts"