# HG changeset patch # User Marcin Kuzminski # Date 2012-10-08 20:37:09 # Node ID 1f7b8c73c94ab608670103a306a5af52e6a702a7 # Parent 3c7c24f9031fe45247d784c7c27fd99e1ca49462 # Parent 40362af426b40f403f0bc87a739f9243fdcf2989 Merge with beta diff --git a/docs/changelog.rst b/docs/changelog.rst --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -4,6 +4,32 @@ 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**) ---------------------- diff --git a/rhodecode/__init__.py b/rhodecode/__init__.py --- a/rhodecode/__init__.py +++ b/rhodecode/__init__.py @@ -26,7 +26,7 @@ import sys import platform -VERSION = (1, 4, 3) +VERSION = (1, 4, 4) try: from rhodecode.lib import get_current_revision diff --git a/rhodecode/config/environment.py b/rhodecode/config/environment.py --- a/rhodecode/config/environment.py +++ b/rhodecode/config/environment.py @@ -18,7 +18,7 @@ from rhodecode.config.routing import mak 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 @@ -86,6 +86,9 @@ def load_environment(global_conf, app_co 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.') diff --git a/rhodecode/controllers/admin/settings.py b/rhodecode/controllers/admin/settings.py --- a/rhodecode/controllers/admin/settings.py +++ b/rhodecode/controllers/admin/settings.py @@ -41,7 +41,7 @@ from rhodecode.lib.auth import LoginRequ 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, \ @@ -68,7 +68,8 @@ class SettingsController(BaseController) 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() diff --git a/rhodecode/controllers/compare.py b/rhodecode/controllers/compare.py --- a/rhodecode/controllers/compare.py +++ b/rhodecode/controllers/compare.py @@ -40,6 +40,7 @@ from rhodecode.lib import diffs 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__) @@ -86,11 +87,13 @@ class CompareController(BaseRepoControll 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) @@ -107,8 +110,8 @@ class CompareController(BaseRepoControll 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]) @@ -118,11 +121,18 @@ class CompareController(BaseRepoControll 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() diff --git a/rhodecode/controllers/pullrequests.py b/rhodecode/controllers/pullrequests.py --- a/rhodecode/controllers/pullrequests.py +++ b/rhodecode/controllers/pullrequests.py @@ -172,8 +172,9 @@ class PullrequestsController(BaseRepoCon @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'): @@ -272,6 +273,12 @@ class PullrequestsController(BaseRepoCon 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 diff --git a/rhodecode/controllers/shortlog.py b/rhodecode/controllers/shortlog.py --- a/rhodecode/controllers/shortlog.py +++ b/rhodecode/controllers/shortlog.py @@ -53,6 +53,8 @@ class ShortlogController(BaseRepoControl 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)) diff --git a/rhodecode/controllers/summary.py b/rhodecode/controllers/summary.py --- a/rhodecode/controllers/summary.py +++ b/rhodecode/controllers/summary.py @@ -78,6 +78,8 @@ class SummaryController(BaseRepoControll 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 diff --git a/rhodecode/i18n/fr/LC_MESSAGES/rhodecode.mo b/rhodecode/i18n/fr/LC_MESSAGES/rhodecode.mo index c4d8e0f2fecf2ad5dd3d79d5b44c9ad7137233ef..c9b42f6da1c7108470b81b4d5d1c5c92ddb9fb7b GIT binary patch literal 59634 zc%1FM37i~NwLe~pD^JAj=|kmNq9a5zO;}_JvP?3QWMF18%#r{hKuveeOeH`O*KKv{&a%960@@BQFC7gXL;{GD^Y=T_b7B@^(y|MvOk z^U2(*TX#M8+_T@?&wt{5XFK$7=dB#)^OT;oos;_ak=^J&rQ1-tJEfnc^q(o6P3fm8 z^(p-*rOPS(7^SCD`YB3(KCe zoziV6ZPEAHnjWrcK`8Ot@$ZTDzqTjFx%Zxc z$BaDzuR|$)Kc&NaqWuD;@8fw;`e90!QTlO8zqKde_kAsQ&7K(lO`6`R{oT7K;QD~} z^Q`v!2Blx6^uPAR{Jydm#<}xe7{~sU?m%hRURc*fd!gJ(TJH3{u+D2V{i)V_XfKTa zxxFyYmo)!(djU_Jy)mw@@2&Hvw2$Xc=~LN=`>1rWH?Z|Go|NHx+l+z zQUbN}_EfaH`#z5I4PJLjCsBF{rBf(Gb_Dzsi2-XC0+3rMK^gb$Nb2wD-sTfDdo$`)BrdoKI5v z#r@Im*C}mhI8(Y4uiyT_|C=f8;eAMH8`nF4aGKKjlzy4gZy$huu08;8yypPm^}ii} z{brPjtU_5RC-aOR;e0xpn z|G5Qt^Y<3a>m$?fzP+Yjod)>qsp%ngCO25eKH4XE)a~k@2h0?E3`u^!iCr`(E z^iBty3ey3H?@tFEylpz*`n0C6Psh04(~9wYxD|Nx*;b5uS}W$+(~9y7S^=-4TQS~K zS^=kXS^=l?TS1>LZ3X^Zuk~(f#dv-}DWQtm0C3;ovbWe2QYqjV0_zjg1+q5iE_gg!GPvf0{+ryn`e`6=c@usF9 z=t8;AbYa|I>O#5ZE|nwn`)qxmr)kiIc`fb&U0&V={Jx+|>0%ew{hlts@0l*(`zw@Y zDSe|027|$c!7~j*~fXB=F{$@Au$vGJL+a8Sa?!j2ENe5&8J0A@A?tU=Z zok1y!guPmCMC%=WFxormV6=bE!GQCH2V>kfYCGeaZqRbC9SnN$doB0=9<=kx9<0j_ zJ%CfD2mQA7px%)^XlFqW`dO~&={*?tk9siPwLO5-PkJ!kJ9^O1!#&^w&-GyZf9nC< zKhTSMpYMfSF{u}Pc(51yYjrQ$d$d>iK`-F-dN0=b54~vbKYP*MRwU$*sN!tbhk5k% z0lydaVIC*+VIC{{Fy9ONKzFX}!+QR_4|MmrKFsUQKJ@>eec<2k?Fan&`_b=kKj61W z({J```~Bd97xn`Vu#Kb{%@Xx_SetBxF4H?{{L+b#{aiDz~A@I#r(f87xVe*T$I~&F5uic7xLcHxmb_u zwA`I@(a(KzG44m^VjOSG1^oYWF2?PiwhP9)|w+I1JqjVF9|64j&m*voA3757-}XqX z^Ug0&v*7y6g-Xlk0pKLe^>-yGFz?=7ZXz$}5*5OMY_}76R#$ECtr=0F#p4WORckBDl z^!*ne`gv08{n`V(|Ek|VHURzQa|0On%mLuToB_aTXaMC416cRt27te-1_0-u4q&{G z4*jydTv)gi5zt8y?#~wb~>-K^7fsgOs((h}0;N2}g#`UO=dH%`A{`v?Z z?@xIh2l4%FO84UR7=oO2_z>DZVF-A7KBf2YIQ9K|!jhY!9T$KOe|-Vg z(O&?(K4AgidHMpt<=F+m(>E6Y|K47J`8O>Dy*ZH5Wt5IA#JqmH5dHo8Lg3T;@)+-w zJm9`>9{n7eM|oerFU(`UOY&HUbMnB8EAvYC^VokkYq|Ti{%d*6pp#)lD%=RF1JH_ZjqTUY@7UtIt_d8~l>IYr2gO-037G2zapDBH-P$MM^gppmg#8_AxfKz{xiSLY zoD*Su7e#>c<@)_b&A%zrR_=zWzuB?R~t0ez&Wjo?Ah`dsIMo zr&UnCSKkk*V17Xb?S>W1@3;!)dwK=?@nWraZw2sqQ0s5d{$8yB4_~jq9`eai?1R=( ztVeki`9IY3;Zg7RAlBcC_YSxfpctSU0nSHgxshd{i^nVj z9gi_Gvo2 z9CU5@a@7l#qu;g50nh7}qy5{K>p1lN=i2VWn!c#*|86J`Q+)n|}Y*alrFU#{urIYyMl>-iMDz z`Y*?$+>Xa%opwDQ<-Tz|#@nIgyyGEXm5#^!uGV@FQF;^OucqH4px#R9LEi$u|KN$3 z$D|Xno_n5%b>9C(z~xYV&+Ge%Ct@7uo(Oncd?ME48qL4)M2zds6R}?(KN0xwADaI8 zM6A=>+TZ(5LOUNh32@%-B*1+Nr7b+plhE&XPeOZZ^!>JzK<^(u339~Wwf>h+#=Q19 z8E~I}GUVRTlYzI_oD6t9dNT0vMSXvp(tQ|zPf_}Iit3%Gz&?4cr$Ejb{5IM> z{@dUyw^K^0w6pQs(3AE)74qk~r$U~3`BZ%0*##Un8PF;z0S+f%R@v@cR$JegJx;?%U<9cQ#PRF`D zbvp3yZ>Iy^A36i$`^p)B+pcF|Jaf)~Uu(e`um}JB4Ag7?p5x?rpHVuK(wiwgh|>3* z3I5!9CdR+~OvtsToe6xt=S;xmF@4{3Ch+V(H2vF|nCI4KslECvjBER|FrGPLYo(25+UuOaCTb&JfefDg$^QE(~-*-M6bfE2Q;O(5V0l(mEjQ4`G zL1&*h8*=+6&jDT^a1QcI=fG}o{Qbt-^Zl zvkLR-vRrfj_P1V%^)% z1wMM`!k%!}xoGF@a{-SJoriLtIuH4i&x1a($9Y)4Ip<;D4xguV`aI~R7n}z;KXo4F z@w@YY&u^Uvcz${{#yx2@@O1yxC_k_o>$q&S%H6Ah59h4LJbt_y^5czK|Jl{Rli%t0 zzpsXVwe1gp2c47>OK=wc0ONZ72bj-S&PRXyosV^ydp_{#l=Fe#XPuAzdeiyPWB+(Q z_WSlf1U)J0W3jnvfF2Fc{egWXWky26-oqyB(!`2{;)~G*Y4e;cQHCVs9*PxwWt^r&( ztWiCA4dD0h`u+VEqWm@&Vm-IJ5asu|5Oi?%h45ql;6m)@-%;Ad^SKD?bn->$cjZM` zk2@~{e*9A3U$_YS>Gg{+&bKc@zgt}lxc}3|c>lDf|9UaT`4xSid@^<1pN5ikJ10$lrG|Sf2?-&AEUiH zevI~irSGr(81wkAA7fvBob#55;dIOOF`eBxDz88v{-)^{E(1JTE>nN> zWuO~JUxxXvx(t4ot=9q{4qOYoJZdfAaN1hT|D3fd@2^F_x35LN53B|J9@p$dNe!6uUC$SFY_Fjj6+Sg&cN36p*k6)+y#yZg5%hv(^o7Q0;{z2<+ zdpX+w!sXZxlP^cTw#&iSdN0SmT6Q_s{j|%`-xZgGF5P`O_WkqP&U>%GIJUh4-*>+P z{T+M-#y@fe#t~hC{!h39@IC7a^m~QA-*N@u^s6f{pI>XeKV1QQ{NR<~6D^vad?n!i z@Rh)yC$B_%|8^zz*;`j)e9l!GpL7-KefBEM)4K}t#wk}}9d5Y_?c8$}@aO5PFs@gw zg1q^+tAMYczZ&@XjjPd53#CU#@#XydM4Say{^2zw3cVhg}c3rg%NZ_rvSa&UM!V4!2$pKKI)7Xm{%yVDH%V2DEed z4d`dd4Uo@Hy#f3GksC0sKi`1%KXxPVWB(f=PtCj$@ICWJ@SB@%#CV>*5paIvM!@-F zKf(AjKhbgj1bA@RPXOoeCs?-=eu90l`X|88J2ibv%kTD6lso9B>eu-x=*KZX1wP$L zX@&REPf@;)l$Tp5&EEt#?|8Gy51P)o8S@*x8RK1fGxp21l+I_kQQArAcGO5er9-zs zZn~Y)Zc0CJE9%dslvER^bSv=Z&$j~qKYkn5|MRzD+&kTd{QYl(+;-q?Sf9nW0X`Ss zhH+ef8{oM?>;36A%x9b1X>BNNx*hM=-j4OS|8~Ij(c3j{=63jj-g5`Om+!#1mfwN# zo^uEA=k<$rT0=KJQI zfcJau!hZhPU0CPO+=ca>bQj8Z-UU72u)9E~&%X=fyI$-4;x6o)$L<1Ny>S=tX{)=@ z&KK`SyKQ%4K6CE|9vpQy${lkz@bmn;u`k!(4SDO&T7J@c%y-xIpsUl@125XwW8Vks zv9CwgV?N<}=xN7N+Dqxi^%(cp$AKRQjbq&|90z>Xk3;T%Q&ab6kjD@D8OC+&&(Pl` zKZCq?@6Q0=_ufN$lG2?irK-+%?m>R{z3_9dxEK5Qrh9=eFWw8j`QH0r$Cz>-?DMz$ z9B};o&oRHZeh&Hd?>`3~HrRs^w)@l6%;1`cSfcby!LE!NL4??ay@eGdYU-+B=9 z-R2k2Z)g1i`~BOL(w1-@_yzFjq+bG#XZ;d%^@d+!oNxXT{e1Kx;N@-)A%FjekblTS zSeF$KVH}q|1i0Mw5Z3>}hcxcxA*|cRhp?YM^Dy@97aqpA4|*8w+@kNVP+Fq2?-Ag^ zJ&%B{{zc#SeH3)0^eEtU^P}Jk|M4j3?4)0Tz8ym8bV@6~!usC)E5PryUxA-x9)n+b z^fBzi=NvjztsFyk7K>>d>nZ3%;SKMvjORL8&H1N4Oo|1 z8vu``8$d6@p8?){@)@NA&tN}KeFonTeg^%_e+KO@ zdj|cT@eKSNH$S6s2G3xeZ)*7uJ*)9`&jSB5&%&-6J&S#P^RuA;e|#2pi9LS}ygu&N zpdSzX8s-1~YwU}*=df?e&%tha`*ZmI*XO{er#%lkdiwLw8-MY<+Ob~%ouBjq;63#P zz_&x+`(MDghh6|aE`34uj~B3h=e(eDfquXB1&uR&0q}WT+j;Q?rME8tAKrRFa5$oBm??-LKIP)9PezXzrS*H2l(fl(vf=;a72>7hu2svYemiwLd`xhL1kar@w^#z3L^%F1xe|cH`BClw? z$SWA%4*EXz6^#dc1^jO06~)t60O!+Q!9Kd~6~Ob&S3u|f`U>DS`Bn5Y^eXsT=~cDk zz6$t`X?pUjpc~(RRr%JdkPrXzs>TVvMt$=7zJ~tSzNY#(r6h7V54?u)e(yJE|MK4e z9@qQ^@VNCifcK-nQ9AS+UQDl$bDJV}q!{{6(@vGh4<|+LVy{q++_7TCEf?L;9}WD) zZmE*b)AOQ=AC=uNHSJUij|_5?BB#ll>^4yw18&oyZqux(O`TJldL7Ei7Dq<>LfLwZ z_&Mi|X(F$~#Y$*W$ruR=m9n2aA+uO0562IZg<<)j{VX3MKU*y1k|)U=^S#idlo9cq z2Yo-skJF09g(F_LQ1YjRULiZ|%k%VMuQ252i$lpv|C=m&-w62+zaCu&iD6Rz_$%WBl0X;j=eXlmx3~-YR9Pl{`sF z9!K)vdV_<0w(RHJ#X)(P>jni{<8n|e#I5E0ye}D3xmrFb__Sb!vcE*83e1QI#-(Bu zl#Ah*8$@oQSawIeQi&QS6v+*^B|jYYO4NLruqSe}q3?08#gHl%yb*dF42vUfdDxeM zxzSiu_D9@O-uEKk4J!rtL@nlntjD9FNqRwnhD&Ya{1BKJWxYZ&k^mF^?;Y9yZ37!A zj;4q8KQpeKXcq(pUgb%t=jP^~w$9me+T0nldk$)Dc3N6n`M=xMHrJimGrPY#e(UdT z>q)&>-+S7+XZN=E&F(qWY3b;gJ=baJZg&^@V@^xo>`wWEZ6{9)XwMhCyp>a`4A69{ zK4i1S3el04EYDJsQQv9F<@mqr5mh4m1$mJSg7YvMO_(gSA6WRliT>g>cE$MSu-HY_D8%R&mXBlQ`^T3hlz~QD^X4SwR)nrAS#C*0B9&ep~4Vy zi-Ul~WH(FWTgWX(!^Oq2@rgE+sY8NnKF|LX^2je<7Ib99%lU4xfVo>pzc`>m1B9g6 ztRF?e0Bw6}+#mJBu_6%}8e%m}sC>>J^eXu>?~ajxYH$M#+73OBMH2=si zSoJ3JmZL6*y|SQ5wi1L22$ZoG>IrDrU2lFeFgsDj^Ya zH%o)$d5wDcAg9o7RMt>khJVv$+O*3Fg6O)xv+{~uTiA~U=cw#$ZpIC2ZTS$ZD!sFD zZh1GU4c4dvHdo}0(o5q~Heya#mhnc&c<7HXGUkif3Gl)K$RG&{oV7Xhh#*7M?7cdh zt5FkDwMf&NU}RD*A_0na;uaLI6lk&w0iI%EY@}F;loB{C7T024#~C5BKc|IuDE%pi z!2rpA!Y@TaYJsTJGD<7tF(CnYkDO^Oy=~4kW{Is`&a|N5G2B?d*r_R+4R943=HW#iBb942eW3LRO_r zqZ^#e`%Z*mTCaj=6S*KN<-IWsT*TxpYAKV+IF`^YkAnU(8lH_u9KbY0Ygfz$o)LTL z6H#({N$D^ul6fMb^9+4vempGUCIUvm=t4Q}W{{RC=QpcLL`#bbSqpY{D>+&x5jA+v zkkkSpoEBK%j>1KnU_`5xB|bS=X2HdiO)rBk5IQPf1G*TrpKe$+ZN!2-Uwev4sfd&d zDwXvMIo^=z{G4xnV8+Y@OCM<~$4_~FiWpRYCXuD-s^e)Yt0u5EIXn|u98oHk?Xn_c z^5d$qr?|CB1X4$u0d0gOvAz;jN+lX4YSM0Dp<^^CkGTV5tVFsy8#PG3>spxC5u!Jq zzVq%isXK>OFn$>@)WKx%u8m(tQM51^gd?)7)-D#FF%__=TR_%ra|O~XR=sVPVf(G382Dn_Nj6Dq5HWYA(H9Fl zmfc~GmXQ=t4=S9yKjovF_(9AWY>r8C=yhpOir?uwD6tm89&)Y>nUWM&m>Dwpp6HBzpj_dg)HTy-hA_3_M(Nx2w}2{^iU#_ zW)G+!VopbEOSgHBxry*n#%S1yWCb(Tr6QBT+oXA5teH_$$+1i<EcMB)l>-Nqf+l8IG{S&hD0o4Y25234TxG@2@bufPnmX(!TeCk0Ge zLfY57a)cvdw?YBWCDK*#>lGx{Hk6dEuha=6Y49-u<4o`Swk16Nlq|o$GXvWtA#b9u z*W?Ng*3C8eIK#^mf1Tl%MZAQ8))A{?7mL#JB=$SzvWYcPo`OWcN@Ov7VmTb;^>1uC zq}Pz-C2ie2TDvW=a?U8S9HUEIg#hkcmV`ypCKAI^OO;ySibSXcgjyOR>8wPe&EjI1 zBhsNcBH5<17s?+{8=BUDFQ&1G2U#8~`Ig`=&A z%rw22nJ*4_`IPxB<}Wj82wrxfGn0f0rW`xk{8Bdlj<)f^SaRN3af1!@YB9&!;w~B$ zPCAJHx;r%OB$-Dt2q#555Q$(8G3NS=@sXAiM46cqSMgRzKInSPYUycpW-$$!MGY`u zXBDXo|Bf2Drg&BFZa`WPzFOsl|b)C^8e5<$7@)P)OOb0g0^bg@NJ{ z`b#84C`qEgv=?XuLAjo_i@u4ZWs|9$Xsa}n{2m08M6*})Pl_55eX`4nGyxPuFa9)K zE|+$SChZ)J7QUv>BGH=$RIMla#XGf+K)9$<6dHzkpp=CdSj_g#2!#i#-QghLhnhPq zN=P9GGbt@_F({NXZoe#EPg_fCXB$*^X7NmziFD@@kt51D%ne!3mz0PU!3NL07=CY- z)FI?}X`?6S^)gvhY0&BLK)8)SL>WZbpkm@#&^Ugw$erZ%r0Qj@df*p4GJYE=67?m9 z>U8A1lKhDYMSV%F!xy0`cAs_7Bt-FqIYBsCJT+zM9mOHHy&%c#N?B6I z7!~|!J|27HtZb4p?QFtq3(E3dC@$6~LK+w~)E&_26)Gg5jM<6_?5}ks#Ed(eL|)-t z%4_PFk`=<@MoF3%^KzAOji`$!gp(J>I2>Yc4KD}Pr>~v}1tjhAo9YlM@S55r_;xCh z?DRv{T8OQ*Eg|j=VvuB7+^3U-@8&*lh?mOg3`Trrb57@&YkVd2*i}^95tI{>1vzP*5k-F=pxm|PYJi26O$qPg*O@NXh6TNYMrR7=t9Pz2jf2&^CjPC z?#Uy&A0UDxc}zW1Z*ldM!jBx0g7{G=HH*c5&Xo5H*>DWXjJ%a)Pv}S9S3=?RnGJgG zP%z342CqEK*##TGuIw(Y4CW@o4E-#@B!U$!gB)uIqCx?)5$U(Rl~JOLEkCq^LT3EM z0sulnT5V13{_J(`ihVleVkz&B`uVhQGrOy;gO;_!nay^i8jY262|@#71V(z{HVN~X zVa$u>Gs6IuFCGrk-Wa0om3&S%5wjbbX$5L*!3?dAXQi1S0rMa~)ZT<1N0GcX~>gC6Ea zJ%WUg9X!h>v}04WBY(^jALHnc9)FO4FihzXp&d(OMmvjhc(B6E1wyfL1g~DD3?e^@ z>1|o95#hYG^+NL!6mtF&N*91N^w3r;*`i5`;L%rMuT0Q-1l*Fah-F6(Xr8P}mETN1 zRok49Z9MW)QFN@H#L5)mB^ipf-Jk}^mNs6oI^PS$&3qKcRpZZ#Nx$&xey<`Vsc%sF zYO}C5%o14(WH{8(|7xpkzOxwdQ@OS{tZT~qR7ek7r6)tflINu6nDy9rh^##grF2;; zW7lkIAeLK2>Mxoq>#5l!dG^++{pc5JzNzoGPFCHf%(pr%RjuflJ51zz!1oJj@ELy? z8*kDL$f6s78Y7K*&8mv!l5&kuW2_!h+ajr*TNlO0(zv);i-cV%y&sgq4-Z9^0oMNm zaZ?S1p2!tMb(u_)Uc?iPM64-@!o?e%wCHNu%}v&$J~er94bf8!u{U42!^rq#qQue= z47x{=E?f?aV@J7zd2h%Sx1-N%<#IQE8Gq|}P4Ho4%w_|elQN~%%VW!QtmvADNY;2X zngp4_0Gy38EO(}StTaQh%2|$MYNohw%dKMXtaw7dYHKyLioKJuGCqdTABpPhzHo%|sL0NVIvFtmUgThN|yX zen$ODl4tzXu!)AXtA<3vM>s;yq5+8K5w@}#&m4P)wQ9zl%QQhlRPqRL8}Re&J%D;Z zlDQ8Gr(UTs)jzc-?Ek_-dM)JSPg*tVmAC?4F`GB4GIX-VC9kV zW-?7Co3G?j&H-V`)Sc~Xae5P&sI{nyk;VbT^srd|px@%iK)~$MQjnXX=KUDjT!tj# z_SX1OlzVxxwOQnpERo&~vbAAyS}c*@H&e>i6@#TF)Pc7HzQ=23~)*>ql9pm z<8aywCS{@|kNqW+B5Ns4g@t8WBPQB)qN4C!oQS4GGv^sXnLJMHbL6r_4LmU==c-<( zx{^_eG%@icG$URJ3HV`DRKnI z4pfHprL2}fdSesnfGBiqdt#rnXb06_!YDEyECCE=l`>pSJb3$~v9YIjid{mLtQt#$ ziE-~GUY@cgm>gbG80^~%gGJdO-ClN~#B%iY9O_79d>=Cz_+I;l;VpGxF7)CUGTDH> zJH5*tsZeQF=1YE7jIwSsz|3y3VYt9d@ua@&UXJu2QaQ4~?}N%`R@>roXS#)Ld!7E4WtdC6!~8V;0d3t?D&NgIAa%z2D$ z>|(DJNK4l(R4lM-T5P^-rzsJZ`QrECV+!I8spLud%LC2g!Atk*79kmJz{JjpnJN8A z!)0o}nC;u>gR$48zQr!<+E1{(Q8uGq`b)9y&{9-YRgjuOylJdlk$hcIE5*lS*j2{u zPNMBKDnd$;&>+5Zk3^A5HmL6i6wc0PXgsmI!1;)b3@`>7M#NNe3J`vw|esiYx>N%Atv$fmkpRTg3s7)1<-BxpYBUj{)BkE$n zEDSx70}54sHUlaFl+zcK=zp0+zdn*Z3M@9l+}IatGy={5^@SBG!kz*CQx$B@xF=$C z#_31gMPjQVttRJ5dOlE9|qLuAOc$coZ*u(loFIUk4!I7F}yJlj+!rf_jNOk#1T2PnNh*l=E zt{2~YM0l2Yvw9LcX^`ho#M)qMQ=SUZ8j~DR-FSQg#bN*F0rBc1q(&o1{Uv1(q(Uye zpNu&ELNkd*`V#de{=zx+5oN9?VLr}Wf54e*aUgD8 z-$P$H7YCL_T)M&*pt)@Ba1K@egGg>8Te9*48Y3!-H6L&FJi;8Q9?n}9w{s8 zS8Bulkv3_<3@-eMDJ5@W2{Jm=k_-mmd5??AB*iBave1ZbRD-Rl$43{y{_0Q3DoiTm zP+U}l4l+_GVWv1EXH)<#E2=k6*B)wlp9LQ6b zpruR22hG60h)xGX!)0X#q3u36G-cniJ$)WesZg$4LO#abPlh^Uio^m+q`HCF(8Mp` z%rJ$&#;#B7=lG!B@eL8=lOk?k` zKFUT;zZztp2eBvJstShbOhitu{r}sq4_wVFprr$zi}~VUR15xr`snrOpe|* z_^deAAQQ7ry_#9;4)ky;l_YBZAIF54ARf*WX7AxRs!3Cst{tG9%ENd}mW;-JvFiBT zKOX`0a-*c9@via9{K*{pj8BL&De!8JHmY4e@!zp;JR5H`%PE&C8T;&Ni;>nUEKgsF z4nz1<` z5#+4M{?J>TyrW*M{l^tlKPAabs3;3%vGrD@vW&wbg#5u;`qcscaD+KHnrI@qjlZqR zP2n^+&1)5}T9PfS5JPX`@@Ap7tmK44sX1ahQ3Y0W5)WpB6P?husL8w?$2ehWJKSud zvRgFRs^SxXIVrt)Ag9Z1*&sxkuBSduP^W=jh>#2+zn7pXl+X4O7sI<6jlqwuq zrNgK!svlTi>>yNL-zo zB(n021B-{*O&gWGtnWav0j-A{#|f$teGdVx()DeRnd#|$LIN;Au+WfqLW;n zr*PAhUS%EBQcpcBM%WgP*&UizlN}SNn_O68a^fJYl-gX!>g-rMA%?s02S*XK)6uMT z@}58Ad;w5BhPrv+0_<*dBKGFOOsz>02yQaUVWp6jLuR6u7=eWY1>)gE#)rrke#jr! zlGX4ImW^i%H6;Ug$0XM~#rKBbNezJVY;SAMki)*TtL1n%Kc!l3_?7z5M(equgl;wb zVnhQyOXiflA^smZu#Ia%0IS%>z62>ub`^KvBknuHOh=L(?+U2Pzzi9Z>~ry;h>~Q}V7~)bFd&pMh(hd&8 z!#_$RPoIq!%Ed9H9Oc*Co@<^1jxp7;dG3@s!N-M%(u*C|t| zV6%yHsatNhUB5PE7b?eRJDU55gGPBaT1<84u=$DhS!;#JQQ7^*DBcgq$$O^Ym-nMe zg`o;^E5_pm_X_uZ-B z?&t0@Y3t7R&b9;`yJV(pJspAW&1~nNDrV!IOLtx z3-eQttvUWuH}ZtekFVn`;e$UF*56`X9hcj=X=LZ7L*4N;^=^*yg3zyemAl*)=#_B` z%$0G&eg!4vVRN_01*tSd&_N|ky;zsX`PQRkdjv|F9)IIj5O<5HM#Nm%lMrnwdB!c_l&O{%6mh;^-iR4 zd~N+#_OI(>d)_71oO*KMk;T<>0zvb{r$=RQrnXodGzVq~>c}MymaV#u4k*U=J+N1j zv(~Sf%GXs@AZl*Ix*+K9fUt1c#LE0&7`sTSTVw6P0D23E1ArViH zme0+5t{m9Qu`{kv7+=felV<1f`MCjB9pyfY@wHqdOO+`pR@kpd$Vks@@bL2}m2v0z zB%Jqwn>fP20N^BA|v8?o&XMwTuv9|wz;8g?XR`Xu=e{$?QF}mek_A4`1 zO{&e9*UiRfiPKy--)T8;c7GpVe23KS?{d3l_s?l->BseVZH~NlxczeQo`l zD{Osf9Y3Xe{H#8{J+!KViL{_B}+oCU&DYharu0LyIu{Z96 z698!AqeUhy>&g;|GXm1$qY}|2%LAAlCfOkHGp;qS#@!_Jgon?4P}v-5wiz2P1_vX9 zgib#xO@0_Mrph^?N;v8lc(@flpf4z3Un0nxS`MdX_!bJTMOuGON_sZGRE9fI>os+% zP>#E+*?Ljtowi$Put%c*ruG?yG+vX93EZl-_0F5B2ZDFo*kwrMi-dzK!y)|(YszVr};F){Va?~bYY_TORh!rzgUD_{OvJi4k zbf^->+c8a!Kp@}2+JZS1OXF+Nj47h6;*@qKRm;bI2}aTa0(0xBZmS=es8hl`c5})dkHje( zHxhTv4YcEy$G{*zp>NcT&(y>mTHRnUBVV%d&5uSql=0ANP`ko^!L)6Zo5KvV#FD~N zbp?dP_n77BJ&=SKmT;i$;toFM#i{w)U!6A6(MEJ?S*uooLuP;=h;uIsr%EnEB#GK@ zP*)~V=ISMeP=qZ67VU}3MG*KQb{|WQ5tc> z^WY%C)+dZ5FmLIgf)O?=F|yPf1yUL*8q) zBIQ9TU^#Dkk*1`=ST;cl)0L2Wh`<%a4mOe*(v&PqpNQ&g85$B<){mnxabbcdYS@sc z8d=_8YAow8F)5Tu731qE%DiGU8>Wc0q}iiwdl`<;vGqBo4Tcl(Rg@xP2H5~ZC3Fgd z5Ob+A9vR?q0C5=TeU>y@dDB}g`Bg5gG=p*adpZOd2pF|rW&qwMwJx+2(~~}PtUcDo z5AE;RG#<3Y)a912RI!9=o34~*@bv~!Yyn|NN$fxOK3Vg8bLpins@{>}3$tp${g<%Q zXfy&#r2>B+&uWvIt~b%RiFXhinulgC#!Q+q_g#ki-~|!iQmC0}5#P#1h|rvhqFhol zR?zj91wU*c)2LoFmDM69V^pVEY>A`PlHg#9Dl08d)Ts4q_TRG38tH@+^qEju>1o0N z+H7Ou@>P;&)wH%08boPUrG(A(m%9@*qbdfP!PPm5VAKevzH18-b$C#1Kg77ROf$n; zOtcidC@9C09CzMZtPB$|uGbog0Of%7NNq5!2Kd$MRd*Iu5>fR;^)ZvGbcJIk(r@TiA|K)?QkJ!cYVFMQ9hp-phgU<5K_m! zI^qv(d)A;vyMpiob46)n8!0C9OWERMf=!cC(xnUgdajtQ2n~ju-D~zv>NZo0;2HZy zo)^5G$v@x!3F(R%v&ZsP$uo4bRQ5N0^XmOmOcg{n&1RdF8N|G{sk#KoriZn63vI5M z8F&YcERxVVW*;>whq*dS!4}h1XZ)0$+()LVO*9hAn)R_JYe(C{Ri~9IWs;3xB&!SB zq_0esx~f4Ltj67~P77{H)uTz~)f`oFIy?f(MM9zyhT)~m+;T7IXmQN9Cr{|+v>GE& zkn@#)V*GNsYD*$2LYl0HS%%k_gj86zfuyxMt7i8FVxyWlq(YHtRPqKWGwyU%3^gn$ z^blP{`+aR<70XxY4ua`MI0GTm_G(9<;>P#$EF*RYE?%HsyqR0(lXGB}Mr!}N) zMPz8CD2L6=O|9ZW9>0v`DJ{eDDj&mC8nwA9B3~47Mrk4qSw)~NvSN%DgIL_I79}i~ zh=kq9>w@t$%!!n=Hnz^NeK$k9gfDi8^~i?ypNZRRXziKdRhICrSftE^6?Z`;T2!Gj zY<>2a!D=LiS_RBb?Jx>LC1v2Rc1n_l75gV8bZT=d9t^pK;z)|T$1cRgml%5voo*Un z!TOa5!zRQ+z#povqpc&fBuGdbjwdXBQR2V_u~TzkS%Gm^1dc@&4s{^dukunx6PcVv zk~2=H{KA6-qR}2^%MdGy#2gxakjra3j8&=_7$Y@}aAbU)xxbdJ75T(qAb6TVmQclW^bi4_7(ThWNJI3g5XzyCD!(<%MCun~W)Q z$-cr&sBw)jl6Wn$d?B7vvsz!ryKT(d46@fWI;j5fe{^tL&`!f~WpEL$&#P}MG^y)s z#GsKPBk}61`dq6}>!#H=+>wqv5A@VsM#LEe%gakv>69ux{(k$dyIHYm(O5 zNQECm7zhDl1hyESA+5jkLs?NKjS{tPiMTy;oo{`O(8iXTUYLv5-8vc|G&mbXB7F0j z(qqQ$HwHU)rYmRA`+iHX8bx*^k-8caIh-|)E{JP<>u*?PM&`>6d9$T5(~eG5wtfvl zE(Esp4k39&)7aQeG?UhbS6!W<+1OcH%XJFMB)t&^xK%abqYavqY(F#?23NvH1!e4= z3{|5%QQH+lS6JY~m~KnK4pL(xXpnXwRR^euAF1@jTfzK%M=Y``CgtO@h9j%JQ;YFi zo48Ts)qaNYvnUsJq_%R#?F|%RRDAQz#mNNn$d2T9MuKG7GkhyCvjN)+ z4;>YZ4cY;b!7%x5;Rk%&G+J#$YUV3dK|zKk@-Z$})vWe?bNR7I_i-4$8((=GOD9QA z>gHp))_|iSNx&)?Fm~dckbU=Y`eW+y3f-`odGTk$HI8wynT{M!I*=jO`wu(5NF3jEmTU+LP zZFy*FE4EC?^aQjkV;4x$bk*g~aj;IxA45v3TL>7-HiKBRB@S6*UPxmW3B`ySvD;>m zteb6>w3HGSW*8W~1T0?_rKMIZ)J_lp{d_DGadV(S8qH^082+1@F}FWkGF}A79jl6# zztr3U-PvfnI&*{^*W0n^oi+clBudMuQ(4O?&SX)%D@B-MP`h9kVkDz%Di`R_l?uYR z@*@=4M0aL&po7JxW?C-R1RC5L9r}Y6F{0S_M$aVXYNBLpf)~r5A|;BD5G3eZ?{kW9 z#n(uWua#-Wthf}yDk*kKjpB;nogcx3!A(O zrmo#=BNrEqCGZayrIc@@4H+8YeL z@vEq*&}plRQc5g5)~Ccllecl&l499$-~4VWro_M6281tEx!n;kXl})3U5N3%8UAwk zuS37NUK}*bsS%Hcby4n|ID^?iWv&ALQh*~Vm7zX(2Z#J2`bOjM4LJ`6TjGOcvl`j5^mRlL7W zj5C`_5qF}R1jn}Z38+o`P_#4Cz_1hBcJ43Omy=10gdwMNHQQduIK29`>iR_;Z zHeFRpuG>e_GxEEU@EvFKY~~alL(HFHYM=I2 zOcnm2g}T(W$2xpMqBNUqLMzHDWz7)L-`9vb81sNL>>wKrJ_z!Y|X4inFMCt#$uZeIF@SNsbL&AXOD%5=m8!jdYNh%$s!&`Jj5o z7np_e8^}6rRJCHqD`kPd#FV~c=K~L<7&~VFQCEi5+JBEP@N1xTcn_2 z;Y6KPtASOP3sk>vzV!x8+J`?AD|sK&x?jp$T504d$(aK#aobI{nOFTmew47& z$yMdEK{GWH#j!ON9HQ~yg5>*b%c>`fcFZ2`*lJ*+J(8%8I=W4JAs1NYN%5JsAfm#T zvxPuzzh-W1OpU=DTZhu&6_eS_EpSYK-nUQRreift zTtzy-!q(1kW7!dTKy^G%q9H`^+p95~>1nCL_ayouJ7~*Q#F9L3foQi0tW38a$5v_RnU2|L8*+9h zZH`BrU&h$@H5k24ky@8XdtQq1_QA4m*`^eu#KwiIi$&p$ zqpu3;`3=x0(8wG{7RAUPDY0*le^XJ!j8PmB=78KdJe(67j*({m~6RF%snG+M!m9QQ*xP*hf*U>v_{C_O7AwyTaOtZNpZ1ZzqQ4tyxc zuf%k~kh2UlTW+_;zeNDG?$(C}Y|G7z!ao0I863>EnZYc+WnwUvY!KU&QNqa7xQ+p~ zO2jL$OfA>$=lJ&&aI1cNlsnM?d^v0%6H5+Ci5(TLYSU3>YqPeaa-6^%h*8sGaik~Jb|Vez>18pd%)c2xD$ap^*@U}P%ENH| z#6K~i5l$JWyGRTY=a}Zu*0O#^z>@KpZ^&tdOwG|tjS}X7l#JU^ZEsnBIjR2E4-3$n zS|4b_9B)}pj;ID2f^QtXq2WX%aqv&1gsRb~sYwSZ(L4yW=UI{1V#WG2MJCf1+oQFe z?fCc3@oyezB+|TZoncGc-fh7@Ex)FIfxuS4B7-pnoD8$@#x{UvtV&k49_O%gI=tlP z2pFjoiP~s`RR@;iunbFH%~VH#iuBE-IW?v}`=$>oSRsz`I)IQgb(Wrokfx!&s%$l+ ztkzUvZ@hvl2PMVi)=^c=no$D-a#x)&osRlj3Z}^9M-A#3BHu~Xx)#}Y-GbTI4eAT~ zfRRxG4C6>X0hJ$v1XB6 zRa;U$letb@zox5)oha#O9KD!8E3$kF)r%Fom8#FG*pBj{MuqHOcJSjX zVe~wJa{jc1#opi6_Eup*1K`rEp7#O*?{HA1!Db{ymE>gM)bgtk?JQdXY>=w#vob!8 z%T<+#_ev>GtZxt}YR69@r8qPPouC)Wk&JBm5*%SSN+C^IJ#{W(+gcnCVp46_+Q(I? zNNw{17$a*A$gg3V;CuUa2}@|pyo2ukA22fe_~`#shxT!_e6>NB)bUU)aq_zlTTmq% zpFK>m59>V99F=H9K9`_qwxyJ#w4QE@OQ-@V-5`1j9F}~n%t56gGkS!-WojGJ083NP z+^Ou_)1J5*2`(^&q>pQBMQTm17|R7=Fa$wauI?1TG)3|4fEkS*LZD%_r6>I{#T>0* zS1oMFXWG+Q)xkvUu5phzRhE^jnMAblh=nI-u~UHt;xx>&{S~CdIBH_Oqt;ym>_}Yw zVt+S-PZhKr46z4@Rj_x+cyD$6n1Pdi6?~#%hn}*4B?d)dmyQyRuJ@|FmexUG+V1E&OXCM5mhS zUDoN0A2;OJ2@{JCaDwt!Kk8$CIYjPYtC;BP#^sHkYZWGi)w+w?_-xn=yM#8ypu~6T zjYCz}29ayM-tI;WtQ|8KL~>kEA4eB6J^OnT`s* z_Nje?toC92IyY^?g0m%8%%uVw>K=;Tf(zD?HtGe|ZRs^_b}I?)y~C=tw*kJ3-W%iY zKX9SoKL!w-E}ytkjSn;N*HbHE(sTTpdnjva*db5tjjF6KOuA9tH)uaztTj$d3C_$%Peys)! z!r;Q-XB&Krv*_OC1SCXFYix2s!`li2$!}wFdX%&xd7?a=hK^luVCexAA)5Nm*);ULyy;Plo5&JzK!QT9_m(4{x#Bm@=fK&402N`q1 z8mBdQ%|+}H`K3dBEY@)esU9Se5Rnt9rP{XZM5%~Cxt}jSUeK04Ss;?mL;|Sg7EN7! zo^0{dDH1C?K1)#Vph3!n8;8U6b|7*wN&*&>t61Y>!8_xaT`9SrRYHQT=+z{0RWgfm z1%n-NSUH` z=!MI$k<%!~r|O`g#!ARURYL>rK5qzNKxt2-W5*Gs^_}`SpK`)&nRb+_68qXueGbc9_0ABDhl-2eap diff --git a/rhodecode/i18n/fr/LC_MESSAGES/rhodecode.po b/rhodecode/i18n/fr/LC_MESSAGES/rhodecode.po --- a/rhodecode/i18n/fr/LC_MESSAGES/rhodecode.po +++ b/rhodecode/i18n/fr/LC_MESSAGES/rhodecode.po @@ -7,8 +7,8 @@ msgid "" 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 \n" "Language-Team: fr \n" "Plural-Forms: nplurals=2; plural=(n > 1)\n" @@ -17,36 +17,42 @@ msgstr "" "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" @@ -56,9 +62,7 @@ msgstr "Accueil" #: 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" @@ -73,12 +77,8 @@ msgid "The resource could not be found" 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 @@ -90,24 +90,29 @@ msgstr "Changements sur le dépôt %s" 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 @@ -118,12 +123,14 @@ msgstr "%s édité via RhodeCode" 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" @@ -163,55 +170,50 @@ msgstr "Type d’archive inconnu" 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" @@ -224,97 +226,103 @@ msgid "Your password reset link was sent 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 -msgid "error during creation of pull request" -msgstr "erreur lors de la création de la demande traction" - -#: rhodecode/controllers/pullrequests.py:181 -#, fuzzy -msgid "Successfully opened new pull request" -msgstr "L’utilisateur a été supprimé avec succès." +msgstr "Les requêtes de pull nécessitent un titre d’au moins 3 caractères." #: rhodecode/controllers/pullrequests.py:184 -#, fuzzy +msgid "error during creation of pull request" +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 "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." @@ -406,9 +414,9 @@ msgstr "Écrire" #: 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" @@ -472,9 +480,7 @@ msgstr "Une erreur est survenue durant la suppression de l’utilisateur du dépôt." #: 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" @@ -484,22 +490,16 @@ msgstr "Une erreur est survenue durant la suppression des statistiques du dépôt." 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." @@ -524,118 +524,109 @@ msgstr "Le dépôt %s a été marké comme fork de %s" 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" @@ -676,35 +667,30 @@ msgid "Revoked 'repository create' permi 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 @@ -735,24 +721,20 @@ msgid "An error occurred during deletion 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" @@ -762,206 +744,206 @@ msgstr "Vous devez être un utilisateur enregistré pour effectuer cette 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" @@ -974,104 +956,89 @@ msgstr "Réinitialisation du mot de passe" 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" @@ -1109,196 +1076,173 @@ msgstr "s’est enregistré sur RhodeCode" #: 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 -msgid "Invalid users group name" -msgstr "nom d’utilisateur invalide" +msgstr "Le nom d’utilisateur « %(username)s » n’est pas valide." #: rhodecode/model/validators.py:134 +msgid "Invalid users group name" +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 -msgid "invalid password" -msgstr "mot de passe invalide" - #: rhodecode/model/validators.py:268 +msgid "invalid password" +msgstr "mot de passe invalide" + +#: 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 -#, python-format -msgid "Repository named %(repo)s already exists" -msgstr "Un dépôt portant %(repo)s ce nom existe déjà." +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 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 -msgid "invalid clone url" -msgstr "URL de clonage invalide." +msgstr "Un groupe de dépôts portant le nom « %(repo)s » existe déjà." #: rhodecode/model/validators.py:432 -#, fuzzy +msgid "invalid clone url" +msgstr "URL de clonage invalide." + +#: 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" @@ -1318,7 +1262,7 @@ msgstr "Filtre rapide…" #: 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" @@ -1365,8 +1309,8 @@ msgstr "Groupe de 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 @@ -1389,7 +1333,7 @@ msgstr "Dernière modification" #: 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" @@ -1430,7 +1374,7 @@ msgstr "Nom du groupe" #: 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 @@ -1442,7 +1386,7 @@ msgstr "Tri ascendant" #: 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 @@ -1457,7 +1401,7 @@ msgstr "Dernière modification" #: 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 @@ -1468,7 +1412,7 @@ msgstr "Aucun élément n’a été trouvé." #: 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 @@ -1479,7 +1423,7 @@ msgstr "Erreur d’intégrité des données." #: 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 @@ -1488,7 +1432,8 @@ msgstr "Erreur d’intégrité des données." 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" @@ -1496,7 +1441,8 @@ 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 @@ -1506,7 +1452,8 @@ msgstr "Connexion à" 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 @@ -1521,7 +1468,8 @@ msgstr "Se souvenir de moi" 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 ?" @@ -1545,7 +1493,8 @@ msgstr "Réinitialiser mon mot de passe" 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" @@ -1755,18 +1704,17 @@ msgstr "Mes notifications" #: 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" @@ -1811,14 +1759,8 @@ msgid "Repository permission" 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" @@ -1833,12 +1775,11 @@ msgid "Repository creation" 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" @@ -1879,7 +1820,6 @@ msgstr "Groupe de dépôt" #: 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." @@ -1896,36 +1836,29 @@ msgstr "Type de dépôt à créer." #: 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" @@ -1978,13 +1911,12 @@ msgstr "Afficher le menu de téléchargements sur la page du dépôt." #: 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." @@ -2002,7 +1934,7 @@ msgstr "Changer le propriétaire de ce dépôt." #: 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" @@ -2055,96 +1987,91 @@ msgstr "Invalider le cache du dépôt" 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 -msgid "Remove from public journal" -msgstr "Supprimer du journal public" - -#: rhodecode/templates/admin/repos/repo_edit.html:203 -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 -msgid "Locking" -msgstr "Déverrouiller" - -#: rhodecode/templates/admin/repos/repo_edit.html:220 -msgid "Unlock locked repo" -msgstr "" - -#: rhodecode/templates/admin/repos/repo_edit.html:220 -#, fuzzy -msgid "Confirm to unlock repository" -msgstr "Voulez-vous vraiment supprimer ce dépôt ?" - -#: rhodecode/templates/admin/repos/repo_edit.html:223 -msgid "lock repo" -msgstr "" - -#: rhodecode/templates/admin/repos/repo_edit.html:223 -#, fuzzy -msgid "Confirm to lock repository" -msgstr "Voulez-vous vraiment supprimer ce dépôt ?" - -#: rhodecode/templates/admin/repos/repo_edit.html:224 -#, fuzzy -msgid "Repository is not locked" -msgstr "Dépôts" +msgid "Remove from public journal" +msgstr "Supprimer du journal public" + +#: 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: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 "Verrouillage" + +#: rhodecode/templates/admin/repos/repo_edit.html:234 +msgid "Unlock locked repo" +msgstr "Déverrouiller le dépôt" + +#: rhodecode/templates/admin/repos/repo_edit.html:234 +msgid "Confirm to unlock repository" +msgstr "Veuillez confirmer le déverrouillage de ce dépôt." + +#: rhodecode/templates/admin/repos/repo_edit.html:237 +msgid "lock repo" +msgstr "Verrouiller le dépôt" + +#: rhodecode/templates/admin/repos/repo_edit.html:237 +msgid "Confirm to lock repository" +msgstr "Veuillez confirmer le verrouillage de ce dépôt." + +#: rhodecode/templates/admin/repos/repo_edit.html:238 +msgid "Repository is not locked" +msgstr "Ce dépôt n’est pas verrouillé." + +#: rhodecode/templates/admin/repos/repo_edit.html:243 msgid "Force locking on repository. Works only when anonymous access is disabled" -msgstr "" - -#: rhodecode/templates/admin/repos/repo_edit.html:236 -#, fuzzy +msgstr "Forcer le verrouillage du dépôt. Ce réglage fonctionne uniquement quand l‘accès anonyme est désactivé." + +#: rhodecode/templates/admin/repos/repo_edit.html:250 msgid "Set as fork of" msgstr "Indiquer comme fork" -#: rhodecode/templates/admin/repos/repo_edit.html:245 -#, fuzzy +#: rhodecode/templates/admin/repos/repo_edit.html:259 msgid "Manually set this repository as a fork of another from the list" -msgstr "Permet d’indiquer manuellement que ce dépôt est un fork d’un autre dépôt." - -#: rhodecode/templates/admin/repos/repo_edit.html:251 +msgstr "Marquer ce dépôt comme fork d’un autre dépôt de la liste." + +#: rhodecode/templates/admin/repos/repo_edit.html:265 #: rhodecode/templates/changeset/changeset_file_comment.html:26 msgid "Delete" msgstr "Supprimer" -#: rhodecode/templates/admin/repos/repo_edit.html:255 +#: rhodecode/templates/admin/repos/repo_edit.html:269 msgid "Remove this repository" msgstr "Supprimer ce dépôt" -#: rhodecode/templates/admin/repos/repo_edit.html:255 +#: rhodecode/templates/admin/repos/repo_edit.html:269 #: rhodecode/templates/journal/journal.html:84 msgid "Confirm to delete this repository" msgstr "Voulez-vous vraiment supprimer ce dépôt ?" -#: rhodecode/templates/admin/repos/repo_edit.html:259 +#: rhodecode/templates/admin/repos/repo_edit.html:273 msgid "" -"This repository will be renamed in a special way in order to be " -"unaccesible for RhodeCode and VCS systems.\n" -" If you need fully delete it from filesystem " -"please do it manually" +"This repository will be renamed in a special way in order to be unaccesible for RhodeCode and VCS systems.\n" +" If you need fully delete it from filesystem please do it manually" msgstr "" -"Ce dépôt sera renommé de manière à le rendre inaccessible à RhodeCode et " -"au système de gestion de versions.\n" -"Si vous voulez le supprimer complètement, effectuez la suppression " -"manuellement." +"Ce dépôt sera renommé de manière à le rendre inaccessible à RhodeCode et au système de gestion de versions.\n" +"Si vous voulez le supprimer complètement, effectuez la suppression manuellement. Ce dépôt sera renommé de manière à le rendre inaccessible à RhodeCode et au système de gestion de versions.\n" +"Si vous voulez le supprimer complètement, effectuez la suppression manuellement." #: rhodecode/templates/admin/repos/repo_edit_perms.html:3 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:3 @@ -2164,7 +2091,7 @@ msgstr "Écriture" #: rhodecode/templates/admin/repos/repo_edit_perms.html:6 #: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:6 #: rhodecode/templates/admin/users/users.html:85 -#: rhodecode/templates/base/base.html:217 +#: rhodecode/templates/base/base.html:226 msgid "admin" msgstr "Administration" @@ -2199,12 +2126,12 @@ msgid "Add another member" msgstr "Ajouter un utilisateur" #: rhodecode/templates/admin/repos/repo_edit_perms.html:97 -#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:81 +#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:87 msgid "Failed to remove user" msgstr "Échec de suppression de l’utilisateur" #: rhodecode/templates/admin/repos/repo_edit_perms.html:112 -#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:96 +#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:103 msgid "Failed to remove users group" msgstr "Erreur lors de la suppression du groupe d’utilisateurs." @@ -2212,11 +2139,43 @@ msgstr "Erreur lors de la suppression du groupe d’utilisateurs." msgid "Repositories administration" msgstr "Administration des dépôts" -#: rhodecode/templates/admin/repos_groups/repos_groups.html:8 -msgid "Groups" -msgstr "Groupes" - -#: rhodecode/templates/admin/repos_groups/repos_groups.html:12 +#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:73 +msgid "apply to children" +msgstr "Appliquer aux enfants" + +#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:74 +msgid "Set or revoke permission to all children of that group, including repositories and other groups" +msgstr "Applique ou révoque les permissions sur tous les éléments de ce groupe, notamment les dépôts et sous-groupes." + +#: rhodecode/templates/admin/repos_groups/repos_groups.html:9 +#: rhodecode/templates/base/base.html:122 +#: rhodecode/templates/base/base.html:309 +#: rhodecode/templates/base/base.html:311 +#: rhodecode/templates/base/base.html:313 +#: rhodecode/templates/bookmarks/bookmarks.html:11 +#: rhodecode/templates/branches/branches.html:10 +#: rhodecode/templates/changelog/changelog.html:10 +#: rhodecode/templates/changeset/changeset.html:10 +#: rhodecode/templates/changeset/changeset_range.html:9 +#: rhodecode/templates/compare/compare_diff.html:9 +#: rhodecode/templates/files/file_diff.html:8 +#: rhodecode/templates/files/files.html:8 +#: rhodecode/templates/files/files_add.html:15 +#: rhodecode/templates/files/files_edit.html:15 +#: rhodecode/templates/followers/followers.html:9 +#: rhodecode/templates/forks/fork.html:9 +#: rhodecode/templates/forks/forks.html:9 +#: rhodecode/templates/pullrequests/pullrequest.html:8 +#: rhodecode/templates/pullrequests/pullrequest_show.html:8 +#: rhodecode/templates/pullrequests/pullrequest_show_all.html:8 +#: rhodecode/templates/settings/repo_settings.html:9 +#: rhodecode/templates/shortlog/shortlog.html:10 +#: rhodecode/templates/summary/summary.html:8 +#: rhodecode/templates/tags/tags.html:11 +msgid "Home" +msgstr "Accueil" + +#: rhodecode/templates/admin/repos_groups/repos_groups.html:13 msgid "with" msgstr "comprenant" @@ -2242,7 +2201,7 @@ msgstr "Parent du groupe" #: rhodecode/templates/admin/users/user_add.html:94 #: rhodecode/templates/admin/users_groups/users_group_add.html:49 #: rhodecode/templates/admin/users_groups/users_group_edit.html:90 -#: rhodecode/templates/pullrequests/pullrequest_show.html:113 +#: rhodecode/templates/pullrequests/pullrequest_show.html:117 msgid "save" msgstr "Enregistrer" @@ -2255,10 +2214,8 @@ msgid "edit repos group" msgstr "Édition du groupe de dépôt" #: rhodecode/templates/admin/repos_groups/repos_groups_edit.html:70 -msgid "" -"Enable lock-by-pulling on group. This option will be applied to all other" -" groups and repositories inside" -msgstr "" +msgid "Enable lock-by-pulling on group. This option will be applied to all other groups and repositories inside" +msgstr "Activer le verrou lors d’un pull sur le groupe. Cette option sera appliquée à tous les sous-groupes et dépôts de ce groupe." #: rhodecode/templates/admin/repos_groups/repos_groups_show.html:5 msgid "Repositories groups administration" @@ -2331,23 +2288,16 @@ msgid "rescan option" msgstr "Option de re-scan" #: rhodecode/templates/admin/settings/settings.html:38 -msgid "" -"In case a repository was deleted from filesystem and there are leftovers " -"in the database check this option to scan obsolete data in database and " -"remove it." -msgstr "" -"Cochez cette option pour supprimer d’éventuelles données obsolètes " -"(concernant des dépôts manuellement supprimés) de la base de données." +msgid "In case a repository was deleted from filesystem and there are leftovers in the database check this option to scan obsolete data in database and remove it." +msgstr "Cochez cette option pour supprimer d’éventuelles données obsolètes (concernant des dépôts manuellement supprimés) de la base de données." #: rhodecode/templates/admin/settings/settings.html:39 msgid "destroy old data" msgstr "Supprimer les données obsolètes" #: rhodecode/templates/admin/settings/settings.html:41 -msgid "" -"Rescan repositories location for new repositories. Also deletes obsolete " -"if `destroy` flag is checked " -msgstr "" +msgid "Rescan repositories location for new repositories. Also deletes obsolete if `destroy` flag is checked " +msgstr "Rescanner le dossier contenant les dépôts pour en trouver de nouveaux. Supprime égalements les entrées de dépôts obsolètes si « Supprimer les données obsolètes » est coché." #: rhodecode/templates/admin/settings/settings.html:46 msgid "Rescan repositories" @@ -2392,52 +2342,44 @@ msgid "Save settings" msgstr "Enregister les options" #: rhodecode/templates/admin/settings/settings.html:119 -#, fuzzy msgid "Visualisation settings" -msgstr "Réglages d’application globaux" +msgstr "Réglages d’affichage" #: rhodecode/templates/admin/settings/settings.html:128 -#, fuzzy msgid "Icons" -msgstr "Options" +msgstr "Icônes" #: rhodecode/templates/admin/settings/settings.html:133 msgid "Show public repo icon on repositories" -msgstr "" +msgstr "Afficher l’icône de dépôt public sur les dépôts" #: rhodecode/templates/admin/settings/settings.html:137 -#, fuzzy msgid "Show private repo icon on repositories" -msgstr "Dépôt privé" +msgstr "Afficher l’icône de dépôt privé sur les dépôts" #: rhodecode/templates/admin/settings/settings.html:144 -#, fuzzy msgid "Meta-Tagging" -msgstr "Réglages" +msgstr "Meta-Tagging" #: rhodecode/templates/admin/settings/settings.html:149 msgid "Stylify recognised metatags:" -msgstr "" +msgstr "Styliser les méta-tags reconnus :" #: rhodecode/templates/admin/settings/settings.html:176 -#, fuzzy msgid "VCS settings" -msgstr "Réglages" +msgstr "Réglages de gestionnaire de version" #: rhodecode/templates/admin/settings/settings.html:185 msgid "Web" msgstr "Web" #: rhodecode/templates/admin/settings/settings.html:190 -#, fuzzy msgid "require ssl for vcs operations" -msgstr "SSL requis pour les pushs" +msgstr "SSL requis pour les opérations de push/pull" #: rhodecode/templates/admin/settings/settings.html:192 -msgid "" -"RhodeCode will require SSL for pushing or pulling. If SSL is missing it " -"will return HTTP Error 406: Not Acceptable" -msgstr "" +msgid "RhodeCode will require SSL for pushing or pulling. If SSL is missing it will return HTTP Error 406: Not Acceptable" +msgstr "RhodeCode requièrera SSL pour les pushs et pulls. Si le SSL n’est pas utilisé l’erreur HTTP 406 (Non Acceptable) sera renvoyée." #: rhodecode/templates/admin/settings/settings.html:198 msgid "Hooks" @@ -2464,47 +2406,37 @@ msgid "advanced setup" msgstr "Avancé" #: rhodecode/templates/admin/settings/settings.html:224 -#, fuzzy msgid "Mercurial Extensions" -msgstr "Dépôt Mercurial" +msgstr "Extensions Mercurial" #: rhodecode/templates/admin/settings/settings.html:229 msgid "largefiles extensions" -msgstr "" +msgstr "Extensions largefiles" #: rhodecode/templates/admin/settings/settings.html:233 msgid "hgsubversion extensions" -msgstr "" +msgstr "Extensions hgsubversion" #: rhodecode/templates/admin/settings/settings.html:235 -msgid "" -"Requires hgsubversion library installed. Allows clonning from svn remote " -"locations" -msgstr "" +msgid "Requires hgsubversion library installed. Allows clonning from svn remote locations" +msgstr "Ceci nécessite l’installation de la bibliothèque hgsubversion. Permet de clôner à partir de dépôts Suversion." #: rhodecode/templates/admin/settings/settings.html:245 msgid "Repositories location" msgstr "Emplacement des dépôts" #: rhodecode/templates/admin/settings/settings.html:250 -msgid "" -"This a crucial application setting. If you are really sure you need to " -"change this, you must restart application in order to make this setting " -"take effect. Click this label to unlock." -msgstr "" -"Ce réglage ne devrait pas être modifié en temps normal. Si vous devez " -"vraiment le faire, redémarrer l’application une fois le changement " -"effectué. Cliquez sur ce texte pour déverrouiller." +msgid "This a crucial application setting. If you are really sure you need to change this, you must restart application in order to make this setting take effect. Click this label to unlock." +msgstr "Ce réglage ne devrait pas être modifié en temps normal. Si vous devez vraiment le faire, redémarrer l’application une fois le changement effectué. Cliquez sur ce texte pour déverrouiller." #: rhodecode/templates/admin/settings/settings.html:251 +#: rhodecode/templates/base/base.html:218 msgid "unlock" msgstr "Déverrouiller" #: rhodecode/templates/admin/settings/settings.html:252 -msgid "" -"Location where repositories are stored. After changing this value a " -"restart, and rescan is required" -msgstr "" +msgid "Location where repositories are stored. After changing this value a restart, and rescan is required" +msgstr "Emplacement de stockage des dépôts. Si cette valeur est changée, Rhodecode devra être redémarré les les dépôts rescannés." #: rhodecode/templates/admin/settings/settings.html:272 msgid "Test Email" @@ -2585,17 +2517,14 @@ msgstr "Confirmation du nouveau mot de p #: rhodecode/templates/admin/users/user_edit.html:147 #: rhodecode/templates/admin/users_groups/users_group_edit.html:108 -#, fuzzy msgid "Inherit default permissions" -msgstr "Permissions par défaut" +msgstr "Utiliser les permissions par défaut" #: rhodecode/templates/admin/users/user_edit.html:152 #: rhodecode/templates/admin/users_groups/users_group_edit.html:113 #, python-format -msgid "" -"Select to inherit permissions from %s settings. With this selected below " -"options does not have any action" -msgstr "" +msgid "Select to inherit permissions from %s settings. With this selected below options does not have any action" +msgstr "Cochez pour utiliser les permissions des les réglages %s. Si cette option est activée, les réglages ci-dessous n’auront pas d’effet." #: rhodecode/templates/admin/users/user_edit.html:158 #: rhodecode/templates/admin/users_groups/users_group_edit.html:119 @@ -2604,45 +2533,39 @@ msgstr "Création de dépôts" #: rhodecode/templates/admin/users/user_edit.html:166 #: rhodecode/templates/admin/users_groups/users_group_edit.html:127 -#, fuzzy msgid "Fork repositories" -msgstr "Dépôts" +msgstr "Forker les dépôts" #: rhodecode/templates/admin/users/user_edit.html:186 #: rhodecode/templates/admin/users/user_edit_my_account_pullrequests.html:22 #: rhodecode/templates/admin/users/user_edit_my_account_pullrequests.html:39 -#, fuzzy msgid "Nothing here yet" -msgstr "Aucune notification pour le moment." +msgstr "Rien ici pour le moment" #: rhodecode/templates/admin/users/user_edit.html:193 #: rhodecode/templates/admin/users/user_edit_my_account.html:60 -#: rhodecode/templates/admin/users/user_edit_my_account.html:194 +#: rhodecode/templates/admin/users/user_edit_my_account.html:218 msgid "Permission" msgstr "Permission" #: rhodecode/templates/admin/users/user_edit.html:194 -#, fuzzy msgid "Edit Permission" -msgstr "Permissions du dépôt" +msgstr "Éditer" #: rhodecode/templates/admin/users/user_edit.html:243 -#, fuzzy msgid "Email addresses" -msgstr "Adresse e-mail" +msgstr "Adresses e-mail" #: rhodecode/templates/admin/users/user_edit.html:256 -#, fuzzy, python-format +#, python-format msgid "Confirm to delete this email: %s" -msgstr "Voulez-vous vraiment supprimer l’utilisateur « %s » ?" +msgstr "Veuillez confirmer la suppression de l’e-mail : %s" #: rhodecode/templates/admin/users/user_edit.html:270 -#, fuzzy msgid "New email address" -msgstr "Adresse e-mail" +msgstr "Nouvelle adrese" #: rhodecode/templates/admin/users/user_edit.html:277 -#, fuzzy msgid "Add" msgstr "Ajouter" @@ -2665,38 +2588,35 @@ msgid "My repos" msgstr "Mes dépôts" #: rhodecode/templates/admin/users/user_edit_my_account.html:41 -#, fuzzy msgid "My pull requests" -msgstr "a posté un commentaire sur le commit" +msgstr "Mes requêtes de pull" #: rhodecode/templates/admin/users/user_edit_my_account.html:45 -#, fuzzy msgid "Add repo" -msgstr "ajouter un nouveau" +msgstr "Ajouter un dépôt" #: rhodecode/templates/admin/users/user_edit_my_account_pullrequests.html:2 msgid "Opened by me" -msgstr "" +msgstr "Ouvertes par moi" #: rhodecode/templates/admin/users/user_edit_my_account_pullrequests.html:10 #, python-format msgid "Pull request #%s opened on %s" -msgstr "" +msgstr "Requête de pull nº%s ouverte le %s" #: rhodecode/templates/admin/users/user_edit_my_account_pullrequests.html:15 -#, fuzzy msgid "Confirm to delete this pull request" -msgstr "Voulez-vous vraiment supprimer ce dépôt ?" +msgstr "Veuillez confirmer la suppression de cette requête de pull." #: rhodecode/templates/admin/users/user_edit_my_account_pullrequests.html:26 msgid "I participate in" -msgstr "" +msgstr "Je participe à" #: rhodecode/templates/admin/users/user_edit_my_account_pullrequests.html:33 #: rhodecode/templates/pullrequests/pullrequest_show_all.html:30 #, python-format msgid "Pull request #%s opened by %s on %s" -msgstr "" +msgstr "Requête de pull nº%s ouverte par %s le %s" #: rhodecode/templates/admin/users/user_edit_my_account_repos.html:7 #: rhodecode/templates/bookmarks/bookmarks.html:40 @@ -2734,7 +2654,7 @@ msgid "Users administration" msgstr "Administration des utilisateurs" #: rhodecode/templates/admin/users/users.html:9 -#: rhodecode/templates/base/base.html:223 +#: rhodecode/templates/base/base.html:232 msgid "users" msgstr "Utilisateurs" @@ -2747,7 +2667,6 @@ msgid "username" msgstr "Nom d’utilisateur" #: rhodecode/templates/admin/users/users.html:80 -#, fuzzy msgid "firstname" msgstr "Prénom" @@ -2765,7 +2684,7 @@ msgid "active" msgstr "Actif" #: rhodecode/templates/admin/users/users.html:86 -#: rhodecode/templates/base/base.html:226 +#: rhodecode/templates/base/base.html:235 msgid "ldap" msgstr "LDAP" @@ -2856,36 +2775,10 @@ msgstr "Connexion" msgid "Inbox" msgstr "Boîte de réception" -#: rhodecode/templates/base/base.html:122 -#: rhodecode/templates/base/base.html:300 -#: rhodecode/templates/base/base.html:302 -#: rhodecode/templates/base/base.html:304 -#: rhodecode/templates/bookmarks/bookmarks.html:11 -#: rhodecode/templates/branches/branches.html:10 -#: rhodecode/templates/changelog/changelog.html:10 -#: rhodecode/templates/changeset/changeset.html:10 -#: rhodecode/templates/changeset/changeset_range.html:9 -#: rhodecode/templates/compare/compare_diff.html:9 -#: rhodecode/templates/files/file_diff.html:8 -#: rhodecode/templates/files/files.html:8 -#: rhodecode/templates/files/files_add.html:15 -#: rhodecode/templates/files/files_edit.html:15 -#: rhodecode/templates/followers/followers.html:9 -#: rhodecode/templates/forks/fork.html:9 rhodecode/templates/forks/forks.html:9 -#: rhodecode/templates/pullrequests/pullrequest.html:8 -#: rhodecode/templates/pullrequests/pullrequest_show.html:8 -#: rhodecode/templates/pullrequests/pullrequest_show_all.html:8 -#: rhodecode/templates/settings/repo_settings.html:9 -#: rhodecode/templates/shortlog/shortlog.html:10 -#: rhodecode/templates/summary/summary.html:8 -#: rhodecode/templates/tags/tags.html:11 -msgid "Home" -msgstr "Accueil" - #: rhodecode/templates/base/base.html:123 -#: rhodecode/templates/base/base.html:309 -#: rhodecode/templates/base/base.html:311 -#: rhodecode/templates/base/base.html:313 +#: rhodecode/templates/base/base.html:318 +#: rhodecode/templates/base/base.html:320 +#: rhodecode/templates/base/base.html:322 #: rhodecode/templates/journal/journal.html:4 #: rhodecode/templates/journal/journal.html:21 #: rhodecode/templates/journal/public_journal.html:4 @@ -2950,50 +2843,59 @@ msgstr "Options" #: rhodecode/templates/base/base.html:204 #: rhodecode/templates/base/base.html:206 -#: rhodecode/templates/base/base.html:227 -msgid "settings" -msgstr "Réglages" - -#: rhodecode/templates/base/base.html:209 +#| msgid "Repository creation" +msgid "repository settings" +msgstr "Réglages de dépôt" + +#: rhodecode/templates/base/base.html:210 #: rhodecode/templates/data_table/_dt_elements.html:80 #: rhodecode/templates/forks/fork.html:13 msgid "fork" msgstr "Fork" -#: rhodecode/templates/base/base.html:211 -#: rhodecode/templates/changelog/changelog.html:40 +#: rhodecode/templates/base/base.html:212 +#: rhodecode/templates/changelog/changelog.html:41 msgid "Open new pull request" -msgstr "" - -#: rhodecode/templates/base/base.html:213 +msgstr "Nouvelle requête de pull" + +#: rhodecode/templates/base/base.html:214 msgid "search" msgstr "Rechercher" -#: rhodecode/templates/base/base.html:222 +#: rhodecode/templates/base/base.html:220 +#| msgid "unlock" +msgid "lock" +msgstr "Verrouiller" + +#: rhodecode/templates/base/base.html:231 msgid "repositories groups" msgstr "Groupes de dépôts" -#: rhodecode/templates/base/base.html:224 +#: rhodecode/templates/base/base.html:233 msgid "users groups" msgstr "Groupes d’utilisateurs" -#: rhodecode/templates/base/base.html:225 +#: rhodecode/templates/base/base.html:234 msgid "permissions" msgstr "Permissions" -#: rhodecode/templates/base/base.html:238 -#: rhodecode/templates/base/base.html:240 +#: rhodecode/templates/base/base.html:236 +msgid "settings" +msgstr "Réglages" + +#: rhodecode/templates/base/base.html:247 +#: rhodecode/templates/base/base.html:249 msgid "Followers" msgstr "Followers" -#: rhodecode/templates/base/base.html:246 -#: rhodecode/templates/base/base.html:248 +#: rhodecode/templates/base/base.html:255 +#: rhodecode/templates/base/base.html:257 msgid "Forks" msgstr "Forks" -#: rhodecode/templates/base/base.html:327 -#: rhodecode/templates/base/base.html:329 -#: rhodecode/templates/base/base.html:331 +#: rhodecode/templates/base/base.html:336 +#: rhodecode/templates/base/base.html:338 +#: rhodecode/templates/base/base.html:340 #: rhodecode/templates/search/search.html:52 msgid "Search" msgstr "Rechercher" @@ -3044,16 +2946,14 @@ msgid "%s Branches" msgstr "Branches de %s" #: rhodecode/templates/branches/branches.html:29 -#, fuzzy msgid "Compare branches" -msgstr "Branches" +msgstr "Comparer les branches" #: rhodecode/templates/branches/branches.html:57 #: rhodecode/templates/compare/compare_diff.html:5 #: rhodecode/templates/compare/compare_diff.html:13 -#, fuzzy msgid "Compare" -msgstr "vue de comparaison" +msgstr "Comparer" #: rhodecode/templates/branches/branches_data.html:6 msgid "name" @@ -3074,9 +2974,8 @@ msgid "revision" msgstr "Révision" #: rhodecode/templates/branches/branches_data.html:10 -#, fuzzy msgid "compare" -msgstr "vue de comparaison" +msgstr "Comparer" #: rhodecode/templates/changelog/changelog.html:6 #, python-format @@ -3090,19 +2989,18 @@ msgid_plural "showing %d out of %d revis msgstr[0] "Affichage de %d révision sur %d" msgstr[1] "Affichage de %d révisions sur %d" -#: rhodecode/templates/changelog/changelog.html:37 +#: rhodecode/templates/changelog/changelog.html:38 #: rhodecode/templates/forks/forks_data.html:19 #, python-format msgid "compare fork with %s" -msgstr "" - -#: rhodecode/templates/changelog/changelog.html:37 +msgstr "Comparer le fork avec %s" + +#: rhodecode/templates/changelog/changelog.html:38 #: rhodecode/templates/forks/forks_data.html:21 -#, fuzzy msgid "Compare fork" -msgstr "vue de comparaison" - -#: rhodecode/templates/changelog/changelog.html:46 +msgstr "Comparer le fork" + +#: rhodecode/templates/changelog/changelog.html:47 msgid "Show" msgstr "Afficher" @@ -3119,13 +3017,13 @@ msgstr "Nombre de fichiers modifiés, cliquez pour plus de détails" #: rhodecode/templates/changeset/changeset.html:38 #: rhodecode/templates/changeset/changeset_file_comment.html:20 #: rhodecode/templates/changeset/changeset_range.html:46 -#, fuzzy msgid "Changeset status" -msgstr "Changesets" +msgstr "Statut du changeset" #: rhodecode/templates/changelog/changelog.html:92 +#: rhodecode/templates/shortlog/shortlog_data.html:20 msgid "Click to open associated pull request" -msgstr "" +msgstr "Cliquez ici pour ouvrir la requête de pull associée." #: rhodecode/templates/changelog/changelog.html:102 #: rhodecode/templates/changeset/changeset.html:78 @@ -3233,10 +3131,6 @@ msgstr[1] "(et %d en ligne)" msgid "%s files affected with %s insertions and %s deletions:" msgstr "%s fichiers affectés avec %s insertions et %s suppressions :" -#: 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/templates/changeset/changeset_file_comment.html:42 msgid "Submitting..." msgstr "Envoi…" @@ -3249,16 +3143,12 @@ msgstr "Commentaire sur la ligne {1}." #: rhodecode/templates/changeset/changeset_file_comment.html:121 #, python-format msgid "Comments parsed using %s syntax with %s support." -msgstr "" -"Les commentaires sont analysés avec la syntaxe %s, avec le support de la " -"commande %s." +msgstr "Les commentaires sont analysés avec la syntaxe %s, avec le support de la commande %s." #: rhodecode/templates/changeset/changeset_file_comment.html:48 #: rhodecode/templates/changeset/changeset_file_comment.html:123 msgid "Use @username inside this text to send notification to this RhodeCode user" -msgstr "" -"Utilisez @nomutilisateur dans ce texte pour envoyer une notification à " -"l’utilisateur RhodeCode en question." +msgstr "Utilisez @nomutilisateur dans ce texte pour envoyer une notification à l’utilisateur RhodeCode en question." #: rhodecode/templates/changeset/changeset_file_comment.html:59 #: rhodecode/templates/changeset/changeset_file_comment.html:138 @@ -3284,16 +3174,15 @@ msgstr "Laisser un commentaire" #: rhodecode/templates/changeset/changeset_file_comment.html:124 msgid "Check this to change current status of code-review for this changeset" -msgstr "" +msgstr "Cochez pour changer le statut de la relecture de code pour ce changeset" #: rhodecode/templates/changeset/changeset_file_comment.html:124 -#, fuzzy msgid "change status" -msgstr "Changesets" +msgstr "Modifier le statut" #: rhodecode/templates/changeset/changeset_file_comment.html:140 msgid "Comment and close" -msgstr "" +msgstr "Commenter et fermer" #: rhodecode/templates/changeset/changeset_range.html:5 #, python-format @@ -3307,7 +3196,7 @@ msgstr "Comparaison" #: rhodecode/templates/changeset/changeset_range.html:54 #: rhodecode/templates/compare/compare_diff.html:41 -#: rhodecode/templates/pullrequests/pullrequest_show.html:69 +#: rhodecode/templates/pullrequests/pullrequest_show.html:73 msgid "Files affected" msgstr "Fichiers affectés" @@ -3320,14 +3209,12 @@ msgid "show inline comments" msgstr "Afficher les commentaires" #: rhodecode/templates/compare/compare_cs.html:5 -#, fuzzy msgid "No changesets" -msgstr "Dépôt vide" +msgstr "Aucun changeset" #: rhodecode/templates/compare/compare_diff.html:37 -#, fuzzy msgid "Outgoing changesets" -msgstr "Dépôt vide" +msgstr "Changesets sortants" #: rhodecode/templates/data_table/_dt_elements.html:39 #: rhodecode/templates/data_table/_dt_elements.html:41 @@ -3388,7 +3275,7 @@ msgstr "Diff de fichier" #: rhodecode/templates/files/files.html:4 #: rhodecode/templates/files/files.html:72 -#, fuzzy, python-format +#, python-format msgid "%s files" msgstr "Fichiers de %s" @@ -3397,6 +3284,11 @@ msgstr "Fichiers de %s" msgid "files" msgstr "Fichiers" +#: rhodecode/templates/files/files.html:92 +#: rhodecode/templates/files/files_source.html:124 +msgid "Selection link" +msgstr "Lien vers la sélection" + #: rhodecode/templates/files/files_add.html:4 #: rhodecode/templates/files/files_edit.html:4 #, python-format @@ -3471,7 +3363,7 @@ msgid "search file list" msgstr "Rechercher un fichier" #: rhodecode/templates/files/files_browser.html:31 -#: rhodecode/templates/shortlog/shortlog_data.html:65 +#: rhodecode/templates/shortlog/shortlog_data.html:80 msgid "add new file" msgstr "Ajouter un fichier" @@ -3532,21 +3424,19 @@ msgid "History" msgstr "Historique" #: rhodecode/templates/files/files_source.html:9 -#, fuzzy msgid "diff to revision" -msgstr "révision suivante" +msgstr "Diff avec la révision" #: rhodecode/templates/files/files_source.html:10 -#, fuzzy msgid "show at revision" -msgstr "révision suivante" +msgstr "Afficher à la révision" #: rhodecode/templates/files/files_source.html:14 #, python-format msgid "%s author" msgid_plural "%s authors" -msgstr[0] "%s Auteur" -msgstr[1] "%s Auteurs" +msgstr[0] "%s auteur" +msgstr[1] "%s auteurs" #: rhodecode/templates/files/files_source.html:36 msgid "show source" @@ -3561,10 +3451,6 @@ msgstr "Fichier binaire (%s)" msgid "File is too big to display" msgstr "Ce fichier est trop gros pour être affiché." -#: rhodecode/templates/files/files_source.html:124 -msgid "Selection link" -msgstr "Lien vers la sélection" - #: rhodecode/templates/files/files_ypjax.html:5 msgid "annotation" msgstr "annotation" @@ -3609,7 +3495,7 @@ msgstr "Copier les permissions" #: rhodecode/templates/forks/fork.html:81 msgid "Copy permissions from forked repository" -msgstr "" +msgstr "Copier les permissions depuis le dépôt forké" #: rhodecode/templates/forks/fork.html:86 msgid "Update after clone" @@ -3617,7 +3503,7 @@ msgstr "MÀJ après le clonage" #: rhodecode/templates/forks/fork.html:90 msgid "Checkout source after making a clone" -msgstr "" +msgstr "Mettre à jour depuis la source après clonage" #: rhodecode/templates/forks/fork.html:94 msgid "fork this repository" @@ -3641,30 +3527,27 @@ msgid "There are no forks yet" msgstr "Il n’y a pas encore de forks." #: rhodecode/templates/journal/journal.html:13 -#, fuzzy msgid "ATOM journal feed" -msgstr "%s — Flux %s du journal public" +msgstr "Flux ATOM du journal" #: rhodecode/templates/journal/journal.html:14 -#, fuzzy msgid "RSS journal feed" -msgstr "%s — Flux %s du journal public" +msgstr "Flux RSS du journal" #: rhodecode/templates/journal/journal.html:24 -#: rhodecode/templates/pullrequests/pullrequest.html:27 +#: rhodecode/templates/pullrequests/pullrequest.html:53 msgid "Refresh" msgstr "Rafraîchir" #: rhodecode/templates/journal/journal.html:27 #: rhodecode/templates/journal/public_journal.html:24 -#, fuzzy msgid "RSS feed" -msgstr "Flux %s de %s" +msgstr "Flux RSS" #: rhodecode/templates/journal/journal.html:30 #: rhodecode/templates/journal/public_journal.html:27 msgid "ATOM feed" -msgstr "" +msgstr "Flux ATOM" #: rhodecode/templates/journal/journal.html:41 msgid "Watched" @@ -3691,14 +3574,12 @@ msgid "No entries yet" msgstr "Aucune entrée pour le moment" #: rhodecode/templates/journal/public_journal.html:13 -#, fuzzy msgid "ATOM public journal feed" -msgstr "%s — Flux %s du journal public" +msgstr "Flux ATOM du journal public" #: rhodecode/templates/journal/public_journal.html:14 -#, fuzzy msgid "RSS public journal feed" -msgstr "%s — Flux %s du journal public" +msgstr "Flux RSS du journal public" #: rhodecode/templates/journal/public_journal.html:21 msgid "Public Journal" @@ -3707,128 +3588,127 @@ msgstr "Journal public" #: rhodecode/templates/pullrequests/pullrequest.html:4 #: rhodecode/templates/pullrequests/pullrequest.html:12 msgid "New pull request" -msgstr "" - -#: rhodecode/templates/pullrequests/pullrequest.html:28 +msgstr "Nouvelle requête de pull" + +#: rhodecode/templates/pullrequests/pullrequest.html:52 msgid "refresh overview" -msgstr "" - -#: rhodecode/templates/pullrequests/pullrequest.html:66 -#, fuzzy +msgstr "Rafraîchir les informations" + +#: rhodecode/templates/pullrequests/pullrequest.html:64 msgid "Detailed compare view" -msgstr "vue de comparaison" - -#: rhodecode/templates/pullrequests/pullrequest.html:70 -#: rhodecode/templates/pullrequests/pullrequest_show.html:82 +msgstr "Comparaison détaillée" + +#: rhodecode/templates/pullrequests/pullrequest.html:68 +#: rhodecode/templates/pullrequests/pullrequest_show.html:86 msgid "Pull request reviewers" -msgstr "" - -#: rhodecode/templates/pullrequests/pullrequest.html:79 -#: rhodecode/templates/pullrequests/pullrequest_show.html:94 -#, fuzzy +msgstr "Relecteurs de la requête de pull" + +#: rhodecode/templates/pullrequests/pullrequest.html:77 +#: rhodecode/templates/pullrequests/pullrequest_show.html:98 msgid "owner" msgstr "Propriétaire" -#: rhodecode/templates/pullrequests/pullrequest.html:91 -#: rhodecode/templates/pullrequests/pullrequest_show.html:109 +#: rhodecode/templates/pullrequests/pullrequest.html:89 +#: rhodecode/templates/pullrequests/pullrequest_show.html:113 msgid "Add reviewer to this pull request." -msgstr "" - -#: rhodecode/templates/pullrequests/pullrequest.html:97 -#, fuzzy +msgstr "Ajouter un relecteur à cette requête de pull." + +#: rhodecode/templates/pullrequests/pullrequest.html:95 msgid "Create new pull request" -msgstr "Créer un nouveau fichier" - -#: rhodecode/templates/pullrequests/pullrequest.html:106 +msgstr "Nouvelle requête de pull" + +#: rhodecode/templates/pullrequests/pullrequest.html:104 #: rhodecode/templates/pullrequests/pullrequest_show.html:25 #: rhodecode/templates/pullrequests/pullrequest_show_all.html:33 -#, fuzzy msgid "Title" -msgstr "Écriture" - -#: rhodecode/templates/pullrequests/pullrequest.html:115 -#, fuzzy +msgstr "Titre" + +#: rhodecode/templates/pullrequests/pullrequest.html:113 msgid "description" msgstr "Description" -#: rhodecode/templates/pullrequests/pullrequest.html:123 +#: rhodecode/templates/pullrequests/pullrequest.html:121 msgid "Send pull request" -msgstr "" +msgstr "Envoyer la requête de pull" #: rhodecode/templates/pullrequests/pullrequest_show.html:23 #, python-format msgid "Closed %s" -msgstr "" +msgstr "Fermée %s" + +#: rhodecode/templates/pullrequests/pullrequest_show.html:23 +#, python-format +msgid "with status %s" +msgstr "avec %s comme statut." #: rhodecode/templates/pullrequests/pullrequest_show.html:31 -#, fuzzy msgid "Status" -msgstr "Changesets" +msgstr "Statut" #: rhodecode/templates/pullrequests/pullrequest_show.html:36 msgid "Pull request status" -msgstr "" +msgstr "Statut de la requête de pull" #: rhodecode/templates/pullrequests/pullrequest_show.html:44 msgid "Still not reviewed by" -msgstr "" - -#: rhodecode/templates/pullrequests/pullrequest_show.html:47 +msgstr "Pas encore relue par" + +#: rhodecode/templates/pullrequests/pullrequest_show.html:48 #, python-format msgid "%d reviewer" msgid_plural "%d reviewers" -msgstr[0] "" -msgstr[1] "" - -#: rhodecode/templates/pullrequests/pullrequest_show.html:54 -#, fuzzy +msgstr[0] "%d relecteur" +msgstr[1] "%d relecteurs" + +#: rhodecode/templates/pullrequests/pullrequest_show.html:50 +#| msgid "Pull request reviewers" +msgid "pull request was reviewed by all reviewers" +msgstr "La requête de pull a été relue par tous les relecteurs." + +#: rhodecode/templates/pullrequests/pullrequest_show.html:58 msgid "Created on" -msgstr "En créer un maintenant" - -#: rhodecode/templates/pullrequests/pullrequest_show.html:61 -#, fuzzy -msgid "Compare view" -msgstr "vue de comparaison" +msgstr "Créé le" #: rhodecode/templates/pullrequests/pullrequest_show.html:65 -#, fuzzy +msgid "Compare view" +msgstr "Vue de comparaison" + +#: rhodecode/templates/pullrequests/pullrequest_show.html:69 msgid "Incoming changesets" -msgstr "Dépôt vide" +msgstr "Changesets entrants" #: rhodecode/templates/pullrequests/pullrequest_show_all.html:4 -#, fuzzy msgid "all pull requests" -msgstr "Créer un nouveau fichier" +msgstr "Requêtes de pull" #: rhodecode/templates/pullrequests/pullrequest_show_all.html:12 msgid "All pull requests" -msgstr "" +msgstr "Toutes les requêtes de pull" #: rhodecode/templates/pullrequests/pullrequest_show_all.html:27 msgid "Closed" -msgstr "" +msgstr "Fermée" #: rhodecode/templates/search/search.html:6 #, python-format msgid "Search \"%s\" in repository: %s" -msgstr "dans \"%s\" le dépôt: %s" +msgstr "Rechercher « %s » dans le dépôt : %s" #: rhodecode/templates/search/search.html:8 #, python-format msgid "Search \"%s\" in all repositories" -msgstr "Recherche \"%s\" dans tous les référentiels" +msgstr "Rechercher « %s » dans tous les dépôts" #: rhodecode/templates/search/search.html:12 #: rhodecode/templates/search/search.html:32 #, python-format msgid "Search in repository: %s" -msgstr "dans le dépôt : %s" +msgstr "Rechercher dans le dépôt : %s" #: rhodecode/templates/search/search.html:14 #: rhodecode/templates/search/search.html:34 -#, fuzzy msgid "Search in all repositories" -msgstr "dans tous les dépôts" +msgstr "Rechercher dans tous les dépôts" #: rhodecode/templates/search/search.html:48 msgid "Search term" @@ -3843,9 +3723,8 @@ msgid "File contents" msgstr "Le contenu des fichiers" #: rhodecode/templates/search/search.html:64 -#, fuzzy msgid "Commit messages" -msgstr "Message de commit" +msgstr "Les messages de commit" #: rhodecode/templates/search/search.html:65 msgid "File names" @@ -3875,19 +3754,19 @@ msgstr "Résumé" msgid "age" msgstr "Âge" -#: rhodecode/templates/shortlog/shortlog_data.html:18 +#: rhodecode/templates/shortlog/shortlog_data.html:33 msgid "No commit message" msgstr "Pas de message de commit" -#: rhodecode/templates/shortlog/shortlog_data.html:62 +#: rhodecode/templates/shortlog/shortlog_data.html:77 msgid "Add or upload files directly via RhodeCode" msgstr "Ajouter ou téléverser des fichiers directement via RhodeCode…" -#: rhodecode/templates/shortlog/shortlog_data.html:71 +#: rhodecode/templates/shortlog/shortlog_data.html:86 msgid "Push new repo" msgstr "Pusher le nouveau dépôt" -#: rhodecode/templates/shortlog/shortlog_data.html:79 +#: rhodecode/templates/shortlog/shortlog_data.html:94 msgid "Existing repository?" msgstr "Le dépôt existe déjà ?" @@ -3901,14 +3780,14 @@ msgid "summary" msgstr "résumé" #: rhodecode/templates/summary/summary.html:20 -#, fuzzy, python-format +#, python-format msgid "repo %s ATOM feed" -msgstr "S’abonner au flux ATOM de %s" +msgstr "Flux ATOM du dépôt %s" #: rhodecode/templates/summary/summary.html:21 -#, fuzzy, python-format +#, python-format msgid "repo %s RSS feed" -msgstr "S’abonner au flux RSS de %s" +msgstr "Flux RSS du dépôt %s" #: rhodecode/templates/summary/summary.html:49 #: rhodecode/templates/summary/summary.html:52 @@ -3997,11 +3876,11 @@ msgstr "Démarrage rapide" #: rhodecode/templates/summary/summary.html:233 #, python-format msgid "Readme file at revision '%s'" -msgstr "" +msgstr "Fichier « Lisez-moi » à la révision « %s »" #: rhodecode/templates/summary/summary.html:236 msgid "Permalink to this readme" -msgstr "" +msgstr "Lien permanent vers ce fichier « Lisez-moi »" #: rhodecode/templates/summary/summary.html:293 #, python-format @@ -4045,3 +3924,5 @@ msgstr "fichier supprimé" msgid "%s Tags" msgstr "Tags de %s" +#~ msgid "Groups" +#~ msgstr "Groupes" diff --git a/rhodecode/i18n/zh_CN/LC_MESSAGES/rhodecode.mo b/rhodecode/i18n/zh_CN/LC_MESSAGES/rhodecode.mo index 52185c12cecd51c8c881c5cfe91fcbae598c8497..edf8e1b29ae13e51ab5aec704a0ad472010a5399 GIT binary patch literal 54454 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%0DFdnGI;CO5iGijRN;Ip#R4j z_ z)(hMx@Oh#8#U|+0KX1ag{LF* z_?3~(sQ=(*XFl3Ea_$e(jNT zMH=*QF@ICq)71MRi$ zfc|<-=>EL}cFP$%vCqG`6Z3t|PVpCaO1}l(EAW1SzMU9PXeY+KU?=R5Wjj&-YRTUq z_3jtC4#A(0dfu1(4+Z{H=+4+B_W=ZccNfZCE$P9#KsQX%nY%$5!#=q|(vzCOPq{)@D)=f%uafk7sjsOS?HrQ)7X+SY zh8%xe^8Y3Hb6Z5N2)w)n`2$)ok3Vezzf5XD`MehN=ZO~dv$+L)`A!Swom6ZT+zr|!Y{i-o>c=$rRoe%tq;KhNzEyHnEtl6t5OV1Sg2mkLgP7;Zha`S@NaW@r z)L$;?Wrx6@^@m{39h3a`4q?21I)r&W?=bLJ3%rrwD1t*IU2_=q)gQ*ZZ9I(mIdB+u z@pF>@)mG47DA3gkd`c_Yzp)kiH?vjrrqG32F`mZ-u5LyD4z?mL_O{gXX)E}mPn+yh zffoq8v<>U$YD4`u3qGw4^Dw4O_^l20bGhWN5&Wh$w0}_Qc|+2FXv04HO1svowOy~JJ zf_jb}LA%EV{#xKil7Hq=q|ZN!^c9l6R^V+%5jVV#;KKyVj$*vsM{#fM%nrmWZ|VU4 z;SR{TM+hDxxT*u|^x%^i$DAiIj>n%Ae@ftT$=@RR+n+>zyPrfmuRJOD(4Is;FF7W0 z34wzI-YGES802i$F|6yNV;E2KG0fjn#}Gd|aSZKzD)@_^!a2oNPk}!7DcP@2!H$~u z6y(9Srw~UvPB6&pFLVz+jrKiHqy6yH=}ee(?V z#f8scpIq?_=4;3^=+E$HAP;h$fxKBJ=^X-pF8D7$3wiO~XR)u-pT#`nK8t#mJd6J9 ze-`6=^;wkr@LA~Pv!26x-uxWq?S4r|o&z5)c@BF1jptDA-RH26{_-5^`||UMdtdWB z_C@;h@Y^4LUhWYKzD(dsfja~qc^+}(6VJ;%0D&J%J$+vQ{Pqi=AM^t19VY3qFJL}> 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 N>$u7m38gEI{{`d&r+5GW diff --git a/rhodecode/i18n/zh_CN/LC_MESSAGES/rhodecode.po b/rhodecode/i18n/zh_CN/LC_MESSAGES/rhodecode.po --- a/rhodecode/i18n/zh_CN/LC_MESSAGES/rhodecode.po +++ b/rhodecode/i18n/zh_CN/LC_MESSAGES/rhodecode.po @@ -8,17 +8,16 @@ msgid "" msgstr "" "Project-Id-Version: RhodeCode 1.2.0\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2012-09-21 14:39+0800\n" -"PO-Revision-Date: 2012-09-21 15:20+0800\n" +"POT-Creation-Date: 2012-10-02 13:34+0800\n" +"PO-Revision-Date: 2012-10-02 13:44+0800\n" "Last-Translator: xpol \n" "Language-Team: mikespook\n" "Plural-Forms: nplurals=1; plural=0;\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 0.9.6\n" "X-Generator: Poedit 1.5.3\n" -"X-Poedit-Basepath: E:\\home\\rhodecode\n" #: rhodecode/controllers/changelog.py:95 msgid "All Branches" @@ -43,9 +42,8 @@ msgid "binary file" msgstr "二进制文件" #: rhodecode/controllers/changeset.py:381 -#: rhodecode/controllers/pullrequests.py:368 +#: rhodecode/controllers/pullrequests.py:376 #, python-format -#| msgid "Last change" msgid "Status change -> %s" msgstr "状态改变 -> %s" @@ -56,6 +54,7 @@ msgid "" msgstr "不允许修改已关闭拉取请求的修订集状态" #: rhodecode/controllers/compare.py:72 +#: rhodecode/controllers/pullrequests.py:114 msgid "There are no changesets yet" msgstr "还没有修订集" @@ -173,13 +172,13 @@ msgstr "未知包类型" msgid "Changesets" msgstr "修订集" -#: rhodecode/controllers/files.py:495 rhodecode/controllers/pullrequests.py:72 -#: rhodecode/controllers/summary.py:234 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 "分支" -#: rhodecode/controllers/files.py:496 rhodecode/controllers/pullrequests.py:76 -#: rhodecode/controllers/summary.py:235 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 "标签" @@ -204,12 +203,12 @@ msgstr "" #: rhodecode/controllers/forks.py:168 #, python-format msgid "forked %s repository as %s" -msgstr "版本库 %s 被分支到 %s" +msgstr "版本库 %s 被复刻到 %s" #: rhodecode/controllers/forks.py:182 #, python-format msgid "An error occurred during repository forking %s" -msgstr "在分支版本库 %s 的时候发生错误" +msgstr "在复刻版本库 %s 的时候发生错误" #: rhodecode/controllers/journal.py:203 rhodecode/controllers/journal.py:240 msgid "public journal" @@ -233,27 +232,27 @@ msgid "" "Your password reset was successful, new password has been sent to your email" msgstr "密码已经成功重置,新密码已经发送到你的邮箱" -#: rhodecode/controllers/pullrequests.py:74 rhodecode/model/scm.py:549 +#: rhodecode/controllers/pullrequests.py:75 rhodecode/model/scm.py:549 msgid "Bookmarks" msgstr "书签" -#: rhodecode/controllers/pullrequests.py:174 +#: rhodecode/controllers/pullrequests.py:182 msgid "Pull request requires a title with min. 3 chars" msgstr "拉取请求的标题至少 3 个字符" -#: rhodecode/controllers/pullrequests.py:176 +#: rhodecode/controllers/pullrequests.py:184 msgid "error during creation of pull request" msgstr "提交拉取请求时发生错误" -#: rhodecode/controllers/pullrequests.py:197 +#: rhodecode/controllers/pullrequests.py:205 msgid "Successfully opened new pull request" msgstr "成功提交拉取请求" -#: rhodecode/controllers/pullrequests.py:200 +#: rhodecode/controllers/pullrequests.py:208 msgid "Error occurred during sending pull request" msgstr "提交拉取请求时发生错误" -#: rhodecode/controllers/pullrequests.py:233 +#: rhodecode/controllers/pullrequests.py:241 msgid "Successfully deleted pull request" msgstr "成功删除拉取请求" @@ -305,18 +304,15 @@ msgid "An error occurred during deletion msgstr "在删除 %s 的时候发生错误" #: rhodecode/controllers/settings.py:179 -#| msgid "unlock" msgid "unlocked" msgstr "未锁" #: rhodecode/controllers/settings.py:182 -#| msgid "unlock" msgid "locked" msgstr "已锁" #: rhodecode/controllers/settings.py:184 #, python-format -#| msgid "forked %s repository as %s" msgid "Repository has been %s" msgstr "版本库已经 %s" @@ -325,11 +321,11 @@ msgstr "版本库已经 %s" msgid "An error occurred during unlocking" msgstr "解锁时发生错误" -#: rhodecode/controllers/summary.py:138 +#: rhodecode/controllers/summary.py:140 msgid "No data loaded yet" msgstr "数据未加载" -#: rhodecode/controllers/summary.py:142 +#: rhodecode/controllers/summary.py:144 #: rhodecode/templates/summary/summary.html:148 msgid "Statistics are disabled for this repository" msgstr "该版本库统计功能已经禁用" @@ -459,7 +455,7 @@ msgstr "更新权限时发生错误" #: rhodecode/controllers/admin/repos.py:123 msgid "--REMOVE FORK--" -msgstr "-- 移除分支 --" +msgstr "-- 移除复刻 --" #: rhodecode/controllers/admin/repos.py:192 #, python-format @@ -479,7 +475,7 @@ msgstr "创建版本库时发生错误 %s" #: rhodecode/controllers/admin/repos.py:319 #, python-format msgid "Cannot delete %s it still contains attached forks" -msgstr "无法删除 %s 因为它还有其他分支版本库" +msgstr "无法删除 %s 因为它还有其他分复刻本库" #: rhodecode/controllers/admin/repos.py:348 msgid "An error occurred during deletion of repository user" @@ -524,7 +520,7 @@ msgstr "无" #: rhodecode/controllers/admin/repos.py:484 #, python-format msgid "Marked repo %s as fork of %s" -msgstr "成功将版本库 %s 标记为从 %s 分支" +msgstr "成功将版本库 %s 标记为复刻自 %s" #: rhodecode/controllers/admin/repos.py:488 msgid "An error occurred during this operation" @@ -674,11 +670,11 @@ msgstr "已撤销用户‘创建版本库’的权限" #: rhodecode/controllers/admin/users.py:277 msgid "Granted 'repository fork' permission to user" -msgstr "成功授予了用户“分支版本库”权限" +msgstr "成功授予了用户“复刻版本库”权限" #: rhodecode/controllers/admin/users.py:282 msgid "Revoked 'repository fork' permission to user" -msgstr "成功撤销用户“分支版本库”权限" +msgstr "成功撤销用户“复刻版本库”权限" #: rhodecode/controllers/admin/users.py:288 #: rhodecode/controllers/admin/users_groups.py:255 @@ -736,11 +732,11 @@ msgstr "已撤销用户组‘创建版本库’的权限" #: rhodecode/controllers/admin/users_groups.py:244 msgid "Granted 'repository fork' permission to users group" -msgstr "已授予用户组‘分支版本库’的权限" +msgstr "已授予用户组‘复刻版本库’的权限" #: rhodecode/controllers/admin/users_groups.py:249 msgid "Revoked 'repository fork' permission to users group" -msgstr "已撤销用户组‘分支版本库’的权限" +msgstr "已撤销用户组‘复刻版本库’的权限" #: rhodecode/lib/auth.py:499 msgid "You need to be a registered user to perform this action" @@ -795,13 +791,13 @@ msgid "%s more" msgstr "%s 个" #: rhodecode/lib/helpers.py:584 -#: rhodecode/templates/changelog/changelog.html:48 +#: rhodecode/templates/changelog/changelog.html:49 msgid "revisions" msgstr "修订" #: rhodecode/lib/helpers.py:607 msgid "fork name " -msgstr "分支名称" +msgstr "复刻名称" #: rhodecode/lib/helpers.py:621 #: rhodecode/templates/pullrequests/pullrequest_show.html:4 @@ -820,11 +816,11 @@ msgstr "[创建]版本库" #: rhodecode/lib/helpers.py:631 msgid "[created] repository as fork" -msgstr "[创建]分支版本库" +msgstr "[创建]复刻版本库" #: rhodecode/lib/helpers.py:633 rhodecode/lib/helpers.py:641 msgid "[forked] repository" -msgstr "[分支]版本库" +msgstr "[复刻]版本库" #: rhodecode/lib/helpers.py:635 rhodecode/lib/helpers.py:643 msgid "[updated] repository" @@ -1004,11 +1000,11 @@ msgstr "允许创建版本库" #: rhodecode/model/db.py:1177 msgid "Repository forking disabled" -msgstr "禁用分支 版本库" +msgstr "禁用复刻版本库" #: rhodecode/model/db.py:1178 msgid "Repository forking enabled" -msgstr "允许分支版本库" +msgstr "允许复刻版本库" #: rhodecode/model/db.py:1179 msgid "Register disabled" @@ -1217,10 +1213,9 @@ msgstr "无效的克隆地址,提供一个有效的克隆 http(s) 或 svn+http(s) 地址" #: rhodecode/model/validators.py:458 msgid "Fork have to be the same type as parent" -msgstr "分支必须使用和父版本库相同的类型" +msgstr "复刻版本库必须和父版本库类型相同" #: 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 "没有在这个组里面创建版本库的权限" @@ -1317,8 +1312,8 @@ msgstr "版本库组" #: 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 @@ -1341,7 +1336,7 @@ msgstr "最后修改" #: 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 "Tip" @@ -1382,7 +1377,7 @@ msgstr "组名" #: 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 @@ -1394,7 +1389,7 @@ msgstr "点击以升序排列" #: 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 @@ -1409,7 +1404,7 @@ msgstr "最后修改" #: 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 @@ -1420,7 +1415,7 @@ msgstr "没有找到记录" #: 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 @@ -1431,7 +1426,7 @@ msgstr "数据错误" #: 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 @@ -1783,7 +1778,7 @@ msgstr "建立版本库" #: rhodecode/templates/admin/permissions/permissions.html:71 msgid "Repository forking" -msgstr "版本库分支" +msgstr "版本库复刻" #: rhodecode/templates/admin/permissions/permissions.html:78 #: rhodecode/templates/admin/repos/repo_edit.html:255 @@ -1944,7 +1939,7 @@ msgstr "修改这个版本库的所有者" #: 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 "重置" @@ -2059,11 +2054,11 @@ msgstr "强制锁定版本库。只有在禁止匿名访问时候才有效" #: rhodecode/templates/admin/repos/repo_edit.html:250 msgid "Set as fork of" -msgstr "设置 fork 自" +msgstr "设置复刻自" #: rhodecode/templates/admin/repos/repo_edit.html:259 msgid "Manually set this repository as a fork of another from the list" -msgstr "从列表中手动设置这个版本库 fork 自另一版本库" +msgstr "从列表中手动设置这个版本库复刻自另一版本库" #: rhodecode/templates/admin/repos/repo_edit.html:265 #: rhodecode/templates/changeset/changeset_file_comment.html:26 @@ -2219,7 +2214,7 @@ msgstr "上级组" #: rhodecode/templates/admin/users/user_add.html:94 #: rhodecode/templates/admin/users_groups/users_group_add.html:49 #: rhodecode/templates/admin/users_groups/users_group_edit.html:90 -#: rhodecode/templates/pullrequests/pullrequest_show.html:113 +#: rhodecode/templates/pullrequests/pullrequest_show.html:117 msgid "save" msgstr "保存" @@ -2574,7 +2569,7 @@ msgstr "创建版本库" #: rhodecode/templates/admin/users/user_edit.html:166 #: rhodecode/templates/admin/users_groups/users_group_edit.html:127 msgid "Fork repositories" -msgstr "分支版本库" +msgstr "复刻版本库" #: rhodecode/templates/admin/users/user_edit.html:186 #: rhodecode/templates/admin/users/user_edit_my_account_pullrequests.html:22 @@ -2584,7 +2579,7 @@ msgstr "无条目" #: rhodecode/templates/admin/users/user_edit.html:193 #: rhodecode/templates/admin/users/user_edit_my_account.html:60 -#: rhodecode/templates/admin/users/user_edit_my_account.html:194 +#: rhodecode/templates/admin/users/user_edit_my_account.html:218 msgid "Permission" msgstr "权限" @@ -2883,7 +2878,6 @@ msgstr "选项" #: rhodecode/templates/base/base.html:204 #: rhodecode/templates/base/base.html:206 -#| msgid "Repository creation" msgid "repository settings" msgstr "版本库设置" @@ -2891,10 +2885,10 @@ msgstr "版本库设置" #: rhodecode/templates/data_table/_dt_elements.html:80 #: rhodecode/templates/forks/fork.html:13 msgid "fork" -msgstr "分支" +msgstr "复刻" #: rhodecode/templates/base/base.html:212 -#: rhodecode/templates/changelog/changelog.html:40 +#: rhodecode/templates/changelog/changelog.html:41 msgid "Open new pull request" msgstr "新建拉取请求" @@ -2903,7 +2897,6 @@ msgid "search" msgstr "搜索" #: rhodecode/templates/base/base.html:220 -#| msgid "unlock" msgid "lock" msgstr "锁定" @@ -2931,7 +2924,7 @@ msgstr "关注者" #: rhodecode/templates/base/base.html:255 #: rhodecode/templates/base/base.html:257 msgid "Forks" -msgstr "分支" +msgstr "复刻" #: rhodecode/templates/base/base.html:336 #: rhodecode/templates/base/base.html:338 @@ -3028,18 +3021,18 @@ msgid "showing %d out of %d revision" msgid_plural "showing %d out of %d revisions" msgstr[0] "显示 %2d 中的 %1d 个版本" -#: rhodecode/templates/changelog/changelog.html:37 +#: rhodecode/templates/changelog/changelog.html:38 #: rhodecode/templates/forks/forks_data.html:19 #, python-format msgid "compare fork with %s" -msgstr "与 %s 比较" - -#: rhodecode/templates/changelog/changelog.html:37 +msgstr "比较复刻和%s" + +#: rhodecode/templates/changelog/changelog.html:38 #: rhodecode/templates/forks/forks_data.html:21 msgid "Compare fork" -msgstr "比较分支" - -#: rhodecode/templates/changelog/changelog.html:46 +msgstr "比较复刻" + +#: rhodecode/templates/changelog/changelog.html:47 msgid "Show" msgstr "显示" @@ -3060,6 +3053,7 @@ msgid "Changeset status" msgstr "修订集状态" #: rhodecode/templates/changelog/changelog.html:92 +#: rhodecode/templates/shortlog/shortlog_data.html:20 msgid "Click to open associated pull request" msgstr "点击建立相关的拉取请求" @@ -3233,7 +3227,7 @@ msgstr "比较显示" #: rhodecode/templates/changeset/changeset_range.html:54 #: rhodecode/templates/compare/compare_diff.html:41 -#: rhodecode/templates/pullrequests/pullrequest_show.html:69 +#: rhodecode/templates/pullrequests/pullrequest_show.html:73 msgid "Files affected" msgstr "影响文件" @@ -3257,7 +3251,7 @@ msgstr "传出修订集" #: rhodecode/templates/data_table/_dt_elements.html:41 #: rhodecode/templates/data_table/_dt_elements.html:43 msgid "Fork" -msgstr "分支" +msgstr "复刻" #: rhodecode/templates/data_table/_dt_elements.html:60 #: rhodecode/templates/journal/journal.html:126 @@ -3281,7 +3275,7 @@ msgstr "公共版本库" #: rhodecode/templates/summary/summary.html:87 #: rhodecode/templates/summary/summary.html:88 msgid "Fork of" -msgstr "分支自" +msgstr "复刻自" #: rhodecode/templates/data_table/_dt_elements.html:92 msgid "No changesets yet" @@ -3321,6 +3315,11 @@ msgstr "%s 文件" msgid "files" msgstr "文件" +#: rhodecode/templates/files/files.html:92 +#: rhodecode/templates/files/files_source.html:124 +msgid "Selection link" +msgstr "选择链接" + #: rhodecode/templates/files/files_add.html:4 #: rhodecode/templates/files/files_edit.html:4 #, python-format @@ -3395,7 +3394,7 @@ msgid "search file list" msgstr "搜索文件列表" #: rhodecode/templates/files/files_browser.html:31 -#: rhodecode/templates/shortlog/shortlog_data.html:65 +#: rhodecode/templates/shortlog/shortlog_data.html:80 msgid "add new file" msgstr "新建文件" @@ -3482,10 +3481,6 @@ msgstr "二进制文件(%s)" msgid "File is too big to display" msgstr "文件过大,不能显示" -#: rhodecode/templates/files/files_source.html:124 -msgid "Selection link" -msgstr "选择链接" - #: rhodecode/templates/files/files_ypjax.html:5 msgid "annotation" msgstr "显示注释" @@ -3514,11 +3509,11 @@ msgstr "开始关注 - " #: rhodecode/templates/forks/fork.html:5 #, python-format msgid "%s Fork" -msgstr "%s 的分支" +msgstr "%s的复刻" #: rhodecode/templates/forks/fork.html:31 msgid "Fork name" -msgstr "分支名" +msgstr "复刻名称" #: rhodecode/templates/forks/fork.html:68 msgid "Private" @@ -3530,7 +3525,7 @@ msgstr "拷贝权限" #: rhodecode/templates/forks/fork.html:81 msgid "Copy permissions from forked repository" -msgstr "从被分支版本库拷贝权限" +msgstr "从被复刻版本库拷贝权限" #: rhodecode/templates/forks/fork.html:86 msgid "Update after clone" @@ -3542,24 +3537,24 @@ msgstr "完成克隆后检出源代码" #: rhodecode/templates/forks/fork.html:94 msgid "fork this repository" -msgstr "对该版本库建立分支" +msgstr "复刻该版本库" #: rhodecode/templates/forks/forks.html:5 #, python-format msgid "%s Forks" -msgstr "%s 的分支" +msgstr "%s个复刻" #: rhodecode/templates/forks/forks.html:13 msgid "forks" -msgstr "分支" +msgstr "复刻" #: rhodecode/templates/forks/forks_data.html:17 msgid "forked" -msgstr "已有分支" +msgstr "已有复刻" #: rhodecode/templates/forks/forks_data.html:38 msgid "There are no forks yet" -msgstr "无分支" +msgstr "无复刻" #: rhodecode/templates/journal/journal.html:13 msgid "ATOM journal feed" @@ -3570,7 +3565,7 @@ msgid "RSS journal feed" msgstr "订阅日志 RSS" #: rhodecode/templates/journal/journal.html:24 -#: rhodecode/templates/pullrequests/pullrequest.html:27 +#: rhodecode/templates/pullrequests/pullrequest.html:53 msgid "Refresh" msgstr "刷新" @@ -3625,44 +3620,44 @@ msgstr "公共日志" msgid "New pull request" msgstr "新建拉取请求" -#: rhodecode/templates/pullrequests/pullrequest.html:28 +#: rhodecode/templates/pullrequests/pullrequest.html:52 msgid "refresh overview" msgstr "刷新概览" -#: rhodecode/templates/pullrequests/pullrequest.html:66 +#: rhodecode/templates/pullrequests/pullrequest.html:64 msgid "Detailed compare view" msgstr "详细比较显示" -#: rhodecode/templates/pullrequests/pullrequest.html:70 -#: rhodecode/templates/pullrequests/pullrequest_show.html:82 +#: rhodecode/templates/pullrequests/pullrequest.html:68 +#: rhodecode/templates/pullrequests/pullrequest_show.html:86 msgid "Pull request reviewers" msgstr "拉取请求检视人员" -#: rhodecode/templates/pullrequests/pullrequest.html:79 -#: rhodecode/templates/pullrequests/pullrequest_show.html:94 +#: rhodecode/templates/pullrequests/pullrequest.html:77 +#: rhodecode/templates/pullrequests/pullrequest_show.html:98 msgid "owner" msgstr "所有者" -#: rhodecode/templates/pullrequests/pullrequest.html:91 -#: rhodecode/templates/pullrequests/pullrequest_show.html:109 +#: rhodecode/templates/pullrequests/pullrequest.html:89 +#: rhodecode/templates/pullrequests/pullrequest_show.html:113 msgid "Add reviewer to this pull request." msgstr "为这个拉取请求增加检视人员" -#: rhodecode/templates/pullrequests/pullrequest.html:97 +#: rhodecode/templates/pullrequests/pullrequest.html:95 msgid "Create new pull request" msgstr "创建新的拉取请求" -#: rhodecode/templates/pullrequests/pullrequest.html:106 +#: rhodecode/templates/pullrequests/pullrequest.html:104 #: rhodecode/templates/pullrequests/pullrequest_show.html:25 #: rhodecode/templates/pullrequests/pullrequest_show_all.html:33 msgid "Title" msgstr "标题" -#: rhodecode/templates/pullrequests/pullrequest.html:115 +#: rhodecode/templates/pullrequests/pullrequest.html:113 msgid "description" msgstr "描述" -#: rhodecode/templates/pullrequests/pullrequest.html:123 +#: rhodecode/templates/pullrequests/pullrequest.html:121 msgid "Send pull request" msgstr "发送拉取请求" @@ -3688,21 +3683,26 @@ msgstr "拉取请求状态" msgid "Still not reviewed by" msgstr "还未检视的检视人员" -#: rhodecode/templates/pullrequests/pullrequest_show.html:47 +#: rhodecode/templates/pullrequests/pullrequest_show.html:48 #, python-format msgid "%d reviewer" msgid_plural "%d reviewers" msgstr[0] "%d 个检视者" -#: rhodecode/templates/pullrequests/pullrequest_show.html:54 +#: rhodecode/templates/pullrequests/pullrequest_show.html:50 +#| msgid "Pull request reviewers" +msgid "pull request was reviewed by all reviewers" +msgstr "拉取请求已经被所有检视人员检视" + +#: rhodecode/templates/pullrequests/pullrequest_show.html:58 msgid "Created on" msgstr "创建于 %s" -#: rhodecode/templates/pullrequests/pullrequest_show.html:61 +#: rhodecode/templates/pullrequests/pullrequest_show.html:65 msgid "Compare view" msgstr "比较显示" -#: rhodecode/templates/pullrequests/pullrequest_show.html:65 +#: rhodecode/templates/pullrequests/pullrequest_show.html:69 msgid "Incoming changesets" msgstr "传入修订集" @@ -3783,19 +3783,19 @@ msgstr "简短日志" msgid "age" msgstr "时间" -#: rhodecode/templates/shortlog/shortlog_data.html:18 +#: rhodecode/templates/shortlog/shortlog_data.html:33 msgid "No commit message" msgstr "没有提交信息" -#: rhodecode/templates/shortlog/shortlog_data.html:62 +#: rhodecode/templates/shortlog/shortlog_data.html:77 msgid "Add or upload files directly via RhodeCode" msgstr "通过 RhodeCode 直接添加或者上传文件" -#: rhodecode/templates/shortlog/shortlog_data.html:71 +#: rhodecode/templates/shortlog/shortlog_data.html:86 msgid "Push new repo" msgstr "Push 新版本库" -#: rhodecode/templates/shortlog/shortlog_data.html:79 +#: rhodecode/templates/shortlog/shortlog_data.html:94 msgid "Existing repository?" msgstr "现有版本库?" @@ -3952,6 +3952,3 @@ msgstr "文件已删除" #, python-format msgid "%s Tags" msgstr "%s 标签" - -#~ msgid "Groups" -#~ msgstr "组" diff --git a/rhodecode/lib/diffs.py b/rhodecode/lib/diffs.py --- a/rhodecode/lib/diffs.py +++ b/rhodecode/lib/diffs.py @@ -28,6 +28,7 @@ import re import difflib import markupsafe +import logging from itertools import tee, imap @@ -46,6 +47,8 @@ from rhodecode.lib.helpers import escape from rhodecode.lib.utils import make_ui from rhodecode.lib.utils2 import safe_unicode +log = logging.getLogger(__name__) + def wrap_to_table(str_): return ''' @@ -574,7 +577,8 @@ class InMemoryBundleRepo(bundlerepositor self.bundlefilespos = {} -def differ(org_repo, org_ref, other_repo, other_ref, discovery_data=None): +def differ(org_repo, org_ref, other_repo, other_ref, discovery_data=None, + bundle_compare=False): """ General differ between branches, bookmarks or separate but releated repositories @@ -598,7 +602,7 @@ def differ(org_repo, org_ref, other_repo org_ref = org_ref[1] other_ref = other_ref[1] - if org_repo != other_repo: + if org_repo != other_repo and bundle_compare: common, incoming, rheads = discovery_data other_repo_peer = localrepo.locallegacypeer(other_repo.local()) @@ -633,5 +637,7 @@ def differ(org_repo, org_ref, other_repo node2=other_repo[other_ref].node(), opts=opts)) else: + log.debug('running diff between %s@%s and %s@%s' + % (org_repo, org_ref, other_repo, other_ref)) return ''.join(patch.diff(org_repo, node1=org_ref, node2=other_ref, opts=opts)) diff --git a/rhodecode/lib/utils.py b/rhodecode/lib/utils.py --- a/rhodecode/lib/utils.py +++ b/rhodecode/lib/utils.py @@ -672,3 +672,38 @@ class BasePasterCommand(Command): self.path_to_ini_file = os.path.realpath(conf) conf = paste.deploy.appconfig('config:' + self.path_to_ini_file) pylonsconfig.init_app(conf.global_conf, conf.local_conf) + + +def check_git_version(): + """ + Checks what version of git is installed in system, and issues a warning + if it's to old for RhodeCode to properly work. + """ + import subprocess + from distutils.version import StrictVersion + from rhodecode import BACKENDS + + p = subprocess.Popen('git --version', shell=True, + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + stdout, stderr = p.communicate() + ver = (stdout.split(' ')[-1] or '').strip() or '0.0.0' + try: + _ver = StrictVersion(ver) + except: + _ver = StrictVersion('0.0.0') + stderr = traceback.format_exc() + + req_ver = '1.7.4' + to_old_git = False + if _ver <= StrictVersion(req_ver): + to_old_git = True + + if 'git' in BACKENDS: + log.debug('GIT version detected: %s' % stdout) + if stderr: + log.warning('Unable to detect git version org error was:%r' % stderr) + elif to_old_git: + log.warning('RhodeCode detected git version %s, which is to old ' + 'for the system to function properly make sure ' + 'it is at least in version %s' % (ver, req_ver)) + return _ver \ No newline at end of file diff --git a/rhodecode/lib/utils2.py b/rhodecode/lib/utils2.py --- a/rhodecode/lib/utils2.py +++ b/rhodecode/lib/utils2.py @@ -497,3 +497,11 @@ def fix_PATH(os_=None): cur_path = os.path.split(sys.executable)[0] if not os.environ['PATH'].startswith(cur_path): os.environ['PATH'] = '%s:%s' % (cur_path, os.environ['PATH']) + + +def obfuscate_url_pw(engine): + from sqlalchemy.engine import url + url = url.make_url(engine) + if url.password: + url.password = 'XXXXX' + return str(url) \ No newline at end of file diff --git a/rhodecode/lib/vcs/backends/git/inmemory.py b/rhodecode/lib/vcs/backends/git/inmemory.py --- a/rhodecode/lib/vcs/backends/git/inmemory.py +++ b/rhodecode/lib/vcs/backends/git/inmemory.py @@ -63,10 +63,16 @@ class GitInMemoryChangeset(BaseInMemoryC # If found, updates parent parent = self.repository._repo[dir_id] ancestors.append((curdir, parent)) - # Now parent is deepest exising tree and we need to create subtrees + # Now parent is deepest existing tree and we need to create subtrees # for dirnames (in reverse order) [this only applies for nodes from added] new_trees = [] - blob = objects.Blob.from_string(node.content.encode(ENCODING)) + + if not node.is_binary: + content = node.content.encode(ENCODING) + else: + content = node.content + blob = objects.Blob.from_string(content) + node_path = node.name.encode(ENCODING) if dirnames: # If there are trees which should be created we need to build diff --git a/rhodecode/model/__init__.py b/rhodecode/model/__init__.py --- a/rhodecode/model/__init__.py +++ b/rhodecode/model/__init__.py @@ -43,7 +43,7 @@ import logging from rhodecode.model import meta -from rhodecode.lib.utils2 import safe_str +from rhodecode.lib.utils2 import safe_str, obfuscate_url_pw log = logging.getLogger(__name__) @@ -56,7 +56,8 @@ def init_model(engine): :param engine: engine to bind to """ - log.info("initializing db for %s" % engine) + engine_str = obfuscate_url_pw(str(engine.url)) + log.info("initializing db for %s" % engine_str) meta.Base.metadata.bind = engine diff --git a/rhodecode/model/forms.py b/rhodecode/model/forms.py --- a/rhodecode/model/forms.py +++ b/rhodecode/model/forms.py @@ -327,7 +327,7 @@ def UserExtraEmailForm(): return _UserExtraEmailForm -def PullRequestForm(): +def PullRequestForm(repo_id): class _PullRequestForm(formencode.Schema): allow_extra_fields = True filter_extra_fields = True @@ -337,7 +337,7 @@ def PullRequestForm(): org_ref = v.UnicodeString(strip=True, required=True) other_repo = v.UnicodeString(strip=True, required=True) other_ref = v.UnicodeString(strip=True, required=True) - revisions = All(v.NotReviewedRevisions()(), v.UniqueList(not_empty=True)) + revisions = All(v.NotReviewedRevisions(repo_id)(), v.UniqueList(not_empty=True)) review_members = v.UniqueList(not_empty=True) pullrequest_title = v.UnicodeString(strip=True, required=True, min=3) diff --git a/rhodecode/model/validators.py b/rhodecode/model/validators.py --- a/rhodecode/model/validators.py +++ b/rhodecode/model/validators.py @@ -666,7 +666,7 @@ def AttrLoginValidator(): return _validator -def NotReviewedRevisions(): +def NotReviewedRevisions(repo_id): class _validator(formencode.validators.FancyValidator): messages = { 'rev_already_reviewed': @@ -678,7 +678,10 @@ def NotReviewedRevisions(): # check revisions if they are not reviewed, or a part of another # pull request statuses = ChangesetStatus.query()\ - .filter(ChangesetStatus.revision.in_(value)).all() + .filter(ChangesetStatus.revision.in_(value))\ + .filter(ChangesetStatus.repo_id == repo_id)\ + .all() + errors = [] for cs in statuses: if cs.pull_request_id: diff --git a/rhodecode/public/css/style.css b/rhodecode/public/css/style.css --- a/rhodecode/public/css/style.css +++ b/rhodecode/public/css/style.css @@ -2544,8 +2544,8 @@ h3.files_location { } #graph_content #rev_range_container { - padding: 7px 20px; float: left; + margin: 0px 0px 0px 3px; } #graph_content .container { diff --git a/rhodecode/public/js/rhodecode.js b/rhodecode/public/js/rhodecode.js --- a/rhodecode/public/js/rhodecode.js +++ b/rhodecode/public/js/rhodecode.js @@ -673,10 +673,7 @@ var removeReviewer = function(reviewer_i } var fileBrowserListeners = function(current_url, node_list_url, url_base){ - var current_url_branch = +"?branch=__BRANCH__"; - var url = url_base; - var node_url = node_list_url; YUE.on('stay_at_branch','click',function(e){ if(e.target.checked){ @@ -700,7 +697,7 @@ var fileBrowserListeners = function(curr YUD.setStyle('search_activate_id','display','none'); YUD.setStyle('add_node_id','display','none'); YUC.initHeader('X-PARTIAL-XHR',true); - YUC.asyncRequest('GET',url,{ + YUC.asyncRequest('GET', node_list_url, { success:function(o){ nodes = JSON.parse(o.responseText).nodes; YUD.setStyle('node_filter_box_loading','display','none'); @@ -743,8 +740,8 @@ var fileBrowserListeners = function(curr var n_hl = n.substring(0,pos) +"{0}".format(n.substring(pos,pos+query.length)) +n.substring(pos+query.length) - node_url = node_url.replace('__FPATH__',n); - match.push(''.format(t,node_url,n_hl)); + var new_url = url_base.replace('__FPATH__',n); + match.push(''.format(t,new_url,n_hl)); } if(match.length >= matches_max){ match.push(''.format(_TM['search truncated'])); diff --git a/rhodecode/templates/admin/users/user_edit_my_account.html b/rhodecode/templates/admin/users/user_edit_my_account.html --- a/rhodecode/templates/admin/users/user_edit_my_account.html +++ b/rhodecode/templates/admin/users/user_edit_my_account.html @@ -38,7 +38,7 @@ ${_('My repos')}
  • - ${_('My pull requests')} + ${_('My pull requests')}
  • %if h.HasPermissionAny('hg.admin','hg.create.repository')():
  • @@ -109,18 +109,22 @@ var filter_activate = function(){ } q_filter('q_filter',YUQ('#my tr td a.repo_name'),func); } -YUE.on('show_perms','click',function(e){ - YUD.addClass('show_perms', 'current'); - YUD.removeClass('show_my','current'); - YUD.removeClass('show_pullrequests','current'); + +var show_perms = function(e){ + YUD.addClass('show_perms', 'current'); + YUD.removeClass('show_my','current'); + YUD.removeClass('show_pullrequests','current'); YUD.setStyle('my','display','none'); YUD.setStyle('pullrequests','display','none'); YUD.setStyle('perms','display',''); - YUD.setStyle('q_filter','display','none'); - YUE.preventDefault(e); + YUD.setStyle('q_filter','display','none'); +} +YUE.on('show_perms','click',function(e){ + show_perms(); }) -YUE.on('show_my','click',function(e){ + +var show_my = function(e){ YUD.addClass('show_my', 'current'); YUD.removeClass('show_perms','current'); YUD.removeClass('show_pullrequests','current'); @@ -130,14 +134,18 @@ YUE.on('show_my','click',function(e){ YUD.setStyle('my','display',''); YUD.setStyle('q_filter','display',''); - YUE.preventDefault(e); + var url = "${h.url('admin_settings_my_repos')}"; ypjax(url, 'my', function(){ - table_sort(); - filter_activate(); - }); + table_sort(); + filter_activate(); + }); +} +YUE.on('show_my','click',function(e){ + show_my(e); }) -YUE.on('show_pullrequests','click',function(e){ + +var show_pullrequests = function(e){ YUD.addClass('show_pullrequests', 'current'); YUD.removeClass('show_my','current'); YUD.removeClass('show_perms','current'); @@ -146,11 +154,27 @@ YUE.on('show_pullrequests','click',funct YUD.setStyle('perms','display','none'); YUD.setStyle('pullrequests','display',''); YUD.setStyle('q_filter','display','none'); - YUE.preventDefault(e); + var url = "${h.url('admin_settings_my_pullrequests')}"; - ypjax(url, 'pullrequests'); + ypjax(url, 'pullrequests'); +} +YUE.on('show_pullrequests','click',function(e){ + show_pullrequests(e) }) +var tabs = { + 'perms': show_perms, + 'my': show_my, + 'pullrequests': show_pullrequests +} +var url = location.href.split('#'); +if (url[1]) { + //We have a hash + var tabHash = url[1]; + console.log(tabs, tabHash) + tabs[tabHash](); +} + // main table sorting var myColumnDefs = [ {key:"menu",label:"",sortable:false,className:"quick_repo_menu hidden"}, diff --git a/rhodecode/templates/changelog/changelog.html b/rhodecode/templates/changelog/changelog.html --- a/rhodecode/templates/changelog/changelog.html +++ b/rhodecode/templates/changelog/changelog.html @@ -33,6 +33,7 @@
    + %if c.rhodecode_db_repo.fork: ${_('Compare fork')} %endif @@ -48,7 +49,6 @@ ${_('revisions')}
    ${h.end_form()} -
    ${h.select('branch_filter',c.branch_name,c.branch_filters)}
    @@ -161,15 +161,15 @@ var url = url_tmpl.replace('__REVRANGE__', rev_start+'...'+rev_end); - var link = "${_('Show selected changes __S -> __E')}" + var link = "${_('Show selected changes __S -> __E')}"; link = link.replace('__S',rev_start.substr(0,6)); link = link.replace('__E',rev_end.substr(0,6)); + YUD.get('rev_range_container').href = url; YUD.get('rev_range_container').innerHTML = link; YUD.setStyle('rev_range_container','display',''); } else{ YUD.setStyle('rev_range_container','display','none'); - } }); diff --git a/rhodecode/templates/files/files.html b/rhodecode/templates/files/files.html --- a/rhodecode/templates/files/files.html +++ b/rhodecode/templates/files/files.html @@ -41,9 +41,9 @@ var CACHE = {}; var CACHE_EXPIRE = 60*1000; //cache for 60s //used to construct links from the search list -var node_list_url = '${h.url("files_home",repo_name=c.repo_name,revision='__REV__',f_path='__FPATH__')}'; +var url_base = '${h.url("files_home",repo_name=c.repo_name,revision='__REV__',f_path='__FPATH__')}'; //send the nodelist request to this url -var url_base = '${h.url("files_nodelist_home",repo_name=c.repo_name,revision='__REV__',f_path='__FPATH__')}'; +var node_list_url = '${h.url("files_nodelist_home",repo_name=c.repo_name,revision='__REV__',f_path='__FPATH__')}'; var ypjax_links = function(){ YUE.on(YUQ('.ypjax-link'), 'click',function(e){ @@ -71,8 +71,8 @@ var ypjax_links = function(){ var title = "${_('%s files') % c.repo_name}" + " - " + f_path; - var _node_list_url = node_list_url.replace('__REV__',rev); - var _url_base = url_base.replace('__REV__',rev).replace('__FPATH__', f_path); + var _node_list_url = node_list_url.replace('__REV__',rev).replace('__FPATH__', f_path); + var _url_base = url_base.replace('__REV__',rev); // Change our States and save some data for handling events var data = {url:url,title:title, url_base:_url_base, @@ -132,8 +132,8 @@ YUE.onDOMReady(function(){ var _State = { url: "${h.url.current()}", data: { - node_list_url: node_list_url.replace('__REV__',"${c.changeset.raw_id}"), - url_base: url_base.replace('__REV__',"${c.changeset.raw_id}").replace('__FPATH__', "${h.safe_unicode(c.file.path)}") + node_list_url: node_list_url.replace('__REV__',"${c.changeset.raw_id}").replace('__FPATH__', "${h.safe_unicode(c.file.path)}"), + url_base: url_base.replace('__REV__',"${c.changeset.raw_id}") } } fileBrowserListeners(_State.url, _State.data.node_list_url, _State.data.url_base); diff --git a/rhodecode/templates/pullrequests/pullrequest.html b/rhodecode/templates/pullrequests/pullrequest.html --- a/rhodecode/templates/pullrequests/pullrequest.html +++ b/rhodecode/templates/pullrequests/pullrequest.html @@ -141,7 +141,7 @@ org_ref_type='org_ref_type', org_ref='org_ref', other_ref_type='other_ref_type', other_ref='other_ref', repo='other_repo', - as_form=True)}"; + as_form=True, bundle=False)}"; var select_refs = YUQ('#pull_request_form select.refs') var rev_data = {}; // gather the org/other ref and repo here diff --git a/rhodecode/templates/pullrequests/pullrequest_show.html b/rhodecode/templates/pullrequests/pullrequest_show.html --- a/rhodecode/templates/pullrequests/pullrequest_show.html +++ b/rhodecode/templates/pullrequests/pullrequest_show.html @@ -44,7 +44,11 @@
    -
    ${ungettext('%d reviewer', '%d reviewers',len(c.pull_request_pending_reviewers)) % len(c.pull_request_pending_reviewers)}
    + % if len(c.pull_request_pending_reviewers) > 0: +
    ${ungettext('%d reviewer', '%d reviewers',len(c.pull_request_pending_reviewers)) % len(c.pull_request_pending_reviewers)}
    + %else: +
    ${_('pull request was reviewed by all reviewers')}
    + %endif
    diff --git a/rhodecode/templates/shortlog/shortlog_data.html b/rhodecode/templates/shortlog/shortlog_data.html --- a/rhodecode/templates/shortlog/shortlog_data.html +++ b/rhodecode/templates/shortlog/shortlog_data.html @@ -12,7 +12,22 @@ %for cnt,cs in enumerate(c.repo_changesets):
  • {2}
    {2}
    {0}
    - +
    +
    + %if c.statuses.get(cs.raw_id): +
    + %if c.statuses.get(cs.raw_id)[2]: + + + + %else: + + %endif +
    + %endif +
    +
    r${cs.revision}:${h.short_id(cs.raw_id)}
    +
    ${h.link_to(h.truncate(cs.message,50) or _('No commit message'), diff --git a/rhodecode/tests/functional/test_compare.py b/rhodecode/tests/functional/test_compare.py --- a/rhodecode/tests/functional/test_compare.py +++ b/rhodecode/tests/functional/test_compare.py @@ -254,7 +254,8 @@ class TestCompareController(TestControll org_ref=rev1, other_ref_type="branch", other_ref=rev2, - repo=r1_name + repo=r1_name, + bundle=True, )) try: @@ -269,6 +270,112 @@ class TestCompareController(TestControll cs=EmptyChangeset(alias='hg'), user=TEST_USER_ADMIN_LOGIN, author=TEST_USER_ADMIN_LOGIN, message='commit2', + content='line1-from-new-parent', + f_path='file2' + ) + #compare ! + rev1 = 'default' + rev2 = 'default' + response = self.app.get(url(controller='compare', action='index', + repo_name=r2_name, + org_ref_type="branch", + org_ref=rev1, + other_ref_type="branch", + other_ref=rev2, + repo=r1_name, + bundle=True, + )) + + response.mustcontain('%s@%s -> %s@%s' % (r2_name, rev1, r1_name, rev2)) + response.mustcontain("""file2""") # new commit from parent + response.mustcontain("""line1-from-new-parent""") + response.mustcontain("""file1-line1-from-fork""") + response.mustcontain("""file2-line1-from-fork""") + response.mustcontain("""file3-line1-from-fork""") + finally: + RepoModel().delete(r2_id) + RepoModel().delete(r1_id) + + def test_org_repo_new_commits_after_forking_simple_diff(self): + self.log_user() + + repo1 = RepoModel().create_repo(repo_name='one', repo_type='hg', + description='diff-test', + owner=TEST_USER_ADMIN_LOGIN) + + Session().commit() + r1_id = repo1.repo_id + r1_name = repo1.repo_name + + #commit something initially ! + cs0 = ScmModel().create_node( + repo=repo1.scm_instance, repo_name=r1_name, + cs=EmptyChangeset(alias='hg'), user=TEST_USER_ADMIN_LOGIN, + author=TEST_USER_ADMIN_LOGIN, + message='commit1', + content='line1', + f_path='file1' + ) + Session().commit() + self.assertEqual(repo1.scm_instance.revisions, [cs0.raw_id]) + #fork the repo1 + repo2 = RepoModel().create_repo(repo_name='one-fork', repo_type='hg', + description='compare-test', + clone_uri=repo1.repo_full_path, + owner=TEST_USER_ADMIN_LOGIN, fork_of='one') + Session().commit() + self.assertEqual(repo2.scm_instance.revisions, [cs0.raw_id]) + r2_id = repo2.repo_id + r2_name = repo2.repo_name + + #make 3 new commits in fork + cs1 = ScmModel().create_node( + repo=repo2.scm_instance, repo_name=r2_name, + cs=repo2.scm_instance[-1], user=TEST_USER_ADMIN_LOGIN, + author=TEST_USER_ADMIN_LOGIN, + message='commit1-fork', + content='file1-line1-from-fork', + f_path='file1-fork' + ) + cs2 = ScmModel().create_node( + repo=repo2.scm_instance, repo_name=r2_name, + cs=cs1, user=TEST_USER_ADMIN_LOGIN, + author=TEST_USER_ADMIN_LOGIN, + message='commit2-fork', + content='file2-line1-from-fork', + f_path='file2-fork' + ) + cs3 = ScmModel().create_node( + repo=repo2.scm_instance, repo_name=r2_name, + cs=cs2, user=TEST_USER_ADMIN_LOGIN, + author=TEST_USER_ADMIN_LOGIN, + message='commit3-fork', + content='file3-line1-from-fork', + f_path='file3-fork' + ) + + #compare ! + rev1 = 'default' + rev2 = 'default' + response = self.app.get(url(controller='compare', action='index', + repo_name=r2_name, + org_ref_type="branch", + org_ref=rev1, + other_ref_type="branch", + other_ref=rev2, + repo=r1_name, + bundle=False, + )) + + try: + #response.mustcontain('%s@%s -> %s@%s' % (r2_name, rev1, r1_name, rev2)) + + #add new commit into parent ! + cs0 = ScmModel().create_node( + repo=repo1.scm_instance, repo_name=r1_name, + cs=EmptyChangeset(alias='hg'), user=TEST_USER_ADMIN_LOGIN, + author=TEST_USER_ADMIN_LOGIN, + message='commit2', content='line1', f_path='file2' ) @@ -281,13 +388,16 @@ class TestCompareController(TestControll org_ref=rev1, other_ref_type="branch", other_ref=rev2, - repo=r1_name + repo=r1_name, + bundle=False )) - + rev2 = cs0.parents[0].raw_id response.mustcontain('%s@%s -> %s@%s' % (r2_name, rev1, r1_name, rev2)) response.mustcontain("""file1-line1-from-fork""") response.mustcontain("""file2-line1-from-fork""") response.mustcontain("""file3-line1-from-fork""") + self.assertFalse("""file2""" in response.body) # new commit from parent + self.assertFalse("""line1-from-new-parent""" in response.body) finally: RepoModel().delete(r2_id) - RepoModel().delete(r1_id) + RepoModel().delete(r1_id) \ No newline at end of file diff --git a/rhodecode/tests/scripts/test_concurency.py b/rhodecode/tests/scripts/test_concurency.py --- a/rhodecode/tests/scripts/test_concurency.py +++ b/rhodecode/tests/scripts/test_concurency.py @@ -46,15 +46,15 @@ from rhodecode.lib.auth import get_crypt from rhodecode.tests import TESTS_TMP_PATH, NEW_HG_REPO, HG_REPO from rhodecode.config.environment import load_environment -rel_path = dn(dn(dn(os.path.abspath(__file__)))) -conf = appconfig('config:development.ini', relative_to=rel_path) +rel_path = dn(dn(dn(dn(os.path.abspath(__file__))))) +conf = appconfig('config:rc.ini', relative_to=rel_path) load_environment(conf.global_conf, conf.local_conf) add_cache(conf) USER = 'test_admin' PASS = 'test12' -HOST = 'hg.local' +HOST = 'rc.local' METHOD = 'pull' DEBUG = True log = logging.getLogger(__name__) @@ -130,10 +130,10 @@ def create_test_repo(force=True): if repo is None: print 'repo not found creating' - form_data = {'repo_name':HG_REPO, - 'repo_type':'hg', + form_data = {'repo_name': HG_REPO, + 'repo_type': 'hg', 'private':False, - 'clone_uri':'' } + 'clone_uri': '' } rm = RepoModel(sa) rm.base_path = '/home/hg' rm.create(form_data, user) @@ -158,7 +158,7 @@ def get_anonymous_access(): # TESTS #============================================================================== def test_clone_with_credentials(no_errors=False, repo=HG_REPO, method=METHOD, - seq=None): + seq=None, backend='hg'): cwd = path = jn(TESTS_TMP_PATH, repo) if seq == None: @@ -172,20 +172,23 @@ def test_clone_with_credentials(no_error raise clone_url = 'http://%(user)s:%(pass)s@%(host)s/%(cloned_repo)s' % \ - {'user':USER, - 'pass':PASS, - 'host':HOST, - 'cloned_repo':repo, } + {'user': USER, + 'pass': PASS, + 'host': HOST, + 'cloned_repo': repo, } dest = path + seq if method == 'pull': - stdout, stderr = Command(cwd).execute('hg', method, '--cwd', dest, clone_url) + stdout, stderr = Command(cwd).execute(backend, method, '--cwd', dest, clone_url) else: - stdout, stderr = Command(cwd).execute('hg', method, clone_url, dest) - + stdout, stderr = Command(cwd).execute(backend, method, clone_url, dest) + print stdout,'sdasdsadsa' if no_errors is False: - assert """adding file changes""" in stdout, 'no messages about cloning' - assert """abort""" not in stderr , 'got error from clone' + if backend == 'hg': + assert """adding file changes""" in stdout, 'no messages about cloning' + assert """abort""" not in stderr , 'got error from clone' + elif backend == 'git': + assert """Cloning into""" in stdout, 'no messages about cloning' if __name__ == '__main__': try: @@ -198,15 +201,20 @@ if __name__ == '__main__': except: pass + try: + backend = sys.argv[4] + except: + backend = 'hg' + if METHOD == 'pull': seq = _RandomNameSequence().next() test_clone_with_credentials(repo=sys.argv[1], method='clone', - seq=seq) + seq=seq, backend=backend) s = time.time() for i in range(1, int(sys.argv[2]) + 1): print 'take', i test_clone_with_credentials(repo=sys.argv[1], method=METHOD, - seq=seq) + seq=seq, backend=backend) print 'time taken %.3f' % (time.time() - s) except Exception, e: raise diff --git a/rhodecode/tests/vcs/test_inmemchangesets.py b/rhodecode/tests/vcs/test_inmemchangesets.py --- a/rhodecode/tests/vcs/test_inmemchangesets.py +++ b/rhodecode/tests/vcs/test_inmemchangesets.py @@ -44,6 +44,7 @@ class InMemoryChangesetTestMixin(object) FileNode('foobar2', content='Foo & bar, doubled!'), FileNode('foo bar with spaces', content=''), FileNode('foo/bar/baz', content='Inside'), + FileNode('foo/bar/file.bin', content='\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00;\x00\x03\x00\xfe\xff\t\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\xfe\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'), ] def test_add(self): diff --git a/setup.py b/setup.py --- a/setup.py +++ b/setup.py @@ -60,10 +60,10 @@ if sys.version_info < (2, 7): requirements.append("unittest2") if is_windows: - requirements.append("mercurial==2.3.1") + requirements.append("mercurial==2.3.2") else: requirements.append("py-bcrypt") - requirements.append("mercurial==2.3.1") + requirements.append("mercurial==2.3.2") dependency_links = [