From 1a8a39074e73a857f95f628ba0c26d820b0cee39 Mon Sep 17 00:00:00 2001 From: Michael Chirico Date: Sat, 18 Jul 2020 00:21:05 +0800 Subject: [PATCH] Translations update (#4610) --- R/data.table.R | 2 +- R/xts.R | 2 +- inst/po/en@quot/LC_MESSAGES/R-data.table.mo | Bin 89020 -> 91028 bytes inst/po/en@quot/LC_MESSAGES/data.table.mo | Bin 139310 -> 139702 bytes inst/po/zh_CN/LC_MESSAGES/R-data.table.mo | Bin 87135 -> 89247 bytes inst/po/zh_CN/LC_MESSAGES/data.table.mo | Bin 138485 -> 138861 bytes inst/tests/tests.Rraw | 4 +- po/R-data.table.pot | 59 +- po/R-zh_CN.po | 119 +- po/data.table.pot | 1130 +++++++++--------- po/zh_CN.po | 1189 ++++++++++--------- 11 files changed, 1304 insertions(+), 1201 deletions(-) diff --git a/R/data.table.R b/R/data.table.R index e91a47d86..e95420b6e 100644 --- a/R/data.table.R +++ b/R/data.table.R @@ -2925,7 +2925,7 @@ isReallyReal = function(x) { RHS = eval(stub[[3L]], x, enclos) if (is.list(RHS)) RHS = as.character(RHS) # fix for #961 if (length(RHS) != 1L && !operator %chin% c("%in%", "%chin%")){ - if (length(RHS) != nrow(x)) stop("RHS of ", operator, " is length ",length(RHS)," which is not 1 or nrow (",nrow(x),"). For robustness, no recycling is allowed (other than of length 1 RHS). Consider %in% instead.") + if (length(RHS) != nrow(x)) stop(gettextf("RHS of %s is length %d which is not 1 or nrow (%d). For robustness, no recycling is allowed (other than of length 1 RHS). Consider %%in%% instead.", operator, length(RHS), nrow(x), domain="R-data.table"), domain=NA) return(NULL) # DT[colA == colB] regular element-wise vector scan } if ( mode(x[[col]]) != mode(RHS) || # mode() so that doubleLHS/integerRHS and integerLHS/doubleRHS!isReallyReal are optimized (both sides mode 'numeric') diff --git a/R/xts.R b/R/xts.R index 81395cefc..bfb6f813a 100644 --- a/R/xts.R +++ b/R/xts.R @@ -7,7 +7,7 @@ as.data.table.xts = function(x, keep.rownames = TRUE, key=NULL, ...) { r = setDT(as.data.frame(x, row.names=NULL)) if (identical(keep.rownames, FALSE)) return(r[]) index_nm = if (is.character(keep.rownames)) keep.rownames else "index" - if (index_nm %chin% names(x)) stop(sprintf("Input xts object should not have '%s' column because it would result in duplicate column names. Rename '%s' column in xts or use `keep.rownames` to change the index col name.", index_nm, index_nm)) + if (index_nm %chin% names(x)) stop(gettextf("Input xts object should not have '%s' column because it would result in duplicate column names. Rename '%s' column in xts or use `keep.rownames` to change the index column name.", index_nm, index_nm, domain="R-data.table"), domain=NA) r[, c(index_nm) := zoo::index(x)] setcolorder(r, c(index_nm, setdiff(names(r), index_nm))) # save to end to allow for key=index_nm diff --git a/inst/po/en@quot/LC_MESSAGES/R-data.table.mo b/inst/po/en@quot/LC_MESSAGES/R-data.table.mo index 76d9bd3c920062171cb0e44495a9f7c5313a05bc..3f5d477edd3f3e64e839d2e3a02cf8e9d889874a 100644 GIT binary patch delta 15473 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 MABWxEn^%?nFHo?|-~a#s delta 13617 zcmb{1d3a6N-oWv-lOQ7zLWOW*$V7rfBtj%H#9VXDL&PB=5|SW>_E7WCl%}MHqOGB& zhW5~C(H5;Lt*J#TrAkdj&20_k{r>ja`grei|G4k--u3k7vwmyuvxhb8eRBHxSEY6q zmvWr(b6cb+EnSqVhK>A`D&?wF$J)}W)Zhk6g<~o<#`%_eu{8MuEQLlx0?S}C^gs_x z!Lrx|BXJPc!2%3c%AvMW$)lkJ>&uQ&+9_C>d<#~`{m2K@C9H&Hqm>$ub+7>6#6DQB z5rH$&3!PXMKf?-Gf`NDgYjS?&6Ql3E0S2+56CT2B?1Ig??NEFb<$|_jZ#;rcFf3Ln zIzgr3Y`WleY(pN%M(#=3QSQ75<8dD*qCt|#`BgF%dS6XNIq-C};c4uEkFg!LZ>rP? zeBJU1b|oJ{e~-qUC^rz1pwtZPjN9=zN)Hq?*EhNz7m$C24yp9!a^!-6|MIUraR%#CVVF)fq>FO^q4$omHtlC0fNJb0#KZu5zG|1S$ zi*mppP{!~wRzd%ky1hQy$rG)74bCFph6X0I(vvF@7n0ji+W$m1ypQhq7-deCX-)sj z34&Ye$&rNgmg<2n_!`p7Y7q{?qqr3trqBy`5g8q|m;sj_I*M7G(Y3Aai5$l5McN;s zT*$=sN=?GaI1&GHQ1PRZ%RtKxGf|e|Z0v|@P`d6mN|)B9QMPwSMoW!G8*V}7l{$*G z(2IVSJFSmF7>7&`)fdyS2=}4mAr)6Dd!AQn1MWjslFI30XBR_0;AN|Q|bnx6cf14{es#>!zq?XV zQ9Y4iSIaOIFCf!GmF>fP!d@7|`PFqQ za_6=B>N_8SrODsHxwsx}7}Jlt!545krlEB4W%R@QI2676EAMj@l4icz+E4%R)BkBQ`KP>y@S z(w3@MS3mTjeMu_)pHF2S4a^&5qaVxT7?dlYhK+G9N>}g3ig*uKq9;>Xx^_LvXin}&@jJ#q|x!4e#gyN2mi5Hnman?V>$ zdvLmbDGkK286P=L3rxUKmW~ZnTF`I>Bd}hUK0se= z;KCT9jQNStJUlRbjCKafP@P3Lyp1wMf1(Us-5lLxQJ78MA7zNY!HyW1%RaLHM^KS5 zT8w3IGlpTY-a-9hmv< z!UH%Br%ckT!;OjJ*-?146a5NdBUMO9@6lJo$kJ9x=k(*a1 zEIV*hJX+P~*bon+2O3lKgUk!%d`;0IAM8ivO+11#Fl(yzF3KHFe3^Z?&<*&Iyv%ex zCtTTC_V2|%k$4*AMBX#?&{RUEmC8n$tfz4)-op}HFpKdYKqYgwUKR&1nLKcgzVbns zNWKu6=;|mo#e})KM^#>+l^gO*^9?JGD*b{$48QLVqyDhez@6bCeq(Qp$ zAbR3W^u~uM%gg;0#ucaFAbO%_fu2;`UgcpzyXyiy1Z%JtdB8$F+jB63d@uT8#B2J2 zm4r9RGaOVnp6Xku?T-QE1F;lNz#8bl2waIS_$|sE9KkTG@;XZlTcRtj!g{zGWiA}W zd_H&&BH>tp#9N_~XMD9i6Jl;fnY)IB>6nPzGs=5l@&uu4Di3a}#^enh#mUNs7fij00zpYKi6XYF{X`pJoqbKP$OyKRr2DWA9zuV- zyPp0pMa6T2?mAzTEANHjI3A@3-bR_tUt$*C#z;)%EDXC^fYKw88}(#vjx)&np-jqO zPZu(l?m6iT-a#LpK_p!{yitw_yu>fGL=;S^qIP9lgmHpv;jsQ4aha#-jHY zZ7XympNvsB73D^@q9>lTJm;Vy%k4S_VaNyi+iE+M6TOGs@godC&kyx%u7lF0(ddCq z(FI$h7q-P_*aJ)BLY#wdpj=2zr~aIyHI)H0bha8cVtw*rlsRz;<-)pb)$2Y7lgJlh zH9Us3@CHU;g>CvRnv9H!>W2opvnB_jC$`5C$m(&ZZB**fa0XvMuVOt(hF}Q!Y@Ci; z(1#<%Y}a2(TYjwX^j&Pg_O0lH7qBtj!FUY+M6Vh{kGPgFPudM%5R4UVO6`5Dc zb%$Q(n^7j`7wCrvP`dgwN>^V(8G_$X=FV*lL$96sffj=aw>oVFS*u z2JO;avH;6*hb3sE{pzQ>2fRPiHo_XT_eZ(o$=DG$qFm?$tb^)vy??Of^C&$s4rQ`# z#3pzV9sX2oyY(10#!2LT(S|258~?=GIDC(u_484>dJjrZ9Klui9m)md?WIQy-t{P5 z?fgPtz!^*bFZHDC_@%Y}yVJn_st+b%Ka>+J$FjH{qwr&_gV#_F?6*(9b`vm~{6ou& zC_@_Xm7cUw7);(3D`7s4$5+2{=pT>D?AJdYEk>D)H?bTBey#s-h`7XKG`6J4YN1os4-+T(c)m{BF%ANaj z)aKY0WirjOJcusj!$EPsp_ z2EKzeF!MV-C+6dF@{N}5zt^9;gmPk^j=}e=yy}l! zl&t^yROorN1Lc6bPE8rmV z&d5VjZN|+w^d}xroL^Nut-GW%%8y4=aSrV_&*;AgCjP81@GqQ1`vaVa*HyULqHd@<{V4S8df>4 z{|bH)UCCShs-K)~F`E1?hGOUi{Y30)ISKt~UxNnjxIq8UqOyyIUD*1f-of>feot4y z0NTSbM7Cofj>57y51ZgpOu_Fl4y#_)ukRj~McA13Q<#tCuju{fUUA42aLxOGD%OOEMM1a`UH(oR>4TDg$q!6WGl*rT}IhI=(?V? z-5gYg(J&W#;w@~4ZGPA5b|Kay{~7zE_YJ*DGBAex3Cf+v+|(zSjHSu9;auE_Hf(cC zf1gOl>EvV47ab3%_)+n?t>5?6@fGq}CP+xV(Eyr@dX@%a)J9X0?QhP`IV{}Rwti@vTWC4xa@~D@D8@Z3ND8EcI=G~xx&#@ zWVT+$_UP@Z56}yP$tR#3Xcfv39JKUsGt6(vZBQ;`F3RV(qx^Q{TFNkALXFB8Y9Q^i zEiYkt@)UP|e{rMI+ubmi$pDnGTZnSNH!vIbVSjAwp?jhb>yw|wYUt}}m|v|TP(Bxf zvOUep3$1)N2GV{Ddt*8I{l!it-ODg%@gbDu=i_ad&-7l{iF_o=*nW&laS!J52phmR z()r{^%NpjpU?AV$%8=)yKTg4BxEPz`cNm6#zVr|_b5N0WI11&?U&5Dg2Fjhgl{d^E zkMeLDdAOfpKD#$z1uo!sl%aE}Xqf+_AsFSsv>N5aN3aF@`0Fn3f-+f$p!B?B7L_Sf z=3DwyGR#M70XC%lP4vLSC|&v^%4G7WY?wbfh2a|V6}S*v@x@O(fpUlGRSfeNlO@Ok zQTGG%oVZujkU!BJs$Dh1{9EoY%84GMjE#GsVLlg9u`>B#T#J|R5*Ac9%s*Vl)iBJT zRKLe$+Cyym!ZR?Dd>KklmS9ut5Ttu#7ADC0KR_jk4emAd@@R+h!2*=oehB-ZcP%}( z!%&uE7RoZ*fuU&BHq5{6!qJ;N24%=v;P(-^X4b@ZHi5^SiqIKS!?qPy}24k8~K zs(auI%pecs2OB?}g>s^$coX*`$5UIwwI89Z|Ls@`Pht%`jj}5KMpmV&Th}muJBmby z%*OFlWO==XuJ{;b>|E;Uxe$%=<53IboN7m;Vg7h@p}t;z8ygtrm(&9&L-04sBu;E- zm|wR)Md{JwC>Q7-WtcCoMp3MPnXMyekTG72p129+!al}Icpl5*13ZTw(YhzDp-fW$ zM*0EO2IV+8=!0{y1-^mOQza-5w9_cZb&FyBkEBvHM$hh9_z8J2%B0C@tPgY!1ITaU zZ1jp{{p0H>PdxWHJtw+j4EZW7k0(&(!ey+8_bfe|=o_fvpkiY~TTH9W2Fx@)K674ju0lWAIWLuKMjlrFtv>6vJlza0f(4(+cY-(gg#B;8YY z(L>gMabVevHOV_- zJ#YS97Su;vUNfD9`4ow)&+Ji*hI9P{wkJKGWmX_!F)nt74o{B z^c-l72Kj9qj(1VIw*T{b`K&`3+aoC7jQ&QMBRx7B=2yCjIGy}$^x;4uT@3U8kj8Y? zH@dVd>tB}7S{memaS|Kj1&qgP-Si~ug>A?OU^uQpnF~iy9yq_C6Yry}^Nrp0=k}n? zmHj9^U4qin7f^=avV)3Do|_nk9zFCEEgI$JW5<^G4$22E;V8U;a^VAd8s;A?1z3SQ zJdHNmZ@r*JM#B7u~u@~jSR3E(z zo1+Y251fSgSR3!6JVC4U)%hHhS-%OTr+-Cy!l7kM@U)C_9yrb9z>ZZz8rZ4E~8C~yfwLQm27784)rl z{3?!y+UzLZB@c|cAkD>?bQBfzL~k^Q)0Gyh1FMgfgA_YgmPyzQ6_KQar5>NnMuRMyp-&2T~`Pm+CL7 z-t1eM`c~>Z0M*;XeCoSVo-rMWj&gpPJnM+3MP~6VlA6S7g7=JB9`Nr_>TeOpbkjfo zrqRaqQH_Xm#A}3XxS!Czi25`u^=tSM$|G|#^?QUAd0t4lLVQNsIXo>5&lGw7OIgVF(!>+u0P(aGUJG?M=YaVz zu{In+`4aI3#y+$21nW~3X^EOt!+UhHFyV^kKm7K{EK=tA*CuC>k;16J&2~Xx5E?G_8!!wOw^eFlToVW z_{6G_CUgp@oyV%2wI zIBgz$AfCEmwZDmlw5JhutqUke+YE9kQA88s1=^-c9i`MJKA>Jja?Wp-y_R!nJVO0B z%)=qX`?4dY5iyylZ{^iF=}hv`R$fBAAN5PbR$>q#ujM~bN^{~3;t%3^Ldw(gtJm4- zFb$bRL+btwYPKKvH#_lbk#A6jk4EuY7hY#VIlHK8da_?r@_{n` z^+;k#HsGUYcFHH8O`NCAi-R4)RYVDGiG&;V^0dE-PfG;tek7X-gKbBjZb0WV^`})g zmw)d6X_K}#2YTOXT7u)qUq(L;`W!LM+QuJ9Y8CO2$RJv>Z5#F>r2I;(pxy}s+4i*5 zq8>v;%K0C$LqluJdsya~9hb7L8o3jb*fx#`q}~;!{7LjBb`U=hQm(SSs;;WN)OS#(a)Xn>kvQC)HhKs~@+0!aEwt3PPPd=KcPhK8dSljDZpY>v&muU01+9PTI z*Up{Cw$It`Y3V7u#E>;&=bKMk@q)EeHSACRHIYUAIx&#?8H^z=QGZ&p$)&tQ{7(1~ zafFoj*mjrrov2A1B{rE`xWw)xQcmMG?1UGv4sntgVQr_XT3B^I%TXB4#b>ZB(dvou zw6!5BlFy~RJoRN5XKkly{#E=L{w7_NKPto_zdUqVPJOE{=^CEhk$m`|L;93nf7@6tHi+8}&q)i2^nwtEw< z)Z3$!+qfRLqd!qBjnCX+JKE+EV`v_OQaWHR{z#mq9x8wPUL$cOxsFooL>T#(L}L#4 zH_j)d)UsS}I4?GcE#rK2WVYcP9RG?(#nhbP_Ph{VYSvI&NZQz(9D7z?NYRmjMu78b z%SSFnn<^PyyfU)t*fO$m^X#cZ3wNBY=6sy8$8a8Od&4N~ao)G^#_TNTnez_A*`%YJ zi?deed^gwB9DCv8Ypn{Gb#GEQphxw>!Pm2$>v}Bla<&JR_@pwyKO@DSQ{U=jm^!-8gA>>JRv%=QDg)2`qER!*=@tJGc&Wt+l$_+ zZS-~qJ&re=+4dDKr82UH+Vcy`rMI$bJ=5znNJvTU*uC{&^RuZ#hjI(-V;hy4H8wRf zbAm0EE6B>uOSk9P(y}whj>>W_OHcJKw2!S@G_strw=ij(XQA7;4+<}iUsT+ug3-=! z4xD(%DE6*wOmT6>IktPa=GwZwHm_fGxt;N;IazYSqwKl4sl)BI-1O|RnL}+Hzi`0w z0p5|ecEfBLdA6b1_T0j{mjk^#!~ZGHKJ)Io3=hc|W(&=WMqi6+U&!IWu#@;v(hGTOSbGR&X#8%UC)-AZT6noP1$mLpFzuHJIa+gY${r%Ta_N`_bQ z*?z{ShV#L0@6u%(Hi>8$6%pOg)-XE0L6o!N{!n-4!z0(c0?heyZpsp~m(NXk!1bd=|}e{kIdyIr#b(Z)fEPW!?U(ljowVyE!Mg*h1g*7G7NbKluykwg1l( zsCb!+vB;c3#mu0YMo~>aV~Nb25La{Bc>kAXOktmSor+ro8(+ALluP~(CXNiy|99#X hGj$%+_&3w0_-+Ry+=qG7!6+Wn*LczRXZCC@^FNwpVIKeh diff --git a/inst/po/en@quot/LC_MESSAGES/data.table.mo b/inst/po/en@quot/LC_MESSAGES/data.table.mo index f88de8edf3658ac0de0066f31f1d52e78ebd041d..c89d3bf1dec90c2ef526210be91a9d37b71b8955 100644 GIT binary patch delta 20689 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 r{Yx{K(`%1wGXE)VfV1c}X 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%0DeK7jDswsOKO?re5{7%3)4R^nDg{c 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 delta 13621 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 diff --git a/inst/po/zh_CN/LC_MESSAGES/data.table.mo b/inst/po/zh_CN/LC_MESSAGES/data.table.mo index c5d63fb7d333e36e882685abafccd4c609d72aa0..d8636f5bbc844d58d252de5f86f2b367fce443ad 100644 GIT binary patch delta 20536 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 t^EV*7i} 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 URxIGh713pxv-hT4;d9OWKQjkYZU6uP delta 20306 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 bhQIPDHJ;f63#5FP-!CFpO1DyerR@I)%1|;3 diff --git a/inst/tests/tests.Rraw b/inst/tests/tests.Rraw index 97af3c720..b990d96b2 100644 --- a/inst/tests/tests.Rraw +++ b/inst/tests/tests.Rraw @@ -16875,7 +16875,7 @@ if (test_xts) { test(2133.1, colnames(DT), c("DATE", "VALUE")) test(2133.2, key(DT), "DATE") test(2133.3, as.data.table(xts, keep.rownames = "VALUE"), - error = "Input xts object should not have 'VALUE' column because it would result in duplicate column names. Rename 'VALUE' column in xts or use `keep.rownames` to change the index col name.") + error = "Input xts object should not have 'VALUE' column because it would result in duplicate column names. Rename 'VALUE' column in xts or use `keep.rownames` to change the index column name.") test(2133.4, as.data.table(xts, keep.rownames = character()), error = "keep.rownames must be length 1") test(2133.5, as.data.table(xts, keep.rownames = NA_character_), @@ -16979,7 +16979,7 @@ if (.Platform$OS.type=="windows") local({ test(2143, rbind(DT,list(c=4L,a=7L)), error="2.*1.*c.*1") }) # test back to English (the argument order is back to 1,c,2,1) -test(2144, rbind(DT,list(c=4L,a=7L)), error="Column 1 ['c'] of item 2 is missing in item 1") +test(2144, rbind(DT,list(c=4L,a=7L)), error="Column 1 ['c'] of item 2 is missing in item 1") # Attempting to join on character(0) shouldn't crash R A = data.table(A='a') diff --git a/po/R-data.table.pot b/po/R-data.table.pot index 9e93031c9..bdb0d1e0f 100644 --- a/po/R-data.table.pot +++ b/po/R-data.table.pot @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: data.table 1.12.9\n" -"POT-Creation-Date: 2019-12-31 13:02\n" +"POT-Creation-Date: 2020-07-17 14:38\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -304,6 +304,9 @@ msgstr "" msgid "not-join '!' prefix is present on i but nomatch is provided. Please remove nomatch." msgstr "" +msgid "Operator := detected in i, the first argument inside DT[...], but is only valid in the second argument, j. Most often, this happens when forgetting the first comma (e.g. DT[newvar := 5] instead of DT[ , new_var := 5]). Please double-check the syntax. Run traceback(), and debugger() to get a line number." +msgstr "" + msgid "is not found in calling scope" msgstr "" @@ -445,6 +448,12 @@ msgstr "" msgid "Some items of .SDcols are not column names:" msgstr "" +msgid "'(m)get' found in j. ansvars being set to all columns. Use .SDcols or a single j=eval(macro) instead. Both will detect the columns used which is important for efficiency.\nOld ansvars: %s" +msgstr "" + +msgid "New ansvars: %s" +msgstr "" + msgid "This j doesn't use .SD but .SDcols has been supplied. Ignoring .SDcols. See ?data.table." msgstr "" @@ -805,16 +814,7 @@ msgstr "" msgid "x is a list, 'cols' cannot be 0-length." msgstr "" -msgid "RHS of" -msgstr "" - -msgid "is length" -msgstr "" - -msgid "which is not 1 or nrow (" -msgstr "" - -msgid "). For robustness, no recycling is allowed (other than of length 1 RHS). Consider %in% instead." +msgid "RHS of %s is length %d which is not 1 or nrow (%d). For robustness, no recycling is allowed (other than of length 1 RHS). Consider %%in%% instead." msgstr "" msgid "Internal error in .isFastSubsettable. Please report to data.table developers" @@ -1345,7 +1345,7 @@ msgstr "" msgid "Supplied both `by` and `by.x/by.y`. `by` argument will be ignored." msgstr "" -msgid "A non-empty vector of column names are required for `by.x` and `by.y`." +msgid "A non-empty vector of column names is required for `by.x` and `by.y`." msgstr "" msgid "Elements listed in `by.x` must be valid column names in x." @@ -1384,13 +1384,25 @@ msgstr "" msgid "**********\nThis development version of data.table was built more than 4 weeks ago. Please update: data.table::update.dev.pkg()\n**********" msgstr "" -msgid "**********\nThis installation of data.table has not detected OpenMP support. It should still work but in single-threaded mode." +msgid "**********" +msgstr "" + +msgid "This installation of data.table has not detected OpenMP support. It should still work but in single-threaded mode." +msgstr "" + +msgid "sysname" +msgstr "" + +msgid "Darwin" +msgstr "" + +msgid "This is a Mac. Please read https://mac.r-project.org/openmp/. Please engage with Apple and ask them for support. Check r-datatable.com for updates, and our Mac instructions here: https://github.com/Rdatatable/data.table/wiki/Installation. After several years of many reports of installation problems on Mac, it's time to gingerly point out that there have been no similar problems on Windows or Linux." msgstr "" -msgid "If this is a Mac, please ensure you are using R>=3.4.0 and have followed our Mac instructions here: https://github.com/Rdatatable/data.table/wiki/Installation." +msgid "This is" msgstr "" -msgid "This warning message should not occur on Windows or Linux. If it does, please file a GitHub issue.\n**********" +msgid ". This warning should not normally occur on Windows or Linux where OpenMP is turned on by data.table's configure script by passing -fopenmp to the compiler. If you see this warning on Windows or Linux, please file a GitHub issue." msgstr "" msgid "The option 'datatable.nomatch' is being used and is not set to the default NA. This option is still honored for now but will be deprecated in future. Please see NEWS for 1.12.4 for detailed information and motivation. To specify inner join, please specify `nomatch=NULL` explicitly in your calls rather than changing the default using this option." @@ -1423,6 +1435,9 @@ msgstr "" msgid "Option 'datatable.old.bywithoutby' has been removed as warned for 2 years. It is now ignored. Please use by=.EACHI instead and stop using this option." msgstr "" +msgid "Option 'datatable.old.unique.by.key' has been removed as warned for 4 years. It is now ignored. Please use by=key(DT) instead and stop using this option." +msgstr "" + msgid "Unexpected base R behaviour: list(x) has copied x" msgstr "" @@ -1507,9 +1522,6 @@ msgstr "" msgid "' exists but is invalid" msgstr "" -msgid "Use 'if (length(o <- forderv(DT,by))) ...' for efficiency in one step, so you have o as well if not sorted." -msgstr "" - msgid "x is vector but 'by' is supplied" msgstr "" @@ -1609,9 +1621,6 @@ msgstr "" msgid "None of the datasets should contain a column named '.seqn'" msgstr "" -msgid "'target' and 'current' must both be data.tables" -msgstr "" - msgid "Internal error: ncol(current)==ncol(target) was checked above" msgstr "" @@ -1732,7 +1741,13 @@ msgstr "" msgid "not found: [" msgstr "" -msgid "Input xts object should not have 'index' column because it would result in duplicate column names. Rename 'index' column in xts or use `keep.rownames=FALSE` and add index manually as another column." +msgid "keep.rownames must be length 1" +msgstr "" + +msgid "keep.rownames must not be NA" +msgstr "" + +msgid "Input xts object should not have '%s' column because it would result in duplicate column names. Rename '%s' column in xts or use `keep.rownames` to change the index column name." msgstr "" msgid "data.table must have a time based column in first position, use `setcolorder` function to change the order, or see ?timeBased for supported types" diff --git a/po/R-zh_CN.po b/po/R-zh_CN.po index 9411e50fd..a73b8e4a1 100644 --- a/po/R-zh_CN.po +++ b/po/R-zh_CN.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: data.table 1.12.5\n" -"POT-Creation-Date: 2019-12-31 13:02\n" +"POT-Creation-Date: 2020-07-17 14:38\n" "PO-Revision-Date: 2019-11-16 18:37+0800\n" "Last-Translator: Xianying Tan \n" "Language-Team: Mandarin\n" @@ -387,6 +387,17 @@ msgid "" msgstr "" "not-join '!' 前缀在 i 中存在,但是 nomatch 也被提供了。需要移除nomatch。" +msgid "" +"Operator := detected in i, the first argument inside DT[...], but is only " +"valid in the second argument, j. Most often, this happens when forgetting " +"the first comma (e.g. DT[newvar := 5] instead of DT[ , new_var := 5]). " +"Please double-check the syntax. Run traceback(), and debugger() to get a " +"line number." +msgstr "在 i, 即 DT[...] 中的第一个参数,中检测出操作符 := ,但该操作符仅在 j," +"即 DT[...] 中的第二个参数中使用才有效。通常,该错误发生在忘记" +"添加第一个逗号时 (如错误地将 [DT , new_var := 5] 写作 DT[newvar := 5])。" +"请再次检查语法是否正确。运行 trackback(),和 debugger() 来获取发生错误的行号。" + msgid "is not found in calling scope" msgstr "不存在调用环境里" @@ -594,6 +605,18 @@ msgstr ".SDcols 应为列数或是列名" msgid "Some items of .SDcols are not column names:" msgstr ".SDcols 中的部份项目不是列名:" +msgid "" +"'(m)get' found in j. ansvars being set to all columns. Use .SDcols or a " +"single j=eval(macro) instead. Both will detect the columns used which is " +"important for efficiency.\n" +"Old ansvars: %s" +msgstr "在 j 中检测出 '(m)get'。ansvars 将被设为所以列。请使用 .SDcols 或" +"j=eval(macro) 来代替。二者均可检测出实际参与运算的列,这对提高运行效率非常重要。\n" +"旧的 ansvars:%s" + +msgid "New ansvars: %s" +msgstr "新的 ansvars: %s" + msgid "" "This j doesn't use .SD but .SDcols has been supplied. Ignoring .SDcols. See ?" "data.table." @@ -1091,21 +1114,12 @@ msgstr "x 是单个向量,非空的 'cols' 没有意义。" msgid "x is a list, 'cols' cannot be 0-length." msgstr "x 是一个列表(list),'cols' 长度不能为0。" -msgid "RHS of" -msgstr "右手侧(RHS)" - -msgid "is length" -msgstr "长度为" - -msgid "which is not 1 or nrow (" -msgstr "其非 1 或 总行数 nrow (" - msgid "" -"). For robustness, no recycling is allowed (other than of length 1 RHS). " -"Consider %in% instead." +"RHS of %s is length %d which is not 1 or nrow (%d). For robustness, no " +"recycling is allowed (other than of length 1 RHS). Consider %%in%% instead." msgstr "" -")。考虑到程序的稳健性,只有在右侧元素长度为 1 的情况下,我们才会对之进行循" -"环。考虑改用 %in% 。" +"%s 的右手侧 (RHS) 长度为 %d, 其非 1 或 总行数 nrow (%d)。考虑到程序的稳健性," +"只有在右侧元素长度为 1 的情况下,我们才会对之进行循环。考虑改用 %%in%% 。" msgid "" "Internal error in .isFastSubsettable. Please report to data.table developers" @@ -1838,7 +1852,7 @@ msgstr "`by.x`和`by.y`必须是相同的长度。" msgid "Supplied both `by` and `by.x/by.y`. `by` argument will be ignored." msgstr "参数`by`和`by.x/by.y`都提供了值。参数`by`的值会被忽略。" -msgid "A non-empty vector of column names are required for `by.x` and `by.y`." +msgid "A non-empty vector of column names is required for `by.x` and `by.y`." msgstr "`by.x`和`by.y`必须是非空的列名。" msgid "Elements listed in `by.x` must be valid column names in x." @@ -1896,29 +1910,47 @@ msgstr "" "table::update.dev.pkg()\n" "**********" +msgid "**********" +msgstr "**********" + msgid "" -"**********\n" "This installation of data.table has not detected OpenMP support. It should " "still work but in single-threaded mode." msgstr "" -"**********\n" "data.table的安装未检测到OpenMP支持。在单线程模式下应该仍能运行" +msgid "sysname" +msgstr "sysname" + +msgid "Darwin" +msgstr "Darwin" + msgid "" -"If this is a Mac, please ensure you are using R>=3.4.0 and have followed our " -"Mac instructions here: https://github.com/Rdatatable/data.table/wiki/" -"Installation." +"This is a Mac. Please read https://mac.r-project.org/openmp/. Please engage " +"with Apple and ask them for support. Check r-datatable.com for updates, and " +"our Mac instructions here: https://github.com/Rdatatable/data.table/wiki/" +"Installation. After several years of many reports of installation problems " +"on Mac, it's time to gingerly point out that there have been no similar " +"problems on Windows or Linux." msgstr "" -"如果是Mac,请确保您使用的R版本>=3.4.0,同时遵循了我们Mac上的安装说明:" -"https://github.com/Rdatatable/data.table/wiki/Installation。" +"此设备为 Mac。请阅读 https://mac.r-project.org/openmp/。请" +"与 Apple 公司联系以获取支持。查看 r-datatable.com 以获取更新,并" +"参阅我们的 Mac 设备说明:https://github.com/Rdatatable/data.table/wiki/Installation" +"在 Mac 上出现相关安装问题的报告已数年之久," +"需要指出的是在 Windows 或 Linux 平台上一般不存在类似问题。" + +msgid "This is" +msgstr "这是" msgid "" -"This warning message should not occur on Windows or Linux. If it does, " -"please file a GitHub issue.\n" -"**********" +". This warning should not normally occur on Windows or Linux where OpenMP is " +"turned on by data.table's configure script by passing -fopenmp to the " +"compiler. If you see this warning on Windows or Linux, please file a GitHub " +"issue." msgstr "" -"在Windows或Linux上不应出现此警告消息。如果有,请提交给GitHub issue。\n" -"**********" +"。此警告一般不应出现在 Windows 或 Linux 平台中,因为" +"data.table 的 configure 脚本中已通过向编译器传递 -fopenmp 参数启用了 OpenMP。" +"如果你在 Windows 或 Linux 平台中发现此警告,请在 GitHub 中提交 issue。" msgid "" "The option 'datatable.nomatch' is being used and is not set to the default " @@ -1977,6 +2009,13 @@ msgstr "" "选项'datatable.old.bywithoutby'已经被移除,警告了2年。它现在被忽略。 请改用" "by = .EACHI,然后停止使用这个选项。" +msgid "" +"Option 'datatable.old.unique.by.key' has been removed as warned for 4 years. " +"It is now ignored. Please use by=key(DT) instead and stop using this option." +msgstr "" +"选项'datatable.old.bywithoutby'已经被移除,警告了2年。它现在被忽略。 请改用" +"by = .EACHI,然后停止使用这个选项。" + msgid "Unexpected base R behaviour: list(x) has copied x" msgstr "意外的base R行为:list(x)已经复制了x" @@ -2089,13 +2128,6 @@ msgstr "内部错误:索引" msgid "' exists but is invalid" msgstr "存在但无效" -msgid "" -"Use 'if (length(o <- forderv(DT,by))) ...' for efficiency in one step, so " -"you have o as well if not sorted." -msgstr "" -"请使用'if (length(o <- forderv(DT,by))) ...' , 以便在一步中拥有较好的效率,同" -"时如果你还未排序,你也获得了变量o" - msgid "x is vector but 'by' is supplied" msgstr "x是一个向量, 但是参数'by'被提供" @@ -2216,9 +2248,6 @@ msgstr "' 然而 y 中对应的项是:'" msgid "None of the datasets should contain a column named '.seqn'" msgstr "所有的数据集都不应该包含名为 '.seqn' 的列" -msgid "'target' and 'current' must both be data.tables" -msgstr "'target' 和 'current' 都必须是 data.table" - msgid "Internal error: ncol(current)==ncol(target) was checked above" msgstr "内部错误:ncol(current)==ncol(target) 之前已经检查" @@ -2363,13 +2392,19 @@ msgstr "Pattern" msgid "not found: [" msgstr "未找到: [" +msgid "keep.rownames must be length 1" +msgstr "keep.rownames 的长度必须为 1" + +msgid "keep.rownames must not be NA" +msgstr "keep.rownames 不可为 NA" + msgid "" -"Input xts object should not have 'index' column because it would result in " -"duplicate column names. Rename 'index' column in xts or use `keep." -"rownames=FALSE` and add index manually as another column." +"Input xts object should not have '%s' column because it would result in " +"duplicate column names. Rename '%s' column in xts or use `keep.rownames` to " +"change the index column name." msgstr "" -"输入的xts对象不能含有'index'列,因这会导致出现重复的列名。请尝试重新命名xts中" -"的'index'列或者使用`keep.rownames=FALSE`并手动添加index为另外的列" +"输入的xts对象不能含有'%s'列,因这会导致出现重复的列名。请尝试重新命名xts中" +"的'%s'列或者使用`keep.rownames`并手动添加index为另外的列" msgid "" "data.table must have a time based column in first position, use " diff --git a/po/data.table.pot b/po/data.table.pot index a826bab88..78a6a2bee 100644 --- a/po/data.table.pot +++ b/po/data.table.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: data.table 1.12.9\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-12-30 01:24+0800\n" +"POT-Creation-Date: 2020-07-17 14:38+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -47,41 +47,41 @@ msgstr "" msgid "Internal error: .internal.selfref tag isn't NULL or a character vector" msgstr "" -#: assign.c:168 +#: assign.c:180 msgid "Internal error: length(names)>0 but =0 and not NA." msgstr "" -#: assign.c:239 fsort.c:109 +#: assign.c:251 fsort.c:109 msgid "verbose must be TRUE or FALSE" msgstr "" -#: assign.c:287 +#: assign.c:299 msgid "assign has been passed a NULL dt" msgstr "" -#: assign.c:288 +#: assign.c:300 msgid "dt passed to assign isn't type VECSXP" msgstr "" -#: assign.c:290 +#: assign.c:302 msgid "" ".SD is locked. Updating .SD by reference using := or set are reserved for " "future use. Use := in j directly. Or use copy(.SD) as a (slow) last resort, " "until shallow() is exported." msgstr "" -#: assign.c:298 +#: assign.c:310 msgid "Internal error: dt passed to Cassign is not a data.table or data.frame" msgstr "" -#: assign.c:302 +#: assign.c:314 msgid "dt passed to assign has no names" msgstr "" -#: assign.c:304 +#: assign.c:316 #, c-format msgid "Internal error in assign: length of names (%d) is not length of dt (%d)" msgstr "" -#: assign.c:306 +#: assign.c:318 msgid "" "data.table is NULL; malformed. A null data.table should be an empty list. " "typeof() should always return 'list' for data.table." msgstr "" -#: assign.c:315 +#: assign.c:327 #, c-format msgid "Assigning to all %d rows\n" msgstr "" -#: assign.c:320 +#: assign.c:332 msgid "" "Coerced i from numeric to integer. Please pass integer for efficiency; e.g., " "2L rather than 2" msgstr "" -#: assign.c:323 +#: assign.c:335 #, c-format msgid "" "i is type '%s'. Must be integer, or numeric is coerced with warning. If i is " @@ -179,68 +179,68 @@ msgid "" "loop if possible for efficiency." msgstr "" -#: assign.c:329 +#: assign.c:341 #, c-format msgid "i[%d] is %d which is out of range [1,nrow=%d]." msgstr "" -#: assign.c:332 +#: assign.c:344 #, c-format msgid "Assigning to %d row subset of %d rows\n" msgstr "" -#: assign.c:340 +#: assign.c:352 #, c-format msgid "Added %d new column%s initialized with all-NA\n" msgstr "" -#: assign.c:345 +#: assign.c:357 msgid "length(LHS)==0; no columns to delete or assign RHS to." msgstr "" -#: assign.c:359 +#: assign.c:371 msgid "" "set() on a data.frame is for changing existing columns, not adding new ones. " "Please use a data.table for that. data.table's are over-allocated and don't " "shallow copy." msgstr "" -#: assign.c:370 +#: assign.c:382 msgid "" "Coerced j from numeric to integer. Please pass integer for efficiency; e.g., " "2L rather than 2" msgstr "" -#: assign.c:373 +#: assign.c:385 #, c-format msgid "" "j is type '%s'. Must be integer, character, or numeric is coerced with " "warning." msgstr "" -#: assign.c:375 +#: assign.c:387 msgid "" "Can't assign to the same column twice in the same query (duplicates " "detected)." msgstr "" -#: assign.c:376 +#: assign.c:388 msgid "newcolnames is supplied but isn't a character vector" msgstr "" -#: assign.c:378 +#: assign.c:390 #, c-format msgid "RHS_list_of_columns == %s\n" msgstr "" -#: assign.c:383 +#: assign.c:395 #, c-format msgid "" "RHS_list_of_columns revised to true because RHS list has 1 item which is " "NULL, or whose length %d is either 1 or targetlen (%d). Please unwrap RHS.\n" msgstr "" -#: assign.c:388 +#: assign.c:400 #, c-format msgid "" "Supplied %d columns to be assigned an empty list (which may be an empty data." @@ -248,18 +248,18 @@ msgid "" "use NULL instead. To add multiple empty list columns, use list(list())." msgstr "" -#: assign.c:393 +#: assign.c:405 #, c-format msgid "Recycling single RHS list item across %d columns. Please unwrap RHS.\n" msgstr "" -#: assign.c:395 +#: assign.c:407 #, c-format msgid "" "Supplied %d columns to be assigned %d items. Please see NEWS for v1.12.2." msgstr "" -#: assign.c:403 +#: assign.c:415 #, c-format msgid "" "Item %d of column numbers in j is %d which is outside range [1,ncol=%d]. " @@ -267,18 +267,18 @@ msgid "" "Please use a data.table for that." msgstr "" -#: assign.c:404 +#: assign.c:416 #, c-format msgid "" "Item %d of column numbers in j is %d which is outside range [1,ncol=%d]. Use " "column names instead in j to add new columns." msgstr "" -#: assign.c:409 +#: assign.c:421 msgid "When deleting columns, i should not be provided" msgstr "" -#: assign.c:415 +#: assign.c:427 #, c-format msgid "" "RHS of assignment to existing column '%s' is zero length but not NULL. If " @@ -289,30 +289,30 @@ msgid "" "new column." msgstr "" -#: assign.c:420 +#: assign.c:432 #, c-format msgid "" "Internal error in assign.c: length(newcolnames)=%d, length(names)=%d, coln=%d" msgstr "" -#: assign.c:422 +#: assign.c:434 #, c-format msgid "Column '%s' does not exist to remove" msgstr "" -#: assign.c:428 +#: assign.c:440 #, c-format msgid "%d column matrix RHS of := will be treated as one vector" msgstr "" -#: assign.c:432 +#: assign.c:444 #, c-format msgid "" "Can't assign to column '%s' (type 'factor') a value of type '%s' (not " "character, factor, integer or numeric)" msgstr "" -#: assign.c:437 +#: assign.c:449 #, c-format msgid "" "Supplied %d items to be assigned to %d items of column '%s'. If you wish to " @@ -320,7 +320,7 @@ msgid "" "your code." msgstr "" -#: assign.c:447 +#: assign.c:459 msgid "" "This data.table has either been loaded from disk (e.g. using readRDS()/" "load()) or constructed manually (e.g. using structure()). Please run setDT() " @@ -328,14 +328,14 @@ msgid "" "assigning by reference to it." msgstr "" -#: assign.c:448 +#: assign.c:460 #, c-format msgid "" "Internal error: oldtncol(%d) < oldncol(%d). Please report to data.table " "issue tracker, including result of sessionInfo()." msgstr "" -#: assign.c:450 +#: assign.c:462 #, c-format msgid "" "truelength (%d) is greater than 10,000 items over-allocated (length = %d). " @@ -344,241 +344,234 @@ msgid "" "sessionInfo()." msgstr "" -#: assign.c:452 +#: assign.c:464 #, c-format msgid "" "Internal error: DT passed to assign has not been allocated enough column " "slots. l=%d, tl=%d, adding %d" msgstr "" -#: assign.c:454 +#: assign.c:466 msgid "" "It appears that at some earlier point, names of this data.table have been " "reassigned. Please ensure to use setnames() rather than names<- or " "colnames<-. Otherwise, please report to data.table issue tracker." msgstr "" -#: assign.c:458 +#: assign.c:470 #, c-format msgid "Internal error: selfrefnames is ok but tl names [%d] != tl [%d]" msgstr "" -#: assign.c:469 +#: assign.c:481 msgid "" "Internal error: earlier error 'When deleting columns, i should not be " "provided' did not happen." msgstr "" -#: assign.c:480 +#: assign.c:492 #, c-format msgid "" "RHS for item %d has been duplicated because NAMED==%d MAYBE_SHARED==%d, but " "then is being plonked. length(values)==%d; length(cols)==%d)\n" msgstr "" -#: assign.c:485 +#: assign.c:497 #, c-format msgid "Direct plonk of unnamed RHS, no copy. NAMED==%d, MAYBE_SHARED==%d\n" msgstr "" -#: assign.c:554 +#: assign.c:566 #, c-format msgid "" "Dropping index '%s' as it doesn't have '__' at the beginning of its name. It " "was very likely created by v1.9.4 of data.table.\n" msgstr "" -#: assign.c:562 +#: assign.c:574 msgid "Internal error: index name ends with trailing __" msgstr "" -#: assign.c:567 +#: assign.c:579 msgid "Internal error: Couldn't allocate memory for s4." msgstr "" -#: assign.c:578 +#: assign.c:590 msgid "Internal error: Couldn't allocate memory for s5." msgstr "" -#: assign.c:599 assign.c:615 +#: assign.c:611 assign.c:627 #, c-format msgid "Dropping index '%s' due to an update on a key column\n" msgstr "" -#: assign.c:608 +#: assign.c:620 #, c-format msgid "Shortening index '%s' to '%s' due to an update on a key column\n" msgstr "" -#: assign.c:680 +#: assign.c:695 +#, c-format +msgid "" +"Internal error memrecycle: sourceStart=%d sourceLen=%d length(source)=%d" +msgstr "" + +#: assign.c:697 +#, c-format +msgid "Internal error memrecycle: start=%d len=%d length(target)=%d" +msgstr "" + +#: assign.c:700 #, c-format msgid "Internal error: recycle length error not caught earlier. slen=%d len=%d" msgstr "" -#: assign.c:684 +#: assign.c:704 msgid "Internal error: memrecycle has received NULL colname" msgstr "" -#: assign.c:710 +#: assign.c:730 #, c-format msgid "" "Cannot assign 'factor' to '%s'. Factors can only be assigned to factor, " "character or list columns." msgstr "" -#: assign.c:724 +#: assign.c:744 #, c-format msgid "" "Assigning factor numbers to column %d named '%s'. But %d is outside the " "level range [1,%d]" msgstr "" -#: assign.c:732 +#: assign.c:752 #, c-format msgid "" "Assigning factor numbers to column %d named '%s'. But %f is outside the " "level range [1,%d], or is not a whole number." msgstr "" -#: assign.c:738 +#: assign.c:758 #, c-format msgid "" "Cannot assign '%s' to 'factor'. Factor columns can be assigned factor, " "character, NA in any type, or level numbers." msgstr "" -#: assign.c:759 +#: assign.c:779 msgid "" "Internal error: levels of target are either not unique or have truelength<0" msgstr "" -#: assign.c:798 +#: assign.c:818 #, c-format msgid "Unable to allocate working memory of %d bytes to combine factor levels" msgstr "" -#: assign.c:805 +#: assign.c:825 msgid "Internal error: extra level check sum failed" msgstr "" -#: assign.c:824 +#: assign.c:844 #, c-format msgid "" "Coercing 'character' RHS to '%s' to match the type of the target column " "(column %d named '%s')." msgstr "" -#: assign.c:830 +#: assign.c:850 #, c-format msgid "" "Cannot coerce 'list' RHS to 'integer64' to match the type of the target " "column (column %d named '%s')." msgstr "" -#: assign.c:835 +#: assign.c:855 #, c-format msgid "" "Coercing 'list' RHS to '%s' to match the type of the target column (column " "%d named '%s')." msgstr "" -#: assign.c:841 +#: assign.c:861 #, c-format msgid "Zero-copy coerce when assigning '%s' to '%s' column %d named '%s'.\n" msgstr "" -#: assign.c:936 +#: assign.c:956 #, c-format msgid "type '%s' cannot be coerced to '%s'" msgstr "" -#: assign.c:1056 +#: assign.c:1076 msgid "" "To assign integer64 to a character column, please use as.character() for " "clarity." msgstr "" -#: assign.c:1068 +#: assign.c:1088 #, c-format msgid "Unsupported column type in assign.c:memrecycle '%s'" msgstr "" -#: assign.c:1115 +#: assign.c:1135 #, c-format msgid "Internal error: writeNA passed a vector of type '%s'" msgstr "" -#: assign.c:1146 +#: assign.c:1166 #, c-format msgid "" "Internal error: savetl_init checks failed (%d %d %p %p). please report to " "data.table issue tracker." msgstr "" -#: assign.c:1154 +#: assign.c:1174 #, c-format msgid "Failed to allocate initial %d items in savetl_init" msgstr "" -#: assign.c:1163 +#: assign.c:1183 #, c-format msgid "" "Internal error: reached maximum %d items for savetl. Please report to data." "table issue tracker." msgstr "" -#: assign.c:1170 +#: assign.c:1190 #, c-format msgid "Failed to realloc saveds to %d items in savetl" msgstr "" -#: assign.c:1176 +#: assign.c:1196 #, c-format msgid "Failed to realloc savedtl to %d items in savetl" msgstr "" -#: assign.c:1199 +#: assign.c:1219 msgid "x must be a character vector" msgstr "" -#: assign.c:1200 +#: assign.c:1220 msgid "'which' must be an integer vector" msgstr "" -#: assign.c:1201 +#: assign.c:1221 msgid "'new' must be a character vector" msgstr "" -#: assign.c:1202 +#: assign.c:1222 #, c-format msgid "'new' is length %d. Should be the same as length of 'which' (%d)" msgstr "" -#: assign.c:1205 +#: assign.c:1225 #, c-format msgid "" "Item %d of 'which' is %d which is outside range of the length %d character " "vector" msgstr "" -#: assign.c:1215 -msgid "dt passed to setcolorder has no names" -msgstr "" - -#: assign.c:1217 -#, c-format -msgid "Internal error: dt passed to setcolorder has %d columns but %d names" -msgstr "" - -#: assign.c:1224 -msgid "" -"Internal error: o passed to Csetcolorder contains an NA or out-of-bounds" -msgstr "" - -#: assign.c:1226 -msgid "Internal error: o passed to Csetcolorder contains a duplicate" -msgstr "" - #: between.c:12 #, c-format msgid "" @@ -668,121 +661,130 @@ msgstr "" msgid "Internal error: xcols is not integer vector" msgstr "" -#: bmerge.c:50 +#: bmerge.c:51 +msgid "Internal error: icols and xcols must be non-empty integer vectors." +msgstr "" + +#: bmerge.c:52 #, c-format msgid "Internal error: length(icols) [%d] > length(xcols) [%d]" msgstr "" -#: bmerge.c:57 +#: bmerge.c:59 #, c-format msgid "Internal error. icols[%d] is NA" msgstr "" -#: bmerge.c:58 +#: bmerge.c:60 #, c-format msgid "Internal error. xcols[%d] is NA" msgstr "" -#: bmerge.c:59 +#: bmerge.c:61 #, c-format msgid "icols[%d]=%d outside range [1,length(i)=%d]" msgstr "" -#: bmerge.c:60 +#: bmerge.c:62 #, c-format msgid "xcols[%d]=%d outside range [1,length(x)=%d]" msgstr "" -#: bmerge.c:63 +#: bmerge.c:65 #, c-format msgid "typeof x.%s (%s) != typeof i.%s (%s)" msgstr "" -#: bmerge.c:70 +#: bmerge.c:72 msgid "roll is character but not 'nearest'" msgstr "" -#: bmerge.c:71 +#: bmerge.c:73 msgid "roll='nearest' can't be applied to a character column, yet." msgstr "" -#: bmerge.c:74 +#: bmerge.c:76 msgid "Internal error: roll is not character or double" msgstr "" -#: bmerge.c:79 +#: bmerge.c:81 msgid "rollends must be a length 2 logical vector" msgstr "" -#: bmerge.c:89 uniqlist.c:270 +#: bmerge.c:91 uniqlist.c:271 msgid "" "Internal error: invalid value for 'mult'. please report to data.table issue " "tracker" msgstr "" -#: bmerge.c:93 +#: bmerge.c:95 msgid "" "Internal error: opArg is not an integer vector of length equal to length(on)" msgstr "" -#: bmerge.c:96 +#: bmerge.c:98 msgid "Internal error: nqgrpArg must be an integer vector" msgstr "" -#: bmerge.c:102 +#: bmerge.c:104 msgid "Intrnal error: nqmaxgrpArg is not a positive length-1 integer vector" msgstr "" -#: bmerge.c:111 +#: bmerge.c:113 msgid "Internal error in allocating memory for non-equi join" msgstr "" -#: bmerge.c:156 +#: bmerge.c:158 msgid "Internal error: xoArg is not an integer vector" msgstr "" -#: bmerge.c:271 bmerge.c:379 +#: bmerge.c:273 bmerge.c:381 #, c-format msgid "" "Internal error in bmerge_r for '%s' column. Unrecognized value op[col]=%d" msgstr "" -#: bmerge.c:303 +#: bmerge.c:305 #, c-format msgid "Only '==' operator is supported for columns of type %s." msgstr "" -#: bmerge.c:410 +#: bmerge.c:412 #, c-format msgid "Type '%s' not supported for joining/merging" msgstr "" -#: bmerge.c:468 +#: bmerge.c:470 msgid "Internal error: xlow!=xupp-1 || xlowxuppIn" msgstr "" -#: chmatch.c:4 -#, c-format -msgid "x is type '%s' (must be 'character' or NULL)" -msgstr "" - #: chmatch.c:5 #, c-format msgid "table is type '%s' (must be 'character' or NULL)" msgstr "" -#: chmatch.c:6 +#: chmatch.c:7 msgid "Internal error: either chin or chmatchdup should be true not both" msgstr "" -#: chmatch.c:44 +#: chmatch.c:12 +#, c-format +msgid "Internal error: length of SYMSXP is %d not 1" +msgstr "" + +#: chmatch.c:19 +#, c-format +msgid "x is type '%s' (must be 'character' or NULL)" +msgstr "" + +#: chmatch.c:66 #, c-format msgid "" "Internal error: CHARSXP '%s' has a negative truelength (%d). Please file an " "issue on the data.table tracker." msgstr "" -#: chmatch.c:73 +#: chmatch.c:95 #, c-format msgid "" "Failed to allocate % bytes working memory in chmatchdup: " @@ -858,107 +860,103 @@ msgstr "" msgid "Unsupported type: %s" msgstr "" -#: dogroups.c:14 +#: dogroups.c:15 msgid "Internal error: order not integer vector" msgstr "" -#: dogroups.c:15 +#: dogroups.c:16 msgid "Internal error: starts not integer" msgstr "" -#: dogroups.c:16 +#: dogroups.c:17 msgid "Internal error: lens not integer" msgstr "" -#: dogroups.c:18 +#: dogroups.c:19 msgid "Internal error: jiscols not NULL but o__ has length" msgstr "" -#: dogroups.c:19 +#: dogroups.c:20 msgid "Internal error: xjiscols not NULL but o__ has length" msgstr "" -#: dogroups.c:20 +#: dogroups.c:21 msgid "'env' should be an environment" msgstr "" -#: dogroups.c:39 +#: dogroups.c:40 #, c-format msgid "" "Internal error: unsupported size-0 type '%s' in column %d of 'by' should " "have been caught earlier" msgstr "" -#: dogroups.c:43 +#: dogroups.c:44 #, c-format msgid "!length(bynames)[%d]==length(groups)[%d]==length(grpcols)[%d]" msgstr "" -#: dogroups.c:62 +#: dogroups.c:63 msgid "row.names attribute of .SD not found" msgstr "" -#: dogroups.c:64 +#: dogroups.c:65 #, c-format msgid "" "row.names of .SD isn't integer length 2 with NA as first item; i.e., ." "set_row_names(). [%s %d %d]" msgstr "" -#: dogroups.c:69 +#: dogroups.c:70 msgid "length(names)!=length(SD)" msgstr "" -#: dogroups.c:73 +#: dogroups.c:74 #, c-format msgid "" "Internal error: size-0 type %d in .SD column %d should have been caught " "earlier" msgstr "" -#: dogroups.c:83 +#: dogroups.c:84 msgid "length(xknames)!=length(xSD)" msgstr "" -#: dogroups.c:87 +#: dogroups.c:88 #, c-format msgid "" "Internal error: type %d in .xSD column %d should have been caught by now" msgstr "" -#: dogroups.c:91 +#: dogroups.c:92 #, c-format msgid "length(iSD)[%d] != length(jiscols)[%d]" msgstr "" -#: dogroups.c:92 +#: dogroups.c:93 #, c-format msgid "length(xSD)[%d] != length(xjiscols)[%d]" msgstr "" -#: dogroups.c:155 dogroups.c:184 -msgid "Internal error. Type of column should have been checked by now" -msgstr "" - -#: dogroups.c:273 +#: dogroups.c:198 #, c-format msgid "j evaluates to type '%s'. Must evaluate to atomic vector or list." msgstr "" -#: dogroups.c:281 +#: dogroups.c:206 msgid "" "All items in j=list(...) should be atomic vectors or lists. If you are " "trying something like j=list(.SD,newcol=mean(colA)) then use := by group " "instead (much quicker), or cbind or merge afterwards." msgstr "" -#: dogroups.c:290 +#: dogroups.c:215 msgid "" "RHS of := is NULL during grouped assignment, but it's not possible to delete " "parts of a column." msgstr "" -#: dogroups.c:294 +#: dogroups.c:219 #, c-format msgid "" "Supplied %d items to be assigned to group %d of size %d in column '%s'. The " @@ -967,23 +965,23 @@ msgid "" "make this intent clear to readers of your code." msgstr "" -#: dogroups.c:305 +#: dogroups.c:230 msgid "" "Internal error: Trying to add new column by reference but tl is full; " "setalloccol should have run first at R level before getting to this point in " "dogroups" msgstr "" -#: dogroups.c:320 +#: dogroups.c:245 #, c-format msgid "Group %d column '%s': %s" msgstr "" -#: dogroups.c:327 +#: dogroups.c:252 msgid "j doesn't evaluate to the same number of columns for each group" msgstr "" -#: dogroups.c:361 +#: dogroups.c:286 #, c-format msgid "" "Column %d of j's result for the first group is NULL. We rely on the column " @@ -994,14 +992,14 @@ msgid "" "integer() or numeric()." msgstr "" -#: dogroups.c:364 +#: dogroups.c:289 msgid "" "j appears to be a named vector. The same names will likely be created over " "and over again for each group and slow things down. Try and pass a named " "list (which data.table optimizes) or an unnamed list() instead.\n" msgstr "" -#: dogroups.c:366 +#: dogroups.c:291 #, c-format msgid "" "Column %d of j is a named vector (each item down the rows is named, " @@ -1009,7 +1007,7 @@ msgid "" "over and over for each group). They are ignored anyway.\n" msgstr "" -#: dogroups.c:374 +#: dogroups.c:299 msgid "" "The result of j is a named list. It's very inefficient to create the same " "names over and over again for each group. When j=list(...), any names are " @@ -1018,17 +1016,17 @@ msgid "" "to :=). This message may be upgraded to warning in future.\n" msgstr "" -#: dogroups.c:386 +#: dogroups.c:311 #, c-format msgid "dogroups: growing from %d to %d rows\n" msgstr "" -#: dogroups.c:387 +#: dogroups.c:312 #, c-format msgid "dogroups: length(ans)[%d]!=ngrpcols[%d]+njval[%d]" msgstr "" -#: dogroups.c:420 +#: dogroups.c:330 #, c-format msgid "" "Item %d of j's result for group %d is zero length. This will be filled with " @@ -1037,14 +1035,14 @@ msgid "" "buffer." msgstr "" -#: dogroups.c:427 +#: dogroups.c:337 #, c-format msgid "" "Column %d of result for group %d is type '%s' but expecting type '%s'. " "Column types must be consistent for each group." msgstr "" -#: dogroups.c:429 +#: dogroups.c:339 #, c-format msgid "" "Supplied %d items for column %d of group %d which has %d rows. The RHS " @@ -1053,32 +1051,37 @@ msgid "" "make this intent clear to readers of your code." msgstr "" -#: dogroups.c:444 +#: dogroups.c:354 #, c-format msgid "Wrote less rows (%d) than allocated (%d).\n" msgstr "" -#: dogroups.c:454 +#: dogroups.c:364 #, c-format msgid "Internal error: block 0 [%d] and block 1 [%d] have both run" msgstr "" -#: dogroups.c:456 +#: dogroups.c:366 #, c-format msgid "" "\n" " %s took %.3fs for %d groups\n" msgstr "" -#: dogroups.c:458 +#: dogroups.c:368 #, c-format msgid " eval(j) took %.3fs for %d calls\n" msgstr "" -#: dogroups.c:482 +#: dogroups.c:392 msgid "growVector passed NULL" msgstr "" +#: dogroups.c:412 +#, c-format +msgid "Internal error: growVector doesn't support type '%s'" +msgstr "" + #: fastmean.c:39 msgid "narm should be TRUE or FALSE" msgstr "" @@ -1093,7 +1096,7 @@ msgstr "" msgid "Internal error: type '%s' not caught earlier in fastmean" msgstr "" -#: fcast.c:80 +#: fcast.c:78 #, c-format msgid "Unsupported column type in fcast val: '%s'" msgstr "" @@ -1102,62 +1105,70 @@ msgstr "" msgid "Argument 'test' must be logical." msgstr "" -#: fifelse.c:23 +#: fifelse.c:28 #, c-format msgid "" "'yes' is of type %s but 'no' is of type %s. Please make sure that both " "arguments have the same type." msgstr "" -#: fifelse.c:28 +#: fifelse.c:33 msgid "" "'yes' has different class than 'no'. Please make sure that both arguments " "have the same class." msgstr "" -#: fifelse.c:33 +#: fifelse.c:38 msgid "'yes' and 'no' are both type factor but their levels are different." msgstr "" -#: fifelse.c:38 +#: fifelse.c:43 #, c-format msgid "" "Length of 'yes' is % but must be 1 or length of 'test' (%)." msgstr "" -#: fifelse.c:40 +#: fifelse.c:45 #, c-format msgid "" "Length of 'no' is % but must be 1 or length of 'test' (%)." msgstr "" -#: fifelse.c:51 +#: fifelse.c:56 #, c-format msgid "Length of 'na' is % but must be 1" msgstr "" -#: fifelse.c:57 +#: fifelse.c:62 #, c-format msgid "" "'yes' is of type %s but 'na' is of type %s. Please make sure that both " "arguments have the same type." msgstr "" -#: fifelse.c:59 +#: fifelse.c:64 msgid "" "'yes' has different class than 'na'. Please make sure that both arguments " "have the same class." msgstr "" -#: fifelse.c:63 +#: fifelse.c:68 msgid "'yes' and 'na' are both type factor but their levels are different." msgstr "" -#: fifelse.c:133 +#: fifelse.c:138 #, c-format msgid "Type %s is not supported." msgstr "" +#: fifelse.c:152 +#, c-format +msgid "" +"Received %d inputs; please supply an even number of arguments in ..., " +"consisting of logical condition, resulting value pairs (in that order). Note " +"that the default argument must be named explicitly, e.g., default=0" +msgstr "" + #: fmelt.c:18 msgid "'x' must be an integer" msgstr "" @@ -1338,144 +1349,144 @@ msgstr "" msgid "names(data) is NULL. Please report to data.table-help" msgstr "" -#: forder.c:106 +#: forder.c:107 #, c-format msgid "Failed to realloc thread private group size buffer to %d*4bytes" msgstr "" -#: forder.c:120 +#: forder.c:121 #, c-format msgid "Failed to realloc group size result to %d*4bytes" msgstr "" -#: forder.c:263 +#: forder.c:264 #, c-format msgid "" "Logical error. counts[0]=%d in cradix but should have been decremented to 0. " "radix=%d" msgstr "" -#: forder.c:278 +#: forder.c:279 msgid "Failed to alloc cradix_counts" msgstr "" -#: forder.c:280 +#: forder.c:281 msgid "Failed to alloc cradix_tmp" msgstr "" -#: forder.c:291 +#: forder.c:292 #, c-format msgid "" "Internal error: ustr isn't empty when starting range_str: ustr_n=%d, " "ustr_alloc=%d" msgstr "" -#: forder.c:292 +#: forder.c:293 msgid "Internal error: ustr_maxlen isn't 0 when starting range_str" msgstr "" -#: forder.c:312 +#: forder.c:313 #, c-format msgid "Unable to realloc %d * %d bytes in range_str" msgstr "" -#: forder.c:330 +#: forder.c:331 msgid "Failed to alloc ustr3 when converting strings to UTF8" msgstr "" -#: forder.c:348 +#: forder.c:349 msgid "Failed to alloc tl when converting strings to UTF8" msgstr "" -#: forder.c:377 +#: forder.c:378 msgid "Must an integer or numeric vector length 1" msgstr "" -#: forder.c:378 +#: forder.c:379 msgid "Must be 2, 1 or 0" msgstr "" -#: forder.c:412 +#: forder.c:413 msgid "Unknown non-finite value; not NA, NaN, -Inf or +Inf" msgstr "" -#: forder.c:434 +#: forder.c:435 msgid "" "Internal error: input is not either a list of columns, or an atomic vector." msgstr "" -#: forder.c:436 +#: forder.c:437 msgid "" "Internal error: input is an atomic vector (not a list of columns) but by= is " "not NULL" msgstr "" -#: forder.c:438 +#: forder.c:439 msgid "" "Input is an atomic vector (not a list of columns) but order= is not a length " "1 integer" msgstr "" -#: forder.c:440 +#: forder.c:441 #, c-format msgid "forder.c received a vector type '%s' length %d\n" msgstr "" -#: forder.c:448 +#: forder.c:449 #, c-format msgid "forder.c received %d rows and %d columns\n" msgstr "" -#: forder.c:451 +#: forder.c:452 msgid "Internal error: DT is an empty list() of 0 columns" msgstr "" -#: forder.c:453 +#: forder.c:454 #, c-format msgid "" "Internal error: DT has %d columns but 'by' is either not integer or is " "length 0" msgstr "" -#: forder.c:455 +#: forder.c:456 #, c-format msgid "" "Either order= is not integer or its length (%d) is different to by='s length " "(%d)" msgstr "" -#: forder.c:461 +#: forder.c:462 #, c-format msgid "internal error: 'by' value %d out of range [1,%d]" msgstr "" -#: forder.c:463 +#: forder.c:464 #, c-format msgid "Column %d is length %d which differs from length of column 1 (%d)\n" msgstr "" -#: forder.c:467 +#: forder.c:468 msgid "retGrp must be TRUE or FALSE" msgstr "" -#: forder.c:470 +#: forder.c:471 msgid "sort must be TRUE or FALSE" msgstr "" -#: forder.c:473 +#: forder.c:474 msgid "At least one of retGrp= or sort= must be TRUE" msgstr "" -#: forder.c:475 +#: forder.c:476 msgid "na.last must be logical TRUE, FALSE or NA of length 1" msgstr "" -#: forder.c:519 +#: forder.c:520 #, c-format msgid "Item %d of order (ascending/descending) is %d. Must be +1 or -1." msgstr "" -#: forder.c:545 +#: forder.c:546 #, c-format msgid "" "\n" @@ -1484,124 +1495,129 @@ msgid "" "to save space and time.\n" msgstr "" -#: forder.c:561 +#: forder.c:562 #, c-format msgid "Column %d passed to [f]order is type '%s', not yet supported." msgstr "" -#: forder.c:714 +#: forder.c:715 msgid "Internal error: column not supported, not caught earlier" msgstr "" -#: forder.c:722 +#: forder.c:723 #, c-format msgid "nradix=%d\n" msgstr "" -#: forder.c:728 +#: forder.c:729 #, c-format msgid "" "Failed to allocate TMP or UGRP or they weren't cache line aligned: nth=%d" msgstr "" -#: forder.c:733 +#: forder.c:734 msgid "Could not allocate (very tiny) group size thread buffers" msgstr "" -#: forder.c:794 +#: forder.c:795 #, c-format msgid "Timing block %2d%s = %8.3f %8d\n" msgstr "" -#: forder.c:797 +#: forder.c:798 #, c-format msgid "stat[%03d]==%20\n" msgstr "" -#: forder.c:1053 +#: forder.c:1054 #, c-format msgid "Failed to allocate parallel counts. my_n=%d, nBatch=%d" msgstr "" -#: forder.c:1162 +#: forder.c:1163 #, c-format msgid "Unable to allocate TMP for my_n=%d items in parallel batch counting" msgstr "" -#: forder.c:1269 -msgid "" -"is.sorted (R level) and fsorted (C level) only to be used on vectors. If " -"needed on a list/data.table, you'll need the order anyway if not sorted, so " -"use if (length(o<-forder(...))) for efficiency in one step, or equivalent at " -"C level" +#: forder.c:1270 +msgid "Internal error: issorted 'by' must be NULL or integer vector" +msgstr "" + +#: forder.c:1274 forder.c:1324 +#, c-format +msgid "issorted 'by' [%d] out of range [1,%d]" +msgstr "" + +#: forder.c:1279 +msgid "is.sorted does not work on list columns" msgstr "" -#: forder.c:1301 +#: forder.c:1311 forder.c:1341 forder.c:1375 #, c-format msgid "type '%s' is not yet supported" msgstr "" -#: forder.c:1310 +#: forder.c:1388 msgid "x must be either NULL or an integer vector" msgstr "" -#: forder.c:1312 +#: forder.c:1390 msgid "nrow must be integer vector length 1" msgstr "" -#: forder.c:1314 +#: forder.c:1392 #, c-format msgid "nrow==%d but must be >=0" msgstr "" -#: forder.c:1331 +#: forder.c:1409 msgid "x must be type 'double'" msgstr "" -#: frank.c:11 +#: frank.c:9 #, c-format msgid "Internal error. Argument 'x' to Cdt_na is type '%s' not 'list'" msgstr "" -#: frank.c:12 +#: frank.c:10 #, c-format msgid "Internal error. Argument 'cols' to Cdt_na is type '%s' not 'integer'" msgstr "" -#: frank.c:16 frank.c:146 subset.c:263 +#: frank.c:14 frank.c:155 subset.c:276 #, c-format msgid "Item %d of 'cols' is %d which is outside 1-based range [1,ncol(x)=%d]" msgstr "" -#: frank.c:26 frank.c:155 +#: frank.c:24 frank.c:164 #, c-format msgid "" "Column %d of input list x is length %d, inconsistent with first column of " "that item which is length %d." msgstr "" -#: frank.c:65 frank.c:202 transpose.c:88 +#: frank.c:63 frank.c:211 transpose.c:88 #, c-format msgid "Unsupported column type '%s'" msgstr "" -#: frank.c:83 +#: frank.c:82 msgid "" "Internal error: invalid ties.method for frankv(), should have been caught " "before. please report to data.table issue tracker" msgstr "" -#: frank.c:130 +#: frank.c:139 #, c-format msgid "Internal error: unknown ties value in frank: %d" msgstr "" -#: frank.c:141 +#: frank.c:150 #, c-format msgid "Internal error. Argument 'x' to CanyNA is type '%s' not 'list'" msgstr "" -#: frank.c:142 +#: frank.c:151 #, c-format msgid "Internal error. Argument 'cols' to CanyNA is type '%s' not 'integer'" msgstr "" @@ -1642,332 +1658,332 @@ msgstr "" msgid " File copy in RAM took %.3f seconds.\n" msgstr "" -#: fread.c:1093 +#: fread.c:1248 msgid "" "Previous fread() session was not cleaned up properly. Cleaned up ok at the " "beginning of this fread() call.\n" msgstr "" -#: fread.c:1096 +#: fread.c:1251 msgid "[01] Check arguments\n" msgstr "" -#: fread.c:1103 +#: fread.c:1258 #, c-format msgid " Using %d threads (omp_get_max_threads()=%d, nth=%d)\n" msgstr "" -#: fread.c:1111 +#: fread.c:1266 msgid "" "Internal error: NAstrings is itself NULL. When empty it should be pointer to " "NULL." msgstr "" -#: fread.c:1129 +#: fread.c:1284 #, c-format msgid "freadMain: NAstring <<%s>> has whitespace at the beginning or end" msgstr "" -#: fread.c:1134 +#: fread.c:1289 #, c-format msgid "" "freadMain: NAstring <<%s>> is recognized as type boolean, this is not " "permitted." msgstr "" -#: fread.c:1144 +#: fread.c:1300 msgid " No NAstrings provided.\n" msgstr "" -#: fread.c:1146 +#: fread.c:1302 msgid " NAstrings = [" msgstr "" -#: fread.c:1149 +#: fread.c:1305 msgid "]\n" msgstr "" -#: fread.c:1151 +#: fread.c:1307 msgid " One or more of the NAstrings looks like a number.\n" msgstr "" -#: fread.c:1153 +#: fread.c:1309 msgid " None of the NAstrings look like numbers.\n" msgstr "" -#: fread.c:1155 +#: fread.c:1311 #, c-format msgid " skip num lines = %\n" msgstr "" -#: fread.c:1156 +#: fread.c:1312 #, c-format msgid " skip to string = <<%s>>\n" msgstr "" -#: fread.c:1157 +#: fread.c:1313 #, c-format msgid " show progress = %d\n" msgstr "" -#: fread.c:1158 +#: fread.c:1314 #, c-format msgid " 0/1 column will be read as %s\n" msgstr "" -#: fread.c:1166 +#: fread.c:1322 #, c-format msgid "sep == quote ('%c') is not allowed" msgstr "" -#: fread.c:1167 +#: fread.c:1323 msgid "dec='' not allowed. Should be '.' or ','" msgstr "" -#: fread.c:1168 +#: fread.c:1324 #, c-format msgid "sep == dec ('%c') is not allowed" msgstr "" -#: fread.c:1169 +#: fread.c:1325 #, c-format msgid "quote == dec ('%c') is not allowed" msgstr "" -#: fread.c:1186 +#: fread.c:1342 msgid "[02] Opening the file\n" msgstr "" -#: fread.c:1189 +#: fread.c:1345 msgid "" " `input` argument is provided rather than a file name, interpreting as raw " "text to read\n" msgstr "" -#: fread.c:1193 +#: fread.c:1349 msgid "Internal error: last byte of character input isn't \\0" msgstr "" -#: fread.c:1196 +#: fread.c:1352 #, c-format msgid " Opening file %s\n" msgstr "" -#: fread.c:1200 +#: fread.c:1356 #, c-format msgid "file not found: %s" msgstr "" -#: fread.c:1204 +#: fread.c:1360 #, c-format msgid "Opened file ok but couldn't obtain its size: %s" msgstr "" -#: fread.c:1207 fread.c:1235 +#: fread.c:1363 fread.c:1391 #, c-format msgid "File is empty: %s" msgstr "" -#: fread.c:1208 fread.c:1236 +#: fread.c:1364 fread.c:1392 #, c-format msgid " File opened, size = %s.\n" msgstr "" -#: fread.c:1225 +#: fread.c:1381 #, c-format msgid "File not found: %s" msgstr "" -#: fread.c:1231 +#: fread.c:1387 #, c-format msgid "Unable to open file after %d attempts (error %d): %s" msgstr "" -#: fread.c:1233 +#: fread.c:1389 #, c-format msgid "GetFileSizeEx failed (returned 0) on file: %s" msgstr "" -#: fread.c:1238 +#: fread.c:1394 #, c-format msgid "This is Windows, CreateFileMapping returned error %d for file %s" msgstr "" -#: fread.c:1245 +#: fread.c:1401 #, c-format msgid "" "Opened %s file ok but could not memory map it. This is a %dbit process. %s." msgstr "" -#: fread.c:1246 +#: fread.c:1402 msgid "Please upgrade to 64bit" msgstr "" -#: fread.c:1246 +#: fread.c:1402 msgid "There is probably not enough contiguous virtual memory available" msgstr "" -#: fread.c:1249 +#: fread.c:1405 msgid " Memory mapped ok\n" msgstr "" -#: fread.c:1251 +#: fread.c:1407 msgid "" "Internal error: Neither `input` nor `filename` are given, nothing to read." msgstr "" -#: fread.c:1268 +#: fread.c:1424 msgid "[03] Detect and skip BOM\n" msgstr "" -#: fread.c:1272 +#: fread.c:1428 msgid "" " UTF-8 byte order mark EF BB BF found at the start of the file and " "skipped.\n" msgstr "" -#: fread.c:1277 +#: fread.c:1433 msgid "" "GB-18030 encoding detected, however fread() is unable to decode it. Some " "character fields may be garbled.\n" msgstr "" -#: fread.c:1280 +#: fread.c:1436 msgid "" "File is encoded in UTF-16, this encoding is not supported by fread(). Please " "recode the file to UTF-8." msgstr "" -#: fread.c:1285 +#: fread.c:1441 #, c-format msgid " Last byte(s) of input found to be %s and removed.\n" msgstr "" -#: fread.c:1288 +#: fread.c:1444 msgid "Input is empty or only contains BOM or terminal control characters" msgstr "" -#: fread.c:1295 +#: fread.c:1451 msgid "[04] Arrange mmap to be \\0 terminated\n" msgstr "" -#: fread.c:1302 +#: fread.c:1458 msgid "" " No \\n exists in the file at all, so single \\r (if any) will be taken as " "one line ending. This is unusual but will happen normally when there is no " "\\r either; e.g. a single line missing its end of line.\n" msgstr "" -#: fread.c:1303 +#: fread.c:1459 msgid "" " \\n has been found in the input and different lines can end with different " "line endings (e.g. mixed \\n and \\r\\n in one file). This is common and " "ideal.\n" msgstr "" -#: fread.c:1327 +#: fread.c:1483 #, c-format msgid "" " File ends abruptly with '%c'. Final end-of-line is missing. Using cow page " "to write 0 to the last byte.\n" msgstr "" -#: fread.c:1333 +#: fread.c:1489 msgid "" "This file is very unusual: it ends abruptly without a final newline, and " "also its size is a multiple of 4096 bytes. Please properly end the last row " "with a newline using for example 'echo >> file' to avoid this " msgstr "" -#: fread.c:1334 +#: fread.c:1490 #, c-format msgid " File ends abruptly with '%c'. Copying file in RAM. %s copy.\n" msgstr "" -#: fread.c:1368 +#: fread.c:1524 msgid "[05] Skipping initial rows if needed\n" msgstr "" -#: fread.c:1374 +#: fread.c:1530 #, c-format msgid "" "skip='%s' not found in input (it is case sensitive and literal; i.e., no " "patterns, wildcards or regex)" msgstr "" -#: fread.c:1380 +#: fread.c:1536 #, c-format msgid "" "Found skip='%s' on line %. Taking this to be header row or first row " "of data.\n" msgstr "" -#: fread.c:1393 +#: fread.c:1549 #, c-format msgid " Skipped to line % in the file" msgstr "" -#: fread.c:1394 +#: fread.c:1550 #, c-format msgid "skip=% but the input only has % line%s" msgstr "" -#: fread.c:1403 +#: fread.c:1559 msgid "" "Input is either empty, fully whitespace, or skip has been set after the last " "non-whitespace." msgstr "" -#: fread.c:1405 +#: fread.c:1561 #, c-format msgid " Moved forward to first non-blank line (%d)\n" msgstr "" -#: fread.c:1406 +#: fread.c:1562 #, c-format msgid " Positioned on line %d starting: <<%s>>\n" msgstr "" -#: fread.c:1424 +#: fread.c:1580 msgid "[06] Detect separator, quoting rule, and ncolumns\n" msgstr "" -#: fread.c:1428 +#: fread.c:1584 msgid " sep='\\n' passed in meaning read lines as single character column\n" msgstr "" -#: fread.c:1447 +#: fread.c:1603 msgid " Detecting sep automatically ...\n" msgstr "" -#: fread.c:1454 +#: fread.c:1610 #, c-format msgid " Using supplied sep '%s'\n" msgstr "" -#: fread.c:1488 +#: fread.c:1644 #, c-format msgid " with %d fields using quote rule %d\n" msgstr "" -#: fread.c:1538 +#: fread.c:1694 #, c-format msgid " with %d lines of %d fields using quote rule %d\n" msgstr "" -#: fread.c:1545 +#: fread.c:1701 msgid "" " No sep and quote rule found a block of 2x2 or greater. Single column " "input.\n" msgstr "" -#: fread.c:1561 +#: fread.c:1717 msgid "" "Single column input contains invalid quotes. Self healing only effective " "when ncol>1" msgstr "" -#: fread.c:1566 +#: fread.c:1722 #, c-format msgid "" "Found and resolved improper quoting in first %d rows. If the fields are not " @@ -1975,282 +1991,282 @@ msgid "" "\"\" to avoid this warning." msgstr "" -#: fread.c:1582 +#: fread.c:1738 #, c-format msgid "" "Internal error: ncol==%d line==%d after detecting sep, ncol and first line" msgstr "" -#: fread.c:1585 +#: fread.c:1741 #, c-format msgid "Internal error: first line has field count %d but expecting %d" msgstr "" -#: fread.c:1587 +#: fread.c:1743 #, c-format msgid "" " Detected %d columns on line %d. This line is either column names or first " "data row. Line starts as: <<%s>>\n" msgstr "" -#: fread.c:1589 +#: fread.c:1745 #, c-format msgid " Quote rule picked = %d\n" msgstr "" -#: fread.c:1590 +#: fread.c:1746 #, c-format msgid " fill=%s and the most number of columns found is %d\n" msgstr "" -#: fread.c:1596 +#: fread.c:1752 msgid "" "This file is very unusual: it's one single column, ends with 2 or more end-" "of-line (representing several NA at the end), and is a multiple of 4096, too." msgstr "" -#: fread.c:1597 +#: fread.c:1753 #, c-format msgid " Copying file in RAM. %s\n" msgstr "" -#: fread.c:1603 +#: fread.c:1759 msgid "" " 1-column file ends with 2 or more end-of-line. Restoring last eol using " "extra byte in cow page.\n" msgstr "" -#: fread.c:1622 +#: fread.c:1778 msgid "" "[07] Detect column types, good nrow estimate and whether first row is column " "names\n" msgstr "" -#: fread.c:1623 +#: fread.c:1779 #, c-format msgid " 'header' changed by user from 'auto' to %s\n" msgstr "" -#: fread.c:1627 +#: fread.c:1783 #, c-format msgid "Failed to allocate 2 x %d bytes for type and tmpType: %s" msgstr "" -#: fread.c:1648 +#: fread.c:1804 #, c-format msgid " Number of sampling jump points = %d because " msgstr "" -#: fread.c:1649 +#: fread.c:1805 #, c-format msgid "nrow limit (%) supplied\n" msgstr "" -#: fread.c:1650 +#: fread.c:1806 msgid "jump0size==0\n" msgstr "" -#: fread.c:1651 +#: fread.c:1807 #, c-format msgid "" "(% bytes from row 1 to eof) / (2 * % jump0size) == " "%\n" msgstr "" -#: fread.c:1689 +#: fread.c:1845 #, c-format msgid "" " A line with too-%s fields (%d/%d) was found on line %d of sample jump %d. " "%s\n" msgstr "" -#: fread.c:1690 +#: fread.c:1846 msgid "few" msgstr "" -#: fread.c:1690 +#: fread.c:1846 msgid "many" msgstr "" -#: fread.c:1690 +#: fread.c:1846 msgid "" "Most likely this jump landed awkwardly so type bumps here will be skipped." msgstr "" -#: fread.c:1716 +#: fread.c:1872 #, c-format msgid " Type codes (jump %03d) : %s Quote rule %d\n" msgstr "" -#: fread.c:1729 +#: fread.c:1885 #, c-format msgid "" " 'header' determined to be true due to column %d containing a string on row " "1 and a lower type (%s) in the rest of the %d sample rows\n" msgstr "" -#: fread.c:1741 +#: fread.c:1897 msgid "" "Internal error: row before first data row has the same number of fields but " "we're not using it." msgstr "" -#: fread.c:1742 +#: fread.c:1898 msgid "" "Internal error: ch!=pos after counting fields in the line before the first " "data row." msgstr "" -#: fread.c:1743 +#: fread.c:1899 #, c-format msgid "" "Types in 1st data row match types in 2nd data row but previous row has %d " "fields. Taking previous row as column names." msgstr "" -#: fread.c:1746 +#: fread.c:1902 #, c-format msgid "" "Detected %d column names but the data has %d columns (i.e. invalid file). " "Added %d extra default column name%s\n" msgstr "" -#: fread.c:1747 +#: fread.c:1903 msgid "" " for the first column which is guessed to be row names or an index. Use " "setnames() afterwards if this guess is not correct, or fix the file write " "command that created the file to create a valid file." msgstr "" -#: fread.c:1747 +#: fread.c:1903 msgid "s at the end." msgstr "" -#: fread.c:1749 +#: fread.c:1905 msgid "" "Internal error: fill=true but there is a previous row which should already " "have been filled." msgstr "" -#: fread.c:1750 +#: fread.c:1906 #, c-format msgid "" "Detected %d column names but the data has %d columns. Filling rows " "automatically. Set fill=TRUE explicitly to avoid this warning.\n" msgstr "" -#: fread.c:1754 +#: fread.c:1910 #, c-format msgid "Failed to realloc 2 x %d bytes for type and tmpType: %s" msgstr "" -#: fread.c:1774 +#: fread.c:1930 #, c-format msgid "" " 'header' determined to be %s because there are%s number fields in the " "first and only row\n" msgstr "" -#: fread.c:1774 +#: fread.c:1930 msgid " no" msgstr "" -#: fread.c:1777 +#: fread.c:1933 msgid "" " 'header' determined to be true because all columns are type string and a " "better guess is not possible\n" msgstr "" -#: fread.c:1779 +#: fread.c:1935 msgid "" " 'header' determined to be false because there are some number columns and " "those columns do not have a string field at the top of them\n" msgstr "" -#: fread.c:1795 +#: fread.c:1951 #, c-format msgid " Type codes (first row) : %s Quote rule %d\n" msgstr "" -#: fread.c:1804 +#: fread.c:1960 #, c-format msgid "" " All rows were sampled since file is small so we know nrow=% " "exactly\n" msgstr "" -#: fread.c:1816 fread.c:1823 +#: fread.c:1972 fread.c:1979 msgid " =====\n" msgstr "" -#: fread.c:1817 +#: fread.c:1973 #, c-format msgid "" " Sampled % rows (handled \\n inside quoted fields) at %d jump " "points\n" msgstr "" -#: fread.c:1818 +#: fread.c:1974 #, c-format msgid "" " Bytes from first data row on line %d to the end of last row: %\n" msgstr "" -#: fread.c:1819 +#: fread.c:1975 #, c-format msgid " Line length: mean=%.2f sd=%.2f min=%d max=%d\n" msgstr "" -#: fread.c:1820 +#: fread.c:1976 #, c-format msgid " Estimated number of rows: % / %.2f = %\n" msgstr "" -#: fread.c:1821 +#: fread.c:1977 #, c-format msgid "" " Initial alloc = % rows (% + %d%%) using bytes/" "max(mean-2*sd,min) clamped between [1.1*estn, 2.0*estn]\n" msgstr "" -#: fread.c:1825 +#: fread.c:1981 #, c-format msgid "Internal error: sampleLines(%) > allocnrow(%)" msgstr "" -#: fread.c:1829 +#: fread.c:1985 #, c-format msgid " Alloc limited to lower nrows=% passed in.\n" msgstr "" -#: fread.c:1841 +#: fread.c:1997 msgid "[08] Assign column names\n" msgstr "" -#: fread.c:1849 +#: fread.c:2005 #, c-format msgid "Unable to allocate %d*%d bytes for column name pointers: %s" msgstr "" -#: fread.c:1871 +#: fread.c:2027 #, c-format msgid "Internal error: reading colnames ending on '%c'" msgstr "" -#: fread.c:1889 +#: fread.c:2045 msgid "[09] Apply user overrides on column types\n" msgstr "" -#: fread.c:1893 +#: fread.c:2049 msgid " Cancelled by user: userOverride() returned false." msgstr "" -#: fread.c:1903 +#: fread.c:2059 #, c-format msgid "Failed to allocate %d bytes for size array: %s" msgstr "" -#: fread.c:1910 +#: fread.c:2066 #, c-format msgid "" "Attempt to override column %d <<%.*s>> of inherent type '%s' down to '%s' " @@ -2258,103 +2274,103 @@ msgid "" "was intended, please coerce to the lower type afterwards." msgstr "" -#: fread.c:1924 +#: fread.c:2080 #, c-format msgid " After %d type and %d drop user overrides : %s\n" msgstr "" -#: fread.c:1932 +#: fread.c:2088 msgid "[10] Allocate memory for the datatable\n" msgstr "" -#: fread.c:1933 +#: fread.c:2089 #, c-format msgid " Allocating %d column slots (%d - %d dropped) with % rows\n" msgstr "" -#: fread.c:1987 +#: fread.c:2143 #, c-format msgid "Buffer size % is too large\n" msgstr "" -#: fread.c:1990 +#: fread.c:2146 msgid "[11] Read the data\n" msgstr "" -#: fread.c:1993 +#: fread.c:2149 #, c-format msgid " jumps=[%d..%d), chunk_size=%, total_size=%\n" msgstr "" -#: fread.c:2005 +#: fread.c:2161 #, c-format msgid "Internal error: Master thread is not thread 0 but thread %d.\n" msgstr "" -#: fread.c:2213 +#: fread.c:2369 #, c-format msgid "" "Column %d (\"%.*s\") bumped from '%s' to '%s' due to <<%.*s>> on row " "%\n" msgstr "" -#: fread.c:2262 +#: fread.c:2418 #, c-format msgid "" "Internal error: invalid head position. jump=%d, headPos=%p, thisJumpStart=" "%p, sof=%p" msgstr "" -#: fread.c:2335 +#: fread.c:2491 #, c-format msgid "" " Too few rows allocated. Allocating additional % rows (now nrows=" "%) and continue reading from jump %d\n" msgstr "" -#: fread.c:2342 +#: fread.c:2498 #, c-format msgid " Restarting team from jump %d. nSwept==%d quoteRule==%d\n" msgstr "" -#: fread.c:2362 +#: fread.c:2518 #, c-format msgid " %d out-of-sample type bumps: %s\n" msgstr "" -#: fread.c:2398 +#: fread.c:2554 #, c-format msgid "" "Read % rows x %d columns from %s file in %02d:%06.3f wall clock " "time\n" msgstr "" -#: fread.c:2405 +#: fread.c:2561 msgid "[12] Finalizing the datatable\n" msgstr "" -#: fread.c:2406 +#: fread.c:2562 msgid " Type counts:\n" msgstr "" -#: fread.c:2408 +#: fread.c:2564 #, c-format msgid "%10d : %-9s '%c'\n" msgstr "" -#: fread.c:2424 +#: fread.c:2580 #, c-format msgid "Discarded single-line footer: <<%s>>" msgstr "" -#: fread.c:2429 +#: fread.c:2585 #, c-format msgid "" "Stopped early on line %. Expected %d fields but found %d. Consider " "fill=TRUE and comment.char=. First discarded non-empty line: <<%s>>" msgstr "" -#: fread.c:2435 +#: fread.c:2591 #, c-format msgid "" "Found and resolved improper quoting out-of-sample. First healed line " @@ -2362,218 +2378,213 @@ msgid "" "not appear within any field), try quote=\"\" to avoid this warning." msgstr "" -#: fread.c:2439 +#: fread.c:2595 msgid "=============================\n" msgstr "" -#: fread.c:2441 +#: fread.c:2597 #, c-format msgid "%8.3fs (%3.0f%%) Memory map %.3fGB file\n" msgstr "" -#: fread.c:2442 +#: fread.c:2598 #, c-format msgid "%8.3fs (%3.0f%%) sep=" msgstr "" -#: fread.c:2444 +#: fread.c:2600 #, c-format msgid " ncol=%d and header detection\n" msgstr "" -#: fread.c:2445 +#: fread.c:2601 #, c-format msgid "%8.3fs (%3.0f%%) Column type detection using % sample rows\n" msgstr "" -#: fread.c:2447 +#: fread.c:2603 #, c-format msgid "" "%8.3fs (%3.0f%%) Allocation of % rows x %d cols (%.3fGB) of which " "% (%3.0f%%) rows used\n" msgstr "" -#: fread.c:2451 +#: fread.c:2607 #, c-format msgid "" "%8.3fs (%3.0f%%) Reading %d chunks (%d swept) of %.3fMB (each chunk %d rows) " "using %d threads\n" msgstr "" -#: fread.c:2453 +#: fread.c:2609 #, c-format msgid "" " + %8.3fs (%3.0f%%) Parse to row-major thread buffers (grown %d times)\n" msgstr "" -#: fread.c:2454 +#: fread.c:2610 #, c-format msgid " + %8.3fs (%3.0f%%) Transpose\n" msgstr "" -#: fread.c:2455 +#: fread.c:2611 #, c-format msgid " + %8.3fs (%3.0f%%) Waiting\n" msgstr "" -#: fread.c:2456 +#: fread.c:2612 #, c-format msgid "" "%8.3fs (%3.0f%%) Rereading %d columns due to out-of-sample type exceptions\n" msgstr "" -#: fread.c:2458 +#: fread.c:2614 #, c-format msgid "%8.3fs Total\n" msgstr "" -#: freadR.c:84 +#: freadR.c:85 msgid "" "Internal error: freadR input not a single character string: a filename or " "the data itself. Should have been caught at R level." msgstr "" -#: freadR.c:92 +#: freadR.c:93 msgid "" "Input contains a \\n or is \")\". Taking this to be text input (not a " "filename)\n" msgstr "" -#: freadR.c:95 +#: freadR.c:96 msgid "Input contains no \\n. Taking this to be a filename to open\n" msgstr "" -#: freadR.c:101 +#: freadR.c:102 msgid "" "Internal error: freadR sep not a single character. R level catches this." msgstr "" -#: freadR.c:105 +#: freadR.c:106 msgid "" "Internal error: freadR dec not a single character. R level catches this." msgstr "" -#: freadR.c:112 +#: freadR.c:113 msgid "quote= must be a single character, blank \"\", or FALSE" msgstr "" -#: freadR.c:137 +#: freadR.c:143 msgid "Internal error: skip not integer or string in freadR.c" msgstr "" -#: freadR.c:140 +#: freadR.c:146 #, c-format msgid "Internal error: NAstringsArg is type '%s'. R level catches this" msgstr "" -#: freadR.c:153 +#: freadR.c:159 #, c-format msgid "nThread(%d)<1" msgstr "" -#: freadR.c:160 +#: freadR.c:166 msgid "'integer64' must be a single character string" msgstr "" -#: freadR.c:168 +#: freadR.c:174 #, c-format msgid "" "Invalid value integer64='%s'. Must be 'integer64', 'character', 'double' or " "'numeric'" msgstr "" -#: freadR.c:176 +#: freadR.c:182 msgid "Use either select= or drop= but not both." msgstr "" -#: freadR.c:179 +#: freadR.c:185 msgid "" "select= is type list for specifying types in select=, but colClasses= has " "been provided as well. Please remove colClasses=." msgstr "" -#: freadR.c:181 +#: freadR.c:187 msgid "" "select= is type list but has no names; expecting list(type1=cols1, " "type2=cols2, ...)" msgstr "" -#: freadR.c:188 +#: freadR.c:194 msgid "" "select= is a named vector specifying the columns to select and their types, " "but colClasses= has been provided as well. Please remove colClasses=." msgstr "" -#: freadR.c:196 freadR.c:346 +#: freadR.c:202 freadR.c:368 msgid "colClasses is type list but has no names" msgstr "" -#: freadR.c:206 +#: freadR.c:212 #, c-format msgid "encoding='%s' invalid. Must be 'unknown', 'Latin-1' or 'UTF-8'" msgstr "" -#: freadR.c:229 +#: freadR.c:235 #, c-format msgid "Column name '%s' (%s) not found" msgstr "" -#: freadR.c:231 +#: freadR.c:237 #, c-format msgid "%s is NA" msgstr "" -#: freadR.c:233 +#: freadR.c:239 #, c-format msgid "%s is %d which is out of range [1,ncol=%d]" msgstr "" -#: freadR.c:247 +#: freadR.c:253 msgid "Internal error: typeSize[CT_BOOL8_N] != 1" msgstr "" -#: freadR.c:248 +#: freadR.c:254 msgid "Internal error: typeSize[CT_STRING] != 1" msgstr "" -#: freadR.c:282 +#: freadR.c:288 #, c-format msgid "" "Column name '%s' not found in column name header (case sensitive), skipping." msgstr "" -#: freadR.c:292 +#: freadR.c:298 #, c-format msgid "" "Column number %d (select[%d]) is negative but should be in the range [1,ncol=" "%d]. Consider drop= for column exclusion." msgstr "" -#: freadR.c:293 +#: freadR.c:299 #, c-format msgid "" "select = 0 (select[%d]) has no meaning. All values of select should be in " "the range [1,ncol=%d]." msgstr "" -#: freadR.c:294 +#: freadR.c:300 #, c-format msgid "" "Column number %d (select[%d]) is too large for this table, which only has %d " "columns." msgstr "" -#: freadR.c:295 +#: freadR.c:301 #, c-format msgid "Column number %d ('%s') has been selected twice by select=" msgstr "" -#: freadR.c:313 -msgid "" -"colClasses='NULL' is not permitted; i.e. to drop all columns and load nothing" -msgstr "" - -#: freadR.c:318 +#: freadR.c:324 #, c-format msgid "" "colClasses= is an unnamed vector of types, length %d, but there are %d " @@ -2582,54 +2593,54 @@ msgid "" "colClasses=. Please see examples in ?fread." msgstr "" -#: freadR.c:329 +#: freadR.c:344 msgid "Internal error: selectInts is NULL but selectColClasses is true" msgstr "" -#: freadR.c:330 +#: freadR.c:346 msgid "" "Internal error: length(selectSxp)!=length(colClassesSxp) but " "selectColClasses is true" msgstr "" -#: freadR.c:344 +#: freadR.c:366 #, c-format msgid "colClasses is type '%s' but should be list or character" msgstr "" -#: freadR.c:368 +#: freadR.c:390 #, c-format msgid "Column name '%s' (colClasses[[%d]][%d]) not found" msgstr "" -#: freadR.c:370 +#: freadR.c:392 #, c-format msgid "colClasses[[%d]][%d] is NA" msgstr "" -#: freadR.c:374 +#: freadR.c:396 #, c-format msgid "" "Column %d ('%s') appears more than once in colClasses. The second time is " "colClasses[[%d]][%d]." msgstr "" -#: freadR.c:381 +#: freadR.c:408 #, c-format msgid "Column number %d (colClasses[[%d]][%d]) is out of range [1,ncol=%d]" msgstr "" -#: freadR.c:583 +#: freadR.c:624 #, c-format msgid "Field size is 1 but the field is of type %d\n" msgstr "" -#: freadR.c:592 +#: freadR.c:633 #, c-format msgid "Internal error: unexpected field of size %d\n" msgstr "" -#: freadR.c:660 +#: freadR.c:701 #, c-format msgid "%s" msgstr "" @@ -2747,7 +2758,7 @@ msgid "n must be integer vector or list of integer vectors" msgstr "" #: frollR.c:104 gsumm.c:342 gsumm.c:577 gsumm.c:686 gsumm.c:805 gsumm.c:950 -#: gsumm.c:1261 gsumm.c:1402 uniqlist.c:350 +#: gsumm.c:1261 gsumm.c:1402 uniqlist.c:351 msgid "na.rm must be TRUE or FALSE" msgstr "" @@ -2798,7 +2809,7 @@ msgid "" "caught before. please report to data.table issue tracker." msgstr "" -#: frollR.c:155 frollR.c:279 nafill.c:152 shift.c:21 +#: frollR.c:155 frollR.c:279 nafill.c:162 shift.c:21 msgid "fill must be a vector of length 1" msgstr "" @@ -3068,15 +3079,16 @@ msgstr "" #: fwriteR.c:98 #, c-format msgid "" -"Row %d of list column is type '%s' - not yet implemented. fwrite() can write " -"list columns containing items which are atomic vectors of type logical, " -"integer, integer64, double, complex and character." +"Row % of list column is type '%s' - not yet implemented. fwrite() " +"can write list columns containing items which are atomic vectors of type " +"logical, integer, integer64, double, complex and character." msgstr "" #: fwriteR.c:103 #, c-format msgid "" -"Internal error: row %d of list column has no max length method implemented" +"Internal error: row % of list column has no max length method " +"implemented" msgstr "" #: fwriteR.c:170 @@ -3088,30 +3100,31 @@ msgstr "" msgid "fwrite was passed an empty list of no columns. Nothing to write." msgstr "" -#: fwriteR.c:234 +#: fwriteR.c:232 #, c-format -msgid "Column %d's length (%d) is not the same as column 1's length (%d)" +msgid "" +"Column %d's length (%d) is not the same as column 1's length (%)" msgstr "" -#: fwriteR.c:237 +#: fwriteR.c:236 #, c-format msgid "Column %d's type is '%s' - not yet implemented in fwrite." msgstr "" -#: fwriteR.c:262 +#: fwriteR.c:261 msgid "" "No list columns are present. Setting sep2='' otherwise quote='auto' would " "quote fields containing sep2.\n" msgstr "" -#: fwriteR.c:266 +#: fwriteR.c:265 #, c-format msgid "" "If quote='auto', fields will be quoted if the field contains either sep " "('%c') or sep2 ('%c') because column %d is a list column.\n" msgstr "" -#: fwriteR.c:270 +#: fwriteR.c:269 #, c-format msgid "" "sep ('%c'), sep2 ('%c') and dec ('%c') must all be different. Column %d is a " @@ -3516,156 +3529,156 @@ msgstr "" msgid "Final step, fetching indices in overlaps ... done in %8.3f seconds\n" msgstr "" -#: init.c:233 +#: init.c:239 #, c-format msgid "" "Pointers are %d bytes, greater than 8. We have not tested on any " "architecture greater than 64bit yet." msgstr "" -#: init.c:247 +#: init.c:253 #, c-format msgid "Checking NA_INTEGER [%d] == INT_MIN [%d] %s" msgstr "" -#: init.c:248 +#: init.c:254 #, c-format msgid "Checking NA_INTEGER [%d] == NA_LOGICAL [%d] %s" msgstr "" -#: init.c:249 +#: init.c:255 #, c-format msgid "Checking sizeof(int) [%d] is 4 %s" msgstr "" -#: init.c:250 +#: init.c:256 #, c-format msgid "Checking sizeof(double) [%d] is 8 %s" msgstr "" -#: init.c:252 +#: init.c:258 #, c-format msgid "Checking sizeof(long long) [%d] is 8 %s" msgstr "" -#: init.c:253 +#: init.c:259 #, c-format msgid "Checking sizeof(pointer) [%d] is 4 or 8 %s" msgstr "" -#: init.c:254 +#: init.c:260 #, c-format msgid "Checking sizeof(SEXP) [%d] == sizeof(pointer) [%d] %s" msgstr "" -#: init.c:255 +#: init.c:261 #, c-format msgid "Checking sizeof(uint64_t) [%d] is 8 %s" msgstr "" -#: init.c:256 +#: init.c:262 #, c-format msgid "Checking sizeof(int64_t) [%d] is 8 %s" msgstr "" -#: init.c:257 +#: init.c:263 #, c-format msgid "Checking sizeof(signed char) [%d] is 1 %s" msgstr "" -#: init.c:258 +#: init.c:264 #, c-format msgid "Checking sizeof(int8_t) [%d] is 1 %s" msgstr "" -#: init.c:259 +#: init.c:265 #, c-format msgid "Checking sizeof(uint8_t) [%d] is 1 %s" msgstr "" -#: init.c:260 +#: init.c:266 #, c-format msgid "Checking sizeof(int16_t) [%d] is 2 %s" msgstr "" -#: init.c:261 +#: init.c:267 #, c-format msgid "Checking sizeof(uint16_t) [%d] is 2 %s" msgstr "" -#: init.c:264 +#: init.c:270 #, c-format msgid "Checking LENGTH(allocVector(INTSXP,2)) [%d] is 2 %s" msgstr "" -#: init.c:265 +#: init.c:271 #, c-format msgid "Checking TRUELENGTH(allocVector(INTSXP,2)) [%d] is 0 %s" msgstr "" -#: init.c:272 +#: init.c:278 #, c-format msgid "Checking memset(&i,0,sizeof(int)); i == (int)0 %s" msgstr "" -#: init.c:275 +#: init.c:281 #, c-format msgid "Checking memset(&ui, 0, sizeof(unsigned int)); ui == (unsigned int)0 %s" msgstr "" -#: init.c:278 +#: init.c:284 #, c-format msgid "Checking memset(&d, 0, sizeof(double)); d == (double)0.0 %s" msgstr "" -#: init.c:281 +#: init.c:287 #, c-format msgid "Checking memset(&ld, 0, sizeof(long double)); ld == (long double)0.0 %s" msgstr "" -#: init.c:284 +#: init.c:290 msgid "The ascii character '/' is not just before '0'" msgstr "" -#: init.c:285 +#: init.c:291 msgid "The C expression (uint_fast8_t)('/'-'0')<10 is true. Should be false." msgstr "" -#: init.c:286 +#: init.c:292 msgid "The ascii character ':' is not just after '9'" msgstr "" -#: init.c:287 +#: init.c:293 msgid "The C expression (uint_fast8_t)('9'-':')<10 is true. Should be false." msgstr "" -#: init.c:292 +#: init.c:298 #, c-format msgid "Conversion of NA_INT64 via double failed %!=%" msgstr "" -#: init.c:296 +#: init.c:302 msgid "NA_INT64_D (negative -0.0) is not == 0.0." msgstr "" -#: init.c:297 +#: init.c:303 msgid "NA_INT64_D (negative -0.0) is not ==-0.0." msgstr "" -#: init.c:298 +#: init.c:304 msgid "ISNAN(NA_INT64_D) is TRUE but should not be" msgstr "" -#: init.c:299 +#: init.c:305 msgid "isnan(NA_INT64_D) is TRUE but should not be" msgstr "" -#: init.c:328 +#: init.c:337 #, c-format msgid "PRINTNAME(install(\"integer64\")) has returned %s not %s" msgstr "" -#: init.c:397 +#: init.c:408 msgid ".Last.value in namespace is not a length 1 integer" msgstr "" @@ -3679,111 +3692,111 @@ msgstr "" msgid "'x' argument must be numeric type, or list/data.table of numeric types" msgstr "" -#: nafill.c:149 nafill.c:180 +#: nafill.c:159 nafill.c:190 msgid "" "Internal error: invalid type argument in nafillR function, should have been " "caught before. Please report to data.table issue tracker." msgstr "" -#: nafill.c:196 +#: nafill.c:206 #, c-format msgid "%s: parallel processing of %d column(s) took %.3fs\n" msgstr "" -#: openmp-utils.c:22 +#: openmp-utils.c:23 #, c-format msgid "" -"Ignoring invalid %s==\")%s\". Not an integer >= 1. Please remove any " +"Ignoring invalid %s==\"%s\". Not an integer >= 1. Please remove any " "characters that are not a digit [0-9]. See ?data.table::setDTthreads." msgstr "" -#: openmp-utils.c:40 +#: openmp-utils.c:44 #, c-format msgid "" "Ignoring invalid R_DATATABLE_NUM_PROCS_PERCENT==%d. If used it must be an " "integer between 2 and 100. Default is 50. See ?setDTtheads." msgstr "" -#: openmp-utils.c:67 +#: openmp-utils.c:78 msgid "'verbose' must be TRUE or FALSE" msgstr "" -#: openmp-utils.c:70 +#: openmp-utils.c:81 msgid "" "This installation of data.table has not been compiled with OpenMP support.\n" msgstr "" -#: openmp-utils.c:75 +#: openmp-utils.c:86 #, c-format msgid " omp_get_num_procs() %d\n" msgstr "" -#: openmp-utils.c:76 +#: openmp-utils.c:87 #, c-format msgid " R_DATATABLE_NUM_PROCS_PERCENT %s\n" msgstr "" -#: openmp-utils.c:77 +#: openmp-utils.c:88 #, c-format msgid " R_DATATABLE_NUM_THREADS %s\n" msgstr "" -#: openmp-utils.c:78 +#: openmp-utils.c:89 +#, c-format +msgid " R_DATATABLE_THROTTLE %s\n" +msgstr "" + +#: openmp-utils.c:90 #, c-format msgid " omp_get_thread_limit() %d\n" msgstr "" -#: openmp-utils.c:79 +#: openmp-utils.c:91 #, c-format msgid " omp_get_max_threads() %d\n" msgstr "" -#: openmp-utils.c:80 +#: openmp-utils.c:92 #, c-format msgid " OMP_THREAD_LIMIT %s\n" msgstr "" -#: openmp-utils.c:81 +#: openmp-utils.c:93 #, c-format msgid " OMP_NUM_THREADS %s\n" msgstr "" -#: openmp-utils.c:82 +#: openmp-utils.c:94 #, c-format msgid " RestoreAfterFork %s\n" msgstr "" -#: openmp-utils.c:83 +#: openmp-utils.c:95 #, c-format -msgid " data.table is using %d threads. See ?setDTthreads.\n" +msgid "" +" data.table is using %d threads with throttle==%d. See ?setDTthreads.\n" msgstr "" -#: openmp-utils.c:91 +#: openmp-utils.c:103 msgid "" "restore_after_fork= must be TRUE, FALSE, or NULL (default). " "getDTthreads(verbose=TRUE) reports the current setting.\n" msgstr "" -#: openmp-utils.c:105 -#, c-format -msgid "" -"threads= must be either NULL (default) or a single number. It has length %d" -msgstr "" - -#: openmp-utils.c:107 -msgid "threads= must be either NULL (default) or type integer/numeric" +#: openmp-utils.c:109 +msgid "'throttle' must be a single number, non-NA, and >=1" msgstr "" -#: openmp-utils.c:109 +#: openmp-utils.c:123 msgid "" -"threads= must be either NULL or a single integer >= 0. See ?setDTthreads." +"threads= must be either NULL or a single number >= 0. See ?setDTthreads." msgstr "" -#: openmp-utils.c:114 +#: openmp-utils.c:127 msgid "Internal error: percent= must be TRUE or FALSE at C level" msgstr "" -#: openmp-utils.c:117 +#: openmp-utils.c:130 #, c-format msgid "" "Internal error: threads==%d should be between 2 and 100 (percent=TRUE at C " @@ -4015,15 +4028,20 @@ msgstr "" msgid "nrow(x)[%d]!=length(order)[%d]" msgstr "" -#: reorder.c:48 +#: reorder.c:51 #, c-format -msgid "order is not a permutation of 1:nrow[%d]" +msgid "" +"Item %d of order (%d) is either NA, out of range [1,%d], or is duplicated. " +"The new order must be a strict permutation of 1:n" +msgstr "" + +#: reorder.c:105 +msgid "dt passed to setcolorder has no names" msgstr "" -#: reorder.c:57 +#: reorder.c:107 #, c-format -msgid "" -"Unable to allocate %d * %d bytes of working memory for reordering data.table" +msgid "Internal error: dt passed to setcolorder has %d columns but %d names" msgstr "" #: shift.c:17 @@ -4057,98 +4075,98 @@ msgstr "" msgid "Internal error: subsetVectorRaw length(ans)==%d n=%d" msgstr "" -#: subset.c:88 +#: subset.c:101 #, c-format msgid "" "Internal error: column type '%s' not supported by data.table subset. All " "known types are supported so please report as bug." msgstr "" -#: subset.c:97 subset.c:121 +#: subset.c:110 subset.c:134 #, c-format msgid "Internal error. 'idx' is type '%s' not 'integer'" msgstr "" -#: subset.c:122 +#: subset.c:135 #, c-format msgid "" "Internal error. 'maxArg' is type '%s' and length %d, should be an integer " "singleton" msgstr "" -#: subset.c:123 +#: subset.c:136 msgid "Internal error: allowOverMax must be TRUE/FALSE" msgstr "" -#: subset.c:125 +#: subset.c:138 #, c-format msgid "Internal error. max is %d, must be >= 0." msgstr "" -#: subset.c:149 +#: subset.c:162 #, c-format msgid "i[%d] is %d which is out of range [1,nrow=%d]" msgstr "" -#: subset.c:161 +#: subset.c:174 #, c-format msgid "" "Item %d of i is %d and item %d is %d. Cannot mix positives and negatives." msgstr "" -#: subset.c:171 +#: subset.c:184 #, c-format msgid "Item %d of i is %d and item %d is NA. Cannot mix negatives and NA." msgstr "" -#: subset.c:207 +#: subset.c:220 #, c-format msgid "" "Item %d of i is %d but there are only %d rows. Ignoring this and %d more " "like it out of %d." msgstr "" -#: subset.c:209 +#: subset.c:222 #, c-format msgid "" "Item %d of i is %d which removes that item but that has occurred before. " "Ignoring this dup and %d other dups." msgstr "" -#: subset.c:223 +#: subset.c:236 #, c-format msgid "Column %d is NULL; malformed data.table." msgstr "" -#: subset.c:226 +#: subset.c:239 #, c-format msgid "Column %d ['%s'] is a data.frame or data.table; malformed data.table." msgstr "" -#: subset.c:231 +#: subset.c:244 #, c-format msgid "" "Column %d ['%s'] is length %d but column 1 is length %d; malformed data." "table." msgstr "" -#: subset.c:247 +#: subset.c:260 #, c-format msgid "Internal error. Argument 'x' to CsubsetDT is type '%s' not 'list'" msgstr "" -#: subset.c:260 +#: subset.c:273 #, c-format msgid "Internal error. Argument 'cols' to Csubset is type '%s' not 'integer'" msgstr "" -#: subset.c:337 +#: subset.c:350 msgid "" "Internal error: NULL can not be subset. It is invalid for a data.table to " "contain a NULL column." msgstr "" -#: subset.c:339 +#: subset.c:352 msgid "" "Internal error: CsubsetVector is internal-use-only but has received " "negatives, zeros or out-of-range" @@ -4198,118 +4216,118 @@ msgstr "" msgid "Internal error: uniqlist has been passed length(order)==%d but nrow==%d" msgstr "" -#: uniqlist.c:96 uniqlist.c:127 uniqlist.c:208 uniqlist.c:245 uniqlist.c:318 +#: uniqlist.c:96 uniqlist.c:128 uniqlist.c:209 uniqlist.c:246 uniqlist.c:319 #, c-format msgid "Type '%s' not supported" msgstr "" -#: uniqlist.c:148 +#: uniqlist.c:149 msgid "Input argument 'x' to 'uniqlengths' must be an integer vector" msgstr "" -#: uniqlist.c:149 +#: uniqlist.c:150 msgid "" "Input argument 'n' to 'uniqlengths' must be an integer vector of length 1" msgstr "" -#: uniqlist.c:167 +#: uniqlist.c:168 msgid "cols must be an integer vector with length >= 1" msgstr "" -#: uniqlist.c:171 +#: uniqlist.c:172 #, c-format msgid "Item %d of cols is %d which is outside range of l [1,length(l)=%d]" msgstr "" -#: uniqlist.c:174 +#: uniqlist.c:175 #, c-format msgid "" "All elements to input list must be of same length. Element [%d] has length " "% != length of first element = %." msgstr "" -#: uniqlist.c:255 +#: uniqlist.c:256 msgid "Internal error: nestedid was not passed a list length 1 or more" msgstr "" -#: uniqlist.c:262 +#: uniqlist.c:263 #, c-format msgid "Internal error: nrows[%d]>0 but ngrps==0" msgstr "" -#: uniqlist.c:264 +#: uniqlist.c:265 msgid "cols must be an integer vector of positive length" msgstr "" -#: uniqlist.c:349 +#: uniqlist.c:350 msgid "x is not a logical vector" msgstr "" -#: utils.c:73 +#: utils.c:80 #, c-format msgid "Unsupported type '%s' passed to allNA()" msgstr "" -#: utils.c:92 +#: utils.c:99 msgid "'x' argument must be data.table compatible" msgstr "" -#: utils.c:94 +#: utils.c:101 msgid "'check_dups' argument must be TRUE or FALSE" msgstr "" -#: utils.c:110 +#: utils.c:117 msgid "" "argument specifying columns is type 'double' and one or more items in it are " "not whole integers" msgstr "" -#: utils.c:116 +#: utils.c:123 #, c-format msgid "argument specifying columns specify non existing column(s): cols[%d]=%d" msgstr "" -#: utils.c:121 +#: utils.c:128 msgid "'x' argument data.table has no names" msgstr "" -#: utils.c:126 +#: utils.c:133 #, c-format msgid "" "argument specifying columns specify non existing column(s): cols[%d]='%s'" msgstr "" -#: utils.c:129 +#: utils.c:136 msgid "argument specifying columns must be character or numeric" msgstr "" -#: utils.c:132 +#: utils.c:139 msgid "argument specifying columns specify duplicated column(s)" msgstr "" -#: utils.c:138 +#: utils.c:145 #, c-format msgid "%s: fill argument must be length 1" msgstr "" -#: utils.c:171 +#: utils.c:178 #, c-format msgid "%s: fill argument must be numeric" msgstr "" -#: utils.c:273 +#: utils.c:280 #, c-format msgid "Internal error: unsupported type '%s' passed to copyAsPlain()" msgstr "" -#: utils.c:277 +#: utils.c:284 #, c-format msgid "" "Internal error: type '%s' passed to copyAsPlain() but it seems " "copyMostAttrib() retains ALTREP attributes" msgstr "" -#: utils.c:312 +#: utils.c:319 #, c-format msgid "Found and copied %d column%s with a shared memory address\n" msgstr "" diff --git a/po/zh_CN.po b/po/zh_CN.po index 6a95727f0..3965a017e 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: data.table 1.12.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-12-30 01:24+0800\n" +"POT-Creation-Date: 2020-07-17 14:38+0800\n" "PO-Revision-Date: 2019-11-18 00:26-04\n" "Last-Translator: Yuhang Chen \n" "Language-Team: Mandarin\n" @@ -44,19 +44,19 @@ msgstr "内部错误: .internal.selfref ptr不为NULL或R_NilValue" msgid "Internal error: .internal.selfref tag isn't NULL or a character vector" msgstr "内部错误: .internal.selfref ptr不为NULL或字符向量" -#: assign.c:168 +#: assign.c:180 msgid "Internal error: length(names)>0 but =0 and not NA." msgstr "getOption('datatable.alloc')值为%d, 其必须大于等于零且不能为NA" -#: assign.c:239 fsort.c:109 +#: assign.c:251 fsort.c:109 msgid "verbose must be TRUE or FALSE" msgstr "verbose参数必须为TRUE或FALSE" -#: assign.c:287 +#: assign.c:299 msgid "assign has been passed a NULL dt" msgstr "赋值已经被传递给一个空的(NULL)dt" -#: assign.c:288 +#: assign.c:300 msgid "dt passed to assign isn't type VECSXP" msgstr "传递给赋值操作的dt不是VECSXP类型" -#: assign.c:290 +#: assign.c:302 msgid "" ".SD is locked. Updating .SD by reference using := or set are reserved for " "future use. Use := in j directly. Or use copy(.SD) as a (slow) last resort, " @@ -151,20 +151,20 @@ msgstr "" ".SD被锁定。 使用':='更新.SD操作保留将来使用对'j'直接使用':=', 或可以使用" "copy(.SD), 直到导出shallow()" -#: assign.c:298 +#: assign.c:310 msgid "Internal error: dt passed to Cassign is not a data.table or data.frame" msgstr "内部错误: 传递给赋值操作的dt不是data.table或data.frame类型" -#: assign.c:302 +#: assign.c:314 msgid "dt passed to assign has no names" msgstr "传递给赋值操作的dt没有命名" -#: assign.c:304 +#: assign.c:316 #, c-format msgid "Internal error in assign: length of names (%d) is not length of dt (%d)" msgstr "赋值的内部错误: names的长度(%d)与dt的长度(%d)不匹配" -#: assign.c:306 +#: assign.c:318 msgid "" "data.table is NULL; malformed. A null data.table should be an empty list. " "typeof() should always return 'list' for data.table." @@ -172,18 +172,18 @@ msgstr "" "data.table为空, 格式错误,一个null的data.table应该为空的列表list即对data." "table使用typeof()函数应该返回'list'类型" -#: assign.c:315 +#: assign.c:327 #, c-format msgid "Assigning to all %d rows\n" msgstr "为所有的%d行赋值\n" -#: assign.c:320 +#: assign.c:332 msgid "" "Coerced i from numeric to integer. Please pass integer for efficiency; e.g., " "2L rather than 2" msgstr "将i由数值型强制转换为整数型。请直接传入整数以提高效率,如传入2L而非2" -#: assign.c:323 +#: assign.c:335 #, c-format msgid "" "i is type '%s'. Must be integer, or numeric is coerced with warning. If i is " @@ -194,26 +194,26 @@ msgstr "" "整型并发出警告)。如果 i 为一个用于筛选的逻辑(logical)向量,请直接将它传给 " "which(),且如果可能的话将 which() 放置于循环之外以保持高效。" -#: assign.c:329 +#: assign.c:341 #, c-format msgid "i[%d] is %d which is out of range [1,nrow=%d]." msgstr "i[%d] 为 %d 且超出了范围 [1,nrow=%d]。" -#: assign.c:332 +#: assign.c:344 #, c-format msgid "Assigning to %d row subset of %d rows\n" msgstr "正在为 %d 行(总数为 %d 行)进行赋值\n" -#: assign.c:340 +#: assign.c:352 #, c-format msgid "Added %d new column%s initialized with all-NA\n" msgstr "添加了 %d 个新列 %s 并全部初始化为 NA\n" -#: assign.c:345 +#: assign.c:357 msgid "length(LHS)==0; no columns to delete or assign RHS to." msgstr "左手侧长度为0(length(LHS)==0);没有列可供删除或赋值给右手侧(RHS)。" -#: assign.c:359 +#: assign.c:371 msgid "" "set() on a data.frame is for changing existing columns, not adding new ones. " "Please use a data.table for that. data.table's are over-allocated and don't " @@ -223,7 +223,7 @@ msgstr "" "table 来添加新列。data.table 的操作是超额分配的(over-allocated)并且不进行浅" "拷贝(shallow copy)。" -#: assign.c:370 +#: assign.c:382 msgid "" "Coerced j from numeric to integer. Please pass integer for efficiency; e.g., " "2L rather than 2" @@ -231,7 +231,7 @@ msgstr "" "将 j 从数值(numeric)型自动转换为整(integer)型。为了保持高效请直接传入整" "型,如2L 而非 2" -#: assign.c:373 +#: assign.c:385 #, c-format msgid "" "j is type '%s'. Must be integer, character, or numeric is coerced with " @@ -240,22 +240,22 @@ msgstr "" "j 为 '%s' 型。j 必须为整(integer)型、字符(character)型,或数值(numeric)" "型(将被自动转换成整型并发出警告)。" -#: assign.c:375 +#: assign.c:387 msgid "" "Can't assign to the same column twice in the same query (duplicates " "detected)." msgstr "在一次查询中无法对同一列赋值两次(检测出重复项)。" -#: assign.c:376 +#: assign.c:388 msgid "newcolnames is supplied but isn't a character vector" msgstr "指定了 newcolnames 但其并非一字符串向量" -#: assign.c:378 +#: assign.c:390 #, c-format msgid "RHS_list_of_columns == %s\n" msgstr "RHS_list_of_columns == %s\n" -#: assign.c:383 +#: assign.c:395 #, c-format msgid "" "RHS_list_of_columns revised to true because RHS list has 1 item which is " @@ -264,7 +264,7 @@ msgstr "" "RHS_list_of_columns 改为真(True),因为右手侧列表(RHS list)有一子项为空值" "(NULL)或长度 %d 为 1 或 targetlen(%d)。请拆开右手侧。\n" -#: assign.c:388 +#: assign.c:400 #, c-format msgid "" "Supplied %d columns to be assigned an empty list (which may be an empty data." @@ -275,19 +275,19 @@ msgstr "" "后两者也是列表的一种)。删除多个列时请使用空值(NULL)。添加多个空列表列" "(list columns)时,请使用 list(list())。" -#: assign.c:393 +#: assign.c:405 #, c-format msgid "Recycling single RHS list item across %d columns. Please unwrap RHS.\n" msgstr "" "回收重用(Recycling)单个右手侧(RHS)列表子项于 %d 列。请拆开右手侧。\n" -#: assign.c:395 +#: assign.c:407 #, c-format msgid "" "Supplied %d columns to be assigned %d items. Please see NEWS for v1.12.2." msgstr "试图将 %2$d 项赋值给 %1$d 列。请阅读 v1.12.2 的更新信息(NEWS)。" -#: assign.c:403 +#: assign.c:415 #, c-format msgid "" "Item %d of column numbers in j is %d which is outside range [1,ncol=%d]. " @@ -297,7 +297,7 @@ msgstr "" "j 中的列编号里第 %d 项是 %d,超出了有效范围 [1,ncol=%d]。数据框(data.frame)" "的 set() 是用于修改现有列,而非添加新列。请使用 data.table 来添加新列。" -#: assign.c:404 +#: assign.c:416 #, c-format msgid "" "Item %d of column numbers in j is %d which is outside range [1,ncol=%d]. Use " @@ -306,11 +306,11 @@ msgstr "" "j 中的列编号里第 %d 项是 %d,超出了有效范围 [1,ncol=%d]。请在 j 中使用列名来" "添加新列。" -#: assign.c:409 +#: assign.c:421 msgid "When deleting columns, i should not be provided" msgstr "当删除列时,不应指定 i" -#: assign.c:415 +#: assign.c:427 #, c-format msgid "" "RHS of assignment to existing column '%s' is zero length but not NULL. If " @@ -326,23 +326,23 @@ msgstr "" "一个与该列原数据等长的向量,如 vector('list',nrow(DT)),即,用新数据替换" "(plonk)重新生成该列。" -#: assign.c:420 +#: assign.c:432 #, c-format msgid "" "Internal error in assign.c: length(newcolnames)=%d, length(names)=%d, coln=%d" msgstr "assign.c 内部错误:length(newcolnames)=%d, length(names)=%d, coln=%d" -#: assign.c:422 +#: assign.c:434 #, c-format msgid "Column '%s' does not exist to remove" msgstr "要删除的列 '%s' 不存在" -#: assign.c:428 +#: assign.c:440 #, c-format msgid "%d column matrix RHS of := will be treated as one vector" msgstr "':=' 右手侧(RHS)%d 列矩阵将被视为一维向量" -#: assign.c:432 +#: assign.c:444 #, c-format msgid "" "Can't assign to column '%s' (type 'factor') a value of type '%s' (not " @@ -351,7 +351,7 @@ msgstr "" "无法给因子(factor)类型列 '%s' 赋类型为 '%s' 的值(不是字符(character)、因" "子(factor)、整数(integer)或数值(numeric)类中的一种)" -#: assign.c:437 +#: assign.c:449 #, c-format msgid "" "Supplied %d items to be assigned to %d items of column '%s'. If you wish to " @@ -361,7 +361,7 @@ msgstr "" "试图将 %d 项赋值给 %d 项(列 '%s')。如果想'回收重用'('recycle')右手侧,请" "使用 rep() 以将该意图清晰地表述给阅读代码的人。" -#: assign.c:447 +#: assign.c:459 msgid "" "This data.table has either been loaded from disk (e.g. using readRDS()/" "load()) or constructed manually (e.g. using structure()). Please run setDT() " @@ -372,7 +372,7 @@ msgstr "" "structure() )。在通过引用的方式进行赋值前,请先运行 setDT() 或 setalloccol() " "来为增加的列预先分配空间" -#: assign.c:448 +#: assign.c:460 #, c-format msgid "" "Internal error: oldtncol(%d) < oldncol(%d). Please report to data.table " @@ -381,7 +381,7 @@ msgstr "" "内部错误: oldtncol(%d) < oldncol(%d)。 请将此问题汇报给 data.table 问题追踪" "器,包括 sessionInfo() 的信息。" -#: assign.c:450 +#: assign.c:462 #, c-format msgid "" "truelength (%d) is greater than 10,000 items over-allocated (length = %d). " @@ -393,7 +393,7 @@ msgstr "" "truelength。如果你没有将 datatable.alloccol 设置为非常大的数值,请将此问题汇" "报给 data.table 问题追踪器,包含 sessionInfo() 的信息" -#: assign.c:452 +#: assign.c:464 #, c-format msgid "" "Internal error: DT passed to assign has not been allocated enough column " @@ -401,7 +401,7 @@ msgid "" msgstr "" "内部错误: 传递出去赋值的 DT 没有被分配足够的列槽。 l=%d, tl=%d, 增加 %d" -#: assign.c:454 +#: assign.c:466 msgid "" "It appears that at some earlier point, names of this data.table have been " "reassigned. Please ensure to use setnames() rather than names<- or " @@ -411,18 +411,18 @@ msgstr "" "names<- 或 colnames<- 进行赋值。如果该办法无效,请将此问题汇报给 data.table " "问题追踪器,包含 sessionInfo() 的信息" -#: assign.c:458 +#: assign.c:470 #, c-format msgid "Internal error: selfrefnames is ok but tl names [%d] != tl [%d]" msgstr "内部错误: selfrefnames 正确,但 tl 的名称 [%d] != tl [%d]" -#: assign.c:469 +#: assign.c:481 msgid "" "Internal error: earlier error 'When deleting columns, i should not be " "provided' did not happen." msgstr "内部错误: 前期的错误 '当删除列的时候,不应该提供参数 i ' 没有发生" -#: assign.c:480 +#: assign.c:492 #, c-format msgid "" "RHS for item %d has been duplicated because NAMED==%d MAYBE_SHARED==%d, but " @@ -431,12 +431,12 @@ msgstr "" "因为 NAMED==%d MAYBE_SHARED==%d, 所以条目 %d 的 RHS 已经被复制,但是接下来又" "要被替换了。length(values)==%d; length(cols)==%d)\n" -#: assign.c:485 +#: assign.c:497 #, c-format msgid "Direct plonk of unnamed RHS, no copy. NAMED==%d, MAYBE_SHARED==%d\n" msgstr "直接替换没有名字的 RHS,并没有复制。 NAMED==%d, MAYBE_SHARED==%d\n" -#: assign.c:554 +#: assign.c:566 #, c-format msgid "" "Dropping index '%s' as it doesn't have '__' at the beginning of its name. It " @@ -445,38 +445,50 @@ msgstr "" "丢掉索引 '%s' 因为它的名字前面没有 '__' 。这个很可能是 data.table v1.9.4 创建" "的\n" -#: assign.c:562 +#: assign.c:574 msgid "Internal error: index name ends with trailing __" msgstr "内部错误: 索引名称以 __ 结尾" -#: assign.c:567 +#: assign.c:579 msgid "Internal error: Couldn't allocate memory for s4." msgstr "内部错误: 不能给 s4 分配内存" -#: assign.c:578 +#: assign.c:590 msgid "Internal error: Couldn't allocate memory for s5." msgstr "内部错误: 不能给 s5 分配内存" -#: assign.c:599 assign.c:615 +#: assign.c:611 assign.c:627 #, c-format msgid "Dropping index '%s' due to an update on a key column\n" msgstr " 因为一个主列的更新,丢掉索引 '%s'\n" -#: assign.c:608 +#: assign.c:620 #, c-format msgid "Shortening index '%s' to '%s' due to an update on a key column\n" msgstr "因为一个主列的更新,缩短索引 '%s' 到 '%s'\n" -#: assign.c:680 +#: assign.c:695 +#, c-format +msgid "" +"Internal error memrecycle: sourceStart=%d sourceLen=%d length(source)=%d" +msgstr "" +"memrecycle 内部错误:sourceStart=%d sourceLen=%d length(source)=%d" + +#: assign.c:697 +#, c-format +msgid "Internal error memrecycle: start=%d len=%d length(target)=%d" +msgstr "memrecycle 内部错误:start=%d len=%d length(target)=%d" + +#: assign.c:700 #, c-format msgid "Internal error: recycle length error not caught earlier. slen=%d len=%d" msgstr "内部错误: 早期未被发现的循环长度错误 slen=%d len=%d" -#: assign.c:684 +#: assign.c:704 msgid "Internal error: memrecycle has received NULL colname" msgstr "内部错误: memrecycle 接受到的列名为 NULL " -#: assign.c:710 +#: assign.c:730 #, c-format msgid "" "Cannot assign 'factor' to '%s'. Factors can only be assigned to factor, " @@ -484,14 +496,14 @@ msgid "" msgstr "" "不能将 'factor' 赋值为 '%s' 。因子类型只能赋值为因子,字符或者列表其中的列" -#: assign.c:724 +#: assign.c:744 #, c-format msgid "" "Assigning factor numbers to column %d named '%s'. But %d is outside the " "level range [1,%d]" msgstr "将列 %d 名称为 '%s' 赋值为因子。但是 %d 在层次范围[1,%d]之外" -#: assign.c:732 +#: assign.c:752 #, c-format msgid "" "Assigning factor numbers to column %d named '%s'. But %f is outside the " @@ -500,7 +512,7 @@ msgstr "" "将列 %d 名称为 '%s' 赋值为因子。但是 %f 在层次范围[1,%d]之外,或者不是一个完" "整的数字" -#: assign.c:738 +#: assign.c:758 #, c-format msgid "" "Cannot assign '%s' to 'factor'. Factor columns can be assigned factor, " @@ -508,28 +520,28 @@ msgid "" msgstr "" "不能将 'factor' 赋值为 '%s' 。 因子列可被赋值为因子,字符 ,NA 或者 层次数值" -#: assign.c:759 +#: assign.c:779 msgid "" "Internal error: levels of target are either not unique or have truelength<0" msgstr "内部错误: 目标的层次不是唯一或者长度<0" -#: assign.c:798 +#: assign.c:818 #, c-format msgid "Unable to allocate working memory of %d bytes to combine factor levels" msgstr "不能分配 %d 字节的工作内存来组合因子层次" -#: assign.c:805 +#: assign.c:825 msgid "Internal error: extra level check sum failed" msgstr "内部错误: 额外的层次校验和失败" -#: assign.c:824 +#: assign.c:844 #, c-format msgid "" "Coercing 'character' RHS to '%s' to match the type of the target column " "(column %d named '%s')." msgstr "将'character' RHS 强制转换成 '%s' 来匹配目标列的类型(列 %d 名称 '%s')" -#: assign.c:830 +#: assign.c:850 #, c-format msgid "" "Cannot coerce 'list' RHS to 'integer64' to match the type of the target " @@ -537,40 +549,40 @@ msgid "" msgstr "" "不能将'list' RHS 强制转换成 'integer64' 来匹配目标列的类型(列 %d 名称 '%s')" -#: assign.c:835 +#: assign.c:855 #, c-format msgid "" "Coercing 'list' RHS to '%s' to match the type of the target column (column " "%d named '%s')." msgstr "将'list' RHS 强制转换成 '%s' 来匹配目标列的类型(列 %d 名称 '%s')" -#: assign.c:841 +#: assign.c:861 #, c-format msgid "Zero-copy coerce when assigning '%s' to '%s' column %d named '%s'.\n" msgstr "当 '%s' 赋值成 '%s' 列 %d 名称 '%s',进行Zero-copy强制转换。\n" -#: assign.c:936 +#: assign.c:956 #, c-format msgid "type '%s' cannot be coerced to '%s'" msgstr "类型 '%s' 不能强制转换成 '%s'" -#: assign.c:1056 +#: assign.c:1076 msgid "" "To assign integer64 to a character column, please use as.character() for " "clarity." msgstr "请使用 as.character() 把 integer64 类型的数值赋值给字符列" -#: assign.c:1068 +#: assign.c:1088 #, c-format msgid "Unsupported column type in assign.c:memrecycle '%s'" msgstr "assign.c:memrecycle '%s' 里有不支持的列的类型" -#: assign.c:1115 +#: assign.c:1135 #, c-format msgid "Internal error: writeNA passed a vector of type '%s'" msgstr "内部错误:writeNA 函数读取到了一个类型是'%s'的向量" -#: assign.c:1146 +#: assign.c:1166 #, c-format msgid "" "Internal error: savetl_init checks failed (%d %d %p %p). please report to " @@ -579,12 +591,12 @@ msgstr "" "内部错误:savetl_init的校验失败 (%d %d %p %p),请将此问题汇报给data.table 问" "题追踪器。" -#: assign.c:1154 +#: assign.c:1174 #, c-format msgid "Failed to allocate initial %d items in savetl_init" msgstr "不能为 savetl_init 最开始的 %d 个项分配空间" -#: assign.c:1163 +#: assign.c:1183 #, c-format msgid "" "Internal error: reached maximum %d items for savetl. Please report to data." @@ -593,58 +605,40 @@ msgstr "" "内部错误:已经达到了 savetl 能处理的子项上限 %d。请将此问题汇报给data.table问" "题追踪器。" -#: assign.c:1170 +#: assign.c:1190 #, c-format msgid "Failed to realloc saveds to %d items in savetl" msgstr "不能给 savetl 里的 %d 个项重新分配 saveds" -#: assign.c:1176 +#: assign.c:1196 #, c-format msgid "Failed to realloc savedtl to %d items in savetl" msgstr "不能给savetl里的 %d 个项提供 savetl" -#: assign.c:1199 +#: assign.c:1219 msgid "x must be a character vector" msgstr "x 必须是一个字符向量" -#: assign.c:1200 +#: assign.c:1220 msgid "'which' must be an integer vector" msgstr "'which' 必须是一个整数向量" -#: assign.c:1201 +#: assign.c:1221 msgid "'new' must be a character vector" msgstr "'new' 必须是一个字符向量" -#: assign.c:1202 +#: assign.c:1222 #, c-format msgid "'new' is length %d. Should be the same as length of 'which' (%d)" msgstr "'new' 的长度是 %d。 它的长度必须和'which' (%d)的长度一致。" -#: assign.c:1205 +#: assign.c:1225 #, c-format msgid "" "Item %d of 'which' is %d which is outside range of the length %d character " "vector" msgstr "'which' 的 %d 项是 %d,这超出了 %d 字符的长度范围" -#: assign.c:1215 -msgid "dt passed to setcolorder has no names" -msgstr "setcolorder读取到的dt并没有名字" - -#: assign.c:1217 -#, c-format -msgid "Internal error: dt passed to setcolorder has %d columns but %d names" -msgstr "内部错误: setcolorder读取到的dt有 %d 列但是有 %d 个名字。" - -#: assign.c:1224 -msgid "" -"Internal error: o passed to Csetcolorder contains an NA or out-of-bounds" -msgstr "内部错误: Csetcolorder读取到的o有一个NA(缺失值)或者是下标出界" - -#: assign.c:1226 -msgid "Internal error: o passed to Csetcolorder contains a duplicate" -msgstr "内部错误: Csetcolorder读取到的o含有一个重复值" - #: between.c:12 #, c-format msgid "" @@ -738,114 +732,123 @@ msgstr "内部错误: icols 不是一个整数向量" msgid "Internal error: xcols is not integer vector" msgstr "内部错误: xcols 不是一个整数向量" -#: bmerge.c:50 +#: bmerge.c:51 +msgid "Internal error: icols and xcols must be non-empty integer vectors." +msgstr "内部错误: icols 不是一个整数向量" + +#: bmerge.c:52 #, c-format msgid "Internal error: length(icols) [%d] > length(xcols) [%d]" msgstr "内部错误: icols[%1$d] 的长度大于 xcols[%2$d] 的长度" -#: bmerge.c:57 +#: bmerge.c:59 #, c-format msgid "Internal error. icols[%d] is NA" msgstr "内部错误: icols[%d] 是 NA, 缺失值" -#: bmerge.c:58 +#: bmerge.c:60 #, c-format msgid "Internal error. xcols[%d] is NA" msgstr "内部错误: xcols[%d] 是 NA, 缺失值" -#: bmerge.c:59 +#: bmerge.c:61 #, c-format msgid "icols[%d]=%d outside range [1,length(i)=%d]" msgstr "icols[%1$d]=%2$d 造成了空间溢出,当前范围是[1,length(i)=%3$d]" -#: bmerge.c:60 +#: bmerge.c:62 #, c-format msgid "xcols[%d]=%d outside range [1,length(x)=%d]" msgstr "xcols[%1$d]=%2$d 造成了空间溢出,当前范围是[1,length(i)=%3$d]" -#: bmerge.c:63 +#: bmerge.c:65 #, c-format msgid "typeof x.%s (%s) != typeof i.%s (%s)" msgstr "x.%1$s (%2$s) 的数据类型和 i.%3$s (%4$s) 的数据类型并不一致" -#: bmerge.c:70 +#: bmerge.c:72 msgid "roll is character but not 'nearest'" msgstr "roll 是字符但并不是最近的" -#: bmerge.c:71 +#: bmerge.c:73 msgid "roll='nearest' can't be applied to a character column, yet." msgstr "roll='最近的'的功能当前并不能被使用在字符列。" -#: bmerge.c:74 +#: bmerge.c:76 msgid "Internal error: roll is not character or double" msgstr "内部错误: roll 不是字符或者是浮点" -#: bmerge.c:79 +#: bmerge.c:81 msgid "rollends must be a length 2 logical vector" msgstr "rollends 必须是一个长度为2的逻辑向量" -#: bmerge.c:89 uniqlist.c:270 +#: bmerge.c:91 uniqlist.c:271 msgid "" "Internal error: invalid value for 'mult'. please report to data.table issue " "tracker" msgstr "内部错误: 'mult' 是无效值。 请将此问题汇报给 data.table 问题追踪器。" -#: bmerge.c:93 +#: bmerge.c:95 msgid "" "Internal error: opArg is not an integer vector of length equal to length(on)" msgstr "内部错误: opArg 不是一个长度为 on 的整数向量" -#: bmerge.c:96 +#: bmerge.c:98 msgid "Internal error: nqgrpArg must be an integer vector" msgstr "内部错误:nqgrpArg 必须为一个整数向量" -#: bmerge.c:102 +#: bmerge.c:104 msgid "Intrnal error: nqmaxgrpArg is not a positive length-1 integer vector" msgstr "内部错误:nqmaxgrpArg不是长度为1的正整型向量" -#: bmerge.c:111 +#: bmerge.c:113 msgid "Internal error in allocating memory for non-equi join" msgstr "不等值联结分配内存出现内部错误" -#: bmerge.c:156 +#: bmerge.c:158 msgid "Internal error: xoArg is not an integer vector" msgstr "内部错误:xoArg不是整型向量" -#: bmerge.c:271 bmerge.c:379 +#: bmerge.c:273 bmerge.c:381 #, c-format msgid "" "Internal error in bmerge_r for '%s' column. Unrecognized value op[col]=%d" msgstr "bmerge_r 针对 '%s' 列的操作出现内部错误。无法识别值 op[col]=%d" -#: bmerge.c:303 +#: bmerge.c:305 #, c-format msgid "Only '==' operator is supported for columns of type %s." msgstr "%s 类型的列仅支持 '==' 操作符。" -#: bmerge.c:410 +#: bmerge.c:412 #, c-format msgid "Type '%s' not supported for joining/merging" msgstr "'%s' 类型不支持联结/归并" -#: bmerge.c:468 +#: bmerge.c:470 msgid "Internal error: xlow!=xupp-1 || xlowxuppIn" msgstr "内部错误:xlow!=xupp-1 或 xlowxuppIn" -#: chmatch.c:4 -#, c-format -msgid "x is type '%s' (must be 'character' or NULL)" -msgstr "x 类型为 '%s' (必须为'character'或 NULL)" - #: chmatch.c:5 #, c-format msgid "table is type '%s' (must be 'character' or NULL)" msgstr "table 类型为 '%s' (必须为 'character' 或 NULL)" -#: chmatch.c:6 +#: chmatch.c:7 msgid "Internal error: either chin or chmatchdup should be true not both" msgstr "内部错误:chin 和 chmatchdup 不能同时为真" -#: chmatch.c:44 +#: chmatch.c:12 +#, c-format +msgid "Internal error: length of SYMSXP is %d not 1" +msgstr "内部错误:SYMSXP的长度为 %d 而非 1" + +#: chmatch.c:19 +#, c-format +msgid "x is type '%s' (must be 'character' or NULL)" +msgstr "x 类型为 '%s' (必须为'character'或 NULL)" + +#: chmatch.c:66 #, c-format msgid "" "Internal error: CHARSXP '%s' has a negative truelength (%d). Please file an " @@ -854,7 +857,7 @@ msgstr "" "内部错误:CHARSXP '%s' 的 truelength (%d) 为负。请将此问题汇报给 data.table " "问题追踪器。" -#: chmatch.c:73 +#: chmatch.c:95 #, c-format msgid "" "Failed to allocate % bytes working memory in chmatchdup: " @@ -936,31 +939,31 @@ msgstr "coalesce 复制了第一项 (inplace=FALSE)\n" msgid "Unsupported type: %s" msgstr "不支持的类型:%s" -#: dogroups.c:14 +#: dogroups.c:15 msgid "Internal error: order not integer vector" msgstr "内部错误:order 不是整型向量" -#: dogroups.c:15 +#: dogroups.c:16 msgid "Internal error: starts not integer" msgstr "内部错误:starts 不是整型" -#: dogroups.c:16 +#: dogroups.c:17 msgid "Internal error: lens not integer" msgstr "内部错误:lens 不是整型" -#: dogroups.c:18 +#: dogroups.c:19 msgid "Internal error: jiscols not NULL but o__ has length" msgstr "内部错误:jiscols 非 NULL,但 o__ 长度不为0" -#: dogroups.c:19 +#: dogroups.c:20 msgid "Internal error: xjiscols not NULL but o__ has length" msgstr "内部错误:jiscols 非 NULL,但 o__ 长度不为0" -#: dogroups.c:20 +#: dogroups.c:21 msgid "'env' should be an environment" msgstr "'env' 应该是一个环境" -#: dogroups.c:39 +#: dogroups.c:40 #, c-format msgid "" "Internal error: unsupported size-0 type '%s' in column %d of 'by' should " @@ -968,16 +971,16 @@ msgid "" msgstr "" "内部错误:未能被提前捕获到 'by' 中第 %2$d 列不支持类型 '%1$s' 且size-0 的问题" -#: dogroups.c:43 +#: dogroups.c:44 #, c-format msgid "!length(bynames)[%d]==length(groups)[%d]==length(grpcols)[%d]" msgstr "!length(bynames)[%d]==length(groups)[%d]==length(grpcols)[%d]" -#: dogroups.c:62 +#: dogroups.c:63 msgid "row.names attribute of .SD not found" msgstr ".SD 的行名属性不存在" -#: dogroups.c:64 +#: dogroups.c:65 #, c-format msgid "" "row.names of .SD isn't integer length 2 with NA as first item; i.e., ." @@ -986,47 +989,43 @@ msgstr "" ".SD 的行名不是长度为2且首个元素为 NA 的整型;例如:set_row_names(). [%s %d " "%d]" -#: dogroups.c:69 +#: dogroups.c:70 msgid "length(names)!=length(SD)" msgstr "length(names)!=length(SD)" -#: dogroups.c:73 +#: dogroups.c:74 #, c-format msgid "" "Internal error: size-0 type %d in .SD column %d should have been caught " "earlier" msgstr "内部错误:未能提前捕获到 .SD 中第 %2$d 列类型 %1$d size-0 的问题" -#: dogroups.c:83 +#: dogroups.c:84 msgid "length(xknames)!=length(xSD)" msgstr "length(xknames)!=length(xSD)" -#: dogroups.c:87 +#: dogroups.c:88 #, c-format msgid "" "Internal error: type %d in .xSD column %d should have been caught by now" msgstr "内部错误:当前未能捕获到 .xSD 中第 %2$d 列类型 %1$d 的问题" -#: dogroups.c:91 +#: dogroups.c:92 #, c-format msgid "length(iSD)[%d] != length(jiscols)[%d]" msgstr "length(iSD)[%d] != length(jiscols)[%d]" -#: dogroups.c:92 +#: dogroups.c:93 #, c-format msgid "length(xSD)[%d] != length(xjiscols)[%d]" msgstr "length(xSD)[%d] != length(xjiscols)[%d]" -#: dogroups.c:155 dogroups.c:184 -msgid "Internal error. Type of column should have been checked by now" -msgstr "内部错误:至此列的类型应已经被检查完成" - -#: dogroups.c:273 +#: dogroups.c:198 #, c-format msgid "j evaluates to type '%s'. Must evaluate to atomic vector or list." msgstr "j的运算结果为'%s'类型。其运算结果必须为原子向量或列表。" -#: dogroups.c:281 +#: dogroups.c:206 msgid "" "All items in j=list(...) should be atomic vectors or lists. If you are " "trying something like j=list(.SD,newcol=mean(colA)) then use := by group " @@ -1036,13 +1035,13 @@ msgstr "" "newcol=mean(colA)) 之类的操作请使用 := by group 代替(更快速),或事后使用 " "cbind()、merge()" -#: dogroups.c:290 +#: dogroups.c:215 msgid "" "RHS of := is NULL during grouped assignment, but it's not possible to delete " "parts of a column." msgstr "用 := 分组时 RHS 为 NULL但無法刪除部分列" -#: dogroups.c:294 +#: dogroups.c:219 #, c-format msgid "" "Supplied %d items to be assigned to group %d of size %d in column '%s'. The " @@ -1054,7 +1053,7 @@ msgstr "" "须是 1(可以是单个值) 或完全符合 LHS 的长度如果您想回收(recycle) RHS,请使用 " "rep() 向你的代码读者明确表达你的意图" -#: dogroups.c:305 +#: dogroups.c:230 msgid "" "Internal error: Trying to add new column by reference but tl is full; " "setalloccol should have run first at R level before getting to this point in " @@ -1063,16 +1062,16 @@ msgstr "" "内部错误 : 尝试依照引用增加新列但 tl 已满在进入 dogroups 之前,setalloccol 应" "该先在 R 运行" -#: dogroups.c:320 +#: dogroups.c:245 #, c-format msgid "Group %d column '%s': %s" msgstr "列 '%2$s' 第 %1$d 组 : %3$s" -#: dogroups.c:327 +#: dogroups.c:252 msgid "j doesn't evaluate to the same number of columns for each group" msgstr "j 估算出的每组的列数不同" -#: dogroups.c:361 +#: dogroups.c:286 #, c-format msgid "" "Column %d of j's result for the first group is NULL. We rely on the column " @@ -1086,7 +1085,7 @@ msgstr "" "(需要一致性)空 (NULL) 列可以出现在后面的组(适当的以 NA 取代并回收)但不能是第 " "1 组请输入空向量代替,例如 integer() 或 numeric()" -#: dogroups.c:364 +#: dogroups.c:289 msgid "" "j appears to be a named vector. The same names will likely be created over " "and over again for each group and slow things down. Try and pass a named " @@ -1095,7 +1094,7 @@ msgstr "" "j 是名称向量,这可能使相同的名称不停重复创建导致速度变慢请尝试输入名称列表(较" "适合 data.table)或是非名称列表代替\n" -#: dogroups.c:366 +#: dogroups.c:291 #, c-format msgid "" "Column %d of j is a named vector (each item down the rows is named, " @@ -1105,7 +1104,7 @@ msgstr "" "j 的第 %d 列是名称向量(整行的项都是名称)为了效率请移除这些名称(避免在每组重复" "创建这些名称)总之他们被忽略了\n" -#: dogroups.c:374 +#: dogroups.c:299 msgid "" "The result of j is a named list. It's very inefficient to create the same " "names over and over again for each group. When j=list(...), any names are " @@ -1117,17 +1116,17 @@ msgstr "" "j=list(...) 时侦测到的所有名称会被移出,待分组完成后再放回来可以使用 " "j=transform() 避免这种加速此讯息可能会在未来升级为警告\n" -#: dogroups.c:386 +#: dogroups.c:311 #, c-format msgid "dogroups: growing from %d to %d rows\n" msgstr "dogroups: 从 %d 列增加至 %d 列\n" -#: dogroups.c:387 +#: dogroups.c:312 #, c-format msgid "dogroups: length(ans)[%d]!=ngrpcols[%d]+njval[%d]" msgstr "dogroups: length(ans)[%d]!=ngrpcols[%d]+njval[%d]" -#: dogroups.c:420 +#: dogroups.c:330 #, c-format msgid "" "Item %d of j's result for group %d is zero length. This will be filled with " @@ -1138,7 +1137,7 @@ msgstr "" "j 的结果第 %d 项在第 %d 组中为零长度(zero length)将使用 %d 个 NA 填入以符合结" "果中最长列的长度后面的分组也有相同问题,但只回报第一组以避免过多警告" -#: dogroups.c:427 +#: dogroups.c:337 #, c-format msgid "" "Column %d of result for group %d is type '%s' but expecting type '%s'. " @@ -1147,7 +1146,7 @@ msgstr "" "结果的第 %d 列在第 %d 组中是 '%s' 类别而非预期的 '%s' 类别所有组的列类别必须" "一致" -#: dogroups.c:429 +#: dogroups.c:339 #, c-format msgid "" "Supplied %d items for column %d of group %d which has %d rows. The RHS " @@ -1159,17 +1158,17 @@ msgstr "" "單個值) 或與 LHS 長度完全匹配如果您想回收(recycle) RHS,请使用 rep() 向你的代" "码读者明确表达你的意图" -#: dogroups.c:444 +#: dogroups.c:354 #, c-format msgid "Wrote less rows (%d) than allocated (%d).\n" msgstr "写入的行 (%d) 少于分配的 (%d)\n" -#: dogroups.c:454 +#: dogroups.c:364 #, c-format msgid "Internal error: block 0 [%d] and block 1 [%d] have both run" msgstr "内部错误 : 区块 0 [%d] 与区块 1 [%d] 都运行了" -#: dogroups.c:456 +#: dogroups.c:366 #, c-format msgid "" "\n" @@ -1178,15 +1177,20 @@ msgstr "" "\n" " %s 花了 %.3fs 在 %d 个组\n" -#: dogroups.c:458 +#: dogroups.c:368 #, c-format msgid " eval(j) took %.3fs for %d calls\n" msgstr " eval(j)取%.3fs给 %d 调用\n" -#: dogroups.c:482 +#: dogroups.c:392 msgid "growVector passed NULL" msgstr "growVector通过NULL" +#: dogroups.c:412 +#, c-format +msgid "Internal error: growVector doesn't support type '%s'" +msgstr "内部错误:growVector 不支持 '%s' 类型" + #: fastmean.c:39 msgid "narm should be TRUE or FALSE" msgstr "narm必须是TRUE或FALSE" @@ -1201,7 +1205,7 @@ msgstr "传递给 fastmean 的是 %s 类型,而不是数值或逻辑类型" msgid "Internal error: type '%s' not caught earlier in fastmean" msgstr "内部错误:先前fastmean没有侦测到类型 '%s' " -#: fcast.c:80 +#: fcast.c:78 #, c-format msgid "Unsupported column type in fcast val: '%s'" msgstr "fcast val不支持的列类型:'%s'" @@ -1210,62 +1214,73 @@ msgstr "fcast val不支持的列类型:'%s'" msgid "Argument 'test' must be logical." msgstr "参数'test'必须是逻辑类型。" -#: fifelse.c:23 +#: fifelse.c:28 #, c-format msgid "" "'yes' is of type %s but 'no' is of type %s. Please make sure that both " "arguments have the same type." msgstr "'yes'是%s类型,但'no'是%s类型。请确认两个参数是同一类型。" -#: fifelse.c:28 +#: fifelse.c:33 msgid "" "'yes' has different class than 'no'. Please make sure that both arguments " "have the same class." msgstr "'yes'的类型与'no'不同。请确认两个参数是同一类型。" -#: fifelse.c:33 +#: fifelse.c:38 msgid "'yes' and 'no' are both type factor but their levels are different." msgstr "'yes'和'no'都是因子类型但他们的因子水平不同。" -#: fifelse.c:38 +#: fifelse.c:43 #, c-format msgid "" "Length of 'yes' is % but must be 1 or length of 'test' (%)." msgstr "'yes'长度是%但长度必须是1或者等于'test'的长度 (%)。" -#: fifelse.c:40 +#: fifelse.c:45 #, c-format msgid "" "Length of 'no' is % but must be 1 or length of 'test' (%)." msgstr "'no'长度是%但长度必须是1或者等于'test'的长度 (%)。" -#: fifelse.c:51 +#: fifelse.c:56 #, c-format msgid "Length of 'na' is % but must be 1" msgstr "'na'长度是%但必须是长度必须是1" -#: fifelse.c:57 +#: fifelse.c:62 #, c-format msgid "" "'yes' is of type %s but 'na' is of type %s. Please make sure that both " "arguments have the same type." msgstr "'yes'是%s类型,但'na'是%s类型。请确认两个参数是同一类型。" -#: fifelse.c:59 +#: fifelse.c:64 msgid "" "'yes' has different class than 'na'. Please make sure that both arguments " "have the same class." msgstr "'yes'的类型与'na'不同。请确认两个参数是同一类型。" -#: fifelse.c:63 +#: fifelse.c:68 msgid "'yes' and 'na' are both type factor but their levels are different." msgstr "'yes'和'na'都是因子类型但他们的因子水平不同" -#: fifelse.c:133 +#: fifelse.c:138 #, c-format msgid "Type %s is not supported." msgstr "不支持类型 %s" +#: fifelse.c:152 +#, c-format +msgid "" +"Received %d inputs; please supply an even number of arguments in ..., " +"consisting of logical condition, resulting value pairs (in that order). Note " +"that the default argument must be named explicitly, e.g., default=0" +msgstr "" +"接收到 %d 个输入。请向 ... 中提供偶数个参数。" +"每一参数需包含逻辑条件判断,以及对应顺序的结果值对。请注意" +"默认参数须明确给出名字,如 default=0" + #: fmelt.c:18 msgid "'x' must be an integer" msgstr "'x'必须是整数" @@ -1457,73 +1472,73 @@ msgstr "ncol(data)为0,返回原 data.table" msgid "names(data) is NULL. Please report to data.table-help" msgstr "names(data)为NULL,请向 data.table-help 报告" -#: forder.c:106 +#: forder.c:107 #, c-format msgid "Failed to realloc thread private group size buffer to %d*4bytes" msgstr "无法将线程私有的组大小缓冲区重新分配为%d*4字节" -#: forder.c:120 +#: forder.c:121 #, c-format msgid "Failed to realloc group size result to %d*4bytes" msgstr "分配%d*4字节内存时失败。" -#: forder.c:263 +#: forder.c:264 #, c-format msgid "" "Logical error. counts[0]=%d in cradix but should have been decremented to 0. " "radix=%d" msgstr "逻辑错误:在 cradix 中的 counts[0] 应该为0,而不是%dradix=%d" -#: forder.c:278 +#: forder.c:279 msgid "Failed to alloc cradix_counts" msgstr "分配 cradix_counts 失败" -#: forder.c:280 +#: forder.c:281 msgid "Failed to alloc cradix_tmp" msgstr "分配 cradix_tmp 失败" -#: forder.c:291 +#: forder.c:292 #, c-format msgid "" "Internal error: ustr isn't empty when starting range_str: ustr_n=%d, " "ustr_alloc=%d" msgstr "内部错误:开始运行 range_str 时,ustr 未清空:ustr_n=%d,ustr_alloc=%d" -#: forder.c:292 +#: forder.c:293 msgid "Internal error: ustr_maxlen isn't 0 when starting range_str" msgstr "内部错误:开始 range_str 时,ustr_maxlen 不是0" -#: forder.c:312 +#: forder.c:313 #, c-format msgid "Unable to realloc %d * %d bytes in range_str" msgstr "在 range_str 中,无法重新分配%d * %d字节" -#: forder.c:330 +#: forder.c:331 msgid "Failed to alloc ustr3 when converting strings to UTF8" msgstr "将字符串转换为 UTF8 格式时,无法分配ustr3" -#: forder.c:348 +#: forder.c:349 msgid "Failed to alloc tl when converting strings to UTF8" msgstr "将字符串转换为 UTF8 格式时,无法分配 tl" -#: forder.c:377 +#: forder.c:378 msgid "Must an integer or numeric vector length 1" msgstr "必须是长度为1的整数或数字向量" -#: forder.c:378 +#: forder.c:379 msgid "Must be 2, 1 or 0" msgstr "必须是2、1或者0" -#: forder.c:412 +#: forder.c:413 msgid "Unknown non-finite value; not NA, NaN, -Inf or +Inf" msgstr "未知的取值范围,不属于 NA, NaN, -Inf 或 +Inf" -#: forder.c:434 +#: forder.c:435 msgid "" "Internal error: input is not either a list of columns, or an atomic vector." msgstr "内部错误:输入值既不是列表中的一列,也不是原子向量" -#: forder.c:436 +#: forder.c:437 msgid "" "Internal error: input is an atomic vector (not a list of columns) but by= is " "not NULL" @@ -1531,73 +1546,73 @@ msgstr "" "内部错误:输入值是一个原子向量(而不是列表中的一列),但是'by' 的参数是列表而不" "是NULL" -#: forder.c:438 +#: forder.c:439 msgid "" "Input is an atomic vector (not a list of columns) but order= is not a length " "1 integer" msgstr "" "输入值是一个原子向量(而不是列表中的一列),但参数 order不是长度为1的整数" -#: forder.c:440 +#: forder.c:441 #, c-format msgid "forder.c received a vector type '%s' length %d\n" msgstr "forder.c 接收到一个类型为'%s'长度为%d的向量\n" -#: forder.c:448 +#: forder.c:449 #, c-format msgid "forder.c received %d rows and %d columns\n" msgstr "forder.c 接收到%d行和%d列\n" -#: forder.c:451 +#: forder.c:452 msgid "Internal error: DT is an empty list() of 0 columns" msgstr "内部错误:DT 是一个0列的空 list" -#: forder.c:453 +#: forder.c:454 #, c-format msgid "" "Internal error: DT has %d columns but 'by' is either not integer or is " "length 0" msgstr "内部错误:DT 内部有%d列,但参数 'by' 不是整数或长度为0" -#: forder.c:455 +#: forder.c:456 #, c-format msgid "" "Either order= is not integer or its length (%d) is different to by='s length " "(%d)" msgstr "参数 order 不是整数,或者它的长度(%d)与参数 'by' 指定的长度(%d)不同" -#: forder.c:461 +#: forder.c:462 #, c-format msgid "internal error: 'by' value %d out of range [1,%d]" msgstr "内部错误:参数 'by' 的值%d超出[1,%d]的范围" -#: forder.c:463 +#: forder.c:464 #, c-format msgid "Column %d is length %d which differs from length of column 1 (%d)\n" msgstr "列%d的长度是%d,与第1列的长度(%d)不同\n" -#: forder.c:467 +#: forder.c:468 msgid "retGrp must be TRUE or FALSE" msgstr "retGrp 的参数是逻辑值,必须是 TRUE 或 FALSE" -#: forder.c:470 +#: forder.c:471 msgid "sort must be TRUE or FALSE" msgstr " sort 的参数是逻辑值,必须是 TRUE 或 FALSE" -#: forder.c:473 +#: forder.c:474 msgid "At least one of retGrp= or sort= must be TRUE" msgstr "retGrp 和sort 的参数中,至少一个必须是 TRUE" -#: forder.c:475 +#: forder.c:476 msgid "na.last must be logical TRUE, FALSE or NA of length 1" msgstr "na.last 的参数必须是逻辑值 TRUE, FALSE 或 NA " -#: forder.c:519 +#: forder.c:520 #, c-format msgid "Item %d of order (ascending/descending) is %d. Must be +1 or -1." msgstr "排序(ascending/descending)选项%d是%d,必须是+1 or -1" -#: forder.c:545 +#: forder.c:546 #, c-format msgid "" "\n" @@ -1609,111 +1624,113 @@ msgstr "" "***传递给 forder 的%d列是一个没有小数的8字节 double 类型的日期数据,请考虑使" "用4字节的整数日期(例如IDate)以节省空间和时间\n" -#: forder.c:561 +#: forder.c:562 #, c-format msgid "Column %d passed to [f]order is type '%s', not yet supported." msgstr "传递给 [f]order 的第%d列为 '%s'类型,目前尚不支持。" -#: forder.c:714 +#: forder.c:715 msgid "Internal error: column not supported, not caught earlier" msgstr "内部错误:列有不支持类型,未被前置识别" -#: forder.c:722 +#: forder.c:723 #, c-format msgid "nradix=%d\n" msgstr "nradix=%d\n" -#: forder.c:728 +#: forder.c:729 #, c-format msgid "" "Failed to allocate TMP or UGRP or they weren't cache line aligned: nth=%d" msgstr "分配TMP或UGRP失败或缓存行不一致: nth=%d" -#: forder.c:733 +#: forder.c:734 msgid "Could not allocate (very tiny) group size thread buffers" msgstr "无法分配(极小)块组大小的线程缓冲区" -#: forder.c:794 +#: forder.c:795 #, c-format msgid "Timing block %2d%s = %8.3f %8d\n" msgstr "定时块 %2d%s = %8.3f %8d\n" -#: forder.c:797 +#: forder.c:798 #, c-format msgid "stat[%03d]==%20\n" msgstr "stat[%03d]==%20\n" -#: forder.c:1053 +#: forder.c:1054 #, c-format msgid "Failed to allocate parallel counts. my_n=%d, nBatch=%d" msgstr "分配并行计算失败,my_n=%d, nBatch=%d" -#: forder.c:1162 +#: forder.c:1163 #, c-format msgid "Unable to allocate TMP for my_n=%d items in parallel batch counting" msgstr "无法分配TMP给并行批处理计算的 my_n=%d 项" -#: forder.c:1269 -msgid "" -"is.sorted (R level) and fsorted (C level) only to be used on vectors. If " -"needed on a list/data.table, you'll need the order anyway if not sorted, so " -"use if (length(o<-forder(...))) for efficiency in one step, or equivalent at " -"C level" -msgstr "" -"is.sorted (R层面)和 fsorted (C 层面)使用对象仅为向量。如果需要用于list或data." -"table,需要对其进行排序如果(length(o<-forder(...))),使用提高效率,或相当于" -"在 " +#: forder.c:1270 +msgid "Internal error: issorted 'by' must be NULL or integer vector" +msgstr "内部错误:issorted 参数 'by' 须为 NULL 或一个整数向量" -#: forder.c:1301 +#: forder.c:1274 forder.c:1324 +#, c-format +msgid "issorted 'by' [%d] out of range [1,%d]" +msgstr "issorted 参数 'by' 的值%d超出[1,%d]的范围" + +#: forder.c:1279 +msgid "is.sorted does not work on list columns" +msgstr "is.sorted 不支持列表(list)列" + +#: forder.c:1311 forder.c:1341 forder.c:1375 #, c-format msgid "type '%s' is not yet supported" msgstr "类型 '%s' 目前不支持" -#: forder.c:1310 +#: forder.c:1388 msgid "x must be either NULL or an integer vector" msgstr "x 必须为空值或整型向量" -#: forder.c:1312 +#: forder.c:1390 msgid "nrow must be integer vector length 1" msgstr "nrow 必须为长度为1的整型向量" -#: forder.c:1314 +#: forder.c:1392 #, c-format msgid "nrow==%d but must be >=0" msgstr "nrow==%d 但是必须 >=0" -#: forder.c:1331 +#: forder.c:1409 msgid "x must be type 'double'" msgstr "x 必须为浮点数类型" -#: frank.c:11 +#: frank.c:9 #, c-format msgid "Internal error. Argument 'x' to Cdt_na is type '%s' not 'list'" msgstr "内部错误:参数 'x' 关于 Cdt_na 是 '%s' 类型而不是 'list' 类型" -#: frank.c:12 +#: frank.c:10 #, c-format msgid "Internal error. Argument 'cols' to Cdt_na is type '%s' not 'integer'" msgstr "内部错误:参数 'cols' 关于 Cdt_na 是 '%s' 类型而不是 'integer' 类型" -#: frank.c:16 frank.c:146 subset.c:263 +#: frank.c:14 frank.c:155 subset.c:276 #, c-format msgid "Item %d of 'cols' is %d which is outside 1-based range [1,ncol(x)=%d]" msgstr "'cols' 的 %d 项为 %d ,超出1的范围 [1,ncol(x)=%d]" -#: frank.c:26 frank.c:155 +#: frank.c:24 frank.c:164 #, c-format msgid "" "Column %d of input list x is length %d, inconsistent with first column of " "that item which is length %d." msgstr "输入列表x的列 %d 长度为 %d,不同于第一列的该项长度为 %d" -#: frank.c:65 frank.c:202 transpose.c:88 +#: frank.c:63 frank.c:211 transpose.c:88 #, c-format msgid "Unsupported column type '%s'" msgstr "不支持的列类型 '%s'" -#: frank.c:83 +#: frank.c:82 msgid "" "Internal error: invalid ties.method for frankv(), should have been caught " "before. please report to data.table issue tracker" @@ -1721,17 +1738,17 @@ msgstr "" "内部错误:对于 frankv()的无效值ties.method,应在之前被捕获。请报告给 data." "table issue tracker" -#: frank.c:130 +#: frank.c:139 #, c-format msgid "Internal error: unknown ties value in frank: %d" msgstr "内部错误:frank中有未知的ties值 %d" -#: frank.c:141 +#: frank.c:150 #, c-format msgid "Internal error. Argument 'x' to CanyNA is type '%s' not 'list'" msgstr "内部错误:参数 'x' 关于 CanyNA 是 '%s' 类型而不是'list'类型" -#: frank.c:142 +#: frank.c:151 #, c-format msgid "Internal error. Argument 'cols' to CanyNA is type '%s' not 'integer'" msgstr "内部错误:参数 'cols' 关于 CanyNA 是 '%s' 类型而不是'integer'类型" @@ -1772,217 +1789,217 @@ msgstr "可避免的 %.3f 秒。 %s 复制用时\n" msgid " File copy in RAM took %.3f seconds.\n" msgstr "内存上的文件复制耗时 %.3f 秒\n" -#: fread.c:1093 +#: fread.c:1248 msgid "" "Previous fread() session was not cleaned up properly. Cleaned up ok at the " "beginning of this fread() call.\n" msgstr "之前的会话fread()未正确清理。在当前 fread() 会话开始前清理好\n" -#: fread.c:1096 +#: fread.c:1251 msgid "[01] Check arguments\n" msgstr "[01] 参数检查\n" -#: fread.c:1103 +#: fread.c:1258 #, c-format msgid " Using %d threads (omp_get_max_threads()=%d, nth=%d)\n" msgstr "使用 %d 线程 (omp_get_max_threads()=%d, nth=%d)\n" -#: fread.c:1111 +#: fread.c:1266 msgid "" "Internal error: NAstrings is itself NULL. When empty it should be pointer to " "NULL." msgstr "内部错误:NAstrings 自身为空值。当清空该项会指向NULL空值" -#: fread.c:1129 +#: fread.c:1284 #, c-format msgid "freadMain: NAstring <<%s>> has whitespace at the beginning or end" msgstr "freadMain: NAstring <<%s>> 在开始或者结束处有空白" -#: fread.c:1134 +#: fread.c:1289 #, c-format msgid "" "freadMain: NAstring <<%s>> is recognized as type boolean, this is not " "permitted." msgstr "freadMain: NAstring <<%s>> 被识别为布尔型,这是不允许" -#: fread.c:1144 +#: fread.c:1300 msgid " No NAstrings provided.\n" msgstr "未提供 NAstrings \n" -#: fread.c:1146 +#: fread.c:1302 msgid " NAstrings = [" msgstr " NAstrings = [" -#: fread.c:1149 +#: fread.c:1305 msgid "]\n" msgstr "]\n" -#: fread.c:1151 +#: fread.c:1307 msgid " One or more of the NAstrings looks like a number.\n" msgstr "一个或多个 NAstrings 类似数值\n" -#: fread.c:1153 +#: fread.c:1309 msgid " None of the NAstrings look like numbers.\n" msgstr "没有 NAstrings 为数值\n" -#: fread.c:1155 +#: fread.c:1311 #, c-format msgid " skip num lines = %\n" msgstr "跳过行数为 %\n" -#: fread.c:1156 +#: fread.c:1312 #, c-format msgid " skip to string = <<%s>>\n" msgstr "跳转至 string = <<%s>>\n" -#: fread.c:1157 +#: fread.c:1313 #, c-format msgid " show progress = %d\n" msgstr "显示进程 %d\n" -#: fread.c:1158 +#: fread.c:1314 #, c-format msgid " 0/1 column will be read as %s\n" msgstr " 0/1 列被读取为 %s\n" -#: fread.c:1166 +#: fread.c:1322 #, c-format msgid "sep == quote ('%c') is not allowed" msgstr "sep == quote ('%c') 不被允许" -#: fread.c:1167 +#: fread.c:1323 msgid "dec='' not allowed. Should be '.' or ','" msgstr "dec='' 不允许,应该为 '.' 或者 ','" -#: fread.c:1168 +#: fread.c:1324 #, c-format msgid "sep == dec ('%c') is not allowed" msgstr "sep == dec ('%c') 不允许" -#: fread.c:1169 +#: fread.c:1325 #, c-format msgid "quote == dec ('%c') is not allowed" msgstr "quote == dec ('%c') 不允许" -#: fread.c:1186 +#: fread.c:1342 msgid "[02] Opening the file\n" msgstr "[02] 打开文件\n" -#: fread.c:1189 +#: fread.c:1345 msgid "" " `input` argument is provided rather than a file name, interpreting as raw " "text to read\n" msgstr "提供 `input` 参数而非文件名,理解为原始的文本读取\n" -#: fread.c:1193 +#: fread.c:1349 msgid "Internal error: last byte of character input isn't \\0" msgstr "内部错误:字符输入的最后一个字节不是 \\0" -#: fread.c:1196 +#: fread.c:1352 #, c-format msgid " Opening file %s\n" msgstr "打开文件 %s\n" -#: fread.c:1200 +#: fread.c:1356 #, c-format msgid "file not found: %s" msgstr "文件未找到: %s" -#: fread.c:1204 +#: fread.c:1360 #, c-format msgid "Opened file ok but couldn't obtain its size: %s" msgstr "文件能够打开但无法获知其大小:%s" -#: fread.c:1207 fread.c:1235 +#: fread.c:1363 fread.c:1391 #, c-format msgid "File is empty: %s" msgstr "文件是空的:%s" -#: fread.c:1208 fread.c:1236 +#: fread.c:1364 fread.c:1392 #, c-format msgid " File opened, size = %s.\n" msgstr "文件已打开,大小为 %s.\n" -#: fread.c:1225 +#: fread.c:1381 #, c-format msgid "File not found: %s" msgstr "文件没有找到:%s" -#: fread.c:1231 +#: fread.c:1387 #, c-format msgid "Unable to open file after %d attempts (error %d): %s" msgstr "经过 %d 次尝试后仍无法打开文件(错误 %d):%s" -#: fread.c:1233 +#: fread.c:1389 #, c-format msgid "GetFileSizeEx failed (returned 0) on file: %s" msgstr "GetFileSizeEx 未能成功执行(返回值为0)于文件:%s" -#: fread.c:1238 +#: fread.c:1394 #, c-format msgid "This is Windows, CreateFileMapping returned error %d for file %s" msgstr "现在在Windows下,CreateFileMapping 返回错误 %d 于文件 %s" -#: fread.c:1245 +#: fread.c:1401 #, c-format msgid "" "Opened %s file ok but could not memory map it. This is a %dbit process. %s." msgstr "能够打开文件 %s 但不能创建内存映射。这是一个 %d 位进程。 %s." -#: fread.c:1246 +#: fread.c:1402 msgid "Please upgrade to 64bit" msgstr "请升级到64位" -#: fread.c:1246 +#: fread.c:1402 msgid "There is probably not enough contiguous virtual memory available" msgstr "多半没有足够的连续虚拟内存" -#: fread.c:1249 +#: fread.c:1405 msgid " Memory mapped ok\n" msgstr " 内存映射正常\n" -#: fread.c:1251 +#: fread.c:1407 msgid "" "Internal error: Neither `input` nor `filename` are given, nothing to read." msgstr "" "内部错误:既没有`input`(输入)也没有`filename`(文件名),没有什么可供读入。" -#: fread.c:1268 +#: fread.c:1424 msgid "[03] Detect and skip BOM\n" msgstr "[03] 检测并跳过字节顺序标记(BOM)\n" -#: fread.c:1272 +#: fread.c:1428 msgid "" " UTF-8 byte order mark EF BB BF found at the start of the file and " "skipped.\n" msgstr "在文件头发现了UTF-8 字节顺序标记(BOM)EF BB BF 并已跳过。\n" -#: fread.c:1277 +#: fread.c:1433 msgid "" "GB-18030 encoding detected, however fread() is unable to decode it. Some " "character fields may be garbled.\n" msgstr "检测到GB-18030 编码,但fread() 未能解码。某些 字符字段可能有乱码。\n" -#: fread.c:1280 +#: fread.c:1436 msgid "" "File is encoded in UTF-16, this encoding is not supported by fread(). Please " "recode the file to UTF-8." msgstr "文件编码是UTF-16,fread()不支持此编码。请 将文件转换为UTF-8。" -#: fread.c:1285 +#: fread.c:1441 #, c-format msgid " Last byte(s) of input found to be %s and removed.\n" msgstr " 发现输入的最后字节是 %s 并已去除。\n" -#: fread.c:1288 +#: fread.c:1444 msgid "Input is empty or only contains BOM or terminal control characters" msgstr "输入是空的或只有字节顺序标记(BOM)或终端控制字符" -#: fread.c:1295 +#: fread.c:1451 msgid "[04] Arrange mmap to be \\0 terminated\n" msgstr "[04] 设定mmap为 \\0 终止\n" -#: fread.c:1302 +#: fread.c:1458 msgid "" " No \\n exists in the file at all, so single \\r (if any) will be taken as " "one line ending. This is unusual but will happen normally when there is no " @@ -1991,7 +2008,7 @@ msgstr "" " 文件中完全没有换行符\\n,所以单个 \\r(如果有的话)将被当成一行的结束。这不" "太常见但如果没有\\r 的话属于正常;例如单个行没有行尾结束符。\n" -#: fread.c:1303 +#: fread.c:1459 msgid "" " \\n has been found in the input and different lines can end with different " "line endings (e.g. mixed \\n and \\r\\n in one file). This is common and " @@ -2000,7 +2017,7 @@ msgstr "" " 输入中有\\n 并且不同行可以有不同的 行尾结束符(如在一个文件中混合使用 \\n " "和\\r\\n)。这很常见也是理想情况。\n" -#: fread.c:1327 +#: fread.c:1483 #, c-format msgid "" " File ends abruptly with '%c'. Final end-of-line is missing. Using cow page " @@ -2009,7 +2026,7 @@ msgstr "" " 文件突然中止于 '%c'。没有最后一个行尾结束符。正使用写时复制页(cow, copy-" "on-write)写入 0 到最后一个字节。\n" -#: fread.c:1333 +#: fread.c:1489 msgid "" "This file is very unusual: it ends abruptly without a final newline, and " "also its size is a multiple of 4096 bytes. Please properly end the last row " @@ -2018,16 +2035,16 @@ msgstr "" "这个文件非常不正常:它突然中止而没有最后的换行,并且其大小是4096 字节的整数" "倍。请用一个换行(例如 'echo >> file')来恰当地结束最后一行以避免此错误" -#: fread.c:1334 +#: fread.c:1490 #, c-format msgid " File ends abruptly with '%c'. Copying file in RAM. %s copy.\n" msgstr " 文件突然中止于 '%c'。正在从内存中复制文件。%s 复制。\n" -#: fread.c:1368 +#: fread.c:1524 msgid "[05] Skipping initial rows if needed\n" msgstr "[05] 如需要的话跳过起始行\n" -#: fread.c:1374 +#: fread.c:1530 #, c-format msgid "" "skip='%s' not found in input (it is case sensitive and literal; i.e., no " @@ -2036,79 +2053,79 @@ msgstr "" "在输入中没有发现 skip='%s' (这里大小写敏感并需要是字面形式,也就是说不能使用" "模式,适配符或正则表达式)" -#: fread.c:1380 +#: fread.c:1536 #, c-format msgid "" "Found skip='%s' on line %. Taking this to be header row or first row " "of data.\n" msgstr "在行 %2$ 发现了 skip='%1$s'。将此当做表头或数据的第一行。\n" -#: fread.c:1393 +#: fread.c:1549 #, c-format msgid " Skipped to line % in the file" msgstr " 跳到文件的第 % 行" -#: fread.c:1394 +#: fread.c:1550 #, c-format msgid "skip=% but the input only has % line%s" msgstr "skip=% 但输入只有 % 行 %s" -#: fread.c:1403 +#: fread.c:1559 msgid "" "Input is either empty, fully whitespace, or skip has been set after the last " "non-whitespace." msgstr "输入是空,或全部为空白,或跳过设置是在最后一个非空白字符之后。" -#: fread.c:1405 +#: fread.c:1561 #, c-format msgid " Moved forward to first non-blank line (%d)\n" msgstr " 前移到第一个非空行 (%d)\n" -#: fread.c:1406 +#: fread.c:1562 #, c-format msgid " Positioned on line %d starting: <<%s>>\n" msgstr " 定位到行 %d 开始于: <<%s>>\n" -#: fread.c:1424 +#: fread.c:1580 msgid "[06] Detect separator, quoting rule, and ncolumns\n" msgstr "[06] 检测分隔符,引用规则,以及列数\n" -#: fread.c:1428 +#: fread.c:1584 msgid " sep='\\n' passed in meaning read lines as single character column\n" msgstr " sep='\\n' 设定意味着将把所有行读作一个字符列\n" -#: fread.c:1447 +#: fread.c:1603 msgid " Detecting sep automatically ...\n" msgstr " 自动检测分隔符中 ...\n" -#: fread.c:1454 +#: fread.c:1610 #, c-format msgid " Using supplied sep '%s'\n" msgstr " 使用提供的分隔符 '%s'\n" -#: fread.c:1488 +#: fread.c:1644 #, c-format msgid " with %d fields using quote rule %d\n" msgstr " 对 %d 个字段使用引用规则 %d\n" -#: fread.c:1538 +#: fread.c:1694 #, c-format msgid " with %d lines of %d fields using quote rule %d\n" msgstr " 对 %d 行的 %d 字段使用引用规则 %d\n" -#: fread.c:1545 +#: fread.c:1701 msgid "" " No sep and quote rule found a block of 2x2 or greater. Single column " "input.\n" msgstr " 没有分隔符并且引用规则发现了一个大于或等于2x2的区块。输入是单列。\n" -#: fread.c:1561 +#: fread.c:1717 msgid "" "Single column input contains invalid quotes. Self healing only effective " "when ncol>1" msgstr "单列输入包含了不合法的引用。自我修正只有在列数大于1(ncol>1)时才有效" -#: fread.c:1566 +#: fread.c:1722 #, c-format msgid "" "Found and resolved improper quoting in first %d rows. If the fields are not " @@ -2118,35 +2135,35 @@ msgstr "" "在前 %d 行中发现并修正了不合适的引号用法。如果字段没有加引号(例如字段间隔符" "没有在任何字段内出现),可以尝试使用 quote=\"\" 来避免此警告。" -#: fread.c:1582 +#: fread.c:1738 #, c-format msgid "" "Internal error: ncol==%d line==%d after detecting sep, ncol and first line" msgstr "内部错误:检测分隔符,列数和首行后,ncol==%d line==%d" -#: fread.c:1585 +#: fread.c:1741 #, c-format msgid "Internal error: first line has field count %d but expecting %d" msgstr "内部错误:首行有%d个字段,但应该有%d个" -#: fread.c:1587 +#: fread.c:1743 #, c-format msgid "" " Detected %d columns on line %d. This line is either column names or first " "data row. Line starts as: <<%s>>\n" msgstr "检测到第%2$d行有%1$d列。该行为列名或数据集首行。该行以<<%3$s>>开始\n" -#: fread.c:1589 +#: fread.c:1745 #, c-format msgid " Quote rule picked = %d\n" msgstr "标点符号规则 = %d\n" -#: fread.c:1590 +#: fread.c:1746 #, c-format msgid " fill=%s and the most number of columns found is %d\n" msgstr "fill=%s 且找到的最大列数为 %d\n" -#: fread.c:1596 +#: fread.c:1752 msgid "" "This file is very unusual: it's one single column, ends with 2 or more end-" "of-line (representing several NA at the end), and is a multiple of 4096, too." @@ -2154,12 +2171,12 @@ msgstr "" "该文件极为特殊,仅有一列数据,在结尾处包含多个行结束标记(表示多个空值),且" "长度为4096的整数倍。" -#: fread.c:1597 +#: fread.c:1753 #, c-format msgid " Copying file in RAM. %s\n" msgstr "正在将文件拷贝到RAM。%s\n" -#: fread.c:1603 +#: fread.c:1759 msgid "" " 1-column file ends with 2 or more end-of-line. Restoring last eol using " "extra byte in cow page.\n" @@ -2167,37 +2184,37 @@ msgstr "" "该文件包含一列数据,存在多个行结束标记(表示多个空值)。正在使用写时复制页" "(cow, copy-on-write)额外的字节恢复最后一个标记.\n" -#: fread.c:1622 +#: fread.c:1778 msgid "" "[07] Detect column types, good nrow estimate and whether first row is column " "names\n" msgstr "[07] 检测列类型,估计行数以及首行是否为列名\n" -#: fread.c:1623 +#: fread.c:1779 #, c-format msgid " 'header' changed by user from 'auto' to %s\n" msgstr " 用户已将'header'(列名)从 'auto' 改为 %s\n" -#: fread.c:1627 +#: fread.c:1783 #, c-format msgid "Failed to allocate 2 x %d bytes for type and tmpType: %s" msgstr "为 %2$s 类型分配 2 x %1$d bytes失败" -#: fread.c:1648 +#: fread.c:1804 #, c-format msgid " Number of sampling jump points = %d because " msgstr "采样跳点数 = %d 因为" -#: fread.c:1649 +#: fread.c:1805 #, c-format msgid "nrow limit (%) supplied\n" msgstr "指定了nrow 的最大值 (%) \n" -#: fread.c:1650 +#: fread.c:1806 msgid "jump0size==0\n" msgstr "jump0size==0\n" -#: fread.c:1651 +#: fread.c:1807 #, c-format msgid "" "(% bytes from row 1 to eof) / (2 * % jump0size) == " @@ -2205,32 +2222,32 @@ msgid "" msgstr "" "(从首行到结束共 % bytes) / (2 * % jump0size) == %\n" -#: fread.c:1689 +#: fread.c:1845 #, c-format msgid "" " A line with too-%s fields (%d/%d) was found on line %d of sample jump %d. " "%s\n" msgstr "第%5$d个跳点所找到的第%4$d行,该行字段过于%1$s(%2$d/%3$d). %6$s\n" -#: fread.c:1690 +#: fread.c:1846 msgid "few" msgstr "少" -#: fread.c:1690 +#: fread.c:1846 msgid "many" msgstr "多" -#: fread.c:1690 +#: fread.c:1846 msgid "" "Most likely this jump landed awkwardly so type bumps here will be skipped." msgstr "很有可能这一跳点的位置并不合适,因此此处的类型转换将被跳过。" -#: fread.c:1716 +#: fread.c:1872 #, c-format msgid " Type codes (jump %03d) : %s Quote rule %d\n" msgstr " 类型码(跳点 %03d) : %s 引用规则 %d\n" -#: fread.c:1729 +#: fread.c:1885 #, c-format msgid "" " 'header' determined to be true due to column %d containing a string on row " @@ -2239,19 +2256,19 @@ msgstr "" " 'header' 参数设为真,原因是第%1$d列首行包含字符串,并且在样本中的另外%3$d行" "包含有较底层的数据类型(%2$s)\n" -#: fread.c:1741 +#: fread.c:1897 msgid "" "Internal error: row before first data row has the same number of fields but " "we're not using it." msgstr "内部错误:数据首行的前一行包含相同数量的字段但不会用到该行。" -#: fread.c:1742 +#: fread.c:1898 msgid "" "Internal error: ch!=pos after counting fields in the line before the first " "data row." msgstr "内部错误:对数据首行前一行的字段计数后,ch不等于pos" -#: fread.c:1743 +#: fread.c:1899 #, c-format msgid "" "Types in 1st data row match types in 2nd data row but previous row has %d " @@ -2260,7 +2277,7 @@ msgstr "" "数据第一行的类型与第二行相匹配,但是之前的行有 %d 个字段。故将第一行数据的前" "一行作为列名" -#: fread.c:1746 +#: fread.c:1902 #, c-format msgid "" "Detected %d column names but the data has %d columns (i.e. invalid file). " @@ -2268,7 +2285,7 @@ msgid "" msgstr "" "检测到 %d 个列名,然而数据共有 %d 列(文件不合法)。添加了 %d 个额外列名%s\n" -#: fread.c:1747 +#: fread.c:1903 msgid "" " for the first column which is guessed to be row names or an index. Use " "setnames() afterwards if this guess is not correct, or fix the file write " @@ -2277,17 +2294,17 @@ msgstr "" "作为第一列,并被用于猜测行名或索引。若上述猜测不正确,可在后续使用setnames()" "进行修改,或修复用于生成该文件的文件写入命令以生成有效的文件。" -#: fread.c:1747 +#: fread.c:1903 msgid "s at the end." msgstr "到结尾处" -#: fread.c:1749 +#: fread.c:1905 msgid "" "Internal error: fill=true but there is a previous row which should already " "have been filled." msgstr "内部错误:参数fill=true,但是在此之前有一行应当已经被填充。" -#: fread.c:1750 +#: fread.c:1906 #, c-format msgid "" "Detected %d column names but the data has %d columns. Filling rows " @@ -2296,74 +2313,74 @@ msgstr "" "检测到%d个列名,但数据共有%d列。已经自动填充。设置参数fill=TRUE以屏蔽此警" "告。\n" -#: fread.c:1754 +#: fread.c:1910 #, c-format msgid "Failed to realloc 2 x %d bytes for type and tmpType: %s" msgstr "为 %2$s 类型重新分配 2 x %1$d bytes失败" -#: fread.c:1774 +#: fread.c:1930 #, c-format msgid "" " 'header' determined to be %s because there are%s number fields in the " "first and only row\n" msgstr " 参数'header' 被设置为%s, 因为唯一的一行包含 %s 个字段\n" -#: fread.c:1774 +#: fread.c:1930 msgid " no" msgstr "0" -#: fread.c:1777 +#: fread.c:1933 msgid "" " 'header' determined to be true because all columns are type string and a " "better guess is not possible\n" msgstr "参数 'header' 被设置为true,因为所有列类型均为字符串\n" -#: fread.c:1779 +#: fread.c:1935 msgid "" " 'header' determined to be false because there are some number columns and " "those columns do not have a string field at the top of them\n" msgstr "参数 'header' 被设置为false,因为部分字段的首行不为字符串\n" -#: fread.c:1795 +#: fread.c:1951 #, c-format msgid " Type codes (first row) : %s Quote rule %d\n" msgstr " 类型码(第一行) : %s 引用规则 %d\n" -#: fread.c:1804 +#: fread.c:1960 #, c-format msgid "" " All rows were sampled since file is small so we know nrow=% " "exactly\n" msgstr " 文件太小,全部行均被采样到,所以 nrow=%\n" -#: fread.c:1816 fread.c:1823 +#: fread.c:1972 fread.c:1979 msgid " =====\n" msgstr " =====\n" -#: fread.c:1817 +#: fread.c:1973 #, c-format msgid "" " Sampled % rows (handled \\n inside quoted fields) at %d jump " "points\n" msgstr " 已使用了 %2$d个跳点抽样 %1$ 行(处理了字段间的分隔符\\n)\n" -#: fread.c:1818 +#: fread.c:1974 #, c-format msgid "" " Bytes from first data row on line %d to the end of last row: %\n" msgstr " 从第一个数据行(%d)到最后一行的字节: %\n" -#: fread.c:1819 +#: fread.c:1975 #, c-format msgid " Line length: mean=%.2f sd=%.2f min=%d max=%d\n" msgstr "文件每行长度的统计量:均值=%.2f,标准差=%.2f,最小值=%d ,最大值=%d\n" -#: fread.c:1820 +#: fread.c:1976 #, c-format msgid " Estimated number of rows: % / %.2f = %\n" msgstr "估计数据共有 % / %.2f = % 行\n" -#: fread.c:1821 +#: fread.c:1977 #, c-format msgid "" " Initial alloc = % rows (% + %d%%) using bytes/" @@ -2372,44 +2389,44 @@ msgstr "" "为 % 行 (% + %d%%)分配初始内存,大小为字节数/max(mean-2*sd," "min),并确保该数值落于区间[1.1*estn, 2.0*estn]中\n" -#: fread.c:1825 +#: fread.c:1981 #, c-format msgid "Internal error: sampleLines(%) > allocnrow(%)" msgstr "内部错误:sampleLines(%) > allocnrow(%)" -#: fread.c:1829 +#: fread.c:1985 #, c-format msgid " Alloc limited to lower nrows=% passed in.\n" msgstr " 分配被限制在输入的更小的 nrows=% 值上。\n" -#: fread.c:1841 +#: fread.c:1997 msgid "[08] Assign column names\n" msgstr "[08] 指定列名\n" -#: fread.c:1849 +#: fread.c:2005 #, c-format msgid "Unable to allocate %d*%d bytes for column name pointers: %s" msgstr "无法分配 %d*%d 字节给列名指针: %s" -#: fread.c:1871 +#: fread.c:2027 #, c-format msgid "Internal error: reading colnames ending on '%c'" msgstr "内部错误:读取列名终止于 '%c'" -#: fread.c:1889 +#: fread.c:2045 msgid "[09] Apply user overrides on column types\n" msgstr "[09] 使用用户指定的列类型\n" -#: fread.c:1893 +#: fread.c:2049 msgid " Cancelled by user: userOverride() returned false." msgstr " 用户已取消:userOverride() 返回 false。" -#: fread.c:1903 +#: fread.c:2059 #, c-format msgid "Failed to allocate %d bytes for size array: %s" msgstr "无法分配 %d 字节给 size 数组:%s" -#: fread.c:1910 +#: fread.c:2066 #, c-format msgid "" "Attempt to override column %d <<%.*s>> of inherent type '%s' down to '%s' " @@ -2419,40 +2436,40 @@ msgstr "" "试图覆盖第 %d 列 <<%.*s>>,将内部类型 '%s' 降级为 '%s' 的操作被忽略。只支持将" "列类型升为更高阶的类型。如果确定此操作,请完成之后再转换类型。" -#: fread.c:1924 +#: fread.c:2080 #, c-format msgid " After %d type and %d drop user overrides : %s\n" msgstr " 经过 %d 类型和 %d 丢弃用户覆盖:%s\n" -#: fread.c:1932 +#: fread.c:2088 msgid "[10] Allocate memory for the datatable\n" msgstr "[10] 分配内存给 datatable\n" -#: fread.c:1933 +#: fread.c:2089 #, c-format msgid " Allocating %d column slots (%d - %d dropped) with % rows\n" msgstr " 正在分配 %d 列位置(%d - %d 已丢弃),% 行\n" -#: fread.c:1987 +#: fread.c:2143 #, c-format msgid "Buffer size % is too large\n" msgstr "缓冲长度 % 过大\n" -#: fread.c:1990 +#: fread.c:2146 msgid "[11] Read the data\n" msgstr "[11] 读取数据\n" -#: fread.c:1993 +#: fread.c:2149 #, c-format msgid " jumps=[%d..%d), chunk_size=%, total_size=%\n" msgstr " jumps=[%d..%d),chunk_size=%,total_size=%\n" -#: fread.c:2005 +#: fread.c:2161 #, c-format msgid "Internal error: Master thread is not thread 0 but thread %d.\n" msgstr "内部错误:主线程并非线程0而是线程%d\n" -#: fread.c:2213 +#: fread.c:2369 #, c-format msgid "" "Column %d (\"%.*s\") bumped from '%s' to '%s' due to <<%.*s>> on row " @@ -2461,14 +2478,14 @@ msgstr "" "第 %d 列(\"%.*s\") 发生了从 '%s' 到 '%s' 的类型转换,由于 <<%.*s>> 出现在第 " "% 行\n" -#: fread.c:2262 +#: fread.c:2418 #, c-format msgid "" "Internal error: invalid head position. jump=%d, headPos=%p, thisJumpStart=" "%p, sof=%p" msgstr "内部错误:head 位置无效。jump=%d, headPos=%p, thisJumpStart=%p, sof=%p" -#: fread.c:2335 +#: fread.c:2491 #, c-format msgid "" " Too few rows allocated. Allocating additional % rows (now nrows=" @@ -2477,42 +2494,42 @@ msgstr "" " 分配的行数太少。正在分配额外的 % 行(当前 nrows=%),并从跳" "跃 %d 继续读取\n" -#: fread.c:2342 +#: fread.c:2498 #, c-format msgid " Restarting team from jump %d. nSwept==%d quoteRule==%d\n" msgstr " 从跳跃 %d 重启组。nSwept==%d quoteRule==%d\n" -#: fread.c:2362 +#: fread.c:2518 #, c-format msgid " %d out-of-sample type bumps: %s\n" msgstr " %d 样本外类型变更:%s\n" -#: fread.c:2398 +#: fread.c:2554 #, c-format msgid "" "Read % rows x %d columns from %s file in %02d:%06.3f wall clock " "time\n" msgstr "读取 % 行 x %d 列,从 %s 文件(时钟时间 %02d:%06.3f)\n" -#: fread.c:2405 +#: fread.c:2561 msgid "[12] Finalizing the datatable\n" msgstr "[12] 最后定型 datatable\n" -#: fread.c:2406 +#: fread.c:2562 msgid " Type counts:\n" msgstr " 类型数量:\n" -#: fread.c:2408 +#: fread.c:2564 #, c-format msgid "%10d : %-9s '%c'\n" msgstr "%10d : %-9s '%c'\n" -#: fread.c:2424 +#: fread.c:2580 #, c-format msgid "Discarded single-line footer: <<%s>>" msgstr "丢弃末尾行:<<%s>>" -#: fread.c:2429 +#: fread.c:2585 #, c-format msgid "" "Stopped early on line %. Expected %d fields but found %d. Consider " @@ -2521,7 +2538,7 @@ msgstr "" "在第 % 行提前终止。预期有 %d 个字段但只找到 %d 个。可以考虑设置 " "fill=TRUE 和 comment.char=。 首个丢弃的非空行:<<%s>>" -#: fread.c:2435 +#: fread.c:2591 #, c-format msgid "" "Found and resolved improper quoting out-of-sample. First healed line " @@ -2532,31 +2549,31 @@ msgstr "" "不在引号内(例如:字段间隔符没有在任何一个字段中出现),尝试用 quote=\"\" 来" "避免该警告。" -#: fread.c:2439 +#: fread.c:2595 msgid "=============================\n" msgstr "=============================\n" -#: fread.c:2441 +#: fread.c:2597 #, c-format msgid "%8.3fs (%3.0f%%) Memory map %.3fGB file\n" msgstr "%8.3fs (%3.0f%%) 内存映射 %.3fGB 文件\n" -#: fread.c:2442 +#: fread.c:2598 #, c-format msgid "%8.3fs (%3.0f%%) sep=" msgstr "%8.3fs (%3.0f%%) sep=" -#: fread.c:2444 +#: fread.c:2600 #, c-format msgid " ncol=%d and header detection\n" msgstr " ncol=%d 和表头检测\n" -#: fread.c:2445 +#: fread.c:2601 #, c-format msgid "%8.3fs (%3.0f%%) Column type detection using % sample rows\n" msgstr "%8.3fs (%3.0f%%) 列类型检测基于 % 个样本行\n" -#: fread.c:2447 +#: fread.c:2603 #, c-format msgid "" "%8.3fs (%3.0f%%) Allocation of % rows x %d cols (%.3fGB) of which " @@ -2565,7 +2582,7 @@ msgstr "" "%8.3fs (%3.0f%%) % 行 x %d 列 (%.3fGB) 的分配中已使用 % " "(%3.0f%%) 行\n" -#: fread.c:2451 +#: fread.c:2607 #, c-format msgid "" "%8.3fs (%3.0f%%) Reading %d chunks (%d swept) of %.3fMB (each chunk %d rows) " @@ -2574,34 +2591,34 @@ msgstr "" "%8.3fs (%3.0f%%) 正在读取 %d 个块 (%d 已扫描) of %.3fMB (每个块 %d 行) 使用 " "%d 个线程\n" -#: fread.c:2453 +#: fread.c:2609 #, c-format msgid "" " + %8.3fs (%3.0f%%) Parse to row-major thread buffers (grown %d times)\n" msgstr " + %8.3fs (%3.0f%%) 解析到行处理线程的缓冲区(已增长 %d 次)\n" -#: fread.c:2454 +#: fread.c:2610 #, c-format msgid " + %8.3fs (%3.0f%%) Transpose\n" msgstr " + %8.3fs (%3.0f%%) 转置\n" -#: fread.c:2455 +#: fread.c:2611 #, c-format msgid " + %8.3fs (%3.0f%%) Waiting\n" msgstr " + %8.3fs (%3.0f%%) 正在等待\n" -#: fread.c:2456 +#: fread.c:2612 #, c-format msgid "" "%8.3fs (%3.0f%%) Rereading %d columns due to out-of-sample type exceptions\n" msgstr "%8.3fs (%3.0f%%) 正在重读 %d 列,由于样本外类型异常\n" -#: fread.c:2458 +#: fread.c:2614 #, c-format msgid "%8.3fs Total\n" msgstr "%8.3fs 总计\n" -#: freadR.c:84 +#: freadR.c:85 msgid "" "Internal error: freadR input not a single character string: a filename or " "the data itself. Should have been caught at R level." @@ -2609,49 +2626,49 @@ msgstr "" "内部错误:freadR 输入的不是单个字符串:文件名或者数据文本。该错误本应在 R 中" "被捕获。" -#: freadR.c:92 +#: freadR.c:93 msgid "" "Input contains a \\n or is \")\". Taking this to be text input (not a " "filename)\n" msgstr "输入中包含 \\n 或者是 \")\"。输入将被当做数据文本(而非文件名)\n" -#: freadR.c:95 +#: freadR.c:96 msgid "Input contains no \\n. Taking this to be a filename to open\n" msgstr "输入中不包含 \\n。输入将被当做文件名打开。\n" -#: freadR.c:101 +#: freadR.c:102 msgid "" "Internal error: freadR sep not a single character. R level catches this." msgstr "内部错误:freadR sep 不是单个字符。R 中应该捕获此错误。" -#: freadR.c:105 +#: freadR.c:106 msgid "" "Internal error: freadR dec not a single character. R level catches this." msgstr "内部错误:freadR dec 不是单个字符。R 中应该捕获此错误。" -#: freadR.c:112 +#: freadR.c:113 msgid "quote= must be a single character, blank \"\", or FALSE" msgstr "quote= 必须是单个字符,空白 \"\",或者 FALSE" -#: freadR.c:137 +#: freadR.c:143 msgid "Internal error: skip not integer or string in freadR.c" msgstr "内部错误:freadR.c 中 skip 非整数或字符串" -#: freadR.c:140 +#: freadR.c:146 #, c-format msgid "Internal error: NAstringsArg is type '%s'. R level catches this" msgstr "内部错误:NAstringsArg是'%s'数据类型.R中能够捕获这个信息" -#: freadR.c:153 +#: freadR.c:159 #, c-format msgid "nThread(%d)<1" msgstr "nThread(%1$d)<1(线程数(%1$d)小于1)" -#: freadR.c:160 +#: freadR.c:166 msgid "'integer64' must be a single character string" msgstr "'64整数型'必须是单个字符串" -#: freadR.c:168 +#: freadR.c:174 #, c-format msgid "" "Invalid value integer64='%s'. Must be 'integer64', 'character', 'double' or " @@ -2660,11 +2677,11 @@ msgstr "" "64位整数型有效值='%s'.必须是'64位整数型','字符串','双精度浮点型'或者'数值" "型'" -#: freadR.c:176 +#: freadR.c:182 msgid "Use either select= or drop= but not both." msgstr "select=和drop=不可同时使用" -#: freadR.c:179 +#: freadR.c:185 msgid "" "select= is type list for specifying types in select=, but colClasses= has " "been provided as well. Please remove colClasses=." @@ -2672,7 +2689,7 @@ msgstr "" "select=是用于在select=中指定类型的类型列表,但是还提供了colClasses=。请删除" "colClasses=。" -#: freadR.c:181 +#: freadR.c:187 msgid "" "select= is type list but has no names; expecting list(type1=cols1, " "type2=cols2, ...)" @@ -2680,7 +2697,7 @@ msgstr "" "select =是类型列表,但没有名称; 期望列表(type1 = cols1,type2 = " "cols2,...)" -#: freadR.c:188 +#: freadR.c:194 msgid "" "select= is a named vector specifying the columns to select and their types, " "but colClasses= has been provided as well. Please remove colClasses=." @@ -2688,45 +2705,45 @@ msgstr "" "select =是一个命名向量,用于指定要选择的列及其类型,但是还提供了colClasses " "=。 请删除colClasses =。" -#: freadR.c:196 freadR.c:346 +#: freadR.c:202 freadR.c:368 msgid "colClasses is type list but has no names" msgstr "colClasses是类型列表,但没有名称" -#: freadR.c:206 +#: freadR.c:212 #, c-format msgid "encoding='%s' invalid. Must be 'unknown', 'Latin-1' or 'UTF-8'" msgstr "encoding ='%s'无效。 必须为'未知','Latin-1'或'UTF-8'" -#: freadR.c:229 +#: freadR.c:235 #, c-format msgid "Column name '%s' (%s) not found" msgstr "找不到列名'%s'(%s)" -#: freadR.c:231 +#: freadR.c:237 #, c-format msgid "%s is NA" msgstr "%s是缺失值" -#: freadR.c:233 +#: freadR.c:239 #, c-format msgid "%s is %d which is out of range [1,ncol=%d]" msgstr "%s是%d,超出范围[1,ncol =%d]" -#: freadR.c:247 +#: freadR.c:253 msgid "Internal error: typeSize[CT_BOOL8_N] != 1" msgstr "内部错误:类型大小[CT_BOOL8_N]不等于1" -#: freadR.c:248 +#: freadR.c:254 msgid "Internal error: typeSize[CT_STRING] != 1" msgstr "内部错误:类型大小[CT_STRING]不等于1" -#: freadR.c:282 +#: freadR.c:288 #, c-format msgid "" "Column name '%s' not found in column name header (case sensitive), skipping." msgstr "在列名标题中找不到列名'%s'(区分大小写),正在跳过。" -#: freadR.c:292 +#: freadR.c:298 #, c-format msgid "" "Column number %d (select[%d]) is negative but should be in the range [1,ncol=" @@ -2734,7 +2751,7 @@ msgid "" msgstr "" "列号%d(select [%d])为负,但应在[1,ncol =%d]范围内。考虑drop=用于排除列。" -#: freadR.c:293 +#: freadR.c:299 #, c-format msgid "" "select = 0 (select[%d]) has no meaning. All values of select should be in " @@ -2742,24 +2759,19 @@ msgid "" msgstr "" "select=0(select[%d])没有意义。select的所有值都应在[1,ncol=%d]范围内。" -#: freadR.c:294 +#: freadR.c:300 #, c-format msgid "" "Column number %d (select[%d]) is too large for this table, which only has %d " "columns." msgstr "对于此表(仅包含%d列,)列号%d(select [%d])太大。" -#: freadR.c:295 +#: freadR.c:301 #, c-format msgid "Column number %d ('%s') has been selected twice by select=" msgstr "列号%d('%s')已由select =选择两次" -#: freadR.c:313 -msgid "" -"colClasses='NULL' is not permitted; i.e. to drop all columns and load nothing" -msgstr "colClasses ='NULL'是不允许的; 即删除所有列而不加载任何内容" - -#: freadR.c:318 +#: freadR.c:324 #, c-format msgid "" "colClasses= is an unnamed vector of types, length %d, but there are %d " @@ -2771,11 +2783,11 @@ msgstr "" "定类型,可以使用命名向量,列表格式或使用select=而不是colClasses=。请参阅'?" "fread'中的示例。" -#: freadR.c:329 +#: freadR.c:344 msgid "Internal error: selectInts is NULL but selectColClasses is true" msgstr "内部错误:selectInts为NULL,但selectColClasses为true" -#: freadR.c:330 +#: freadR.c:346 msgid "" "Internal error: length(selectSxp)!=length(colClassesSxp) but " "selectColClasses is true" @@ -2783,22 +2795,22 @@ msgstr "" "内部错误:length(select xp)!=length(colClasses xp),但select ColClasses" "为true" -#: freadR.c:344 +#: freadR.c:366 #, c-format msgid "colClasses is type '%s' but should be list or character" msgstr "colClasses是类型'%s',但应该是列表或字符" -#: freadR.c:368 +#: freadR.c:390 #, c-format msgid "Column name '%s' (colClasses[[%d]][%d]) not found" msgstr "找不到列名'%s'(colClasses[[%d]][%d])" -#: freadR.c:370 +#: freadR.c:392 #, c-format msgid "colClasses[[%d]][%d] is NA" msgstr "colClasses[[%d]][%d]是NA" -#: freadR.c:374 +#: freadR.c:396 #, c-format msgid "" "Column %d ('%s') appears more than once in colClasses. The second time is " @@ -2806,22 +2818,22 @@ msgid "" msgstr "" "Column %d ('%s')在colClasses中出现了多次。第二次是colClasses[[%d]][%d]." -#: freadR.c:381 +#: freadR.c:408 #, c-format msgid "Column number %d (colClasses[[%d]][%d]) is out of range [1,ncol=%d]" msgstr "列号%d(colClasses[[%d]][%d])超出范围[1,ncol=%d]" -#: freadR.c:583 +#: freadR.c:624 #, c-format msgid "Field size is 1 but the field is of type %d\n" msgstr "字段大小为1,但字段类型为%d \n" -#: freadR.c:592 +#: freadR.c:633 #, c-format msgid "Internal error: unexpected field of size %d\n" msgstr "内部错误:大小为%d 的意外字段\n" -#: freadR.c:660 +#: freadR.c:701 #, c-format msgid "%s" msgstr "%s" @@ -2951,7 +2963,7 @@ msgid "n must be integer vector or list of integer vectors" msgstr "n 必须是整数向量 或者由整数向量组成的列表" #: frollR.c:104 gsumm.c:342 gsumm.c:577 gsumm.c:686 gsumm.c:805 gsumm.c:950 -#: gsumm.c:1261 gsumm.c:1402 uniqlist.c:350 +#: gsumm.c:1261 gsumm.c:1402 uniqlist.c:351 msgid "na.rm must be TRUE or FALSE" msgstr "na.rm 必须是 TRUE 或者 FALSE" @@ -3010,7 +3022,7 @@ msgstr "" "内部错误: 在 rolling 函数中无效的 fun 参数, 理应在更早阶段排除请向data.table " "issue tracker报告" -#: frollR.c:155 frollR.c:279 nafill.c:152 shift.c:21 +#: frollR.c:155 frollR.c:279 nafill.c:162 shift.c:21 msgid "fill must be a vector of length 1" msgstr "fill 必须是长度为1的向量" @@ -3299,18 +3311,19 @@ msgstr "内部错误:getMaxListItemLen应该已经预先抓取了这个" #: fwriteR.c:98 #, c-format msgid "" -"Row %d of list column is type '%s' - not yet implemented. fwrite() can write " -"list columns containing items which are atomic vectors of type logical, " -"integer, integer64, double, complex and character." +"Row % of list column is type '%s' - not yet implemented. fwrite() " +"can write list columns containing items which are atomic vectors of type " +"logical, integer, integer64, double, complex and character." msgstr "" -"列表页行%d的类型是'%s' - 尚未实施. fwrite()可以写入包含逻辑类型原子向量项目的" -"列表页,整数,整数64,双精度,复数和字符" +"列表页行%的类型是'%s' - 尚未实施. fwrite()可以写入包含逻辑类型原子向" +"量项目的列表页,整数,整数64,双精度,复数和字符" #: fwriteR.c:103 #, c-format msgid "" -"Internal error: row %d of list column has no max length method implemented" -msgstr "内部错误:列表页的%d行没有实现最大长度方法" +"Internal error: row % of list column has no max length method " +"implemented" +msgstr "内部错误:列表页的%行没有实现最大长度方法" #: fwriteR.c:170 msgid "" @@ -3321,17 +3334,18 @@ msgstr "fwrite必须传递一个类型为列表的对象;比如data.frame, dat msgid "fwrite was passed an empty list of no columns. Nothing to write." msgstr "fwrite传递了一个没有列的空列表. 没有对象可以写入" -#: fwriteR.c:234 +#: fwriteR.c:232 #, c-format -msgid "Column %d's length (%d) is not the same as column 1's length (%d)" -msgstr "列%d的长度(%d)和列1的长度(%d)不一致" +msgid "" +"Column %d's length (%d) is not the same as column 1's length (%)" +msgstr "列%d的长度(%d)和列1的长度(%)不一致" -#: fwriteR.c:237 +#: fwriteR.c:236 #, c-format msgid "Column %d's type is '%s' - not yet implemented in fwrite." msgstr "列%d的类型是'%s' - 尚未在fwrite中实施" -#: fwriteR.c:262 +#: fwriteR.c:261 msgid "" "No list columns are present. Setting sep2='' otherwise quote='auto' would " "quote fields containing sep2.\n" @@ -3339,7 +3353,7 @@ msgstr "" "当前没有列表页. 设置sep2=''否则quote='auto'会自动为所有包含sep2的字段加上引" "号.\n" -#: fwriteR.c:266 +#: fwriteR.c:265 #, c-format msgid "" "If quote='auto', fields will be quoted if the field contains either sep " @@ -3349,7 +3363,7 @@ msgstr "" "that host lists),所有包含sep('%1$c') 或 sep2 ('%2$c')的字段将会被自动加上引" "号。\n" -#: fwriteR.c:270 +#: fwriteR.c:269 #, c-format msgid "" "sep ('%c'), sep2 ('%c') and dec ('%c') must all be different. Column %d is a " @@ -3641,20 +3655,26 @@ msgstr "" msgid "" "Internal error, gtail is only implemented for n=1. This should have been " "caught before. please report to data.table issue tracker." -msgstr "内部错误:gtail仅能应用于n=1的情况。此错误理应已被处理。请在 data.table 的 GitHub中提交报告。" +msgstr "" +"内部错误:gtail仅能应用于n=1的情况。此错误理应已被处理。请在 data.table 的 " +"GitHub中提交报告。" #: gsumm.c:1166 msgid "" "Internal error, ghead is only implemented for n=1. This should have been " "caught before. please report to data.table issue tracker." -msgstr "内部错误:ghead仅能应用于n=1的情况。此错误理应已被处理。请在 data.table 的 GitHub中提交报告。" +msgstr "" +"内部错误:ghead仅能应用于n=1的情况。此错误理应已被处理。请在 data.table 的 " +"GitHub中提交报告。" #: gsumm.c:1172 msgid "" "Internal error, `g[` (gnthvalue) is only implemented single value subsets " "with positive index, e.g., .SD[2]. This should have been caught before. " "please report to data.table issue tracker." -msgstr "内部错误:`g[` (gnthvalue) 仅能用于采用单个正数索引求取子集,如 .SD[2]。此错误理应已被处理。请在 data.table 的 GitHub中提交报告。" +msgstr "" +"内部错误:`g[` (gnthvalue) 仅能用于采用单个正数索引求取子集,如 .SD[2]。此错" +"误理应已被处理。请在 data.table 的 GitHub中提交报告。" #: gsumm.c:1250 #, c-format @@ -3662,7 +3682,9 @@ msgid "" "Type '%s' not supported by GForce subset `[` (gnthvalue). Either add the " "prefix utils::head(.) or turn off GForce optimization using " "options(datatable.optimize=1)" -msgstr "GForce取子集运算符`[` (gnthvalue)尚不支持'%s'类型。。请添加前缀stats::var(.),或使用options(datatable.optimize=1) 关闭 GForce优化" +msgstr "" +"GForce取子集运算符`[` (gnthvalue)尚不支持'%s'类型。。请添加前缀stats::" +"var(.),或使用options(datatable.optimize=1) 关闭 GForce优化" #: gsumm.c:1262 msgid "" @@ -3672,7 +3694,11 @@ msgid "" "using options(datatable.optimize=1). Alternatively, if you only need the " "diagonal elements, 'DT[,lapply(.SD,var),by=,.SDcols=]' is the optimized way " "to do this." -msgstr "GForce var/sd 仅能应用于列,而非.SD或其他。若要求取某一列表,如.SD,所有元素的全协方差矩阵,请添加前缀stats::var(.SD)(或stats::sd(.SD)),或使用options(datatable.optimize=1) 关闭 GForce优化。另外,若仅需获得对角线元素,最佳的方式是使用'DT[,lapply(.SD,var),by=,.SDcols=]'。" +msgstr "" +"GForce var/sd 仅能应用于列,而非.SD或其他。若要求取某一列表,如.SD,所有元素" +"的全协方差矩阵,请添加前缀stats::var(.SD)(或stats::sd(.SD)),或使用" +"options(datatable.optimize=1) 关闭 GForce优化。另外,若仅需获得对角线元素,最" +"佳的方式是使用'DT[,lapply(.SD,var),by=,.SDcols=]'。" #: gsumm.c:1263 msgid "var/sd is not meaningful for factors." @@ -3683,7 +3709,9 @@ msgstr "无法对因子类型使用 var/sd。" msgid "" "Type '%s' not supported by GForce var (gvar). Either add the prefix stats::" "var(.) or turn off GForce optimization using options(datatable.optimize=1)" -msgstr "GForce var (gvar) 尚不支持 '%s'类型。请添加前缀stats::var(.),或使用options(datatable.optimize=1) 关闭 GForce优化" +msgstr "" +"GForce var (gvar) 尚不支持 '%s'类型。请添加前缀stats::var(.),或使用" +"options(datatable.optimize=1) 关闭 GForce优化" #: gsumm.c:1384 #, c-format @@ -3800,156 +3828,156 @@ msgstr "内部错误:在重叠中出现未知的mult:%d" msgid "Final step, fetching indices in overlaps ... done in %8.3f seconds\n" msgstr "重叠的最后一步:获取索引...在%8.3f秒内完成\n" -#: init.c:233 +#: init.c:239 #, c-format msgid "" "Pointers are %d bytes, greater than 8. We have not tested on any " "architecture greater than 64bit yet." msgstr "指针是%d个字节,大于8。我们尚未在大于64位的任何体系结构上进行测试。" -#: init.c:247 +#: init.c:253 #, c-format msgid "Checking NA_INTEGER [%d] == INT_MIN [%d] %s" msgstr "检查NA_INTEGER [%d] == INT_MIN [%d] %s" -#: init.c:248 +#: init.c:254 #, c-format msgid "Checking NA_INTEGER [%d] == NA_LOGICAL [%d] %s" msgstr "检查Checking NA_INTEGER [%d] == NA_LOGICAL [%d] %s" -#: init.c:249 +#: init.c:255 #, c-format msgid "Checking sizeof(int) [%d] is 4 %s" msgstr "检查sizeof(int)[%d]是否为4 %s" -#: init.c:250 +#: init.c:256 #, c-format msgid "Checking sizeof(double) [%d] is 8 %s" msgstr "检查 sizeof(double) [%d]是否为8 %s" -#: init.c:252 +#: init.c:258 #, c-format msgid "Checking sizeof(long long) [%d] is 8 %s" msgstr "检查sizeof(long long) [%d]是否为8 %s" -#: init.c:253 +#: init.c:259 #, c-format msgid "Checking sizeof(pointer) [%d] is 4 or 8 %s" msgstr "检查sizeof(pointer) [%d]是否为4 或者 8 %s" -#: init.c:254 +#: init.c:260 #, c-format msgid "Checking sizeof(SEXP) [%d] == sizeof(pointer) [%d] %s" msgstr "检查sizeof(SEXP) [%d] == sizeof(pointer) [%d] %s" -#: init.c:255 +#: init.c:261 #, c-format msgid "Checking sizeof(uint64_t) [%d] is 8 %s" msgstr "检查 sizeof(uint64_t) [%d]是否为8 %s" -#: init.c:256 +#: init.c:262 #, c-format msgid "Checking sizeof(int64_t) [%d] is 8 %s" msgstr "检查sizeof(int64_t) [%d]是否为8 %s" -#: init.c:257 +#: init.c:263 #, c-format msgid "Checking sizeof(signed char) [%d] is 1 %s" msgstr "检查sizeof(signed char) [%d]是否为1 %s" -#: init.c:258 +#: init.c:264 #, c-format msgid "Checking sizeof(int8_t) [%d] is 1 %s" msgstr "检查sizeof(int8_t) [%d]是否为1 %s" -#: init.c:259 +#: init.c:265 #, c-format msgid "Checking sizeof(uint8_t) [%d] is 1 %s" msgstr "检查sizeof(uint8_t) [%d]是否为1 %s" -#: init.c:260 +#: init.c:266 #, c-format msgid "Checking sizeof(int16_t) [%d] is 2 %s" msgstr "检查sizeof(int16_t) [%d]是否为2 %s" -#: init.c:261 +#: init.c:267 #, c-format msgid "Checking sizeof(uint16_t) [%d] is 2 %s" msgstr "检查sizeof(uint16_t) [%d]是否为2 %s" -#: init.c:264 +#: init.c:270 #, c-format msgid "Checking LENGTH(allocVector(INTSXP,2)) [%d] is 2 %s" msgstr "检查LENGTH(allocVector(INTSXP,2)) [%d]是否为2 %s" -#: init.c:265 +#: init.c:271 #, c-format msgid "Checking TRUELENGTH(allocVector(INTSXP,2)) [%d] is 0 %s" msgstr "检查TRUELENGTH(allocVector(INTSXP,2)) [%d]是否为0 %s" -#: init.c:272 +#: init.c:278 #, c-format msgid "Checking memset(&i,0,sizeof(int)); i == (int)0 %s" msgstr "检查memset(&i,0,sizeof(int)); i == (int)0 %s" -#: init.c:275 +#: init.c:281 #, c-format msgid "Checking memset(&ui, 0, sizeof(unsigned int)); ui == (unsigned int)0 %s" msgstr "检查memset(&ui, 0, sizeof(unsigned int)); ui == (unsigned int)0 %s" -#: init.c:278 +#: init.c:284 #, c-format msgid "Checking memset(&d, 0, sizeof(double)); d == (double)0.0 %s" msgstr "检查memset(&d, 0, sizeof(double)); d == (double)0.0 %s" -#: init.c:281 +#: init.c:287 #, c-format msgid "Checking memset(&ld, 0, sizeof(long double)); ld == (long double)0.0 %s" msgstr "检查memset(&ld, 0, sizeof(long double)); ld == (long double)0.0 %s" -#: init.c:284 +#: init.c:290 msgid "The ascii character '/' is not just before '0'" msgstr "ASCII 字符 '/' 后一个字符并非字符 '0'" -#: init.c:285 +#: init.c:291 msgid "The C expression (uint_fast8_t)('/'-'0')<10 is true. Should be false." msgstr "C表达式 (uint_fast8_t)('/'-'0') <10 为 true. 应该是 false." -#: init.c:286 +#: init.c:292 msgid "The ascii character ':' is not just after '9'" msgstr "ascii字符':'不是在'9'后" -#: init.c:287 +#: init.c:293 msgid "The C expression (uint_fast8_t)('9'-':')<10 is true. Should be false." msgstr "C表达式(uint_fast8_t)('9'-':') < 10 为 true. 应该是 false." -#: init.c:292 +#: init.c:298 #, c-format msgid "Conversion of NA_INT64 via double failed %!=%" msgstr "double类型转化为NA_INT64失败,%!=%" -#: init.c:296 +#: init.c:302 msgid "NA_INT64_D (negative -0.0) is not == 0.0." msgstr "NA_INT64_D (negative -0.0) 不是 == 0.0." -#: init.c:297 +#: init.c:303 msgid "NA_INT64_D (negative -0.0) is not ==-0.0." msgstr "NA_INT64_D (negative -0.0) 不是 ==-0.0." -#: init.c:298 +#: init.c:304 msgid "ISNAN(NA_INT64_D) is TRUE but should not be" msgstr "ISNAN(NA_INT64_D) 不应该是TRUE" -#: init.c:299 +#: init.c:305 msgid "isnan(NA_INT64_D) is TRUE but should not be" msgstr "isnan(NA_INT64_D) 不应该是 TRUE" -#: init.c:328 +#: init.c:337 #, c-format msgid "PRINTNAME(install(\"integer64\")) has returned %s not %s" msgstr "PRINTNAME(install(\"integer64\")) 返回了 %s , 而不是 %s" -#: init.c:397 +#: init.c:408 msgid ".Last.value in namespace is not a length 1 integer" msgstr "命名空间中,.Last.value 不是一个长度为 1 的整型" @@ -3963,7 +3991,7 @@ msgstr "参数'x'是一个原子型矢量,原位的更新只为list 或 data.t msgid "'x' argument must be numeric type, or list/data.table of numeric types" msgstr "参数'x'必须是数字类型,或者是数字类型的list/data.table" -#: nafill.c:149 nafill.c:180 +#: nafill.c:159 nafill.c:190 msgid "" "Internal error: invalid type argument in nafillR function, should have been " "caught before. Please report to data.table issue tracker." @@ -3971,21 +3999,21 @@ msgstr "" "内部错误:函数 nafillR 中有无效类型的参数, 该错误理应已被捕获,请向data.table" "的issue通道报告" -#: nafill.c:196 +#: nafill.c:206 #, c-format msgid "%s: parallel processing of %d column(s) took %.3fs\n" msgstr "%s : 并行处理 %d 列, 用时 %.3fs\n" -#: openmp-utils.c:22 +#: openmp-utils.c:23 #, c-format msgid "" -"Ignoring invalid %s==\")%s\". Not an integer >= 1. Please remove any " +"Ignoring invalid %s==\"%s\". Not an integer >= 1. Please remove any " "characters that are not a digit [0-9]. See ?data.table::setDTthreads." msgstr "" -"忽略无效的 %s==\")%s\". 不是一个 >= 1 的整型. 请去除任何不是[0-9]数字的字" +"忽略无效的 %s==\"%s\". 不是一个 >= 1 的整型. 请去除任何不是[0-9]数字的字" "符。 查看?data.table::setDTthreads." -#: openmp-utils.c:40 +#: openmp-utils.c:44 #, c-format msgid "" "Ignoring invalid R_DATATABLE_NUM_PROCS_PERCENT==%d. If used it must be an " @@ -3994,61 +4022,67 @@ msgstr "" "忽略无效的R_DATATABLE_NUM_PROCS_PERCENT==%d. 如需使用,它必须是一个2-100的整" "型,默认值为50查看?setDTtheads." -#: openmp-utils.c:67 +#: openmp-utils.c:78 msgid "'verbose' must be TRUE or FALSE" msgstr "'verbose'必须是TRUE或者FALSE" -#: openmp-utils.c:70 +#: openmp-utils.c:81 msgid "" "This installation of data.table has not been compiled with OpenMP support.\n" msgstr "安装的data.table并不是获得OpenMP支持的编译\n" -#: openmp-utils.c:75 +#: openmp-utils.c:86 #, c-format msgid " omp_get_num_procs() %d\n" msgstr " omp_get_num_procs() %d\n" -#: openmp-utils.c:76 +#: openmp-utils.c:87 #, c-format msgid " R_DATATABLE_NUM_PROCS_PERCENT %s\n" msgstr " R_DATATABLE_NUM_PROCS_PERCENT %s\n" -#: openmp-utils.c:77 +#: openmp-utils.c:88 #, c-format msgid " R_DATATABLE_NUM_THREADS %s\n" msgstr " R_DATATABLE_NUM_THREADS %s\n" -#: openmp-utils.c:78 +#: openmp-utils.c:89 +#, c-format +msgid " R_DATATABLE_THROTTLE %s\n" +msgstr " R_DATATABLE_THROTTLE %s\n" + +#: openmp-utils.c:90 #, c-format msgid " omp_get_thread_limit() %d\n" msgstr " omp_get_thread_limit() %d\n" -#: openmp-utils.c:79 +#: openmp-utils.c:91 #, c-format msgid " omp_get_max_threads() %d\n" msgstr " omp_get_max_threads() %d\n" -#: openmp-utils.c:80 +#: openmp-utils.c:92 #, c-format msgid " OMP_THREAD_LIMIT %s\n" msgstr " OMP_THREAD_LIMIT %s\n" -#: openmp-utils.c:81 +#: openmp-utils.c:93 #, c-format msgid " OMP_NUM_THREADS %s\n" msgstr " OMP_NUM_THREADS %s\n" -#: openmp-utils.c:82 +#: openmp-utils.c:94 #, c-format msgid " RestoreAfterFork %s\n" msgstr " RestoreAfterFork %s\n" -#: openmp-utils.c:83 +#: openmp-utils.c:95 #, c-format -msgid " data.table is using %d threads. See ?setDTthreads.\n" -msgstr " data.table 正在使用 %d 线程. 查看 ?setDTthreads.\n" +msgid "" +" data.table is using %d threads with throttle==%d. See ?setDTthreads.\n" +msgstr " data.table 正在使用 %d 线程, throttle==%d. 查看 ?setDTthreads.\n" -#: openmp-utils.c:91 +#: openmp-utils.c:103 msgid "" "restore_after_fork= must be TRUE, FALSE, or NULL (default). " "getDTthreads(verbose=TRUE) reports the current setting.\n" @@ -4056,26 +4090,20 @@ msgstr "" "restore_after_fork= 必须是 TRUE, FALSE, 或者 NULL (默认值). " "getDTthreads(verbose=TRUE) 来查看当前设置.\n" -#: openmp-utils.c:105 -#, c-format -msgid "" -"threads= must be either NULL (default) or a single number. It has length %d" -msgstr "threads= 必须是 NULL (默认值) 或者一个数字. 目前它长度为 %d" - -#: openmp-utils.c:107 -msgid "threads= must be either NULL (default) or type integer/numeric" -msgstr "threads= 必须是 NULL (默认值) 或者数字/整型类型" - #: openmp-utils.c:109 +msgid "'throttle' must be a single number, non-NA, and >=1" +msgstr "'throttle' 须为单个非 NA 且 >= 1 的数值" + +#: openmp-utils.c:123 msgid "" -"threads= must be either NULL or a single integer >= 0. See ?setDTthreads." -msgstr "threads= 必须是 NULL 或者一个>=0 的整型。 查看 ?setDTthreads." +"threads= must be either NULL or a single number >= 0. See ?setDTthreads." +msgstr "threads= 必须是 NULL 或者一个>=0 的数值。 查看 ?setDTthreads." -#: openmp-utils.c:114 +#: openmp-utils.c:127 msgid "Internal error: percent= must be TRUE or FALSE at C level" msgstr "内部错误: 在 C 中,percent= 必须是TRUE or FALSE " -#: openmp-utils.c:117 +#: openmp-utils.c:130 #, c-format msgid "" "Internal error: threads==%d should be between 2 and 100 (percent=TRUE at C " @@ -4296,7 +4324,8 @@ msgstr "" msgid "" "Failed to allocate working memory for %d factor levels of result column %d " "when reading item %d of item %d" -msgstr "当读取第%4$d项的第%3$d个子项时,无法为第%2$d列的%1$d个因素水平分配工作内存" +msgstr "" +"当读取第%4$d项的第%3$d个子项时,无法为第%2$d列的%1$d个因素水平分配工作内存" #: rbindlist.c:523 #, c-format @@ -4341,16 +4370,22 @@ msgstr "排序必须是整数向量" msgid "nrow(x)[%d]!=length(order)[%d]" msgstr "nrow(x)[%d] 不等于 length(order)[%d]" -#: reorder.c:48 +#: reorder.c:51 #, c-format -msgid "order is not a permutation of 1:nrow[%d]" -msgstr "顺序与 1 到 nrow[%d] 的排列不同" +msgid "" +"Item %d of order (%d) is either NA, out of range [1,%d], or is duplicated. " +"The new order must be a strict permutation of 1:n" +msgstr "排序(%2$d)的 %1$d 项为 NA,超出范围 [1,%3$d],或与其他项重复。" +"新的排序必须为 1:n 的排列" + +#: reorder.c:105 +msgid "dt passed to setcolorder has no names" +msgstr "setcolorder读取到的dt并没有名字" -#: reorder.c:57 +#: reorder.c:107 #, c-format -msgid "" -"Unable to allocate %d * %d bytes of working memory for reordering data.table" -msgstr "在工作内存中无法分配 %d * %d 个字节对 data.table 重新排序" +msgid "Internal error: dt passed to setcolorder has %d columns but %d names" +msgstr "内部错误: setcolorder读取到的dt有 %d 列但是有 %d 个名字。" #: shift.c:17 #, c-format @@ -4386,7 +4421,7 @@ msgstr "不支持 '%s' 类型" msgid "Internal error: subsetVectorRaw length(ans)==%d n=%d" msgstr "内部错误: subsetVectorRaw ans length(ans)==%d n=%d" -#: subset.c:88 +#: subset.c:101 #, c-format msgid "" "Internal error: column type '%s' not supported by data.table subset. All " @@ -4395,44 +4430,44 @@ msgstr "" "内部错误:data.table 子集不支持列类型 '%s' 。已知所有类型均被支持,因此请提交" "此BUG。" -#: subset.c:97 subset.c:121 +#: subset.c:110 subset.c:134 #, c-format msgid "Internal error. 'idx' is type '%s' not 'integer'" msgstr "内部错误:'idx' 是 '%s' 类型,而非 '整数'" -#: subset.c:122 +#: subset.c:135 #, c-format msgid "" "Internal error. 'maxArg' is type '%s' and length %d, should be an integer " "singleton" msgstr "内部错误:'maxArg' 是 '%s' 类型,长度为 %d ,应该是单一整数" -#: subset.c:123 +#: subset.c:136 msgid "Internal error: allowOverMax must be TRUE/FALSE" msgstr "内部错误:allowOverMax 必须是 TRUE 或 FALSE" -#: subset.c:125 +#: subset.c:138 #, c-format msgid "Internal error. max is %d, must be >= 0." msgstr "内部错误。最大值是 %d ,且必须 >= 0。" -#: subset.c:149 +#: subset.c:162 #, c-format msgid "i[%d] is %d which is out of range [1,nrow=%d]" msgstr "i[%d] 是 %d ,超出 [1,nrow=%d] 的范围" -#: subset.c:161 +#: subset.c:174 #, c-format msgid "" "Item %d of i is %d and item %d is %d. Cannot mix positives and negatives." msgstr "i 的第 %d 项是 %d ,第 %d 项是 %d 。正负不能混用。" -#: subset.c:171 +#: subset.c:184 #, c-format msgid "Item %d of i is %d and item %d is NA. Cannot mix negatives and NA." msgstr "i 的第 %d 项是 %d ,第 %d 项是 NA 。负值和 NA 不能混用。" -#: subset.c:207 +#: subset.c:220 #, c-format msgid "" "Item %d of i is %d but there are only %d rows. Ignoring this and %d more " @@ -4440,7 +4475,7 @@ msgid "" msgstr "" "i 的第 %d 项是 %d ,但只有 %d 行。忽略这项以及其他相似的 %d 项(共 %d 项)。" -#: subset.c:209 +#: subset.c:222 #, c-format msgid "" "Item %d of i is %d which removes that item but that has occurred before. " @@ -4449,40 +4484,40 @@ msgstr "" "i 的第 %d 项是 %d ,它删除了这项但此操作之前发生过。忽略该重复以及其他 %d 个" "重复。" -#: subset.c:223 +#: subset.c:236 #, c-format msgid "Column %d is NULL; malformed data.table." msgstr "%d 列为空(NULL);data.table 格式错误。" -#: subset.c:226 +#: subset.c:239 #, c-format msgid "Column %d ['%s'] is a data.frame or data.table; malformed data.table." msgstr "%d ['%s'] 列是 data.frame 或 data.table; data.table 格式错误。" -#: subset.c:231 +#: subset.c:244 #, c-format msgid "" "Column %d ['%s'] is length %d but column 1 is length %d; malformed data." "table." msgstr "%d ['%s'] 长度为 %d ,而列 1 的长度为 %d ;data.table 格式错误。" -#: subset.c:247 +#: subset.c:260 #, c-format msgid "Internal error. Argument 'x' to CsubsetDT is type '%s' not 'list'" msgstr "内部错误:CsubsetDT 的参数 'x' 是 '%s' 类型而非列表" -#: subset.c:260 +#: subset.c:273 #, c-format msgid "Internal error. Argument 'cols' to Csubset is type '%s' not 'integer'" msgstr "内部错误:CsubsetDT 的参数 'cols' 是 '%s' 类型而非整数" -#: subset.c:337 +#: subset.c:350 msgid "" "Internal error: NULL can not be subset. It is invalid for a data.table to " "contain a NULL column." msgstr "内部错误:空集(NULL)不能作为子集。data.table 包含空列是无效的。" -#: subset.c:339 +#: subset.c:352 msgid "" "Internal error: CsubsetVector is internal-use-only but has received " "negatives, zeros or out-of-range" @@ -4533,30 +4568,30 @@ msgstr "内部错误:uniqlist 已经传递长度为 0 的序列" msgid "Internal error: uniqlist has been passed length(order)==%d but nrow==%d" msgstr "内部错误:uniqlist 已经传递长度为 %d 的序列,而行数是 %d" -#: uniqlist.c:96 uniqlist.c:127 uniqlist.c:208 uniqlist.c:245 uniqlist.c:318 +#: uniqlist.c:96 uniqlist.c:128 uniqlist.c:209 uniqlist.c:246 uniqlist.c:319 #, c-format msgid "Type '%s' not supported" msgstr "类型 '%s' 不被支持" -#: uniqlist.c:148 +#: uniqlist.c:149 msgid "Input argument 'x' to 'uniqlengths' must be an integer vector" msgstr "输入到 'uniqlengths' 的参数 'x' 必须是整数向量" -#: uniqlist.c:149 +#: uniqlist.c:150 msgid "" "Input argument 'n' to 'uniqlengths' must be an integer vector of length 1" msgstr "输入到 'uniqlengths' 的参数 'n' 必须是长度为 1 的整数向量" -#: uniqlist.c:167 +#: uniqlist.c:168 msgid "cols must be an integer vector with length >= 1" msgstr "cols必须是一个长度大于等于1的整数向量" -#: uniqlist.c:171 +#: uniqlist.c:172 #, c-format msgid "Item %d of cols is %d which is outside range of l [1,length(l)=%d]" msgstr "列的%d项是%d,它超出l的所在区间[1,length(l)=%d]" -#: uniqlist.c:174 +#: uniqlist.c:175 #, c-format msgid "" "All elements to input list must be of same length. Element [%d] has length " @@ -4565,81 +4600,81 @@ msgstr "" "列表的所有元素必须是同样的长度。元素[%d]的长度%不等于第一个元素的长" "度%" -#: uniqlist.c:255 +#: uniqlist.c:256 msgid "Internal error: nestedid was not passed a list length 1 or more" msgstr "内部错误:nestedid并不是一个长度大于或者等于1的列表" -#: uniqlist.c:262 +#: uniqlist.c:263 #, c-format msgid "Internal error: nrows[%d]>0 but ngrps==0" msgstr "内部错误:nrows[%d]>0但是but ngrps==0" -#: uniqlist.c:264 +#: uniqlist.c:265 msgid "cols must be an integer vector of positive length" msgstr "cols必须是一个长度大于零的整数向量" -#: uniqlist.c:349 +#: uniqlist.c:350 msgid "x is not a logical vector" msgstr "x不是一个逻辑向量" -#: utils.c:73 +#: utils.c:80 #, c-format msgid "Unsupported type '%s' passed to allNA()" msgstr "allNA() 不支持'%s'类型" -#: utils.c:92 +#: utils.c:99 msgid "'x' argument must be data.table compatible" msgstr "'x' 必须为data.table支持的类型" -#: utils.c:94 +#: utils.c:101 msgid "'check_dups' argument must be TRUE or FALSE" msgstr "参数'check_dups'必须为TRUE或者是FALSE" -#: utils.c:110 +#: utils.c:117 msgid "" "argument specifying columns is type 'double' and one or more items in it are " "not whole integers" msgstr "指定列的参数是一个双精度类型而其中至少有一个元素不是整数" -#: utils.c:116 +#: utils.c:123 #, c-format msgid "argument specifying columns specify non existing column(s): cols[%d]=%d" msgstr "指定列的参数指定了不存在的列: cols[%d]=%d" -#: utils.c:121 +#: utils.c:128 msgid "'x' argument data.table has no names" msgstr "data.table的参数x并没有名字" -#: utils.c:126 +#: utils.c:133 #, c-format msgid "" "argument specifying columns specify non existing column(s): cols[%d]='%s'" msgstr "指定列的参数指定了不存在的列: cols[%d]='%s'" -#: utils.c:129 +#: utils.c:136 msgid "argument specifying columns must be character or numeric" msgstr "指定列的参数必须是字符或者是数值" -#: utils.c:132 +#: utils.c:139 msgid "argument specifying columns specify duplicated column(s)" msgstr "指定列的参数指定了重复的列" -#: utils.c:138 +#: utils.c:145 #, c-format msgid "%s: fill argument must be length 1" msgstr "%s:fill参数的长度必须为1" -#: utils.c:171 +#: utils.c:178 #, c-format msgid "%s: fill argument must be numeric" msgstr "%s:fill参数必须为数值类型" -#: utils.c:273 +#: utils.c:280 #, c-format msgid "Internal error: unsupported type '%s' passed to copyAsPlain()" msgstr "内部错误:copyAsPlain()不支持类型为'%s'的参数" -#: utils.c:277 +#: utils.c:284 #, c-format msgid "" "Internal error: type '%s' passed to copyAsPlain() but it seems " @@ -4647,7 +4682,7 @@ msgid "" msgstr "" "内部错误:copyAsPlain()中参数为'%s'类型,但copyMostAttrib() 保留了ALTREP属性" -#: utils.c:312 +#: utils.c:319 #, c-format msgid "Found and copied %d column%s with a shared memory address\n" msgstr "发现并拷贝了具有相同的内存地址的%d列%s\n"