jpilot-1.8.1.2/0000755000175000017500000000000011702310021010146 500000000000000jpilot-1.8.1.2/docs/0000755000175000017500000000000011702310021011076 500000000000000jpilot-1.8.1.2/docs/jpilot-memo.png0000644000175000017500000006667410445274001014015 00000000000000PNG  IHDR;gAMA a2tEXtSoftwareXV version 3.10a-jumboFix+Enh of 2005050103 IDATx}|KW_ڋ" -,#ڢ&6z馣jj=f5EQMm)b+"l.nEޚR=sϽw=/ݻwCURB!P?JA!VU?ާ*B!x !BcB!By C(B!aB!1abqq@  ?qx"s9u8B.[#oB{Su8 z|X,F%|HP7C;|֧ )CE!T%\?9mreeJ5 fysV=b|A&v&.*z<3c+BgQV^O4+룜5hUU8ly!0b_(G<`y8Yʔ7OQBSB!Tٿ{^.B-nV:2sC(BYs[P~n/k0dD=l\?a_(Pl9:gCWc85l!T˸hwyw !ݺ,&)&1}|f߳ى*,S{qz9qqV4#U8 a!.yQo!7ܩ;s,'"N~`_(jɣ$B5 U/}U;r #By C(B!Q0~*)A!V B{k!BٳC(8}ZW5A!z4NB! B!'c(KGxӆ-9F>tmѢq\ܰC'9WVw7o%?\[اO /XU!P s^=io}`ͭVad4bnS m4;6(!a}g{'O^֭O?Qz Ϟ-~G~Օ+[n*ֽpTZjqֺu`42fo3O; ׮]c,ڡCqゎ qĈ!z0F,F#u^g9O<{;nѢѰa=X=*(8WaUq:-Ziz={@|0?VCIjj.ocpy?4S.úc^T!Bޱ]wGF,h4GY) \`ٲf]?u0vKZ5Q*ddpŢ_g/ϯ֭8bJK-#68YvݻWBG%={>ӻw+!B!J%#U0Vkӧ#/Z9?qb߳goݺNgL+77oԪUM[Wl׮tցΟ@׮,Yl)hV\C!*Xvm*UsVP7{___ʕyZBAλvfgGDw/0xʡ̂CX||ɛ6<9$$DywK)gܸ~~u}|[TaB! # Y+V=}ZW=Um|}}JJJvmׯ_>^A!PYzԩkY\|tԊ[֬l)^V͍«,ڝ3A@yU-BU}tQqB!ByBy!B !BcB!By5] B!B!T &O^Su@!z`_(B!aB!1 B!c(ڴk߫,Yx t$=ϢEUU,VaSddL&cYd2LYfT*Hs((((fl6sqMӤኦiNG_+oT"Ce͛77Q#q^jҤAIeÆ? /Zf.7ܼiRK^^Y6 ׹}u^e`I{I `Y&ʕ婩ЪU`b;vh;gBB:ݹh߾ϾjΜ/}}},y=6RٳFJkl߾eI=[,L E={WL :e{SYއP|HDB4GFF #'6lؐK&( IfoI| Bŋ$d{ssO:ehӦرAgw-VM>J# @ȑ9$hdn=ԫ3>, S$wo?zZ;>|.;?y>w^ p[]ruBa L'x.]sVId[mXAz?ӟ^ߺf'8ӫ3>>j3eŏS`0EGGC{)8hh(J*LpDѕH$"E"B|7"J_ B=:vlݢEaz_=q K֮ G7hΏJKK 'vmk[6V{O1J$mт޷OSOԯ__n .rVt"7o#y?wH&|yV$Fs~Uz'7!H6R).H'(JQ%bN3ͤTYrrrin\>rB6mɶ@˖4:z;jZ۶u:V-矋fxKn=7ɋ<b;cX+z=c4}C{ݺ}i3$D9p`הV!;w{/xqLFFِd .(2 iiiYYY B\phɴa>'onn.EQGHQMF#D"=$Q5ӑld-l2;q%uR^sl # D^tݺ^p;vm*Us5nqxۺ+^99{x@3g\ѼyV\hrV޽&MkYi/4hP4쟉J^}_(Z- f3²D"D$ @,偁YYYAAARt"o[<_$HA|  [7t*x=s޼Klu}#FXo:NgLODD @]>`sd:jI u^} V޻WbG47iRhڵΞbNM9}ƍ5g:L$#IQ|?7ڴ7l(:5u뽮^}*LD<?bX~4?oQz/Xk2X;C;{w[xk_שC͜@ -*2N6|spľo߾n>>֬'m޼S^ڵٳ3?:B,<K88bD ^+)){[tbq۴g\v}`55jgZh233;;'6 =====T1 C'2.d2絸_1G΍x_>>֭xPsmndrÆ3^>j3zBY{]Zh[_nܸw?׸sXN.m gmhfg:Lt]g^`JL|&,/ڷo| OkͼP;wOv#ܙbއ: WܻWj+D< l (ovJHHMKKh4bߟ8^hj5y,DFFy D"ZIJJZ|P(4FQ* Jr8ȳyF;g|IQII;e _}t ~b&$.%[PZj'>LYzҮ]GtDMȦJ0͛G+߼iۃɉ 6.]2U{HYF|Y6V*$%ÇuovB?^tM\fNtp^^>E f͞^x`A|o#5],J$7?7N "(**J&欬B 1Ld JE^q7k֬4e)bFPnyFF?2?жmѣ|at q!۷D|ӧ/:u\Iiͮ]c,ڡCqHdSJYIMXqݎʚL7Cp~Ta͛7&MhE1chyz۟۶"a*z,6\~Xnܸ]}z6AUlqYwrM4&rR4))I.w$rB0;;;::zÆ &I&EDD,+ H LeN$nrp$剭-lL4gzciݺX Х(߮]>|)N4zK*Uw9];wML:wr߾ώ亪ylDTtKYNNXko#X i;vl=lXaYǔ֗`-!aKJJС=<3\m K6}?Z8d9qb&\wsxC/U+Z>!Tkx @,wm%t(h4FF0T*%yRRR< ###---""8KNNV*qbatH^AM~sQIIH;tSS咞=ݻ6{_]?||b5JK-#;ٽ{%ViUYOjv-Ξ-&?kׂHCUkS'}IWƍ6gTwl58a"()))8p\-7_~v-xGd [nr"PY+e,d!a(̉LP* " @*ByT*%HYf 4z>00/zy:Y~]Dw6k9-mIJ֭^IvArzs6{"p^{'fGti{нZTBR7rxDi~\s}?xoo7oyKK-m !,F!! dr2Sy=g}`HOO/,,$p,Rh̜>}:DFF4-Jr1OU9p`gf9s7oP/ ϯ`˖]AA"#_,))w/OT0qb˚ORW6/, ufRX{+,ԓ]ZhH3YKR>|xϦMEWrĝ;Nҽ[{]ĉ7n@I?Yak2\nM}P/٘;kg|&{?>ŏbU ^&Mjo2rB N䍛H$b&,,,**ۉBߑOYYYdRd2NT(EEE ,(( mQjZ.Fju=;w~eƹ'jRU6]Kg3gk&P5Nj HL&H(qId=SyLLl5kV```xx8M)))ӧO'i L&#~"#H^'R|p~FMtd,3LN7qU52G!;G"1~ҌNYh:B͋0l&ݘB!0E bqdddDDG B2R[d.(kJ2 ܀ϑ!z<6#}6$gȬQ!|:EQAAAE1 gt:l6L6d3;5UУγI xf"D"t4|tVv>)++R?!BeŲDDDFh&/ɟHv"3X^E8###((8a_ !B3/'5* Lm@Fw"eو"Z d(/f !*ֱP4{vH_ T)h4 BQ@e²\.'l߉lXl2t:]V]Bi]MWڦhMWATD/ %I@@X,NNN 'j˗/BCCIUr>G"dm+t-Fgsk%*BR9VOt@@7zCb8**JR'a23?cXP"VtERUBuM@24;D"X,HBX,&˼UC1C IDATUBUB xJXa2}Oֹ$ cBj xbj-!B5b͚STĤF B!TY3܎v ϊ{Fw/g'G 兪Փ&[`Ce0oPyjC_An~Y1SgGܬ=7UgC(1_MWxE6ء3,Y՝z! TבǍGW}'tF]NӴD"JiiiQQԼի'M>k>>>Wz_ %n8 164wl_p/l2Z5qڴuT xG{̥V煯a:}0eJ(8N\~۷[U6>~o|0XxKNs\hgϱ N];d] e/ OM͝9&MD%%wݸ1`floܸ4iPRbٰg//jU!XGRRYB؅P3[s'nj?GbjÇ??_+Wy#ӧ@ 8ţg5֭x# @ȑ9oYj"Oy׷n=&C)SBIսS/dmG,ȑ/8uЦMclVeŲ?Zd:a 40tH}!U׼y)SBNDYp>`@͛ n4@i%/IEƓ'XNؿ fG>}:?kXJJJ%؊òGrڵ{Q7uRvrݺЬhľ"QҖ-ib;vlݢEaz_=Ve!iUrR) ) drf3˲&`0 e9999՞5|D DFڿgzzG`oT?3_dd} xGGǍ7\ފk4G]½{A ر}kgS.úc"k>8tݺ;p /t8{H9n]]=vR#Gt3d_.|6ϠVkӧ?EhmRIdĔF#8 |8ERN3L"(33_RMdHxm0\k۶NgI3OM2SS咞=ݻٮ/78ohh۷[$zh;waK6zMjEl sʕ-[6>wdf3G}YPZZA nܘ?jT "|}}M+W~y+BYO))) "%%E,'&&@tt… X<B(MB(R4A"rܪiCuUvm^{>< 99NOKK-=?ϷvΪV>z9,Y/_Fz}gHy>~.oL7>hMmov2UB!aEUkfmt@сEd{v ٰ y͚=!訨( 5jcbb`…Ѥ#˲4M,k6IrE>R4MsDzL&t4BF% 9.|Bltp~3g.jsg#ZOIIi׮brSȝѝ=isQQ=x.*̵s$<}{ȽA@y5]PkժۣÛa@\Nz;YϥOQTQQB  XDfJ?X5AD⼼+uq!;/g/3FQi7"i[(L0LZZx|jEAy+`4IUkC!NwpU%H!F3Xj&4E6H>H$2E4]TuG>!C$"A?P($'&^P$~"%جg6FL&G>=0Ÿp8B^Po[9VT*7Gߑ$f"<Hdf2 BaB4*{\ #9BaNNRHH"4M:LD'6'7` Cܩ>G"d?zb<,"ȼMeǗ'iZ(H8) ))I*]Hfa~Q|[@Ab1u0>G"d?9G ˦}IҋID= F#Xg"`Y쨨(>{ ̷Az` kEAgmBX hi vU>_menJOjg!\.ʛjqHLLnL-pAZJe\\ȏ$Mn6A!w½{0$7@ ey :^?,̟`pҲ eP2q$ CNm`Y ]g]rXŶXKujcbA #eeNT ۽Oa}xު+!0|п!ON<{'d27Yϟ /_U$gdddddd\\\XXX^^Yw- UV9(d2yуNivʩ \d;u wM>a#ݶOƃ@B G\,e??MIxwdX9Mu!C΀O#j31d_50w&XZJ .6 :qݞ̷S"v} HZ(X¢y>"G捰h^pv >XWְs-B!Sj*_nHl$hk8~^rQ%$$H$~}ӧL& ڴD"EQ"K^\ؘ3vum 3Y_ةVOߞYږ}'V͌B?ò0$bgρ;@XձېuGAx,FG/̟gNQX plʟ0iKWKsaPAs^pv >}&M2ֳn(/#y/·$Ayhy 33Sggg BZm "H,{WM50oC 0xl(kuo\k)C\x_5飸β~ZPi/>GH@o|zhǗ{sAAy5u@|2(YupWw%) G~Qyˆ?ae~:L9: yn3c,zlυHY⧩0q*ޔIz[ `̙3߆s5gE%^[%@I {PjqoN}T(LηgOn|E1sϒ_Ԏ濟-m1Wܾ]ݻ/dl0t"zq $<7oBgtAݷlMuxi^.۽e|~J9y.s߃10t0a3:s:+vCuXf׾5aFO ?UwYd)K+>K0uP2`4bliOVٞ ?Tmo%''be֕ ɟ-ype;ZlSGĿt3ԫ'$T:uɶŽߺ)}ӆ/u'gqP'3퍥+R}?3z͙smM`Z _osuϯ|mP'e#!bdw?#Ѻ 64Ec}Zﵿ4)mBNu7Kn^)OEFxA]p/ښ6鍁ʫKS{gGPTھ+[)#JWP9G%Y:~;ܙco`JKJމ_FR>{{+DFr]Ü澷lLDߦ͚rB}t%#[*$;UZTDd <(od"}ɡ<"IǗʿ<''GP0 a2u&; xݣ~ז)g<΋M۴։KYXCㅩdΝnb Wӳ}_,T*FH$"N0eX,6LFΖH$F1::L遁zF}b$&t]B!؊{+0{v{BJV2L׳,KeNdJLLd, iii&h4 |Y?W !B5¶%yB@@4U:N.+JNG:[{[qqqf+**"fVs2B!n `MϲVC%!uDEE BJT*B!96/f%B!T*BBM4MKҠ ey  999,* !B*@">Hۤb1Maaaf+]MbX"Be_д + 6l0g:vϘBڪjB(B.!hdiz`GU&Ik U?^ ~9sz~mU\qB!h2}ϲ, O*?}B6T=z_._Ξ/cbKtMđ/_: D NmS/ĩ1oO5m{{5S|IS9ge"B6ʆX}zRRRXXMyyy].HFE9d 26xب{Y+S3k>Ћ]6J8L!zxBZH$SLL… 9*%%EѐL&q\ddX\ Cb)\[ kԈpΝ͚;֩ ,anx_Rsgb~DޱIXϣ:8, z/_$) ?'̩V(͡muV>B!ǭP"VpZ-ia***2Nh44MT*\.iP\\\vv6)L&Tj6f/MT { 6U/OS7=uS _~U?-߮WOb9X+U޷oMAp_ G!P*))l40L~~~ff&999ɹ4MrRittttttddJ"/^jLpB`0PEӴ Q|}{v>ӱ92`MIGIK羷$nzorX.U-Z>~O=-]! /  ÈDL-ddddggd2<5U*T^vb fMQQQYYY^l4rN.x u[.]I_iZ,~mޞ>j} ǫʦW;sLiI;Hc38ȾG.Uh{DmڬK!/?9iVx/]! k-pB sf$$7q$>HfffVVVJJ >A^E$I@@hŮu(߷o5\SEVo}mZ}.]?g䚪B:|0l qtm1GwL]bo9mx"F %%lY z}fffAAްP(dY6///:::33SדǑN|zQ B!^zɉljLFڜٰaN# D"t)))|f6ORH4w"TǑB&(tBijL5NB(Ύ˗SŲlBBd0t:?44ԺkH$iZ[+L!ƛ8$'1yyyAAA4M4HL&-,, .4YqRXXi܌e{t-LߚBV񦍇o7" Q|[q$HRTdr4 -_~ND=/."~_&Don=/(խ~ImoAi:V3r{m9OX/Y,`I#шضzL|maT5mmba~=MT5)ulL~a$[g/oṒb'9cݾ,BY%eYYG9ek0 SPPV7l@!g2j5HNIReIizP]~m"i^>_ E6dxRwᮻ5/uٱO?xMRKW; ^uXo8>׬u_:I*!PEi2dLEQܬYZxZ6'''44̢"a8ۨJ%il6{DQKfQ=,g&Q͛o.Yۤh֘Wt䍻/^ zbp%%3?L9/v;,K'KD C7_7iTRRz|-x܂gOѲ*~ʶ܂>g?\kqX,v$<딖~z6/_׵o[3>tWXKfwx ur.7gzÖ1B&xdUHď3GBh4IIIfeYF颣IS˲2NR ڀ:E7ݶ]>Яk/m9kKW':{aʰR,hؠ>7쏾^:{`B%wU&<նՌ7o-m}FkԹh4-Iݜ0 fT'uqi.L~eO }7爰ݘbF"?B= < XAf96Y%yOBXFCQH$"4AH;^'@PP?iHʟ[h^ _|W}(u- q?~:z~74")-6޸_IIiͬrwIse3n:64Mcniiu w.ͅg;Yn+xD;qXh}exQBBr% oH7t:iR"/_\TLQFE񅤤L>Od2OO=Ӯ >>/ޜd-{(~-}#w2;ux24KX`zmm@ )1?rIa:>yis2gtݶ3K6ź4w8l)X||~o:nvٜ!NQQQqd"O ÐqvD"H;YEh4}$?i|8.44:~nzn߱ѱI>YieBg{WnYѓJ=A6Z4O.|mVWx&/Nؿ֠ gt)|7a]:4~} /v}Tj]UYkݵAf.pgIND7j`!B5Vni0 iď#qiRT6ljVHcs1[{ye$N$x~<<7<Z7|$oO#Yo~G{{y.;_lp#ZтgtF'%p7-zY/-c q|g,=wq'vX`mY6(RPAD+t/A418abJ L]j8Ѹ:u|W Ă:CT0&8*x-,öǓl;~]ɲ?ثջ:|yyO||b'|ĩ?w?~ǵySY~]S.flxtBpl6;22wzjbqqD*u 7ٹ{CMO?i| ai͹^Ÿ}޾ԔW{3 =/wп 9w]w}C߲~ hm;Wp߿;xw`>skBƽxj5KZm͚5###Riڵqقh|||q; !T*3ٗO9w=ڙz&~KJXLN~-0Ó -8zVp8w??BxK}"BwBU/YjKR\.ŘDrNf|&>|xEkLoݻ{zz%StoRpNgBk:;>|T*̄r\T !T*XTciSWWW\:x}-VBzz]tggg>5: Ӟ\.766V,rV\{{{wNNNf2SsnW[NLL ى}n3u*<^vU;Շ^7܊/|OyM939WyS#,B5 }fRR9aB000ӓEɣGޱӿ7tߧ?׾i]я_y>_}~gkvםoVJs*f?ׅkWWڌ b|TVq㼩g~:MTgc}{=~7wyֳҟ|7_?s_ !\ޖڑoL}3^ڵ7Ѯo|g[7Vg>c+JɚPʕ!LM}R|> rx^effZξ(g44BaŊUuūo۞9-=|{MWq^\zsp?\՟o:qgoP'e]7ܴCu=繅t;6yy[1޽溷xӆm?L ::T*J\.˳ӕJ%S£G7;۪A||龱.]|ɭ~vڛ½яZ5k|䳮YscWw\~;}j͛}MQלd>|/ !d.hæwީoz;Ϳzsw7.S? !X/ފ .x.GǏ??ul K%PgU|]v> /koY~?_uㇾˇ}Uھ/>w=oo}o{qB/f4{w`لUo|}~g~"rk_]u ^WB ~p}7w^pa?wl|V_^v [wȪ+/?;w`Z{!o <ɧ\;eo@灟xW|~o>Ӹ!}b˚+^ݘWo ! oy p5~Ef_<[ ~#0==g2AT }.@$vBxf!צMjZ U<0::zB!NX|xx8_*]3h%ȻޞfCzdjZ\|ff1(u n(&jBB_ڵkW8TVoߞC;vflZ=z!L&m۶kW-Zj u]O=֖tLލ7n۶-čBB!ZB~=UЂjn?wuuō7f2B;vرcxx8vRfl6Y.gffÇ?y@?/5iݺummmz=lV+JɐޱcT.Vp.+ jmjj*DG)7XZL۷jժ9/շn:;;;00P*<}b8<FU!tvv!V\Bqڵk7B{(JrBm߾=>Ut8p7j8[re&fgg'&&+W:5kl&iBw?ihyޑwk U(7ZV~{5B8p@RjBa۶m![n%03383|(f7nܳgO^ OirrrllVwƁXNR)^۱cG6T*ߵkW|O&JM_j6S6ڿ1PT+E_ !d2z^T6mT(zwww,83଒PqxcB.j]]]={Rݝ!Z666k׮ΙZ100BXfl.Us\56|q{kv۶m۳gO&XreNBVT*z#088oЋ uڵѬF=\.l8Q;###mmmb1={r^lvLqvy<^TnbXVㅿx|>|$PV(UX499'G7|s B3LPXvmoQqsBܖxP(6űXQ[✧dwwubWkj 0GAiKkjZjZ1(oě !>|V[o[o-ڲeKJߟ&&&s\\ ǏY8ۤBp333qH)fٸA6#R[lٸqc6^׷nzCCC񝃃!x.X\#*~\LL旚*u.!'gAŋq߱b ~ڵkX,9L\|ll,ϛMq8Ύ2 8$ mq.T gxr/ukvJeǎ!rvژG `OOO\qB___jhy&ѣGޗWVcE8I|||<Έd2q`|gZvmB^cx[[ Pr y1y!+Wnڴ7ÇC2L___\q />cPWĿjcHz\.Nm-Z*N3#LZ{n-رX,r M7 yV O^yӡD'jގ]\*I߸qxqvT\l3* On2w)gNNNKu3ӎ;ݻÜA}eݼo 4N~-ĹPq!FK5ѣ!쨹xڵkW6ݴiSb߁1m潨Kù\\.7V%hT3:߾}{68{y d@tmGѩR433SV|&T*IQq)0===22}Syw٩ڂV]}o0==ё秧 (nzS'ˍr<33o-Zm WPDWWWWWWZm,B8x`__[ IDATvڲeK>V?^)ZxkG[P.+ }}}J% ?o BPVC, M>eժNO=33SJҚ5k5V=BX,\.W*fggOSSA?C3wko=˟S)ދBAŅ2LovE!<jķXX|q@`ofN|r9+gZaKk$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P2g.koy<͛Z=L*pt{x>d.$P$@2 ,a:Bܹ!>pWphyBܹwݵ̊+B^s4oT G4wiÆ!XFL'H&I(d ''OogžwGސuiXZ5 u6y_qťϴ% u]Os!?ҭ8jɅ;;|Op[mOl!${S=8>h XP\䧲~.e X^? 5_*l X^`:\..C0,+KPA<_Xv$@ yǎ=ܺXF46oiB{'sP$@2 LB$;=ݵz;cÆK{QºPoo<3M\(yP$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P$@2 LB$P2K}r-:M7_պK(tWZ 8g92}7J$@2 \(s熓\(p;OAB烹ʹ~  8OrjJ? ?OAB̃HfQ5[M? # u7|,ŕWp7BB=K} r-;8rd_ĻH&I(d H&I(d H&I(d يo}c`1 ,__E$l-#EsP2XsXf2<2̬8~R2ٻwow{G8skw$P$@2 LB$%S"j7tIME .39AIENDB`jpilot-1.8.1.2/docs/plugin.html0000644000175000017500000007065310445274001013227 00000000000000 J-Pilot Plugin Manual

J-Pilot Plugin Manual

Updates

This document was last updated 28 September 2002, for J-Pilot-0.99.3 

What are plugins?

A plugin is code that can extend the functionality of j-pilot without adding any code to j-pilot, or recompiling it.  It is basically just a shared library that contains pre-defined callback functions.
A callback function is a function that is not called from the application itself, but from an external program.  When J-Pilot starts up it will scan the plugin directories for any shared libraries (~/.jpilot/plugins/ and $BASE_DIR/lib/jpilot/plugins).  When it finds a shared library it will find callback functions inside of the library and call them when needed.  So, a plugin can be an integral part of the overall program just by its existence and when taken away the main program will still run only missing the functionality that the plugin provided.

Creating plugins

Plugins are relatively easy to write for J-Pilot.  All you need to do is implement the plugin callback functions as needed and write the application specific code.  I have provided an example plugin for the Expense application.  I used this application because it is included in the palm pilot ROM and everyone should have it.  Since then I have been proved wrong.  The new m100s don't have Expense and I think some old Pilots don't have it.  It took me about 10 hours to write it with a lot of code reuse from other parts of j-pilot.

I have created a library of useful functions for writing J-Pilot conduits.  The code is inside j-pilot and the header file is libplugin.h.  The naming convention is that all of these functions start with "jp_".  There are some I threw in there and didn't add a jp_ prefix because I would have had to change too much existing code. 

If you do create a plugin I would appreciate it if you would give me a link to the site so that I can put it on my website.  This will encourage more people to use J-Pilot and your plugin.  Even if you are working on a plugin you can let me know and I will put it down as in progress so that someone doesn't duplicate your effort.  Its GNU licensed code so you are free to not tell me of course, as long as you follow the GNU license. My email is Judd Montgomery <judd@engineer.com>.  The official J-Pilot website is at http://jpilot.org.

Example Plugins

I have written Expense and SyncTime as example plugins. Expense is a GUI (Graphical User Interface) application and SyncTime has no GUI.  It shouldn't be too hard to use these as a base point for writing your own. 

Plugin call back functions

These functions are functions that you may implement in your plugin application.  Most of them are not required.  All you have to do is write them and they will be called at the appropriate times.  The naming convention is that all of these functions start with "plugin_".


int plugin_search(char *search_string, int case_sense, struct search_result **sr);

struct search_result
{
   char *line;
   unsigned int unique_id;
   struct search_result *next;
};

char *search_string - input parameter, a string that the user is searching on.
int case_sense - input parameter, will be TRUE if a case sensitive match is required.
struct search_result **sr - output parameter, a null terminated linked list of search matches to be returned to jpilot.

struct search_result
{
char *line - This is the search result text as you want it to appear in the search result window.
unsigned int unique_id - This is the unique_id of the record that the search match appeared in.  This number will be passed back to plugin_gui if the record is selected in the search window.
struct search_result *next - A pointer to the next node in the linked list.
};

This function will be called from the search window of the main program.  The output parameter search_result will be displayed in the search window.


int plugin_get_name(char *name, int len);

char *name - output parameter, a pointer to a pre-allocated buffer in j-pilots address space.  The plugin should copy its name into this string.
int len - input parameter, the length of this buffer.  Don't overwrite this buffer.  Its currently 50 characters.

This function is used to get the name of the plugin, e.g. "Expense 1.0".  This function must be implemented or the plugin won't be loaded..


int plugin_get_menu_name(char *name, int len);

char *name - output parameter, a pointer to a pre-allocated buffer in j-pilots address space.  The plugin should copy its name into this string.
int len - input parameter, the length of this buffer.  Don't overwrite this buffer.  Its currently 50 characters.

This function is used to get the name of the plugin, e.g. "Expense".  This is the name that will appear in the j-pilot menu under plugins.  It is possible to have a plugin that isn't accessible under the menu, in that case this function should not be implemented.


int plugin_get_help_name(char *name, int len);

char *name - output parameter, a pointer to a pre-allocated buffer in j-pilots address space.  The plugin should copy its name into this string.
int len - input parameter, the length of this buffer.  Don't overwrite this buffer.  Its currently 50 characters.

This function is used to get the name of the plugin as it wishes to appear in the help menu pulldown, e.g. "About Expense".  This function is not mandatory.


int plugin_help(char **text, int *width, int *height);

char **text - output parameter, the plugin should point this string pointer to a string to be displayed in the help box. 
int *width - output parameter, the width of the help window.
int *height - output parameter, the height of the help window.


int plugin_get_db_name(char *name, int len);

char *name - output parameter, a pointer to a pre-allocated buffer in j-pilots address space.
int len - input parameter, the length of this buffer.  Please don't overwrite this buffer.  Its currently 50 characters.

This function is used to get the name of the palm database (pdb file) that is to be synced.  This DB will be automatically synced when j-pilot performs a sync.

For example the expense plugin uses the DB file "ExpenseDB.pdb", it would copy "ExpenseDB" to name, leaving off the extension.  A normal plugin that just adds, deletes, and changes DB records using the plugin API will not have to do any special work during a sync process, it will be automatic.


int plugin_startup(jp_startup_info *info);

typedef struct
{
   char *base_dir;
} jp_startup_info;

This plugin function is called when j-pilot starts up.  Any initialization needed should be done here.
The base_dir is the directory where j-pilot was compiled to be installed (default is "/usr/local").  More fields may be added to this structure later as needed without changing the API.


int plugin_gui(GtkWidget *vbox, GtkWidget *hbox, unsigned int unique_id);

GtkWidget *vbox - input parameter, the box underneath the sync and quit buttons.  This is where the main applications put the delete button.
GtkWidget *hbox - input parameter, the box that makes up the main part of the screen.
unsigned int unique_id - input parameter, a record id that the application should go to.  It is used by the search window.  This will be a non-null when this function is called from the search screen, null otherwise.

This plugin function is called when the plugin is selected from the j-pilot menu, or from the search window.  This is where the plugin can draw on the screen and provide the GUI interface, etc.  If unique_id is non-null then the application should go directly to that record.  This is how the search window forces the applications to go to the search result records.


int plugin_help(char **text, int *width, int *height);

char **text - output parameter, the text to be displayed on the about dialog window.
int *width - output parameter, the width of the dialog window.
int *height - output parameter, the height of the dialog window.

This plugin function is called when the plugin is selected from the j-pilot help menu pulldown.  2 things can be done here.
1. allocate memory for a text string to pass back to jpilot and it will be displayed in a dialog window with width and height as the width and height of the window.
2.  set *text=NULL to prevent jpilot from putting up a dialog window and then implement the help portion yourself.
3.  I guess you could do both 1 and 2.



int plugin_gui_cleanup();

This plugin function is called when another application has been called and the boxes for the plugin GUI screen are about to be destroyed.  Most widgets will be destroyed when their parents are destroyed, so this function normally is not needed.


int plugin_pre_sync_pre_connect(void);

This function is called after the j-pilot sync button is pressed and before the sync connection with the pilot is established.


int plugin_pre_sync(void);

This function is called after the j-pilot sync button is pressed, after the sync connection with the pilot is established, but before any syncing is done by jpilot.


int plugin_sync(int sd);
int sd - input parameter, the handle to the pilot sync connection.

This function is called after the sync button is pressed and during the sync process.
Unless something special is needed to be done with the sync handle this function does not need to be used.
The sync process in j-pilot is a forked process, and this function will be called from the forked process.  Therefore the previous state of global data in the plugin will not be available when this function is called.
The order of operations during a sync is as follows:
1. The 4 main applications are synced.
2. Plugins are synced according to the DB name passed back from plugin_get_db_name().
3. This function is called.
4. Modified pdb files are pulled back from the pilot to the desktop if a backup operation is being performed. 


int plugin_post_sync(void);

This function is called after the sync process is completed.  Screen redraws may be a good thing to do here, as categories and records may have changed during the sync.


int plugin_exit_cleanup(void);

This function is called when j-pilot is shutting down.


int plugin_print(?,?);

There will be a print API here, but printing has not been implemented yet.


Plugin API functions

These functions are provided to make it easier to develop plugins for J-Pilot.  If you need something that isn't here and it is something that J-Pilot already does, or something that you think others might need in the future, it should probably be added into this library.


int jp_init(void);
This function must be called in the plugin.  Preferable in plugin_startup, but it should be in the first function to be called.

int jp_logf(int level, char *format, ...);
int level - is the logging level.  It may be user configurable in the future, but right now I don't see a need for it.

You can turn on and off the debug level by using the -d command line option though. 
char *format,... - is the same type of things that you would pass to printf.

example:
plugin_logf(JP_LOG_WARN, "error number %d: %s\n", n, err);

There are 3 places for logging output to go to.  Standard output (stdout, usually the terminal window), the log file in ~/.jpilot/, and the ouput window (the one that pops up while you are syncing).

Logging levels are bitmasks, so they may be combined with a logical OR.

You can run J-Pilot in debug mode by executing "jpilot -d" to force debug output.
 
Logging Levels
level stdout log file GUI Intended use
JP_LOG_DEBUG
Debug
only
Debug
only
  Goes to stdout These messages will not normally show up unless jpilot is in debug mode.  These message should be things like "x=%d", or "inside while loop", etc.
JP_LOG_INFO
X
X
X
Informational messages that aren't serious.  e.g. "Put the palm in the cradle now", "Syncing xxx plugin", etc. 
JP_LOG_WARN
X
X
X
Warning messages, that are not fatal, but may affect execution.  e.g. "Out of Memory", "Could not open file".
JP_LOG_FATAL
X
X
X
Fatal messages in which execution can not continue.  e.g. "could not open display".  "Out of Memory" may also belong here.
        I didn't intend for the following levels to be used unless they are needed.  They provide more precise control over the logging output, but also override any future configurability.
JP_LOG_STDOUT
X
    Using this will force a message to be displayed on stdout.*
JP_LOG_FILE  
X
  Using this will force a message to be written to the log file.*
JP_LOG_GUI    
X
Using this will force a message to be displayed in the output window.

The concept of the log levels is to use JP_LOG_DEBUG, JP_LOG_INFO, JP_LOG_WARN, and JP_LOG_FATAL so that the user can choose how much he/she wants to see. For instance if you have a plugin that collects a bunch of data you could use JP_LOG_INFO and it may say:

plugin foo started.
scanning yahoo.com
scanning bizwax.com
parsing data
loading indexes
printing info log messages...
plugin foo done data collecting.

And then if the user doesn't want to see this he can set the log level higher to JP_LOG_WARN and only see LOG_WARN, or higher, or he can set it to JP_LOG_FATAL to only see memory errors and other fatal messages. 

I only have the log level hard coded right now and with the "-d" flag DEBUG is turned on, but it was coded to be flexible.

By using JP_LOG_STDOUT, JP_LOG_FILE, and JP_LOG_GUI you override this flexibility.


int jp_install_append_line(char *line);

char *line - input parameter, this is just a line to write to the install file.

The install file is a file that is read line by line during the sync process.  Each line is the full path to a file name to be installed.  Once the file is installed on the pilot successfully then that line is removed from the file.
example: "/home/base/AddressDB.pdb" will install this AddressDB to the pilot.


int jp_install_remove_line(int deleted_line);

int deleted_line - input parameter, This is the line number to be deleted from the install file.  The first line is line zero.


const char *jp_strstr(const char *haystack, const char *needle, int case_sense);

This function is analogous to the C function strstr except that it has a case sensitive parameter.


int jp_get_app_info(char *DB_name, void **buf, int buf_size);

char *DB_name - input parameter, the name of the DB file to be read.  For example to read the Expense data you would pass "ExpenseDB", leaving off the .pdb extension.
void **buf - output parameter, a pointer to a pointer to a memory area to be allocated for the application info to be copied into.  Memory is allocated and must be freed by the calling function.
int buf_size - output parameter, the size of the memory block that is allocated during this call.

This function retrieves the application info from a PDB file.  It is packed and must be unpacked into a format that is specific to each palm application.


int jp_open_home_file(char *filename, char *mode);

char *filename - input parameter, the name of the file to be opened. 

char *mode - input parameter, mode to open file in. See man page for fopen. 

This function opens a file in $JPILOT_HOME/.jpilot/ Its analogous to fopen except that it looks in the jpilot directory for the file.


Using J-Pilot database files

To write plugins that utililize j-pilot's built in database and sync abilities it is necessary to understand how the databases are used.  J-Pilot treats the pdb files as read-only, except at sync time.  It will not modify the pdb file in anyway.  Actually it never does, it lets the palm pilot do that work.  I may change this in the future to achieve faster syncs, but I will try to keep this API the same.  J-pilot keeps a "pc" file of all the changes the user has made to the database.  These are "reconciled" at sync time, and the PC file is cleared out.  So, after a successful sync all of the data should be in the pdb file and the pc file should be 0 in size.  The pc files have the extension ".pc".  So there will be an AddressDB.pdb file and an AddressDB.pc file in ~/.jpilot/.  The pdb file belongs to the pilot and the pc file belongs to j-pilot.

Records are just chunks of data.  They must be packed and unpacked into some meaningful form by the desktop application.  To do this it is neccessary to know the record format of the palm application.  The palm processor is Motorola 68000 based and the palm stores integers native to its own processor, so some translations need to be made on integer data.  There are examples of this in the pilot-link library code.

To modify a record you must write the new record to the pc file and then delete the original record.  Actually if its a record in the pdb file it won't actually get deleted.  A "deleted record" with the same unique_id will have to be written to the pc file.  You don't really have to worry about the details of doing this since there is a library to do it for you.

So, when you read a database using the libplugin calls you will get records back with different record types depending on where they came from and what they are scheduled to do at sync time.

This is a short explanation of each record type:

PALM_REC:  This record was read from the palm pdb file.  It is unchanged by j-pilot.

MODIFIED_PALM_REC:  This record has been modified by j-pilot.  What this means is that this record has been deleted and a new record has been created to reflect the changes.  This is the original record that still exists in the pdb file and it will be deleted at sync time.  This record is kept so that at sync time it can be compared with the palm pilots record to see if it was modified on the pilot and in j-pilot.  This record shouldn't be shown to the user.

DELETED_PALM_REC:  This record has been scheduled to be deleted from the pdb file at sync time.  This is the record retrieved from the pdb file and there is another record in the pc file with a matching unique_id to mark this record as deleted.  This record should not be shown to the user.

NEW_PC_REC:  This is a new record that has been added by j-pilot.  It is in the pc file and will be written to the palm during the next sync and then retrieved back from the palm into the pdb file.

DELETED_PC_REC:  This record was created in the pc file and then later deleted.  It shouldn't be shown to the user.

DELETED_DELETED_PALM_REC:  This record should only exist during a sync process.  During the sync when a DELETED_PALM_REC gets deleted from the pilot it will be marked with this record type and then as soon as the sync is finished the pc file will get cleaned up and it should be removed.  If a crash occurs it could be possible for this record to be in the pc file.

REPLACEMENT_PALM_REC:  When a user modifies a record if its a pc side record then the pc record will be deleted and a new pc record written.  If the original record was a palm record then a MODIFIED_PALM_REC is written out and then a REPLACEMENT_PALM_REC for the new record.  Older versions of J-Pilot would just delete a palm rec and write a new one.  This would give the record a new unique ID and break some programs which tracked the unique IDs of palm records. 

The SPENT_PC_RECORD_BIT means that this record will be removed during the next pc file cleanup.  If this bit is set then the record can be totally ignored.
 

typedef enum {
   PALM_REC = 100L,
   MODIFIED_PALM_REC = 101L,
   DELETED_PALM_REC = 102L,
   NEW_PC_REC = 103L,
   DELETED_PC_REC =  SPENT_PC_RECORD_BIT + 104L,
   DELETED_DELETED_PALM_REC =  SPENT_PC_RECORD_BIT + 105L,
   REPLACEMENT_PALM_REC = 106L
} PCRecType;


int jp_read_DB_files(char *DB_name, GList **records);

char *DB_name is a pointer to the name of the DB file to be read.  For example to read the Expense data you would pass "ExpenseDB", leaving off the .pdb extension.    Both the pdb and the pc files are read.
GList **records is a pointer to a pointer to a list of records to be read from the database files.  Memory is allocated and should be freed by calling jp_free_DB_records().

This function will read the pdb file and the pc file out of the $(HOME)/.jpilot/ directory and put all the records into a list.  The list contains structures of the following:

typedef struct
{
   PCRecType rt;
   unsigned int unique_id;
   unsigned char attrib;
   void *buf;
   int size;
} jp_buf_rec;

PCRecType rt - This has been explained in the previous paragraph.
unsigned int unique_id - This is the unique_id of a record.  The palm assigns these when they are created.  The PC records will have their own set of unique ids.
unsigned char attrib - This is the attributes of the record.  Look at the pilot-link code to understand these.
void *buf - This is the raw record as read from the DB.
int size - This is the size of the raw record.


int jp_free_DB_records(GList **records);

GList **records is a pointer to pointer to a list of records to be freed.
This function will free the records list and set the pointer to NULL on completion.

This call should be used to free the record list allocated by jp_read_DB_files().


int jp_delete_record(char *DB_name, buf_rec *br, int flag);

char *DB_name is the DB name to be witten to.  For example to write to the Expense application database you would pass "ExpenseDB".  Do not pass the file extension (".pdb").
buf_rec *br is a pointer to a record to be deleted.
int flag can be either DELETE_FLAG or MODIFY_FLAG.  DELETE_FLAG should be used if the record is being deleted.  MODIFY_FLAG should be used if the record is being modified.



int jp_pc_write(char *DB_name, buf_rec *br);

char *DB_name is the DB name to be witten to.  For example to write to the Expense application database you would pass "ExpenseDB".  Do not pass the file extension (".pdb").
buf_rec *br is a pointer to a record to be written to the DB file.

typedef struct
{
   PCRecType rt;
   unsigned int unique_id;
   unsigned char attrib;
   void *buf;
   int size;
} jp_buf_rec;

This function is used for writing a record to the pc database file.  The record type should almost always be NEW_PC_REC.  Unique_id can be left blank since it is an outgoing parameter.  A new unique id will be assigned and placed in the structure.  Attrib is the record attributes, buf is a raw database record, and size is the size of the record.
 


Other Miscellaneous API Functions


int unlink_file(char *filename);

char *filename is the filename to remove. 

This function is like unlink except that it looks for the file in the jpilot directory. 


int rename_file(char *old_filename, char *new_filename);

char *old_filename is the filename to rename. 

char *new_filename is the filename to rename to. 

This function is like rename except that it looks for the files in the jpilot directory. 


int get_app_info_size(FILE *in, int *size);

FILE *in input parameter, an open file pointer to a palm pdb file. 

int *size output parameter, is the size of the application info block. 


int read_header(FILE *pc_in, PC3RecordHeader *header);

FILE *pc_in input parameter, an open file pointer to a J-Pilot pc3 file pdb file. 

PC3RecordHeader *header output parameter, the header from the file read in. 


int write_header(FILE *pc_out, PC3RecordHeader *header);

FILE *pc_out input parameter, an open file pointer to a J-Pilot pc3 file pdb file. 

PC3RecordHeader *header input parameter, the header to be written to the file. 

jpilot-1.8.1.2/docs/jpilot-expense.png0000644000175000017500000007603410445274001014516 00000000000000PNG  IHDR;gAMA a2tEXtSoftwareXV version 3.10a-jumboFix+Enh of 2005050103 IDATx\TU8W#븎:`N9!XFB-M$kVlÏh!}"%mƚl1G.zaM3C_rs9ѧ~ =#B^峠<>!BW*hy|B[ P!B !BcB!By C(B!].DЀ@~';._=|I:vV:B ]-wDv.*+|cIg: nvER ;ځC|f`]N!wD"Q:lw,l./B>;NP2e J%:6 #W.ZNEcBmPrgB!Y~ ~g?2\tݴt;"bcOM-nnHB!. 6bZg?w*>y ;=ݻ̙Sn+X.d Daʔ p@ZZ}lB!m: 4ɍnkAjǎ%Kloqi|rⴤܹ \*)ѯX1eNyV͝;W}kZݩ'!??Ѯ]z6!B^6b3fdjQ^^ensw:N|鯽Q7!B>gugϦݻBrr|/FtwN_xA7|8%Aaauo5 !B=1荸P!B Y(\#!BcB!By C(B!B!B!5ѪUyB B!P!B !BcB!By C(B!aB!1 B!V!4(Z:[KV޽'MC}s3mm\*|yaC~{}v" 99+++M*U]cHU0vH n\`7X3wݻzӬ_oӦ?$'pN*Ym@QC.5i^nwRUV5/^ :qMOyB e2$0rx/**"a)(*""L-\^SSQѭIo0v]Bm73g9{]~%t?:?c$EGBN\~@GlO_n#ۋ?PUG/[A2Uصm g჏\>.t,_8LoػdXj Rn2fϾ+>~;T;vfY Ųܜ9}N4lOۯ>#v|444-\8 ;^peܸ)* wٳ:2՗_nÇ_ΟRZz??嗧fϾOԫLyB t:LfX"""֬Yt7jyX,%%%4Mb\nٴZmLLL&J"%J*)K\ܫn[d(Ikk[K˵;j,KݶjU믿煉{c D"on|{cGcOzWV%W2UVsn̘H&"|?bG/$RuOnef4Vp𸠠3 0pGug[R){=p'B@mEf@[[^8k֝~<4t+|_ Kv;i0|/v|X,eۆ  ?0eo hh8ױ´anm믗uVLHIA~v=ݾXCmK=oB(lr2*\&9O M&SuuhD*L&Hd`ڵ 4MɴS\N:5پ &Ltis? jcg??E77u:.eXJJ]m`ay_}հC4D8r?<?b|yduޟZ >#oZmxc7]sgugAb4a%o_rh<{?yhSn6_=.rCù fXtϝ??47\-TKu;W)..& ">>>==)~aJ ׬Ycي=ɿUUUb|iZb1MVkO=Z~n'qFw!8x\l̴؄72rB%J!Ӕ)2͍X:F:]O/c5N;˻C>NsOOF.@[WwG:O8tkx$'g}ōe Kxx0V(vv]o sSYy'#FP'JBpiƌp}~: 4ɍ7 /_fmؙH/cinqihh??ԩ ~3fرY{F>qbPg;o^&|N;I L&S%Bt: 8\ee2D"dZV*aaaeeer "=}kd2_:5Y"?ol*Jx`ױb.:wyMӦM8rČ<XuW*Y3'x/_V}'vYdƍq6ۏo/C\~K/ŵ\ϑ#!C?H$7-?ŊL̘ DyyB^0f̌ӧ{z~s1/|ɗ.9 MqqZr[~ePĿ}4&[]V\ѢY7.lmmvv{g?)ΝWz82R}Թ>xB h&%&&9DR[[[RRBXJdaxfffbbbjjjaaaQQT1 C'RbQ(4Mn=GnM+{lk0W ,,XؙÑ[U;" 8}N_,vnnxVz.m.O]ȑúKpsŋÖ. pr)r)y@ \9zFs^2'^sσ]0 I$^B?):Gᩈ?U ^fZX,NR4$$y\[[ly,ˆx2D"t6lڲe EQYV\nXcg&%%֯57s!nV͝;W}kZQ/5O=5gɒ𢢽E W;EQOX(aR? B.LHx(00Okj6n* Z*-!IY/))IPpG&jQQQ,J$+*****l6HTDG*Qd~)hZQ[~m~x˛.ub= Vڱ[MMu-3,DQ.㧦ݻnsͼy2㎅?,/tӽ\7c((, %H2I{HI.'''$ITTTAAAUURd˲P( J09PRUWWSe6CBB}tÇS"Vyܠ^ErQfjr/>b!4xBfJd 'XlZVkmmmuu50r쓛 $jTRP\\\PP'OsPG&~>b!4x6e,d!ahI,oذjJjrWrtۑ׮]Kb&2qf9,,L#B 4($Vb6BNf"sZ,x2'˲钒$iZ.b@, !|i-y—#r 2D'$EEQ DGG'&& s;IL&KMM-+++**JJJ&qn޼9>>~ɒ%Fb4z=E^)n-hݺ0(|B(Lf,LFD/bbbH8S 8[vmXXXLL MӹIIIi0Lrr @Pc|r |Nr`0,˲0\,+ !~"OrLR𩈈^_UU#̨ &l9IqCy!B8ͦT*IDPB$UUU U*PIrrrMM |ڵdBsǾ?!f" {QB B(Z dLHIXffY,UWWZ2Ld72SnnF%%%111[ |y{QBB(lA$daTrrbH$rLɲlTT8^b8>>:$$DRQUSSC ""Lh.U7mcX !B7)/ X,$#q-Qe2(bYh4 )Jc re׮]K&e5I&݃gAomVKKB+hcCĂ`$HLyaxd4M@ IU!!!َ'R(,2 0ڝ:"+ /P3 L% "++ VkuuuYY6qTX,X, èj0 q< H a&٬Ʋ4ϯ!4XF7y1 qDf$)Jqqq$6ȓz$"sA9RZ0|=ԋA VLk& -oB(q ls1dq)\,J$͛73 KSQeeeY?уɈsłQ#%4o.(g?i'mryAՇ .J]ߌv*^ʥ_"H,'{=ޓ~Wǒ͞3cH$znӻnVGw|6:~c|/,D!t3laڵkɼP2d2 qwqrPSSBDb޵XHSg3.~t)ПGDDf5o3!!!V(Q@e HQJʿv5wkϷ7@B;/on'{NߌOI 56$6"Bǖ IDATm?׾/;!GN~]!Ác qi^1•^Lݣ g%z>$$D&iZT-Le0lR\\,?effFEEUvW=l"hz~rX?s?t}ԜS=Uc~@=n0kF6D"Ϸ*g6<PCvB}Ӧ?e;ry悒ߊz..Kn-B |=LsTOZVT&$$PbFqT\RRFVauO?x"S6Nqw]5ge?[ؑj¥+뎟?'l c.]iya:[]GE"z\t;}tܣXRr  n]1\|["NSS]-, &&diXh # HI"HRLFQT*%˼j '{DܧtJIM?XSL]ǟRW? mmk7ۦ;)+E~"iWbvyc?U]zz`rz0wgųIã;>q,wy ~?<|E]k8"k.Y+ȆBB>ozErxTq.\DU0vȌ]n6k,曻 ;6liw=ݏ=Y~ߦMHNq>;j?;}[ݶ(90 @zuxXO~rJ*.++,!܅g 11`B|w]X} L0fW_-صm !YO?zٲ]? j7{2,LxqXvv)?Ji??E Ųܜ9})) 6mrkΰӦдp,;{•qn3glN]VVKI㺋m9,_9lX4﫯C|Bg!TJ3`m̀((((aKB'FXD2;; ;oH7yfٲpRT}w:dzIPCmihkkgͺϏNzHJK4~YWc,2mCџ}f27Æ44Xau g?駇6#4,"Y%RTd 8eɊ.\QQP]{>f\0adu*_"?ol*JxHo㮹. [Zno_rh<{ ;s8cv|a컬 ,PZzU ¿Mp䈹Q z>`0}{'@hD(iƌp}c5|ٚccggJK<@E9u…nj9v￷u[s-;_/]œUy= jk ɶZ&t bjy!%nG#BBB"""rX,i KG1<#ii/LFlJIɁu/@"*>KqdD5'm+~:w5-5u\~kڸ1T_l^N@J.l?C\6i( ;wrǁP.r(.ikk[(4puN=Z#6lTBTyfRN<3 CI,gZ-X,ZjZ}fumN42Bٛ}F_kk[hćky….^l޳Tk!.2O.'/> i͚5aaae˖-<==(yeYI,E9 (Ba2nB^Х/|r&N !>9 ^T8%KԄF14M40 #x$DQ˲$"d_B7C^~7ZȷDyƏt:TJ4 lذT*I!dt9A+l}HPEƛB!UބPssaaaJf s!!!bh4¯#' |W8H$RB!; JJnU*!βc>82Rd2I$DB;apHAB2]*VW٣C!Э$2rQ¨&-$J)((#Яqz$ɵ!BrϞc8FAd22<jkkG5 aIM ]ud|DNKI$JfGB!4yDV',?^8LBƹb8qjU(fٻ" TM@eE69 Z-DBߜ00:,ofT*B݂֭M@uEQd 0SEEZHH&4MLD'8O>bGzv!tں ExzYEդRB!<  l6!l"m"{BJM#""R -dIA94G!B^*X$9Df{"$DkkkH70/9233e2^RR].M"I$2B!tK#(/vld (ay!L-5]IIR,//t:.))I. QQQdaC piidcܸg^]zƜ] {C>*'g3ϼX2o^F3I$ef{:݌r\ \S^ުի{^!bq\ziVƉLNGf*'yhLk!>!`ڶmEoON'3f_Su燼6G`'DQP9@BC"!aTΉ7op b `ɒ%¼P@!( eq B~e~~;*112#cWNcSyyU.#G&$<8jV{Q>/N`5mrj\eS:V%immkicGrI' @zuxNBQ/h. ynomm,MK'> rOrNy?kjJ4-:NHJQyfN){meggKReq=<cǎYpDB,7gj>#)Zg?w*`>q2~e"HYJʂMJ9QZZX?z-?^pʷoa~ ,]eay_}հc4ޟZ >22ve ›*::BxԎaaavr'$))Igff UmmBʊ2E8DVkZ0 P\'B6q֬;?xhW^> ֞^h) 426v&]f{QjxcRX[{GXD2;~~c~zo;!'N]MGl-B7!\8@EN7n$Iaaaqqqfff\\X,&wU*Ubbbzz-XVV6` !tٷs\j4zZgD9a0Y"RzX76Zge%卍MӦM8rl;ryH~~R)59sn-Iyy $&;-"9NF2 q@QTUUOs@|SB7˗Y96vЋ@h%%%<`oﺬf`8]qqSOY$W<$!??Ѯ]zRR]}⥗ZZ(4^3dhժ< R<}t@SSE % d2)qd2LSSy-Bfz~pGeo.\8={ ˎs/#8Xy>!t jj\#DQ.'KxyّGhϪj"Hj5EQ*LYN w 55(2Z{O!4l7qbPM]B}DN>ࠧ]Z4AMMMHHHHH˲AQ.3Ei4 ~c{$_/\TE !s Th4MeF#,EUTT,Rx B<@!=ɴl6KR9dMRT&QE6b, B&gPEJ%lZ 4MӴ8E*f28&B!z.2rQxH_Ͳ3jxB!C>T:OB!p2Y !0BjݺP0Bj=n!޴bEQdzVj(iL&`F!\EyP9B^a8/kRLg0Ӕ$؊aKB!t "ɤcg!c jR(,$,y'ӔU-b!;WTTTt:Q_!BE}6^2::Z.KR0ߎx(J.+ ef`X\^^FQ!zB9O&$$D*,qD"Zd^r\V5Ba8STRd21 CFB!U= 㧘RIr8h4  Eʢ(JR=\n08oaaB!~-/o#xR <F6o޼vڰ0ǁPx82d2l4~C!U¿>e)~d6eYJdɒ0jUbQSeYy7v*z~!ԭ'-WG?2jڎ5˥+`QrrV ( J.}ߎ1cȑ 5^TrrV~I ڹˣGKKOK]nO:W 0pի-rTYyLWYytgy(j…&M~:k+Ǐ^MJ9ڵ~U^H0uWuN ;ucçFFm[[23K] >țJ?SPhژoαaBAF8t,KT*8芊 2D"lRT*Z,gB]1c_0O0a˜K_}ر3 ΒH(Qg$l˫)Av!˗?Dŋ -̼]nT:y G~k۶BfWԩg/]r1F3iޓ=iWJK呤d/hCvW95Dpȷ凿}'/Xl,V+SZz`gNSV~cccOM-nnJXP8HN NG="` &dvMT[[KӴFQ*Ji # 55CJl6\.8a(PJKcٟoFXD2;hhkkgͺϏNzɁ6w :d"۷.! 426v&С7Gtl]iZrƃO?}B]jkO;?}"%eO-+uLUV{ReAÇ!-YhVdžlg.}AѣJ=PYYYdiajjjRi\\***Fc||biZTŢRd2d͵X,㒒H$ㅁVBQ#B6n}tE/VC(* tEegg4RT͛7b1LbXTǓȲd:7Brk}w+PQ($f~ w#""hid2BHNNpaBe#'B!4xDNtQyH5 XdRM^!cJ&E,) #H?YEPQQem+ B!z7Y(`ٻt:f#Y%!jj ͛t:]uu0''M?. j4=,B_[zuj>YdR4MFpG°'J"TUUd2eM&SyySOZB!$/o4#O|B;bXժt̚TjjjjʾaB}_\pDn~[i^ު{: )) z((?ue9eeiE(aHFqZRibbVitכͣ}r=(~xoÃE"n(??}Lrw3gN9r[??o??MJ}:1OrQ &&8N*FEE zdMRT&I$ɬQd5o?77sf>AsrV>̻d{۶>))a~BP V+YVO"p'MtqAA#ccg@`PaCN7ߜ5m銔ZMo5??:W>>NK)O+Wg^u%2}R4(ٚ]6;?R͚uל9[w+"FС⬬w-wC(*+>6;BNwɶ6ŋ'>}~ƌ>g0XÃBDBT_y!}ttDˬ;3? h0|OFPϜ9Ol#]_o _ƻ `f\>7#M!D$8^I~Ŋ,}wmm`.Z*ݻO9Bٛ9….^l޳T9,_>mܘs'£<۶^x]g_^_$"փJ;BY,Ձ1~'"s]hQxx U"b6#""BBBTL*E1BDǘ1cԬز'xBD̙SRRRViL>V"ңVWko>vl Y`ӂ|w)펡C(PDζ>-e@=tRuRQqqZ>w_/z\\d^ޙ:i_XpիFHZڦMFjt雗_b "ɓZY'\7u?%5 :ep9qZ,f6,?i_~Ygω|%{ ;g9+Up᫅ 79ru£<___Qd6g̘~zÑ.߭;mv:D_ Xl6ܹS|͚5z :+WEEbb"Οn4zk9R4yrѮ:NΟУGs!=aN,gOKBCˍս{Huuu^{}vK/mЉOlPNo_|[^cbHn74VbDUAjy3v0jHN-d6 wܩ>0VRdJOOw83gT}N*9ЙW^5ߟUYYuOho+u0ٲn0-]:U58P_o ?o//yv`"rJף7&Kbq8jr~Klr'x"55511jfggL&Nh,l6PΩ3ϟPtР"2xp3gʚ 7b1O|_R۱t]˿`/. 9pu4dzzKIT*B[hM&SaaaVVVPPЈ#Fa엗W^^p8Ԍ9s Uj5k婛Yu' o}(!ᡨ{._\z_g|+W*ĝ>^*5Po3Fm0\oNǺڳ˧}EO<\A;wu[mYm]dz* n ԫv*e m6j-(("sNM^VVVyyyttb-**2ԚRIڹ 6b1cH1+Zcdž6?BvưI3'}ӋPjDu)f٬50ͪG*###55uƌcƌQǂ 9sHHHSI"4ĩ?\⺋t[(ٱ#?,ٻojk%K:UUtB Y%͂REJHUTT$Ӛ5kUBRèȳEDmW76ձT(";uʔ/5-mӲe kqj'KnSOP]Y׾weג%YGf֬Q1գ[$@RsrrԌ(ɔuQ+̙3Gzbcc<#33& uxztoߞ?W_Bjl{ /so͕9KhT{Ee#ZF\DTQIDuG1sԭ[}Z̙DDgt8Y,@#@לE.z 6GkA/TKjL:pHbbbdd(&^7-Xp_3wgw"ݿ$ckPQn]n߾͋}Ǐ59yRcOIH}?pGZu˧#y ھ*GG'!᯿.mtzD-&V[j`1<77WM'vr8FRӞf̘c?$$$""f3~&VkDmۖl9eauWS&BG¯[[qh]#sݳ\ykXmt] -^1c޽bX,cqc|NfEEŪUo~͖_RB~w۾:O^^Zsۻ.ȑ7}B+j6Ckgi KJJ***|}}UڡX8JDVZtƖzڽ{whhf+,,˫lqa;wd. o6ܒ -^rzvT'V+iPJdAAA%%%!!!jq&"j5܌3'b?5m,٫? ڵӟմu @ׂs#s"Bh#Bh#Bquʤ'FG7%_>-?*#%n>UۯgKHInS{""?!ıcCsZL{@v_<'Qی);dM5p "\vxo^ݺݠ/ϸ{ x䑰^paw֛ 7{W],hKNp{Ĥ4]#">D>'7I=ZlD(jO?Wߜ8Q~^Qq嗷đ/V̽o"̟uЙȦqb…W!"ii6mI-WȨ7^(~""z˅8 H>|."XgE?7| -v8>|ND)߯G9rNDΟУo.;ʮm< K&2 xg`E׷zvID*+DFjuU55ukkL&o:vy5,qKzɅ2|~穱FNA/ [Pɜ9뒓%'>IEE9S;`%"k:-9U]^/n_߯> |;!ٱEDdf>FNAZC0?͌Po}(22h޼ZjKH=JVO?=\B]gω9~ȹId,Hp{""oo.&g%2!JDd[ ]~6]+ ?_Ϭh fW~? kS6ۥGggɒoS#,ؤNxb:uPO<1>jJD2nz~27*B jǍvChN,yrEK^{mm3++DF{mFDZ_^RybfR^}C‡odPPmTUTVJwrl iVnj4o\ NQ]]sȹΜ)+"RPP2|xD^M\[TTvX:hP_<ߙ3eZ\ZzyWoywX'>D~|x r4ysq=ΎuϮ]S׭ˍ6o^o؅6JJ=rdӟUAۇի]{Us~GS%>w&zran?+⺧ #WQ-85KWE([do[al׾}ںgPO&B@cx,YWk]("k, A &jDңw萚f:=RRb9䖞"">>TpȄ( Q2!Jw˳k*:#\CN8wd l۴MUUUii68񏀀[- t@1w“roݖ-]ȶlٖ-EߏɗED< #BܖTWW坽L>aaw>|k L-ȷqMmh!"΢̇Eg>tÃJJ.y<¡C [X7|ęwKOe]r0޽Wh>"8ٞ='Ofx{{1۫ GU׮o|ev)&fȁM6h\BDJ֭|y-QN2vPڈP:w$wa]2-у>>))18-mSݦN}Gj֮=P\,_>m׮X, ?zkӣDN,1 6>`^]zahL'oYG: N 'ڿTZڦeԞ"R8.쿟:xSM|[^cbHnW͑#D =zXTK``+"L 6<)>\tx,3"NA%?wd[V1 xg`E׷zvvk2jyy{aÂ,٩yN`:Tַ9s%'KN^}BM*w8v{\PP2|x:ĝ~Fc7سgϖmڔwVgPxzt 䧎aȐ/W=z>!aԮ]|+W*6=^.7>~ؼy>>>6oncwްPR#CNGl:nݺz{{mڔh/[pp`wɜnW譺ң;vd6Vg f{įnmUÅPM$U$&=G"Ta]|PYymӪw.\,")tru&[^?\=pL&Ep5̇Sں7򚓟HT\*0s99B5TH^~z-) {8օO"*?yH>G83#j$=5DrbcI)(֯5P ΂˘?^7E1 iurQ1Bp?rGj"0%&=*3Y-p.\rN6ڜ ֥ӍPuyQZM@^({Ps%*K^~yu*V~PYUR+EO_"NS$. %K'oX!"_YPcpr%"*?=yOΫ.(q U7EOur@JQ*H@Ul@bl'L~˵HN~/M @GyڈPڈP4Bu]j֬Q.47B-Yץu\yN1h#Bh#Bh#Bhsy}՜u꣏y9~}:{8JDƏ ۷ows%JDFm Pu?vSU^S]BO^(//z#W< ׅRi=>O)OƽP{Dt/Q{o8)BlUyvwwK.U{d#3xWE돏?8ou.h=ׄSUP3>7:ꢪ%] b8K|7| fqlO>%gi^NtvnݏtAշolIJ]P8n6Bm.yc]Pt߸ ]Pq@m?qP4JK5k(AZ@\(mD(mD(mD(m͝Nnwii>=mkP4օٴ_o˧@P-@FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFfjfu <PڈPki3f6>.[у\_:"#vk߾sر. s& YxGF槟y]._v}_|Q㓒#"iiw6u=zTUUvۨ|_B:Çv{wfCEHZڦMiiD$.ϟ?kѾ jjd11C >1zk9R4yrĵW֫W!"ҭ n>7"_4|[VO@ۼqEǢAΜ)SGU׮= %Ç fFGgC/+.G}W}|C EEsrTcN_r2-mӺu͋پ~wۮvS^II+ۺ*-=cGЉ-N _Ws۪yڈPژ ә%h  @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ pũm],:HZdo[:m]a.6"6"6"6"6"6"6"6"6"6"6"63u ^(nկ~# ;{2:D(nE~10 @ܶØ2k0^555m]1mܸ7ݸq;;42 oh#Bh#Bh#Bh#BhVtIME  .IENDB`jpilot-1.8.1.2/docs/jpilot-prefs-1.png0000644000175000017500000003040210445274001014311 00000000000000PNG  IHDR2)sgAMA a2tEXtSoftwareXV version 3.10a-jumboFix+Enh of 2005050103 IDATxyTg?7EE *"Q\IDbH@q&Dsɦq ' Lc8jܢA4?qAeE 6 Mw(S4Xx~j/oW]'OҀ-_\/Ho3^x #}o!G=#Bx !^CleF<`pC Cѹ=;=V]'=@;O]Ϻϋ`F~0a /H.t a4^= 6nv9,Ԏս+󁆱I#~$Ly]:QGCս4fe#b$} v WbB~zAK]' q yv1p$Rj6" CbjX>޿iT.'yvF:}ܿ tO˧ɐzZBx͈~e!vD85 ^C!kA5 Bx !^UZ^CPn*% *wvZ=I_*Qg.D sz/R/~(+4a53z27xq,5ӌċ/]]Yy]muf[kjn|m:6N>PO_OԸt?[d{=xPt⮌SXxr ]iswַp̟_hssΞs/pJwǎ ür[[+Tݳoߥ~ll,J{/޽[u(?3^uaVC'N|V~ ^GD==W]4UUNN Ǝw' #gg<{j2]׿V2btggD=,wPSSRQqe&& ܻwaAZ-ܻUo>$ *ȸ4922"#55ulzaҔa"JNND&8Y}3̙U`۶#_zz:lH 5mn?"}}FvL& ߧ~QjO?lmmIOOԩ˜&Q{{C^!}囈޽w Bt_&&>>)0;{oggP(222:y': l?%%Je ["h~hoo3τRȒJ%yyƌq𘫹fa^K"266#Ƽ Cܔ*SS? wS^իy׿qu}&-lʍɋ[==SuFU 6lj֭3!!oXH$Wo8?bO;33k"jn~PPB ¶[XΟSQaa *+ݼz{sspuo8Z99Mzh?v>s~>ZT6b";8+s W"\Z'Vi8KvOX\4oޛܧ?u"(ͦ+WM{}|l[SV~[ZjGܮnTT9(MÐFĄs(>>JY"Gם8qÇͩ3+Ê[҈H"Z6y*ںvv-~~DSSnmtpqGgicNҽseMׯimm'P O=5ƍ)*mih9s%9;O+.>._駃zJOR7ƍFDS,kh&I#AA ܆ 4Ȼђ2h8 O,>!kA5 ;;<AjW.'Ua5 8cAa Y5/^C!`HL{A{uӅBH$*)>p a(!a>(,ĉ>p\jبoҿ~Mys8}u#";[rz/V|Q_t8Ξ}.UU5[GZ{VY x}mu;O@Wht7_L3n/0!;{]u W]D:ן_绺z*TޠVkyrpWMg_bbuճnKL۹dkkP(o;P(d:Nl oݾ={WT gg{N\7pB<]23K +e25&f֭M QUFzU<ӧOX7>>wuInܸGDW/?6;6T6}g15,lY (oƶnOO۷kNy4 =t(d2&=X3g[[}&[r[[+T`$!amZZii7')O`ffs=l!U]̙xWWN?t vESS~f#ʕR??[[M7ݻu$㯊Zn[,2dNN)^a__>~noV~!oogGGDdaa-'%%/;| }&Mr׿i/_>t$n̚?X׬y6'\eQ4W/!O/w%9׮UZ5Wsy,;;F;:ҀW_ OUE"ah茘D鯾td2;mj02j0F)DJD C㖘={Η՘GqSvwK4O@@_||V^]]s]]sN?M533a{055wWN׹<^mm]a׮4/sN?O(̢F\2aBL r(ohѕwGbGwwG#;vb` ([*SeQlXBDO=5z$g׷&$l'\"v#"b  jhss" };3}EDRǿ O模)S\~=OkՁǁuҧX/4+>dcc;׸eKDk.+9r$k„1UQtQ#yr;͚YZ/3=߳FZGThT>]1"" ا>l4iMThff> ȝ&ftB`qqG*6jXC,11V:7wyg@ D?\Şq.Z5w˖RYOO_raO>Y-;oߥիoٲR$׷yJ] LyyRT"qW]]+aKWϟ?>l T^ݲcQFQ;C:Sy?a)Ig0T6qצ!*jP(8r$K*7:ȊYuO_YxNIRүWl6mZA$HLLc[4WVVP_"ߨrϿkffaU/ii7Oݛk+WΑJeOƷz¤5)<AwwoVViNpSޠD K uROJF}G'oN6iԙ37ՏKV=<-{A*ifȹsu'78/$d*P,KI٥h*anެ|**jM45@fÒ٧e 0_.]袱` 1^C! J Ak'0^Hp ʹ@P۰apB>;%<7@' A2B X7g`Xzi Bx !#UM@ޮp\jبoө_HNDaa~'Nh:=0sBCg{џkk5ZZ]x(󦦎ݻtt< /4/\2U"2 c.{]s !a-wJmo0g_bb]Uo! 9_QQ' ݏP(\lLٗ-qcW%":w #+,̯ԩK?ߡCWvgoQvvYzzÐ>xqd]R7 *` GzAyccd\{h茙3ݭͿ>cbnnٓtѣ6"JHXV0y cߐ6-&WqSJ*uwwapHnccT{_oys`_EsUii7C˙9+..v㭭,(ԥ밨JqTW997i5jD"co!ύDmm:Υr4ߪ[;ws[geIM۷ ȠҌ[AA##{HQmmѣD71ʑ+efNnI|s ko~,.쑑ΜY\\j ?*M萶ۏ9^ؾ} ZLZ]G~|۩SVOiS_zRǹTN@|ዦ&?ڊ[egOpϤI㻵&Z[^^cw>KDs^/ع^f|*&fL&srpSSH$ ow#}~B]]s]]sNmZ-ؽ#w11!{/+155R@ /HiU-L&oKk1akkQۨQHH8v)KK_Tǹ' "T*eLoLƁR\NDfy(O+51QL3=ߓk477ij oV?~q Ui)*ED^駟*+sر|}'pu. ̘}8;M 0cs,+RD"KNN0cb.^Y-?ccL-)y=|8Z[ +Fz-[VD;O*;^#"##CD))y;v:KDӦysz{--{gΥ<s&IIúuROJ—W+w8;s 18/$d*P,KI٥h*/FFȲ`82A1A Bx !dVp90(C9 Fk !hj6,Wg'SFaDл~e‰5 8o" A5 BF =~>!#zA=_'vS7I ;qBK3=KbX^ǧOtE9. *H~1mڵG2ojؽ ww/7ήͫ1!a-wJmoN>cO˖1w-qc2wS$ BL&VzW\IDATbh KǧvY[. =\GK]^08^ܸ1JJO_t:tEe?% ||\cbmzHݼ:MI:5>>rr7n S\ݟ^:v|6ߪ *ȸ4922mohh쳣NQQ +;Wxrɜ9B[JE%g/80a͚ۏ.q"#9sURuGfQttH[[{/l߾Klj-F+;w~;w{ GFkjغÐ)0:__ߺmIapK`Ӧp$ecc57mu,q㮆yt|ዦ&?b ^^cw>KDsvvQQQkkx9v׮3DtZ+ի׬6[,2dNN_&<|6YXΫWossrʈ޽:##Qnn9h-f |}>hw^kRZ5mQNT޶mG]V)}-{,//3~vH:#&&$>d_{d~{M"1\rSLLȞ=jLM㣔'/RTץnr2WPbzXZ*ftwwd'􉚵+uD~I>X~)ѣQ,ّ:/W'ں4̫} ~)ٲ(-0~Lyϝf,-0۵;r^uoI}}kRylRH==*&jxk(N$J3ݗ,ݱPU:M4̙]< ⼐U*#\L@8/%eBlT`X nfii&зߦw-7+o"aA_.cX!}>1 okA0 Cdh 0C|3-!86lX4%Cw O0 9CL81" C !^!^Co `d`P9h 7'"ggGDw䣏V@~w℮\]X[_O͍Z]'0pT*ۺSk.5ʼc3. *H~14>~ w"%hٲ7&s7E@(d!x\aee矿Qfy=??.f +)>u*?w".KO/brt/nܘ >џsCPf;3sW\\|}[[8YPPID66QQZJ޽ޭ:ټ9W:futtqggORҹG &OvNKygT*ٷRUU"r*5?22fDԩDSqcxDmmZKJL{cw}͐ۏuvʹ쳑ΜuիwD*rUu˗K##jk?hnm|>wﯬY,$`| :;.\8e˖w}i,D>z6 ʈ )#{ꌌDc;ǟmg~}rs#"pWbbZYd2'z]JE۷Kg{EE-`o^1mێx{X1/SV+a!(HaH&g⋔;d~{[kĄs(>>K4p yyDWI56vZ} *(/gf̚YZZӏ277ij oWjbbۏJoq&94)<[Tt? ԩl]UUNnjRyY On߾KW߲eH$oٹ)pisxÇ{/;㜞^'+%ܱ5"22?T>{D^ttK/͖JeιYRRbcx57w #"YJ[Z:9ߏ:[W2g|^C!kA5g'!amuu#223T@ ڶYYK̒@B][[סCW^{- 1cC͍;;{=zFD kSS|}ݬ̾>ƍ{DdccT{ݺa^x Ǝ> *ݺ˥A4 m}v4)ʕs~rޙ37n=zax#Aj^^cw>KDsDTQQkkkŶx{;;:ڄ&" (|A v55 %)(1:t;=tgK^C!kA 6E3tIME #bIENDB`jpilot-1.8.1.2/docs/jpilot-install.png0000644000175000017500000004021610445274001014506 00000000000000PNG  IHDR;gAMA a2tEXtSoftwareXV version 3.10a-jumboFix+Enh of 2005050103 IDATx\?9RQ0Iax{ۗ!"ƘyLjmm*ذV{&?FZ֯!o5Hskvsuu:qu^uuyu:ɓMcSBSF9-$ Q-@?T*''A#Z 5^Z=oXPO5#4y&|H̹4KI$=(fPO@^ կO_:NN\3Fbk%EfVspzdp*U;@Pg:p߽e| Q_5~oF-o8"C>T❯wq4 @h:cO_ۉz=sJC2GH>! ># @ 4ݓzhHFd!hHFd!hHFkSj8ogHFqSQQqShndЇ3!HF= e)XHFd0pCO``L," ѸLJٹs2M؞}VL2wq"x ˠA~7?ϲ&M bTQp4ɺAs'ʽ\lmRR."88.Zheٳijs璯r:x^zzJNtmBuh.]:*.?jMﻙnlY"!$ =0pJR(GČb;ܹs{OUddYdd!$**eToOބϕ+'wbP(?OJJs!!ҲkBиyQJ`n.Nλ3Ь3hD]PpkMMmL{!4t ~.m۷̖O<ٹSҙNjer-8崴;/h`TXM?.WP55u;Z0-bFȑQ̞=O***uTYUU}D?)!Oǐ WWntH";Zheet/|3wFãw~\)#taZ\]geB\)߿;eVV !֭2ٕ+]{[Ϡ Ƞ1l`Qc i\»!!7+''BHvv᚜5 O{{իl8s=FOOoePv꿝;W "g׌B&v݇lKCRzKRب^%cuubw\J%JJL&iBiW#Gw;.rQ=WRrB'£Txxv}h3ph,w*)ަb0B칠N@ٹȱ_j\\B &mIԌ>}Z2W_Bw;FwnVVյ??7vܛ'ʙ=b/r !))CBxw_Y?M ׌Ƣ7/6vxgϊ9))}<gUUu7bjrÇ3=yRK-4tT*IM9uӹ;;:ڭ_?I|f f<PTt$iBSjj n|y֬7P(?O`7/ /r欈* 񙌑`EL=sss]12r_Z>9E?r^1Fim38Gφ#o,VT\=v,N 轢ETa3X"G߰!ܹ81Ew`y'} FCzEckFd,mZp@P0ҴkF@ 9#dԷUz |4$# @C2D}6=»m@F%Y8oSa t9-h>ֽYRT?eUn |j3ŝ1V+-|^tQ'PZ<8߀$!!Sv9M-?ߐOP#6oHFh]SGW盖ܹ޽Ç3nܸi3n5Ö-Kn\09:Ỷ:ߦM#DG-aگh"JJe&D|qgVup](ʪóggv aCCGwQP8p!d%O_8yVVT*B? R\ p>##DTed_po`p߶mߪo<{s~thԨRi ~9--΋//X0&:#+t䚚-' Ys)(hGg]]}rJ̙#]]gBBF7ݺB8w˘wCBFgek=O0~]A ﹄]:0*3I"! ]]9-.n Jnx%?7%ciiŰa.. ޯ>^^}/_.6 p;u*܍7޶{?XWNhs OMg嗗ƎYCbYٔS*~LJJ7fffUUn бR$55CW'x%?!aq͛j_Xyi]|i?km ueK8@kz7׈M[p=S2TzMА4$#yV|iF2[ |jF24|P}|MZ|># @C2А4$ t&999"["%%eذar}D̳6mbdEdCILLToC 8p_~ G@&W$W^yE']hS8p%466jڣGnٲowwwgegg3İ]v-''ɓ۳g۞wĉ˗k=yh$cEEE׮][& ûv|XVV5tеkײ[6dkz{{>|&M:thVV] 奩%66?vtt$-]̌~9&r\.'jh"c988lٲeǎT{uu sYVV&p!6lR4A2|4N0a)))֚Z#r87nHNN~뭷Θ1ٻtEn 4닊<<>y+//z5k֬^P(vء^baaQ[[p7|sҥT߻wo;/|[&흝ҠWO3gΙ3'22_̙3n:vXBo;vDDDxxxo!,XZP2q[Mٳ'*KXtFBrT*d-Rog>goQTL fKBȡCDvJF#!CވSWVRد;[j`,1܎K;vWop>ML֒C2Q-<ߚܒL^^^ {06v kd!hHFd!hHFdDh=F[ PMUxgV;>}֝466jovP(J%z]5BHUUUPPD"a`ֿ(++a]^3cvp͗_~Ϗ]Q&}ᇾ}=zhTTէD*8q!C_n{y{{;;;l#Z.ese˖͟?????44tٲel}fffrr9szzjvn={}'K,aݻwvvvRRҚ5kQM5t2uӧOߴin ٜ9s&Mr…u1ݽ{ֶSN e2Yuu5wΝn=z\͘1aΜ9*sbkk[YYɽwiggw;;ÖOy}[ 66vر'O7)gDك ` ste ŸLb@C2А6<[onLުUt!Lng!hHF0mMxQ`2j-%_`绻3 1PLL Qz999'Oܷoߞ={ܼ'N,_Esm7`L;eU@.r\N 暛2eɾ OBj;wKK˺:n,5\@|sr&nnbV!5#;<7o v\o~:f͚SN 0s[jTZ*2W[#Pd:M ªMj !bggLBoYXX lz׎>e>9s888L2EnҥK===mll[M>#.g  Ю~ hHFd!hHFd!d I`L>]N[@*^UUUAAA]Y '88XHL1T;`@dЯ{Cu('ж!X4Hӳgޥ߿ix̙3 !fbmTkZZo-CCC>|4N0a)))֚Z޸q#99>;c fLIr}F0 ±T;HOO$ܻw͛...-v`ggC?쳄3gTN`ܹM$HEi?>e$X('LT; ('n@˫06W 9T;vDV#>!(X)}F0>~?\3А` >!X[`r``T  |׌4$#|FƢ[v4nڴIUMn d AKj7Rϟu+W2111¯jr^׮]9y}ö8qbZt "!XBFAeeeϞ= !fffC%z\. !'Ntww2d׹ d` V\)g͚gϞBHnnynn.S!kϞ=yyy|ɒ%KZ*BCw}7##c۶m[p!wn;v/^\3RD-e7bX0yPO?88_1w}?}s De ׌`?1jNbgn8B,,,jkkǏ?ѣ!dp kF0I;v{e.]icc;vXGGɓ'Co rh j-vƪM)j^;0`T`,N F@2Q@,Q'0`, \3А` $# jdXO`X0f!dځwR]ۛyVAsk !V;>}֝466jҳKKK1CLLƍյk!UUUAAA]BLJY׌`TIj.$#cv UҀ 4j.g`< LI% ; I% ;Amjv$ F@2А4$# @C2А4$# @C2i?[@WR :d\]ph]ZĨ/[N|ɻKٶmJѣ5oo,g5U[@ CMMŋ 4dȐ#F0A dp-'>;zB;WW,///fF4WЄ[ cAAA^^ɓ'R4\`M=z޺x"!$--&eXg*+uuu+V?~+Jw^771cƬ]v[.Ĩ/[Nѣcbbƌӯ_¡Cj[(UMyff^dp-'}vk֬aA4gϞlU-zT]@&p}u[n}7 ԡCkkK.V 4?"ɓ'lRoooSfK7qyuuuvx˖-lo?ִ_6669{ M2d믿nY5#) !'0!f!hHFd!hHFd2l0\|rK~u@c…͘Ed}||[{999ȑ#MN .]iǏϾp:tpuu ~xhy'Ƴ@ѣGl:::*xR/fIGM|x׮]5q &LPZZ*-ڻw/!dϞ=bBHeeeϞ=VzM"vvv믙Fv4h52 ElذK}K@2iӢ( n،Yy恽}fffrr9szzje˖͟?????44tٲeTNprr:u':x྿k dWrJ\>k֬={444-wIIIk֬aZxk<]iiiNe4pqqɡ B$<<ɍAMIDATFx- _ɮ@)+)=""kEY7n c qqgΧq7[[J]-LFp.]B:w̴?z􈹤dO#3=gĻiZ)y@2А4$# @C2А4$# @C20je g IN!SvdYA=5#v@D%4.0$#v@D%4.0B:jΖ*~݋WYP7[dYBֆw`LK,pLV;Od0g@F  f TTܶ0 HFhV3dV(舛V'D2Bkٴ~fn7|@C2А4g֕m+-|5#.Iu,vr쪎Ry@buH?]oHFhuꧦֱV;wwwW_VKrgnn< +)hA7FKC'9A[&Z͛}||X]_`5.ⴤYzj$]ۛ]Hf555/4hА!CFz߶|}FГ[v /dee]|944tԩ_rss.\TZvmiiÇr[XbŊ+.\o>vH !/͛_>p͛7ݻwŊ'N6[`A= $Çٕ֠Zx!͞=2rȟiIKK+--} !=b'Lxbf~M-b\t3f H|1cop7˙űv*~V[HF0 kV,)k`cc#+ LǏ#""4ST,x뭷!YYY>>> Էo_f3nF:rȂ RSSGu jZڴi7o~wӸlO[3.-ACC|XjZhځXz DIea8@o\N @C2А4$# @C2А4$#M%P&LӰD˵vD.!A~fg7Vz]ϨEA od!hHFnq%A7Mg۵pt5v'}{XQQTqH {4I~xk}7V V7s璿}zuh.]:*.? RT 2: 233 "DE:8.ZheٳijnToOބ_5 ǝΝKNlccr)/wVdVܥB|>))ΝGwv iVdd#:IFjVd>꧄>}CBbbwg:wKF J:`0nͭgnvAAkrnH謬Ҽr׺v߽ !ʕҙ3Gp7]6kHx]RFub#fV6aacmlJ /tn:1;]/0+0Vy7%cuu ]]9-.x/;ӳk8Y{侅OB9T0 z;ncgn{{ے}8P76*KҊa\!Ç+.˫/!ۻ_I}DJ}2VVյ??oi}v͚虞߸qYUկ[~C kmm.JRS3ϟ/ܰa QQ_~y9,lϞ5$&vh~tBH||p"qg>Ç3WRSSWPp[x ;x-DUz**;ݪgzTxxIА4$# @C2Z[;( mɸj8xhE`>~7A># @C2А4$# @C2А4$# @C2А4$# @C2А4$# @C2А4$# @C2А4$# @C2А4$# @C2А4$# @C2А4$# @C2А4$# @C2А4$# @C2А4$# @C2А4$# @C2А4$# @C2А4$# @C2А4$# @C2А4$# @C2А4$# @C2А4$# @C2А4$# @C2А4$# @C2А4$# @C2А4$# @C2А4$# @C2А4$# @C2А4$# @C2А4$# @C2А4$# @C2А4$# @C2А4$# @C2А4$# @C2А4$# @C2А4$# @C2А4$# @iʏM<wF0$Ӱ7Ju>#4$# @C2А4$#ʹ122kW8=ܹ5&&`ʔa:wM6n&Q l?Câ~X~,n+!>>|Pn##"#gkÇr ATac#7iiZ**J/XeUp'F蟗w׷k7-]bڿlHqp](ʪógg^{md߾/(͛T*Bĉr//[[Kyy!+WNFP>^~CBΝKNlccn٭[_<-K$YҥB:pbyvAfffQQ杆:w\&8:ED'DRXxݞw;+;ΝKN>p`ӧ*sOoVV>H$ i'.\cW}|\͘N{OUS`ToOބrn8kkcǮ;o^s33?P*UO$MuR˫oL֭nmmQ[\YkkM5m*22/\708o۶oյ6RHǎL,Bjjjcbӯ cϿ~J1$$ &+fˇ|-gulE#F$J؁ c8âRi3g͞=ܹ.]*5j;1FMpGdB""&p; D[T=ɓ:/{xRknv~#F ={ԧ~+SWUU}D|ܽ+.x\}%={v4}J=I3OK3G`7չ{ǵׯ{{p$nrLצյg!WΜ9zyݺ$&>+W!?.]l{{66VJ: lٯ_w$' F7ݺB-iGg'첐FMmn겳:h0*ʌ#_:w/wۃf99?1]͚5R{w/ݻw[gʼBe? #Fg,geM6MF&R q =6,mX %s ܻ\I} ' l;DBbcշpš!f>FMm~xAsv{+VLzj\f-{R+Gp{ӧZ[9EmߜӲ <=v:u8!sgk[ݯ1Ϧ)ÆBW\|z67ĉrTQʼ&qiMKAGҺuI%]A߾/<|DMEfaacǏx!1,lrYFnBoã* זg^=6ur9<|ܸqoܸ[_`߸qYUկ[~ 7lyCTTOC&.*ǾQx;9Baadd;:++sS֯N$>t3C&C޽+.1c޽GOdw?zq'NB"#$ !/.4kP#$ 7LTPzyLyQCOxRsLA6c?@֦ 7th)>;o蹴7Ψk8zN65#M}HFdMƾ}M۸qFt1[jڒG-\̊5uvz,.| g hɸpؔK6ް!_"kIc]5hP~Y']XbF>"w6L3X=zTKQ*UW[}մXNj54uWY^^.66V~߫WWO޶Vɗ_ijM㲿~}{Y@{` JP(E-F-mgըQn.i7B,"b?;}:@o&ٳA7n-,9#DPW[y^οwͥuSA.(撦Ο׮3W`Xb?qwŜ={ve7V[n*VKQiҿSII6u#1c59/Ըt# ֏M{{ے}8dtY"gPp] KӲo))CBxw_Zk1cg~YP44(?<(ڒv+P/;?_[:#1c59aa<ϿŮ:\*f{-%rVuxX-99}\y"gJ36o%rt ~8oʽDGnd\kpFD$dt#*pK6;_85>Dfh!|odXQqNNÚFw`#ܸQfLѽg0*+ hHFd!hHFd!hHFd!hHFd5cZ>4wU`|ro. ̞=ܹ.]*5jT*aml{Cqpiiw^|~1ѩL'cbrvztEcd (pᆟ`m۾,$OME^nU l= kj:v}3c<HF#_RJ*6m8Nw!dg3[6 ++N:~WL[n삂| !YY%[dfuA׮6̳ݙ#sJ̙#!W76*{ZU_tfp!nH謬Ҽr8`iӳkSB:wvp!Qb37x$]NB${ڲAAQRllT2%f{nYY>>?~6M;wXZz-ՏCBiW#Gw;N8v^^.?I%[v׷?!W_Bw?vc6̙.]:t# pcڝ존b0B +WJџԺsqt̙#lm- !Rdw q-)ѧb׌_ߗW6ĉS*ml߼|'%ϛq 33_nF˿rX==kHL<4VWVVּB E΍ǵk:V,H~4q kmm.JRS3<hJ\*{ǎ%48+&88}!MА4$# @C2А4$# mbi$)Yj`pp4@}Fd!hHFd!hHFd!hHFd!hG ="QTq:tH:t3hHFd!hr PEtIME IENDB`jpilot-1.8.1.2/docs/jpilot-prefs-3.png0000644000175000017500000002255710445274001014327 00000000000000PNG  IHDR2)sgAMA a2tEXtSoftwareXV version 3.10a-jumboFix+Enh of 2005050103 IDATxyTg/_7(BW&9׉=o2y'v9drz=3Q`rADEDY4 MQZnx3gNꩧR] Ӝ:쌋5כ#$7:L`[ІR_}yd{BY`):b=y 8c0h1髯6+M44ܰgӦ{ =y 8c0h1ÌM|C 64 gչ'Nrk7G!GIΝ`[z8l!hC6T- wX))k6nLظq:g,BJKF%w2sB0-muaI .>>Ϯ^=fIy匌]f]ֶmGmK##Ι3^am49&nsMMz6%/IKے3#c -]Zږ+3'봴th[nddJOܹ/ OZҕ#Z _,}WFp@aͲq/Ĭ6mz(_ZZkD{/zyyt'O:PYY䔔@D[t_Y/:o_ݻDsf":tqnn:9a\#yݺynU:U ?f5}_8yr,:"hrFCSޣ^kmmtw.>#8 55w\5k;q]8F"Z _N6vu=ׯԩ nn臆JF:ϙh.]֤:9;La?O\zYц-<8;:Z]]=H /OzzNMccJKKQZږc}𠸣u~~ };7ѽ{W!hژurcLzA޽ѨQ>+Wql#_|u~>}20pa۶uumKlY@D˗Gggߌ|y?!HDnn.ŋ%YYrpW]]&#cWgg{~Dڐ{gdcZږ਺;cD $>T9$/EI/CPye9S+*Ǐ[QTŷK^ii[&Lx?>zǓ&g$ψ@%fxSs's]\܉H%MU&w/L":yr _αoYrB0mĈgFV^wz̙&“}"l2<̟\]QSSUA7>>ck^=V6z/}|}|ƌ SNOl[w rw nnbb64T\z?=ߏ=+00qj7o{ŽMal&ﰆ HLW LHED;DtK#ݻeVh$_>y2//g5㬭ۿFM%(hf`Ԋ´H6рCBCQn!O$y){ʕ% >…=[]}cΜ7wrWo~o66޿xq)/G1c gD B~~;.n;4W#lC ED0G mm5mKC~jk<~\)"lWqV[{ݜN]h^?D̷44O xڿFk0_dz4ˉqO5;o+k4'';%dXZZ=eʨ_>| Lu ǟ'<\' y^ērz%I^VYY+G8;rW݈Shkr[[c<#pLɒ7$whWܕgz{:Wzٹ]xL9}CDZ0!,ǴiK+*Ξzayx.^ybwssill%ߞtu\\;:266QPL0""8+x15|KYYi33gSRHDf-_reW_8;JˋQ{#qlHN!äd^47?0`q3'Ѩ].*F:l~GyJ%fx8Я{CzI_NE^|{hcGޣpȐQ| p߫ wi{c}5/>7.t`7Y͙3LFށzҝ`uuOH|KppD=3۟%I6>%.'×% }'(s2y;woHhҤEE?;V/*jF } +h䗮_?q|^sw55#wraZV'~f?r&;C;9=Wvvq'>pۻ%W̼y_>~ phѣ9;w2ڊˆuu|hMF~s}2)v~Q3>)/ر&17?_:4H8$ϋx2UN$Kӿh4viGr+nj׌1ȝE%FwNyWC?4+g򎸸Kؒ jUP]}Ν,; #aۗ$u\ܹ/Nnm[z/K7۰Mno'-NІ[ X Z  ڗ$<0ĝ`i6P}+FggUd!iA`B!iA`BUZj~ fz%;Oإ§`#0'w.UJ~߰AVFfl`Ew}']6WIUù-$ cw &5ͦMpTwjƶ燛0+k,gBmڴ>))kZh֮G]^a{^x!<"bnf^vϒmʖ[qudIdpNuvv}q{E//NI*+ wjճ^^t:n߾ :pJʚܰ Wa>>#U Kvԩ NvӲ*793d׮D4lכomz$6vb\$t:meJ|ww'rΝׯݾ|^*+p8' v<][,8tիusÓ+U9v,'"bۡCG 9pہOQr}CO@JˣKoFGOX<ͪxl--Ov8~/˫WCP2VnB|7m/I@͗֘1L^ޝ_*Ot//-ٖ‚6lO!C<zxz?Fz&$""w^$= ۽ ]r{ί\m#q?t#""x˖DTTtgsrʮ]kgeCA9>{pnn.%%&X+LGtiBcH?/-^<[ѽ{8;;]\/{{?]Y2$7{X!7o,,$'[QvvF5E-Hbb?SiiM*'ho0jڣOΟ<v[;֭Dkש11~o=rݻQQkjJJ.02fpK(뻺F+wdFnCw㒓(4۷L:""Fnۮ.񏁫W~p qssill%Pq?Oۃ|XVVLDӧ;7o󆆖G D4dҚ#GGjmIIյ>>ÆyUT#9WGyiiBcYYihƌ1%%5QwNa u 5fb8x0k7ohs>hѓ'Z429yN9qܷ^Z~G텅x_X"&9yS]]g}8&W (wn%>>n~#Vuwwj5Gdu[RRhl-pUUCcc0$Jx||<7n\HٹB7d%&Ν7oJ[[=gݱQwNa BKr̗gTx{=_vrt={l>cɒȇ9Sh|kВ23~Fj4mEǏ_@EwqqKM6b;aæ!Wi4 0 !LC4 0 i(LsBKݕfƄ~sLP^dݜ5II IIlY2cFPͣd0!"FLm΍_[qrkΟw&ᇯ_Jljv5*ВdYÇ/Z,Z?Fusuww{dnݼ[N*%K)ߵњ$H VhI\YzA֏Qn ׿zvssy.^,2R Rk3X$YF efBKȕQ\I[>y&(!a'o\'~#UJD G$yePl)߹o+#]S/maaybb)SFBuH( G ٧ҭ[QQr6*xx.^y ~ (wW_"+cP~׆kJd)0} -}ͅ+bcb&QmmW_r6&$%%pq7%k͑6))?N7ˁ^{-fŊ}ҕK RkG!YF e清@HԻ -"BOXk5Xi*-`B!iA`B0 i)DD#Gݹs-PVaD]%jÆ}YUOI' z =={kfkp3ִ(ң,98Y}M͙j""w8aBwOHnyŌ,)dx_Dn<"MQQxA3g߆?lכo CC{r(ʾxS]Nȝ;w/O_~v?z='9' %Y|JarG*ytXNDhC.6r@2 %/V"z4ԩA3fuZ8Y QUr| Gܿ_ZPpw|ndbFfZ"Q#hٲ~Y5^v$iAA%--1122nM󬸯%K"rǍV[R^^cMB)jiycDZ _^z.'H#JDqT<.[73fgF!8{XoNW_!ndbFfZWH0ʕ+WTggFF[ۋ[}_;±cT)̉D)ܑJR"wgg'woo”*PSե1»e={~}q QUr|vAW~aaBB_ye >t@ίd"3YXhI%cɝfdzMMnomݝ1Zq_ݽ[5jY.9R(>0B#5QPDwuE G'\rrf i*(((O# +>` 7ltAw?1YBKkJ&""O#l%ӆG  :XبËkk}|< 󪨨MQ)$GՓ; Κ5N( GDw`مkJk\\\%/S".vSrwdCzѢs0QBKɍP'y$V>k *-6O0Ph,|љ3=)SF :}wc;.ZEǏ_}]^~Grv` (d[7'g0 _LC4 0 !LC4Z0Z2AZ2{w3%:Svw -ًVXU. dƁhZwE= u8VS &NAyYQOwHV&YfЩS&:uͭ\1e 7Q_HwKV 71yWU ""2C3:S± -4^lY (W[E|$+I,W3KD+ &K)#Y-Hn䱯^JtLΔ9V;DtK#ōrUG2dr5\/(1 E HV 71yUB)B)qBK*Unqe"ɞj=y/) PwJuZܼ)cHvL)@)[sBKB$R.#L$ٳɚA tԗ/QL\-伉D`$;Lu,X||<7n\Hٹ󔰂QL!E| IlfB1eK)W 29oQ?-/3:SPgrThIdd$5ԙ#(dBOVA[C)0Zm *%8`Z9֟|0 0 !LC\ IDAT4 0 !LC4 0 !LC4 0 !LC4 0 !LC4 0 !LC4 0 !LC4 0 !LC4 0 !LC4 0 !LC4 0 !LC4 0 !LC4 0 !LC4 0 !LC4 0 !LC4 0 !LC4 0 !LC4 0 !LC4 0 !LC4 0 !LC4 0 !LC4 0 !LC4 0 !LC4 0 !LC4 0 !LC4 0 !LC4 0 !LC4 0 !LC4gkTW8D~|ό.4kiA`Bt844g` yz9j~oiA`B!i?0OJʚ8KOy#ڶyxsD\ffG` !6~^CpЁWǹkkسÇ-D&--7,,kUzy }2G} BO//_]yYY%˗G ׷lߞgϙEfӧo޽Vø{"|lB˷Ν^^|KhhgB,"rwoB߇]Sdqggohh4'';zb*p]8?ʪMMD3f))Qذ266_ 8MJJJ8N22n  MVby󦴵usVa/XɩϾQ[L @/U]{.a`B!iA`_Q%|]=A iA`B!iA`B!i =pF%X|awzC٢g`RiA`B!i*. YtIME  {vOIENDB`jpilot-1.8.1.2/docs/jpilot-print.png0000644000175000017500000001654510445274001014204 00000000000000PNG  IHDRwgAMA a2tEXtSoftwareXV version 3.10a-jumboFix+Enh of 2005050103IDATx{TT׽3  PDAh#%Um4*V{58! V涱.f%)1*D6W1D1AE ϙqΞ}}5g9i<Pf͚eDzb WXF)@5#jFՌnl4F{ sR h4҃bHja ֬W4u13)^5чfҚ,ߤ>Ԡ|h94!vq>&_ Ÿ̕Kt,Jt:-ԋ.sq57 GJ*g`A 5KHX6ZorDa` ͍G|\v (ǕBDm7\sjf:EΨPmwg3Dǂ:Dhrx݌T3fP?~@5#jFՌ3FZ@xx`o^|q>55@EGw~448 ^i sr\\e'1taxPȂ74߿Ί6;?Oׂ75ost*t-xSyJ*cqxSyYD"U:]rffJFFRpp1|x/"3s /B[ǟJ֭͝eٳ-觹wQQ$+k3tٲ_ZmkZ@^X1xV2ğܸ1_mfjj9sܧH_T99i7DZxXQQ>֬cܱx] ^UPp6""s6|~~zz۷U[{M(9zR͛m`0\i&WtG>ӷQ%(-26% ^gea||F?QBѡ-{G6,`M>!ōZ8?%K:|\yy?ܔ ?p+?#GtWN1o nk,,dT jhѬ=[Q@udVz'7(N2 >*;}":UhDr$<|H`` W(yTI:vl{'hrr ȑ;?nnnͷl:LX.Cn_O~èV}gΝwߥеkWaZڌVV^*bӓ}(OnYAfrarw8Pʈ3[4cy*qN0"T3fP?~@5#jF]?WLETb&С=DpDɮ09u3P^): +lr=+6vDi FjK5U)LX?s8ԣ,p,qvj6}n]w߶v[G$$h46l7KDYIqQQ!^BIF[Y3ϧѹc&QM0;wg"V ijhm; =|I^jN*s.׈n=[3ر ٪cMN~rz}R"L^߶iҒ춨#=J2tiM4G/^wHYaaelHaj6,lmm*N-Ejŵ$-}֮lY!Ҷ:@7v ''N5=Fgƶ.WO>͝;}|cݶ ,lĉ&OO)ZPRa[ Euuc߾7/`O|իg޺v|}[v6T\URVv套v[cݺU]>V={N 3ųaEGKKLNm:955?{GQQ N͛ .}\M`\'Lyw%%SS8pZa._>CsBaLggdEG\v^^VavM6=,'kj(Zw!nnڞCTTȌoWY N~]e6훭A+owhR) ۻ-e%Y|8'rEjFՌT3fP?t"`skv*.933%##IDŽmUnt~,brkyZ,Z ԺNf;`s@EE]ztx|re93CJ?:m6w DG66ׂtT!%Hퟲ}s6,b#UKjwrs#bB3OjT/0pJ:`ZTtVIb5KW> ͤO)fElm]!?Y7KRS!oEz\~@+t"Oh~@5#jFՌT3fF+)Aı(}zbbn[SıxȰYqO%&%*=yҩEuk*I6;v،7}}=WeKZ`JXMDd}׷^߾{wO yNiR)JiY5i4""s鶹~$0sSL A\AA..]4@Q&T,bōZ8?cS}:իk&̄ 2:[FT1v!QOYh"TtW74tw}瞋W8!\Ww=$$(Cl5Ͳ\TWWO b'MI >>))qgFT%hY#[]ݨө^]j&VU =|m>sӳ /0h JϜeQeUL@@499jI=եfbUC"+{.XfKHOy}zl/f-ĊTG$U +"tm&l6͈hm<88?T32 -C#-P6N0iT^U/ZA@5#jFAӖ¤' b;At ^}aA }=֊-T[c:wnLdP``yi =/:'sĬ]ݸ/`v ;:T_0$& V }&oK*uo~7U*ز3677lg`yi '9֐!<==S;`JLR}׷m1rpXgQ3ǎ NN}}%o~]vOQ[vVXB]A-0#GF//sU~K=:T_0rpXgQ3 ܯ c ZSQR6C+ۗj4kkF56ެ4#?q oJN$^coh59*y]KƳj)eghUh祭j9s\eeCS퀀]8+LR}ʱXuks|@gN[(.Y3yKm֝;W}6~c ZJZ9X!'0q^ڪ bի7[Z~E=+LR}1yeqR40:u ՌT3i`|=ȫ>C?ȨA\nFA^$>33%##IXn.D=&&4##IK~ՅK^2\8D>#N,U/qsܟ|R{7AA"#zٳ+)}YmTuf,Fv| h`&D}ݺ$򍞚ZJx4iw_77EG\QsB**ꉝ\Q.G)'({M;VZj̘>r9uu&z#G.^1\.WgfώQrيΝJV_?ooOY)O8lo}vJ쭏  {#(`D(fP?J'h~aVjyr-¾ y {c+l̄3%^sh;WatyFYaz"xyӛ`o8HFC>'l4ZR5 +ԩ ~ j`[0p@Y)=aL:&J>DχP#Þ]ABZUp:5?8Rt7 {AW 7\2_X ==pKZ/Ϋ~0k.l|!c-IiB8 QGk 1ND)_{Ix*f}mPR`vm Eݷ3᝭wŸum%=;=̈0s:Yo„TĀG@+%nm^ | 7|Z+l ݿ`4~9.2ˋuA]'\_<F#l5p6ztF CGwqJR2}]\L͸0# \LՌ̕FB"c^|q 3)6c q{[ fP?~@5#{fgzV&i`"Ϟ-ͳ08VոUV~)ܲ>)޸EsP3Z)޸\;yعҜWRRqvʓQJs8fxyds9PuSqvjQ W5ka<5/l4'M=r)O6GF͕Txe]bzMqBf-Wί4 T3fP?~C\NQ3N}?u3fP?~@5#jFՌT37oJ#kPl<$YҼݻwۢfl'nFՌT3f%mtIME \iIENDB`jpilot-1.8.1.2/docs/jpilot.man0000644000175000017500000000216410510547162013035 00000000000000.TH J-PILOT 1 "November 22, 2005" .SH NAME jpilot \- A palm pilot desktop for Linux/Unix .SH SYNOPSIS .B jpilot [-v] [-h] [-d] [-a] [-A] [-i] [-s] .SH "DESCRIPTION" J-Pilot is a desktop organizer application for the palm pilot and other Palm OS devices. It is similar in functionality to the one that 3Com/Palm distributes. .SH OPTIONS .TP .B \-v displays version and exits. .TP .B \-h displays help and exits. .TP .B \-d displays debug info to stdout. .TP .B \-a ignores missed alarms since the last time program was run. .TP .B \-A ignores all alarms, past and future. .TP .B \-i makes .B jpilot iconify itself upon launch. .TP .B \-s initiates a sync on the running .B jpilot instance. If you have more than one .B jpilot running at the same time the sync may not work as expected since nothing is done to support a multi-instance configuration. .SH ENVIRONMENT The PILOTPORT and PILOTRATE environment variables are used to specify which port to sync on and at what speed. If PILOTPORT is not set then it defaults to /dev/pilot. .SH BUGS See @DOCDIR@/BUGS .SH SEE ALSO jpilot-sync(1) .SH AUTHOR Judd Montgomery jpilot-1.8.1.2/docs/jpilot-search.png0000644000175000017500000000522310445274001014304 00000000000000PNG  IHDRL gAMA aPLTEMMfUUUaaaffgggghhhhiijjkkllmmmmnnnnnnooppqqqqssttvvvvwwyyyyzzzz{{||~~¤æéƪǬȭɯɲ˲̵̳ͶϷϸϸоӿh2tEXtSoftwareXV version 3.10a-jumboFix+Enh of 2005050103@IDATxۉ{tLe8r ! *xxs)8=`Y]BygKҧɫͯqNzJQQNXO)* 񿮧` ` XRP)?i*[*#|Ս ٽ0nh}ykn=4+/[_=#Ƨy+r 4omyB{7kˇ<6ta]SF ?}3^3W^`T)A]kfNL!rwz뽑sB5szeSpmӳ. B߫׼[^3ۧr&j|JK1UR{?]/%t]0klâS%]0]0]0]0]wPkMk#zҿPNi[&ĵgz.zS< WFyo-\bp庭ezx~\E1ϼETacCYB1:לpQV^ ^S^,\~FWw_<25yi>7"Olpah֋B-}}SΪ؜78w>1ChFuym{^mֈ{{̎rn<`{z@o({]g]9'Y2ޠS ۆ'kw>iKݧK.=vےYo;{0p+eAoN^>_7ڒGD^Al/ MTyrG/4uV7W}7o:m92cv;>я}!s[NϰΖ h|o?ީXي̠ٞ[zo桿kaUo;szE~d5&WaM/ r8|-_^w\xF/[*}=iX^^*o.vYA,$ݶd>JS|z-yMta,#>E_z^ NB %-g[fN0sۇ>/˻e}gܹ~?NNpb(aS3A==mQ&mD~G~- j˕C_ޟ t?AtzBO5:e肁.肁.肁.肁.9ϐ\Nr>j3f[魹 t@ t@ܿ|2&tIME 0`[IENDB`jpilot-1.8.1.2/docs/Makefile.am0000644000175000017500000000203611702304470013066 00000000000000# $Id: Makefile.am,v 1.17 2011-11-11 17:37:23 judd Exp $ # Install the man pages raw_mans = jpilot.man jpilot-dial.man jpilot-sync.man jpilot-dump.man jpilot-merge.man man_MANS = jpilot.1 jpilot-dial.1 jpilot-sync.1 jpilot-dump.1 jpilot-merge.1 # Install the standard GNU doc files miscdir = $(datadir)/doc/$(PACKAGE) misc_DATA = \ ../BUGS \ ../ChangeLog \ ../COPYING \ ../AUTHORS \ ../INSTALL \ ../README \ ../TODO # Install the manual docs docdir = $(miscdir)/manual doc_DATA = \ manual.html \ plugin.html \ jpilot-address.png \ jpilot-datebook.png \ jpilot-expense.png \ jpilot-install.png \ jpilot-memo.png \ jpilot-prefs-1.png \ jpilot-prefs-2.png \ jpilot-prefs-3.png \ jpilot-prefs-4.png \ jpilot-prefs-5.png \ jpilot-prefs-6.png \ jpilot-prefs-7.png \ jpilot-prefs-8.png \ jpilot-print.png \ jpilot-search.png \ jpilot-todo.png \ jpilot-toplogo.jpg EXTRA_DIST = $(raw_mans) $(misc_DATA) $(doc_DATA) DISTCLEANFILES = $(man_MANS) # Make rule to build man pages %.1 : %.man sed -e 's|@DOCDIR@|$(miscdir)|g' $< > $@ jpilot-1.8.1.2/docs/jpilot-prefs-8.png0000644000175000017500000002657410445274001014337 00000000000000PNG  IHDR2)sgAMA a2tEXtSoftwareXV version 3.10a-jumboFix+Enh of 2005050103 IDATx{Xw?O"7/A@P**X*݊#J>hv{vuC㪿zBmP/PDAE'18&ɐ| LԩSdŋVv e͚5F@ c5kH1 ED ED ED ED͒UTl#Hf001'C?t ]pv >m=  T*UO! ;E0=#=.]~Ϛ?r._GG(= v_ҥ:6m8nIɓ;jk9{TƾpW̿'w0 j/sr`H<"Fԉz_kש>:VSw;w2 M26!/K_dnJ:5/N4Ws94t}(,luv7 (dDUU>UU..zwT*$ {Y8u*]ZMP[[ڎlk{a{fj+;ND 23Yqڵ66C:;BD=|]"rra"IQQr2IIᄏm")~JR.W$&MC }(DYTtJ"JsJ$Wnk{"ZXZZMdѪtt\]{SD9r·lNDdm\B!g/尰?Zd4qܺ֩SCDϞ5HybEE[ݟ!H '4Ps6T ))9a)nk+v8ryW^1G ǬT*kjBC]}k"jmmF$''/vM<=+G{zwYsW}|߿>ɓL;JOh䈚gSߢѣ'7#S= C8lqsu#CK/\( 嗧Ɩ;SFcߺ|$8G*|5s#vvC&q`aa ޻w3GD͝uu1O/kaDɃ~)OYNN^O^o„.\YNU]5، ]tL,,a„ݧWUP*jg7YYvuvY9j6! _/,lsF"=6ݝ5ѣÝ=[21HDvv|}Q^79L]+s;ҥ&ͭ5g[} y+WNY8z󈰴G!??H_Ֆ޽g(7|Yl{nnUVdìOV5EEիV)q2Nll\]XWWrF":0qbؘ1^IUW;vN},#xyX|ɳ;ijeWfYX ܋oH7KK+]rsFD#G*cNeڞ=#vRGA?[eǏw*/ն"QWiTy#AIJT*Q(Rv='4OO0??u]OBpKˡuڙ36"J <*: 76޻{yf[:;Q̲ }wߨQ>,uqκ{%%爨y;Lu6TpZ)4wGs2 ^T_o\syؓJ"Jϛ9~~Dzh;T?{qcY_~y]*^PP(k'\\2cWiIDYY%AAz#y犊@/[neeMDF ++};ZmlB-R55EDAQF嗘eVwiZC?zT,471ojG*˻4dgpElckcqS!:;[o KP y>۷1-~ea1DbM"''#"ދxsvuu98c٨sw4'SecHxM8`MڎGLV;gn޼8..j۶..#7C lΜG\Ѭ[F:(=؈?\₂i|QU]]0~ ˱c]K81Wyy~;r_>(hNӫܻ9<=^=Ơ툰-?bBի?ߩ5/=|41ScǮ0 7ne>6!<Ϳ6osyƦvX7 jj++4_h+aԕ+33JJc(o/K5Qw A1Hmi=AsJp@\$JP#na5A5A5A5A5A5A5A5A5oUS#cALKÿ矟_@fav6EV|Z|11 6II|qΐG7ps}rgiDOm5kT*qu54P?M?yR8.0/L7oޥm{{V"R(3gzsƌVxBBJr<{{G/3SC^}h\)UoذHRTT6n޼X&]j`R+ʯxCfW_ GDwy)9:[6fH[[}Z52,7lXproZPe"T@RGs7⢊gg劂{>޺=4tŋ5L3)s?nݱRIvvCkŊo]\# <ψhxU>DBBJRRlBBO_t3gnUZzW_ߜbE_zCK/\( Zw^r4+ }"}۷3 $QZZ'(+{0HPdg͞=" 3'Y37*+d2{̃<{ֳ֡J" q(-["ۿquz)..*&fPڵ]SAD'5і->` 3•;؅xa>yINN'dT_x{ӦEO޾]4vuɉH$)%866|eeCZ~E  }YZ{{`fڴw<1IJPT3i7:0/T9*%0~WmڀO" bml?n%_[nePXX-gvN 3JKѬUWpoyOyE,>oޔ+.l{vvS`EEMȑ7ޘ\ѣY׿>B~-[" ﱍE۶-JHH9tʕ,,,[gÇbc/X0k߾sgnAKJ%}19y]FFɮ7JJj4ӗ¦)J\-if*%F"{z6lxY3})*j֭GٛZk bnAKJK_r/UZ57(ȫ[[ "%S.s뎎.f3}iϞ ooٳ}BC}?$g "ęę٨3}iԨaee));jkA܂838ӗ8Uq/̷J%))j-0 h t@@p+-5A5A5A5A5A5A5-!h D܂"#OtJW ZZh"`VAKqqQqqQD8lp!mmkhh!-JkURBBJRRlBB ettHvv !!C4iW\܂Ty{TQnnĉ.9C810%N,|5Z@bnAKr+^^^8f*-}ı&-efm۶+!! Lkkڷg Z%%5J D ED ED ED ED ED ED AK jZQ3%^1%^1%"JN^wDN@{{o?n0#G.#mcbdvr/޹PVHb0Wfhi[D:tY^v>S΢9s}Sm$&dAK̶w>-gz6uz)..*&fB2à%vBݭP\">KkoV,$1s Zҩ*,̗Yp̕-tХ+CYXX?ݵ![! \!h t@@p+-5A5A5A5A5A5A5-!h D AK?/<|jW\en|q±c:TUըզM MMzޠ?))wч.ݹ3"#OՐd2Uv:> Z<^-̼T{ =66bǎcLީwTT@"Zh:[ktEE#LS#hEKK\PpY(/aϚ5kR~P32 Lq#R}ѣچ4|ÆD*=ݸqo\\E\\%$ҵk?Ϛ5 E4EМnrr|e75N䒑qqj`+چbE._. Jqڄ؄F!Cso~i~EƜSҥ/6Θ7W0ɓVk*觟*]x=&/gM3+xHj^iɼJKlܸ2(W--B:ɈC0o4%77f|uuϧAA6/N55=짱y;ˀO" *+^yy-fr++iHۆf`Ls%hAK˗vp?}ڶy166ӶwYHDr QVVT_i֭K$wg Ѭ_ZR@P̢mۖutt%$Siiy0WZW#"{kVsM5~.22P&7ʯ M&F -?4Lx .@n""""""%5-[Rr|/2u5V`f0hqX}}Lfoccy)-?͙㓕U2~#Ӿyb^.Wtt+ ! \3 Z˫ӯy~ɉ9L?2w?iժ?>! _ W˧Lq?o;-?+ zz9>ORGGwyy]TԬʇ]lQm #v͇0|M,0h.]Tcc?_VV;t_İa0Xgҝ;7lSYdqǏ[($ėx}& L" Z:~-텅?25``B--耠%5-VZ j( j( j( j( j( j( jZQC/mm[yz:kW3p E1V6fφ{Km޼J[F/WxUmڴ뫯͓͜1-~Y`[m®Ig?_\!s2Hd6-6(L Rۡ"#KJ…/,Yx^=s GF?5as{{gSS 󥟟ٳ7T*U(ܙʿ! :a,Z48 Uz 5N ԸZ;S;{oɕ+e22 Lq#R}ѣD4|mL\N.W~;w|)~JR.W$&jۖ5u_QNNV]\F? 7ޘ;F֬YfGR0I6n˴'%ž>2?ykFƍvsj??؉|D)U8lp!mmkhh"5$#֯_@y…L M1` xk?]YPU-1?NDɓox(::=;nmԫ>+VϜYTT>jy)5s#쭭mː옢ɳ#\]yJi`' 5iKF fyqxf[sDTW$5*͙3TՉS)::$;…␐!_~y:!!%))~W\HV>w0+d֬IR)G&sJ5D'ODw~٘12Ԝ,aO2Ӧy'Vs̎ \sm&oo "-8c5΅˅ل_ǜp&?4Ǐ[ԟh~g[FSSLf2bªiӟ҈h̘>><,-..#{JT*Q(Rj::47BM8qѫ9wp4A'gˤ ZR߅\x;55{͚OK@'yDV%yx8t8j԰ڔl6ٝ[35Μ]Xx_̓T*Y8BFVccvD4q☲yg" br4GRۜDl9k'ь^=uw˭,9;sg+*^|qL/1'0>i̿f k8x0sL#mJrڴ 7i֭K$wg0:tieOwAbbZIl!ۦ_1s'{܎28nڴH"tttggZ%g#é dzcc#ZZo޼˾-K>ݻo9Ί`}1E۶-*)y9O;{hS;;P=愸Nx쩥>{x8fLAKZ.#"{&.n٧P}W\uC+7oOFRקT.WLxei=`\{s ++^uAВ٪  fcsMm|?DYK$t@0dvfY2J0< ?S+A-@P@P@P@P@P@P@%53 ZbvXE/ۺug-a+q~29-m}"\I~W2J!QҩOH$۷oYa͚G^ޱmG1nn}Wd<UBBʎSSsV cZ a•v8^\\d{=w0!}JnߚPTʹp%fc+qvn,+vN $J!>}Adn}viВ;,ܿǐdF.L>Zz%{eoD/yku͑g+•1UX+WfePoN6X]3N]CQۙ:+ qRQQܹDvw%n5G3Ǹ•h˖_?_T@ qrW;v`nwAK^=LfC$b.L"".ZW-H8>w!\i+QYYʹi0O6X'!G(p%T*RyO Ş=2sHK c=[(1 >3}Õ JvTJDthVggUa`z{ĿkQ2 'ȼ"|f֦OK_k3,3}zJ<r'%f AK:VZ j( j( j( j( j( j( jZQC-縸(W_gx8IL[F/WxU!I~Hb2. x&Ufd"H$DVXf++JWQF|h]^Ja~…/,YBz-(pxFfٳ7T*U( Ibb61VɓzE1p#R|\6\SJ-hO# >'NL+nn 9rrA=xR?edq"*)~Lld!IΚ*ICNŭ[NNBD5-i?>eKCk3fYKՍAAWzp9YHbTILjr*M*CNBD5-i&wZZZ3lfpd/3FB$&mLĤIj" Z껞5(nZ;,?)ƌӨ IL$IsT4$DT_RF8g?kyJ%wrld!IΚ*Is 9 QMd~AK}+bwIL6-H$٥99=kB5U$}*Π6'!T%h?#LIL<N`<oTIL<H`<> AK`n""""""" F:G8LB7'"""a__@_xCo; %לrD ED ED ED EDumUW7)r ŗ/68BJLL!"{{~HyrGE\KKcW|3)֮ ֹo߹"JN^aoo}711se2;\yh=s?ܿ2Y.ݱxVVittNccΝ]l59ssǎf\jqJ޽g(7|Yl{nnUVdL𨨗v) ECmF_vuəFE">Kko!X09{{g- D4cWii-φUaa̲s_ WЇ⢔J\xh Lkkڷ]Z24>~E}]~Q]d`KK_rD ED ED ED EDMI? ~D$t y{ j( j( j( j( j( j( j( j( jMMgL=("رcFرc|M_ wU ɿ%tIME  IENDB`jpilot-1.8.1.2/docs/jpilot-sync.man0000644000175000017500000000150510510547162014005 00000000000000.TH J-PILOT-SYNC 1 "November 22, 2005" .SH NAME jpilot-sync \- A command line tool for syncing jpilot databases to a Palm OS device. .SH SYNOPSIS .B jpilot-sync [-v] [-h] [-d] [-P] [-b] [-l] [-p port] .SH "DESCRIPTION" J-Pilot preferences are read to get port, rate, number of backups, etc. They are read from the directory .I $JPILOT_HOME/.jpilot/jpilot.rc .SH OPTIONS .TP .B \-v Print out the version and exit. .TP .B \-h Print out help and exit. .TP .B \-d run in debug mode. .TP .B \-P do not load plugins. .TP .B \-b Do a sync and then a backup, otherwise just do a sync. .TP .B \-l Stay in a loop, otherwise sync once and exit. .TP .BI "\-p " port Use this port to sync with instead of using preferences or the default of /dev/jpilot. .SH BUGS See @DOCDIR@/BUGS .SH SEE ALSO jpilot(1) .SH AUTHOR Judd Montgomery jpilot-1.8.1.2/docs/jpilot-address.png0000644000175000017500000015052610445274001014473 00000000000000PNG  IHDR;F%gAMA aPLTE М4^\^\^lϴ4$l\ft$&BDFtՔ\zdn| <><465TVT,..$&%|DFELNLLn\fĔl$&d2tEXtSoftwareXV version 3.10a-jumboFix+Enh of 2005050103 IDATx콍su/8EWS ^Vb޵ ʇm6g4Πֺ MD *s[p}0}90CϚq}yY mqC;\.T")/~LOwt9wNLń>$6V<U}=DIl> Xާ$6 E}Jb>ZML}S,EdQ&ZDa-vDmݕ)6&s bG8עcx_12ۈ^">Z 9ZsRG+"#3̫.ާ\h2Q}-d>ZJX(>5.]3XD8T_M"Snlڻ }(N bwIX8(y b7}O͡NΑ۷j.! ~J_,vj bG#S#M,YG>ɢa}+$>{[I`k=>鎧Er'L7O}4yԧ;hѧ>"G} Zc?[s>T,&FP\.OA#p`}Z稝Kf>iO'Q@ fag­TwlK}x01G N eΗpP1l϶{! R8f>iZeœ)^'m&I7gd.a#,_8~帐*Q[CP# D2"^<>EԱle!g} aDQR`; Hi"$.^0b,._!CjgٍO *3hARը'nF . #n=[rGj aϓ[<&: o+{ݦA8<* ̈1B<:@3s>hDcGCw`hn  riHRL|!O{C[ |(ؘQ[b}(l ex0.`>ԧřO} ؋#˞(JEQ7HvWL$ 1XDqAw.!jSLh4"(DGf>=pڧ> R}]A.}!]KF r*g5_ZOO"Q@KF_tRZ([eOw '4 bᔽ{iGIe*ˌ+>qb/8 d{r4mC*ZQ&&[L9]Ozxi~yWr'-8mj#2abp#@C&]KQ3=#=~GEz ZXZX{j$Y< =7ht-(LV;J;6c:ѧ]Q.zEnߢBUiUSD,Dԧ]}@-4BW$E 1>oKóaA)Xt5 P*rzD;0sK\* n7f2PT88uFtsSk㣣V͂*dR۹.9yniQB:Δ;!]$fGT4 a^ ? ybl1l\ 6`tHEvUx/DAAi<oH J*L(M=WC-tO &FHaKXk_{d@1?L2]C6a(vq|;U肱tmORt۱V3뱜͔GUg?#X*ΨWpDŸؘk\d2<-dV]'h '+rqy EܘQ^ h~VBP>мZt/lnTU]9n̊"[~v'F(;XGԒzK; )#/!@LPפzH1Sy.P a+ⴁ"3ݰ[<2"ηr=ASq@O^%Z;t$bFJ:[\\;լL5 u1juf\_xғ62(MRCgp3#23ip$ę&FvM,Ґ@b]Fԉ9D3$Lo!i 8*n'sTQQE߷0$0/Wd^W)5YoU{_Ҭ՚zYܦb5F(ZTaR>#(ޕFlT6*=MjqbIwBtCg:]([ ~L뉎ڽ~VvgRA|퀆:6$a| W*nOgrf3z<}begƸE9('Jx3RVC̨Z9ֈ!锉5u[WWׇXr_ؾ_ M]ڝ 15Qͺ7CsS]tPD-}T͑r(DWɞgD3hФ=3O6a0Ra59dӘA|yr/<.ḿ1⾅\zk%-3J㋬.7DӬ8ϊV!YE&o!a[j+RQ\#jJj>YEl@|󠒴DCǕxtyF'dpw\Þ->1FCbDmܪ^Hwz(TIkAªVi=67O4.t';.T2dp䛜*4c;E ;wKq_-luoiNbˍnt$qN&4>G0M)(lF6O!3;qDRN:ui6Yr^^&@Ox UԷffZKэnTfNW+ i%e`O=E6 5@/ۼXZ sçCjރ/DVk(ZiP}"ž3C3$9Nh^ˈ#Bj iyyeVOTX8Dbp2E_DQwfzA2 ζ3c2tʒjLӧD2R+jycUDDntÛR},[m'J,h&s(85E7E#Gerk]w| iU :7ߵ`2>Neō,l7IE; "OۼGʥf[Moi{U gxWcQ/ Dwzvz(79>L1Kq }s=Лښ"Փv䳽(NU2ޛΈ˞٤plsvyK6v[W_. !g'*X5/|V[H~;gdDUX 2ʑ[1l%ۻՐs5_1D{~\O }G*/GɵMXMBŁ+ȳ-PQ1Ԝ.c^;Gz{>J;um8f,炲QWzN#-M Gnj5+seQ,x)ټioλ+hzJ\(/y|5B}cmukeɕ6o;w: h/Wiwbk>jUzhE#Ɯ7GZLu9fKI>}#I-FZ.VYA-D?QTkZEŷ7&[QyA y{ᗃ³V .wjhK0Mo&w6zh,j|\5BMB栗ǸE۱'">(?ܳHW"RdӖV*9[ 7oU1-auEm囷7,1am$SLm MTRIܬ^-Ttҝp$3PZ7n'qV^Է#ߐuƫ6Cِ.@{ƼQz2w 4&PR'jD!rO%+lEgY\X-XB+} A3ɥVEMiݹVP=MTR|VZjP# e>?–Z{o!J'ml2^:ŀ~P>а-hҪj<;^!?tIp_e>oUg4gDxGA!MDzS=;DRRm[<4r^PI#CLL~̦n9D{RUv 833UEk"MDySfd|z| -jB(pʐ:L@.HE圚,EOHD\()^٢t%"^6_hJRC=f㤋s4dt\6_uC.[DLE 6jqo 52-D QB2+AFf끕6j682Aj33J5ø6G ơɃjU\+gE+TR%{+fSgrAR»G be U,F٠&V`zXЎN8H[8`2/rEHv[冾DX^U|] r{qND h9S*t^N =U÷#Ѣ&á *-xXq#RV4ZCT??wi|s7| Y&LL!lqC7x'DW'T@43G|{>oI-I"_P BѩV;IƱo5YdT;lzESvQdO/5W%s^ Pa UWgߢ-Zs\ds5w㱖Dz`9rM[ WI'U$LsEںjM/y ^k $Qw2a% ebōH-]P$H,ц!e=L: x!\ 'j"مB!:%w`ZE` ɹHTj[(FaA"B{10xз8fb!L}8\CYg8U7FIJo ."$! 5-VtBflV}erḄR*BdW:UvF49T=A/|T xGv$V-oUwtw)A'e=IzU0;a`M)8-&k卣8͑z,9͍!;IͿl-"d!L%f#4b ~:ĊZ[]ݨOBI4l8C*\RIjY`PQf˔=jz#Z!mv^#-(X~E6!KybXQ/8L :n6+2t;G&Tsg57A6̓#\QoiHm0G|o%pEyF+Jn>G6+-L,*,Ok^N} S0=J*}i")k|k`#zR9-ByA:sᛯ/..bV!6T}tmcsy6dH%}& 8#ĢjoR -͒][T߃kaNC=k9@bUo''76VS췎ǩ85*ZA`׬YoE, BYQD*F(7A6uCs+{K._;fbq9ڜ~ (0A A`rpܛܪv:Ċ4RQsfu֪[ѕͥUok=A,]#<hnwz98@ g/S?.@if;c_82WCf[\L1:wLhm1 6AvoN ]>^@tQ#j:7CTT ?e&etQ8+Nr5n ƭzkN%H;ݨu \ZjM^w8j&gQx;8٢D1~b?f~"品sO4׷{Kt9xt\ڈ7bj IDAT$Xx3-ٻlλi>]v`ݵO{ѢՓ" ZFylK˕+VE"](ZRS䯾F=e"ķP }hLywgXiԳa~/mE>.Өw,)=3&GWF[[T2Nѱn(mu_]`1yS3[.D M3,HL,5Zt鋬o:hXsRXg&bWZ%D,6Vժ+c( DBT^ CdO1YM o75 |;wT?g=t{C痰57~lӹG6FX%Zkʹ8Jeykkøj ghf-܋,tQ {҈S,-q>+^85?7D^*O=aȜMGTy*Ȉ$񳬷.Q#=-SNprSؘ$A ^_{76&hN7ğErY/ollP`}Kh rΩ D|xt..Md wyXۯ6y 9& 4($|~˳Gr6rF޷X^X$6::2{F]&6]N:d-3|S'r>NZln3;q㊁٭T ۃ1n rV<6Tf#!bz@}>$?`0S!app]k t$YiuD'v- T}f;k?AKuxis 1(mNQ85{$zi>>x0JQa471jLfd/Rn1_Dwl쉒DD|)6YHWL/u}[Df~9T 5x?GpSO=~]s!łfb,{< "2YyNO{w%j;wsPrB} R:&٥sb]ƍC(= hp]faόl#呋(RHLBTj84GwvRr#u=Go籉8#99X"&-Nɦ؜Sl!;}$A4>q@Q !x Ns'b#kiz$+/j8gblnl,lU{̜Б`&{"j6[o8/Wqݻ(gf M*RGl ¹3 ;}A'[{Grj=t-o1| r]>+^U?1쉺8񷯿]gfD]׉=ulzX9.ã#Qr3ԻX(giԊ.XmW(p& -/mթkѵw91+r=QKLͦ/iУ 1esɤY+ǩd,mJaQ ϼרPłOԕ[[z;2}POLj ,4\{׉Mb|9b?9A;u"Yq(#;[8Z!%:`?h5$Ǻy㫫Kyy؜#xFD HL _ZaW!ylRylmXԈbh@5}n@6d!-x_nv.شMDzXTP|玹{UMtǶ>Hm[d"“A cPmLr9j9.ߵda=b1@ L0V4e6lbbXo% vpҍ=Ŕ|e;=j(&>PPIO'T0)0"O0ZLYZZ{^olyo|ijb$$~;aW}?EOO"L&?=|jKo;y7O</?q/yBj|m*Ph>ˢj$ҟ5@14=pW ƽv?7ۿvL7?_m_iL`8TWaeX'fg LRhUfLT:jf)Ufkłp߷NkH-R:.w  ;ϟ< -^9Ac Oǿ[mNOKNe w-c0X ŤG i6k}7hzS_X&'XD_6ٚټR聂1_+2)G@3rL{ <9 ܵ ,?8\ x!% 1cXL?~/g dwW> m+ӷRQmLU:o|L}ժO. /4q{/8k6oW~=?\?60?'tT3qdlg5Z/ywQǞ,Ѳk|k${=d60* |D${A~d 5z) `Z~FnbO[d@y7hAa@{r_"6qc+q?m'A]ntvkϻ8N?x񹁁 ?{Q=-koyL[=^ {"Ź@{X {u@P*DnPb E/%pc.=Ϗz@GuQa霢p7n`+k %Z> D~1)ş |h.go9x?9<1H#Iև4ILjE [~$H+~%rXqvT磟 䑁 T+h]P C]2I .c%`qW CvD!zJsN&C'jD.FWF7gG0@ 4k)R-kRh3yR%/a`x#v@f҈˓;&Zk#k_xTkGs˲8$n? A!pj.? :H/00}~՗ab"0{w0-5faqbhgNȘkobǸE>(0pȦƦ;QSS ƅ@͹T >U\6HjhxŭQ Z *P"6z0ѢVbU4gkHl# hmU>c@N0a]U?jG*b|+}}hDԚo,,Oy[) KʦKC6cC 0bmF&/Pl/ܡPB v,,&z@ HluQ&73}Ą6QPXR UN cD59yc(H mX ;bFqhkAm5 /?dgUUMzK}+c ?yP0| VZz[ŋq3ȟ첾e3ڷ'Z=S-J* Ax~|у_sEw) ±c/׏m|>| B Z'h uƋT^H6)Rh} Y!?Z8==?O{#){5/%K_|Z(EF"b27|EK[L/̋٭rt(O%| ~Iˣ 4̞YoVUeHu*T"T&l, {fU|\Lu5ۇ~߱c> G G[pWJ|c;c ꣱?$$#z7&gbt&_'?l$-~xٚ`vB#H UV,ܰjk/'*( 3QgArc ěġe9ÅYHhFB JaB5mguoir(:Ak%FifЂUC{ݏ1?{? } $uo +~}WihJnX g8yl@(bz1B}xg-Z(w>E#~}-S7ys0q` :u7kmO?pU"<<9>X?'DFz`رn?\?Mc-챍XM>8O?tlH|QCLWBOa!%?=Qɺ2mHf!6İDt s|.E<;lήcJ'6O|ܦ}QݨQg]7M Z(G04-*R;>. `_ +SOe eoVYP.A[W3% ITxq!T?BBG:Umk-!g7gFQt`fuc%y_V<_s"L I O\ Ra߂ΖX=Aه9R|y7c/ IDATU+X޽[u, ̷[]Rq]Nlb!Һ,8 P P$?Z- :6 `LNή4냴vlֻJb}"vX cWU-N/d>x"b&*]],F .H߀<0OFm_-Di.nV+J@I(#J!m(u"hg .WV76g7עZE7<*{^Af"Kd{#̯ƞ ɞ}7y.uӗT{Ccۉ vPQ.'zc H!%hkIMŘ({D%ciTz/=w  <&8v0ff}̈́R?OuX1"y V|"TmM xRO-z@hƕ>GqGo %P2Ekɪ-YDtMoiik2\%BA'%qq&ahbG#qg  Ӡ Qz'FO#aI19󮥶[8Y{)[]̱=)OLa& c h28|G'á&#lhpUz׶ׂ΅L©쳵y9}"yrBWͿJa&%YjQpa@)+fM# t{9^68tUj ):ՇX1溊- @n jVF*BIh +E @SkaU0^ 7VdCt`€/^vOx& 6[k.V/ ch!EI_"(FGAFyۨ_}Xg-NbR1(Vls$Z?@r}y4"G_Qca˽[6MQEuG^p 1BZ2?ZĹbcVuLs7j8Zm!4K9cOR - Q;'@Ń:E+ P;!$,(*AKe F(I9xb&TbI\Na  XcaG+?"Qd c9[zLLsA(Vnu*333S┨vP!ە0SQ\iB![ޑ? S+;Y8(@QAեLQatI-F V]ExGOۭjΏөp\|I``_F mP*u@ Di^# 1Ra:(UO˽3`䖜i'Z:A<+3\kԤNPEw*СZ@u)-h$|`SMIjWP@{eKHJ@GWu1'ԁUz J^A.Pz ~E4` % EXmDOIAgf<}tX)Q1HnL'W/(fĸbE`6B>4AP8Ҡ`Dt*rkj7H6ե R{Zg[fNTBjljXr/7b A !ܷ7mH'gm[зpsݑ\ hkzXc F X2'ZL&NRZ 1`O@s" $Z$@PT}`m0,ս#hPh!9~ѝa'5Щ)&*Fkd9 +P#d._ <[0$Xњ:Lש;Cj՚\5r#ЌKdYhպSKRB;hQ~ ZT@H{A ENXOWᱤb%(W6ƺ&ue@(# %V7-MqZ h :\=Qm:UW;Ќr, Eٺ20<'ԣܐh嫮$JrGh{A`ItqzW3)nӺdZ^/fO'J"8k߬  E[XPmcjxX]\7fR@;➩1x-:\{E]_\X vD ( o*QBҮ uLPzhaUDUљ+F>rVAUehP G+o Wo @6E ZB:Ђ};P~r8z3$>wUoDمqTI} $~wPf1k e B4G{5*,ӷإxE2T:EQ"X7 `6XPZʄBE[[P(~y( z<ӷzl#Zܚzmj.^#~wDТDZ]ܷPUݰfH_TcbyT-I+dOX]NK>uj)>T[0SZ$Agx3'/[Qqn\>\qNp]'3imewƠe}&"`)̶`L߂:XhAA9V[ۃQM֩m݈+7 >nk/) ^2Ja(@PpmUؒj .Ђ2QqoaC)a'"~EEb)c=WTFbc#+NIA Kzntc=+(ruٞXY[ӼZQtBtGZ-'2$fҭԫj~ھ'Q"@ { N WS:%cj h BhMgn1/DmI)E  =2By2_; ]L< ] 'DP{X'PŨ+W T%Ho>Ax;EvM11`HFTy$HqY%Zm $*mxCP:"hy+ R| ݎE C7"|D\a!(UN ΨVr! 8:B‰( au cj2ZHkǖXY$PT+v^;JCy.v PYlV:Q o: X=3-A-#ŁZ c C'Z%Xh>-x|ka:+]lJףgՋ\}͗\2cUqRILt CEPn } kuj}vl /n'|yxV5+h i_g@  R-&@U^ leu}c}ILTڦ?ϑsߦ tzVpMgz]Jd‘h`; P0<`ZаZiD؄0Y]=j[lТt*đ P1xԉ|yډ(Z_Uࡈ?DJF gJ9A T3]M,u"Z@$*sEI] qE:$IݐQ!`{ wbx!➹:cŎZ@%PJ EشIb"a=Q_-QU*M#5bE(j-m.yJUROJBQ2X1Z<| Lx!LB s/.yB-ߚoD Sf(j-" T&(Ϗ.\=LJ]x̥ryD-࠾C6=B -AD+E@ ~b?iHBE:RqH qcqs|asT@xV^ 0\,؂Z%3BLWU8Rl.[ S7-#K} v*;#i"V1?T7d7ZVa2u㊬Mp:3XRXƙ=Q*qoujNDԽFf֩ /j,n/y[T,g|iy4 \& t*9V-bT;HB؇aqE _L=BdG(+zDkD "@sScFs(g`O,7۪W;.jL([lhrvcsi٫6k:X$LՅbmԺ,BRNP uRD YPQE 1cptp%y,W1@GkCU-AFM-SJm)!zzkEg*Xl4[ L,jͪ[t.qpHe2W$0s*. OJ2:tB }n ܚęvޔk(QFx u3p7Y_9`kʄ |1M wߢm(^T " ѡɍqϫ4+oROA5@cJIJ ms `"e@ E "ՠLT胅9%3ئPuЪ#Uz}T<}|0ֺYfh`E|&*xJVZ;uGPLUbN| ˞7(IuLMS׷mMz?cEc9U˷p;m3 ɜG5kTn1l2?,ӹ)MY( X?癥ѕVuì֭(OL7 5ySPג\;O[I'y-)DmhMTTAnIF S\)܊5 F 8nIgjqd7b$'j'`GdH-a5;ZûaEhzt~-er~%" k/0oDQZEݨzZ,oך=%AHВ-$@8c+2v@ p -Lz&*_6k1RgquF mCȟ-^ RB{J>[;,~τHu1oVw]-@Kh Z~,%&߸Ѣ-289q&0{CA rʴZ(Zhq ]r@(/Z>`W6766f7+Q^ϣk߸qUx[6 TM>o]!njTֻAR\h5RBdDw]J Zr-L>|hB,2FM}})v-h-vYoaWIS4 ܍)Ŭr WVZh,*<ZXgZD ¾ )۹t/E 75=_D --D:틥Fk-؍̊[nT{1e<-tٶTyBU+-(ewEoA'vފ_O`6Xiy |x1+\ r= /4X^އZU@M{^+z 4E\;g.~ʼn*ը0 Yhcq\ -JI]@ o2tEp:iCxv_f.rAkmKa^{ʍŗ=Qʵp6M0/]@F8-+!Q~8S̷sZ ɪu&=yw6jv d9g"r7&[V\_s7ofI _CJ@ _tJ Әhf jࡒh6*>h1t=c}?-g0dVfC3yDxawktթ43S)BhQ.,IJw@Y/hL(%U wJ:Z"6u!u.rNCiUXx|GFB (vZTZvl[h1kRkm-OD B@<]B K#4=QEvbxa[z[ HlA->0D@J0j(TQ]nn| ᦀi}o-2} Ʌ w6Z$2nr`z$fU vH`zQal߼xPWZuQ),(t;{1>HbJSez3Goulc;yM&;#޴һ#&Hbw|7"H'h J4Hn:IҷP -@WS[j1#EkDȅJ䝏EQ IDAT&ez{`M~,Ѷc%)1jk 5BRvW~1oԪ -G 9vh!B2Eij.O<ӵp2 aaXk! `QYc5go :b9FMu[N 6]_(`UH o&Ż(lj,CzB[P~ hhURbdKs%eHRc]F,uT ! -|4ji)@B+ @bIhUQ>nX&8bje㺀rRCJKD*MUſ*v #*gOTJĞ7e Q@YӽA iw;ZRFP-+~Z%גsKwqdd_Muh5%!4-CUOCL9[O(f*õhKغ4{[@hk,#,*2x0/*V6&)\XV%jdDgswX@`rJ~p+;-3Q딐&# A%cZDI*SkSd )61$f0-vKoZ)JOJHC (X[h·dH!?Z(}EHhnI I׃- \%JĬ*.Rk %W*--4 B, -0|:m"y%VXv-C"e$.nnJ[,(w4*:ƦJRZ@(EXD~a GeɒBl Zh;1:h] 'Lګtebۖ> U`K5l7-, B( |׷|Zp58;{h>l؊wh!ZO|ύ̢X4c8mfn"Q N)ڵ0_Dhx%ߌ([ֽ>VyZ0͞n"n\`*WdžPi}nnU[h!Xî*y"p lU#LTZgF30hkH~SEin`o}znA+W-|ե]DZ(AuD$k13MBH Z-UQDev-5ylnMTv8ͥh(h8#C pbRBHBn&笂 cX׺< -v-ꚢ'j~®"އ$U)ܗrza~XLy*Z:l%v9|bʙ?b(x[Vg Zh}gha@0,՟ 8y0qjFlA@۩ (Ίd[5R@U uuJ9*e dZoZ jHllCL3.u~EoVpEv[Z@uЂhl @|TqiH!=-D` v*'*bY.7B5W YhQ2s+HPr a'h s }vL`Xr^-FEDd(lʋ˒:08B3wE:OάG/]n{ ? --P6R{7Z #/T\ncȰJ[Q5/k"*X}c(!kKހB ~,bh|ЁViԸE&Z`MG KZ(i4ܞ =f|qZ5*U-`lD$Au@<(0Nظ,(9Am採8Zol3 +VI:-jj`TZ64tǮ[Bھѥ"Lg&Zv}c(2{Y/_m1AB64j(jXsE]KO%-VrN`BiZ$)e}kEaⲞUвRwUm{1 ӍA%XSOvbZ`]YȱB Uc=QX,@%MLERNZuŽ|ҟJfKq0ۏ-/-v}@HTt%uBK =g[HE Cf&зBe{Ums AO&Sk!Yhahmup|BEA u% ܒK&ZFL} )nG Z`G ˷(֩4Ǣ(ZC [kk`LJ 5hQRIhs1*.Ҫ[xP:slmM ,|U]T2!0  VW+EXbD? r ӣo(%[1т ӃxBk ([h)f{ -[Z~Q%ve몝@,Z:9>6-}G6Zr"V.w?:)g 85E'x㭋ToqJ)\qXa_#Ѣ Z i\yF baQcjtڌmoќblb\q[}G7G ݖ ZߦzFVɓ?M'O~6?9S }­a%Y%1[p")--̾#pg}{Bq 3AC)q]0?/oR`U N"t-2v+enr_I[.rDij6ط/} [bm*>Z-.Uw]$O})]~_9_'Jy~2'+8ėXF'!o;y?|y$IsN \,X04T_yC KG"d)5J1j 1dgk%( Rl P/}ܛTN_X>#2#gy͠T% AdV*Tz&D1hSoER?¾jB1hKX~6נ(%_Bz+e|z2/?u" qVvV;~x~`;Wc +b]@{?1 ZDf$̼o_!<-Ƣ<귐*#qckQ{o/?i7cߴ_1;i7;*ꓣS eq;7}=+vonS-  ; -y-R]}"Z~wM+^-jZ-R?P_#^}zR/4A/dF%hkNDE#LZ\ -[d .8ק e~zۨڨslOo?Vrudu&쑬(M yNV'*[@|[;[fr G oah vg>=Tz F%Pΐ(z*&) ˹|lw.V" h1r_Cl;5]b<\ qv`^f$ >Сva 0T^K"`@l>e}Dubc[t+sz#[~ a\5K,-ɝ"Tz*(n%yh:U_ir[}C@c+6_t8bgE(B-\[EdCz>w~ ->Mi {;lEOl1Xz0R(Frk. }) ''zŽ`$DQQЂ 1LOKTta+pb|lsia h~rGR_BE#AĿbq‰,) '4ɹxE8 s;45-*Oh1-%qi]׷Z;2mW$B؅ħ }@EP4*Ñz>}z;oZD4_|B -VgZ]Z4zYdwYK0xLӖz,7|d8Jx@L@bgdjkA,1JDgCB,.zǣ`-Hk%9=Wy\>:^쿨ۜE}gwے,\(** &\"0a7aJwLTBaZ85-&[Z,MO9ew\6˧ͬv6if~ǢыֲA-.k" HT_{刱/S{LЂ -MlB,~P 7v~ϮA]_b;V3 %^ 5le 켨LZH0+O-1,%hH)<*zGœt]"ihПnLo⶿nsf1kN.qyƉfnrDlAH7CJ;i !T-B[1D5e^"`M&6er9wdNmέjNvjN)1S@lc*H,l Nv^,{GWzǢ t]d0#Ov ~Dmȭťf6O& d+⨁i2 ,~U2@@A9L]U -d/:zB-;4YG+bopW!%:hqR@})q"; Ed3hR[!=GG 5Xp!m02q=Jt"ނAbH)pD&rramQ|gjLCW?PzGrKiPhſflQ,D<%qsD(TeX)r&A~~ w1-Ah| 'rl1{dϐb CvLZ0eЂ+J8j{Bpa("4E#&UXpG,o1h>A[-DxPoFOؒ --VpaE RBX)hA0Ӂ((-*dZ{7;Cer9\(#"yߢzV3x跨!˯ `Q-آHET Xl#WE2by9QESŖc ݵ%}:0!7b dQj ĆFh9A{ЊWTqTAH";oZLтrMq>tbusW.Mn1횈2&  cXbPy_P͘R^~ -q/wܫTΉb$WgmAwy?(hUB<& 1^A_IH-vĦCo)jjys{ZB g`ktqs Ї03}ygwn%lig6PfagnLO?U.@u&N'" S/Hxb:ZƧ24ļqE[ MطYl&[P/p tpuS[ItE-M*' ȃ[,xXpǨ!-Pz; rDl!ڙE*D1kWcc ZOa}hź b -6-=&=4iӣ_Q__y×D_}]ٷ;ˣ_ ٿeSwwU+{:h rC{hQ'jhpw-woΘ_A7_]1?zl?oNA\_Jbu cOV 2d-QDlO -.ћՄDu)1̧)J;u;wֿҠwB 6.R A3!*,Sgb.-X8hV=\SE4ۉ-(2]Ic末[Mڪ;_~Jmha}fvz@?^+`:pkP2~ک~ϪaE5薨܉dw(P7 ?\Y4[n;JӿUo y0"%ɨM&:{ Z8h(5=9vbArW5IV'3OUG?o~ތVpxߪɧJ}^qGD]earJ[-8)#'jgb{D|\C`ެD{rdCn_T[觷qE yx(ߘ_j CB>Npn pJc 4DI}~ 5rD\/wY/) wĚu\.dZA0G_.?|(6ӣO;>E>lw}gnǯ׃=T%EIN.\U<ѮoɆ?曮G"=6[8WO'=W5BX!KvBd#A3B#D*EZRQ>c^"D??Xf˽Alb?r-{ul(nGMݞ,iQd宏b0Q(]CZB1K ugl@V/jax==fh-qx>.fj(q#b? h!9!iHW IDATW-SaMУy2X3\g[SRhH 2V(".B H4 uy"F=ޛS/HxfN{wlu+{-7άV88 l4!'mQovXїOIix2+؂3-وA{Z0 qkG,$b i Ԙ-l -w}p LwZ2HfMv+1(H2ZT HV-(ȭ]q 5m[LhqQ͝KljHEJZX~vl}sտKW#nuўɯ椨 HZ,@a 'X$B' :/Ș҈J3 lmozBhq,ⲮkR\/V^~-Qі䟌1.74W65)ʻ[TL*dlu$NZD+%Tj!ԋ;#ؙb#  % RǴw`\_Ӕ>Q+3Q$Ldw)$ XOe b_PTaSar>"ch6}E;ZYE1].[iU-4QK b&F 7&C\x' tT4汅lND {#-c.D!HxLvMCVUf^|35DA~L"Ihv U E3hu1jœ&19N6<p+PbzBw<'J+ҪO'n}cEAw^ re$`Ϩ%*ǕX5up`LC_/8˽Ux"c(Q/ao(*hgwCGohu|EEMo*UcЂA`k0!+X9haxLhq"FvCY{4*"6@nE~LxF87OX*#XBQwC+̝NrHl1򓾆Ԁ08]޲aX6ͷuB2Ap *8†GZF|/ iZ[?)(bCm:ʳ :xVb%;)"H8AC@}G˜bAp7fD#x?~W7hZX? uٰgN۳y7 R-*t'$C ј*n-w Q gBDAvjѣf6- 808EUE̞t ; <98 |+E;E. )L_Ǩݪ~vzf -EjFIO 4cS8/JofN~` @ JZO$DZՋ:kZl[Lܣ¿ԣC0u[^pH  +&C 'P@q-VЉ VFoo1FL+~HKדu/>چ1c@d*hNPGQ5!WZ02D!ZGwi^{l@lBhq\vz%>Q(ajY-XwlI=G&e'boYn$ ZP&/ñnmZ/_c7뷘z7Bt^{R_z 7u`&lA 432Z-lbjKZFC&؞n-'ݰ?*J޸c~V"Q D7+CG,kWbbBb>'j dQVƄ!@}-T8ЂG@y[[։їn_cZ-s. rd`Xm?kW߶߷w-J>v(m",vqW_K>eW|&jѣexd¡ſx'Ħ~@'ԝuHq_1Ū7;i>mNtTAV-?ǿѿhw| - -6@1-Q]2j WR+'S$(WtO-D0b9KEh%|ecjil1E-Q}rKM_,OUeo(fnIATuʭ.b1[hO-bz;sFLMדtSkd %""lLL3( oZ@- ?`q~ 5ro%Pz!J(C2J)!Pta$+1~bR'gA.PiK߱[XLl-p? :\u"D\* b+V]nTieLȎ2'hf5ohUFڏ 8zUAR㡣3#MdʬVDyٝ?Ԫ: :%F,Dhk ,w3y-Qm-J}l䍭H!gCW,e :)[۔DŔx bZl["Y,&.)n]vi}r % C2CVC(ىIUBK1bOL5V#w Zt {?k?W49g%@,C+PTz& Ѹ~iD]% OQIAQ+H"BM \q [Ҩ T Xn5b]^7$ixNO8 SJvX~Il{f4iPPVA 7"dGnMEjeBhPk]f%݀ʛ5fE˙._Y]/n3[B#9K`^nfXFFȇTp*=+J4#4'niY{nCl žHha *AhAJv|t,X-Dsm\Lro-dlQHg;O]Һ9h|rOF5k@ 0K@BpP:-tȝECYy&ТS-\lF\[г!3}07A} ,(aԌ -Ȋ`#%gp

f+bq.r# =-iԉ, ;%l0ˢZpp~oAGn3nЂ.>ڌ jQ "UDh;WeR6\Rűha=˽}89S7kȜdf0Z( f?jd-8D&3Qxcjq3 󁱅3h0TE(܊Qd^sl5cz{hMWeJLvRdSeiԍHZ#6b<RF A}&*)ZšR.Q}f{&pZT]C Hk Ch)ͦ~CQ)l6{CG ЂJQMU; AMȠxbt`aw6lܕ@Ċ/#؜hӻ7҉7.t(A 6JRS;ki -X-)"5cW~ElsB;7;=ݧi?qn> [uՏ6 ],`3s#oB3v.pIE;k {w HWMi˻LV[ ol_HA4\9S y؄Dӻ7[|&%E $3w6XˏX>>q*NG蜇ݡJŠ`k:)~ ׻X̸"". P佤!td&Q"\E?+ ŏ_o0զ|uBST>9.Z޷(I@^oh9kd[: Z!.ֆD-iG,Xӻ7v]0~7vQ%QHLJm"֜&RN4oG,chd67[ j-s-\=Mt2j)*Ʈp;%" F|V*dTs:c~ Q\;C۴Ȳn @xv1zA=AՃJ˯ӻ[E'^5ELy 02;JAaw+(أ`P+N4 փqʇXXfz&fle%#Cqℋf\Ȧ<DE1V-:0w(y&?by,#=bz{hA!β߱W׋[aYɵP`d,͂=3ѓLlzZ0a. 9τX)hWsWL2v[ RMrZtk+X'E<-2t+Fyϕ] W 01CCtsK1BSѢ>"U<@ıhu`Vp~`'{^jIy1*G jNpGAN|&RA=Sb@=YHWwo-z淘g{e͋vR۩_{zopcu<9B EO6y!6;GAE$婕"T|sjz&jh$49QAl-[v?6;53f' h(*K@r$U0")’)-o1c(.7U@!e ,a\#c rprhAng""CJCLl#!bh3Gcz{뱅i՛i  Nv@+V+ֻڛpHMY~/=ѭ5{iVyPDs!ǐ|J1XT jB™J}˥؏H陨@ ̺56>:'hb|.ZO;3^yafZU`,D3abqG'a #@bK<[FR`z{hqLr}mMjg4# a.?+E \+7KNj,5;N )-E=X!'Ϡ*؁͔-"SiNW\ۻLcz[F,f[hAi?dR/B0aKT$!Ђ(- Fvdڐѯ%0iAP:[{OSc nCr ;:v弳ʶ/tz\r9L@o[m$1 ,p20!c sbcЖ"]nhO>:<sOfI▂0a$#Ʋ!d3Dèq(3ZE#ib-Qfpl1h8~"䟬ljUjckv@ROGSKTMe(]!bh#k Zkaj+bT4[y^4˽u8gUtqzȱ{ ۋzy-QH &{od`l*c Ú 9G6DRU!.M;=٤iI;w, @dKT>( ) P笕m3:9~dM$7@\ :p7\sPÑ~~lq4O> QH#gz; D *ߐM3 !gsZΐERl[щ{F,砐4gArz{hfZ;IA;%~&yH:<6 + b0|fZMLѢ/'ɧɓ+_E.`V(5ҎZH0U)0!?byN*Z ߢ.d+O ŷdTRNȊs}haPA1)[ щҟk fz{hѭ$Ywt8< B![RhGB AgIxbJpeABݦ6<̖?[l-ൈ1ף2D!~y(UYT젫5 -@҈RӻE0b^*^׊3NpIlQ@ E'6C>̌E@J 0nȈ:3QGjw u 1( Zy,dl$?by?EvNro- [ַeXg-TWla=~ETv~@S rm}&j wo-t=-ה_![f/Ђ A41lv:Hr~mŀ~^OUjhFN܏Т[)hE%te 8F,wo-6M"5wZolioZx^KeZn گn$Zr爆3QGq_b[2)[Ʀnۑo2c -ši5bӺ=;`ɐ&)*)ad:E vǥEA?d+.bkd}NF I <˨VA< |y-^mlQ@˟c;P79ey=3)qU9eQ߅{.]Ő^&LF;-SX[z 8l*Bf-@#O5byS.7#DŽݽWNV>Tծw򏎎>SO޲ha^'8:mg}m!Ek)vtKkˢE'ӎ8cz{hD%C+"t=Т'ouCnCucWt_=x~?#惏ZyzO>06JBI R;HޗwW~ߢشNcG$v0 "؜ #u'EMro-`n~ĵrg #h%w8G0 @ҊˑA;5@K'{7O!<(Vlү@KYlz{hA[t Ժ96}7`i쨂8'hV^f،ǔ J G@YC{7RDgt #m2SѢ<mBbO=>)Rڑhq^ߠnw+*@[! w C5[e:F,-@_&Z ߢa6 tgL]qS͝GzyeXxRRH!ؖ2)S` (/sKbW_$e$IYO9lB ^y}˕>٭ < |l*<3h } elLE(h$i6A xM˙"k'iz{hq,ZEVA`ysRy4wc@pMfޫۜ%yq j:3H[LH)f.#] +,F3ez.@wo-BKișGj1.X9CrՆ r螐^/ d 3T#D̢xaJ#Ђ|l543[Xlᣄv BhQf%D 7(׺hr>rˍ-X߂kAQ*-(@1RGaFحRE<]4Բ]iN>䶱ysgvlͨEQآ 6n\ȽN:L\ ,~LnIf-!9A8 !X#[wa-J+MDm-5:].NQ|lZ. FoGvA!K@:O/5\< [(FaM:*_ D*(!E%`w#i@?9˽u^[:4 yx>Z`5`ڞ Y 5_DV؂FKa;Jh8 7`H9*ϥ9Iܨ]E ZZN6]\`A{:lۥla!yC-Q+7/7Z^0ֈZ ^@ ҚS9CĶ,Zd8i/̘q:ns그 'h[.޷ol]aDh¢&+2}³~ЅHCLDfBMh,~XщE"8IFX>4iz{hc"Ѭk=[Zp.e L("A ms8ZD1 \b'*QF[Lhqآlmu?7>XAT.@/xb 6*Wh`&gQ@qGX1,ȷDeYӻ[Ey)g6\>h=V{ТPs~C-w&(ّ$%'g-Px0+ã!4.Mޟw)gNY3=7։"8]޲YǮmȭsd%rg3)ZG^"_䮨s>*Zb'y 19Z rgCKpTJmFЅY>+&hEX^^Qv𨂵YLro-.ܧiD!u}?yHG)\@հg"&Ota$A-X|HUzF,*CLDm-»]V}pkRC1(r=h1y ,24CwƠ]g76]EL aE$]"e$(PFЂ€=z|3˽UcFP(cmPZfKLk@ C@J.P}olMw3oq#hq(KV?SgKL|fj0&n PLdaF,OSލJ6w44 %W'MʥOb-x}C[xEouHSj:Z iW?%r?+>seV &OtePc0C?H3vAiz{hcםWԤQW֎gLX@p"*%r淈nҼl.тD .%Zdx,Th4Z\ @ RF+?b9˴i*Zi_?Ghg-0PX #&0?ӻGV H-[]?r5CÄcc odh!ANJ A-tQOJ ?=U ^Ӗ +PwۏۍPEa.Wj}4NkNFXMGKTbvdz{h/X0, (g -Q~lw}L֦I7E}E8 vJX>o}8L)0gۓ/==EХ7$#ךYp!EocX.cg$g( (< ~h%)ewqK~D!D0ܞ:Z$/ISwݹ|RVl Le4!j\q/WPy1ns޴N7ӻtb utU#nMp.*[^ԕ(@+F'WZԧ$0$ `>xtjJh# UpsO\I,v&tX2QS ߍ ֙ngs7=+; lT}lb3opUmGK=|m4 S0"iP0}ODaxG{2ưRD/8jԈ咂BF]-L|ܳF+8hcZh(o;MNhX(F7<$F$vJ@*3IqLk!2ODm-;oV{x/fZمڎNT`<6UUUb P T *Ft@B}e3#ŪUDpXyM'wo f=o+\K~4qX7VOc}A%yn+ B }&AH^ 4 -'M[_|{s ֿjwž"WPl 9ܞ l<)lse[Um$rQ0}pso} CfehA4^|lf`-*'q'>gxleLN$T4Rg hAcx ^;,tGuo4n(n-V'h 7(eAxŚ's+V Zny seLFtr˞t]REZ`lQJg;ĥwJ[ZREע,hx#w{]a -zoХWMNxuVT߹[:W+b,H"_rT#wզqlv~}AAdXc֙q3Jaɛ^VG&Ȯ`a_"2d7u4]0IZ*BvH ĸU<"bI!#ޯې9駗.;Q}TvI^-,NSB wJۘ1p(񿗻Sزb* Fu=7o=]AɨdgZ(6Zgb l3E\Þ"K{ZחwZ /^ٷ!mqZ(>xLnhkg7 !V8 cn\ ܍gȏn7ZcD6e-2O\H4)2hfrH" j\? ܰu2%#~{@|6ުpLN4Q= v|)#h1gW-@| d`> $ha"l?tX^_QЍ.~ ;n3%Ma6"G6Ϣql2 DV8ڥ-(p2]1!mK(1)XVFugQQJA an@%"knf]xMIKT^zmZ^GC"kɣ C v,ZoLbp56폊b Kwշdf#F/+pZocN_gpEϢJ]`%}hϐJТ)7֌ (NVZ-H>5N %E6k*fHENp0bpm\ *?w]7nܮZwgVMpg+pNq -XY$G\VQˣKtҼ3Fqn(k73vMB߳pmvؖw{EE ApvbN"͓G20uSP#gjmv:~gA￉yOr<:Sx?v ڲxK6_P}aBI׿Y _zrK"Τ Ҕ-֩FB7p*9eZ޿6Izy"_Uǩ5/gL3Ro&Wi@v2W[Kܤlpe2r|uyLށfG~Q%vN5LyRl'hՂ ųҭCA[yCpߗLss1Igs|#ߜMnƪNKKYzro|\7ɪLkm;_nr,UХ͌ |@;y ;mABkL—R;uht^5nhƐx)~m?`[%m&L*tIME  4uIENDB`jpilot-1.8.1.2/docs/Makefile.in0000644000175000017500000004147111702305114013101 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # $Id: Makefile.am,v 1.17 2011-11-11 17:37:23 judd Exp $ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = docs DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-2.0.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' man1dir = $(mandir)/man1 am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(docdir)" \ "$(DESTDIR)$(miscdir)" NROFF = nroff MANS = $(man_MANS) DATA = $(doc_DATA) $(misc_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ABILIB = @ABILIB@ ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CUT = @CUT@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@ LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@ LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENSSL_LIBS = @OPENSSL_LIBS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PILOT_FLAGS = @PILOT_FLAGS@ PILOT_LIBS = @PILOT_LIBS@ PKG_CONFIG = @PKG_CONFIG@ POSUB = @POSUB@ PROGNAME = @PROGNAME@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ # Install the manual docs docdir = $(miscdir)/manual dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # Install the man pages raw_mans = jpilot.man jpilot-dial.man jpilot-sync.man jpilot-dump.man jpilot-merge.man man_MANS = jpilot.1 jpilot-dial.1 jpilot-sync.1 jpilot-dump.1 jpilot-merge.1 # Install the standard GNU doc files miscdir = $(datadir)/doc/$(PACKAGE) misc_DATA = \ ../BUGS \ ../ChangeLog \ ../COPYING \ ../AUTHORS \ ../INSTALL \ ../README \ ../TODO doc_DATA = \ manual.html \ plugin.html \ jpilot-address.png \ jpilot-datebook.png \ jpilot-expense.png \ jpilot-install.png \ jpilot-memo.png \ jpilot-prefs-1.png \ jpilot-prefs-2.png \ jpilot-prefs-3.png \ jpilot-prefs-4.png \ jpilot-prefs-5.png \ jpilot-prefs-6.png \ jpilot-prefs-7.png \ jpilot-prefs-8.png \ jpilot-print.png \ jpilot-search.png \ jpilot-todo.png \ jpilot-toplogo.jpg EXTRA_DIST = $(raw_mans) $(misc_DATA) $(doc_DATA) DISTCLEANFILES = $(man_MANS) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign docs/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign docs/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-man1: $(man_MANS) @$(NORMAL_INSTALL) test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)" @list=''; test -n "$(man1dir)" || exit 0; \ { for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ test -z "$$files" || { \ echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(man1dir)" && rm -f $$files; } install-docDATA: $(doc_DATA) @$(NORMAL_INSTALL) test -z "$(docdir)" || $(MKDIR_P) "$(DESTDIR)$(docdir)" @list='$(doc_DATA)'; test -n "$(docdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(docdir)" || exit $$?; \ done uninstall-docDATA: @$(NORMAL_UNINSTALL) @list='$(doc_DATA)'; test -n "$(docdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(docdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(docdir)" && rm -f $$files install-miscDATA: $(misc_DATA) @$(NORMAL_INSTALL) test -z "$(miscdir)" || $(MKDIR_P) "$(DESTDIR)$(miscdir)" @list='$(misc_DATA)'; test -n "$(miscdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(miscdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(miscdir)" || exit $$?; \ done uninstall-miscDATA: @$(NORMAL_UNINSTALL) @list='$(misc_DATA)'; test -n "$(miscdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(miscdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(miscdir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @list='$(MANS)'; if test -n "$$list"; then \ list=`for p in $$list; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ if test -n "$$list" && \ grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ echo " typically \`make maintainer-clean' will remove them" >&2; \ exit 1; \ else :; fi; \ else :; fi @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(MANS) $(DATA) installdirs: for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(docdir)" "$(DESTDIR)$(miscdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-docDATA install-man install-miscDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-man1 install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-docDATA uninstall-man uninstall-miscDATA uninstall-man: uninstall-man1 .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-docDATA install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-man1 install-miscDATA install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-docDATA uninstall-man uninstall-man1 \ uninstall-miscDATA # Make rule to build man pages %.1 : %.man sed -e 's|@DOCDIR@|$(miscdir)|g' $< > $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: jpilot-1.8.1.2/docs/jpilot-toplogo.jpg0000644000175000017500000002124210445274001014515 00000000000000JFIFHHCreated with The GIMPCCD" O  !W$13AS"#4Qaq %CTc&DRXs ? !aA #1FQWXbfg$B"'(2DRr ?M4ӧM4N4M:tM4^-ﺖe]umJV]ukJRkZׅ)^u7slvsgKm@ z58u!r]r㲵JU{)i. VK>pbS8ڮ+T7n{mE` mF= 6$E%Za5˲; W0ceTڹWWe0Bi2ݕ 5c(iP>LNnr~l>$Ld;KmV1j ^JzjVqVJeGMYkJfAʉ1ב`ieVZƪ}ɫ}UYqBAmP}l'I M |x2O/OEow_k`yg~g1ˍt}dֱ,Z͍&վ9p=zEK c 6Jkmڪj%ZҾ '}Rt {xgfɢ$ P귚4XO v's$I1.&))˚ޖY2xw.S)JPB@{emF[[mizD&;:I%C\CxڶM["uG{ xKMwb7; }x-\t蘵&=]oacHs[4OeS'\ lV#EV٭ZQh)3Sb@5i:ɔڸ!} X5/I5*]ER[UU:$t%F}UE8T:*e\`SBQP Y C8 XeG9ģ(q(qc83M5Q禚iNi:itR9t΄d4bNѶCIՉKPYpc9P,+W52奔?,W:%bqN71A7|.gYg0F;2Ə]mlRƴ70]eݶ<ҝnu`ZޟqK7N?x[VGQWy77VVTW &sF7vW&܂b`ͻ4EEf5NYO*V:}ph%A5Tyzsy(L03J&=#a\奔?,W:wߟXߝeܡ'^s!B/}eF/]+IB5uɔ5[mV.]2bvL}f9oM\e]&"$Q@H 4<,%b2<n#q1#($;?Q/|;o,UvGΝ7*#T~y ~j2V}l~>$sy|Iwg?g7*#N}]?}伅̿E}Ny ~j~?}??\/Oq.'s??Ix/r1[\iށ7e,KQER.!QizCY 'ru9w >h?s{8&k;Z0T%1/ps=VФe W%EKElR.o ]ywTR߯OSoS;Gyn/n Ѥ[,6|*(hăb@y5T:Jn "ׂN#HE DCV|OV|SUm:=ۮ,wWө\(+1 }7L7Lk!bRu!_-.7耋ad|rsj0jem. ɓx##cRCseRH1/(y.ĥ,͎ь{9~afzo KzapG2gš<n5bmc:Dvjey֞7T6Mҵ) zf2;ʛD+G`Dʹ'pVQBv6(`B;JSC0c'zㇷfU)I$ӅVZm=_&A_:9 ah#Q v-MZ%-u^ 4$0g9(Fjp!1`LO8W~Ztw3d&3{[cjĎ\3;"bFcʑTj;kL}UUUJ= r5͇ҔY&)uTDuCz|RhK7pT6Ps|:|_SI_3ke^k|I]Ԧ|2*㵕tH"\dwZ ?[(;4#u9[T*GsLSO$,9LSnvCd-|9~!}cGn>)Z!RZuARY䗵F,ěPVԧ2 EX7*#_dKx;F6ʧvc *J#Bq^B_ھT7?zUœ WA\xU^ϗmFU1 P=֥H)D-\DSCz&s Y}[d)5b2;@3!`Yr6fLc1&:wߟXߝ;o,UvGΨ2;%.e-ﺫM}I}zW>b~?;o,UvGΝ7*#T~y ~j2>~6?Sf~_^*],O~z}MeӾ_Wd~ƛ~OG"u͎v v0p#RRd2rVX(zKmҞ4_V\|gMUW똂 4T|k2Z鑁|9eavl0/|Pa 璭c2M^|b~L.|(8SoC~]mcUu_ԧu2k{ rmYRM]TQu/5)u/Ծm-JXܦDP¯{ޢ*r\i zrDYRస4$.cQv*֊wc} ;ŸAO= 91d@PN_T A +uյ+-VY9N*Eu;&гzrѵlIީ-gp?TBԵ|xs-F _\:v+j=^ !o1m>_˭dn70m&_dU$2]HțH~0-CsCÜxlݫa|O͏$#@&CH n!Ʒ0C8PT C|*U(soJ+yE}WSȕ% dC+(=M}cIq[rimCʮ(5,Bj80P䛽nB|bouH7@FRr{6fh n\sٜLt_Ua"q|,=,.R3irm/w] {ho3V0^LɌ 3vXrGbg5{& QmT*&7P#)\ݖkcnEcFٗbƵjFTs\CWwkj_uv,"ĭ׻N'mWeƐ( tWڊ¹iea%mr!Is]*׳V4QI0eq8+~EqVU>a̅WVI_8ڄV$ru۵蛳7|gy-8!5V(LPuvGzLџx=;&3^3u&ccmpV{HKdbr؃;o G*RM&<nC9e0ۻL8[[ Eɖ͞]X} nMT &pDhe^r%Eqwf<*!񾽠plu=~W^Յm,,olҷ8j˃`[=Km" ݾȮR6B!Ep"$d?h"!Qnn]YJ)J/^7upJ|Ƕ\zαUfcʹݺi])BE "Dn[,Jh8Uy.8|Iը{bAᰂ3#fsԂ(lmCY}Wxs*o׭fuY?ݙ˱Ǡx(GWnLyNm0;b'N(ҿ"_m|y)kxc;K 3sͧ|=|fns6I6~![)|t!Ĺ.MTZbOB)Yr𯪌?MaP8!saa̧9fc̥,Yq9̥c}#.ywo78nw"Sͥ-=2 gN9X ~J kG'jB캴|=5sGRh\e6baWHxˠ[;r"G C=jž Ԕݞ<|Gl{϶-1RAq#L#qeE,Ͱ"xaW"\GYHǥXƅh0֬]J `9` # v;E='Htdk.b;/HȢ!05jhIK v@kԚiq?/RlIJbċvb%pI, ..јcfb!Jx Jr"6i.i:it馚iӦiNZLӍ&تn%Eq[l,JݛUYnU, nv=H"oel<ǔqwJ+?VҎZ|}f;{oYPz+(JNcُf&;UI.=cC*Qgh%E,5pi% r ɶ鴜CYe*;k>0ĸkQrc-d m}&ljO*;+WcauYyGXmF G1R r UyO;:ۢMQح{!s54Ld1%)ty %#k?kws{LAgFASbXx+gd:66ڮӪZwK4h I-'X;7vw`aҁP+ 9Xy(Hɩacדdި)=tn67C2s 3)sxhPZx)$66+"e<<wz32ߑ l;fͯf<YPoJd8%/#pgUmO>ޱڈVLmW.o1r9fO^&lES [v}9^Hv;ti1qQ\`$ 1U%Jb a,ܹNNB8_NYoM< ]g,)w(m$;=Q/u1eRj"njq)+gMCTzFPZ-6ڤK7uG:̖xg "moxNlC8lB 1iY,\"HSzҷ SQ6 K'~kVO _&=5SI5TRT1UI%%T0X"B8kW\ kd$faO9d!,)9Y馚ji:it馚iӦiNi:it馚iӦiNIn[cvT9tYéJ*1N.:eL3Fg y~TtnPM 2R^*ռP7a &(cD-An'lov:slq ?lvlv]EܪoW8ZDŊ&ʻX{>x޾؝ݙCQZ]FTQ1DB%dP "UTFۖĶͿrYriq Pk1kr[Q,8.Yܚ˥lGu.iNjt$-;c`_]݆OTVI2) jpilot-1.8.1.2/docs/jpilot-prefs-6.png0000644000175000017500000001515710445274001014330 00000000000000PNG  IHDR2)sgAMA a2tEXtSoftwareXV version 3.10a-jumboFix+Enh of 2005050103IDATxkPUDADA@T@jhUl$S&A<5/tvf8Mƌ&1y5FD DE/HgC[걶ʭ >V{o;m5;,0 ]a1 '3`0^k #A[]YvbVc7~f93+\r4zau 2DYjSLo95e~Zlr鈘̎=A8;1 )7kn8y cy=u#^ o'i)H7b8i8S=`ozǑ{hӛk=.۟y8|^εms$HӑX9؎L4h.ȃGh|0b+Ӭ G]içl>uvl~I}O=0"fF(4yʒ݊\]p P!@i FP!@i FPJ )**U\]!Xh|K9nnX+*iKϯ|ϯa'*/i!P]ymΛյpWTҖ_naBl1ضmtoz0R]}UpWTҖ_yW7~z~1L)5>i-+*iKϯ|w011Uxo*"٩{=ČVg$J7δD Ǻ9zÇ3Rrի6䗺`sO{B0-έDGVX]]vؖ#Gx;s:}voIiioo:ztӱc[._α?ili"o۷ݿ]!=}}j2M%"j\;9 ZN?+ڵsGnNOwdU{lux8X̙O_`3gQ1cf[NǯZ$$Svt2|Գ(+2dlYYnppTWb0t呐6z㴵ٜmO*D$# .n޽fY0rz/^<ϯ^o裣%%E$9y=''Oڹxhĉ# "0`9^^}n=tV81l銣PQQP\||ڴE`tlӤsB&'gwK˽>}>h@iiiLsss9sNn{xxܻWwku: pMMN80zom 鄄|?HZڛGϮ,hj?~!cEݪ]:x1^S%%'Etnnn+o(OOMNB0gB˶ E$6~B^ߜ+ <"b: GnnnnӧWgg4$0pqNiioFDݼYmIeeg >3מ mm+_!wҦ-[ì/>~+g>{VBii#4tVƍA} 2ڵs#Gjr匱YH읖c٘i^[lldJU&%M/.l'**$(7)ix{5ڿFForPD,`sFVSxrrv=kK55Wp„霜k!4hezY9&0Y!XUuy"2!? 1t>^DCCMN:[]-ܸQ|n_Hss33!!oܸXRrK>|֣ /"~~j˱ Ddgjg <[vvdh6,ܹϵjdf~0ztСN]I]zvذ "2oj\UUabrsSlJݱl̎4]ftط_BNy'lf ҪM[^,GVNe< ":AD imm6l6p[޶,s w=ݓ&=?BoXãe2wd="fl_Gu؟VU]rӧO6Q[[ٿ`makH{wľG^^<፛ªDN}} 0a}miݱl̎4C-/ LL\FD̸z5WDG`j)c٘n^;1k3r3+۷ Zfogbίٱ#s֬qk̟9sg<؜ͧöSmmQhjPRekx{)r+4Hvcȉ?~nN} Rﹹ[颢<~OAA-!?7G$꽽MÚf}>iO',l# /N_Lӧw]t" ~s9FCtNXz:Ns1"hjkVW=IDbc`}'4ի#GN58lX)G'(;{ץK_kn;َ5ل]vnjq$jկjw6nٿotZj)挶p8믷 V}@@]jω~OO!CXiґ#|wڧ gΜ̽˕z~kbƙ v?Ԇ&=5?C:UuwnwǺ ݉{WTҖ_yE qO{`Ox .qvՉ}:s&.0RAJ#(4BAJ#(4B ס'j36?zQU;oo6^xe_p^rk6i?Ubܬ7dެgKEdժ' oiiihhھXYYRS۶WW׵o6ӟ"2o^}mϋ/&lܸ}i1 `Kz:-uOW 8K:qpO33 .e^Kfx≉gϖ|wy]QQ~}ʡC^x!N^x!έ_RQQw [׭KY.MU*)>fPvqHEk~_}d MJ&"}-w2)izqާnk'/Hiu"m8n ޲堈de-X0tCקDE>wSFN{j?z㏧OȩSv9TS_|JqJ55UF Ɩ~<Do_|/##ga>wR9m9vW_} ֶln֋ --ڴ+>),jwow2e3k'X%@M۫qqc鸸qW\Prxk//,!!J +Wn..m/gTTT."S*, CCG^z))=7_]}r=UUwoq2eԅ vWTTar--zOOVi [8\3ܱآE DƍmҵŋtsӥJo?hQ5oެݸ3'7Ѿw\мu!p>--چ+pٲ9 "p5.T޼Ykϋ6mN>$sŊ'_Pp1{׭KqJaaN6 /Zige?'>^KGD ILePd7{9?UTTG_dODr޼X??N`Gvt(7l8Yxa`u].:4VK]aif FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP!@i FP9˳BpnŊM (4BAJst8**{]aDNΫtg>0FP!@i 9~: OrWD z!=|FƷ`!.~}{'D `Dkܵ`@KxyihhںЭ[u"<--{0~|qlz/^<ϯ^o裣%%]'xqOʕ…N(\… g穪{[?9g8ڵ~E]Po( [dd-E$+h򬬋"R\\磕DE&%Moᆴ,~  ܬ u%:NjccSwTr]ǧ߂39XTT."S*,`^^YBB6 z` G7>ޱ#sٲ|BCC֭,}E׬~fƍuK˳SS7O9.(4BAJ#(Gd#K9ի>'7 P!@i FP!@i FPGuW\Fg0{c׮]]vܹ+ @M]*4BAJ#( 7 MtIME <IENDB`jpilot-1.8.1.2/docs/manual.html0000644000175000017500000005720310445274001013202 00000000000000 J-Pilot User Manual

J-Pilot User Manual

J-Pilot Logo: http://jpilot.org


J-Pilot is a palm pilot desktop for Linux/Unix written by:
Judd Montgomery, judd@engineer.com,
http://jpilot.org
J-Pilot has been reported to work on:

  • Linux
  • Solaris
  • HP-UX
  • Irix
  • FreeBSD
  • PowerPC
HP-UX J-Pilot should work with Palm Pilot models 1000, 5000, Personal, Professional, all III models, IIIc, V, VII, All Visors, Sonys, pretty much any Palm OS device.

01 Feb 2002:
Palm OS versions greater than 4.0 cannot have the password set on the handheld.  This will be fixed in a later version. 

USB Palms (m series) and Sony Clies will work, but require pilot-link 0.10.1 or greater, which is still unreleased at the time of this writing.  J-Pilot will autodetect the newer version of pilot-link and build appropriately. 

Updates

This document was last updated 03 Feb 2002, for J-Pilot-0.99.2. 

Purpose of this document

Many things in this document are pretty much self explanatory, like a lot of the text on how to use J-Pilot.  I have written this document for a user as well as someone who is thinking about being a user and wants to know the capabilities of J-Pilot before much time is wasted downloading and compiling it, etc.  In the using J-Pilot section, I have marked some things with "*Hint*" that I think may not be right away obvious to a new user.  If you are in a hurry, just read these.

Installation

Prerequisites

  • GTK+, and glib (installed by default on most Linux distributions)
  • pilot-link (comes with many distributions)
  • pilot-link > 0.10.1 for Palm OS 4.x USB and Sony USB handhelds.

    To compile J-Pilot you need to have GTK+1.2 or later installed.  You can find out what version you have by running "gtk-config --version".  GTK+ requires glib.  The glib version probably should match the gtk version.  You can also do a "glib-config --version".  You can get these at http://www.gtk.org

    Pilot link must be installed and working.  What I mean by working is that you can use pilot-xfer, memos, or some other pilot-link program.

    Here is a visor USB howto I found: Handspring Visor and J-Pilot guide
    The HOWTO is also relevant for the clie devices.

    The pilot-link code and other helpful info can be found at http://www.pilot-link.org/

    If you are installing pilot-link from RPMs make sure that you also have the pilot-link-dev rpm installed for the header files so that J-Pilot can compile.

    Compiling

    To compile and install do the following:
    ./configure --prefix=/usr
    make
    make install
    jpilot
    ./configure --help will list all the options available.

    make uninstall is also an option, however I do not recommend using this ;)

    I have included a spec file so if you want to create your own RPM all you have to do is "rpm -tb jpilot-0.99.2.tar.gz"

    J-Pilot was written in such a way that it should be very safe to sync.  There is always the possibility of something going wrong though.  As with anything else, backup your data if you cannot afford to lose it.  Just make sure your backup software doesn't destroy it first.

    Serial Port Setup

    When syncing, J-Pilot uses the port and speed settings out of the J-Pilot preferences screen.  If the port is blank then J-Pilot will use the PILOTPORT environment variables, as does pilot-link.  If these are blank also then J-Pilot will default to /dev/pilot.

    It is recommended, but not necessary to make a link from /dev/pilot to the correct serial port.  So, if your cradle is on COM1, this is /dev/ttyS0 under Linux.  You could execute the command "ln -s /dev/ttyS0 /dev/pilot".  COM2 is /dev/ttyS1, and so on.  The Linux serial ports cua[n] are going away.  You should use the ttyS[n] ports instead.  USB ports are usually /dev/ttyUSB1, or /dev/usb/tts/1 (for devfs), but some devices use /dev/ttyUSB0, or /dev/usb/tts/0. 

    You must also give non-root users permissions to access the serial port.  The command to do this is (as root) "chmod 666 /dev/ttyS0" for the first serial port, ttyS1, for the second, and so on.

    Color Files

    Make install will copy a few default color files to /usr/local/share/jpilot/ (unless you told configure to use another prefix).  These will be selectable from the preferences menu.  Also J-Pilot will look in $HOME/.jpilot/ for colors files.  They must start with "jpilotrc".  If you want to add new ones, or modify the current ones, just put the files in one of these directories and they will show up in the preferences menu.

    If you create your own cool jpilotrc files feel free to send them back to me and if I like it, I'll include it in the release.

    Use of the JPILOT_HOME environment variable

    J-Pilot uses the JPILOT_HOME environment variable to make it easy to allow multiple pilots to be synced under the same user.  Just set JPILOT_HOME to the directory you want J-Pilot to use.  Be sure to export it also.;nbsp For example, I have 2 palm pilots.  I can sync the one I use all the time into /home/judd.  The other one I can sync into /home/judd/palm2 by using this script:

    #!/bin/bash
    export JPILOT_HOME=/home/judd/palm2
    jpilot

    This is also handy for syncing xcopilot or pose into its own directory.

    Oops, Reverting

    You can always make the databases revert back to the last time that the pilot was synced.  All you have to do is "rm ~/.jpilot/*.pc", or ~/.jpilot/*.pc3 for version 0.99 and above. 
    Deleted records will come back, modified records will be un-modified, etc.  Nothing is permanent until the sync/backup.  You can do this if you make a mistake, or just to play around with J-Pilot and then delete the changed records without syncing them.  For example if you want to restore the addresses to their last sync state you can remove ~/.jpilot/AddressDB.pc.

    Also, from the preferences menu, you can choose to show deleted records and then click on the deleted record and use "Copy" to get a copy of it back.

    Using J-Pilot

    Datebook Application

    Datebook Screenshot: Download full documents with images at http://jpilot.org

    Viewing Records

    You can browse through days on the calendar for the current month by pressing the days. 

    *Hint*To go back to today's date, just hit the datebook application button again.  The application buttons are the 4 large buttons with pictures on them on the left hand side of the screen.

    *Hint* Page up and Page down keys also work for scrolling through the days. 
    The Home key takes you back to "today". 

    Deleting a Record

    To delete a record, just highlight the record and hit the delete button on the right side of the screen.

    Adding a New Record

    To add a new record, first press the "New Record" button on the upper right hand side of the screen.  Then fill in all of the details of the appointment and then press the "Add Record" button.  New records will show up in a different color.  Once they are synced they will be the same color as existing appointments.

    Modifying a Record

    To modify a record click on the record in the daily schedule, change the details of the record, and then press the "Apply Changes" button.

    Address Application

    Address Screenshot: Download full documents with images at http://jpilot.org

    Viewing Records

    On the left side of the screen there is a list of addresses.  These can be viewed by category from the menu above them.  They will appear in the same order as on the Palm Pilot.  You can resort them by clicking the "Name/Company" heading.nbsp;

    Quick Find

    Just type in the quickfind box the first few letters of the record that you are looking for and the display will incrementally jump to the first matching record.

    Deleting a Record

    To delete a record, just highlight the record and hit the delete button on the right side of the screen.

    Adding a New Record

    To add a new record, first press the "New Record" button on the upper right hand side of the screen.  Then fill in all of the details of the address and then press "Add Record".  New records will show up in a different color.  Once they are synced they will be the same color as existing appointments.

    Modifying a Record

    To modify a record, change the details of the address and then press the "Apply Changes" button.

    ToDo Application

    ToDo Screenshot: Download full documents with images at http://jpilot.org

    Viewing Records

    On the left side of the screen there is a list of todos.  These can be viewed by category from the menu above them.  They will appear in the same order as on the Palm Pilot.  If you want change this, you must change it on the Palm Pilot under the menu in the todo program and then sync and switch to another application and back.  You may also check the "Hide Completed ToDos" button if you don't want to see completed todos.

    Deleting a Record

    To delete a record, just highlight the record and hit the delete button on the right side of the screen.

    Adding a New Record

    To add a new record, Press the "New Record" button in the upper right hand corner of the window.  Then fill in all of the details of the todo record and then press "Add Record".  New records will show up in a different color.  Once they are synced they will be the same color as existing records.

    Modifying a Record

    To modify a record select the record, change the details of the todo and then press the "Apply Changes" button.

    Also, todo items can be checked, or unchecked by clicking in the checkmark box.

    Memo Application

    Memo Screenshot: Download full documents with images at http://jpilot.org

    Viewing Records

    On the left side of the screen there is a list of memos.  These can be viewed by category from the menu above them.  They are sorted alphabetically. 

    Deleting a Record

    To delete a record, just highlight the record and hit the delete button on the right side of the screen.

    Adding a New Record

    To add a new record, Press the "New Record" button in the upper right hand corner of the window.  Then fill in all of the details of the memo record and then press "Add Record".  New records will show up in a different color.  Once they are synced they will be the same color as existing records.

    Modifying a Record

    To modify a record select the record, change the details of the memo and then press the "Apply Changes" button.

    Expense Application Plugin

    Expense Screenshot: Download full documents with images at http://jpilot.org

    This is an example plugin application

    I've written the expense application mostly for an example of a plugin and a proof of concept.  The User Interface is pretty much the same as the other applications so I am not going to waste time being any more repetitive. 

    SyncTime Plugin

    This is another plugin that comes with J-Pilot

    It is a GUI-less plugin.  It will do something during the sync process, however, it does not have a GUI interface. 

    During the sync process it will set the time on the Palm to the same time as on the desktop host computer.  It should be accurate plus or minus 1 second.  Palm OS 3.3 is broken and this plugin will crash a Palm running OS 3.3 during the sync.  It auto detects the OS and should not do anything during a sync to Palm OS 3.3, so it should not hurt anything to have it enabled. 

    Searching

    Search Screenshot: Download full documents with images at http://jpilot.org

    Search allows you to search for strings that may appear in records.  Just type the search string into the "Search for" entry and hit enter.  The "Case Sensitive" checkbox can be clicked for a case sensitive search.  A list of found strings will be listed in the window.  Just click on these records and the J-Pilot main window will go to the application and the record that matches the one that was selected.

    Installing files to the Palm Pilot

    Install Screenshot: Download full documents with images at http://jpilot.org

    The files entered here will be installed during the next sync.  J-Pilot just keeps a pointer to the file, not a copy, so you shouldn't move the file, or delete it until after a sync.  Just browse through the directory structure and select the files you are wishing to install.  You can either double-click on them, or press the "Add" button after they are selected.  They will show up in the "Files to be installed" window.  You can always remove them from the "Files to be installed" window by selecting them and pressing the "Remove" button.  When you are done press the "Done" button.

    Preferences screen

    Preferences Screenshot 1 Preferences Screenshot 1 Preferences Screenshot 1 Preferences Screenshot 1 Preferences Screenshot 1 Preferences Screenshot 1 Preferences Screenshot 1 Preferences Screenshot 1

    Locale Tab

  • Choose the character set for internationalization.
  • Choose the localization for the short dates field.
  • Choose the localization for the long dates field.
  • Choose the localization of the time field.
  • Choose the first day of the week.
  • *Hint* Some displays will flicker with every change of the clock, so you may not want the clock updating every second.  In this case, choose one of the time settings without seconds.  Then the time will update every minute.
  • Settings Tab

  • Select a GTK colors file.  J-Pilot must be restarted for this change to take effect.
  • Set the serial port.  If this is empty, then the environment variable PILOTPORT will be used.  If PILOTPORT is not set then the default of /dev/pilot is used.
  • Set the serial rate.  Some computers will not sync reliably above 9600.  I am not sure why this is.
  • Set the number of backup copies to keep.  Everytime a backup is made it will go into a new backup directory of ~/.jpilot/backupMMDDhhmm where MM is the month, DD is the day and hhmm is the time.  Backups over the number to be kept will be deleted.
  • Set "show deleted records".  Having this box checked means that deleted records will still be displayed as a different color.  This can be confusing at times.
  • Set "show modified deleted records".  Having this box checked means that when a record is modified the original record will still be displayed as a different color.  This can be very confusing at times.
  • Set "Highlight calendar days with appointments".  Having this box checked will make the datebook application highlight the calendar days that have appointments occurring on that day.  This option will slow down the application noticeably on slower computers depending on the number of records in the datebook.
  • Set "Use DateBk3/4 note tags".  DateBk3 and DateBk4 is a rewrite of the Palm Datebook with added features.  Some of them are implemented in J-Pilot and will be used if this button is checked. 

    Alarms Tab

  • Check "Open alarm windows for appointment reminders" to have J-Pilot open a window when an alarm occurs. 
  • Check "Execute this command" to have J-Pilot open a window when an alarm occurs.  Enter in the command to be executed when an alarm occurs.  This has the potential to be dangerous if an unwanted command is executed.
  • Conduits Tab

  • Check which conduits you want to be executed during the sync process. 
  • Quit

    To quit the program, use the quit button, or quit from the menu.  You should not quit the program by killing its window.  This causes a harsh death and the cleanup routines will not be executed.

    Sync

    The sync button will sync four the main applications and any plugins that are installed.

    If you get warnings about the palm having a different userID or a different username than the pilot that was last synced:

    Every palm has a username and userid.  These can be set by using install-user from the pilot-link set of tools.  If you changed the name or ID and it is the same palm then you can go ahead and safely sync.  If it is truly a different palm then you can still sync, just beware that any records pending modify/delete, etc. will try to be modified in the new palm.  You can always remove the .pc3 files to prevent these.  You can have multiple palms under the same user by using the JPILOT_HOME envirenment variable.

    If you get warnings about the palm having a NULL userID:

    J-Pilot cannot sync with this palm because it looks as though it has been hard-reset.  If it has been hard-reset (cleared) DO NOT sync it unless you want to lose data.  You should use pilot-xfer to restore the palm and then once the data is restored use install-user to create a username/ID on the palm and then sync. 

    If your palm has not been reset, but maybe just has always had a NULL userID because you never used the Windows or Mac desktop, then good for you!  Just use install-user to add a username/ID and sync away.  i.e.: install-user bob 1234
    You can type install-user on the command line for instructions. 

    J-Pilot Sync Daemon

    I've included an additional sync program called jpilot-sync.  It does not need j-pilot running in order to sync from the command line, or a script, so it can be handy for network syncs, or logging into a machine remotely.

    Backup

    This will sync the main applications and any plugins that are installed and then do a backup of all databases and programs.  It will only backup changed files, so the first time it will take a while.  Subsequent backups will be a lot quicker.

    Restoring a Palm Pilot

    This is not part of J-Pilot.  J-Pilot stores its files in $HOME/.jpilot/ and $HOME/.jpilot/backupMMDDhhmm.  A symbolic link of backup will be made to the most recent backup for convenience.  To restore a palm pilot that has lost its data you can use the pilot-xfer program that comes with pilot-link.  The easiest way to do this is to put every file that you want installed (or restored) back on the palm pilot in one directory.  For this example, a directory called backup.  Then you can execute "pilot-xfer -r backup".  Do not install applications that are already in ROM on the palm pilot, such as the Address.prc, etc. You probably shouldn't install "Saved Preferences.prc" to a palm pilot that it didn't come from since this can throw off the screen calibration and make it very hard to re-calibrate.

    Do not try to use j-pilot to sync data back into a reset palm pilot.  It will overwrite the data on the desktop with the empty palm pilot files.  This may change in a later release.

    Plugins

    Plugins are shared libraries.  They should end with a ".so" suffix.  They should be placed in the ~/.jpilot/plugins/ directory, or [BASEDIR]/lib/jpilot/plugins/  directory, where BASEDIR is the directory that J-Pilot was installed under.  The source compiled default is /usr/local/ and the RPM default is /usr/.  The BASEDIR can be changed during the build by "configure --prefix=/this_dir/", etc.  Once the plugin is there it will automatically appear in the J-Pilot menu.  If it doesn't, then that probably means that J-Pilot was installed incorrectly, or the plugin isn't compatible.

    Feedback/Contributions

    I always like to here feedback from users.  Sometimes I get a little busy with email and my paying job, but I should always respond.
    If you want to contribute some code just email me and tell me what you want to do, or have already done, etc.  I may like it, and I may not.  You are always free to do what you want to with the source code.
    If you really want to give me something for my effort in putting together this program.  You can send me a little donation.  I collect coins from anywhere, anytime also.

    Judd Montgomery
    P.O. Box 665
    Sunbury, OH 43074

    FAQ
    (Frequently Asked Questions)

    Q:  Why is it called J-Pilot?  Its not written in Java.

    A:  Originally I wrote this program for Myself and my Wife to use.  The J was for Judd or Jacki.  Not much thought was put into this.  Then, out of the goodness of my heart (ughh), I wanted to release it under the GPL.  I asked around for some better names, but I didn't come up with one.  gtkpilot would be more appropriate, but I hate typing gtk.

    Q:  Why do you give it away for free?

    A:  1. Because I can.  2. World Domination.
    I would like to see Linux, become the dominate desktop both in the workplace and at home.  This is one of my contributions to help make it happen.  The more people that use Linux at home, the more I benefit from the hardware support and commercial software that will become available.  The more Linux/Unix is used in the office, the more pleasant my job becomes.  If I drove cars for a living, I'd rather be driving Ferraris and Corvettes around than Chevettes and Yugos.

    Q:  Are you going to Gnome-ify it, or KDE-ify it?

    A:  I don't run KDE, or Gnome, and at this point I don't even know what it would take to do this.  If someone else wants to do this, that is ok.  My only requirement is that KDE, or Gnome isn't required to run J-Pilot.  I take pride in the fact that Linux/Unix has many window managers available to use.

    Q:  How do I cut-and-paste?

    A:  Cut is ctrl-x, copy is ctrl-c and paste is ctrl-v.
      jpilot-1.8.1.2/docs/jpilot-prefs-7.png0000644000175000017500000003211710445274001014324 00000000000000PNG  IHDR2)sgAMA a2tEXtSoftwareXV version 3.10a-jumboFix+Enh of 2005050103 IDATx{\u?9\Ux/*femIZmumkn~M[f#"& " W9cp\Μsp^G㜙m漙3ٻw/u،3::-t_|SP΋/tWjjjjvkGX1`ؓ:wdSIRŃ 0 a ] @ c02dKN]`!y%(2bk7h ILBȬ]jê JLvIa"Tjca*`3n=?ο"F A=APzR_Z K6iw[E#Y AvZټY[Aѳ ڡSMGTho|WGg*70=s;='I3g&ZFtFJwe m`4bZ8 F}Ikwb`\ho|WFc'nJA4J˦9bh=+XrgٳٖA|p̊Wdl|P!tVDQ?iӒ#57.dո_ZڪmDG .;|6߿>;{̖Dlv :xpӡC&UZc.nMRE9WMVo6&U33󳴴)P9~$7n`NΥȁ՚7z%xC6ݵMܲmᲲ*"ڸqqzz!s-kWfDDӗ_i#(&&l ô铓Sؕ`Ec9883 sIa,4,ܻ&jNNs޾ȑNNѝ;-UWi4ZnFsZða/>;{wSSF ٫W?U48:$"FCR<^]&p11zw(-m\vaذ>> y{pˉҥ%%DV;qyi{7p4팉yEj@Ο"5j!]jkk%fa'N\|&{{G"jhakʴUѕD{x #LWXӃO*-=?֭zуjȐs--~UWwڵCNdRHwJխ[ %G?'=XIhZƯw WAyy7cWōvɡ&L0[aaիU] \ݻe{oQo< 9W{իyJ_!EEeckk,a9!.7/ꮱ7jZoE+* 5{ RSsUI!gnmRrwrg!]IDCJ5|/7bc+Wrw\EWvG8fLY/^͜gwl0"#?fe|GsKgvkPKD NzodJJݪ ))9,]=s{ԔQyt!k.o' ~tjqq]#ؗ?oju:}t"F:ر88x{^ 3{ب׷9;GFhK.]:Vju#F<%SN`69ļ_/Nx13XkZ[ G4Fդh&5 Um"Q!]y ;\ oߡN 3t诲v\x3k+p0^^]1gIm`׭ҥw~5Gr/'UW_"\߾T-wH[[0 ׷yzG_yDϜN888 NIGN³J(/?W\|T Ȁ-8 vnH)x @Ռ\ tbSx#akyb>#T        ev֡|{l`ݺ'lяÌ^̎cdžXEcoܸk*b-[tڊ d7ôi#~;nN/T0sE>+XXSdh4D6x)S񏴺&77^Ԛs1V/g͚ԎbG[7Y"?ӧEVL"_]cj:?B\Km3m;vk"/<:kX6nܸ8==7,̏ٴiߍDԳ…1~z:eZZVxx_1>ݵMܲmᲲ*U/==gѢɻveFD:}1?ܜo?{o{dM4'F/]UӮY[o}37.fgmWϗ_~H_hd''Ɩ-[߼Y/_ELLCik''{XqWk'."R"qX"^ӭXODWlܸX~ rE7c*f%NN=D"tNl)<.^~~.+*jRSGG7/#w&?MNn?׬I0gG ֭jjnQ@ׂ1kRkRSѢE׮tmˋMs sƭ~z;::\\)6u޼~:{ZmO(8x܄ Cϟ}'_E|˷57)6$pa5:2ƒ"q+v+<r.Ѣwx E"tN+Wd.F:ULD'O^x(vMhh?oD|Da_ᚐ0IR*ZB"t麝ĉ"vw**+ۻyurr((ZԐ>#[eW8Q4g8U_Y̢!+Jdq&,U.U1kƒ A0))[HLT4@Y͠ rAAW h4{Z ַÐpO=z *,\߹aу+* E:;;f Tܟ*6oN Jv,*z[Y>jT3hn))u+JjdEt8w98(cL0Z'QhE "XHd? k+;IisKWz._Gٴ)]m瞛8[UV֮_*v(h?}!zPpa-ɓ P\j6HH ا(< Ri!!!!!!a%P5Lf6n\Ͳ v RORt2&2L d,D >FI`9֙hIcɒ)k֤65;VQ(:CܹQ>mmLkw0 ?ӆ `ѢXIyMMÕ/5Tä&2:R!)8֙hؠCDO_S7ʟ?BYYe}}SFF!IP3 C..=4$>ٍpK"kX+&6jCFg@j:$Sj- ?3CB%'d׈Pl6۷6RjQ2̉#0#tH u&ZЫ B31 jzN+_yQ$;ksi0:R!:Xg%Q>;С_RS3^|qDgξ8mM}&y.(țFSOv|9qDfCJ((JtXg%|֭?ҫO 0ujP}gJL֦oi{ٹ3#!!̙K7v'Q>׏̜8 3c!%O%:pln%΂&ZUC*-P5AP5AP5AP5AP5s`\\̙9Q+WeWCD{nڴd n6jbゃ2ۆKɥ5ڀƏ471qΟԼyѦ9:1RXX1poEEf̈z>.n,43ONN={rRS3#JE+݀?}FbEEөZ4+05שS/cTԓ'/p˧Nky&Jvn/bz}FFaTԠ~:j~!yd2)m-ufU^hSW-zJȝHRHHflA|ԨvG44BC +BB||r VYYGwSI>=⣏~:{tڴǍ(Upʠ D)scX4EgʖjaB^F=t^~V/\a#GV/eS9hMͤkJur HSͨ?R5 O?^A>5+g1N'{%ث3{cFl찢򈈠ҷڶlٶe˶ۗkȏ?湻|בz'FI~ho{:ShWy.\c7$[*$OF4,Lyd ufU^hSW-z=Hf^ njj]PZXX1oree'$Ħ9fE-)quѠ se))?CkΝ)NT-U~%Νfl^^=/#M$ %fdxyp0O[+ԍrКIWyu|*?M5у(zDfg1?*MӶ#"L nNsnެ6ss*Wyz*NGޣDDiM"egNGNkb^|O"&O%"*L-ד}+yT[K[JֿOҝ;4i,8I:xi *ّ++ Vz1"DcIDATZщ^Q.&NӋ/ӱÔQS#tdgGWJL^ *ߑ.Kah#h1"AP>Fh<.]!lmTn۴p MxΝ?vo~"nwI;V25-(im{%DK)Q/T_GCG@֬#_"ZGڑF{H'%ApO*=5[SD4=fAoB %G_Kx11/r;Q znϣ/ModN/?Xi" ͫR7hMySEz5QW9=>h(ھ&+m$"9"gH_f*@ϿDǨFɕv[I:]@B=?GI%;ED3l_xWدrOPsf!C Px22IZ\QJz':?Ue)j4&* H2MTa賯M=zi4bYZ#RÔ QP-r-}[O#F QڙOӞT Iߞꔳuѳhb,6UؑŢ6/FU5/夨9sƹ9Vy0mTn$Ir) V#4"i (!t )t\iuCDgV:F|~Mwqr †S?jj"4{+ݽv/8j,}F{'`:J02r|^URN:}gh4N/eL7SkG3'Sk |FD<=(ّ3}H_Lo\] wWQd4Q`s?CϦH, d,9;}!*p/ nfN+m[Aŵ7@XI;^_LEF{'v_M5^$U lG<;la/>W|r3>V$*UCUCgaF@ՐTՆ '@Ch&Mg~K`'ff;cv俺zuʆ g >~\\z_岫}{£VTԤa&dR.D4}mTyȤ]2)(g" H6!B7̤ 5& zL `,@d3!Bwɤ 5& zL `,@A&2)(F2)|F`uKQ-dRPdRL `,@A>li#DD|~Il(g" -m$蘈2)~ 8Ȥ@nq׍ @!Y*ƍ/_<~z! /MV|KQ@UFt/6Crgꎢ#< I:fPRvr'?(a )ɩ~mTR]]o^jD[e4+AGR]]<`zꃩFGs;ba!K%P7q׿9r<qN.>/0hNW(„ st[h}cc˖-oެgwOK tuu4H 0/x6lHx-OOD\}E[%Tԩ p_JR]>2>GFdPC)^dD/z% JWZZA|se'E&\͉@'*5H L^p 0a UUk֤ 6LJee]rr*?j SO*_2;Jt %0 u繐S 3?gg^R[%PxiUXBnn5!!}S!p\"~GӎM0z􀖖;6ȉ`PK+Ӷ DtDI lak}i&M4Rt9?ӯ=H )<,r ]QqKǹDOO`6v$A6aV3vvZl5LifF='Qyn I. t${äuYF8K%Pฺ:ΙuYUUu=.>/0hN)„ G "1cf%l͛uAAD4j[@ᾢ-}:U!lBTNtf$PHy dK:J@D+V3 :t["*, %'E&\͉ fa~4!ac ollݲe6lΌ3g.3mmڴOj_VWz+ G>لȈt nj$ )s!Cx@:j }bcn9H 綾&ߟW\ לި*/F:(ep(vg@@,@Wp}2\4#Z?#' w}h(dfN>|x3g. _'P G܅O<.P=  @ &P`JM|鱢N(؃ROsD !2Mpli_ȓyp])8!`CE RS?h"s@AE !2L*)q  D?.P=  @ %Pv@CF 2t <;                                                                 fgt.hU o5 ͒%=AP5AP5AP5AP5#tM;,7b5;s:=]GϜqT AT AT AT ATٸq+UDL[s#G~vD %'+L!b9oBoڱدAOOE&;976lٲz"ڸqqZZVxx_ɹDD={:/\K[駇JJ[' =A UO(HJyhm׬Iݲٳr}gvnsMBAp%]-$$'ǭ?q_swweׄID=Xx!BW]Qq`%6vFӾFMa8WW9s8|Ԩ "3f@AA̎yye11r` +A+ikc:}5G&=-[m瞛8[UV֮_m#!"Tyy֞=>!!!!$ݔ ]0;A !!!!!!!!UWvFL&v;vBw_ZdP'EUCUCUCUCU3^RqtIME !\IENDB`jpilot-1.8.1.2/docs/jpilot-datebook.png0000644000175000017500000016552010445274001014636 00000000000000PNG  IHDR;bKGD pHYs  tIME ! ^ IDATx}XWaDkhFEK*Ze+nm[[}\,vn׮hWk]Zѥ+nيZjQE5H(0$qtBz^vr̙2L}#fڴi)AA1R^z%  rGhy饗؛  %  J(AAP  (AAVSvkd2v<7{K}Na!C]GG"W:2z:#wABĨy0">pQ"V)#Zu9nV~h. c3nAN~"  HІ)qFw!nՠ,u;cΖD]E9s HNs[::hr-ZѪ%=ArBWpT0Ǚ{fv4[KA]PB!C$$p/r'PE ;*3BArA >UgsWK=<?8C_(A\z8wKj{T][{J>[F<  d-M23OgU[7j47r=A՜+#ZMowAJ8F B.\oB^z.6ߥۗPܧ4``O"r'@ ů({Aς  (AA<K)S  QP  dk^@Aq7ޘHɓF AAW> N  (AAPB! BAA  pH -_@4(lٲRzoq#F>=yg&HwsvVpEw t+Gu=븴ʕۥ'wx9| 8z Xz]bҮCb;Qݩ'  ]Ok65==1--s\H@/2?P]Z>q_j?#E\'Ozlt#(--!-mώ6̋lիc}Ibt+f' AA1ˆ OMCC-%+ l2kN02gN̪U]o 4?~~Ĉ4Hu y=7rzXXw9b#flIIc5*2Vڵk;{&'9rFe D#" rw H*۱رPy-4(GaP\\1u=z@qqELW oo=ؽ{ }ώ;ٿv\f)J.Zm&+9+]inF9f'vm> rbi A丣P`:=w꺺W //:5ԩ+Wn|Ń]|jm~=`ĈpI>}\,'$[Ey}" Ƚ]2|x+*+֭Eg?eï:ZBqqĉCw˫#ŋ5wmGV);w" ǎJO8QwdUcՕrۋEA{K%440-m:l&[vɓFVW[M<AA -\+9ܹ}+ƍ?.XɃmV2de⣆  ]N B! tb=AA: J(AAP  w cG     wAA:B! BAA   AA%  J(AA%  J(AAP  (AAPB!  (AA<] e(Ǐ;wO7&]x߈ AICՇx|;H&l6fYU** `  /wDBm NdBAaP [&* e9_ȌU@A䡓PēNh44MSEӴ($8L&See[GHA<^J(Q<%}4iJR(<ϓ^Yye؁fsMyGqei9qn_04ꆆ&L7dggZbŊf(ɔqMfɒ%+VHMMX,[lr ("f3EQ,˚͸& ]a3|q`0EG,sgECryd#3fDvF\.L#ȑ?1 [55R0~œر~9S#NrFhh`^.X*pCpp@~=*)2@@-T[]-a4n/T\\MYYYLm 秌 J%0J222RP򨨨ܘJEL#Z,R)-C\xq@XXHUU@[tٲWp3g>M欬BeFiLyNvf;_.0Ad>t97oRP}qA[_.|GX_߸uktk[M$IQ7[ѭpaDg&3gʕ}s.nZ}wRZukO'zyyY,7>+KZ=[Xx⭷VO?Uz{S>M&yyy?& oڼy?440-m:lRbqqyhӧ3@e啳g/W'&Fɻk8f[PH|kZ--;{̙cӟZmij?? tN]t~l@={3.9;'HII,b8'.bDEEs+CFXr'|se\]cA*wFڴDwG7$Z\FzZ4wf{FW_>cAA۶j9Æ5l!Cz'&Fm5y͇ Q?oYy淚ڄѣ =hPXNN1!Ņڹ|!;wnZvϽ튶{nի{&? UDܽ;EFFC EVE1#####"""J %%%dnNu(A"""AHJJaٳg$''(Af30C\G??8fJKK>}קX剿3*UwPϟ?+XoI/r=xŊiiӛݝajjfKI)1.neWc`=%Lyl۶BZ/?-M{b3/O\4^&I Iiv#<>-mzZПWĴRaüG/[6 uudx$t4ơC5G#?'׺X#ǏH/[=y":U5lXESQTT]0б<9 RlјJ40)))jZR ^oXH^BDQ\xqff&Eqjɍ7huihRؖA?[ }B溸47!aTZZvm McK{l'NP\\a: vz18zT!QΞLWZ,V3CKHKK |  ,N<ȑJ'׶Q9sҿu6rVo&TU]CE><It e2$c:RL`ݺu#ʩ鼼-[X,ZFbZ- eNboh4ʃOC{>|k3$y͸/Ks)kVz'^xa^(6;s5kr+*.?dΜU=t49sIl=0l:?٪v3k4 KH|yBrrtl#Vm(p4ȑ^?t?ロreR;wvڽY ǎثW=o@ My\r(l6撒BT*Cf)22DI?~zNGEQT(e'P/4wO>K[L]YinF9f'vm^/_|׬yvMrfS\&9$ZS!͓4ף|ׯqaD7B[v6…O㚚`Wblk >gFyYv=}0(-iŋݻVSu\bfظ{ƌ1ݻ3hqO!;w?Q6mV[ΝpF+<V̎Eb}}},͛iV{=E>k+Qrljl.i 6U&54i mWw): 7wbh4ZȌ0ƦH%d8<撠ׯ'8FcRRV-++3Ld6آ4lfq8Tw;4Ns>={{Aj 6͂h} wxJbxDD99F*_d /gY6##cѢEd/++eJ.]dPZi'==QUc{P$ǃ䞼tXB ɢ9-NQZYG+++QJr)...(("jh$dar;ąt_bA1wrb K.bD1 #(JJ,]iGydd$“v.':  })n-(S# Tr*,,N'yj9[n8@FIHEĔRqj!h4 `Xl9# LP} ]{-^($Ri40NvmtPTT->K'AA4 f(,˒ ;)LpA1hq옘Q ܪAANBN0LJi@J$M$ $glllYY8|'N4㸲ZAA@ zNg4Z-OD!Ų,QNF|q,GPt:b0rs/  J(|Uח( ^h@2J deIp<UyA  Hׇ|:nNnre### 99q](^P(, q99gq<AyX$!>~dbY6**; f'a R(dBi TWv%[^#|>fF`0|JV,K@ZG(pO sg;!׮s; 糋J( n9XK/IANN.G;=#cO?ذa…c"ܰaŋr(Z?e˦^c IDAT:ō;FQw) te"#9rnr\nٰ;ʕ`>/;9_Lq?IÍU!]0!ˆZlo]]/ӂиuktv>Ն}'>}*Uat旝ѣ{OqiI- ?~Y}cW#56|t/OZ<Ȳ@qV}˖ٷ" tev:嗅HWc`UUյ>[ }BKq^~y7nZ7n-"/<%AF78`\`PF (.h]rG%6-5뉂c'Nz3'fժ"_Q!]DF8tG6P!!ܹfJ%%+ܹE:wr -/O<_߶|lDѦRuX7qJ ֣G`BhunwVBqh6f3M,*JJ;x6Kq!BÆh<3X_fܹ>䛊 /n]$75Yn&6r,a"A71=zN>jv(e:݅tY2Z,x(Z}|F St>ju{ fgg&$q`T&@fllJ,> wѣÇ̝;QBx͸Z`8oٱǐ ]R۳gPEEG[o%644\}֢ٳLOOXn|WnW6F4X$4Ni(IrQAybL&xS{7nTegk)CN~'=}Q;9_Z橮>s&qwahM?B,rl0ZmeeeFFvҖyE) BVy/++3$=3sabb"NA8 |v9 URt:2OV׬YQRR0(4MKr!#""T*hX, DDmq+VuCÞx"Qgѧbb-,tf{뭧ygE =ztE 4etyϘ1a|kkm~z˗oyuu8Hd= >rOZ6##CPYRSSWXA ElQH(N3&ITGzՍ9vlƀٳG74N]j+Tƹr\|BEeͮф&$<}K$ٳ3>Dqm%@F>HWW8Iy}(SjjjJJJTTTffdn4,RERA;iZVƲ~'Oܼ7o6,R3 {q FDdh//yjjtjj4ϝ+{,'9~ \I Ξ=WƥF \[OOu C!$4 lRZZZTtQSŲJ("9){]0 EQJR'P*MHM5onذ}V-#c1WL;r}[Zj6mTmSꤢ~mnn~5LyM3.◷;fLdG oV֍vEj̳> tJBI ˲D%Klٲ/{ IEaDJ$U B߯wd>eEEFe>}cPշow)ĉj0.s+ɓFGyK9Ow]XBޡCtGw㢌okjOAq_Bq-(FcXʚ)'r,I% rVR` 0 P(Wl3*UQbr$''+Go; Z=?3xmH@ntm$إV{QQҾ8 ;*''hZ!=ID)e4q\GrJEB(,{?3e`2q3eʐϐS'OxBC/LGVۋ?1t;wU*!I1/}ɱ u ydD?q=e0:4ⲓD_[r?"4AqE^ll,EQ$BAiiiTT1#o'BQVVI?Oӑ#鍍}YbAAYAA9ۼfHP{O9&5~Vs"kߋ]I؇ $!22R ORt]1J nݛAc CTee% W/A"MrAI+'H4]hX,ZCAs&֮݃7ijtԝo9#z|'R*,r'-ӓ;' I?Q&,ABi{ۼ_Zd_F|r6ksٲV`ÆyRstEqq#Z}4(Mp;NBi5B!`0J&"##׭[Rh$3U$QR n$  n ZDZrvrGsVYz+s^HG:5"/rܱ .{7l-;qGBf`YVs" x^^^JJ$4MDD` ~DqG|%E٥"H9ԩC8 ~+Vpʔu9rC.O0n[U~Y}cW#56'' Z[|WYyka C._E c͔Y`j544nZd2]s^Ֆ/Ooܼyի|Kv>:x qc+7ں/ɩՆAjԇ4sciڛnKg}͎ww~ݻ:tuT rsޏaa}u wDBWqr@rfS\֢N^F±m ✎h4@%85km7&Xʊ7͉Ī$G(-A yXu t"!㄄t0o^ܷKۘ:d##+ AXZQ;χ *jU5G#G[f>?f'm gL Edz_0bDxKU4G\}+Zbk@>`ɒ%"9bcc  &&ѵV((ł A\ڵKrx\}{q˳/W?8ʕڞ=**ɩ[f~2==b_uoBoW[+ m6+Um?& oڼyo iid7vrv1YF99sNyرs-jFnt# ∬.Dd2Fc&2郞Sd"$ ED,]ToOƍwҫ#8Ƚ9jԣ_~Y݂t/rE=lw?O5;9!bP,@ ~zJΉSNNFˋ[hW.&M0 08 .\ ȽP&qf1ҥK׭[Sjժ8@B*66VTy v; H d.Oe@҉Μf͚GyDQԒ%Kbcc`EDqS<Ϸ AqW8I 0 B)&8>.Zh͚5qqqK(b" "D_^PqE:56}񁎉y_% ('666??_ q8)v9L ,ZxժU*))Q֭4iRYYYlld.t8׿׿JM\ֳgѴ in'¹sFV޽>uu}v?w=^pD.:4QQP !r7Q%Z1YIpa4Mvv6QWqqqaҤIjSRR*77,3\ԀZl6{uuhzǍ{t'/8p`϶ {)=8'^ye/eY*Ӳn ;{W^ƶu T`\%ˍ˽{@>ϟj!ݻ/XdjjɃ:ԱQQE9՚wzzA?9xp/^1 FXRS䩩ђu AyHps"xDILd#abV5!99y&M("!']ϦF9shrjuf4~~Ӧz8uRy8o^Ծ}C~4I6Mw䈩}MuAlit?p+Je`||D[֠&W*}} jS.Zԩ+;?"Hj^{I>N_qCG za\Ι~d U7ޘ!wUB@|||nnJbl6p;d$BX,gNIIS*f955쬬RocǪ5Jݯbǎd6d k+OcɓL\C(='GRȔ);Tfڽ{1y;yվ}C||Οp&:zBV q_jUHpS7}>6]x:o{ua/H(bNg4 FVWVVAf䝹82UNg2t4MsfGbi.--h.+++--9e+<<|эg!Cz]_UŭXwB/?:#]u­h29"۷{nG?Z[8V]^M#Zm^*Ayؠ:y}d,YQQQDDDDDAZ'yz}~~>_ڮ_#G6MgD&-t /u~I?1L1rVk!.n+mro˗o.}Bsύ=ٳNvŝN'SWXQqYҡC kl# AB7:yWqq1˲* x/++BtbbbTTٺ+C G\#K1hڹs#Ay+++ ˲ģeYBT*i&`2x AA"h435Xk69cYeYi8D~"bAg"tY1s>>^ޔh*yy..P֍^0SJ 7oRP}qA]]#IdHs'6Wj+C=Uꬢ^F WSS6 ,_|y\ק3Vg͆ v>ՆA=x„!vjZon/<ϻqW]fϿ?r\>~2Qn.8xdyUXݽ;Uf(yBBƍG $}/0 Hac˗'rvO帛зo /Dn.It1sB¨Z! CŬYQΚ~}>Iv_zGxxW$T!xM  eZFyi8t8`RJ?t49s)81s/$ȑ^?t*Gzb UTt% Oϻ""-Ν;.ymqiZf޴iGV-Z45J;󶦦.8͌JePU5)^3#]n 7nԿS`WU-3 ȝC'''eB 8k5dyllJѝ q':w}ݻU:N4M6(JE:l2L[+]ʧqHABV̹kW!HWP%%KKK*JP=(4MT*Z|ee`U  rOz>""BP&jjvM pϞݼ)fXn66Z@ijU`uufdH3\.L;Y`XTr\.;wZ' aYnjjwTp@*4Q^(H 2^^n%E˵Pjae7@APB5 EG^DD^@͍8iVKT*`DE=ZuP!!))Q_x=U^~I 7ѯ>^ᵵ v;vHzUuKŋ7%|R<]`HS]}իW:Y`h(SSs'8ڵ: Znʰ 4q\}P_v3޽~(@yq?.~JJJh4D4f͚ŋGEE9:B9E $(ʲ<*fV2MZ ޝM%%g݁ V('RiXxjgώL|?"JER9{L0(0LqqRdىidjjtp?q|tƐ!JKMC |AA~Lf L ܴZ,+(חZmWFiY v o?Hnd/|b@7MXoo|S'E;l6///G;Jua%TH)..NTfa,YI(F1##cqqq <2'RE1)))77bmOsYh4PC'O' 7OƎ ?uR75o͎?Y6 CC M e.^1AU`HHիu<0!!pq+WxaY&[SUWW?rD%TpܭxeQQQd2L4(FXVt:򱨨`0f(bDDҥK ;;LIzDEh4~H;++-3goCfeL~!O~f dnW;_(nl7 \>&&4uR-ܼ65YM9&>>nrՊrxPc, " u=]&O %TՑܜ<qjx8eddji:666??Dbb( Ba24{h{ t(DBI!09[XXò,˲FXjҥKKKKcbbbbb $:LI|˲ U D=f|ۛ2YY7"/Ep-3/_@Bʕۗ-zv 7oRP}q٫DWTt! HH2<< A5%LXRt(V "K?y1ĩS#\}-3\gZ~r]:U9'OV='.R<$tP(,h)TVVjlٲh"V[RRB\!"t XQQQ za$f8A񫩩~/O"+`j544nZd2] }T Waɍ6lp 7/~P֧[7=ゃV-UV^~FDn.8xmC[N%T+<ϓ@_ Hwy1PUU1+?J9ϸyƍ*zc_F'o߱8/)yp;w8boO$jΜII97nc`߶mzԈX[Q[YY㙷QsZJ $ ɜI_Pl6;33V\I>^,/[rKff&<000..^ :Ŝ< 7]fS`hJ&X\嚘QB٬neP&i(dpīj;l֥K4URR3 ƀ^Li'iiwvaa/11aGE-uVjl NQ`4}}IgGEEr++sk%A Jɔ؎H+BB$TDD rG*d2>T*y<_hh(qS?VAAMq}no8[ZZrP]tFN4 ֭dT*w:55 tɌ~QыzM99Y٬?|b8\RR+ `@]]ݻzHxm͚W@hؾ8~ ϓ7oR89߈JؘРSSc|}=Z< Ybb_vt[n6*@kvGc-NKPBD"!J(BAXL\J$/yddP(J~~~Ǐ?~JJs={!!!|>$ ;;֝;QƍW=z m;!9gtȓ:Ջ'Wܜ; mn>>~ DQ } 9z@\qWSs玫=r$SVO9w/ D烟ٳǪTFɤ29Ɔ [KHՊ1 4I̟?nP%V}5"'Of,YVYYs6X4vAt΢EbccJT*% # "{$.CT`AAAɚrssJt,V _+Wg]]cuҒ#YXpt-p@h3f`UU\^|Goj ]1|ky RVV ԛ:BPTKiI7PHbl6yt@ 7mڤP(ֿXrѣ䄃|me&@EE͡C .ؒ,$Һ^'ˉ" "$$$66V jJNN"i;t b-[ݘ  |ya ?zSĎ>YZk0x Ů]vnuف JV\EI-b(C"5O>>2$/r% ٤mrRinnnJJ (. PEv?@LFy5 ~?$}:-A 7-+P.>+**r9"Zjt**j)Jmaa֕zҤaeeUEEn ''R.AAkj곳8;^)&vc:7ѣq"Ap s#fguvzsb\\\3G0P/ Fad>zA nv쫯NUO^xBaccm?|ѡ+Ν>,?GAz pX,H$fy̼ vv+VX2`?:q;~&܋444XQQb1T*VꊚL$?sOcj׮D`۷YRq~<oYd2`ǎy[&jH_M򒕕~ b(]ҡU/=%=KBlsEEMM^/޺x)޽>޿ @h3f`UU\1j"ڥ봤H(\BB|>) L"eytt4 >{~@`I{S㤺ZqlVZZb>t޽<|SezZ0&R7oIQP\,۾'} Μ9ՁdTꢢe}T},wb(v^QShsa-rd[Tn=v#`nnxqLVo_Y=EPiId^]R(q8 +J6P(HFB @DDTåhH^Gp W^^O@t5}5_~BKuZ z=>B3N6$Ak+fSUU{t/YYuZ+yzji]HuPG{qqqK___777vQQQ<ٓp8\./(( ;wx3ADv^|Tưa.\.NKkggti ƍv!lǏя5=z@`3lX_ l *u_=ۅ>QQ -MDhlxzNKPB,]\\x}l> IDAT,۶XkkZۨ9-A 1l26 D$effٳgϞ=D'=C8P(H$'77WA6غUdrܽ[bmݴ9[}@z7סKl61)u3doo9c7 (ڋRyOwqqQ*D?IRB!h!%ٓG#H-\.ϗ...yyy喛6hO Ԓim6 J%J$>p?NTQPP/9EI䔔Rà  ,k#G. ɦI2~7n ݲe+ܭjOpwwڸ1t`':6xZZNKzxd" |>|2gT*y<ަM`…f/A^^@ b7Y8H -К@NRPZZEzK3mD5rMb޳855wZLB{tS-]%=]PtLHr@"DGG&\FGG,Z ɮYXXWPPpr9k8 AA1DtuZҕm.֭#ɟx<U@ BR(l6(??={(ʠ u*fϞsN"gT˦M"{{ RP4:[RRw rwwbYjzXoȔ)/YX2PZZys>ׯ` b5Z]^})TU_*`>ŋll*Z,w˗OpbXjD\XXnnnldgg>{{ra٠J(AĀ[Ba/TTT)O .T(DVR4%%%//S*d0$$l???bx&MM4#]{73fP*UGrvwop$:n=]xwgf=|8=]s8F[ۺoX,fL٘eppַš#Y,2iFiPk1AA/T!DGG B"|H$)JR\._nrqq3gd2Bw +W$-wwwJJgX,Gf[ܺUB [YfBx뭉BccvbUZ\٬Kni1277f02YBѨAGGܼԳfqrNHHm s&& aiib0Ҳ3sm͠JA%TxQp-[T*###IL"2333x<۳gÑdMmqqqDqܲ zݟSɚf},䒒Jԛw]3|@rDkkּ E4XTTrD"WZmkmϤIʪ**j)Jmaa[4  ~f{igJrDGG)9p8yyy%Cd"'͎T*2,<<+JHDX, $2]76vСNBa/7Lu%R\OOovr"#WYY{HZ:s\_w%/\7gocc#CVw¨Qny+dQx> ~fu;A+mܓ[#$Y"G*.P(RRR|}}===I}|||rr2  "H(-!  E $$D*r\J%˕cS X"+~~PP^^`022R7==15WW{[hkk;~^x44:tHLFծ]r**jY,JEUWתTDA_Azf_n8$F9;wdz켼www???Nr>^"(JRplvnn..'2lݺurL<O3g@bbȧγ4#۞޽%&f,^b1A=z t( ˖MCm{M(V=ցߝaaL&SRoip~Y{rm٠J(AͪU%KKRwww0áE$lG'`Npww_p!:~8D"Ye\.vssH$\6ZUUUEFzꭷb(z5ĉd Y"tR)=GQQ2::z۶m@bHH$?>VD6r9YD6np"^.C%DA1KI( \N iDTY'J 77WP8::^zՎ6m"")!!A&qܔXr@utsAA.BǼPdDkpG*::zӦM˖- "aJr۶mHrdDDB6MB NH(6 AAXBdMP^^QBD?%%%D6!ȓxd*'e:O.aBAk42ѦM'{ϟOd2ٞ={ 66V"yDf}||H   ] XoOI911/99977s܄g<**EDD`ƒ2<H1FAlZ m@,ԡZ:jѢE@Oy$R*۴(7""B*EoHSx9  !ڹU:)J"8::kH(JD+ ɶ-T ?>d2P(D"Qrr2}={8::JR AM@#6l#:vٌ7Ё6l[Zɠwh?tj6/yoIlL-#L\PtyJJ '%R%Od<:Բe4P(H$RJ:UiS"yOTPߺuD˗OpbXjD\XX>qiFSTU9r!+>[g8QKݻ3F%UEF&(lߐ)S^0e0r} _?  &Ũk\*NÇKKSU>}pU*X,ٷAvAq" Ch逄 X,&p$ "$O6xǘgffҡQD'K3glllxxxSS8Hr6-@? ֦FjunEWPښ/Z駿`…[/ɹ!7o\XX?^_[`ggvk } EEQj*<;CQnnƞ6֭Ȼ!! SPP3-[1fͫo1J &X̘*<"!!?J1Pg"V, T|6 \شy6L᳭>V}-lXlނu`TUp:(0 ,ј:X|#6;>HWPrʨ(2GBF$B at8IT^ >~m!{ 7 ֭O$jT+x5vv`gwk[FÎ@%p@^ C69^TWނa,*e\ mC[^B僂Μ9#\naa!˥ӈGc ɔ山Wj6>>G*:{ƹeeZtҲe㭭;4iXYYUQQ9]n ''Rk)=  ~lgRL&3:FunG/VW+1df>eYXX~@rII}8hPo-Hxm͚W@hؾʹ\HVmmNynP*#'j.[4 W`G:*h1ޚ)W.CܑڦVHشN+ d[;"HU5֘7f0eZ˱0-d@LUwwB6-rD"!Yd2=G<∈>ߚ~:s挟T*KMm6W>==1i>5m8##ѣmێ}鲲ӽ1ثO(cllrP->Њqg毧A&@9rС,,8 G(+:jܹ*+kwTT̝뫧d\1g믏`BN$˰f=p" N$W:w`ŇZ}mʼ @^M@x5y7 2ܼ& { ~k4\i{L[m1| 9 ꦗ_@rHI%oӁ. |}WB!I2N#YHyjjjpp{dd=\nzzD";~0 -k;;+V `2+WiPP Kp+̙>Jz׮Do۷Yk~yL&d1Dd52YJkVVf;y5ddȸkmmާ}hbgoor32^zϷtuu`qqŎ?w'%G* xsH!*}S}5_~DO~UWC͇@]]S5S0c\Ȅ?4`4jt'_)oѰ?5烇֘O֭PD d(|_|OOOOOO\N}s;mڴ)((̔:C׵k]kRc6L:G%%U0pCiiu1J/+*j6(,,6̹CVOxŋȻw/?>g 9#P(njXUU'i0'o[dMjw-/WVhVl147EQUUujƆKi# Y/b'8 v5 b|Z<,&7im7C& 03Ij'Ç¿ w|k4|6z5z6`GC9|@5@`'M2\2,==|E||||>ɏ[-7ҫWl0m˖Ȥ72UryS9k..~Ew^d2U*Z((.mӪU\]LJ.**߿?AZ j/njpXL>| MM/ߑb;T[^*̙k/w,QVo@EE_M3,) gf?L;zxD2~!eM=m4'xqqɓ1vhvruX|ĕ Hx x|>ё2=Tgu#:3%PJ(~mFrsT*%H%Nl6"99%L&JqAy`ܢ4'129LO2p8R H!V8 t:H(Mxjp4AyZyؿ tKv:yJ %Գ?8  χf   AA%  HףGBM*vٴ)e„@.W>}֭SSYD{"ّ#Nd!Ӧ055(;rBVw rwwbYjzX􆣣1bܻWnFFlZMI5 *= ZZr,-9d߫޽rqmllZMt 6֦Fj5]]T_hccxoH租7bWZM 0a€~N/秥6Y]ڂ~KnDvHU^٧ VWUSY4(WW+( XzY=x`ᰙLE*A''X,~㙕EhT() X,BHvvsrMrrrr,-9:`mmCMMEͪ'_^~װ}R[ۨRQ5@I}}m'JhA< X[< b(j8Blx R}@*XZrJAQkcݺNN6Jr׮S/\o[Yj xFFL 3U*M1TV ^YQQcXI tg/Ϭԙ={mss33zzd%%rkk3=8\0>x {#R H;{k;;+d\wZ+uJAƌ8L&ҒVSrynVo?^(DReXB`llbk`0O">ap@Z2Y5~ V\ڵaôsUꀃ%T PUkwoCjZQ"(,,6̹Wp֦JafʌYdYqCROkry==iba-d2DYXAA Ճ2ep>L&CJJ۳fƍ@opѮL&CRߟ ~:Ҍd݋j?萞-ۗcΎRQ\(ƣGȳ5gJEI.8L&d(299 lrM}a?`z5S _] ȋf'GAA   AA%  Hw{?A AA%  Hމ<V,Y AAIB͛,^hee*ۗT[۠'mT*N),,o\w/~w IDATi/8USAP11KIW!ޚw2 ''[Z~%IEEVXXp{)DheT϶%0LZMʗ/''_(yDݺUtt/M6/is­j55dH͛l nz 6AΠ'bbݻz޽Kh9d\ӊZPr_FWXvs_zLy/UW+Zqɓb͚W7n ][[.mWDM_n%4{ゥ7[7ŞnkN9}nmmE,T }&:ok}_@,.qn; " sP11K)b0t EQQ=s֯qfэSSU*u˷o '{J 6 md.?ݪufY|䥵9Q5<3kҤaYYmۊACLL-DV" ]]BIS--]CTzqd&N2hwߝo+Wݻ%\}.:lڵO;Wg^ wfMj<<-g33;Z/m1ޑ';QD"_:z հX)S<~AP6iiwvGj(b2j5f35*(Шk߾]L^gO;Ym`矟T(Z7vۏ/Lf˭e6.$啑_|(+8Wk%)T3g2N] ?lǏ#G-ƍ3[{̙-,8rfsl6y+3ޔ)IJyHT7IӨQoߖ6Gp%j&?27pxRcBO#\T$_^^n[FEEZQ,1"1cKA^(ocU*UcdR +rr¨[c۷dffbY\ @0Ξ, o_5kƍTg(*9Ɔ [ᇋaa5~mܢu`$Rsp6n eXRiW_n3g* 'Of,YVYYsKXUUݿ5T*jZexxTZS b@֡=ڹ쮝W/.8y2c *))鮬YȔ6-nA6Zgk=mxpD?ϝdAy%ԪU/-mz:.woZdoLRMţH$M?9$L3ڳπ %S=;CtYAP/z\݋/G Ǐя5=z@`3lX_ l *u_]:xi1|!5U? =3dckN733'#uljޤ*|755k[SÆp#G.de_~"ʭ[H<,~ tozb,\^c}-Z_^.߱xL̹9s&%lޜp@k~jla5:ΈrsFD^ڵqʉWZtTZ'Zs?H<,  B>*H6# J(C-ؤKGQQmiA7N y{z!SqzYFDgH8N!HGԽUPB! At`׮sPB!tu :stä  (A &t)D^Eݿf؞1n<^bX0APBu"uBߚa{Pֺx!Hg')\E}$ԭG>"t). AEB0D#GAnD$e,*jw >"t˘A %[c˟v}.&'xw;9GL&SR?w#_ ؜;mS K_ߨmnQKcJζ/b@e(SPn=Zqӭv}ޢ˨χ{;/ e攱P,LjuDC]~Zmoc< ]x߳m{5]kV:Vb1SD?^Z^N/џ8q~p+ }?"p0{||e>RVG>u>^:ߑ#ֺt~QCceݹ|kKJ]&tAQ.fXij}mz{z} Eڿ^C*Z<3{r3oԼi7n ?R^Ƙ}hF킟R(*Պld /zH3=gJn[>{٧:e峧n&k컁.w|Ӥ" :~w]+|'~,Ct/xTJʭulŎ/-9e7Dzjyݻizק=9GVUZ\zO q[^)~+7IO}*{ۛqL<sS^OJNoxוZ sS|0AK(ߚ~]9Ͼ w%7lF`5Y.df/:)Y[w=kgb3S[+Ցqmwk7ௌKfN&56VXYTj'ۧ1:}C`mc27}i?/7_[w KlN6tI6Zcvz.\#/ݼ+oѓprљNAͷθqgC[khTeRJ)3 .}ZE=>AyL >!= 'G? %Njg0.~0vًECrR]3u܈cg/@ 6KH֥c{$]7ruCRcn))iSJQ}Ccۣt)L/џ?p%7ӽ_ZNK]J-ڜ)cP\VΚga~硤A͛աD{ue[@DL Htv PF@}=ѭ{Ec{{z!޵ xoOϝl6K">7_ɗ[^v_~v#5c+bzUݩeDDQ}z`aJ'[?lz`N~d7kפHϒPZ|zZ? Awv5y$Tk4'kx@r.嚚jL%թUc4l*e]W(ty(|^B JE j\U)˽eQ1&&m355叛*mκ9x}ػ׳)oKfZޝ[ZV:F2{G޿K˒GtD\ek>]Ue[;gI^5SZlo/ѸfE4:}8H3k ''Cygutٜ!%B4M 0)6f-QQ܇0ԅShW=IADR OgDj!δ3U:$4Jk&TZuZEu7re]v")[t 8N :LߒΛ1 0rpK}Ԣٯ :UGidp6]泙Ӽ|\v][gNDrTh`!g_KçA'j _d7g~g~*LBŢV)me54\˧`?!Hٍ`dw|2C_ zjh~m)5œ^+k^ XRV t5b4N{F]YJC=M޸ADZVGR bOQu?" HO11KBtHkׇ|UFZ舼v*~=?gaZMCP eX(MGQ$uj O5e7X?˵ׇ xM;ٰfiƆ>ήN~D{i1☙i=^b@vϼfLf)E]s-َf)SSsǹCW3mGӠtgmվ|LA:q"oOD?=((AAqޫ3,D?͵ya;  ҩ>Js:~IiƑӣwϱC6RjgidllBch4}3ZӦ>} HϒPFF Π-Ïo=[Ait޿埑PdN3A-H>7'fBAZy;wZ?iٻiTRX]eUKKnQ]Vv]Bje]][X]jMRXRH"ѽt5ٚT}g9Ϝ3s|&sq6Ѧ Ld 5DZiFƦyXvEt2-N׼wr)5%!V.H[tޑE=JMcM9δt89R: :?L=W_s1v}啔1+m㲞Et<-Zq߂ar9s.ztꚂ>^F[ }JZZ}7ϑ~ޯhVlN&nss::8zhL+W ?:jW&*.zYbt'{St @)Ԭy +ˮGE2 6/۴Mr&n>~5LoCc꥞k/^{=1 Xuw Ȝ\">\7B\1m!&fc>t₼l1Q{7q4{iyY >[XBuc#v=!4j236#--CB|>h">UP[SMjJc:F0s<$Qc(̣cf_(Ƙ=9Ka4l(f.~A^mc.?o>)*zA~Tޣк]PX`Z5tcieWY/;޶cӵ'W|wh %c9V#F7 8~!A\⾃';mdoP_xHX`i=Moc]ůAsx#g@ El{f޾s8Qc.I1>F#F0ZVM! QBA`"P]yN:iХ)Գgu:{B5O}$KΞ=3XyY^_*TS UTHYG)2 :ddl*B IEH&,,prqh#>334Vl7"ml[nLdt*ؾ{LMI()~@/)nMxǃ ݖ~ӏ%YEh;Jr3?}iG| Ef9̶oZBT[ݎuyo] j) 7v>2kLSflBMwRQ^x:Ѭٵ*x,}1N5-&zG~2c8k/B854q4k_aM>j.%S+ZE7`7;G! IDAT}`I%U-4ksGvi0^_ᇂ]gZ[ Ej+Nw7;eLrBl=,Up)c|!f^WUnY1s{F497%!$7قMX>oujO?O|lpSͳ2E,YO& ]|1?#1D@ɧNoEA!DUM9?9LCNWVw9Yc*#[Rⶬ[y&򮝣mkKKvG W ݈5+8_y Tw SgG%ɆG%6[}W_\21eKf[볍s'縸7ۈ֐sujU˺(Fr&nrBbmxgvS!;6^zԴ?_溢^m5v^<,xyU^V"%_h~Vu]̩~V|Q*.3%󗉯=dB 9)`I^}¡o j˗/zOz_#O<MyG^,?ՋJ_*bs8s\Ӣx6BWwB9l9w!bBa~z'Nbּ eK GH2m$胙.T#wn\. ,͘=_[Pobf Syj!c:_֋(p-\)geE957o'hhhx1_tB0-L~55 r,lغar8}vBheV mU˺ķMM?KZ*8kOϥ vfiecۊ_ewr[֭^S)!n%a]>~²gsvXuu.;lMsЁUz9fN5_hw˩/Yb7oEYi1٨.(jk[oHЇS%ʉ%v0m֝ %L?kwi?N mU˺ķU%'u7fm6ʴGϝ2I-i햀E/ڞ3u' 8pQ'{3hu_}p|{|1Br2?j˱w|'`IX]hkmk]__Gm:z13e5.ٳcX.\ƅWU^Jj5ΔWP"ԫOٹmby+2NG&-nhccY3ՙ C[^,"($ySWOb5Ɲl;3{;w8ٛp+"@b]J|o}=[mY){vcP12R[4倮~\@N =[%pϞ=sۙIu}([{#tUfqoe!گs@Kws#|:Fށ8 4h.A@**TZWuBƙ2\>B}gfyRX柸}1:ԥYGrQCYn&=ŻJL!.A@yՏ  j$OHa tmWPІjZ,P A_(PHBv'oYnl/0I)`!'{'ڒBu#PmtBEZZ%>fc'tO$ ellnvBBͲx*)T7'aaGtUNoMktk:o^|zI__u22liiNFF{rHי T !a͖9|xe^^ !|v#|ކc/=bmF-;~O_JIT:ttGFre?d ![6Z;}?bX۷ ʕVB99EtifCBCo%%=' |tMMc׊Le""ޛ5'6[jΏdcKb-7|̙.R( ڎx bo;.ԼyVNNT:aXOOuvWɷs˟ݣ\yJljl> <UT;O޾͚Iᚄ5^*RS.? H399%,Ҡ >]moed𰗒bq8l6[CC熆?UT_tR/1YY/ !B )22//G\Inw`۶me˗山v- x>X͗3> K<ɟ7J^^ܹXI*(Y8$䊡 F66AA9#$īe[W늋tt BꢔzzzĨ~~gE6*B !rr2}6=>OTNm6*.DjHm*IR.+{-6e,J;ɓlOLnqW+jh(1;TI+:ƍbVQQHO/ ;_ ZfKo?It'OO/6L_?錌§O_̘a>MII!D^BBϬK߿Dcv$#,麘%IMMñceg(KZ>S-Sk:tmg%1g+ oVJdgޕzPSH詩Ջx|)TjFl%y}u]5 z {K]mUPXHg0|>vtv^vL>~nɂABAj=h!DI+'' ӧ@ϟZՍ[х q'ݾXWwU>hrr55ǎ]+.">222T˕ יf:B!ӦUPsS3~ͼe],m=o@_I37n02򾥥]Mܬyfm=KJvzJ:ӑ9SZubk;=>5ñ>Beej`FF[k䉸 ޼ptͻ߱,--Ǽ~suJBϕNyC䔨~QV;60f}'&FE=HMQYd2[UT&޲̧N'oײFBȂ_rKI58vveAMv&55 ǎ][5 Xmʥ?DsӢ$g^ VQzxqrjj[.`llE|gz@̺tZzHH!KRybc3aBB])!U\^c,ЁKPqq허 Q'\)(əOY֡\XXNǏ^دo\"{D TJJ=gzznBB/r52 bh>aqPE|$ϥPB !3Ο<=`|H5L)+ =W =-JrS$ѼMre]]'ܸSNNbmmL/;kkk|r!DOOY}}*nn'NUZcf1cs` _}[eKBhv+.:T53󅅅ݹ^)+ =W =-Jrk$\|>Ĥϣ={ǩ6%%wԩlf*hf-O\f"_~]ZchmOOQiiyx>:u=JQE{D4rKԸ!n=I o;umpIF_bEuZe;w͇S{^P=gppw9A/)9=hDDS^slyZl S,coRӂ牣 n Ov8.|β>BuS+txH)s8h}CPDp;OOtp 44,/vIaU $[ՃnM.*@oN޾[x˺zPx)|LΥkMv b eii0mh))~8[urxoþ2Al)AYyZ/W^k;|y8ޗ?uj⅑oPGMbZ))1ȡO78ayޣfPoz;TˮSrrE|OvMv)Դigܩ%46_Oʽg()qyƺSn:l__gBH{|>pc޶c0.?]>@A~ꝝz j_U*5d !E>n+*tpה}^}48~ZEMкS&º4|1zJTZvv]Nsrnf״ ?\v)ZӍׄ]<F-'j*t1::|OLp-!u KXt 9}\i>҆N{NJEmŶZZ*-HMswdiiP_[U]P'B⇙|*T-}DK?cP ]OXǰJMкj iMhîB(lVaqviCBO`dcct++B*+ x]Ae33:3e`UOtTk sJEI|+:[@ %pJNȗ)+&X[ yÓPTT K ǃ<[)z##?s}EQn;<n )Կ$$dIKsgX,6Q.8ٳw}|*+kSRл~=uVKeXaaw1(0uE@ו%"BH*ʨ2{Ja7Tk VDЇ GuOet'3iV:uK%3`:z3+Jx[@R6͈m>Xȭ[Rxx(Ǟ?K{^0ɏ Ko'g=VZFqa:!佬jVh;FXZ~DyR[ހ0B+'SߺC6fK>˗'"%%Oḙmڍ**z/?p'_z:so h@~&Lh\q/ZZڦi7!Dæ%뤊kJEzr<•륥⇙BF>kD= -^/ZB{7lN|S8=]EEAYYZ]_uUU3,\hKP-ǵ1370$$b=PCRqii.-]__###WRVU،i喟򐄄s|>Mc#OUհ4[Mͨ$[CcЦi?fРZ}#::crrrrtt۴'hlEG@y 55j?WRyKDw)bs82FTTTڣ~QS55GK4f7U]4[q $UcFmԅKc;+:gLK43˗骪”HmѺ<7c\NngiiNbԿ))lPQQnkp=<\F5;w'Lw8#~ n* IDATҲrr** ޼WRVRR\J{M7oU[LGL@7o>|RAÉW\jӞҥ*y^)Oydysde!+W16v)T{`.賌SS ,$܅ezo"()4 tׯKҮB<פraaC'BǵyfG%tyz%!JJUUElM۷;lo͖VRIM|VSSp5%UUULE@ %o|=gCBz6L)RR?UӞ#\YW 7ntFQŭtGx!R,D0ҍx<kj ږ+ ?WA 8a" ѧׯQ cs짂_D n(MO=㊲R:3>}m`!>c,U5M|\k*)i4M>jsOp3O̊F| ƍÍ}s!E^^ )Q22ru^ msm'*ߵ# mB:u76?#Fp@[[" 2fȐ1M?όD:Ɗiǚ QIl)vԕtn'm<@ &t~~g: vhJ$Ӻ.;~ʼngV/PPIm)BHvV+ϟ8i*]6 ?ÑUؾ됑G9fĢ_]VXasv63)TO5kc^8SCmӪ{9uoӪ/2W ]hjB:! QM]e3wãMdãzؼzZIS&n|W$lytet,\)dL`z|<~Ft Ipπ%--xyE`1uݿwgY@ǯ+:3WVVN3u1{@gnbۼk_F0>\7B\1V+!dta~sw;'Q}V.4--6alllص?`vM:kzH:fM]V#F7 8~!A\⾃'-;'hGwb.v*'9̠ ?^lSyynxTC[7x9ٛ4=mkMOұ+\RR,t;U>2cMo#xLN?3E4aE^ұ Z3`Hp1o0c|)P& J^+l34PI|:VU-7'c_5>t2H_>S)P9%5Gd?.)꟎-j-]=C3P[h%gSϦY\x=kPѦ4Ba.hE]MаE #a.USsقatIS{H۠8P0?  s~SfZ8̇G#t; NfL#(&H.""÷t=BTF,dWm.E ճŵ,=x{|trM mZ}͑C;#u8p4ѓmį>?|:5iǚ&,tԔwG[uƃ-cs +,g<ʌ1Cb{)#$|)9x:r[2 }Y(\UA^*Fs+Hz.{_}q":07ٺՋ*;xRS[jvV+ϟ8i*]6 ?ÑUؾ됑G9fĢ_]VXasv+F={NZZ^oMv<'.OwBJIjvGB<?::֭Gmš53N.-jVuwݿ>HY;zTdǙtߦUs]/p:sߦU?_df 56]>!$%)n˺g"G%ɆG5c꥞k'MM{e;,bNaޭ?y_m"NXAFI=A@@!˕)oz,Cַ̟!Uuj/G GXuw`k?.t4!i.?fݍ^1{zO0?ՋJ_)1Qϟe@(/Ş^yJZW$=~\t$%<_b^BVr$Ic!t,c.Q 3B)0a L.gGz:_ߦgS!ŋsBDE=HMQYd2uQd[HJ%fnn[N))ڹ󜁁ҥmbYY>ߏ''g.WfDLXl9]YYۿ?1+!ŋrRqݹ.N j3:[NNzn&vw ]>\ʕ$Q{)+9x)T~k<]K,l<`c7bg/tA0^eE&!䷓GB~jjD'$'Ģ/@/J\\&k*:;[B548r* ]r^&!JJM_mt:~]Gills'}„\ǎ3BHMsw*,,{Q[[@رbI ѕTTv\\cc@QTVV(/ʪ#^l͵ !uTmnu9Lp`EC\}O6[xw+]Oo5ю-Ŧ غgI3|:T^= ^N& :GO Ћ5=b={"jk$|HїlENx>_rGkL//~(^2!!W 'L01 [7ΰ<99͛F1w$l::ʅM{x?wzza~o]*I#ۺ)Ի9Sӯ7tKJ:#nZKWϐ q7TAgSϦ@*Y\&%%$B*O(#\ǖŕCff0# l4XFu!*$K2 _}&;w/cÆ9EE/KHIѩ\YW 7n<)+&X[idII*勋+ G *q;Ĉ۽{fBG `lRUUAC .GKkِ}ͩS7-ٶͅfU!$4{RRry$ϞPUUsPB>}{ ۶}5׿ٽ;pΓ-23 Et+,NWPeeկ^U HO/6֜B뛂}}|>ǏI;{SeemJJ6sfLO/LP-'O 'X==^7_os?gP%HzڵP  t,mLuf7-Qsu>P\\yjʻ=-QPs͡iH}}5#G.bk)Ov0~)W't۶6C3ȧO_89Y()q _^^')BHS/Au.ݤhKK_chrP"..e%hɂrrtb7r tt; W/]cD-Xp7 ZaG i` et\Ru uI Gw=M mZ}͑C;#u8p$zm݂U:@Om{ib>B JMIHwUgl<@jm8H:i]V{DufanuUUU(( wdgʲ2=]|ISBi9t]M854q4#G%,r‚\cw0F' HzY;zTdǙtߦUs]/p:sߦU?k 5v^<,8G QM]e3wãMdãvl^si7~UJ*& F۪a#ޣBS[[K)<L>Xq= ɢ89Z3gh/bJg'++A )bۼk_F7BݍiJݘ\ !3fg&..vNv6xܲ1Q{7q4{iyY <@*TwacCϞa ͺZZ{ϖV65կ-F l?y>Bu#76j2B_g !OolaqR^LWYQIP_j:Q;}i0XsU(l͵ !uTmnu927ՋqlfW8j[i/Yb2x %v0G%nBUkHsR\kPt3 lu;zÄ+( _JU4$QT H4YȮRVŵ,=""Z-(*F@ %jSrO) %ůR:#u884샬6mA*4}=\KEt $uEc,+tܟ@oFj`=54qcλ /q^!Yտ &L@Baݡ::U}e #p|2[E-9}R(@ 'O벺'/7ٺՋ*;xķYޞ|>⤩t۴G?WaCFƦs8B£^~vYaA.ٱ;t8hᕑz\lh譤焐 a 9o kjV\\%j;\7oվ}n3gYЖJg()qyƺSn:l__g*eTT_tR/1YY/q)T3kc^8.۴j^gN۴*f 5A?kBRⶬ[y&nxTlxT"ͫz45aϗуs@G%g/ާ⒒;-]:J},x޺?f}Γ4knn>uɐ[lK99%n&vw ?AzĨ::*KL.e aX,ֺͻvlN :|4mOUPΘ=w'U|EůlγL!oD=!{(BoݻIy*148r*!$..ݦԫeQ|r\UJJNOEa566 XKUUي"/@ S}p'fXB>MMk'Gs`*/ Jxh/'{z]' %~P۞SG=~Яst4i8vZٳC%ܬ311ixgqMIɦzz֭.uu aN\f66]TT?·6,O ] 7bɊk9.%F'oV7dtyy#y` dGұA 5pzڵPzLx7665SY{f CeGDjQghMfjg:U/ զ4A }e8yS 4ON@ 0 )AAWB-ܭ>EC F,dWZ^ AO3cf?ZE/'3׫,؎+zѫBې+ѸN5\NN_ӱ$)TȪmį>f@ -X3|Nԕthsx@Pݬ]뀝Hz'Ӻ.;~ʼngV/PPIMm]Yޞ|>⤩t۴G?WaCFƦs8B£^~vYaA.ٱ;t8hx'0 0kc^8.۴j^gN۴*U|,ZyƦIvEII۲nȻQB IDAT&zQMؼzZIS&n|W$lat(IZ2s}6'ߡcf! "rsѱPC:G:,% U%A'f*0G^bm޵/pccc#]{i!i[ݘfݍɕ2c|0?ݨ>+&vL s;^Z^V=> ]}p'fXB>MMk[.O*(b \FozmWV6E%\ ?=vm-YIz!.(WU$v](ӯ_MM5> 9!}pJ$[smBH}}DMƎ64o rmuADIyC :ⶨt C.n.nT |6l J*@ %N@ \)Ta.Ꭵ/?8`eq^N+)|Eyk*tii:C[m(q@)pF,dWZ^>.6>z!ҝȑ:V8ɶu W~> cHI:]PWjJBͭ:cWl{ˍܻM*1s;W &tl7ʼno\DC}=c6[0vseTկpcS:xP}#a1r4>#YOeuy߱/N]gf?[zQUU€}O2BHvV+ϟ8i*]6 ?ÑUؾ됑G9fĢ_]VXasv630K0kŠQBM.xK6jJEW~%A^#*&mu+IZZ&<*1<*c꥞k/^{B`,k]7666҅7BݍiJݘ\ !3fϧ s9ٍqjrˊnD0Ke%y݅G?{Bh%4jYj?[ZT!d#>|4WAST Ta>N(| #fthCeE9s/JVNsk|)T~k<]ȳ _ ?=vm-YyyKB&!䷓GB~jjD'$'Ģ/@366dkbw yl͵ !uTmnu927ՋqlfW8j[鱵/Yb2x %v0G%nytE?KcYY9:鸾s9BS__G228;KMRm1ƈ(t?|s )Tcͅ$ztNtn'm<@ &@ϢgP"YOeuy߱/N]gf?[zQUU€}O{'NJzM+ps:ddl:Ѭ~!$<*ekr؜1:9Rlּ9q&]i\ ܽΜ:iUY|ay=t\[O:yG n+>cN@n4tT#09R>bۼkw[co>Mqϧ*qwcWg̞ޓN2֭^TZ<|ܲ1Qϟe@`dk1g6܃pNh1jV,83$' tPՂz e^b>|_'zU)v׮jhXSDD+]5SY{MOP@'SC  HB @  B @  ) ('};a(*$6!P(VH 4Qf`g{5.lHq 450 F ?  _-8^Zm 3NB $P ܕ|AIENDB`jpilot-1.8.1.2/docs/jpilot-prefs-4.png0000644000175000017500000002063210445274001014320 00000000000000PNG  IHDR2)sgAMA a2tEXtSoftwareXV version 3.10a-jumboFix+Enh of 2005050103 IDATx{\Tu"^% E2ls(u٭uݭfmq>me)JaR*xW"(rQy8819 {nΜ3s۷ou،3:e:-v:>/)(Y/: !LC4 0Jyp5ŀ%6n^-+.n>?&$s`@=d@ 3yxdt #A}2 dD'nqmIFq%#.t^AZD B;]ͫ]1a Tq~I Ҧ0nxDڬ5s0&ȏܮGtv*F c~tټ )#zD2vi()3%s(D-4/dz9AhÓk=;(ӆɫ1Ыɼ]ђG, ##;9hF&9(zUD>@.}?{; #R&X댐Zц&ާ-2 ʷ= eR=`_0 FiA`ɒqBth枮 0 !LC4 0 !LC4 0 ҂_ LpK>!Z~$&.w=FnC![*GT(*/Ϡn&-aUZB ,lm;FךΫ>|̙z zE{EmUi 5zL5ozӅ=]iH%V~ʢ,aUZB ,lVZu$XSsѝWW)%&&2 ^{==1-C6P<[M&Kge}uu2= ҇b<˫$^LD-- g8Rqc_;̶LDnn/F"ژځ9#Gz8_p''{D>YEH0:z0o_~ZoVihX#p_Z143]Oy-u/<_\|.Z,w wkkݽےCMM)ǩT*I8;y[*fԨ' 0vV֞:S8K4?8{Oq>j5ttO>RR62aԨ'<STtSTQQ/(99{xiDj~ϳsZ5##uH@DRsZ[ 99E] 矏$+kzrs2$74yۅ Sncce5`ǝ;7iѦNbg$+7{K[t4ݻͧO&U>w&Lvt:ug !8h˖̙+ D Om)Ly ";;]][`ʩSER- JͲ7YWȑ#[R^~~ҤWVɯ^;~ѣ33njnܸ2`{~#>*ۻM#dڻyUe.5k{CcJJ{6IGG:v"_h̏0mmm+L46ff&87یsF;. &%/=|ޡ7n\)*:UU1G=|넖shРoF7oG{zP>1!3#W?-@aâ {'%N֡~f'\]DTͷU8製MM-&& 8qDTTІ ߉(?wS|ceeoZY>>h@o(a5\5G]cڨBYԬeBO/v_`}N0339,YgM?o!2e+~{tj;2Tb?>jIIի&]/QWWio"L\dsq~H7B;$7$11Uh=a))g *Ǝ 8v,ܸ_D FGߟMD9A˗+jk҉W {L oTRM{Ru^8A Q|Iݼ=jk˜+Lt;sZF##uGd󈨬,OhYPpD6 WfX\koнժNJRYi4|kpyƆZg֖)DO. ڤȽ}^剮F" y\+NDpY"(o~lQ˗z{;k TжmG q_jڵ͚;~Y+,[6k׮R-?'(5˂6_g\chkF ynn11Kcb󇀀׮;]ݼ@D<2K9;oF;DT^.7Q`摠=04t֨QOdf&'!%'~8thJV##_8.(}aȨQO;Vcg+^RT갰epMtiCB8{6OպŕMkk%)q<8\iRti&@7Qx{, D=4#'络" FVNDׯ 5()0!l?Ν͛y[-ʏfYt,3Qõk9~~ 9{vװa|!)sFzXK!++zz==>HqKZ򹃼( ҡ2w9z4?2rķߞ4iıc~~Boprrh-۶)-& uII'뛈H+Lnllٺ7o }j!;vq hGsr* U^JJFhCۏfgۀŋqyyR !ؗ6'o;k(?*ZO~|*/#++w_K#HYJdRKmm' FDtɈZEѦ hNzlڊI&++VBi_տ%NEV~"O$]`!qMI9;n\?gkkۂǥqOvaO?u o7_7gnvD~G3AwЉR('~=VM/nW_=3_@Ih;ߴ'^ϛXm O"lZ%u2TϿ-\DЅh4h -]BGk>?+8F.tV2z },  75?Vh[HDO̝;A~e"*.ne>}@vvvPAӧQaaý 9se(:MD4:ZZh泺{?q6$|_kjiiZ򺉅PVJojnZM?_1y,ıt*>ZGDTwCV˵kd*,+%7iDD9DYHE1hR4&=5bq$`S9r=qqS/Wg' MRZZVPP!աVШj ӆR;HPKGDqVN?q\ۚ * "wי7Ҹjlm' MKDdgn;TCRJ9Y3ԥ Sgkg"NSAhBա]_8Ұ֦&O>es'8:'"{`gAAyx"?~K^+(;6ƍjˍC'%7]ʧA*˾=v|)TړK@CQןs2/lQcc"?kzVCuGۗH"Nuk%4.Jk#:ks;w|͙MW/ 23xcqjRW_{dڴэ[m~lѢGN_dFDe%}ϟ;?%+sمĐZihTjm!_?ٔ)^xfŐI5sX) gͰ Eйln+mMlk^ #Br.OЌ@og{|w-Gf}>̧[ZGa|,ǫEJaЗ :݇۫jk]dۺ'z2gH9:rG(v۰Ǟ.: B} g'~ݺ&LFD6o7Xtwl ۩Ufμ9<򷹕'z.,@13̙{̙HD3fٿ?G[I27XO7l-Ot "ڵsZJ5ۮ]' ;DGOF|rF>p ;?|)NN EE}͛Soܨ3|S7ob@F÷=<`g<۩Κ5.4t0 /CD4hӫN]nsŊXZbE, ӧ;VVGV6Ehugeff~^yg{wQ>|MSYy+9$-^hj깼R__^z8>^/'##G<|?9uI k$<n0$MN>>>Y99W͛=׭۵iS>ao *Z#+E2ZPx+Z!UUDDDo;(5\~~][`ʩSER9sFw͠ owDdgw'9{Psmo"zPw&ΝfMNKk'.O8c]$*5JwY)EԂ_w]E:gi˖=*-[6/FD='Nawϕܬ[5GmjjQ^J Ĥ_|'njxZC\woAGUU J/L3^J.ҡSc ))yFVK66Tuqq|b׮`2FGnWpw<|-WEaB4vnv/]Ss>66]~ke]n׺u4/LL.(׻-+$V{Ѯ]'z)"ڹ…٨Tܮ]'FP҇m;QVQUUu7~/ X|6y6Os_{Vh--w?p󢃛꽗͛ĉKnnWMCVjxfP *yTV21D7^ [o*sq̛7B@GMUαj՜={Nt!>5-0p͚=]!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`B!iA`BfeGyyF7#Lҥ1S@-5!iA`BfpPP`.ks.t^=Gǜv!iA`Bf0y^vh G^D  ""K]0w}WAh vwADvvzX|}+*ni_U#4r裏65tG*.܉YPP>ƏzRssKi؄#AB+V1wIDAT<X\#Ӧnllݺ'ovVV6n[@Ez{SoiA`B!i?"&\4{&>'з 0 !LC4 0 !LC4 0ͪ&k1'Xb&%%ر+F6u] 0 !LC4 0ԝַ>utIME z*IENDB`jpilot-1.8.1.2/docs/jpilot-prefs-5.png0000644000175000017500000002167010445274001014324 00000000000000PNG  IHDR2)sgAMA a2tEXtSoftwareXV version 3.10a-jumboFix+Enh of 2005050103 IDATx{TW/]݀`) "Q@E&xf&=FbOJF_+̬s<ċ:'7jDF1ΠFy(C%APy(ww?Jk:]OصkkuuS?lEPbc~/oEPR[oi,1{!jAB :eYy-Q Kꈕ.=q >ϋs,kx\0)b@*3eYK3H]c!y%(uP̵aG"8 t"GfRV5;W0 agtx +& /B Kft hN=AP{cRܿo {즵]Aώܕp @eanG*R!H[;ǣff#@ѿ{0<7,=.7Pƈ1`dh+A`ʈ4!-~*"@eU O?ΎLAuJHh銟)~0MXtB=gw|!B@,1P `wY{ V{@5 P !TC@5 P !TC@5%! Bz];0$0pqڈƲ 76 ƒ_+A6,uqq8x|[[o/fB~~Tc+A^:`U*ܛG,!--uu,Xʲl}5eGhgO˄`OOgqqP9s\\# TThdFhQ 0W|H:88͜q .)9a4+ƏW\@8B0='ON^^kNHx/+kV ̜8atB?3 }KR_Ν0&>]uƌee'n q&$'ACjNtEESBBb̲lssE|}΄,K||-E'fem }nX/`7+Vq599qqaq_~yƨݻ~~4VCs->}ݻŁQ㦋aa˚+~uWWkkk3f$N0#){'zL! ˏ+!aytU=ˤ$>;F#2!X^0;((YBHyiggŋ!dpa:;B=WVv2._s:$dǏ[JJNpWOLY'gj@l_9a? >3!=n.׆\\nIqn0eʂRefg.upwjܸ ?ƽn qJmWWw-)/" !CCq|njq0a{7K}:??Zǽvtt^v^ŋ{*+srW>ӦgН;W{aBOHijw.$5dV̤I3- D'B.]jT:i,B̦ҧ=O8RtᏢ#ܘ*7|ZIJ--d+~::zxVT}'~ E?_4i& =“: w,uxK,:rT2s}O83*5O:36}a̰;sXOYg9B4~ϡ㈎^pnICC…sXxuX/ ?}˖͛W~bA-Sj'8~kHjI#9&^ \938a̜9+_͘XQq…=Vu0Lx._o' /Cf|ƍ/:WW TI}}ayVFEVy/988%$gZ3_Oo*)np6"W*XN^aF3yr4Ѱ0iG^tEvħzTYHs,(hI3_x3~]TOWNBEVG1Un^+? !ǟ~¨@&OЄ#QR{"1/Lrkezw\&zDD ''  W41|4?_"q3??VAsse]%; #E-K \t~n [#6E܀S'8 ._ԏ]S_!,6-kD#( "i{fb{<(RsOW@5+,ohk`w6-3a^0<@5 P !TC@5 P !TCLo!B&NVn`%f=O v::[fCUe@}n_m4,gO W OV~iQc^xa5FVW790 ȊѧN-mcR[$q/!;vdNӱ99U='K3 Jpg&zgݻOwui4LBB80j 9[Jbb4Gޞ=)ܙAqss~w ai`2ˇ Wj֭2WRK-q!LEE#q\ׯ_1Vc&Ν._^G Tv߰acoں?~u)nn.G^rH~YY ;,""v߾<6\p$[$iZnǎ ѡ(1/f".N߹ZyA.\o !q=5kbf~~ultɋΞQQ"wY  \Prr\AAMNNe\\Xrrܗ_ww`ߏ>ZqPzÆ%\BZZ:33N_&/Oؑax':Tѕ%5fݻ~~4NJy󑮮c-\cܺu+wo1c:skn[M  *,]j!?[Z:nocԧHD԰ƬqEEӺu^--#?;,۶m_ZH2 _O S["/qzА{VH ?(--dߟ3=>>|׮S].=,eieSSS(.W[2wn!¹FdgZݙ0/嬭mB7ojMdD ux.ё 霜d(19ZsM^^nddy_e Y ^Qy·^z睗.Y]}OrsPڵ񩩯kڇ,w>aZmUU#K))K^ziVoՏg+ a6H.\ӟ^ܱ#CJ-I,tlnn%Ѱh뗸:i4LFFUr%o;s '8eL;W.p1en%y&|vv8l .(azNmouxxP !TC@5 P !TCPh BK@5s>?JKh#PO>Y)l,|Ж-I{ý]I7- S|+V~8FВL.d)dμm9 hYYEnn~_ZZ/ډQ%nިC?K8VeWj>~[Pj!hBKFPQ{{fN:avbTzSVְzusww_||Xnnz+Y$m@9ZBE !uunZ^/(3oΝ}{0Km&ӊRPȶv%^FP_IXP@^nn$>zSU3@^",0z=+d_6/gBE^utt?|ؕ{/,^n)S| !SPV(gW&Z24D;1,dظ'Wt;VƍzPh Vik:wxơВ-JM}oĉBkAѷm1kj60@@5 P !TC@5ZPܿԯ6޻׮0:С|;yC/0u jW|>^hŊh~'4JZƦvBXɩϯilPY%Xi5^i0{v/ڽtWWF$$3 #gXD/M<{עW ӱC~eYHiiKy ,H[<2=׳.Tpӥ=~ܹS\9ȑ~}(׌RKu2*ᇯxxtCۍ2L<+9!MMk@ɋ:;{mKgY2vzMRk+LAHugǃ}?hšCy p!Hii̼;}͚/8>QZ(Q_}ugBHPϺu }vh(f9禈 C[՟&JU5vj [Z:nYocԧšEyy,qss&6@& .[631q޽'?Ff Z#RezАHXeJu2dX:*%e׏n"xVYΕ{x*)i(KQ"x٥V-tww&h4̋/Fpo/-㹆SDĥA(BH\\8p(~wk)@G\z㍘:~``/9T%hA"^qGG?|aV[UjTVϸ͛Wۗm+EL[hcǮ|ъ~ 2L<Z2WPh @ - v jxP !TC@5 P !TCPh BK@5s>?JKh=)-=-mM?~bZۦueYkbձc7'ჳlPbbOXy".N߹3HT_2kMt:(ț.,6D$ْ3NXIT !|&і&l10d[!4#]]}CKײBȟ|<9y7]Xl.[d~KΚ5N5|kLM-Mb`Z!(iݺW֖(mMJZXWw1"YlHXN574a!`_ߐWg!n١~11w:Eԕ˫} ÉRņuoH+śD[g+Ç֮M#H|gnE7:P=uA!YВhm#JCںL%DGOfai$yVVR_29:z !d޼55--V~+)i^nE7[=Mi`]hIb!ъEǎ,q^ai$UGI_JIYKz{>ѷo?IUQVdS_kdV2Ph $^u\(,;ϒۺ_&@F -RS_|RJʒ^;xy[6>5uVݻQ]j)2`N/rx; TC@5 P !TS)ܴi*'l=AB!jAB!jACGYkj֨M-izzѣGGgȥ @5 P !TC?WtIME ${IENDB`jpilot-1.8.1.2/docs/jpilot-dump.man0000644000175000017500000000145310510547162014000 00000000000000.TH JPILOT-DUMP 1 "September 2001" .SH NAME jpilot-dump \- A command line tool for dumping jpilot databases. .SH SYNOPSIS .B jpilot-dump [ options ] .SH DESCRIPTION Dump jpilot databases. .SH OPTIONS .TP .B \+B \+M \+A \+T format like date +format. .TP .B \-v displays version and exits. .TP .B \-h displays help and exits. .TP .B \-f displays help for format codes. .TP .B \-D dump DateBook. .TP .B \-N dump appts for today in DateBook. .TP .BI "\-N" YYYY/MM/DD dump appts on YYYY/MM/DD in DateBook. .TP .B \-A dump Address book. .TP .B \-T dump Todo list as CSV. .TP .B \-M dump Memos. .SH BUGS See @DOCDIR@/BUGS .SH SEE ALSO jpilot(1) .SH AUTHOR September 2001 jpilot-dump 0.98-1 Copyright (C) hvrietsc@yahoo.com. Manpage by Pablo Averbuj , updated Ludovic Rousseau jpilot-1.8.1.2/docs/jpilot-prefs-2.png0000644000175000017500000003543510445274001014325 00000000000000PNG  IHDR2)sgAMA a2tEXtSoftwareXV version 3.10a-jumboFix+Enh of 2005050103 IDATxy\v? \ (ZP"բV\E[[vk]uZO<ۭGED( L~c| 3CG}L'̼$c^#G@M6M' H:+;oeɒ%:i!DUYd\A!cE!$iXBE!$iXBfJKQ:2s: fμ͆4O.! t,~],#(bN0*@"kEQo/nu6˼儿X },bs7G&8o0b#0:ߦQ`gHbҨL瞄-̭_|,gWpgXQ8xM=a)oZ_ [hu!KEH"JlhYD.*gƈ{]8bCH폘wpNRhhM\ !G&4þ#|sYx˨P{75:{&o }fZDkĻ" \ wu5l7FjQ͞.ڛAd,ĿhxM;BE;êZxc!$iXBf O"K:NW HXvBCd+V$!7xM!$iXBE!$iXBE!$iXBE!$iXBE!$iF(-oo/}wAB}w!$1Aoo//II12GFEE&YZVx绲06CZ )]:(DːM3?^hB ?jC73c1at.ѕ=40>Za523ÿ&XQd\U2jko;א;ߕ=40>ZԢ;ܝ !$}wH[ϼ<<֬7{ӦѓV'N] 6E05CvB3%KBw:v?-ԩ#ӛ7'ku~xt3g~SRrES tpX\Gl93>5w_XjiiaSjƎ4R#7ΜI:}'fgHS3g l6L뎍emm(TiizhkkPP?x*66$66^޸q_B7fXuڵ{Ŋ/ $',lEQ rӦdv@KKӥKe2puŷda!C&`tΝ,Gǡwd99ykE)e2 y8rd3MZLT*ꬬ"q*+.󪹹EQo_(e„?&)MMuW$=631jTeohkkL&MǍ[&.^ѣz|{rdqիdr_߈>}T'F䔦(JX`ܱcsr}I6۸q֭6nGŞfiܼ91:z]>q"!ryq \~gCCu376lJVV !_+ t&$ *ZYLBњ_?w}("g„g$6Y@SSmfn{{OfI=<<=uۗdr|„v; quUZze+#ăsυWT䶴c+Wy d2hz>qRS?rdӴi뙙*a@WE0;;AKJ._'>basķ7ϴ YY)ǿl;G<<=߮YZ0aEmmի"1tUkjJf󈜜w慇GOY]P&76Wi޽krs@kk>=/dg)-Hk( Ctiء&xor;,<? nC<ęp/TYٵF?8Njjn-0,++3? 쎽ǵkG89 #.w|akNo}3Yl0`8=Q} ߛ9 jԑg5g`kу'K9"u]}Mʕ#g T(ZcKLM՟1g^>>.w( үfg kP\\mm ssӖ6ia7o5…|??wff߾= *k*Q}iD#}wrzN텛wkjJN@ss}9 "5vܚҫ%%AAst=Z8Le>`2L.<|{Sp4=fA kJBo\"TQ}g:9=WXxfNS[[sLn;^oϯ+"Sq&M򉏟7{Μ۷gq!.nΛ1ɓ's>`6}?=-l׮'X>ŮEAόˌ}T#ƍ2M!*4߀<;x3`ذLL[Qco*<<<Ɩe@ęlijB]]9v2 9""Eu\|G!C (*.Πk]#s ۉ1>SNJP*VVc,sGasbQߟΝo ' wm޼_P{y93C|s2L&ܚ$SLMCB3g.=x34-+pVV/ʲ qa/<8dذ23ܺu_?7ęn;Womm||^o/0>Za>|G#CwrzNhxJE~vͭpw1̰O޺U%0NvX ?jF;.g}\]?3chAdEPO~DH𚠎5NVw~ B鄚3A4@ABRjUxGQ18h :\aXBE!$iXBE!$iodϏ!" qL_BE!d@**2>Aa ו"4,!I"2+t&Aq+ |ժ?ԄŬ8nqqsיӹQ_7AbyuW[mʔE_kFj2ٓ;vt2⏥I~=lmm,-͕JJ*ÿHmm#xx8d26nG/u2f||mRœJթSG}ܼ9Y5]^"[:uê?_ p^b⊘$4E;<СK =>oР~0r[`WR1E- EQ\4ѣmNܿ^jBG{k=†QP(7mzZ_bc,,׭%!a9;zhkkPP?x(gfbu~P{@ wccLLL2MV. bU#"E23oY3+5r@X`de̝;Ƣy„ΜFU^  kCQ`m݃.X0>--[`볫_{>9"lhh^q}ST;v='玫k^iyɨ@b"UV%'_ :~W_J\3d$V.`ynTTPQQUss+=ST;#= S' 6sgDo\}_ >|唞~22 vRYKn>\٢E<[ZD SQQcbc' 8ۧ]\DKu#@c8"{Ke: vgXO>9Ȟy+WNo㏲Kս[ 拯6OR/9>%ʫW𤤣^^Nc0{˖7'g47/uZf "u6<:U11I*jkƨ|+;8hff"ܾRLJ:jkk38^5eH2sQXXG{W"*۳r߾4xwBBi77Ŵnӈ֦07'Pv,r$&LPoTٷ/mI歭ֶ{ӄjmUlU^5+ptfΝ7WP}A~e'xu۶*M ѡVVrl>5RcW_7Ĥ_B\Li֯%&['O|Ǐ[U.kpH3v,r$T=*Q;nls玽l}w8'{0W}; FƢ"3,l3uX+*2SRT q :gqqΞU.4Qtgte밞wuv2x]uL!$iXBE!d@ҀBg!I3Ad|8 uoXY*\]@ AddO}2,t#6ڲU"Wc5aaDIAnpXfV\MGGOp,75!ayllT\ܜu"E>ݗ/Ovi6^* ?iQ@[Y[xwf4++s1[Uω4Yrb R&v3\>^̈́ " ^{0#^\Ə%KBw:v|\."v}{xqML:;ݡ6ƍRM{Ŵ( ED-{e'jk{z:;{BB#o;_=ɞ ,~qH>\>g28t L a&P*jz&1ti,wߝfkkP(?nٱ;5›ͽ3ԏɓeV r-zwoV%Hfo+&f2,'0w/f hii嗫0j^IIǘv!Ldrc6|_@zzg 砻˗o yS5|]07}J@Q0nUPY&; )XXB;GOۙ9Z[aՙwR? a[pqjc`pW˓SxA]pccrsrrJ  %G2Kso?UW _(䣏lgee%t5zz%~N^g0{qbaLdNK+`bLrnl1qlmX_OkAyi: .wS'`B)^] Qa.P(g~W{ּHX$ϴsp{ZiEl?\SXfN0 fFYJ?,]ag))|<4tkMgE2ᰌ}mVxqs_ Ǐ})Kdg׳1b%˫ffܽkkSYX{z:޸Q18n"uRu\WdggÝLzR/]"x3F9< r._0vLLalؿZZ࿇a:}^Nyxg5I [x/aFmdgPUU_UU~j.[wTa[vʝz1߾ %Ezza`Wee}VVI[1;nMV7mM |4JLnm[7ai?|ff,HIw/ ff/{G;zƆ5Ӆ w!k`u.=qvV|Ty]],y\ښ޽`*\f&q/22 <'t*7ʞƍR^m`Wvv9]褞"Ae4k*COgN?Og]iG0=Ўyx0 6>.uދWG444gg(]%TWW?P&k+^ WtuuM58:+J;썪t@%8n))+Vz7%%+&ޒ줞"+T:yAX]?ƌ{zuG0hmAul}*5VVp3l( ~ۗ`3v0pl{u`fO[99!~--/,;#XlO>9ŷ]l{;v]- SiGWvDvQQ$K0XZ][ lg~ ?6$q땘a=4.EEw#"mmm6nm?nnn=x0C_/~9]sZ[YYU?t\7l'" la_uQd ̗_~lNNkkexU&\AFpo P"4:ODHAd|l 02:aadK"3Ad|𷫈K4j<DIAN;XB/bDIAaD:o B8Pup'0o8ss33?)fk#϶KHX^^^# gkbDD>,ʕ~tmmcBJN=w-O22 C&mڴ=m֭~{e))32 mmm- Q wyյ_ϞooO66o8`][[ۣGO {,_>wo˺o9FggNŮ}+bbt& .YwU2$ֹhQN)d7^ΝӴ'SӏfOwƶ(޾ך522 an&ۉ%%LL e˜;G?|0e_~Ͽ?VJ:Oup`׋殫KAhll޳…!t$ FQBܴ<55b׮s׮&yfunZX[q>4_,,PPm|rpH4: ++\a7Iu(,`툑"sp`qUAVZZI tcbQQlhhfG2jj7oNtDAFwIDAT  kCQ`m݃(m!e255۷矧srEYJEEw~|]+"sQ0"ybsh谡Cx{;;8VVjr- T*}6eii޻._7h b>^^N|s22 h6'lѢǒ-#&ݵhHmtÇ &exrnQQA}vsfuuMLS\,/^m=+ ?$:N B:._7UV֫dMJ:4v l9zkn6WM6 sz=LqNܣ.Y,L- O 寿^:59cnll?7$F6qFp"ŹǏgZ;Afcc1gSn$۷gAA}i#j| oWޚ2e$}omGYpz:82zx55Z0{ҙ!mYFőڧ=!F6gΓ73J-3pd(JΜen cvFGZY}_톈ط;ϛ76.nBliiӃEg_}5d„޽?pOd!O|3^Ìm˖=x護^il曉:OLLJ=&XVa|Ovoaa󈇘 H;l_WQ]KKsN8a$)te Q3@ruL!$iXBE!d@>M " H3A 2>]F7,ȬZ.n 22ӧ>eIAd|RR:xmr\*XQ+-jĻ!I"4,!IgLHX/0ܺuY[pTM2rݺt'DD"7vm !>0sruZK7F\];ܺrR)vzQگnF6-:E"xХ1G {fBr:;n]X}w`Ϟ;w*1#w $&w)ڀ'1K=I?277GfѣY>>. bdabp{K{:eH??=-Xdzgg hii嗫0j^IILj}3@#6>!_/Qpc>:zuĎgKC"X]ݰiSrp7X9 q cꖖo5….9"{+|Ĝ`BpBa\dqO>h?;vbaLdNK+~ܹr9'Rd0ex#ׁ]_E@E 99=*jȮ}$#fg^\.ݜ7o,=G|N^ↈ|WO?r˷4݊p}?P{aSn,2MbW]mq>xyҥMmmv DK߸Q:eAA9E225XyLƮRlkSO.bֵ 2| *FtJ1}ķ\\E8Vo&^UYYUBM>G'S3HJxY '2Ohܿ@{ 8~~YP KD!b/1v:ҶhQr"ANU/ڄb=Q4>Caa%[b;\L e3A(.wV;ǽ{Ӗ- oll~Fwf{_ zoK}م 'jȏ?'[%&d~6X`O5ݻػBv_ⅰyyM,%M0w@o#6:I0R Iz!Au ,!I"4;~&B*"eq}wuXt "$ BHҰ"$MkcܿǾ#PЍe!#Paʕ[a͚Yqq7m=y@N`vCDFWdSsbƓ8tZ^Qcx3mmmVQ҈~~"dIw^TT%˜ 0(HM;47֪`ӵ~ /~EjCCsϞ+WNknnvvmmcScOOǛ7j X6RIV3<̠VV))æOXz|?O* q_U 0" FW]DLJb7U\|Q& r-FF%g/kES:vgZSY#'D|`]pĈ"IIč 04m-D*b֒p${Tҵ~-kΜ={ZŜ9Gf/cu~_;u~'M?BhmUn~R`IbfP~~AWں;Ā8!#풀'FMJ"nT ;v#4Ҟ#c}g["|BHҰ"$ BHҰ"$ BHҰ"$ BH0h !$i4I-iZ6`13ŷūC`Вz7uz!P:-%$,?p r ..v{ܹ\VV e !T!-җ0 BmGpssX:bǎҥt$ &%i!Pl-@zzܾ]ejjQHO3=0#I\Z/a@!AKO[S*mmJ-tGJ_(V0 uneI -җ0 C~u۠%-OMbh!Pl a<@! %F!P-!$ 4,!I"4,!I"4,!I"4 ZBI-!$M?AK0p`F ,yKE&ŎHڥwJj[OvgEu@ӚMHX7gݺH\"GI@+>ܭ'$,_>j5kf{aO@!dTx^4Fz^{m*7dMyU(-L`'LPkn3ɗJ‘IZ{:$>EՎ@i2t5b"Ӛg1p?+rjwʪGScl7x:w.^Rd U.3$8xy^Ve6nȚt_nذA3r㣏]ɼxMcb&G9$K0(55ƂoLb-]& Qa+fT6؈$)p{S94*{J9gӚͽ38JM 21֯,+ȸyZm"hll޳…!t$~:NQcٿe͛wgO'7JE7eex> F Yo^-x=.:0h I[/w<_fT=CgaanBҹgQZ!I"4,!I"4,!I"4,!Ià%aBH [ΌUk:9;iD?AKܰnC:4%b L2ϽgOK&I|><%%34tWo71o1||\c= Ʒ$1k$M%!L*O*[KLAHs Z"@CCGg'po+ 9dH{ꝝ,,KJ'2uΟW[[ߒbґ]]xD*& )DX CC1׆唞~22 v;w;9633qps2d@~~9w+/K7Z[%ۺ[c<2VIl_Y9*jLllTt$n }mVxqHT>.GBD;&?bԑyy=տ-"< *Z#.IgJ wI@#!sW :h߾A,L'<\%.CO9p7' ឋD|37yI'l|_1{v!Φ}#dGZ#.ɗ5]!nH8?/ED*4m74~I]t-I& ) ZBu[BjࣴBE!$iXBE!$iXBE!$iXBE!$iXBE!$iXBE!$iXBE!$iXBE!$iXB] 5EpժB酚% BHҰ"$ BHҰ"$MaooBuU…o`nnB]GϜ0BHҰ"$ BHҰ"$ BHFH; j(:}:ܹ?#Ni>xs#TaDyϞ E_KYZ=zԲmۉ !ayjjŮ]] zYEGOV(;BHwS _U3>i :jawөyuF`x"XV?S@-ȱW塱~q ?SYPUcy vƹ^qrڡew~&ےnjO:-P!w\E Z#hWWS8{!}`|~q.B'`'Ǚo*66xx rB q$#7̅{=lmdP o^ 2"#sB[C紌Cu\o:pkBqa : Nv5X%}mcqf5Z$BsiI!vz#Qyҍ)C  yI<'w$Bm ΅BCqiwN"  !p:9B!0B!fϞ헺UB!P !B֭m@!jO,$ ck!B}xtrB!`B!5 B!!B!0B!Z!TV֜X˖M7KBC_*Ao14\+VL{JeD-NBy$y^sm3VWTlNN>\5fرȗcƨիyWs ~sMx|jhv"Bz 1X+𥗦X|y,wxw BV;P]+4iOĉ,D";$>n^Qa 5(˗O}QIdVneSWC &''Lx`i+V-_U!P+sde͙:u ]߿/5*55N3))9yyР~fE8qe:u.4t}KQTʫ.>Xc7ҥ;GY=a hq{:vpfÆݕqO;zĈ!j|oF#޾qǏ׿}$g|&B!؆.Qwz6z B(x],{۷O6Ϛ}4AyyjLƍbԩcn~ć[ VP(DBꢷΝZ*U*رn]-D!41b㇤y„`r\(=z6)ibU7nyRyU)SBΜxҵ{ 矩&<˗k a|a !Bjj甗㐐VK'HhõZ-t:DP(F#EQRP1U2&>BӲKjВ?Z[kݷJ,U.%EV;l䇄BA@@3Zݦ'+k>HzᅍM…+Bn??\[|BO111ji,T*"q0 #IIK1 V@,jfL&( !کH?`=xoLBR> & +P $2$뤥(fΜjUPXWW !xR0 EQE-^XՊD"$~DPVVVXXh2XeY8R)鸒JFQ*H~Bð~N !T^ӣֺe~_MM HMw'Ӳꬥsd?ٽ{7ooܸe}֜K(GV__IN$aAs~1.ۓN&Mu׮c'>W^ \/K~TW$6 rU]yfСwZ~3Vܽti޼(o|{dJSLLL||<6r8n˖-%%%$l"'bqDDDQQ)L-Bq B?_{3))9yyР~fE*ii|G/0~?teeUUg,&-z?_*>q3όH Î޿(j{wH㏏>''TU]|晱oKW+w=wr?=IjէV+э/FόwP(hw)| w:N.戈C8]}"qf9??_KRHP(( ]I$R^"Wj"P<0(Wl իT* {QiaӧcS#G}O[-jۏƎ1~O:;1/彻t  k޻wZUuݻw ]#F(-JW_ENg 3g;OP 9W(dV\. @$JH$Hd2hdY`*Xxqqq1MIT F6jz!ڇAZ,Wɱ@ᄏeo;-UO t f.4ltZ/4ooשS?OPXؽ'Vd4noUUNu#.I4SimݺuJZЇkȁR_r]$fsnnnaa!MbXR\rEmٲ/I[RR"ȗE$IR7Du xڴ|s|i0'L&Je]ar\m׮"O.0v>>mZXϞb Abh5jXUGF ZPTMl옎=۾OhƜ;8eJș3/]ֿ3={ }2$Um?N"Q53-7ܬ| bM{X%D.d22<<<0""BPIQdR%E| ;24sٲWow_fР5Khٴԇ~Y:zjW_?|ݖ.vQ'>sj;?mΜ޽ J\ `wݗ㸛7oozlZ'aR{}~ɾbA= ?=NOGJMZ+x[HHbE\@@E]{/m/qji_uNZZ;7u"ZO L|񡤤QQo޼q^|/ ͟,+?Nt9r鿓qqad…hPw<&fuENk;4}+}{ϬVoo۶Cs>9s.ܹ9^]ςJHHSz}~~>r`'996mڴi&SE4 Ⱥ<0ØYcMïWP0p`?7v4|:](YܳTTt.чvam``כ7o[{Ҙ_ ӧvƗ_?C{~N1bpVյNOo*Ν֬yt'W vyv}np#.^}$un_0Vkmm]z$v|dCS|#x۶$K;y'?ߒ55'MnDv˹#\,]X{hFE$ `X99b|eĉhط͵Vh)''ݷIZښ+Xgm토vɻJ|n8|X,HJ%˲d_hXWTTT\\LQIaj0q/eF$4Vɍ: <9ܼ9s[oz:76vy55,?&ۻdjjlEӧ.+ufÆݕA"SgU(6KKds;_.KQ5z7? _ӃW^J{yq͵.*jLn];qzPrߜn:9'D:Hd;aBR;9L&X\TT4-[PT*QT|.RZ&IMܼPGG+o89ر|~$[bsM8جFzH[>}~Gaosv/ul͚ '>8kV~OIsӍ#vKdm9}f=JU28x`lۘldgL:6Q*V'^wռoUOQ5II>ܚ dB3d2L&#cm'LDbR ) ),,ܸ8>~8.33SѐQ?d2MJ'۸?t2.))t&H$'=Y~nJ>v[Wd꯿^׫G]نXBA]U$ 7s?i6_2$"rȐ Ξht=%6 kUU]Xqro7 |ݻlsE䓡W0k$uS$6Hqlnx!!y E Xl$ ɜD"QJJJ~~>h4ZP(JPa;R~$f",˚Lpfrpݻ Oz:_Ֆ?C#^\CV۔vX1ͮ:1mXVY"O6n%Kdms{0TN>dFJ @|||IIT*U(dEuNy:]ۙWt55,YEĉ]BAAAK?R[[{Nͥ 7*KJ0ɓ?_Ys;؇&:+`&%˹[ 99% M۷j]_v;wѪWo_ճ$%E^v}jkdtZW'.֭K``Wٸk~Y&qziN[a\ع/|&Fr@&㻸U{Y^ډBtr(WXefҥ|(D=%%% j5_ҥKb10dFyXXw/'uB6»qj"yd# 'Aðۀ?o08 HTXXHb)B!fB1qqq8TJO$f RHF2EDDpg0]B!ԙBT:)$$l6rXL2Im I:(eI*J?(,,iiυB!Ԍ|@hFZ& H %JID:QT/d2FCQ`(,)B!jn>䅅 l.++ aaa2,333::2 k׮㯲_%Hև6uxKLZnOk-ZdK9ڭ@?M @*,LJaaah)Lje2EQ4Ms**>_Pw1r;;BCEĤfT* 'xI"d22wJ&m^!jn Bm[*t `LVIR2 z˲$G9M Ƒ_;Hu`B?C(F3P>we 0 )!;%YVW/-Z CG IDATa'?$ Μ9wuMʚ`WtEEQ~A /lSD%d~jzHcV(L,Dc~7eJ!B7B!P'4yO?-aZZZL#wr^@V֜##GHɷ E#ٳ{^'Αwx5'ҥk+01>}zZlo2 ii^EN6PѤP#'gnk7S(%3fUZPՌo0zpÆ=ɑW0oU~|NO/ػT|8:))9jUͥ  -6- -iק ,Z(@3 OEq*ȑp{#Gয়~5}%|*ܮcRSc#zxSTǎgDhށ{>D| FvoΝ;d]]Ցcg}C.ePGJ&)##l!FnHNNhڤ{{{no{'iƱɫ(|@~="Pv'ؽiao_E]h:3F r`99rCgaW 8(Adv*}sUhulB17d2Ig@4Ӑ̀ȍV(cK9N* FȎђN4&WW-S>ں[nozlL砠sFXOGn0Ww>VܽG:'Lx 2AZ[[ߛt-Z'@PYi&JJ5;7{-_>@[$$_". PZznݺVm},2Rs̅:B~ HORi4X,b1IVq˲ Pe6-6g+4t|/2s߾pᙙii|HH4cQw03o7G͛0xp3'V] dA͚^@wС3aa pzqW>&B3kj甗cFCJ5kzD"8N,)C Q(F(Dbj5UN)&++f$!x/餤?ҭ(##BS~N޺uǓ:ׯ߭Rǎu?oݺ=lVn ZQB();;[Vgggd5kW\IEcB_4b1r> {ɏf8?m'i"8MdД R';=ݽ{WNkp:_~xȷV9ĦUNvZg~=-.3<| ŽtBnBqa>~?~rr2'$$]6%%V\9|2aT0 ˲dv9)Tq0Jh4J6w[\t$ͦ77o]Uυh#jt~W^԰9*f:O4ISQqZr֙810P((((A!7sv%?<>>~ڵrϟ&I$M,˒\KȬ)q&*W,sZoψPr1W Qcv_nO{V ֍9F8ο#Nٞ|g#B1;9?t:L&J@$(%%e˖-J"'9H$U!L&STkM9sB^&փPG"''8h-/[򙧞'X !F2GS,U*dK3$$D$UVVj9aD², x$"]P@"d2 | Cu }wgk7!K/T~~>9Pd80IőRFQ"خ#%`ENL&IB!<|f8::Z$~#-%HD?4F/|?GzHB<B!P3:gArIģtM1yc)DbXD"T*ψP9BI HX,&l?,(?cYb(J[ xz:_/+ܗknQGcE6َ FÇDV@ y|/oȌ(ZM!P'D~O<1斩ulކPAX,&I%5 4DBr\*$*"ɟHd64̦2di'Ͳ! ~R<5…+Bj?Iq[l-KtEE޽$g}~`@/F$S`Ak^q͛n=`6_W'>sj;?j&Mq5͇?r{_κ*:*B(2&t|`X,r222 ?iETr'hz,ij~}{{noBm)SB VOHt^ùsԚ5lC!|pPR$WY}SV+^47f:4(0Pj56w!bm&aD"QQQQrr2T@Fl'Hzlc)|ImU !ݻͫy +k'ꁻwHL#wr^8-@ٵѪK`>ɑN WSܙ\u:evDMĉ!b߾Cv5 r@θƍmE6DذݣF9)5#KE!.E"QIII\\T*K P俶Hf7q&zE!BN514tB_~}axHrfƌ𲲪}*3fgf;-VI$T <3V"3 ;~zJχ۪F?nrS1y{_x\5GG?\VV}}Xӭ[~eǎ5582l(<##cʕ!D5kǓ9REEEw;?5뽗,ao%f6[PZdBann 9ן+R7lGM ;ՕU{_9ro|ZZzUi(VZ SYv_*0@z22RW_'OIJ%Cw!D"(+"p˲3'|ch l˛IlBͪљknqUn MIؿ򥗦\z/~mgidKKF|B?|Йm˲e[-ZWg]l]ԔwC,Bƍ_:zJ%(~;|ǭ]6%%H˗GGG@DDr۹PD"EQ B CII߼ygƽnJ~[έCϞ O<1v'9Uo? "Q9x椤kn@mձٶ5i+kn~׎|ns|ynݺvux΅ ȅ}G"y cbb芟8]RR²… SRR_V"yB# \)oI;q??l]WcWs }≹O>9o󍮴wUDSMyݺϛf5kj|NNQIoB4Q B:'ӞU*UQQNt .8 **4CydŊ8gG-I~)M5Lͨc12Ͷ[ s.]h手DtNG2Z`/::Z.7e] 1wnu/!1Zx!/KknQGu # k 'Y&""6<D)))@HF6!eJ%0v)7Ojڜ`_^ZVkZB~|α斩uH>Bbd,4&M… ׬YٞH?YpGb/rLLL02)aܹdҠ'G^EQYYsΟ`Wqu:-dR?< +k !PGK]\\'i_@Ӵp2|…eee|hJeFFFTTTeeettl/h4aaaE4 / j'«(*=$X<̭k0YB!%R((vd$ɦMr;P:| WGQ[kݲedѢ?#u'Lx 2AZ[[]EEUV^ؽD !jy>Q&0Wٍ,P\\ŏD"' IVII &?`+C,Wn ̘HIӧ̓5+t_5͛!x?s愷*˗԰=zvUrGB$6hɒI81uHυ),,T(bА$nL&(*!!!99H.[,4iӦpT^^NQ~H1|"j#~s_?IRD{]]]w/<}̙9bpWǖiB;>!aچBPV?+JʤRB`q3X,...fFVsW^^^\|qjܜ6*??9޵~JlNjYx`%˯]Ӯ0ylb-DGN" !116L&L&JYdFT*dr\,0 =oP86WgA!Pkz֭fg#PT@QX,4MKRTʯLQ$(h$+~9?SBYyaNZTQJC5qSvv}w5UΏsdѢ]Ԏu` l@QcO$_H4,^Kf"'u0o0eJk[lAdCww驽%VXMvceG&ܷ@fbac؀dZZ>;wN=)|ݻܼy{ƽ/;LO!eʕnzC(jl7 pLӟV`eSW*ޑ#Տ?>b{N[^yЪ' ʁA/]'LV4iw]h GͿ\.=jF:]BykPCZB()&&FR\X%{䅄hZVKBdhbZ&C{ `0?gϿ9jA}3װAϘ7G&?CE QgΓU?y{mPv'Ͼ>%MyBulPS||ܱ'jCM^yuN%o۶NdAȿ0B-t:\.X,$%%EՒ섄NDz,#c|,r ) HRJURR!K7<<4IKOjM{gO?u?Al5$F]ꞷ;sNI3n]orw>$ )G?#Ixmm]ׇON QTz֓ ;X۾cGO/r恡H+9ǗtG $.q}/jnj"vQ{?*䭛;q::m7q#LP%5*l6'''GEE~Ⲳ2Rhȗ0 h4rtR 'S,˲,K(m*tT>A]Ɵy8CO.r&?̟qݺvu;uvw U[W&` VZk7z1q!=e'y8ՠSs.^}c!9὾-?\Qs[wXAiocr|ԖJ1,{BI$u: wH a]h4zTjU*J⧙/_^TTD!g(R(,֚5'}zj͟p|Qew$ϼ8j0'?Xks[_\\?|H`~[&ݾýɛTk>!9}gU9ZWO?l<b@%ION{RֱmQ{m'}j@ xkCuպʪr8!/7x᳐'$$(&&&..']2>>dP( 2É\k.D"Qzzz~~> 0 Md\OIdySlSk~BajM/^ DBOO KYWt&&sB  U}k/>`/BЙ4`@ا#q:yXXX,iZ"燄T*RRR򊊊J%q Id9૿H$iɅ,Z,Je46W4>X>&{;Ջg]u|ZzZB]dtB(r JɆ-$JOO' X #m y ??0;;[,rRIH\*z>g]CAՊ{`>^WMdOt2ޟ}B]o ,T$^p! Oɤe2YDD_pNS*dJ8M[l1bl6j\N2Eq˲ .$H$ȨoVCqB!ə;o^$<\ÌV]eX!"CxdLl\vH$b&==(**ZfMFFl6DTDEEOD"J&C!Pۑ3$& FDDHRTj4IR\tiyyyDDDDDmˊ׮]+Jm#'BmGV֜ wFʚsPq}tduٲWowUӅu :#!I* ,Z?Y2&߈"R_$fYY؄\|O`١HT!ZHZZUܩ O)SB]m}xBЫ ]L&(g%HDjNe˖ j^O:MF($ VH$' !UT͋gO2Y矏޽͛7n{2 iibI~v>VܽG.Xᩧos_~Y?5J~}ɢEGR[[w[W>nz&&>ڧOZ-<]/RaHG6;h.++#XLOQDrX, ɮIvD!ڋa 3ʪV?tjƌpHK+MK+ !l?YruG%_>l=>q>l͛Y򓴴m۾9s8|fxU7&$U^Bb!3IDbFTʣ6mD oφB͇PTMVWHi!{[؝9r8zbz9?ҭ(##ѱZ}wnJۼ >34EQr&3 C2wB-]LH$d؎iLqT*#Td2\"""OBmoF!5jXUڮ]El#f9<*xG{jwݻw 8(Aͅ1_b!$~UFҥTVVFh4EEDD&$$8p+1112$D@ p6۽?>41*j͛w6nϊ^ZznݺӡP{1oz(u'.uWI򊮦5fm?n[HHbE\@@E]{/}!Trrrnn.qEs,2-\lg~&b!}|LEGGHRQ'8@VTU󎙟3E]{qdǎ#n&B6j'xݺ"bVN'_x1I l#*2#$׮]K= Xqq1YeKB!Ԝ|#{_w] ]82w3BlfZۈوX˜݌myX'lbq,JxxnTsnyQhi|iz6y87CS~Ҝ||=DbWWh;h<JR[[[`\pnޫ("֎gqן1_.,\[wky?p^oC6U#nX<ݟ+&@㼗m?\|~_|@|胱7Ż+c=0/g}/:,3Έ_&jWm{?[>qӭ;6]|)l/OmD{|CM:0Wz{[5P#1<<\*JR.:444D\T̈7?řgFD?<1"qf.޺*;z⃿~qvʈE'|k;""7L)9z[+|gM>KDĴSD\w^:1Λ>:qGęgc={`jׁ9ۻ6f.E$Bu׆y13?j~7n%K}QSϸw?_?F}c|7~(>]?~gUO>}7~}h8qQ<5,SSLB=s5;w^sL~*VQU===;w^3283#7n7?UgK44>~WNݫ[+_ʗh8>xizӯŝOlk5mϸfߗ""hxa%wǗ={nM9jׁ49?=ۙT36 s5liiijj[Tr\\:T'oƍ/>7vW-7ZOgtX*qkoƸvmG>o?'OY~4.]\<PKO?UVęOo'.[g_;mx?_fM-vU|u׮]ۛ Bo^("bǎ|>755566>|8ۖ8mݺuժUݩWmwt9q1ĕW烓'ቃ^EΊRR*FFF+_ >*aFL?BU*_槫Rditt\.744AuǎCCCyYj-xccPF{3[Njjr޽{&e˖o߾'ϯ\rϞ=Wl]/PJq``^]0m60HL3BUӖ-[422R___*ۋmZZZ;00Y*ۗE}Ս澾UD(`n*&ܼ~ضm@KKKWWW___OOOXbU*ByXzu___n\cCCPDX,i ">^Nk={dYRܼrʞ)"mVWW===ٻxݝ垞YlÇ ¤nHr젺~6mںukkkkP mmm---TlٲT*YUJooDƍGFF& `^IP۷Ot/RÇXzu\Φ-[h[{BapS35f4ڲb𞞞,B֥KV_R__MƈطoX\.[nk6"FFFVR4#TP&uv]TmOw`___lb)KN ގ;O조k׮zY8WR#Dzu|>ӓ-eO|~hh~PCCC)*`Drm۶U*Jښ%ᖖ2`^IPYxUADՕ偁KfwߟKDD\۵kƍZFFFrssswwwD\rtt.XJnl=6ye:z5[޽; ٳyٲeY9yDٳgcccJ9"6nܘ5ܵkWgY `H (R)"|rBjٹsgwwwcccOOO}}}ݻwJJRTsx|lllӦM_vB EtI"\.O(ꪯ`V`inn^zuV 6mrbqժU1wT9qDdO@Z*Ul.*KQɞ-[DDVlmmꫳ\e6>f)n0lf\.T"hDk͛7[3+T*[l9x`m۶eWnܸ1"ZZZ,e=e*xF2J(bg<]-UK$444%,?ڵ/KH0Y;򾾾ȶϛNqV od mY-TˮlnlllǎsRjժ,e+mmmY ##ܚ 0><,EeHYxVٓQm߾P(lܸ12ZjUu!Z<ب0%;wFDu /{#/J٫ylٲ777gݸq#_.ȺW"i1Y˺eV_ʫ!U*RRWWWVU>Ugrkk䴴cǎJR*i~C7xz.GtQR T\.777g;e]uWҒUGeDKmIIDAT^&?eLٿR]afuorxڱcG>뮻bҤ޽{6Q?=s`LkjF,UPjuk׮|>~=ž}e0L/vvvfՕJjWjIK1||{mwVT802 ֦2͇FFF B.EeN1<+VJ%g G Sa5~PD(d"@2 LH&B$PD(d"@2 LH&B$PD(d"@2 Y;6lXfs;̩F8thv8#GGLe! LH&B$K('?ko@#ToڣGqǚ%KRVۅ,?-zBU9k{#byD99@2 VPYxV?>xz^9հѣ'Rq`0Bmݺuƍ[n7\N O< e Xj;tj^ lMfP'@-@0BY,VPzf ^PD(d PG<\q, 6lXQq, aP Lₗ₹PΣMKs= `' Y X@\XHB$D(P@" @~)'PN$2 LPN$"CD( H B99,@2 @99LP$:Zo8NjÆk1c+ HPN~pqbG<T3U+EQQYjjP]߼o0;q3)j"?Eoн5WTS(`nNYVAMV} or[ʡ$Z3"XQ= o' lD5WW4 8@{$Y :kPy&Xj> m/yAZ?`$B]xYɧPeb 35w|',EeO7op!³κ~uW,3&ODED~utyO&SP3PS1i2 Xj,HOSYl *SNX~nRO'`Am&`1G@2 ,ȑk7T#Ԇ +j:T#ԭ>Pq  y n'f W$֚v Y"8մZS|nzIk#c9;oՌ?` 7핾P=\yeYs>`vd!.;_k\QZ7M|+dɒ=`vF9%\2 O8޵SOfAQ"13OfӚ5wN ɳ䙎kO 3hrfj=;益Z˒L5a-Ԓ%K=zqS,Js? GQ0, 5Puỗ]{.{BlZ-=kw~Wwի#b,ʏWx";ݳ5ӯ1޿j&˪?~잓4.?FkStmD0/r+kwZEcɫw/mF~F8l!С޿&`!ʗbK-0jFmvmLAl75>>?{(y,O);?[ꏷ\uQG;5Y>l{i򏦠ys^kk40op:U?MAxo[|b~?yg=~S˿#yq>g^]w'O`5P}0xՓMMw@D|kxGOϽϿ#쳟;kfG<6 LA#|ommg3=,Ȁy`;F~F~oyKkĦG.輈xk^oOP\9ϙуG^x3 y?x?ٿ{{'xSz0;G??o3_Vy晣?'bԖpkz|}|ヌw,s O"N=BmذX@N5BM Xm^3CͽARW:4  X/T.۰a)^9,Z'[rsZ`9YrMqRYwnIXNPkkgF޵1s)J-eiP"753~XjɊY(d"@2 Z(`њ-'%Bӆ +jws XnSlzIKCO|W$PD(d"@2 LH&B$PD(d"@2 LH&B$PD(d"@2 LH&B$PD(d"@2 LH&B$PD(d"@2 LH&B$PD(d"@2 LH&B$PD(d"@2 LH&B$PD(d"@2 LH&B$PD(d"@2 LH&B$PD(d"@2 LH&B$PD(d"@2 LH&B$PD(d"@2 LH&B$PD(d"@2 LH&B$PD(d"@2 LH&B$PD(d"@2 LH&B$PD(d"@2 LH&B$PD(d"@2 LHʑ#"8mذv7[8˦D(`:thL{O99@2 L-zr͚;NfEnjZ:"`rf:""KN3B~rT~  `D(dִo9) X)Z$j+z||˗_Y/!-{z:th_2oF@2 LH&B$PD(d"@2 LHdۏPz+.x+.jJfwh/,P;"0'`qP ,Gz Lz ̒G=37{Z.x# LH&B$lV9tIME QHHIENDB`jpilot-1.8.1.2/docs/jpilot-dial.man0000644000175000017500000000231510510547162013742 00000000000000.TH JPILOT-DIAL 1 "November 22, 2005" .SH NAME jpilot-dial \- generates the DTMF tone signals used for telephone dialing .SH SYNOPSIS .B jpilot-dial .RI [ options ] " number" ... .SH DESCRIPTION .B jpilot-dial generates the DTMF tone signals used for telephone dialing and by default sends the signals to the sound card. It can be used for easy dialing, simply put the telephone microphone near the computer speaker and let the software dial for you. It is intended for dialing from within database programs that also store telephone numbers. .SH OPTIONS .TP .B \-\-tone\-time milliseconds, default 100 .TP .B \-\-silent\-time milliseconds, default 50 .TP .B \-\-sleep\-time milliseconds, default 500 .TP .B \-\-output\-dev default .I /dev/dsp .TP .B \-\-use\-audio default 1 .TP .B \-\-bufsize default 4096 .TP .B \-\-speed default 8000 .TP .B \-\-bits default 8 .TP .B \-\-lv left speaker volume .TP .B \-\-rv right speaker volume .TP .B \-\-table\-size default 256 .TP .B \-\-volume default 100 .TP .B \-\-left default 0 .TP .B \-\-right default 0 .SH SEE ALSO .BR jpilot (1) .br .SH AUTHOR This manual page was written by Ludovic Rousseau for the Debian GNU/Linux system (but may be used by others). jpilot-1.8.1.2/KeyRing/0000755000175000017500000000000011702310021011516 500000000000000jpilot-1.8.1.2/KeyRing/README0000644000175000017500000000210711134157557012344 00000000000000This is a J-Pilot plugin program which provides an interface to KeyRing for PalmOS. KeyRing is a Palm application that stores records with 3DES encryption. More information on KeyRing and downloads can be found at: http://gnukeyring.sourceforge.net REQUIREMENTS: GNU libgcrypt is the default library used for encryption as it has fewer usage restrictions than the alternative -- OpenSSL libraries. Use of OpenSSL can be forced by passing --with-openssl to the configure script. There is no autoconf (configure) detection of OpenSSL. If you have not installed the libraries in the standard location you may have to edit the Makefile appropriately. BUGS: There is one major bug that I know of. When you change the master password on the Palm KeyRing program it will re-encrypt all the stored password data. If you have unsynced records in J-Pilot, they will not get re-encrypted and will be garbage. I could fix this, but its just too much work. Just sync before changing your password. Sort order isn't the same that as on the Palm. Judd Montgomery jpilot-1.8.1.2/KeyRing/keyring.c0000644000175000017500000023671611702304470013304 00000000000000/* $Id: keyring.c,v 1.118 2011-12-22 00:46:49 judd Exp $ */ /******************************************************************************* * keyring.c * * This is a plugin for J-Pilot for the KeyRing Palm program. * It keeps records and uses DES3 encryption. * * Copyright (C) 2001 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /********************************* Includes ***********************************/ #include #include #include #include #include #include #include #include "config.h" #ifdef HAVE_LIBGCRYPT # include #else /* OpenSSL header files */ # include # include #endif /* Pilot-link header files */ #include #include #include /* Jpilot header files */ #include "libplugin.h" #include "utils.h" #include "i18n.h" #include "prefs.h" #include "stock_buttons.h" #include "export.h" /********************************* Constants **********************************/ #define KEYRING_CAT1 1 #define KEYRING_CAT2 2 #define NUM_KEYRING_CAT_ITEMS 16 #define PASSWD_ENTER 0 #define PASSWD_ENTER_RETRY 1 #define PASSWD_ENTER_NEW 2 #define PASSWD_LEN 100 #define CONNECT_SIGNALS 400 #define DISCONNECT_SIGNALS 401 #define PASSWD_FLAG 1 #define KEYR_CHGD_COLUMN 0 #define KEYR_NAME_COLUMN 1 #define KEYR_ACCT_COLUMN 2 /* re-ask password PLUGIN_MAX_INACTIVE_TIME seconds after * deselecting the plugin */ #define PLUGIN_MAX_INACTIVE_TIME 10 /* for password hashes */ #define SALT_SIZE 4 #define MESSAGE_BUF_SIZE 64 #define MD5_HASH_SIZE 16 #define MIN_KR_PASS (20) /* Minimum auto-generated passwd length */ #define MAX_KR_PASS (25) /* Maximum auto-generated passwd length */ struct KeyRing { char *name; /* Unencrypted */ char *account; /* Encrypted */ char *password; /* Encrypted */ char *note; /* Encrypted */ struct tm last_changed; /* Encrypted */ }; /* My wrapper to the KeyRing structure so that I can put a few more * fields in with it. */ struct MyKeyRing { PCRecType rt; unsigned int unique_id; unsigned char attrib; struct KeyRing kr; struct MyKeyRing *next; }; /******************************* Global vars **********************************/ /* This is the category that is currently being displayed */ static struct CategoryAppInfo keyr_app_info; static int keyr_category = CATEGORY_ALL; static GtkWidget *clist; static GtkWidget *entry_name; static GtkWidget *entry_account; static GtkWidget *entry_password; static GtkWidget *keyr_note; static GObject *keyr_note_buffer; /* Need 1 extra slot for All category */ static GtkWidget *keyr_cat_menu_item1[NUM_KEYRING_CAT_ITEMS+1]; static GtkWidget *keyr_cat_menu_item2[NUM_KEYRING_CAT_ITEMS]; static GtkWidget *category_menu1; static GtkWidget *category_menu2; static struct sorted_cats sort_l[NUM_KEYRING_CAT_ITEMS]; static GtkWidget *pane = NULL; static GtkWidget *scrolled_window; static GtkWidget *new_record_button; static GtkWidget *apply_record_button; static GtkWidget *add_record_button; static GtkWidget *delete_record_button; static GtkWidget *undelete_record_button; static GtkWidget *copy_record_button; static GtkWidget *cancel_record_button; static GtkWidget *date_button; static struct tm glob_date; #ifndef ENABLE_STOCK_BUTTONS static GtkAccelGroup *accel_group; #endif static int record_changed; static int clist_col_selected; static int clist_row_selected; #ifdef HAVE_LIBGCRYPT static unsigned char key[24]; #else #ifdef HEADER_NEW_DES_H static DES_cblock current_key1; static DES_cblock current_key2; static DES_key_schedule s1, s2; #else static des_cblock current_key1; static des_cblock current_key2; static des_key_schedule s1, s2; #endif #endif static time_t plugin_last_time = 0; static gboolean plugin_active = FALSE; static struct MyKeyRing *glob_keyring_list=NULL; static struct MyKeyRing *export_keyring_list=NULL; /****************************** Prototypes ************************************/ static void keyr_update_clist(GtkWidget *clist, struct MyKeyRing **keyring_list, int category, int main); static void connect_changed_signals(int con_or_dis); static void cb_clist_selection(GtkWidget *clist, gint row, gint column, GdkEventButton *event, gpointer data); static int keyring_find(int unique_id); static void update_date_button(GtkWidget *button, struct tm *t); /****************************** Main Code *************************************/ /* Routine to get category app info from raw buffer. * KeyRing is broken and uses a non-standard length CategoryAppInfo. * The KeyRing structure is 276 bytes whereas pilot-link uses 278. * Code below is taken from unpack_CategoryAppInfo in pilot-link but modified * for the shortened structure. */ static int keyr_plugin_unpack_cai_from_ai(struct CategoryAppInfo *cai, unsigned char *record, int len) { int i, rec; jp_logf(JP_LOG_DEBUG, "unpack_keyring_cai_from_ai\n"); if (len < 2 + 16 * 16 + 16 + 2) return EXIT_FAILURE; rec = get_short(record); for (i = 0; i < 16; i++) { if (rec & (1 << i)) cai->renamed[i] = 1; else cai->renamed[i] = 0; } record += 2; for (i = 0; i < 16; i++) { memcpy(cai->name[i], record, 16); record += 16; } memcpy(cai->ID, record, 16); record += 16; cai->lastUniqueID = get_byte(record); return EXIT_SUCCESS; } int plugin_unpack_cai_from_ai(struct CategoryAppInfo *cai, unsigned char *record, int len) { return keyr_plugin_unpack_cai_from_ai(cai, record, len); } /* Routine to pack CategoryAppInfo struct into non-standard size buffer */ int plugin_pack_cai_into_ai(struct CategoryAppInfo *cai, unsigned char *record, int len) { int i, rec; if (!record) { return EXIT_SUCCESS; } if (len < (2 + 16 * 16 + 16 + 2)) return EXIT_FAILURE; /* not enough room */ rec = 0; for (i = 0; i < 16; i++) { if (cai->renamed[i]) rec |= (1 << i); } set_short(record, rec); record += 2; for (i = 0; i < 16; i++) { memcpy(record, cai->name[i], 16); record += 16; } memcpy(record, cai->ID, 16); record += 16; set_byte(record, cai->lastUniqueID); record++; set_byte(record, 0); /* gapfill */ return EXIT_SUCCESS; } static int pack_KeyRing(struct KeyRing *kr, unsigned char *buf, int buf_size, int *wrote_size) { int n; int i; char empty[]=""; char last_changed[2]; unsigned short packed_date; #ifdef HAVE_LIBGCRYPT gcry_error_t err; gcry_cipher_hd_t hd; #endif jp_logf(JP_LOG_DEBUG, "KeyRing: pack_KeyRing()\n"); packed_date = (((kr->last_changed.tm_year - 4) << 9) & 0xFE00) | (((kr->last_changed.tm_mon+1) << 5) & 0x01E0) | (kr->last_changed.tm_mday & 0x001F); set_short(last_changed, packed_date); *wrote_size=0; if (!(kr->name)) kr->name=empty; if (!(kr->account)) kr->account=empty; if (!(kr->password)) kr->password=empty; if (!(kr->note)) kr->note=empty; /* 2 is for the lastChanged date */ /* 3 chars accounts for NULL string terminators */ n=strlen(kr->account) + strlen(kr->password) + strlen(kr->note) + 2 + 3; /* The encrypted portion must be a multiple of 8 */ if ((n%8)) { n=n+(8-(n%8)); } /* Now we can add in the unencrypted part */ n=n+strlen(kr->name)+1; jp_logf(JP_LOG_DEBUG, "pack n=%d\n", n); if (n+2>buf_size) { jp_logf(JP_LOG_WARN, _("KeyRing: pack_KeyRing(): buf_size too small\n")); return EXIT_FAILURE; } memset(buf, 0, n+1); *wrote_size = n; strcpy((char *)buf, kr->name); i = strlen(kr->name)+1; strcpy((char *)&buf[i], kr->account); i += strlen(kr->account)+1; strcpy((char *)&buf[i], kr->password); i += strlen(kr->password)+1; strcpy((char *)&buf[i], kr->note); i += strlen(kr->note)+1; strncpy((char *)&buf[i], last_changed, 2); #ifdef HAVE_LIBGCRYPT err = gcry_cipher_open(&hd, GCRY_CIPHER_3DES, GCRY_CIPHER_MODE_ECB, 0); if (err) jp_logf(JP_LOG_DEBUG, "gcry_cipher_open: %s\n", gpg_strerror(err)); err = gcry_cipher_setkey(hd, key, sizeof(key)); if (err) jp_logf(JP_LOG_DEBUG, "gcry_cipher_setkey: %s\n", gpg_strerror(err)); for (i = strlen(kr->name)+1; iname)+1; i0xFFFF) { /* This can be caused by a bug in libplugin.c from jpilot 0.99.1 * and before. It occurs on the last record */ jp_logf(JP_LOG_DEBUG, "KeyRing: unpack_KeyRing(): buffer too big n=%d, buf_size=%d\n", n, buf_size); jp_logf(JP_LOG_DEBUG, "KeyRing: unpack_KeyRing(): truncating\n"); rem=0xFFFF-n; rem=rem-(rem%8); } clear_text=malloc(rem+8); /* Allow for some safety NULLs */ memset(clear_text, 0, rem+8); jp_logf(JP_LOG_DEBUG, "KeyRing: unpack_KeyRing(): rem (should be multiple of 8)=%d\n", rem); jp_logf(JP_LOG_DEBUG, "KeyRing: unpack_KeyRing(): rem%%8=%d\n", rem%8); P=&buf[n]; #ifdef HAVE_LIBGCRYPT err = gcry_cipher_open(&hd, GCRY_CIPHER_3DES, GCRY_CIPHER_MODE_ECB, 0); if (err) jp_logf(JP_LOG_DEBUG, "gcry_cipher_open: %s\n", gpg_strerror(err)); err = gcry_cipher_setkey(hd, key, sizeof(key)); if (err) jp_logf(JP_LOG_DEBUG, "gcry_cipher_setkey: %s\n", gpg_strerror(err)); err = gcry_cipher_decrypt(hd, clear_text, rem, P, rem); if (err) jp_logf(JP_LOG_DEBUG, "gcry_cipher_decrypt: %s\n", gpg_strerror(err)); gcry_cipher_close(hd); #else for (i=0; iname=strdup((char *)buf); kr->account=strdup((char *)Pstr[0]); kr->password=strdup((char *)Pstr[1]); kr->note=strdup((char *)Pstr[2]); */ kr->name=jp_charset_p2newj((char *)buf,-1); kr->account=jp_charset_p2newj((char *)Pstr[0],-1); kr->password=jp_charset_p2newj((char *)Pstr[1],-1); kr->note=jp_charset_p2newj((char *)Pstr[2],-1); packed_date = get_short(Pstr[3]); kr->last_changed.tm_year = ((packed_date & 0xFE00) >> 9) + 4; kr->last_changed.tm_mon = ((packed_date & 0x01E0) >> 5) - 1; kr->last_changed.tm_mday = (packed_date & 0x001F); kr->last_changed.tm_hour = 0; kr->last_changed.tm_min = 0; kr->last_changed.tm_sec = 0; kr->last_changed.tm_isdst= -1; if (0 == packed_date) { kr->last_changed.tm_year = 0; kr->last_changed.tm_mon = 0; kr->last_changed.tm_mday = 0; } #ifdef DEBUG printf("name [%s]\n", buf); printf("Pstr0 [%s]\n", Pstr[0]); printf("Pstr1 [%s]\n", Pstr[1]); printf("Pstr2 [%s]\n", Pstr[2]); printf("last_changed %d-%d-%d\n", kr->last_changed.tm_year, kr->last_changed.tm_mon, kr->last_changed.tm_mday); #endif free(clear_text); return 1; } static int get_keyr_cat_info(struct CategoryAppInfo *cai) { unsigned char *buf; int buf_size; memset(cai, 0, sizeof(struct CategoryAppInfo)); jp_get_app_info("Keys-Gtkr", &buf, &buf_size); keyr_plugin_unpack_cai_from_ai(cai, buf, buf_size); free(buf); return EXIT_SUCCESS; } /* * Return EXIT_FAILURE if password isn't good. * Return EXIT_SUCCESS if good and global and also sets s1, and s2 set */ static int set_password_hash(unsigned char *buf, int buf_size, char *passwd) { unsigned char buffer[MESSAGE_BUF_SIZE]; unsigned char md[MD5_HASH_SIZE]; if (buf_size < MD5_HASH_SIZE) { return EXIT_FAILURE; } /* Must wipe passwd out of memory after using it */ memset(buffer, 0, MESSAGE_BUF_SIZE); memcpy(buffer, buf, SALT_SIZE); strncpy((char *)(buffer+SALT_SIZE), passwd, MESSAGE_BUF_SIZE - SALT_SIZE - 1); #ifdef HAVE_LIBGCRYPT gcry_md_hash_buffer(GCRY_MD_MD5, md, buffer, MESSAGE_BUF_SIZE); #else MD5(buffer, MESSAGE_BUF_SIZE, md); #endif /* wipe out password traces */ memset(buffer, 0, MESSAGE_BUF_SIZE); if (memcmp(md, buf+SALT_SIZE, MD5_HASH_SIZE)) { return EXIT_FAILURE; } #ifdef HAVE_LIBGCRYPT gcry_md_hash_buffer(GCRY_MD_MD5, md, passwd, strlen(passwd)); memcpy(key, md, 16); /* k1 and k2 */ memcpy(key+16, md, 8); /* k1 again */ #else MD5((unsigned char *)passwd, strlen(passwd), md); memcpy(current_key1, md, 8); memcpy(current_key2, md+8, 8); #ifdef HEADER_NEW_DES_H DES_set_key(¤t_key1, &s1); DES_set_key(¤t_key2, &s2); #else des_set_key(¤t_key1, s1); des_set_key(¤t_key2, s2); #endif #endif return EXIT_SUCCESS; } /* Start password change code */ /* * Code for this is written, just need to add another jpilot API for * cancelling a sync if the passwords don't match. */ /* End password change code */ /* Utility function to read keyring data file and filter out unwanted records * * Returns the number of records read */ static int get_keyring(struct MyKeyRing **mkr_list, int category) { GList *records=NULL; GList *temp_list; buf_rec *br; struct MyKeyRing *mkr; int rec_count; long keep_modified, keep_deleted; jp_logf(JP_LOG_DEBUG, "get_keyring()\n"); *mkr_list = NULL; rec_count = 0; /* Read raw database of records */ if (jp_read_DB_files("Keys-Gtkr", &records) == -1) return 0; /* Get preferences used for filtering */ get_pref(PREF_SHOW_MODIFIED, &keep_modified, NULL); get_pref(PREF_SHOW_DELETED, &keep_deleted, NULL); /* Sort through list of records masking out unwanted ones */ for (temp_list = records; temp_list; temp_list = temp_list->next) { if (temp_list->data) { br=temp_list->data; } else { continue; } if (!br->buf) { continue; } /* record 0 is the hash-key record */ if (br->attrib & dlpRecAttrSecret) { continue; } /* Filter out deleted or deleted/modified records */ if ( ((br->rt==DELETED_PALM_REC) && (!keep_deleted)) || ((br->rt==DELETED_PC_REC) && (!keep_deleted)) || ((br->rt==MODIFIED_PALM_REC) && (!keep_modified)) ) { continue; } /* Filter by category */ if ( ((br->attrib & 0x0F) != category) && category != CATEGORY_ALL) { continue; } mkr = malloc(sizeof(struct MyKeyRing)); mkr->next=NULL; mkr->attrib = br->attrib; mkr->unique_id = br->unique_id; mkr->rt = br->rt; if (unpack_KeyRing(&(mkr->kr), br->buf, br->size) <=0) { free(mkr); continue; } /* prepend to list */ mkr->next=*mkr_list; *mkr_list=mkr; rec_count++; } jp_free_DB_records(&records); jp_logf(JP_LOG_DEBUG, "Leaving get_keyring()\n"); return rec_count; } static void set_new_button_to(int new_state) { jp_logf(JP_LOG_DEBUG, "set_new_button_to new %d old %d\n", new_state, record_changed); if (record_changed==new_state) { return; } switch (new_state) { case MODIFY_FLAG: gtk_widget_show(cancel_record_button); gtk_widget_show(copy_record_button); gtk_widget_show(apply_record_button); gtk_widget_hide(add_record_button); gtk_widget_hide(delete_record_button); gtk_widget_hide(new_record_button); gtk_widget_hide(undelete_record_button); break; case NEW_FLAG: gtk_widget_show(cancel_record_button); gtk_widget_show(add_record_button); gtk_widget_hide(apply_record_button); gtk_widget_hide(copy_record_button); gtk_widget_hide(delete_record_button); gtk_widget_hide(new_record_button); gtk_widget_hide(undelete_record_button); break; case CLEAR_FLAG: gtk_widget_show(delete_record_button); gtk_widget_show(copy_record_button); gtk_widget_show(new_record_button); gtk_widget_hide(add_record_button); gtk_widget_hide(apply_record_button); gtk_widget_hide(cancel_record_button); gtk_widget_hide(undelete_record_button); break; case UNDELETE_FLAG: gtk_widget_show(undelete_record_button); gtk_widget_show(copy_record_button); gtk_widget_show(new_record_button); gtk_widget_hide(add_record_button); gtk_widget_hide(apply_record_button); gtk_widget_hide(cancel_record_button); gtk_widget_hide(delete_record_button); break; default: return; } record_changed=new_state; } /* Find position of category in sorted category array * via its assigned category number */ static int find_sort_cat_pos(int cat) { int i; for (i=0; idata; mkr2 = row2->data; keyr1 = &(mkr1->kr); keyr2 = &(mkr2->kr); time1 = mktime(&(keyr1->last_changed)); time2 = mktime(&(keyr2->last_changed)); return(time1 - time2); } /* Function is used to sort clist case insensitively */ static gint GtkClistKeyrCompareNocase (GtkCList *clist, gconstpointer ptr1, gconstpointer ptr2) { GtkCListRow *row1, *row2; gchar *str1, *str2; row1 = (GtkCListRow *) ptr1; row2 = (GtkCListRow *) ptr2; str1 = GTK_CELL_TEXT(row1->cell[clist->sort_column])->text; str2 = GTK_CELL_TEXT(row2->cell[clist->sort_column])->text; return g_strcasecmp(str1, str2); } static void cb_clist_click_column(GtkWidget *clist, int column) { struct MyKeyRing *mkr; unsigned int unique_id; /* Return to the selected record after sorting. * This is critically important because sorting without updating the * global variable clist_row_selected can cause data loss */ mkr = gtk_clist_get_row_data(GTK_CLIST(clist), clist_row_selected); if (mkr < (struct MyKeyRing *)CLIST_MIN_DATA) { unique_id = 0; } else { unique_id = mkr->unique_id; } /* Clicking on same column toggles ascending/descending sort */ if (clist_col_selected == column) { if (GTK_CLIST(clist)->sort_type == GTK_SORT_ASCENDING) { gtk_clist_set_sort_type(GTK_CLIST (clist), GTK_SORT_DESCENDING); } else { gtk_clist_set_sort_type(GTK_CLIST (clist), GTK_SORT_ASCENDING); } } else /* Always sort in ascending order when changing sort column */ { gtk_clist_set_sort_type(GTK_CLIST (clist), GTK_SORT_ASCENDING); } clist_col_selected = column; gtk_clist_set_sort_column(GTK_CLIST(clist), column); switch (column) { case KEYR_CHGD_COLUMN: // Last Changed column gtk_clist_set_compare_func(GTK_CLIST(clist),GtkClistKeyrCompareDates); break; case KEYR_NAME_COLUMN: gtk_clist_set_compare_func(GTK_CLIST(clist),GtkClistKeyrCompareNocase); break; default: // All other columns can use GTK default sort function gtk_clist_set_compare_func(GTK_CLIST(clist),NULL); break; } gtk_clist_sort(GTK_CLIST(clist)); /* return to previously selected record */ keyring_find(unique_id); } static void cb_record_changed(GtkWidget *widget, gpointer data) { int flag; struct tm *now; time_t ltime; jp_logf(JP_LOG_DEBUG, "cb_record_changed\n"); flag = GPOINTER_TO_INT(data); if (record_changed==CLEAR_FLAG) { connect_changed_signals(DISCONNECT_SIGNALS); if ((GTK_CLIST(clist)->rows > 0)) { set_new_button_to(MODIFY_FLAG); /* Update the lastChanged field when password is modified */ if (flag == PASSWD_FLAG) { time(<ime); now = localtime(<ime); memcpy(&glob_date, now, sizeof(struct tm)); update_date_button(date_button, &glob_date); } } else { set_new_button_to(NEW_FLAG); } } else if (record_changed==UNDELETE_FLAG) { jp_logf(JP_LOG_INFO|JP_LOG_GUI, _("This record is deleted.\n" "Undelete it or copy it to make changes.\n")); } } static void connect_changed_signals(int con_or_dis) { int i; static int connected=0; /* CONNECT */ if ((con_or_dis==CONNECT_SIGNALS) && (!connected)) { jp_logf(JP_LOG_DEBUG, "KeyRing: connect_changed_signals\n"); connected=1; for (i=0; ikr.name) free(mkr->kr.name); if (mkr->kr.account) free(mkr->kr.account); if (mkr->kr.password) free(mkr->kr.password); if (mkr->kr.note) free(mkr->kr.note); next_mkr = mkr->next; free(mkr); } *PPmkr=NULL; } /* This function gets called when the "delete" button is pressed */ static void cb_delete_keyring(GtkWidget *widget, gpointer data) { struct MyKeyRing *mkr; struct KeyRing kr; int new_size; char buf[0xFFFF]; buf_rec br; int flag; jp_logf(JP_LOG_DEBUG, "KeyRing: cb_delete_keyring\n"); mkr = gtk_clist_get_row_data(GTK_CLIST(clist), clist_row_selected); if (!mkr) { return; } /* The record that we want to delete should be written to the pc file * so that it can be deleted at sync time. We need the original record * so that if it has changed on the pilot we can warn the user that * the record has changed on the pilot. */ kr = mkr->kr; kr.name = strdup(kr.name); jp_charset_j2p(kr.name, strlen(kr.name)+1); kr.account = strdup(kr.account); jp_charset_j2p(kr.account, strlen(kr.account)+1); kr.password = strdup(kr.password); jp_charset_j2p(kr.password, strlen(kr.password)+1); kr.note = strdup(kr.note); jp_charset_j2p(kr.note, strlen(kr.note)+1); pack_KeyRing(&kr, (unsigned char *)buf, 0xFFFF, &new_size); free(kr.name); free(kr.account); free(kr.password); free(kr.note); br.rt = mkr->rt; br.unique_id = mkr->unique_id; br.attrib = mkr->attrib; br.buf = buf; br.size = new_size; flag = GPOINTER_TO_INT(data); if ((flag==MODIFY_FLAG) || (flag==DELETE_FLAG)) { jp_delete_record("Keys-Gtkr", &br, flag); if (flag==DELETE_FLAG) { /* when we redraw we want to go to the line above the deleted one */ if (clist_row_selected>0) { clist_row_selected--; } } } if (flag == DELETE_FLAG) { keyr_update_clist(clist, &glob_keyring_list, keyr_category, TRUE); } } static void cb_undelete_keyring(GtkWidget *widget, gpointer data) { struct MyKeyRing *mkr; buf_rec br; char buf[0xFFFF]; int new_size; int flag; mkr = gtk_clist_get_row_data(GTK_CLIST(clist), clist_row_selected); if (mkr==NULL) { return; } jp_logf(JP_LOG_DEBUG, "mkr->unique_id = %d\n",mkr->unique_id); jp_logf(JP_LOG_DEBUG, "mkr->rt = %d\n",mkr->rt); pack_KeyRing(&(mkr->kr), (unsigned char *)buf, 0xFFFF, &new_size); br.rt = mkr->rt; br.unique_id = mkr->unique_id; br.attrib = mkr->attrib; br.buf = buf; br.size = new_size; flag = GPOINTER_TO_INT(data); if (flag==UNDELETE_FLAG) { if (mkr->rt == DELETED_PALM_REC || mkr->rt == DELETED_PC_REC) { jp_undelete_record("Keys-Gtkr", &br, flag); } /* Possible later addition of undelete for modified records else if (mmemo->rt == MODIFIED_PALM_REC) { cb_add_new_record(widget, GINT_TO_POINTER(COPY_FLAG)); } */ } keyr_update_clist(clist, &glob_keyring_list, keyr_category, TRUE); } static void cb_cancel(GtkWidget *widget, gpointer data) { set_new_button_to(CLEAR_FLAG); keyr_update_clist(clist, &glob_keyring_list, keyr_category, TRUE); } static void update_date_button(GtkWidget *button, struct tm *t) { const char *short_date; char str[255]; get_pref(PREF_SHORTDATE, NULL, &short_date); strftime(str, sizeof(str), short_date, t); gtk_label_set_text(GTK_LABEL(GTK_BIN(button)->child), str); } /* * This is called when the "New" button is pressed. * It clears out all the detail fields on the right-hand side. */ static int keyr_clear_details(void) { struct tm *now; time_t ltime; int new_cat; int sorted_position; jp_logf(JP_LOG_DEBUG, "KeyRing: cb_clear\n"); connect_changed_signals(DISCONNECT_SIGNALS); /* Put the current time in the lastChanged part of the record */ time(<ime); now = localtime(<ime); memcpy(&glob_date, now, sizeof(struct tm)); update_date_button(date_button, &glob_date); gtk_entry_set_text(GTK_ENTRY(entry_name), ""); gtk_entry_set_text(GTK_ENTRY(entry_account), ""); gtk_entry_set_text(GTK_ENTRY(entry_password), ""); gtk_text_buffer_set_text(GTK_TEXT_BUFFER(keyr_note_buffer), "", -1); if (keyr_category==CATEGORY_ALL) { new_cat = 0; } else { new_cat = keyr_category; } sorted_position = find_sort_cat_pos(new_cat); if (sorted_position<0) { jp_logf(JP_LOG_WARN, _("Category is not legal\n")); } else { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(keyr_cat_menu_item2[sorted_position]), TRUE); gtk_option_menu_set_history(GTK_OPTION_MENU(category_menu2), find_menu_cat_pos(sorted_position)); } set_new_button_to(CLEAR_FLAG); connect_changed_signals(CONNECT_SIGNALS); return EXIT_SUCCESS; } /* * This function is called when the user presses the "Add" button. * We collect all of the data from the GUI and pack it into a keyring * record and then write it out. kr->name=strdup((char *)buf); kr->account=strdup((char *)Pstr[0]); kr->password=strdup((char *)Pstr[1]); kr->note=strdup((char *)Pstr[2]); */ static void cb_add_new_record(GtkWidget *widget, gpointer data) { struct KeyRing kr; buf_rec br; unsigned char buf[0x10000]; int new_size; int flag; struct MyKeyRing *mkr; GtkTextIter start_iter; GtkTextIter end_iter; int i; unsigned int unique_id; mkr = NULL; unique_id=0; jp_logf(JP_LOG_DEBUG, "KeyRing: cb_add_new_record\n"); flag=GPOINTER_TO_INT(data); if (flag==CLEAR_FLAG) { keyr_clear_details(); connect_changed_signals(DISCONNECT_SIGNALS); set_new_button_to(NEW_FLAG); gtk_widget_grab_focus(GTK_WIDGET(entry_name)); return; } if ((flag!=NEW_FLAG) && (flag!=MODIFY_FLAG) && (flag!=COPY_FLAG)) { return; } kr.name = (char *)gtk_entry_get_text(GTK_ENTRY(entry_name)); kr.account = (char *)gtk_entry_get_text(GTK_ENTRY(entry_account)); kr.password = (char *)gtk_entry_get_text(GTK_ENTRY(entry_password)); /* Put the glob_date in the lastChanged part of the record */ memcpy(&(kr.last_changed), &glob_date, sizeof(struct tm)); gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(keyr_note_buffer),&start_iter,&end_iter); kr.note = gtk_text_buffer_get_text(GTK_TEXT_BUFFER(keyr_note_buffer),&start_iter,&end_iter,TRUE); kr.name = strdup(kr.name); jp_charset_j2p(kr.name, strlen(kr.name)+1); kr.account = strdup(kr.account); jp_charset_j2p(kr.account, strlen(kr.account)+1); kr.password = strdup(kr.password); jp_charset_j2p(kr.password, strlen(kr.password)+1); jp_charset_j2p(kr.note, strlen(kr.note)+1); pack_KeyRing(&kr, buf, 0xFFFF, &new_size); /* free allocated memory now that kr structure is packed into buf */ if (kr.name) free(kr.name); if (kr.account) free(kr.account); if (kr.password) free(kr.password); if (kr.note) free(kr.note); /* Any attributes go here. Usually just the category */ /* grab category from menu */ for (i=0; iactive) { br.attrib = sort_l[i].cat_num; break; } } } jp_logf(JP_LOG_DEBUG, "category is %d\n", br.attrib); br.buf = buf; br.size = new_size; set_new_button_to(CLEAR_FLAG); /* Keep unique ID intact */ if (flag==MODIFY_FLAG) { mkr = gtk_clist_get_row_data(GTK_CLIST(clist), clist_row_selected); if (!mkr) { return; } unique_id = mkr->unique_id; if ((mkr->rt==DELETED_PALM_REC) || (mkr->rt==DELETED_PC_REC) || (mkr->rt==MODIFIED_PALM_REC)) { jp_logf(JP_LOG_INFO, _("You can't modify a record that is deleted\n")); return; } } /* Keep unique ID intact */ if (flag==MODIFY_FLAG) { cb_delete_keyring(NULL, data); if ((mkr->rt==PALM_REC) || (mkr->rt==REPLACEMENT_PALM_REC)) { br.unique_id = unique_id; br.rt = REPLACEMENT_PALM_REC; } else { br.unique_id = 0; br.rt = NEW_PC_REC; } } else { br.unique_id = 0; br.rt = NEW_PC_REC; } /* Write out the record. It goes to the .pc3 file until it gets synced */ jp_pc_write("Keys-Gtkr", &br); keyr_update_clist(clist, &glob_keyring_list, keyr_category, TRUE); keyring_find(br.unique_id); return; } static void cb_date_button(GtkWidget *widget, gpointer data) { long fdow; int ret; struct tm temp_glob_date = glob_date; get_pref(PREF_FDOW, &fdow, NULL); /* date is not set */ if (glob_date.tm_mon < 0) { /* use today date */ time_t t = time(NULL); glob_date = *localtime(&t); } ret = jp_cal_dialog(GTK_WINDOW(gtk_widget_get_toplevel(widget)), "", fdow, &(glob_date.tm_mon), &(glob_date.tm_mday), &(glob_date.tm_year)); if (ret == CAL_DONE) update_date_button(date_button, &glob_date); else glob_date = temp_glob_date; } /* First pass at password generating code */ static void cb_gen_password(GtkWidget *widget, gpointer data) { GtkWidget *entry; int i, length, alpha_size, numer_size; char alpha[] = "abcdfghjklmnpqrstvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; char numer[] = "1234567890"; char passwd[MAX_KR_PASS + 1]; jp_logf(JP_LOG_DEBUG, "KeyRing: cb_gen_password\n"); entry=data; srand(time(NULL) * getpid()); alpha_size = strlen(alpha); numer_size = strlen(numer); length = rand() % (MAX_KR_PASS - MIN_KR_PASS) + MIN_KR_PASS; for (i = 0; i < length; i++) { if ((i % 2) == 0) { passwd[i] = alpha[rand() % alpha_size]; } else { passwd[i] = numer[rand() % numer_size]; } } passwd[length] = '\0'; gtk_entry_set_text(GTK_ENTRY(entry), passwd); return; } /* * This function just adds the record to the clist on the left side of * the screen. */ static int display_record(struct MyKeyRing *mkr, int row) { char temp[8]; const char *svalue; char str[50]; jp_logf(JP_LOG_DEBUG, "KeyRing: display_record\n"); /* Highlight row background depending on status */ switch (mkr->rt) { case NEW_PC_REC: case REPLACEMENT_PALM_REC: set_bg_rgb_clist_row(clist, row, CLIST_NEW_RED, CLIST_NEW_GREEN, CLIST_NEW_BLUE); break; case DELETED_PALM_REC: case DELETED_PC_REC: set_bg_rgb_clist_row(clist, row, CLIST_DEL_RED, CLIST_DEL_GREEN, CLIST_DEL_BLUE); break; case MODIFIED_PALM_REC: set_bg_rgb_clist_row(clist, row, CLIST_MOD_RED, CLIST_MOD_GREEN, CLIST_MOD_BLUE); break; default: gtk_clist_set_row_style(GTK_CLIST(clist), row, NULL); } gtk_clist_set_row_data(GTK_CLIST(clist), row, mkr); if (mkr->kr.last_changed.tm_year==0) { sprintf(str, _("No date")); gtk_clist_set_text(GTK_CLIST(clist), row, KEYR_CHGD_COLUMN, str); } else { get_pref(PREF_SHORTDATE, NULL, &svalue); strftime(str, sizeof(str), svalue, &(mkr->kr.last_changed)); gtk_clist_set_text(GTK_CLIST(clist), row, KEYR_CHGD_COLUMN, str); } if ( (!(mkr->kr.name)) || (mkr->kr.name[0]=='\0') ) { sprintf(temp, "#%03d", row); gtk_clist_set_text(GTK_CLIST(clist), row, KEYR_NAME_COLUMN, temp); } else { gtk_clist_set_text(GTK_CLIST(clist), row, KEYR_NAME_COLUMN, mkr->kr.name); } if ( (!(mkr->kr.account)) || (mkr->kr.account[0]=='\0') ) { gtk_clist_set_text(GTK_CLIST(clist), row, KEYR_ACCT_COLUMN, ""); } else { gtk_clist_set_text(GTK_CLIST(clist), row, KEYR_ACCT_COLUMN, mkr->kr.account); } return EXIT_SUCCESS; } static int display_record_export(GtkWidget *clist, struct MyKeyRing *mkr, int row) { char temp[8]; jp_logf(JP_LOG_DEBUG, "KeyRing: display_record_export\n"); gtk_clist_set_row_data(GTK_CLIST(clist), row, mkr); if ( (!(mkr->kr.name)) || (mkr->kr.name[0]=='\0') ) { sprintf(temp, "#%03d", row); gtk_clist_set_text(GTK_CLIST(clist), row, 0, temp); } else { gtk_clist_set_text(GTK_CLIST(clist), row, 0, mkr->kr.name); } return EXIT_SUCCESS; } /* * This function lists the records in the clist on the left side of * the screen. */ static void keyr_update_clist(GtkWidget *clist, struct MyKeyRing **keyring_list, int category, int main) { int entries_shown; struct MyKeyRing *temp_list; gchar *empty_line[] = { "", "", "" }; jp_logf(JP_LOG_DEBUG, "KeyRing: keyr_update_clist\n"); free_mykeyring_list(keyring_list); /* This function takes care of reading the database for us */ get_keyring(keyring_list, category); if (main) { keyr_clear_details(); } /* Freeze clist to prevent flicker during updating */ gtk_clist_freeze(GTK_CLIST(clist)); if (main) { gtk_signal_disconnect_by_func(GTK_OBJECT(clist), GTK_SIGNAL_FUNC(cb_clist_selection), NULL); } clist_clear(GTK_CLIST(clist)); #ifdef __APPLE__ gtk_clist_thaw(GTK_CLIST(clist)); gtk_widget_hide(clist); gtk_widget_show_all(clist); gtk_clist_freeze(GTK_CLIST(clist)); #endif entries_shown=0; for (temp_list = *keyring_list; temp_list; temp_list = temp_list->next) { gtk_clist_append(GTK_CLIST(clist), empty_line); if (main) display_record(temp_list, entries_shown); else display_record_export(clist, temp_list, entries_shown); entries_shown++; } /* Sort the clist */ gtk_clist_sort(GTK_CLIST(clist)); if (main) gtk_signal_connect(GTK_OBJECT(clist), "select_row", GTK_SIGNAL_FUNC(cb_clist_selection), NULL); /* If there are items in the list, highlight the selected row */ if ((main) && (entries_shown>0)) { /* Select the existing requested row, or row 0 if that is impossible */ if (clist_row_selected <= entries_shown) { clist_select_row(GTK_CLIST(clist), clist_row_selected, 0); if (!gtk_clist_row_is_visible(GTK_CLIST(clist), clist_row_selected)) { gtk_clist_moveto(GTK_CLIST(clist), clist_row_selected, 0, 0.5, 0.0); } } else { clist_select_row(GTK_CLIST(clist), 0, 0); } } /* Unfreeze clist after all changes */ gtk_clist_thaw(GTK_CLIST(clist)); /* return focus to clist after any big operation which requires a redraw */ gtk_widget_grab_focus(GTK_WIDGET(clist)); jp_logf(JP_LOG_DEBUG, "KeyRing: leave keyr_update_clist\n"); } /* * This function just displays a record on the right hand side of the screen * (the details) */ static void cb_clist_selection(GtkWidget *clist, gint row, gint column, GdkEventButton *event, gpointer data) { struct MyKeyRing *mkr; int index, sorted_position; int b; unsigned int unique_id = 0; jp_logf(JP_LOG_DEBUG, "KeyRing: cb_clist_selection\n"); if ((record_changed==MODIFY_FLAG) || (record_changed==NEW_FLAG)) { if (clist_row_selected == row) { return; } mkr = gtk_clist_get_row_data(GTK_CLIST(clist), row); if (mkr!=NULL) { unique_id = mkr->unique_id; } b=dialog_save_changed_record_with_cancel(pane, record_changed); if (b==DIALOG_SAID_1) { /* Cancel */ if (clist_row_selected >=0) { clist_select_row(GTK_CLIST(clist), clist_row_selected, 0); } else { clist_row_selected = 0; clist_select_row(GTK_CLIST(clist), 0, 0); } return; } if (b==DIALOG_SAID_3) { /* Save */ cb_add_new_record(NULL, GINT_TO_POINTER(record_changed)); } set_new_button_to(CLEAR_FLAG); if (unique_id) { keyring_find(unique_id); } else { clist_select_row(GTK_CLIST(clist), row, column); } return; } clist_row_selected = row; mkr = gtk_clist_get_row_data(GTK_CLIST(clist), row); if (mkr==NULL) { return; } if (mkr->rt == DELETED_PALM_REC || (mkr->rt == DELETED_PC_REC)) /* Possible later addition of undelete code for modified deleted records || mkr->rt == MODIFIED_PALM_REC */ { set_new_button_to(UNDELETE_FLAG); } else { set_new_button_to(CLEAR_FLAG); } connect_changed_signals(DISCONNECT_SIGNALS); index = mkr->attrib & 0x0F; sorted_position = find_sort_cat_pos(index); if (keyr_cat_menu_item2[sorted_position]==NULL) { /* Illegal category */ jp_logf(JP_LOG_DEBUG, "Category is not legal\n"); sorted_position = 0; } if (sorted_position<0) { jp_logf(JP_LOG_WARN, _("Category is not legal\n")); } else { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(keyr_cat_menu_item2[sorted_position]), TRUE); } gtk_option_menu_set_history(GTK_OPTION_MENU(category_menu2), find_menu_cat_pos(sorted_position)); if (mkr->kr.name) { gtk_entry_set_text(GTK_ENTRY(entry_name), mkr->kr.name); } else { gtk_entry_set_text(GTK_ENTRY(entry_name), ""); } if (mkr->kr.account) { gtk_entry_set_text(GTK_ENTRY(entry_account), mkr->kr.account); } else { gtk_entry_set_text(GTK_ENTRY(entry_account), ""); } if (mkr->kr.password) { gtk_entry_set_text(GTK_ENTRY(entry_password), mkr->kr.password); } else { gtk_entry_set_text(GTK_ENTRY(entry_password), ""); } memcpy(&glob_date, &(mkr->kr.last_changed), sizeof(struct tm)); update_date_button(date_button, &(mkr->kr.last_changed)); gtk_text_buffer_set_text(GTK_TEXT_BUFFER(keyr_note_buffer), "", -1); if (mkr->kr.note) { gtk_text_buffer_set_text(GTK_TEXT_BUFFER(keyr_note_buffer), mkr->kr.note, -1); } connect_changed_signals(CONNECT_SIGNALS); jp_logf(JP_LOG_DEBUG, "KeyRing: leaving cb_clist_selection\n"); } static void cb_category(GtkWidget *item, int selection) { int b; jp_logf(JP_LOG_DEBUG, "KeyRing: cb_category\n"); if ((GTK_CHECK_MENU_ITEM(item))->active) { if (keyr_category == selection) { return; } b=dialog_save_changed_record_with_cancel(pane, record_changed); if (b==DIALOG_SAID_1) { /* Cancel */ int index, index2; if (keyr_category==CATEGORY_ALL) { index = 0; index2 = 0; } else { index=find_sort_cat_pos(keyr_category); index2 = find_menu_cat_pos(index) + 1; index += 1; } if (index<0) { jp_logf(JP_LOG_WARN, _("Category is not legal\n")); } else { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(keyr_cat_menu_item1[index]), TRUE); gtk_option_menu_set_history(GTK_OPTION_MENU(category_menu1), index2); } return; } if (b==DIALOG_SAID_3) { /* Save */ cb_add_new_record(NULL, GINT_TO_POINTER(record_changed)); } keyr_category = selection; clist_row_selected = 0; keyr_update_clist(clist, &glob_keyring_list, keyr_category, TRUE); } } /***** PASSWORD GUI *****/ /* * Start of Dialog window code */ struct dialog_data { GtkWidget *entry; int button_hit; char text[PASSWD_LEN+2]; }; static void cb_dialog_button(GtkWidget *widget, gpointer data) { struct dialog_data *Pdata; GtkWidget *w; /* Find the main window from some widget */ w = GTK_WIDGET(gtk_widget_get_toplevel(widget)); if (GTK_IS_WINDOW(w)) { Pdata = gtk_object_get_data(GTK_OBJECT(w), "dialog_data"); if (Pdata) { Pdata->button_hit = GPOINTER_TO_INT(data); } gtk_widget_destroy(GTK_WIDGET(w)); } } static gboolean cb_destroy_dialog(GtkWidget *widget) { struct dialog_data *Pdata; const char *entry; Pdata = gtk_object_get_data(GTK_OBJECT(widget), "dialog_data"); if (!Pdata) { return TRUE; } entry = gtk_entry_get_text(GTK_ENTRY(Pdata->entry)); if (entry) { strncpy(Pdata->text, entry, PASSWD_LEN); Pdata->text[PASSWD_LEN]='\0'; /* Clear entry field */ gtk_entry_set_text(GTK_ENTRY(Pdata->entry), ""); } gtk_main_quit(); return TRUE; } /* * returns 2 if OK was pressed, 1 if cancel was hit */ static int dialog_password(GtkWindow *main_window, char *ascii_password, int reason) { GtkWidget *button, *label; GtkWidget *hbox1, *vbox1; GtkWidget *dialog; GtkWidget *entry; struct dialog_data Pdata; int ret; if (!ascii_password) { return EXIT_FAILURE; } ascii_password[0]='\0'; ret = 2; dialog = gtk_widget_new(GTK_TYPE_WINDOW, "type", GTK_WINDOW_TOPLEVEL, "title", "KeyRing", NULL); gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE); gtk_signal_connect(GTK_OBJECT(dialog), "destroy", GTK_SIGNAL_FUNC(cb_destroy_dialog), dialog); gtk_window_set_modal(GTK_WINDOW(dialog), TRUE); if (main_window) { if (GTK_IS_WINDOW(main_window)) { gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(main_window)); } } hbox1 = gtk_hbox_new(FALSE, 2); gtk_container_add(GTK_CONTAINER(dialog), hbox1); gtk_box_pack_start(GTK_BOX(hbox1), gtk_image_new_from_stock(GTK_STOCK_DIALOG_AUTHENTICATION, GTK_ICON_SIZE_DIALOG), FALSE, FALSE, 2); vbox1 = gtk_vbox_new(FALSE, 2); gtk_container_set_border_width(GTK_CONTAINER(vbox1), 5); gtk_container_add(GTK_CONTAINER(hbox1), vbox1); hbox1 = gtk_hbox_new(TRUE, 2); gtk_container_set_border_width(GTK_CONTAINER(hbox1), 5); gtk_box_pack_start(GTK_BOX(vbox1), hbox1, FALSE, FALSE, 2); /* Label */ if (reason==PASSWD_ENTER_RETRY) { label = gtk_label_new(_("Incorrect, Reenter KeyRing Password")); } else if (reason==PASSWD_ENTER_NEW) { label = gtk_label_new(_("Enter a NEW KeyRing Password")); } else { label = gtk_label_new(_("Enter KeyRing Password")); } gtk_box_pack_start(GTK_BOX(hbox1), label, FALSE, FALSE, 2); entry = gtk_entry_new_with_max_length(32); gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE); gtk_signal_connect(GTK_OBJECT(entry), "activate", GTK_SIGNAL_FUNC(cb_dialog_button), GINT_TO_POINTER(DIALOG_SAID_2)); gtk_box_pack_start(GTK_BOX(hbox1), entry, TRUE, TRUE, 1); /* Button Box */ hbox1 = gtk_hbutton_box_new(); gtk_button_box_set_layout(GTK_BUTTON_BOX (hbox1), GTK_BUTTONBOX_END); gtk_button_box_set_spacing(GTK_BUTTON_BOX(hbox1), 6); gtk_container_set_border_width(GTK_CONTAINER(hbox1), 5); gtk_box_pack_start(GTK_BOX(vbox1), hbox1, FALSE, FALSE, 2); /* Buttons */ button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_dialog_button), GINT_TO_POINTER(DIALOG_SAID_1)); gtk_box_pack_start(GTK_BOX(hbox1), button, FALSE, FALSE, 1); button = gtk_button_new_from_stock(GTK_STOCK_OK); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_dialog_button), GINT_TO_POINTER(DIALOG_SAID_2)); gtk_box_pack_start(GTK_BOX(hbox1), button, FALSE, FALSE, 1); /* Set the default button pressed to CANCEL */ Pdata.button_hit = DIALOG_SAID_1; Pdata.entry=entry; Pdata.text[0]='\0'; gtk_object_set_data(GTK_OBJECT(dialog), "dialog_data", &Pdata); gtk_widget_grab_focus(GTK_WIDGET(entry)); gtk_widget_show_all(dialog); gtk_main(); if (Pdata.button_hit==DIALOG_SAID_1) { ret = 1; } if (Pdata.button_hit==DIALOG_SAID_2) { ret = 2; } strncpy(ascii_password, Pdata.text, PASSWD_LEN); memset(Pdata.text, 0, PASSWD_LEN); return ret; } /***** End Password GUI *****/ static int check_for_db(void) { char file[]="Keys-Gtkr.pdb"; char full_name[1024]; struct stat buf; jp_get_home_file_name(file, full_name, sizeof(full_name)); if (stat(full_name, &buf)) { jp_logf(JP_LOG_FATAL, _("KeyRing: file %s not found.\n"), full_name); jp_logf(JP_LOG_FATAL, _("KeyRing: Try Syncing.\n"), full_name); return EXIT_FAILURE; } return EXIT_SUCCESS; } /* * returns EXIT_SUCCESS on password correct, * EXIT_FAILURE on password incorrect, * <0 on error */ static int verify_pasword(char *ascii_password) { GList *records; GList *temp_list; buf_rec *br; int password_not_correct; jp_logf(JP_LOG_DEBUG, "KeyRing: verify_pasword\n"); if (check_for_db()) { return EXIT_FAILURE; } /* This function takes care of reading the Database for us */ records=NULL; if (jp_read_DB_files("Keys-Gtkr", &records) == -1) return EXIT_SUCCESS; password_not_correct = 1; /* Find special record marked as password */ for (temp_list = records; temp_list; temp_list = temp_list->next) { if (temp_list->data) { br=temp_list->data; } else { continue; } if (!br->buf) { continue; } if ((br->rt == DELETED_PALM_REC) || (br->rt == MODIFIED_PALM_REC)) { continue; } /* This record should be record 0 and is the hash-key record */ if (br->attrib & dlpRecAttrSecret) { password_not_correct = set_password_hash(br->buf, br->size, ascii_password); break; } } jp_free_DB_records(&records); if (password_not_correct) return EXIT_FAILURE; else return EXIT_SUCCESS; } #define PLUGIN_MAJOR 1 #define PLUGIN_MINOR 1 /* This is a mandatory plugin function. */ void plugin_version(int *major_version, int *minor_version) { *major_version = PLUGIN_MAJOR; *minor_version = PLUGIN_MINOR; } static int static_plugin_get_name(char *name, int len) { jp_logf(JP_LOG_DEBUG, "KeyRing: plugin_get_name\n"); snprintf(name, len, "KeyRing %d.%d", PLUGIN_MAJOR, PLUGIN_MINOR); return EXIT_SUCCESS; } /* This is a mandatory plugin function. */ int plugin_get_name(char *name, int len) { return static_plugin_get_name(name, len); } /* * This is an optional plugin function. * This is the name that will show up in the plugins menu in J-Pilot. */ int plugin_get_menu_name(char *name, int len) { strncpy(name, _("KeyRing"), len); return EXIT_SUCCESS; } /* * This is an optional plugin function. * This is the name that will show up in the plugins help menu in J-Pilot. * If this function is used then plugin_help must be also. */ int plugin_get_help_name(char *name, int len) { g_snprintf(name, len, _("About %s"), _("KeyRing")); return EXIT_SUCCESS; } /* * This is an optional plugin function. * This is the palm database that will automatically be synced. */ int plugin_get_db_name(char *name, int len) { strncpy(name, "Keys-Gtkr", len); return EXIT_SUCCESS; } /* * This is a plugin callback function which provides information * to the user about the plugin. */ int plugin_help(char **text, int *width, int *height) { /* We could also pass back *text=NULL * and implement whatever we wanted to here. */ char plugin_name[200]; static_plugin_get_name(plugin_name, sizeof(plugin_name)); *text = g_strdup_printf( /*-------------------------------------------*/ _("%s\n" "\n" "KeyRing plugin for J-Pilot was written by\n" "Judd Montgomery (c) 2001.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "KeyRing is a free PalmOS program for storing\n" "passwords and other information in encrypted form\n" "http://gnukeyring.sourceforge.net" ), plugin_name ); *height = 0; *width = 0; return EXIT_SUCCESS; } /* * This is a plugin callback function that is executed when J-Pilot starts up. * base_dir is where J-Pilot is compiled to be installed at (e.g. /usr/local/) */ int plugin_startup(jp_startup_info *info) { jp_init(); jp_logf(JP_LOG_DEBUG, "KeyRing: plugin_startup\n"); if (info) { if (info->base_dir) { jp_logf(JP_LOG_DEBUG, "KeyRing: base_dir = [%s]\n", info->base_dir); } } return EXIT_SUCCESS; } /* * This is a plugin callback function that is executed before a sync occurs. * Any sync preperation can be done here. */ int plugin_pre_sync(void) { jp_logf(JP_LOG_DEBUG, "KeyRing: plugin_pre_sync\n"); return EXIT_SUCCESS; } /* * This is a plugin callback function that is executed during a sync. * Notice that I don't need to sync the KeyRing application. Since I used * the plugin_get_db_name call to tell J-Pilot what to sync for me. It will * be done automatically. */ int plugin_sync(int sd) { jp_logf(JP_LOG_DEBUG, "KeyRing: plugin_sync\n"); return EXIT_SUCCESS; } /* * This is a plugin callback function called after a sync. */ int plugin_post_sync(void) { jp_logf(JP_LOG_DEBUG, "KeyRing: plugin_post_sync\n"); return EXIT_SUCCESS; } static int add_search_result(const char *line, int unique_id, struct search_result **sr) { struct search_result *new_sr; jp_logf(JP_LOG_DEBUG, "KeyRing: add_search_result for [%s]\n", line); new_sr=malloc(sizeof(struct search_result)); if (!new_sr) { return EXIT_FAILURE; } new_sr->unique_id=unique_id; new_sr->line=strdup(line); new_sr->next = *sr; *sr = new_sr; return EXIT_SUCCESS; } /* * This function is called when the user does a search. It should return * records which match the search string. */ int plugin_search(const char *search_string, int case_sense, struct search_result **sr) { struct MyKeyRing *mkr_list; struct MyKeyRing *temp_list; struct MyKeyRing mkr; int num, count; char *line; jp_logf(JP_LOG_DEBUG, "KeyRing: plugin_search\n"); *sr=NULL; mkr_list=NULL; if (!plugin_active) { return 0; } /* This function takes care of reading the Database for us */ num = get_keyring(&mkr_list, CATEGORY_ALL); if (-1 == num) return 0; count = 0; /* Search through returned records */ for (temp_list = mkr_list; temp_list; temp_list = temp_list->next) { mkr = *temp_list; line = NULL; /* find in record name */ if (jp_strstr(mkr.kr.name, search_string, case_sense)) line = mkr.kr.name; /* find in record account */ if (jp_strstr(mkr.kr.account, search_string, case_sense)) line = mkr.kr.account; /* find in record password */ if (jp_strstr(mkr.kr.password, search_string, case_sense)) line = mkr.kr.password; /* find in record note */ if (jp_strstr(mkr.kr.note, search_string, case_sense)) line = mkr.kr.note; if (line) { /* Add it to our result list */ jp_logf(JP_LOG_DEBUG, "KeyRing: calling add_search_result\n"); add_search_result(line, mkr.unique_id, sr); jp_logf(JP_LOG_DEBUG, "KeyRing: back from add_search_result\n"); count++; } } free_mykeyring_list(&mkr_list); return count; } static int keyring_find(int unique_id) { int r, found_at; jp_logf(JP_LOG_DEBUG, "KeyRing: keyring_find\n"); r = clist_find_id(clist, unique_id, &found_at); if (r) { clist_select_row(GTK_CLIST(clist), found_at, 0); if (!gtk_clist_row_is_visible(GTK_CLIST(clist), found_at)) { gtk_clist_moveto(GTK_CLIST(clist), found_at, 0, 0.5, 0.0); } } return EXIT_SUCCESS; } static void cb_keyr_update_clist(GtkWidget *clist, int category) { keyr_update_clist(clist, &export_keyring_list, category, FALSE); } static void cb_keyr_export_done(GtkWidget *widget, const char *filename) { free_mykeyring_list(&export_keyring_list); set_pref(PREF_KEYR_EXPORT_FILENAME, 0, filename, TRUE); } static void cb_keyr_export_ok(GtkWidget *export_window, GtkWidget *clist, int type, const char *filename) { struct MyKeyRing *mkr; GList *list, *temp_list; FILE *out; struct stat statb; int i, r; const char *short_date; time_t ltime; struct tm *now; char *button_text[]={N_("OK")}; char *button_overwrite_text[]={N_("No"), N_("Yes")}; char text[1024]; char str1[256], str2[256]; char date_string[1024]; char pref_time[40]; char csv_text[65550]; long char_set; char *utf; /* Open file for export, including corner cases where file exists or * can't be opened */ if (!stat(filename, &statb)) { if (S_ISDIR(statb.st_mode)) { g_snprintf(text, sizeof(text), _("%s is a directory"), filename); dialog_generic(GTK_WINDOW(export_window), _("Error Opening File"), DIALOG_ERROR, text, 1, button_text); return; } g_snprintf(text,sizeof(text), _("Do you want to overwrite file %s?"), filename); r = dialog_generic(GTK_WINDOW(export_window), _("Overwrite File?"), DIALOG_ERROR, text, 2, button_overwrite_text); if (r!=DIALOG_SAID_2) { return; } } out = fopen(filename, "w"); if (!out) { g_snprintf(text,sizeof(text), _("Error opening file: %s"), filename); dialog_generic(GTK_WINDOW(export_window), _("Error Opening File"), DIALOG_ERROR, text, 1, button_text); return; } /* Write a header for TEXT file */ if (type == EXPORT_TYPE_TEXT) { get_pref(PREF_SHORTDATE, NULL, &short_date); get_pref_time_no_secs(pref_time); time(<ime); now = localtime(<ime); strftime(str1, sizeof(str1), short_date, now); strftime(str2, sizeof(str2), pref_time, now); g_snprintf(date_string, sizeof(date_string), "%s %s", str1, str2); fprintf(out, _("Keys exported from %s %s on %s\n\n"), PN,VERSION,date_string); } /* Write a header to the CSV file */ if (type == EXPORT_TYPE_CSV) { fprintf(out, "\"Category\",\"Name\",\"Account\",\"Password\",\"Note\"\n"); } /* Write a header to the CSV file */ if (type == EXPORT_TYPE_BFOLDERS) { fprintf(out, "Login passwords:\n"); fprintf(out, "Title,Location,Usename,Password, " "\"Custom Label 1\",\"Custom Value 1\",\"Custom Label 2\",\"Custom Value 2\"," "\"Custom Label 3\",\"Custom Value 3\",\"Custom Label 4\",\"Custom Value 4\"," "\"Custom Label 5\",\"Custom Value 5\", Note,Folder\n"); } get_pref(PREF_CHAR_SET, &char_set, NULL); list=GTK_CLIST(clist)->selection; for (i=0, temp_list=list; temp_list; temp_list = temp_list->next, i++) { mkr = gtk_clist_get_row_data(GTK_CLIST(clist), GPOINTER_TO_INT(temp_list->data)); if (!mkr) { continue; jp_logf(JP_LOG_WARN, _("Can't export key %d\n"), (long) temp_list->data + 1); } switch (type) { case EXPORT_TYPE_CSV: utf = charset_p2newj(keyr_app_info.name[mkr->attrib & 0x0F], 16, char_set); fprintf(out, "\"%s\",", utf); g_free(utf); str_to_csv_str(csv_text, mkr->kr.name); fprintf(out, "\"%s\",", csv_text); str_to_csv_str(csv_text, mkr->kr.account); fprintf(out, "\"%s\",", csv_text); str_to_csv_str(csv_text, mkr->kr.password); fprintf(out, "\"%s\",", csv_text); str_to_csv_str(csv_text, mkr->kr.note); fprintf(out, "\"%s\"\n", csv_text); break; case EXPORT_TYPE_BFOLDERS: str_to_csv_str(csv_text, mkr->kr.name); fprintf(out, "\"%s\",", csv_text); fprintf(out, "\"\",", csv_text); str_to_csv_str(csv_text, mkr->kr.account); fprintf(out, "\"%s\",", csv_text); str_to_csv_str(csv_text, mkr->kr.password); fprintf(out, "\"%s\",", csv_text); fprintf(out, "\"\",\"\",\"\",\"\"," "\"\",\"\",\"\",\"\"," "\"\",\"\","); str_to_csv_str(csv_text, mkr->kr.note); fprintf(out, "\"%s\",", csv_text); fprintf(out, "\"KeyRing > "); utf = charset_p2newj(keyr_app_info.name[mkr->attrib & 0x0F], 16, char_set); fprintf(out, "%s\"\n", utf); g_free(utf); break; case EXPORT_TYPE_TEXT: fprintf(out, "#%d\n", i+1); fprintf(out, "Name: %s\n", mkr->kr.name); fprintf(out, "Account: %s\n", mkr->kr.account); fprintf(out, "Password: %s\n", mkr->kr.password); fprintf(out, "Note: %s\n", mkr->kr.note ); break; default: jp_logf(JP_LOG_WARN, _("Unknown export type\n")); } } if (out) { fclose(out); } } /* * This is a plugin callback function to export records. */ int plugin_export(GtkWidget *window) { int w, h, x, y; char *type_text[]={N_("Text"), N_("CSV"), N_("B-FOLDERS CSV"), NULL}; int type_int[]={EXPORT_TYPE_TEXT, EXPORT_TYPE_CSV, EXPORT_TYPE_BFOLDERS}; gdk_window_get_size(window->window, &w, &h); gdk_window_get_root_origin(window->window, &x, &y); w = gtk_paned_get_position(GTK_PANED(pane)); x+=40; export_gui(window, w, h, x, y, 1, sort_l, PREF_KEYR_EXPORT_FILENAME, type_text, type_int, cb_keyr_update_clist, cb_keyr_export_done, cb_keyr_export_ok ); return EXIT_SUCCESS; } /* * This is a plugin callback function called during Jpilot program exit. */ int plugin_exit_cleanup(void) { jp_logf(JP_LOG_DEBUG, "KeyRing: plugin_exit_cleanup\n"); return EXIT_SUCCESS; } /* * This is a plugin callback function called when the plugin is terminated * such as by switching to another application(ToDo, Memo, etc.) */ int plugin_gui_cleanup(void) { int b; jp_logf(JP_LOG_DEBUG, "KeyRing: plugin_gui_cleanup\n"); b=dialog_save_changed_record(clist, record_changed); if (b==DIALOG_SAID_2) { cb_add_new_record(NULL, GINT_TO_POINTER(record_changed)); } connect_changed_signals(DISCONNECT_SIGNALS); free_mykeyring_list(&glob_keyring_list); /* if the password was correct */ if (plugin_last_time && (TRUE == plugin_active)) { plugin_last_time = time(NULL); } plugin_active = FALSE; /* the pane may not exist if the wrong password is entered and * the GUI was not built */ if (pane) { /* Remove the accelerators */ #ifndef ENABLE_STOCK_BUTTONS gtk_window_remove_accel_group(GTK_WINDOW(gtk_widget_get_toplevel(pane)), accel_group); #endif /* Record the position of the window pane to restore later */ set_pref(PREF_KEYRING_PANE, gtk_paned_get_position(GTK_PANED(pane)), NULL, TRUE); pane = NULL; clist_clear(GTK_CLIST(clist)); } return EXIT_SUCCESS; } /* * This function is called by J-Pilot when the user selects this plugin * from the plugin menu, or from the search window when a search result * record is chosen. In the latter case, unique ID will be set. This * application should go directly to that record in the case. */ int plugin_gui(GtkWidget *vbox, GtkWidget *hbox, unsigned int unique_id) { GtkWidget *vbox1, *vbox2; GtkWidget *hbox_temp; GtkWidget *button; GtkWidget *label; GtkWidget *table; GtkWindow *w; GtkWidget *separator; long ivalue; char ascii_password[PASSWD_LEN]; int r; int password_not_correct; char *titles[3]; /* { "Changed", "Name", "Account" }; */ int retry; int cycle_category = FALSE; long char_set; long show_tooltips; char *cat_name; int new_cat; int index, index2; int i; #ifdef HAVE_LIBGCRYPT static int gcrypt_init = 0; #endif jp_logf(JP_LOG_DEBUG, "KeyRing: plugin gui started, unique_id=%d\n", unique_id); if (check_for_db()) { return EXIT_FAILURE; } #ifdef HAVE_LIBGCRYPT if (!gcrypt_init) { gcrypt_init = 1; /* Version check should be the very first call because it makes sure that important subsystems are intialized. */ if (!gcry_check_version (GCRYPT_VERSION)) { fputs ("libgcrypt version mismatch\n", stderr); return EXIT_FAILURE; } /* We don't want to see any warnings, e.g. because we have not yet parsed program options which might be used to suppress such warnings. */ gcry_control (GCRYCTL_SUSPEND_SECMEM_WARN); /* ... If required, other initialization goes here. Note that the process might still be running with increased privileges and that the secure memory has not been intialized. */ /* Allocate a pool of 16k secure memory. This make the secure memory available and also drops privileges where needed. */ gcry_control (GCRYCTL_INIT_SECMEM, 16384, 0); /* It is now okay to let Libgcrypt complain when there was/is a problem with the secure memory. */ gcry_control (GCRYCTL_RESUME_SECMEM_WARN); /* ... If required, other initialization goes here. */ /* Tell Libgcrypt that initialization has completed. */ gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0); } #endif /* Find the main window from some widget */ w = GTK_WINDOW(gtk_widget_get_toplevel(hbox)); #if 0 /* Change Password button */ button = gtk_button_new_with_label(_("Change\nKeyRing\nPassword")); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_change_password), NULL); gtk_box_pack_start(GTK_BOX(vbox), button, TRUE, TRUE, 0); #endif if (difftime(time(NULL), plugin_last_time) > PLUGIN_MAX_INACTIVE_TIME) { /* reset last time we entered */ plugin_last_time = 0; password_not_correct = TRUE; retry = PASSWD_ENTER; while (password_not_correct) { r = dialog_password(w, ascii_password, retry); retry = PASSWD_ENTER_RETRY; if (r != 2) { memset(ascii_password, 0, PASSWD_LEN-1); return 0; } password_not_correct = (verify_pasword(ascii_password) > 0); } memset(ascii_password, 0, PASSWD_LEN-1); } else { cycle_category = TRUE; } /* called to display the result of a search */ if (unique_id) { cycle_category = FALSE; } /* plugin entered with correct password */ plugin_last_time = time(NULL); plugin_active = TRUE; /************************************************************/ /* Build GUI */ record_changed=CLEAR_FLAG; clist_row_selected = 0; /* Do some initialization */ for (i=0; i NUM_KEYRING_CAT_ITEMS) { keyr_category = CATEGORY_ALL; } /* Make accelerators for some buttons window */ #ifndef ENABLE_STOCK_BUTTONS accel_group = gtk_accel_group_new(); gtk_window_add_accel_group(GTK_WINDOW(gtk_widget_get_toplevel(vbox)), accel_group); #endif get_pref(PREF_SHOW_TOOLTIPS, &show_tooltips, NULL); pane = gtk_hpaned_new(); get_pref(PREF_KEYRING_PANE, &ivalue, NULL); gtk_paned_set_position(GTK_PANED(pane), ivalue); gtk_box_pack_start(GTK_BOX(hbox), pane, TRUE, TRUE, 5); /* left and right main boxes */ vbox1 = gtk_vbox_new(FALSE, 0); vbox2 = gtk_vbox_new(FALSE, 0); gtk_paned_pack1(GTK_PANED(pane), vbox1, TRUE, FALSE); gtk_paned_pack2(GTK_PANED(pane), vbox2, TRUE, FALSE); gtk_widget_set_usize(GTK_WIDGET(vbox1), 0, 230); gtk_widget_set_usize(GTK_WIDGET(vbox2), 0, 230); /**********************************************************************/ /* Left half of screen */ /**********************************************************************/ /* Left-side Category menu */ hbox_temp = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox1), hbox_temp, FALSE, FALSE, 0); make_category_menu(&category_menu1, keyr_cat_menu_item1, sort_l, cb_category, TRUE, FALSE); gtk_box_pack_start(GTK_BOX(hbox_temp), category_menu1, TRUE, TRUE, 0); /* Scrolled window */ scrolled_window = gtk_scrolled_window_new(NULL, NULL); gtk_container_set_border_width(GTK_CONTAINER(scrolled_window), 0); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start(GTK_BOX(vbox1), scrolled_window, TRUE, TRUE, 0); /* Clist */ titles[0] = _("Changed"); titles[1] = _("Name"); titles[2] = _("Account"); clist = gtk_clist_new_with_titles(3, titles); gtk_clist_column_titles_active(GTK_CLIST(clist)); gtk_clist_set_column_auto_resize(GTK_CLIST(clist), KEYR_CHGD_COLUMN, TRUE); gtk_clist_set_column_width(GTK_CLIST(clist), KEYR_NAME_COLUMN, 150); gtk_clist_set_sort_column(GTK_CLIST(clist), KEYR_NAME_COLUMN); gtk_clist_set_compare_func(GTK_CLIST(clist), GtkClistKeyrCompareNocase); gtk_clist_set_sort_type(GTK_CLIST(clist), GTK_SORT_ASCENDING); gtk_clist_set_shadow_type(GTK_CLIST(clist), SHADOW); gtk_clist_set_selection_mode(GTK_CLIST(clist), GTK_SELECTION_BROWSE); gtk_signal_connect(GTK_OBJECT(clist), "click_column", GTK_SIGNAL_FUNC (cb_clist_click_column), NULL); gtk_signal_connect(GTK_OBJECT(clist), "select_row", GTK_SIGNAL_FUNC(cb_clist_selection), NULL); gtk_container_add(GTK_CONTAINER(scrolled_window), GTK_WIDGET(clist)); /**********************************************************************/ /* Right half of screen */ /**********************************************************************/ hbox_temp = gtk_hbox_new(FALSE, 3); gtk_box_pack_start(GTK_BOX(vbox2), hbox_temp, FALSE, FALSE, 0); /* Cancel button */ CREATE_BUTTON(cancel_record_button, _("Cancel"), CANCEL, _("Cancel the modifications"), GDK_Escape, 0, "ESC") gtk_signal_connect(GTK_OBJECT(cancel_record_button), "clicked", GTK_SIGNAL_FUNC(cb_cancel), NULL); /* Delete button */ CREATE_BUTTON(delete_record_button, _("Delete"), DELETE, _("Delete the selected record"), GDK_d, GDK_CONTROL_MASK, "Ctrl+D"); gtk_signal_connect(GTK_OBJECT(delete_record_button), "clicked", GTK_SIGNAL_FUNC(cb_delete_keyring), GINT_TO_POINTER(DELETE_FLAG)); /* Undelete button */ CREATE_BUTTON(undelete_record_button, _("Undelete"), UNDELETE, _("Undelete the selected record"), 0, 0, "") gtk_signal_connect(GTK_OBJECT(undelete_record_button), "clicked", GTK_SIGNAL_FUNC(cb_undelete_keyring), GINT_TO_POINTER(UNDELETE_FLAG)); /* Copy button */ CREATE_BUTTON(copy_record_button, _("Copy"), COPY, _("Copy the selected record"), GDK_c, GDK_CONTROL_MASK|GDK_SHIFT_MASK, "Ctrl+Shift+C") gtk_signal_connect(GTK_OBJECT(copy_record_button), "clicked", GTK_SIGNAL_FUNC(cb_add_new_record), GINT_TO_POINTER(COPY_FLAG)); /* New Record button */ CREATE_BUTTON(new_record_button, _("New Record"), NEW, _("Add a new record"), GDK_n, GDK_CONTROL_MASK, "Ctrl+N") gtk_signal_connect(GTK_OBJECT(new_record_button), "clicked", GTK_SIGNAL_FUNC(cb_add_new_record), GINT_TO_POINTER(CLEAR_FLAG)); /* Add Record button */ CREATE_BUTTON(add_record_button, _("Add Record"), ADD, _("Add the new record"), GDK_Return, GDK_CONTROL_MASK, "Ctrl+Enter") gtk_signal_connect(GTK_OBJECT(add_record_button), "clicked", GTK_SIGNAL_FUNC(cb_add_new_record), GINT_TO_POINTER(NEW_FLAG)); #ifndef ENABLE_STOCK_BUTTONS gtk_widget_set_name(GTK_WIDGET(GTK_LABEL(GTK_BIN(add_record_button)->child)), "label_high"); #endif /* Apply Changes button */ CREATE_BUTTON(apply_record_button, _("Apply Changes"), APPLY, _("Commit the modifications"), GDK_Return, GDK_CONTROL_MASK, "Ctrl+Enter") gtk_signal_connect(GTK_OBJECT(apply_record_button), "clicked", GTK_SIGNAL_FUNC(cb_add_new_record), GINT_TO_POINTER(MODIFY_FLAG)); #ifndef ENABLE_STOCK_BUTTONS gtk_widget_set_name(GTK_WIDGET(GTK_LABEL(GTK_BIN(apply_record_button)->child)), "label_high"); #endif /* Separator */ separator = gtk_hseparator_new(); gtk_box_pack_start(GTK_BOX(vbox2), separator, FALSE, FALSE, 5); /* Table */ table = gtk_table_new(5, 10, FALSE); gtk_table_set_row_spacings(GTK_TABLE(table),0); gtk_table_set_col_spacings(GTK_TABLE(table),0); gtk_box_pack_start(GTK_BOX(vbox2), table, FALSE, FALSE, 0); /* Category menu */ label = gtk_label_new(_("Category: ")); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(label), 0, 1, 0, 1); make_category_menu(&category_menu2, keyr_cat_menu_item2, sort_l, NULL, FALSE, FALSE); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(category_menu2), 1, 10, 0, 1); gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); /* Name entry */ label = gtk_label_new(_("name: ")); entry_name = gtk_entry_new(); entry_set_multiline_truncate(GTK_ENTRY(entry_name), TRUE); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(label), 0, 1, 1, 2); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(entry_name), 1, 10, 1, 2); gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); /* Account entry */ label = gtk_label_new(_("account: ")); entry_account = gtk_entry_new(); entry_set_multiline_truncate(GTK_ENTRY(entry_account), TRUE); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(label), 0, 1, 2, 3); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(entry_account), 1, 10, 2, 3); gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); /* Password entry */ label = gtk_label_new(_("password: ")); entry_password = gtk_entry_new(); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(label), 0, 1, 3, 4); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(entry_password), 1, 9, 3, 4); gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); /* Last Changed entry */ label = gtk_label_new(_("last changed: ")); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(label), 0, 1, 4, 5); gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); date_button = gtk_button_new_with_label(""); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(date_button), 1, 10, 4, 5); gtk_signal_connect(GTK_OBJECT(date_button), "clicked", GTK_SIGNAL_FUNC(cb_date_button), date_button); /* Generate Password button (creates random password) */ button = gtk_button_new_with_label(_("Generate Password")); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(button), 9, 10, 3, 4); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_gen_password), entry_password); /* Note textbox */ label = gtk_label_new(_("Note")); gtk_box_pack_start(GTK_BOX(vbox2), label, FALSE, FALSE, 0); hbox_temp = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox2), hbox_temp, TRUE, TRUE, 0); keyr_note = gtk_text_view_new(); keyr_note_buffer = G_OBJECT(gtk_text_view_get_buffer(GTK_TEXT_VIEW(keyr_note))); gtk_text_view_set_editable(GTK_TEXT_VIEW(keyr_note), TRUE); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(keyr_note), GTK_WRAP_WORD); scrolled_window = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); gtk_container_set_border_width(GTK_CONTAINER(scrolled_window), 1); gtk_container_add(GTK_CONTAINER(scrolled_window), keyr_note); gtk_box_pack_start_defaults(GTK_BOX(hbox_temp), scrolled_window); /**********************************************************************/ gtk_widget_show_all(hbox); gtk_widget_show_all(vbox); gtk_widget_hide(add_record_button); gtk_widget_hide(apply_record_button); gtk_widget_hide(undelete_record_button); gtk_widget_hide(cancel_record_button); if (cycle_category) { /* First cycle keyr_category var */ if (keyr_category == CATEGORY_ALL) { new_cat = -1; } else { new_cat = find_sort_cat_pos(keyr_category); } for (i=0; i= NUM_KEYRING_CAT_ITEMS) { keyr_category = CATEGORY_ALL; break; } if ((sort_l[new_cat].Pcat) && (sort_l[new_cat].Pcat[0])) { keyr_category = sort_l[new_cat].cat_num; break; } } /* Then update menu with new keyr_category */ if (keyr_category==CATEGORY_ALL) { index = 0; index2 = 0; } else { index = find_sort_cat_pos(keyr_category); index2 = find_menu_cat_pos(index) + 1; index += 1; } if (index<0) { jp_logf(JP_LOG_WARN, _("Category is not legal\n")); } else { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(keyr_cat_menu_item1[index]), TRUE); gtk_option_menu_set_history(GTK_OPTION_MENU(category_menu1), index2); } } else { keyr_category = CATEGORY_ALL; } keyr_update_clist(clist, &glob_keyring_list, keyr_category, TRUE); if (unique_id) { keyring_find(unique_id); } return EXIT_SUCCESS; } jpilot-1.8.1.2/KeyRing/Makefile.am0000644000175000017500000000063011245244222013504 00000000000000# $Id: Makefile.am,v 1.11 2009/08/11 20:13:41 rikster5 Exp $ libdir = @libdir@/@PACKAGE@/plugins EXTRA_DIST = README if MAKE_KEYRING lib_LTLIBRARIES = libkeyring.la libkeyring_la_SOURCES = keyring.c libkeyring_la_CFLAGS = @PILOT_FLAGS@ @GTK_CFLAGS@ @LIBGCRYPT_CFLAGS@ -I$(top_srcdir) libkeyring_la_LDFLAGS = -module -avoid-version libkeyring_la_LIBADD = @OPENSSL_LIBS@ @GTK_LIBS@ @LIBGCRYPT_LIBS@ endif jpilot-1.8.1.2/KeyRing/Makefile.in0000644000175000017500000004561711702305114013527 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # $Id: Makefile.am,v 1.11 2009/08/11 20:13:41 rikster5 Exp $ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = KeyRing DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-2.0.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) libkeyring_la_DEPENDENCIES = am__libkeyring_la_SOURCES_DIST = keyring.c @MAKE_KEYRING_TRUE@am_libkeyring_la_OBJECTS = \ @MAKE_KEYRING_TRUE@ libkeyring_la-keyring.lo libkeyring_la_OBJECTS = $(am_libkeyring_la_OBJECTS) libkeyring_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libkeyring_la_CFLAGS) \ $(CFLAGS) $(libkeyring_la_LDFLAGS) $(LDFLAGS) -o $@ @MAKE_KEYRING_TRUE@am_libkeyring_la_rpath = -rpath $(libdir) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libkeyring_la_SOURCES) DIST_SOURCES = $(am__libkeyring_la_SOURCES_DIST) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ABILIB = @ABILIB@ ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CUT = @CUT@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@ LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@ LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENSSL_LIBS = @OPENSSL_LIBS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PILOT_FLAGS = @PILOT_FLAGS@ PILOT_LIBS = @PILOT_LIBS@ PKG_CONFIG = @PKG_CONFIG@ POSUB = @POSUB@ PROGNAME = @PROGNAME@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@/@PACKAGE@/plugins libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = README @MAKE_KEYRING_TRUE@lib_LTLIBRARIES = libkeyring.la @MAKE_KEYRING_TRUE@libkeyring_la_SOURCES = keyring.c @MAKE_KEYRING_TRUE@libkeyring_la_CFLAGS = @PILOT_FLAGS@ @GTK_CFLAGS@ @LIBGCRYPT_CFLAGS@ -I$(top_srcdir) @MAKE_KEYRING_TRUE@libkeyring_la_LDFLAGS = -module -avoid-version @MAKE_KEYRING_TRUE@libkeyring_la_LIBADD = @OPENSSL_LIBS@ @GTK_LIBS@ @LIBGCRYPT_LIBS@ all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign KeyRing/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign KeyRing/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libkeyring.la: $(libkeyring_la_OBJECTS) $(libkeyring_la_DEPENDENCIES) $(libkeyring_la_LINK) $(am_libkeyring_la_rpath) $(libkeyring_la_OBJECTS) $(libkeyring_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libkeyring_la-keyring.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libkeyring_la-keyring.lo: keyring.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkeyring_la_CFLAGS) $(CFLAGS) -MT libkeyring_la-keyring.lo -MD -MP -MF $(DEPDIR)/libkeyring_la-keyring.Tpo -c -o libkeyring_la-keyring.lo `test -f 'keyring.c' || echo '$(srcdir)/'`keyring.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libkeyring_la-keyring.Tpo $(DEPDIR)/libkeyring_la-keyring.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='keyring.c' object='libkeyring_la-keyring.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libkeyring_la_CFLAGS) $(CFLAGS) -c -o libkeyring_la-keyring.lo `test -f 'keyring.c' || echo '$(srcdir)/'`keyring.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-libLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: jpilot-1.8.1.2/jpilot.spec0000644000175000017500000001137411702306405012264 00000000000000%define version 1.8.1.2 Name: jpilot Summary: Desktop organizer software for the Palm Pilot Version: 1.8.1.2 Release: 1 License: GPL Group: Applications/Productivity Source: http://jpilot.org/jpilot-1.8.1.2.tar.gz URL: http://www.jpilot.org Packager: Judd Montgomery Prefix: /usr BuildRoot: %{_tmppath}/%{name}-1.8.1.2-root Requires: pilot-link >= 0.12.5 %description J-Pilot is a desktop organizer application for the palm pilot that runs under Linux and Unix using X-Windows and GTK+. It is similar in functionality to the one that 3Com distributes and has many features not found in the 3Com desktop. %define _prefix %{prefix} %define _mandir %{prefix}/share/man %define _infodir %{prefix}/share/info %define _libdir %{prefix}/lib %define _datadir %{prefix}/share %define _docdir %{prefix}/share/doc/%{name} %prep %setup -q %build if [ ! -f ./configure ]; then ./autogen.sh --prefix=%{prefix} --mandir=%{_mandir} else %configure --prefix=%{prefix} --mandir=%{_mandir} fi make %install rm -rf $RPM_BUILD_ROOT strip jpilot make DESTDIR=$RPM_BUILD_ROOT install %post %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root) %{_bindir}/jpilot %{_bindir}/jpilot-dial %{_bindir}/jpilot-dump %{_bindir}/jpilot-merge %{_bindir}/jpilot-sync %{_libdir}/jpilot/plugins/libexpense.la %{_libdir}/jpilot/plugins/libexpense.so %{_libdir}/jpilot/plugins/libkeyring.la %{_libdir}/jpilot/plugins/libkeyring.so %{_libdir}/jpilot/plugins/libsynctime.la %{_libdir}/jpilot/plugins/libsynctime.so %{_docdir}/AUTHORS %{_docdir}/BUGS %{_docdir}/ChangeLog %{_docdir}/COPYING %{_docdir}/INSTALL %{_docdir}/README %{_docdir}/TODO %{_docdir}/icons/README %{_docdir}/icons/jpilot-icon1.xpm %{_docdir}/icons/jpilot-icon2.xpm %{_docdir}/icons/jpilot-icon3.xpm %{_docdir}/icons/jpilot-icon4.xpm %{_docdir}/manual/jpilot-address.png %{_docdir}/manual/jpilot-datebook.png %{_docdir}/manual/jpilot-expense.png %{_docdir}/manual/jpilot-install.png %{_docdir}/manual/jpilot-memo.png %{_docdir}/manual/jpilot-prefs-1.png %{_docdir}/manual/jpilot-prefs-2.png %{_docdir}/manual/jpilot-prefs-3.png %{_docdir}/manual/jpilot-prefs-4.png %{_docdir}/manual/jpilot-prefs-5.png %{_docdir}/manual/jpilot-prefs-6.png %{_docdir}/manual/jpilot-prefs-7.png %{_docdir}/manual/jpilot-prefs-8.png %{_docdir}/manual/jpilot-print.png %{_docdir}/manual/jpilot-search.png %{_docdir}/manual/jpilot-todo.png %{_docdir}/manual/jpilot-toplogo.jpg %{_docdir}/manual/manual.html %{_docdir}/manual/plugin.html %{_datadir}/jpilot/AddressDB.pdb %{_datadir}/jpilot/CalendarDB-PDat.pdb %{_datadir}/jpilot/ContactsDB-PAdd.pdb %{_datadir}/jpilot/DatebookDB.pdb %{_datadir}/jpilot/ExpenseDB.pdb #%{_datadir}/jpilot/MañanaDB.pdb %{_datadir}/jpilot/Ma?anaDB.pdb %{_datadir}/jpilot/Memo32DB.pdb %{_datadir}/jpilot/MemoDB.pdb %{_datadir}/jpilot/MemosDB-PMem.pdb %{_datadir}/jpilot/TasksDB-PTod.pdb %{_datadir}/jpilot/ToDoDB.pdb %{_datadir}/jpilot/jpilotrc.blue %{_datadir}/jpilot/jpilotrc.default %{_datadir}/jpilot/jpilotrc.green %{_datadir}/jpilot/jpilotrc.purple %{_datadir}/jpilot/jpilotrc.steel %{_datadir}/locale/*/LC_MESSAGES/jpilot.mo %{_mandir}/man1/jpilot-dial.1.gz %{_mandir}/man1/jpilot-dump.1.gz %{_mandir}/man1/jpilot-merge.1.gz %{_mandir}/man1/jpilot-sync.1.gz %{_mandir}/man1/jpilot.1.gz %{_datadir}/applications/jpilot.desktop %changelog * Mon Apr 11 2011 rikster5 - Add jpilot-merge to distribution * Mon Mar 08 2010 rikster5 - Use autoconf to replace VERSION rather than %version which is RedHat specific * Mon Mar 08 2010 rikster5 - Use autoconf to replace VERSION rather than %version which is RedHat specific * Sun Mar 07 2010 rikster5 - Revamped to include all files from 1.8.0 release * Sat Feb 28 2010 rikster5 - Updated for 1.8.0 release * Sat Sep 24 2005 Judd Montgomery - Updated for SuSE 9.3 * Sat Feb 22 2003 Judd Montgomery - fixed jpilotrc.* and empty/* files not being included * Sat Feb 22 2003 Vladimir Bormotov - call autogen.sh if no configure found - installation improvements - Oct 8, 2002 updated for automake build * Tue Jun 5 2001 Christian W. Zuckschwerdt - moved jpilot.spec to jpilot.spec.in and autoconf'ed it. - fixed this spec file so we don't need superuser privileges. - changed the hardcoded path into rpm macros * Wed Nov 22 2000 Matthew Vanecek - deleted the calls to 'install' in the % install section since this is already done in the Makefile. - Deleted the %attr tags from the %files list and made the default attribute to -,root,root. - changed the /usr/ to % {prefix}/ - Added the % post section - Added the % clean section - Changed the description jpilot-1.8.1.2/russian.h0000644000175000017500000000231511524574422011747 00000000000000/* $Id: russian.h,v 1.5 2010-10-13 03:18:59 rikster5 Exp $ */ /******************************************************************************* * russian.h * A module of J-Pilot http://jpilot.org * * Copyright (C) 2000 by Gennady Kudelya * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /* Header for Russian library Convert Palm <-> Unix: Palm : koi8 Unix : Win1251 */ void koi8_to_win1251(char *const buf, int buf_len); void win1251_to_koi8(char *const buf, int buf_len); jpilot-1.8.1.2/log.c0000644000175000017500000001354511524574422011046 00000000000000/* $Id: log.c,v 1.35 2010-10-15 16:42:13 rikster5 Exp $ */ /******************************************************************************* * log.c * A module of J-Pilot http://jpilot.org * * Copyright (C) 1999-2002 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /* * Thanks to Jason Day for his patches that allowed plugins to log correctly */ /********************************* Includes ***********************************/ #include "config.h" #include #include #include #include #include #include #ifdef USE_FLOCK # include #else # include #endif #include #include #include "i18n.h" #include "log.h" #include "utils.h" #include "sync.h" #include "prefs.h" /********************************* Constants **********************************/ #define WRITE_MAX_BUF 4096 /******************************* Global vars **********************************/ int pipe_to_parent; int glob_log_file_mask; int glob_log_stdout_mask; int glob_log_gui_mask; extern void output_to_pane(const char *str); extern pid_t jpilot_master_pid; /****************************** Prototypes ************************************/ static int jp_vlogf (int level, const char *format, va_list val); /****************************** Main Code *************************************/ int jp_logf(int level, const char *format, ...) { va_list val; int rval; if (!((level & glob_log_file_mask) || (level & glob_log_stdout_mask) || (level & glob_log_gui_mask))) { return EXIT_SUCCESS; } va_start(val, format); rval = jp_vlogf(level, format, val); va_end(val); return rval; } static int jp_vlogf (int level, const char *format, va_list val) { char real_buf[WRITE_MAX_BUF+32]; char *buf, *local_buf; int size; int len; int r; static FILE *fp=NULL; static int err_count=0; char cmd[16]; if (!((level & glob_log_file_mask) || (level & glob_log_stdout_mask) || (level & glob_log_gui_mask))) { return EXIT_SUCCESS; } if ((!fp) && (err_count>10)) { return EXIT_FAILURE; } if ((!fp) && (err_count==10)) { fprintf(stderr, _("Unable to open log file, giving up.\n")); err_count++; return EXIT_FAILURE; } if ((!fp) && (err_count<10)) { char fullname[FILENAME_MAX]; get_home_file_name(EPN".log", fullname, sizeof(fullname)); fp = fopen(fullname, "w"); if (!fp) { fprintf(stderr, _("Unable to open log file\n")); err_count++; } } buf=&(real_buf[16]); buf[0] = '\0'; size = g_vsnprintf(buf, WRITE_MAX_BUF, format, val); /* glibc >2.1 can return size > WRITE_MAX_BUF */ /* just in case g_vsnprintf reached the max */ buf[WRITE_MAX_BUF-1] = '\0'; size=strlen(buf); local_buf = buf; /* UTF-8 text so transform in local encoding */ if (g_utf8_validate(buf, -1, NULL)) { local_buf = g_locale_from_utf8(buf, -1, NULL, NULL, NULL); if (NULL == local_buf) local_buf = buf; } if ((fp) && (level & glob_log_file_mask)) { fwrite(local_buf, size, 1, fp); fflush(fp); } if (level & glob_log_stdout_mask) { fputs(local_buf, stdout); } /* free the buffer is a conversion was used */ if (local_buf != buf) g_free(local_buf); if ((pipe_to_parent) && (level & glob_log_gui_mask)) { /* do not use a pipe for intra-process log * otherwise we may have a dead lock (jpilot freezes) */ if (getpid() == jpilot_master_pid) output_to_pane(buf); else { sprintf(cmd, "%d:", PIPE_PRINT); len = strlen(cmd); buf = buf-len; strncpy(buf, cmd, len); size += len; buf[size]='\0'; buf[size+1]='\n'; size += 2; r = write(pipe_to_parent, buf, size); if (r<0) fprintf(stderr, "write returned error %s %d\n", __FILE__, __LINE__); } } return EXIT_SUCCESS; } /* * This function writes data to the parent process. * A line feed, or a null must be the last character written. */ int write_to_parent(int command, const char *format, ...) { va_list val; int len, size; char real_buf[WRITE_MAX_BUF+32]; char *buf; char cmd[20]; buf=&(real_buf[16]); buf[0] = '\0'; va_start(val, format); g_vsnprintf(buf, WRITE_MAX_BUF, format, val); /* glibc >2.1 can return size > WRITE_MAX_BUF */ /* just in case g_vsnprintf reached the max */ buf[WRITE_MAX_BUF-1] = '\0'; size=strlen(buf); va_end(val); /* This is for jpilot-sync */ if (pipe_to_parent==STDOUT_FILENO) { if (command==PIPE_PRINT) { write(pipe_to_parent, buf, strlen(buf)); } return TRUE; } sprintf(cmd, "%d:", command); len = strlen(cmd); buf = buf-len; strncpy(buf, cmd, len); size += len; /* The pipe doesn't flush unless a CR is written */ /* This is our key to the parent for a record separator */ buf[size]='\0'; buf[size+1]='\n'; size += 2; write(pipe_to_parent, buf, size); return TRUE; } jpilot-1.8.1.2/depcomp0000755000175000017500000004426711254114053011471 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2009-04-28.21; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free # Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u="sed s,\\\\\\\\,/,g" depmode=msvisualcpp fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: jpilot-1.8.1.2/monthview_gui.c0000644000175000017500000004300711524574422013145 00000000000000/* $Id: monthview_gui.c,v 1.58 2010-11-10 03:57:47 rikster5 Exp $ */ /******************************************************************************* * monthview_gui.c * A module of J-Pilot http://jpilot.org * * Copyright (C) 1999-2002 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /********************************* Includes ***********************************/ #include "config.h" #include #include #include #include #include #include "utils.h" #include "i18n.h" #include "prefs.h" #include "log.h" #include "datebook.h" #include "calendar.h" #include "print.h" #include "jpilot.h" /******************************* Global vars **********************************/ extern int datebk_category; extern int glob_app; extern GtkTooltips *glob_tooltips; GtkWidget *monthview_window=NULL; static GtkWidget *month_day_label[37]; static GtkWidget *month_day[37]; static GObject *month_day_buffer[37]; static GObject *all_appts_buffer; static GtkWidget *month_month_label; static GtkWidget *glob_last_hbox_row; static int glob_offset; static struct tm glob_month_date; /****************************** Prototypes ************************************/ static int display_months_appts(struct tm *glob_month_date, GtkWidget **glob_month_texts); static void hide_show_month_boxes(void); /****************************** Main Code *************************************/ static gboolean cb_destroy(GtkWidget *widget) { int n; GString *gstr; GtkWidget *text; monthview_window = NULL; for (n=0; n<37; n++) { text = month_day[n]; gstr = gtk_object_get_data(GTK_OBJECT(text), "gstr"); if (gstr) { g_string_free(gstr, TRUE); gtk_object_remove_data(GTK_OBJECT(text), "gstr"); } } return FALSE; } void cb_monthview_quit(GtkWidget *widget, gpointer data) { int w, h; gdk_window_get_size(monthview_window->window, &w, &h); set_pref(PREF_MONTHVIEW_WIDTH, w, NULL, FALSE); set_pref(PREF_MONTHVIEW_HEIGHT, h, NULL, FALSE); gtk_widget_destroy(monthview_window); } static void cb_month_move(GtkWidget *widget, gpointer data) { if (GPOINTER_TO_INT(data)==-1) { glob_month_date.tm_mday=15; sub_days_from_date(&glob_month_date, 30); } if (GPOINTER_TO_INT(data)==1) { glob_month_date.tm_mday=15; add_days_to_date(&glob_month_date, 30); } hide_show_month_boxes(); display_months_appts(&glob_month_date, month_day); } static void cb_month_print(GtkWidget *widget, gpointer data) { long paper_size; jp_logf(JP_LOG_DEBUG, "cb_month_print called\n"); if (print_gui(monthview_window, DATEBOOK, 3, 0x04) == DIALOG_SAID_PRINT) { get_pref(PREF_PAPER_SIZE, &paper_size, NULL); if (paper_size==1) { print_months_appts(&glob_month_date, PAPER_A4); } else { print_months_appts(&glob_month_date, PAPER_Letter); } } } static void cb_enter_notify(GtkWidget *widget, GdkEvent *event, gpointer data) { static int prev_day=-1; GtkWidget *textview; GString *gstr; if (prev_day==GPOINTER_TO_INT(data)+1-glob_offset) { return; } prev_day = GPOINTER_TO_INT(data)+1-glob_offset; textview = gtk_bin_get_child(GTK_BIN(widget)); gstr = gtk_object_get_data(GTK_OBJECT(textview), "gstr"); if (gstr) { gtk_text_buffer_set_text(GTK_TEXT_BUFFER(all_appts_buffer), gstr->str, -1); } else { gtk_text_buffer_set_text(GTK_TEXT_BUFFER(all_appts_buffer), "", -1); } } /* Called when a day is clicked on in the month view */ static void cb_enter_selected_day(GtkWidget *widget, GdkEvent *event, gpointer data) { int day = GPOINTER_TO_INT(data) + 1 - glob_offset; if (glob_app != DATEBOOK) return; /* Redisplay the day view based on the date the user clicked on */ datebook_gui_setdate(glob_month_date.tm_year, glob_month_date.tm_mon, day); } /* * Hide, or show month boxes (days) according to the month. * Also, set a global offset for indexing day 1. * Also relabel day labels. */ static void hide_show_month_boxes(void) { int n; int dow, ndim; int now_today; long fdow; char str[40]; int d; GtkWidget *text; char *markup_str; /* Determine today for highlighting */ now_today = get_highlighted_today(&glob_month_date); get_month_info(glob_month_date.tm_mon, 1, glob_month_date.tm_year, &dow, &ndim); get_pref(PREF_FDOW, &fdow, NULL); glob_offset = (7+dow-fdow)%7; d = 1 - glob_offset; if (glob_offset + ndim > 35) { gtk_widget_show(GTK_WIDGET(glob_last_hbox_row)); } else { gtk_widget_hide(GTK_WIDGET(glob_last_hbox_row)); } for (n=0; n<37; n++, d++) { text = month_day[n]; g_snprintf(str, sizeof(str), "%d", d); if (d == now_today) { markup_str = g_markup_printf_escaped("%s", str); gtk_widget_set_name(text, "today"); } else { markup_str = g_markup_printf_escaped("%s", str); gtk_widget_set_name(text, ""); } gtk_label_set_markup(GTK_LABEL(month_day_label[n]), markup_str); g_free(markup_str); if (n<7) { if (d>0) { gtk_widget_show(GTK_WIDGET(text)); gtk_widget_show(GTK_WIDGET(month_day_label[n])); } else { gtk_widget_hide(GTK_WIDGET(text)); gtk_widget_hide(GTK_WIDGET(month_day_label[n])); } } if (n>27) { if (d<=ndim) { gtk_widget_show(GTK_WIDGET(text)); gtk_widget_show(GTK_WIDGET(month_day_label[n])); } else { gtk_widget_hide(GTK_WIDGET(text)); gtk_widget_hide(GTK_WIDGET(month_day_label[n])); } } } } static void create_month_boxes_texts(GtkWidget *month_vbox) { int i, j, n; GtkWidget *hbox_row; GtkWidget *vbox; GtkWidget *text; GtkWidget *event_box; char str[80]; n=0; for (i=0; i<6; i++) { hbox_row = gtk_hbox_new(TRUE, 0); gtk_box_pack_start(GTK_BOX(month_vbox), hbox_row, TRUE, TRUE, 0); for (j=0; j<7; j++) { vbox = gtk_vbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox_row), vbox, TRUE, TRUE, 2); n=i*7+j; if (n<37) { sprintf(str, "%d", n + 1); /* Day of month labels */ month_day_label[n] = gtk_label_new(str); gtk_misc_set_alignment(GTK_MISC(month_day_label[n]), 0.0, 0.5); gtk_box_pack_start(GTK_BOX(vbox), month_day_label[n], FALSE, FALSE, 0); /* text variable only used to save some typing */ text = month_day[n] = gtk_text_view_new(); month_day_buffer[n] = G_OBJECT(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text))); gtk_widget_set_usize(GTK_WIDGET(text), 10, 10); gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(text), FALSE); gtk_text_view_set_editable(GTK_TEXT_VIEW(text), FALSE); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text), GTK_WRAP_WORD); /* textview widget does not support window events such as * enter_notify. The widget must be wrapped in an event box * in order to work correctly. */ event_box = gtk_event_box_new(); gtk_container_add(GTK_CONTAINER(event_box), text); gtk_signal_connect(GTK_OBJECT(event_box), "enter_notify_event", GTK_SIGNAL_FUNC(cb_enter_notify), GINT_TO_POINTER(n)); gtk_signal_connect(GTK_OBJECT(text), "button_release_event", GTK_SIGNAL_FUNC(cb_enter_selected_day), GINT_TO_POINTER(n)); gtk_box_pack_start(GTK_BOX(vbox), event_box, TRUE, TRUE, 0); } } } glob_last_hbox_row = hbox_row; text = gtk_text_view_new(); all_appts_buffer = G_OBJECT(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text))); gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(text), FALSE); gtk_text_view_set_editable(GTK_TEXT_VIEW(text), FALSE); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text), GTK_WRAP_WORD); gtk_widget_set_usize(GTK_WIDGET(text), 10, 10); gtk_box_pack_start(GTK_BOX(month_vbox), text, TRUE, TRUE, 4); } static int display_months_appts(struct tm *date_in, GtkWidget **day_texts) { CalendarEventList *ce_list; CalendarEventList *temp_cel; struct tm date; GtkWidget **texts; GObject **text_buffers; char desc[100]; char datef[20]; char str[80]; int dow; int ndim; int n; int mask; int num_shown; #ifdef ENABLE_DATEBK int ret; int cat_bit; int db3_type; long use_db3_tags; struct db4_struct db4; #endif GString *gstr; GtkWidget *temp_text; long datebook_version; texts = &day_texts[glob_offset]; text_buffers = &month_day_buffer[glob_offset]; ce_list = NULL; mask=0; get_pref(PREF_DATEBOOK_VERSION, &datebook_version, NULL); for (n=0; n<37; n++) { temp_text = month_day[n]; gstr = gtk_object_get_data(GTK_OBJECT(temp_text), "gstr"); if (gstr) { g_string_free(gstr, TRUE); gtk_object_remove_data(GTK_OBJECT(temp_text), "gstr"); } } /* Set Month name label */ jp_strftime(str, sizeof(str), "%B %Y", date_in); gtk_label_set_text(GTK_LABEL(month_month_label), str); memcpy(&date, date_in, sizeof(struct tm)); /* Get all of the appointments */ get_days_calendar_events2(&ce_list, NULL, 2, 2, 2, CATEGORY_ALL, NULL); get_month_info(date.tm_mon, 1, date.tm_year, &dow, &ndim); weed_calendar_event_list(&ce_list, date.tm_mon, date.tm_year, 0, &mask); for (n=0, date.tm_mday=1; date.tm_mday<=ndim; date.tm_mday++, n++) { gstr=NULL; date.tm_sec=0; date.tm_min=0; date.tm_hour=11; date.tm_isdst=-1; date.tm_wday=0; date.tm_yday=1; mktime(&date); gtk_text_buffer_set_text(GTK_TEXT_BUFFER(text_buffers[n]), "", -1); num_shown = 0; for (temp_cel = ce_list; temp_cel; temp_cel=temp_cel->next) { #ifdef ENABLE_DATEBK get_pref(PREF_USE_DB3, &use_db3_tags, NULL); if (use_db3_tags) { ret = db3_parse_tag(temp_cel->mcale.cale.note, &db3_type, &db4); jp_logf(JP_LOG_DEBUG, "category = 0x%x\n", db4.category); cat_bit=1<mcale.cale), &date)) { if (num_shown) { gtk_text_buffer_insert_at_cursor(GTK_TEXT_BUFFER(text_buffers[n]), "\n", -1); g_string_append(gstr, "\n"); } else { gstr=g_string_new(""); } num_shown++; if (temp_cel->mcale.cale.event) { strcpy(desc, "*"); } else { get_pref_time_no_secs(datef); jp_strftime(desc, sizeof(desc), datef, &(temp_cel->mcale.cale.begin)); strcat(desc, " "); } g_string_append(gstr, desc); g_string_append(gstr, temp_cel->mcale.cale.description); if (temp_cel->mcale.cale.description) { strncat(desc, temp_cel->mcale.cale.description, 36); /* FIXME: This kind of truncation is bad for UTF-8 */ desc[35]='\0'; } /* FIXME: Add location in parentheses (loc) as the Palm does. * We would need to check strlen, etc., before adding */ remove_cr_lfs(desc); /* Append number of anniversary years if enabled & appropriate */ append_anni_years(desc, 35, &date, NULL, &temp_cel->mcale.cale); gtk_text_buffer_insert_at_cursor(GTK_TEXT_BUFFER(text_buffers[n]), desc, -1); } } gtk_object_set_data(GTK_OBJECT(texts[n]), "gstr", gstr); } free_CalendarEventList(&ce_list); return EXIT_SUCCESS; } void monthview_gui(struct tm *date_in) { struct tm date; GtkWidget *label; GtkWidget *button; GtkWidget *align; GtkWidget *vbox; GtkWidget *hbox; GtkWidget *hbox_temp; GtkAccelGroup *accel_group; int i; char str[256]; char str_dow[256]; long fdow; char title[200]; long w, h, show_tooltips; if (monthview_window) { /* Delete any existing window to ensure that new window is biased * around currently selected date and so that the new window * contents are updated with any changes on the day view. */ gtk_widget_destroy(monthview_window); } memcpy(&glob_month_date, date_in, sizeof(struct tm)); get_pref(PREF_FDOW, &fdow, NULL); get_pref(PREF_MONTHVIEW_WIDTH, &w, NULL); get_pref(PREF_MONTHVIEW_HEIGHT, &h, NULL); get_pref(PREF_SHOW_TOOLTIPS, &show_tooltips, NULL); g_snprintf(title, sizeof(title), "%s %s", PN, _("Monthly View")); monthview_window = gtk_widget_new(GTK_TYPE_WINDOW, "type", GTK_WINDOW_TOPLEVEL, "title", title, NULL); gtk_window_set_default_size(GTK_WINDOW(monthview_window), w, h); gtk_container_set_border_width(GTK_CONTAINER(monthview_window), 10); gtk_signal_connect(GTK_OBJECT(monthview_window), "destroy", GTK_SIGNAL_FUNC(cb_destroy), monthview_window); vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(monthview_window), vbox); /* Make accelerators for some buttons window */ accel_group = gtk_accel_group_new(); gtk_window_add_accel_group(GTK_WINDOW(gtk_widget_get_toplevel(vbox)), accel_group); /* This box has the close button and arrows in it */ align = gtk_alignment_new(0.5, 0.5, 0, 0); gtk_box_pack_start(GTK_BOX(vbox), align, FALSE, FALSE, 0); hbox_temp = gtk_hbutton_box_new(); gtk_button_box_set_spacing(GTK_BUTTON_BOX(hbox_temp), 6); gtk_container_set_border_width(GTK_CONTAINER(hbox_temp), 6); gtk_container_add(GTK_CONTAINER(align), hbox_temp); /* Make a left arrow for going back a week */ button = gtk_button_new_from_stock(GTK_STOCK_GO_BACK); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_month_move), GINT_TO_POINTER(-1)); gtk_box_pack_start(GTK_BOX(hbox_temp), button, FALSE, FALSE, 3); /* Accelerator key for left arrow */ gtk_widget_add_accelerator(GTK_WIDGET(button), "clicked", accel_group, GDK_Left, GDK_MOD1_MASK, GTK_ACCEL_VISIBLE); set_tooltip(show_tooltips, glob_tooltips, button, _("Last month Alt+LeftArrow"), NULL); /* Close button */ button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_monthview_quit), monthview_window); /* Closing the window via a delete event uses the same cleanup routine */ gtk_signal_connect(GTK_OBJECT(monthview_window), "delete_event", GTK_SIGNAL_FUNC(cb_monthview_quit), NULL); gtk_box_pack_start(GTK_BOX(hbox_temp), button, FALSE, FALSE, 0); /* Print button */ button = gtk_button_new_from_stock(GTK_STOCK_PRINT); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_month_print), monthview_window); gtk_box_pack_start(GTK_BOX(hbox_temp), button, FALSE, FALSE, 0); /* Make a right arrow for going forward a week */ button = gtk_button_new_from_stock(GTK_STOCK_GO_FORWARD); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_month_move), GINT_TO_POINTER(1)); gtk_box_pack_start(GTK_BOX(hbox_temp), button, FALSE, FALSE, 3); /* Accelerator key for right arrow */ gtk_widget_add_accelerator(GTK_WIDGET(button), "clicked", accel_group, GDK_Right, GDK_MOD1_MASK, GTK_ACCEL_VISIBLE); set_tooltip(show_tooltips, glob_tooltips, button, _("Next month Alt+RightArrow"), NULL); /* Month name label */ jp_strftime(str, sizeof(str), "%B %Y", &glob_month_date); month_month_label = gtk_label_new(str); gtk_box_pack_start(GTK_BOX(vbox), month_month_label, FALSE, FALSE, 0); /* We know this is on a Sunday */ memset(&date, 0, sizeof(date)); date.tm_hour=12; date.tm_mday=3; date.tm_mon=1; date.tm_year=80; mktime(&date); /* Get to the first day of week */ if (fdow) add_days_to_date(&date, fdow); /* Days of the week */ hbox = gtk_hbox_new(TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); for (i=0; i<7; i++) { jp_strftime(str_dow, sizeof(str_dow), "%A", &date); label = gtk_label_new(str_dow); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); add_days_to_date(&date, 1); } create_month_boxes_texts(vbox); gtk_widget_show_all(monthview_window); hide_show_month_boxes(); display_months_appts(&glob_month_date, month_day); } jpilot-1.8.1.2/libplugin.h0000644000175000017500000002630211547063267012257 00000000000000/* $Id: libplugin.h,v 1.39 2011-04-06 12:43:45 rousseau Exp $ */ /******************************************************************************* * libplugin.h * A module of J-Pilot http://jpilot.org * * Copyright (C) 1999-2002 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef __LIBPLUGIN_H__ #define __LIBPLUGIN_H__ #include "config.h" #include #include #include #include "log.h" /* * PLUGIN API for J-Pilot */ #ifdef ENABLE_PROMETHEON #define PN "CoPilot" #else #define PN "J-Pilot" #endif #ifdef ENABLE_PROMETHEON #define EPN "copilot" #else #define EPN "jpilot" #endif /* * For versioning of files */ #define FILE_VERSION "version" #define FILE_VERSION2 "version2" #define FILE_VERSION2_CR "version2\n" typedef struct { unsigned char Offset[4]; /*4 bytes offset from BOF to record */ unsigned char attrib; unsigned char unique_ID[3]; } record_header; typedef struct { unsigned long header_len; unsigned long header_version; unsigned long rec_len; unsigned long unique_id; unsigned long rt; /* Record Type */ unsigned char attrib; } PC3RecordHeader; typedef struct mem_rec_header_s { unsigned int rec_num; unsigned int offset; unsigned int unique_id; unsigned char attrib; struct mem_rec_header_s *next; } mem_rec_header; typedef struct { char db_name[32]; unsigned char flags[2]; unsigned char version[2]; unsigned char creation_time[4]; unsigned char modification_time[4]; unsigned char backup_time[4]; unsigned char modification_number[4]; unsigned char app_info_offset[4]; unsigned char sort_info_offset[4]; char type[4]; /* Database ID */ char creator_id[4]; /* Application ID */ char unique_id_seed[4]; unsigned char next_record_list_id[4]; unsigned char number_of_records[2]; } RawDBHeader; #define LEN_RAW_DB_HEADER 78 typedef struct { char db_name[32]; unsigned int flags; unsigned int version; time_t creation_time; time_t modification_time; time_t backup_time; unsigned int modification_number; unsigned int app_info_offset; unsigned int sort_info_offset; char type[5];/*Database ID */ char creator_id[5];/*Application ID */ char unique_id_seed[5]; unsigned int next_record_list_id; unsigned int number_of_records; } DBHeader; int get_next_unique_pc_id(unsigned int *next_unique_id); /* used for jp_delete_record */ #define CLEAR_FLAG 1 #define CANCEL_FLAG 2 #define DELETE_FLAG 3 #define MODIFY_FLAG 4 #define NEW_FLAG 5 #define COPY_FLAG 6 #define UNDELETE_FLAG 7 #define CLIST_DEL_RED 0xCCCC #define CLIST_DEL_GREEN 0xCCCC #define CLIST_DEL_BLUE 0xCCCC #define CLIST_NEW_RED 55000 #define CLIST_NEW_GREEN 55000 #define CLIST_NEW_BLUE 65535 #define CLIST_MOD_RED 55000 #define CLIST_MOD_GREEN 65535 #define CLIST_MOD_BLUE 65535 #define CLIST_PRIVATE_RED 60000 #define CLIST_PRIVATE_GREEN 55000 #define CLIST_PRIVATE_BLUE 55000 #define CLIST_OVERDUE_RED 0xD900 #define CLIST_OVERDUE_GREEN 0x0000 #define CLIST_OVERDUE_BLUE 0x0000 #define CLIST_DUENOW_RED 4369 #define CLIST_DUENOW_GREEN 40863 #define CLIST_DUENOW_BLUE 35466 #define DIALOG_SAID_1 454 #define DIALOG_SAID_PRINT 454 #define DIALOG_SAID_FOURTH 454 #define DIALOG_SAID_2 455 #define DIALOG_SAID_LAST 455 #define DIALOG_SAID_3 456 #define DIALOG_SAID_CANCEL 456 #define DIALOG_SAID_4 457 #define JP_LOG_DEBUG 1 /*debugging info for programmers, and bug reports */ #define JP_LOG_INFO 2 /*info, and misc messages */ #define JP_LOG_WARN 4 /*worse messages */ #define JP_LOG_FATAL 8 /*even worse messages */ #define JP_LOG_STDOUT 256 /*messages always go to stdout */ #define JP_LOG_FILE 512 /*messages always go to the log file */ #define JP_LOG_GUI 1024 /*messages always go to the gui window */ #define JPILOT_EOF -7 /* This bit means that this record is of no importance anymore */ #define SPENT_PC_RECORD_BIT 256 typedef enum { PALM_REC = 100L, MODIFIED_PALM_REC = 101L, DELETED_PALM_REC = 102L, NEW_PC_REC = 103L, DELETED_PC_REC = SPENT_PC_RECORD_BIT | 104L, DELETED_DELETED_PALM_REC = SPENT_PC_RECORD_BIT | 105L, REPLACEMENT_PALM_REC = 106L } PCRecType; typedef struct { PCRecType rt; unsigned int unique_id; unsigned char attrib; void *buf; int size; } buf_rec; typedef struct { char *base_dir; int *major_version; int *minor_version; } jp_startup_info; struct search_result { char *line; unsigned int unique_id; struct search_result *next; }; void plugin_version(int *major_version, int *minor_version); int plugin_get_name(char *name, int len); int plugin_get_menu_name(char *name, int len); int plugin_get_help_name(char *name, int len); int plugin_get_db_name(char *db_name, int len); int plugin_startup(jp_startup_info *info); int plugin_gui(GtkWidget *vbox, GtkWidget *hbox, unsigned int unique_id); int plugin_help(char **text, int *width, int *height); int plugin_print(void); int plugin_import(GtkWidget *window); int plugin_export(GtkWidget *window); int plugin_gui_cleanup(void); int plugin_pre_sync_pre_connect(void); int plugin_pre_sync(void); int plugin_sync(int sd); int plugin_search(const char *search_string, int case_sense, struct search_result **sr); int plugin_post_sync(void); int plugin_exit_cleanup(void); int plugin_unpack_cai_from_ai(struct CategoryAppInfo *cai, unsigned char *ai_raw, int len); int plugin_pack_cai_into_ai(struct CategoryAppInfo *cai, unsigned char *ai_raw, int len); /* callbacks are needed for print */ void jp_init(void); /* This takes the value of $JPILOT_HOME and appends /.jpilot/ and {file} * onto it and puts it into full_name. max_size is the size if the * supplied buffer full_name */ int jp_get_home_file_name(const char *file, char *full_name, int max_size); /* * DB_name should be without filename ext, e.g. MemoDB * bufp is the packed app info block * size_in is the size of bufp */ int jp_pdb_file_write_app_block(const char *DB_name, void *bufp, int size_in); /* * widget is a widget inside the main window used to get main window handle * db_name should be without filename ext, e.g. MemoDB * cai is the category app info. This should be unpacked by the user since * category unpack functions are database specific. */ int jp_edit_cats(GtkWidget *widget, char *db_name, struct CategoryAppInfo *cai); /* file must not be open elsewhere when this is called, the first line is 0 */ int jp_install_remove_line(int deleted_line); int jp_install_append_line(char *line); /* * Get the application info block */ int jp_get_app_info(const char *DB_name, unsigned char **buf, int *buf_size); /* * Read a pdb file out of the $(JPILOT_HOME || HOME)/.jpilot/ directory * It also reads the PC file */ int jp_read_DB_files(const char *DB_name, GList **records); /* *This deletes a record from the appropriate Datafile */ int jp_delete_record(const char *DB_name, buf_rec *br, int flag); /* *This undeletes a record from the appropriate Datafile */ int jp_undelete_record(const char *DB_name, buf_rec *br, int flag); /* * Free the record list */ int jp_free_DB_records(GList **records); int jp_pc_write(const char *DB_name, buf_rec *br); const char *jp_strstr(const char *haystack, const char *needle, int case_sense); int pc_read_next_rec(FILE *in, buf_rec *br); int read_header(FILE *pc_in, PC3RecordHeader *header); int write_header(FILE *pc_out, PC3RecordHeader *header); /* * These 2 functions don't take full path names. * They are relative to $JPILOT_HOME/.jpilot/ */ int rename_file(char *old_filename, char *new_filename); int unlink_file(char *filename); /* */ /*Warning, this function will move the file pointer */ /* */ int get_app_info_size(FILE *in, int *size); /* mon 0-11 * day 1-31 * year (year - 1900) * This function will bring up the cal at mon, day, year * After a new date is selected it will return mon, day, year */ int jp_cal_dialog(GtkWindow *main_window, const char *title, int monday_is_fdow, int *mon, int *day, int *year); /* * The preferences interface makes it easy to read and write name/value pairs * to a file. Also access them efficiently. */ #define INTTYPE 1 #define CHARTYPE 2 /* I explain these below */ typedef struct { const char *name; int usertype; int filetype; long ivalue; char *svalue; int svalue_size; } prefType; /* char *name; */ /* The name of the preference, will be written to column 1 of the rc file * This needs to be set before reading the rc file. */ /* int usertype; */ /* INTTYPE or CHARTYPE, this is the type of value that the pref is. * This type of value will be returned and set by pref calls. */ /* int filetype; */ /* INTTYPE or CHARTYPE, this is the type of value that the pref is when * it is read from, or written to a file. * i.e., For some of my menus I have file type of int and usertype * of char. I want to use char, except I don't store the char because * of translations, so I store 3 for the 3rd option. It also allows * predefined allowed values for strings instead of anything goes. */ /* long ivalue; */ /* The long value to be returned if of type INT */ /* char *svalue; */ /* The long value to be returned if of type CHAR */ /* int svalue_size; */ /* The size of the memory allocated for the string, Do not change. */ /* * To use prefs you must allocate an array of prefType and call this function * before any others. * count is how many preferences in the array. */ void jp_pref_init(prefType prefs[], int count); /* * This function can be called to free strings allocated by preferences. * It should be called in the cleanup routine. */ void jp_free_prefs(prefType prefs[], int count); /* * This function retrieves a long value and a pointer to a string of a * preference structure. *string can be passed in as a NULL and NULL can * be returned if the preference is of type INT. */ int jp_get_pref(prefType prefs[], int which, long *n, const char **string); /* * This function sets a long value and a string of a preference structure. * string can be NULL if the preference is type INT. * string can be any length, memory will be allocated. */ int jp_set_pref(prefType prefs[], int which, long n, const char *string); /* * This function reads an rc file and sets the preferences from it. */ int jp_pref_read_rc_file(char *filename, prefType prefs[], int num_prefs); /* * This function writes preferences to an rc file. */ int jp_pref_write_rc_file(char *filename, prefType prefs[], int num_prefs); #endif jpilot-1.8.1.2/restore_gui.c0000644000175000017500000002725611524574422012620 00000000000000/* $Id: restore_gui.c,v 1.32 2010-10-23 04:25:47 rikster5 Exp $ */ /******************************************************************************* * restore_gui.c * A module of J-Pilot http://jpilot.org * * Copyright (C) 2001-2002 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /********************************* Includes ***********************************/ #include "config.h" #include #include #include #include #include #include #include #include #include "i18n.h" #include "utils.h" #include "prefs.h" #include "sync.h" #include "log.h" #include "restore.h" /******************************* Global vars **********************************/ static GtkWidget *user_entry; static GtkWidget *user_id_entry; static GtkWidget *restore_clist; /****************************** Main Code *************************************/ static gboolean cb_restore_destroy(GtkWidget *widget) { gtk_main_quit(); return FALSE; } static void cb_restore_ok(GtkWidget *widget, gpointer data) { GList *list, *temp_list; char *text; char file[FILENAME_MAX], backup_file[FILENAME_MAX]; char home_dir[FILENAME_MAX]; struct stat buf, backup_buf; int r1, r2; list=GTK_CLIST(restore_clist)->selection; get_home_file_name("", home_dir, sizeof(home_dir)); /* Remove anything that was supposed to be installed */ g_snprintf(file, sizeof(file), "%s/"EPN".install", home_dir); unlink(file); jp_logf(JP_LOG_WARN, "%s%s%s\n", "-----===== ", _("Restore Handheld"), " ======-----"); for (temp_list=list; temp_list; temp_list = temp_list->next) { gtk_clist_get_text(GTK_CLIST(restore_clist), GPOINTER_TO_INT(temp_list->data), 0, &text); jp_logf(JP_LOG_DEBUG, "row %ld [%s]\n", (long) temp_list->data, text); /* Look for the file in the JPILOT_HOME and JPILOT_HOME/backup. * Restore the newest modified date one, or the only one. */ g_snprintf(file, sizeof(file), "%s/%s", home_dir, text); g_snprintf(backup_file, sizeof(backup_file), "%s/backup/%s", home_dir, text); r1 = ! stat(file, &buf); r2 = ! stat(backup_file, &backup_buf); if (r1 && r2) { /* found in JPILOT_HOME and JPILOT_HOME/backup */ if (buf.st_mtime > backup_buf.st_mtime) { jp_logf(JP_LOG_DEBUG, "Restore: found in home and backup, using home file %s\n", text); install_append_line(file); } else { jp_logf(JP_LOG_DEBUG, "Restore: found in home and backup, using home/backup file %s\n", text); install_append_line(backup_file); } } else if (r1) { /* only found in JPILOT_HOME */ install_append_line(file); jp_logf(JP_LOG_DEBUG, "Restore: using home file %s\n", text); } else if (r2) { /* only found in JPILOT_HOME/backup */ jp_logf(JP_LOG_DEBUG, "Restore: using home/backup file %s\n", text); install_append_line(backup_file); } } setup_sync(SYNC_NO_PLUGINS|SYNC_OVERRIDE_USER|SYNC_RESTORE); gtk_widget_destroy(data); } static void cb_restore_quit(GtkWidget *widget, gpointer data) { gtk_widget_destroy(data); } /* * path is the dir to open * check_for_dups will check the clist and not add if its a duplicate * check_exts will not add if its not a pdb, prc, or pqa. */ static int populate_clist_sub(char *path, int check_for_dups, int check_exts) { char *row_text[1]; DIR *dir; struct dirent *dirent; char last4[8]; char *text; int i, num, len, found; jp_logf(JP_LOG_DEBUG, "opening dir %s\n", path); dir = opendir(path); num = 0; if (!dir) { jp_logf(JP_LOG_DEBUG, "opening dir failed\n"); } else { for (i=0; (dirent = readdir(dir)); i++) { if (i>1000) { jp_logf(JP_LOG_WARN, "populate_clist_sub(): %s\n", _("infinite loop")); closedir(dir); return EXIT_FAILURE; } if (dirent->d_name[0]=='.') { continue; } if (!strncmp(dirent->d_name, "Unsaved Preferences", 17)) { jp_logf(JP_LOG_DEBUG, "skipping %s\n", dirent->d_name); continue; } if (check_exts) { len = strlen(dirent->d_name); if (len < 4) { continue; } strncpy(last4, dirent->d_name+len-4, 4); last4[4]='\0'; if (strcmp(last4, ".pdb") && strcmp(last4, ".prc") && strcmp(last4, ".pqa")) { continue; } } if (check_for_dups) { found=0; for (i=0; irows; i++) { gtk_clist_get_text(GTK_CLIST(restore_clist), i, 0, &text); if (!(strcmp(dirent->d_name, text))) { found=1; break; } } if (found) continue; } row_text[0]=dirent->d_name; { gchar *utf8_text; utf8_text = g_locale_to_utf8(row_text[0], -1, NULL, NULL, NULL); if (!utf8_text) { jp_logf(JP_LOG_GUI, _("Unable to convert filename for GTK display\n")); jp_logf(JP_LOG_GUI, _("See console log to find which file will not be restored\n")); jp_logf(JP_LOG_STDOUT|JP_LOG_FILE, _("Unable to convert filename for GTK display\n")); jp_logf(JP_LOG_STDOUT|JP_LOG_FILE, _("File %s will not be restored\n"), row_text[0]); continue; } row_text[0] = utf8_text; gtk_clist_append(GTK_CLIST(restore_clist), row_text); g_free(utf8_text); } num++; } closedir(dir); } gtk_clist_sort (GTK_CLIST (restore_clist)); return num; } static int populate_clist(void) { char path[FILENAME_MAX]; get_home_file_name("backup", path, sizeof(path)); cleanup_path(path); populate_clist_sub(path, 0, 0); get_home_file_name("", path, sizeof(path)); cleanup_path(path); populate_clist_sub(path, 1, 1); gtk_clist_select_all(GTK_CLIST(restore_clist)); return EXIT_SUCCESS; } int restore_gui(GtkWidget *main_window, int w, int h, int x, int y) { GtkWidget *restore_window; GtkWidget *button; GtkWidget *vbox; GtkWidget *hbox; GtkWidget *scrolled_window; GtkWidget *label; const char *svalue; long ivalue; long char_set; char str_int[20]; jp_logf(JP_LOG_DEBUG, "restore_gui()\n"); restore_window = gtk_widget_new(GTK_TYPE_WINDOW, "type", GTK_WINDOW_TOPLEVEL, "title", _("Restore Handheld"), NULL); gtk_window_set_default_size(GTK_WINDOW(restore_window), w, h); gtk_widget_set_uposition(restore_window, x, y); gtk_container_set_border_width(GTK_CONTAINER(restore_window), 5); gtk_window_set_default_size(GTK_WINDOW(restore_window), w, h); gtk_window_set_modal(GTK_WINDOW(restore_window), TRUE); gtk_window_set_transient_for(GTK_WINDOW(restore_window), GTK_WINDOW(main_window)); gtk_signal_connect(GTK_OBJECT(restore_window), "destroy", GTK_SIGNAL_FUNC(cb_restore_destroy), restore_window); vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(restore_window), vbox); /* Label for instructions */ label = gtk_label_new(_("To restore your handheld:")); gtk_misc_set_alignment(GTK_MISC(label), 0, 0); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); label = gtk_label_new(_("1. Choose the applications you wish to restore. The default is all.")); gtk_misc_set_alignment(GTK_MISC(label), 0, 0); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); label = gtk_label_new(_("2. Enter the User Name and User ID.")); gtk_misc_set_alignment(GTK_MISC(label), 0, 0); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); label = gtk_label_new(_("3. Press the OK button.")); gtk_misc_set_alignment(GTK_MISC(label), 0, 0); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); label = gtk_label_new(_("This will overwrite data that is currently on the handheld.")); gtk_misc_set_alignment(GTK_MISC(label), 0, 0); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); /* List of files to restore */ scrolled_window = gtk_scrolled_window_new(NULL, NULL); gtk_container_set_border_width(GTK_CONTAINER(scrolled_window), 0); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start(GTK_BOX(vbox), scrolled_window, TRUE, TRUE, 0); restore_clist = gtk_clist_new(1); gtk_clist_set_shadow_type(GTK_CLIST(restore_clist), SHADOW); gtk_clist_set_selection_mode(GTK_CLIST(restore_clist), GTK_SELECTION_EXTENDED); gtk_container_add(GTK_CONTAINER(scrolled_window), GTK_WIDGET(restore_clist)); /* User entry */ hbox = gtk_hbox_new(FALSE, 5); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); label = gtk_label_new(_("User Name")); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); user_entry = gtk_entry_new_with_max_length(126); entry_set_multiline_truncate(GTK_ENTRY(user_entry), TRUE); get_pref(PREF_USER, NULL, &svalue); if ((svalue) && (svalue[0])) { /* Convert User Name stored in Palm character set */ char user_name[128]; get_pref(PREF_CHAR_SET, &char_set, NULL); g_strlcpy(user_name, svalue, 128); charset_p2j(user_name, 128, char_set); gtk_entry_set_text(GTK_ENTRY(user_entry), user_name); } gtk_box_pack_start(GTK_BOX(hbox), user_entry, TRUE, TRUE, 0); /* User ID entry */ hbox = gtk_hbox_new(FALSE, 5); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); label = gtk_label_new(_("User ID")); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); user_id_entry = gtk_entry_new_with_max_length(10); entry_set_multiline_truncate(GTK_ENTRY(user_id_entry), TRUE); get_pref(PREF_USER_ID, &ivalue, NULL); sprintf(str_int, "%ld", ivalue); gtk_entry_set_text(GTK_ENTRY(user_id_entry), str_int); gtk_box_pack_start(GTK_BOX(hbox), user_id_entry, TRUE, TRUE, 0); /* Cancel/OK buttons */ hbox = gtk_hbutton_box_new(); gtk_container_set_border_width(GTK_CONTAINER(hbox), 12); gtk_button_box_set_layout(GTK_BUTTON_BOX (hbox), GTK_BUTTONBOX_END); gtk_button_box_set_spacing(GTK_BUTTON_BOX(hbox), 6); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_restore_quit), restore_window); button = gtk_button_new_from_stock(GTK_STOCK_OK); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_restore_ok), restore_window); populate_clist(); gtk_widget_show_all(restore_window); gtk_main(); return EXIT_SUCCESS; } jpilot-1.8.1.2/TODO0000644000175000017500000000062411022756003010571 00000000000000These are some of the things on my list todo, mostly, but not neccesarily in this order: hide completed floating events in datebook cryptopad splicer http://www.kybs.de/boris/software.shtml * Import/export files in XML, ldif, and maybe other formats * Better daily schedule * Archiving archived records from the palm Done from last time: See CHANGELOG Big projects: * Web Interface Small things: jpilot-1.8.1.2/stock_buttons.h0000644000175000017500000000401211524574422013160 00000000000000/* $Id: stock_buttons.h,v 1.6 2010-11-10 03:57:47 rikster5 Exp $ */ /******************************************************************************* * stock_buttons.h * A module of J-Pilot http://jpilot.org * * Copyright (C) 2005 by Ludovic Rosuseau * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #include "config.h" extern GtkTooltips *glob_tooltips; #ifndef ENABLE_STOCK_BUTTONS /* old behavior */ # include "gdk/gdkkeysyms.h" # define CREATE_BUTTON(widget, text, stock, tooltip, shortcut_key, shortcut_mask, shortcut_text) \ widget = gtk_button_new_with_label(text); \ if (shortcut_key) \ { \ char str[100]; \ gtk_widget_add_accelerator(widget, "clicked", accel_group, shortcut_key, shortcut_mask, GTK_ACCEL_VISIBLE); \ sprintf(str, "%s %s", tooltip, shortcut_text); \ set_tooltip(show_tooltips, glob_tooltips, widget, str, NULL); \ } \ else \ set_tooltip(show_tooltips, glob_tooltips, widget, tooltip, NULL);\ gtk_box_pack_start(GTK_BOX(hbox_temp), widget, TRUE, TRUE, 0); #else # define CREATE_BUTTON(widget, text, stock, tooltip, shortcut_key, shortcut_mask, shortcut_text) \ widget = gtk_button_new_from_stock(GTK_STOCK_ ## stock); \ set_tooltip(show_tooltips, glob_tooltips, widget, tooltip, NULL); \ gtk_box_pack_start(GTK_BOX(hbox_temp), widget, TRUE, TRUE, 0); #endif jpilot-1.8.1.2/alarms.c0000644000175000017500000007444411524602776011555 00000000000000/* $Id: alarms.c,v 1.59 2011-02-09 21:03:13 rousseau Exp $ */ /******************************************************************************* * alarms.c * A module of J-Pilot http://jpilot.org * * Copyright (C) 2000-2002 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /* * The PalmOS datebook will alarm on private records even when they are hidden * and they show up on the screen. Right, or wrong, who knows. * I will do the same. * * Throughout the code, event_time is the time of the event * alarm_time is the event_time - advance * remind_time is the time a window is to be popped up (it may be postponed) */ /********************************* Includes ***********************************/ #include "config.h" #include #include #include #include #include #include #include "alarms.h" #include "i18n.h" #include "utils.h" #include "calendar.h" #include "log.h" #include "prefs.h" /********************************* Constants **********************************/ /* This is how often to check for alarms in seconds */ /* Every call takes CPU time(not much), so you may want it to be greater */ #define ALARM_INTERVAL 10 /* Constants used in converting to seconds */ #define MIN_IN_SECS 60 #define HR_IN_SECS 3600 #define DAY_IN_SECS 86400 #define PREV_ALARM_MASK 1 #define NEXT_ALARM_MASK 2 /* Uncomment for verbose debugging of the alarm code */ /* #define ALARMS_DEBUG */ /******************************* Global vars **********************************/ /* main jpilot window */ extern GtkWidget *window; static struct jp_alarms *alarm_list=NULL; static struct jp_alarms *Plast_alarm_list=NULL; static struct jp_alarms *next_alarm=NULL; static int glob_skip_all_alarms; static int total_alarm_windows; /****************************** Prototypes ************************************/ typedef enum { ALARM_NONE = 0, ALARM_NEW, ALARM_MISSED, ALARM_POSTPONED } AlarmType; struct jp_alarms { unsigned int unique_id; AlarmType type; time_t event_time; time_t alarm_advance; struct jp_alarms *next; }; struct alarm_dialog_data { unsigned int unique_id; time_t remind_time; GtkWidget *remind_entry; GtkWidget *radio1; GtkWidget *radio2; int button_hit; }; static void alarms_add_to_list(unsigned int unique_id, AlarmType type, time_t alarm_time, time_t alarm_advance); /****************************** Main Code *************************************/ /* Alarm GUI */ /* Start of Dialog window code */ static void cb_dialog_button(GtkWidget *widget, gpointer data) { struct alarm_dialog_data *Pdata; GtkWidget *w; w = gtk_widget_get_toplevel(widget); Pdata = gtk_object_get_data(GTK_OBJECT(w), "alarm"); if (Pdata) { Pdata->button_hit = GPOINTER_TO_INT(data); } gtk_widget_destroy(w); } static gboolean cb_destroy_dialog(GtkWidget *widget) { struct alarm_dialog_data *Pdata; time_t ltime; time_t advance; time_t remind; total_alarm_windows--; #ifdef ALARMS_DEBUG printf("total_alarm_windows=%d\n",total_alarm_windows); #endif Pdata = gtk_object_get_data(GTK_OBJECT(widget), "alarm"); if (!Pdata) { return FALSE; } if (Pdata->button_hit==DIALOG_SAID_2) { remind = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(Pdata->remind_entry)); jp_logf(JP_LOG_DEBUG, "remind = [%d]\n", remind); set_pref(PREF_REMIND_IN, remind, NULL, TRUE); if (GTK_TOGGLE_BUTTON(Pdata->radio1)->active) { set_pref(PREF_REMIND_UNITS, 0, NULL, TRUE); remind *= MIN_IN_SECS; } else { set_pref(PREF_REMIND_UNITS, 1, NULL, TRUE); remind *= HR_IN_SECS; } time(<ime); localtime(<ime); advance = -(ltime + remind - Pdata->remind_time); alarms_add_to_list(Pdata->unique_id, ALARM_POSTPONED, Pdata->remind_time, advance); } free(Pdata); /* Done with cleanup. Let GTK continue with removing widgets */ return FALSE; } static int dialog_alarm(char *title, char *reason, char *time_str, char *desc_str, char *note_str, unsigned int unique_id, time_t remind_time) { GSList *group; GtkWidget *button, *label; GtkWidget *hbox1, *vbox1; GtkWidget *vbox_temp; GtkWidget *alarm_dialog; GtkWidget *remind_entry; GtkWidget *radio1; GtkWidget *radio2; struct alarm_dialog_data *Pdata; long pref_units; long pref_entry; GtkWidget *image; char *markup; /* Prevent alarms from going crazy and using all resources */ if (total_alarm_windows > 20) { return EXIT_FAILURE; } total_alarm_windows++; #ifdef ALARMS_DEBUG printf("total_alarm_windows=%d\n",total_alarm_windows); #endif alarm_dialog = gtk_widget_new(GTK_TYPE_WINDOW, "type", GTK_WINDOW_TOPLEVEL, "title", title, NULL); gtk_signal_connect(GTK_OBJECT(alarm_dialog), "destroy", GTK_SIGNAL_FUNC(cb_destroy_dialog), alarm_dialog); gtk_window_set_transient_for(GTK_WINDOW(alarm_dialog), GTK_WINDOW(window)); gtk_window_stick(GTK_WINDOW(alarm_dialog)); vbox1 = gtk_vbox_new(FALSE, 5); gtk_container_add(GTK_CONTAINER(alarm_dialog), vbox1); hbox1 = gtk_hbox_new(FALSE, 5); gtk_box_pack_start(GTK_BOX(vbox1), hbox1, FALSE, FALSE, 0); image = gtk_image_new_from_stock(GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DIALOG); gtk_box_pack_start(GTK_BOX(hbox1), image, FALSE, FALSE, 12); /* Label */ label = gtk_label_new(""); if (note_str[0] == '\0') { markup = g_markup_printf_escaped("%s\n\n%s\n\n%s", desc_str, reason, time_str); } else { markup = g_markup_printf_escaped("%s\n\n%s\n\n%s\n\n%s", desc_str, reason, time_str, note_str); } gtk_label_set_markup(GTK_LABEL(label), markup); g_free(markup); gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); gtk_box_pack_start(GTK_BOX(hbox1), label, FALSE, FALSE, 6); /* remind delay */ hbox1 = gtk_hbox_new(FALSE, 0); remind_entry = gtk_spin_button_new_with_range(0, 59, 1); gtk_box_pack_start(GTK_BOX(hbox1), remind_entry, FALSE, FALSE, 2); vbox_temp = gtk_vbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox1), vbox_temp, FALSE, TRUE, 4); radio1 = gtk_radio_button_new_with_label(NULL, _("Minutes")); group = gtk_radio_button_group(GTK_RADIO_BUTTON(radio1)); radio2 = gtk_radio_button_new_with_label(group, _("Hours")); gtk_radio_button_group(GTK_RADIO_BUTTON(radio2)); gtk_box_pack_start(GTK_BOX(vbox_temp), radio1, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox_temp), radio2, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox1), hbox1, TRUE, TRUE, 2); get_pref(PREF_REMIND_IN, &pref_entry, NULL); gtk_spin_button_set_value(GTK_SPIN_BUTTON(remind_entry), pref_entry); get_pref(PREF_REMIND_UNITS, &pref_units, NULL); if (pref_units) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio2), TRUE); } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio1), TRUE); } /* Buttons */ gtk_container_set_border_width(GTK_CONTAINER(hbox1), 12); button = gtk_button_new_with_label(_("Remind me")); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_dialog_button), GINT_TO_POINTER(DIALOG_SAID_2)); gtk_box_pack_start(GTK_BOX(hbox1), button, TRUE, TRUE, 4); button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_dialog_button), GINT_TO_POINTER(DIALOG_SAID_1)); gtk_box_pack_start(GTK_BOX(hbox1), button, TRUE, TRUE, 4); Pdata = malloc(sizeof(struct alarm_dialog_data)); if (Pdata) { Pdata->unique_id = unique_id; Pdata->remind_time = remind_time; /* Set the default button pressed to OK */ Pdata->button_hit = DIALOG_SAID_1; Pdata->remind_entry=remind_entry; Pdata->radio1=radio1; Pdata->radio2=radio2; } gtk_object_set_data(GTK_OBJECT(alarm_dialog), "alarm", Pdata); gtk_widget_show_all(alarm_dialog); return EXIT_SUCCESS; } /* End Alarm GUI */ static time_t tm_copy_with_dst_adj(struct tm *dest, struct tm *src) { memcpy(dest, src, sizeof(struct tm)); dest->tm_isdst=-1; return mktime(dest); } #ifdef ALARMS_DEBUG static const char *print_date(const time_t t1) { struct tm *Pnow; static char str[100]; Pnow = localtime(&t1); strftime(str, sizeof(str), "%B %d, %Y %H:%M:%S", Pnow); return str; } static const char *print_type(AlarmType type) { switch (type) { case ALARM_NONE: return "ALARM_NONE"; case ALARM_NEW: return "ALARM_NEW"; case ALARM_MISSED: return "ALARM_MISSED"; case ALARM_POSTPONED: return "ALARM_POSTPONED"; default: return "? ALARM_UNKNOWN"; } } #endif static void alarms_add_to_list(unsigned int unique_id, AlarmType type, time_t event_time, time_t alarm_advance) { struct jp_alarms *temp_alarm; #ifdef ALARMS_DEBUG printf("alarms_add_to_list()\n"); #endif temp_alarm = malloc(sizeof(struct jp_alarms)); if (!temp_alarm) { jp_logf(JP_LOG_WARN, "alarms_add_to_list: %s\n", _("Out of memory")); return; } temp_alarm->unique_id = unique_id; temp_alarm->type = type; temp_alarm->event_time = event_time; temp_alarm->alarm_advance = alarm_advance; temp_alarm->next = NULL; if (Plast_alarm_list) { Plast_alarm_list->next=temp_alarm; Plast_alarm_list=temp_alarm; } else { alarm_list=Plast_alarm_list=temp_alarm; } Plast_alarm_list=temp_alarm; } static void alarms_remove_from_to_list(unsigned int unique_id) { struct jp_alarms *temp_alarm, *prev_alarm, *next_alarm; #ifdef ALARMS_DEBUG printf("remove from list(%d)\n", unique_id); #endif for(prev_alarm=NULL, temp_alarm=alarm_list; temp_alarm; temp_alarm=next_alarm) { if (temp_alarm->unique_id==unique_id) { /* Tail of list? */ if (temp_alarm->next==NULL) { Plast_alarm_list=prev_alarm; } /* Last of list? */ if (Plast_alarm_list==alarm_list) { Plast_alarm_list=alarm_list=NULL; } if (prev_alarm) { prev_alarm->next=temp_alarm->next; } else { /* Head of list */ alarm_list=temp_alarm->next; } free(temp_alarm); return; } else { prev_alarm=temp_alarm; next_alarm=temp_alarm->next; } } } static void free_alarms_list(int mask) { struct jp_alarms *ta, *ta_next; if (mask&PREV_ALARM_MASK) { for (ta=alarm_list; ta; ta=ta_next) { ta_next=ta->next; free(ta); } Plast_alarm_list=alarm_list=NULL; } if (mask&NEXT_ALARM_MASK) { for (ta=next_alarm; ta; ta=ta_next) { ta_next=ta->next; free(ta); } next_alarm=NULL; } } static void alarms_write_file(void) { FILE *out; char line[256]; int fail, n; time_t ltime; struct tm *now; jp_logf(JP_LOG_DEBUG, "alarms_write_file()\n"); time(<ime); now = localtime(<ime); /* Alarm is triggered within ALARM_INTERVAL/2 seconds of the minute. * Potentially need to round timestamp up to the correct minute. */ if ((59 - now->tm_sec) <= ALARM_INTERVAL/2) { now->tm_min++; mktime(now); } out=jp_open_home_file(EPN".alarms.tmp", "w"); if (!out) { jp_logf(JP_LOG_WARN, _("Unable to open file: %s%s\n"), EPN, ".alarms.tmp"); return; } fail=0; g_snprintf(line, sizeof(line), "%s", "# This file was generated by "EPN", changes will be lost\n"); n = fwrite(line, strlen(line), 1, out); if (n<1) fail=1; g_snprintf(line, sizeof(line), "%s", "# This is the last time that "EPN" was ran\n"); n = fwrite(line, strlen(line), 1, out); if (n<1) fail=1; sprintf(line, "UPTODATE %d %d %d %d %d\n", now->tm_year+1900, now->tm_mon+1, now->tm_mday, now->tm_hour, now->tm_min ); n = fwrite(line, strlen(line), 1, out); if (n<1) fail=1; fclose(out); if (fail) { unlink_file(EPN".alarms.tmp"); } else { rename_file(EPN".alarms.tmp", EPN".alarms"); } } /* * This attempts to make the command safe. * I'm sure I'm missing things. */ static void make_command_safe(char *command) { int i, len; char c; len = strlen(command); for (i=0; i", c)) { command[i]=' '; } } } /* * Process an alarm occurrence * Pop up alarm window. * Do alarm setting (play sound, or whatever). * if user postpones then put in postponed alarm list. */ static int alarms_do_one(struct CalendarEvent *cale, unsigned long unique_id, time_t t_alarm, AlarmType type) { struct tm *Pnow; struct tm begin; struct tm end; char time_str[255]; char desc_str[255]; char note_str[255]; char pref_time[50]; char time1_str[50]; char time2_str[50]; char date_str[50]; char command[1024]; char *reason; long wants_windows; long do_command; const char *pref_date; const char *pref_command; char c1, c2; int i, len; alarms_write_file(); switch (type) { case ALARM_NONE: return EXIT_SUCCESS; case ALARM_NEW: reason=_("Appointment Reminder"); break; case ALARM_MISSED: reason=_("Past Appointment"); break; case ALARM_POSTPONED: reason=_("Postponed Appointment"); break; default: reason=_("Appointment"); } get_pref(PREF_SHORTDATE, NULL, &pref_date); get_pref_time_no_secs(pref_time); Pnow = localtime(&t_alarm); strftime(date_str, sizeof(date_str), pref_date, Pnow); tm_copy_with_dst_adj(&begin, &(cale->begin)); strftime(time1_str, sizeof(time1_str), pref_time, &begin); tm_copy_with_dst_adj(&end, &(cale->end)); strftime(time2_str, sizeof(time2_str), pref_time, &end); if (strcmp(time1_str,time2_str) == 0) g_snprintf(time_str, sizeof(time_str), "%s %s", date_str, time1_str); else g_snprintf(time_str, sizeof(time_str), "%s %s-%s", date_str, time1_str, time2_str); desc_str[0]='\0'; note_str[0]='\0'; if (cale->description) { g_strlcpy(desc_str, cale->description, sizeof(desc_str)); } if (cale->note) { g_strlcpy(note_str, cale->note, sizeof(note_str)); } get_pref(PREF_ALARM_COMMAND, NULL, &pref_command); get_pref(PREF_DO_ALARM_COMMAND, &do_command, NULL); #ifdef ALARMS_DEBUG printf("pref_command = [%s]\n", pref_command); #endif memset(command, 0, sizeof(command)); if (do_command) { command[0]='\0'; for (i=0; inext; diff = temp_alarm->event_time - t - temp_alarm->alarm_advance; if (temp_alarm->type!=ALARM_MISSED) { if (diff >= ALARM_INTERVAL/2) { continue; } } if (alm_list==NULL) { get_days_calendar_events2(&alm_list, NULL, 0, 0, 1, CATEGORY_ALL, NULL); } #ifdef ALARMS_DEBUG printf("unique_id=%d\n", temp_alarm->unique_id); printf("type=%s\n", print_type(temp_alarm->type)); printf("event_time=%s\n", print_date(temp_alarm->event_time)); printf("alarm_advance=%ld\n", temp_alarm->alarm_advance); #endif for (temp_al = alm_list; temp_al; temp_al=temp_al->next) { if (temp_al->mcale.unique_id == temp_alarm->unique_id) { #ifdef ALARMS_DEBUG printf("%s\n", temp_al->mcale.cale.description); #endif alarms_do_one(&(temp_al->mcale.cale), temp_alarm->unique_id, temp_alarm->event_time, ALARM_MISSED); break; } } /* CAUTION, this modifies the list we are parsing and * removes the current node */ if (temp_al) alarms_remove_from_to_list(temp_al->mcale.unique_id); } if (next_alarm) { diff = next_alarm->event_time - t - next_alarm->alarm_advance; if (diff <= ALARM_INTERVAL/2) { if (alm_list==NULL) { get_days_calendar_events2(&alm_list, NULL, 0, 0, 1, CATEGORY_ALL, NULL); } for (temp_alarm=next_alarm; temp_alarm; temp_alarm=ta_next) { for (temp_al = alm_list; temp_al; temp_al=temp_al->next) { if (temp_al->mcale.unique_id == temp_alarm->unique_id) { #ifdef ALARMS_DEBUG printf("** next unique_id=%d\n", temp_alarm->unique_id); printf("** next type=%s\n", print_type(temp_alarm->type)); printf("** next event_time=%s\n", print_date(temp_alarm->event_time)); printf("** next alarm_advance=%ld\n", temp_alarm->alarm_advance); printf("** next %s\n", temp_al->mcale.cale.description); #endif alarms_do_one(&(temp_al->mcale.cale), temp_alarm->unique_id, temp_alarm->event_time, ALARM_NEW); break; } } /* This may not be exactly right */ t_alarm_time = temp_alarm->event_time + 1; #ifdef ALARMS_DEBUG printf("** t_alarm_time-->%s\n", print_date(t_alarm_time)); #endif ta_next=temp_alarm->next; free(temp_alarm); next_alarm = ta_next; } Ptm = localtime(&t_alarm_time); memcpy(©_tm, Ptm, sizeof(struct tm)); alarms_find_next(©_tm, ©_tm, TRUE); } } if (alm_list) { free_CalendarEventList(&alm_list); } return TRUE; } /* * Find the next appointment alarm * if soonest_only then return the next alarm, * else return all alarms that occur between the two dates. */ int alarms_find_next(struct tm *date1_in, struct tm *date2_in, int soonest_only) { CalendarEventList *alm_list; CalendarEventList *temp_al; struct jp_alarms *ta; time_t adv; time_t ltime; time_t t1, t2; time_t t_alarm; time_t t_end; time_t t_prev; time_t t_future; struct tm *tm_temp; struct tm date1, date2; struct tm tm_prev, tm_next; int prev_found, next_found; int add_a_next; jp_logf(JP_LOG_DEBUG, "alarms_find_next()\n"); if (glob_skip_all_alarms) return EXIT_SUCCESS; if (!date1_in) { time(<ime); tm_temp = localtime(<ime); } else { tm_temp=date1_in; } memset(&date1, 0, sizeof(date1)); date1.tm_year=tm_temp->tm_year; date1.tm_mon=tm_temp->tm_mon; date1.tm_mday=tm_temp->tm_mday; date1.tm_hour=tm_temp->tm_hour; date1.tm_min=tm_temp->tm_min; date1.tm_sec=tm_temp->tm_sec; date1.tm_isdst=tm_temp->tm_isdst; if (!date2_in) { time(<ime); tm_temp = localtime(<ime); } else { tm_temp=date2_in; } memset(&date2, 0, sizeof(date2)); date2.tm_year=tm_temp->tm_year; date2.tm_mon=tm_temp->tm_mon; date2.tm_mday=tm_temp->tm_mday; date2.tm_hour=tm_temp->tm_hour; date2.tm_min=tm_temp->tm_min; date2.tm_sec=tm_temp->tm_sec; date2.tm_isdst=tm_temp->tm_isdst; t1=mktime_dst_adj(&date1); t2=mktime_dst_adj(&date2); #ifdef ALARMS_DEBUG char str[100]; struct tm *Pnow; strftime(str, sizeof(str), "%B %d, %Y %H:%M", &date1); printf("date1=%s\n", str); strftime(str, sizeof(str), "%B %d, %Y %H:%M", &date2); printf("date2=%s\n", str); Pnow = localtime(&t1); strftime(str, sizeof(str), "%B %d, %Y %H:%M", Pnow); printf("[Now]=%s\n", str); #endif if (!soonest_only) { free_alarms_list(PREV_ALARM_MASK | NEXT_ALARM_MASK); } else { free_alarms_list(NEXT_ALARM_MASK); } alm_list=NULL; get_days_calendar_events2(&alm_list, NULL, 0, 0, 1, CATEGORY_ALL, NULL); for (temp_al=alm_list; temp_al; temp_al=temp_al->next) { /* No alarm, skip */ if (!temp_al->mcale.cale.alarm) { continue; } #ifdef ALARMS_DEBUG printf("\n[%s]\n", temp_al->mcale.cale.description); #endif /* Check for ordinary non-repeating appt starting before date1 */ if (temp_al->mcale.cale.repeatType == calendarRepeatNone) { t_alarm = mktime_dst_adj(&(temp_al->mcale.cale.begin)); if (t_alarm < t1) { #ifdef ALARMS_DEBUG printf("afn: non repeat before t1, t_alarmmcale.cale.repeatForever)) { t_end = mktime_dst_adj(&(temp_al->mcale.cale.repeatEnd)); /* We need to add 24 hours to the end date to make it inclusive */ t_end += DAY_IN_SECS; if (t_end < t2) { #ifdef ALARMS_DEBUG printf("afn: past end date\n"); #endif continue; } } /* Calculate the alarm advance in seconds */ adv = 0; switch (temp_al->mcale.cale.advanceUnits) { case advMinutes: adv = temp_al->mcale.cale.advance*MIN_IN_SECS; break; case advHours: adv = temp_al->mcale.cale.advance*HR_IN_SECS; break; case advDays: adv = temp_al->mcale.cale.advance*DAY_IN_SECS; break; } #ifdef ALARMS_DEBUG printf("alarm advance %d ", temp_al->mcale.cale.advance); switch (temp_al->mcale.cale.advanceUnits) { case advMinutes: printf("minutes\n"); break; case advHours: printf("hours\n"); break; case advDays: printf("days\n"); break; } printf("adv=%ld\n", adv); #endif prev_found=next_found=0; find_prev_next(&(temp_al->mcale.cale), adv, &date1, &date2, &tm_prev, &tm_next, &prev_found, &next_found); t_prev=mktime_dst_adj(&tm_prev); t_future=mktime_dst_adj(&tm_next); /* Skip the alarms if they are before date1 or after date2 */ if (prev_found) { if (t_prev - adv < t1) { #ifdef ALARMS_DEBUG printf("failed prev is before t1\n"); #endif prev_found=0; } if (t_prev - adv > t2) { #ifdef ALARMS_DEBUG printf("failed prev is after t2\n"); #endif continue; } } if (next_found) { /* Check that we are not past any appointment end date */ if (!(temp_al->mcale.cale.repeatForever)) { t_end = mktime_dst_adj(&(temp_al->mcale.cale.repeatEnd)); /* We need to add 24 hours to the end date to make it inclusive */ t_end += DAY_IN_SECS; if (t_future > t_end) { #ifdef ALARMS_DEBUG printf("failed future is after t_end\n"); #endif next_found=0; } } } #ifdef ALARMS_DEBUG printf("t1= %s\n", print_date(t1)); printf("t2= %s\n", print_date(t2)); printf("t_prev= %s\n", prev_found ? print_date(t_prev):"None"); printf("t_future= %s\n", next_found ? print_date(t_future):"None"); printf("alarm me= %s\n", next_found ? print_date(t_future-adv):"None"); printf("desc=[%s]\n", temp_al->mcale.cale.description); #endif if (!soonest_only) { if (prev_found) { alarms_add_to_list(temp_al->mcale.unique_id, ALARM_MISSED, t_prev, adv); } } if (next_found) { add_a_next=0; if (next_alarm==NULL) { add_a_next=1; } else if (t_future - adv <= (next_alarm->event_time - next_alarm->alarm_advance)) { add_a_next=1; if (t_future - adv < (next_alarm->event_time - next_alarm->alarm_advance)) { #ifdef ALARMS_DEBUG printf("next alarm=%s\n", print_date(next_alarm->event_time - next_alarm->alarm_advance)); printf("freeing next alarms\n"); #endif free_alarms_list(NEXT_ALARM_MASK); } } if (add_a_next) { #ifdef ALARMS_DEBUG printf("found a new next\n"); #endif ta = malloc(sizeof(struct jp_alarms)); if (ta) { ta->next = next_alarm; next_alarm = ta; next_alarm->unique_id = temp_al->mcale.unique_id; next_alarm->type = ALARM_NEW; next_alarm->event_time = t_future; next_alarm->alarm_advance = adv; } } } } free_CalendarEventList(&alm_list); return EXIT_SUCCESS; } /* * At startup check when rc file was written and find all past-due alarms. * Add them to the postponed alarm list with 0 minute reminder. * Find next alarm and put it in list */ int alarms_init(unsigned char skip_past_alarms, unsigned char skip_all_alarms) { FILE *in; time_t ltime; struct tm now, *Pnow; struct tm tm1; char line[256]; int found_uptodate; int year, mon, day, hour, min, n; jp_logf(JP_LOG_DEBUG, "alarms_init()\n"); alarm_list=NULL; Plast_alarm_list=NULL; next_alarm=NULL; total_alarm_windows = 0; glob_skip_all_alarms = skip_all_alarms; if (skip_past_alarms) { alarms_write_file(); } if (skip_all_alarms) { alarms_write_file(); return EXIT_SUCCESS; } found_uptodate=0; in=jp_open_home_file(EPN".alarms", "r"); if (!in) { jp_logf(JP_LOG_WARN, _("Unable to open file: %s%s\n"), EPN, ".alarms"); return EXIT_FAILURE; } while (!feof(in)) { line[0]='\0'; fgets(line, sizeof(line)-1, in); line[sizeof(line)-1] = '\0'; if (line[0]=='#') continue; if (!strncmp(line, "UPTODATE ", 9)) { n = sscanf(line+9, "%d %d %d %d %d\n", &year, &mon, &day, &hour, &min); if (n==5) { found_uptodate=1; } /* Avoid corner case of retriggering alarms that are set for * exactly the same time as the UPTODATE timestamp */ min = min + 1; jp_logf(JP_LOG_DEBUG, "UPTODATE %d %d %d %d %d\n", year, mon, day, hour, min); } } time(<ime); Pnow = localtime(<ime); memset(&now, 0, sizeof(now)); now.tm_year=Pnow->tm_year; now.tm_mon=Pnow->tm_mon; now.tm_mday=Pnow->tm_mday; now.tm_hour=Pnow->tm_hour; now.tm_min=Pnow->tm_min; now.tm_isdst=-1; mktime(&now); /* Corner case where current time == UPTODATE time. * Must adjust current time forward by 1 minute so that upper * bound of search range (current time) is not smaller than * lower bound (UPTODATE time) */ if (found_uptodate && (now.tm_min == min-1) && (now.tm_hour == hour) && (now.tm_mon == mon-1) && (now.tm_year == year-1900)) { now.tm_min += 1; mktime(&now); } /* No UPTODATE, use current time for search lower bound */ if (!found_uptodate) { alarms_write_file(); year = now.tm_year+1900; mon = now.tm_mon+1; day = now.tm_mday; hour = now.tm_hour; min = now.tm_min; } memset(&tm1, 0, sizeof(tm1)); tm1.tm_year=year-1900; tm1.tm_mon=mon-1; tm1.tm_mday=day; tm1.tm_hour=hour; tm1.tm_min=min; tm1.tm_isdst=-1; mktime(&tm1); alarms_find_next(&tm1, &now, FALSE); /* Pop up reminder windows for expired alarms immediately * rather than waiting ALARM_INTERVAL seconds and then doing it */ cb_timer_alarms(NULL); gtk_timeout_add(ALARM_INTERVAL*CLOCK_TICK, cb_timer_alarms, NULL); return EXIT_SUCCESS; } jpilot-1.8.1.2/ChangeLog0000644000175000017500000004464311547002202011661 000000000000001.8.1 - 04/05/11 Added a jpilot-merge utility for merging unsynced records into a pdb file Fixes Debian bug #574030: jpilot: can't delete appointments Resolve bug 2012 where small months in Postcript printout overlapped a calendar event. Fix multiple memory leaks all over code base Added a VCard export format optimized for GMail/Android import Correct iCal export for repeating events with an end date Add Category and Location fields to Calendar iCal export Add categories to left-hand side of Calendar application Add "cancel sync" button and icon to main jpilot window use CRLF for ToDo iCal export per RFC Add new "future" button to repeat appt. modification dialog so that changes only affect future occurrences Ability to install files directly to SDCARD, hardcoded to /PALM/Launcher/ directory Keyboard shortcuts to set priority of ToDo items with Alt+# where # is 1-5 Add ability to launch external editor to quickly edit memo or note text. Bound to Ctrl-E. 1.8.0 - 02/28/10 Added support for Calendar app Requires pilot-link > 0.12.5 GTK1 code removed. GTK2 required Fix Bug 1991 : Categories are lost during first sync Export function for KeyRing data GUI changes: ToDo items due today are marked by a soft green color GUI changes: new alarm clock and lock icons GUI changes: radio buttons to select between timed and untimed events Overhaul VCARD export including adding IM, Birthday, Website fields As always many many bug other fixes and small changes, see Changelog.cvs for details 1.6.2 - 02/15/09 Resolve segmentation fault when editing Contacts with attached pictures Resolve error where Contacts created on Palm could not be deleted with Jpilot Resolve sync error with simultaneously modified Contacts Overhaul of Expense plugin As always many many bug other fixes and small changes, see Changelog.cvs for details Added newer category syncronization code Added libgcrypt support Fixed Mac OS X bugs/crash Now requires pilot-link > 0.12.0 As always many many bug other fixes and small changes, see Changelog.cvs for details 1.6.1 - 12/15/08 Improved internationalization support Added newer category syncronization code Added libgcrypt support Fixed Mac OS X bugs/crash Now requires pilot-link > 0.12.0 As always many many bug other fixes and small changes, see Changelog.cvs for details 1.6.0 - 05/27/08 Support for MemosDB-PMem Support for ContactsDB-PAdd Syncing merged records fixes Added sortable columns in KeyRing Temporarily removed Edit categories Many many bug fixes and small changes 0.99.9 - 08/27/06 Fixed a major Memo category sync bug. Removed clipboard code, which would cause X to freeze when ran with some applications, rdesktop, to name one. Many bug fixes, and GUI improvements, see Changelog.cvs for details 0.99.9-pre2 - 01/15/06 (Released by Ludovic Rousseau) Fix Bugzilla 1533 where null description in appointment crashes ical export of datebook Keyring: Added a field for the last changed date and set it to today when the record is changed. Search: - Have focus default to search entry field when the Find window is called to the front - Added ability to hit Enter and automatically go to the currently highlighted record. Some more bugs fixed 0.99.9-pre1 - 12/18/05 (Released by Ludovic Rousseau) Generalization of GTK+2 stock buttons (butons with icon) and make J-Pilot more conform to GNOME Human Interface Guidelines Build with GTK+2 by default. Use --disable-gtk2 if you want GTK+1 instead Add Ukrainian and Korean translations Add support of Korean (CP949) encoding Correct a bug that prevented jpilot to start with GTK+ 2.8 (Ubuntu) Some more bugs fixed 0.99.8 - 11/30/05 This release is dedicated to my Mother who unexpectedly passed away this last year. Added translation for Kinyarwanda Added panes to Expense and KeyRing 0.99.8-pre11 - 09/11/05 Added an install user from the menu. Other miscellaneous fixes/changes 0.99.8-pre10 - 08/09/05 (Released by Ludovic Rousseau) Solve a data corruption problem when used with pilot-link 0.12 Better support of 64-bit platforms The last character was truncated using Hebrew encoding Support localized date formats (for example Japanese) jpilot-sync works again (no more jp_logf relocation error) Some more bugs fixed 0.99.8-pre9 - 05/03/05 (Released by Ludovic Rousseau) Cut-n-paste using X11 clipboard (mouse middle clic) Return focus to the list after major operations which facilitates usability Add hotkey (shift-return) to move focus between list and data window In week and month views you can clic on a day to select it in the main view Add remote sync. use "jpilot -s" to start a sync on the running jpilot Add support of pilot-link 0.12.0-pre3 Some more bugs fixed Updated translations: it, ja, fr jpilot-dump.c: convert from UTF8 to local encoding 0.99.8-pre8 - 02/19/05 (Released by Ludovic Rousseau) Cut-n-paste using GTK+ Ctrl-C/Ctrl-V now works across all four apps Replace Sync and Backup text buttons by an color icon Add Chinese BIG-5 Palm encoding Update ja, zh_TW translations GTK2 now uses CTRL+Enter consistently to apply changes Add Cancel button with ESC accelerator Added two preferences and code to 1) Mark current day in monthview and weekview guis by adding "TODAY" to display 2) Display the absolute number of an event which repeats yearly (usefulf or birthdays and anniversaries) 0.99.8-pre7 - 01/08/05 (Released by Ludovic Rousseau) Update zh_CN, zh_TW, cs and es translations Solve a crash in Japanese mode in address GUI Extract the first day of week (sunday or monday) from the system locale setting Add menu color icons for the 4 main applications Improve todo sorting Allow to cycle through the KeyRing categories by calling again the plugin Some more bugs fixed 0.99.8-pre6 - 11/27/04 (Released by Ludovic Rousseau) Solve the "different user ID sync" bug Solve the GUI "freeze" bug Some more bugs fixed 0.99.8-pre5 - 11/26/04 (Ludovic Rousseau) Solve the "undefined symbol: jp_charset_j2p" error Fix Japanese menu Some code cleanup 0.99.8-pre4 - 11/24/04 (Released by Ludovic Rousseau) Some more bugs fixed Improved search sorting Improved convertion to UTF-8 in case of errors Use GBK instead of GB2312 charset encoding for Chinese Use a radio item menu for Hide/Show/Mask records so that the state is clearly indicated Fix sort order for appts in datebook Complete Japanese translation 0.99.8-pre3 - 11/14/04 (Released by Ludovic Rousseau) Some more bugs fixed The right-hand side of jpilot were not updated on a cursor movement. Fixed unpredictable bug in repeating events caused by unitialized variable Use iconv to convert from the Palm charset to UTF-8. Thanks to Amit Aronovitch we now support many new charsets when used with GTK2: - Hebrew (CP1255), - Cyrillic (CP1251), - Cyrillic (KOI8-R), - Latin 2, Eastern Europe (ISO8859-2), - Japanese (SJIS), - Chinese (GB2312) Complete Chinese translation. Thanks to lei Yu The category selection was not working from the Export window for Addresses Give a more explicit error message when pi_bind() fails. We now have "permission denied" or "file not found" instead of "Illegal seek". Also display the device name we are trying to use. Thanks to Edgar Bonet for the patch New preference to show or hide popup tooltips Entries returned from datebook app during search were in random order Get first day of week from locale in GTK2, no preference setting 0.99.8-pre2 - 10/20/04 (Released by Ludovic Rousseau) some bugs fixed add the same keyboards accelerators for the 4 applications: Ctrl-D: Delete Ctrl-O: Copy Ctrl-N: New Record Ctrl-R: Add Record Ctrl-Return: Apply Changes Ctrl-Y: Sync KeyRing: can use non ASCII characters in name/account/password nice GTK2 color icons in the menu 0.99.8-pre1 - 10/02/04 (Released by Ludovic Rousseau) better UTF-8 handling (needed when using GTK2) sort todo list by clicking on column title lots of bugs fixed: bug 1330: invalid postscript when printing the todo list contains ( or ) bug 1306: Keyring plugin truncates passwords bug 1056: Undelete feature desired bug 1338: Some repeating appointments do not show in monthview gui bug 1176: Adding ability to e-mail directly from address book bug 1182: Search screen needs a button bug 1322: GTK2.4 libraries require changes to jpilotrc files to preserve colors bug 1116: Word wrap provided when printing monthly calendar bug 1154: resorting in address book should leave selection bar on same entry bug 1107: show completed todos found through search regardless of show completed checkbox status bug 1153: Patch reduces flicker when deleting records bug 1131: ALT key for accelerator instead of control bug 1184: truncating buffers with non ASCII charsets 0.99.7 - 02/29/04 Many bug fixes and small improvements Memo preferences hide-able Rewrote month and weekviews to be faster and resizable Iconify at startup More GTK2 support Added cp1253 support Remember last categories Highlight Overdue Todos 0.99.6 - 07/13/03 Fixed categies incorrectly syncing on first time use Added number of records tooltip to datebook Fixed DST problem in alarms Added a hide not yet due todos button Added Record completion date on todos bug 637 fix couldn't select start/end times in GTK2 Fixed bug 610, record dups when pressing page-up/down keys, and removed home key from going to today Fix DST on import Made install remember its last path Added plugin_pre_sync_pre_connect calls address_gui.c: ldif export crash, fix Many miscellaneous bugs fixes, etc. 0.99.5 - 02/21/03 Fixed serious bug resulting in overwriting appointments on the palm (Serious bug) Restore now restores latest files instead of ones from last backup (Critical bug) Added -export-dynamic to Makefile to resolve jp_logf unresolved errors Made home key go to today in datebook Added dialog error windows instead of logging them If files are to be installed a prompt window opens before a sync/backup Browser windows open from jpilot menu When app button is pressed it will cycle through categories 0.99.4 - 01/13/03 Ported code to GTK-2 (I used GTK-2.2) Added random password generation to KeyRing Added a dialer program and GUI launcher Added Syncronization of categories and editing categories on desktop Added Export of iCalendar format from ToDo and Datebook Added Export of vCard format from Address book Added Export of ldif format from Address book Added Russian Language Support Removed jpilot-upgrade-99 0.99.3 - 11/01/02 Added Simplified Chinese translation Added Traditional Chinese translation Made dialog windows Modal Manana support http://bill.sexton.tripod.com/download.htm Changed code to keep unique IDs intact. Support for OS 4.X passwords. Better DateBk support (seperate entry field for tag, better detection of datebk records) Pop up dialogs during the sync when different user name, null ID is found. Lots of patches, bug fixes and minor improvements. 0.99.2 - 02/06/02 Made changes to support pilot-link 0.10.1 and USB (palm m series and clies) Export for Datebook, Address, Todo, and Memo Import for Datebook, Address, Todo, and Memo Can now enter begin/end times into datebook by GUI, or keyboard. Put icons in clist title buttons. Prompts to Save a changed/new record instead of letting it get away. Drastically improved local database read speeds caused by bugs intro'd in 0.99 Fixed misc bugs in alarms. Support for pedit (pedit is a memo editor for the palm). Added Preferences to choose conduits. Adding in better printing support. Adding in record masking support. Wrote a KeyRing plugin (KeyRing is a palm encryption app). Added Restore Functionality. Added plugin_startup & plugin_cleanup funcs to jpilot-sync. Added man pages. Added plugin_startup and plugin_cleanup to jpilot-sync. Added a default pdb file for Expenses. Added an icon when iconized. 0.99.1 - Skipped this version to avoid confusion. 0.99 - 02/06/01 Alphabetized 4 main app categories and expense categories. New calendar begin/end setting method using keyboard. jpilot-sync program added to allow command line syncing. Made radio buttons for which phone # shows up in addr. Made month/week views obey categories. Made 4 main apps+expense more user friendly by detecting changes. Added prefs for optionally backing up DBs. Czech character set added. Russian character set added. Moved output screen to bottom panel in main window. Fixed many bugs in Expense and improved GUI. Fixed datebook entries showing weekly repeat. Added a large view window to the monthview. Fixed some DateBk3 bugs (templates showing as today, etc). Made Address screen stay as it was last used in quick/add view mode. Alarms. Sorted memos if they are sorted on the handheld. Replaced calendar buttons (array) with a gtk_calendar widget. Made Quickview a page on the address Notebook. Made private records hidable using palm password. Made changes for Japanese and Chinese and Korean and multibyte characters. Included Synctime in rpm and made it detect and avoid PalmOS 3.30. Made the creation of ~/.jpilot and ~/.jpilot/backup* perms 0700 & ~umask. If upgrading then you may want to change the permissions of ~/.jpilot/ for security reasons. Made completed ToDos not print if hidden. Minor postscript improvements. Made plugin conduits selectable wether to sync or not. 0.98 - 3/01/00 Postscript printing support db3 support, datebook categories cleanup_pc_files improved Major performance increases in datebook, and other DBs Made DBs with slashes in them backup Fast sync Backup changes/fixes Made pc databases compact themselves for users without a palm Fixed time in week/month and daily views to use prefs gettext Made century non-leap year compliant for the year 2400 :) Fixed minor category problem (deleted on remote) Fixed redraws (menus and db3) after syncing Remember categories after switching apps ToDo: Due date disappears when "No Due Date" selected 0.97 - 12/22/99 Added Weekly and Monthly views. Multiple backups supported, selectable from preferences. Block reset pilots and changed user names from syncing. Put paned windows in 4 main apps and made them remember where set. Made Graffiti Shortcuts installable. Changed to qsort from bubblesort. Removed logic to make category go to ALL after add. Remember window size after restart. Changed from using HOME to using JPILOT_HOME then default to HOME. Fixed menu history for categories (wasn't always correct). Fixed Expense plugin not always showing all of the categories. Fixed directory for global plugins. Made the dialog raise less annoying. Work around for bug where empty appointments crash PalmOS 2.0. An empty appointment description will get set to a space. 0.96 - 11/10/99 Plugin (conduit) support added. Patch for reversed todo sorting. Timesheet plugin (not yet fully working) Wrote an Expense plugin for an example plugin. Wrote a SyncTime plugin. Created a User Manual. Created plugin programmer documentation. Datebook problem with GMT and repeating appts fixed (were off 1 day in certain cases). I made TAB cycle through the text boxes during data entry. I added validation checks to repeating appts so that invalid appointments can't be entered into the palm. I Made clists bahave more intuitively. They stay put when changing data now. Week of the year numbers added on the calendar. 0.95 - 09/09/99 (This is a key Y2K date, it'll probably blow up) Made fixes to configure for Solaris (-lsocket). Removed file locking code. Highlighted calendar days with appointments. Fixed a big memory leak in addresses. Todos now show due date. Hide completed todos is stored in preferences, so it will be remembered. make install now installs empty DB files into share. These are copied to ~/.jpilot/ the first time jpilot is ran, so that it behaves before the first sync. Replaced all C++ style comments with C style comments. 0.94 - 08/28/99 Fixed up the configure script for Solaris, and Debian users. Minor GUI changes/improvements. Added an Install screen. 0.93 Didn't show the last todo in the DB file, fixed. 0.93 - 08/10/99 Changed vsnprintf and snprintf to g_vsnprintf and g_snprintf for portability. Changed flock calls to fcntl for portability. Changed logf to jpilot_logf because logf is a call in libm on some systems (portability). Added Menus. Added a quickfind in the address app. Put in a global search (find) window. Put in a preferences window and rc file support. Added support for different date formats (localization). Added support for weeks beginning on Monday (localization). Added support for choosing the colors file from the preferences window. Added a configure script. Added in Japanese support. Misc GUI improvements and code improvements. 0.92 - 07/18/99 Fixed problem reading palm db files with 0 records. Added option for viewing only uncompleted todos. Fixed a GUI problem when adding an address the phone menus didn't update right while selecting addresses on the left pane. Added a window to show the syncing output. Added a full backup button. Added forking of a process to do the sync in the background. Fixed category label in todo, address, and memo apps. Added modify capability in datebook, address, todo, and memo apps. Added the ability to check/uncheck todos. When deleteing repeating appointments it will now ask if you intend to delete just one occurence, or all occurences. Added some tooltips to show how many records are in a DB. 0.91 - 07/03/99 Fixed some feof() problem that caused datebook to not work on RedHat 6.0 I rewrote the entire datebook.c file Put in code to create and test for writability of ~/.jpilot/ Put it gtk_set_locale() for other language support on Solaris. Moved syncing code from datebook.c to sync.c Created a jpilot-syncd, a daemon syncing program. Made Feb 29th (Leap Day) yearly appointments repeat on the 28th of non-Leap years, just as on the palm pilot. Also fixed monthly repeating appointments that occur past the last day in the current month. These didn't use to appear in jpilot. Fixed a few bugs in creating new repeat monthly appointments. Fixed a few bugs in displaying monthly repeating appointments. When creating a monthly appointment that repeats "By Day": Added in a dialog box to ask if an appointment is intended to repeat in the 4th occurence of that day in the a month, or the last occurence of that day in the month. This is only asked when it cannot be deduced. The Palm Pilot will also ask this question. Fixed Mobile not being displayed in address app. 0.90a - 06/23/99 Initial release. jpilot-1.8.1.2/configure0000755000175000017500000205352411702305114012017 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.68 for jpilot 1.8.1.2. # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software # Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" SHELL=${CONFIG_SHELL-/bin/sh} test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='jpilot' PACKAGE_TARNAME='jpilot' PACKAGE_VERSION='1.8.1.2' PACKAGE_STRING='jpilot 1.8.1.2' PACKAGE_BUGREPORT='' PACKAGE_URL='' # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" gt_needs= ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS ABILIB JPILOT_DIALER_FALSE JPILOT_DIALER_TRUE MAKE_SYNCTIME_FALSE MAKE_SYNCTIME_TRUE MAKE_EXPENSE_FALSE MAKE_EXPENSE_TRUE MAKE_KEYRING_FALSE MAKE_KEYRING_TRUE OPENSSL_LIBS LIBGCRYPT_LIBS LIBGCRYPT_CFLAGS LIBGCRYPT_CONFIG PILOT_FLAGS PILOT_LIBS GTK_LIBS GTK_CFLAGS PKG_CONFIG PROGNAME POSUB LTLIBINTL LIBINTL INTLLIBS LTLIBICONV LIBICONV INTL_MACOSX_LIBS XGETTEXT_015 GMSGFMT_015 MSGFMT_015 GETTEXT_PACKAGE LIBTOOL_DEPS CPP OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL MANIFEST_TOOL RANLIB ac_ct_AR AR DLLTOOL OBJDUMP LN_S NM ac_ct_DUMPBIN DUMPBIN LD FGREP EGREP LIBTOOL CUT GREP SED DATADIRNAME ALL_LINGUAS INTLTOOL_PERL GMSGFMT MSGFMT MSGMERGE XGETTEXT INTLTOOL_POLICY_RULE INTLTOOL_SERVICE_RULE INTLTOOL_THEME_RULE INTLTOOL_SCHEMAS_RULE INTLTOOL_CAVES_RULE INTLTOOL_XML_NOMERGE_RULE INTLTOOL_XML_RULE INTLTOOL_KBD_RULE INTLTOOL_XAM_RULE INTLTOOL_UI_RULE INTLTOOL_SOUNDLIST_RULE INTLTOOL_SHEET_RULE INTLTOOL_SERVER_RULE INTLTOOL_PONG_RULE INTLTOOL_OAF_RULE INTLTOOL_PROP_RULE INTLTOOL_KEYS_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_DESKTOP_RULE INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE USE_NLS am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC host_os host_vendor host_cpu host build_os build_vendor build_cpu build MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_maintainer_mode enable_dependency_tracking enable_nls enable_static enable_shared with_pic enable_fast_install with_gnu_ld with_sysroot enable_libtool_lock enable_rpath with_libiconv_prefix with_libintl_prefix enable_plugins enable_private enable_datebk enable_manana enable_prometheon enable_alarm_shell_danger enable_stock_buttons enable_gtktest with_pilot_prefix enable_pl_test with_libgcrypt_prefix with_openssl with_with_flock ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures jpilot 1.8.1.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/jpilot] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of jpilot 1.8.1.2:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --disable-nls do not use Native Language Support --enable-static[=PKGS] build static libraries [default=no] --enable-shared[=PKGS] build shared libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --disable-rpath do not hardcode runtime library paths --disable-plugins Do not compile plugin support --disable-private Do not use private records feature (password not needed to see private records) --disable-datebk Disable Datebk support --disable-manana Disable Mañana support --enable-prometheon For use with Prometheon: http://www.prometheon.net --enable-alarm-shell-danger Allow alarm descriptions and notes to be used in alarm shell commands --disable-stock-buttons Disable stock buttons (icons on GUI buttons) --disable-gtktest do not try to compile and run a test GTK+ program --disable-pl-test Do not try to compile a test pilot-link program Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot=DIR Search for dependent libraries within DIR (or the compiler's sysroot if not specified). --with-gnu-ld assume the C compiler uses GNU ld default=no --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib --without-libiconv-prefix don't search for libiconv in includedir and libdir --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib --without-libintl-prefix don't search for libintl in includedir and libdir --with-pilot-prefix=PFX Prefix to top level of pilot-link files (e.g., = /usr/local if the pilot-link includes are in /usr/local/include and libs are in /usr/local/lib) --with-libgcrypt-prefix=PFX prefix where LIBGCRYPT is installed (optional) --with-openssl Use OpenSSL instead of GNU libgcrypt --with-flock Substitute flock instead of fnctl for file locking (for NFS) Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF jpilot configure 1.8.1.2 generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by jpilot $as_me 1.8.1.2, which was generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi gt_needs="$gt_needs " # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu am__api_version='1.11' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='jpilot' VERSION='1.8.1.2' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' ac_config_headers="$ac_config_headers config.h" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 $as_echo "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac # determine build host ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for strerror in -lcposix" >&5 $as_echo_n "checking for strerror in -lcposix... " >&6; } if ${ac_cv_lib_cposix_strerror+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcposix $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char strerror (); int main () { return strerror (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_cposix_strerror=yes else ac_cv_lib_cposix_strerror=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cposix_strerror" >&5 $as_echo "$ac_cv_lib_cposix_strerror" >&6; } if test "x$ac_cv_lib_cposix_strerror" = xyes; then : LIBS="$LIBS -lcposix" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 $as_echo_n "checking whether NLS is requested... " >&6; } # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then : enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } case "$am__api_version" in 1.01234) as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5 ;; *) ;; esac if test -n ""; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= " >&5 $as_echo_n "checking for intltool >= ... " >&6; } INTLTOOL_REQUIRED_VERSION_AS_INT=`echo | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 $as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || as_fn_error $? "Your intltool is too old. You need intltool or later." "$LINENO" 5 fi # Extract the first word of "intltool-update", so it can be a program name with args. set dummy intltool-update; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_INTLTOOL_UPDATE+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_UPDATE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_UPDATE="$INTLTOOL_UPDATE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE if test -n "$INTLTOOL_UPDATE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5 $as_echo "$INTLTOOL_UPDATE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-merge", so it can be a program name with args. set dummy intltool-merge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_INTLTOOL_MERGE+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_MERGE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE if test -n "$INTLTOOL_MERGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5 $as_echo "$INTLTOOL_MERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-extract", so it can be a program name with args. set dummy intltool-extract; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_INTLTOOL_EXTRACT+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_EXTRACT in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT if test -n "$INTLTOOL_EXTRACT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5 $as_echo "$INTLTOOL_EXTRACT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5 fi INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< $@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< $@' INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' # Check the gettext tools to make sure they are GNU # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case $XGETTEXT in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi XGETTEXT=$ac_cv_path_XGETTEXT if test -n "$XGETTEXT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGMERGE+:} false; then : $as_echo_n "(cached) " >&6 else case $MSGMERGE in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGMERGE=$ac_cv_path_MSGMERGE if test -n "$MSGMERGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 $as_echo "$MSGMERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $MSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGFMT=$ac_cv_path_MSGFMT if test -n "$MSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GMSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_INTLTOOL_PERL+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_PERL in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_PERL="$INTLTOOL_PERL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL if test -n "$INTLTOOL_PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_PERL" >&5 $as_echo "$INTLTOOL_PERL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_PERL"; then as_fn_error $? "perl not found" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl >= 5.8.1" >&5 $as_echo_n "checking for perl >= 5.8.1... " >&6; } $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5 else IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5 $as_echo "$IT_PERL_VERSION" >&6; } fi if test "x" != "xno-xml"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML::Parser" >&5 $as_echo_n "checking for XML::Parser... " >&6; } if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } else as_fn_error $? "XML::Parser perl module is required for intltool" "$LINENO" 5 fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile # Set DATADIRNAME correctly if it is not set yet # (copied from glib-gettext.m4) if test -z "$DATADIRNAME"; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : DATADIRNAME=share else case $host in *-*-solaris*) ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : DATADIRNAME=share else DATADIRNAME=lib fi ;; *) DATADIRNAME=lib ;; esac fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi # Extract the first word of "sed", so it can be a program name with args. set dummy sed; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else case $SED in [\\/]* | ?:[\\/]*) ac_cv_path_SED="$SED" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_SED="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_SED" && ac_cv_path_SED=" as_fn_error $? "sed is required for configure script" "$LINENO" 5 " ;; esac fi SED=$ac_cv_path_SED if test -n "$SED"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SED" >&5 $as_echo "$SED" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "grep", so it can be a program name with args. set dummy grep; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else case $GREP in [\\/]* | ?:[\\/]*) ac_cv_path_GREP="$GREP" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GREP="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GREP" && ac_cv_path_GREP=" as_fn_error $? "grep is required for configure script" "$LINENO" 5 " ;; esac fi GREP=$ac_cv_path_GREP if test -n "$GREP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GREP" >&5 $as_echo "$GREP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "cut", so it can be a program name with args. set dummy cut; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_CUT+:} false; then : $as_echo_n "(cached) " >&6 else case $CUT in [\\/]* | ?:[\\/]*) ac_cv_path_CUT="$CUT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_CUT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_CUT" && ac_cv_path_CUT=" as_fn_error $? "cut is required for configure script" "$LINENO" 5 " ;; esac fi CUT=$ac_cv_path_CUT if test -n "$CUT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CUT" >&5 $as_echo "$CUT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=no fi enable_dlopen=yes case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.4.2' macro_revision='1.3337' ltmain="$ac_aux_dir/ltmain.sh" # Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 $as_echo_n "checking how to print strings... " >&6; } # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "" } case "$ECHO" in printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 $as_echo "printf" >&6; } ;; print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 $as_echo "print -r" >&6; } ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 $as_echo "cat" >&6; } ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if ${ac_cv_path_FGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if ${lt_cv_path_NM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else if test -n "$ac_tool_prefix"; then for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if ${lt_cv_nm_interface+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if ${lt_cv_sys_max_cmd_len+:} false; then : $as_echo_n "(cached) " >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 $as_echo "$xsi_shell" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; } lt_shell_append=no ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 $as_echo "$lt_shell_append" >&6; } if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 $as_echo_n "checking how to convert $build file names to $host format... " >&6; } if ${lt_cv_to_host_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac fi to_host_file_cmd=$lt_cv_to_host_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 $as_echo "$lt_cv_to_host_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 $as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } if ${lt_cv_to_tool_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac fi to_tool_file_cmd=$lt_cv_to_tool_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 $as_echo "$lt_cv_to_tool_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if ${lt_cv_ld_reload_flag+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in cygwin* | mingw* | pw32* | cegcc*) if test "$GCC" != yes; then reload_cmds=false fi ;; darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if ${lt_cv_deplibs_check_method+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi test -z "$DLLTOOL" && DLLTOOL=dlltool { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 $as_echo_n "checking how to associate runtime and link libraries... " >&6; } if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh # decide which to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 $as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO if test -n "$ac_tool_prefix"; then for ac_prog in ar do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_AR" && break done if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi fi : ${AR=ar} : ${AR_FLAGS=cru} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 $as_echo_n "checking for archiver @FILE support... " >&6; } if ${lt_cv_ar_at_file+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -ne 0; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 $as_echo "$lt_cv_ar_at_file" >&6; } if test "x$lt_cv_ar_at_file" = xno; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if ${lt_cv_sys_global_symbol_pipe+:} false; then : $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then nm_file_list_spec='@' fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 $as_echo_n "checking for sysroot... " >&6; } # Check whether --with-sysroot was given. if test "${with_sysroot+set}" = set; then : withval=$with_sysroot; else with_sysroot=no fi lt_sysroot= case ${with_sysroot} in #( yes) if test "$GCC" = yes; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 $as_echo "${with_sysroot}" >&6; } as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 $as_echo "${lt_sysroot:-no}" >&6; } # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if ${lt_cv_cc_needs_belf+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; *-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD="${LD-ld}_sol2" fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. set dummy ${ac_tool_prefix}mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MANIFEST_TOOL"; then ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL if test -n "$MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 $as_echo "$MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL # Extract the first word of "mt", so it can be a program name with args. set dummy mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_MANIFEST_TOOL"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL if test -n "$ac_ct_MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 $as_echo "$ac_ct_MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_MANIFEST_TOOL" = x; then MANIFEST_TOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL fi else MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" fi test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 $as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } if ${lt_cv_path_mainfest_tool+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&5 if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 $as_echo "$lt_cv_path_mainfest_tool" >&6; } if test "x$lt_cv_path_mainfest_tool" != xyes; then MANIFEST_TOOL=: fi case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if ${lt_cv_apple_cc_single_mod+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&5 # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if ${lt_cv_ld_exported_symbols_list+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 $as_echo_n "checking for -force_load linker flag... " >&6; } if ${lt_cv_ld_force_load+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 echo "$AR cru libconftest.a conftest.o" >&5 $AR cru libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&5 elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then lt_cv_ld_force_load=yes else cat conftest.err >&5 fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 $as_echo "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[012]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done # Set options enable_win32_dll=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for lt_pkg in $withval; do IFS="$lt_save_ifs" if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS="$lt_save_ifs" ;; esac else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if ${lt_cv_objdir+:} false; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; *) lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' if test -n "$lt_prog_compiler_pic"; then lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; *Sun\ F* | *Sun*Fortran*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Intel*\ [CF]*Compiler*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; *Portland\ Group*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic=$lt_prog_compiler_pic fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 $as_echo "$lt_cv_prog_compiler_pic" >&6; } lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if ${lt_cv_prog_compiler_pic_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if ${lt_cv_prog_compiler_static_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; linux* | k*bsd*-gnu | gnu*) link_all_deplibs=no ;; esac ld_shlibs=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; *\ \(GNU\ Binutils\)\ [3-9]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' export_dynamic_flag_spec='${wl}--export-all-symbols' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; haiku*) archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' link_all_deplibs=yes ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi link_all_deplibs=no else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes file_list_spec='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' enable_shared_with_static_runtimes=yes exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' postlink_cmds='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' enable_shared_with_static_runtimes=yes ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported if test "$lt_cv_ld_force_load" = "yes"; then whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec='' fi link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 $as_echo_n "checking if $CC understands -b... " >&6; } if ${lt_cv_prog_compiler__b+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler__b=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -b" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler__b=yes fi else lt_cv_prog_compiler__b=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 $as_echo "$lt_cv_prog_compiler__b" >&6; } if test x"$lt_cv_prog_compiler__b" = xyes; then archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } if ${lt_cv_irix_exported_symbol+:} false; then : $as_echo_n "(cached) " >&6 else save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo (void) { return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_irix_exported_symbol=yes else lt_cv_irix_exported_symbol=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 $as_echo "$lt_cv_irix_exported_symbol" >&6; } if test "$lt_cv_irix_exported_symbol" = yes; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } if ${lt_cv_archive_cmds_need_lc+:} false; then : $as_echo_n "(cached) " >&6 else $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 $as_echo "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([A-Za-z]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink || test "$inherit_rpath" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes; then : lt_cv_dlopen="shl_load" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if ${ac_cv_lib_dld_shl_load+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = xyes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = xyes; then : lt_cv_dlopen="dlopen" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if ${ac_cv_lib_svld_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if ${ac_cv_lib_dld_dld_link+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = xyes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report which library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ac_config_commands="$ac_config_commands libtool" # Only expand once: ALL_LINGUAS="ca cs da de es fr it ja ko nl nb pt_BR ru rw sv tr uk vi zh_CN zh_TW" GETTEXT_PACKAGE=jpilot DATADIRNAME=share # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GMSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; *) MSGFMT_015=$MSGFMT ;; esac case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; *) GMSGFMT_015=$GMSGFMT ;; esac # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi rm -f messages.po case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; *) XGETTEXT_015=$XGETTEXT ;; esac # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGMERGE+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGMERGE" in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" ;; esac fi MSGMERGE="$ac_cv_path_MSGMERGE" if test "$MSGMERGE" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 $as_echo "$MSGMERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$localedir" || localedir='${datadir}/locale' ac_config_commands="$ac_config_commands po-directories" if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by GCC" >&5 $as_echo_n "checking for ld used by GCC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | [A-Za-z]:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the path of ld ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${acl_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in *GNU* | *'with BFD'*) test "$with_gnu_ld" != no && break ;; *) test "$with_gnu_ld" != yes && break ;; esac fi done IFS="$ac_save_ifs" else acl_cv_path_LD="$LD" # Let the user override the test with a path. fi fi LD="$acl_cv_path_LD" if test -n "$LD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${acl_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. case `$LD -v 2>&1 &5 $as_echo "$acl_cv_prog_gnu_ld" >&6; } with_gnu_ld=$acl_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 $as_echo_n "checking for shared library run path origin... " >&6; } if ${acl_cv_rpath+:} false; then : $as_echo_n "(cached) " >&6 else CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 $as_echo "$acl_cv_rpath" >&6; } wl="$acl_cv_wl" libext="$acl_cv_libext" shlibext="$acl_cv_shlibext" hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" hardcode_direct="$acl_cv_hardcode_direct" hardcode_minus_L="$acl_cv_hardcode_minus_L" # Check whether --enable-rpath was given. if test "${enable_rpath+set}" = set; then : enableval=$enable_rpath; : else enable_rpath=yes fi acl_libdirstem=lib searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test -n "$searchpath"; then acl_save_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib64 ) acl_libdirstem=lib64 ;; esac ;; esac fi done IFS="$acl_save_IFS" fi use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libiconv-prefix was given. if test "${with_libiconv_prefix+set}" = set; then : withval=$with_libiconv_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" fi fi fi LIBICONV= LTLIBICONV= INCICONV= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='iconv ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" else : fi else found_dir= found_la= found_so= found_a= if test $use_additional = yes; then if test -n "$shlibext" \ && { test -f "$additional_libdir/lib$name.$shlibext" \ || { test "$shlibext" = dll \ && test -f "$additional_libdir/lib$name.dll.a"; }; }; then found_dir="$additional_libdir" if test -f "$additional_libdir/lib$name.$shlibext"; then found_so="$additional_libdir/lib$name.$shlibext" else found_so="$additional_libdir/lib$name.dll.a" fi if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi else if test -f "$additional_libdir/lib$name.$libext"; then found_dir="$additional_libdir" found_a="$additional_libdir/lib$name.$libext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$shlibext" \ && { test -f "$dir/lib$name.$shlibext" \ || { test "$shlibext" = dll \ && test -f "$dir/lib$name.dll.a"; }; }; then found_dir="$dir" if test -f "$dir/lib$name.$shlibext"; then found_so="$dir/lib$name.$shlibext" else found_so="$dir/lib$name.dll.a" fi if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi else if test -f "$dir/lib$name.$libext"; then found_dir="$dir" found_a="$dir/lib$name.$libext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$hardcode_direct" = yes; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" fi if test "$hardcode_minus_L" != no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" else LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" ;; esac done fi else LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 $as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { CFPreferencesCopyAppValue(NULL, NULL) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_CFPreferencesCopyAppValue=yes else gt_cv_func_CFPreferencesCopyAppValue=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 $as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then $as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 $as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { CFLocaleCopyCurrent(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_CFLocaleCopyCurrent=yes else gt_cv_func_CFLocaleCopyCurrent=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 $as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } if test $gt_cv_func_CFLocaleCopyCurrent = yes; then $as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi LIBINTL= LTLIBINTL= POSUB= case " $gt_needs " in *" need-formatstring-macros "*) gt_api_version=3 ;; *" need-ngettext "*) gt_api_version=2 ;; *) gt_api_version=1 ;; esac gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no if test $gt_api_version -ge 3; then gt_revision_test_code=' #ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; ' else gt_revision_test_code= fi if test $gt_api_version -ge 2; then gt_expression_test_code=' + * ngettext ("", "", 0)' else gt_expression_test_code= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 $as_echo_n "checking for GNU gettext in libc... " >&6; } if eval \${$gt_func_gnugettext_libc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings; int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$gt_func_gnugettext_libc=yes" else eval "$gt_func_gnugettext_libc=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$gt_func_gnugettext_libc { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then am_save_CPPFLAGS="$CPPFLAGS" for element in $INCICONV; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 $as_echo_n "checking for iconv... " >&6; } if ${am_cv_func_iconv+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_lib_iconv=yes am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$am_save_LIBS" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 $as_echo "$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then $as_echo "#define HAVE_ICONV 1" >>confdefs.h fi if test "$am_cv_lib_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 $as_echo_n "checking how to link with libiconv... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 $as_echo "$LIBICONV" >&6; } else CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libintl-prefix was given. if test "${with_libintl_prefix+set}" = set; then : withval=$with_libintl_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" fi fi fi LIBINTL= LTLIBINTL= INCINTL= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='intl ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" else : fi else found_dir= found_la= found_so= found_a= if test $use_additional = yes; then if test -n "$shlibext" \ && { test -f "$additional_libdir/lib$name.$shlibext" \ || { test "$shlibext" = dll \ && test -f "$additional_libdir/lib$name.dll.a"; }; }; then found_dir="$additional_libdir" if test -f "$additional_libdir/lib$name.$shlibext"; then found_so="$additional_libdir/lib$name.$shlibext" else found_so="$additional_libdir/lib$name.dll.a" fi if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi else if test -f "$additional_libdir/lib$name.$libext"; then found_dir="$additional_libdir" found_a="$additional_libdir/lib$name.$libext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$shlibext" \ && { test -f "$dir/lib$name.$shlibext" \ || { test "$shlibext" = dll \ && test -f "$dir/lib$name.dll.a"; }; }; then found_dir="$dir" if test -f "$dir/lib$name.$shlibext"; then found_so="$dir/lib$name.$shlibext" else found_so="$dir/lib$name.dll.a" fi if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi else if test -f "$dir/lib$name.$libext"; then found_dir="$dir" found_a="$dir/lib$name.$libext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$hardcode_direct" = yes; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" fi if test "$hardcode_minus_L" != no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" else LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" ;; esac done fi else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 $as_echo_n "checking for GNU gettext in libintl... " >&6; } if eval \${$gt_func_gnugettext_libintl+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$gt_func_gnugettext_libintl=yes" else eval "$gt_func_gnugettext_libintl=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS" fi eval ac_res=\$$gt_func_gnugettext_libintl { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else LIBINTL= LTLIBINTL= INCINTL= fi if test -n "$INTL_MACOSX_LIBS"; then if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" fi fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then $as_echo "#define ENABLE_NLS 1" >>confdefs.h else USE_NLS=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5 $as_echo_n "checking whether to use NLS... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } if test "$USE_NLS" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5 $as_echo_n "checking where the gettext function comes from... " >&6; } if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5 $as_echo "$gt_source" >&6; } fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5 $as_echo_n "checking how to link with libintl... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5 $as_echo "$LIBINTL" >&6; } for element in $INCINTL; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done fi $as_echo "#define HAVE_GETTEXT 1" >>confdefs.h $as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h fi POSUB=po fi INTLLIBS="$LIBINTL" if test "x$MSGFMT" = "xno"; then if test "x$GMSGFMT" = "xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: No gettext found" >&5 $as_echo "No gettext found" >&6; } as_fn_error $? "Either install gettext or use 'configure --disable-nls'" "$LINENO" 5 fi fi ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" if test "x$ac_cv_header_locale_h" = xyes; then : else as_fn_error $? "gettext requires locale.h. Install locale.h or disable language support with 'configure --disable-nls'" "$LINENO" 5 fi # Check whether --enable-plugins was given. if test "${enable_plugins+set}" = set; then : enableval=$enable_plugins; enable_plugins=$enableval else enable_plugins=yes fi plugin_support=no if test "x$enable_plugins" = "xyes"; then for ac_func in dlopen do : ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLOPEN 1 _ACEOF fi done if test "x$ac_cv_func_dlopen" = "xyes"; then have_dlopen=yes else for lib in dl; do as_ac_Lib=`$as_echo "ac_cv_lib_$lib''_dlopen" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -l$lib" >&5 $as_echo_n "checking for dlopen in -l$lib... " >&6; } if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-l$lib $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$as_ac_Lib=yes" else eval "$as_ac_Lib=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : LIBS="$LIBS -ldl"; have_dlopen=yes; break fi done fi if test "x$have_dlopen" = "xyes"; then $as_echo "#define ENABLE_PLUGINS 1" >>confdefs.h plugin_support="yes" ## AC_SUBST(plugin_support) ## %RW: not apparently used anywhere else { $as_echo "$as_me:${as_lineno-$LINENO}: result: Could not find dlopen - plugin support disabled" >&5 $as_echo "Could not find dlopen - plugin support disabled" >&6; } fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: Plugin support disabled by configure options" >&5 $as_echo "Plugin support disabled by configure options" >&6; } fi # Check whether --enable-private was given. if test "${enable_private+set}" = set; then : enableval=$enable_private; enable_private=$enableval else enable_private=yes fi if test "$enable_private" = "yes"; then $as_echo "#define ENABLE_PRIVATE 1" >>confdefs.h else { $as_echo "$as_me:${as_lineno-$LINENO}: result: Private record support disabled by configure options" >&5 $as_echo "Private record support disabled by configure options" >&6; } fi # Check whether --enable-datebk was given. if test "${enable_datebk+set}" = set; then : enableval=$enable_datebk; enable_datebk=$enableval else enable_datebk=yes fi if test "$enable_datebk" = "yes"; then $as_echo "#define ENABLE_DATEBK 1" >>confdefs.h else { $as_echo "$as_me:${as_lineno-$LINENO}: result: Datebk support disabled by configure options" >&5 $as_echo "Datebk support disabled by configure options" >&6; } fi # Check whether --enable-manana was given. if test "${enable_manana+set}" = set; then : enableval=$enable_manana; enable_manana=$enableval else enable_manana=yes fi if test "$enable_manana" = "yes"; then $as_echo "#define ENABLE_MANANA 1" >>confdefs.h else { $as_echo "$as_me:${as_lineno-$LINENO}: result: Mañana support disabled by configure options" >&5 $as_echo "Mañana support disabled by configure options" >&6; } fi # Check whether --enable-prometheon was given. if test "${enable_prometheon+set}" = set; then : enableval=$enable_prometheon; enable_prometheon=$enableval else enable_prometheon=no fi if test "$enable_prometheon" = "yes"; then $as_echo "#define ENABLE_PROMETHEON 1" >>confdefs.h cat >>confdefs.h <<_ACEOF #define PROGNAME "copilot" _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: Prometheon support enabled" >&5 $as_echo "Prometheon support enabled" >&6; } else cat >>confdefs.h <<_ACEOF #define PROGNAME "jpilot" _ACEOF fi # Check whether --enable-alarm-shell-danger was given. if test "${enable_alarm_shell_danger+set}" = set; then : enableval=$enable_alarm_shell_danger; enable_alarm_shell_danger=$enableval else enable_alarm_shell_danger=no; fi if test "$enable_alarm_shell_danger" = "yes"; then $as_echo "#define ENABLE_ALARM_SHELL_DANGER 1" >>confdefs.h fi # Check whether --enable-stock_buttons was given. if test "${enable_stock_buttons+set}" = set; then : enableval=$enable_stock_buttons; enable_stock_buttons=$enableval else enable_stock_buttons=yes fi if test "x$enable_stock_buttons" = "xyes"; then $as_echo "#define ENABLE_STOCK_BUTTONS 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: stock buttons enabled by configure options" >&5 $as_echo "stock buttons enabled by configure options" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: stock buttons disabled by configure options" >&5 $as_echo "stock buttons disabled by configure options" >&6; } fi # Check whether --enable-gtktest was given. if test "${enable_gtktest+set}" = set; then : enableval=$enable_gtktest; else enable_gtktest=yes fi pkg_config_args=gtk+-2.0 for module in . do case "$module" in gthread) pkg_config_args="$pkg_config_args gthread-2.0" ;; esac done no_gtk="" # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test x$PKG_CONFIG != xno ; then if pkg-config --atleast-pkgconfig-version 0.7 ; then : else echo "*** pkg-config too old; version 0.7 or better required." no_gtk=yes PKG_CONFIG=no fi else no_gtk=yes fi min_gtk_version=2.0.3 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK+ - version >= $min_gtk_version" >&5 $as_echo_n "checking for GTK+ - version >= $min_gtk_version... " >&6; } if test x$PKG_CONFIG != xno ; then ## don't try to run the test against uninstalled libtool libs if $PKG_CONFIG --uninstalled $pkg_config_args; then echo "Will use uninstalled version of GTK+ found in PKG_CONFIG_PATH" enable_gtktest=no fi if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args; then : else no_gtk=yes fi fi if test x"$no_gtk" = x ; then GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags` GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs` gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` if test "x$enable_gtktest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$GTK_LIBS $LIBS" rm -f conf.gtktest if test "$cross_compiling" = yes; then : echo $ac_n "cross compiling; assumed OK... $ac_c" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { int major, minor, micro; char *tmp_version; system ("touch conf.gtktest"); /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = g_strdup("$min_gtk_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_gtk_version"); exit(1); } if ((gtk_major_version != $gtk_config_major_version) || (gtk_minor_version != $gtk_config_minor_version) || (gtk_micro_version != $gtk_config_micro_version)) { printf("\n*** 'pkg-config --modversion gtk+-2.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version, gtk_major_version, gtk_minor_version, gtk_micro_version); printf ("*** was found! If pkg-config was correct, then it is best\n"); printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n"); printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); printf("*** required on your system.\n"); printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); printf("*** to point to the correct configuration files\n"); } else if ((gtk_major_version != GTK_MAJOR_VERSION) || (gtk_minor_version != GTK_MINOR_VERSION) || (gtk_micro_version != GTK_MICRO_VERSION)) { printf("*** GTK+ header files (version %d.%d.%d) do not match\n", GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); printf("*** library (version %d.%d.%d)\n", gtk_major_version, gtk_minor_version, gtk_micro_version); } else { if ((gtk_major_version > major) || ((gtk_major_version == major) && (gtk_minor_version > minor)) || ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro))) { return 0; } else { printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n", gtk_major_version, gtk_minor_version, gtk_micro_version); printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n", major, minor, micro); printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n"); printf("***\n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n"); printf("*** correct copy of pkg-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else no_gtk=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_gtk" = x ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version)" >&5 $as_echo "yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version)" >&6; } : else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if test "$PKG_CONFIG" = "no" ; then echo "*** A new enough version of pkg-config was not found." echo "*** See http://pkgconfig.sourceforge.net" else if test -f conf.gtktest ; then : else echo "*** Could not run GTK+ test program, checking why..." ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$LIBS $GTK_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding GTK+ or finding the wrong" echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" else echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means GTK+ is incorrectly installed." fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi GTK_CFLAGS="" GTK_LIBS="" as_fn_error $? "*** GTK >= 2.0.3 not found ***" "$LINENO" 5 fi rm -f conf.gtktest pilot_prefix="" # Check whether --with-pilot_prefix was given. if test "${with_pilot_prefix+set}" = set; then : withval=$with_pilot_prefix; fi if test "x$with_pilot_prefix" != "x"; then pilot_prefix=$with_pilot_prefix fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pilot-link header files" >&5 $as_echo_n "checking for pilot-link header files... " >&6; } pilotinclude=${FORCE_PILOT_INCLUDES:-no} if test "$pilotinclude" = "no" ; then for pilot_incl in $pilot_prefix/include /usr/include /usr/local/include \ /usr/extra/pilot/include /usr/include/libpisock; do if test -r "$pilot_incl/pi-version.h" ; then pilotinclude=yes PILOT_FLAGS="$PILOT_FLAGS -I$pilot_incl" break fi done fi if test "$pilotinclude" = "no" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? "Could not find the pilot-link header files" "$LINENO" 5 else { $as_echo "$as_me:${as_lineno-$LINENO}: result: found at $pilot_incl" >&5 $as_echo "found at $pilot_incl" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pilot library files" >&5 $as_echo_n "checking for pilot library files... " >&6; } pilotlibs=${FORCE_PILOT_LIBS:-no} PILOT_LIBS="-lpisock" if test "$pilotlibs" = "no" ; then for pilot_libs in $pilot_prefix/lib /usr/lib /usr/local/lib/ \ /usr/extra/pilot/lib $pilot_prefix/lib64 /usr/lib64 ; do if test -r $pilot_libs/libpisock.so >/dev/null 2>&1 ; then pilotlibs=yes PILOT_LIBS="-L$pilot_libs $PILOT_LIBS" break fi if test -r "$pilot_libs/libpisock.a" ; then pilotlibs=yes PILOT_LIBS="-L$pilot_libs $PILOT_LIBS" break fi if test -r "$pilot_libs/libpisock.sl" ; then pilotlibs=yes PILOT_LIBS="-L$pilot_libs $PILOT_LIBS" break fi done fi if test "$pilotlibs" = "no" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? "Could not find the pilot-link libraries" "$LINENO" 5 else { $as_echo "$as_me:${as_lineno-$LINENO}: result: found at $pilot_libs" >&5 $as_echo "found at $pilot_libs" >&6; } fi ac_fn_c_check_func "$LINENO" "gethostent" "ac_cv_func_gethostent" if test "x$ac_cv_func_gethostent" = xyes; then : else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostent in -lnsl" >&5 $as_echo_n "checking for gethostent in -lnsl... " >&6; } if ${ac_cv_lib_nsl_gethostent+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnsl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostent (); int main () { return gethostent (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_nsl_gethostent=yes else ac_cv_lib_nsl_gethostent=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostent" >&5 $as_echo "$ac_cv_lib_nsl_gethostent" >&6; } if test "x$ac_cv_lib_nsl_gethostent" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBNSL 1 _ACEOF LIBS="-lnsl $LIBS" fi fi ac_fn_c_check_func "$LINENO" "setsockopt" "ac_cv_func_setsockopt" if test "x$ac_cv_func_setsockopt" = xyes; then : else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setsockopt in -lsocket" >&5 $as_echo_n "checking for setsockopt in -lsocket... " >&6; } if ${ac_cv_lib_socket_setsockopt+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsocket $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char setsockopt (); int main () { return setsockopt (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_socket_setsockopt=yes else ac_cv_lib_socket_setsockopt=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_setsockopt" >&5 $as_echo "$ac_cv_lib_socket_setsockopt" >&6; } if test "x$ac_cv_lib_socket_setsockopt" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBSOCKET 1 _ACEOF LIBS="-lsocket $LIBS" fi fi # Check whether --enable-pl-test was given. if test "${enable_pl_test+set}" = set; then : enableval=$enable_pl_test; enable_pl_test=$enableval else enable_pl_test=yes fi if test "x$enable_pl_test" = "xyes"; then pilotcompile=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if I can compile a pilot link program" >&5 $as_echo_n "checking to see if I can compile a pilot link program... " >&6; } save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PILOT_FLAGS" save_LIBS="$LIBS" LIBS="$LIBS $PILOT_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include "pi-version.h" #include "pi-socket.h" int main () { pi_close (0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : pilotcompile=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$pilotcompile" = "no" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? "Could not compile a test pilot-link program" "$LINENO" 5 else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if I can run a pilot-link program" >&5 $as_echo_n "checking if I can run a pilot-link program... " >&6; } if test "$cross_compiling" = yes; then : error else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main() { return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } else as_fn_error $? " * Can not run a pilot-link test program * Make sure libpisock can be found by ld * Check /etc/ld.so.conf and run ldconfig * This test can be disabled by the --disable-pl-test option" "$LINENO" 5 fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi CFLAGS="$save_CFLAGS" LIBS="$save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking pilot-link version" >&5 $as_echo_n "checking pilot-link version... " >&6; } save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PILOT_FLAGS" save_LIBS="$LIBS" LIBS="$LIBS $PILOT_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { exit(0); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else as_fn_error $? "pilot-link header pi-version.h not found" "$LINENO" 5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext pl_version_check_done=no; pl_version=`$GREP "define PILOT_LINK_VERSION" "$pilot_incl/pi-version.h" | \ $CUT -d " " -f 3` pl_major=`$GREP "define PILOT_LINK_MAJOR" "$pilot_incl/pi-version.h" | \ $CUT -d " " -f 3` pl_minor=`$GREP "define PILOT_LINK_MINOR" "$pilot_incl/pi-version.h" | \ $CUT -d " " -f 3` pl_patch=`$GREP "define PILOT_LINK_PATCH" "$pilot_incl/pi-version.h" | \ $CUT -d " " -f 3 | $SED -e 's/"//g'` { $as_echo "$as_me:${as_lineno-$LINENO}: result: pi-version indicates $pl_version.$pl_major.$pl_minor" >&5 $as_echo "pi-version indicates $pl_version.$pl_major.$pl_minor" >&6; } if test $pl_version -eq 0 ; then if test $pl_major -ge 12 ; then if test $pl_minor -ge 5 ; then pl_version_check_done=yes; { $as_echo "$as_me:${as_lineno-$LINENO}: result: pilot-link has USB" >&5 $as_echo "pilot-link has USB" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: pilot-link has card support (>12.0)" >&5 $as_echo "pilot-link has card support (>12.0)" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: pilot-link has Calendar support (>12.5)" >&5 $as_echo "pilot-link has Calendar support (>12.5)" >&6; } fi fi fi if test $pl_version_check_done != yes; then as_fn_error $? "pilot-link version >= 0.12.5 is required" "$LINENO" 5 fi CFLAGS="$save_CFLAGS" LIBS="$save_LIBS" crypto_lib="none" # Check whether --with-libgcrypt-prefix was given. if test "${with_libgcrypt_prefix+set}" = set; then : withval=$with_libgcrypt_prefix; libgcrypt_config_prefix="$withval" else libgcrypt_config_prefix="" fi if test x$libgcrypt_config_prefix != x ; then if test x${LIBGCRYPT_CONFIG+set} != xset ; then LIBGCRYPT_CONFIG=$libgcrypt_config_prefix/bin/libgcrypt-config fi fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}libgcrypt-config", so it can be a program name with args. set dummy ${ac_tool_prefix}libgcrypt-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_LIBGCRYPT_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $LIBGCRYPT_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_LIBGCRYPT_CONFIG="$LIBGCRYPT_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_LIBGCRYPT_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi LIBGCRYPT_CONFIG=$ac_cv_path_LIBGCRYPT_CONFIG if test -n "$LIBGCRYPT_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBGCRYPT_CONFIG" >&5 $as_echo "$LIBGCRYPT_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_LIBGCRYPT_CONFIG"; then ac_pt_LIBGCRYPT_CONFIG=$LIBGCRYPT_CONFIG # Extract the first word of "libgcrypt-config", so it can be a program name with args. set dummy libgcrypt-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_ac_pt_LIBGCRYPT_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_LIBGCRYPT_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_LIBGCRYPT_CONFIG="$ac_pt_LIBGCRYPT_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_LIBGCRYPT_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_LIBGCRYPT_CONFIG=$ac_cv_path_ac_pt_LIBGCRYPT_CONFIG if test -n "$ac_pt_LIBGCRYPT_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_LIBGCRYPT_CONFIG" >&5 $as_echo "$ac_pt_LIBGCRYPT_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_LIBGCRYPT_CONFIG" = x; then LIBGCRYPT_CONFIG="no" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIBGCRYPT_CONFIG=$ac_pt_LIBGCRYPT_CONFIG fi else LIBGCRYPT_CONFIG="$ac_cv_path_LIBGCRYPT_CONFIG" fi tmp=1:1.2.0 if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then req_libgcrypt_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` min_libgcrypt_version=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\2/'` else req_libgcrypt_api=0 min_libgcrypt_version="$tmp" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBGCRYPT - version >= $min_libgcrypt_version" >&5 $as_echo_n "checking for LIBGCRYPT - version >= $min_libgcrypt_version... " >&6; } ok=no if test "$LIBGCRYPT_CONFIG" != "no" ; then req_major=`echo $min_libgcrypt_version | \ sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\1/'` req_minor=`echo $min_libgcrypt_version | \ sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\2/'` req_micro=`echo $min_libgcrypt_version | \ sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\3/'` libgcrypt_config_version=`$LIBGCRYPT_CONFIG --version` major=`echo $libgcrypt_config_version | \ sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1/'` minor=`echo $libgcrypt_config_version | \ sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\2/'` micro=`echo $libgcrypt_config_version | \ sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\3/'` if test "$major" -gt "$req_major"; then ok=yes else if test "$major" -eq "$req_major"; then if test "$minor" -gt "$req_minor"; then ok=yes else if test "$minor" -eq "$req_minor"; then if test "$micro" -ge "$req_micro"; then ok=yes fi fi fi fi fi fi if test $ok = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ($libgcrypt_config_version)" >&5 $as_echo "yes ($libgcrypt_config_version)" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test $ok = yes; then # If we have a recent libgcrypt, we should also check that the # API is compatible if test "$req_libgcrypt_api" -gt 0 ; then tmp=`$LIBGCRYPT_CONFIG --api-version 2>/dev/null || echo 0` if test "$tmp" -gt 0 ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBGCRYPT API version" >&5 $as_echo_n "checking LIBGCRYPT API version... " >&6; } if test "$req_libgcrypt_api" -eq "$tmp" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: okay" >&5 $as_echo "okay" >&6; } else ok=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: does not match. want=$req_libgcrypt_api got=$tmp" >&5 $as_echo "does not match. want=$req_libgcrypt_api got=$tmp" >&6; } fi fi fi fi if test $ok = yes; then LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags` LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs` : if test x"$host" != x ; then libgcrypt_config_host=`$LIBGCRYPT_CONFIG --host 2>/dev/null || echo none` if test x"$libgcrypt_config_host" != xnone ; then if test x"$libgcrypt_config_host" != x"$host" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** *** The config script $LIBGCRYPT_CONFIG was *** built for $libgcrypt_config_host and thus may not match the *** used host $host. *** You may want to use the configure option --with-libgcrypt-prefix *** to specify a matching config script. ***" >&5 $as_echo "$as_me: WARNING: *** *** The config script $LIBGCRYPT_CONFIG was *** built for $libgcrypt_config_host and thus may not match the *** used host $host. *** You may want to use the configure option --with-libgcrypt-prefix *** to specify a matching config script. ***" >&2;} fi fi fi else LIBGCRYPT_CFLAGS="" LIBGCRYPT_LIBS="" : fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcry_md_hash_buffer in -lgcrypt" >&5 $as_echo_n "checking for gcry_md_hash_buffer in -lgcrypt... " >&6; } if ${ac_cv_lib_gcrypt_gcry_md_hash_buffer+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lgcrypt $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gcry_md_hash_buffer (); int main () { return gcry_md_hash_buffer (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_gcrypt_gcry_md_hash_buffer=yes else ac_cv_lib_gcrypt_gcry_md_hash_buffer=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gcrypt_gcry_md_hash_buffer" >&5 $as_echo "$ac_cv_lib_gcrypt_gcry_md_hash_buffer" >&6; } if test "x$ac_cv_lib_gcrypt_gcry_md_hash_buffer" = xyes; then : have_libgcrypt=1 else have_libgcrypt=0 fi # Check whether --with-openssl was given. if test "${with_openssl+set}" = set; then : withval=$with_openssl; have_libgcrypt="0" fi if test "$have_libgcrypt" = "0"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSLeay_version in -lcrypto" >&5 $as_echo_n "checking for SSLeay_version in -lcrypto... " >&6; } if ${ac_cv_lib_crypto_SSLeay_version+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcrypto $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char SSLeay_version (); int main () { return SSLeay_version (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_crypto_SSLeay_version=yes else ac_cv_lib_crypto_SSLeay_version=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_SSLeay_version" >&5 $as_echo "$ac_cv_lib_crypto_SSLeay_version" >&6; } if test "x$ac_cv_lib_crypto_SSLeay_version" = xyes; then : have_libcrypto=1 else have_libcrypto=0 fi else $as_echo "#define HAVE_LIBGCRYPT 1" >>confdefs.h crypto_lib="libgcrypt" fi for ac_header in fcntl.h langinfo.h locale.h stdlib.h string.h sys/socket.h sys/time.h sys/wait.h unistd.h utime.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done # Headers required for plugins for ac_header in netinet/in.h do : ac_fn_c_check_header_mongrel "$LINENO" "netinet/in.h" "ac_cv_header_netinet_in_h" "$ac_includes_default" if test "x$ac_cv_header_netinet_in_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_NETINET_IN_H 1 _ACEOF have_netinet=1 else have_netinet=0 fi done if test "$plugin_support" = "yes" -a "$have_netinet" = "0"; then plugin_support = "no" fi # jpilot-dial required headers for ac_header in termio.h do : ac_fn_c_check_header_mongrel "$LINENO" "termio.h" "ac_cv_header_termio_h" "$ac_includes_default" if test "x$ac_cv_header_termio_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_TERMIO_H 1 _ACEOF have_termio=1 else have_termio=0 fi done for ac_header in openssl/md5.h do : ac_fn_c_check_header_mongrel "$LINENO" "openssl/md5.h" "ac_cv_header_openssl_md5_h" "$ac_includes_default" if test "x$ac_cv_header_openssl_md5_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_OPENSSL_MD5_H 1 _ACEOF have_openssl_md5=1 else have_openssl_md5=0 fi done for ac_header in openssl/des.h do : ac_fn_c_check_header_mongrel "$LINENO" "openssl/des.h" "ac_cv_header_openssl_des_h" "$ac_includes_default" if test "x$ac_cv_header_openssl_des_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_OPENSSL_DES_H 1 _ACEOF have_openssl_des=1 else have_openssl_des=0 fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 $as_echo_n "checking for inline... " >&6; } if ${ac_cv_c_inline+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_inline=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 $as_echo "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" if test "x$ac_cv_type_pid_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define pid_t int _ACEOF fi ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 $as_echo_n "checking for uid_t in sys/types.h... " >&6; } if ${ac_cv_type_uid_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "uid_t" >/dev/null 2>&1; then : ac_cv_type_uid_t=yes else ac_cv_type_uid_t=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 $as_echo "$ac_cv_type_uid_t" >&6; } if test $ac_cv_type_uid_t = no; then $as_echo "#define uid_t int" >>confdefs.h $as_echo "#define gid_t int" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 $as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } if ${ac_cv_header_time+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { if ((struct tm *) 0) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_time=yes else ac_cv_header_time=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 $as_echo "$ac_cv_header_time" >&6; } if test $ac_cv_header_time = yes; then $as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } if ${ac_cv_struct_tm+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { struct tm tm; int *p = &tm.tm_sec; return !p; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_struct_tm=time.h else ac_cv_struct_tm=sys/time.h fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 $as_echo "$ac_cv_struct_tm" >&6; } if test $ac_cv_struct_tm = sys/time.h; then $as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h fi # _NL_TIME_FIRST_WEEKDAY is an enum and not a define { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _NL_TIME_FIRST_WEEKDAY" >&5 $as_echo_n "checking for _NL_TIME_FIRST_WEEKDAY... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { char c; c = *((unsigned char *) nl_langinfo(_NL_TIME_FIRST_WEEKDAY)); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : nl_ok=yes else nl_ok=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $nl_ok" >&5 $as_echo "$nl_ok" >&6; } if test "$nl_ok" = "yes"; then $as_echo "#define HAVE__NL_TIME_FIRST_WEEKDAY 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 $as_echo_n "checking return type of signal handlers... " >&6; } if ${ac_cv_type_signal+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { return *(signal (0, 0)) (0) == 1; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_type_signal=int else ac_cv_type_signal=void fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 $as_echo "$ac_cv_type_signal" >&6; } cat >>confdefs.h <<_ACEOF #define RETSIGTYPE $ac_cv_type_signal _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strcoll" >&5 $as_echo_n "checking for working strcoll... " >&6; } if ${ac_cv_func_strcoll_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_strcoll_works=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { return (strcoll ("abc", "def") >= 0 || strcoll ("ABC", "DEF") >= 0 || strcoll ("123", "456") >= 0) ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_strcoll_works=yes else ac_cv_func_strcoll_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strcoll_works" >&5 $as_echo "$ac_cv_func_strcoll_works" >&6; } if test $ac_cv_func_strcoll_works = yes; then $as_echo "#define HAVE_STRCOLL 1" >>confdefs.h fi #AC_FUNC_MALLOC #AC_FUNC_REALLOC for ac_func in setenv do : ac_fn_c_check_func "$LINENO" "setenv" "ac_cv_func_setenv" if test "x$ac_cv_func_setenv" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SETENV 1 _ACEOF fi done # Check whether --with-with_flock was given. if test "${with_with_flock+set}" = set; then : withval=$with_with_flock; with_flock=yes fi if test "x$with_flock" = "xyes"; then for ac_header in sys/file.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/file.h" "ac_cv_header_sys_file_h" "$ac_includes_default" if test "x$ac_cv_header_sys_file_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_FILE_H 1 _ACEOF $as_echo "#define USE_FLOCK 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using flock instead of fnctl" >&5 $as_echo "Using flock instead of fnctl" >&6; } else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "--with-flock was given, but sys/file.h was not found See \`config.log' for more details" "$LINENO" 5; } fi done fi make_keyring=no if test "$have_libgcrypt" = "1"; then make_keyring=yes fi if test "$have_libcrypto" = "1"; then if test "$have_openssl_md5" = "1" -a "$have_openssl_des" = "1"; then make_keyring=yes OPENSSL_LIBS=-lcrypto crypto_lib="OpenSSL" fi fi if test "$make_keyring" != "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OpenSSL library not found, Keyring will not be built" >&5 $as_echo "$as_me: WARNING: OpenSSL library not found, Keyring will not be built" >&2;} fi keyring_plugin=no; if test "x$make_keyring" = "xyes" -a "x$plugin_support" = "xyes"; then keyring_plugin=yes; fi if test "x$keyring_plugin" = "xyes"; then MAKE_KEYRING_TRUE= MAKE_KEYRING_FALSE='#' else MAKE_KEYRING_TRUE='#' MAKE_KEYRING_FALSE= fi if test "x$plugin_support" = "xyes"; then MAKE_EXPENSE_TRUE= MAKE_EXPENSE_FALSE='#' else MAKE_EXPENSE_TRUE='#' MAKE_EXPENSE_FALSE= fi if test "x$plugin_support" = "xyes"; then MAKE_SYNCTIME_TRUE= MAKE_SYNCTIME_FALSE='#' else MAKE_SYNCTIME_TRUE='#' MAKE_SYNCTIME_FALSE= fi dialer=no if test "$have_termio" = "1"; then case "${build_os}" in linux-gnu) dialer=yes ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Operating system ${build_os} not supported by jpilot-dialer" >&5 $as_echo "$as_me: WARNING: Operating system ${build_os} not supported by jpilot-dialer" >&2;} ; dialer=no ;; esac fi if test "x$dialer" = "xyes"; then JPILOT_DIALER_TRUE= JPILOT_DIALER_FALSE='#' else JPILOT_DIALER_TRUE='#' JPILOT_DIALER_FALSE= fi if test "x$prefix" = "xNONE"; then cat >>confdefs.h <<_ACEOF #define BASE_DIR "$ac_default_prefix" _ACEOF else cat >>confdefs.h <<_ACEOF #define BASE_DIR "$prefix" _ACEOF fi abilib=$ABILIB if test "x$abilib" = "x"; then cat >>confdefs.h <<_ACEOF #define ABILIB "lib" _ACEOF else cat >>confdefs.h <<_ACEOF #define ABILIB "$abilib" _ACEOF fi ac_config_files="$ac_config_files Makefile Expense/Makefile SyncTime/Makefile KeyRing/Makefile dialer/Makefile m4/Makefile po/Makefile.in icons/Makefile docs/Makefile empty/Makefile jpilot.spec SlackBuild" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi ac_config_commands="$ac_config_commands po/stamp-it" if test -z "${MAKE_KEYRING_TRUE}" && test -z "${MAKE_KEYRING_FALSE}"; then as_fn_error $? "conditional \"MAKE_KEYRING\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${MAKE_EXPENSE_TRUE}" && test -z "${MAKE_EXPENSE_FALSE}"; then as_fn_error $? "conditional \"MAKE_EXPENSE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${MAKE_SYNCTIME_TRUE}" && test -z "${MAKE_SYNCTIME_FALSE}"; then as_fn_error $? "conditional \"MAKE_SYNCTIME\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${JPILOT_DIALER_TRUE}" && test -z "${JPILOT_DIALER_FALSE}"; then as_fn_error $? "conditional \"JPILOT_DIALER\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by jpilot $as_me 1.8.1.2, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ jpilot config.status 1.8.1.2 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } # Quote evaled strings. for var in SHELL \ ECHO \ PATH_SEPARATOR \ SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ DLLTOOL \ sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ archiver_list_spec \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ nm_file_list_spec \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ MANIFEST_TOOL \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_separator \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ install_override_mode \ finish_eval \ old_striplib \ striplib; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' # Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake < 1.5. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "Expense/Makefile") CONFIG_FILES="$CONFIG_FILES Expense/Makefile" ;; "SyncTime/Makefile") CONFIG_FILES="$CONFIG_FILES SyncTime/Makefile" ;; "KeyRing/Makefile") CONFIG_FILES="$CONFIG_FILES KeyRing/Makefile" ;; "dialer/Makefile") CONFIG_FILES="$CONFIG_FILES dialer/Makefile" ;; "m4/Makefile") CONFIG_FILES="$CONFIG_FILES m4/Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "icons/Makefile") CONFIG_FILES="$CONFIG_FILES icons/Makefile" ;; "docs/Makefile") CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;; "empty/Makefile") CONFIG_FILES="$CONFIG_FILES empty/Makefile" ;; "jpilot.spec") CONFIG_FILES="$CONFIG_FILES jpilot.spec" ;; "SlackBuild") CONFIG_FILES="$CONFIG_FILES SlackBuild" ;; "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "libtool":C) # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # The names of the tagged configurations supported by this script. available_tags="" # ### BEGIN LIBTOOL CONFIG # Whether or not to build static libraries. build_old_libs=$enable_static # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that protects backslashes. ECHO=$lt_ECHO # The PATH separator for the build system. PATH_SEPARATOR=$lt_PATH_SEPARATOR # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # convert \$build file names to \$host format. to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd # An object symbol dumper. OBJDUMP=$lt_OBJDUMP # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method = "file_magic". file_magic_cmd=$lt_file_magic_cmd # How to find potential files when deplibs_check_method = "file_magic". file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob # DLL creation program. DLLTOOL=$lt_DLLTOOL # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR # Flags to create an archive. AR_FLAGS=$lt_AR_FLAGS # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Whether to use a lock for old archive extraction. lock_old_archive_extraction=$lock_old_archive_extraction # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # Specify filename containing input files for \$NM. nm_file_list_spec=$lt_nm_file_list_spec # The root where to search for dependent libraries,and in which our libraries should be installed. lt_sysroot=$lt_sysroot # The name of the directory that contains temporary libtool files. objdir=$objdir # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Manifest tool. MANIFEST_TOOL=$lt_MANIFEST_TOOL # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Permission mode override for installation of shared libraries. install_override_mode=$lt_install_override_mode # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain="$ac_aux_dir/ltmain.sh" # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) if test x"$xsi_shell" = xyes; then sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ func_dirname ()\ {\ \ case ${1} in\ \ */*) func_dirname_result="${1%/*}${2}" ;;\ \ * ) func_dirname_result="${3}" ;;\ \ esac\ } # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_basename ()$/,/^} # func_basename /c\ func_basename ()\ {\ \ func_basename_result="${1##*/}"\ } # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ func_dirname_and_basename ()\ {\ \ case ${1} in\ \ */*) func_dirname_result="${1%/*}${2}" ;;\ \ * ) func_dirname_result="${3}" ;;\ \ esac\ \ func_basename_result="${1##*/}"\ } # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ func_stripname ()\ {\ \ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ \ # positional parameters, so assign one to ordinary parameter first.\ \ func_stripname_result=${3}\ \ func_stripname_result=${func_stripname_result#"${1}"}\ \ func_stripname_result=${func_stripname_result%"${2}"}\ } # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ func_split_long_opt ()\ {\ \ func_split_long_opt_name=${1%%=*}\ \ func_split_long_opt_arg=${1#*=}\ } # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ func_split_short_opt ()\ {\ \ func_split_short_opt_arg=${1#??}\ \ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ } # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ func_lo2o ()\ {\ \ case ${1} in\ \ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ \ *) func_lo2o_result=${1} ;;\ \ esac\ } # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_xform ()$/,/^} # func_xform /c\ func_xform ()\ {\ func_xform_result=${1%.*}.lo\ } # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_arith ()$/,/^} # func_arith /c\ func_arith ()\ {\ func_arith_result=$(( $* ))\ } # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_len ()$/,/^} # func_len /c\ func_len ()\ {\ func_len_result=${#1}\ } # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$lt_shell_append" = xyes; then sed -e '/^func_append ()$/,/^} # func_append /c\ func_append ()\ {\ eval "${1}+=\\${2}"\ } # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ func_append_quoted ()\ {\ \ func_quote_for_eval "${2}"\ \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ } # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: # Save a `func_append' function call where possible by direct use of '+=' sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: else # Save a `func_append' function call even when '+=' is not available sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$_lt_function_replace_fail" = x":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 $as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} fi mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ;; "po-directories":C) for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Treat a directory as a PO directory if and only if it has a # POTFILES.in file. This allows packages to have multiple PO # directories under different names or in different locations. if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done ;; "po/stamp-it":C) if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then as_fn_error $? "po/Makefile.in.in was not created by intltoolize." "$LINENO" 5 fi rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp" >"po/stamp-it.tmp" sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/po/POTFILES.in" | sed '$!s/$/ \\/' >"po/POTFILES" sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r po/POTFILES } ' "po/Makefile.in" >"po/Makefile" rm -f "po/Makefile.tmp" mv "po/stamp-it.tmp" "po/stamp-it" ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi chmod +x SlackBuild { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: This package is configured for the following features:" >&5 $as_echo "This package is configured for the following features:" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ------------------------------------------------------" >&5 $as_echo "------------------------------------------------------" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: Compiling with plugin support.......... $enable_plugins" >&5 $as_echo "Compiling with plugin support.......... $enable_plugins" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: Compiling with private record support.. $enable_private" >&5 $as_echo "Compiling with private record support.. $enable_private" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: Compiling with Datebk support.......... $enable_datebk" >&5 $as_echo "Compiling with Datebk support.......... $enable_datebk" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: Compiling with Mañana support.......... $enable_manana" >&5 $as_echo "Compiling with Mañana support.......... $enable_manana" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: Compiling with Prometheon support...... $enable_prometheon" >&5 $as_echo "Compiling with Prometheon support...... $enable_prometheon" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: Compiling Expense plugin............... $plugin_support" >&5 $as_echo "Compiling Expense plugin............... $plugin_support" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: Compiling SyncTime plugin.............. $plugin_support" >&5 $as_echo "Compiling SyncTime plugin.............. $plugin_support" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: Compiling KeyRing plugin............... $keyring_plugin" >&5 $as_echo "Compiling KeyRing plugin............... $keyring_plugin" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: Compiling dialer add-on................ $dialer" >&5 $as_echo "Compiling dialer add-on................ $dialer" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: Cryptographic library.................. $crypto_lib" >&5 $as_echo "Cryptographic library.................. $crypto_lib" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: GTK-2 support.......................... yes" >&5 $as_echo "GTK-2 support.......................... yes" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: Stock buttons (icons on buttons in GUI) $enable_stock_buttons" >&5 $as_echo "Stock buttons (icons on buttons in GUI) $enable_stock_buttons" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: NLS support (foreign languages)........ $USE_NLS" >&5 $as_echo "NLS support (foreign languages)........ $USE_NLS" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: Compiler Options....................... $CFLAGS" >&5 $as_echo "Compiler Options....................... $CFLAGS" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: Prefix directory....................... $prefix" >&5 $as_echo "Prefix directory....................... $prefix" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: pilot-link headers..................... $pilot_incl" >&5 $as_echo "pilot-link headers..................... $pilot_incl" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: USB support enabled.................... yes" >&5 $as_echo "USB support enabled.................... yes" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: pilot-link version found............... $pl_version.$pl_major.$pl_minor$pl_patch" >&5 $as_echo "pilot-link version found............... $pl_version.$pl_major.$pl_minor$pl_patch" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: Now type make to compile" >&5 $as_echo "Now type make to compile" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } jpilot-1.8.1.2/README0000644000175000017500000001360110445273766011002 00000000000000============================================================================== Last updated: 30 Jan 2002 by jbm ============================================================================== J-Pilot is a palm pilot desktop for Linux/Unix written by: Judd Montgomery, judd@jpilot.org It is very useable, but still has many planned updates to make it better. If you like it feel to send me donations ;) I collect coins from anywhere, anytime also. At least send me an email and let me know you are using it. I'd like to know how many people this is useful to. Judd Montgomery P.O. Box 665 Sunbury, OH 43074 ============================================================================== Information about being a translator can be found at: http://www.iro.umontreal.ca/contrib/po/HTML/ ============================================================================== ============================================================================== Plugins: Manana can be found at http://bill.sexton.tripod.com/download.htm KeyRing can be found at http://gnukeyring.sourceforge.net ============================================================================== USB and Palm OS 4.x devices To use USB devices you must have the appropriate usb modules loaded or compiled into the kernel. These are usually either uhci, or ohci, uhci being the more common. The visor driver is also needed. I would recommend a fairly new kernel >= 2.4.17 if you are using a USB palm other than a visor. To Sync USB devices other than visors you will need to download pilot-link 0.10.0 or greater. As of this release you can only get this from the pilot-link CVS website. http://www.pilot-link.org. If you are using Palm OS > 4.0 and see this message: "The desktop HotSync software does not support the password on this handheld. You must upgrade your desktop software or remove the password from the handheld." You need pilot-link > 0.11.5 ============================================================================== SERIAL PORT SETUP: When syncing, jpilot uses the port and speed settings out of the preferences menu. If the port is blank then jpilot will use the PILOTPORT environment variables, as does pilot-link. If these are blank then jpilot will default to /dev/pilot. It is recommended, but not neccessay to make a link from /dev/pilot to the correct serial port. So, if your cradle is on COM1, this is /dev/ttyS0 under Linux. You could execute the command "ln -s /dev/ttyS0 /dev/pilot". COM2 is /dev/ttyS1, and so on. You must also give non-root users permisions to access the serial port. The command to do this is (as root) "chmod 666 /dev/ttyS0" for the first serial port, ttyS1, for the second, and so on. USB devices usually use /dev/ttyUSB0, or /dev/ttyS1 If you are using the new devfs serial ports will be: first serial port is /dev/tts/0 second serial port is /dev/tts/1 first USB port is /dev/usb/tts/0 second USB port is /dev/usb/tts/1 ============================================================================== ============================================================================== COLOR FILES: Make install will copy a few default color files to /usr/local/share/jpilot/ (unless you told configure to use another prefix). These will be selectable from the preferences menu. Also jpilot will look in $JPILOT_HOME/.jpilot/ for colors files. They must start with "jpilotrc". If you want to add new ones, or modify the current ones, just put the files in one of these directories and they will show up in the preferences menu. If you create your own cool jpilotrc files feel free to send them back to me and if I like it, I'll include it in the release. ============================================================================== ENVIRONMENT VARIABLES J-Pilot uses the JPILOT_HOME environment variable to make it easy to allow multiple pilots to be synced under the same unix user. Just set JPILOT_HOME to the directory you want jpilot to use. For example, I have 2 palm pilots. I can sync the one I use all the time into /home/judd. The other one I can sync into /home/judd/palm2 by using this script: #!/bin/bash JPILOT_HOME=/home/judd/palm2 jpilot This is also handy for syncing xcopilot into its own directory. You don't have to set JPILOT_HOME. If its not set then jpilot will use the HOME env variable. Future version of J-Pilot will probably sync multiple palms into a subdirectory under the JPILOT_HOME/.jpilot directory. ============================================================================== ============================================================================== OOPS, REVERTING: You can always make the databases revert back to the last time that the pilot was synced. All you have to do is "rm ~/.jpilot/*.pc3". Deleted records will come back, etc. Nothing is permanent until the sync/backup. You can do this if you make a mistake, or just to play around with jpilot and then delete the changed records without syncing them. Also, from the preferences menu, you can choose to show deleted records and then click on the deleted record and use "Add" to get a copy of it back. ============================================================================== BACKUP and SYNC: The Sync button will sync the 4 applications with the palm pilot and any plugins that are installed. The Backup button will backup every program and database from the palm pilot, except for AvantGo files (these are usually big and change daily). If you get an error saying that you have a NULL user ID, then you need to run install-user from the pilot-link suite. e.g. "install-user /dev/pilot Judd 1234", of course replace "Judd" and "1234" with you favorite name and number. CLOCK UPDATE and flickers: I don't know why, but the scrollbars flicker when the clock updates. On some systems it is bad, others not at all. To get rid of this, just go into preferences and choose a time without seconds. Then the clock will only update every minute. jpilot-1.8.1.2/russian.c0000644000175000017500000001122611524574422011743 00000000000000/* $Id: russian.c,v 1.9 2010-10-15 23:50:07 rikster5 Exp $ */ /******************************************************************************* * russian.c * A module of J-Pilot http://jpilot.org * * Copyright (C) 2000 by Gennady Kudelya * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /* Convert charsets: Palm <-> Unix Palm : koi8 Unix : Win1251 */ /********************************* Includes ***********************************/ #include "config.h" #include #include "russian.h" /********************************* Constants **********************************/ static const unsigned char k2w[256] = { 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, 0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, 0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, 0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, 0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, 0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, 0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f, 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7, 0xb3,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf, 0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7, 0xa3,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf, 0xe1,0xe2,0xf7,0xe7,0xe4,0xe5,0xf6,0xfa, 0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,0xf0, 0xf2,0xf3,0xf4,0xf5,0xe6,0xe8,0xe3,0xfe, 0xfb,0xfd,0xff,0xf9,0xf8,0xfc,0xe0,0xf1, 0xc1,0xc2,0xd7,0xc7,0xc4,0xc5,0xd6,0xda, 0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0, 0xd2,0xd3,0xd4,0xd5,0xc6,0xc8,0xc3,0xde, 0xdb,0xdd,0xdf,0xd9,0xd8,0xdc,0xc0,0xd1 }; static const unsigned char w2k[256] = { 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, 0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, 0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, 0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, 0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, 0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, 0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, 0xa0,0xa1,0xa2,0xb8,0xa4,0xa5,0xa6,0xa7, 0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf, 0xb0,0xb1,0xb2,0xa8,0xb4,0xb5,0xb6,0xb7, 0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf, 0xfe,0xe0,0xe1,0xf6,0xe4,0xe5,0xf4,0xe3, 0xf5,0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee, 0xef,0xff,0xf0,0xf1,0xf2,0xf3,0xe6,0xe2, 0xfc,0xfb,0xe7,0xf8,0xfd,0xf9,0xf7,0xfa, 0xde,0xc0,0xc1,0xd6,0xc4,0xc5,0xd4,0xc3, 0xd5,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce, 0xcf,0xdf,0xd0,0xd1,0xd2,0xd3,0xc6,0xc2, 0xdc,0xdb,0xc7,0xd8,0xdd,0xd9,0xd7,0xda }; /****************************** Main Code *************************************/ void win1251_to_koi8(char *const buf, int buf_len) { unsigned char *p; int i; if (buf == NULL) return; for (i=0, p = (unsigned char *)buf; *p && i < buf_len; p++, i++) { *p = w2k[(*p)]; } } void koi8_to_win1251(char *const buf, int buf_len) { unsigned char *p; int i; if (buf == NULL) return; for (i=0, p = (unsigned char *)buf; *p && i < buf_len; p++, i++) { *p = k2w[(*p)]; } } jpilot-1.8.1.2/configure.in0000644000175000017500000004547111702305107012423 00000000000000dnl ############################################################################ dnl Process this file with autoconf to produce a configure script. dnl ############################################################################ dnl boilerplate to initialize autoconf(AC) and automake(AM) AC_PREREQ([2.58]) AC_INIT(jpilot, 1.8.1.2) AM_INIT_AUTOMAKE([1.8]) dnl use a config.h file rather than string of -DXXX args to compiler dnl run autoheader before autoconf to create config.h.in from configure.in AM_CONFIG_HEADER(config.h) dnl enable maintainer mode in Makefiles (make dist, distclean) AM_MAINTAINER_MODE dnl ############################################################################ dnl Check for programs needed during configure or build dnl ############################################################################ AC_CANONICAL_HOST # determine build host AC_PROG_CC dnl AC_ISC_POSIX only needed for Interacive Systems UNIX which Sun dnl is discontinuing support on as of 7/23/2006. dnl This obsolete macro should probably be removed. AC_ISC_POSIX dnl Need intltool for i18n support AC_PROG_INTLTOOL() AC_PROG_INSTALL AC_PATH_PROG([SED], [sed], [ AC_MSG_ERROR([sed is required for configure script]) ]) AC_PATH_PROG([GREP], [grep], [ AC_MSG_ERROR([grep is required for configure script]) ]) AC_PATH_PROG([CUT], [cut], [ AC_MSG_ERROR([cut is required for configure script]) ]) dnl ****************************** dnl Libtool setup dnl ****************************** dnl enable shared library building, turn off static libraries AC_DISABLE_STATIC AC_LIBTOOL_DLOPEN AC_PROG_LIBTOOL AC_SUBST(LIBTOOL_DEPS) dnl ****************************** dnl Gettext setup dnl ****************************** dnl Set of available languages ALL_LINGUAS="ca cs da de es fr it ja ko nl nb pt_BR ru rw sv tr uk vi zh_CN zh_TW" dnl Name of language files GETTEXT_PACKAGE=jpilot AC_SUBST(GETTEXT_PACKAGE) dnl 9/29/2006: Work around a bug in current versions of gettext/intltool dnl which leave this macro undefined. DATADIRNAME=share AC_SUBST(DATADIRNAME) dnl Setup gettext using version available on host dnl The intl/ directory is not exported with the distribution AM_GNU_GETTEXT([external]) AM_GNU_GETTEXT_VERSION([0.16.1]) if test "x$MSGFMT" = "xno"; then if test "x$GMSGFMT" = "xno"; then AC_MSG_RESULT(No gettext found) AC_MSG_ERROR(Either install gettext or use 'configure --disable-nls') fi fi dnl gettext macros for context-sensitive messages depend on locale.h AC_CHECK_HEADER(locale.h,, AC_MSG_ERROR(gettext requires locale.h. Install locale.h or disable language support with 'configure --disable-nls')) dnl ############################################################################ dnl Process Enable/Disable configure arguments dnl ############################################################################ AC_ARG_ENABLE(plugins, AC_HELP_STRING([--disable-plugins],[Do not compile plugin support]), enable_plugins=$enableval, enable_plugins=yes) plugin_support=no if test "x$enable_plugins" = "xyes"; then AC_CHECK_FUNCS(dlopen) if test "x$ac_cv_func_dlopen" = "xyes"; then have_dlopen=yes else for lib in dl; do AC_CHECK_LIB($lib, dlopen, [LIBS="$LIBS -ldl"; have_dlopen=yes; break]) done fi if test "x$have_dlopen" = "xyes"; then AC_DEFINE(ENABLE_PLUGINS, 1, [ plugin support ]) plugin_support="yes" ## AC_SUBST(plugin_support) ## %RW: not apparently used anywhere else AC_MSG_RESULT(Could not find dlopen - plugin support disabled) fi else AC_MSG_RESULT(Plugin support disabled by configure options) fi dnl ************************************************************ AC_ARG_ENABLE(private, AC_HELP_STRING([--disable-private],[Do not use private records feature (password not needed to see private records)]), enable_private=$enableval, enable_private=yes) if test "$enable_private" = "yes"; then AC_DEFINE(ENABLE_PRIVATE, 1, [ Private record support ]) else AC_MSG_RESULT(Private record support disabled by configure options) fi dnl ************************************************************ AC_ARG_ENABLE(datebk, AC_HELP_STRING([--disable-datebk],[Disable Datebk support]), enable_datebk=$enableval, enable_datebk=yes) if test "$enable_datebk" = "yes"; then AC_DEFINE(ENABLE_DATEBK, 1, [ DateBk support ]) else AC_MSG_RESULT(Datebk support disabled by configure options) fi dnl ************************************************************ AC_ARG_ENABLE(manana, AC_HELP_STRING([--disable-manana],[Disable Mañana support]), enable_manana=$enableval, enable_manana=yes) if test "$enable_manana" = "yes"; then AC_DEFINE(ENABLE_MANANA, 1, [ Manana support ]) else AC_MSG_RESULT(Mañana support disabled by configure options) fi dnl ************************************************************ AC_ARG_ENABLE(prometheon, AC_HELP_STRING([--enable-prometheon],[For use with Prometheon: http://www.prometheon.net]), enable_prometheon=$enableval, enable_prometheon=no) if test "$enable_prometheon" = "yes"; then AC_DEFINE(ENABLE_PROMETHEON, 1, [ Prometheon support ]) AC_DEFINE_UNQUOTED(PROGNAME, "copilot", [ program name ]) AC_MSG_RESULT(Prometheon support enabled) else AC_DEFINE_UNQUOTED(PROGNAME, "jpilot", [ program name ]) fi AC_SUBST(PROGNAME) dnl ************************************************************ AC_ARG_ENABLE(alarm-shell-danger, AC_HELP_STRING([--enable-alarm-shell-danger],[Allow alarm descriptions and notes to be used in alarm shell commands]), enable_alarm_shell_danger=$enableval, enable_alarm_shell_danger=no; ) if test "$enable_alarm_shell_danger" = "yes"; then AC_DEFINE(ENABLE_ALARM_SHELL_DANGER, 1, [ Datebook description and note allowed in shell commands ]) fi dnl ************************************************************ AC_ARG_ENABLE(stock_buttons, AC_HELP_STRING([--disable-stock-buttons],[Disable stock buttons (icons on GUI buttons)]), enable_stock_buttons=$enableval, enable_stock_buttons=yes) if test "x$enable_stock_buttons" = "xyes"; then AC_DEFINE(ENABLE_STOCK_BUTTONS, 1, [ Use GTK2 stock buttons ]) AC_MSG_RESULT(stock buttons enabled by configure options) else AC_MSG_RESULT(stock buttons disabled by configure options) fi dnl ############################################################################ dnl Check for libraries needed dnl ############################################################################ dnl ****************************** dnl * GTK2 libraries dnl ****************************** AM_PATH_GTK_2_0(2.0.3, , AC_MSG_ERROR([*** GTK >= 2.0.3 not found ***])) dnl ****************************** dnl * pilot-link libs dnl ****************************** pilot_prefix="" AC_ARG_WITH(pilot_prefix, AC_HELP_STRING([--with-pilot-prefix=PFX],[Prefix to top level of pilot-link files (e.g., = /usr/local if the pilot-link includes are in /usr/local/include and libs are in /usr/local/lib)])) if test "x$with_pilot_prefix" != "x"; then pilot_prefix=$with_pilot_prefix fi dnl Make sure that the pilot-link stuff actually exists AC_MSG_CHECKING(for pilot-link header files) pilotinclude=${FORCE_PILOT_INCLUDES:-no} if test "$pilotinclude" = "no" ; then for pilot_incl in $pilot_prefix/include /usr/include /usr/local/include \ /usr/extra/pilot/include /usr/include/libpisock; do if test -r "$pilot_incl/pi-version.h" ; then pilotinclude=yes PILOT_FLAGS="$PILOT_FLAGS -I$pilot_incl" break fi done fi if test "$pilotinclude" = "no" ; then AC_MSG_RESULT(no) AC_MSG_ERROR(Could not find the pilot-link header files) else AC_MSG_RESULT(found at $pilot_incl) fi dnl pilot-link headers are installed. Now check for libraries AC_MSG_CHECKING(for pilot library files) pilotlibs=${FORCE_PILOT_LIBS:-no} PILOT_LIBS="-lpisock" if test "$pilotlibs" = "no" ; then for pilot_libs in $pilot_prefix/lib /usr/lib /usr/local/lib/ \ /usr/extra/pilot/lib $pilot_prefix/lib64 /usr/lib64 ; do if test -r $pilot_libs/libpisock.so >/dev/null 2>&1 ; then pilotlibs=yes PILOT_LIBS="-L$pilot_libs $PILOT_LIBS" break fi if test -r "$pilot_libs/libpisock.a" ; then pilotlibs=yes PILOT_LIBS="-L$pilot_libs $PILOT_LIBS" break fi if test -r "$pilot_libs/libpisock.sl" ; then pilotlibs=yes PILOT_LIBS="-L$pilot_libs $PILOT_LIBS" break fi done fi if test "$pilotlibs" = "no" ; then AC_MSG_RESULT(no) AC_MSG_ERROR(Could not find the pilot-link libraries) else AC_MSG_RESULT(found at $pilot_libs) fi dnl Solaris needs the socket library AC_CHECK_FUNC(gethostent, , AC_CHECK_LIB(nsl, gethostent)) AC_CHECK_FUNC(setsockopt, , AC_CHECK_LIB(socket, setsockopt)) dnl Substitute macros now that LIB & FLAG detection is done AC_SUBST(PILOT_LIBS) AC_SUBST(PILOT_FLAGS) dnl ************************************************************ AC_ARG_ENABLE(pl-test, AC_HELP_STRING([--disable-pl-test],[Do not try to compile a test pilot-link program]), enable_pl_test=$enableval, enable_pl_test=yes) dnl run some simple tests to verify pilot-link environment if test "x$enable_pl_test" = "xyes"; then pilotcompile=no dnl Check to make sure pilot-link library can be linked AC_MSG_CHECKING(to see if I can compile a pilot link program) save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PILOT_FLAGS" save_LIBS="$LIBS" LIBS="$LIBS $PILOT_LIBS" AC_TRY_LINK([#include "pi-version.h" #include "pi-socket.h"], [pi_close (0);] , pilotcompile=yes, , ) if test "$pilotcompile" = "no" ; then AC_MSG_RESULT(no) AC_MSG_ERROR(Could not compile a test pilot-link program) else AC_MSG_RESULT(ok) fi dnl Try to run a pilot-link program (tests dynamic linking) AC_MSG_CHECKING(if I can run a pilot-link program) AC_TRY_RUN([ #include int main() { return 0; } ], AC_MSG_RESULT([ok]), AC_MSG_ERROR([ * Can not run a pilot-link test program * Make sure libpisock can be found by ld * Check /etc/ld.so.conf and run ldconfig * This test can be disabled by the --disable-pl-test option]) , [ error ]) dnl restore variables after pilot-link testing CFLAGS="$save_CFLAGS" LIBS="$save_LIBS" fi dnl * Check pilot-link pi-version.h AC_MSG_CHECKING(pilot-link version) save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PILOT_FLAGS" save_LIBS="$LIBS" LIBS="$LIBS $PILOT_LIBS" AC_TRY_COMPILE([#include ], [ exit(0); ], , AC_MSG_ERROR([pilot-link header pi-version.h not found]) ) dnl * Pilot-link version variations, USB support, 12.0, etc. pl_version_check_done=no; pl_version=`$GREP "define PILOT_LINK_VERSION" "$pilot_incl/pi-version.h" | \ $CUT -d " " -f 3` pl_major=`$GREP "define PILOT_LINK_MAJOR" "$pilot_incl/pi-version.h" | \ $CUT -d " " -f 3` pl_minor=`$GREP "define PILOT_LINK_MINOR" "$pilot_incl/pi-version.h" | \ $CUT -d " " -f 3` pl_patch=`$GREP "define PILOT_LINK_PATCH" "$pilot_incl/pi-version.h" | \ $CUT -d " " -f 3 | $SED -e 's/"//g'` AC_MSG_RESULT([pi-version indicates $pl_version.$pl_major.$pl_minor]) dnl *** check for pilot-link 0.12.5 and up if test $pl_version -eq 0 ; then if test $pl_major -ge 12 ; then if test $pl_minor -ge 5 ; then pl_version_check_done=yes; AC_MSG_RESULT([pilot-link has USB]) AC_MSG_RESULT([pilot-link has card support (>12.0)]) AC_MSG_RESULT([pilot-link has Calendar support (>12.5)]) fi fi fi if test $pl_version_check_done != yes; then AC_MSG_ERROR([pilot-link version >= 0.12.5 is required]) fi dnl restore variables after pilot-link testing CFLAGS="$save_CFLAGS" LIBS="$save_LIBS" dnl ****************************** dnl * End pilot-links tests dnl ****************************** dnl Check for gnu crypt lib necessary for Keyring crypto_lib="none" AM_PATH_LIBGCRYPT AC_CHECK_LIB([gcrypt], [gcry_md_hash_buffer], have_libgcrypt=1, have_libgcrypt=0) AC_ARG_WITH(openssl, AC_HELP_STRING([--with-openssl],[Use OpenSSL instead of GNU libgcrypt]), have_libgcrypt="0") if test "$have_libgcrypt" = "0"; then dnl Check for OpenSSL libs necessary for Keyring AC_CHECK_LIB([crypto], [SSLeay_version], have_libcrypto=1, have_libcrypto=0) else AC_DEFINE(HAVE_LIBGCRYPT, 1, [ Use GNU libgcrypt instead of OpenSSL ]) crypto_lib="libgcrypt" fi dnl ############################################################################ dnl Check for headers needed dnl ############################################################################ dnl 10/2/06: only headers used for true code portability right now are locale.h, langinfo.h AC_CHECK_HEADERS([fcntl.h langinfo.h locale.h stdlib.h string.h sys/socket.h sys/time.h sys/wait.h unistd.h utime.h]) # Headers required for plugins AC_CHECK_HEADERS(netinet/in.h, have_netinet=1, have_netinet=0) if test "$plugin_support" = "yes" -a "$have_netinet" = "0"; then plugin_support = "no" fi # jpilot-dial required headers AC_CHECK_HEADERS(termio.h, have_termio=1, have_termio=0) dnl Headers needed to build keyring AC_CHECK_HEADERS(openssl/md5.h, have_openssl_md5=1, have_openssl_md5=0) AC_CHECK_HEADERS(openssl/des.h, have_openssl_des=1, have_openssl_des=0) dnl ############################################################################ dnl Check for typedefs and structures needed dnl ############################################################################ dnl Checks for typedefs, structures, and compiler characteristics. AC_C_INLINE AC_TYPE_PID_T AC_TYPE_SIZE_T AC_TYPE_UID_T AC_HEADER_TIME dnl 10/2/06: This is obsolescent on most systems now as the tm struct is in time.h AC_STRUCT_TM dnl ****************************** dnl Check whether nl_langinfo can provide start of week to GTK dnl ****************************** # _NL_TIME_FIRST_WEEKDAY is an enum and not a define AC_MSG_CHECKING([for _NL_TIME_FIRST_WEEKDAY]) AC_TRY_LINK([#include ], [ char c; c = *((unsigned char *) nl_langinfo(_NL_TIME_FIRST_WEEKDAY)); ], nl_ok=yes, nl_ok=no) AC_MSG_RESULT($nl_ok) if test "$nl_ok" = "yes"; then AC_DEFINE([HAVE__NL_TIME_FIRST_WEEKDAY], [1], [Define if _NL_TIME_FIRST_WEEKDAY is available]) fi dnl ############################################################################ dnl Check for individual functions needed dnl ############################################################################ dnl Checks for library functions. AC_TYPE_SIGNAL AC_FUNC_STRCOLL #AC_FUNC_MALLOC #AC_FUNC_REALLOC AC_CHECK_FUNCS(setenv) AC_ARG_WITH(with_flock, AC_HELP_STRING([--with-flock],[Substitute flock instead of fnctl for file locking (for NFS)]), with_flock=yes) if test "x$with_flock" = "xyes"; then AC_CHECK_HEADERS(sys/file.h, [AC_DEFINE(USE_FLOCK, 1, [ Using flock instead of fnctl ]) AC_MSG_RESULT(Using flock instead of fnctl)], [AC_MSG_FAILURE([--with-flock was given, but sys/file.h was not found])]) fi dnl ############################################################################ dnl Figure which programs can be built on this particular host with the dnl libraries available. dnl ############################################################################ dnl * Work out which plugins to make make_keyring=no if test "$have_libgcrypt" = "1"; then make_keyring=yes fi if test "$have_libcrypto" = "1"; then if test "$have_openssl_md5" = "1" -a "$have_openssl_des" = "1"; then make_keyring=yes OPENSSL_LIBS=-lcrypto crypto_lib="OpenSSL" fi fi AC_SUBST(OPENSSL_LIBS) if test "$make_keyring" != "yes"; then AC_MSG_WARN([OpenSSL library not found, Keyring will not be built]) fi keyring_plugin=no; if test "x$make_keyring" = "xyes" -a "x$plugin_support" = "xyes"; then keyring_plugin=yes; fi AM_CONDITIONAL(MAKE_KEYRING, test "x$keyring_plugin" = "xyes") AM_CONDITIONAL(MAKE_EXPENSE, test "x$plugin_support" = "xyes") AM_CONDITIONAL(MAKE_SYNCTIME, test "x$plugin_support" = "xyes") dnl * Work out whether dialer can be built dnl check operating system for jpilot-dialer dialer=no if test "$have_termio" = "1"; then case "${build_os}" in linux-gnu) dialer=yes ;; *) AC_MSG_WARN( [Operating system ${build_os} not supported by jpilot-dialer]) ; dialer=no ;; esac fi AM_CONDITIONAL(JPILOT_DIALER, test "x$dialer" = "xyes") dnl ############################################################################ dnl Miscellaneous definitions dnl ############################################################################ dnl Define BASE_DIR in which is passed on to users in Jpilot help window if test "x$prefix" = "xNONE"; then AC_DEFINE_UNQUOTED(BASE_DIR, "$ac_default_prefix", [ BASE_DIR ]) else AC_DEFINE_UNQUOTED(BASE_DIR, "$prefix", [ BASE_DIR ]) fi dnl For Irix Systems abilib=$ABILIB if test "x$abilib" = "x"; then AC_DEFINE_UNQUOTED(ABILIB, "lib", [ ABILIB ]) else AC_DEFINE_UNQUOTED(ABILIB, "$abilib", [ ABILIB ]) fi AC_SUBST(ABILIB) dnl ############################################################################ dnl Setup complete. Create the specified files dnl ############################################################################ AC_CONFIG_FILES([Makefile Expense/Makefile SyncTime/Makefile KeyRing/Makefile dialer/Makefile m4/Makefile po/Makefile.in icons/Makefile docs/Makefile empty/Makefile jpilot.spec SlackBuild ]) AC_OUTPUT dnl Make SlackBuild executable chmod +x SlackBuild dnl ****************************** dnl Configuration messages dnl ****************************** AC_MSG_RESULT() AC_MSG_RESULT(This package is configured for the following features:) AC_MSG_RESULT(------------------------------------------------------) AC_MSG_RESULT(Compiling with plugin support.......... $enable_plugins) AC_MSG_RESULT(Compiling with private record support.. $enable_private) AC_MSG_RESULT(Compiling with Datebk support.......... $enable_datebk) AC_MSG_RESULT(Compiling with Mañana support.......... $enable_manana) AC_MSG_RESULT(Compiling with Prometheon support...... $enable_prometheon) AC_MSG_RESULT(Compiling Expense plugin............... $plugin_support) AC_MSG_RESULT(Compiling SyncTime plugin.............. $plugin_support) AC_MSG_RESULT(Compiling KeyRing plugin............... $keyring_plugin) AC_MSG_RESULT(Compiling dialer add-on................ $dialer) AC_MSG_RESULT(Cryptographic library.................. $crypto_lib) AC_MSG_RESULT(GTK-2 support.......................... yes) AC_MSG_RESULT(Stock buttons (icons on buttons in GUI) $enable_stock_buttons) AC_MSG_RESULT(NLS support (foreign languages)........ $USE_NLS) AC_MSG_RESULT(Compiler Options....................... $CFLAGS) AC_MSG_RESULT(Prefix directory....................... $prefix) AC_MSG_RESULT(pilot-link headers..................... $pilot_incl) AC_MSG_RESULT(USB support enabled.................... yes) AC_MSG_RESULT(pilot-link version found............... $pl_version.$pl_major.$pl_minor$pl_patch) AC_MSG_RESULT() AC_MSG_RESULT(Now type make to compile) AC_MSG_RESULT() jpilot-1.8.1.2/otherconv.c0000644000175000017500000002177611547063267012306 00000000000000/* $Id: otherconv.c,v 1.47 2011-04-06 12:43:45 rousseau Exp $ */ /******************************************************************************* * otherconv.c * A module of J-Pilot http://jpilot.org * * Copyright (C) 2004 by Amit Aronovitch * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /* * General charset conversion library (using gconv) * Convert Palm <-> Unix: * Palm : Any - according to the "other-pda-charset" setup option. * Unix : UTF-8 */ /********************************* Includes ***********************************/ #include "config.h" #include #include #include #include #include #include "otherconv.h" #include "i18n.h" #include "prefs.h" #include "log.h" /********************************* Constants **********************************/ #define HOST_CS "UTF-8" #define min(a,b) (((a) < (b)) ? (a) : (b)) /* You can't do #ifndef __FUNCTION__ */ #if !defined(__GNUC__) && !defined(__IBMC__) #define __FUNCTION__ "" #endif #define OC_FREE_ICONV(conv) oc_free_iconv(__FUNCTION__, conv,#conv) /* #define OTHERCONV_DEBUG */ /******************************* Global vars **********************************/ static GIConv glob_topda = NULL; static GIConv glob_frompda = NULL; /****************************** Main Code *************************************/ /* * strnlen is not ANSI. * To avoid conflicting declarations, it is reimplemented as a thin * inline function over the library function strlen */ static inline size_t oc_strnlen(const char *s, size_t maxlen) { return min(strlen(s), maxlen); } static void oc_free_iconv(const char *funcname, GIConv conv, char *convname) { if (conv != NULL) { if (g_iconv_close(conv) != 0) { jp_logf(JP_LOG_WARN, _("%s: error exit from g_iconv_close(%s)\n"), funcname,convname); } } } /* * Convert char_set integer code to iconv charset text string */ static const char *char_set_to_text(int char_set) { switch (char_set) { case CHAR_SET_1250_UTF: return "CP1250"; case CHAR_SET_1253_UTF: return "CP1253"; case CHAR_SET_ISO8859_2_UTF: return "ISO8859-2"; case CHAR_SET_KOI8_R_UTF: return "KOI8-R"; case CHAR_SET_1251_UTF: return "CP1251"; case CHAR_SET_GBK_UTF: return "GBK"; case CHAR_SET_BIG5_UTF: return "BIG-5"; case CHAR_SET_SJIS_UTF: return "SJIS"; case CHAR_SET_1255_UTF: return "CP1255"; case CHAR_SET_949_UTF: return "CP949"; case CHAR_SET_1252_UTF: default: return "CP1252"; } } /* * Module initialization function * Call this before any conversion routine. * Can also be used if you want to reread the 'charset' option * * Returns 0 if OK, -1 if iconv could not be initialized * (probably because of bad charset string) */ int otherconv_init(void) { long char_set; get_pref(PREF_CHAR_SET, &char_set, NULL); /* (re)open the "to" iconv */ OC_FREE_ICONV(glob_topda); glob_topda = g_iconv_open(char_set_to_text(char_set), HOST_CS); if (glob_topda == (GIConv)(-1)) return EXIT_FAILURE; /* (re)open the "from" iconv */ OC_FREE_ICONV(glob_frompda); glob_frompda = g_iconv_open(HOST_CS, char_set_to_text(char_set)); if (glob_frompda == (GIConv)(-1)) { OC_FREE_ICONV(glob_topda); return EXIT_FAILURE; } return EXIT_SUCCESS; } /* * Module finalization function * closes the iconvs */ void otherconv_free(void) { OC_FREE_ICONV(glob_topda); OC_FREE_ICONV(glob_frompda); } /* * Conversion to UTF using g_convert_with_iconv * A new buffer is now allocated and the old one remains unchanged */ char *other_to_UTF(const char *buf, int buf_len) { size_t rc; char *outbuf; gsize bytes_read; GError *err = NULL; size_t str_len; #ifdef OTHERCONV_DEBUG jp_logf(JP_LOG_DEBUG, "%s:%s reset iconv state...\n", __FILE__, __FUNCTION__); #endif rc = g_iconv(glob_frompda, NULL, NULL, NULL, NULL); #ifdef OTHERCONV_DEBUG jp_logf(JP_LOG_DEBUG, "%s:%s converting [%s]\n", __FILE__, __FUNCTION__, buf); #endif if (buf_len == -1) { str_len = -1; } else { str_len = oc_strnlen(buf, buf_len-1); // -1 leaves room for \0 terminator } outbuf = (char *)g_convert_with_iconv((gchar *)buf, str_len, glob_frompda, &bytes_read, NULL, &err); if (err != NULL) { char c; char *head, *tail; int outbuf_len; char *tmp_buf = (char *)buf; static int call_depth = 0; printf("ERROR HAPPENED\n"); if (0 == call_depth) jp_logf(JP_LOG_WARN, _("%s:%s g_convert_with_iconv error: %s, buff: %s\n"), __FILE__, __FUNCTION__, err ? err->message : _("last char truncated"), buf); if (err != NULL) g_error_free(err); else g_free(outbuf); if (buf_len == -1) { buf_len = strlen(buf); } /* convert the head, skip the problematic char, convert the tail */ c = tmp_buf[bytes_read]; tmp_buf[bytes_read] = '\0'; head = g_convert_with_iconv(tmp_buf, oc_strnlen(tmp_buf, buf_len), glob_frompda, &bytes_read, NULL, NULL); tmp_buf[bytes_read] = c; call_depth++; tail = other_to_UTF(tmp_buf + bytes_read +1, buf_len - bytes_read - 1); call_depth--; outbuf_len = strlen(head) +4 + strlen(tail)+1; outbuf = g_malloc(outbuf_len); g_snprintf(outbuf, outbuf_len, "%s\\%02X%s", head, (unsigned char)c, tail); g_free(head); g_free(tail); } #ifdef OTHERCONV_DEBUG jp_logf(JP_LOG_DEBUG, "%s:%s converted to [%s]\n", __FILE__, __FUNCTION__, outbuf); #endif /* * Note: outbuf was allocated by glib, so should be freed with g_free * To be 100% safe, I should have done strncpy to a new malloc-allocated * string. (at least under an 'if (!g_mem_is_system_malloc())' test) * * However, unless you replace the default GMemVTable, freeing with C free * should be fine so I decided this is not worth the overhead. * -- Amit Aronovitch */ return outbuf; } /* * Conversion to pda encoding using g_iconv */ void UTF_to_other(char *const buf, int buf_len) { gsize inleft,outleft; gchar *inptr, *outptr; size_t rc; char *errstr = NULL; char buf_out[1000]; char *buf_out_ptr = NULL; int failed = FALSE; #ifdef OTHERCONV_DEBUG jp_logf(JP_LOG_DEBUG, "%s:%s reset iconv state...\n", __FILE__, __FUNCTION__); #endif rc = g_iconv(glob_topda, NULL, NULL, NULL, NULL); #ifdef OTHERCONV_DEBUG jp_logf(JP_LOG_DEBUG, "%s:%s converting [%s]\n", __FILE__, __FUNCTION__, buf); #endif inleft = oc_strnlen(buf, buf_len); outleft = buf_len-1; inptr = buf; /* Most strings can be converted without recourse to malloc */ if (buf_len > sizeof(buf_out)) { buf_out_ptr = malloc(buf_len); if (NULL == buf_out_ptr) { jp_logf(JP_LOG_WARN, _("UTF_to_other: %s\n"), _("Out of memory")); return; } outptr = buf_out_ptr; } else { outptr = buf_out; } rc = g_iconv(glob_topda, &inptr, &inleft, &outptr, &outleft); *outptr = 0; /* NULL terminate whatever fraction was converted */ if ((size_t)(-1) == rc) { switch (errno) { case EILSEQ: errstr = _("iconv: unconvertible sequence at place %d in \'%s\'\n"); failed = TRUE; break; case EINVAL: errstr = _("iconv: incomplete UTF-8 sequence at place %d in \'%s\'\n"); break; case E2BIG: errstr = _("iconv: buffer filled. stopped at place %d in \'%s\'\n"); break; default: errstr = _("iconv: unexpected error at place %d in \'%s\'\n"); } } if (buf_out_ptr) { g_strlcpy(buf, buf_out_ptr, buf_len); free(buf_out_ptr); } else { g_strlcpy(buf, buf_out, buf_len); } if ((size_t)(-1) == rc) jp_logf(JP_LOG_WARN, errstr, inptr - buf, buf); if (failed) { /* convert the end of the string */ int l = inptr - buf; buf[l] = '?'; UTF_to_other(inptr+1, buf_len-l-1); memmove(buf+l+1, inptr+1, buf_len-l-1); } #ifdef OTHERCONV_DEBUG jp_logf(JP_LOG_DEBUG, "%s:%s converted to [%s]\n", __FILE__, __FUNCTION__, buf); #endif } jpilot-1.8.1.2/intltool-extract.in0000644000175000017500000000000011702305111013724 00000000000000jpilot-1.8.1.2/calendar.h0000644000175000017500000000521111365051715012030 00000000000000/* $Id: calendar.h,v 1.5 2010-04-21 05:56:40 rousseau Exp $ */ /******************************************************************************* * calendar.h * A module of J-Pilot http://jpilot.org * * Copyright (C) 1999-2010 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef __CALENDAR_H__ #define __CALENDAR_H__ #include #include #include #include "utils.h" /* Copy AppInfo data structures */ int copy_appointment_ai_to_calendar_ai(const struct AppointmentAppInfo *aai, struct CalendarAppInfo *cai); /* Copy AppInfo data structures */ int copy_calendar_ai_to_appointment_ai(const struct CalendarAppInfo *cai, struct AppointmentAppInfo *aai); int copy_appointment_to_calendarEvent(const struct Appointment *a, struct CalendarEvent *cale); int copy_calendarEvent_to_appointment(const struct CalendarEvent *cale, struct Appointment *a); int copy_appointments_to_calendarEvents(AppointmentList *al, CalendarEventList **cel); int copy_calendarEvents_to_appointments(CalendarEventList *cel, AppointmentList **al); void free_CalendarEventList(CalendarEventList **cel); int get_calendar_app_info(struct CalendarAppInfo *cai); int calendar_sort(CalendarEventList **cel, int (*compare_func)(const void*, const void*)); int get_days_calendar_events(CalendarEventList **calendar_event_list, struct tm *now, int category, int *total_records); /* * If Null is passed in for date, then all appointments will be returned * modified, deleted and private, 0 for no, 1 for yes, 2 for use prefs */ int get_days_calendar_events2(CalendarEventList **calendar_event_list, struct tm *now, int modified, int deleted, int privates, int category, int *total_records); int pc_calendar_write(struct CalendarEvent *cale, PCRecType rt, unsigned char attrib, unsigned int *unique_id); #endif jpilot-1.8.1.2/search_gui.c0000644000175000017500000005151111454307531012366 00000000000000/* $Id: search_gui.c,v 1.54 2010-08-23 05:11:17 rikster5 Exp $ */ /******************************************************************************* * search_gui.c * A module of J-Pilot http://jpilot.org * * Copyright (C) 1999-2002 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /********************************* Includes ***********************************/ #include "config.h" #include #include #include #include #include #include #include #include #include #include "i18n.h" #include "utils.h" #include "prefs.h" #include "log.h" #include "datebook.h" #include "calendar.h" #include "address.h" #include "todo.h" #include "memo.h" #ifdef ENABLE_PLUGINS # include "plugins.h" #endif /********************************* Constants **********************************/ #define SEARCH_MAX_COLUMN_LEN 80 /******************************* Global vars **********************************/ static struct search_record *search_rl = NULL; static GtkWidget *case_sense_checkbox; static GtkWidget *window = NULL; static GtkWidget *entry = NULL; static GtkAccelGroup *accel_group = NULL; static int clist_row_selected; /****************************** Prototypes ************************************/ static void cb_clist_selection(GtkWidget *clist, gint row, gint column, GdkEventButton *event, gpointer data); /****************************** Main Code *************************************/ static int datebook_search_sort_compare(const void *v1, const void *v2) { CalendarEventList **cel1, **cel2; struct CalendarEvent *ce1, *ce2; time_t time1, time2; cel1=(CalendarEventList **)v1; cel2=(CalendarEventList **)v2; ce1=&((*cel1)->mcale.cale); ce2=&((*cel2)->mcale.cale); time1 = mktime(&(ce1->begin)); time2 = mktime(&(ce2->begin)); return(time2 - time1); } static int search_datebook(const char *needle, GtkWidget *clist) { gchar *empty_line[] = { "","" }; CalendarEventList *ce_list; CalendarEventList *temp_cel; int found, count; int case_sense; char str[202]; char str2[SEARCH_MAX_COLUMN_LEN+2]; char date_str[52]; char datef[52]; const char *svalue1; struct search_record *new_sr; long datebook_version=0; get_pref(PREF_DATEBOOK_VERSION, &datebook_version, NULL); /* Search Appointments */ ce_list = NULL; get_days_calendar_events2(&ce_list, NULL, 2, 2, 2, CATEGORY_ALL, NULL); if (ce_list==NULL) { return 0; } /* Sort returned results according to date rather than just HH:MM */ calendar_sort(&ce_list, datebook_search_sort_compare); count = 0; case_sense = GTK_TOGGLE_BUTTON(case_sense_checkbox)->active; for (temp_cel = ce_list; temp_cel; temp_cel=temp_cel->next) { found = 0; if ( (temp_cel->mcale.cale.description) && (temp_cel->mcale.cale.description[0]) ) { if (jp_strstr(temp_cel->mcale.cale.description, needle, case_sense)) { found = 1; } } if ( !found && (temp_cel->mcale.cale.note) && (temp_cel->mcale.cale.note[0]) ) { if (jp_strstr(temp_cel->mcale.cale.note, needle, case_sense )) { found = 2; } } if (datebook_version) { if ( !found && (temp_cel->mcale.cale.location) && (temp_cel->mcale.cale.location[0]) ) { if (jp_strstr(temp_cel->mcale.cale.location, needle, case_sense )) { found = 3; } } } if (found) { gtk_clist_prepend(GTK_CLIST(clist), empty_line); if (datebook_version==0) { gtk_clist_set_text(GTK_CLIST(clist), 0, 0, _("datebook")); } else { gtk_clist_set_text(GTK_CLIST(clist), 0, 0, _("calendar")); } /* get the date */ get_pref(PREF_SHORTDATE, NULL, &svalue1); if (svalue1 == NULL) { strcpy(datef, "%x"); } else { strncpy(datef, svalue1, sizeof(datef)); } strftime(date_str, sizeof(date_str), datef, &temp_cel->mcale.cale.begin); date_str[sizeof(date_str)-1]='\0'; if (found == 1) { g_snprintf(str, sizeof(str), "%s\t%s", date_str, temp_cel->mcale.cale.description); } else if (found == 2) { g_snprintf(str, sizeof(str), "%s\t%s", date_str, temp_cel->mcale.cale.note); } else { g_snprintf(str, sizeof(str), "%s\t%s", date_str, temp_cel->mcale.cale.location); } lstrncpy_remove_cr_lfs(str2, str, SEARCH_MAX_COLUMN_LEN); gtk_clist_set_text(GTK_CLIST(clist), 0, 1, str2); /* Add to the search list */ new_sr = malloc(sizeof(struct search_record)); new_sr->app_type = DATEBOOK; new_sr->plugin_flag = 0; new_sr->unique_id = temp_cel->mcale.unique_id; new_sr->next = search_rl; search_rl = new_sr; gtk_clist_set_row_data(GTK_CLIST(clist), 0, new_sr); count++; } } jp_logf(JP_LOG_DEBUG, "calling free_CalendarEventList\n"); free_CalendarEventList(&ce_list); return count; } static int search_address_or_contacts(const char *needle, GtkWidget *clist) { gchar *empty_line[] = { "","" }; char str2[SEARCH_MAX_COLUMN_LEN+2]; AddressList *addr_list; ContactList *cont_list; ContactList *temp_cl; struct search_record *new_sr; int i, count; int case_sense; long address_version=0; get_pref(PREF_ADDRESS_VERSION, &address_version, NULL); /* Get addresses and move to a contacts structure, or get contacts directly */ if (address_version==0) { addr_list = NULL; get_addresses2(&addr_list, SORT_ASCENDING, 2, 2, 2, CATEGORY_ALL); copy_addresses_to_contacts(addr_list, &cont_list); free_AddressList(&addr_list); } else { cont_list = NULL; get_contacts2(&cont_list, SORT_ASCENDING, 2, 2, 2, CATEGORY_ALL); } if (cont_list==NULL) { return 0; } count = 0; case_sense = GTK_TOGGLE_BUTTON(case_sense_checkbox)->active; for (temp_cl = cont_list; temp_cl; temp_cl=temp_cl->next) { for (i=0; imcont.cont.entry[i]) { if ( jp_strstr(temp_cl->mcont.cont.entry[i], needle, case_sense) ) { gtk_clist_prepend(GTK_CLIST(clist), empty_line); if (address_version==0) { gtk_clist_set_text(GTK_CLIST(clist), 0, 0, _("address")); } else { gtk_clist_set_text(GTK_CLIST(clist), 0, 0, _("contact")); } lstrncpy_remove_cr_lfs(str2, temp_cl->mcont.cont.entry[i], SEARCH_MAX_COLUMN_LEN); gtk_clist_set_text(GTK_CLIST(clist), 0, 1, str2); /* Add to the search list */ new_sr = malloc(sizeof(struct search_record)); new_sr->app_type = ADDRESS; new_sr->plugin_flag = 0; new_sr->unique_id = temp_cl->mcont.unique_id; new_sr->next = search_rl; search_rl = new_sr; gtk_clist_set_row_data(GTK_CLIST(clist), 0, new_sr); count++; break; } } } } jp_logf(JP_LOG_DEBUG, "calling free_ContactList\n"); free_ContactList(&cont_list); return count; } static int search_todo(const char *needle, GtkWidget *clist) { gchar *empty_line[] = { "","" }; char str2[SEARCH_MAX_COLUMN_LEN+2]; ToDoList *todo_list; ToDoList *temp_todo; struct search_record *new_sr; int found, count; int case_sense; /* Search Appointments */ todo_list = NULL; get_todos2(&todo_list, SORT_DESCENDING, 2, 2, 2, 1, CATEGORY_ALL); if (todo_list==NULL) { return 0; } count = 0; case_sense = GTK_TOGGLE_BUTTON(case_sense_checkbox)->active; for (temp_todo = todo_list; temp_todo; temp_todo=temp_todo->next) { found = 0; if ( (temp_todo->mtodo.todo.description) && (temp_todo->mtodo.todo.description[0]) ) { if ( jp_strstr(temp_todo->mtodo.todo.description, needle, case_sense) ) { found = 1; } } if ( !found && (temp_todo->mtodo.todo.note) && (temp_todo->mtodo.todo.note[0]) ) { if ( jp_strstr(temp_todo->mtodo.todo.note, needle, case_sense) ) { found = 2; } } if (found) { gtk_clist_prepend(GTK_CLIST(clist), empty_line); gtk_clist_set_text(GTK_CLIST(clist), 0, 0, _("todo")); if (found == 1) { lstrncpy_remove_cr_lfs(str2, temp_todo->mtodo.todo.description, SEARCH_MAX_COLUMN_LEN); } else { lstrncpy_remove_cr_lfs(str2, temp_todo->mtodo.todo.note, SEARCH_MAX_COLUMN_LEN); } gtk_clist_set_text(GTK_CLIST(clist), 0, 1, str2); /* Add to the search list */ new_sr = malloc(sizeof(struct search_record)); new_sr->app_type = TODO; new_sr->plugin_flag = 0; new_sr->unique_id = temp_todo->mtodo.unique_id; new_sr->next = search_rl; search_rl = new_sr; gtk_clist_set_row_data(GTK_CLIST(clist), 0, new_sr); count++; } } jp_logf(JP_LOG_DEBUG, "calling free_ToDoList\n"); free_ToDoList(&todo_list); return count; } static int search_memo(const char *needle, GtkWidget *clist) { gchar *empty_line[] = { "","" }; char str2[SEARCH_MAX_COLUMN_LEN+2]; MemoList *memo_list; MemoList *temp_memo; struct search_record *new_sr; int count; int case_sense; long memo_version=0; get_pref(PREF_MEMO_VERSION, &memo_version, NULL); /* Search Memos */ memo_list = NULL; get_memos2(&memo_list, SORT_DESCENDING, 2, 2, 2, CATEGORY_ALL); if (memo_list==NULL) { return 0; } count = 0; case_sense = GTK_TOGGLE_BUTTON(case_sense_checkbox)->active; for (temp_memo = memo_list; temp_memo; temp_memo=temp_memo->next) { if (jp_strstr(temp_memo->mmemo.memo.text, needle, case_sense) ) { gtk_clist_prepend(GTK_CLIST(clist), empty_line); if (memo_version==0) { gtk_clist_set_text(GTK_CLIST(clist), 0, 0, _("memo")); } else { gtk_clist_set_text(GTK_CLIST(clist), 0, 0, _("memos")); } if (temp_memo->mmemo.memo.text) { lstrncpy_remove_cr_lfs(str2, temp_memo->mmemo.memo.text, SEARCH_MAX_COLUMN_LEN); gtk_clist_set_text(GTK_CLIST(clist), 0, 1, str2); } /* Add to the search list */ new_sr = malloc(sizeof(struct search_record)); new_sr->app_type = MEMO; new_sr->plugin_flag = 0; new_sr->unique_id = temp_memo->mmemo.unique_id; new_sr->next = search_rl; search_rl = new_sr; gtk_clist_set_row_data(GTK_CLIST(clist), 0, new_sr); count++; } } jp_logf(JP_LOG_DEBUG, "calling free_MemoList\n"); free_MemoList(&memo_list); return count; } #ifdef ENABLE_PLUGINS static int search_plugins(const char *needle, const GtkWidget *clist) { GList *plugin_list, *temp_list; gchar *empty_line[] = { "","" }; char str2[SEARCH_MAX_COLUMN_LEN+2]; int found; int count; int case_sense; struct search_result *sr, *temp_sr; struct plugin_s *plugin; struct search_record *new_sr; plugin_list = NULL; plugin_list = get_plugin_list(); found = 0; case_sense = GTK_TOGGLE_BUTTON(case_sense_checkbox)->active; count = 0; for (temp_list = plugin_list; temp_list; temp_list = temp_list->next) { plugin = (struct plugin_s *)temp_list->data; if (plugin) { sr = NULL; if (plugin->plugin_search) { if (plugin->plugin_search(needle, case_sense, &sr) > 0) { for (temp_sr=sr; temp_sr; temp_sr=temp_sr->next) { gtk_clist_prepend(GTK_CLIST(clist), empty_line); if (plugin->menu_name) { gtk_clist_set_text(GTK_CLIST(clist), 0, 0, plugin->menu_name); } else { gtk_clist_set_text(GTK_CLIST(clist), 0, 0, _("plugin ?")); } if (temp_sr->line) { lstrncpy_remove_cr_lfs(str2, temp_sr->line, SEARCH_MAX_COLUMN_LEN); gtk_clist_set_text(GTK_CLIST(clist), 0, 1, str2); } /* Add to the search list */ new_sr = malloc(sizeof(struct search_record)); new_sr->app_type = plugin->number; new_sr->plugin_flag = 1; new_sr->unique_id = temp_sr->unique_id; new_sr->next = search_rl; search_rl = new_sr; gtk_clist_set_row_data(GTK_CLIST(clist), 0, new_sr); count++; } free_search_result(&sr); } } } } return count; } #endif static gboolean cb_destroy(GtkWidget *widget) { if (search_rl) { free_search_record_list(&search_rl); search_rl = NULL; } window = NULL; return FALSE; } static void cb_quit(GtkWidget *widget, gpointer data) { gtk_widget_destroy(data); } static void cb_entry(GtkWidget *widget, gpointer data) { gchar *empty_line[] = { "","" }; GtkWidget *clist; const char *entry_text; int count = 0; jp_logf(JP_LOG_DEBUG, "enter cb_entry\n"); entry_text = gtk_entry_get_text(GTK_ENTRY(widget)); if (!entry_text || !strlen(entry_text)) { return; } jp_logf(JP_LOG_DEBUG, "entry text = %s\n", entry_text); clist = data; gtk_clist_clear(GTK_CLIST(clist)); count += search_address_or_contacts(entry_text, clist); count += search_todo(entry_text, clist); count += search_memo(entry_text, clist); #ifdef ENABLE_PLUGINS count += search_plugins(entry_text, clist); #endif /* sort the results */ gtk_clist_set_sort_column(GTK_CLIST(clist), 1); gtk_clist_sort(GTK_CLIST(clist)); /* the datebook events are already sorted by date */ count += search_datebook(entry_text, clist); if (count == 0) { gtk_clist_prepend(GTK_CLIST(clist), empty_line); gtk_clist_set_text(GTK_CLIST(clist), 0, 1, _("No records found")); } /* Highlight the first row in the list of returned items. * This does NOT cause the main window to jump to the selected record. */ clist_select_row(GTK_CLIST(clist), 0, 0); /* select the first record found */ cb_clist_selection(clist, 0, 0, (GdkEventButton *)1, NULL); return; } static void cb_search(GtkWidget *widget, gpointer data) { cb_entry(entry, data); } static void cb_clist_selection(GtkWidget *clist, gint row, gint column, GdkEventButton *event, gpointer data) { struct search_record *sr; clist_row_selected = row; if (!event) return; sr = gtk_clist_get_row_data(GTK_CLIST(clist), row); if (sr == NULL) { return; } switch (sr->app_type) { case DATEBOOK: glob_find_id = sr->unique_id; cb_app_button(NULL, GINT_TO_POINTER(DATEBOOK)); break; case ADDRESS: glob_find_id = sr->unique_id; cb_app_button(NULL, GINT_TO_POINTER(ADDRESS)); break; case TODO: glob_find_id = sr->unique_id; cb_app_button(NULL, GINT_TO_POINTER(TODO)); break; case MEMO: glob_find_id = sr->unique_id; cb_app_button(NULL, GINT_TO_POINTER(MEMO)); break; default: #ifdef ENABLE_PLUGINS /* Not one of the main 4 apps so it must be a plugin */ jp_logf(JP_LOG_DEBUG, "choosing search result from plugin %d\n", sr->app_type); call_plugin_gui(sr->app_type, sr->unique_id); #endif break; } } static gboolean cb_key_pressed_in_clist(GtkWidget *widget, GdkEventKey *event, gpointer data) { if (event->keyval == GDK_Return) { gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), "key_press_event"); cb_clist_selection(widget, clist_row_selected, 0, (GdkEventButton *)1, NULL); return TRUE; } return FALSE; } void cb_search_gui(GtkWidget *widget, gpointer data) { GtkWidget *scrolled_window; GtkWidget *clist; GtkWidget *label; GtkWidget *button; GtkWidget *vbox, *hbox; char temp[256]; if (GTK_IS_WIDGET(window)) { /* Shift focus to existing window if called again and window is still alive. */ gtk_window_present(GTK_WINDOW(window)); gtk_widget_grab_focus(GTK_WIDGET(entry)); return; } if (search_rl) { free_search_record_list(&search_rl); search_rl = NULL; } window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size(GTK_WINDOW(window), 500, 300); g_snprintf(temp, sizeof(temp), "%s %s", PN, _("Search")); gtk_window_set_title(GTK_WINDOW(window), temp); gtk_signal_connect(GTK_OBJECT(window), "destroy", GTK_SIGNAL_FUNC(cb_destroy), window); accel_group = gtk_accel_group_new(); gtk_window_add_accel_group(GTK_WINDOW(window), accel_group); vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(window), vbox); hbox = gtk_hbox_new(FALSE, 0); gtk_container_set_border_width(GTK_CONTAINER(hbox), 6); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); /* Search label */ label = gtk_label_new(_("Search for: ")); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); /* Search entry */ entry = gtk_entry_new(); gtk_box_pack_start(GTK_BOX(hbox), entry, TRUE, TRUE, 0); gtk_widget_grab_focus(GTK_WIDGET(entry)); /* Case Sensitive checkbox */ case_sense_checkbox = gtk_check_button_new_with_label(_("Case Sensitive")); gtk_box_pack_start(GTK_BOX(hbox), case_sense_checkbox, FALSE, FALSE, 0); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(case_sense_checkbox), FALSE); /* Scrolled window for search results */ scrolled_window = gtk_scrolled_window_new(NULL, NULL); gtk_container_set_border_width(GTK_CONTAINER(scrolled_window), 3); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start(GTK_BOX(vbox), scrolled_window, TRUE, TRUE, 0); clist = gtk_clist_new(2); gtk_signal_connect(GTK_OBJECT(clist), "select_row", GTK_SIGNAL_FUNC(cb_clist_selection), NULL); gtk_signal_connect(GTK_OBJECT(clist), "key_press_event", GTK_SIGNAL_FUNC(cb_key_pressed_in_clist), NULL); gtk_clist_set_shadow_type(GTK_CLIST(clist), SHADOW); gtk_clist_set_selection_mode(GTK_CLIST(clist), GTK_SELECTION_BROWSE); gtk_clist_set_column_auto_resize(GTK_CLIST(clist), 0, TRUE); gtk_clist_set_column_auto_resize(GTK_CLIST(clist), 1, TRUE); gtk_container_add(GTK_CONTAINER(scrolled_window), GTK_WIDGET(clist)); gtk_signal_connect(GTK_OBJECT(entry), "activate", GTK_SIGNAL_FUNC(cb_entry), clist); hbox = gtk_hbutton_box_new(); gtk_container_set_border_width(GTK_CONTAINER(hbox), 6); gtk_button_box_set_layout(GTK_BUTTON_BOX (hbox), GTK_BUTTONBOX_END); gtk_button_box_set_spacing(GTK_BUTTON_BOX(hbox), 6); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); /* Search button */ button = gtk_button_new_from_stock(GTK_STOCK_FIND); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_search), clist); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); /* clicking on "Case Sensitive" also starts a search */ gtk_signal_connect(GTK_OBJECT(case_sense_checkbox), "clicked", GTK_SIGNAL_FUNC(cb_search), clist); /* Done button */ button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_quit), window); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); gtk_widget_add_accelerator(button, "clicked", accel_group, GDK_Escape, 0, 0); gtk_widget_show_all(window); } jpilot-1.8.1.2/SlackBuild.in0000755000175000017500000000763111020260555012456 00000000000000#!/bin/bash # # First build with # ./configure --prefix=/usr; make; make install # PACKAGE=@PACKAGE@ VERSION=@VERSION@ ARCH=i386 RELEASE=1 # STARTDIR=`pwd` TMPDIR=`mktemp -d -t slackware.XXXXXX` || exit 1 # echo Created $TMPDIR mkdir $TMPDIR/install cp description-pak $TMPDIR/install/slack-desc # cd / tar cf - \ usr/bin/jpilot \ usr/bin/jpilot-dump \ usr/bin/jpilot-dial \ usr/bin/jpilot-sync \ usr/lib/jpilot/plugins/libexpense.la \ usr/lib/jpilot/plugins/libexpense.so \ usr/lib/jpilot/plugins/libexpense.so.0 \ usr/lib/jpilot/plugins/libexpense.so.0.0.0 \ usr/lib/jpilot/plugins/libsynctime.la \ usr/lib/jpilot/plugins/libsynctime.so \ usr/lib/jpilot/plugins/libsynctime.so.0 \ usr/lib/jpilot/plugins/libsynctime.so.0.0.0 \ usr/lib/jpilot/plugins/libkeyring.la \ usr/lib/jpilot/plugins/libkeyring.so \ usr/lib/jpilot/plugins/libkeyring.so.0 \ usr/lib/jpilot/plugins/libkeyring.so.0.0.0 \ usr/man/man1/jpilot.1 \ usr/man/man1/jpilot-dial.1 \ usr/man/man1/jpilot-sync.1 \ usr/doc/$PACKAGE-$VERSION/AUTHORS \ usr/doc/$PACKAGE-$VERSION/BUGS \ usr/doc/$PACKAGE-$VERSION/COPYING \ usr/doc/$PACKAGE-$VERSION/ChangeLog \ usr/doc/$PACKAGE-$VERSION/INSTALL \ usr/doc/$PACKAGE-$VERSION/README \ usr/doc/$PACKAGE-$VERSION/TODO \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-address.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-datebook.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-expense.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-install.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-memo.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-prefs-1.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-prefs-2.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-prefs-3.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-prefs-4.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-prefs-5.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-prefs-6.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-prefs-7.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-prefs-8.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-print.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-search.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-todo.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-toplogo.jpg \ usr/doc/$PACKAGE-$VERSION/manual/manual.html \ usr/doc/$PACKAGE-$VERSION/manual/plugin.html \ usr/doc/$PACKAGE-$VERSION/icons/README \ usr/doc/$PACKAGE-$VERSION/icons/jpilot-icon1.xpm \ usr/doc/$PACKAGE-$VERSION/icons/jpilot-icon2.xpm \ usr/doc/$PACKAGE-$VERSION/icons/jpilot-icon3.xpm \ usr/doc/$PACKAGE-$VERSION/icons/jpilot-icon4.xpm \ usr/share/$PACKAGE/AddressDB.pdb \ usr/share/$PACKAGE/DatebookDB.pdb \ usr/share/$PACKAGE/ExpenseDB.pdb \ usr/share/$PACKAGE/Memo32DB.pdb \ usr/share/$PACKAGE/MemoDB.pdb \ usr/share/$PACKAGE/ToDoDB.pdb \ usr/share/$PACKAGE/TasksDB-PTod.pdb \ usr/share/$PACKAGE/CalendarDB-PDat.pdb \ usr/share/$PACKAGE/ContactsDB-PAdd.pdb \ usr/share/$PACKAGE/MemosDB-PMem.pdb \ usr/share/$PACKAGE/jpilotrc.blue \ usr/share/$PACKAGE/jpilotrc.default \ usr/share/$PACKAGE/jpilotrc.green \ usr/share/$PACKAGE/jpilotrc.purple \ usr/share/$PACKAGE/jpilotrc.steel \ usr/share/locale/ca/LC_MESSAGES/jpilot.mo \ usr/share/locale/cs/LC_MESSAGES/jpilot.mo \ usr/share/locale/da/LC_MESSAGES/jpilot.mo \ usr/share/locale/de/LC_MESSAGES/jpilot.mo \ usr/share/locale/es/LC_MESSAGES/jpilot.mo \ usr/share/locale/fr/LC_MESSAGES/jpilot.mo \ usr/share/locale/it/LC_MESSAGES/jpilot.mo \ usr/share/locale/ja/LC_MESSAGES/jpilot.mo \ usr/share/locale/ko/LC_MESSAGES/jpilot.mo \ usr/share/locale/nl/LC_MESSAGES/jpilot.mo \ usr/share/locale/no/LC_MESSAGES/jpilot.mo \ usr/share/locale/ru/LC_MESSAGES/jpilot.mo \ usr/share/locale/rw/LC_MESSAGES/jpilot.mo \ usr/share/locale/sv/LC_MESSAGES/jpilot.mo \ usr/share/locale/tr/LC_MESSAGES/jpilot.mo \ usr/share/locale/uk/LC_MESSAGES/jpilot.mo \ usr/share/locale/vi/LC_MESSAGES/jpilot.mo \ usr/share/locale/zh_CN/LC_MESSAGES/jpilot.mo \ usr/share/locale/zh_TW/LC_MESSAGES/jpilot.mo \ | (cd $TMPDIR; tar xf -) # cd $TMPDIR makepkg -l n -c n $PACKAGE-$VERSION-$ARCH-$RELEASE.tgz cp $TMPDIR/*.tgz $STARTDIR/ rm -rf $TMPDIR jpilot-1.8.1.2/jpilot.h0000644000175000017500000000222411524574422011563 00000000000000/* $Id: jpilot.h,v 1.4 2010-10-12 03:25:38 rikster5 Exp $ */ /******************************************************************************* * jpilot.c * A module of J-Pilot http://jpilot.org * * Copyright (C) 1999-2003 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /* GUI cleanup routines for weekview and monthview windows */ void cb_monthview_quit(GtkWidget *widget, gpointer data); void cb_weekview_quit(GtkWidget *widget, gpointer data); jpilot-1.8.1.2/restore.h0000644000175000017500000000214511365051717011747 00000000000000/* $Id: restore.h,v 1.5 2010-03-29 05:44:31 rikster5 Exp $ */ /******************************************************************************* * restore.h * A module of J-Pilot http://jpilot.org * * Copyright (C) 2001-2002 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef _RESTORE_GUI_H__ #define _RESTORE_GUI_H__ int restore_gui(GtkWidget *main_window, int w, int h, int x, int y); #endif jpilot-1.8.1.2/AUTHORS0000644000175000017500000000617110445273766011176 00000000000000 * I have to give the first credit to my Wife who puts up with me programming stuff for free when there are more productive analog things to be doing ;-) * I am sure this list is not complete, so email me (judd@jpilot.org) if you should be in here. * configure scripts were initialy done by Victor Brilon * Japanesation patches were provided by Hiroshi Kawashima * Alex Varju sent me a patch for displaying due dates in todos, and also a fix for a small bug where I didn't sort them correctly. I had priority/date and date/priority reversed. * HvR sent me the jpilot-dump code. * Jason Day sent me some log patches for plugins to log correctly. Also sent me some patches for plugins using rc files. * Croation patches were provided by Dobrica Pavlinusic * Options to not sync conduits patch from Eric Yeo * David Frey gave me some postscript patches for using recode and latin1 char sets. * "Benjamin A. Kuperman" send a patch to sync.c for watchdog timeout on long copies, and a Makefile patch. * "Boris O. Gagarinov" helped with russian character set translations. * "Hiroshi MIURA" for i18n help on 0.99 and multibyte character patches. i18n of Expense and Keyring. * If you are not in this list and you should be then let me know. I want everyone to get a piece of the pie when I have the big jpilot IPO :) * Chris Bagwell for help in making plugins compile and work better on Solaris and help in printing postscript. * Colin Brough for making the postscript output for week and month calendar. * Chuck Mead for donating and hosting the jpilot.org domain at moongroup.com * "David A. Desrosiers" for hosting the jpilot.org domain at gnu-designs.com * Peter Valchev for OpenBSD patches * Ludovic Rousseau for printing and misc patches * Bill Fenner vCard and iCalendar export code * Wojciech Ziembla , Poland Palm : CP 1250, Unix : UTF-8 conversion * Rik Wehbring GTK2 patches for textviews and lots of other patches * Greek patches were provided by Panayotis Katsaloulis * Translation last done by (sorry if I left someone out): ca.po:"Last-Translator: Leopold Palomo " cs.po:"Last-Translator: Jiri Rubes " da.po:"Last-Translator: Keld Simonsen " de.po:"Last-Translator: Henrik Becker " es.po:"Last-Translator: Juan Diego " fr.po:"Last-Translator: Regis Rampnoux " it.po:"Last-Translator: Michele Mazzucchi " ja.po:"Last-Translator: Hiroshi Miura " nl.po:"Last-Translator: Arjan van de Ven " no.po:"Last-Translator: Ragnar Wisløff " sv.po:"Last-Translator: Erik Bgfors " Information about being a translator can be found at: http://www.iro.umontreal.ca/contrib/po/HTML/ jpilot-1.8.1.2/jpilotrc.purple0000644000175000017500000001224211134157557013174 00000000000000style "window" { fg[NORMAL] = { 1.0, 1.0, 1.0 } #forground color for window bg[NORMAL] = { 0.4, 0.2, 0.6 } #background color for window } style "fileselect" = "window" { text[NORMAL] = { 0.0, 0.0, 1.0 } # fg of file selection lists base[NORMAL] = { 0.85, 0.9, 1.0 } # bg of file selection lists } style "frame" { fg[NORMAL] = { 1.0, 1.0, 1.0 } #the text part of a frame bg[NORMAL] = { 1.0, 1.0, 1.0 } #the outline part of a frame } style "label" { fg[NORMAL] = { 1.0, 1.0, 1.0 } #foreground of a label and button text bg[NORMAL] = { 0.4, 0.2, 0.6 } #background for a label } style "label_high" { fg[NORMAL] = { 0.9, 0.9, 0.5 } } style "today" { base[NORMAL] = { 0.67, 0.49, .88 } } style "tooltips" { fg[NORMAL] = { 0.0, 0.0, 0.0 } bg[NORMAL] = { 1.0, 0.98, .84 } } style "button" { fg[PRELIGHT] = { 1.0, 1.0, 1.0 } #fg and bg when mouse-over bg[PRELIGHT] = { 0.5, 0.3, 0.7 } fg[ACTIVE] = { 1.0, 1.0, 1.0 } #fg and bg when button pressed bg[ACTIVE] = { 0.4, 0.2, 0.6 } #fg[NORMAL] = { 0.9, 1.0, 1.0 } bg[NORMAL] = { 0.4, 0.2, 0.6 } fg[INSENSITIVE] = { 0.0, 0.0, 0.0 } bg[INSENSITIVE] = { .545, 263, .863 } } style "button_app" { #These are for the 4 main app buttons fg[PRELIGHT] = { 1.0, 1.0, 1.0 } bg[PRELIGHT] = { 0.6, 0.4, 0.8 } } style "toggle_button" = "button" { #toggle buttons are the buttons that stay down or up when pressed } style "radio_button" { #these are the little square buttons fg[PRELIGHT] = { 1.0, 1.0, 1.0 } bg[PRELIGHT] = { 0.4, 0.2, 0.6 } fg[ACTIVE] = { 1.0, 1.0, 1.0 } bg[ACTIVE] = { 1.0, 1.0, 0.0 } #fg[NORMAL] = { 1.0, 1.0, 0.0 } fg[NORMAL] = { .17, .09, .25 } bg[NORMAL] = { 0.4, 0.2, 0.6 } } style "spin_button" { #these are the boxes with up/down arrows #fg[PRELIGHT] = { 1.0, 1.0, 1.0 } bg[PRELIGHT] = { 1.0, 1.0, 0.0 } fg[NORMAL] = { 0.0, 0.0, 0.0 } bg[NORMAL] = { 0.4, 0.2, 0.6 } fg[INSENSITIVE] = { 0.0, 0.0, 0.0 } bg[INSENSITIVE] = { 0.4, 0.2, 0.6 } base[NORMAL] = { 0.85, 0.9, 1.0 } } style "text" { #This is how to use a different font under GTK 2.x #font_name = "Sans 12" fg[NORMAL] = { 0.0, 0.0, 0.0 } bg[NORMAL] = { 0.4, 0.2, 0.6 } fg[PRELIGHT] = { 0.0, 0.0, 0.0 } bg[PRELIGHT] = { 0.5, 0.3, 0.7 } #fg[SELECTED] = { 0.0, 0.0, 0.0 } #bg[SELECTED] = { 0.9, 0.8, 1.0 } fg[ACTIVE] = { 0.0, 0.0, 0.0 } bg[ACTIVE] = { 0.4, 0.2, 0.6 } #bg of scrollbars fg[INSENSITIVE] = { 0.0, 0.0, 0.0 } #fg of scrollbar buttons when insensitive bg[INSENSITIVE] = { 0.4, 0.2, 0.6 } #bg of scrollbar buttons when insensitive text[NORMAL] = { 0.0, 0.0, 1.0 } base[NORMAL] = { 0.85, 0.9, 1.0 } text[ACTIVE] = { 0.0, 0.0, 1.0 } #fg of selected text after focus has left base[ACTIVE] = { 0.85, 0.9, 1.0 } #bg of selected text after focus has left } style "menu" { fg[NORMAL] = { 1.0, 1.0, 1.0 } bg[NORMAL] = { 0.4, 0.2, 0.6 } fg[PRELIGHT] = { 1.0, 1.0, 1.0 } bg[PRELIGHT] = { 0.5, 0.3, 0.7 } fg[ACTIVE] = { 0.0, 1.0, 0.0 } bg[ACTIVE] = { 0.4, 0.2, 0.6 } fg[SELECTED] = { 1.0, 0.0, 0.0 } bg[SELECTED] = { 1.0, 0.0, 0.5 } } style "notebook" { fg[NORMAL] = { 0.9, 0.9, 0.9 } bg[NORMAL] = { 0.4, 0.2, 0.6 } fg[ACTIVE] = { 1.0, 1.0, 1.0 } bg[ACTIVE] = { 0.3, 0.1, 0.5 } } style "calendar" { fg[NORMAL] = { 1.0, 1.0, 1.0 } # month/year text bg[NORMAL] = { 0.5, 0.3, 0.7 } # month/year bg and out-of-month days fg[PRELIGHT] = { 1.0, 1.0, 0.0 } # prelights for month/year arrows bg[PRELIGHT] = { 0.4, 0.2, 0.6 } # prelights for month/year arrows text[NORMAL] = { 1.0, 1.0, 1.0 } # day numbers text[SELECTED] = { 1.0, 1.0, 1.0 } # selected day and week numbers fg base[SELECTED] = { 0.5, 0.3, 0.7 } # selected day and week numbers bg text[ACTIVE] = { 1.0, 1.0, 1.0 } # week numbers when focus is not on widget base[ACTIVE] = { 0.5, 0.3, 0.7 } # week numbers when focus is not on widget base[NORMAL] = { 0.4, 0.2, 0.6 } # bg for calendar } ################################################################################ # These set the widget types to use the styles defined above. widget_class "GtkWindow" style "window" widget_class "GtkDialog" style "window" widget_class "GtkMessageDialog" style "window" widget_class "GtkFileSelection*" style "fileselect" widget_class "GtkFontSel*" style "notebook" widget_class "*GtkNotebook" style "notebook" widget_class "*GtkButton*" style "button" widget_class "*GtkCheckButton*" style "radio_button" widget_class "*GtkRadioButton*" style "radio_button" widget_class "*GtkToggleButton*" style "toggle_button" widget_class "*GtkSpinButton" style "spin_button" widget_class "*Menu*" style "menu" widget_class "*GtkText" style "text" widget_class "*GtkTextView" style "text" widget_class "*GtkEntry" style "text" widget_class "*GtkCList" style "text" widget_class "*GtkVScrollbar" style "text" widget_class "*GtkHScrollbar" style "text" widget_class "*GtkLabel" style "label" widget_class "*GtkEventBox" style "label" widget_class "*GtkFrame" style "frame" widget_class "*GtkCalendar" style "calendar" ############################################################ # These set the widget types for named gtk widgets in the C code widget "*.button_app" style "button_app" widget "*.label_high" style "label_high" widget "*.today" style "today" widget "*tooltip*" style "tooltips" jpilot-1.8.1.2/po/0000755000175000017500000000000011702310021010564 500000000000000jpilot-1.8.1.2/po/it.po0000644000175000017500000025744111702307203011505 00000000000000# Italian messages for jpilot. # This file is distributed under the same license as the jpilot package. # # Michele Mazzucchi , 2001, 2002. # Marco Colombo , 2005, 2008. msgid "" msgstr "" "Project-Id-Version: jpilot 1.6.0-pre2\n" "Report-Msgid-Bugs-To: jpilot-devel@jpilot.org\n" "POT-Creation-Date: 2012-01-08 13:39+0100\n" "PO-Revision-Date: 2008-05-12 12:13+0100\n" "Last-Translator: Marco Colombo \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../address.c:276 ../address.c:448 ../alarms.c:332 ../calendar.c:309 #: ../calendar.c:547 ../contact.c:324 ../contact.c:738 ../dat.c:189 #: ../dat.c:655 ../dat.c:859 ../dat.c:993 ../dat.c:1132 ../datebook.c:130 #: ../datebook.c:165 ../datebook.c:172 ../datebook.c:231 ../jpilot.c:1254 #: ../jpilot-merge.c:95 ../libplugin.c:208 ../libplugin.c:455 #: ../libplugin.c:534 ../libplugin.c:563 ../libplugin.c:811 ../memo.c:214 #: ../memo.c:287 ../otherconv.c:280 ../plugins.c:112 ../prefs.c:350 #: ../prefs.c:375 ../prefs.c:906 ../sync.c:2170 ../sync.c:2187 ../sync.c:2296 #: ../sync.c:2310 ../sync.c:2507 ../sync.c:2646 ../todo.c:236 ../todo.c:490 #: ../utils.c:748 #, c-format msgid "Out of memory" msgstr "Memoria esaurita" #: ../address.c:332 ../calendar.c:230 ../contact.c:580 ../datebook.c:494 #: ../memo.c:87 ../todo.c:90 #, fuzzy, c-format msgid "%s:%d Error reading application info %s\n" msgstr "%s:%d Errore durante la lettura delle informazioni categoria %s\n" #: ../address.c:344 ../address_gui.c:2285 ../address_gui.c:2324 #: ../calendar.c:246 ../contact.c:596 ../datebook.c:514 ../datebook_gui.c:3737 #: ../libplugin.c:405 ../libplugin.c:431 ../memo.c:99 ../memo_gui.c:863 #: ../todo_gui.c:1070 ../Expense/expense.c:1105 #, c-format msgid "Error reading file: %s\n" msgstr "Errore durante la lettura del file: %s\n" #: ../address.c:492 ../calendar.c:598 ../calendar.c:607 ../contact.c:780 #: ../libplugin.c:846 ../memo.c:353 ../todo.c:302 ../utils.c:1124 #: ../utils.c:1131 ../utils.c:1138 ../utils.c:1145 ../utils.c:1152 #: ../utils.c:1159 msgid "error" msgstr "errore" #: ../address_gui.c:325 ../datebook_gui.c:2844 ../memo_gui.c:176 #: ../todo_gui.c:292 ../KeyRing/keyring.c:834 msgid "" "This record is deleted.\n" "Undelete it or copy it to make changes.\n" msgstr "" "Questa voce è eliminata.\n" "Occorre ripristinarla o copiarla per apportare cambiamenti.\n" #: ../address_gui.c:452 ../address_gui.c:458 ../address_gui.c:469 #: ../address_gui.c:481 ../address_gui.c:493 ../address_gui.c:506 #, c-format msgid "%s%s: %s" msgstr "" #: ../address_gui.c:542 ../category.c:118 ../category.c:176 ../category.c:330 #: ../category.c:336 ../datebook_gui.c:430 ../jpilot-merge.c:88 #: ../jpilot-merge.c:146 ../jpilot-merge.c:151 ../memo_gui.c:280 #: ../sync.c:2129 ../sync.c:2135 ../sync.c:2481 ../sync.c:2842 #: ../todo_gui.c:416 ../utils.c:2674 ../utils.c:2711 ../utils.c:2717 #: ../utils.c:2776 ../utils.c:2782 ../utils.c:2836 ../utils.c:2890 #: ../utils.c:2896 ../utils.c:2954 ../utils.c:2961 #, c-format msgid "Unable to open file: %s\n" msgstr "Impossibile aprire il file: %s\n" #: ../address_gui.c:561 #, fuzzy, c-format msgid "Unable to read file: %s\n" msgstr "Impossibile aprire il file: %s\n" #: ../address_gui.c:715 msgid "File doesn't appear to be address.dat format\n" msgstr "Il file non ha il formato di un file address.dat.\n" #: ../address_gui.c:725 ../datebook_gui.c:647 ../memo_gui.c:324 #: ../memo_gui.c:417 ../todo_gui.c:542 ../Expense/expense.c:1384 msgid "Unfiled" msgstr "Non archiviato" #: ../address_gui.c:781 ../datebook_gui.c:698 ../memo_gui.c:470 #: ../todo_gui.c:595 msgid "CSV (Comma Separated Values)" msgstr "" #: ../address_gui.c:782 msgid "DAT/ABA (Palm Archive Formats)" msgstr "" #. current category name #. previous category name #. entry text, in Pilot character set #: ../address_gui.c:868 ../category.c:408 ../datebook_gui.c:729 #: ../jpilot.c:234 ../jpilot.c:278 ../jpilot.c:352 ../jpilot.c:396 #: ../jpilot.c:953 ../memo_gui.c:506 ../todo_gui.c:635 ../utils.c:1305 #: ../KeyRing/keyring.c:2090 msgid "OK" msgstr "OK" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "No" msgstr "No" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "Yes" msgstr "Sì" #: ../address_gui.c:888 ../datebook_gui.c:753 ../memo_gui.c:520 #: ../todo_gui.c:655 ../KeyRing/keyring.c:2104 #, c-format msgid "%s is a directory" msgstr "%s è una directory" #: ../address_gui.c:890 ../address_gui.c:907 ../datebook_gui.c:755 #: ../datebook_gui.c:772 ../memo_gui.c:522 ../memo_gui.c:539 ../todo_gui.c:657 #: ../todo_gui.c:674 ../KeyRing/keyring.c:2106 ../KeyRing/keyring.c:2123 msgid "Error Opening File" msgstr "Errore durante l'apertura del file" #: ../address_gui.c:894 ../datebook_gui.c:759 ../memo_gui.c:526 #: ../todo_gui.c:661 ../KeyRing/keyring.c:2110 #, c-format msgid "Do you want to overwrite file %s?" msgstr "Sovrascrivere il file %s?" #: ../address_gui.c:896 ../datebook_gui.c:761 ../memo_gui.c:528 #: ../todo_gui.c:663 ../KeyRing/keyring.c:2112 msgid "Overwrite File?" msgstr "Sovrascrivere il file?" #: ../address_gui.c:905 ../datebook_gui.c:770 ../memo_gui.c:537 #: ../todo_gui.c:672 ../KeyRing/keyring.c:2121 #, c-format msgid "Error opening file: %s" msgstr "Errore durante l'apertura del file: %s" #: ../address_gui.c:922 #, c-format msgid "" "Address exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:925 #, c-format msgid "" "Contact exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:989 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ldif file may not be standards-compliant\n" msgstr "" #: ../address_gui.c:1002 #, c-format msgid "Can't export address %d\n" msgstr "Impossibile esportare l'indirizzo %d\n" #: ../address_gui.c:1008 ../memo_gui.c:630 ../todo_gui.c:760 #, fuzzy, c-format msgid "Category: %s\n" msgstr "Categoria: " #: ../address_gui.c:1010 ../memo_gui.c:632 ../todo_gui.c:763 #, fuzzy, c-format msgid "Private: %s\n" msgstr "Privato" #: ../address_gui.c:1018 ../address_gui.c:1032 ../address_gui.c:1036 #: ../address_gui.c:1045 ../address_gui.c:1048 #, c-format msgid "%s: " msgstr "" #: ../address_gui.c:1022 #, c-format msgid "%s\n" msgstr "" #. E-mail should be the Palm dropdown menu item for email #. Set dial/email button text and callback data #: ../address_gui.c:1196 ../address_gui.c:2846 ../address_gui.c:4185 msgid "E-mail" msgstr "Email" #: ../address_gui.c:1482 ../datebook_gui.c:1147 ../memo_gui.c:640 #: ../todo_gui.c:844 ../KeyRing/keyring.c:2214 msgid "Unknown export type\n" msgstr "Tipo di esportazione sconosciuto\n" #: ../address_gui.c:1508 ../datebook_gui.c:1226 ../memo_gui.c:469 #: ../memo_gui.c:666 ../todo_gui.c:870 ../KeyRing/keyring.c:2229 msgid "Text" msgstr "" #: ../address_gui.c:1509 ../datebook_gui.c:1227 ../memo_gui.c:667 #: ../todo_gui.c:871 ../KeyRing/keyring.c:2229 msgid "CSV" msgstr "" #: ../address_gui.c:1510 #, fuzzy msgid "vCard" msgstr "Pulisci" #: ../address_gui.c:1511 msgid "vCard (Optimized for Gmail/Android Import)" msgstr "" #: ../address_gui.c:1512 msgid "ldif" msgstr "" #. Initialize variable if default case taken #: ../address_gui.c:1777 ../address_gui.c:3902 #, fuzzy msgid "Last Name/Company" msgstr "Nome/Società" #: ../address_gui.c:1780 ../address_gui.c:3905 #, fuzzy msgid "First Name/Company" msgstr "Nome/Società" #: ../address_gui.c:1783 ../address_gui.c:3908 #, fuzzy msgid "Company/Last Name" msgstr "Società/Nome" #: ../address_gui.c:1920 ../datebook_gui.c:2907 ../memo_gui.c:1036 #: ../todo_gui.c:1329 ../KeyRing/keyring.c:1181 msgid "You can't modify a record that is deleted\n" msgstr "Impossibile modificare una voce eliminata\n" #. Illegal category, Assume that category 0 is Unfiled and valid #: ../address_gui.c:2119 ../address_gui.c:2370 ../address_gui.c:2803 #: ../address_gui.c:2809 ../address_gui.c:3601 ../datebook_gui.c:1994 #: ../datebook_gui.c:3434 ../datebook_gui.c:3783 ../datebook_gui.c:4074 #: ../memo_gui.c:900 ../memo_gui.c:946 ../memo_gui.c:1161 ../memo_gui.c:1548 #: ../todo_gui.c:1106 ../todo_gui.c:1200 ../todo_gui.c:1589 ../todo_gui.c:2141 #: ../Expense/expense.c:689 ../Expense/expense.c:1143 #: ../Expense/expense.c:1227 ../Expense/expense.c:1887 #: ../KeyRing/keyring.c:1070 ../KeyRing/keyring.c:1512 #: ../KeyRing/keyring.c:1574 ../KeyRing/keyring.c:2688 msgid "Category is not legal\n" msgstr "Categoria non valida\n" #: ../address_gui.c:2179 ../alarms.c:598 ../dialer.c:164 #, c-format msgid "executing command = [%s]\n" msgstr "esecuzione comando = [%s]\n" #: ../address_gui.c:2181 #, fuzzy, c-format msgid "Failed to execute [%s]\n" msgstr "Non riuscito, impossibile creare il file %s\n" #: ../address_gui.c:2425 msgid "Birthday" msgstr "" #: ../address_gui.c:2521 msgid "External program not found, or other error" msgstr "" #: ../address_gui.c:2523 msgid "" "J-Pilot can not find the external program \"convert\"\n" "or an error occurred while executing convert.\n" "You may need to install package ImageMagick" msgstr "" #: ../address_gui.c:2524 #, c-format msgid "Command executed was \"%s\"\n" msgstr "" #: ../address_gui.c:2525 #, c-format msgid "return code was %d\n" msgstr "" #: ../address_gui.c:2603 #, fuzzy msgid "chdir() failed\n" msgstr "lock non riuscito\n" #: ../address_gui.c:2606 msgid "Add Photo" msgstr "" #. Category menu #: ../address_gui.c:2828 ../KeyRing/keyring.c:2585 msgid "Category: " msgstr "Categoria: " #: ../address_gui.c:2848 ../address_gui.c:4186 msgid "Mail" msgstr "Posta" #. Dial Phone Button #: ../address_gui.c:2851 ../address_gui.c:4189 ../dialer.c:307 ../dialer.c:331 msgid "Dial" msgstr "Componi" #: ../address_gui.c:3041 ../datebook_gui.c:2757 ../memo_gui.c:1228 #: ../todo_gui.c:1697 msgid "Could not get temporary file name\n" msgstr "" #: ../address_gui.c:3049 ../datebook_gui.c:2765 ../memo_gui.c:1236 #: ../todo_gui.c:1705 msgid "Could not open temporary file for external editor\n" msgstr "" #: ../address_gui.c:3089 ../datebook_gui.c:2806 ../memo_gui.c:1277 #: ../todo_gui.c:1746 msgid "Could not open temporary file from external editor\n" msgstr "" # FIXME #: ../address_gui.c:3261 ../address_gui.c:3292 msgid "-Unnamed-" msgstr "- Senza nome -" #: ../address_gui.c:3374 ../memo_gui.c:1454 ../todo_gui.c:2019 msgid "0 records" msgstr "0 voci" #: ../address_gui.c:3377 ../datebook_gui.c:2637 ../memo_gui.c:1457 #: ../todo_gui.c:2022 #, c-format msgid "%d of %d records" msgstr "%d di %d voci" #: ../address_gui.c:3772 ../address_gui.c:3780 ../KeyRing/keyring.c:2498 msgid "Name" msgstr "Nome" #: ../address_gui.c:3773 ../address_gui.c:3774 ../address_gui.c:3775 #: ../address_gui.c:3781 msgid "Address" msgstr "Indirizzo" #: ../address_gui.c:3776 ../address_gui.c:3782 ../Expense/expense.c:584 #: ../Expense/expense.c:1405 msgid "Other" msgstr "Altro" #. Note textbox #: ../address_gui.c:3777 ../address_gui.c:3783 ../todo_gui.c:2484 #: ../Expense/expense.c:1836 ../KeyRing/keyring.c:2632 msgid "Note" msgstr "Note" #: ../address_gui.c:3793 msgid "Reverting to Address database\n" msgstr "" #: ../address_gui.c:3914 msgid "Phone" msgstr "Telefono" #: ../address_gui.c:3946 msgid "Quick Find: " msgstr "Ricerca rapida: " #. Cancel button #. Add record modification buttons #. Cancel button #: ../address_gui.c:3964 ../category.c:409 ../datebook_gui.c:1782 #: ../datebook_gui.c:5124 ../memo_gui.c:1692 ../todo_gui.c:2345 #: ../utils.c:1346 ../KeyRing/keyring.c:2528 msgid "Cancel" msgstr "Annulla" #: ../address_gui.c:3964 ../datebook_gui.c:5124 ../memo_gui.c:1692 #: ../todo_gui.c:2345 ../KeyRing/keyring.c:2528 msgid "Cancel the modifications" msgstr "Annulla le modifiche" #. Delete Button #. Delete button #. Delete Button #. Delete button #. Delete, Copy, New, etc. buttons #. Delete button #: ../address_gui.c:3969 ../category.c:409 ../category.c:852 #: ../datebook_gui.c:5129 ../memo_gui.c:1697 ../todo_gui.c:2350 #: ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete" msgstr "Elimina" #: ../address_gui.c:3969 ../datebook_gui.c:5129 ../memo_gui.c:1697 #: ../todo_gui.c:2350 ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete the selected record" msgstr "Elimina la voce selezionata" #. Undelete Button #. Undelete button #. Undelete Button #. Undelete button #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 msgid "Undelete" msgstr "Ripristina" #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 msgid "Undelete the selected record" msgstr "Ripristina la voce selezionata" #. Copy button #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy" msgstr "Copia" #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy the selected record" msgstr "Copia la voce selezionata" #. New button #. New Record button #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "New Record" msgstr "Nuova voce" #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "Add a new record" msgstr "Aggiungi una nuova voce" #. "Add Record" button #. Add Record button #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add Record" msgstr "Aggiungi voce" #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add the new record" msgstr "Aggiungi una nuova voce" #. "Apply Changes" button #. Apply Changes button #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Apply Changes" msgstr "Applica" #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Commit the modifications" msgstr "Applica le modifiche" #. Private check box #. Private checkbox #: ../address_gui.c:4033 ../datebook_gui.c:5191 ../datebook_gui.c:5233 #: ../memo_gui.c:1747 ../todo_gui.c:2410 msgid "Private" msgstr "Privato" #: ../address_gui.c:4118 #, fuzzy msgid "Change Photo" msgstr "Cambiato" #: ../address_gui.c:4123 #, fuzzy msgid "Remove Photo" msgstr "Rimuovi" #: ../address_gui.c:4195 #, fuzzy msgid "Show In List" msgstr "" "Mostra\n" "in lista" #: ../address_gui.c:4296 #, fuzzy msgid "Reminder" msgstr "Ricordami" #: ../address_gui.c:4312 ../datebook_gui.c:238 ../datebook_gui.c:5221 #: ../datebook_gui.c:5378 msgid "Days" msgstr "Giorni" #. The Quickview (ALL) page #. All button #: ../address_gui.c:4356 ../datebook_gui.c:1478 ../datebook_gui.c:1782 #: ../utils.c:2528 msgid "All" msgstr "Tutto" #: ../alarms.c:232 ../datebook_gui.c:236 ../datebook_gui.c:5215 #: ../datebook_gui.c:5372 msgid "Minutes" msgstr "Minuti" #: ../alarms.c:234 ../datebook_gui.c:237 ../datebook_gui.c:5219 #: ../datebook_gui.c:5376 msgid "Hours" msgstr "Ore" #: ../alarms.c:255 msgid "Remind me" msgstr "Ricordami" #: ../alarms.c:425 ../alarms.c:991 ../sync.c:1639 ../sync.c:1645 #: ../utils.c:3717 #, c-format msgid "Unable to open file: %s%s\n" msgstr "Impossibile aprire il file: %s%s\n" #: ../alarms.c:512 msgid "Appointment Reminder" msgstr "Reminder appuntamento" #: ../alarms.c:515 msgid "Past Appointment" msgstr "Appuntamento passato" #: ../alarms.c:518 msgid "Postponed Appointment" msgstr "Appuntamento rimandato" #: ../alarms.c:521 ../datebook_gui.c:5025 msgid "Appointment" msgstr "Impegno" #: ../alarms.c:605 msgid "J-Pilot Alarm" msgstr "Allarme J-Pilot" #: ../category.c:131 ../category.c:188 ../sync.c:2158 ../sync.c:2495 msgid "PC file corrupt?\n" msgstr "File sul computer danneggiato?\n" #: ../category.c:138 ../category.c:148 ../category.c:196 ../category.c:206 #: ../category.c:216 ../sync.c:2280 ../sync.c:2334 ../sync.c:2371 #: ../sync.c:2386 ../sync.c:2410 ../sync.c:2630 ../sync.c:2675 ../sync.c:2712 #: ../sync.c:2725 ../sync.c:2750 msgid "fseek failed - fatal error\n" msgstr "posizionamento non riuscito - errore fatale\n" #: ../category.c:364 ../utils.c:2738 ../utils.c:2812 ../utils.c:2916 #: ../utils.c:2981 msgid "rename failed" msgstr "rinominazione non riuscita" #: ../category.c:409 msgid "Move" msgstr "Sposta" #: ../category.c:438 ../category.c:500 ../category.c:580 ../category.c:769 msgid "Edit Categories" msgstr "Modifica categorie" #: ../category.c:439 msgid "The maximum number of categories (16) are already used" msgstr "Il massimo numero di categorie (16) è già usato" #: ../category.c:442 msgid "Enter New Category" msgstr "Inserire nuova categoria" #: ../category.c:453 ../category.c:477 #, fuzzy msgid "Edit Categories Error" msgstr "Modifica categorie" #: ../category.c:454 msgid "You must select a category to rename" msgstr "Selezionare una categoria da rinominare" #: ../category.c:463 msgid "Enter New Category Name" msgstr "Inserire il nuovo nome di categoria" #: ../category.c:478 msgid "You must select a category to delete" msgstr "Selezionare una categoria da eliminare" #: ../category.c:496 #, c-format msgid "" "There are %d records in %s.\n" "Do you want to move them to %s, or delete them?" msgstr "" "Ci sono %d voci in %s.\n" "Si vuole spostarle in %s o eliminarle?" #: ../category.c:556 #, c-format msgid "invalid state file %s line %d\n" msgstr "file di stato %s non valido, riga %d\n" #: ../category.c:578 #, c-format msgid "The category %s can't be used more than once" msgstr "La categoria %s non può essere usata più di una volta" #. Category names in host character set #: ../category.c:735 #, fuzzy msgid "Category" msgstr "Categoria:" #: ../category.c:836 msgid "New" msgstr "Nuovo" #: ../category.c:843 msgid "Rename" msgstr "Rinomina" #: ../dat.c:456 msgid "unknown type =" msgstr "tipo sconosciuto =" #: ../dat.c:537 #, c-format msgid "fields per row count != %d, unknown format\n" msgstr "numero di campi per riga != %d, formato sconosciuto\n" #: ../dat.c:551 #, c-format msgid "field count != %d, unknown format\n" msgstr "numero di campi != %d, formato sconosciuto\n" #: ../dat.c:559 msgid "Unknown format, file has wrong schema\n" msgstr "Formato sconosciuto, il file usa uno schema scorretto\n" #: ../dat.c:560 msgid "File schema is:" msgstr "Lo schema del file è:" #: ../dat.c:564 #, fuzzy msgid "It should be:" msgstr "Dovrebbe essere: " #: ../dat.c:674 ../dat.c:692 ../dat.c:876 ../dat.c:889 ../dat.c:1012 #: ../dat.c:1025 ../dat.c:1149 ../dat.c:1162 #, c-format msgid "%s:%d Record %d, field %d: Invalid type. Expected %d, found %d\n" msgstr "%s:%d Voce %d, campo %d: Tipo non valido. Atteso %d, trovato %d\n" #: ../dat.c:675 ../dat.c:693 ../dat.c:877 ../dat.c:890 ../dat.c:994 #: ../dat.c:1013 ../dat.c:1026 ../dat.c:1150 ../dat.c:1163 msgid "read of file terminated\n" msgstr "lettura del file completata\n" #: ../datebook.c:705 ../datebook_gui.c:3648 #, c-format msgid "Unknown repeatType (%d) found in DatebookDB\n" msgstr "repeatType (%d) sconosciuto trovato in DatebookDB\n" #: ../datebook_gui.c:241 #, fuzzy msgid "Repeat Never" msgstr "Ripeti ogni:" #: ../datebook_gui.c:242 #, fuzzy msgid "Repeat Daily" msgstr "Ripeti i giorni:" #: ../datebook_gui.c:243 #, fuzzy msgid "Repeat Weekly" msgstr "Ripeti ogni:" #: ../datebook_gui.c:244 #, fuzzy msgid "Repeat MonthlyByDay" msgstr "Ripeti i giorni:" #: ../datebook_gui.c:245 #, fuzzy msgid "Repeat MonthlyByDate" msgstr "Ripeti i giorni:" #: ../datebook_gui.c:246 msgid "Repeat YearlyDate" msgstr "" #: ../datebook_gui.c:247 #, fuzzy msgid "Repeat YearlyDay" msgstr "Ripeti i giorni:" # These days of the week are put in the buttons above the calendar and # the little buttons in the repeat weekly window. # They should be one letter if possible. The English ones get truncated to # one letter. #: ../datebook_gui.c:250 ../datebook_gui.c:257 ../datebook_gui.c:4803 #: ../datebook_gui.c:4810 msgid "Su" msgstr "Do" #: ../datebook_gui.c:251 ../datebook_gui.c:4804 msgid "Mo" msgstr "Lu" #: ../datebook_gui.c:252 ../datebook_gui.c:4805 msgid "Tu" msgstr "Ma" #: ../datebook_gui.c:253 ../datebook_gui.c:4806 msgid "We" msgstr "Me" #: ../datebook_gui.c:254 ../datebook_gui.c:4807 msgid "Th" msgstr "Gi" #: ../datebook_gui.c:255 ../datebook_gui.c:4808 msgid "Fr" msgstr "Ve" #: ../datebook_gui.c:256 ../datebook_gui.c:4809 msgid "Sa" msgstr "Sa" #: ../datebook_gui.c:269 #, c-format msgid "" "Start Date: %s\n" "Time: Event" msgstr "" #: ../datebook_gui.c:277 #, c-format msgid "" "Start Date: %s\n" "Time: %s to %s" msgstr "" #: ../datebook_gui.c:287 ../datebook_gui.c:297 msgid "Unknown" msgstr "" #. End Date #: ../datebook_gui.c:300 #, fuzzy msgid "End Date: " msgstr "Termina il" #: ../datebook_gui.c:302 msgid "Never" msgstr "" #: ../datebook_gui.c:308 #, c-format msgid "Repeat Frequency: %d\n" msgstr "" #: ../datebook_gui.c:316 #, c-format msgid "Monthly Repeat Day %d\n" msgstr "" #: ../datebook_gui.c:321 ../datebook_gui.c:5520 msgid "Repeat on Days:" msgstr "Ripeti i giorni:" #: ../datebook_gui.c:332 #, fuzzy, c-format msgid "Number of exceptions: %d" msgstr "Numero di voci: %d\n" #: ../datebook_gui.c:338 msgid "" "\n" "more..." msgstr "" #: ../datebook_gui.c:359 ../datebook_gui.c:386 msgid "Description:" msgstr "" #: ../datebook_gui.c:360 ../datebook_gui.c:387 #, fuzzy msgid "Note:" msgstr "Note" #: ../datebook_gui.c:362 ../datebook_gui.c:390 #, fuzzy msgid "Alarm:" msgstr "Sveglia" #: ../datebook_gui.c:363 ../datebook_gui.c:391 #, fuzzy msgid "Repeat Type:" msgstr "Ripeti ogni:" #: ../datebook_gui.c:366 ../datebook_gui.c:394 #, fuzzy msgid "Start of Week:" msgstr "Giorno della settimana" #: ../datebook_gui.c:388 ../datebook_gui.c:5343 msgid "Location:" msgstr "" #: ../datebook_gui.c:620 ../datebook_gui.c:2271 #, c-format msgid "Appointment description text > %d, truncating to %d\n" msgstr "" "Testo di descrizione dell'appuntamento > %d caratteri, troncato a %d " "caratteri\n" #: ../datebook_gui.c:631 ../datebook_gui.c:1148 ../datebook_gui.c:2331 #: ../datebook_gui.c:2338 msgid "Error" msgstr "Errore" #: ../datebook_gui.c:632 msgid "File doesn't appear to be datebook.dat format\n" msgstr "Questo file non ha il formato di un file datebook.dat.\n" #: ../datebook_gui.c:699 msgid "DAT/DBA (Palm Archive Formats)" msgstr "" #: ../datebook_gui.c:787 #, c-format msgid "" "Datebook exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:790 #, c-format msgid "" "Calendar exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:817 ../todo_gui.c:701 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ical file may not be standards-compliant\n" msgstr "" #: ../datebook_gui.c:1148 msgid "Unknown export type" msgstr "Tipo di esportazione sconosciuto" #: ../datebook_gui.c:1228 ../todo_gui.c:872 #, fuzzy msgid "iCalendar" msgstr "Pulisci" #: ../datebook_gui.c:1240 ../export_gui.c:251 ../jpilot.c:429 msgid "Export" msgstr "Esporta" #. Label for instructions #: ../datebook_gui.c:1257 msgid "Export All Datebook Records" msgstr "Esporta tutte le voci dell'agenda" #: ../datebook_gui.c:1276 ../export_gui.c:316 msgid "Save as" msgstr "Salva come" #. Browse button #: ../datebook_gui.c:1286 ../export_gui.c:329 msgid "Browse" msgstr "Sfoglia" #: ../datebook_gui.c:1432 msgid "Datebook Categories" msgstr "Categorie agenda" #. None button #. Labels for notebook tabs #: ../datebook_gui.c:1484 ../datebook_gui.c:2026 ../datebook_gui.c:5449 msgid "None" msgstr "Nessuna" #: ../datebook_gui.c:1633 msgid "Begin On Date" msgstr "Comincia il" #: ../datebook_gui.c:1639 msgid "End On Date" msgstr "Termina il" #: ../datebook_gui.c:1751 ../prefs.c:451 msgid "Sunday" msgstr "Domenica" #: ../datebook_gui.c:1752 ../prefs.c:452 msgid "Monday" msgstr "Lunedì" #: ../datebook_gui.c:1753 msgid "Tuesday" msgstr "Martedì" #: ../datebook_gui.c:1754 msgid "Wednesday" msgstr "Mercoledì" #: ../datebook_gui.c:1755 msgid "Thursday" msgstr "Giovedì" #: ../datebook_gui.c:1756 msgid "Friday" msgstr "Venerdì" #: ../datebook_gui.c:1757 msgid "Saturday" msgstr "Sabato" #: ../datebook_gui.c:1760 msgid "4th" msgstr "4." #: ../datebook_gui.c:1760 msgid "Last" msgstr "Ultimo" #: ../datebook_gui.c:1763 #, c-format msgid "" "This appointment can either\n" "repeat on the 4th %s\n" "of the month, or on the last\n" "%s of the month.\n" "Which do you want?" msgstr "" "Questo appuntamento si può\n" "ripetere o nella quarta\n" "%s del mese, o nell'ultimo\n" "%s del mese.\n" "Quale si preferisce?" #: ../datebook_gui.c:1770 ../datebook_gui.c:1786 msgid "Question?" msgstr "Domanda?" #: ../datebook_gui.c:1777 #, fuzzy msgid "" "This is a repeating event.\n" "Do you want to apply these changes to\n" "only the CURRENT event,\n" "just FUTURE events, or\n" "ALL of the occurrences of this event?" msgstr "" "Questo è un impegno periodico\n" "Applicare queste modifiche\n" "unicamente a QUESTO impegno\n" "o a TUTTE le occorrenze di\n" "questo impegno?" #: ../datebook_gui.c:1782 msgid "Current" msgstr "Corrente" #: ../datebook_gui.c:1782 msgid "Future" msgstr "" #: ../datebook_gui.c:2027 msgid "day" msgstr "giorno" #: ../datebook_gui.c:2028 msgid "week" msgstr "settimana" #: ../datebook_gui.c:2029 msgid "month" msgstr "mese" #: ../datebook_gui.c:2030 msgid "year" msgstr "anno" #: ../datebook_gui.c:2326 ../datebook_gui.c:2329 #, c-format msgid "You cannot have an appointment that repeats every %d %s(s)\n" msgstr "Impossibile avere un impegno che si ripete ogni %d %s\n" #: ../datebook_gui.c:2339 #, fuzzy msgid "" "You cannot have a weekly repeating appointment that doesn't repeat on any " "day of the week." msgstr "" "Impossibile avere un impegno settimanale che non si ripete nessun giorno " "della settimana." #. This is a timeless event #: ../datebook_gui.c:2516 ../datebook_gui.c:5264 msgid "No Time" msgstr "Nessun orario" #: ../datebook_gui.c:2788 ../memo_gui.c:1259 ../todo_gui.c:1728 msgid "External editor command too long to execute\n" msgstr "" #: ../datebook_gui.c:2943 msgid "Invalid Appointment" msgstr "Appuntamento non valido" #: ../datebook_gui.c:2944 msgid "" "The End Date of this appointment\n" "is before the start date." msgstr "" "La data di fine di questo appuntamento\n" "è prima della data di inizio." #. "No Date" check box #: ../datebook_gui.c:3339 ../datebook_gui.c:5482 ../datebook_gui.c:5513 #: ../datebook_gui.c:5565 ../datebook_gui.c:5613 ../todo_gui.c:142 #: ../todo_gui.c:2454 msgid "No Date" msgstr "Nessuna data" #: ../datebook_gui.c:3494 #, fuzzy, c-format msgid "Error in DateBookDB or Calendar advanceUnits = %d\n" msgstr "Errore in DateBookDB advanceUnits = %d\n" #: ../datebook_gui.c:3681 #, c-format msgid "%%a., %s" msgstr "" #: ../datebook_gui.c:3686 msgid " (TODAY)" msgstr " (OGGI)" #. Weekview button #: ../datebook_gui.c:4934 ../datebook_gui.c:5451 msgid "Week" msgstr "Settimana" #: ../datebook_gui.c:4943 #, fuzzy msgid "View appointments by week Ctrl+W" msgstr "Visualizza appuntamenti per settimana" #. Monthview button #: ../datebook_gui.c:4946 ../datebook_gui.c:5452 msgid "Month" msgstr "Mese" #: ../datebook_gui.c:4955 #, fuzzy msgid "View appointments by month Ctrl+M" msgstr "Visualizza appuntamenti per mese" #. Make Category button #: ../datebook_gui.c:4960 msgid "Cats" msgstr "Categorie" #: ../datebook_gui.c:5024 msgid "Time" msgstr "Orario" #. "Show ToDos" button #: ../datebook_gui.c:5067 msgid "Show ToDos" msgstr "Mostra impegni" #: ../datebook_gui.c:5081 ../todo_gui.c:2285 msgid "Task" msgstr "Impegno" #: ../datebook_gui.c:5082 ../todo_gui.c:2286 msgid "Due" msgstr "Scadenza" #: ../datebook_gui.c:5201 ../datebook_gui.c:5358 msgid "Alarm" msgstr "Sveglia" #. Date Spinners #: ../datebook_gui.c:5241 ../Expense/expense.c:1736 msgid "Date:" msgstr "Data:" #. Start date and time #: ../datebook_gui.c:5283 #, fuzzy msgid "Start" msgstr "Inizio" #. End date and time #: ../datebook_gui.c:5300 #, fuzzy msgid "End" msgstr "Termina il" #: ../datebook_gui.c:5433 msgid "DateBk Tags" msgstr "" #: ../datebook_gui.c:5450 msgid "Day" msgstr "Giorno" # msgid "WeekView" # msgstr "Woche" # msgid "MonthView" # msgstr "Monat" #: ../datebook_gui.c:5453 msgid "Year" msgstr "Anno" #. "No Repeat" page for notebook #: ../datebook_gui.c:5456 msgid "This event will not repeat" msgstr "Questo impegno non si ripeterà" #: ../datebook_gui.c:5465 ../datebook_gui.c:5498 ../datebook_gui.c:5550 #: ../datebook_gui.c:5596 msgid "Frequency is Every" msgstr "La frequenza è ogni" # NdT: minuscolo è corretto, appare nel mezzo di una frase #: ../datebook_gui.c:5471 msgid "Day(s)" msgstr "giorno/i" #: ../datebook_gui.c:5474 ../datebook_gui.c:5507 ../datebook_gui.c:5559 #: ../datebook_gui.c:5605 msgid "End on" msgstr "Termina il" # NdT: minuscolo è corretto, appare nel mezzo di una frase #: ../datebook_gui.c:5504 msgid "Week(s)" msgstr "settimana/e" # NdT: minuscolo è corretto, appare nel mezzo di una frase #: ../datebook_gui.c:5556 msgid "Month(s)" msgstr "mese/i" #: ../datebook_gui.c:5573 msgid "Repeat by:" msgstr "Ripeti ogni:" #: ../datebook_gui.c:5577 msgid "Day of week" msgstr "Giorno della settimana" #: ../datebook_gui.c:5586 ../Expense/expense.c:1618 msgid "Date" msgstr "Data" # NdT: minuscolo è corretto, appare nel mezzo di una frase #: ../datebook_gui.c:5602 msgid "Year(s)" msgstr "anno/i" #: ../dialer.c:195 msgid "Phone Dialer" msgstr "" #: ../dialer.c:230 msgid "Prefix 1" msgstr "Prefisso 1" #: ../dialer.c:252 msgid "Prefix 2" msgstr "Prefisso 2" #: ../dialer.c:274 msgid "Prefix 3" msgstr "Prefisso 3" #: ../dialer.c:289 msgid "Phone number:" msgstr "Numero di telefono:" #: ../dialer.c:319 msgid "Extension" msgstr "Estensione" #: ../dialer.c:341 msgid "Dial Command" msgstr "" #: ../export_gui.c:121 msgid "File Browser" msgstr "Sfoglia" #. Label for instructions #: ../export_gui.c:273 msgid "Select records to be exported" msgstr "Scegliere le voci da esportare" #: ../export_gui.c:275 msgid "Use Ctrl and Shift Keys" msgstr "Usare i tasti Ctrl e Shift" #. Import button #: ../import_gui.c:300 ../import_gui.c:369 ../import_gui.c:426 #: ../import_gui.c:471 ../jpilot.c:385 msgid "Import" msgstr "Importa" #: ../import_gui.c:317 #, c-format msgid "Record was marked as private" msgstr "La voce è stata impostata come privata" #: ../import_gui.c:319 #, c-format msgid "Record was not marked as private" msgstr "La voce non è stata impostata vome privata" #: ../import_gui.c:328 #, c-format msgid "Category before import was: [%s]" msgstr "La categoria prima dell'importazione era: [%s]" #: ../import_gui.c:336 #, c-format msgid "Record will be put in category [%s]" msgstr "Le voci verranno messe nella categoria [%s]" #. Import All button #: ../import_gui.c:376 msgid "Import All" msgstr "Importa tutto" #. Skip button #: ../import_gui.c:383 msgid "Skip" msgstr "Salta" #: ../import_gui.c:457 ../install_gui.c:429 msgid "To change to a hidden directory type it below and hit TAB" msgstr "Per entrare in una directory nascosta, inserirne il nome e premere TAB" #: ../import_gui.c:484 msgid "Import File Type" msgstr "Importa tipo file" #: ../install_gui.c:366 #, fuzzy msgid "Files to install" msgstr "File da installare" #: ../install_gui.c:374 msgid "Install" msgstr "Installa" #: ../install_user.c:118 ../install_user.c:220 msgid "Install User" msgstr "Installa utente" #: ../install_user.c:139 msgid "" "A PalmOS(c) device needs a user name and a user ID in order to sync properly." msgstr "" #: ../install_user.c:146 msgid "" "If you want to sync more than 1 PalmOS(c) device each one should have a " "different ID and preferably a different user name." msgstr "" #. Instruction label #: ../install_user.c:168 msgid "Most people choose their name or nickname for the user name." msgstr "" #: ../install_user.c:176 ../restore_gui.c:278 msgid "User Name" msgstr "Nome utente" #: ../install_user.c:186 msgid "The ID should be a random number." msgstr "L'ID dovrebbe essere un numero a caso." #: ../install_user.c:194 ../restore_gui.c:297 msgid "User ID" msgstr "ID utente" #: ../jpilot.c:319 msgid "Print" msgstr "Stampa" #: ../jpilot.c:320 msgid "There is no print support for this conduit." msgstr "Non c'è supporto per la stampa dei dati di questo canale." #: ../jpilot.c:386 msgid "There is no import support for this conduit." msgstr "Non c'è supporto per importare dati da questo canale." #: ../jpilot.c:430 msgid "There is no export support for this conduit." msgstr "Non c'è supporto per esportare dati da questo canale." #: ../jpilot.c:659 #, fuzzy msgid " Cancelling HotSync\n" msgstr "Annulla sincronizzazione" #. ------------------------------------------- #: ../jpilot.c:675 msgid "" "This handheld does not have the same user name or user ID\n" "as the one that was synced the last time.\n" "Syncing could have unwanted effects including data loss.\n" "\n" "Read the user manual if you are uncertain." msgstr "" #. ------------------------------------------- #: ../jpilot.c:682 msgid "" "This handheld has a NULL user ID.\n" "Every handheld must have a unique user ID in order to sync properly.\n" "If the handheld has been hard reset, \n" " use restore from the menu to restore it.\n" "Otherwise, to add a new user name and ID\n" " use install-user from the menu.\n" "\n" "Read the user manual if you are uncertain." msgstr "" #: ../jpilot.c:690 msgid "Cancel Sync" msgstr "Annulla sincronizzazione" #: ../jpilot.c:690 msgid "Sync Anyway" msgstr "Sincronizza comunque" #: ../jpilot.c:699 ../jpilot.c:703 msgid "Sync Problem" msgstr "problema di sincronizzazione" #: ../jpilot.c:932 ../jpilot.c:1785 msgid " User: " msgstr " Utente: " #: ../jpilot.c:944 msgid "Unknown command from sync process\n" msgstr "Comando sconosciuto dal processo di sincronizzazione\n" #: ../jpilot.c:963 ../Expense/expense.c:529 ../KeyRing/keyring.c:1872 #: ../SyncTime/synctime.c:61 #, c-format msgid "About %s" msgstr "Informazioni su %s" #: ../jpilot.c:1105 msgid "/_File" msgstr "/_File" #: ../jpilot.c:1106 msgid "/File/tear" msgstr "/File/tear" #: ../jpilot.c:1107 msgid "/File/_Find" msgstr "/File/_Trova" #: ../jpilot.c:1108 ../jpilot.c:1114 ../jpilot.c:1117 msgid "/File/sep1" msgstr "/File/sep1" #: ../jpilot.c:1109 msgid "/File/_Install" msgstr "/File/_Installa" #: ../jpilot.c:1110 msgid "/File/Import" msgstr "/File/I_mporta" #: ../jpilot.c:1111 msgid "/File/Export" msgstr "/File/_Esporta" #: ../jpilot.c:1112 ../jpilot.c:2190 msgid "/File/Preferences" msgstr "/File/Preferenze" #: ../jpilot.c:1113 msgid "/File/_Print" msgstr "/File/_Stampa" #: ../jpilot.c:1115 msgid "/File/Install User" msgstr "/File/_Installa utente" #: ../jpilot.c:1116 msgid "/File/Restore Handheld" msgstr "/File/Ripristina handheld" #: ../jpilot.c:1118 msgid "/File/_Quit" msgstr "/File/_Esci" #: ../jpilot.c:1119 msgid "/_View" msgstr "/_Visualizza" #: ../jpilot.c:1120 ../jpilot.c:1121 ../jpilot.c:1122 ../jpilot.c:1368 msgid "/View/Hide Private Records" msgstr "/Visualizza/Nascondi le voci private" #: ../jpilot.c:1121 ../jpilot.c:1371 msgid "/View/Show Private Records" msgstr "/Visualizza/Mosta le voci private" #: ../jpilot.c:1122 ../jpilot.c:1374 msgid "/View/Mask Private Records" msgstr "/Visualizza/Maschera le voci private" #: ../jpilot.c:1123 msgid "/View/sep1" msgstr "/Visualizza/sep1" #: ../jpilot.c:1124 msgid "/View/Datebook" msgstr "/Visualizza/Agenda" # NdT: tradotto con rubrica perché dovrebbe essere Address book #: ../jpilot.c:1125 msgid "/View/Addresses" msgstr "/Visualizza/Rubrica" #: ../jpilot.c:1126 msgid "/View/Todos" msgstr "/Visualizza/Impegni" #: ../jpilot.c:1127 msgid "/View/Memos" msgstr "/Visualizza/Appunti" #: ../jpilot.c:1128 ../jpilot.c:1259 msgid "/_Plugins" msgstr "/_Plugin" #: ../jpilot.c:1130 msgid "/_Web" msgstr "/_Web" #. web #: ../jpilot.c:1131 msgid "/Web/Netscape" msgstr "/Web/Netscape" #: ../jpilot.c:1135 msgid "/Web/Mozilla" msgstr "/Web/Mozilla" #: ../jpilot.c:1140 msgid "/Web/Galeon" msgstr "/Web/Galeon" #: ../jpilot.c:1145 msgid "/Web/Opera" msgstr "/Web/Opera" #: ../jpilot.c:1149 msgid "/Web/GnomeUrl" msgstr "/Web/GnomeUrl" #: ../jpilot.c:1151 msgid "/Web/Lynx" msgstr "/Web/Lynx" #: ../jpilot.c:1153 msgid "/Web/Links" msgstr "/Web/Links" #: ../jpilot.c:1155 msgid "/Web/W3M" msgstr "/Web/W3M" #: ../jpilot.c:1157 msgid "/Web/Konqueror" msgstr "/Web/Konqueror" #: ../jpilot.c:1160 msgid "/_Help" msgstr "/A_iuto" #: ../jpilot.c:1161 msgid "/Help/About J-Pilot" msgstr "/Aiuto/Informazioni su J-Pilot" #: ../jpilot.c:1227 #, c-format msgid "/_Plugins/%s" msgstr "/_Plugin/%s" #: ../jpilot.c:1237 #, c-format msgid "/_Help/%s" msgstr "/A_iuto/%s" #: ../jpilot.c:1591 msgid "calendar:week_start:0" msgstr "" #: ../jpilot.c:1634 ../jpilot-sync.c:171 msgid "Not loading plugins.\n" msgstr "Plugin non caricati.\n" #: ../jpilot.c:1638 msgid "Ignoring all alarms.\n" msgstr "" #: ../jpilot.c:1642 msgid "Ignoring past alarms.\n" msgstr "" #: ../jpilot.c:1730 ../jpilot.c:1738 msgid "Unable to open pipe\n" msgstr "Impossibile aprire la pipe\n" # FIXME UPSTREAM: should be Ctrl+... #: ../jpilot.c:1947 #, fuzzy msgid "Show private records Ctrl+Z" msgstr "Mostra le voci private Ctrl+Z" # FIXME UPSTREAM: should be Ctrl+... #: ../jpilot.c:1952 #, fuzzy msgid "Hide private records Ctrl+Z" msgstr "Nasconde le voci private Ctrl+Z" # FIXME UPSTREAM: should be Ctrl+... #: ../jpilot.c:1957 #, fuzzy msgid "Mask private records Ctrl+Z" msgstr "Maschera le voci private Ctrl+Z" # FIXME UPSTREAM: should be Ctrl+... #: ../jpilot.c:1969 #, fuzzy msgid "Sync your palm to the desktop Ctrl+Y" msgstr "Sincronizza il palmare con il computer Ctrl+Y" #: ../jpilot.c:1981 #, fuzzy msgid "Stop Sync process" msgstr "Sincronizzare la rubrica" #: ../jpilot.c:1993 msgid "" "Sync your palm to the desktop\n" "and then do a backup" msgstr "" "Sincronizza il palmare con il computer\n" "e poi fa il backup" #: ../jpilot.c:2141 msgid "Datebook/Go to Today" msgstr "Agenda/Vai a oggi" #: ../jpilot.c:2142 msgid "Address Book" msgstr "Rubrica" #: ../jpilot.c:2143 msgid "ToDo List" msgstr "Impegni" #: ../jpilot.c:2144 msgid "Memo Pad" msgstr "Appunti" #: ../jpilot.c:2172 msgid "Do it now" msgstr "Fallo adesso" #: ../jpilot.c:2172 msgid "Remind me later" msgstr "Ricordami" #: ../jpilot.c:2172 msgid "Don't tell me again!" msgstr "Non ricordarmi più!" #: ../jpilot.c:2185 #, c-format msgid "" "J-Pilot uses the GTK2 graphical toolkit. This version of the toolkit uses " "UTF-8 to encode characters.\n" "You should select a UTF-8 charset so that you can see non-ASCII characters " "(accents for example).\n" "\n" "Go to the menu \"%s\" and change the \"%s\"." msgstr "" #. Character Set #: ../jpilot.c:2190 ../prefs_gui.c:511 #, fuzzy msgid "Character Set" msgstr "Set di caratteri " #: ../jpilot.c:2192 msgid "Select a UTF-8 encoding" msgstr "Scegli una codifica UTF-8" #: ../jpilot-dump.c:94 #, c-format msgid " +D +A +T +M format like date +format.\n" msgstr "" #: ../jpilot-dump.c:95 #, fuzzy, c-format msgid " -v display version and exit\n" msgstr " -v mostra la versione ed esce.\n" #: ../jpilot-dump.c:96 ../jpilot-sync.c:68 ../utils.c:1874 #, fuzzy, c-format msgid " -h display help text\n" msgstr " -h mostra l'aiuto ed esce.\n" #: ../jpilot-dump.c:97 #, fuzzy, c-format msgid " -f display help for format codes\n" msgstr " -f mostra l'aiuto per i codici di formato.\n" #: ../jpilot-dump.c:98 #, c-format msgid " -D dump DateBook\n" msgstr "" #: ../jpilot-dump.c:99 #, c-format msgid " -i dump DateBook in iCalendar format\n" msgstr "" #: ../jpilot-dump.c:100 #, c-format msgid " -N dump appts for today in DateBook\n" msgstr "" #: ../jpilot-dump.c:101 #, c-format msgid " -NYYYY/MM/DD dump appts on YYYY/MM/DD in DateBook\n" msgstr "" #: ../jpilot-dump.c:102 #, fuzzy, c-format msgid " -A dump Address book\n" msgstr "Rubrica" #: ../jpilot-dump.c:103 #, c-format msgid " -T dump ToDo list as CSV\n" msgstr "" #: ../jpilot-dump.c:104 #, c-format msgid " -M dump Memos\n" msgstr "" #: ../jpilot-dump.c:165 #, c-format msgid "" "Warning: Host character encoding is not UTF-8 based.\n" "Exported ical file may not be standards-compliant\n" msgstr "" #: ../jpilot-merge.c:163 ../jpilot-merge.c:169 #, fuzzy, c-format msgid "%s: Unable to open file:%s\n" msgstr "Impossibile aprire il file: %s\n" #: ../jpilot-merge.c:271 #, c-format msgid "Records read from pdb = %d\n" msgstr "" #: ../jpilot-merge.c:272 #, c-format msgid "Records added = %d\n" msgstr "" #: ../jpilot-merge.c:273 #, c-format msgid "Records deleted = %d\n" msgstr "" #: ../jpilot-merge.c:274 #, c-format msgid "Records modified = %d\n" msgstr "" #: ../jpilot-merge.c:275 #, c-format msgid "Records written = %d\n" msgstr "" #: ../jpilot-merge.c:293 #, c-format msgid "Usage: %s {input pdb file} {input pc3 file} {output pdb file}\n" msgstr "" #: ../jpilot-merge.c:294 #, c-format msgid " This program will merge an unsynced records file (pc3)\n" msgstr "" #: ../jpilot-merge.c:295 #, c-format msgid "" " into the corresponding palm database (pdb) file.\n" "\n" msgstr "" #: ../jpilot-merge.c:296 #, c-format msgid " WARNING: Only run this utility if you understand the consequences!\n" msgstr "" #: ../jpilot-merge.c:297 #, c-format msgid " The merge will leave your databases in an unsync-able state.\n" msgstr "" #: ../jpilot-merge.c:298 #, c-format msgid "" " It is intended for cases where J-pilot is being used as a standalone PIM\n" msgstr "" #: ../jpilot-merge.c:299 #, c-format msgid " and where no syncing occurs to physical hardware.\n" msgstr "" #: ../jpilot-merge.c:300 #, c-format msgid " WARNING: Make a backup copy of your databases before proceeding.\n" msgstr "" #: ../jpilot-merge.c:301 #, c-format msgid "" " It is quite simple to destroy your databases by accidentally merging\n" msgstr "" #: ../jpilot-merge.c:302 #, c-format msgid " address records into datebook databases, etc.\n" msgstr "" #: ../jpilot-sync.c:66 #, c-format msgid "" " J-Pilot preferences are read to get sync info such as port, rate, number of " "backups, etc.\n" msgstr "" #: ../jpilot-sync.c:67 ../utils.c:1873 #, fuzzy, c-format msgid " -v display version and compile options\n" msgstr " -v mostra la versione e le opzioni di compilazione ed esce.\n" #: ../jpilot-sync.c:69 ../utils.c:1875 #, fuzzy, c-format msgid " -d display debug info to stdout\n" msgstr " -d mostra informazioni di debug sullo standard output.\n" #: ../jpilot-sync.c:70 #, fuzzy, c-format msgid " -P skip loading plugins\n" msgstr " -p salta il caricamento dei plugin.\n" #: ../jpilot-sync.c:71 #, fuzzy, c-format msgid " -b sync, and then do a backup\n" msgstr "" "Sincronizza il palmare con il computer\n" "e poi fa il backup" #: ../jpilot-sync.c:72 #, c-format msgid " -l loop, otherwise sync once and exit\n" msgstr "" #: ../jpilot-sync.c:73 #, c-format msgid " -p {port} use this port to sync on instead of default\n" msgstr "" #: ../jpilot-sync.c:221 #, fuzzy, c-format msgid "Error: connecting to port %s\n" msgstr "Errore durante l'apertura del file: %s\n" #: ../jpilot-sync.c:225 #, c-format msgid "Error: pi_listen\n" msgstr "" #: ../jpilot-sync.c:229 #, fuzzy, c-format msgid "Error: opening conduit to handheld\n" msgstr "Errore durante l'apertura del file: next_id\n" #: ../jpilot-sync.c:233 #, c-format msgid "Error: pi_accept\n" msgstr "" #: ../jpilot-sync.c:237 ../jpilot-sync.c:265 #, fuzzy, c-format msgid "Error: " msgstr "Errore" #: ../jpilot-sync.c:238 #, c-format msgid "This handheld does not have the same user name.\n" msgstr "" #: ../jpilot-sync.c:239 ../jpilot-sync.c:253 #, c-format msgid "as the one that was synced the last time.\n" msgstr "" #: ../jpilot-sync.c:241 #, c-format msgid "" "Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:243 ../jpilot-sync.c:256 #, c-format msgid " COPILOT_HOME" msgstr "" #: ../jpilot-sync.c:245 ../jpilot-sync.c:258 #, c-format msgid " JPILOT_HOME" msgstr "" #: ../jpilot-sync.c:247 ../jpilot-sync.c:260 #, fuzzy, c-format msgid " environment variable can be used to sync different handhelds,\n" msgstr "La variabile d'ambiente HOME è troppo lunga per jpilot\n" #: ../jpilot-sync.c:248 ../jpilot-sync.c:261 #, c-format msgid " to different directories for the same UNIX user name.\n" msgstr "" #: ../jpilot-sync.c:252 #, c-format msgid "This handheld does not have the same user ID.\n" msgstr "" #: ../jpilot-sync.c:254 #, c-format msgid "" " Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:266 #, c-format msgid "This handheld has a NULL user ID.\n" msgstr "" #: ../jpilot-sync.c:267 #, c-format msgid "Every handheld must have a unique user ID in order to sync properly.\n" msgstr "" #: ../jpilot-sync.c:268 #, c-format msgid "If the handheld has been hard reset, \n" msgstr "" #: ../jpilot-sync.c:269 #, c-format msgid " use restore from within " msgstr "" #: ../jpilot-sync.c:270 #, c-format msgid "Otherwise, to add a new user name and ID\n" msgstr "" #: ../jpilot-sync.c:271 #, c-format msgid " use \"install-user %s name numeric_id\"\n" msgstr "" #: ../jpilot-sync.c:275 #, c-format msgid "Error: sync returned error %d\n" msgstr "" #: ../libplugin.c:64 ../utils.c:1054 msgid "" "This record is already deleted.\n" "It is scheduled to be deleted from the Palm on the next sync.\n" msgstr "" "Questa voce è già stata eliminata.\n" "Verrà eliminata dal Palm alla prossima sincronizzazione.\n" #: ../libplugin.c:73 ../libplugin.c:110 ../utils.c:1064 ../utils.c:1106 msgid "Unable to open PC records file\n" msgstr "" #: ../libplugin.c:79 ../utils.c:1071 msgid "Couldn't find record to delete\n" msgstr "Impossibile trovare la voce da eliminare\n" #: ../libplugin.c:97 ../utils.c:1091 #, c-format msgid "Unknown header version %d\n" msgstr "Versione %d dell'intestazione sconosciuta\n" #: ../libplugin.c:182 #, c-format msgid "%s:%d Error opening file: %s\n" msgstr "%s:%d Errore durante l'apertura del file: %s\n" #: ../libplugin.c:188 ../libplugin.c:217 ../sync.c:1721 ../todo.c:102 #, c-format msgid "%s:%d Error reading file: %s\n" msgstr "%s:%d Errore durante la lettura del file: %s\n" #: ../libplugin.c:340 ../libplugin.c:398 ../utils.c:2119 ../utils.c:2132 #, c-format msgid "Error opening file: %s\n" msgstr "Errore durante l'apertura del file: %s\n" #: ../libplugin.c:526 #, c-format msgid "Error reading %s 5\n" msgstr "Errore durante la lettura di %s 5\n" #: ../libplugin.c:801 msgid "Error reading PC file 1\n" msgstr "" #: ../libplugin.c:817 msgid "Error reading PC file 2\n" msgstr "" #: ../libplugin.c:923 #, c-format msgid "Unknown PC header version = %d\n" msgstr "" #: ../log.c:101 #, c-format msgid "Unable to open log file, giving up.\n" msgstr "Impossibile aprire il file log, rinuncio.\n" #: ../log.c:111 #, c-format msgid "Unable to open log file\n" msgstr "Impossibile aprire il file di log\n" #: ../memo_gui.c:302 msgid "Memo text > 65535, truncating\n" msgstr "Testo appunto > 65535, troncato\n" #: ../memo_gui.c:330 #, c-format msgid "Imported Memo %s\n" msgstr "Importato apputno %s\n" #: ../memo_gui.c:400 msgid "File doesn't appear to be memopad.dat format\n" msgstr "Questo file non ha il formato di un file memopad.dat.\n" #: ../memo_gui.c:471 msgid "DAT/MPA (Palm Archive Formats)" msgstr "" #: ../memo_gui.c:554 #, c-format msgid "" "Memo exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:557 #, c-format msgid "" "Memos exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:584 #, c-format msgid "Can't export memo %d\n" msgstr "Impossibile esportare appunto %d\n" #: ../memo_gui.c:628 #, fuzzy, c-format msgid "Memo: %ld\n" msgstr "Appunti" #: ../memo_gui.c:634 #, c-format msgid "----- Start of Memo -----\n" msgstr "" #: ../memo_gui.c:636 #, c-format msgid "" "\n" "----- End of Memo -----\n" "\n" msgstr "" #: ../memo_gui.c:668 msgid "B-Folders CSV" msgstr "" #: ../monthview_gui.c:438 msgid "Monthly View" msgstr "Visualizzazione mensile" #: ../monthview_gui.c:480 msgid "Last month Alt+LeftArrow" msgstr "" #: ../monthview_gui.c:508 msgid "Next month Alt+RightArrow" msgstr "" #: ../otherconv.c:76 #, c-format msgid "%s: error exit from g_iconv_close(%s)\n" msgstr "" #: ../otherconv.c:201 #, c-format msgid "%s:%s g_convert_with_iconv error: %s, buff: %s\n" msgstr "" #: ../otherconv.c:203 #, fuzzy msgid "last char truncated" msgstr "ultima modifica: " #: ../otherconv.c:280 #, c-format msgid "UTF_to_other: %s\n" msgstr "" #: ../otherconv.c:294 #, c-format msgid "iconv: unconvertible sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:298 #, c-format msgid "iconv: incomplete UTF-8 sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:301 #, c-format msgid "iconv: buffer filled. stopped at place %d in '%s'\n" msgstr "" #: ../otherconv.c:304 #, c-format msgid "iconv: unexpected error at place %d in '%s'\n" msgstr "" #: ../password.c:283 msgid "Palm Password" msgstr "Password del palmare" #: ../password.c:308 msgid "Incorrect, Reenter PalmOS Password" msgstr "Sbagliata, reinserire la password del palmare" #: ../password.c:310 msgid "Enter PalmOS Password" msgstr "Inserire la password del palmare" #: ../pidfile.c:67 msgid "removing stale pidfile\n" msgstr "" #: ../pidfile.c:91 #, fuzzy, c-format msgid "create pidfile failed: %s\n" msgstr "Errore durante la lettura del file: %s\n" #: ../pidfile.c:92 msgid "Warning: hotplug syncing disabled.\n" msgstr "" #: ../plugins.c:90 ../plugins.c:203 ../restore_gui.c:133 msgid "infinite loop" msgstr "loop infinito" #: ../plugins.c:216 #, c-format msgid "While reading %s%s line 1:[%s]\n" msgstr "Durante la lettura di %s%s riga 1: [%s]\n" #: ../plugins.c:217 msgid "Wrong Version\n" msgstr "Versione sbagliata\n" #: ../plugins.c:218 msgid "Check preferences->conduits\n" msgstr "Controllare Preferenze->Canali\n" #: ../plugins.c:274 #, c-format msgid "" "Open failed on plugin [%s]\n" " error [%s]\n" msgstr "" "Apertura non riuscita del plugin [%s]\n" " errore [%s]\n" #: ../plugins.c:291 ../plugins.c:316 #, c-format msgid " plugin is invalid: [%s]\n" msgstr " il plugin non è valido: [%s]\n" #: ../plugins.c:299 #, c-format msgid "Plugin:[%s]\n" msgstr "Plugin:[%s]\n" #: ../plugins.c:300 #, c-format msgid "This plugin is version (%d.%d).\n" msgstr "Questo plugin è la versione (%d.%d).\n" #: ../plugins.c:302 msgid "It is too old to work with this version of J-Pilot.\n" msgstr "È troppo vecchio per funzionare con questa versione di J-Pilot.\n" #: ../prefs.c:420 msgid "%B %d, %Y" msgstr "" #: ../prefs.c:421 msgid "%d %B %Y" msgstr "" #: ../prefs.c:422 msgid "%d. %B %Y" msgstr "" #: ../prefs.c:423 msgid "%d %B, %Y" msgstr "" #: ../prefs.c:424 msgid "%Y. %B. %d" msgstr "" #: ../prefs.c:425 msgid "%Y %B %d" msgstr "" #: ../prefs_gui.c:454 msgid "Preferences" msgstr "Preferenze" #: ../prefs_gui.c:485 msgid "Locale" msgstr "Localizzazione" #: ../prefs_gui.c:487 msgid "Settings" msgstr "Impostazioni" #: ../prefs_gui.c:489 msgid "Datebook" msgstr "Agenda" #: ../prefs_gui.c:493 msgid "ToDo" msgstr "Impegni" #: ../prefs_gui.c:495 msgid "Memo" msgstr "Appunti" #: ../prefs_gui.c:497 msgid "Alarms" msgstr "Sveglie" #: ../prefs_gui.c:499 msgid "Conduits" msgstr "Canali" #. Shortdate #: ../prefs_gui.c:524 #, fuzzy msgid "Short date format" msgstr "Data in formato breve " #. Longdate #: ../prefs_gui.c:537 #, fuzzy msgid "Long date format" msgstr "Data in formato completo " #. Time #: ../prefs_gui.c:550 #, fuzzy msgid "Time format" msgstr "Formato orario " #. GTK colors file #: ../prefs_gui.c:570 #, fuzzy msgid "GTK color theme file" msgstr "Il file personale dei colori GTK è " #. Port #: ../prefs_gui.c:583 #, fuzzy msgid "Sync Port" msgstr "problema di sincronizzazione" #. Serial Rate #: ../prefs_gui.c:607 msgid "Serial Rate" msgstr "" #. Number of backups #: ../prefs_gui.c:627 msgid "Number of backups to be archived" msgstr "Numero di backup da conservare" #. Show deleted files check box #: ../prefs_gui.c:645 msgid "Show deleted records (default NO)" msgstr "Mostrare le voci eliminate (predefinito: NO)" #. Show modified files check box #: ../prefs_gui.c:649 msgid "Show modified deleted records (default NO)" msgstr "Mostrare le voci modificate (predefinito: NO)" #: ../prefs_gui.c:654 msgid "Ask confirmation for file installation (J-Pilot -> PDA) (default YES)" msgstr "" "Chiedere conferma per l'installazione di file (J-Pilot -> PDA) (predefinito: " "SÌ)" #. Show tooltips check box #: ../prefs_gui.c:658 msgid "Show popup tooltips (default YES) (requires restart)" msgstr "" #: ../prefs_gui.c:668 msgid "Use Datebook database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:671 msgid "Use Calendar database (Palm OS > 5.2)" msgstr "" #. Show highlight days check box #: ../prefs_gui.c:697 msgid "Highlight calendar days with appointments" msgstr "Evidenzia i giorni impegnati nel calendario" #. Highlight today on month and week view #: ../prefs_gui.c:702 msgid "Annotate today in day, week, and month views" msgstr "" #. Show number of years on anniversaries in month and week view #: ../prefs_gui.c:706 msgid "Append years on anniversaries in day, week, and month views" msgstr "" #. Show use DateBk check box #: ../prefs_gui.c:712 msgid "Use DateBk note tags" msgstr "" #: ../prefs_gui.c:715 msgid "DateBk support disabled in this build" msgstr "Il supporto all'agenda è disabilitato in questo programma" #: ../prefs_gui.c:727 msgid "Use Address database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:730 msgid "Use Contacts database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:759 msgid "Mail Command" msgstr "Comando di posta" #: ../prefs_gui.c:773 #, c-format msgid "%s is replaced by the e-mail address" msgstr "%s è sostituito dall'indirizzo email" #: ../prefs_gui.c:785 #, fuzzy msgid "Use ToDo database (Palm OS < 5.2.1)" msgstr "Usare Memo32 (pedit32)" #: ../prefs_gui.c:788 #, fuzzy msgid "Use Task database (Palm OS > 5.2)" msgstr "Usare Memo32 (pedit32)" #. hide completed check box #: ../prefs_gui.c:815 msgid "Hide Completed ToDos" msgstr "Nascondere gli impegni completati" #. hide todos not yet due check box #: ../prefs_gui.c:819 msgid "Hide ToDos not yet due" msgstr "Nascondere gli impegni non in scadenza" #. record todo completion date check box #: ../prefs_gui.c:823 msgid "Record Completion Date" msgstr "Memorizzare la data di completamento" #. Use Manana check box #: ../prefs_gui.c:828 msgid "Use Manana database" msgstr "Usare il database Manana" #: ../prefs_gui.c:836 msgid "Use default number of days due" msgstr "Usare il numero predefinito di giorni di scadenza" #: ../prefs_gui.c:858 #, fuzzy msgid "Use Memo database (Palm OS < 5.2.1)" msgstr "Usare Memo32 (pedit32)" #: ../prefs_gui.c:861 #, fuzzy msgid "Use Memos database (Palm OS > 5.2)" msgstr "Usare Memo32 (pedit32)" #: ../prefs_gui.c:864 #, fuzzy msgid "Use Memo32 database (pedit32)" msgstr "Usare Memo32 (pedit32)" #: ../prefs_gui.c:904 msgid "External Editor" msgstr "" #: ../prefs_gui.c:917 msgid "Use Ctrl-E inside a memo to launch external editor for memo text" msgstr "" #. ******************************************************************** #. Alarms preference tab #. Open alarm windows check box #: ../prefs_gui.c:925 msgid "Open alarm windows for appointment reminders" msgstr "Aprire finestre di avviso per ricordare gli impegni" #. Execute alarm command check box #: ../prefs_gui.c:929 msgid "Execute this command" msgstr "Eseguire questo comando" #. Shell warning label #: ../prefs_gui.c:933 msgid "WARNING: executing arbitrary shell commands can be dangerous!!!" msgstr "" "ATTENZIONE: l'esecuzione di comandi shell arbitrari può essere pericolosa!" #: ../prefs_gui.c:941 msgid "Alarm Command" msgstr "Comando per la sveglia" #: ../prefs_gui.c:954 msgid "%t is replaced with the alarm time" msgstr "%t è sostituito con l'ora della sveglia" #: ../prefs_gui.c:958 #, c-format msgid "%d is replaced with the alarm date" msgstr "%d è sostituito con la data della sveglia" #: ../prefs_gui.c:963 msgid "%D is replaced with the alarm description" msgstr "%D è sostituito con la descrizione della sveglia" #: ../prefs_gui.c:967 msgid "%N is replaced with the alarm note" msgstr "%N è sostituito con la nota della sveglia" #: ../prefs_gui.c:971 msgid "%D (description substitution) is disabled in this build" msgstr "%D (sostituzione della descrizione) è disabilitato in questo programma" #: ../prefs_gui.c:976 msgid "%N (note substitution) is disabled in this build" msgstr "%D (sostituzione della nota) è disabilitato in questo programma" #. ******************************************************************** #. Conduits preference tab #. Sync datebook check box #: ../prefs_gui.c:986 msgid "Sync datebook" msgstr "Sincronizzare l'agenda" #. Sync address check box #: ../prefs_gui.c:990 msgid "Sync address" msgstr "Sincronizzare la rubrica" #. Sync todo check box #: ../prefs_gui.c:994 msgid "Sync todo" msgstr "Sincronizzare gli impegni" #. Sync memo check box #: ../prefs_gui.c:998 msgid "Sync memo" msgstr "Sincronizzare gli appunti" #. Show sync Manana check box #: ../prefs_gui.c:1003 msgid "Sync Manana" msgstr "Sincronizzare Manana" #. Show use Japanese Kana extention check box #: ../prefs_gui.c:1009 msgid "Use J-OS (Not Japanese PalmOS:WorkPad/CLIE)" msgstr "" #. Make a Sync checkbox for each plugin #: ../prefs_gui.c:1022 #, c-format msgid "Sync %s (%s)" msgstr "Sincronizza %s (%s)" #: ../print_gui.c:185 msgid "Print Options" msgstr "Opzioni stampa" #: ../print_gui.c:198 msgid "Paper Size" msgstr "Impostazioni pagina" #: ../print_gui.c:214 msgid "Daily Printout" msgstr "Stampa quotidiana" #: ../print_gui.c:220 msgid "Weekly Printout" msgstr "Stampa settimanale" #: ../print_gui.c:226 msgid "Monthly Printout" msgstr "Stampa mensile" #: ../print_gui.c:266 #, fuzzy msgid "Selected record" msgstr "Eliminata una voce %s." #: ../print_gui.c:270 msgid "All records in this category" msgstr "Tutte le voci in questa categoria" #: ../print_gui.c:274 msgid "Print all records" msgstr "Stampa tutte le voci" #: ../print_gui.c:296 msgid "One record per page" msgstr "Una voce per pagina" #: ../print_gui.c:312 #, fuzzy msgid "Blank lines between each record" msgstr " Spazio vuoto dopo ogni record" #. Print Command #: ../print_gui.c:321 msgid "Print Command (e.g. lpr, or cat > file.ps)" msgstr "Comando di stampa (es. lpr o cat > file.ps)" #: ../restore_gui.c:71 ../restore_gui.c:229 msgid "Restore Handheld" msgstr "Ripristina handheld" #: ../restore_gui.c:176 ../restore_gui.c:178 msgid "Unable to convert filename for GTK display\n" msgstr "" #: ../restore_gui.c:177 msgid "See console log to find which file will not be restored\n" msgstr "" #: ../restore_gui.c:179 #, fuzzy, c-format msgid "File %s will not be restored\n" msgstr "File da installare" #. Label for instructions #: ../restore_gui.c:246 msgid "To restore your handheld:" msgstr "" #: ../restore_gui.c:249 #, fuzzy msgid "1. Choose the applications you wish to restore. The default is all." msgstr "" "1. Scegliere tutte le applicazioni da ripristinare. Predefinito: tutte." #: ../restore_gui.c:252 msgid "2. Enter the User Name and User ID." msgstr "2. Inserire il nome utente e l'ID utente." #: ../restore_gui.c:255 msgid "3. Press the OK button." msgstr "3. Premere OK." #: ../restore_gui.c:258 msgid "This will overwrite data that is currently on the handheld." msgstr "Questa azione sovrascriverà i dati attualmente sul palmare." #: ../search_gui.c:144 msgid "datebook" msgstr "agenda" #: ../search_gui.c:146 #, fuzzy msgid "calendar" msgstr "Pulisci" #: ../search_gui.c:233 msgid "address" msgstr "indirizzo" #: ../search_gui.c:235 msgid "contact" msgstr "" #: ../search_gui.c:304 msgid "todo" msgstr "impegno" #: ../search_gui.c:361 msgid "memo" msgstr "appunto" #: ../search_gui.c:363 #, fuzzy msgid "memos" msgstr "appunto" #: ../search_gui.c:421 msgid "plugin ?" msgstr "plugin?" #: ../search_gui.c:501 msgid "No records found" msgstr "Nessuna voce trovata" #: ../search_gui.c:600 msgid "Search" msgstr "Trova" #. Search label #: ../search_gui.c:617 msgid "Search for: " msgstr "Cerca: " #. Case Sensitive checkbox #: ../search_gui.c:626 msgid "Case Sensitive" msgstr "Maiuscole/minuscole" #: ../sync.c:120 msgid "open lock file failed\n" msgstr "apertura del file di lock non riuscita\n" #: ../sync.c:133 msgid "lock failed\n" msgstr "lock non riuscito\n" #: ../sync.c:136 #, c-format msgid "sync file is locked by pid %d\n" msgstr "" #: ../sync.c:171 msgid "unlock failed\n" msgstr "unlock non riuscito\n" #: ../sync.c:174 #, c-format msgid "sync is locked by pid %d\n" msgstr "la sincronizzazione è bloccata dal pid %d\n" #: ../sync.c:410 #, fuzzy msgid "Check your sync port and settings\n" msgstr "Controllare la porta seriale e le impostazioni\n" #: ../sync.c:669 msgid "Unable to read home dir\n" msgstr "Impossibile leggere la directory home\n" #: ../sync.c:1075 ../sync.c:1413 #, c-format msgid "%s (Creator ID '%s') is up to date, fetch skipped.\n" msgstr "%s (ID autore '%s') è aggiornato: aggiornam. saltato.\n" #: ../sync.c:1079 ../sync.c:1417 #, c-format msgid "Fetching '%s' (Creator ID '%s')... " msgstr "Scaricamento di '%s' (ID autore '%s')... " #: ../sync.c:1086 ../sync.c:1423 #, c-format msgid "Failed, unable to create file %s\n" msgstr "Non riuscito, impossibile creare il file %s\n" #: ../sync.c:1090 ../sync.c:1428 #, c-format msgid "Failed, unable to back up database %s\n" msgstr "Non riuscito, impossibile fare il backup del database %s\n" #: ../sync.c:1094 ../sync.c:1432 ../sync.c:1619 msgid "OK\n" msgstr "OK\n" #: ../sync.c:1294 #, c-format msgid "Skipping %s (Creator ID '%s')\n" msgstr "Saltando %s (ID autore '%s')\n" #: ../sync.c:1488 #, c-format msgid "Installing %s " msgstr "Installando %s" #: ../sync.c:1494 ../sync.c:1530 #, c-format msgid "" "\n" "Unable to open file: '%s': %s!\n" msgstr "" "\n" "Impossibile aprire il file: '%s': '%s'!\n" #: ../sync.c:1498 #, c-format msgid "" "\n" "Unable to sync file: '%s': file corrupted?\n" msgstr "" "\n" "Impossibile sincronizzare il file: '%s': file danneggiato?\n" #: ../sync.c:1514 #, fuzzy, c-format msgid "(Creator ID '%s')... " msgstr "(ID autore '%s') ..." #: ../sync.c:1518 #, fuzzy, c-format msgid "(Creator ID '%s') " msgstr "(ID autore '%s') ..." #: ../sync.c:1520 #, fuzzy, c-format msgid "(SDcard dir %s)... " msgstr "(ID autore '%s') ..." #: ../sync.c:1552 ../sync.c:1565 ../sync.c:1580 ../sync.c:1593 #, c-format msgid "" "\n" "Unable to open file: %s\n" msgstr "" "\n" "Impossibile aprire il file: %s\n" #: ../sync.c:1605 #, c-format msgid "Install %s failed" msgstr "Installazione di %s fallita" #: ../sync.c:1609 msgid "Failed.\n" msgstr "Fallita.\n" #: ../sync.c:1615 #, fuzzy, c-format msgid "Installed %s" msgstr "%s installato" #: ../sync.c:1726 #, c-format msgid "%s:%d Error getting app info %s\n" msgstr "" #: ../sync.c:1732 ../sync.c:1762 #, c-format msgid "%s:%d Error unpacking app info %s\n" msgstr "" #: ../sync.c:1753 #, c-format msgid "Error reading appinfo block for %s\n" msgstr "" #. Fix - need a func for this logging #: ../sync.c:1991 ../sync.c:1995 #, c-format msgid "Could not add category %s to remote.\n" msgstr "Impossibile aggiungere la categoria %s sul remoto.\n" #: ../sync.c:1992 ../sync.c:1998 #, c-format msgid "Too many categories on remote.\n" msgstr "Troppe categorie sul remoto.\n" #: ../sync.c:1993 ../sync.c:2001 #, c-format msgid "All records on desktop in %s will be moved to %s.\n" msgstr "Tutte le voci sul desktop in %s saranno spostate in %s.\n" #: ../sync.c:2096 ../sync.c:2814 #, c-format msgid "Syncing %s\n" msgstr "Sincronizzazione di %s\n" #: ../sync.c:2104 ../sync.c:2457 ../sync.c:2822 #, c-format msgid "Wrote an %s record." msgstr "Scritta una voce %s." #: ../sync.c:2106 ../sync.c:2459 ../sync.c:2824 #, c-format msgid "Writing an %s record failed." msgstr "Scrittura una voce %s fallita." #: ../sync.c:2108 ../sync.c:2461 ../sync.c:2826 #, c-format msgid "Deleting an %s record failed." msgstr "Eliminazione di una voce %s fallita." #: ../sync.c:2110 ../sync.c:2463 ../sync.c:2828 #, c-format msgid "Deleted an %s record." msgstr "Eliminata una voce %s." #: ../sync.c:2112 ../sync.c:2465 #, fuzzy, c-format msgid "Sync Conflict: duplicated an %s record." msgstr "Eliminata una voce %s." #: ../sync.c:2115 ../sync.c:2468 ../sync.c:2831 #, c-format msgid "Wrote a %s record." msgstr "Scritta una voce %s." #: ../sync.c:2117 ../sync.c:2470 ../sync.c:2833 #, c-format msgid "Writing a %s record failed." msgstr "Scrittura di una voce %s non riuscita." #: ../sync.c:2119 ../sync.c:2472 ../sync.c:2835 #, c-format msgid "Deleting a %s record failed." msgstr "Eliminazione di una voce %s non riuscita." #: ../sync.c:2121 ../sync.c:2474 ../sync.c:2837 #, c-format msgid "Deleted a %s record." msgstr "Eliminata una voce %s." #: ../sync.c:2123 ../sync.c:2476 #, c-format msgid "Sync Conflict: duplicated a %s record." msgstr "" #: ../sync.c:2227 ../sync.c:2557 #, c-format msgid "Sync Conflict: a %s record must be manually merged\n" msgstr "" #: ../sync.c:2358 ../sync.c:2698 msgid "" "dlp_DeleteRecord failed\n" "This could be because the record was already deleted on the Palm\n" msgstr "" "dlp_DeleteRecord non riuscita\n" "Una possibile causa è la voce è già stata eliminata sul palmare\n" #: ../sync.c:2927 msgid "Finished installing user information.\n" msgstr "Installazione delle informazioni dell'utente completata.\n" #: ../sync.c:3084 #, c-format msgid " Syncing on device %s\n" msgstr " Sincronizzazione sul dispositivo %s\n" #: ../sync.c:3085 msgid " Press the HotSync button now\n" msgstr " Premere il tasto Hot-Sync ora\n" #: ../sync.c:3127 ../sync.c:3149 ../sync.c:3170 #, c-format msgid "Last Synced Username-->\"%s\"\n" msgstr "Ultimo nome utente sinc. -->\"%s\"\n" #: ../sync.c:3128 ../sync.c:3150 ../sync.c:3171 #, c-format msgid "Last Synced UserID-->\"%d\"\n" msgstr "Ultimo ID utente sinc. -->\"%d\"\n" #: ../sync.c:3129 ../sync.c:3151 ../sync.c:3172 #, c-format msgid " This Username-->\"%s\"\n" msgstr " Questo nome utente -->\"%s\"\n" #: ../sync.c:3130 ../sync.c:3152 ../sync.c:3173 #, c-format msgid " This User ID-->%d\n" msgstr " Questo ID utente -->%d\n" #: ../sync.c:3194 #, c-format msgid "Username is \"%s\"\n" msgstr "Il nome utente è \"%s\"\n" #: ../sync.c:3195 #, c-format msgid "User ID is %d\n" msgstr "L'ID utente è %d\n" #: ../sync.c:3197 #, c-format msgid "lastSyncPC = %d\n" msgstr "Ultima Sync = %d\n" #: ../sync.c:3198 #, c-format msgid "This PC = %lu\n" msgstr "Questo PC = %lu\n" #: ../sync.c:3222 msgid "Sync canceled\n" msgstr "Sincronizzazione annullata\n" #: ../sync.c:3245 msgid "Finished restoring handheld.\n" msgstr "Ripristino handheld completato.\n" #: ../sync.c:3246 msgid "You may need to sync to update J-Pilot.\n" msgstr "È possibile che sia necessario aggiornare J-Pilot.\n" #: ../sync.c:3268 msgid "Doing a fast sync.\n" msgstr "Esegui sincronizzaz. rapida.\n" #: ../sync.c:3281 msgid "Doing a slow sync.\n" msgstr "Eseguendo sincronizzaz. lenta.\n" #: ../sync.c:3356 msgid "Thank you for using J-Pilot." msgstr "Grazie per aver scelto J-Pilot." #: ../sync.c:3401 ../sync.c:3469 msgid "Finished.\n" msgstr "Completato.\n" #: ../sync.c:3436 #, c-format msgid "%s: sync process already in progress (process ID = %d)\n" msgstr "" #: ../sync.c:3437 #, fuzzy, c-format msgid "" "%s: press the HotSync button on the cradle\n" " or stop the sync by using the cancel sync button\n" " or stop the sync by typing \"kill %d\" at the command line\n" msgstr " Premere il tasto Hot-Sync ora\n" #: ../sync.c:3468 #, c-format msgid "Exiting with status %s\n" msgstr "Uscita con stato %s\n" #: ../todo.c:266 #, c-format msgid "ToDo description text > %d, truncating to %d\n" msgstr "" "Testo di descrizione dell'impegno > %d caratteri, troncato a %d caratteri\n" #: ../todo.c:272 #, c-format msgid "ToDo note text > %d, truncating to %d\n" msgstr "Testo dell'impegno > %d caratteri, troncato a %d caratteri\n" #: ../todo_gui.c:161 msgid "Due Date" msgstr "Data di scadenza" #: ../todo_gui.c:532 msgid "File doesn't appear to be todo.dat format\n" msgstr "Il file non sembra avere un formato todo.dat.\n" #: ../todo_gui.c:596 msgid "DAT/TDA (Palm Archive Formats)" msgstr "" #: ../todo_gui.c:688 #, c-format msgid "" "ToDo exported from %s %s on %s\n" "\n" msgstr "" #: ../todo_gui.c:726 #, c-format msgid "Can't export todo %d\n" msgstr "Impossibile esportare impegno %d\n" #: ../todo_gui.c:766 #, fuzzy, c-format msgid "Due Date: None\n" msgstr "Data di scadenza" #: ../todo_gui.c:769 #, fuzzy, c-format msgid "Due Date: %s\n" msgstr "Data di scadenza" #: ../todo_gui.c:771 #, fuzzy, c-format msgid "Priority: %d\n" msgstr "Priorità: " #: ../todo_gui.c:772 #, fuzzy, c-format msgid "Completed: %s\n" msgstr "Completato" #: ../todo_gui.c:774 #, c-format msgid "Description: %s\n" msgstr "" #: ../todo_gui.c:777 #, c-format msgid "" "Note: %s\n" "\n" msgstr "" #: ../todo_gui.c:1610 msgid "Priority out of range\n" msgstr "Priorità fuori dall'intervallo\n" #: ../todo_gui.c:1932 ../KeyRing/keyring.c:1310 #, c-format msgid "No date" msgstr "Nessuna data" #. Completed checkbox #: ../todo_gui.c:2414 msgid "Completed" msgstr "Completato" #: ../todo_gui.c:2421 #, fuzzy msgid "Priority:" msgstr "Priorità: " #: ../todo_gui.c:2423 msgid "Set priority Alt+#" msgstr "" #: ../todo_gui.c:2444 msgid "Date Due:" msgstr "Data di scadenza:" #: ../utils.c:332 msgid "Today" msgstr "Oggi" #: ../utils.c:577 #, c-format msgid "Couldn't find empty DB file %s: %s\n" msgstr "Impossibile trovare un file DB vuoto %s: %s\n" #: ../utils.c:580 msgid " may not be installed.\n" msgstr " potrebbe non essere installato.\n" #. Can't create directory #: ../utils.c:615 ../utils.c:619 #, c-format msgid "Can't create directory %s\n" msgstr "Impossibile creare la directory %s\n" #: ../utils.c:625 #, fuzzy, c-format msgid "%s is not a directory\n" msgstr "%s è una directory" #: ../utils.c:630 #, fuzzy, c-format msgid "Unable to get write permission for directory %s\n" msgstr "Impossibili scrivere file nella directory %s\n" #: ../utils.c:1330 ../utils.c:1354 msgid "Save Changed Record?" msgstr "Salvare le voci modificate?" #: ../utils.c:1331 ../utils.c:1355 msgid "Do you want to save the changes to this record?" msgstr "Salvare le modifiche a questa voce?" #: ../utils.c:1336 ../utils.c:1360 msgid "Save New Record?" msgstr "Salvare la nuova voce?" #: ../utils.c:1337 ../utils.c:1361 msgid "Do you want to save this new record?" msgstr "Salvare questa nuova voce?" #: ../utils.c:1652 msgid "infinite loop, breaking\n" msgstr "ciclo infinito, interrotto\n" #: ../utils.c:1876 #, fuzzy, c-format msgid " -p skip loading plugins\n" msgstr " -p salta il caricamento dei plugin.\n" #: ../utils.c:1877 #, fuzzy, c-format msgid " -a ignore missed alarms since the last time program was run\n" msgstr " -a ignora gli allarmi mancati dall'ultima esecuzione del programma.\n" #: ../utils.c:1878 #, fuzzy, c-format msgid " -A ignore all alarms past and future\n" msgstr " -A ignora tutti gli allarmi passati e futuri.\n" #: ../utils.c:1879 #, c-format msgid " -s start sync using existing instance of GUI\n" msgstr "" #: ../utils.c:1880 #, c-format msgid " -i iconify program immediately after launch\n" msgstr "" #: ../utils.c:1881 #, c-format msgid "" " -geometry {X geometry} use specified geometry for main window\n" "\n" msgstr "" #: ../utils.c:1882 #, fuzzy, c-format msgid " The PILOTPORT and PILOTRATE environment variables specify\n" msgstr "" " Le variabili d'ambiente PILOTPORT e PILOTRATE sono usate per specificare\n" #: ../utils.c:1883 #, c-format msgid " which port to sync on, and at what speed.\n" msgstr " su quale porta sincronizzarsi e a quale velocità.\n" #: ../utils.c:1884 #, c-format msgid " If PILOTPORT is not set then it defaults to /dev/pilot.\n" msgstr " Se PILOTPORT non è impostato, è predefinito a /dev/pilot.\n" #: ../utils.c:1921 msgid "Error reading file" msgstr "Errore durante la lettura del file" #: ../utils.c:1971 msgid "Date compiled" msgstr "Data di compilazione" #: ../utils.c:1972 msgid "Compiled with these options:" msgstr "Compilato con queste opzioni:" #: ../utils.c:1974 msgid "Installed Path" msgstr "Percorso di installazione" #: ../utils.c:1976 msgid "pilot-link version" msgstr "" #: ../utils.c:1980 msgid "USB support" msgstr "Supporto USB" #: ../utils.c:1981 ../utils.c:1984 ../utils.c:1990 ../utils.c:1996 #: ../utils.c:2002 ../utils.c:2008 ../utils.c:2013 msgid "yes" msgstr "sì" #: ../utils.c:1982 msgid "Private record support" msgstr "Supporto voci private" #: ../utils.c:1986 ../utils.c:1992 ../utils.c:1998 ../utils.c:2004 #: ../utils.c:2010 msgid "no" msgstr "no" #: ../utils.c:1988 msgid "Datebk support" msgstr "Supporto agenda" #: ../utils.c:1994 msgid "Plugin support" msgstr "Supporto plugin" #: ../utils.c:2000 msgid "Manana support" msgstr "Supporto Manana" #: ../utils.c:2006 msgid "NLS support (foreign languages)" msgstr "Supporto NLS (lingue straniere)" #: ../utils.c:2012 msgid "GTK2 support" msgstr "Supporto GTK2" #. No HOME var #: ../utils.c:2055 msgid "Can't get HOME environment variable\n" msgstr "Impossibile leggere la variabile d'ambiente HOME\n" #: ../utils.c:2062 #, fuzzy msgid "HOME environment variable is too long to process\n" msgstr "La variabile d'ambiente HOME è troppo lunga per jpilot\n" #: ../utils.c:2557 #, fuzzy msgid "Edit Categories..." msgstr "Modifica categorie" #: ../utils.c:3223 msgid "PC ID is 0.\n" msgstr "Il PC ID è 0.\n" #: ../utils.c:3224 #, fuzzy, c-format msgid "Generated a new PC ID. It is %lu\n" msgstr "Ho generato un nuovo PC ID: è %lu\n" #: ../utils.c:3309 msgid "Invalid UTF-8 encoding in export string\n" msgstr "" #: ../utils.c:3470 #, c-format msgid "Today is %A, %x %X" msgstr "Oggi è %A, %x %X" #: ../utils.c:3472 #, c-format msgid "Today is %%A, %s %s" msgstr "Oggi è %%A, %s %s" #: ../utils.c:3701 #, c-format msgid "" "Incorrect header format for CSV import\n" "Check line 1 of file %s\n" "Aborting import\n" msgstr "" #: ../utils.c:3738 #, fuzzy, c-format msgid "Error writing version header to file: %s%s\n" msgstr "Errore durante l'apertura del file: next_id\n" #: ../utils.c:3743 #, fuzzy, c-format msgid "Error writing next id to file: %s%s" msgstr "Errore durante l'apertura del file: next_id\n" #: ../weekview_gui.c:297 msgid "Weekly View" msgstr "Visualizzaz. settimanale" #: ../weekview_gui.c:337 msgid "Last week Alt+LeftArrow" msgstr "" #: ../weekview_gui.c:366 msgid "Next week Alt+RightArrow" msgstr "" #: ../Expense/expense.c:97 msgid "Australia" msgstr "Australia" #: ../Expense/expense.c:98 msgid "Austria" msgstr "Austria" #: ../Expense/expense.c:99 msgid "Belgium" msgstr "Belgio" #: ../Expense/expense.c:100 msgid "Brazil" msgstr "Brasile" #: ../Expense/expense.c:101 msgid "Canada" msgstr "Canada" #: ../Expense/expense.c:102 msgid "Denmark" msgstr "Danimarca" #: ../Expense/expense.c:103 msgid "EU (Euro)" msgstr "EU (Euro)" #: ../Expense/expense.c:104 msgid "Finland" msgstr "Finlandia" #: ../Expense/expense.c:105 msgid "France" msgstr "Francia" #: ../Expense/expense.c:106 msgid "Germany" msgstr "Germania" #: ../Expense/expense.c:107 msgid "Hong Kong" msgstr "Hong Kong" #: ../Expense/expense.c:108 msgid "Iceland" msgstr "Islanda" #: ../Expense/expense.c:109 msgid "India" msgstr "India" #: ../Expense/expense.c:110 msgid "Indonesia" msgstr "Indonesia" #: ../Expense/expense.c:111 msgid "Ireland" msgstr "Irlanda" #: ../Expense/expense.c:112 msgid "Italy" msgstr "Italia" #: ../Expense/expense.c:113 msgid "Japan" msgstr "Giappone" #: ../Expense/expense.c:114 msgid "Korea" msgstr "Corea" #: ../Expense/expense.c:115 msgid "Luxembourg" msgstr "Lussemburgo" #: ../Expense/expense.c:116 msgid "Malaysia" msgstr "Malesia" #: ../Expense/expense.c:117 msgid "Mexico" msgstr "Messico" #: ../Expense/expense.c:118 msgid "Netherlands" msgstr "Paesi Bassi" #: ../Expense/expense.c:119 msgid "New Zealand" msgstr "Nuova Zelanda" #: ../Expense/expense.c:120 msgid "Norway" msgstr "Norvegia" #: ../Expense/expense.c:121 msgid "P.R.C." msgstr "Cina" #: ../Expense/expense.c:122 msgid "Philippines" msgstr "Filippine" #: ../Expense/expense.c:123 msgid "Singapore" msgstr "Singapore" #: ../Expense/expense.c:124 msgid "Spain" msgstr "Spagna" #: ../Expense/expense.c:125 msgid "Sweden" msgstr "Svezia" #: ../Expense/expense.c:126 msgid "Switzerland" msgstr "Svizzera" #: ../Expense/expense.c:127 msgid "Taiwan" msgstr "Taiwan" #: ../Expense/expense.c:128 msgid "Thailand" msgstr "Tailandia" #: ../Expense/expense.c:129 msgid "United Kingdom" msgstr "Regno Unito" #: ../Expense/expense.c:130 msgid "United States" msgstr "Stati Uniti" #: ../Expense/expense.c:518 ../Expense/expense.c:529 msgid "Expense" msgstr "Spese" #: ../Expense/expense.c:550 ../Expense/expense.c:1388 msgid "Airfare" msgstr "AirFare" #: ../Expense/expense.c:552 ../Expense/expense.c:1389 msgid "Breakfast" msgstr "Colazione" #: ../Expense/expense.c:554 ../Expense/expense.c:1390 msgid "Bus" msgstr "Autobus" #: ../Expense/expense.c:556 ../Expense/expense.c:1391 msgid "BusinessMeals" msgstr "Pranzi di lavoro" #: ../Expense/expense.c:558 ../Expense/expense.c:1392 msgid "CarRental" msgstr "Affitto auto" #: ../Expense/expense.c:560 ../Expense/expense.c:1393 msgid "Dinner" msgstr "Cena" #: ../Expense/expense.c:562 ../Expense/expense.c:1394 msgid "Entertainment" msgstr "Divertimento" #: ../Expense/expense.c:564 ../Expense/expense.c:1395 msgid "Fax" msgstr "Fax" #: ../Expense/expense.c:566 ../Expense/expense.c:1396 msgid "Gas" msgstr "Gas" #: ../Expense/expense.c:568 ../Expense/expense.c:1397 msgid "Gifts" msgstr "Regali" #: ../Expense/expense.c:570 ../Expense/expense.c:1398 msgid "Hotel" msgstr "Hotel" #: ../Expense/expense.c:572 ../Expense/expense.c:1399 msgid "Incidentals" msgstr "Varie" #: ../Expense/expense.c:574 ../Expense/expense.c:1400 msgid "Laundry" msgstr "Lavanderia" #: ../Expense/expense.c:576 ../Expense/expense.c:1401 msgid "Limo" msgstr "Limo" #: ../Expense/expense.c:578 ../Expense/expense.c:1402 msgid "Lodging" msgstr "Alloggio" #: ../Expense/expense.c:580 ../Expense/expense.c:1403 msgid "Lunch" msgstr "Pranzo" #: ../Expense/expense.c:582 ../Expense/expense.c:1404 msgid "Mileage" msgstr "Chilometraggio" #: ../Expense/expense.c:586 ../Expense/expense.c:1406 msgid "Parking" msgstr "Parcheggio" #: ../Expense/expense.c:588 ../Expense/expense.c:1407 msgid "Postage" msgstr "Posta" #: ../Expense/expense.c:590 ../Expense/expense.c:1408 msgid "Snack" msgstr "Snack" #: ../Expense/expense.c:592 ../Expense/expense.c:1409 msgid "Subway" msgstr "Metrò" #: ../Expense/expense.c:594 ../Expense/expense.c:1410 msgid "Supplies" msgstr "Supplementi" #: ../Expense/expense.c:596 ../Expense/expense.c:1411 msgid "Taxi" msgstr "Taxi" #: ../Expense/expense.c:598 ../Expense/expense.c:1412 msgid "Telephone" msgstr "Telefono" #: ../Expense/expense.c:600 ../Expense/expense.c:1413 msgid "Tips" msgstr "Mance" #: ../Expense/expense.c:602 ../Expense/expense.c:1414 msgid "Tolls" msgstr "Pedaggi" #: ../Expense/expense.c:604 ../Expense/expense.c:1415 msgid "Train" msgstr "Treno" #: ../Expense/expense.c:1239 msgid "Expense: Unknown expense type\n" msgstr "Spese: tipo di spesa sconosciuto\n" #: ../Expense/expense.c:1245 msgid "Expense: Unknown payment type\n" msgstr "Spese: tipo di pagamento sconosciuto\n" #: ../Expense/expense.c:1377 msgid "American Express" msgstr "American Express" #: ../Expense/expense.c:1378 msgid "Cash" msgstr "Contante" #: ../Expense/expense.c:1379 msgid "Check" msgstr "Assegni" #: ../Expense/expense.c:1380 msgid "Credit Card" msgstr "Carta di credito" #: ../Expense/expense.c:1381 msgid "Master Card" msgstr "Master Card" #: ../Expense/expense.c:1382 msgid "Prepaid" msgstr "Prepagati" #: ../Expense/expense.c:1383 msgid "VISA" msgstr "VISA" #: ../Expense/expense.c:1619 #, fuzzy msgid "Type" msgstr "Tipo:" #: ../Expense/expense.c:1620 #, fuzzy msgid "Amount" msgstr "Ammontare: " #. Category Menu #: ../Expense/expense.c:1704 msgid "Category:" msgstr "Categoria:" #. Type Menu #: ../Expense/expense.c:1712 msgid "Type:" msgstr "Tipo:" #. Payment Menu #: ../Expense/expense.c:1720 msgid "Payment:" msgstr "Pagamento:" #. Currency Menu #: ../Expense/expense.c:1728 msgid "Currency:" msgstr "Valuta:" #: ../Expense/expense.c:1748 msgid "Month:" msgstr "Mese: " #: ../Expense/expense.c:1762 msgid "Day:" msgstr "Giorno:" #: ../Expense/expense.c:1776 msgid "Year:" msgstr "Anno" #. Amount Entry #: ../Expense/expense.c:1789 msgid "Amount:" msgstr "Ammontare: " #. Vendor Entry #: ../Expense/expense.c:1799 msgid "Vendor:" msgstr "" #. City #: ../Expense/expense.c:1809 msgid "City:" msgstr "Città:" #. Attendees #: ../Expense/expense.c:1819 msgid "Attendees" msgstr "Partecipanti" #. ------------------------------------------- #: ../Expense/expense.c:2102 #, c-format msgid "" "%s\n" "\n" "Expense plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org" msgstr "" #: ../KeyRing/keyring.c:291 msgid "KeyRing: pack_KeyRing(): buf_size too small\n" msgstr "KeyRing: pack_KeyRing(): buf_size troppo piccolo\n" #: ../KeyRing/keyring.c:1699 msgid "Incorrect, Reenter KeyRing Password" msgstr "Sbagliata, reinserire la password per KeyRing" #: ../KeyRing/keyring.c:1701 msgid "Enter a NEW KeyRing Password" msgstr "Inserire la nuova password per KeyRing" #: ../KeyRing/keyring.c:1703 msgid "Enter KeyRing Password" msgstr "Inserire la password per KeyRing" #: ../KeyRing/keyring.c:1769 #, c-format msgid "KeyRing: file %s not found.\n" msgstr "KeyRing: file %s non trovato.\n" #: ../KeyRing/keyring.c:1770 msgid "KeyRing: Try Syncing.\n" msgstr "" #: ../KeyRing/keyring.c:1861 ../KeyRing/keyring.c:1872 msgid "KeyRing" msgstr "KeyRing" #. ------------------------------------------- #: ../KeyRing/keyring.c:1900 #, c-format msgid "" "%s\n" "\n" "KeyRing plugin for J-Pilot was written by\n" "Judd Montgomery (c) 2001.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "KeyRing is a free PalmOS program for storing\n" "passwords and other information in encrypted form\n" "http://gnukeyring.sourceforge.net" msgstr "" #: ../KeyRing/keyring.c:2137 #, c-format msgid "" "Keys exported from %s %s on %s\n" "\n" msgstr "" #: ../KeyRing/keyring.c:2162 #, fuzzy, c-format msgid "Can't export key %d\n" msgstr "Impossibile esportare appunto %d\n" #: ../KeyRing/keyring.c:2229 msgid "B-FOLDERS CSV" msgstr "" #. Change Password button #: ../KeyRing/keyring.c:2384 msgid "" "Change\n" "KeyRing\n" "Password" msgstr "" "Cambia la\n" "password\n" "del KeyRing" #. Clist #: ../KeyRing/keyring.c:2497 msgid "Changed" msgstr "Cambiato" #: ../KeyRing/keyring.c:2499 msgid "Account" msgstr "Conto" #. Name entry #: ../KeyRing/keyring.c:2593 msgid "name: " msgstr "nome: " #. Account entry #: ../KeyRing/keyring.c:2601 msgid "account: " msgstr "conto: " #. Password entry #: ../KeyRing/keyring.c:2609 msgid "password: " msgstr "password: " #. Last Changed entry #: ../KeyRing/keyring.c:2616 msgid "last changed: " msgstr "ultima modifica: " #. Generate Password button (creates random password) #: ../KeyRing/keyring.c:2626 msgid "Generate Password" msgstr "Genera la password" #: ../SyncTime/synctime.c:61 msgid "SyncTime" msgstr "" #. ------------------------------------------- #: ../SyncTime/synctime.c:72 #, c-format msgid "" "%s\n" "\n" "SyncTime plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "SyncTime WILL NOT work with PalmOS 3.3!" msgstr "" #: ../SyncTime/synctime.c:106 msgid "synctime: Palm OS Version 3.25 and 3.30 do not support SyncTime\n" msgstr "" #: ../SyncTime/synctime.c:107 msgid "synctime: NOT setting the time on the pilot\n" msgstr "" #: ../SyncTime/synctime.c:112 msgid "synctime: Setting the time on the pilot... " msgstr "" #: ../SyncTime/synctime.c:117 msgid "Done\n" msgstr "Fatto\n" #, fuzzy #~ msgid " -i makes program iconify itself upon launch.\n" #~ msgstr " -i avvia jpilot iconificato\n" #~ msgid "Your HOME environment variable is too long(>1024)\n" #~ msgstr "La variabile d'ambiente HOME è troppo lunga (> 1024)\n" #~ msgid "W" #~ msgstr "S" #~ msgid "M" #~ msgstr "M" #~ msgid "This Event has no particular time" #~ msgstr "Questo evento non ha un orario particolare" #~ msgid "Start Time" #~ msgstr "Ora di inizio" #~ msgid "End Time" #~ msgstr "Ora di fine" #, fuzzy #~ msgid "email command empty\n" #~ msgstr "Comando di posta" #~ msgid "Unable to open %s%s file\n" #~ msgstr "Impossibile aprire il file %s%s\n" #~ msgid "Unable to open %s.alarms file\n" #~ msgstr "Impossibile aprire il file %s.alarms\n" #~ msgid "You can't edit category %s.\n" #~ msgstr "Impossibile modificare la categoria %s.\n" #~ msgid "You can't delete category %s.\n" #~ msgstr "Impossibile eliminare la categoria %s.\n" # NdT: è l'intestazione di una colonna, sta meglio con la maiuscola #~ msgid "category name" #~ msgstr "Nome categoria" #~ msgid "debug" #~ msgstr "debug" #, fuzzy #~ msgid "End Date: Never\n" #~ msgstr "Termina il" #, fuzzy #~ msgid "Repeat Days: " #~ msgstr "Ripeti i giorni:" #~ msgid "Close" #~ msgstr "Chiudi" #~ msgid "none" #~ msgstr "nessuno" #~ msgid "Unknown repeatType found in DatebookDB\n" #~ msgstr "repeatType sconosciuto trovato in DatebookDB\n" #~ msgid "Dismiss" #~ msgstr "Chiudi" #~ msgid "Done" #~ msgstr "Fatto" #~ msgid "Add" #~ msgstr "Aggiungi" #~ msgid "Remove" #~ msgstr "Rimuovi" #~ msgid "User name" #~ msgstr "Nome utente" #~ msgid " -v = version\n" #~ msgstr " -v = versione\n" #~ msgid " -h = help\n" #~ msgstr " -h = aiuto\n" #~ msgid " -d = run in debug mode\n" #~ msgstr " -d = esegue in modalità di debug\n" #~ msgid " -P = do not load plugins.\n" #~ msgstr " -P = non carica i plugin.\n" #~ msgid " -b = Do a sync and then a backup, otherwise just do a sync.\n" #~ msgstr "" #~ " -b = sincronizza e poi fa un backup, altrimenti sincronizza solamente.\n" #~ msgid "Invalid geometry specification: \"%s\"\n" #~ msgstr "Specificazione della geometria non valida: \"%s\"\n" #~ msgid "/Help/PayBack program" #~ msgstr "/Aiuto/Payback program" #~ msgid "Font Selection Dialog" #~ msgstr "Finestra di selezione carattere" #~ msgid "Show private records" #~ msgstr "Mostra le voci private" #~ msgid "Hide private records" #~ msgstr "Nascondi le voci private" #~ msgid "Mask private records" #~ msgstr "Maschera le voci private" #~ msgid "Font" #~ msgstr "Carattere" #~ msgid "Go to the menu \"" #~ msgstr "Vai al menù \"" #~ msgid "\" and change the \"" #~ msgstr "\" e cambia il \"" #~ msgid "\"." #~ msgstr "\"." #, fuzzy #~ msgid "Couldn't open PC records file\n" #~ msgstr "Impossibile trovare la voce da eliminare\n" #~ msgid "The first day of the week is " #~ msgstr "Il primo giorno della settimana è " #~ msgid "One record" #~ msgstr "Una voce" #~ msgid "Finished\n" #~ msgstr "Completato\n" #~ msgid "Last Username = [%s]\n" #~ msgstr "Ultimo nome utente = [%s]\n" #~ msgid "Last UserID = %d\n" #~ msgstr "Ultimo ID utente = %d\n" #~ msgid "Username = [%s]\n" #~ msgstr "Nome utente = [%s]\n" #~ msgid "userID = %d\n" #~ msgstr "ID utente = %d\n" #~ msgid "number of records = %d\n" #~ msgstr "Numero di voci: %d\n" #~ msgid "palm: number of records = %d\n" #~ msgstr "Palm: numero di voci: %d\n" #~ msgid "disk: number of records = %d\n" #~ msgstr "Disco: numero di voci: %d\n" #, fuzzy #~ msgid "Your HOME environment variable is too long for me\n" #~ msgstr "La variabile d'ambiente HOME è troppo lunga (> 1024)\n" #~ msgid "" #~ "%s doesn't appear to be a directory.\n" #~ "I need it to be.\n" #~ msgstr "" #~ "%s non sembra essere una directory.\n" #~ "Deve esserlo.\n" #, fuzzy #~ msgid "I can't write files in directory %s\n" #~ msgstr "Impossibile creare la directory %s\n" #~ msgid "Expense: Unknown category\n" #~ msgstr "Spese: categoria sconosciuta\n" #~ msgid "Field" #~ msgstr "Campo" #~ msgid "Serial Port (/dev/ttyS0, /dev/pilot)" #~ msgstr "Porta seriale (/dev/ttyS0, /dev/pilot)" #~ msgid "kana(" #~ msgstr "kana(" #~ msgid "Quick View" #~ msgstr "Preferiti" #~ msgid "Serial Rate (Does not affect USB)" #~ msgstr "Velocità seriale (non riguarda USB)" #~ msgid "Sync memo32 (pedit32)" #~ msgstr "Sincronizzare Memo32 (pedit32)" #~ msgid "AmEx" #~ msgstr "AmEx" #~ msgid "CreditCard" #~ msgstr "CartaCredito" #~ msgid "MasterCard" #~ msgstr "MasterCard" #~ msgid "Quit" #~ msgstr "Esci" #~ msgid "Help" #~ msgstr "Aiuto" #~ msgid "Directory" #~ msgstr "Directory" #~ msgid "Overwrite File" #~ msgstr "Sovrascrivi file" #~ msgid "Filename" #~ msgstr "Nome del file" #~ msgid "Answer: " #~ msgstr "Risposta: " #~ msgid "Sync" #~ msgstr "Sincronizza" #~ msgid " -p do not load plugins.\n" #~ msgstr " -p non carica i plugin.\n" jpilot-1.8.1.2/po/nb.po0000644000175000017500000023526211702307203011465 00000000000000# J-Pilot in Norwegian / J-Pilot på norsk. # # Ragnar Wisløff , 2000, 2001. msgid "" msgstr "" "Project-Id-Version: JPilot\n" "Report-Msgid-Bugs-To: jpilot-devel@jpilot.org\n" "POT-Creation-Date: 2012-01-08 13:39+0100\n" "PO-Revision-Date: 2001-08-16 14:53GMT+1\n" "Last-Translator: Ragnar Wisløff \n" "Language-Team: Norwegian Bokmaal \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 0.9.5\n" #: ../address.c:276 ../address.c:448 ../alarms.c:332 ../calendar.c:309 #: ../calendar.c:547 ../contact.c:324 ../contact.c:738 ../dat.c:189 #: ../dat.c:655 ../dat.c:859 ../dat.c:993 ../dat.c:1132 ../datebook.c:130 #: ../datebook.c:165 ../datebook.c:172 ../datebook.c:231 ../jpilot.c:1254 #: ../jpilot-merge.c:95 ../libplugin.c:208 ../libplugin.c:455 #: ../libplugin.c:534 ../libplugin.c:563 ../libplugin.c:811 ../memo.c:214 #: ../memo.c:287 ../otherconv.c:280 ../plugins.c:112 ../prefs.c:350 #: ../prefs.c:375 ../prefs.c:906 ../sync.c:2170 ../sync.c:2187 ../sync.c:2296 #: ../sync.c:2310 ../sync.c:2507 ../sync.c:2646 ../todo.c:236 ../todo.c:490 #: ../utils.c:748 #, c-format msgid "Out of memory" msgstr "" #: ../address.c:332 ../calendar.c:230 ../contact.c:580 ../datebook.c:494 #: ../memo.c:87 ../todo.c:90 #, fuzzy, c-format msgid "%s:%d Error reading application info %s\n" msgstr "Feil under lesing" #: ../address.c:344 ../address_gui.c:2285 ../address_gui.c:2324 #: ../calendar.c:246 ../contact.c:596 ../datebook.c:514 ../datebook_gui.c:3737 #: ../libplugin.c:405 ../libplugin.c:431 ../memo.c:99 ../memo_gui.c:863 #: ../todo_gui.c:1070 ../Expense/expense.c:1105 #, fuzzy, c-format msgid "Error reading file: %s\n" msgstr "Feil under lesing" #: ../address.c:492 ../calendar.c:598 ../calendar.c:607 ../contact.c:780 #: ../libplugin.c:846 ../memo.c:353 ../todo.c:302 ../utils.c:1124 #: ../utils.c:1131 ../utils.c:1138 ../utils.c:1145 ../utils.c:1152 #: ../utils.c:1159 msgid "error" msgstr "feil" #: ../address_gui.c:325 ../datebook_gui.c:2844 ../memo_gui.c:176 #: ../todo_gui.c:292 ../KeyRing/keyring.c:834 msgid "" "This record is deleted.\n" "Undelete it or copy it to make changes.\n" msgstr "" #: ../address_gui.c:452 ../address_gui.c:458 ../address_gui.c:469 #: ../address_gui.c:481 ../address_gui.c:493 ../address_gui.c:506 #, c-format msgid "%s%s: %s" msgstr "" #: ../address_gui.c:542 ../category.c:118 ../category.c:176 ../category.c:330 #: ../category.c:336 ../datebook_gui.c:430 ../jpilot-merge.c:88 #: ../jpilot-merge.c:146 ../jpilot-merge.c:151 ../memo_gui.c:280 #: ../sync.c:2129 ../sync.c:2135 ../sync.c:2481 ../sync.c:2842 #: ../todo_gui.c:416 ../utils.c:2674 ../utils.c:2711 ../utils.c:2717 #: ../utils.c:2776 ../utils.c:2782 ../utils.c:2836 ../utils.c:2890 #: ../utils.c:2896 ../utils.c:2954 ../utils.c:2961 #, fuzzy, c-format msgid "Unable to open file: %s\n" msgstr "Kan ikke åpne loggfil\n" #: ../address_gui.c:561 #, fuzzy, c-format msgid "Unable to read file: %s\n" msgstr "Kan ikke åpne loggfil\n" #: ../address_gui.c:715 msgid "File doesn't appear to be address.dat format\n" msgstr "" #: ../address_gui.c:725 ../datebook_gui.c:647 ../memo_gui.c:324 #: ../memo_gui.c:417 ../todo_gui.c:542 ../Expense/expense.c:1384 msgid "Unfiled" msgstr "" #: ../address_gui.c:781 ../datebook_gui.c:698 ../memo_gui.c:470 #: ../todo_gui.c:595 msgid "CSV (Comma Separated Values)" msgstr "" #: ../address_gui.c:782 msgid "DAT/ABA (Palm Archive Formats)" msgstr "" #. current category name #. previous category name #. entry text, in Pilot character set #: ../address_gui.c:868 ../category.c:408 ../datebook_gui.c:729 #: ../jpilot.c:234 ../jpilot.c:278 ../jpilot.c:352 ../jpilot.c:396 #: ../jpilot.c:953 ../memo_gui.c:506 ../todo_gui.c:635 ../utils.c:1305 #: ../KeyRing/keyring.c:2090 msgid "OK" msgstr "Greit" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 #, fuzzy msgid "No" msgstr "Ingen" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 #, fuzzy msgid "Yes" msgstr "år" #: ../address_gui.c:888 ../datebook_gui.c:753 ../memo_gui.c:520 #: ../todo_gui.c:655 ../KeyRing/keyring.c:2104 #, c-format msgid "%s is a directory" msgstr "" #: ../address_gui.c:890 ../address_gui.c:907 ../datebook_gui.c:755 #: ../datebook_gui.c:772 ../memo_gui.c:522 ../memo_gui.c:539 ../todo_gui.c:657 #: ../todo_gui.c:674 ../KeyRing/keyring.c:2106 ../KeyRing/keyring.c:2123 #, fuzzy msgid "Error Opening File" msgstr "Feil under lesing" #: ../address_gui.c:894 ../datebook_gui.c:759 ../memo_gui.c:526 #: ../todo_gui.c:661 ../KeyRing/keyring.c:2110 #, c-format msgid "Do you want to overwrite file %s?" msgstr "" #: ../address_gui.c:896 ../datebook_gui.c:761 ../memo_gui.c:528 #: ../todo_gui.c:663 ../KeyRing/keyring.c:2112 msgid "Overwrite File?" msgstr "" #: ../address_gui.c:905 ../datebook_gui.c:770 ../memo_gui.c:537 #: ../todo_gui.c:672 ../KeyRing/keyring.c:2121 #, fuzzy, c-format msgid "Error opening file: %s" msgstr "Feil under lesing" #: ../address_gui.c:922 #, c-format msgid "" "Address exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:925 #, c-format msgid "" "Contact exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:989 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ldif file may not be standards-compliant\n" msgstr "" #: ../address_gui.c:1002 #, c-format msgid "Can't export address %d\n" msgstr "" #: ../address_gui.c:1008 ../memo_gui.c:630 ../todo_gui.c:760 #, fuzzy, c-format msgid "Category: %s\n" msgstr "Kategori" #: ../address_gui.c:1010 ../memo_gui.c:632 ../todo_gui.c:763 #, fuzzy, c-format msgid "Private: %s\n" msgstr "Privat" #: ../address_gui.c:1018 ../address_gui.c:1032 ../address_gui.c:1036 #: ../address_gui.c:1045 ../address_gui.c:1048 #, c-format msgid "%s: " msgstr "" #: ../address_gui.c:1022 #, c-format msgid "%s\n" msgstr "" #. E-mail should be the Palm dropdown menu item for email #. Set dial/email button text and callback data #: ../address_gui.c:1196 ../address_gui.c:2846 ../address_gui.c:4185 msgid "E-mail" msgstr "" #: ../address_gui.c:1482 ../datebook_gui.c:1147 ../memo_gui.c:640 #: ../todo_gui.c:844 ../KeyRing/keyring.c:2214 msgid "Unknown export type\n" msgstr "" #: ../address_gui.c:1508 ../datebook_gui.c:1226 ../memo_gui.c:469 #: ../memo_gui.c:666 ../todo_gui.c:870 ../KeyRing/keyring.c:2229 msgid "Text" msgstr "" #: ../address_gui.c:1509 ../datebook_gui.c:1227 ../memo_gui.c:667 #: ../todo_gui.c:871 ../KeyRing/keyring.c:2229 msgid "CSV" msgstr "" #: ../address_gui.c:1510 #, fuzzy msgid "vCard" msgstr "Fjern" #: ../address_gui.c:1511 msgid "vCard (Optimized for Gmail/Android Import)" msgstr "" #: ../address_gui.c:1512 msgid "ldif" msgstr "" #. Initialize variable if default case taken #: ../address_gui.c:1777 ../address_gui.c:3902 #, fuzzy msgid "Last Name/Company" msgstr "Navn/Bedrift" #: ../address_gui.c:1780 ../address_gui.c:3905 #, fuzzy msgid "First Name/Company" msgstr "Navn/Bedrift" #: ../address_gui.c:1783 ../address_gui.c:3908 #, fuzzy msgid "Company/Last Name" msgstr "Bedrift/Navn" #: ../address_gui.c:1920 ../datebook_gui.c:2907 ../memo_gui.c:1036 #: ../todo_gui.c:1329 ../KeyRing/keyring.c:1181 msgid "You can't modify a record that is deleted\n" msgstr "" #. Illegal category, Assume that category 0 is Unfiled and valid #: ../address_gui.c:2119 ../address_gui.c:2370 ../address_gui.c:2803 #: ../address_gui.c:2809 ../address_gui.c:3601 ../datebook_gui.c:1994 #: ../datebook_gui.c:3434 ../datebook_gui.c:3783 ../datebook_gui.c:4074 #: ../memo_gui.c:900 ../memo_gui.c:946 ../memo_gui.c:1161 ../memo_gui.c:1548 #: ../todo_gui.c:1106 ../todo_gui.c:1200 ../todo_gui.c:1589 ../todo_gui.c:2141 #: ../Expense/expense.c:689 ../Expense/expense.c:1143 #: ../Expense/expense.c:1227 ../Expense/expense.c:1887 #: ../KeyRing/keyring.c:1070 ../KeyRing/keyring.c:1512 #: ../KeyRing/keyring.c:1574 ../KeyRing/keyring.c:2688 msgid "Category is not legal\n" msgstr "" #: ../address_gui.c:2179 ../alarms.c:598 ../dialer.c:164 #, fuzzy, c-format msgid "executing command = [%s]\n" msgstr "Utfør denne kommandoen" #: ../address_gui.c:2181 #, c-format msgid "Failed to execute [%s]\n" msgstr "" #: ../address_gui.c:2425 msgid "Birthday" msgstr "" #: ../address_gui.c:2521 msgid "External program not found, or other error" msgstr "" #: ../address_gui.c:2523 msgid "" "J-Pilot can not find the external program \"convert\"\n" "or an error occurred while executing convert.\n" "You may need to install package ImageMagick" msgstr "" #: ../address_gui.c:2524 #, c-format msgid "Command executed was \"%s\"\n" msgstr "" #: ../address_gui.c:2525 #, c-format msgid "return code was %d\n" msgstr "" #: ../address_gui.c:2603 #, fuzzy msgid "chdir() failed\n" msgstr "Ferdig\n" #: ../address_gui.c:2606 msgid "Add Photo" msgstr "" #. Category menu #: ../address_gui.c:2828 ../KeyRing/keyring.c:2585 msgid "Category: " msgstr "Kategori" #: ../address_gui.c:2848 ../address_gui.c:4186 msgid "Mail" msgstr "" #. Dial Phone Button #: ../address_gui.c:2851 ../address_gui.c:4189 ../dialer.c:307 ../dialer.c:331 msgid "Dial" msgstr "" #: ../address_gui.c:3041 ../datebook_gui.c:2757 ../memo_gui.c:1228 #: ../todo_gui.c:1697 msgid "Could not get temporary file name\n" msgstr "" #: ../address_gui.c:3049 ../datebook_gui.c:2765 ../memo_gui.c:1236 #: ../todo_gui.c:1705 msgid "Could not open temporary file for external editor\n" msgstr "" #: ../address_gui.c:3089 ../datebook_gui.c:2806 ../memo_gui.c:1277 #: ../todo_gui.c:1746 msgid "Could not open temporary file from external editor\n" msgstr "" #: ../address_gui.c:3261 ../address_gui.c:3292 msgid "-Unnamed-" msgstr "" #: ../address_gui.c:3374 ../memo_gui.c:1454 ../todo_gui.c:2019 msgid "0 records" msgstr "0 poster" #: ../address_gui.c:3377 ../datebook_gui.c:2637 ../memo_gui.c:1457 #: ../todo_gui.c:2022 #, c-format msgid "%d of %d records" msgstr "%d av %d poster" #: ../address_gui.c:3772 ../address_gui.c:3780 ../KeyRing/keyring.c:2498 msgid "Name" msgstr "Navn" #: ../address_gui.c:3773 ../address_gui.c:3774 ../address_gui.c:3775 #: ../address_gui.c:3781 msgid "Address" msgstr "Adresse" #: ../address_gui.c:3776 ../address_gui.c:3782 ../Expense/expense.c:584 #: ../Expense/expense.c:1405 msgid "Other" msgstr "Andre" #. Note textbox #: ../address_gui.c:3777 ../address_gui.c:3783 ../todo_gui.c:2484 #: ../Expense/expense.c:1836 ../KeyRing/keyring.c:2632 msgid "Note" msgstr "Notat" #: ../address_gui.c:3793 msgid "Reverting to Address database\n" msgstr "" #: ../address_gui.c:3914 msgid "Phone" msgstr "Telefon" #: ../address_gui.c:3946 #, fuzzy msgid "Quick Find: " msgstr "Hurtigsøk" #. Cancel button #. Add record modification buttons #. Cancel button #: ../address_gui.c:3964 ../category.c:409 ../datebook_gui.c:1782 #: ../datebook_gui.c:5124 ../memo_gui.c:1692 ../todo_gui.c:2345 #: ../utils.c:1346 ../KeyRing/keyring.c:2528 msgid "Cancel" msgstr "Angre" #: ../address_gui.c:3964 ../datebook_gui.c:5124 ../memo_gui.c:1692 #: ../todo_gui.c:2345 ../KeyRing/keyring.c:2528 msgid "Cancel the modifications" msgstr "" #. Delete Button #. Delete button #. Delete Button #. Delete button #. Delete, Copy, New, etc. buttons #. Delete button #: ../address_gui.c:3969 ../category.c:409 ../category.c:852 #: ../datebook_gui.c:5129 ../memo_gui.c:1697 ../todo_gui.c:2350 #: ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete" msgstr "Slette" #: ../address_gui.c:3969 ../datebook_gui.c:5129 ../memo_gui.c:1697 #: ../todo_gui.c:2350 ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 #, fuzzy msgid "Delete the selected record" msgstr "%d av %d poster" #. Undelete Button #. Undelete button #. Undelete Button #. Undelete button #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 #, fuzzy msgid "Undelete" msgstr "Slette" #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 #, fuzzy msgid "Undelete the selected record" msgstr "%d av %d poster" #. Copy button #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy" msgstr "Kopier" #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 #, fuzzy msgid "Copy the selected record" msgstr "Legg til post" #. New button #. New Record button #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "New Record" msgstr "Ny post" #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 #, fuzzy msgid "Add a new record" msgstr "Legg til post" #. "Add Record" button #. Add Record button #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add Record" msgstr "Legg til post" #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 #, fuzzy msgid "Add the new record" msgstr "Legg til post" #. "Apply Changes" button #. Apply Changes button #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Apply Changes" msgstr "Lagre endringer" #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Commit the modifications" msgstr "" #. Private check box #. Private checkbox #: ../address_gui.c:4033 ../datebook_gui.c:5191 ../datebook_gui.c:5233 #: ../memo_gui.c:1747 ../todo_gui.c:2410 msgid "Private" msgstr "Privat" #: ../address_gui.c:4118 #, fuzzy msgid "Change Photo" msgstr "Angre" #: ../address_gui.c:4123 #, fuzzy msgid "Remove Photo" msgstr "Fjern" #: ../address_gui.c:4195 msgid "Show In List" msgstr "" #: ../address_gui.c:4296 #, fuzzy msgid "Reminder" msgstr "Minn meg på" #: ../address_gui.c:4312 ../datebook_gui.c:238 ../datebook_gui.c:5221 #: ../datebook_gui.c:5378 msgid "Days" msgstr "Dager" #. The Quickview (ALL) page #. All button #: ../address_gui.c:4356 ../datebook_gui.c:1478 ../datebook_gui.c:1782 #: ../utils.c:2528 msgid "All" msgstr "Alle" #: ../alarms.c:232 ../datebook_gui.c:236 ../datebook_gui.c:5215 #: ../datebook_gui.c:5372 msgid "Minutes" msgstr "Minutter" #: ../alarms.c:234 ../datebook_gui.c:237 ../datebook_gui.c:5219 #: ../datebook_gui.c:5376 msgid "Hours" msgstr "Timer" #: ../alarms.c:255 msgid "Remind me" msgstr "Minn meg på" #: ../alarms.c:425 ../alarms.c:991 ../sync.c:1639 ../sync.c:1645 #: ../utils.c:3717 #, fuzzy, c-format msgid "Unable to open file: %s%s\n" msgstr "Kan ikke åpne loggfil\n" #: ../alarms.c:512 msgid "Appointment Reminder" msgstr "Avtale-påminnelse" #: ../alarms.c:515 msgid "Past Appointment" msgstr "Forbigåtte avtaler" #: ../alarms.c:518 msgid "Postponed Appointment" msgstr "Utsatt avtale" #: ../alarms.c:521 ../datebook_gui.c:5025 msgid "Appointment" msgstr "Avtale" #: ../alarms.c:605 msgid "J-Pilot Alarm" msgstr "" #: ../category.c:131 ../category.c:188 ../sync.c:2158 ../sync.c:2495 msgid "PC file corrupt?\n" msgstr "" #: ../category.c:138 ../category.c:148 ../category.c:196 ../category.c:206 #: ../category.c:216 ../sync.c:2280 ../sync.c:2334 ../sync.c:2371 #: ../sync.c:2386 ../sync.c:2410 ../sync.c:2630 ../sync.c:2675 ../sync.c:2712 #: ../sync.c:2725 ../sync.c:2750 msgid "fseek failed - fatal error\n" msgstr "" #: ../category.c:364 ../utils.c:2738 ../utils.c:2812 ../utils.c:2916 #: ../utils.c:2981 #, fuzzy msgid "rename failed" msgstr "Innstallering av %s mislyktes" #: ../category.c:409 #, fuzzy msgid "Move" msgstr "Ma" #: ../category.c:438 ../category.c:500 ../category.c:580 ../category.c:769 msgid "Edit Categories" msgstr "" #: ../category.c:439 msgid "The maximum number of categories (16) are already used" msgstr "" #: ../category.c:442 msgid "Enter New Category" msgstr "" #: ../category.c:453 ../category.c:477 msgid "Edit Categories Error" msgstr "" #: ../category.c:454 msgid "You must select a category to rename" msgstr "" #: ../category.c:463 msgid "Enter New Category Name" msgstr "" #: ../category.c:478 msgid "You must select a category to delete" msgstr "" #: ../category.c:496 #, c-format msgid "" "There are %d records in %s.\n" "Do you want to move them to %s, or delete them?" msgstr "" #: ../category.c:556 #, c-format msgid "invalid state file %s line %d\n" msgstr "" #: ../category.c:578 #, c-format msgid "The category %s can't be used more than once" msgstr "" #. Category names in host character set #: ../category.c:735 #, fuzzy msgid "Category" msgstr "Kategori" #: ../category.c:836 msgid "New" msgstr "" #: ../category.c:843 #, fuzzy msgid "Rename" msgstr "Navn" #: ../dat.c:456 msgid "unknown type =" msgstr "" #: ../dat.c:537 #, c-format msgid "fields per row count != %d, unknown format\n" msgstr "" #: ../dat.c:551 #, c-format msgid "field count != %d, unknown format\n" msgstr "" #: ../dat.c:559 msgid "Unknown format, file has wrong schema\n" msgstr "" #: ../dat.c:560 msgid "File schema is:" msgstr "" #: ../dat.c:564 msgid "It should be:" msgstr "" #: ../dat.c:674 ../dat.c:692 ../dat.c:876 ../dat.c:889 ../dat.c:1012 #: ../dat.c:1025 ../dat.c:1149 ../dat.c:1162 #, c-format msgid "%s:%d Record %d, field %d: Invalid type. Expected %d, found %d\n" msgstr "" #: ../dat.c:675 ../dat.c:693 ../dat.c:877 ../dat.c:890 ../dat.c:994 #: ../dat.c:1013 ../dat.c:1026 ../dat.c:1150 ../dat.c:1163 msgid "read of file terminated\n" msgstr "" #: ../datebook.c:705 ../datebook_gui.c:3648 #, c-format msgid "Unknown repeatType (%d) found in DatebookDB\n" msgstr "" #: ../datebook_gui.c:241 #, fuzzy msgid "Repeat Never" msgstr "Gjenta på:" #: ../datebook_gui.c:242 #, fuzzy msgid "Repeat Daily" msgstr "Gjenta på følgende dager: " #: ../datebook_gui.c:243 #, fuzzy msgid "Repeat Weekly" msgstr "Gjenta på:" #: ../datebook_gui.c:244 #, fuzzy msgid "Repeat MonthlyByDay" msgstr "Gjenta på følgende dager: " #: ../datebook_gui.c:245 #, fuzzy msgid "Repeat MonthlyByDate" msgstr "Gjenta på følgende dager: " #: ../datebook_gui.c:246 msgid "Repeat YearlyDate" msgstr "" #: ../datebook_gui.c:247 #, fuzzy msgid "Repeat YearlyDay" msgstr "Gjenta på følgende dager: " # These days of the week are put in the buttons above the calendar and # the little buttons in the repeat weekly window. # They should be one letter if possible. The English ones get truncated to # one letter. #: ../datebook_gui.c:250 ../datebook_gui.c:257 ../datebook_gui.c:4803 #: ../datebook_gui.c:4810 msgid "Su" msgstr "Sø" #: ../datebook_gui.c:251 ../datebook_gui.c:4804 msgid "Mo" msgstr "Ma" #: ../datebook_gui.c:252 ../datebook_gui.c:4805 msgid "Tu" msgstr "Ti" #: ../datebook_gui.c:253 ../datebook_gui.c:4806 msgid "We" msgstr "On" #: ../datebook_gui.c:254 ../datebook_gui.c:4807 #, fuzzy msgid "Th" msgstr "To" #: ../datebook_gui.c:255 ../datebook_gui.c:4808 msgid "Fr" msgstr "Fr" #: ../datebook_gui.c:256 ../datebook_gui.c:4809 msgid "Sa" msgstr "Lø" #: ../datebook_gui.c:269 #, c-format msgid "" "Start Date: %s\n" "Time: Event" msgstr "" #: ../datebook_gui.c:277 #, c-format msgid "" "Start Date: %s\n" "Time: %s to %s" msgstr "" #: ../datebook_gui.c:287 ../datebook_gui.c:297 msgid "Unknown" msgstr "" #. End Date #: ../datebook_gui.c:300 #, fuzzy msgid "End Date: " msgstr "Slutt-dato" #: ../datebook_gui.c:302 msgid "Never" msgstr "" #: ../datebook_gui.c:308 #, c-format msgid "Repeat Frequency: %d\n" msgstr "" #: ../datebook_gui.c:316 #, c-format msgid "Monthly Repeat Day %d\n" msgstr "" #: ../datebook_gui.c:321 ../datebook_gui.c:5520 msgid "Repeat on Days:" msgstr "Gjenta på følgende dager: " #: ../datebook_gui.c:332 #, c-format msgid "Number of exceptions: %d" msgstr "" #: ../datebook_gui.c:338 msgid "" "\n" "more..." msgstr "" #: ../datebook_gui.c:359 ../datebook_gui.c:386 msgid "Description:" msgstr "" #: ../datebook_gui.c:360 ../datebook_gui.c:387 #, fuzzy msgid "Note:" msgstr "Notat" #: ../datebook_gui.c:362 ../datebook_gui.c:390 #, fuzzy msgid "Alarm:" msgstr "Alarm" #: ../datebook_gui.c:363 ../datebook_gui.c:391 #, fuzzy msgid "Repeat Type:" msgstr "Gjenta på:" #: ../datebook_gui.c:366 ../datebook_gui.c:394 #, fuzzy msgid "Start of Week:" msgstr "ukedag" #: ../datebook_gui.c:388 ../datebook_gui.c:5343 msgid "Location:" msgstr "" #: ../datebook_gui.c:620 ../datebook_gui.c:2271 #, c-format msgid "Appointment description text > %d, truncating to %d\n" msgstr "" #: ../datebook_gui.c:631 ../datebook_gui.c:1148 ../datebook_gui.c:2331 #: ../datebook_gui.c:2338 #, fuzzy msgid "Error" msgstr "feil" #: ../datebook_gui.c:632 msgid "File doesn't appear to be datebook.dat format\n" msgstr "" #: ../datebook_gui.c:699 msgid "DAT/DBA (Palm Archive Formats)" msgstr "" #: ../datebook_gui.c:787 #, c-format msgid "" "Datebook exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:790 #, c-format msgid "" "Calendar exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:817 ../todo_gui.c:701 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ical file may not be standards-compliant\n" msgstr "" #: ../datebook_gui.c:1148 msgid "Unknown export type" msgstr "" #: ../datebook_gui.c:1228 ../todo_gui.c:872 #, fuzzy msgid "iCalendar" msgstr "Fjern" #: ../datebook_gui.c:1240 ../export_gui.c:251 ../jpilot.c:429 msgid "Export" msgstr "" #. Label for instructions #: ../datebook_gui.c:1257 msgid "Export All Datebook Records" msgstr "" #: ../datebook_gui.c:1276 ../export_gui.c:316 msgid "Save as" msgstr "" #. Browse button #: ../datebook_gui.c:1286 ../export_gui.c:329 msgid "Browse" msgstr "" #: ../datebook_gui.c:1432 msgid "Datebook Categories" msgstr "" #. None button #. Labels for notebook tabs #: ../datebook_gui.c:1484 ../datebook_gui.c:2026 ../datebook_gui.c:5449 msgid "None" msgstr "Ingen" #: ../datebook_gui.c:1633 #, fuzzy msgid "Begin On Date" msgstr "Slutt-dato" #: ../datebook_gui.c:1639 msgid "End On Date" msgstr "Slutt-dato" #: ../datebook_gui.c:1751 ../prefs.c:451 msgid "Sunday" msgstr "Søndag" #: ../datebook_gui.c:1752 ../prefs.c:452 msgid "Monday" msgstr "Mandag" #: ../datebook_gui.c:1753 msgid "Tuesday" msgstr "Tirsdag" #: ../datebook_gui.c:1754 msgid "Wednesday" msgstr "Onsdag" #: ../datebook_gui.c:1755 msgid "Thursday" msgstr "Torsdag" #: ../datebook_gui.c:1756 msgid "Friday" msgstr "Fredag" #: ../datebook_gui.c:1757 msgid "Saturday" msgstr "Lørdag" #: ../datebook_gui.c:1760 msgid "4th" msgstr "" #: ../datebook_gui.c:1760 msgid "Last" msgstr "" #: ../datebook_gui.c:1763 #, c-format msgid "" "This appointment can either\n" "repeat on the 4th %s\n" "of the month, or on the last\n" "%s of the month.\n" "Which do you want?" msgstr "" #: ../datebook_gui.c:1770 ../datebook_gui.c:1786 msgid "Question?" msgstr "" #: ../datebook_gui.c:1777 msgid "" "This is a repeating event.\n" "Do you want to apply these changes to\n" "only the CURRENT event,\n" "just FUTURE events, or\n" "ALL of the occurrences of this event?" msgstr "" #: ../datebook_gui.c:1782 msgid "Current" msgstr "" #: ../datebook_gui.c:1782 msgid "Future" msgstr "" #: ../datebook_gui.c:2027 msgid "day" msgstr "dag" #: ../datebook_gui.c:2028 msgid "week" msgstr "uke" #: ../datebook_gui.c:2029 msgid "month" msgstr "måned" #: ../datebook_gui.c:2030 msgid "year" msgstr "år" #: ../datebook_gui.c:2326 ../datebook_gui.c:2329 #, c-format msgid "You cannot have an appointment that repeats every %d %s(s)\n" msgstr "Du kan ikke ha en avtale som repeteres hver %d %s\n" #: ../datebook_gui.c:2339 #, fuzzy msgid "" "You cannot have a weekly repeating appointment that doesn't repeat on any " "day of the week." msgstr "" "Du kan ikke ha en avtale med ukentlig gjentagelse som ikke repeteres på en " "ukedag.\n" #. This is a timeless event #: ../datebook_gui.c:2516 ../datebook_gui.c:5264 msgid "No Time" msgstr "Ingen tid" #: ../datebook_gui.c:2788 ../memo_gui.c:1259 ../todo_gui.c:1728 msgid "External editor command too long to execute\n" msgstr "" #: ../datebook_gui.c:2943 #, fuzzy msgid "Invalid Appointment" msgstr "Forbigåtte avtaler" #: ../datebook_gui.c:2944 msgid "" "The End Date of this appointment\n" "is before the start date." msgstr "" #. "No Date" check box #: ../datebook_gui.c:3339 ../datebook_gui.c:5482 ../datebook_gui.c:5513 #: ../datebook_gui.c:5565 ../datebook_gui.c:5613 ../todo_gui.c:142 #: ../todo_gui.c:2454 msgid "No Date" msgstr "Ingen forfallsdato" #: ../datebook_gui.c:3494 #, c-format msgid "Error in DateBookDB or Calendar advanceUnits = %d\n" msgstr "" #: ../datebook_gui.c:3681 #, c-format msgid "%%a., %s" msgstr "" #: ../datebook_gui.c:3686 msgid " (TODAY)" msgstr "" #. Weekview button #: ../datebook_gui.c:4934 ../datebook_gui.c:5451 msgid "Week" msgstr "Uke" #: ../datebook_gui.c:4943 msgid "View appointments by week Ctrl+W" msgstr "" #. Monthview button #: ../datebook_gui.c:4946 ../datebook_gui.c:5452 msgid "Month" msgstr "Måned" #: ../datebook_gui.c:4955 msgid "View appointments by month Ctrl+M" msgstr "" #. Make Category button #: ../datebook_gui.c:4960 msgid "Cats" msgstr "Katter" #: ../datebook_gui.c:5024 msgid "Time" msgstr "Ingen tid" #. "Show ToDos" button #: ../datebook_gui.c:5067 msgid "Show ToDos" msgstr "" #: ../datebook_gui.c:5081 ../todo_gui.c:2285 msgid "Task" msgstr "Oppgave" #: ../datebook_gui.c:5082 ../todo_gui.c:2286 msgid "Due" msgstr "Forfall" #: ../datebook_gui.c:5201 ../datebook_gui.c:5358 msgid "Alarm" msgstr "Alarm" #. Date Spinners #: ../datebook_gui.c:5241 ../Expense/expense.c:1736 #, fuzzy msgid "Date:" msgstr "dato" #. Start date and time #: ../datebook_gui.c:5283 #, fuzzy msgid "Start" msgstr "Starter den" #. End date and time #: ../datebook_gui.c:5300 #, fuzzy msgid "End" msgstr "Slutt-dato" #: ../datebook_gui.c:5433 msgid "DateBk Tags" msgstr "" #: ../datebook_gui.c:5450 msgid "Day" msgstr "Dag" # msgid "WeekView" # msgstr "Pr. uke" # msgid "MonthView" # msgstr "Pr. mnd" #: ../datebook_gui.c:5453 msgid "Year" msgstr "År" #. "No Repeat" page for notebook #: ../datebook_gui.c:5456 msgid "This event will not repeat" msgstr "Denne avtalen skal ikke gjentas" #: ../datebook_gui.c:5465 ../datebook_gui.c:5498 ../datebook_gui.c:5550 #: ../datebook_gui.c:5596 msgid "Frequency is Every" msgstr "Frekvens er" #: ../datebook_gui.c:5471 msgid "Day(s)" msgstr "dag(er)" #: ../datebook_gui.c:5474 ../datebook_gui.c:5507 ../datebook_gui.c:5559 #: ../datebook_gui.c:5605 msgid "End on" msgstr "Slutt-dato" #: ../datebook_gui.c:5504 msgid "Week(s)" msgstr "uker(r)" #: ../datebook_gui.c:5556 msgid "Month(s)" msgstr "måned(er)" #: ../datebook_gui.c:5573 msgid "Repeat by:" msgstr "Gjenta på:" #: ../datebook_gui.c:5577 msgid "Day of week" msgstr "ukedag" #: ../datebook_gui.c:5586 ../Expense/expense.c:1618 msgid "Date" msgstr "dato" #: ../datebook_gui.c:5602 msgid "Year(s)" msgstr "år" #: ../dialer.c:195 msgid "Phone Dialer" msgstr "" #: ../dialer.c:230 msgid "Prefix 1" msgstr "" #: ../dialer.c:252 msgid "Prefix 2" msgstr "" #: ../dialer.c:274 msgid "Prefix 3" msgstr "" #: ../dialer.c:289 msgid "Phone number:" msgstr "" #: ../dialer.c:319 msgid "Extension" msgstr "" #: ../dialer.c:341 #, fuzzy msgid "Dial Command" msgstr "Alarm-kommando" #: ../export_gui.c:121 msgid "File Browser" msgstr "" #. Label for instructions #: ../export_gui.c:273 msgid "Select records to be exported" msgstr "" #: ../export_gui.c:275 msgid "Use Ctrl and Shift Keys" msgstr "" #. Import button #: ../import_gui.c:300 ../import_gui.c:369 ../import_gui.c:426 #: ../import_gui.c:471 ../jpilot.c:385 msgid "Import" msgstr "" #: ../import_gui.c:317 #, c-format msgid "Record was marked as private" msgstr "" #: ../import_gui.c:319 #, c-format msgid "Record was not marked as private" msgstr "" #: ../import_gui.c:328 #, c-format msgid "Category before import was: [%s]" msgstr "" #: ../import_gui.c:336 #, fuzzy, c-format msgid "Record will be put in category [%s]" msgstr "Alle poster i denne kategorien" #. Import All button #: ../import_gui.c:376 msgid "Import All" msgstr "" #. Skip button #: ../import_gui.c:383 msgid "Skip" msgstr "" #: ../import_gui.c:457 ../install_gui.c:429 msgid "To change to a hidden directory type it below and hit TAB" msgstr "For å bytte til en skjult katalog, angi den under og trykk TAB" #: ../import_gui.c:484 msgid "Import File Type" msgstr "" #: ../install_gui.c:366 #, fuzzy msgid "Files to install" msgstr "Filer som skal installeres" #: ../install_gui.c:374 msgid "Install" msgstr "/Arkiv/_Installere" #: ../install_user.c:118 ../install_user.c:220 #, fuzzy msgid "Install User" msgstr "/Arkiv/_Installer" #: ../install_user.c:139 msgid "" "A PalmOS(c) device needs a user name and a user ID in order to sync properly." msgstr "" #: ../install_user.c:146 msgid "" "If you want to sync more than 1 PalmOS(c) device each one should have a " "different ID and preferably a different user name." msgstr "" #. Instruction label #: ../install_user.c:168 msgid "Most people choose their name or nickname for the user name." msgstr "" #: ../install_user.c:176 ../restore_gui.c:278 #, fuzzy msgid "User Name" msgstr "Navn" #: ../install_user.c:186 msgid "The ID should be a random number." msgstr "" #: ../install_user.c:194 ../restore_gui.c:297 #, fuzzy msgid "User ID" msgstr "Navn" #: ../jpilot.c:319 msgid "Print" msgstr "Skriv ut" #: ../jpilot.c:320 msgid "There is no print support for this conduit." msgstr "Det finnes ikke skriverstøtte for dette tillegget" #: ../jpilot.c:386 #, fuzzy msgid "There is no import support for this conduit." msgstr "Det finnes ikke skriverstøtte for dette tillegget" #: ../jpilot.c:430 #, fuzzy msgid "There is no export support for this conduit." msgstr "Det finnes ikke skriverstøtte for dette tillegget" #: ../jpilot.c:659 #, fuzzy msgid " Cancelling HotSync\n" msgstr "Angre" #. ------------------------------------------- #: ../jpilot.c:675 msgid "" "This handheld does not have the same user name or user ID\n" "as the one that was synced the last time.\n" "Syncing could have unwanted effects including data loss.\n" "\n" "Read the user manual if you are uncertain." msgstr "" #. ------------------------------------------- #: ../jpilot.c:682 msgid "" "This handheld has a NULL user ID.\n" "Every handheld must have a unique user ID in order to sync properly.\n" "If the handheld has been hard reset, \n" " use restore from the menu to restore it.\n" "Otherwise, to add a new user name and ID\n" " use install-user from the menu.\n" "\n" "Read the user manual if you are uncertain." msgstr "" #: ../jpilot.c:690 #, fuzzy msgid "Cancel Sync" msgstr "Angre" #: ../jpilot.c:690 msgid "Sync Anyway" msgstr "" #: ../jpilot.c:699 ../jpilot.c:703 #, fuzzy msgid "Sync Problem" msgstr "Synkroniser notater" #: ../jpilot.c:932 ../jpilot.c:1785 #, fuzzy msgid " User: " msgstr "Navn" #: ../jpilot.c:944 msgid "Unknown command from sync process\n" msgstr "" #: ../jpilot.c:963 ../Expense/expense.c:529 ../KeyRing/keyring.c:1872 #: ../SyncTime/synctime.c:61 #, c-format msgid "About %s" msgstr "Om %s" #: ../jpilot.c:1105 #, fuzzy msgid "/_File" msgstr "/_Arkiv" #: ../jpilot.c:1106 msgid "/File/tear" msgstr "/_Arkiv/tear" #: ../jpilot.c:1107 msgid "/File/_Find" msgstr "/Arkiv/Skriv ut" #: ../jpilot.c:1108 ../jpilot.c:1114 ../jpilot.c:1117 msgid "/File/sep1" msgstr "/Arkiv/sep1" #: ../jpilot.c:1109 msgid "/File/_Install" msgstr "/Arkiv/_Installer" #: ../jpilot.c:1110 #, fuzzy msgid "/File/Import" msgstr "/Arkiv/Skriv ut" #: ../jpilot.c:1111 #, fuzzy msgid "/File/Export" msgstr "/Arkiv/Skriv ut" #: ../jpilot.c:1112 ../jpilot.c:2190 msgid "/File/Preferences" msgstr "/Arkiv/Innstillinger" #: ../jpilot.c:1113 msgid "/File/_Print" msgstr "/Arkiv/Skriv ut" #: ../jpilot.c:1115 #, fuzzy msgid "/File/Install User" msgstr "/Arkiv/_Installer" #: ../jpilot.c:1116 msgid "/File/Restore Handheld" msgstr "" #: ../jpilot.c:1118 msgid "/File/_Quit" msgstr "/Arkiv/Avslutt" #: ../jpilot.c:1119 msgid "/_View" msgstr "/_Vis" #: ../jpilot.c:1120 ../jpilot.c:1121 ../jpilot.c:1122 ../jpilot.c:1368 #, fuzzy msgid "/View/Hide Private Records" msgstr "/Vis/Gjem - visning av private poster" #: ../jpilot.c:1121 ../jpilot.c:1371 #, fuzzy msgid "/View/Show Private Records" msgstr "/Vis/Gjem - visning av private poster" #: ../jpilot.c:1122 ../jpilot.c:1374 #, fuzzy msgid "/View/Mask Private Records" msgstr "/Vis/Gjem - visning av private poster" #: ../jpilot.c:1123 #, fuzzy msgid "/View/sep1" msgstr "/Arkiv/sep1" #: ../jpilot.c:1124 msgid "/View/Datebook" msgstr "/Vis/Kalender" #: ../jpilot.c:1125 msgid "/View/Addresses" msgstr "/Vis/Adresser" #: ../jpilot.c:1126 msgid "/View/Todos" msgstr "/Vis/Huskeliste" #: ../jpilot.c:1127 msgid "/View/Memos" msgstr "/Vis/Notater" #: ../jpilot.c:1128 ../jpilot.c:1259 #, fuzzy msgid "/_Plugins" msgstr "/Tillegg" #: ../jpilot.c:1130 #, fuzzy msgid "/_Web" msgstr "On" #. web #: ../jpilot.c:1131 msgid "/Web/Netscape" msgstr "" #: ../jpilot.c:1135 msgid "/Web/Mozilla" msgstr "" #: ../jpilot.c:1140 msgid "/Web/Galeon" msgstr "" #: ../jpilot.c:1145 msgid "/Web/Opera" msgstr "" #: ../jpilot.c:1149 msgid "/Web/GnomeUrl" msgstr "" #: ../jpilot.c:1151 msgid "/Web/Lynx" msgstr "" #: ../jpilot.c:1153 msgid "/Web/Links" msgstr "" #: ../jpilot.c:1155 msgid "/Web/W3M" msgstr "" #: ../jpilot.c:1157 msgid "/Web/Konqueror" msgstr "" #: ../jpilot.c:1160 msgid "/_Help" msgstr "/_Hjelp" #: ../jpilot.c:1161 #, fuzzy msgid "/Help/About J-Pilot" msgstr "/Hjelp/J-Pilot" #: ../jpilot.c:1227 #, fuzzy, c-format msgid "/_Plugins/%s" msgstr "/Tillegg/%s" #: ../jpilot.c:1237 #, c-format msgid "/_Help/%s" msgstr "/_Hjelp/%s" #: ../jpilot.c:1591 msgid "calendar:week_start:0" msgstr "" #: ../jpilot.c:1634 ../jpilot-sync.c:171 msgid "Not loading plugins.\n" msgstr "" #: ../jpilot.c:1638 msgid "Ignoring all alarms.\n" msgstr "" #: ../jpilot.c:1642 msgid "Ignoring past alarms.\n" msgstr "" #: ../jpilot.c:1730 ../jpilot.c:1738 msgid "Unable to open pipe\n" msgstr "" #: ../jpilot.c:1947 #, fuzzy msgid "Show private records Ctrl+Z" msgstr "/Vis/Gjem - visning av private poster" #: ../jpilot.c:1952 #, fuzzy msgid "Hide private records Ctrl+Z" msgstr "/Vis/Gjem - visning av private poster" #: ../jpilot.c:1957 #, fuzzy msgid "Mask private records Ctrl+Z" msgstr "Skriv ut alle poster" #: ../jpilot.c:1969 #, fuzzy msgid "Sync your palm to the desktop Ctrl+Y" msgstr "Synkroniser Palm'en med PC'en" #: ../jpilot.c:1981 #, fuzzy msgid "Stop Sync process" msgstr "Synkroniseradresser" #: ../jpilot.c:1993 msgid "" "Sync your palm to the desktop\n" "and then do a backup" msgstr "" "Synkroniser Palm'en med PC'en\n" "Ta deretter sikkerhetskopi" #: ../jpilot.c:2141 msgid "Datebook/Go to Today" msgstr "Kalender/Gå til i dag" #: ../jpilot.c:2142 msgid "Address Book" msgstr "Adressebok" #: ../jpilot.c:2143 msgid "ToDo List" msgstr "Huskeliste" #: ../jpilot.c:2144 msgid "Memo Pad" msgstr "Notater" #: ../jpilot.c:2172 msgid "Do it now" msgstr "" #: ../jpilot.c:2172 #, fuzzy msgid "Remind me later" msgstr "Minn meg på" #: ../jpilot.c:2172 msgid "Don't tell me again!" msgstr "" #: ../jpilot.c:2185 #, c-format msgid "" "J-Pilot uses the GTK2 graphical toolkit. This version of the toolkit uses " "UTF-8 to encode characters.\n" "You should select a UTF-8 charset so that you can see non-ASCII characters " "(accents for example).\n" "\n" "Go to the menu \"%s\" and change the \"%s\"." msgstr "" #. Character Set #: ../jpilot.c:2190 ../prefs_gui.c:511 #, fuzzy msgid "Character Set" msgstr "Tegnsett" #: ../jpilot.c:2192 msgid "Select a UTF-8 encoding" msgstr "" #: ../jpilot-dump.c:94 #, c-format msgid " +D +A +T +M format like date +format.\n" msgstr "" #: ../jpilot-dump.c:95 #, c-format msgid " -v display version and exit\n" msgstr "" #: ../jpilot-dump.c:96 ../jpilot-sync.c:68 ../utils.c:1874 #, c-format msgid " -h display help text\n" msgstr "" #: ../jpilot-dump.c:97 #, c-format msgid " -f display help for format codes\n" msgstr "" #: ../jpilot-dump.c:98 #, fuzzy, c-format msgid " -D dump DateBook\n" msgstr "Adressebok" #: ../jpilot-dump.c:99 #, fuzzy, c-format msgid " -i dump DateBook in iCalendar format\n" msgstr "Adressebok" #: ../jpilot-dump.c:100 #, fuzzy, c-format msgid " -N dump appts for today in DateBook\n" msgstr "Adressebok" #: ../jpilot-dump.c:101 #, c-format msgid " -NYYYY/MM/DD dump appts on YYYY/MM/DD in DateBook\n" msgstr "" #: ../jpilot-dump.c:102 #, fuzzy, c-format msgid " -A dump Address book\n" msgstr "Adressebok" #: ../jpilot-dump.c:103 #, c-format msgid " -T dump ToDo list as CSV\n" msgstr "" #: ../jpilot-dump.c:104 #, fuzzy, c-format msgid " -M dump Memos\n" msgstr "Adressebok" #: ../jpilot-dump.c:165 #, c-format msgid "" "Warning: Host character encoding is not UTF-8 based.\n" "Exported ical file may not be standards-compliant\n" msgstr "" #: ../jpilot-merge.c:163 ../jpilot-merge.c:169 #, fuzzy, c-format msgid "%s: Unable to open file:%s\n" msgstr "Kan ikke åpne loggfil\n" #: ../jpilot-merge.c:271 #, c-format msgid "Records read from pdb = %d\n" msgstr "" #: ../jpilot-merge.c:272 #, c-format msgid "Records added = %d\n" msgstr "" #: ../jpilot-merge.c:273 #, c-format msgid "Records deleted = %d\n" msgstr "" #: ../jpilot-merge.c:274 #, c-format msgid "Records modified = %d\n" msgstr "" #: ../jpilot-merge.c:275 #, c-format msgid "Records written = %d\n" msgstr "" #: ../jpilot-merge.c:293 #, c-format msgid "Usage: %s {input pdb file} {input pc3 file} {output pdb file}\n" msgstr "" #: ../jpilot-merge.c:294 #, c-format msgid " This program will merge an unsynced records file (pc3)\n" msgstr "" #: ../jpilot-merge.c:295 #, c-format msgid "" " into the corresponding palm database (pdb) file.\n" "\n" msgstr "" #: ../jpilot-merge.c:296 #, c-format msgid " WARNING: Only run this utility if you understand the consequences!\n" msgstr "" #: ../jpilot-merge.c:297 #, c-format msgid " The merge will leave your databases in an unsync-able state.\n" msgstr "" #: ../jpilot-merge.c:298 #, c-format msgid "" " It is intended for cases where J-pilot is being used as a standalone PIM\n" msgstr "" #: ../jpilot-merge.c:299 #, c-format msgid " and where no syncing occurs to physical hardware.\n" msgstr "" #: ../jpilot-merge.c:300 #, c-format msgid " WARNING: Make a backup copy of your databases before proceeding.\n" msgstr "" #: ../jpilot-merge.c:301 #, c-format msgid "" " It is quite simple to destroy your databases by accidentally merging\n" msgstr "" #: ../jpilot-merge.c:302 #, c-format msgid " address records into datebook databases, etc.\n" msgstr "" #: ../jpilot-sync.c:66 #, c-format msgid "" " J-Pilot preferences are read to get sync info such as port, rate, number of " "backups, etc.\n" msgstr "" #: ../jpilot-sync.c:67 ../utils.c:1873 #, c-format msgid " -v display version and compile options\n" msgstr "" #: ../jpilot-sync.c:69 ../utils.c:1875 #, c-format msgid " -d display debug info to stdout\n" msgstr "" #: ../jpilot-sync.c:70 #, c-format msgid " -P skip loading plugins\n" msgstr "" #: ../jpilot-sync.c:71 #, fuzzy, c-format msgid " -b sync, and then do a backup\n" msgstr "" "Synkroniser Palm'en med PC'en\n" "Ta deretter sikkerhetskopi" #: ../jpilot-sync.c:72 #, c-format msgid " -l loop, otherwise sync once and exit\n" msgstr "" #: ../jpilot-sync.c:73 #, c-format msgid " -p {port} use this port to sync on instead of default\n" msgstr "" #: ../jpilot-sync.c:221 #, fuzzy, c-format msgid "Error: connecting to port %s\n" msgstr "Feil under lesing" #: ../jpilot-sync.c:225 #, c-format msgid "Error: pi_listen\n" msgstr "" #: ../jpilot-sync.c:229 #, fuzzy, c-format msgid "Error: opening conduit to handheld\n" msgstr "Feil under lesing" #: ../jpilot-sync.c:233 #, c-format msgid "Error: pi_accept\n" msgstr "" #: ../jpilot-sync.c:237 ../jpilot-sync.c:265 #, fuzzy, c-format msgid "Error: " msgstr "feil" #: ../jpilot-sync.c:238 #, c-format msgid "This handheld does not have the same user name.\n" msgstr "" #: ../jpilot-sync.c:239 ../jpilot-sync.c:253 #, c-format msgid "as the one that was synced the last time.\n" msgstr "" #: ../jpilot-sync.c:241 #, c-format msgid "" "Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:243 ../jpilot-sync.c:256 #, c-format msgid " COPILOT_HOME" msgstr "" #: ../jpilot-sync.c:245 ../jpilot-sync.c:258 #, c-format msgid " JPILOT_HOME" msgstr "" #: ../jpilot-sync.c:247 ../jpilot-sync.c:260 #, c-format msgid " environment variable can be used to sync different handhelds,\n" msgstr "" #: ../jpilot-sync.c:248 ../jpilot-sync.c:261 #, c-format msgid " to different directories for the same UNIX user name.\n" msgstr "" #: ../jpilot-sync.c:252 #, c-format msgid "This handheld does not have the same user ID.\n" msgstr "" #: ../jpilot-sync.c:254 #, c-format msgid "" " Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:266 #, c-format msgid "This handheld has a NULL user ID.\n" msgstr "" #: ../jpilot-sync.c:267 #, c-format msgid "Every handheld must have a unique user ID in order to sync properly.\n" msgstr "" #: ../jpilot-sync.c:268 #, c-format msgid "If the handheld has been hard reset, \n" msgstr "" #: ../jpilot-sync.c:269 #, c-format msgid " use restore from within " msgstr "" #: ../jpilot-sync.c:270 #, c-format msgid "Otherwise, to add a new user name and ID\n" msgstr "" #: ../jpilot-sync.c:271 #, c-format msgid " use \"install-user %s name numeric_id\"\n" msgstr "" #: ../jpilot-sync.c:275 #, c-format msgid "Error: sync returned error %d\n" msgstr "" #: ../libplugin.c:64 ../utils.c:1054 msgid "" "This record is already deleted.\n" "It is scheduled to be deleted from the Palm on the next sync.\n" msgstr "" #: ../libplugin.c:73 ../libplugin.c:110 ../utils.c:1064 ../utils.c:1106 msgid "Unable to open PC records file\n" msgstr "" #: ../libplugin.c:79 ../utils.c:1071 #, fuzzy msgid "Couldn't find record to delete\n" msgstr "Kan ikke åpne loggfil\n" #: ../libplugin.c:97 ../utils.c:1091 #, c-format msgid "Unknown header version %d\n" msgstr "" #: ../libplugin.c:182 #, fuzzy, c-format msgid "%s:%d Error opening file: %s\n" msgstr "Feil under lesing" #: ../libplugin.c:188 ../libplugin.c:217 ../sync.c:1721 ../todo.c:102 #, fuzzy, c-format msgid "%s:%d Error reading file: %s\n" msgstr "Feil under lesing" #: ../libplugin.c:340 ../libplugin.c:398 ../utils.c:2119 ../utils.c:2132 #, fuzzy, c-format msgid "Error opening file: %s\n" msgstr "Feil under lesing" #: ../libplugin.c:526 #, fuzzy, c-format msgid "Error reading %s 5\n" msgstr "Feil under lesing" #: ../libplugin.c:801 #, fuzzy msgid "Error reading PC file 1\n" msgstr "Feil under lesing" #: ../libplugin.c:817 #, fuzzy msgid "Error reading PC file 2\n" msgstr "Feil under lesing" #: ../libplugin.c:923 #, c-format msgid "Unknown PC header version = %d\n" msgstr "" #: ../log.c:101 #, fuzzy, c-format msgid "Unable to open log file, giving up.\n" msgstr "Kan ikke åpne loggfil, gir opp.\n" #: ../log.c:111 #, fuzzy, c-format msgid "Unable to open log file\n" msgstr "Kan ikke åpne loggfil\n" #: ../memo_gui.c:302 msgid "Memo text > 65535, truncating\n" msgstr "" #: ../memo_gui.c:330 #, c-format msgid "Imported Memo %s\n" msgstr "" #: ../memo_gui.c:400 msgid "File doesn't appear to be memopad.dat format\n" msgstr "" #: ../memo_gui.c:471 msgid "DAT/MPA (Palm Archive Formats)" msgstr "" #: ../memo_gui.c:554 #, c-format msgid "" "Memo exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:557 #, c-format msgid "" "Memos exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:584 #, c-format msgid "Can't export memo %d\n" msgstr "" #: ../memo_gui.c:628 #, fuzzy, c-format msgid "Memo: %ld\n" msgstr "Notater" #: ../memo_gui.c:634 #, c-format msgid "----- Start of Memo -----\n" msgstr "" #: ../memo_gui.c:636 #, c-format msgid "" "\n" "----- End of Memo -----\n" "\n" msgstr "" #: ../memo_gui.c:668 msgid "B-Folders CSV" msgstr "" #: ../monthview_gui.c:438 msgid "Monthly View" msgstr "Månedlig visning" #: ../monthview_gui.c:480 msgid "Last month Alt+LeftArrow" msgstr "" #: ../monthview_gui.c:508 msgid "Next month Alt+RightArrow" msgstr "" #: ../otherconv.c:76 #, c-format msgid "%s: error exit from g_iconv_close(%s)\n" msgstr "" #: ../otherconv.c:201 #, c-format msgid "%s:%s g_convert_with_iconv error: %s, buff: %s\n" msgstr "" #: ../otherconv.c:203 msgid "last char truncated" msgstr "" #: ../otherconv.c:280 #, c-format msgid "UTF_to_other: %s\n" msgstr "" #: ../otherconv.c:294 #, c-format msgid "iconv: unconvertible sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:298 #, c-format msgid "iconv: incomplete UTF-8 sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:301 #, c-format msgid "iconv: buffer filled. stopped at place %d in '%s'\n" msgstr "" #: ../otherconv.c:304 #, c-format msgid "iconv: unexpected error at place %d in '%s'\n" msgstr "" #: ../password.c:283 msgid "Palm Password" msgstr "Palm-passord" #: ../password.c:308 #, fuzzy msgid "Incorrect, Reenter PalmOS Password" msgstr "Angi Palm-passord" #: ../password.c:310 msgid "Enter PalmOS Password" msgstr "Angi Palm-passord" #: ../pidfile.c:67 #, fuzzy msgid "removing stale pidfile\n" msgstr "Kan ikke åpne loggfil\n" #: ../pidfile.c:91 #, fuzzy, c-format msgid "create pidfile failed: %s\n" msgstr "Feil under lesing" #: ../pidfile.c:92 msgid "Warning: hotplug syncing disabled.\n" msgstr "" #: ../plugins.c:90 ../plugins.c:203 ../restore_gui.c:133 msgid "infinite loop" msgstr "" #: ../plugins.c:216 #, c-format msgid "While reading %s%s line 1:[%s]\n" msgstr "" #: ../plugins.c:217 msgid "Wrong Version\n" msgstr "" #: ../plugins.c:218 msgid "Check preferences->conduits\n" msgstr "" #: ../plugins.c:274 #, c-format msgid "" "Open failed on plugin [%s]\n" " error [%s]\n" msgstr "" #: ../plugins.c:291 ../plugins.c:316 #, c-format msgid " plugin is invalid: [%s]\n" msgstr "" #: ../plugins.c:299 #, fuzzy, c-format msgid "Plugin:[%s]\n" msgstr "/Tillegg/%s" #: ../plugins.c:300 #, c-format msgid "This plugin is version (%d.%d).\n" msgstr "" #: ../plugins.c:302 msgid "It is too old to work with this version of J-Pilot.\n" msgstr "" #: ../prefs.c:420 msgid "%B %d, %Y" msgstr "" #: ../prefs.c:421 msgid "%d %B %Y" msgstr "" #: ../prefs.c:422 msgid "%d. %B %Y" msgstr "" #: ../prefs.c:423 msgid "%d %B, %Y" msgstr "" #: ../prefs.c:424 msgid "%Y. %B. %d" msgstr "" #: ../prefs.c:425 msgid "%Y %B %d" msgstr "" #: ../prefs_gui.c:454 msgid "Preferences" msgstr "Innstillinger" #: ../prefs_gui.c:485 msgid "Locale" msgstr "Språk" #: ../prefs_gui.c:487 msgid "Settings" msgstr "Innstillinger" #: ../prefs_gui.c:489 #, fuzzy msgid "Datebook" msgstr "Synkroniser dagbok" #: ../prefs_gui.c:493 #, fuzzy msgid "ToDo" msgstr "Huskeliste" #: ../prefs_gui.c:495 #, fuzzy msgid "Memo" msgstr "Synkroniser notater" #: ../prefs_gui.c:497 msgid "Alarms" msgstr "Alarm" #: ../prefs_gui.c:499 msgid "Conduits" msgstr "Tillegg" #. Shortdate #: ../prefs_gui.c:524 #, fuzzy msgid "Short date format" msgstr "Kort datoangivelse " #. Longdate #: ../prefs_gui.c:537 #, fuzzy msgid "Long date format" msgstr "Lang datoangivelse " #. Time #: ../prefs_gui.c:550 #, fuzzy msgid "Time format" msgstr "Tidsangivelse " #. GTK colors file #: ../prefs_gui.c:570 #, fuzzy msgid "GTK color theme file" msgstr "Min GTK-fargefil er " #. Port #: ../prefs_gui.c:583 #, fuzzy msgid "Sync Port" msgstr "Synkroniser notater" #. Serial Rate #: ../prefs_gui.c:607 #, fuzzy msgid "Serial Rate" msgstr "Seriell overføringshastighet " #. Number of backups #: ../prefs_gui.c:627 msgid "Number of backups to be archived" msgstr "Antall kopier som skal arkiveres" #. Show deleted files check box #: ../prefs_gui.c:645 msgid "Show deleted records (default NO)" msgstr "Vise slettede poster? (standard: nei)" #. Show modified files check box #: ../prefs_gui.c:649 msgid "Show modified deleted records (default NO)" msgstr "Vise endrede slettede poster? (standard: nei)" #: ../prefs_gui.c:654 msgid "Ask confirmation for file installation (J-Pilot -> PDA) (default YES)" msgstr "" #. Show tooltips check box #: ../prefs_gui.c:658 msgid "Show popup tooltips (default YES) (requires restart)" msgstr "" #: ../prefs_gui.c:668 msgid "Use Datebook database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:671 msgid "Use Calendar database (Palm OS > 5.2)" msgstr "" #. Show highlight days check box #: ../prefs_gui.c:697 msgid "Highlight calendar days with appointments" msgstr "Markere dager med avtaler" #. Highlight today on month and week view #: ../prefs_gui.c:702 msgid "Annotate today in day, week, and month views" msgstr "" #. Show number of years on anniversaries in month and week view #: ../prefs_gui.c:706 msgid "Append years on anniversaries in day, week, and month views" msgstr "" #. Show use DateBk check box #: ../prefs_gui.c:712 #, fuzzy msgid "Use DateBk note tags" msgstr "Bruk DateBk notat-markeringer" #: ../prefs_gui.c:715 msgid "DateBk support disabled in this build" msgstr "" #: ../prefs_gui.c:727 msgid "Use Address database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:730 msgid "Use Contacts database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:759 #, fuzzy msgid "Mail Command" msgstr "Alarm-kommando" #: ../prefs_gui.c:773 #, fuzzy, c-format msgid "%s is replaced by the e-mail address" msgstr "%t erstattes med alarm-tidspunktet" #: ../prefs_gui.c:785 msgid "Use ToDo database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:788 msgid "Use Task database (Palm OS > 5.2)" msgstr "" #. hide completed check box #: ../prefs_gui.c:815 msgid "Hide Completed ToDos" msgstr "Gjem ferdige oppgaver?" #. hide todos not yet due check box #: ../prefs_gui.c:819 msgid "Hide ToDos not yet due" msgstr "" #. record todo completion date check box #: ../prefs_gui.c:823 msgid "Record Completion Date" msgstr "" #. Use Manana check box #: ../prefs_gui.c:828 msgid "Use Manana database" msgstr "" #: ../prefs_gui.c:836 msgid "Use default number of days due" msgstr "" #: ../prefs_gui.c:858 msgid "Use Memo database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:861 msgid "Use Memos database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:864 #, fuzzy msgid "Use Memo32 database (pedit32)" msgstr "Synkroniser notater" #: ../prefs_gui.c:904 msgid "External Editor" msgstr "" #: ../prefs_gui.c:917 msgid "Use Ctrl-E inside a memo to launch external editor for memo text" msgstr "" #. ******************************************************************** #. Alarms preference tab #. Open alarm windows check box #: ../prefs_gui.c:925 msgid "Open alarm windows for appointment reminders" msgstr "Åpne alarmvinduer ved avtale-påminnelser" #. Execute alarm command check box #: ../prefs_gui.c:929 msgid "Execute this command" msgstr "Utfør denne kommandoen" #. Shell warning label #: ../prefs_gui.c:933 msgid "WARNING: executing arbitrary shell commands can be dangerous!!!" msgstr "" "ADVARSEL: å utføre tilfeldige skall-kommandoer kan gi uforutsette resultater!" #: ../prefs_gui.c:941 msgid "Alarm Command" msgstr "Alarm-kommando" #: ../prefs_gui.c:954 msgid "%t is replaced with the alarm time" msgstr "%t erstattes med alarm-tidspunktet" #: ../prefs_gui.c:958 #, c-format msgid "%d is replaced with the alarm date" msgstr "%d erstattes med alarm-datoen" #: ../prefs_gui.c:963 msgid "%D is replaced with the alarm description" msgstr "%D erstattes med alarm-beskrivelsen" #: ../prefs_gui.c:967 msgid "%N is replaced with the alarm note" msgstr "%N erstattes med alarm-meldingen" #: ../prefs_gui.c:971 msgid "%D (description substitution) is disabled in this build" msgstr "" #: ../prefs_gui.c:976 msgid "%N (note substitution) is disabled in this build" msgstr "" #. ******************************************************************** #. Conduits preference tab #. Sync datebook check box #: ../prefs_gui.c:986 msgid "Sync datebook" msgstr "Synkroniser dagbok" #. Sync address check box #: ../prefs_gui.c:990 msgid "Sync address" msgstr "Synkroniseradresser" #. Sync todo check box #: ../prefs_gui.c:994 msgid "Sync todo" msgstr "Synkroniser oppgaver" #. Sync memo check box #: ../prefs_gui.c:998 msgid "Sync memo" msgstr "Synkroniser notater" #. Show sync Manana check box #: ../prefs_gui.c:1003 msgid "Sync Manana" msgstr "" #. Show use Japanese Kana extention check box #: ../prefs_gui.c:1009 msgid "Use J-OS (Not Japanese PalmOS:WorkPad/CLIE)" msgstr "" #. Make a Sync checkbox for each plugin #: ../prefs_gui.c:1022 #, fuzzy, c-format msgid "Sync %s (%s)" msgstr "Hopper over %s\n" #: ../print_gui.c:185 msgid "Print Options" msgstr "Skriverinnstilinger" #: ../print_gui.c:198 msgid "Paper Size" msgstr "" #: ../print_gui.c:214 msgid "Daily Printout" msgstr "" #: ../print_gui.c:220 #, fuzzy msgid "Weekly Printout" msgstr "Ukentlig visning" #: ../print_gui.c:226 #, fuzzy msgid "Monthly Printout" msgstr "Månedlig visning" #: ../print_gui.c:266 #, fuzzy msgid "Selected record" msgstr "%d av %d poster" #: ../print_gui.c:270 msgid "All records in this category" msgstr "Alle poster i denne kategorien" #: ../print_gui.c:274 msgid "Print all records" msgstr "Skriv ut alle poster" #: ../print_gui.c:296 msgid "One record per page" msgstr "En post per side" #: ../print_gui.c:312 #, fuzzy msgid "Blank lines between each record" msgstr " blanke linjer mellom hver post" #. Print Command #: ../print_gui.c:321 msgid "Print Command (e.g. lpr, or cat > file.ps)" msgstr "Utskriftskomando (f.eks. lpr, eller cat > fil.ps)" #: ../restore_gui.c:71 ../restore_gui.c:229 msgid "Restore Handheld" msgstr "" #: ../restore_gui.c:176 ../restore_gui.c:178 msgid "Unable to convert filename for GTK display\n" msgstr "" #: ../restore_gui.c:177 msgid "See console log to find which file will not be restored\n" msgstr "" #: ../restore_gui.c:179 #, fuzzy, c-format msgid "File %s will not be restored\n" msgstr "Filer som skal installeres" #. Label for instructions #: ../restore_gui.c:246 msgid "To restore your handheld:" msgstr "" #: ../restore_gui.c:249 msgid "1. Choose the applications you wish to restore. The default is all." msgstr "" #: ../restore_gui.c:252 msgid "2. Enter the User Name and User ID." msgstr "" #: ../restore_gui.c:255 #, fuzzy msgid "3. Press the OK button." msgstr "Trykk på HotSync-knappen nå\n" #: ../restore_gui.c:258 msgid "This will overwrite data that is currently on the handheld." msgstr "" #: ../search_gui.c:144 #, fuzzy msgid "datebook" msgstr "Synkroniser dagbok" #: ../search_gui.c:146 #, fuzzy msgid "calendar" msgstr "Fjern" #: ../search_gui.c:233 #, fuzzy msgid "address" msgstr "Adresse" #: ../search_gui.c:235 msgid "contact" msgstr "" #: ../search_gui.c:304 #, fuzzy msgid "todo" msgstr "Synkroniser oppgaver" #: ../search_gui.c:361 #, fuzzy msgid "memo" msgstr "Synkroniser notater" #: ../search_gui.c:363 #, fuzzy msgid "memos" msgstr "Synkroniser notater" #: ../search_gui.c:421 #, fuzzy msgid "plugin ?" msgstr "/Tillegg" #: ../search_gui.c:501 msgid "No records found" msgstr "Ingen poster funnet" #: ../search_gui.c:600 msgid "Search" msgstr "Søk" #. Search label #: ../search_gui.c:617 msgid "Search for: " msgstr "Søk etter: " #. Case Sensitive checkbox #: ../search_gui.c:626 msgid "Case Sensitive" msgstr "Skill store/små bokstaver" #: ../sync.c:120 #, fuzzy msgid "open lock file failed\n" msgstr "Kan ikke åpne loggfil\n" #: ../sync.c:133 #, fuzzy msgid "lock failed\n" msgstr "Ferdig\n" #: ../sync.c:136 #, c-format msgid "sync file is locked by pid %d\n" msgstr "" #: ../sync.c:171 msgid "unlock failed\n" msgstr "" #: ../sync.c:174 #, c-format msgid "sync is locked by pid %d\n" msgstr "" #: ../sync.c:410 #, fuzzy msgid "Check your sync port and settings\n" msgstr "Kontroller serieporten og innstillingene\n" #: ../sync.c:669 msgid "Unable to read home dir\n" msgstr "" #: ../sync.c:1075 ../sync.c:1413 #, fuzzy, c-format msgid "%s (Creator ID '%s') is up to date, fetch skipped.\n" msgstr "%s er oppdatert, dropper overføring\n" #: ../sync.c:1079 ../sync.c:1417 #, fuzzy, c-format msgid "Fetching '%s' (Creator ID '%s')... " msgstr "Henter '%s'... " #: ../sync.c:1086 ../sync.c:1423 #, c-format msgid "Failed, unable to create file %s\n" msgstr "" #: ../sync.c:1090 ../sync.c:1428 #, c-format msgid "Failed, unable to back up database %s\n" msgstr "" #: ../sync.c:1094 ../sync.c:1432 ../sync.c:1619 msgid "OK\n" msgstr "Greit\n" #: ../sync.c:1294 #, c-format msgid "Skipping %s (Creator ID '%s')\n" msgstr "" #: ../sync.c:1488 #, fuzzy, c-format msgid "Installing %s " msgstr "Innstallerer %s... " #: ../sync.c:1494 ../sync.c:1530 #, fuzzy, c-format msgid "" "\n" "Unable to open file: '%s': %s!\n" msgstr "Kan ikke åpne loggfil\n" #: ../sync.c:1498 #, c-format msgid "" "\n" "Unable to sync file: '%s': file corrupted?\n" msgstr "" #: ../sync.c:1514 #, fuzzy, c-format msgid "(Creator ID '%s')... " msgstr "Henter '%s'... " #: ../sync.c:1518 #, fuzzy, c-format msgid "(Creator ID '%s') " msgstr "Henter '%s'... " #: ../sync.c:1520 #, fuzzy, c-format msgid "(SDcard dir %s)... " msgstr "Henter '%s'... " #: ../sync.c:1552 ../sync.c:1565 ../sync.c:1580 ../sync.c:1593 #, fuzzy, c-format msgid "" "\n" "Unable to open file: %s\n" msgstr "Kan ikke åpne loggfil\n" #: ../sync.c:1605 #, c-format msgid "Install %s failed" msgstr "Innstallering av %s mislyktes" #: ../sync.c:1609 #, fuzzy msgid "Failed.\n" msgstr "Ferdig\n" #: ../sync.c:1615 #, fuzzy, c-format msgid "Installed %s" msgstr "%s innstallert" #: ../sync.c:1726 #, fuzzy, c-format msgid "%s:%d Error getting app info %s\n" msgstr "Feil under lesing" #: ../sync.c:1732 ../sync.c:1762 #, fuzzy, c-format msgid "%s:%d Error unpacking app info %s\n" msgstr "Feil under lesing" #: ../sync.c:1753 #, fuzzy, c-format msgid "Error reading appinfo block for %s\n" msgstr "Feil under lesing" #. Fix - need a func for this logging #: ../sync.c:1991 ../sync.c:1995 #, c-format msgid "Could not add category %s to remote.\n" msgstr "" #: ../sync.c:1992 ../sync.c:1998 #, c-format msgid "Too many categories on remote.\n" msgstr "" #: ../sync.c:1993 ../sync.c:2001 #, c-format msgid "All records on desktop in %s will be moved to %s.\n" msgstr "" #: ../sync.c:2096 ../sync.c:2814 #, fuzzy, c-format msgid "Syncing %s\n" msgstr "Hopper over %s\n" #: ../sync.c:2104 ../sync.c:2457 ../sync.c:2822 #, fuzzy, c-format msgid "Wrote an %s record." msgstr "Skriv ut alle poster" #: ../sync.c:2106 ../sync.c:2459 ../sync.c:2824 #, c-format msgid "Writing an %s record failed." msgstr "" #: ../sync.c:2108 ../sync.c:2461 ../sync.c:2826 #, c-format msgid "Deleting an %s record failed." msgstr "" #: ../sync.c:2110 ../sync.c:2463 ../sync.c:2828 #, c-format msgid "Deleted an %s record." msgstr "" #: ../sync.c:2112 ../sync.c:2465 #, c-format msgid "Sync Conflict: duplicated an %s record." msgstr "" #: ../sync.c:2115 ../sync.c:2468 ../sync.c:2831 #, fuzzy, c-format msgid "Wrote a %s record." msgstr "Skriv ut alle poster" #: ../sync.c:2117 ../sync.c:2470 ../sync.c:2833 #, c-format msgid "Writing a %s record failed." msgstr "" #: ../sync.c:2119 ../sync.c:2472 ../sync.c:2835 #, c-format msgid "Deleting a %s record failed." msgstr "" #: ../sync.c:2121 ../sync.c:2474 ../sync.c:2837 #, fuzzy, c-format msgid "Deleted a %s record." msgstr "%d av %d poster" #: ../sync.c:2123 ../sync.c:2476 #, c-format msgid "Sync Conflict: duplicated a %s record." msgstr "" #: ../sync.c:2227 ../sync.c:2557 #, c-format msgid "Sync Conflict: a %s record must be manually merged\n" msgstr "" #: ../sync.c:2358 ../sync.c:2698 msgid "" "dlp_DeleteRecord failed\n" "This could be because the record was already deleted on the Palm\n" msgstr "" #: ../sync.c:2927 msgid "Finished installing user information.\n" msgstr "" #: ../sync.c:3084 #, c-format msgid " Syncing on device %s\n" msgstr "" #: ../sync.c:3085 msgid " Press the HotSync button now\n" msgstr "Trykk på HotSync-knappen nå\n" #: ../sync.c:3127 ../sync.c:3149 ../sync.c:3170 #, c-format msgid "Last Synced Username-->\"%s\"\n" msgstr "" #: ../sync.c:3128 ../sync.c:3150 ../sync.c:3171 #, c-format msgid "Last Synced UserID-->\"%d\"\n" msgstr "" #: ../sync.c:3129 ../sync.c:3151 ../sync.c:3172 #, c-format msgid " This Username-->\"%s\"\n" msgstr "" #: ../sync.c:3130 ../sync.c:3152 ../sync.c:3173 #, c-format msgid " This User ID-->%d\n" msgstr "" #: ../sync.c:3194 #, c-format msgid "Username is \"%s\"\n" msgstr "" #: ../sync.c:3195 #, fuzzy, c-format msgid "User ID is %d\n" msgstr "Navn" #: ../sync.c:3197 #, c-format msgid "lastSyncPC = %d\n" msgstr "" #: ../sync.c:3198 #, c-format msgid "This PC = %lu\n" msgstr "" #: ../sync.c:3222 msgid "Sync canceled\n" msgstr "" #: ../sync.c:3245 msgid "Finished restoring handheld.\n" msgstr "" #: ../sync.c:3246 msgid "You may need to sync to update J-Pilot.\n" msgstr "" #: ../sync.c:3268 msgid "Doing a fast sync.\n" msgstr "Utfører hurtigsynkronisering\n" #: ../sync.c:3281 msgid "Doing a slow sync.\n" msgstr "Utfører en treg synkronisering\n" #: ../sync.c:3356 msgid "Thank you for using J-Pilot." msgstr "Takk for at du bruker J-Pilot." #: ../sync.c:3401 ../sync.c:3469 #, fuzzy msgid "Finished.\n" msgstr "Ferdig\n" #: ../sync.c:3436 #, c-format msgid "%s: sync process already in progress (process ID = %d)\n" msgstr "" #: ../sync.c:3437 #, fuzzy, c-format msgid "" "%s: press the HotSync button on the cradle\n" " or stop the sync by using the cancel sync button\n" " or stop the sync by typing \"kill %d\" at the command line\n" msgstr "Trykk på HotSync-knappen nå\n" #: ../sync.c:3468 #, c-format msgid "Exiting with status %s\n" msgstr "" #: ../todo.c:266 #, c-format msgid "ToDo description text > %d, truncating to %d\n" msgstr "" #: ../todo.c:272 #, c-format msgid "ToDo note text > %d, truncating to %d\n" msgstr "" #: ../todo_gui.c:161 msgid "Due Date" msgstr "Ingen forfallsdato" #: ../todo_gui.c:532 msgid "File doesn't appear to be todo.dat format\n" msgstr "" #: ../todo_gui.c:596 msgid "DAT/TDA (Palm Archive Formats)" msgstr "" #: ../todo_gui.c:688 #, c-format msgid "" "ToDo exported from %s %s on %s\n" "\n" msgstr "" #: ../todo_gui.c:726 #, c-format msgid "Can't export todo %d\n" msgstr "" #: ../todo_gui.c:766 #, fuzzy, c-format msgid "Due Date: None\n" msgstr "Ingen forfallsdato" #: ../todo_gui.c:769 #, fuzzy, c-format msgid "Due Date: %s\n" msgstr "Ingen forfallsdato" #: ../todo_gui.c:771 #, fuzzy, c-format msgid "Priority: %d\n" msgstr "Prioritet: " #: ../todo_gui.c:772 #, fuzzy, c-format msgid "Completed: %s\n" msgstr "Utført" #: ../todo_gui.c:774 #, c-format msgid "Description: %s\n" msgstr "" #: ../todo_gui.c:777 #, c-format msgid "" "Note: %s\n" "\n" msgstr "" #: ../todo_gui.c:1610 msgid "Priority out of range\n" msgstr "" #: ../todo_gui.c:1932 ../KeyRing/keyring.c:1310 #, c-format msgid "No date" msgstr "Ingen forfallsdato" #. Completed checkbox #: ../todo_gui.c:2414 msgid "Completed" msgstr "Utført" #: ../todo_gui.c:2421 #, fuzzy msgid "Priority:" msgstr "Prioritet: " #: ../todo_gui.c:2423 msgid "Set priority Alt+#" msgstr "" #: ../todo_gui.c:2444 msgid "Date Due:" msgstr "Forfallsdato:" #: ../utils.c:332 msgid "Today" msgstr "dag" #: ../utils.c:577 #, fuzzy, c-format msgid "Couldn't find empty DB file %s: %s\n" msgstr "Kan ikke åpne loggfil\n" #: ../utils.c:580 #, fuzzy msgid " may not be installed.\n" msgstr "Filer som skal installeres" #. Can't create directory #: ../utils.c:615 ../utils.c:619 #, c-format msgid "Can't create directory %s\n" msgstr "" #: ../utils.c:625 #, fuzzy, c-format msgid "%s is not a directory\n" msgstr "Filer som skal installeres" #: ../utils.c:630 #, c-format msgid "Unable to get write permission for directory %s\n" msgstr "" #: ../utils.c:1330 ../utils.c:1354 msgid "Save Changed Record?" msgstr "" #: ../utils.c:1331 ../utils.c:1355 msgid "Do you want to save the changes to this record?" msgstr "" #: ../utils.c:1336 ../utils.c:1360 #, fuzzy msgid "Save New Record?" msgstr "Ny post" #: ../utils.c:1337 ../utils.c:1361 msgid "Do you want to save this new record?" msgstr "" #: ../utils.c:1652 msgid "infinite loop, breaking\n" msgstr "" #: ../utils.c:1876 #, c-format msgid " -p skip loading plugins\n" msgstr "" #: ../utils.c:1877 #, c-format msgid " -a ignore missed alarms since the last time program was run\n" msgstr "" #: ../utils.c:1878 #, c-format msgid " -A ignore all alarms past and future\n" msgstr "" #: ../utils.c:1879 #, c-format msgid " -s start sync using existing instance of GUI\n" msgstr "" #: ../utils.c:1880 #, c-format msgid " -i iconify program immediately after launch\n" msgstr "" #: ../utils.c:1881 #, c-format msgid "" " -geometry {X geometry} use specified geometry for main window\n" "\n" msgstr "" #: ../utils.c:1882 #, c-format msgid " The PILOTPORT and PILOTRATE environment variables specify\n" msgstr "" #: ../utils.c:1883 #, c-format msgid " which port to sync on, and at what speed.\n" msgstr "" #: ../utils.c:1884 #, c-format msgid " If PILOTPORT is not set then it defaults to /dev/pilot.\n" msgstr "" #: ../utils.c:1921 #, fuzzy msgid "Error reading file" msgstr "Feil under lesing" #: ../utils.c:1971 msgid "Date compiled" msgstr "" #: ../utils.c:1972 msgid "Compiled with these options:" msgstr "" #: ../utils.c:1974 #, fuzzy msgid "Installed Path" msgstr "%s innstallert" #: ../utils.c:1976 msgid "pilot-link version" msgstr "" #: ../utils.c:1980 msgid "USB support" msgstr "" #: ../utils.c:1981 ../utils.c:1984 ../utils.c:1990 ../utils.c:1996 #: ../utils.c:2002 ../utils.c:2008 ../utils.c:2013 #, fuzzy msgid "yes" msgstr "år" #: ../utils.c:1982 #, fuzzy msgid "Private record support" msgstr "Skriv ut alle poster" #: ../utils.c:1986 ../utils.c:1992 ../utils.c:1998 ../utils.c:2004 #: ../utils.c:2010 #, fuzzy msgid "no" msgstr "ingen" #: ../utils.c:1988 msgid "Datebk support" msgstr "" #: ../utils.c:1994 #, fuzzy msgid "Plugin support" msgstr "/Tillegg" #: ../utils.c:2000 #, fuzzy msgid "Manana support" msgstr "/Tillegg" #: ../utils.c:2006 msgid "NLS support (foreign languages)" msgstr "" #: ../utils.c:2012 #, fuzzy msgid "GTK2 support" msgstr "/Tillegg" #. No HOME var #: ../utils.c:2055 msgid "Can't get HOME environment variable\n" msgstr "" #: ../utils.c:2062 msgid "HOME environment variable is too long to process\n" msgstr "" #: ../utils.c:2557 msgid "Edit Categories..." msgstr "" #: ../utils.c:3223 msgid "PC ID is 0.\n" msgstr "PC ID er 0.\n" #: ../utils.c:3224 #, fuzzy, c-format msgid "Generated a new PC ID. It is %lu\n" msgstr "En ny PC ID laget. Denne er %d\n" #: ../utils.c:3309 msgid "Invalid UTF-8 encoding in export string\n" msgstr "" #: ../utils.c:3470 #, c-format msgid "Today is %A, %x %X" msgstr "I dag er %A %x %X" #: ../utils.c:3472 #, c-format msgid "Today is %%A, %s %s" msgstr "I dag er det %%A %s %s" #: ../utils.c:3701 #, c-format msgid "" "Incorrect header format for CSV import\n" "Check line 1 of file %s\n" "Aborting import\n" msgstr "" #: ../utils.c:3738 #, fuzzy, c-format msgid "Error writing version header to file: %s%s\n" msgstr "Feil under lesing" #: ../utils.c:3743 #, fuzzy, c-format msgid "Error writing next id to file: %s%s" msgstr "Feil under lesing" #: ../weekview_gui.c:297 msgid "Weekly View" msgstr "Ukentlig visning" #: ../weekview_gui.c:337 msgid "Last week Alt+LeftArrow" msgstr "" #: ../weekview_gui.c:366 msgid "Next week Alt+RightArrow" msgstr "" #: ../Expense/expense.c:97 msgid "Australia" msgstr "" #: ../Expense/expense.c:98 msgid "Austria" msgstr "" #: ../Expense/expense.c:99 msgid "Belgium" msgstr "" #: ../Expense/expense.c:100 msgid "Brazil" msgstr "" #: ../Expense/expense.c:101 msgid "Canada" msgstr "" #: ../Expense/expense.c:102 msgid "Denmark" msgstr "" #: ../Expense/expense.c:103 msgid "EU (Euro)" msgstr "" #: ../Expense/expense.c:104 msgid "Finland" msgstr "" #: ../Expense/expense.c:105 #, fuzzy msgid "France" msgstr "Angre" #: ../Expense/expense.c:106 msgid "Germany" msgstr "" #: ../Expense/expense.c:107 msgid "Hong Kong" msgstr "" #: ../Expense/expense.c:108 msgid "Iceland" msgstr "" #: ../Expense/expense.c:109 msgid "India" msgstr "" #: ../Expense/expense.c:110 #, fuzzy msgid "Indonesia" msgstr "ingen" #: ../Expense/expense.c:111 msgid "Ireland" msgstr "" #: ../Expense/expense.c:112 #, fuzzy msgid "Italy" msgstr "/Arkiv/_Installere" #: ../Expense/expense.c:113 msgid "Japan" msgstr "" #: ../Expense/expense.c:114 msgid "Korea" msgstr "" #: ../Expense/expense.c:115 msgid "Luxembourg" msgstr "" #: ../Expense/expense.c:116 msgid "Malaysia" msgstr "" #: ../Expense/expense.c:117 msgid "Mexico" msgstr "" #: ../Expense/expense.c:118 msgid "Netherlands" msgstr "" #: ../Expense/expense.c:119 msgid "New Zealand" msgstr "" #: ../Expense/expense.c:120 msgid "Norway" msgstr "" #: ../Expense/expense.c:121 msgid "P.R.C." msgstr "" #: ../Expense/expense.c:122 msgid "Philippines" msgstr "" #: ../Expense/expense.c:123 msgid "Singapore" msgstr "" #: ../Expense/expense.c:124 #, fuzzy msgid "Spain" msgstr "Skriv ut" #: ../Expense/expense.c:125 #, fuzzy msgid "Sweden" msgstr "uke" #: ../Expense/expense.c:126 msgid "Switzerland" msgstr "" #: ../Expense/expense.c:127 #, fuzzy msgid "Taiwan" msgstr "Skriv ut" #: ../Expense/expense.c:128 #, fuzzy msgid "Thailand" msgstr "Skriv ut" #: ../Expense/expense.c:129 msgid "United Kingdom" msgstr "" #: ../Expense/expense.c:130 msgid "United States" msgstr "" #: ../Expense/expense.c:518 ../Expense/expense.c:529 msgid "Expense" msgstr "" #: ../Expense/expense.c:550 ../Expense/expense.c:1388 msgid "Airfare" msgstr "" #: ../Expense/expense.c:552 ../Expense/expense.c:1389 msgid "Breakfast" msgstr "" #: ../Expense/expense.c:554 ../Expense/expense.c:1390 msgid "Bus" msgstr "" #: ../Expense/expense.c:556 ../Expense/expense.c:1391 msgid "BusinessMeals" msgstr "" #: ../Expense/expense.c:558 ../Expense/expense.c:1392 msgid "CarRental" msgstr "" #: ../Expense/expense.c:560 ../Expense/expense.c:1393 #, fuzzy msgid "Dinner" msgstr "ingen" #: ../Expense/expense.c:562 ../Expense/expense.c:1394 msgid "Entertainment" msgstr "" #: ../Expense/expense.c:564 ../Expense/expense.c:1395 msgid "Fax" msgstr "" #: ../Expense/expense.c:566 ../Expense/expense.c:1396 msgid "Gas" msgstr "" #: ../Expense/expense.c:568 ../Expense/expense.c:1397 msgid "Gifts" msgstr "" #: ../Expense/expense.c:570 ../Expense/expense.c:1398 #, fuzzy msgid "Hotel" msgstr "Notat" #: ../Expense/expense.c:572 ../Expense/expense.c:1399 msgid "Incidentals" msgstr "" #: ../Expense/expense.c:574 ../Expense/expense.c:1400 #, fuzzy msgid "Laundry" msgstr "Søndag" #: ../Expense/expense.c:576 ../Expense/expense.c:1401 msgid "Limo" msgstr "" #: ../Expense/expense.c:578 ../Expense/expense.c:1402 msgid "Lodging" msgstr "" #: ../Expense/expense.c:580 ../Expense/expense.c:1403 msgid "Lunch" msgstr "" #: ../Expense/expense.c:582 ../Expense/expense.c:1404 msgid "Mileage" msgstr "" #: ../Expense/expense.c:586 ../Expense/expense.c:1406 #, fuzzy msgid "Parking" msgstr "Skriv ut" #: ../Expense/expense.c:588 ../Expense/expense.c:1407 msgid "Postage" msgstr "" #: ../Expense/expense.c:590 ../Expense/expense.c:1408 #, fuzzy msgid "Snack" msgstr "Synkroniser" #: ../Expense/expense.c:592 ../Expense/expense.c:1409 #, fuzzy msgid "Subway" msgstr "Søndag" #: ../Expense/expense.c:594 ../Expense/expense.c:1410 msgid "Supplies" msgstr "" #: ../Expense/expense.c:596 ../Expense/expense.c:1411 msgid "Taxi" msgstr "" #: ../Expense/expense.c:598 ../Expense/expense.c:1412 msgid "Telephone" msgstr "" #: ../Expense/expense.c:600 ../Expense/expense.c:1413 msgid "Tips" msgstr "" #: ../Expense/expense.c:602 ../Expense/expense.c:1414 msgid "Tolls" msgstr "" #: ../Expense/expense.c:604 ../Expense/expense.c:1415 #, fuzzy msgid "Train" msgstr "Skriv ut" #: ../Expense/expense.c:1239 msgid "Expense: Unknown expense type\n" msgstr "" #: ../Expense/expense.c:1245 msgid "Expense: Unknown payment type\n" msgstr "" #: ../Expense/expense.c:1377 msgid "American Express" msgstr "" #: ../Expense/expense.c:1378 #, fuzzy msgid "Cash" msgstr "Katter" #: ../Expense/expense.c:1379 msgid "Check" msgstr "" #: ../Expense/expense.c:1380 msgid "Credit Card" msgstr "" #: ../Expense/expense.c:1381 msgid "Master Card" msgstr "" #: ../Expense/expense.c:1382 msgid "Prepaid" msgstr "" #: ../Expense/expense.c:1383 msgid "VISA" msgstr "" #: ../Expense/expense.c:1619 #, fuzzy msgid "Type" msgstr "Tid:" #: ../Expense/expense.c:1620 #, fuzzy msgid "Amount" msgstr "Om %s" #. Category Menu #: ../Expense/expense.c:1704 #, fuzzy msgid "Category:" msgstr "Kategori" #. Type Menu #: ../Expense/expense.c:1712 #, fuzzy msgid "Type:" msgstr "Tid:" #. Payment Menu #: ../Expense/expense.c:1720 msgid "Payment:" msgstr "" #. Currency Menu #: ../Expense/expense.c:1728 msgid "Currency:" msgstr "" #: ../Expense/expense.c:1748 #, fuzzy msgid "Month:" msgstr "Måned" #: ../Expense/expense.c:1762 #, fuzzy msgid "Day:" msgstr "Dag" # msgid "WeekView" # msgstr "Pr. uke" # msgid "MonthView" # msgstr "Pr. mnd" #: ../Expense/expense.c:1776 #, fuzzy msgid "Year:" msgstr "År" #. Amount Entry #: ../Expense/expense.c:1789 #, fuzzy msgid "Amount:" msgstr "Om %s" #. Vendor Entry #: ../Expense/expense.c:1799 msgid "Vendor:" msgstr "" #. City #: ../Expense/expense.c:1809 #, fuzzy msgid "City:" msgstr "Kategori" #. Attendees #: ../Expense/expense.c:1819 msgid "Attendees" msgstr "" #. ------------------------------------------- #: ../Expense/expense.c:2102 #, fuzzy, c-format msgid "" "%s\n" "\n" "Expense plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org" msgstr "" "%s er skrevet av\n" "Judd Montgomery (c) 1999-2000.\n" "judd@jpilot.org\n" "http://jpilot.org\n" #: ../KeyRing/keyring.c:291 msgid "KeyRing: pack_KeyRing(): buf_size too small\n" msgstr "" #: ../KeyRing/keyring.c:1699 #, fuzzy msgid "Incorrect, Reenter KeyRing Password" msgstr "Angi Palm-passord" #: ../KeyRing/keyring.c:1701 #, fuzzy msgid "Enter a NEW KeyRing Password" msgstr "Angi Palm-passord" #: ../KeyRing/keyring.c:1703 #, fuzzy msgid "Enter KeyRing Password" msgstr "Angi Palm-passord" #: ../KeyRing/keyring.c:1769 #, c-format msgid "KeyRing: file %s not found.\n" msgstr "" #: ../KeyRing/keyring.c:1770 msgid "KeyRing: Try Syncing.\n" msgstr "" #: ../KeyRing/keyring.c:1861 ../KeyRing/keyring.c:1872 msgid "KeyRing" msgstr "" #. ------------------------------------------- #: ../KeyRing/keyring.c:1900 #, fuzzy, c-format msgid "" "%s\n" "\n" "KeyRing plugin for J-Pilot was written by\n" "Judd Montgomery (c) 2001.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "KeyRing is a free PalmOS program for storing\n" "passwords and other information in encrypted form\n" "http://gnukeyring.sourceforge.net" msgstr "" "%s er skrevet av\n" "Judd Montgomery (c) 1999-2000.\n" "judd@jpilot.org\n" "http://jpilot.org\n" #: ../KeyRing/keyring.c:2137 #, c-format msgid "" "Keys exported from %s %s on %s\n" "\n" msgstr "" #: ../KeyRing/keyring.c:2162 #, fuzzy, c-format msgid "Can't export key %d\n" msgstr "Kategori" #: ../KeyRing/keyring.c:2229 msgid "B-FOLDERS CSV" msgstr "" #. Change Password button #: ../KeyRing/keyring.c:2384 #, fuzzy msgid "" "Change\n" "KeyRing\n" "Password" msgstr "Angi Palm-passord" #. Clist #: ../KeyRing/keyring.c:2497 #, fuzzy msgid "Changed" msgstr "Angre" #: ../KeyRing/keyring.c:2499 msgid "Account" msgstr "" #. Name entry #: ../KeyRing/keyring.c:2593 #, fuzzy msgid "name: " msgstr "Navn" #. Account entry #: ../KeyRing/keyring.c:2601 msgid "account: " msgstr "" #. Password entry #: ../KeyRing/keyring.c:2609 #, fuzzy msgid "password: " msgstr "Palm-passord" #. Last Changed entry #: ../KeyRing/keyring.c:2616 msgid "last changed: " msgstr "" #. Generate Password button (creates random password) #: ../KeyRing/keyring.c:2626 #, fuzzy msgid "Generate Password" msgstr "Angi Palm-passord" #: ../SyncTime/synctime.c:61 #, fuzzy msgid "SyncTime" msgstr "Synkroniser notater" #. ------------------------------------------- #: ../SyncTime/synctime.c:72 #, fuzzy, c-format msgid "" "%s\n" "\n" "SyncTime plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "SyncTime WILL NOT work with PalmOS 3.3!" msgstr "" "%s er skrevet av\n" "Judd Montgomery (c) 1999-2000.\n" "judd@jpilot.org\n" "http://jpilot.org\n" #: ../SyncTime/synctime.c:106 msgid "synctime: Palm OS Version 3.25 and 3.30 do not support SyncTime\n" msgstr "" #: ../SyncTime/synctime.c:107 msgid "synctime: NOT setting the time on the pilot\n" msgstr "" #: ../SyncTime/synctime.c:112 msgid "synctime: Setting the time on the pilot... " msgstr "" #: ../SyncTime/synctime.c:117 #, fuzzy msgid "Done\n" msgstr "Ferdig" #, fuzzy #~ msgid "Serial Port" #~ msgstr "Seriell overføringshastighet " #, fuzzy #~ msgid "W" #~ msgstr "On" #, fuzzy #~ msgid "M" #~ msgstr "Ma" #~ msgid "This Event has no particular time" #~ msgstr "Denne avtalen har ingen tidsangivelse" #, fuzzy #~ msgid "Start Time" #~ msgstr "Starter den" #, fuzzy #~ msgid "End Time" #~ msgstr "Ingen tid" #, fuzzy #~ msgid "email command empty\n" #~ msgstr "Alarm-kommando" #, fuzzy #~ msgid "Unable to open %s%s file\n" #~ msgstr "Kan ikke åpne loggfil\n" #, fuzzy #~ msgid "Unable to open %s.alarms file\n" #~ msgstr "Kan ikke åpne loggfil\n" #, fuzzy #~ msgid "category name" #~ msgstr "Kategori" #, fuzzy #~ msgid "End Date: Never\n" #~ msgstr "Slutt-dato" #, fuzzy #~ msgid "Repeat Days: " #~ msgstr "Gjenta på følgende dager: " #~ msgid "Close" #~ msgstr "Lukk" #~ msgid "none" #~ msgstr "ingen" #~ msgid "Done" #~ msgstr "Ferdig" #~ msgid "Add" #~ msgstr "Legg til" #~ msgid "Remove" #~ msgstr "Fjern" #, fuzzy #~ msgid "User name" #~ msgstr "Navn" #~ msgid "/Help/PayBack program" #~ msgstr "/Hjelp/PayBack program" #, fuzzy #~ msgid "Show private records" #~ msgstr "/Vis/Gjem - visning av private poster" #, fuzzy #~ msgid "Hide private records" #~ msgstr "/Vis/Gjem - visning av private poster" #, fuzzy #~ msgid "Mask private records" #~ msgstr "Skriv ut alle poster" #, fuzzy #~ msgid "Font" #~ msgstr "Måned" #, fuzzy #~ msgid "Couldn't open PC records file\n" #~ msgstr "Kan ikke åpne loggfil\n" #~ msgid "The first day of the week is " #~ msgstr "Første dag i uken er " #~ msgid "One record" #~ msgstr "En post" #, fuzzy #~ msgid "Finished\n" #~ msgstr "Ferdig\n" #, fuzzy #~ msgid "Last UserID = %d\n" #~ msgstr "Navn" #, fuzzy #~ msgid "Username = [%s]\n" #~ msgstr "Navn" #, fuzzy #~ msgid "userID = %d\n" #~ msgstr "Navn" #, fuzzy #~ msgid "Field" #~ msgstr "Ferdig\n" #~ msgid "Quick View" #~ msgstr "Kortversjon" #~ msgid "Serial Port (/dev/ttyS0, /dev/pilot)" #~ msgstr "Seriellport (/dev/ttyS0, /dev/pilot)" #, fuzzy #~ msgid "Sync memo32 (pedit32)" #~ msgstr "Synkroniser notater" #, fuzzy #~ msgid "Quit" #~ msgstr "Avslutt" #~ msgid "Help" #~ msgstr "Hjelp" #, fuzzy #~ msgid "Filename" #~ msgstr "Navn" #~ msgid "Sync" #~ msgstr "Synkroniser" #, fuzzy #~ msgid "Add the new record Ctrl+Enter" #~ msgstr "/Vis/Gjem - visning av private poster" #~ msgid "Backup" #~ msgstr "Ta sikkerhetskopi" #~ msgid "Quit!" #~ msgstr "Avslutt" #, fuzzy #~ msgid "Show Preferences" #~ msgstr "Innstillinger" #, fuzzy #~ msgid "About Expense" #~ msgstr "Om %s" #, fuzzy #~ msgid "About KeyRing" #~ msgstr "Om %s" #, fuzzy #~ msgid "Cannot open %s_to_install file\n" #~ msgstr "Kan ikke åpne loggfil\n" #, fuzzy #~ msgid "Cannot open %s_to_install.tmp file\n" #~ msgstr "Kan ikke åpne loggfil\n" #, fuzzy #~ msgid "Error reading at %s : %s %d\n" #~ msgstr "Feil under lesing" #, fuzzy #~ msgid "Cannot open " #~ msgstr "Kan ikke åpne loggfil\n" #~ msgid "RTh" #~ msgstr "To" jpilot-1.8.1.2/po/POTFILES.in0000644000175000017500000000077411702304470012304 00000000000000address.c address_gui.c alarms.c calendar.c category.c contact.c dat.c datebook.c datebook_gui.c dialer.c export_gui.c import_gui.c install_gui.c install_user.c jpilot.c jpilot-dump.c jpilot-merge.c jpilot-sync.c libplugin.c log.c memo.c memo_gui.c monthview_gui.c otherconv.c password.c pidfile.c plugins.c prefs.c prefs_gui.c print.c print_gui.c print_headers.c print_logo.c restore_gui.c search_gui.c sync.c todo.c todo_gui.c utils.c weekview_gui.c Expense/expense.c KeyRing/keyring.c SyncTime/synctime.c jpilot-1.8.1.2/po/ChangeLog0000644000175000017500000000150711022756004012273 000000000000002008-06-01 gettextize * Makefile.in.in: Upgrade to gettext-0.16.1. 2005-12-11 gettextize * Makefile.in.in: Upgrade to gettext-0.14.5. 2004-02-22 gettextize * Makefile.in.in: Upgrade to gettext-0.14.1. 2003-04-20 gettextize * Makefile.in.in: Upgrade to gettext-0.11.5. * Rules-quot: New file, from gettext-0.11.5. * boldquot.sed: New file, from gettext-0.11.5. * en@boldquot.header: New file, from gettext-0.11.5. * en@quot.header: New file, from gettext-0.11.5. * insert-header.sin: New file, from gettext-0.11.5. * quot.sed: New file, from gettext-0.11.5. * remove-potcdate.sin: New file, from gettext-0.11.5. 2003-01-13 gettextize * Makefile.in.in: Upgrade to gettext-0.10.40. jpilot-1.8.1.2/po/ca.po0000644000175000017500000024603511702307203011451 00000000000000# Catalan translations for jpilot. # # Hervè LETOQUEUX , 2000. # Leopold Palomo , 2001, 200 msgid "" msgstr "" "Project-Id-Version: jpilot 0.99.2\n" "Report-Msgid-Bugs-To: jpilot-devel@jpilot.org\n" "POT-Creation-Date: 2012-01-08 13:39+0100\n" "PO-Revision-Date: 2002-01-24 14:20GMT\n" "Last-Translator: Leopold Palomo \n" "Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 0.9.5\n" #: ../address.c:276 ../address.c:448 ../alarms.c:332 ../calendar.c:309 #: ../calendar.c:547 ../contact.c:324 ../contact.c:738 ../dat.c:189 #: ../dat.c:655 ../dat.c:859 ../dat.c:993 ../dat.c:1132 ../datebook.c:130 #: ../datebook.c:165 ../datebook.c:172 ../datebook.c:231 ../jpilot.c:1254 #: ../jpilot-merge.c:95 ../libplugin.c:208 ../libplugin.c:455 #: ../libplugin.c:534 ../libplugin.c:563 ../libplugin.c:811 ../memo.c:214 #: ../memo.c:287 ../otherconv.c:280 ../plugins.c:112 ../prefs.c:350 #: ../prefs.c:375 ../prefs.c:906 ../sync.c:2170 ../sync.c:2187 ../sync.c:2296 #: ../sync.c:2310 ../sync.c:2507 ../sync.c:2646 ../todo.c:236 ../todo.c:490 #: ../utils.c:748 #, c-format msgid "Out of memory" msgstr "" #: ../address.c:332 ../calendar.c:230 ../contact.c:580 ../datebook.c:494 #: ../memo.c:87 ../todo.c:90 #, fuzzy, c-format msgid "%s:%d Error reading application info %s\n" msgstr "Error llegint" #: ../address.c:344 ../address_gui.c:2285 ../address_gui.c:2324 #: ../calendar.c:246 ../contact.c:596 ../datebook.c:514 ../datebook_gui.c:3737 #: ../libplugin.c:405 ../libplugin.c:431 ../memo.c:99 ../memo_gui.c:863 #: ../todo_gui.c:1070 ../Expense/expense.c:1105 #, fuzzy, c-format msgid "Error reading file: %s\n" msgstr "Error llegint" #: ../address.c:492 ../calendar.c:598 ../calendar.c:607 ../contact.c:780 #: ../libplugin.c:846 ../memo.c:353 ../todo.c:302 ../utils.c:1124 #: ../utils.c:1131 ../utils.c:1138 ../utils.c:1145 ../utils.c:1152 #: ../utils.c:1159 msgid "error" msgstr "error" #: ../address_gui.c:325 ../datebook_gui.c:2844 ../memo_gui.c:176 #: ../todo_gui.c:292 ../KeyRing/keyring.c:834 msgid "" "This record is deleted.\n" "Undelete it or copy it to make changes.\n" msgstr "" #: ../address_gui.c:452 ../address_gui.c:458 ../address_gui.c:469 #: ../address_gui.c:481 ../address_gui.c:493 ../address_gui.c:506 #, c-format msgid "%s%s: %s" msgstr "" #: ../address_gui.c:542 ../category.c:118 ../category.c:176 ../category.c:330 #: ../category.c:336 ../datebook_gui.c:430 ../jpilot-merge.c:88 #: ../jpilot-merge.c:146 ../jpilot-merge.c:151 ../memo_gui.c:280 #: ../sync.c:2129 ../sync.c:2135 ../sync.c:2481 ../sync.c:2842 #: ../todo_gui.c:416 ../utils.c:2674 ../utils.c:2711 ../utils.c:2717 #: ../utils.c:2776 ../utils.c:2782 ../utils.c:2836 ../utils.c:2890 #: ../utils.c:2896 ../utils.c:2954 ../utils.c:2961 #, fuzzy, c-format msgid "Unable to open file: %s\n" msgstr "No s'ha pogut obrir %s\n" #: ../address_gui.c:561 #, fuzzy, c-format msgid "Unable to read file: %s\n" msgstr "No s'ha pogut obrir %s\n" #: ../address_gui.c:715 msgid "File doesn't appear to be address.dat format\n" msgstr "L'arxiu no sembla tenir el format d'adreces\n" #: ../address_gui.c:725 ../datebook_gui.c:647 ../memo_gui.c:324 #: ../memo_gui.c:417 ../todo_gui.c:542 ../Expense/expense.c:1384 msgid "Unfiled" msgstr "No registrat" #: ../address_gui.c:781 ../datebook_gui.c:698 ../memo_gui.c:470 #: ../todo_gui.c:595 msgid "CSV (Comma Separated Values)" msgstr "" #: ../address_gui.c:782 msgid "DAT/ABA (Palm Archive Formats)" msgstr "" #. current category name #. previous category name #. entry text, in Pilot character set #: ../address_gui.c:868 ../category.c:408 ../datebook_gui.c:729 #: ../jpilot.c:234 ../jpilot.c:278 ../jpilot.c:352 ../jpilot.c:396 #: ../jpilot.c:953 ../memo_gui.c:506 ../todo_gui.c:635 ../utils.c:1305 #: ../KeyRing/keyring.c:2090 msgid "OK" msgstr "D'acord" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "No" msgstr "No" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "Yes" msgstr "Sí" #: ../address_gui.c:888 ../datebook_gui.c:753 ../memo_gui.c:520 #: ../todo_gui.c:655 ../KeyRing/keyring.c:2104 #, c-format msgid "%s is a directory" msgstr "%s és un directori" #: ../address_gui.c:890 ../address_gui.c:907 ../datebook_gui.c:755 #: ../datebook_gui.c:772 ../memo_gui.c:522 ../memo_gui.c:539 ../todo_gui.c:657 #: ../todo_gui.c:674 ../KeyRing/keyring.c:2106 ../KeyRing/keyring.c:2123 msgid "Error Opening File" msgstr "Error obrint arxiu" #: ../address_gui.c:894 ../datebook_gui.c:759 ../memo_gui.c:526 #: ../todo_gui.c:661 ../KeyRing/keyring.c:2110 #, c-format msgid "Do you want to overwrite file %s?" msgstr "Voleu sobreescriure l'arxiu %s?" #: ../address_gui.c:896 ../datebook_gui.c:761 ../memo_gui.c:528 #: ../todo_gui.c:663 ../KeyRing/keyring.c:2112 msgid "Overwrite File?" msgstr "Sobreescriure arxiu?" #: ../address_gui.c:905 ../datebook_gui.c:770 ../memo_gui.c:537 #: ../todo_gui.c:672 ../KeyRing/keyring.c:2121 #, fuzzy, c-format msgid "Error opening file: %s" msgstr "Error obrint arxiu" #: ../address_gui.c:922 #, c-format msgid "" "Address exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:925 #, c-format msgid "" "Contact exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:989 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ldif file may not be standards-compliant\n" msgstr "" #: ../address_gui.c:1002 #, c-format msgid "Can't export address %d\n" msgstr "" #: ../address_gui.c:1008 ../memo_gui.c:630 ../todo_gui.c:760 #, fuzzy, c-format msgid "Category: %s\n" msgstr "Categoria" #: ../address_gui.c:1010 ../memo_gui.c:632 ../todo_gui.c:763 #, fuzzy, c-format msgid "Private: %s\n" msgstr "Privat" #: ../address_gui.c:1018 ../address_gui.c:1032 ../address_gui.c:1036 #: ../address_gui.c:1045 ../address_gui.c:1048 #, c-format msgid "%s: " msgstr "" #: ../address_gui.c:1022 #, c-format msgid "%s\n" msgstr "" #. E-mail should be the Palm dropdown menu item for email #. Set dial/email button text and callback data #: ../address_gui.c:1196 ../address_gui.c:2846 ../address_gui.c:4185 msgid "E-mail" msgstr "" #: ../address_gui.c:1482 ../datebook_gui.c:1147 ../memo_gui.c:640 #: ../todo_gui.c:844 ../KeyRing/keyring.c:2214 msgid "Unknown export type\n" msgstr "" #: ../address_gui.c:1508 ../datebook_gui.c:1226 ../memo_gui.c:469 #: ../memo_gui.c:666 ../todo_gui.c:870 ../KeyRing/keyring.c:2229 msgid "Text" msgstr "" #: ../address_gui.c:1509 ../datebook_gui.c:1227 ../memo_gui.c:667 #: ../todo_gui.c:871 ../KeyRing/keyring.c:2229 msgid "CSV" msgstr "" #: ../address_gui.c:1510 #, fuzzy msgid "vCard" msgstr "Neteja" #: ../address_gui.c:1511 msgid "vCard (Optimized for Gmail/Android Import)" msgstr "" #: ../address_gui.c:1512 msgid "ldif" msgstr "" #. Initialize variable if default case taken #: ../address_gui.c:1777 ../address_gui.c:3902 #, fuzzy msgid "Last Name/Company" msgstr "Nom/Empresa" #: ../address_gui.c:1780 ../address_gui.c:3905 #, fuzzy msgid "First Name/Company" msgstr "Nom/Empresa" #: ../address_gui.c:1783 ../address_gui.c:3908 #, fuzzy msgid "Company/Last Name" msgstr "Empresa/Nom" #: ../address_gui.c:1920 ../datebook_gui.c:2907 ../memo_gui.c:1036 #: ../todo_gui.c:1329 ../KeyRing/keyring.c:1181 msgid "You can't modify a record that is deleted\n" msgstr "" #. Illegal category, Assume that category 0 is Unfiled and valid #: ../address_gui.c:2119 ../address_gui.c:2370 ../address_gui.c:2803 #: ../address_gui.c:2809 ../address_gui.c:3601 ../datebook_gui.c:1994 #: ../datebook_gui.c:3434 ../datebook_gui.c:3783 ../datebook_gui.c:4074 #: ../memo_gui.c:900 ../memo_gui.c:946 ../memo_gui.c:1161 ../memo_gui.c:1548 #: ../todo_gui.c:1106 ../todo_gui.c:1200 ../todo_gui.c:1589 ../todo_gui.c:2141 #: ../Expense/expense.c:689 ../Expense/expense.c:1143 #: ../Expense/expense.c:1227 ../Expense/expense.c:1887 #: ../KeyRing/keyring.c:1070 ../KeyRing/keyring.c:1512 #: ../KeyRing/keyring.c:1574 ../KeyRing/keyring.c:2688 msgid "Category is not legal\n" msgstr "" #: ../address_gui.c:2179 ../alarms.c:598 ../dialer.c:164 #, fuzzy, c-format msgid "executing command = [%s]\n" msgstr "Executa aquesta ordre" #: ../address_gui.c:2181 #, c-format msgid "Failed to execute [%s]\n" msgstr "" #: ../address_gui.c:2425 msgid "Birthday" msgstr "" #: ../address_gui.c:2521 msgid "External program not found, or other error" msgstr "" #: ../address_gui.c:2523 msgid "" "J-Pilot can not find the external program \"convert\"\n" "or an error occurred while executing convert.\n" "You may need to install package ImageMagick" msgstr "" #: ../address_gui.c:2524 #, c-format msgid "Command executed was \"%s\"\n" msgstr "" #: ../address_gui.c:2525 #, c-format msgid "return code was %d\n" msgstr "" #: ../address_gui.c:2603 #, fuzzy msgid "chdir() failed\n" msgstr "Ha fallat.\n" #: ../address_gui.c:2606 msgid "Add Photo" msgstr "" #. Category menu #: ../address_gui.c:2828 ../KeyRing/keyring.c:2585 msgid "Category: " msgstr "Categoria" #: ../address_gui.c:2848 ../address_gui.c:4186 msgid "Mail" msgstr "" #. Dial Phone Button #: ../address_gui.c:2851 ../address_gui.c:4189 ../dialer.c:307 ../dialer.c:331 msgid "Dial" msgstr "" #: ../address_gui.c:3041 ../datebook_gui.c:2757 ../memo_gui.c:1228 #: ../todo_gui.c:1697 msgid "Could not get temporary file name\n" msgstr "" #: ../address_gui.c:3049 ../datebook_gui.c:2765 ../memo_gui.c:1236 #: ../todo_gui.c:1705 msgid "Could not open temporary file for external editor\n" msgstr "" #: ../address_gui.c:3089 ../datebook_gui.c:2806 ../memo_gui.c:1277 #: ../todo_gui.c:1746 msgid "Could not open temporary file from external editor\n" msgstr "" #: ../address_gui.c:3261 ../address_gui.c:3292 msgid "-Unnamed-" msgstr "" #: ../address_gui.c:3374 ../memo_gui.c:1454 ../todo_gui.c:2019 msgid "0 records" msgstr "Cap registre" #: ../address_gui.c:3377 ../datebook_gui.c:2637 ../memo_gui.c:1457 #: ../todo_gui.c:2022 #, c-format msgid "%d of %d records" msgstr "%d de %d registres" #: ../address_gui.c:3772 ../address_gui.c:3780 ../KeyRing/keyring.c:2498 msgid "Name" msgstr "Nom" #: ../address_gui.c:3773 ../address_gui.c:3774 ../address_gui.c:3775 #: ../address_gui.c:3781 msgid "Address" msgstr "Adreces" #: ../address_gui.c:3776 ../address_gui.c:3782 ../Expense/expense.c:584 #: ../Expense/expense.c:1405 msgid "Other" msgstr "Altres" #. Note textbox #: ../address_gui.c:3777 ../address_gui.c:3783 ../todo_gui.c:2484 #: ../Expense/expense.c:1836 ../KeyRing/keyring.c:2632 msgid "Note" msgstr "Cap" #: ../address_gui.c:3793 msgid "Reverting to Address database\n" msgstr "" #: ../address_gui.c:3914 msgid "Phone" msgstr "Telèfon" #: ../address_gui.c:3946 #, fuzzy msgid "Quick Find: " msgstr "Cerca ràpida" #. Cancel button #. Add record modification buttons #. Cancel button #: ../address_gui.c:3964 ../category.c:409 ../datebook_gui.c:1782 #: ../datebook_gui.c:5124 ../memo_gui.c:1692 ../todo_gui.c:2345 #: ../utils.c:1346 ../KeyRing/keyring.c:2528 msgid "Cancel" msgstr "Anul·lar" #: ../address_gui.c:3964 ../datebook_gui.c:5124 ../memo_gui.c:1692 #: ../todo_gui.c:2345 ../KeyRing/keyring.c:2528 msgid "Cancel the modifications" msgstr "" #. Delete Button #. Delete button #. Delete Button #. Delete button #. Delete, Copy, New, etc. buttons #. Delete button #: ../address_gui.c:3969 ../category.c:409 ../category.c:852 #: ../datebook_gui.c:5129 ../memo_gui.c:1697 ../todo_gui.c:2350 #: ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete" msgstr "Suprimir" #: ../address_gui.c:3969 ../datebook_gui.c:5129 ../memo_gui.c:1697 #: ../todo_gui.c:2350 ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 #, fuzzy msgid "Delete the selected record" msgstr "%s registres esborrats." #. Undelete Button #. Undelete button #. Undelete Button #. Undelete button #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 #, fuzzy msgid "Undelete" msgstr "Suprimir" #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 #, fuzzy msgid "Undelete the selected record" msgstr "%s registres esborrats." #. Copy button #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy" msgstr "Copiar" #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 #, fuzzy msgid "Copy the selected record" msgstr "Afegir registre" #. New button #. New Record button #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "New Record" msgstr "Nou registre" #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 #, fuzzy msgid "Add a new record" msgstr "Afegir registre" #. "Add Record" button #. Add Record button #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add Record" msgstr "Afegir registre" #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 #, fuzzy msgid "Add the new record" msgstr "Afegir registre" #. "Apply Changes" button #. Apply Changes button #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Apply Changes" msgstr "Aplicar Canvis" #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Commit the modifications" msgstr "" #. Private check box #. Private checkbox #: ../address_gui.c:4033 ../datebook_gui.c:5191 ../datebook_gui.c:5233 #: ../memo_gui.c:1747 ../todo_gui.c:2410 msgid "Private" msgstr "Privat" #: ../address_gui.c:4118 #, fuzzy msgid "Change Photo" msgstr "Anul·lar" #: ../address_gui.c:4123 #, fuzzy msgid "Remove Photo" msgstr "Suprimir" #: ../address_gui.c:4195 #, fuzzy msgid "Show In List" msgstr "" "Mostra\n" "a la llista" #: ../address_gui.c:4296 msgid "Reminder" msgstr "" #: ../address_gui.c:4312 ../datebook_gui.c:238 ../datebook_gui.c:5221 #: ../datebook_gui.c:5378 msgid "Days" msgstr "Dies" #. The Quickview (ALL) page #. All button #: ../address_gui.c:4356 ../datebook_gui.c:1478 ../datebook_gui.c:1782 #: ../utils.c:2528 msgid "All" msgstr "Tot" #: ../alarms.c:232 ../datebook_gui.c:236 ../datebook_gui.c:5215 #: ../datebook_gui.c:5372 msgid "Minutes" msgstr "Minuts" #: ../alarms.c:234 ../datebook_gui.c:237 ../datebook_gui.c:5219 #: ../datebook_gui.c:5376 msgid "Hours" msgstr "Hores" #: ../alarms.c:255 msgid "Remind me" msgstr "" #: ../alarms.c:425 ../alarms.c:991 ../sync.c:1639 ../sync.c:1645 #: ../utils.c:3717 #, fuzzy, c-format msgid "Unable to open file: %s%s\n" msgstr "No s'ha pogut obrir %s\n" #: ../alarms.c:512 msgid "Appointment Reminder" msgstr "Cita" #: ../alarms.c:515 msgid "Past Appointment" msgstr "Cita" #: ../alarms.c:518 msgid "Postponed Appointment" msgstr "Cita" #: ../alarms.c:521 ../datebook_gui.c:5025 msgid "Appointment" msgstr "Cita" #: ../alarms.c:605 msgid "J-Pilot Alarm" msgstr "" #: ../category.c:131 ../category.c:188 ../sync.c:2158 ../sync.c:2495 msgid "PC file corrupt?\n" msgstr "El fitxer del PC està corrupte?\n" #: ../category.c:138 ../category.c:148 ../category.c:196 ../category.c:206 #: ../category.c:216 ../sync.c:2280 ../sync.c:2334 ../sync.c:2371 #: ../sync.c:2386 ../sync.c:2410 ../sync.c:2630 ../sync.c:2675 ../sync.c:2712 #: ../sync.c:2725 ../sync.c:2750 msgid "fseek failed - fatal error\n" msgstr "fseek ha fallat - error greu\n" #: ../category.c:364 ../utils.c:2738 ../utils.c:2812 ../utils.c:2916 #: ../utils.c:2981 #, fuzzy msgid "rename failed" msgstr "Instal·lació de %s ha fallat" #: ../category.c:409 #, fuzzy msgid "Move" msgstr "Dll" #: ../category.c:438 ../category.c:500 ../category.c:580 ../category.c:769 msgid "Edit Categories" msgstr "" #: ../category.c:439 msgid "The maximum number of categories (16) are already used" msgstr "" #: ../category.c:442 msgid "Enter New Category" msgstr "" #: ../category.c:453 ../category.c:477 msgid "Edit Categories Error" msgstr "" #: ../category.c:454 msgid "You must select a category to rename" msgstr "" #: ../category.c:463 msgid "Enter New Category Name" msgstr "" #: ../category.c:478 msgid "You must select a category to delete" msgstr "" #: ../category.c:496 #, c-format msgid "" "There are %d records in %s.\n" "Do you want to move them to %s, or delete them?" msgstr "" #: ../category.c:556 #, c-format msgid "invalid state file %s line %d\n" msgstr "" #: ../category.c:578 #, c-format msgid "The category %s can't be used more than once" msgstr "" #. Category names in host character set #: ../category.c:735 #, fuzzy msgid "Category" msgstr "Categoria" #: ../category.c:836 msgid "New" msgstr "" #: ../category.c:843 #, fuzzy msgid "Rename" msgstr "Nom" #: ../dat.c:456 msgid "unknown type =" msgstr "" #: ../dat.c:537 #, c-format msgid "fields per row count != %d, unknown format\n" msgstr "" #: ../dat.c:551 #, c-format msgid "field count != %d, unknown format\n" msgstr "" #: ../dat.c:559 msgid "Unknown format, file has wrong schema\n" msgstr "" #: ../dat.c:560 msgid "File schema is:" msgstr "" #: ../dat.c:564 msgid "It should be:" msgstr "" #: ../dat.c:674 ../dat.c:692 ../dat.c:876 ../dat.c:889 ../dat.c:1012 #: ../dat.c:1025 ../dat.c:1149 ../dat.c:1162 #, c-format msgid "%s:%d Record %d, field %d: Invalid type. Expected %d, found %d\n" msgstr "" #: ../dat.c:675 ../dat.c:693 ../dat.c:877 ../dat.c:890 ../dat.c:994 #: ../dat.c:1013 ../dat.c:1026 ../dat.c:1150 ../dat.c:1163 msgid "read of file terminated\n" msgstr "" #: ../datebook.c:705 ../datebook_gui.c:3648 #, c-format msgid "Unknown repeatType (%d) found in DatebookDB\n" msgstr "" #: ../datebook_gui.c:241 #, fuzzy msgid "Repeat Never" msgstr "Repetir tots els" #: ../datebook_gui.c:242 #, fuzzy msgid "Repeat Daily" msgstr "Repetir els dies:" #: ../datebook_gui.c:243 #, fuzzy msgid "Repeat Weekly" msgstr "Repetir tots els" #: ../datebook_gui.c:244 #, fuzzy msgid "Repeat MonthlyByDay" msgstr "Repetir els dies:" #: ../datebook_gui.c:245 #, fuzzy msgid "Repeat MonthlyByDate" msgstr "Repetir els dies:" #: ../datebook_gui.c:246 msgid "Repeat YearlyDate" msgstr "" #: ../datebook_gui.c:247 #, fuzzy msgid "Repeat YearlyDay" msgstr "Repetir els dies:" #: ../datebook_gui.c:250 ../datebook_gui.c:257 ../datebook_gui.c:4803 #: ../datebook_gui.c:4810 msgid "Su" msgstr "Di" #: ../datebook_gui.c:251 ../datebook_gui.c:4804 msgid "Mo" msgstr "Dll" #: ../datebook_gui.c:252 ../datebook_gui.c:4805 msgid "Tu" msgstr "Dt" #: ../datebook_gui.c:253 ../datebook_gui.c:4806 msgid "We" msgstr "Dc" #: ../datebook_gui.c:254 ../datebook_gui.c:4807 msgid "Th" msgstr "Dj" #: ../datebook_gui.c:255 ../datebook_gui.c:4808 msgid "Fr" msgstr "Dv" #: ../datebook_gui.c:256 ../datebook_gui.c:4809 msgid "Sa" msgstr "Ds" #: ../datebook_gui.c:269 #, c-format msgid "" "Start Date: %s\n" "Time: Event" msgstr "" #: ../datebook_gui.c:277 #, c-format msgid "" "Start Date: %s\n" "Time: %s to %s" msgstr "" #: ../datebook_gui.c:287 ../datebook_gui.c:297 msgid "Unknown" msgstr "" #. End Date #: ../datebook_gui.c:300 #, fuzzy msgid "End Date: " msgstr "Finalitza a la data" #: ../datebook_gui.c:302 msgid "Never" msgstr "" #: ../datebook_gui.c:308 #, c-format msgid "Repeat Frequency: %d\n" msgstr "" #: ../datebook_gui.c:316 #, c-format msgid "Monthly Repeat Day %d\n" msgstr "" #: ../datebook_gui.c:321 ../datebook_gui.c:5520 msgid "Repeat on Days:" msgstr "Repetir els dies:" #: ../datebook_gui.c:332 #, fuzzy, c-format msgid "Number of exceptions: %d" msgstr "número de registres = %d\n" #: ../datebook_gui.c:338 msgid "" "\n" "more..." msgstr "" #: ../datebook_gui.c:359 ../datebook_gui.c:386 msgid "Description:" msgstr "" #: ../datebook_gui.c:360 ../datebook_gui.c:387 #, fuzzy msgid "Note:" msgstr "Cap" #: ../datebook_gui.c:362 ../datebook_gui.c:390 #, fuzzy msgid "Alarm:" msgstr "Alarma" #: ../datebook_gui.c:363 ../datebook_gui.c:391 #, fuzzy msgid "Repeat Type:" msgstr "Repetir tots els" #: ../datebook_gui.c:366 ../datebook_gui.c:394 #, fuzzy msgid "Start of Week:" msgstr "Dia de la setmana" #: ../datebook_gui.c:388 ../datebook_gui.c:5343 msgid "Location:" msgstr "" #: ../datebook_gui.c:620 ../datebook_gui.c:2271 #, c-format msgid "Appointment description text > %d, truncating to %d\n" msgstr "" #: ../datebook_gui.c:631 ../datebook_gui.c:1148 ../datebook_gui.c:2331 #: ../datebook_gui.c:2338 #, fuzzy msgid "Error" msgstr "error" #: ../datebook_gui.c:632 msgid "File doesn't appear to be datebook.dat format\n" msgstr "L'arxiu no sembla tenir el format d'agenda (datebook.dat)\n" #: ../datebook_gui.c:699 msgid "DAT/DBA (Palm Archive Formats)" msgstr "" #: ../datebook_gui.c:787 #, c-format msgid "" "Datebook exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:790 #, c-format msgid "" "Calendar exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:817 ../todo_gui.c:701 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ical file may not be standards-compliant\n" msgstr "" #: ../datebook_gui.c:1148 msgid "Unknown export type" msgstr "" #: ../datebook_gui.c:1228 ../todo_gui.c:872 #, fuzzy msgid "iCalendar" msgstr "Neteja" #: ../datebook_gui.c:1240 ../export_gui.c:251 ../jpilot.c:429 msgid "Export" msgstr "Exportar" #. Label for instructions #: ../datebook_gui.c:1257 msgid "Export All Datebook Records" msgstr "Exportar tots els registres de l'agenda" #: ../datebook_gui.c:1276 ../export_gui.c:316 msgid "Save as" msgstr "Desar com" #. Browse button #: ../datebook_gui.c:1286 ../export_gui.c:329 msgid "Browse" msgstr "Explorador" #: ../datebook_gui.c:1432 msgid "Datebook Categories" msgstr "" #. None button #. Labels for notebook tabs #: ../datebook_gui.c:1484 ../datebook_gui.c:2026 ../datebook_gui.c:5449 msgid "None" msgstr "Cap" #: ../datebook_gui.c:1633 msgid "Begin On Date" msgstr "Comença a la data" #: ../datebook_gui.c:1639 msgid "End On Date" msgstr "Finalitza a la data" #: ../datebook_gui.c:1751 ../prefs.c:451 msgid "Sunday" msgstr "Diumenge" #: ../datebook_gui.c:1752 ../prefs.c:452 msgid "Monday" msgstr "Dilluns" #: ../datebook_gui.c:1753 msgid "Tuesday" msgstr "Dimarts" #: ../datebook_gui.c:1754 msgid "Wednesday" msgstr "Dimecres" #: ../datebook_gui.c:1755 msgid "Thursday" msgstr "Dijous" #: ../datebook_gui.c:1756 msgid "Friday" msgstr "Divendres" #: ../datebook_gui.c:1757 msgid "Saturday" msgstr "Dissabte" #: ../datebook_gui.c:1760 msgid "4th" msgstr "4t/4a" #: ../datebook_gui.c:1760 msgid "Last" msgstr "Últim" #: ../datebook_gui.c:1763 #, c-format msgid "" "This appointment can either\n" "repeat on the 4th %s\n" "of the month, or on the last\n" "%s of the month.\n" "Which do you want?" msgstr "" #: ../datebook_gui.c:1770 ../datebook_gui.c:1786 msgid "Question?" msgstr "" #: ../datebook_gui.c:1777 #, fuzzy msgid "" "This is a repeating event.\n" "Do you want to apply these changes to\n" "only the CURRENT event,\n" "just FUTURE events, or\n" "ALL of the occurrences of this event?" msgstr "" "Aquest és un esdeveniment que es repeteix. \n" "Voleu aplicar aquests canvis \n" "únicament a AQUEST esdeveniment \n" "o a TOTS els esdeveniments \n" "com aquest ?" #: ../datebook_gui.c:1782 msgid "Current" msgstr "Actual" #: ../datebook_gui.c:1782 msgid "Future" msgstr "" #: ../datebook_gui.c:2027 msgid "day" msgstr "dia" #: ../datebook_gui.c:2028 msgid "week" msgstr "setmana" #: ../datebook_gui.c:2029 msgid "month" msgstr "mes" #: ../datebook_gui.c:2030 msgid "year" msgstr "any" #: ../datebook_gui.c:2326 ../datebook_gui.c:2329 #, c-format msgid "You cannot have an appointment that repeats every %d %s(s)\n" msgstr "No pot tenir una cita que es repeteix cada %d %s(s)\n" #: ../datebook_gui.c:2339 #, fuzzy msgid "" "You cannot have a weekly repeating appointment that doesn't repeat on any " "day of the week." msgstr "" "No pot tenir una cita repetida setmanalment que no es repeteix a cap dia de " "la setmana .\n" #. This is a timeless event #: ../datebook_gui.c:2516 ../datebook_gui.c:5264 msgid "No Time" msgstr "Sense temps" #: ../datebook_gui.c:2788 ../memo_gui.c:1259 ../todo_gui.c:1728 msgid "External editor command too long to execute\n" msgstr "" #: ../datebook_gui.c:2943 #, fuzzy msgid "Invalid Appointment" msgstr "Cita" #: ../datebook_gui.c:2944 msgid "" "The End Date of this appointment\n" "is before the start date." msgstr "" #. "No Date" check box #: ../datebook_gui.c:3339 ../datebook_gui.c:5482 ../datebook_gui.c:5513 #: ../datebook_gui.c:5565 ../datebook_gui.c:5613 ../todo_gui.c:142 #: ../todo_gui.c:2454 msgid "No Date" msgstr "Sense data" #: ../datebook_gui.c:3494 #, c-format msgid "Error in DateBookDB or Calendar advanceUnits = %d\n" msgstr "" #: ../datebook_gui.c:3681 #, c-format msgid "%%a., %s" msgstr "" #: ../datebook_gui.c:3686 msgid " (TODAY)" msgstr "" #. Weekview button #: ../datebook_gui.c:4934 ../datebook_gui.c:5451 msgid "Week" msgstr "Setmana" #: ../datebook_gui.c:4943 msgid "View appointments by week Ctrl+W" msgstr "" #. Monthview button #: ../datebook_gui.c:4946 ../datebook_gui.c:5452 msgid "Month" msgstr "Mes" #: ../datebook_gui.c:4955 msgid "View appointments by month Ctrl+M" msgstr "" #. Make Category button #: ../datebook_gui.c:4960 msgid "Cats" msgstr "Cats" #: ../datebook_gui.c:5024 msgid "Time" msgstr "Temps" #. "Show ToDos" button #: ../datebook_gui.c:5067 msgid "Show ToDos" msgstr "" #: ../datebook_gui.c:5081 ../todo_gui.c:2285 msgid "Task" msgstr "Tasca" #: ../datebook_gui.c:5082 ../todo_gui.c:2286 msgid "Due" msgstr "Venciment" #: ../datebook_gui.c:5201 ../datebook_gui.c:5358 msgid "Alarm" msgstr "Alarma" #. Date Spinners #: ../datebook_gui.c:5241 ../Expense/expense.c:1736 #, fuzzy msgid "Date:" msgstr "Data" #. Start date and time #: ../datebook_gui.c:5283 #, fuzzy msgid "Start" msgstr "Comença en" #. End date and time #: ../datebook_gui.c:5300 #, fuzzy msgid "End" msgstr "Acaba en" #: ../datebook_gui.c:5433 msgid "DateBk Tags" msgstr "" #: ../datebook_gui.c:5450 msgid "Day" msgstr "Dia" #: ../datebook_gui.c:5453 msgid "Year" msgstr "Any" #. "No Repeat" page for notebook #: ../datebook_gui.c:5456 msgid "This event will not repeat" msgstr "Aquest esdeveniment no es repetirà" #: ../datebook_gui.c:5465 ../datebook_gui.c:5498 ../datebook_gui.c:5550 #: ../datebook_gui.c:5596 msgid "Frequency is Every" msgstr "La freqüència és cada " #: ../datebook_gui.c:5471 msgid "Day(s)" msgstr "Di(a)(es)" #: ../datebook_gui.c:5474 ../datebook_gui.c:5507 ../datebook_gui.c:5559 #: ../datebook_gui.c:5605 msgid "End on" msgstr "Acaba en" #: ../datebook_gui.c:5504 msgid "Week(s)" msgstr "Setman(a)(es)" #: ../datebook_gui.c:5556 msgid "Month(s)" msgstr "Mes" #: ../datebook_gui.c:5573 msgid "Repeat by:" msgstr "Repetir tots els" #: ../datebook_gui.c:5577 msgid "Day of week" msgstr "Dia de la setmana" #: ../datebook_gui.c:5586 ../Expense/expense.c:1618 msgid "Date" msgstr "Data" #: ../datebook_gui.c:5602 msgid "Year(s)" msgstr "Any(s)" #: ../dialer.c:195 msgid "Phone Dialer" msgstr "" #: ../dialer.c:230 msgid "Prefix 1" msgstr "" #: ../dialer.c:252 msgid "Prefix 2" msgstr "" #: ../dialer.c:274 msgid "Prefix 3" msgstr "" #: ../dialer.c:289 msgid "Phone number:" msgstr "" #: ../dialer.c:319 msgid "Extension" msgstr "" #: ../dialer.c:341 #, fuzzy msgid "Dial Command" msgstr "Ordre d'alarma" #: ../export_gui.c:121 msgid "File Browser" msgstr "Explorador" #. Label for instructions #: ../export_gui.c:273 msgid "Select records to be exported" msgstr "" #: ../export_gui.c:275 msgid "Use Ctrl and Shift Keys" msgstr "" #. Import button #: ../import_gui.c:300 ../import_gui.c:369 ../import_gui.c:426 #: ../import_gui.c:471 ../jpilot.c:385 msgid "Import" msgstr "Importar" #: ../import_gui.c:317 #, c-format msgid "Record was marked as private" msgstr "" #: ../import_gui.c:319 #, c-format msgid "Record was not marked as private" msgstr "" #: ../import_gui.c:328 #, c-format msgid "Category before import was: [%s]" msgstr "" #: ../import_gui.c:336 #, fuzzy, c-format msgid "Record will be put in category [%s]" msgstr "Tots els registres d'aquesta categoria" #. Import All button #: ../import_gui.c:376 msgid "Import All" msgstr "Importar" #. Skip button #: ../import_gui.c:383 msgid "Skip" msgstr "" #: ../import_gui.c:457 ../install_gui.c:429 msgid "To change to a hidden directory type it below and hit TAB" msgstr "Per anar dins un directori ocult escriure'l i prémer TAB" #: ../import_gui.c:484 msgid "Import File Type" msgstr "" #: ../install_gui.c:366 #, fuzzy msgid "Files to install" msgstr "Fitxers per instal.lar" #: ../install_gui.c:374 msgid "Install" msgstr "Instal·lar" #: ../install_user.c:118 ../install_user.c:220 #, fuzzy msgid "Install User" msgstr "/Arxiu/_Instal·lar" #: ../install_user.c:139 msgid "" "A PalmOS(c) device needs a user name and a user ID in order to sync properly." msgstr "" #: ../install_user.c:146 msgid "" "If you want to sync more than 1 PalmOS(c) device each one should have a " "different ID and preferably a different user name." msgstr "" #. Instruction label #: ../install_user.c:168 msgid "Most people choose their name or nickname for the user name." msgstr "" #: ../install_user.c:176 ../restore_gui.c:278 msgid "User Name" msgstr "Nom" #: ../install_user.c:186 msgid "The ID should be a random number." msgstr "" #: ../install_user.c:194 ../restore_gui.c:297 msgid "User ID" msgstr "Identificador d'usuari-->%d" #: ../jpilot.c:319 msgid "Print" msgstr "Imprimir" #: ../jpilot.c:320 msgid "There is no print support for this conduit." msgstr "No hi ha suport d'impressió per aquest conduit." #: ../jpilot.c:386 msgid "There is no import support for this conduit." msgstr "No hi ha suport d'impressió per aquest conducte." #: ../jpilot.c:430 msgid "There is no export support for this conduit." msgstr "No hi ha suport d'exportació per aquest conducte." #: ../jpilot.c:659 #, fuzzy msgid " Cancelling HotSync\n" msgstr "Anul·lar" #. ------------------------------------------- #: ../jpilot.c:675 msgid "" "This handheld does not have the same user name or user ID\n" "as the one that was synced the last time.\n" "Syncing could have unwanted effects including data loss.\n" "\n" "Read the user manual if you are uncertain." msgstr "" #. ------------------------------------------- #: ../jpilot.c:682 msgid "" "This handheld has a NULL user ID.\n" "Every handheld must have a unique user ID in order to sync properly.\n" "If the handheld has been hard reset, \n" " use restore from the menu to restore it.\n" "Otherwise, to add a new user name and ID\n" " use install-user from the menu.\n" "\n" "Read the user manual if you are uncertain." msgstr "" #: ../jpilot.c:690 #, fuzzy msgid "Cancel Sync" msgstr "Anul·lar" #: ../jpilot.c:690 msgid "Sync Anyway" msgstr "Sincronitzar de totes maneres?" #: ../jpilot.c:699 ../jpilot.c:703 #, fuzzy msgid "Sync Problem" msgstr "Sincronitzar memo" #: ../jpilot.c:932 ../jpilot.c:1785 #, fuzzy msgid " User: " msgstr "Identificador d'usuari-->%d" #: ../jpilot.c:944 msgid "Unknown command from sync process\n" msgstr "" #: ../jpilot.c:963 ../Expense/expense.c:529 ../KeyRing/keyring.c:1872 #: ../SyncTime/synctime.c:61 #, c-format msgid "About %s" msgstr "Quant a %s" #: ../jpilot.c:1105 #, fuzzy msgid "/_File" msgstr "/Arxiu" #: ../jpilot.c:1106 msgid "/File/tear" msgstr "/Arxiu/tear" #: ../jpilot.c:1107 msgid "/File/_Find" msgstr "/Arxiu/_Cercar" #: ../jpilot.c:1108 ../jpilot.c:1114 ../jpilot.c:1117 msgid "/File/sep1" msgstr "/Arxiu/sep1" #: ../jpilot.c:1109 msgid "/File/_Install" msgstr "/Arxiu/_Instal·lar" #: ../jpilot.c:1110 msgid "/File/Import" msgstr "/Arxiu/_Importar" #: ../jpilot.c:1111 msgid "/File/Export" msgstr "/Arxiu/_Exportar" #: ../jpilot.c:1112 ../jpilot.c:2190 msgid "/File/Preferences" msgstr "/Arxiu/Preferències" #: ../jpilot.c:1113 msgid "/File/_Print" msgstr "/Arxiu/_Imprimir" #: ../jpilot.c:1115 #, fuzzy msgid "/File/Install User" msgstr "/Arxiu/_Instal·lar" #: ../jpilot.c:1116 msgid "/File/Restore Handheld" msgstr "/Arxiu/Restaurar " #: ../jpilot.c:1118 msgid "/File/_Quit" msgstr "/Arxiu/Eixir" #: ../jpilot.c:1119 msgid "/_View" msgstr "/_Visualitzar" #: ../jpilot.c:1120 ../jpilot.c:1121 ../jpilot.c:1122 ../jpilot.c:1368 #, fuzzy msgid "/View/Hide Private Records" msgstr "/Visualitzar/Oculta-Mostra registres privats" #: ../jpilot.c:1121 ../jpilot.c:1371 #, fuzzy msgid "/View/Show Private Records" msgstr "/Visualitzar/Oculta-Mostra registres privats" #: ../jpilot.c:1122 ../jpilot.c:1374 #, fuzzy msgid "/View/Mask Private Records" msgstr "/Visualitzar/Oculta-Mostra registres privats" #: ../jpilot.c:1123 #, fuzzy msgid "/View/sep1" msgstr "/Arxiu/sep1" #: ../jpilot.c:1124 msgid "/View/Datebook" msgstr "/Visualitzar/Agenda" #: ../jpilot.c:1125 msgid "/View/Addresses" msgstr "/Visualitzar/Adreces" #: ../jpilot.c:1126 msgid "/View/Todos" msgstr "/Visualitzar/Tasques" #: ../jpilot.c:1127 msgid "/View/Memos" msgstr "/Visualitzar/Memos" #: ../jpilot.c:1128 ../jpilot.c:1259 #, fuzzy msgid "/_Plugins" msgstr "/Connectors" #: ../jpilot.c:1130 #, fuzzy msgid "/_Web" msgstr "Dc" #. web #: ../jpilot.c:1131 msgid "/Web/Netscape" msgstr "" #: ../jpilot.c:1135 msgid "/Web/Mozilla" msgstr "" #: ../jpilot.c:1140 msgid "/Web/Galeon" msgstr "" #: ../jpilot.c:1145 msgid "/Web/Opera" msgstr "" #: ../jpilot.c:1149 msgid "/Web/GnomeUrl" msgstr "" #: ../jpilot.c:1151 msgid "/Web/Lynx" msgstr "" #: ../jpilot.c:1153 msgid "/Web/Links" msgstr "" #: ../jpilot.c:1155 msgid "/Web/W3M" msgstr "" #: ../jpilot.c:1157 msgid "/Web/Konqueror" msgstr "" #: ../jpilot.c:1160 msgid "/_Help" msgstr "/_Ajuda" #: ../jpilot.c:1161 #, fuzzy msgid "/Help/About J-Pilot" msgstr "/Ajuda/J-Pilot" #: ../jpilot.c:1227 #, fuzzy, c-format msgid "/_Plugins/%s" msgstr "/Connectors/%s" #: ../jpilot.c:1237 #, c-format msgid "/_Help/%s" msgstr "/_Ajuda/%s" #: ../jpilot.c:1591 msgid "calendar:week_start:0" msgstr "" #: ../jpilot.c:1634 ../jpilot-sync.c:171 msgid "Not loading plugins.\n" msgstr "" #: ../jpilot.c:1638 msgid "Ignoring all alarms.\n" msgstr "" #: ../jpilot.c:1642 msgid "Ignoring past alarms.\n" msgstr "" #: ../jpilot.c:1730 ../jpilot.c:1738 #, fuzzy msgid "Unable to open pipe\n" msgstr "No s'ha pogut obrir %s\n" #: ../jpilot.c:1947 #, fuzzy msgid "Show private records Ctrl+Z" msgstr "/Visualitzar/Oculta-Mostra registres privats" #: ../jpilot.c:1952 #, fuzzy msgid "Hide private records Ctrl+Z" msgstr "/Visualitzar/Oculta-Mostra registres privats" #: ../jpilot.c:1957 #, fuzzy msgid "Mask private records Ctrl+Z" msgstr "Imprimir tots els registres" #: ../jpilot.c:1969 #, fuzzy msgid "Sync your palm to the desktop Ctrl+Y" msgstr "Sincronitzar el seu palm amb l'escriptori" #: ../jpilot.c:1981 #, fuzzy msgid "Stop Sync process" msgstr "Sincronitzar la llibreta d'adreces" #: ../jpilot.c:1993 msgid "" "Sync your palm to the desktop\n" "and then do a backup" msgstr "" "Sincronitzar el seu palm amb l'escriptori\n" "i després fer una còpia de seguretat" #: ../jpilot.c:2141 msgid "Datebook/Go to Today" msgstr "Agenda/Aneu a avui" #: ../jpilot.c:2142 msgid "Address Book" msgstr "Llibreta d'adreces" #: ../jpilot.c:2143 msgid "ToDo List" msgstr "Llista de coses a fer" #: ../jpilot.c:2144 msgid "Memo Pad" msgstr "Memo Pad" #: ../jpilot.c:2172 msgid "Do it now" msgstr "" #: ../jpilot.c:2172 msgid "Remind me later" msgstr "" #: ../jpilot.c:2172 msgid "Don't tell me again!" msgstr "" #: ../jpilot.c:2185 #, c-format msgid "" "J-Pilot uses the GTK2 graphical toolkit. This version of the toolkit uses " "UTF-8 to encode characters.\n" "You should select a UTF-8 charset so that you can see non-ASCII characters " "(accents for example).\n" "\n" "Go to the menu \"%s\" and change the \"%s\"." msgstr "" #. Character Set #: ../jpilot.c:2190 ../prefs_gui.c:511 #, fuzzy msgid "Character Set" msgstr "Joc de caràcters" #: ../jpilot.c:2192 msgid "Select a UTF-8 encoding" msgstr "" #: ../jpilot-dump.c:94 #, c-format msgid " +D +A +T +M format like date +format.\n" msgstr "" #: ../jpilot-dump.c:95 #, c-format msgid " -v display version and exit\n" msgstr "" #: ../jpilot-dump.c:96 ../jpilot-sync.c:68 ../utils.c:1874 #, c-format msgid " -h display help text\n" msgstr "" #: ../jpilot-dump.c:97 #, c-format msgid " -f display help for format codes\n" msgstr "" #: ../jpilot-dump.c:98 #, fuzzy, c-format msgid " -D dump DateBook\n" msgstr "Llibreta d'adreces" #: ../jpilot-dump.c:99 #, fuzzy, c-format msgid " -i dump DateBook in iCalendar format\n" msgstr "Llibreta d'adreces" #: ../jpilot-dump.c:100 #, fuzzy, c-format msgid " -N dump appts for today in DateBook\n" msgstr "Llibreta d'adreces" #: ../jpilot-dump.c:101 #, c-format msgid " -NYYYY/MM/DD dump appts on YYYY/MM/DD in DateBook\n" msgstr "" #: ../jpilot-dump.c:102 #, fuzzy, c-format msgid " -A dump Address book\n" msgstr "Llibreta d'adreces" #: ../jpilot-dump.c:103 #, c-format msgid " -T dump ToDo list as CSV\n" msgstr "" #: ../jpilot-dump.c:104 #, fuzzy, c-format msgid " -M dump Memos\n" msgstr "Llibreta d'adreces" #: ../jpilot-dump.c:165 #, c-format msgid "" "Warning: Host character encoding is not UTF-8 based.\n" "Exported ical file may not be standards-compliant\n" msgstr "" #: ../jpilot-merge.c:163 ../jpilot-merge.c:169 #, fuzzy, c-format msgid "%s: Unable to open file:%s\n" msgstr "No s'ha pogut obrir %s\n" #: ../jpilot-merge.c:271 #, c-format msgid "Records read from pdb = %d\n" msgstr "" #: ../jpilot-merge.c:272 #, c-format msgid "Records added = %d\n" msgstr "" #: ../jpilot-merge.c:273 #, c-format msgid "Records deleted = %d\n" msgstr "" #: ../jpilot-merge.c:274 #, c-format msgid "Records modified = %d\n" msgstr "" #: ../jpilot-merge.c:275 #, c-format msgid "Records written = %d\n" msgstr "" #: ../jpilot-merge.c:293 #, c-format msgid "Usage: %s {input pdb file} {input pc3 file} {output pdb file}\n" msgstr "" #: ../jpilot-merge.c:294 #, c-format msgid " This program will merge an unsynced records file (pc3)\n" msgstr "" #: ../jpilot-merge.c:295 #, c-format msgid "" " into the corresponding palm database (pdb) file.\n" "\n" msgstr "" #: ../jpilot-merge.c:296 #, c-format msgid " WARNING: Only run this utility if you understand the consequences!\n" msgstr "" #: ../jpilot-merge.c:297 #, c-format msgid " The merge will leave your databases in an unsync-able state.\n" msgstr "" #: ../jpilot-merge.c:298 #, c-format msgid "" " It is intended for cases where J-pilot is being used as a standalone PIM\n" msgstr "" #: ../jpilot-merge.c:299 #, c-format msgid " and where no syncing occurs to physical hardware.\n" msgstr "" #: ../jpilot-merge.c:300 #, c-format msgid " WARNING: Make a backup copy of your databases before proceeding.\n" msgstr "" #: ../jpilot-merge.c:301 #, c-format msgid "" " It is quite simple to destroy your databases by accidentally merging\n" msgstr "" #: ../jpilot-merge.c:302 #, c-format msgid " address records into datebook databases, etc.\n" msgstr "" #: ../jpilot-sync.c:66 #, c-format msgid "" " J-Pilot preferences are read to get sync info such as port, rate, number of " "backups, etc.\n" msgstr "" #: ../jpilot-sync.c:67 ../utils.c:1873 #, c-format msgid " -v display version and compile options\n" msgstr "" #: ../jpilot-sync.c:69 ../utils.c:1875 #, c-format msgid " -d display debug info to stdout\n" msgstr "" #: ../jpilot-sync.c:70 #, c-format msgid " -P skip loading plugins\n" msgstr "" #: ../jpilot-sync.c:71 #, fuzzy, c-format msgid " -b sync, and then do a backup\n" msgstr "" "Sincronitzar el seu palm amb l'escriptori\n" "i després fer una còpia de seguretat" #: ../jpilot-sync.c:72 #, c-format msgid " -l loop, otherwise sync once and exit\n" msgstr "" #: ../jpilot-sync.c:73 #, c-format msgid " -p {port} use this port to sync on instead of default\n" msgstr "" #: ../jpilot-sync.c:221 #, fuzzy, c-format msgid "Error: connecting to port %s\n" msgstr "Error obrint arxiu" #: ../jpilot-sync.c:225 #, c-format msgid "Error: pi_listen\n" msgstr "" #: ../jpilot-sync.c:229 #, fuzzy, c-format msgid "Error: opening conduit to handheld\n" msgstr "Error obrint arxiu" #: ../jpilot-sync.c:233 #, c-format msgid "Error: pi_accept\n" msgstr "" #: ../jpilot-sync.c:237 ../jpilot-sync.c:265 #, fuzzy, c-format msgid "Error: " msgstr "error" #: ../jpilot-sync.c:238 #, c-format msgid "This handheld does not have the same user name.\n" msgstr "" #: ../jpilot-sync.c:239 ../jpilot-sync.c:253 #, c-format msgid "as the one that was synced the last time.\n" msgstr "" #: ../jpilot-sync.c:241 #, c-format msgid "" "Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:243 ../jpilot-sync.c:256 #, c-format msgid " COPILOT_HOME" msgstr "" #: ../jpilot-sync.c:245 ../jpilot-sync.c:258 #, c-format msgid " JPILOT_HOME" msgstr "" #: ../jpilot-sync.c:247 ../jpilot-sync.c:260 #, c-format msgid " environment variable can be used to sync different handhelds,\n" msgstr "" #: ../jpilot-sync.c:248 ../jpilot-sync.c:261 #, c-format msgid " to different directories for the same UNIX user name.\n" msgstr "" #: ../jpilot-sync.c:252 #, c-format msgid "This handheld does not have the same user ID.\n" msgstr "" #: ../jpilot-sync.c:254 #, c-format msgid "" " Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:266 #, c-format msgid "This handheld has a NULL user ID.\n" msgstr "" #: ../jpilot-sync.c:267 #, c-format msgid "Every handheld must have a unique user ID in order to sync properly.\n" msgstr "" #: ../jpilot-sync.c:268 #, c-format msgid "If the handheld has been hard reset, \n" msgstr "" #: ../jpilot-sync.c:269 #, c-format msgid " use restore from within " msgstr "" #: ../jpilot-sync.c:270 #, c-format msgid "Otherwise, to add a new user name and ID\n" msgstr "" #: ../jpilot-sync.c:271 #, c-format msgid " use \"install-user %s name numeric_id\"\n" msgstr "" #: ../jpilot-sync.c:275 #, c-format msgid "Error: sync returned error %d\n" msgstr "" #: ../libplugin.c:64 ../utils.c:1054 msgid "" "This record is already deleted.\n" "It is scheduled to be deleted from the Palm on the next sync.\n" msgstr "" #: ../libplugin.c:73 ../libplugin.c:110 ../utils.c:1064 ../utils.c:1106 #, fuzzy msgid "Unable to open PC records file\n" msgstr "No s'ha pogut obrir %s\n" #: ../libplugin.c:79 ../utils.c:1071 #, fuzzy msgid "Couldn't find record to delete\n" msgstr "No puc trobar un fitxer buit DB. \n" #: ../libplugin.c:97 ../utils.c:1091 #, c-format msgid "Unknown header version %d\n" msgstr "" #: ../libplugin.c:182 #, fuzzy, c-format msgid "%s:%d Error opening file: %s\n" msgstr "Error llegint" #: ../libplugin.c:188 ../libplugin.c:217 ../sync.c:1721 ../todo.c:102 #, fuzzy, c-format msgid "%s:%d Error reading file: %s\n" msgstr "Error llegint" #: ../libplugin.c:340 ../libplugin.c:398 ../utils.c:2119 ../utils.c:2132 #, fuzzy, c-format msgid "Error opening file: %s\n" msgstr "Error obrint arxiu" #: ../libplugin.c:526 #, fuzzy, c-format msgid "Error reading %s 5\n" msgstr "Error llegint" #: ../libplugin.c:801 #, fuzzy msgid "Error reading PC file 1\n" msgstr "Error llegint" #: ../libplugin.c:817 #, fuzzy msgid "Error reading PC file 2\n" msgstr "Error llegint" #: ../libplugin.c:923 #, c-format msgid "Unknown PC header version = %d\n" msgstr "" #: ../log.c:101 #, fuzzy, c-format msgid "Unable to open log file, giving up.\n" msgstr "No puc obrir el fitxer de registre, renuncio. \n" #: ../log.c:111 #, fuzzy, c-format msgid "Unable to open log file\n" msgstr "No s'ha pogut obrir %s\n" #: ../memo_gui.c:302 msgid "Memo text > 65535, truncating\n" msgstr "" #: ../memo_gui.c:330 #, c-format msgid "Imported Memo %s\n" msgstr "" #: ../memo_gui.c:400 msgid "File doesn't appear to be memopad.dat format\n" msgstr "L'arxiu no sembla tenir el format de notes (memopad.dat)\n" #: ../memo_gui.c:471 msgid "DAT/MPA (Palm Archive Formats)" msgstr "" #: ../memo_gui.c:554 #, c-format msgid "" "Memo exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:557 #, c-format msgid "" "Memos exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:584 #, c-format msgid "Can't export memo %d\n" msgstr "" #: ../memo_gui.c:628 #, fuzzy, c-format msgid "Memo: %ld\n" msgstr "Memo Pad" #: ../memo_gui.c:634 #, c-format msgid "----- Start of Memo -----\n" msgstr "" #: ../memo_gui.c:636 #, c-format msgid "" "\n" "----- End of Memo -----\n" "\n" msgstr "" #: ../memo_gui.c:668 msgid "B-Folders CSV" msgstr "" #: ../monthview_gui.c:438 msgid "Monthly View" msgstr "Vista mensual" #: ../monthview_gui.c:480 msgid "Last month Alt+LeftArrow" msgstr "" #: ../monthview_gui.c:508 msgid "Next month Alt+RightArrow" msgstr "" #: ../otherconv.c:76 #, c-format msgid "%s: error exit from g_iconv_close(%s)\n" msgstr "" #: ../otherconv.c:201 #, c-format msgid "%s:%s g_convert_with_iconv error: %s, buff: %s\n" msgstr "" #: ../otherconv.c:203 msgid "last char truncated" msgstr "" #: ../otherconv.c:280 #, c-format msgid "UTF_to_other: %s\n" msgstr "" #: ../otherconv.c:294 #, c-format msgid "iconv: unconvertible sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:298 #, c-format msgid "iconv: incomplete UTF-8 sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:301 #, c-format msgid "iconv: buffer filled. stopped at place %d in '%s'\n" msgstr "" #: ../otherconv.c:304 #, c-format msgid "iconv: unexpected error at place %d in '%s'\n" msgstr "" #: ../password.c:283 msgid "Palm Password" msgstr "Contrasenya del palm" #: ../password.c:308 #, fuzzy msgid "Incorrect, Reenter PalmOS Password" msgstr "Introduïu la contrasenya del PalmOS" #: ../password.c:310 msgid "Enter PalmOS Password" msgstr "Introduïu la contrasenya del PalmOS" #: ../pidfile.c:67 #, fuzzy msgid "removing stale pidfile\n" msgstr "No puc obrir l'arxiu jpilot_to_install.\n" #: ../pidfile.c:91 #, fuzzy, c-format msgid "create pidfile failed: %s\n" msgstr "Error llegint" #: ../pidfile.c:92 msgid "Warning: hotplug syncing disabled.\n" msgstr "" #: ../plugins.c:90 ../plugins.c:203 ../restore_gui.c:133 msgid "infinite loop" msgstr "" #: ../plugins.c:216 #, c-format msgid "While reading %s%s line 1:[%s]\n" msgstr "" #: ../plugins.c:217 msgid "Wrong Version\n" msgstr "" #: ../plugins.c:218 msgid "Check preferences->conduits\n" msgstr "" #: ../plugins.c:274 #, c-format msgid "" "Open failed on plugin [%s]\n" " error [%s]\n" msgstr "" #: ../plugins.c:291 ../plugins.c:316 #, c-format msgid " plugin is invalid: [%s]\n" msgstr "" #: ../plugins.c:299 #, fuzzy, c-format msgid "Plugin:[%s]\n" msgstr "/Connectors/%s" #: ../plugins.c:300 #, c-format msgid "This plugin is version (%d.%d).\n" msgstr "" #: ../plugins.c:302 msgid "It is too old to work with this version of J-Pilot.\n" msgstr "" #: ../prefs.c:420 msgid "%B %d, %Y" msgstr "" #: ../prefs.c:421 msgid "%d %B %Y" msgstr "" #: ../prefs.c:422 msgid "%d. %B %Y" msgstr "" #: ../prefs.c:423 msgid "%d %B, %Y" msgstr "" #: ../prefs.c:424 msgid "%Y. %B. %d" msgstr "" #: ../prefs.c:425 msgid "%Y %B %d" msgstr "" #: ../prefs_gui.c:454 msgid "Preferences" msgstr "Preferències" #: ../prefs_gui.c:485 msgid "Locale" msgstr "Local" #: ../prefs_gui.c:487 msgid "Settings" msgstr "Paràmetres" #: ../prefs_gui.c:489 #, fuzzy msgid "Datebook" msgstr "Sincronitzar l'agenda" #: ../prefs_gui.c:493 #, fuzzy msgid "ToDo" msgstr "Llista de coses a fer" #: ../prefs_gui.c:495 #, fuzzy msgid "Memo" msgstr "Sincronitzar memo" #: ../prefs_gui.c:497 msgid "Alarms" msgstr "Alarma" #: ../prefs_gui.c:499 msgid "Conduits" msgstr "Conductes" #. Shortdate #: ../prefs_gui.c:524 #, fuzzy msgid "Short date format" msgstr "Format de data curta" #. Longdate #: ../prefs_gui.c:537 #, fuzzy msgid "Long date format" msgstr "Format de data llarg " #. Time #: ../prefs_gui.c:550 #, fuzzy msgid "Time format" msgstr "Format d'hora " #. GTK colors file #: ../prefs_gui.c:570 #, fuzzy msgid "GTK color theme file" msgstr "El meu fitxer de colors GTK és." #. Port #: ../prefs_gui.c:583 #, fuzzy msgid "Sync Port" msgstr "Sincronitzar memo" #. Serial Rate #: ../prefs_gui.c:607 #, fuzzy msgid "Serial Rate" msgstr "Velocitat port sèrie " #. Number of backups #: ../prefs_gui.c:627 msgid "Number of backups to be archived" msgstr "Nombre de copies de seguretat per arxivar " #. Show deleted files check box #: ../prefs_gui.c:645 msgid "Show deleted records (default NO)" msgstr "Mostrar els registres suprimits (per defecte: NO)" #. Show modified files check box #: ../prefs_gui.c:649 msgid "Show modified deleted records (default NO)" msgstr "Mostrar els registres modificats (per defecte: NO)" #: ../prefs_gui.c:654 msgid "Ask confirmation for file installation (J-Pilot -> PDA) (default YES)" msgstr "" #. Show tooltips check box #: ../prefs_gui.c:658 msgid "Show popup tooltips (default YES) (requires restart)" msgstr "" #: ../prefs_gui.c:668 msgid "Use Datebook database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:671 msgid "Use Calendar database (Palm OS > 5.2)" msgstr "" #. Show highlight days check box #: ../prefs_gui.c:697 msgid "Highlight calendar days with appointments" msgstr "Ressaltar els dies amb cites" #. Highlight today on month and week view #: ../prefs_gui.c:702 msgid "Annotate today in day, week, and month views" msgstr "" #. Show number of years on anniversaries in month and week view #: ../prefs_gui.c:706 msgid "Append years on anniversaries in day, week, and month views" msgstr "" #. Show use DateBk check box #: ../prefs_gui.c:712 #, fuzzy msgid "Use DateBk note tags" msgstr "Utilitzar marcadors DateBk (no recomanat)" #: ../prefs_gui.c:715 msgid "DateBk support disabled in this build" msgstr "" #: ../prefs_gui.c:727 msgid "Use Address database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:730 msgid "Use Contacts database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:759 #, fuzzy msgid "Mail Command" msgstr "Ordre d'alarma" #: ../prefs_gui.c:773 #, fuzzy, c-format msgid "%s is replaced by the e-mail address" msgstr "%t és substituït per l'hora de l'alarma" #: ../prefs_gui.c:785 msgid "Use ToDo database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:788 msgid "Use Task database (Palm OS > 5.2)" msgstr "" #. hide completed check box #: ../prefs_gui.c:815 msgid "Hide Completed ToDos" msgstr "Amagar les tasques acabades" #. hide todos not yet due check box #: ../prefs_gui.c:819 msgid "Hide ToDos not yet due" msgstr "" #. record todo completion date check box #: ../prefs_gui.c:823 msgid "Record Completion Date" msgstr "" #. Use Manana check box #: ../prefs_gui.c:828 msgid "Use Manana database" msgstr "" #: ../prefs_gui.c:836 msgid "Use default number of days due" msgstr "" #: ../prefs_gui.c:858 msgid "Use Memo database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:861 msgid "Use Memos database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:864 #, fuzzy msgid "Use Memo32 database (pedit32)" msgstr "Utilitzar Memo32 (pedit32)" #: ../prefs_gui.c:904 msgid "External Editor" msgstr "" #: ../prefs_gui.c:917 msgid "Use Ctrl-E inside a memo to launch external editor for memo text" msgstr "" #. ******************************************************************** #. Alarms preference tab #. Open alarm windows check box #: ../prefs_gui.c:925 msgid "Open alarm windows for appointment reminders" msgstr "Obrir la finestra d'alarmes per el recordatori de cites" #. Execute alarm command check box #: ../prefs_gui.c:929 msgid "Execute this command" msgstr "Executa aquesta ordre" #. Shell warning label #: ../prefs_gui.c:933 msgid "WARNING: executing arbitrary shell commands can be dangerous!!!" msgstr "" "ADVERTÈNCIA: executar ordres arbitràries de l'intèrpret d'ordres pot ser " "perillós!!!" #: ../prefs_gui.c:941 msgid "Alarm Command" msgstr "Ordre d'alarma" #: ../prefs_gui.c:954 msgid "%t is replaced with the alarm time" msgstr "%t és substituït per l'hora de l'alarma" #: ../prefs_gui.c:958 #, c-format msgid "%d is replaced with the alarm date" msgstr "%d és substituït per la data de l'alarma" #: ../prefs_gui.c:963 msgid "%D is replaced with the alarm description" msgstr "%D és substituït per lla descripció de l'alarma" #: ../prefs_gui.c:967 msgid "%N is replaced with the alarm note" msgstr "%N és substituït per la nota de l'alarma" #: ../prefs_gui.c:971 msgid "%D (description substitution) is disabled in this build" msgstr "" #: ../prefs_gui.c:976 msgid "%N (note substitution) is disabled in this build" msgstr "" #. ******************************************************************** #. Conduits preference tab #. Sync datebook check box #: ../prefs_gui.c:986 msgid "Sync datebook" msgstr "Sincronitzar l'agenda" #. Sync address check box #: ../prefs_gui.c:990 msgid "Sync address" msgstr "Sincronitzar la llibreta d'adreces" #. Sync todo check box #: ../prefs_gui.c:994 msgid "Sync todo" msgstr "Sincronitzat tasques a fer" #. Sync memo check box #: ../prefs_gui.c:998 msgid "Sync memo" msgstr "Sincronitzar memo" #. Show sync Manana check box #: ../prefs_gui.c:1003 #, fuzzy msgid "Sync Manana" msgstr "Sincronitzar de totes maneres?" #. Show use Japanese Kana extention check box #: ../prefs_gui.c:1009 msgid "Use J-OS (Not Japanese PalmOS:WorkPad/CLIE)" msgstr "" #. Make a Sync checkbox for each plugin #: ../prefs_gui.c:1022 #, fuzzy, c-format msgid "Sync %s (%s)" msgstr "Ometent %s\n" #: ../print_gui.c:185 msgid "Print Options" msgstr "Opcions d'impressió" #: ../print_gui.c:198 msgid "Paper Size" msgstr "Tamany del paper" #: ../print_gui.c:214 msgid "Daily Printout" msgstr "Impressió dia a dia" #: ../print_gui.c:220 msgid "Weekly Printout" msgstr "Impressió setmanal" #: ../print_gui.c:226 msgid "Monthly Printout" msgstr "Impressió mensual" #: ../print_gui.c:266 #, fuzzy msgid "Selected record" msgstr "%s registres esborrats." #: ../print_gui.c:270 msgid "All records in this category" msgstr "Tots els registres d'aquesta categoria" #: ../print_gui.c:274 msgid "Print all records" msgstr "Imprimir tots els registres" #: ../print_gui.c:296 msgid "One record per page" msgstr "Un registre per pàgina" #: ../print_gui.c:312 #, fuzzy msgid "Blank lines between each record" msgstr " Línia en blanc entre cada registre" #. Print Command #: ../print_gui.c:321 msgid "Print Command (e.g. lpr, or cat > file.ps)" msgstr "Ordre d'impressió (ex. lpr, o cat > fitxer.ps)" #: ../restore_gui.c:71 ../restore_gui.c:229 msgid "Restore Handheld" msgstr "/Arxiu/Restaurar " #: ../restore_gui.c:176 ../restore_gui.c:178 msgid "Unable to convert filename for GTK display\n" msgstr "" #: ../restore_gui.c:177 msgid "See console log to find which file will not be restored\n" msgstr "" #: ../restore_gui.c:179 #, fuzzy, c-format msgid "File %s will not be restored\n" msgstr "Fitxers per instal.lar" #. Label for instructions #: ../restore_gui.c:246 msgid "To restore your handheld:" msgstr "" #: ../restore_gui.c:249 msgid "1. Choose the applications you wish to restore. The default is all." msgstr "" #: ../restore_gui.c:252 msgid "2. Enter the User Name and User ID." msgstr "" #: ../restore_gui.c:255 msgid "3. Press the OK button." msgstr ".Prémer el botó HotSync ara" #: ../restore_gui.c:258 msgid "This will overwrite data that is currently on the handheld." msgstr "" #: ../search_gui.c:144 #, fuzzy msgid "datebook" msgstr "Sincronitzar l'agenda" #: ../search_gui.c:146 #, fuzzy msgid "calendar" msgstr "Neteja" #: ../search_gui.c:233 #, fuzzy msgid "address" msgstr "Adreces" #: ../search_gui.c:235 msgid "contact" msgstr "" #: ../search_gui.c:304 #, fuzzy msgid "todo" msgstr "Sincronitzat tasques a fer" #: ../search_gui.c:361 #, fuzzy msgid "memo" msgstr "Sincronitzar memo" #: ../search_gui.c:363 #, fuzzy msgid "memos" msgstr "Sincronitzar memo" #: ../search_gui.c:421 #, fuzzy msgid "plugin ?" msgstr "/Connectors" #: ../search_gui.c:501 msgid "No records found" msgstr "Cap registre trobat" #: ../search_gui.c:600 msgid "Search" msgstr "Cercar" #. Search label #: ../search_gui.c:617 msgid "Search for: " msgstr "Cercar a: " #. Case Sensitive checkbox #: ../search_gui.c:626 msgid "Case Sensitive" msgstr "Sensible a caixa" #: ../sync.c:120 #, fuzzy msgid "open lock file failed\n" msgstr "No puc obrir el fitxer de registre. \n" #: ../sync.c:133 #, fuzzy msgid "lock failed\n" msgstr "Ha fallat.\n" #: ../sync.c:136 #, c-format msgid "sync file is locked by pid %d\n" msgstr "" #: ../sync.c:171 msgid "unlock failed\n" msgstr "" #: ../sync.c:174 #, c-format msgid "sync is locked by pid %d\n" msgstr "" #: ../sync.c:410 #, fuzzy msgid "Check your sync port and settings\n" msgstr "Comprovi el seu port sèrie i els paràmetres\n" #: ../sync.c:669 #, fuzzy msgid "Unable to read home dir\n" msgstr "No s'ha pogut obrir %s\n" #: ../sync.c:1075 ../sync.c:1413 #, c-format msgid "%s (Creator ID '%s') is up to date, fetch skipped.\n" msgstr "%s (Creador d'ID '%s') està actualitzat, s'omet.\n" #: ../sync.c:1079 ../sync.c:1417 #, c-format msgid "Fetching '%s' (Creator ID '%s')... " msgstr "Anant a '%s' (Creador d'ID '%s')..." #: ../sync.c:1086 ../sync.c:1423 #, c-format msgid "Failed, unable to create file %s\n" msgstr "" #: ../sync.c:1090 ../sync.c:1428 #, c-format msgid "Failed, unable to back up database %s\n" msgstr "" #: ../sync.c:1094 ../sync.c:1432 ../sync.c:1619 msgid "OK\n" msgstr "D'acord\n" #: ../sync.c:1294 #, c-format msgid "Skipping %s (Creator ID '%s')\n" msgstr "Ometent %s (Creator ID '%s')\n" #: ../sync.c:1488 #, c-format msgid "Installing %s " msgstr "Instal·lant %s" #: ../sync.c:1494 ../sync.c:1530 #, fuzzy, c-format msgid "" "\n" "Unable to open file: '%s': %s!\n" msgstr "" "\n" "No es pot obrir '%s'!\n" #: ../sync.c:1498 #, fuzzy, c-format msgid "" "\n" "Unable to sync file: '%s': file corrupted?\n" msgstr "" "\n" "No es pot obrir '%s'!\n" #: ../sync.c:1514 #, fuzzy, c-format msgid "(Creator ID '%s')... " msgstr "(Creació d'identificació és '%s')..." #: ../sync.c:1518 #, fuzzy, c-format msgid "(Creator ID '%s') " msgstr "(Creació d'identificació és '%s')..." #: ../sync.c:1520 #, fuzzy, c-format msgid "(SDcard dir %s)... " msgstr "(Creació d'identificació és '%s')..." #: ../sync.c:1552 ../sync.c:1565 ../sync.c:1580 ../sync.c:1593 #, fuzzy, c-format msgid "" "\n" "Unable to open file: %s\n" msgstr "No s'ha pogut obrir %s\n" #: ../sync.c:1605 #, c-format msgid "Install %s failed" msgstr "Instal·lació de %s ha fallat" #: ../sync.c:1609 msgid "Failed.\n" msgstr "Ha fallat.\n" #: ../sync.c:1615 #, fuzzy, c-format msgid "Installed %s" msgstr "S' ha instal·lat %s" #: ../sync.c:1726 #, fuzzy, c-format msgid "%s:%d Error getting app info %s\n" msgstr "Error llegint" #: ../sync.c:1732 ../sync.c:1762 #, fuzzy, c-format msgid "%s:%d Error unpacking app info %s\n" msgstr "Error llegint" #: ../sync.c:1753 #, fuzzy, c-format msgid "Error reading appinfo block for %s\n" msgstr "Error llegint" #. Fix - need a func for this logging #: ../sync.c:1991 ../sync.c:1995 #, c-format msgid "Could not add category %s to remote.\n" msgstr "" #: ../sync.c:1992 ../sync.c:1998 #, c-format msgid "Too many categories on remote.\n" msgstr "" #: ../sync.c:1993 ../sync.c:2001 #, c-format msgid "All records on desktop in %s will be moved to %s.\n" msgstr "" #: ../sync.c:2096 ../sync.c:2814 #, c-format msgid "Syncing %s\n" msgstr "Ometent %s\n" #: ../sync.c:2104 ../sync.c:2457 ../sync.c:2822 #, c-format msgid "Wrote an %s record." msgstr "Escrits %s registres." #: ../sync.c:2106 ../sync.c:2459 ../sync.c:2824 #, c-format msgid "Writing an %s record failed." msgstr "Escrivint %s registre/s va fallà." #: ../sync.c:2108 ../sync.c:2461 ../sync.c:2826 #, c-format msgid "Deleting an %s record failed." msgstr "Esborrant %s registre/s va fallà." #: ../sync.c:2110 ../sync.c:2463 ../sync.c:2828 #, c-format msgid "Deleted an %s record." msgstr "Esborrats %s registres." #: ../sync.c:2112 ../sync.c:2465 #, fuzzy, c-format msgid "Sync Conflict: duplicated an %s record." msgstr "Esborrats %s registres." #: ../sync.c:2115 ../sync.c:2468 ../sync.c:2831 #, c-format msgid "Wrote a %s record." msgstr "Escrits %s registres." #: ../sync.c:2117 ../sync.c:2470 ../sync.c:2833 #, c-format msgid "Writing a %s record failed." msgstr "Escrivint %s registres va fallà." #: ../sync.c:2119 ../sync.c:2472 ../sync.c:2835 #, c-format msgid "Deleting a %s record failed." msgstr "Esborrant %s registre/s va fallà." #: ../sync.c:2121 ../sync.c:2474 ../sync.c:2837 #, c-format msgid "Deleted a %s record." msgstr "%s registres esborrats." #: ../sync.c:2123 ../sync.c:2476 #, c-format msgid "Sync Conflict: duplicated a %s record." msgstr "" #: ../sync.c:2227 ../sync.c:2557 #, c-format msgid "Sync Conflict: a %s record must be manually merged\n" msgstr "" #: ../sync.c:2358 ../sync.c:2698 msgid "" "dlp_DeleteRecord failed\n" "This could be because the record was already deleted on the Palm\n" msgstr "" "dlp_DeleteRecord ha fallat\n" "Això pot ser perquè el registre ja estava esborrat en el Palm\n" #: ../sync.c:2927 msgid "Finished installing user information.\n" msgstr "" #: ../sync.c:3084 #, c-format msgid " Syncing on device %s\n" msgstr "Sincronitzant amb el dispositiu %s\n" #: ../sync.c:3085 msgid " Press the HotSync button now\n" msgstr ".Prémer el botó HotSync ara\n" #: ../sync.c:3127 ../sync.c:3149 ../sync.c:3170 #, fuzzy, c-format msgid "Last Synced Username-->\"%s\"\n" msgstr "Últim nom d'usuari-->\"%s\"\n" #: ../sync.c:3128 ../sync.c:3150 ../sync.c:3171 #, fuzzy, c-format msgid "Last Synced UserID-->\"%d\"\n" msgstr "Últim identificador d'usuari-->\"%d\"\n" #: ../sync.c:3129 ../sync.c:3151 ../sync.c:3172 #, fuzzy, c-format msgid " This Username-->\"%s\"\n" msgstr "Nom d'usuari-->\"%s\"\n" #: ../sync.c:3130 ../sync.c:3152 ../sync.c:3173 #, fuzzy, c-format msgid " This User ID-->%d\n" msgstr "Identificador d'usuari-->%d\n" #: ../sync.c:3194 #, fuzzy, c-format msgid "Username is \"%s\"\n" msgstr "Nom d'usuari-->\"%s\"\n" #: ../sync.c:3195 #, fuzzy, c-format msgid "User ID is %d\n" msgstr "Identificador d'usuari-->%d" #: ../sync.c:3197 #, c-format msgid "lastSyncPC = %d\n" msgstr "Última sincronització amb el PC= %d\n" #: ../sync.c:3198 #, c-format msgid "This PC = %lu\n" msgstr "Aquest PC = %lu\n" #: ../sync.c:3222 msgid "Sync canceled\n" msgstr "Sincronització anul·lada\n" #: ../sync.c:3245 #, fuzzy msgid "Finished restoring handheld.\n" msgstr "/Arxiu/Restaurar " #: ../sync.c:3246 msgid "You may need to sync to update J-Pilot.\n" msgstr "Caldria sincronitzar per actualitzar J-Pilot.\n" #: ../sync.c:3268 msgid "Doing a fast sync.\n" msgstr "Fent una sincronització ràpida.\n" #: ../sync.c:3281 msgid "Doing a slow sync.\n" msgstr "Fent una sincronització lenta.\n" #: ../sync.c:3356 msgid "Thank you for using J-Pilot." msgstr "Gràcies per fer servir J-Pilot." #: ../sync.c:3401 ../sync.c:3469 #, fuzzy msgid "Finished.\n" msgstr "Ha fallat.\n" #: ../sync.c:3436 #, c-format msgid "%s: sync process already in progress (process ID = %d)\n" msgstr "" #: ../sync.c:3437 #, fuzzy, c-format msgid "" "%s: press the HotSync button on the cradle\n" " or stop the sync by using the cancel sync button\n" " or stop the sync by typing \"kill %d\" at the command line\n" msgstr ".Prémer el botó HotSync ara\n" #: ../sync.c:3468 #, c-format msgid "Exiting with status %s\n" msgstr "" #: ../todo.c:266 #, c-format msgid "ToDo description text > %d, truncating to %d\n" msgstr "" #: ../todo.c:272 #, c-format msgid "ToDo note text > %d, truncating to %d\n" msgstr "" #: ../todo_gui.c:161 msgid "Due Date" msgstr "Data de venciment" #: ../todo_gui.c:532 msgid "File doesn't appear to be todo.dat format\n" msgstr "L'arxiu no sembla tenir el format de tasques pendents (todo.dat)\n" #: ../todo_gui.c:596 msgid "DAT/TDA (Palm Archive Formats)" msgstr "" #: ../todo_gui.c:688 #, c-format msgid "" "ToDo exported from %s %s on %s\n" "\n" msgstr "" #: ../todo_gui.c:726 #, c-format msgid "Can't export todo %d\n" msgstr "" #: ../todo_gui.c:766 #, fuzzy, c-format msgid "Due Date: None\n" msgstr "Data de venciment" #: ../todo_gui.c:769 #, fuzzy, c-format msgid "Due Date: %s\n" msgstr "Data de venciment" #: ../todo_gui.c:771 #, fuzzy, c-format msgid "Priority: %d\n" msgstr "Prioritat: " #: ../todo_gui.c:772 #, fuzzy, c-format msgid "Completed: %s\n" msgstr "Acabat" #: ../todo_gui.c:774 #, c-format msgid "Description: %s\n" msgstr "" #: ../todo_gui.c:777 #, c-format msgid "" "Note: %s\n" "\n" msgstr "" #: ../todo_gui.c:1610 msgid "Priority out of range\n" msgstr "" #: ../todo_gui.c:1932 ../KeyRing/keyring.c:1310 #, c-format msgid "No date" msgstr "Sense data" #. Completed checkbox #: ../todo_gui.c:2414 msgid "Completed" msgstr "Acabat" #: ../todo_gui.c:2421 #, fuzzy msgid "Priority:" msgstr "Prioritat: " #: ../todo_gui.c:2423 msgid "Set priority Alt+#" msgstr "" #: ../todo_gui.c:2444 msgid "Date Due:" msgstr "Data de venciment:" #: ../utils.c:332 msgid "Today" msgstr "Avui" #: ../utils.c:577 #, fuzzy, c-format msgid "Couldn't find empty DB file %s: %s\n" msgstr "No puc trobar un fitxer buit DB. \n" #: ../utils.c:580 #, fuzzy msgid " may not be installed.\n" msgstr "jpilot no pot ser instal·lat?.\n" #. Can't create directory #: ../utils.c:615 ../utils.c:619 #, c-format msgid "Can't create directory %s\n" msgstr "" #: ../utils.c:625 #, fuzzy, c-format msgid "%s is not a directory\n" msgstr "%s és un directori" #: ../utils.c:630 #, c-format msgid "Unable to get write permission for directory %s\n" msgstr "" #: ../utils.c:1330 ../utils.c:1354 msgid "Save Changed Record?" msgstr "Desar registres canviats?" #: ../utils.c:1331 ../utils.c:1355 msgid "Do you want to save the changes to this record?" msgstr "Voleu desar els canvis d'aquest registre?" #: ../utils.c:1336 ../utils.c:1360 msgid "Save New Record?" msgstr "Desar nou registre?" #: ../utils.c:1337 ../utils.c:1361 msgid "Do you want to save this new record?" msgstr "Voleu desar aquest nou registre?" #: ../utils.c:1652 msgid "infinite loop, breaking\n" msgstr "" #: ../utils.c:1876 #, c-format msgid " -p skip loading plugins\n" msgstr "" #: ../utils.c:1877 #, c-format msgid " -a ignore missed alarms since the last time program was run\n" msgstr "" #: ../utils.c:1878 #, c-format msgid " -A ignore all alarms past and future\n" msgstr "" #: ../utils.c:1879 #, c-format msgid " -s start sync using existing instance of GUI\n" msgstr "" #: ../utils.c:1880 #, c-format msgid " -i iconify program immediately after launch\n" msgstr "" #: ../utils.c:1881 #, c-format msgid "" " -geometry {X geometry} use specified geometry for main window\n" "\n" msgstr "" #: ../utils.c:1882 #, c-format msgid " The PILOTPORT and PILOTRATE environment variables specify\n" msgstr "" #: ../utils.c:1883 #, c-format msgid " which port to sync on, and at what speed.\n" msgstr "" #: ../utils.c:1884 #, c-format msgid " If PILOTPORT is not set then it defaults to /dev/pilot.\n" msgstr "" #: ../utils.c:1921 #, fuzzy msgid "Error reading file" msgstr "Error llegint" #: ../utils.c:1971 msgid "Date compiled" msgstr "" #: ../utils.c:1972 msgid "Compiled with these options:" msgstr "" #: ../utils.c:1974 #, fuzzy msgid "Installed Path" msgstr "S' ha instal·lat %s" #: ../utils.c:1976 msgid "pilot-link version" msgstr "" #: ../utils.c:1980 msgid "USB support" msgstr "" #: ../utils.c:1981 ../utils.c:1984 ../utils.c:1990 ../utils.c:1996 #: ../utils.c:2002 ../utils.c:2008 ../utils.c:2013 #, fuzzy msgid "yes" msgstr "Sí" #: ../utils.c:1982 #, fuzzy msgid "Private record support" msgstr "Imprimir tots els registres" #: ../utils.c:1986 ../utils.c:1992 ../utils.c:1998 ../utils.c:2004 #: ../utils.c:2010 #, fuzzy msgid "no" msgstr "cap" #: ../utils.c:1988 msgid "Datebk support" msgstr "" #: ../utils.c:1994 #, fuzzy msgid "Plugin support" msgstr "/Connectors" #: ../utils.c:2000 #, fuzzy msgid "Manana support" msgstr "/Connectors" #: ../utils.c:2006 msgid "NLS support (foreign languages)" msgstr "" #: ../utils.c:2012 #, fuzzy msgid "GTK2 support" msgstr "/Connectors" #. No HOME var #: ../utils.c:2055 msgid "Can't get HOME environment variable\n" msgstr "" #: ../utils.c:2062 msgid "HOME environment variable is too long to process\n" msgstr "" #: ../utils.c:2557 msgid "Edit Categories..." msgstr "" #: ../utils.c:3223 msgid "PC ID is 0.\n" msgstr "PC ID és 0.\n" #: ../utils.c:3224 #, fuzzy, c-format msgid "Generated a new PC ID. It is %lu\n" msgstr "He generat un nou PC ID. És %lu\n" #: ../utils.c:3309 msgid "Invalid UTF-8 encoding in export string\n" msgstr "" #: ../utils.c:3470 #, c-format msgid "Today is %A, %x %X" msgstr "Avui és %A, %x %X" #: ../utils.c:3472 #, c-format msgid "Today is %%A, %s %s" msgstr "Avui és %%A, %s %s" #: ../utils.c:3701 #, c-format msgid "" "Incorrect header format for CSV import\n" "Check line 1 of file %s\n" "Aborting import\n" msgstr "" #: ../utils.c:3738 #, fuzzy, c-format msgid "Error writing version header to file: %s%s\n" msgstr "Error obrint arxiu" #: ../utils.c:3743 #, fuzzy, c-format msgid "Error writing next id to file: %s%s" msgstr "Error obrint arxiu" #: ../weekview_gui.c:297 msgid "Weekly View" msgstr "Vista setmanal" #: ../weekview_gui.c:337 msgid "Last week Alt+LeftArrow" msgstr "" #: ../weekview_gui.c:366 msgid "Next week Alt+RightArrow" msgstr "" #: ../Expense/expense.c:97 msgid "Australia" msgstr "" #: ../Expense/expense.c:98 msgid "Austria" msgstr "" #: ../Expense/expense.c:99 msgid "Belgium" msgstr "" #: ../Expense/expense.c:100 msgid "Brazil" msgstr "" #: ../Expense/expense.c:101 msgid "Canada" msgstr "" #: ../Expense/expense.c:102 msgid "Denmark" msgstr "" #: ../Expense/expense.c:103 msgid "EU (Euro)" msgstr "" #: ../Expense/expense.c:104 msgid "Finland" msgstr "" #: ../Expense/expense.c:105 #, fuzzy msgid "France" msgstr "Anul·lar" #: ../Expense/expense.c:106 msgid "Germany" msgstr "" #: ../Expense/expense.c:107 msgid "Hong Kong" msgstr "" #: ../Expense/expense.c:108 msgid "Iceland" msgstr "" #: ../Expense/expense.c:109 msgid "India" msgstr "" #: ../Expense/expense.c:110 #, fuzzy msgid "Indonesia" msgstr "cap" #: ../Expense/expense.c:111 msgid "Ireland" msgstr "" #: ../Expense/expense.c:112 #, fuzzy msgid "Italy" msgstr "Instal·lar" #: ../Expense/expense.c:113 msgid "Japan" msgstr "" #: ../Expense/expense.c:114 msgid "Korea" msgstr "" #: ../Expense/expense.c:115 msgid "Luxembourg" msgstr "" #: ../Expense/expense.c:116 msgid "Malaysia" msgstr "" #: ../Expense/expense.c:117 msgid "Mexico" msgstr "" #: ../Expense/expense.c:118 msgid "Netherlands" msgstr "" #: ../Expense/expense.c:119 msgid "New Zealand" msgstr "" #: ../Expense/expense.c:120 msgid "Norway" msgstr "" #: ../Expense/expense.c:121 msgid "P.R.C." msgstr "" #: ../Expense/expense.c:122 msgid "Philippines" msgstr "" #: ../Expense/expense.c:123 msgid "Singapore" msgstr "" #: ../Expense/expense.c:124 #, fuzzy msgid "Spain" msgstr "Imprimir" #: ../Expense/expense.c:125 #, fuzzy msgid "Sweden" msgstr "setmana" #: ../Expense/expense.c:126 msgid "Switzerland" msgstr "" #: ../Expense/expense.c:127 #, fuzzy msgid "Taiwan" msgstr "Imprimir" #: ../Expense/expense.c:128 #, fuzzy msgid "Thailand" msgstr "Imprimir" #: ../Expense/expense.c:129 msgid "United Kingdom" msgstr "" #: ../Expense/expense.c:130 msgid "United States" msgstr "" #: ../Expense/expense.c:518 ../Expense/expense.c:529 msgid "Expense" msgstr "" #: ../Expense/expense.c:550 ../Expense/expense.c:1388 msgid "Airfare" msgstr "" #: ../Expense/expense.c:552 ../Expense/expense.c:1389 msgid "Breakfast" msgstr "" #: ../Expense/expense.c:554 ../Expense/expense.c:1390 msgid "Bus" msgstr "" #: ../Expense/expense.c:556 ../Expense/expense.c:1391 msgid "BusinessMeals" msgstr "" #: ../Expense/expense.c:558 ../Expense/expense.c:1392 msgid "CarRental" msgstr "Actual" #: ../Expense/expense.c:560 ../Expense/expense.c:1393 msgid "Dinner" msgstr "cap" #: ../Expense/expense.c:562 ../Expense/expense.c:1394 msgid "Entertainment" msgstr "" #: ../Expense/expense.c:564 ../Expense/expense.c:1395 msgid "Fax" msgstr "" #: ../Expense/expense.c:566 ../Expense/expense.c:1396 msgid "Gas" msgstr "" #: ../Expense/expense.c:568 ../Expense/expense.c:1397 msgid "Gifts" msgstr "" #: ../Expense/expense.c:570 ../Expense/expense.c:1398 msgid "Hotel" msgstr "Ajuda" #: ../Expense/expense.c:572 ../Expense/expense.c:1399 msgid "Incidentals" msgstr "" #: ../Expense/expense.c:574 ../Expense/expense.c:1400 msgid "Laundry" msgstr "Diumenge" #: ../Expense/expense.c:576 ../Expense/expense.c:1401 msgid "Limo" msgstr "" #: ../Expense/expense.c:578 ../Expense/expense.c:1402 msgid "Lodging" msgstr "" #: ../Expense/expense.c:580 ../Expense/expense.c:1403 msgid "Lunch" msgstr "" #: ../Expense/expense.c:582 ../Expense/expense.c:1404 msgid "Mileage" msgstr "" #: ../Expense/expense.c:586 ../Expense/expense.c:1406 msgid "Parking" msgstr "Imprimir" #: ../Expense/expense.c:588 ../Expense/expense.c:1407 msgid "Postage" msgstr "" #: ../Expense/expense.c:590 ../Expense/expense.c:1408 msgid "Snack" msgstr "Sincronitzar" #: ../Expense/expense.c:592 ../Expense/expense.c:1409 msgid "Subway" msgstr "Diumenge" #: ../Expense/expense.c:594 ../Expense/expense.c:1410 msgid "Supplies" msgstr "" #: ../Expense/expense.c:596 ../Expense/expense.c:1411 msgid "Taxi" msgstr "" #: ../Expense/expense.c:598 ../Expense/expense.c:1412 msgid "Telephone" msgstr "" #: ../Expense/expense.c:600 ../Expense/expense.c:1413 msgid "Tips" msgstr "" #: ../Expense/expense.c:602 ../Expense/expense.c:1414 msgid "Tolls" msgstr "" #: ../Expense/expense.c:604 ../Expense/expense.c:1415 msgid "Train" msgstr "Imprimir" #: ../Expense/expense.c:1239 msgid "Expense: Unknown expense type\n" msgstr "" #: ../Expense/expense.c:1245 msgid "Expense: Unknown payment type\n" msgstr "" #: ../Expense/expense.c:1377 msgid "American Express" msgstr "" #: ../Expense/expense.c:1378 msgid "Cash" msgstr "Cats" #: ../Expense/expense.c:1379 msgid "Check" msgstr "" #: ../Expense/expense.c:1380 msgid "Credit Card" msgstr "" #: ../Expense/expense.c:1381 msgid "Master Card" msgstr "" #: ../Expense/expense.c:1382 msgid "Prepaid" msgstr "" #: ../Expense/expense.c:1383 msgid "VISA" msgstr "" #: ../Expense/expense.c:1619 #, fuzzy msgid "Type" msgstr "Temps:" #: ../Expense/expense.c:1620 #, fuzzy msgid "Amount" msgstr "Quant a %s" #. Category Menu #: ../Expense/expense.c:1704 #, fuzzy msgid "Category:" msgstr "Categoria" #. Type Menu #: ../Expense/expense.c:1712 #, fuzzy msgid "Type:" msgstr "Temps:" #. Payment Menu #: ../Expense/expense.c:1720 msgid "Payment:" msgstr "" #. Currency Menu #: ../Expense/expense.c:1728 #, fuzzy msgid "Currency:" msgstr "Actual" #: ../Expense/expense.c:1748 msgid "Month:" msgstr "Mes" #: ../Expense/expense.c:1762 msgid "Day:" msgstr "Dia" #: ../Expense/expense.c:1776 msgid "Year:" msgstr "Any" #. Amount Entry #: ../Expense/expense.c:1789 #, fuzzy msgid "Amount:" msgstr "Quant a %s" #. Vendor Entry #: ../Expense/expense.c:1799 msgid "Vendor:" msgstr "" #. City #: ../Expense/expense.c:1809 #, fuzzy msgid "City:" msgstr "Categoria" #. Attendees #: ../Expense/expense.c:1819 msgid "Attendees" msgstr "" #. ------------------------------------------- #: ../Expense/expense.c:2102 #, fuzzy, c-format msgid "" "%s\n" "\n" "Expense plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org" msgstr "" "%s fou escrit per\n" "Judd Montgomery (c) 1999-2001.\n" "judd@jpilot.org\n" "http://jpilot.org\n" #: ../KeyRing/keyring.c:291 msgid "KeyRing: pack_KeyRing(): buf_size too small\n" msgstr "" #: ../KeyRing/keyring.c:1699 #, fuzzy msgid "Incorrect, Reenter KeyRing Password" msgstr "Introduïu la contrasenya del PalmOS" #: ../KeyRing/keyring.c:1701 #, fuzzy msgid "Enter a NEW KeyRing Password" msgstr "Introduïu la contrasenya del PalmOS" #: ../KeyRing/keyring.c:1703 msgid "Enter KeyRing Password" msgstr "Introduïu la contrasenya del PalmOS" #: ../KeyRing/keyring.c:1769 #, c-format msgid "KeyRing: file %s not found.\n" msgstr "" #: ../KeyRing/keyring.c:1770 msgid "KeyRing: Try Syncing.\n" msgstr "" #: ../KeyRing/keyring.c:1861 ../KeyRing/keyring.c:1872 msgid "KeyRing" msgstr "" #. ------------------------------------------- #: ../KeyRing/keyring.c:1900 #, fuzzy, c-format msgid "" "%s\n" "\n" "KeyRing plugin for J-Pilot was written by\n" "Judd Montgomery (c) 2001.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "KeyRing is a free PalmOS program for storing\n" "passwords and other information in encrypted form\n" "http://gnukeyring.sourceforge.net" msgstr "" "%s fou escrit per\n" "Judd Montgomery (c) 1999-2001.\n" "judd@jpilot.org\n" "http://jpilot.org\n" #: ../KeyRing/keyring.c:2137 #, c-format msgid "" "Keys exported from %s %s on %s\n" "\n" msgstr "" #: ../KeyRing/keyring.c:2162 #, fuzzy, c-format msgid "Can't export key %d\n" msgstr "Categoria" #: ../KeyRing/keyring.c:2229 msgid "B-FOLDERS CSV" msgstr "" #. Change Password button #: ../KeyRing/keyring.c:2384 #, fuzzy msgid "" "Change\n" "KeyRing\n" "Password" msgstr "Introduïu la contrasenya del PalmOS" #. Clist #: ../KeyRing/keyring.c:2497 #, fuzzy msgid "Changed" msgstr "Anul·lar" #: ../KeyRing/keyring.c:2499 msgid "Account" msgstr "" #. Name entry #: ../KeyRing/keyring.c:2593 msgid "name: " msgstr "Nom" #. Account entry #: ../KeyRing/keyring.c:2601 msgid "account: " msgstr "" #. Password entry #: ../KeyRing/keyring.c:2609 msgid "password: " msgstr "Contrasenya del palm" #. Last Changed entry #: ../KeyRing/keyring.c:2616 msgid "last changed: " msgstr "" #. Generate Password button (creates random password) #: ../KeyRing/keyring.c:2626 #, fuzzy msgid "Generate Password" msgstr "Introduïu la contrasenya del PalmOS" #: ../SyncTime/synctime.c:61 #, fuzzy msgid "SyncTime" msgstr "Sincronitzar memo" #. ------------------------------------------- #: ../SyncTime/synctime.c:72 #, fuzzy, c-format msgid "" "%s\n" "\n" "SyncTime plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "SyncTime WILL NOT work with PalmOS 3.3!" msgstr "" "%s fou escrit per\n" "Judd Montgomery (c) 1999-2001.\n" "judd@jpilot.org\n" "http://jpilot.org\n" #: ../SyncTime/synctime.c:106 msgid "synctime: Palm OS Version 3.25 and 3.30 do not support SyncTime\n" msgstr "" #: ../SyncTime/synctime.c:107 msgid "synctime: NOT setting the time on the pilot\n" msgstr "" #: ../SyncTime/synctime.c:112 msgid "synctime: Setting the time on the pilot... " msgstr "" #: ../SyncTime/synctime.c:117 #, fuzzy msgid "Done\n" msgstr "Fet" #, fuzzy #~ msgid "Serial Port" #~ msgstr "Velocitat port sèrie " #, fuzzy #~ msgid "W" #~ msgstr "Dc" #, fuzzy #~ msgid "M" #~ msgstr "Dll" #~ msgid "This Event has no particular time" #~ msgstr "Aquest esdeveniment no te hora particular" #, fuzzy #~ msgid "Start Time" #~ msgstr "Comença en" #, fuzzy #~ msgid "End Time" #~ msgstr "Temps" #, fuzzy #~ msgid "email command empty\n" #~ msgstr "Ordre d'alarma" #, fuzzy #~ msgid "Unable to open %s%s file\n" #~ msgstr "No s'ha pogut obrir %s\n" #, fuzzy #~ msgid "Unable to open %s.alarms file\n" #~ msgstr "No s'ha pogut obrir %s\n" #, fuzzy #~ msgid "category name" #~ msgstr "Categoria" #, fuzzy #~ msgid "End Date: Never\n" #~ msgstr "Finalitza a la data" #, fuzzy #~ msgid "Repeat Days: " #~ msgstr "Repetir els dies:" #~ msgid "Close" #~ msgstr "Tancar" #~ msgid "none" #~ msgstr "cap" #~ msgid "Done" #~ msgstr "Fet" #~ msgid "Add" #~ msgstr "Afegir" #~ msgid "Remove" #~ msgstr "Suprimir" #, fuzzy #~ msgid "User name" #~ msgstr "Nom" #~ msgid "/Help/PayBack program" #~ msgstr "/Ajuda/PayBack program" #, fuzzy #~ msgid "Show private records" #~ msgstr "/Visualitzar/Oculta-Mostra registres privats" #, fuzzy #~ msgid "Hide private records" #~ msgstr "/Visualitzar/Oculta-Mostra registres privats" #, fuzzy #~ msgid "Mask private records" #~ msgstr "Imprimir tots els registres" #, fuzzy #~ msgid "Font" #~ msgstr "Mes" #, fuzzy #~ msgid "Couldn't open PC records file\n" #~ msgstr "No puc obrir el fitxer %s. \n" #~ msgid "The first day of the week is " #~ msgstr "El primer dia de la setmana és " #~ msgid "One record" #~ msgstr "Un registre" #, fuzzy #~ msgid "Finished\n" #~ msgstr "Ha fallat.\n" #, fuzzy #~ msgid "Last Username = [%s]\n" #~ msgstr "Últim nom d'usuari-->\"%s\"\n" #, fuzzy #~ msgid "Last UserID = %d\n" #~ msgstr "Últim identificador d'usuari-->\"%d\"\n" #, fuzzy #~ msgid "Username = [%s]\n" #~ msgstr "Últim nom d'usuari-->\"%s\"\n" #, fuzzy #~ msgid "userID = %d\n" #~ msgstr "Identificador d'usuari-->%d" #~ msgid "number of records = %d\n" #~ msgstr "número de registres = %d\n" #~ msgid "palm: number of records = %d\n" #~ msgstr "palm: nombre de registres = %d\n" #~ msgid "disk: number of records = %d\n" #~ msgstr "disc: nombre de registres = %d\n" #, fuzzy #~ msgid "" #~ "%s doesn't appear to be a directory.\n" #~ "I need it to be.\n" #~ msgstr "L'arxiu no sembla tenir el format d'adreces\n" #, fuzzy #~ msgid "Field" #~ msgstr "Ha fallat.\n" #~ msgid "Quick View" #~ msgstr "Vista ràpida" #~ msgid "Serial Port (/dev/ttyS0, /dev/pilot)" #~ msgstr "Port Sèrie (/dev/ttyS0, /dev/pilot)" #~ msgid "Sync memo32 (pedit32)" #~ msgstr "Sincronitzar memo32 (pedit32)" #~ msgid "Quit" #~ msgstr "Eixir!" #~ msgid "Help" #~ msgstr "Ajuda" #, fuzzy #~ msgid "Directory" #~ msgstr "%s és un directori" #~ msgid "Overwrite File" #~ msgstr "Sobreescrit arxiu" #, fuzzy #~ msgid "Filename" #~ msgstr "Nom" #~ msgid "Sync" #~ msgstr "Sincronitzar" #, fuzzy #~ msgid "Add the new record Ctrl+Enter" #~ msgstr "/Visualitzar/Oculta-Mostra registres privats" #~ msgid "Backup" #~ msgstr "Còpia de seguretat" #~ msgid "Quit!" #~ msgstr "Eixir!" #, fuzzy #~ msgid "Show Preferences" #~ msgstr "Preferències" #~ msgid "About Expense" #~ msgstr "Quant a %s" #, fuzzy #~ msgid "About KeyRing" #~ msgstr "Quant a %s" #, fuzzy #~ msgid "" #~ " [-v] || [-h] || [-d] || [-a] || [-A] || [-i]\n" #~ " -v displays version and compile options and exits.\n" #~ " -h displays help and exits.\n" #~ " -d displays debug info to stdout.\n" #~ " -p do not load plugins.\n" #~ " -a ignore missed alarms since the last time this program was run.\n" #~ " -A ignore all alarms, past and future.\n" #~ " -i makes jpilot iconify itself upon launch\n" #~ " The PILOTPORT, and PILOTRATE env variables are used to specify\n" #~ " which port to sync on, and at what speed.\n" #~ " If PILOTPORT is not set then it defaults to /dev/pilot.\n" #~ msgstr "" #~ "\n" #~ "jpilot [ [-v] || [-h] || [-d] || [-a] || [-A]\n" #~ " -v mostra la versió i surt.\n" #~ " -h mostra l'ajut i surt.\n" #~ " -d mostra informació de depuració a stdout.\n" #~ " -p no carrega els endollats.\n" #~ " -a ignora les alarmes perdudes des de l'última vegada que va funcionar " #~ "el programa.\n" #~ " -A ignora totes les alarmes, passades i futures.\n" #~ " Les variables d'entorn PILOTPORT, i PILOTRATE son utilitzades per " #~ "especificar a quin\n" #~ " port s'ha de sincronitzar, i a quina velocitat.\n" #~ " Si PILOTPORT no ha estat definit, aleshores per defecte utilitza /dev/" #~ "pilot.\n" #~ msgid "slow_sync_application(): Out of memory\n" #~ msgstr "slow_sync_application(): Sense memòria\n" #~ msgid "dlp_WriteRecord failed\n" #~ msgstr "dlp_WriteRecord ha fallat\n" #~ msgid "" #~ "\n" #~ "Unable to open '%s'!\n" #~ msgstr "" #~ "\n" #~ "No es pot obrir '%s'!\n" #, fuzzy #~ msgid "Cannot open %s_to_install file\n" #~ msgstr "No puc obrir el fitxer de registre. \n" #, fuzzy #~ msgid "Cannot open %s_to_install.tmp file\n" #~ msgstr "No puc obrir l'arxiu jpilot_to_install.tmp\n" #~ msgid "fast_sync_local_recs(): Out of memory\n" #~ msgstr "fast_sync_local_recs(): Sense memòria\n" #, fuzzy #~ msgid "Error reading at %s : %s %d\n" #~ msgstr "Error llegint" #, fuzzy #~ msgid "Cannot open " #~ msgstr "No puc obrir el fitxer de registre. \n" #~ msgid "RTh" #~ msgstr "Dj" #, fuzzy #~ msgid "Last Syned UserID-->\"%d\"\n" #~ msgstr "Últim identificador d'usuari-->\"%d\"\n" jpilot-1.8.1.2/po/es.po0000644000175000017500000027722311702307203011500 00000000000000# Mensajes en espaol para jpilot-1.6.0-pre2. # Copyright (C) 2001-2008 Free Software Foundation, Inc. # This file is distributed under the same license as the jpilot package. # Juan Diego , 2000. # Cristian Othn Martnez Vera , 2001-2005, 2008. # msgid "" msgstr "" "Project-Id-Version: jpilot 1.6.0-pre2\n" "Report-Msgid-Bugs-To: jpilot-devel@jpilot.org\n" "POT-Creation-Date: 2012-01-08 13:39+0100\n" "PO-Revision-Date: 2008-05-07 10:39-0500\n" "Last-Translator: Cristian Othn Martnez Vera \n" "Language-Team: Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8-bit\n" #: ../address.c:276 ../address.c:448 ../alarms.c:332 ../calendar.c:309 #: ../calendar.c:547 ../contact.c:324 ../contact.c:738 ../dat.c:189 #: ../dat.c:655 ../dat.c:859 ../dat.c:993 ../dat.c:1132 ../datebook.c:130 #: ../datebook.c:165 ../datebook.c:172 ../datebook.c:231 ../jpilot.c:1254 #: ../jpilot-merge.c:95 ../libplugin.c:208 ../libplugin.c:455 #: ../libplugin.c:534 ../libplugin.c:563 ../libplugin.c:811 ../memo.c:214 #: ../memo.c:287 ../otherconv.c:280 ../plugins.c:112 ../prefs.c:350 #: ../prefs.c:375 ../prefs.c:906 ../sync.c:2170 ../sync.c:2187 ../sync.c:2296 #: ../sync.c:2310 ../sync.c:2507 ../sync.c:2646 ../todo.c:236 ../todo.c:490 #: ../utils.c:748 #, c-format msgid "Out of memory" msgstr "Memoria agotada" #: ../address.c:332 ../calendar.c:230 ../contact.c:580 ../datebook.c:494 #: ../memo.c:87 ../todo.c:90 #, fuzzy, c-format msgid "%s:%d Error reading application info %s\n" msgstr "%s:%d Error al leer la informacin de la categora %s\n" #: ../address.c:344 ../address_gui.c:2285 ../address_gui.c:2324 #: ../calendar.c:246 ../contact.c:596 ../datebook.c:514 ../datebook_gui.c:3737 #: ../libplugin.c:405 ../libplugin.c:431 ../memo.c:99 ../memo_gui.c:863 #: ../todo_gui.c:1070 ../Expense/expense.c:1105 #, c-format msgid "Error reading file: %s\n" msgstr "Error al leer del fichero: %s\n" #: ../address.c:492 ../calendar.c:598 ../calendar.c:607 ../contact.c:780 #: ../libplugin.c:846 ../memo.c:353 ../todo.c:302 ../utils.c:1124 #: ../utils.c:1131 ../utils.c:1138 ../utils.c:1145 ../utils.c:1152 #: ../utils.c:1159 msgid "error" msgstr "error" #: ../address_gui.c:325 ../datebook_gui.c:2844 ../memo_gui.c:176 #: ../todo_gui.c:292 ../KeyRing/keyring.c:834 msgid "" "This record is deleted.\n" "Undelete it or copy it to make changes.\n" msgstr "" "Este registro fue borrado.\n" "Recuprelo o cpielo para hacer cambios.\n" #: ../address_gui.c:452 ../address_gui.c:458 ../address_gui.c:469 #: ../address_gui.c:481 ../address_gui.c:493 ../address_gui.c:506 #, c-format msgid "%s%s: %s" msgstr "%s%s: %s" #: ../address_gui.c:542 ../category.c:118 ../category.c:176 ../category.c:330 #: ../category.c:336 ../datebook_gui.c:430 ../jpilot-merge.c:88 #: ../jpilot-merge.c:146 ../jpilot-merge.c:151 ../memo_gui.c:280 #: ../sync.c:2129 ../sync.c:2135 ../sync.c:2481 ../sync.c:2842 #: ../todo_gui.c:416 ../utils.c:2674 ../utils.c:2711 ../utils.c:2717 #: ../utils.c:2776 ../utils.c:2782 ../utils.c:2836 ../utils.c:2890 #: ../utils.c:2896 ../utils.c:2954 ../utils.c:2961 #, c-format msgid "Unable to open file: %s\n" msgstr "No se puede abrir el fichero: %s\n" #: ../address_gui.c:561 #, fuzzy, c-format msgid "Unable to read file: %s\n" msgstr "No se puede abrir el fichero: %s\n" #: ../address_gui.c:715 msgid "File doesn't appear to be address.dat format\n" msgstr "El fichero parece que no est en el formato de address.dat\n" #: ../address_gui.c:725 ../datebook_gui.c:647 ../memo_gui.c:324 #: ../memo_gui.c:417 ../todo_gui.c:542 ../Expense/expense.c:1384 msgid "Unfiled" msgstr "Sin llenar" #: ../address_gui.c:781 ../datebook_gui.c:698 ../memo_gui.c:470 #: ../todo_gui.c:595 msgid "CSV (Comma Separated Values)" msgstr "" #: ../address_gui.c:782 msgid "DAT/ABA (Palm Archive Formats)" msgstr "" #. current category name #. previous category name #. entry text, in Pilot character set #: ../address_gui.c:868 ../category.c:408 ../datebook_gui.c:729 #: ../jpilot.c:234 ../jpilot.c:278 ../jpilot.c:352 ../jpilot.c:396 #: ../jpilot.c:953 ../memo_gui.c:506 ../todo_gui.c:635 ../utils.c:1305 #: ../KeyRing/keyring.c:2090 msgid "OK" msgstr "OK" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "No" msgstr "No" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "Yes" msgstr "S" #: ../address_gui.c:888 ../datebook_gui.c:753 ../memo_gui.c:520 #: ../todo_gui.c:655 ../KeyRing/keyring.c:2104 #, c-format msgid "%s is a directory" msgstr "%s es un directorio" #: ../address_gui.c:890 ../address_gui.c:907 ../datebook_gui.c:755 #: ../datebook_gui.c:772 ../memo_gui.c:522 ../memo_gui.c:539 ../todo_gui.c:657 #: ../todo_gui.c:674 ../KeyRing/keyring.c:2106 ../KeyRing/keyring.c:2123 msgid "Error Opening File" msgstr "Error al Abrir el Fichero" #: ../address_gui.c:894 ../datebook_gui.c:759 ../memo_gui.c:526 #: ../todo_gui.c:661 ../KeyRing/keyring.c:2110 #, c-format msgid "Do you want to overwrite file %s?" msgstr "Desea sobreescribir el fichero %s?" #: ../address_gui.c:896 ../datebook_gui.c:761 ../memo_gui.c:528 #: ../todo_gui.c:663 ../KeyRing/keyring.c:2112 msgid "Overwrite File?" msgstr "Sobreescribir el Fichero?" #: ../address_gui.c:905 ../datebook_gui.c:770 ../memo_gui.c:537 #: ../todo_gui.c:672 ../KeyRing/keyring.c:2121 #, c-format msgid "Error opening file: %s" msgstr "Error al abrir el Fichero: %s" #: ../address_gui.c:922 #, c-format msgid "" "Address exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:925 #, c-format msgid "" "Contact exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:989 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ldif file may not be standards-compliant\n" msgstr "" #: ../address_gui.c:1002 #, c-format msgid "Can't export address %d\n" msgstr "No se puede exportar la direccin %d\n" #: ../address_gui.c:1008 ../memo_gui.c:630 ../todo_gui.c:760 #, fuzzy, c-format msgid "Category: %s\n" msgstr "Categora: " #: ../address_gui.c:1010 ../memo_gui.c:632 ../todo_gui.c:763 #, fuzzy, c-format msgid "Private: %s\n" msgstr "Privado" #: ../address_gui.c:1018 ../address_gui.c:1032 ../address_gui.c:1036 #: ../address_gui.c:1045 ../address_gui.c:1048 #, fuzzy, c-format msgid "%s: " msgstr "%s%s: %s" #: ../address_gui.c:1022 #, c-format msgid "%s\n" msgstr "" #. E-mail should be the Palm dropdown menu item for email #. Set dial/email button text and callback data #: ../address_gui.c:1196 ../address_gui.c:2846 ../address_gui.c:4185 msgid "E-mail" msgstr "Correo electrnico" #: ../address_gui.c:1482 ../datebook_gui.c:1147 ../memo_gui.c:640 #: ../todo_gui.c:844 ../KeyRing/keyring.c:2214 msgid "Unknown export type\n" msgstr "Tipo de exportacin desconocido\n" #: ../address_gui.c:1508 ../datebook_gui.c:1226 ../memo_gui.c:469 #: ../memo_gui.c:666 ../todo_gui.c:870 ../KeyRing/keyring.c:2229 msgid "Text" msgstr "" #: ../address_gui.c:1509 ../datebook_gui.c:1227 ../memo_gui.c:667 #: ../todo_gui.c:871 ../KeyRing/keyring.c:2229 msgid "CSV" msgstr "" #: ../address_gui.c:1510 #, fuzzy msgid "vCard" msgstr "Borrar" #: ../address_gui.c:1511 msgid "vCard (Optimized for Gmail/Android Import)" msgstr "" #: ../address_gui.c:1512 msgid "ldif" msgstr "" #. Initialize variable if default case taken #: ../address_gui.c:1777 ../address_gui.c:3902 #, fuzzy msgid "Last Name/Company" msgstr "Nombre/Compaa" #: ../address_gui.c:1780 ../address_gui.c:3905 #, fuzzy msgid "First Name/Company" msgstr "Nombre/Compaa" #: ../address_gui.c:1783 ../address_gui.c:3908 #, fuzzy msgid "Company/Last Name" msgstr "Compaa/Nombre" #: ../address_gui.c:1920 ../datebook_gui.c:2907 ../memo_gui.c:1036 #: ../todo_gui.c:1329 ../KeyRing/keyring.c:1181 msgid "You can't modify a record that is deleted\n" msgstr "No se puede modificar un registro que fue borrado\n" #. Illegal category, Assume that category 0 is Unfiled and valid #: ../address_gui.c:2119 ../address_gui.c:2370 ../address_gui.c:2803 #: ../address_gui.c:2809 ../address_gui.c:3601 ../datebook_gui.c:1994 #: ../datebook_gui.c:3434 ../datebook_gui.c:3783 ../datebook_gui.c:4074 #: ../memo_gui.c:900 ../memo_gui.c:946 ../memo_gui.c:1161 ../memo_gui.c:1548 #: ../todo_gui.c:1106 ../todo_gui.c:1200 ../todo_gui.c:1589 ../todo_gui.c:2141 #: ../Expense/expense.c:689 ../Expense/expense.c:1143 #: ../Expense/expense.c:1227 ../Expense/expense.c:1887 #: ../KeyRing/keyring.c:1070 ../KeyRing/keyring.c:1512 #: ../KeyRing/keyring.c:1574 ../KeyRing/keyring.c:2688 msgid "Category is not legal\n" msgstr "La categora no es legal\n" #: ../address_gui.c:2179 ../alarms.c:598 ../dialer.c:164 #, c-format msgid "executing command = [%s]\n" msgstr "ejecutando el comando comando = [%s]\n" #: ../address_gui.c:2181 #, fuzzy, c-format msgid "Failed to execute [%s]\n" msgstr "Fall, no se puede crear el fichero %s\n" #: ../address_gui.c:2425 msgid "Birthday" msgstr "Cumpleaos" #: ../address_gui.c:2521 msgid "External program not found, or other error" msgstr "No se encuentra el programa externo, u otro error" #: ../address_gui.c:2523 #, fuzzy msgid "" "J-Pilot can not find the external program \"convert\"\n" "or an error occurred while executing convert.\n" "You may need to install package ImageMagick" msgstr "" "J-Pilot no puede encontrar el programa externo \"convert\"\n" "o sucedi un error al ejecutar convert.\n" "Tal vez necesite instalar el paquete ImageMagick" #: ../address_gui.c:2524 #, c-format msgid "Command executed was \"%s\"\n" msgstr "La orden ejecutada fue \"%s\"\n" #: ../address_gui.c:2525 #, c-format msgid "return code was %d\n" msgstr "el cdigo de devolucin fue %d\n" #: ../address_gui.c:2603 #, fuzzy msgid "chdir() failed\n" msgstr "fall el bloqueo\n" #: ../address_gui.c:2606 msgid "Add Photo" msgstr "Agregar Foto" #. Category menu #: ../address_gui.c:2828 ../KeyRing/keyring.c:2585 msgid "Category: " msgstr "Categora: " #: ../address_gui.c:2848 ../address_gui.c:4186 msgid "Mail" msgstr "Correo" #. Dial Phone Button #: ../address_gui.c:2851 ../address_gui.c:4189 ../dialer.c:307 ../dialer.c:331 msgid "Dial" msgstr "Marcar" #: ../address_gui.c:3041 ../datebook_gui.c:2757 ../memo_gui.c:1228 #: ../todo_gui.c:1697 msgid "Could not get temporary file name\n" msgstr "" #: ../address_gui.c:3049 ../datebook_gui.c:2765 ../memo_gui.c:1236 #: ../todo_gui.c:1705 msgid "Could not open temporary file for external editor\n" msgstr "" #: ../address_gui.c:3089 ../datebook_gui.c:2806 ../memo_gui.c:1277 #: ../todo_gui.c:1746 msgid "Could not open temporary file from external editor\n" msgstr "" #: ../address_gui.c:3261 ../address_gui.c:3292 msgid "-Unnamed-" msgstr "-Sin nombre-" #: ../address_gui.c:3374 ../memo_gui.c:1454 ../todo_gui.c:2019 msgid "0 records" msgstr "0 registros" #: ../address_gui.c:3377 ../datebook_gui.c:2637 ../memo_gui.c:1457 #: ../todo_gui.c:2022 #, c-format msgid "%d of %d records" msgstr "%d de %d registros" #: ../address_gui.c:3772 ../address_gui.c:3780 ../KeyRing/keyring.c:2498 msgid "Name" msgstr "Nombre" #: ../address_gui.c:3773 ../address_gui.c:3774 ../address_gui.c:3775 #: ../address_gui.c:3781 msgid "Address" msgstr "Direccin" #: ../address_gui.c:3776 ../address_gui.c:3782 ../Expense/expense.c:584 #: ../Expense/expense.c:1405 msgid "Other" msgstr "Otro" #. Note textbox #: ../address_gui.c:3777 ../address_gui.c:3783 ../todo_gui.c:2484 #: ../Expense/expense.c:1836 ../KeyRing/keyring.c:2632 msgid "Note" msgstr "Nota" #: ../address_gui.c:3793 msgid "Reverting to Address database\n" msgstr "Se regresa a la base de datos Address\n" #: ../address_gui.c:3914 msgid "Phone" msgstr "Telfono" #: ../address_gui.c:3946 msgid "Quick Find: " msgstr "Bsqueda Rpida: " #. Cancel button #. Add record modification buttons #. Cancel button #: ../address_gui.c:3964 ../category.c:409 ../datebook_gui.c:1782 #: ../datebook_gui.c:5124 ../memo_gui.c:1692 ../todo_gui.c:2345 #: ../utils.c:1346 ../KeyRing/keyring.c:2528 msgid "Cancel" msgstr "Cancelar" #: ../address_gui.c:3964 ../datebook_gui.c:5124 ../memo_gui.c:1692 #: ../todo_gui.c:2345 ../KeyRing/keyring.c:2528 msgid "Cancel the modifications" msgstr "Cancelar las modificaciones" #. Delete Button #. Delete button #. Delete Button #. Delete button #. Delete, Copy, New, etc. buttons #. Delete button #: ../address_gui.c:3969 ../category.c:409 ../category.c:852 #: ../datebook_gui.c:5129 ../memo_gui.c:1697 ../todo_gui.c:2350 #: ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete" msgstr "Borrar" #: ../address_gui.c:3969 ../datebook_gui.c:5129 ../memo_gui.c:1697 #: ../todo_gui.c:2350 ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete the selected record" msgstr "Borrar el registro seleccionado" #. Undelete Button #. Undelete button #. Undelete Button #. Undelete button #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 msgid "Undelete" msgstr "Recuperar" #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 msgid "Undelete the selected record" msgstr "Recuperar el registro seleccionado" #. Copy button #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy" msgstr "Copiar" #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy the selected record" msgstr "Copiar el registro seleccionado" #. New button #. New Record button #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "New Record" msgstr "Nuevo Registro" #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "Add a new record" msgstr "Agregar un registro nuevo" #. "Add Record" button #. Add Record button #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add Record" msgstr "Agregar Registro" #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add the new record" msgstr "Agregar el registro nuevo" #. "Apply Changes" button #. Apply Changes button #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Apply Changes" msgstr "Aplicar Cambios" #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Commit the modifications" msgstr "Confirmar las modificaciones" #. Private check box #. Private checkbox #: ../address_gui.c:4033 ../datebook_gui.c:5191 ../datebook_gui.c:5233 #: ../memo_gui.c:1747 ../todo_gui.c:2410 msgid "Private" msgstr "Privado" #: ../address_gui.c:4118 msgid "Change Photo" msgstr "Cambiar Foto" #: ../address_gui.c:4123 msgid "Remove Photo" msgstr "Borrar Foto" #: ../address_gui.c:4195 msgid "Show In List" msgstr "Mostrar Como Lista" #: ../address_gui.c:4296 msgid "Reminder" msgstr "Recordatorio" #: ../address_gui.c:4312 ../datebook_gui.c:238 ../datebook_gui.c:5221 #: ../datebook_gui.c:5378 msgid "Days" msgstr "Das" #. The Quickview (ALL) page #. All button #: ../address_gui.c:4356 ../datebook_gui.c:1478 ../datebook_gui.c:1782 #: ../utils.c:2528 msgid "All" msgstr "Todos" #: ../alarms.c:232 ../datebook_gui.c:236 ../datebook_gui.c:5215 #: ../datebook_gui.c:5372 msgid "Minutes" msgstr "Minutos" #: ../alarms.c:234 ../datebook_gui.c:237 ../datebook_gui.c:5219 #: ../datebook_gui.c:5376 msgid "Hours" msgstr "Horas" #: ../alarms.c:255 msgid "Remind me" msgstr "Recordarme" #: ../alarms.c:425 ../alarms.c:991 ../sync.c:1639 ../sync.c:1645 #: ../utils.c:3717 #, c-format msgid "Unable to open file: %s%s\n" msgstr "No se puede abrir el fichero: %s%s\n" #: ../alarms.c:512 msgid "Appointment Reminder" msgstr "Recordatorio de Cita" #: ../alarms.c:515 msgid "Past Appointment" msgstr "Cita Pasada" #: ../alarms.c:518 msgid "Postponed Appointment" msgstr "Cita Pospuesta" #: ../alarms.c:521 ../datebook_gui.c:5025 msgid "Appointment" msgstr "Cita" #: ../alarms.c:605 msgid "J-Pilot Alarm" msgstr "Alarma de J-Pilot" #: ../category.c:131 ../category.c:188 ../sync.c:2158 ../sync.c:2495 msgid "PC file corrupt?\n" msgstr "Fichero PC corrupto?\n" #: ../category.c:138 ../category.c:148 ../category.c:196 ../category.c:206 #: ../category.c:216 ../sync.c:2280 ../sync.c:2334 ../sync.c:2371 #: ../sync.c:2386 ../sync.c:2410 ../sync.c:2630 ../sync.c:2675 ../sync.c:2712 #: ../sync.c:2725 ../sync.c:2750 msgid "fseek failed - fatal error\n" msgstr "fall fseek - error fatal\n" #: ../category.c:364 ../utils.c:2738 ../utils.c:2812 ../utils.c:2916 #: ../utils.c:2981 msgid "rename failed" msgstr "fall el renombrado" #: ../category.c:409 msgid "Move" msgstr "Mover" #: ../category.c:438 ../category.c:500 ../category.c:580 ../category.c:769 msgid "Edit Categories" msgstr "Editar Categoras" #: ../category.c:439 msgid "The maximum number of categories (16) are already used" msgstr "Ya se utiliz el nmero mximo de categoras (16)" #: ../category.c:442 msgid "Enter New Category" msgstr "Editar Nuevas Categoras" #: ../category.c:453 ../category.c:477 msgid "Edit Categories Error" msgstr "Error de Editar Categoras" #: ../category.c:454 msgid "You must select a category to rename" msgstr "Se debe seleccionar una categora para renombrar" #: ../category.c:463 msgid "Enter New Category Name" msgstr "Introducir Nuevo Nombre de Categora" #: ../category.c:478 msgid "You must select a category to delete" msgstr "Se debe seleccionar una categora para borrar" #: ../category.c:496 #, c-format msgid "" "There are %d records in %s.\n" "Do you want to move them to %s, or delete them?" msgstr "" "Hay %d registros en %s.\n" "Quiere moverlos a %s, o borrarlos?" #: ../category.c:556 #, c-format msgid "invalid state file %s line %d\n" msgstr "estado invlido fichero %s lnea %d\n" #: ../category.c:578 #, c-format msgid "The category %s can't be used more than once" msgstr "La categora %s no se puede usar ms de una vez" #. Category names in host character set #: ../category.c:735 #, fuzzy msgid "Category" msgstr "Categora:" #: ../category.c:836 msgid "New" msgstr "Nueva" #: ../category.c:843 msgid "Rename" msgstr "Renombrar" #: ../dat.c:456 msgid "unknown type =" msgstr "tipo desconocido =" #: ../dat.c:537 #, c-format msgid "fields per row count != %d, unknown format\n" msgstr "cuenta de campos por fila != %d, formato desconocido\n" #: ../dat.c:551 #, c-format msgid "field count != %d, unknown format\n" msgstr "cuenta de campos != %d, formato desconocido\n" #: ../dat.c:559 msgid "Unknown format, file has wrong schema\n" msgstr "Formato desconocido, el fichero tiene un esquema errneo\n" #: ../dat.c:560 msgid "File schema is:" msgstr "El esquema del fichero es:" #: ../dat.c:564 #, fuzzy msgid "It should be:" msgstr "Debera ser: " #: ../dat.c:674 ../dat.c:692 ../dat.c:876 ../dat.c:889 ../dat.c:1012 #: ../dat.c:1025 ../dat.c:1149 ../dat.c:1162 #, c-format msgid "%s:%d Record %d, field %d: Invalid type. Expected %d, found %d\n" msgstr "" "%s:%d Registro %d, campo %d: Tipo invlido. Se esperaba %d, se encontr %d\n" #: ../dat.c:675 ../dat.c:693 ../dat.c:877 ../dat.c:890 ../dat.c:994 #: ../dat.c:1013 ../dat.c:1026 ../dat.c:1150 ../dat.c:1163 msgid "read of file terminated\n" msgstr "se termin la lectura del fichero\n" #: ../datebook.c:705 ../datebook_gui.c:3648 #, c-format msgid "Unknown repeatType (%d) found in DatebookDB\n" msgstr "Se encontr un repeatType (%d) desconocido en DatebookDB\n" #: ../datebook_gui.c:241 #, fuzzy msgid "Repeat Never" msgstr "Repeticin por:" #: ../datebook_gui.c:242 #, fuzzy msgid "Repeat Daily" msgstr "se Repite en los Das:" #: ../datebook_gui.c:243 #, fuzzy msgid "Repeat Weekly" msgstr "Repeticin por:" #: ../datebook_gui.c:244 #, fuzzy msgid "Repeat MonthlyByDay" msgstr "se Repite en los Das:" #: ../datebook_gui.c:245 #, fuzzy msgid "Repeat MonthlyByDate" msgstr "se Repite en los Das:" #: ../datebook_gui.c:246 msgid "Repeat YearlyDate" msgstr "" #: ../datebook_gui.c:247 #, fuzzy msgid "Repeat YearlyDay" msgstr "se Repite en los Das:" #: ../datebook_gui.c:250 ../datebook_gui.c:257 ../datebook_gui.c:4803 #: ../datebook_gui.c:4810 msgid "Su" msgstr "Do" #: ../datebook_gui.c:251 ../datebook_gui.c:4804 msgid "Mo" msgstr "Lu" #: ../datebook_gui.c:252 ../datebook_gui.c:4805 msgid "Tu" msgstr "Ma" #: ../datebook_gui.c:253 ../datebook_gui.c:4806 msgid "We" msgstr "Mi" #: ../datebook_gui.c:254 ../datebook_gui.c:4807 msgid "Th" msgstr "Ju" #: ../datebook_gui.c:255 ../datebook_gui.c:4808 msgid "Fr" msgstr "Vi" #: ../datebook_gui.c:256 ../datebook_gui.c:4809 msgid "Sa" msgstr "Sa" #: ../datebook_gui.c:269 #, c-format msgid "" "Start Date: %s\n" "Time: Event" msgstr "" #: ../datebook_gui.c:277 #, c-format msgid "" "Start Date: %s\n" "Time: %s to %s" msgstr "" #: ../datebook_gui.c:287 ../datebook_gui.c:297 msgid "Unknown" msgstr "" #. End Date #: ../datebook_gui.c:300 #, fuzzy msgid "End Date: " msgstr "Termina En La Fecha" #: ../datebook_gui.c:302 msgid "Never" msgstr "" #: ../datebook_gui.c:308 #, c-format msgid "Repeat Frequency: %d\n" msgstr "" #: ../datebook_gui.c:316 #, c-format msgid "Monthly Repeat Day %d\n" msgstr "" #: ../datebook_gui.c:321 ../datebook_gui.c:5520 msgid "Repeat on Days:" msgstr "se Repite en los Das:" #: ../datebook_gui.c:332 #, fuzzy, c-format msgid "Number of exceptions: %d" msgstr "nmero de registros = %d\n" #: ../datebook_gui.c:338 msgid "" "\n" "more..." msgstr "" #: ../datebook_gui.c:359 ../datebook_gui.c:386 msgid "Description:" msgstr "" #: ../datebook_gui.c:360 ../datebook_gui.c:387 #, fuzzy msgid "Note:" msgstr "Nota" #: ../datebook_gui.c:362 ../datebook_gui.c:390 #, fuzzy msgid "Alarm:" msgstr "Alarma" #: ../datebook_gui.c:363 ../datebook_gui.c:391 #, fuzzy msgid "Repeat Type:" msgstr "Repeticin por:" #: ../datebook_gui.c:366 ../datebook_gui.c:394 #, fuzzy msgid "Start of Week:" msgstr "Da de la semana" #: ../datebook_gui.c:388 ../datebook_gui.c:5343 msgid "Location:" msgstr "" #: ../datebook_gui.c:620 ../datebook_gui.c:2271 #, c-format msgid "Appointment description text > %d, truncating to %d\n" msgstr "Texto de la descripcin de la cita > %d, truncando a %d\n" #: ../datebook_gui.c:631 ../datebook_gui.c:1148 ../datebook_gui.c:2331 #: ../datebook_gui.c:2338 msgid "Error" msgstr "Error" #: ../datebook_gui.c:632 msgid "File doesn't appear to be datebook.dat format\n" msgstr "El fichero parece que no est en el formato de datebook.dat\n" #: ../datebook_gui.c:699 msgid "DAT/DBA (Palm Archive Formats)" msgstr "" #: ../datebook_gui.c:787 #, c-format msgid "" "Datebook exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:790 #, c-format msgid "" "Calendar exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:817 ../todo_gui.c:701 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ical file may not be standards-compliant\n" msgstr "" #: ../datebook_gui.c:1148 msgid "Unknown export type" msgstr "Tipo de exportacin desconocido" #: ../datebook_gui.c:1228 ../todo_gui.c:872 #, fuzzy msgid "iCalendar" msgstr "Borrar" #: ../datebook_gui.c:1240 ../export_gui.c:251 ../jpilot.c:429 msgid "Export" msgstr "Exportar" #. Label for instructions #: ../datebook_gui.c:1257 msgid "Export All Datebook Records" msgstr "Exportar Todos los Registros de la Agenda" #: ../datebook_gui.c:1276 ../export_gui.c:316 msgid "Save as" msgstr "Guardar como" #. Browse button #: ../datebook_gui.c:1286 ../export_gui.c:329 msgid "Browse" msgstr "Explorar" #: ../datebook_gui.c:1432 msgid "Datebook Categories" msgstr "Categoras de Agenda" #. None button #. Labels for notebook tabs #: ../datebook_gui.c:1484 ../datebook_gui.c:2026 ../datebook_gui.c:5449 msgid "None" msgstr "Ninguno" #: ../datebook_gui.c:1633 msgid "Begin On Date" msgstr "Comienza En La Fecha" #: ../datebook_gui.c:1639 msgid "End On Date" msgstr "Termina En La Fecha" #: ../datebook_gui.c:1751 ../prefs.c:451 msgid "Sunday" msgstr "domingo" #: ../datebook_gui.c:1752 ../prefs.c:452 msgid "Monday" msgstr "lunes" #: ../datebook_gui.c:1753 msgid "Tuesday" msgstr "martes" #: ../datebook_gui.c:1754 msgid "Wednesday" msgstr "mircoles" #: ../datebook_gui.c:1755 msgid "Thursday" msgstr "jueves" #: ../datebook_gui.c:1756 msgid "Friday" msgstr "viernes" #: ../datebook_gui.c:1757 msgid "Saturday" msgstr "sbado" #: ../datebook_gui.c:1760 msgid "4th" msgstr "Cuarto" #: ../datebook_gui.c:1760 msgid "Last" msgstr "ltimo" #: ../datebook_gui.c:1763 #, c-format msgid "" "This appointment can either\n" "repeat on the 4th %s\n" "of the month, or on the last\n" "%s of the month.\n" "Which do you want?" msgstr "" "Esta cita se puede repetir\n" "en el cuarto %s\n" "del mes, o en el ltimo\n" "%s del mes.\n" "Cal prefiere?" #: ../datebook_gui.c:1770 ../datebook_gui.c:1786 msgid "Question?" msgstr "Pregunta?" #: ../datebook_gui.c:1777 #, fuzzy msgid "" "This is a repeating event.\n" "Do you want to apply these changes to\n" "only the CURRENT event,\n" "just FUTURE events, or\n" "ALL of the occurrences of this event?" msgstr "" "Este es un evento peridico.\n" "Desea aplicar estos cambios\n" "al evento ACTUAL, o a TODAS\n" "las ocurrencias de este\n" "evento?" #: ../datebook_gui.c:1782 msgid "Current" msgstr "Actual" #: ../datebook_gui.c:1782 msgid "Future" msgstr "" #: ../datebook_gui.c:2027 msgid "day" msgstr "da" #: ../datebook_gui.c:2028 msgid "week" msgstr "semana" #: ../datebook_gui.c:2029 msgid "month" msgstr "mes" #: ../datebook_gui.c:2030 msgid "year" msgstr "ao" #: ../datebook_gui.c:2326 ../datebook_gui.c:2329 #, c-format msgid "You cannot have an appointment that repeats every %d %s(s)\n" msgstr "No puede tener una cita que se repite cada %d %s(s)\n" #: ../datebook_gui.c:2339 #, fuzzy msgid "" "You cannot have a weekly repeating appointment that doesn't repeat on any " "day of the week." msgstr "" "No puede tener una cita con repeticin semanal que no se repita en cualquier " "da de la semana." #. This is a timeless event #: ../datebook_gui.c:2516 ../datebook_gui.c:5264 msgid "No Time" msgstr "Sin Hora" #: ../datebook_gui.c:2788 ../memo_gui.c:1259 ../todo_gui.c:1728 msgid "External editor command too long to execute\n" msgstr "" #: ../datebook_gui.c:2943 msgid "Invalid Appointment" msgstr "Cita Invlida" #: ../datebook_gui.c:2944 msgid "" "The End Date of this appointment\n" "is before the start date." msgstr "" "La Fecha de Trmino de esta cita\n" "es anterior a la fecha de inicio." #. "No Date" check box #: ../datebook_gui.c:3339 ../datebook_gui.c:5482 ../datebook_gui.c:5513 #: ../datebook_gui.c:5565 ../datebook_gui.c:5613 ../todo_gui.c:142 #: ../todo_gui.c:2454 msgid "No Date" msgstr "Sin Fecha" #: ../datebook_gui.c:3494 #, fuzzy, c-format msgid "Error in DateBookDB or Calendar advanceUnits = %d\n" msgstr "Error en advanceUnits de DateBookDB = %d\n" #: ../datebook_gui.c:3681 #, c-format msgid "%%a., %s" msgstr "%%a., %s" #: ../datebook_gui.c:3686 msgid " (TODAY)" msgstr " (HOY)" #. Weekview button #: ../datebook_gui.c:4934 ../datebook_gui.c:5451 msgid "Week" msgstr "Semana" #: ../datebook_gui.c:4943 #, fuzzy msgid "View appointments by week Ctrl+W" msgstr "Ver citas por semana" #. Monthview button #: ../datebook_gui.c:4946 ../datebook_gui.c:5452 msgid "Month" msgstr "Mes" #: ../datebook_gui.c:4955 #, fuzzy msgid "View appointments by month Ctrl+M" msgstr "Ver citas por mes" #. Make Category button #: ../datebook_gui.c:4960 msgid "Cats" msgstr "Categoras" #: ../datebook_gui.c:5024 msgid "Time" msgstr "Hora" #. "Show ToDos" button #: ../datebook_gui.c:5067 msgid "Show ToDos" msgstr "Mostrar Lista de Pendientes" #: ../datebook_gui.c:5081 ../todo_gui.c:2285 msgid "Task" msgstr "Tarea" #: ../datebook_gui.c:5082 ../todo_gui.c:2286 msgid "Due" msgstr "Lmite" #: ../datebook_gui.c:5201 ../datebook_gui.c:5358 msgid "Alarm" msgstr "Alarma" #. Date Spinners #: ../datebook_gui.c:5241 ../Expense/expense.c:1736 msgid "Date:" msgstr "Fecha:" #. Start date and time #: ../datebook_gui.c:5283 #, fuzzy msgid "Start" msgstr "Inicia en" #. End date and time #: ../datebook_gui.c:5300 #, fuzzy msgid "End" msgstr "Termina en" #: ../datebook_gui.c:5433 msgid "DateBk Tags" msgstr "Etiquetas DateBk" #: ../datebook_gui.c:5450 msgid "Day" msgstr "Da" #: ../datebook_gui.c:5453 msgid "Year" msgstr "Ao" #. "No Repeat" page for notebook #: ../datebook_gui.c:5456 msgid "This event will not repeat" msgstr "Este evento no se repetir" #: ../datebook_gui.c:5465 ../datebook_gui.c:5498 ../datebook_gui.c:5550 #: ../datebook_gui.c:5596 msgid "Frequency is Every" msgstr "la Frecuencia es Cada" #: ../datebook_gui.c:5471 msgid "Day(s)" msgstr "Da(s)" #: ../datebook_gui.c:5474 ../datebook_gui.c:5507 ../datebook_gui.c:5559 #: ../datebook_gui.c:5605 msgid "End on" msgstr "Termina en" #: ../datebook_gui.c:5504 msgid "Week(s)" msgstr "Semana(s)" #: ../datebook_gui.c:5556 msgid "Month(s)" msgstr "Mes(es)" #: ../datebook_gui.c:5573 msgid "Repeat by:" msgstr "Repeticin por:" #: ../datebook_gui.c:5577 msgid "Day of week" msgstr "Da de la semana" #: ../datebook_gui.c:5586 ../Expense/expense.c:1618 msgid "Date" msgstr "Fecha" #: ../datebook_gui.c:5602 msgid "Year(s)" msgstr "Ao(s)" #: ../dialer.c:195 msgid "Phone Dialer" msgstr "Marcador de Telfono" #: ../dialer.c:230 msgid "Prefix 1" msgstr "Prefijo 1" #: ../dialer.c:252 msgid "Prefix 2" msgstr "Prefijo 2" #: ../dialer.c:274 msgid "Prefix 3" msgstr "Prefijo 3" #: ../dialer.c:289 msgid "Phone number:" msgstr "Nmero de telfono:" #: ../dialer.c:319 msgid "Extension" msgstr "Extensin" #: ../dialer.c:341 msgid "Dial Command" msgstr "Comando de Marcado" #: ../export_gui.c:121 msgid "File Browser" msgstr "Explorador de Ficheros" #. Label for instructions #: ../export_gui.c:273 msgid "Select records to be exported" msgstr "Seleccionar registros a exportar" #: ../export_gui.c:275 msgid "Use Ctrl and Shift Keys" msgstr "Utilizar las Teclas Ctrl y Maysculas" #. Import button #: ../import_gui.c:300 ../import_gui.c:369 ../import_gui.c:426 #: ../import_gui.c:471 ../jpilot.c:385 msgid "Import" msgstr "Importar" #: ../import_gui.c:317 #, c-format msgid "Record was marked as private" msgstr "El Registro fue marcado como privado" #: ../import_gui.c:319 #, c-format msgid "Record was not marked as private" msgstr "El Registro no fue marcado como privado" #: ../import_gui.c:328 #, c-format msgid "Category before import was: [%s]" msgstr "La categora antes de la importacin era: [%s]" #: ../import_gui.c:336 #, c-format msgid "Record will be put in category [%s]" msgstr "El registro se colocar en la categora [%s]" #. Import All button #: ../import_gui.c:376 msgid "Import All" msgstr "Importar Todo" #. Skip button #: ../import_gui.c:383 msgid "Skip" msgstr "Saltar" #: ../import_gui.c:457 ../install_gui.c:429 msgid "To change to a hidden directory type it below and hit TAB" msgstr "" "Para cambiarlo a un directorio oculto escrbalo a continuacin y presione TAB" #: ../import_gui.c:484 msgid "Import File Type" msgstr "Importar Tipo de Fichero" #: ../install_gui.c:366 #, fuzzy msgid "Files to install" msgstr "Ficheros para instalar" #: ../install_gui.c:374 msgid "Install" msgstr "Instalar" #: ../install_user.c:118 ../install_user.c:220 msgid "Install User" msgstr "Instalar Usuario" #: ../install_user.c:139 msgid "" "A PalmOS(c) device needs a user name and a user ID in order to sync properly." msgstr "" "Un dispositivo PalmOS(c) necesita un nombre y un ID de usuario para " "sincronizar adecuadamente." #: ../install_user.c:146 msgid "" "If you want to sync more than 1 PalmOS(c) device each one should have a " "different ID and preferably a different user name." msgstr "" "Si desea sincronizar ms de un dispositivo PalmOS(c), cada uno debe tener un " "ID diferente y de preferencia un nombre de usuario diferente." #. Instruction label #: ../install_user.c:168 msgid "Most people choose their name or nickname for the user name." msgstr "La mayora utiliza su nombre o apodo para el nombre de usuario." #: ../install_user.c:176 ../restore_gui.c:278 msgid "User Name" msgstr "Nombre de Usuario" #: ../install_user.c:186 msgid "The ID should be a random number." msgstr "El ID debe ser un nmero aleatorio." #: ../install_user.c:194 ../restore_gui.c:297 msgid "User ID" msgstr "ID de Usuario" #: ../jpilot.c:319 msgid "Print" msgstr "Imprimir" #: ../jpilot.c:320 msgid "There is no print support for this conduit." msgstr "No hay soporte de impresora para este conducto." #: ../jpilot.c:386 msgid "There is no import support for this conduit." msgstr "No hay soporte de importacin para este conducto." #: ../jpilot.c:430 msgid "There is no export support for this conduit." msgstr "No hay soporte de exportacin para este conducto." #: ../jpilot.c:659 #, fuzzy msgid " Cancelling HotSync\n" msgstr "Cancelar la Sincronizacin" #. ------------------------------------------- #: ../jpilot.c:675 #, fuzzy msgid "" "This handheld does not have the same user name or user ID\n" "as the one that was synced the last time.\n" "Syncing could have unwanted effects including data loss.\n" "\n" "Read the user manual if you are uncertain." msgstr "" "Esta palm no tiene el mismo nombre de usuario\n" "o ID de usuario con el cual se sincroniz la\n" "ltima vez. La sincronizacin puede tener\n" "efectos indeseados. Lea el manual de usuario\n" "si no est seguro." #. ------------------------------------------- #: ../jpilot.c:682 #, fuzzy msgid "" "This handheld has a NULL user ID.\n" "Every handheld must have a unique user ID in order to sync properly.\n" "If the handheld has been hard reset, \n" " use restore from the menu to restore it.\n" "Otherwise, to add a new user name and ID\n" " use install-user from the menu.\n" "\n" "Read the user manual if you are uncertain." msgstr "" "Esta palm tiene un id de usuario NULO.\n" "Cada palm debe tener un id de usuario nico para poder sincronizar " "adecuadamente\n" "Si ha sido borrado, use la opcin \"restaurar\" del men para restaurarla,\n" "o utilice pilot-xfer.\n" "Para agregar un nombre de usuario y ID utilice la herramienta de lnea de " "comandos install-user,\n" "o utilice instalar usuario del men\n" "Lea el manual de usuario si tiene dudas." #: ../jpilot.c:690 msgid "Cancel Sync" msgstr "Cancelar la Sincronizacin" #: ../jpilot.c:690 msgid "Sync Anyway" msgstr "Sincronizar de Cualquier Manera" #: ../jpilot.c:699 ../jpilot.c:703 msgid "Sync Problem" msgstr "Problema de Sincronizacin" #: ../jpilot.c:932 ../jpilot.c:1785 msgid " User: " msgstr "Usuario: " #: ../jpilot.c:944 msgid "Unknown command from sync process\n" msgstr "Comando desconocido en el proceso de sincronizacin\n" #: ../jpilot.c:963 ../Expense/expense.c:529 ../KeyRing/keyring.c:1872 #: ../SyncTime/synctime.c:61 #, c-format msgid "About %s" msgstr "Acerca de %s" #: ../jpilot.c:1105 msgid "/_File" msgstr "/_Fichero" #: ../jpilot.c:1106 msgid "/File/tear" msgstr "/Fichero/arrancar" #: ../jpilot.c:1107 msgid "/File/_Find" msgstr "/Fichero/_Buscar" #: ../jpilot.c:1108 ../jpilot.c:1114 ../jpilot.c:1117 msgid "/File/sep1" msgstr "/Fichero/sep1" #: ../jpilot.c:1109 msgid "/File/_Install" msgstr "/Fichero/_Instalar" #: ../jpilot.c:1110 msgid "/File/Import" msgstr "/Fichero/Importar" #: ../jpilot.c:1111 msgid "/File/Export" msgstr "/Fichero/Exportar" #: ../jpilot.c:1112 ../jpilot.c:2190 msgid "/File/Preferences" msgstr "/Fichero/Preferencias" #: ../jpilot.c:1113 msgid "/File/_Print" msgstr "/Fichero/Im_primir" #: ../jpilot.c:1115 msgid "/File/Install User" msgstr "/Fichero/Instalar _Usuario" #: ../jpilot.c:1116 msgid "/File/Restore Handheld" msgstr "/Fichero/Restaurar Dispositivo Porttil" #: ../jpilot.c:1118 msgid "/File/_Quit" msgstr "/Fichero/_Salir" #: ../jpilot.c:1119 msgid "/_View" msgstr "/_Ver" #: ../jpilot.c:1120 ../jpilot.c:1121 ../jpilot.c:1122 ../jpilot.c:1368 msgid "/View/Hide Private Records" msgstr "/Ver/Ocultar los Registros Privados" #: ../jpilot.c:1121 ../jpilot.c:1371 msgid "/View/Show Private Records" msgstr "/Ver/Mostrar los Registros Privados" #: ../jpilot.c:1122 ../jpilot.c:1374 msgid "/View/Mask Private Records" msgstr "/Ver/Enmascarar los Registros Privados" #: ../jpilot.c:1123 msgid "/View/sep1" msgstr "/Ver/sep1" #: ../jpilot.c:1124 msgid "/View/Datebook" msgstr "/Ver/Agenda" #: ../jpilot.c:1125 msgid "/View/Addresses" msgstr "/Ver/Direcciones" #: ../jpilot.c:1126 msgid "/View/Todos" msgstr "/Ver/Pendientes" #: ../jpilot.c:1127 msgid "/View/Memos" msgstr "/Ver/Memorndums" #: ../jpilot.c:1128 ../jpilot.c:1259 msgid "/_Plugins" msgstr "/_Plugins" #: ../jpilot.c:1130 msgid "/_Web" msgstr "/_Web" #. web #: ../jpilot.c:1131 msgid "/Web/Netscape" msgstr "/Web/Netscape" #: ../jpilot.c:1135 msgid "/Web/Mozilla" msgstr "/Web/Mozilla" #: ../jpilot.c:1140 msgid "/Web/Galeon" msgstr "/Web/Galeon" #: ../jpilot.c:1145 msgid "/Web/Opera" msgstr "/Web/Opera" #: ../jpilot.c:1149 msgid "/Web/GnomeUrl" msgstr "/Web/GnomeUrl" #: ../jpilot.c:1151 msgid "/Web/Lynx" msgstr "/Web/Lynx" #: ../jpilot.c:1153 msgid "/Web/Links" msgstr "/Web/Links" #: ../jpilot.c:1155 msgid "/Web/W3M" msgstr "/Web/W3M" #: ../jpilot.c:1157 msgid "/Web/Konqueror" msgstr "/Web/Konqueror" #: ../jpilot.c:1160 msgid "/_Help" msgstr "/_Ayuda" #: ../jpilot.c:1161 msgid "/Help/About J-Pilot" msgstr "/Ayuda/Acerca de J-Pilot" #: ../jpilot.c:1227 #, c-format msgid "/_Plugins/%s" msgstr "/_Plugins/%s" #: ../jpilot.c:1237 #, c-format msgid "/_Help/%s" msgstr "/_Ayuda/%s" #: ../jpilot.c:1591 msgid "calendar:week_start:0" msgstr "calendario:inicio_semana:0" #: ../jpilot.c:1634 ../jpilot-sync.c:171 msgid "Not loading plugins.\n" msgstr "No se cargaron los plugins.\n" #: ../jpilot.c:1638 msgid "Ignoring all alarms.\n" msgstr "Se ignoran todas las alarmas.\n" #: ../jpilot.c:1642 msgid "Ignoring past alarms.\n" msgstr "Se ignoran las alarmas pasadas.\n" #: ../jpilot.c:1730 ../jpilot.c:1738 msgid "Unable to open pipe\n" msgstr "No se puede abrir la tubera\n" #: ../jpilot.c:1947 #, fuzzy msgid "Show private records Ctrl+Z" msgstr "Mostrar los registros privados Ctrl-Z" #: ../jpilot.c:1952 #, fuzzy msgid "Hide private records Ctrl+Z" msgstr "Ocultar los registros privados Ctrl-Z" #: ../jpilot.c:1957 #, fuzzy msgid "Mask private records Ctrl+Z" msgstr "Enmascarar los registros privados Ctrl-Z" #: ../jpilot.c:1969 #, fuzzy msgid "Sync your palm to the desktop Ctrl+Y" msgstr "Sincronizar su palm con el escritorio Ctrl-Y" #: ../jpilot.c:1981 #, fuzzy msgid "Stop Sync process" msgstr "Sincronizr direcciones" #: ../jpilot.c:1993 msgid "" "Sync your palm to the desktop\n" "and then do a backup" msgstr "" "Sincronizar su palm con el escritorio\n" "y entonces hacer un respaldo" #: ../jpilot.c:2141 msgid "Datebook/Go to Today" msgstr "Agenda/Ir al Da de Hoy" #: ../jpilot.c:2142 msgid "Address Book" msgstr "Libreta de Direcciones" #: ../jpilot.c:2143 msgid "ToDo List" msgstr "Lista de Pendientes" #: ../jpilot.c:2144 msgid "Memo Pad" msgstr "Bloc de Notas" #: ../jpilot.c:2172 msgid "Do it now" msgstr "Hazlo ahora" #: ../jpilot.c:2172 msgid "Remind me later" msgstr "Recordar ms tarde" #: ../jpilot.c:2172 msgid "Don't tell me again!" msgstr "No lo repita!" #: ../jpilot.c:2185 #, fuzzy, c-format msgid "" "J-Pilot uses the GTK2 graphical toolkit. This version of the toolkit uses " "UTF-8 to encode characters.\n" "You should select a UTF-8 charset so that you can see non-ASCII characters " "(accents for example).\n" "\n" "Go to the menu \"%s\" and change the \"%s\"." msgstr "" "J-Pilot est utilizando las herramientas grficas GTK2. Esta versin de usa " "UTF-8 para codificar los caracteres.\n" "Debe escoger un conjunto de caracteres UTF-8 para que pueda ver los " "caracteres que no sean ASCII (por ejemplo, acentos)\n" "\n" #. Character Set #: ../jpilot.c:2190 ../prefs_gui.c:511 #, fuzzy msgid "Character Set" msgstr "Conjunto de Caracteres " #: ../jpilot.c:2192 msgid "Select a UTF-8 encoding" msgstr "Escoja una codificacin UTF-8" #: ../jpilot-dump.c:94 #, c-format msgid " +D +A +T +M format like date +format.\n" msgstr " +D +A +T +M formato como date +format.\n" #: ../jpilot-dump.c:95 #, fuzzy, c-format msgid " -v display version and exit\n" msgstr " -v muestra la versin y termina.\n" #: ../jpilot-dump.c:96 ../jpilot-sync.c:68 ../utils.c:1874 #, fuzzy, c-format msgid " -h display help text\n" msgstr " -h muestra la ayuda y termina.\n" #: ../jpilot-dump.c:97 #, fuzzy, c-format msgid " -f display help for format codes\n" msgstr " -f muestra la ayuda para cdigos de formato.\n" #: ../jpilot-dump.c:98 #, fuzzy, c-format msgid " -D dump DateBook\n" msgstr " -D vuelca DateBook.\n" #: ../jpilot-dump.c:99 #, fuzzy, c-format msgid " -i dump DateBook in iCalendar format\n" msgstr " -i vuelca DateBook en formato iCalendar.\n" #: ../jpilot-dump.c:100 #, fuzzy, c-format msgid " -N dump appts for today in DateBook\n" msgstr " -N vuelta las aplicaciones de hoy en DateBook.\n" #: ../jpilot-dump.c:101 #, fuzzy, c-format msgid " -NYYYY/MM/DD dump appts on YYYY/MM/DD in DateBook\n" msgstr " -NAAAA/MM/DD vuelca las aplicaciones de AAAA/MM/DD en DateBook.\n" #: ../jpilot-dump.c:102 #, fuzzy, c-format msgid " -A dump Address book\n" msgstr "-A vuelca Libreta de Direcciones.\n" #: ../jpilot-dump.c:103 #, fuzzy, c-format msgid " -T dump ToDo list as CSV\n" msgstr " -T vuelca la lista de Pendientes como CSV.\n" #: ../jpilot-dump.c:104 #, fuzzy, c-format msgid " -M dump Memos\n" msgstr " -M vuelca Memos.\n" #: ../jpilot-dump.c:165 #, c-format msgid "" "Warning: Host character encoding is not UTF-8 based.\n" "Exported ical file may not be standards-compliant\n" msgstr "" #: ../jpilot-merge.c:163 ../jpilot-merge.c:169 #, fuzzy, c-format msgid "%s: Unable to open file:%s\n" msgstr "No se puede abrir el fichero: %s\n" #: ../jpilot-merge.c:271 #, c-format msgid "Records read from pdb = %d\n" msgstr "" #: ../jpilot-merge.c:272 #, c-format msgid "Records added = %d\n" msgstr "" #: ../jpilot-merge.c:273 #, c-format msgid "Records deleted = %d\n" msgstr "" #: ../jpilot-merge.c:274 #, c-format msgid "Records modified = %d\n" msgstr "" #: ../jpilot-merge.c:275 #, c-format msgid "Records written = %d\n" msgstr "" #: ../jpilot-merge.c:293 #, c-format msgid "Usage: %s {input pdb file} {input pc3 file} {output pdb file}\n" msgstr "" #: ../jpilot-merge.c:294 #, c-format msgid " This program will merge an unsynced records file (pc3)\n" msgstr "" #: ../jpilot-merge.c:295 #, c-format msgid "" " into the corresponding palm database (pdb) file.\n" "\n" msgstr "" #: ../jpilot-merge.c:296 #, c-format msgid " WARNING: Only run this utility if you understand the consequences!\n" msgstr "" #: ../jpilot-merge.c:297 #, c-format msgid " The merge will leave your databases in an unsync-able state.\n" msgstr "" #: ../jpilot-merge.c:298 #, c-format msgid "" " It is intended for cases where J-pilot is being used as a standalone PIM\n" msgstr "" #: ../jpilot-merge.c:299 #, c-format msgid " and where no syncing occurs to physical hardware.\n" msgstr "" #: ../jpilot-merge.c:300 #, c-format msgid " WARNING: Make a backup copy of your databases before proceeding.\n" msgstr "" #: ../jpilot-merge.c:301 #, c-format msgid "" " It is quite simple to destroy your databases by accidentally merging\n" msgstr "" #: ../jpilot-merge.c:302 #, c-format msgid " address records into datebook databases, etc.\n" msgstr "" #: ../jpilot-sync.c:66 #, fuzzy, c-format msgid "" " J-Pilot preferences are read to get sync info such as port, rate, number of " "backups, etc.\n" msgstr "" " Se leen las opciones de J-Pilot para obtener el puerto, tasa, nmero de " "respaldos, etc.\n" #: ../jpilot-sync.c:67 ../utils.c:1873 #, fuzzy, c-format msgid " -v display version and compile options\n" msgstr " -v muestra la versin y opciones de compilacin y termina.\n" #: ../jpilot-sync.c:69 ../utils.c:1875 #, fuzzy, c-format msgid " -d display debug info to stdout\n" msgstr " -d muestra la informacin de depuracin a la salida estndard.\n" #: ../jpilot-sync.c:70 #, fuzzy, c-format msgid " -P skip loading plugins\n" msgstr " -p evita la carga de los plugins.\n" #: ../jpilot-sync.c:71 #, fuzzy, c-format msgid " -b sync, and then do a backup\n" msgstr "" "Sincronizar su palm con el escritorio\n" "y entonces hacer un respaldo" #: ../jpilot-sync.c:72 #, fuzzy, c-format msgid " -l loop, otherwise sync once and exit\n" msgstr " -l = ciclo, de otra forma sincroniza una vez y termina.\n" #: ../jpilot-sync.c:73 #, fuzzy, c-format msgid " -p {port} use this port to sync on instead of default\n" msgstr "" " -p {puerto} = Usa este puerto para sincronizar en lugar del especificado en " "las opciones.\n" #: ../jpilot-sync.c:221 #, fuzzy, c-format msgid "Error: connecting to port %s\n" msgstr "Error al abrir el fichero: %s\n" #: ../jpilot-sync.c:225 #, c-format msgid "Error: pi_listen\n" msgstr "" #: ../jpilot-sync.c:229 #, fuzzy, c-format msgid "Error: opening conduit to handheld\n" msgstr "Error al abrir el fichero: next_id\n" #: ../jpilot-sync.c:233 #, c-format msgid "Error: pi_accept\n" msgstr "" #: ../jpilot-sync.c:237 ../jpilot-sync.c:265 #, fuzzy, c-format msgid "Error: " msgstr "Error" #: ../jpilot-sync.c:238 #, c-format msgid "This handheld does not have the same user name.\n" msgstr "" #: ../jpilot-sync.c:239 ../jpilot-sync.c:253 #, c-format msgid "as the one that was synced the last time.\n" msgstr "" #: ../jpilot-sync.c:241 #, c-format msgid "" "Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:243 ../jpilot-sync.c:256 #, c-format msgid " COPILOT_HOME" msgstr "" #: ../jpilot-sync.c:245 ../jpilot-sync.c:258 #, c-format msgid " JPILOT_HOME" msgstr "" #: ../jpilot-sync.c:247 ../jpilot-sync.c:260 #, fuzzy, c-format msgid " environment variable can be used to sync different handhelds,\n" msgstr "Su variable de ambiente HOME es demasiado larga para m\n" #: ../jpilot-sync.c:248 ../jpilot-sync.c:261 #, c-format msgid " to different directories for the same UNIX user name.\n" msgstr "" #: ../jpilot-sync.c:252 #, c-format msgid "This handheld does not have the same user ID.\n" msgstr "" #: ../jpilot-sync.c:254 #, c-format msgid "" " Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:266 #, c-format msgid "This handheld has a NULL user ID.\n" msgstr "" #: ../jpilot-sync.c:267 #, fuzzy, c-format msgid "Every handheld must have a unique user ID in order to sync properly.\n" msgstr "" "Un dispositivo PalmOS(c) necesita un nombre y un ID de usuario para " "sincronizar adecuadamente." #: ../jpilot-sync.c:268 #, c-format msgid "If the handheld has been hard reset, \n" msgstr "" #: ../jpilot-sync.c:269 #, c-format msgid " use restore from within " msgstr "" #: ../jpilot-sync.c:270 #, c-format msgid "Otherwise, to add a new user name and ID\n" msgstr "" #: ../jpilot-sync.c:271 #, c-format msgid " use \"install-user %s name numeric_id\"\n" msgstr "" #: ../jpilot-sync.c:275 #, c-format msgid "Error: sync returned error %d\n" msgstr "" #: ../libplugin.c:64 ../utils.c:1054 msgid "" "This record is already deleted.\n" "It is scheduled to be deleted from the Palm on the next sync.\n" msgstr "" "Este registro ya fue borrado.\n" "Est destinado a ser borrado de la Palm en la prxima sincronizacin.\n" #: ../libplugin.c:73 ../libplugin.c:110 ../utils.c:1064 ../utils.c:1106 msgid "Unable to open PC records file\n" msgstr "No se puede abrir el fichero de registros PC\n" #: ../libplugin.c:79 ../utils.c:1071 msgid "Couldn't find record to delete\n" msgstr "No se puede encontrar el registro a borrar.\n" #: ../libplugin.c:97 ../utils.c:1091 #, c-format msgid "Unknown header version %d\n" msgstr "Versin de encabezado %d desconocida\n" #: ../libplugin.c:182 #, c-format msgid "%s:%d Error opening file: %s\n" msgstr "%s:%d Error al leer el fichero: %s\n" #: ../libplugin.c:188 ../libplugin.c:217 ../sync.c:1721 ../todo.c:102 #, c-format msgid "%s:%d Error reading file: %s\n" msgstr "%s:%d Error al leer el fichero: %s\n" #: ../libplugin.c:340 ../libplugin.c:398 ../utils.c:2119 ../utils.c:2132 #, c-format msgid "Error opening file: %s\n" msgstr "Error al abrir el fichero: %s\n" #: ../libplugin.c:526 #, c-format msgid "Error reading %s 5\n" msgstr "Error al leer %s 5\n" #: ../libplugin.c:801 msgid "Error reading PC file 1\n" msgstr "Error al leer el fichero PC 1\n" #: ../libplugin.c:817 msgid "Error reading PC file 2\n" msgstr "Error al leer el fichero PC 2\n" #: ../libplugin.c:923 #, c-format msgid "Unknown PC header version = %d\n" msgstr "Versin desconocida de encabezado PC = %d\n" #: ../log.c:101 #, c-format msgid "Unable to open log file, giving up.\n" msgstr "No se puede abrir el fichero de registro, cediendo.\n" #: ../log.c:111 #, c-format msgid "Unable to open log file\n" msgstr "No se puede abrir el fichero de registro\n" #: ../memo_gui.c:302 msgid "Memo text > 65535, truncating\n" msgstr "Texto de la nota > 65535, se trunca\n" #: ../memo_gui.c:330 #, c-format msgid "Imported Memo %s\n" msgstr "Nota Importada %s\n" #: ../memo_gui.c:400 msgid "File doesn't appear to be memopad.dat format\n" msgstr "El fichero parece que no est en el formato de memopad.dat\n" #: ../memo_gui.c:471 msgid "DAT/MPA (Palm Archive Formats)" msgstr "" #: ../memo_gui.c:554 #, c-format msgid "" "Memo exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:557 #, c-format msgid "" "Memos exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:584 #, c-format msgid "Can't export memo %d\n" msgstr "No se puede exportar la nota %d\n" #: ../memo_gui.c:628 #, fuzzy, c-format msgid "Memo: %ld\n" msgstr "Bloc de Notas" #: ../memo_gui.c:634 #, c-format msgid "----- Start of Memo -----\n" msgstr "" #: ../memo_gui.c:636 #, c-format msgid "" "\n" "----- End of Memo -----\n" "\n" msgstr "" #: ../memo_gui.c:668 msgid "B-Folders CSV" msgstr "" #: ../monthview_gui.c:438 msgid "Monthly View" msgstr "Vista Mensual" #: ../monthview_gui.c:480 msgid "Last month Alt+LeftArrow" msgstr "" #: ../monthview_gui.c:508 msgid "Next month Alt+RightArrow" msgstr "" #: ../otherconv.c:76 #, c-format msgid "%s: error exit from g_iconv_close(%s)\n" msgstr "" #: ../otherconv.c:201 #, c-format msgid "%s:%s g_convert_with_iconv error: %s, buff: %s\n" msgstr "" #: ../otherconv.c:203 #, fuzzy msgid "last char truncated" msgstr "ltimo cambio: " #: ../otherconv.c:280 #, c-format msgid "UTF_to_other: %s\n" msgstr "" #: ../otherconv.c:294 #, c-format msgid "iconv: unconvertible sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:298 #, c-format msgid "iconv: incomplete UTF-8 sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:301 #, c-format msgid "iconv: buffer filled. stopped at place %d in '%s'\n" msgstr "" #: ../otherconv.c:304 #, c-format msgid "iconv: unexpected error at place %d in '%s'\n" msgstr "" #: ../password.c:283 msgid "Palm Password" msgstr "Contrasea de la Palm" #: ../password.c:308 msgid "Incorrect, Reenter PalmOS Password" msgstr "Incorrecta, Reintroducir la Contrasea de PalmOS" #: ../password.c:310 msgid "Enter PalmOS Password" msgstr "Introducir la Contrasea de PalmOS" #: ../pidfile.c:67 #, fuzzy msgid "removing stale pidfile\n" msgstr "el fichero _to_install\n" #: ../pidfile.c:91 #, fuzzy, c-format msgid "create pidfile failed: %s\n" msgstr "Error al leer del fichero: %s\n" #: ../pidfile.c:92 msgid "Warning: hotplug syncing disabled.\n" msgstr "" #: ../plugins.c:90 ../plugins.c:203 ../restore_gui.c:133 msgid "infinite loop" msgstr "ciclo infinito" #: ../plugins.c:216 #, c-format msgid "While reading %s%s line 1:[%s]\n" msgstr "Al leer %s%s lnea 1:[%s]\n" #: ../plugins.c:217 msgid "Wrong Version\n" msgstr "Versin Errnea\n" #: ../plugins.c:218 msgid "Check preferences->conduits\n" msgstr "Revise preferencias->conduits\n" #: ../plugins.c:274 #, c-format msgid "" "Open failed on plugin [%s]\n" " error [%s]\n" msgstr "" "No se puede abrir el plugin [%s]\n" " error [%s]\n" #: ../plugins.c:291 ../plugins.c:316 #, c-format msgid " plugin is invalid: [%s]\n" msgstr " el plugin es invlido: [%s]\n" #: ../plugins.c:299 #, c-format msgid "Plugin:[%s]\n" msgstr "Plugin:[%s]\n" #: ../plugins.c:300 #, c-format msgid "This plugin is version (%d.%d).\n" msgstr "Este plugin es versin (%d.%d).\n" #: ../plugins.c:302 msgid "It is too old to work with this version of J-Pilot.\n" msgstr "Es demasiado antiguo para funcionar con esta versin de J-Pilot.\n" #: ../prefs.c:420 msgid "%B %d, %Y" msgstr "%B %d, %Y" #: ../prefs.c:421 msgid "%d %B %Y" msgstr "%d de %B de %Y" #: ../prefs.c:422 msgid "%d. %B %Y" msgstr "%d. %B %Y" #: ../prefs.c:423 msgid "%d %B, %Y" msgstr "%B %d, %Y" #: ../prefs.c:424 msgid "%Y. %B. %d" msgstr "%Y. %B. %d" #: ../prefs.c:425 msgid "%Y %B %d" msgstr "%Y %B %d" #: ../prefs_gui.c:454 msgid "Preferences" msgstr "Preferencias" #: ../prefs_gui.c:485 msgid "Locale" msgstr "Local" #: ../prefs_gui.c:487 msgid "Settings" msgstr "Opciones" #: ../prefs_gui.c:489 msgid "Datebook" msgstr "Agenda" #: ../prefs_gui.c:493 msgid "ToDo" msgstr "Lista de Pendientes" #: ../prefs_gui.c:495 msgid "Memo" msgstr "Notas" #: ../prefs_gui.c:497 msgid "Alarms" msgstr "Alarmas" #: ../prefs_gui.c:499 msgid "Conduits" msgstr "Conductos" #. Shortdate #: ../prefs_gui.c:524 #, fuzzy msgid "Short date format" msgstr "Formato de fecha corta " #. Longdate #: ../prefs_gui.c:537 #, fuzzy msgid "Long date format" msgstr "Formato de fecha larga " #. Time #: ../prefs_gui.c:550 #, fuzzy msgid "Time format" msgstr "Formato de hora " #. GTK colors file #: ../prefs_gui.c:570 #, fuzzy msgid "GTK color theme file" msgstr "Mi fichero de colores GTK es " #. Port #: ../prefs_gui.c:583 #, fuzzy msgid "Sync Port" msgstr "Problema de Sincronizacin" #. Serial Rate #: ../prefs_gui.c:607 msgid "Serial Rate" msgstr "Tasa Serial" #. Number of backups #: ../prefs_gui.c:627 msgid "Number of backups to be archived" msgstr "Nmero de respaldos para archivar" #. Show deleted files check box #: ../prefs_gui.c:645 msgid "Show deleted records (default NO)" msgstr "Mostrar los registros borrados (por omisin NO)" #. Show modified files check box #: ../prefs_gui.c:649 msgid "Show modified deleted records (default NO)" msgstr "Mostrar los registros borrados modificados (por omisin NO)" #: ../prefs_gui.c:654 msgid "Ask confirmation for file installation (J-Pilot -> PDA) (default YES)" msgstr "" "Pedir confirmacin para la instalacin de ficheros (J-Pilot -> PDA) (por " "omisin S)" #. Show tooltips check box #: ../prefs_gui.c:658 #, fuzzy msgid "Show popup tooltips (default YES) (requires restart)" msgstr "Mostrar consejos de botones (por omisin S)" #: ../prefs_gui.c:668 #, fuzzy msgid "Use Datebook database (Palm OS < 5.2.1)" msgstr "Usar la base de datos Datebook (Palm OS <= 3.5)" #: ../prefs_gui.c:671 #, fuzzy msgid "Use Calendar database (Palm OS > 5.2)" msgstr "Usar la base de datos Calendar (Palm OS >= 4.0)" #. Show highlight days check box #: ../prefs_gui.c:697 msgid "Highlight calendar days with appointments" msgstr "Remarcar los das del calendario con citas" #. Highlight today on month and week view #: ../prefs_gui.c:702 msgid "Annotate today in day, week, and month views" msgstr "Anotar hoy en las vistas de da, semana y mes" #. Show number of years on anniversaries in month and week view #: ../prefs_gui.c:706 msgid "Append years on anniversaries in day, week, and month views" msgstr "Agregar aos en aniversarios en las vistas de da, semana y mes" #. Show use DateBk check box #: ../prefs_gui.c:712 msgid "Use DateBk note tags" msgstr "Usar las marcas de notas DateBk" #: ../prefs_gui.c:715 msgid "DateBk support disabled in this build" msgstr "Soporte para DateBk desactivado en esta compilacin" #: ../prefs_gui.c:727 #, fuzzy msgid "Use Address database (Palm OS < 5.2.1)" msgstr "Usar la base de datos Address (Palm OS <= 3.5)" #: ../prefs_gui.c:730 #, fuzzy msgid "Use Contacts database (Palm OS > 5.2)" msgstr "Usar la base de datos Contacts (Palm OS >= 4.0)" #: ../prefs_gui.c:759 msgid "Mail Command" msgstr "Comando de Correo" #: ../prefs_gui.c:773 #, c-format msgid "%s is replaced by the e-mail address" msgstr "%s se reemplaza con la direccin de correo electrnico" #: ../prefs_gui.c:785 #, fuzzy msgid "Use ToDo database (Palm OS < 5.2.1)" msgstr "Usar la base de datos ToDo (Palm OS <= 3.5)" #: ../prefs_gui.c:788 #, fuzzy msgid "Use Task database (Palm OS > 5.2)" msgstr "Usar la base de datos Task (Palm OS => 4.0)" #. hide completed check box #: ../prefs_gui.c:815 msgid "Hide Completed ToDos" msgstr "Ocultar los Pendientes Completados" #. hide todos not yet due check box #: ../prefs_gui.c:819 msgid "Hide ToDos not yet due" msgstr "Ocultar los Pendientes sin completar" #. record todo completion date check box #: ../prefs_gui.c:823 msgid "Record Completion Date" msgstr "Registrar Fecha de Trmino" #. Use Manana check box #: ../prefs_gui.c:828 msgid "Use Manana database" msgstr "Utilizar la base de datos Maana" #: ../prefs_gui.c:836 msgid "Use default number of days due" msgstr "Utilizar el nmero de das lmite por omisin" #: ../prefs_gui.c:858 #, fuzzy msgid "Use Memo database (Palm OS < 5.2.1)" msgstr "Usar la base de datos Memo (Palm OS <= 3.5)" #: ../prefs_gui.c:861 #, fuzzy msgid "Use Memos database (Palm OS > 5.2)" msgstr "Usar la base de datos Memos (Palm OS => 4.0)" #: ../prefs_gui.c:864 msgid "Use Memo32 database (pedit32)" msgstr "Usar la base de datos Memo32 (pedit32)" #: ../prefs_gui.c:904 msgid "External Editor" msgstr "" #: ../prefs_gui.c:917 msgid "Use Ctrl-E inside a memo to launch external editor for memo text" msgstr "" #. ******************************************************************** #. Alarms preference tab #. Open alarm windows check box #: ../prefs_gui.c:925 msgid "Open alarm windows for appointment reminders" msgstr "Abrir ventanas de alarma para recordatorios de citas" #. Execute alarm command check box #: ../prefs_gui.c:929 msgid "Execute this command" msgstr "Ejecutar este comando" #. Shell warning label #: ../prefs_gui.c:933 msgid "WARNING: executing arbitrary shell commands can be dangerous!!!" msgstr "" "AVISO: ejecutar comandos arbitrarios del shell puede ser peligroso!!!" #: ../prefs_gui.c:941 msgid "Alarm Command" msgstr "Comando de la Alarma" #: ../prefs_gui.c:954 msgid "%t is replaced with the alarm time" msgstr "se reemplaza %t con la hora de la alarma" #: ../prefs_gui.c:958 #, c-format msgid "%d is replaced with the alarm date" msgstr "se reemplaza %d con la fecha de la alarma" #: ../prefs_gui.c:963 msgid "%D is replaced with the alarm description" msgstr "se reemplaza %D con la descripcin de la alarma" #: ../prefs_gui.c:967 msgid "%N is replaced with the alarm note" msgstr "se reemplaza %N con la nota de la alarma" #: ../prefs_gui.c:971 msgid "%D (description substitution) is disabled in this build" msgstr "" "%D (sustitucin de la descripcin) est desactivado en esta compilacin" #: ../prefs_gui.c:976 msgid "%N (note substitution) is disabled in this build" msgstr "%n (sustitucin de notas) est desactivado en esta compilacin" #. ******************************************************************** #. Conduits preference tab #. Sync datebook check box #: ../prefs_gui.c:986 msgid "Sync datebook" msgstr "Sincronizar agenda" #. Sync address check box #: ../prefs_gui.c:990 msgid "Sync address" msgstr "Sincronizr direcciones" #. Sync todo check box #: ../prefs_gui.c:994 msgid "Sync todo" msgstr "Sincronizar pendientes" #. Sync memo check box #: ../prefs_gui.c:998 msgid "Sync memo" msgstr "Sincronizar memorndums" #. Show sync Manana check box #: ../prefs_gui.c:1003 msgid "Sync Manana" msgstr "Sincronizar Maana" #. Show use Japanese Kana extention check box #: ../prefs_gui.c:1009 msgid "Use J-OS (Not Japanese PalmOS:WorkPad/CLIE)" msgstr "Usar J-OS (PalmOS No Japons:WorkPad/CLIE)" #. Make a Sync checkbox for each plugin #: ../prefs_gui.c:1022 #, c-format msgid "Sync %s (%s)" msgstr "Sincronizando %s (%s)" #: ../print_gui.c:185 msgid "Print Options" msgstr "Opciones de Impresin" #: ../print_gui.c:198 msgid "Paper Size" msgstr "Tamao del Papel" #: ../print_gui.c:214 msgid "Daily Printout" msgstr "Impresin Diaria" #: ../print_gui.c:220 msgid "Weekly Printout" msgstr "Impresin Semanal" #: ../print_gui.c:226 msgid "Monthly Printout" msgstr "Impresin Mensual" #: ../print_gui.c:266 #, fuzzy msgid "Selected record" msgstr "Se borr un registro %s." #: ../print_gui.c:270 msgid "All records in this category" msgstr "Todos los registros en esta categora" #: ../print_gui.c:274 msgid "Print all records" msgstr "Imprimir todos los registros" #: ../print_gui.c:296 msgid "One record per page" msgstr "Un registro por pgina" #: ../print_gui.c:312 #, fuzzy msgid "Blank lines between each record" msgstr " Lneas en blanco alrededor de cada registro" #. Print Command #: ../print_gui.c:321 msgid "Print Command (e.g. lpr, or cat > file.ps)" msgstr "Comando de Impresin (p.e. lpr, cat > fichero.ps)" #: ../restore_gui.c:71 ../restore_gui.c:229 msgid "Restore Handheld" msgstr "Restaurar Dispositivo Porttil" #: ../restore_gui.c:176 ../restore_gui.c:178 #, fuzzy msgid "Unable to convert filename for GTK display\n" msgstr "" "No se puede convertir el nombre de fichero para mostrar en GTK\n" "El fichero %s no se restaurar\n" #: ../restore_gui.c:177 #, fuzzy msgid "See console log to find which file will not be restored\n" msgstr "" "No se puede convertir el nombre de fichero para mostrar en GTK\n" "Vea el registro de la consola para encontrar cual fichero no se restaurar" #: ../restore_gui.c:179 #, fuzzy, c-format msgid "File %s will not be restored\n" msgstr "Ficheros para instalar" #. Label for instructions #: ../restore_gui.c:246 msgid "To restore your handheld:" msgstr "Para restaurar su dispositivo porttil:" #: ../restore_gui.c:249 #, fuzzy msgid "1. Choose the applications you wish to restore. The default is all." msgstr "" "1. Escoja todas las aplicaciones que desee restaurar. Por omisin son todas." #: ../restore_gui.c:252 msgid "2. Enter the User Name and User ID." msgstr "2. Introduzca el Nombre de Usuario y el ID de Usuario." #: ../restore_gui.c:255 msgid "3. Press the OK button." msgstr "3. Presione el botn OK." #: ../restore_gui.c:258 msgid "This will overwrite data that is currently on the handheld." msgstr "" "Esto sobreescribir los datos que estn actualmente en el dispositivo " "porttil." #: ../search_gui.c:144 msgid "datebook" msgstr "agenda" #: ../search_gui.c:146 #, fuzzy msgid "calendar" msgstr "Borrar" #: ../search_gui.c:233 msgid "address" msgstr "direccin" #: ../search_gui.c:235 msgid "contact" msgstr "" #: ../search_gui.c:304 msgid "todo" msgstr "pendientes" #: ../search_gui.c:361 msgid "memo" msgstr "memorndums" #: ../search_gui.c:363 #, fuzzy msgid "memos" msgstr "memorndums" #: ../search_gui.c:421 msgid "plugin ?" msgstr " plugin ?" #: ../search_gui.c:501 msgid "No records found" msgstr "No se encontraron registros" #: ../search_gui.c:600 msgid "Search" msgstr "Buscar" #. Search label #: ../search_gui.c:617 msgid "Search for: " msgstr "Buscar por: " #. Case Sensitive checkbox #: ../search_gui.c:626 msgid "Case Sensitive" msgstr "Sensible a Maysculas/Minsculas" #: ../sync.c:120 msgid "open lock file failed\n" msgstr "fall al abrir el fichero de bloqueo\n" #: ../sync.c:133 msgid "lock failed\n" msgstr "fall el bloqueo\n" #: ../sync.c:136 #, c-format msgid "sync file is locked by pid %d\n" msgstr "el fichero de sincronizacin est bloqueado por el pid %d\n" #: ../sync.c:171 msgid "unlock failed\n" msgstr "fall el desbloqueo\n" #: ../sync.c:174 #, c-format msgid "sync is locked by pid %d\n" msgstr "la sincronizacin est bloqueada por el pid %d\n" #: ../sync.c:410 #, fuzzy msgid "Check your sync port and settings\n" msgstr "Revise su puerto serial y sus opciones\n" #: ../sync.c:669 msgid "Unable to read home dir\n" msgstr "No se leer el directorio inicial\n" #: ../sync.c:1075 ../sync.c:1413 #, c-format msgid "%s (Creator ID '%s') is up to date, fetch skipped.\n" msgstr "%s (ID de Creador '%s') est actualizado, se salt la obtencin.\n" #: ../sync.c:1079 ../sync.c:1417 #, c-format msgid "Fetching '%s' (Creator ID '%s')... " msgstr "Obteniendo '%s' (ID de Creador '%s')... " #: ../sync.c:1086 ../sync.c:1423 #, c-format msgid "Failed, unable to create file %s\n" msgstr "Fall, no se puede crear el fichero %s\n" #: ../sync.c:1090 ../sync.c:1428 #, c-format msgid "Failed, unable to back up database %s\n" msgstr "Fall, no se puede respaldar la base de datos %s\n" #: ../sync.c:1094 ../sync.c:1432 ../sync.c:1619 msgid "OK\n" msgstr "OK\n" #: ../sync.c:1294 #, c-format msgid "Skipping %s (Creator ID '%s')\n" msgstr "Saltando %s (ID de Creador '%s')\n" #: ../sync.c:1488 #, c-format msgid "Installing %s " msgstr "Instalando %s " #: ../sync.c:1494 ../sync.c:1530 #, c-format msgid "" "\n" "Unable to open file: '%s': %s!\n" msgstr "" "\n" "No se puede abrir el fichero: '%s': %s!\n" #: ../sync.c:1498 #, c-format msgid "" "\n" "Unable to sync file: '%s': file corrupted?\n" msgstr "" "\n" "No se puede sincronizar el fichero: '%s': Fichero corrupto?\n" #: ../sync.c:1514 #, fuzzy, c-format msgid "(Creator ID '%s')... " msgstr "(El ID de Creador es '%s')..." #: ../sync.c:1518 #, fuzzy, c-format msgid "(Creator ID '%s') " msgstr "(El ID de Creador es '%s')..." #: ../sync.c:1520 #, fuzzy, c-format msgid "(SDcard dir %s)... " msgstr "(El ID de Creador es '%s')..." #: ../sync.c:1552 ../sync.c:1565 ../sync.c:1580 ../sync.c:1593 #, c-format msgid "" "\n" "Unable to open file: %s\n" msgstr "" "\n" "No se puede abrir el fichero: %s\n" #: ../sync.c:1605 #, c-format msgid "Install %s failed" msgstr "Fall la instalacin de %s" #: ../sync.c:1609 msgid "Failed.\n" msgstr "Fall.\n" #: ../sync.c:1615 #, fuzzy, c-format msgid "Installed %s" msgstr "%s instalado " #: ../sync.c:1726 #, c-format msgid "%s:%d Error getting app info %s\n" msgstr "%s:%d Error al obtener la informacin de la apliciacin %s\n" #: ../sync.c:1732 ../sync.c:1762 #, c-format msgid "%s:%d Error unpacking app info %s\n" msgstr "%s:%d Error al desempaquetar la informacin de la aplicacin %s\n" #: ../sync.c:1753 #, c-format msgid "Error reading appinfo block for %s\n" msgstr "Error al leer el bloque de informacin de la aplicacin %s\n" #. Fix - need a func for this logging #: ../sync.c:1991 ../sync.c:1995 #, c-format msgid "Could not add category %s to remote.\n" msgstr "No se puede agregar la categora %s al remoto.\n" #: ../sync.c:1992 ../sync.c:1998 #, c-format msgid "Too many categories on remote.\n" msgstr "Demasiadas categoras en el remoto.\n" #: ../sync.c:1993 ../sync.c:2001 #, c-format msgid "All records on desktop in %s will be moved to %s.\n" msgstr "Todos los registros del escritorio en %s se movern a %s.\n" #: ../sync.c:2096 ../sync.c:2814 #, c-format msgid "Syncing %s\n" msgstr "Sincronizando %s\n" #: ../sync.c:2104 ../sync.c:2457 ../sync.c:2822 #, c-format msgid "Wrote an %s record." msgstr "Se escribi un registro %s." #: ../sync.c:2106 ../sync.c:2459 ../sync.c:2824 #, c-format msgid "Writing an %s record failed." msgstr "Fall la escritura de un registro %s." #: ../sync.c:2108 ../sync.c:2461 ../sync.c:2826 #, c-format msgid "Deleting an %s record failed." msgstr "Fall el borrado de un registro %s." #: ../sync.c:2110 ../sync.c:2463 ../sync.c:2828 #, c-format msgid "Deleted an %s record." msgstr "Se borr un registro %s." #: ../sync.c:2112 ../sync.c:2465 #, c-format msgid "Sync Conflict: duplicated an %s record." msgstr "Conflicto de Sincronizacin: se duplic un registro %s." #: ../sync.c:2115 ../sync.c:2468 ../sync.c:2831 #, c-format msgid "Wrote a %s record." msgstr "Se escribi un registro %s." #: ../sync.c:2117 ../sync.c:2470 ../sync.c:2833 #, c-format msgid "Writing a %s record failed." msgstr "Fall la escritura de un registro %s." #: ../sync.c:2119 ../sync.c:2472 ../sync.c:2835 #, c-format msgid "Deleting a %s record failed." msgstr "Fall el borrado de un registro %s." #: ../sync.c:2121 ../sync.c:2474 ../sync.c:2837 #, c-format msgid "Deleted a %s record." msgstr "Se borr un registro %s." #: ../sync.c:2123 ../sync.c:2476 #, c-format msgid "Sync Conflict: duplicated a %s record." msgstr "Conflicto de Sincronizacin: se duplic un registro %s." #: ../sync.c:2227 ../sync.c:2557 #, c-format msgid "Sync Conflict: a %s record must be manually merged\n" msgstr "" #: ../sync.c:2358 ../sync.c:2698 msgid "" "dlp_DeleteRecord failed\n" "This could be because the record was already deleted on the Palm\n" msgstr "" "Fall dlp_DeleteRecord\n" "Esto puede ser porque el registro ya fue borrado en la Palm\n" #: ../sync.c:2927 msgid "Finished installing user information.\n" msgstr "Se termin de instalar la informacin del usuario.\n" #: ../sync.c:3084 #, c-format msgid " Syncing on device %s\n" msgstr " Sincronizando en el dispositivo %s\n" #: ../sync.c:3085 msgid " Press the HotSync button now\n" msgstr " Presione el botn HotSync ahora\n" #: ../sync.c:3127 ../sync.c:3149 ../sync.c:3170 #, c-format msgid "Last Synced Username-->\"%s\"\n" msgstr "ltimo Nombre de Usuario Sincronizado-->\"%s\"\n" #: ../sync.c:3128 ../sync.c:3150 ../sync.c:3171 #, c-format msgid "Last Synced UserID-->\"%d\"\n" msgstr "ltimo ID de Usuario Sincronizado-->\"%d\"\n" #: ../sync.c:3129 ../sync.c:3151 ../sync.c:3172 #, c-format msgid " This Username-->\"%s\"\n" msgstr "Este Nombre de Usuario-->\"%s\"\n" #: ../sync.c:3130 ../sync.c:3152 ../sync.c:3173 #, c-format msgid " This User ID-->%d\n" msgstr "Este ID de Usuario-->\"%d\"\n" #: ../sync.c:3194 #, c-format msgid "Username is \"%s\"\n" msgstr "El Nombre de Usuario es \"%s\"\n" #: ../sync.c:3195 #, c-format msgid "User ID is %d\n" msgstr "El ID de Usuario es %d\n" #: ../sync.c:3197 #, c-format msgid "lastSyncPC = %d\n" msgstr "ltimoSyncPC = %d\n" #: ../sync.c:3198 #, c-format msgid "This PC = %lu\n" msgstr "Este PC = %lu\n" #: ../sync.c:3222 msgid "Sync canceled\n" msgstr "Sincronizacin cancelada\n" #: ../sync.c:3245 msgid "Finished restoring handheld.\n" msgstr "Finished restoring handheld.\n" #: ../sync.c:3246 msgid "You may need to sync to update J-Pilot.\n" msgstr "Tal vez necesite sincronizar para actualizar J-Pilot.\n" #: ../sync.c:3268 msgid "Doing a fast sync.\n" msgstr "Haciendo una sincronizacin rpida.\n" #: ../sync.c:3281 msgid "Doing a slow sync.\n" msgstr "Haciendo una sincronizacin lenta.\n" #: ../sync.c:3356 msgid "Thank you for using J-Pilot." msgstr "Gracias por usar J-Pilot." #: ../sync.c:3401 ../sync.c:3469 msgid "Finished.\n" msgstr "Finished.\n" #: ../sync.c:3436 #, c-format msgid "%s: sync process already in progress (process ID = %d)\n" msgstr "" #: ../sync.c:3437 #, fuzzy, c-format msgid "" "%s: press the HotSync button on the cradle\n" " or stop the sync by using the cancel sync button\n" " or stop the sync by typing \"kill %d\" at the command line\n" msgstr "%s: presione el botn hotsync en la base o ejecute \"kill %d\"\n" #: ../sync.c:3468 #, c-format msgid "Exiting with status %s\n" msgstr "Saliendo con estado %s\n" #: ../todo.c:266 #, c-format msgid "ToDo description text > %d, truncating to %d\n" msgstr "Texto de la descripcin de Pendiente > %d, truncando a %d\n" #: ../todo.c:272 #, c-format msgid "ToDo note text > %d, truncating to %d\n" msgstr "texto de la nota de Pendientes > %d, truncando a %d\n" #: ../todo_gui.c:161 msgid "Due Date" msgstr "Fecha Lmite" #: ../todo_gui.c:532 msgid "File doesn't appear to be todo.dat format\n" msgstr "El fichero parece no estar en el formato de todo.dat\n" #: ../todo_gui.c:596 msgid "DAT/TDA (Palm Archive Formats)" msgstr "" #: ../todo_gui.c:688 #, c-format msgid "" "ToDo exported from %s %s on %s\n" "\n" msgstr "" #: ../todo_gui.c:726 #, c-format msgid "Can't export todo %d\n" msgstr "No se puede exportar el pendiente %d\n" #: ../todo_gui.c:766 #, fuzzy, c-format msgid "Due Date: None\n" msgstr "Fecha Lmite" #: ../todo_gui.c:769 #, fuzzy, c-format msgid "Due Date: %s\n" msgstr "Fecha Lmite" #: ../todo_gui.c:771 #, fuzzy, c-format msgid "Priority: %d\n" msgstr "Prioridad: " #: ../todo_gui.c:772 #, fuzzy, c-format msgid "Completed: %s\n" msgstr "Completada" #: ../todo_gui.c:774 #, c-format msgid "Description: %s\n" msgstr "" #: ../todo_gui.c:777 #, c-format msgid "" "Note: %s\n" "\n" msgstr "" #: ../todo_gui.c:1610 msgid "Priority out of range\n" msgstr "Prioridad fuera de rango\n" #: ../todo_gui.c:1932 ../KeyRing/keyring.c:1310 #, c-format msgid "No date" msgstr "Sin Fecha" #. Completed checkbox #: ../todo_gui.c:2414 msgid "Completed" msgstr "Completada" #: ../todo_gui.c:2421 #, fuzzy msgid "Priority:" msgstr "Prioridad: " #: ../todo_gui.c:2423 msgid "Set priority Alt+#" msgstr "" #: ../todo_gui.c:2444 msgid "Date Due:" msgstr "Fecha Lmite:" #: ../utils.c:332 msgid "Today" msgstr "Hoy" #: ../utils.c:577 #, c-format msgid "Couldn't find empty DB file %s: %s\n" msgstr "No se puede encontrar el fichero DB %s vaco: %s.\n" #: ../utils.c:580 msgid " may not be installed.\n" msgstr "tal vez no est instalado.\n" #. Can't create directory #: ../utils.c:615 ../utils.c:619 #, c-format msgid "Can't create directory %s\n" msgstr "No se puede crear el directorio %s\n" #: ../utils.c:625 #, fuzzy, c-format msgid "%s is not a directory\n" msgstr "%s es un directorio" #: ../utils.c:630 #, fuzzy, c-format msgid "Unable to get write permission for directory %s\n" msgstr "No se puede escribir ficheros en el directorio %s\n" #: ../utils.c:1330 ../utils.c:1354 msgid "Save Changed Record?" msgstr "Guardar el Registro Modificado?" #: ../utils.c:1331 ../utils.c:1355 msgid "Do you want to save the changes to this record?" msgstr "Desea guardar los cambios hechos a este registro?" #: ../utils.c:1336 ../utils.c:1360 msgid "Save New Record?" msgstr "Guardar el Registro Nuevo?" #: ../utils.c:1337 ../utils.c:1361 msgid "Do you want to save this new record?" msgstr "Desea guardar este registro nuevo?" #: ../utils.c:1652 msgid "infinite loop, breaking\n" msgstr "ciclo infinito, interrumpiendo\n" #: ../utils.c:1876 #, fuzzy, c-format msgid " -p skip loading plugins\n" msgstr " -p evita la carga de los plugins.\n" #: ../utils.c:1877 #, fuzzy, c-format msgid " -a ignore missed alarms since the last time program was run\n" msgstr "" " -a ignora las alarmas perdidas desde la ltima vez que se ejecut este " "programa.\n" #: ../utils.c:1878 #, fuzzy, c-format msgid " -A ignore all alarms past and future\n" msgstr " -A ignora todas las alarmas, pasadas y futuras.\n" #: ../utils.c:1879 #, c-format msgid " -s start sync using existing instance of GUI\n" msgstr "" #: ../utils.c:1880 #, c-format msgid " -i iconify program immediately after launch\n" msgstr "" #: ../utils.c:1881 #, c-format msgid "" " -geometry {X geometry} use specified geometry for main window\n" "\n" msgstr "" #: ../utils.c:1882 #, fuzzy, c-format msgid " The PILOTPORT and PILOTRATE environment variables specify\n" msgstr "" " Las variables de ambiente PILOTPORT, y PILOTRATE se utilizan para " "especificar\n" #: ../utils.c:1883 #, c-format msgid " which port to sync on, and at what speed.\n" msgstr " en cal puerto sincronizar, y a qu velocidad.\n" #: ../utils.c:1884 #, c-format msgid " If PILOTPORT is not set then it defaults to /dev/pilot.\n" msgstr " Si no se establece PILOTPORT, entonces usa /dev/pilot por omisin.\n" #: ../utils.c:1921 msgid "Error reading file" msgstr "Error al leer el fichero" #: ../utils.c:1971 msgid "Date compiled" msgstr "Fecha de compilacin" #: ../utils.c:1972 msgid "Compiled with these options:" msgstr "Compilado con las siguientes opciones:" #: ../utils.c:1974 msgid "Installed Path" msgstr "Ruta de Instalacin" #: ../utils.c:1976 msgid "pilot-link version" msgstr "pilot-link versin" #: ../utils.c:1980 msgid "USB support" msgstr "soporte USB" #: ../utils.c:1981 ../utils.c:1984 ../utils.c:1990 ../utils.c:1996 #: ../utils.c:2002 ../utils.c:2008 ../utils.c:2013 msgid "yes" msgstr "s" #: ../utils.c:1982 msgid "Private record support" msgstr "Soporte para registros privados" #: ../utils.c:1986 ../utils.c:1992 ../utils.c:1998 ../utils.c:2004 #: ../utils.c:2010 msgid "no" msgstr "no" #: ../utils.c:1988 msgid "Datebk support" msgstr "Soporte para Datebk" #: ../utils.c:1994 msgid "Plugin support" msgstr "Soporte para plugins" #: ../utils.c:2000 msgid "Manana support" msgstr "Soporte para Maana" #: ../utils.c:2006 msgid "NLS support (foreign languages)" msgstr "Soporte para NLS (idiomas extranjeros)" #: ../utils.c:2012 msgid "GTK2 support" msgstr "Soporte para GTK2" #. No HOME var #: ../utils.c:2055 msgid "Can't get HOME environment variable\n" msgstr "No se puede la variable de ambiente HOME\n" #: ../utils.c:2062 #, fuzzy msgid "HOME environment variable is too long to process\n" msgstr "Su variable de ambiente HOME es demasiado larga para m\n" #: ../utils.c:2557 #, fuzzy msgid "Edit Categories..." msgstr "Editar Categoras" #: ../utils.c:3223 msgid "PC ID is 0.\n" msgstr "el ID de PC es 0.\n" #: ../utils.c:3224 #, fuzzy, c-format msgid "Generated a new PC ID. It is %lu\n" msgstr "Se ha generado un ID nuevo de PC. Es %lu\n" #: ../utils.c:3309 msgid "Invalid UTF-8 encoding in export string\n" msgstr "" #: ../utils.c:3470 #, c-format msgid "Today is %A, %x %X" msgstr "Hoy es %A, %x %X" #: ../utils.c:3472 #, c-format msgid "Today is %%A, %s %s" msgstr "Hoy es %%A, %s %s" #: ../utils.c:3701 #, c-format msgid "" "Incorrect header format for CSV import\n" "Check line 1 of file %s\n" "Aborting import\n" msgstr "" #: ../utils.c:3738 #, fuzzy, c-format msgid "Error writing version header to file: %s%s\n" msgstr "Error al escribir el encabezado PC al fichero: next_id\n" #: ../utils.c:3743 #, fuzzy, c-format msgid "Error writing next id to file: %s%s" msgstr "Error al escribir el siguiente id al fichero: next_id\n" #: ../weekview_gui.c:297 msgid "Weekly View" msgstr "Vista Semanal" #: ../weekview_gui.c:337 msgid "Last week Alt+LeftArrow" msgstr "" #: ../weekview_gui.c:366 msgid "Next week Alt+RightArrow" msgstr "" #: ../Expense/expense.c:97 msgid "Australia" msgstr "Australia" #: ../Expense/expense.c:98 msgid "Austria" msgstr "Austria" #: ../Expense/expense.c:99 msgid "Belgium" msgstr "Blgica" #: ../Expense/expense.c:100 msgid "Brazil" msgstr "Brasil" #: ../Expense/expense.c:101 msgid "Canada" msgstr "Canad" #: ../Expense/expense.c:102 msgid "Denmark" msgstr "Dinamarca" #: ../Expense/expense.c:103 msgid "EU (Euro)" msgstr "UE (Euro)" #: ../Expense/expense.c:104 msgid "Finland" msgstr "Finlandia" #: ../Expense/expense.c:105 msgid "France" msgstr "Francia" #: ../Expense/expense.c:106 msgid "Germany" msgstr "Alemania" #: ../Expense/expense.c:107 msgid "Hong Kong" msgstr "Hong Kong" #: ../Expense/expense.c:108 msgid "Iceland" msgstr "Islandia" #: ../Expense/expense.c:109 msgid "India" msgstr "India" #: ../Expense/expense.c:110 msgid "Indonesia" msgstr "Indonesia" #: ../Expense/expense.c:111 msgid "Ireland" msgstr "Irlanda" #: ../Expense/expense.c:112 msgid "Italy" msgstr "Italia" #: ../Expense/expense.c:113 msgid "Japan" msgstr "Japn" #: ../Expense/expense.c:114 msgid "Korea" msgstr "Corea" #: ../Expense/expense.c:115 msgid "Luxembourg" msgstr "Luxemburgo" #: ../Expense/expense.c:116 msgid "Malaysia" msgstr "Malasia" #: ../Expense/expense.c:117 msgid "Mexico" msgstr "Mxico" #: ../Expense/expense.c:118 msgid "Netherlands" msgstr "Pases Bajos" #: ../Expense/expense.c:119 msgid "New Zealand" msgstr "Nueva Zelandia" #: ../Expense/expense.c:120 msgid "Norway" msgstr "Noruega" # Ups! Es abreviatura de Corea o de China? cfuga #: ../Expense/expense.c:121 msgid "P.R.C." msgstr "R.P.Corea" #: ../Expense/expense.c:122 msgid "Philippines" msgstr "Filipinas" #: ../Expense/expense.c:123 msgid "Singapore" msgstr "Singapur" #: ../Expense/expense.c:124 msgid "Spain" msgstr "Espaa" #: ../Expense/expense.c:125 msgid "Sweden" msgstr "Suecia" #: ../Expense/expense.c:126 msgid "Switzerland" msgstr "Suiza" #: ../Expense/expense.c:127 msgid "Taiwan" msgstr "Taiwn" #: ../Expense/expense.c:128 msgid "Thailand" msgstr "Tailandia" #: ../Expense/expense.c:129 msgid "United Kingdom" msgstr "Reino Unido" #: ../Expense/expense.c:130 msgid "United States" msgstr "Estados Unidos" #: ../Expense/expense.c:518 ../Expense/expense.c:529 msgid "Expense" msgstr "Gastos" #: ../Expense/expense.c:550 ../Expense/expense.c:1388 msgid "Airfare" msgstr "TarifaArea" #: ../Expense/expense.c:552 ../Expense/expense.c:1389 msgid "Breakfast" msgstr "Desayuno" #: ../Expense/expense.c:554 ../Expense/expense.c:1390 msgid "Bus" msgstr "Autobs" #: ../Expense/expense.c:556 ../Expense/expense.c:1391 msgid "BusinessMeals" msgstr "ComidadNegocios" #: ../Expense/expense.c:558 ../Expense/expense.c:1392 msgid "CarRental" msgstr "RentaAuto" #: ../Expense/expense.c:560 ../Expense/expense.c:1393 msgid "Dinner" msgstr "Cena" #: ../Expense/expense.c:562 ../Expense/expense.c:1394 msgid "Entertainment" msgstr "Diversin" #: ../Expense/expense.c:564 ../Expense/expense.c:1395 msgid "Fax" msgstr "Fax" #: ../Expense/expense.c:566 ../Expense/expense.c:1396 msgid "Gas" msgstr "Combustible" #: ../Expense/expense.c:568 ../Expense/expense.c:1397 msgid "Gifts" msgstr "Regalos" #: ../Expense/expense.c:570 ../Expense/expense.c:1398 msgid "Hotel" msgstr "Hotel" #: ../Expense/expense.c:572 ../Expense/expense.c:1399 msgid "Incidentals" msgstr "Incidentales" #: ../Expense/expense.c:574 ../Expense/expense.c:1400 msgid "Laundry" msgstr "Lavandera" #: ../Expense/expense.c:576 ../Expense/expense.c:1401 msgid "Limo" msgstr "Limusina" #: ../Expense/expense.c:578 ../Expense/expense.c:1402 msgid "Lodging" msgstr "Alojamiento" #: ../Expense/expense.c:580 ../Expense/expense.c:1403 msgid "Lunch" msgstr "Almuerzo" #: ../Expense/expense.c:582 ../Expense/expense.c:1404 msgid "Mileage" msgstr "Millaje" #: ../Expense/expense.c:586 ../Expense/expense.c:1406 msgid "Parking" msgstr "Estacionamiento" #: ../Expense/expense.c:588 ../Expense/expense.c:1407 msgid "Postage" msgstr "Estampillas" #: ../Expense/expense.c:590 ../Expense/expense.c:1408 msgid "Snack" msgstr "Bocadillo" #: ../Expense/expense.c:592 ../Expense/expense.c:1409 msgid "Subway" msgstr "Subterrneo" #: ../Expense/expense.c:594 ../Expense/expense.c:1410 msgid "Supplies" msgstr "Recursos" #: ../Expense/expense.c:596 ../Expense/expense.c:1411 msgid "Taxi" msgstr "Taxi" #: ../Expense/expense.c:598 ../Expense/expense.c:1412 msgid "Telephone" msgstr "Telfono" #: ../Expense/expense.c:600 ../Expense/expense.c:1413 msgid "Tips" msgstr "Propinas" #: ../Expense/expense.c:602 ../Expense/expense.c:1414 msgid "Tolls" msgstr "Peajes" #: ../Expense/expense.c:604 ../Expense/expense.c:1415 msgid "Train" msgstr "Tren" #: ../Expense/expense.c:1239 msgid "Expense: Unknown expense type\n" msgstr "Gastos: Tipo de gasto desconocido\n" #: ../Expense/expense.c:1245 msgid "Expense: Unknown payment type\n" msgstr "Gastos: Tipo de pago desconocido\n" #: ../Expense/expense.c:1377 msgid "American Express" msgstr "American Express" #: ../Expense/expense.c:1378 msgid "Cash" msgstr "Efectivo" #: ../Expense/expense.c:1379 msgid "Check" msgstr "Cheque" #: ../Expense/expense.c:1380 msgid "Credit Card" msgstr "Tarjeta de Crdito" #: ../Expense/expense.c:1381 msgid "Master Card" msgstr "Master Card" #: ../Expense/expense.c:1382 msgid "Prepaid" msgstr "Prepago" #: ../Expense/expense.c:1383 msgid "VISA" msgstr "VISA" #: ../Expense/expense.c:1619 #, fuzzy msgid "Type" msgstr "Tipo:" #: ../Expense/expense.c:1620 #, fuzzy msgid "Amount" msgstr "Cantidad:" #. Category Menu #: ../Expense/expense.c:1704 msgid "Category:" msgstr "Categora:" #. Type Menu #: ../Expense/expense.c:1712 msgid "Type:" msgstr "Tipo:" #. Payment Menu #: ../Expense/expense.c:1720 msgid "Payment:" msgstr "Pago:" #. Currency Menu #: ../Expense/expense.c:1728 msgid "Currency:" msgstr "Moneda:" #: ../Expense/expense.c:1748 msgid "Month:" msgstr "Mes:" #: ../Expense/expense.c:1762 msgid "Day:" msgstr "Da:" #: ../Expense/expense.c:1776 msgid "Year:" msgstr "Ao:" #. Amount Entry #: ../Expense/expense.c:1789 msgid "Amount:" msgstr "Cantidad:" #. Vendor Entry #: ../Expense/expense.c:1799 msgid "Vendor:" msgstr "Vendedor:" #. City #: ../Expense/expense.c:1809 msgid "City:" msgstr "Ciudad:" #. Attendees #: ../Expense/expense.c:1819 msgid "Attendees" msgstr "Asistentes" #. ------------------------------------------- #: ../Expense/expense.c:2102 #, fuzzy, c-format msgid "" "%s\n" "\n" "Expense plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org" msgstr "" "%s %s fue escrito por\n" "Judd Montgomery (c) 1999-2002.\n" "judd@jpilot.org\n" "http://jpilot.org\n" #: ../KeyRing/keyring.c:291 msgid "KeyRing: pack_KeyRing(): buf_size too small\n" msgstr "KeyRing: pack_KeyRing(): buf_size demasiado pequeo\n" #: ../KeyRing/keyring.c:1699 msgid "Incorrect, Reenter KeyRing Password" msgstr "Incorrecta, Reintroducir la Contrasea de KeyRing" #: ../KeyRing/keyring.c:1701 msgid "Enter a NEW KeyRing Password" msgstr "Introducir una Contrasea NUEVA de KeyRing" #: ../KeyRing/keyring.c:1703 msgid "Enter KeyRing Password" msgstr "Introducir la Contrasea de KeyRing" #: ../KeyRing/keyring.c:1769 #, c-format msgid "KeyRing: file %s not found.\n" msgstr "KeyRing: no se encuentra el fichero %s.\n" #: ../KeyRing/keyring.c:1770 msgid "KeyRing: Try Syncing.\n" msgstr "KeyRing: Pruebe sincronizando.\n" #: ../KeyRing/keyring.c:1861 ../KeyRing/keyring.c:1872 msgid "KeyRing" msgstr "KeyRing" #. ------------------------------------------- #: ../KeyRing/keyring.c:1900 #, fuzzy, c-format msgid "" "%s\n" "\n" "KeyRing plugin for J-Pilot was written by\n" "Judd Montgomery (c) 2001.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "KeyRing is a free PalmOS program for storing\n" "passwords and other information in encrypted form\n" "http://gnukeyring.sourceforge.net" msgstr "" "%s %s fue escrito por\n" "Judd Montgomery (c) 1999-2002.\n" "judd@jpilot.org\n" "http://jpilot.org\n" #: ../KeyRing/keyring.c:2137 #, c-format msgid "" "Keys exported from %s %s on %s\n" "\n" msgstr "" #: ../KeyRing/keyring.c:2162 #, fuzzy, c-format msgid "Can't export key %d\n" msgstr "No se puede exportar la nota %d\n" #: ../KeyRing/keyring.c:2229 msgid "B-FOLDERS CSV" msgstr "" #. Change Password button #: ../KeyRing/keyring.c:2384 msgid "" "Change\n" "KeyRing\n" "Password" msgstr "" "Cambiar\n" "Contrasea\n" "KeyRing" #. Clist #: ../KeyRing/keyring.c:2497 msgid "Changed" msgstr "Modificado" #: ../KeyRing/keyring.c:2499 msgid "Account" msgstr "Cuenta" #. Name entry #: ../KeyRing/keyring.c:2593 msgid "name: " msgstr "nombre: " #. Account entry #: ../KeyRing/keyring.c:2601 msgid "account: " msgstr "cuenta: " #. Password entry #: ../KeyRing/keyring.c:2609 msgid "password: " msgstr "contrasea: " #. Last Changed entry #: ../KeyRing/keyring.c:2616 msgid "last changed: " msgstr "ltimo cambio: " #. Generate Password button (creates random password) #: ../KeyRing/keyring.c:2626 msgid "Generate Password" msgstr "Generar Contrasea" #: ../SyncTime/synctime.c:61 msgid "SyncTime" msgstr "SyncTime" #. ------------------------------------------- #: ../SyncTime/synctime.c:72 #, fuzzy, c-format msgid "" "%s\n" "\n" "SyncTime plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "SyncTime WILL NOT work with PalmOS 3.3!" msgstr "" "%s %s fue escrito por\n" "Judd Montgomery (c) 1999-2002.\n" "judd@jpilot.org\n" "http://jpilot.org\n" #: ../SyncTime/synctime.c:106 msgid "synctime: Palm OS Version 3.25 and 3.30 do not support SyncTime\n" msgstr "synctime: Palm OS Versin 3.25 y 3.30 no admiten SyncTime\n" #: ../SyncTime/synctime.c:107 msgid "synctime: NOT setting the time on the pilot\n" msgstr "synctime: NO se modifica la hora en el pilot\n" #: ../SyncTime/synctime.c:112 msgid "synctime: Setting the time on the pilot... " msgstr "synctime: Se modifica la hora en el pilot..." #: ../SyncTime/synctime.c:117 msgid "Done\n" msgstr "Hecho\n" #, fuzzy #~ msgid "Serial Port" #~ msgstr "Tasa Serial" #~ msgid " -i makes program iconify itself upon launch.\n" #~ msgstr " -i hace que este programa se iconifique al iniciar.\n" #~ msgid "Your HOME environment variable is too long(>1024)\n" #~ msgstr "Su variable de ambiente HOME es demasiado larga (>1024)\n" #~ msgid "W" #~ msgstr "S" #~ msgid "M" #~ msgstr "M" #~ msgid "This Event has no particular time" #~ msgstr "Este Evento no tiene una hora en particular" #~ msgid "Start Time" #~ msgstr "Tiempo de Inicio" #~ msgid "End Time" #~ msgstr "Tiempo de Fin" #~ msgid "email command empty\n" #~ msgstr "comando de correo vaco\n" #~ msgid "Unable to open %s%s file\n" #~ msgstr "No se puede abrir el fichero %s%s\n" #~ msgid "Unable to open %s.alarms file\n" #~ msgstr "No se puede abrir el fichero de alarmas %s.alarms\n" #~ msgid "You can't edit category %s.\n" #~ msgstr "No se puede editar la categora %s.\n" #~ msgid "You can't delete category %s.\n" #~ msgstr "No se puede borrar la categora %s.\n" #~ msgid "category name" #~ msgstr "nombre de categora" #~ msgid "debug" #~ msgstr "depurar" #, fuzzy #~ msgid "End Date: Never\n" #~ msgstr "Termina En La Fecha" #, fuzzy #~ msgid "Repeat Days: " #~ msgstr "se Repite en los Das:" #~ msgid "Close" #~ msgstr "Cerrar" #~ msgid "none" #~ msgstr "ninguno" #~ msgid "Unknown repeatType found in DatebookDB\n" #~ msgstr "Se encontr un repeatType desconocido en DatebookDB\n" #~ msgid "Dismiss" #~ msgstr "Descartar" #~ msgid "Done" #~ msgstr "Hecho" #~ msgid "Add" #~ msgstr "Agregar" #~ msgid "Remove" #~ msgstr "Remover" #~ msgid "User name" #~ msgstr "Nombre de usuario" #~ msgid " -v = version\n" #~ msgstr " -v = versin\n" #~ msgid " -h = help\n" #~ msgstr " -h = ayuda\n" #~ msgid " -d = run in debug mode\n" #~ msgstr " -d = ejecucin en modo de depuracin\n" #~ msgid " -P = do not load plugins.\n" #~ msgstr " -P = no carga plugins.\n" #~ msgid " -b = Do a sync and then a backup, otherwise just do a sync.\n" #~ msgstr "" #~ " -b = Hace una sincronizacin y despus un respaldo, de otra forma slo " #~ "sincroniza.\n" #~ msgid "Invalid geometry specification: \"%s\"\n" #~ msgstr "Especificacin de geometra invlida: \"%s\"\n" #~ msgid "/Help/PayBack program" #~ msgstr "/Ayuda/programa PayBack" #~ msgid "Font Selection Dialog" #~ msgstr "Dilogo de Seleccin de Tipo de Letra" #~ msgid "Show private records" #~ msgstr "Mostrar los registros privados" #~ msgid "Hide private records" #~ msgstr "Ocultar los registros privados" #~ msgid "Mask private records" #~ msgstr "Enmascarar los registros privados" #~ msgid "Font" #~ msgstr "Tipo de letra" #~ msgid "Go to the menu \"" #~ msgstr "Vaya al men \"" #~ msgid "\" and change the \"" #~ msgstr "\" y cambie el \"" #~ msgid "\"." #~ msgstr "\"." #~ msgid "Couldn't open PC records file\n" #~ msgstr "No se puede abrir el fichero de registros PC\n" #~ msgid "The first day of the week is " #~ msgstr "El primer da de la semana es " #~ msgid "One record" #~ msgstr "Un registro" #~ msgid "Finished\n" #~ msgstr "Terminado\n" #~ msgid "Last Username = [%s]\n" #~ msgstr "ltimo Nombre de Usuario = [%s]\n" #~ msgid "Last UserID = %d\n" #~ msgstr "ltimo ID de Usuario = %d\n" #~ msgid "Username = [%s]\n" #~ msgstr "Nombre de Usuario = [%s]\n" #~ msgid "userID = %d\n" #~ msgstr "ID de Usuario = %d\n" #~ msgid "number of records = %d\n" #~ msgstr "nmero de registros = %d\n" #~ msgid "palm: number of records = %d\n" #~ msgstr "palm: nmero de registros = %d\n" #~ msgid "disk: number of records = %d\n" #~ msgstr "disco: nmero de registros = %d\n" #, fuzzy #~ msgid "Your HOME environment variable is too long for me\n" #~ msgstr "Su variable de ambiente HOME es demasiado larga (>1024)\n" #~ msgid "" #~ "%s doesn't appear to be a directory.\n" #~ "I need it to be.\n" #~ msgstr "" #~ "Parece que %s no es un directorio.\n" #~ "Necesita serlo.\n" #, fuzzy #~ msgid "I can't write files in directory %s\n" #~ msgstr "No se puede crear el directorio %s\n" #~ msgid "Expense: Unknown category\n" #~ msgstr "Gastos: Categora desconocida\n" #~ msgid "Field" #~ msgstr "Campo" #~ msgid "Serial Port (/dev/ttyS0, /dev/pilot)" #~ msgstr "Puerto Serial (/dev/ttyS0, /dev/pilot)" #~ msgid "Directory" #~ msgstr "Directorio" #~ msgid "Overwrite File" #~ msgstr "Sobreescribir el Fichero" #~ msgid "Filename" #~ msgstr "Nombre de fichero" #~ msgid "kana(" #~ msgstr "kana(" #~ msgid "Quick View" #~ msgstr "Vista Rpida" #~ msgid "Answer: " #~ msgstr "Respuesta: " #~ msgid "Quit" #~ msgstr "Salir" #~ msgid "Help" #~ msgstr "Ayuda" #~ msgid "Sync" #~ msgstr "Sincronizar" #~ msgid "Serial Rate (Does not affect USB)" #~ msgstr "Tasa Serial (No afecta en USB)" #~ msgid "Sync memo32 (pedit32)" #~ msgstr "Sincronizar memo32 (pedit32)" #~ msgid " -p do not load plugins.\n" #~ msgstr " -p no carga plugins.\n" #~ msgid "AmEx" #~ msgstr "AmEx" #~ msgid "CreditCard" #~ msgstr "TarjetaCrdito" #~ msgid "MasterCard" #~ msgstr "MasterCard" #~ msgid "Copy the record Ctrl+O" #~ msgstr "Copiar el registro Ctrl+O" #~ msgid "Add a new record Ctrl+N" #~ msgstr "Agregar un registro nuevo Ctrl+N" #~ msgid "Add the new record Ctrl+Enter" #~ msgstr "Agregar el registro nuevo Ctrl+Entrar" #~ msgid "Commit the modifications Ctrl+Enter" #~ msgstr "Confirmar las modificaciones Ctrl+Entrar" #~ msgid "Backup" #~ msgstr "Respaldar" #~ msgid "OK, I will do it" #~ msgstr "OK, eso se har" #~ msgid "\n" #~ msgstr "\n" #~ msgid "" #~ " [-v] || [-h] || [-d] || [-a] || [-A] || [-i]\n" #~ " -v displays version and compile options and exits.\n" #~ " -h displays help and exits.\n" #~ " -d displays debug info to stdout.\n" #~ " -p do not load plugins.\n" #~ " -a ignore missed alarms since the last time this program was run.\n" #~ " -A ignore all alarms, past and future.\n" #~ " -i makes jpilot iconify itself upon launch\n" #~ " The PILOTPORT, and PILOTRATE env variables are used to specify\n" #~ " which port to sync on, and at what speed.\n" #~ " If PILOTPORT is not set then it defaults to /dev/pilot.\n" #~ msgstr "" #~ " [ [-v] || [-h] || [-d] || [-a] || [-A] || [-i]\n" #~ " -v muestra la versin y las opciones de compilacin y termina.\n" #~ " -h muestra la ayuda y termina.\n" #~ " -d muestra informacin de depuracin en la salida estndar.\n" #~ " -p no carga los plugins.\n" #~ " -a ignora las alarmas perdidas desde la ltima vez que se ejecut\n" #~ " este programa.\n" #~ " -A ignora todas las alarmas, pasadas y futuras.\n" #~ " -i hace que jpilot se iconifique despus de cargarse.\n" #~ " Las variables de ambiente PILOTPORT y PILOTRATE se utilizan para " #~ "especificar\n" #~ " en qu puerto se sincroniza, y a qu velocidad.\n" #~ " Si PILOTPORT no est definido entonces por omisin es /dev/pilot.\n" #~ msgid "Quit!" #~ msgstr "Salir!" #~ msgid "slow_sync_application(): Out of memory\n" #~ msgstr "slow_sync_application(): Memoria agotada\n" #~ msgid "dlp_WriteRecord failed\n" #~ msgstr "Fall dlp_WriteRecord\n" #~ msgid "" #~ "\n" #~ "Unable to open '%s'!\n" #~ msgstr "" #~ "\n" #~ "No se puede abrir '%s'!\n" #~ msgid "Cannot open %s_to_install file\n" #~ msgstr "No se puede abrir el fichero %s_to_install\n" #~ msgid "Cannot open %s_to_install.tmp file\n" #~ msgstr "No se puede abrir el fichero %s_to_install.tmp\n" #~ msgid "fast_sync_local_recs(): Out of memory\n" #~ msgstr "fast_sync_local_recs(): Memoria agotada\n" #~ msgid "Error reading at %s : %s %d\n" #~ msgstr "Error al leer de %s: %s %d\n" #~ msgid "Warning ToDo description too long, truncating to %d\n" #~ msgstr "" #~ "Aviso la descripcin de la Lista de Pendientes es demasiado larga, " #~ "truncando a %d\n" #~ msgid "Show Preferences" #~ msgstr "Mostrar Preferencias" #~ msgid "About Expense" #~ msgstr "Acerca de Gastos" #~ msgid "/Web/Netscape/%s" #~ msgstr "/Web/Netscape/%s" #~ msgid "/Web/Mozilla/%s" #~ msgstr "/Web/Mozilla/%s" #~ msgid "/Web/Galeon/%s" #~ msgstr "/Web/Galeon/%s" #~ msgid "/Web/Opera/%s" #~ msgstr "/Web/Opera/%s" #~ msgid "/Web/GnomeUrl/%s" #~ msgstr "/Web/GnomeUrl/%s" #~ msgid "/Web/Lynx/%s" #~ msgstr "/Web/Lynx/%s" #~ msgid "/Web/Links/%s" #~ msgstr "/Web/Links/%s" #~ msgid "/Web/W3M/%s" #~ msgstr "/Web/W3M/%s" #~ msgid "/Web/Konqueror/%s" #~ msgstr "/Web/Konqueror/%s" #~ msgid "Holland" #~ msgstr "Holanda" #~ msgid "U.K." #~ msgstr "G.B." #~ msgid "U.S.A." #~ msgstr "EE.UU." #~ msgid "Cannot open " #~ msgstr "No se puede abrir " #~ msgid "RTh" #~ msgstr "Ju" #~ msgid "Time:" #~ msgstr "Hora:" #~ msgid "Last Syned UserID-->\"%d\"\n" #~ msgstr "ltimo ID de Usuario Sincronizado-->\"%d\"\n" jpilot-1.8.1.2/po/de.po0000644000175000017500000025620611702307203011457 00000000000000# German translation for jpilot. # # Henrik Becker , 2001. # Felix Knecht , 2003. # Peter Mukunda Pasedach , 2006. msgid "" msgstr "" "Project-Id-Version: jpilot 0.99.6\n" "Report-Msgid-Bugs-To: jpilot-devel@jpilot.org\n" "POT-Creation-Date: 2012-01-08 13:39+0100\n" "PO-Revision-Date: 2006-03-26 04:07+0100\n" "Last-Translator: Peter Mukunda Pasedach \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.0.1\n" #: ../address.c:276 ../address.c:448 ../alarms.c:332 ../calendar.c:309 #: ../calendar.c:547 ../contact.c:324 ../contact.c:738 ../dat.c:189 #: ../dat.c:655 ../dat.c:859 ../dat.c:993 ../dat.c:1132 ../datebook.c:130 #: ../datebook.c:165 ../datebook.c:172 ../datebook.c:231 ../jpilot.c:1254 #: ../jpilot-merge.c:95 ../libplugin.c:208 ../libplugin.c:455 #: ../libplugin.c:534 ../libplugin.c:563 ../libplugin.c:811 ../memo.c:214 #: ../memo.c:287 ../otherconv.c:280 ../plugins.c:112 ../prefs.c:350 #: ../prefs.c:375 ../prefs.c:906 ../sync.c:2170 ../sync.c:2187 ../sync.c:2296 #: ../sync.c:2310 ../sync.c:2507 ../sync.c:2646 ../todo.c:236 ../todo.c:490 #: ../utils.c:748 #, c-format msgid "Out of memory" msgstr "" #: ../address.c:332 ../calendar.c:230 ../contact.c:580 ../datebook.c:494 #: ../memo.c:87 ../todo.c:90 #, fuzzy, c-format msgid "%s:%d Error reading application info %s\n" msgstr "%s:%d Fehler beim Lesen der Kategorieinfo %s\n" #: ../address.c:344 ../address_gui.c:2285 ../address_gui.c:2324 #: ../calendar.c:246 ../contact.c:596 ../datebook.c:514 ../datebook_gui.c:3737 #: ../libplugin.c:405 ../libplugin.c:431 ../memo.c:99 ../memo_gui.c:863 #: ../todo_gui.c:1070 ../Expense/expense.c:1105 #, fuzzy, c-format msgid "Error reading file: %s\n" msgstr "Fehler beim lesen von %s\n" #: ../address.c:492 ../calendar.c:598 ../calendar.c:607 ../contact.c:780 #: ../libplugin.c:846 ../memo.c:353 ../todo.c:302 ../utils.c:1124 #: ../utils.c:1131 ../utils.c:1138 ../utils.c:1145 ../utils.c:1152 #: ../utils.c:1159 msgid "error" msgstr "Fehler" #: ../address_gui.c:325 ../datebook_gui.c:2844 ../memo_gui.c:176 #: ../todo_gui.c:292 ../KeyRing/keyring.c:834 msgid "" "This record is deleted.\n" "Undelete it or copy it to make changes.\n" msgstr "" #: ../address_gui.c:452 ../address_gui.c:458 ../address_gui.c:469 #: ../address_gui.c:481 ../address_gui.c:493 ../address_gui.c:506 #, c-format msgid "%s%s: %s" msgstr "" #: ../address_gui.c:542 ../category.c:118 ../category.c:176 ../category.c:330 #: ../category.c:336 ../datebook_gui.c:430 ../jpilot-merge.c:88 #: ../jpilot-merge.c:146 ../jpilot-merge.c:151 ../memo_gui.c:280 #: ../sync.c:2129 ../sync.c:2135 ../sync.c:2481 ../sync.c:2842 #: ../todo_gui.c:416 ../utils.c:2674 ../utils.c:2711 ../utils.c:2717 #: ../utils.c:2776 ../utils.c:2782 ../utils.c:2836 ../utils.c:2890 #: ../utils.c:2896 ../utils.c:2954 ../utils.c:2961 #, fuzzy, c-format msgid "Unable to open file: %s\n" msgstr "Kann %s nicht ffnen\n" #: ../address_gui.c:561 #, fuzzy, c-format msgid "Unable to read file: %s\n" msgstr "Kann %s nicht ffnen\n" #: ../address_gui.c:715 msgid "File doesn't appear to be address.dat format\n" msgstr "Diese Datei scheint nicht im address.dat Format zu sein\n" #: ../address_gui.c:725 ../datebook_gui.c:647 ../memo_gui.c:324 #: ../memo_gui.c:417 ../todo_gui.c:542 ../Expense/expense.c:1384 msgid "Unfiled" msgstr "Nicht abgelegt" #: ../address_gui.c:781 ../datebook_gui.c:698 ../memo_gui.c:470 #: ../todo_gui.c:595 msgid "CSV (Comma Separated Values)" msgstr "" #: ../address_gui.c:782 msgid "DAT/ABA (Palm Archive Formats)" msgstr "" #. current category name #. previous category name #. entry text, in Pilot character set #: ../address_gui.c:868 ../category.c:408 ../datebook_gui.c:729 #: ../jpilot.c:234 ../jpilot.c:278 ../jpilot.c:352 ../jpilot.c:396 #: ../jpilot.c:953 ../memo_gui.c:506 ../todo_gui.c:635 ../utils.c:1305 #: ../KeyRing/keyring.c:2090 msgid "OK" msgstr "Ok" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "No" msgstr "Nein" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "Yes" msgstr "Ja" #: ../address_gui.c:888 ../datebook_gui.c:753 ../memo_gui.c:520 #: ../todo_gui.c:655 ../KeyRing/keyring.c:2104 #, c-format msgid "%s is a directory" msgstr "%s ist ein Verzeichnis" #: ../address_gui.c:890 ../address_gui.c:907 ../datebook_gui.c:755 #: ../datebook_gui.c:772 ../memo_gui.c:522 ../memo_gui.c:539 ../todo_gui.c:657 #: ../todo_gui.c:674 ../KeyRing/keyring.c:2106 ../KeyRing/keyring.c:2123 msgid "Error Opening File" msgstr "Fehler beim ffnen der Datei" #: ../address_gui.c:894 ../datebook_gui.c:759 ../memo_gui.c:526 #: ../todo_gui.c:661 ../KeyRing/keyring.c:2110 #, c-format msgid "Do you want to overwrite file %s?" msgstr "Wollen Sie die Datei %s berschreiben?" #: ../address_gui.c:896 ../datebook_gui.c:761 ../memo_gui.c:528 #: ../todo_gui.c:663 ../KeyRing/keyring.c:2112 msgid "Overwrite File?" msgstr "Datei berschreiben?" #: ../address_gui.c:905 ../datebook_gui.c:770 ../memo_gui.c:537 #: ../todo_gui.c:672 ../KeyRing/keyring.c:2121 #, fuzzy, c-format msgid "Error opening file: %s" msgstr "Fehler beim ffnen der Datei" #: ../address_gui.c:922 #, c-format msgid "" "Address exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:925 #, c-format msgid "" "Contact exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:989 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ldif file may not be standards-compliant\n" msgstr "" #: ../address_gui.c:1002 #, c-format msgid "Can't export address %d\n" msgstr "" #: ../address_gui.c:1008 ../memo_gui.c:630 ../todo_gui.c:760 #, fuzzy, c-format msgid "Category: %s\n" msgstr "Kategorie:" #: ../address_gui.c:1010 ../memo_gui.c:632 ../todo_gui.c:763 #, fuzzy, c-format msgid "Private: %s\n" msgstr "Privat" #: ../address_gui.c:1018 ../address_gui.c:1032 ../address_gui.c:1036 #: ../address_gui.c:1045 ../address_gui.c:1048 #, c-format msgid "%s: " msgstr "" #: ../address_gui.c:1022 #, c-format msgid "%s\n" msgstr "" #. E-mail should be the Palm dropdown menu item for email #. Set dial/email button text and callback data #: ../address_gui.c:1196 ../address_gui.c:2846 ../address_gui.c:4185 msgid "E-mail" msgstr "E-Mail" #: ../address_gui.c:1482 ../datebook_gui.c:1147 ../memo_gui.c:640 #: ../todo_gui.c:844 ../KeyRing/keyring.c:2214 msgid "Unknown export type\n" msgstr "" #: ../address_gui.c:1508 ../datebook_gui.c:1226 ../memo_gui.c:469 #: ../memo_gui.c:666 ../todo_gui.c:870 ../KeyRing/keyring.c:2229 msgid "Text" msgstr "" #: ../address_gui.c:1509 ../datebook_gui.c:1227 ../memo_gui.c:667 #: ../todo_gui.c:871 ../KeyRing/keyring.c:2229 msgid "CSV" msgstr "" #: ../address_gui.c:1510 msgid "vCard" msgstr "" #: ../address_gui.c:1511 msgid "vCard (Optimized for Gmail/Android Import)" msgstr "" #: ../address_gui.c:1512 msgid "ldif" msgstr "" #. Initialize variable if default case taken #: ../address_gui.c:1777 ../address_gui.c:3902 #, fuzzy msgid "Last Name/Company" msgstr "Name/Firma" #: ../address_gui.c:1780 ../address_gui.c:3905 #, fuzzy msgid "First Name/Company" msgstr "Name/Firma" #: ../address_gui.c:1783 ../address_gui.c:3908 #, fuzzy msgid "Company/Last Name" msgstr "Firma/Name" #: ../address_gui.c:1920 ../datebook_gui.c:2907 ../memo_gui.c:1036 #: ../todo_gui.c:1329 ../KeyRing/keyring.c:1181 msgid "You can't modify a record that is deleted\n" msgstr "" #. Illegal category, Assume that category 0 is Unfiled and valid #: ../address_gui.c:2119 ../address_gui.c:2370 ../address_gui.c:2803 #: ../address_gui.c:2809 ../address_gui.c:3601 ../datebook_gui.c:1994 #: ../datebook_gui.c:3434 ../datebook_gui.c:3783 ../datebook_gui.c:4074 #: ../memo_gui.c:900 ../memo_gui.c:946 ../memo_gui.c:1161 ../memo_gui.c:1548 #: ../todo_gui.c:1106 ../todo_gui.c:1200 ../todo_gui.c:1589 ../todo_gui.c:2141 #: ../Expense/expense.c:689 ../Expense/expense.c:1143 #: ../Expense/expense.c:1227 ../Expense/expense.c:1887 #: ../KeyRing/keyring.c:1070 ../KeyRing/keyring.c:1512 #: ../KeyRing/keyring.c:1574 ../KeyRing/keyring.c:2688 msgid "Category is not legal\n" msgstr "" #: ../address_gui.c:2179 ../alarms.c:598 ../dialer.c:164 #, fuzzy, c-format msgid "executing command = [%s]\n" msgstr "Diesen Befehl ausfhren" #: ../address_gui.c:2181 #, fuzzy, c-format msgid "Failed to execute [%s]\n" msgstr "Kann Datei %s nicht erzeugen\n" #: ../address_gui.c:2425 msgid "Birthday" msgstr "" #: ../address_gui.c:2521 msgid "External program not found, or other error" msgstr "" #: ../address_gui.c:2523 msgid "" "J-Pilot can not find the external program \"convert\"\n" "or an error occurred while executing convert.\n" "You may need to install package ImageMagick" msgstr "" #: ../address_gui.c:2524 #, c-format msgid "Command executed was \"%s\"\n" msgstr "" #: ../address_gui.c:2525 #, c-format msgid "return code was %d\n" msgstr "" #: ../address_gui.c:2603 #, fuzzy msgid "chdir() failed\n" msgstr "Fehlgeschlagen.\n" #: ../address_gui.c:2606 msgid "Add Photo" msgstr "" #. Category menu #: ../address_gui.c:2828 ../KeyRing/keyring.c:2585 msgid "Category: " msgstr "Kategorie:" #: ../address_gui.c:2848 ../address_gui.c:4186 #, fuzzy msgid "Mail" msgstr "Brasilien" #. Dial Phone Button #: ../address_gui.c:2851 ../address_gui.c:4189 ../dialer.c:307 ../dialer.c:331 msgid "Dial" msgstr "Whlen" #: ../address_gui.c:3041 ../datebook_gui.c:2757 ../memo_gui.c:1228 #: ../todo_gui.c:1697 msgid "Could not get temporary file name\n" msgstr "" #: ../address_gui.c:3049 ../datebook_gui.c:2765 ../memo_gui.c:1236 #: ../todo_gui.c:1705 msgid "Could not open temporary file for external editor\n" msgstr "" #: ../address_gui.c:3089 ../datebook_gui.c:2806 ../memo_gui.c:1277 #: ../todo_gui.c:1746 msgid "Could not open temporary file from external editor\n" msgstr "" #: ../address_gui.c:3261 ../address_gui.c:3292 msgid "-Unnamed-" msgstr "-Unbenannt-" #: ../address_gui.c:3374 ../memo_gui.c:1454 ../todo_gui.c:2019 msgid "0 records" msgstr "0 Eintrge" #: ../address_gui.c:3377 ../datebook_gui.c:2637 ../memo_gui.c:1457 #: ../todo_gui.c:2022 #, c-format msgid "%d of %d records" msgstr "%d von %d Eintrgen" #: ../address_gui.c:3772 ../address_gui.c:3780 ../KeyRing/keyring.c:2498 msgid "Name" msgstr "Name" #: ../address_gui.c:3773 ../address_gui.c:3774 ../address_gui.c:3775 #: ../address_gui.c:3781 msgid "Address" msgstr "Adresse" #: ../address_gui.c:3776 ../address_gui.c:3782 ../Expense/expense.c:584 #: ../Expense/expense.c:1405 msgid "Other" msgstr "Sonstige" #. Note textbox #: ../address_gui.c:3777 ../address_gui.c:3783 ../todo_gui.c:2484 #: ../Expense/expense.c:1836 ../KeyRing/keyring.c:2632 msgid "Note" msgstr "Notiz" #: ../address_gui.c:3793 msgid "Reverting to Address database\n" msgstr "" #: ../address_gui.c:3914 msgid "Phone" msgstr "Telefon" #: ../address_gui.c:3946 msgid "Quick Find: " msgstr "Schnellsuche : " #. Cancel button #. Add record modification buttons #. Cancel button #: ../address_gui.c:3964 ../category.c:409 ../datebook_gui.c:1782 #: ../datebook_gui.c:5124 ../memo_gui.c:1692 ../todo_gui.c:2345 #: ../utils.c:1346 ../KeyRing/keyring.c:2528 msgid "Cancel" msgstr "Abbrechen" #: ../address_gui.c:3964 ../datebook_gui.c:5124 ../memo_gui.c:1692 #: ../todo_gui.c:2345 ../KeyRing/keyring.c:2528 #, fuzzy msgid "Cancel the modifications" msgstr "Kompiliert mit folgenden Optionen:" #. Delete Button #. Delete button #. Delete Button #. Delete button #. Delete, Copy, New, etc. buttons #. Delete button #: ../address_gui.c:3969 ../category.c:409 ../category.c:852 #: ../datebook_gui.c:5129 ../memo_gui.c:1697 ../todo_gui.c:2350 #: ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete" msgstr "Lschen" #: ../address_gui.c:3969 ../datebook_gui.c:5129 ../memo_gui.c:1697 #: ../todo_gui.c:2350 ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 #, fuzzy msgid "Delete the selected record" msgstr "Einen %s-Eintrag gelscht." #. Undelete Button #. Undelete button #. Undelete Button #. Undelete button #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 #, fuzzy msgid "Undelete" msgstr "Lschen" #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 #, fuzzy msgid "Undelete the selected record" msgstr "Einen %s-Eintrag gelscht." #. Copy button #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy" msgstr "Kopieren" #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 #, fuzzy msgid "Copy the selected record" msgstr "Eintrag hinzufgen" #. New button #. New Record button #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "New Record" msgstr "Neuer Eintrag" #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 #, fuzzy msgid "Add a new record" msgstr "Eintrag hinzufgen" #. "Add Record" button #. Add Record button #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add Record" msgstr "Eintrag hinzufgen" #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 #, fuzzy msgid "Add the new record" msgstr "Eintrag hinzufgen" #. "Apply Changes" button #. Apply Changes button #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Apply Changes" msgstr "nderungen bernehmen" #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 #, fuzzy msgid "Commit the modifications" msgstr "Kompiliert mit folgenden Optionen:" #. Private check box #. Private checkbox #: ../address_gui.c:4033 ../datebook_gui.c:5191 ../datebook_gui.c:5233 #: ../memo_gui.c:1747 ../todo_gui.c:2410 msgid "Private" msgstr "Privat" #: ../address_gui.c:4118 #, fuzzy msgid "Change Photo" msgstr "Abbrechen" #: ../address_gui.c:4123 #, fuzzy msgid "Remove Photo" msgstr "Entfernen" #: ../address_gui.c:4195 #, fuzzy msgid "Show In List" msgstr "" "Zeige\n" "In Liste" #: ../address_gui.c:4296 #, fuzzy msgid "Reminder" msgstr "Erinnere mich in" #: ../address_gui.c:4312 ../datebook_gui.c:238 ../datebook_gui.c:5221 #: ../datebook_gui.c:5378 msgid "Days" msgstr "Tage" #. The Quickview (ALL) page #. All button #: ../address_gui.c:4356 ../datebook_gui.c:1478 ../datebook_gui.c:1782 #: ../utils.c:2528 msgid "All" msgstr "Alle" #: ../alarms.c:232 ../datebook_gui.c:236 ../datebook_gui.c:5215 #: ../datebook_gui.c:5372 msgid "Minutes" msgstr "Minuten" #: ../alarms.c:234 ../datebook_gui.c:237 ../datebook_gui.c:5219 #: ../datebook_gui.c:5376 msgid "Hours" msgstr "Stunden" #: ../alarms.c:255 msgid "Remind me" msgstr "Erinnere mich in" #: ../alarms.c:425 ../alarms.c:991 ../sync.c:1639 ../sync.c:1645 #: ../utils.c:3717 #, fuzzy, c-format msgid "Unable to open file: %s%s\n" msgstr "Kann %s nicht ffnen\n" #: ../alarms.c:512 msgid "Appointment Reminder" msgstr "Terminerinnerung" #: ../alarms.c:515 msgid "Past Appointment" msgstr "Verstrichener Termin" #: ../alarms.c:518 msgid "Postponed Appointment" msgstr "Verschobener Termin" #: ../alarms.c:521 ../datebook_gui.c:5025 msgid "Appointment" msgstr "Termin" #: ../alarms.c:605 msgid "J-Pilot Alarm" msgstr "" #: ../category.c:131 ../category.c:188 ../sync.c:2158 ../sync.c:2495 msgid "PC file corrupt?\n" msgstr "PC-Datei beschdigt?\n" #: ../category.c:138 ../category.c:148 ../category.c:196 ../category.c:206 #: ../category.c:216 ../sync.c:2280 ../sync.c:2334 ../sync.c:2371 #: ../sync.c:2386 ../sync.c:2410 ../sync.c:2630 ../sync.c:2675 ../sync.c:2712 #: ../sync.c:2725 ../sync.c:2750 msgid "fseek failed - fatal error\n" msgstr "fseek fehlgeschlagen - schwerer Fehler\n" #: ../category.c:364 ../utils.c:2738 ../utils.c:2812 ../utils.c:2916 #: ../utils.c:2981 #, fuzzy msgid "rename failed" msgstr "Installation von %s fehlgeschlagen" #: ../category.c:409 msgid "Move" msgstr "Verschiebe" #: ../category.c:438 ../category.c:500 ../category.c:580 ../category.c:769 msgid "Edit Categories" msgstr "Kategorien editieren" #: ../category.c:439 msgid "The maximum number of categories (16) are already used" msgstr "Die maximal Katergorienzahl (16) wird schon verwendet" #: ../category.c:442 msgid "Enter New Category" msgstr "Neue Kategorie eingeben" #: ../category.c:453 ../category.c:477 #, fuzzy msgid "Edit Categories Error" msgstr "Kategorien editieren" #: ../category.c:454 msgid "You must select a category to rename" msgstr "Zum Umbenennen muss eine Katergorie selektiert sein" #: ../category.c:463 msgid "Enter New Category Name" msgstr "Neuer Kategoriename" #: ../category.c:478 msgid "You must select a category to delete" msgstr "Zum Lschen muss eine Katergorie selektiert sein" #: ../category.c:496 #, c-format msgid "" "There are %d records in %s.\n" "Do you want to move them to %s, or delete them?" msgstr "" "%d Eintrge in %s.\n" "Mchten sie die Eintrge nach %s verschieben oder lschen?" #: ../category.c:556 #, c-format msgid "invalid state file %s line %d\n" msgstr "" #: ../category.c:578 #, c-format msgid "The category %s can't be used more than once" msgstr "Die Kategorie %s kann nur einmal verwendet werden" #. Category names in host character set #: ../category.c:735 #, fuzzy msgid "Category" msgstr "Kategorie:" #: ../category.c:836 msgid "New" msgstr "Neu" #: ../category.c:843 msgid "Rename" msgstr "Umbenennen" #: ../dat.c:456 msgid "unknown type =" msgstr "" #: ../dat.c:537 #, c-format msgid "fields per row count != %d, unknown format\n" msgstr "" #: ../dat.c:551 #, c-format msgid "field count != %d, unknown format\n" msgstr "" #: ../dat.c:559 msgid "Unknown format, file has wrong schema\n" msgstr "" #: ../dat.c:560 msgid "File schema is:" msgstr "" #: ../dat.c:564 msgid "It should be:" msgstr "" #: ../dat.c:674 ../dat.c:692 ../dat.c:876 ../dat.c:889 ../dat.c:1012 #: ../dat.c:1025 ../dat.c:1149 ../dat.c:1162 #, c-format msgid "%s:%d Record %d, field %d: Invalid type. Expected %d, found %d\n" msgstr "" #: ../dat.c:675 ../dat.c:693 ../dat.c:877 ../dat.c:890 ../dat.c:994 #: ../dat.c:1013 ../dat.c:1026 ../dat.c:1150 ../dat.c:1163 msgid "read of file terminated\n" msgstr "" #: ../datebook.c:705 ../datebook_gui.c:3648 #, c-format msgid "Unknown repeatType (%d) found in DatebookDB\n" msgstr "" #: ../datebook_gui.c:241 #, fuzzy msgid "Repeat Never" msgstr "Wiederholung an:" #: ../datebook_gui.c:242 #, fuzzy msgid "Repeat Daily" msgstr "Wochentage fr Wiederholung:" #: ../datebook_gui.c:243 #, fuzzy msgid "Repeat Weekly" msgstr "Wiederholung an:" #: ../datebook_gui.c:244 #, fuzzy msgid "Repeat MonthlyByDay" msgstr "Wochentage fr Wiederholung:" #: ../datebook_gui.c:245 #, fuzzy msgid "Repeat MonthlyByDate" msgstr "Wochentage fr Wiederholung:" #: ../datebook_gui.c:246 msgid "Repeat YearlyDate" msgstr "" #: ../datebook_gui.c:247 #, fuzzy msgid "Repeat YearlyDay" msgstr "Wochentage fr Wiederholung:" # These days of the week are put in the buttons above the calendar and # the little buttons in the repeat weekly window. # They should be one letter if possible. The English ones get truncated to # one letter. #: ../datebook_gui.c:250 ../datebook_gui.c:257 ../datebook_gui.c:4803 #: ../datebook_gui.c:4810 msgid "Su" msgstr "So" #: ../datebook_gui.c:251 ../datebook_gui.c:4804 msgid "Mo" msgstr "Mo" #: ../datebook_gui.c:252 ../datebook_gui.c:4805 msgid "Tu" msgstr "Di" #: ../datebook_gui.c:253 ../datebook_gui.c:4806 msgid "We" msgstr "Mi" #: ../datebook_gui.c:254 ../datebook_gui.c:4807 msgid "Th" msgstr "Do" #: ../datebook_gui.c:255 ../datebook_gui.c:4808 msgid "Fr" msgstr "Fr" #: ../datebook_gui.c:256 ../datebook_gui.c:4809 msgid "Sa" msgstr "Sa" #: ../datebook_gui.c:269 #, c-format msgid "" "Start Date: %s\n" "Time: Event" msgstr "" #: ../datebook_gui.c:277 #, c-format msgid "" "Start Date: %s\n" "Time: %s to %s" msgstr "" #: ../datebook_gui.c:287 ../datebook_gui.c:297 msgid "Unknown" msgstr "" #. End Date #: ../datebook_gui.c:300 #, fuzzy msgid "End Date: " msgstr "Enddatum" #: ../datebook_gui.c:302 msgid "Never" msgstr "" #: ../datebook_gui.c:308 #, c-format msgid "Repeat Frequency: %d\n" msgstr "" #: ../datebook_gui.c:316 #, c-format msgid "Monthly Repeat Day %d\n" msgstr "" #: ../datebook_gui.c:321 ../datebook_gui.c:5520 msgid "Repeat on Days:" msgstr "Wochentage fr Wiederholung:" #: ../datebook_gui.c:332 #, fuzzy, c-format msgid "Number of exceptions: %d" msgstr "Anzahl der Eintrge: %d\n" #: ../datebook_gui.c:338 msgid "" "\n" "more..." msgstr "" #: ../datebook_gui.c:359 ../datebook_gui.c:386 msgid "Description:" msgstr "" #: ../datebook_gui.c:360 ../datebook_gui.c:387 #, fuzzy msgid "Note:" msgstr "Notiz" #: ../datebook_gui.c:362 ../datebook_gui.c:390 #, fuzzy msgid "Alarm:" msgstr "Alarm" #: ../datebook_gui.c:363 ../datebook_gui.c:391 #, fuzzy msgid "Repeat Type:" msgstr "Wiederholung an:" #: ../datebook_gui.c:366 ../datebook_gui.c:394 #, fuzzy msgid "Start of Week:" msgstr "Wochentag" #: ../datebook_gui.c:388 ../datebook_gui.c:5343 msgid "Location:" msgstr "" #: ../datebook_gui.c:620 ../datebook_gui.c:2271 #, c-format msgid "Appointment description text > %d, truncating to %d\n" msgstr "Termin-Beschreibung ist zu lang, %d wurde auf %d abgeschnitten.\n" #: ../datebook_gui.c:631 ../datebook_gui.c:1148 ../datebook_gui.c:2331 #: ../datebook_gui.c:2338 msgid "Error" msgstr "Fehler" #: ../datebook_gui.c:632 msgid "File doesn't appear to be datebook.dat format\n" msgstr "Diese Datei scheint nicht im datebook.dat Format zu sein.\n" #: ../datebook_gui.c:699 msgid "DAT/DBA (Palm Archive Formats)" msgstr "" #: ../datebook_gui.c:787 #, c-format msgid "" "Datebook exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:790 #, c-format msgid "" "Calendar exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:817 ../todo_gui.c:701 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ical file may not be standards-compliant\n" msgstr "" #: ../datebook_gui.c:1148 msgid "Unknown export type" msgstr "" #: ../datebook_gui.c:1228 ../todo_gui.c:872 msgid "iCalendar" msgstr "" #: ../datebook_gui.c:1240 ../export_gui.c:251 ../jpilot.c:429 msgid "Export" msgstr "Exportieren" #. Label for instructions #: ../datebook_gui.c:1257 msgid "Export All Datebook Records" msgstr "Alle Terminplanereintrge exportieren" #: ../datebook_gui.c:1276 ../export_gui.c:316 msgid "Save as" msgstr "Speichern unter" #. Browse button #: ../datebook_gui.c:1286 ../export_gui.c:329 msgid "Browse" msgstr "Durchsuchen" #: ../datebook_gui.c:1432 #, fuzzy msgid "Datebook Categories" msgstr "Kategorien editieren" #. None button #. Labels for notebook tabs #: ../datebook_gui.c:1484 ../datebook_gui.c:2026 ../datebook_gui.c:5449 msgid "None" msgstr "Keine" #: ../datebook_gui.c:1633 msgid "Begin On Date" msgstr "Startdatum" #: ../datebook_gui.c:1639 msgid "End On Date" msgstr "Enddatum" #: ../datebook_gui.c:1751 ../prefs.c:451 msgid "Sunday" msgstr "Sonntag" #: ../datebook_gui.c:1752 ../prefs.c:452 msgid "Monday" msgstr "Montag" #: ../datebook_gui.c:1753 msgid "Tuesday" msgstr "Dienstag" #: ../datebook_gui.c:1754 msgid "Wednesday" msgstr "Mittwoch" #: ../datebook_gui.c:1755 msgid "Thursday" msgstr "Donnerstag" #: ../datebook_gui.c:1756 msgid "Friday" msgstr "Freitag" #: ../datebook_gui.c:1757 msgid "Saturday" msgstr "Samstag" #: ../datebook_gui.c:1760 msgid "4th" msgstr "4." #: ../datebook_gui.c:1760 msgid "Last" msgstr "Letzter" #: ../datebook_gui.c:1763 #, c-format msgid "" "This appointment can either\n" "repeat on the 4th %s\n" "of the month, or on the last\n" "%s of the month.\n" "Which do you want?" msgstr "" #: ../datebook_gui.c:1770 ../datebook_gui.c:1786 msgid "Question?" msgstr "" #: ../datebook_gui.c:1777 #, fuzzy msgid "" "This is a repeating event.\n" "Do you want to apply these changes to\n" "only the CURRENT event,\n" "just FUTURE events, or\n" "ALL of the occurrences of this event?" msgstr "" "Dies ist ein sich wiederholender\n" "Termin. Sollen sich die nderungen\n" "nur auf den AKTUELLEN oder auf\n" "ALLE Terminsereignisse beziehen?" #: ../datebook_gui.c:1782 msgid "Current" msgstr "Aktueller" #: ../datebook_gui.c:1782 msgid "Future" msgstr "" #: ../datebook_gui.c:2027 msgid "day" msgstr "Tag" #: ../datebook_gui.c:2028 msgid "week" msgstr "Woche" #: ../datebook_gui.c:2029 msgid "month" msgstr "Monat" #: ../datebook_gui.c:2030 msgid "year" msgstr "Jahr" #: ../datebook_gui.c:2326 ../datebook_gui.c:2329 #, c-format msgid "You cannot have an appointment that repeats every %d %s(s)\n" msgstr "Eine Wiederholung alle %d %s(e) ist nicht mglich \n" #: ../datebook_gui.c:2339 #, fuzzy msgid "" "You cannot have a weekly repeating appointment that doesn't repeat on any " "day of the week." msgstr "Wchentliche Wiederholung nicht mglich, wenn kein Tag gewhlt ist." #. This is a timeless event #: ../datebook_gui.c:2516 ../datebook_gui.c:5264 msgid "No Time" msgstr "Keine Uhrzeit" #: ../datebook_gui.c:2788 ../memo_gui.c:1259 ../todo_gui.c:1728 msgid "External editor command too long to execute\n" msgstr "" #: ../datebook_gui.c:2943 msgid "Invalid Appointment" msgstr "Ungltiger Termin" #: ../datebook_gui.c:2944 msgid "" "The End Date of this appointment\n" "is before the start date." msgstr "" "Das Enddatum dieses Termins\n" "liegt vor den Startdatum." #. "No Date" check box #: ../datebook_gui.c:3339 ../datebook_gui.c:5482 ../datebook_gui.c:5513 #: ../datebook_gui.c:5565 ../datebook_gui.c:5613 ../todo_gui.c:142 #: ../todo_gui.c:2454 msgid "No Date" msgstr "Kein Flligkeitsdatum" #: ../datebook_gui.c:3494 #, c-format msgid "Error in DateBookDB or Calendar advanceUnits = %d\n" msgstr "" #: ../datebook_gui.c:3681 #, c-format msgid "%%a., %s" msgstr "" #: ../datebook_gui.c:3686 msgid " (TODAY)" msgstr "" #. Weekview button #: ../datebook_gui.c:4934 ../datebook_gui.c:5451 msgid "Week" msgstr "Woche" #: ../datebook_gui.c:4943 msgid "View appointments by week Ctrl+W" msgstr "" #. Monthview button #: ../datebook_gui.c:4946 ../datebook_gui.c:5452 msgid "Month" msgstr "Monat" #: ../datebook_gui.c:4955 msgid "View appointments by month Ctrl+M" msgstr "" #. Make Category button #: ../datebook_gui.c:4960 msgid "Cats" msgstr "Kategorien" #: ../datebook_gui.c:5024 msgid "Time" msgstr "Zeit" #. "Show ToDos" button #: ../datebook_gui.c:5067 msgid "Show ToDos" msgstr "Zeige Aufgaben" #: ../datebook_gui.c:5081 ../todo_gui.c:2285 msgid "Task" msgstr "Aufgabe" #: ../datebook_gui.c:5082 ../todo_gui.c:2286 msgid "Due" msgstr "Flligkeit" #: ../datebook_gui.c:5201 ../datebook_gui.c:5358 msgid "Alarm" msgstr "Alarm" #. Date Spinners #: ../datebook_gui.c:5241 ../Expense/expense.c:1736 #, fuzzy msgid "Date:" msgstr "Datum" #. Start date and time #: ../datebook_gui.c:5283 #, fuzzy msgid "Start" msgstr "Beginn" #. End date and time #: ../datebook_gui.c:5300 #, fuzzy msgid "End" msgstr "Endet am" #: ../datebook_gui.c:5433 msgid "DateBk Tags" msgstr "DateBk Felder" #: ../datebook_gui.c:5450 msgid "Day" msgstr "Tag" # msgid "WeekView" # msgstr "Woche" # msgid "MonthView" # msgstr "Monat" #: ../datebook_gui.c:5453 msgid "Year" msgstr "Jahr" #. "No Repeat" page for notebook #: ../datebook_gui.c:5456 msgid "This event will not repeat" msgstr "Keine Wiederholung des Termins" #: ../datebook_gui.c:5465 ../datebook_gui.c:5498 ../datebook_gui.c:5550 #: ../datebook_gui.c:5596 msgid "Frequency is Every" msgstr "Wiederholung alle/jeden" #: ../datebook_gui.c:5471 msgid "Day(s)" msgstr "Tag(e)" #: ../datebook_gui.c:5474 ../datebook_gui.c:5507 ../datebook_gui.c:5559 #: ../datebook_gui.c:5605 msgid "End on" msgstr "Endet am" #: ../datebook_gui.c:5504 msgid "Week(s)" msgstr "Woche(n)" #: ../datebook_gui.c:5556 msgid "Month(s)" msgstr "Monat(e)" #: ../datebook_gui.c:5573 msgid "Repeat by:" msgstr "Wiederholung an:" #: ../datebook_gui.c:5577 msgid "Day of week" msgstr "Wochentag" #: ../datebook_gui.c:5586 ../Expense/expense.c:1618 msgid "Date" msgstr "Datum" #: ../datebook_gui.c:5602 msgid "Year(s)" msgstr "Jahr(e)" #: ../dialer.c:195 msgid "Phone Dialer" msgstr "Whlprogramm" #: ../dialer.c:230 msgid "Prefix 1" msgstr "Prefix 1" #: ../dialer.c:252 msgid "Prefix 2" msgstr "Prefix 2" #: ../dialer.c:274 msgid "Prefix 3" msgstr "Prefix 3" #: ../dialer.c:289 msgid "Phone number:" msgstr "Telefonnummer" #: ../dialer.c:319 msgid "Extension" msgstr "Erweiterung" #: ../dialer.c:341 msgid "Dial Command" msgstr "Whl-Befehl" #: ../export_gui.c:121 msgid "File Browser" msgstr "Dateibrowser" #. Label for instructions #: ../export_gui.c:273 msgid "Select records to be exported" msgstr "Zu exportierende Eintrge auswhlen" #: ../export_gui.c:275 msgid "Use Ctrl and Shift Keys" msgstr "Benutzen Sie die Strg- und Shift-Tasten" #. Import button #: ../import_gui.c:300 ../import_gui.c:369 ../import_gui.c:426 #: ../import_gui.c:471 ../jpilot.c:385 msgid "Import" msgstr "Importieren" #: ../import_gui.c:317 #, c-format msgid "Record was marked as private" msgstr "Dieser Eintrag ist als privater markiert" #: ../import_gui.c:319 #, c-format msgid "Record was not marked as private" msgstr "Dieser Eintrag ist nicht als privater markiert" #: ../import_gui.c:328 #, c-format msgid "Category before import was: [%s]" msgstr "" #: ../import_gui.c:336 #, fuzzy, c-format msgid "Record will be put in category [%s]" msgstr "Alle Eintrge in dieser Kategorie" #. Import All button #: ../import_gui.c:376 msgid "Import All" msgstr "Alle importieren" #. Skip button #: ../import_gui.c:383 msgid "Skip" msgstr "berspringen" #: ../import_gui.c:457 ../install_gui.c:429 msgid "To change to a hidden directory type it below and hit TAB" msgstr "" "Um ein verstecktes Verzeichnis aufzurufen, Namen eintippen und Tabulator-" "Taste drcken." #: ../import_gui.c:484 msgid "Import File Type" msgstr "Import-Dateiformat" #: ../install_gui.c:366 #, fuzzy msgid "Files to install" msgstr "Zu installierende Dateien" #: ../install_gui.c:374 msgid "Install" msgstr "Installieren" #: ../install_user.c:118 ../install_user.c:220 #, fuzzy msgid "Install User" msgstr "/Datei/Benutzer Installieren" #: ../install_user.c:139 msgid "" "A PalmOS(c) device needs a user name and a user ID in order to sync properly." msgstr "" #: ../install_user.c:146 msgid "" "If you want to sync more than 1 PalmOS(c) device each one should have a " "different ID and preferably a different user name." msgstr "" #. Instruction label #: ../install_user.c:168 msgid "Most people choose their name or nickname for the user name." msgstr "" #: ../install_user.c:176 ../restore_gui.c:278 msgid "User Name" msgstr "Benutzername" #: ../install_user.c:186 msgid "The ID should be a random number." msgstr "" #: ../install_user.c:194 ../restore_gui.c:297 msgid "User ID" msgstr "BenutzerID" #: ../jpilot.c:319 msgid "Print" msgstr "Drucken" #: ../jpilot.c:320 msgid "There is no print support for this conduit." msgstr "Drucken aus diesem Conduit nicht mglich." #: ../jpilot.c:386 msgid "There is no import support for this conduit." msgstr "Importieren in dieses Conduit nicht mglich." #: ../jpilot.c:430 msgid "There is no export support for this conduit." msgstr "Exportieren aus diesem Conduit nicht mglich." #: ../jpilot.c:659 #, fuzzy msgid " Cancelling HotSync\n" msgstr "Abgleich abbrechen" #. ------------------------------------------- #: ../jpilot.c:675 msgid "" "This handheld does not have the same user name or user ID\n" "as the one that was synced the last time.\n" "Syncing could have unwanted effects including data loss.\n" "\n" "Read the user manual if you are uncertain." msgstr "" #. ------------------------------------------- #: ../jpilot.c:682 msgid "" "This handheld has a NULL user ID.\n" "Every handheld must have a unique user ID in order to sync properly.\n" "If the handheld has been hard reset, \n" " use restore from the menu to restore it.\n" "Otherwise, to add a new user name and ID\n" " use install-user from the menu.\n" "\n" "Read the user manual if you are uncertain." msgstr "" #: ../jpilot.c:690 msgid "Cancel Sync" msgstr "Abgleich abbrechen" #: ../jpilot.c:690 msgid "Sync Anyway" msgstr "Trotzdem synchronisieren" #: ../jpilot.c:699 ../jpilot.c:703 #, fuzzy msgid "Sync Problem" msgstr "Merkzettel synchronisieren" #: ../jpilot.c:932 ../jpilot.c:1785 #, fuzzy msgid " User: " msgstr "BenutzerID" #: ../jpilot.c:944 msgid "Unknown command from sync process\n" msgstr "" #: ../jpilot.c:963 ../Expense/expense.c:529 ../KeyRing/keyring.c:1872 #: ../SyncTime/synctime.c:61 #, c-format msgid "About %s" msgstr "ber %s" #: ../jpilot.c:1105 msgid "/_File" msgstr "/_Datei" #: ../jpilot.c:1106 msgid "/File/tear" msgstr "/Datei/Abreissen" #: ../jpilot.c:1107 msgid "/File/_Find" msgstr "/Datei/_Suchen" #: ../jpilot.c:1108 ../jpilot.c:1114 ../jpilot.c:1117 msgid "/File/sep1" msgstr "/Datei/sep1" #: ../jpilot.c:1109 msgid "/File/_Install" msgstr "/Datei/_Installieren" #: ../jpilot.c:1110 msgid "/File/Import" msgstr "/Datei/I_mportieren" #: ../jpilot.c:1111 msgid "/File/Export" msgstr "/Datei/_Exportieren" #: ../jpilot.c:1112 ../jpilot.c:2190 msgid "/File/Preferences" msgstr "/Datei/Ei_nstellungen" #: ../jpilot.c:1113 msgid "/File/_Print" msgstr "/Datei/_Drucken" #: ../jpilot.c:1115 msgid "/File/Install User" msgstr "/Datei/Benutzer Installieren" #: ../jpilot.c:1116 msgid "/File/Restore Handheld" msgstr "/Datei/Pilot _wiederherstellen" #: ../jpilot.c:1118 msgid "/File/_Quit" msgstr "/Datei/_Beenden" #: ../jpilot.c:1119 msgid "/_View" msgstr "/_Ansicht" #: ../jpilot.c:1120 ../jpilot.c:1121 ../jpilot.c:1122 ../jpilot.c:1368 msgid "/View/Hide Private Records" msgstr "/Ansicht/Private Eintrge verbergen" #: ../jpilot.c:1121 ../jpilot.c:1371 msgid "/View/Show Private Records" msgstr "/Ansicht/Private Eintrge anzeigen" #: ../jpilot.c:1122 ../jpilot.c:1374 msgid "/View/Mask Private Records" msgstr "/Ansicht/Private Eintrge maskieren" #: ../jpilot.c:1123 msgid "/View/sep1" msgstr "/Ansicht/sep1" #: ../jpilot.c:1124 msgid "/View/Datebook" msgstr "/Ansicht/_Terminplaner" #: ../jpilot.c:1125 msgid "/View/Addresses" msgstr "/Ansicht/A_dressen" #: ../jpilot.c:1126 msgid "/View/Todos" msgstr "/Ansicht/A_ufgaben" #: ../jpilot.c:1127 msgid "/View/Memos" msgstr "/Ansicht/_Merkzettel" #: ../jpilot.c:1128 ../jpilot.c:1259 msgid "/_Plugins" msgstr "/_Plugins" #: ../jpilot.c:1130 msgid "/_Web" msgstr "/_Web" #. web #: ../jpilot.c:1131 msgid "/Web/Netscape" msgstr "/Web/_Netscape" #: ../jpilot.c:1135 msgid "/Web/Mozilla" msgstr "/Web/_Mozilla" #: ../jpilot.c:1140 msgid "/Web/Galeon" msgstr "/Web/_Galeon" #: ../jpilot.c:1145 msgid "/Web/Opera" msgstr "/Web/_Opera" #: ../jpilot.c:1149 msgid "/Web/GnomeUrl" msgstr "/Web/Gnome_Url" #: ../jpilot.c:1151 msgid "/Web/Lynx" msgstr "/Web/_Lynx" #: ../jpilot.c:1153 msgid "/Web/Links" msgstr "/Web/L_inks" #: ../jpilot.c:1155 msgid "/Web/W3M" msgstr "/Web/W_3M" #: ../jpilot.c:1157 msgid "/Web/Konqueror" msgstr "/Web/_Konqueror" #: ../jpilot.c:1160 msgid "/_Help" msgstr "/_Hilfe" #: ../jpilot.c:1161 msgid "/Help/About J-Pilot" msgstr "/Hilfe/ber J-Pilot" #: ../jpilot.c:1227 #, c-format msgid "/_Plugins/%s" msgstr "/Plugins/%s" #: ../jpilot.c:1237 #, c-format msgid "/_Help/%s" msgstr "/_Hilfe/%s" #: ../jpilot.c:1591 msgid "calendar:week_start:0" msgstr "" #: ../jpilot.c:1634 ../jpilot-sync.c:171 msgid "Not loading plugins.\n" msgstr "" #: ../jpilot.c:1638 msgid "Ignoring all alarms.\n" msgstr "" #: ../jpilot.c:1642 msgid "Ignoring past alarms.\n" msgstr "" #: ../jpilot.c:1730 ../jpilot.c:1738 #, fuzzy msgid "Unable to open pipe\n" msgstr "Kann %s nicht ffnen\n" #: ../jpilot.c:1947 #, fuzzy msgid "Show private records Ctrl+Z" msgstr "Private Eintrge anzeigen" #: ../jpilot.c:1952 #, fuzzy msgid "Hide private records Ctrl+Z" msgstr "Private Eintrge verbergen" #: ../jpilot.c:1957 #, fuzzy msgid "Mask private records Ctrl+Z" msgstr "Private Eintrge maskieren (---)" #: ../jpilot.c:1969 #, fuzzy msgid "Sync your palm to the desktop Ctrl+Y" msgstr "Palm mit Desktop synchronisieren" #: ../jpilot.c:1981 #, fuzzy msgid "Stop Sync process" msgstr "Adressen synchronisieren" #: ../jpilot.c:1993 msgid "" "Sync your palm to the desktop\n" "and then do a backup" msgstr "" "Palm mit Desktop synchronisieren\n" "und dann Backup erstellen" #: ../jpilot.c:2141 msgid "Datebook/Go to Today" msgstr "Terminplaner/Heute" #: ../jpilot.c:2142 msgid "Address Book" msgstr "Adressbuch" #: ../jpilot.c:2143 msgid "ToDo List" msgstr "Aufgaben" #: ../jpilot.c:2144 msgid "Memo Pad" msgstr "Merkzettel" #: ../jpilot.c:2172 msgid "Do it now" msgstr "" #: ../jpilot.c:2172 #, fuzzy msgid "Remind me later" msgstr "Erinnere mich in" #: ../jpilot.c:2172 msgid "Don't tell me again!" msgstr "" #: ../jpilot.c:2185 #, c-format msgid "" "J-Pilot uses the GTK2 graphical toolkit. This version of the toolkit uses " "UTF-8 to encode characters.\n" "You should select a UTF-8 charset so that you can see non-ASCII characters " "(accents for example).\n" "\n" "Go to the menu \"%s\" and change the \"%s\"." msgstr "" #. Character Set #: ../jpilot.c:2190 ../prefs_gui.c:511 #, fuzzy msgid "Character Set" msgstr "Zeichensatz " #: ../jpilot.c:2192 msgid "Select a UTF-8 encoding" msgstr "" #: ../jpilot-dump.c:94 #, c-format msgid " +D +A +T +M format like date +format.\n" msgstr "" #: ../jpilot-dump.c:95 #, c-format msgid " -v display version and exit\n" msgstr "" #: ../jpilot-dump.c:96 ../jpilot-sync.c:68 ../utils.c:1874 #, c-format msgid " -h display help text\n" msgstr "" #: ../jpilot-dump.c:97 #, c-format msgid " -f display help for format codes\n" msgstr "" #: ../jpilot-dump.c:98 #, fuzzy, c-format msgid " -D dump DateBook\n" msgstr "Adressbuch" #: ../jpilot-dump.c:99 #, fuzzy, c-format msgid " -i dump DateBook in iCalendar format\n" msgstr "Adressbuch" #: ../jpilot-dump.c:100 #, fuzzy, c-format msgid " -N dump appts for today in DateBook\n" msgstr "Adressbuch" #: ../jpilot-dump.c:101 #, c-format msgid " -NYYYY/MM/DD dump appts on YYYY/MM/DD in DateBook\n" msgstr "" #: ../jpilot-dump.c:102 #, fuzzy, c-format msgid " -A dump Address book\n" msgstr "Adressbuch" #: ../jpilot-dump.c:103 #, c-format msgid " -T dump ToDo list as CSV\n" msgstr "" #: ../jpilot-dump.c:104 #, fuzzy, c-format msgid " -M dump Memos\n" msgstr "Adressbuch" #: ../jpilot-dump.c:165 #, c-format msgid "" "Warning: Host character encoding is not UTF-8 based.\n" "Exported ical file may not be standards-compliant\n" msgstr "" #: ../jpilot-merge.c:163 ../jpilot-merge.c:169 #, fuzzy, c-format msgid "%s: Unable to open file:%s\n" msgstr "Kann %s nicht ffnen\n" #: ../jpilot-merge.c:271 #, c-format msgid "Records read from pdb = %d\n" msgstr "" #: ../jpilot-merge.c:272 #, c-format msgid "Records added = %d\n" msgstr "" #: ../jpilot-merge.c:273 #, c-format msgid "Records deleted = %d\n" msgstr "" #: ../jpilot-merge.c:274 #, c-format msgid "Records modified = %d\n" msgstr "" #: ../jpilot-merge.c:275 #, c-format msgid "Records written = %d\n" msgstr "" #: ../jpilot-merge.c:293 #, c-format msgid "Usage: %s {input pdb file} {input pc3 file} {output pdb file}\n" msgstr "" #: ../jpilot-merge.c:294 #, c-format msgid " This program will merge an unsynced records file (pc3)\n" msgstr "" #: ../jpilot-merge.c:295 #, c-format msgid "" " into the corresponding palm database (pdb) file.\n" "\n" msgstr "" #: ../jpilot-merge.c:296 #, c-format msgid " WARNING: Only run this utility if you understand the consequences!\n" msgstr "" #: ../jpilot-merge.c:297 #, c-format msgid " The merge will leave your databases in an unsync-able state.\n" msgstr "" #: ../jpilot-merge.c:298 #, c-format msgid "" " It is intended for cases where J-pilot is being used as a standalone PIM\n" msgstr "" #: ../jpilot-merge.c:299 #, c-format msgid " and where no syncing occurs to physical hardware.\n" msgstr "" #: ../jpilot-merge.c:300 #, c-format msgid " WARNING: Make a backup copy of your databases before proceeding.\n" msgstr "" #: ../jpilot-merge.c:301 #, c-format msgid "" " It is quite simple to destroy your databases by accidentally merging\n" msgstr "" #: ../jpilot-merge.c:302 #, c-format msgid " address records into datebook databases, etc.\n" msgstr "" #: ../jpilot-sync.c:66 #, c-format msgid "" " J-Pilot preferences are read to get sync info such as port, rate, number of " "backups, etc.\n" msgstr "" #: ../jpilot-sync.c:67 ../utils.c:1873 #, c-format msgid " -v display version and compile options\n" msgstr "" #: ../jpilot-sync.c:69 ../utils.c:1875 #, c-format msgid " -d display debug info to stdout\n" msgstr "" #: ../jpilot-sync.c:70 #, c-format msgid " -P skip loading plugins\n" msgstr "" #: ../jpilot-sync.c:71 #, fuzzy, c-format msgid " -b sync, and then do a backup\n" msgstr "" "Palm mit Desktop synchronisieren\n" "und dann Backup erstellen" #: ../jpilot-sync.c:72 #, c-format msgid " -l loop, otherwise sync once and exit\n" msgstr "" #: ../jpilot-sync.c:73 #, c-format msgid " -p {port} use this port to sync on instead of default\n" msgstr "" #: ../jpilot-sync.c:221 #, fuzzy, c-format msgid "Error: connecting to port %s\n" msgstr "Fehler beim ffnen der Datei" #: ../jpilot-sync.c:225 #, c-format msgid "Error: pi_listen\n" msgstr "" #: ../jpilot-sync.c:229 #, fuzzy, c-format msgid "Error: opening conduit to handheld\n" msgstr "Fehler beim ffnen der Datei" #: ../jpilot-sync.c:233 #, c-format msgid "Error: pi_accept\n" msgstr "" #: ../jpilot-sync.c:237 ../jpilot-sync.c:265 #, fuzzy, c-format msgid "Error: " msgstr "Fehler" #: ../jpilot-sync.c:238 #, c-format msgid "This handheld does not have the same user name.\n" msgstr "" #: ../jpilot-sync.c:239 ../jpilot-sync.c:253 #, c-format msgid "as the one that was synced the last time.\n" msgstr "" #: ../jpilot-sync.c:241 #, c-format msgid "" "Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:243 ../jpilot-sync.c:256 #, c-format msgid " COPILOT_HOME" msgstr "" #: ../jpilot-sync.c:245 ../jpilot-sync.c:258 #, c-format msgid " JPILOT_HOME" msgstr "" #: ../jpilot-sync.c:247 ../jpilot-sync.c:260 #, c-format msgid " environment variable can be used to sync different handhelds,\n" msgstr "" #: ../jpilot-sync.c:248 ../jpilot-sync.c:261 #, c-format msgid " to different directories for the same UNIX user name.\n" msgstr "" #: ../jpilot-sync.c:252 #, c-format msgid "This handheld does not have the same user ID.\n" msgstr "" #: ../jpilot-sync.c:254 #, c-format msgid "" " Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:266 #, c-format msgid "This handheld has a NULL user ID.\n" msgstr "" #: ../jpilot-sync.c:267 #, c-format msgid "Every handheld must have a unique user ID in order to sync properly.\n" msgstr "" #: ../jpilot-sync.c:268 #, c-format msgid "If the handheld has been hard reset, \n" msgstr "" #: ../jpilot-sync.c:269 #, c-format msgid " use restore from within " msgstr "" #: ../jpilot-sync.c:270 #, c-format msgid "Otherwise, to add a new user name and ID\n" msgstr "" #: ../jpilot-sync.c:271 #, c-format msgid " use \"install-user %s name numeric_id\"\n" msgstr "" #: ../jpilot-sync.c:275 #, c-format msgid "Error: sync returned error %d\n" msgstr "" #: ../libplugin.c:64 ../utils.c:1054 msgid "" "This record is already deleted.\n" "It is scheduled to be deleted from the Palm on the next sync.\n" msgstr "" #: ../libplugin.c:73 ../libplugin.c:110 ../utils.c:1064 ../utils.c:1106 #, fuzzy msgid "Unable to open PC records file\n" msgstr "Kann %s nicht ffnen\n" #: ../libplugin.c:79 ../utils.c:1071 #, fuzzy msgid "Couldn't find record to delete\n" msgstr "Kann Kategorie %s auf Gert nicht hinzufgen.\n" #: ../libplugin.c:97 ../utils.c:1091 #, c-format msgid "Unknown header version %d\n" msgstr "" #: ../libplugin.c:182 #, fuzzy, c-format msgid "%s:%d Error opening file: %s\n" msgstr "%s:%d Fehler beim Lesen von %s\n" #: ../libplugin.c:188 ../libplugin.c:217 ../sync.c:1721 ../todo.c:102 #, fuzzy, c-format msgid "%s:%d Error reading file: %s\n" msgstr "%s:%d Fehler beim Lesen von %s\n" #: ../libplugin.c:340 ../libplugin.c:398 ../utils.c:2119 ../utils.c:2132 #, fuzzy, c-format msgid "Error opening file: %s\n" msgstr "Fehler beim ffnen der Datei" #: ../libplugin.c:526 #, fuzzy, c-format msgid "Error reading %s 5\n" msgstr "Fehler beim lesen von %s\n" #: ../libplugin.c:801 #, fuzzy msgid "Error reading PC file 1\n" msgstr "Fehler beim lesen von %s\n" #: ../libplugin.c:817 #, fuzzy msgid "Error reading PC file 2\n" msgstr "Fehler beim lesen von %s\n" #: ../libplugin.c:923 #, c-format msgid "Unknown PC header version = %d\n" msgstr "" #: ../log.c:101 #, fuzzy, c-format msgid "Unable to open log file, giving up.\n" msgstr "Kann Log-File nicht ffnen, gebe auf.\n" #: ../log.c:111 #, fuzzy, c-format msgid "Unable to open log file\n" msgstr "Kann %s nicht ffnen\n" #: ../memo_gui.c:302 msgid "Memo text > 65535, truncating\n" msgstr "" #: ../memo_gui.c:330 #, c-format msgid "Imported Memo %s\n" msgstr "" #: ../memo_gui.c:400 msgid "File doesn't appear to be memopad.dat format\n" msgstr "Diese Datei scheint nicht im memopad.dat Format zu sein\n" #: ../memo_gui.c:471 msgid "DAT/MPA (Palm Archive Formats)" msgstr "" #: ../memo_gui.c:554 #, c-format msgid "" "Memo exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:557 #, c-format msgid "" "Memos exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:584 #, c-format msgid "Can't export memo %d\n" msgstr "" #: ../memo_gui.c:628 #, fuzzy, c-format msgid "Memo: %ld\n" msgstr "Merkzettel" #: ../memo_gui.c:634 #, c-format msgid "----- Start of Memo -----\n" msgstr "" #: ../memo_gui.c:636 #, c-format msgid "" "\n" "----- End of Memo -----\n" "\n" msgstr "" #: ../memo_gui.c:668 msgid "B-Folders CSV" msgstr "" #: ../monthview_gui.c:438 msgid "Monthly View" msgstr "Monatsbersicht" #: ../monthview_gui.c:480 msgid "Last month Alt+LeftArrow" msgstr "" #: ../monthview_gui.c:508 msgid "Next month Alt+RightArrow" msgstr "" #: ../otherconv.c:76 #, c-format msgid "%s: error exit from g_iconv_close(%s)\n" msgstr "" #: ../otherconv.c:201 #, c-format msgid "%s:%s g_convert_with_iconv error: %s, buff: %s\n" msgstr "" #: ../otherconv.c:203 msgid "last char truncated" msgstr "" #: ../otherconv.c:280 #, c-format msgid "UTF_to_other: %s\n" msgstr "" #: ../otherconv.c:294 #, c-format msgid "iconv: unconvertible sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:298 #, c-format msgid "iconv: incomplete UTF-8 sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:301 #, c-format msgid "iconv: buffer filled. stopped at place %d in '%s'\n" msgstr "" #: ../otherconv.c:304 #, c-format msgid "iconv: unexpected error at place %d in '%s'\n" msgstr "" #: ../password.c:283 msgid "Palm Password" msgstr "Palm Passwort" #: ../password.c:308 msgid "Incorrect, Reenter PalmOS Password" msgstr "Falsches PalmOS-Passwort. Bitte erneut eingeben" #: ../password.c:310 msgid "Enter PalmOS Password" msgstr "PalmOS-Passwort eingeben" #: ../pidfile.c:67 #, fuzzy msgid "removing stale pidfile\n" msgstr "Kann jpilot_to_install Datei nicht ffnen\n" #: ../pidfile.c:91 #, fuzzy, c-format msgid "create pidfile failed: %s\n" msgstr "Fehler beim lesen von %s\n" #: ../pidfile.c:92 msgid "Warning: hotplug syncing disabled.\n" msgstr "" #: ../plugins.c:90 ../plugins.c:203 ../restore_gui.c:133 msgid "infinite loop" msgstr "" #: ../plugins.c:216 #, c-format msgid "While reading %s%s line 1:[%s]\n" msgstr "" #: ../plugins.c:217 msgid "Wrong Version\n" msgstr "" #: ../plugins.c:218 msgid "Check preferences->conduits\n" msgstr "" #: ../plugins.c:274 #, c-format msgid "" "Open failed on plugin [%s]\n" " error [%s]\n" msgstr "" #: ../plugins.c:291 ../plugins.c:316 #, c-format msgid " plugin is invalid: [%s]\n" msgstr "" #: ../plugins.c:299 #, fuzzy, c-format msgid "Plugin:[%s]\n" msgstr "/Plugins/%s" #: ../plugins.c:300 #, c-format msgid "This plugin is version (%d.%d).\n" msgstr "" #: ../plugins.c:302 msgid "It is too old to work with this version of J-Pilot.\n" msgstr "" #: ../prefs.c:420 msgid "%B %d, %Y" msgstr "" #: ../prefs.c:421 msgid "%d %B %Y" msgstr "" #: ../prefs.c:422 msgid "%d. %B %Y" msgstr "" #: ../prefs.c:423 msgid "%d %B, %Y" msgstr "" #: ../prefs.c:424 msgid "%Y. %B. %d" msgstr "" #: ../prefs.c:425 msgid "%Y %B %d" msgstr "" #: ../prefs_gui.c:454 msgid "Preferences" msgstr "Einstellungen" #: ../prefs_gui.c:485 msgid "Locale" msgstr "Lokales" #: ../prefs_gui.c:487 msgid "Settings" msgstr "Einstellungen" #: ../prefs_gui.c:489 #, fuzzy msgid "Datebook" msgstr "Termin" #: ../prefs_gui.c:493 msgid "ToDo" msgstr "Aufgabe" #: ../prefs_gui.c:495 #, fuzzy msgid "Memo" msgstr "Merkzettel" #: ../prefs_gui.c:497 msgid "Alarms" msgstr "Alarm" #: ../prefs_gui.c:499 msgid "Conduits" msgstr "Conduits" #. Shortdate #: ../prefs_gui.c:524 #, fuzzy msgid "Short date format" msgstr "Datumsformat (kurz) " #. Longdate #: ../prefs_gui.c:537 #, fuzzy msgid "Long date format" msgstr "Datumsformat (lang) " #. Time #: ../prefs_gui.c:550 #, fuzzy msgid "Time format" msgstr "Zeitformat " #. GTK colors file #: ../prefs_gui.c:570 #, fuzzy msgid "GTK color theme file" msgstr "GTK-Farbdatei" #. Port #: ../prefs_gui.c:583 #, fuzzy msgid "Sync Port" msgstr "Merkzettel synchronisieren" #. Serial Rate #: ../prefs_gui.c:607 #, fuzzy msgid "Serial Rate" msgstr "Schnittstellengeschwindigkeit" #. Number of backups #: ../prefs_gui.c:627 msgid "Number of backups to be archived" msgstr "Wieviele Backups sollen archiviert werden?" #. Show deleted files check box #: ../prefs_gui.c:645 msgid "Show deleted records (default NO)" msgstr "Gelschte Eintrge anzeigen? (Standard: Nein)" #. Show modified files check box #: ../prefs_gui.c:649 msgid "Show modified deleted records (default NO)" msgstr "Vernderte gelschte Eintrge anzeigen? (Standard: Nein)" #: ../prefs_gui.c:654 msgid "Ask confirmation for file installation (J-Pilot -> PDA) (default YES)" msgstr "" #. Show tooltips check box #: ../prefs_gui.c:658 msgid "Show popup tooltips (default YES) (requires restart)" msgstr "" #: ../prefs_gui.c:668 msgid "Use Datebook database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:671 msgid "Use Calendar database (Palm OS > 5.2)" msgstr "" #. Show highlight days check box #: ../prefs_gui.c:697 msgid "Highlight calendar days with appointments" msgstr "Tage mit Terminen farblich kennzeichnen?" #. Highlight today on month and week view #: ../prefs_gui.c:702 msgid "Annotate today in day, week, and month views" msgstr "" #. Show number of years on anniversaries in month and week view #: ../prefs_gui.c:706 msgid "Append years on anniversaries in day, week, and month views" msgstr "" #. Show use DateBk check box #: ../prefs_gui.c:712 msgid "Use DateBk note tags" msgstr "DateBk Felder untersttzen" #: ../prefs_gui.c:715 msgid "DateBk support disabled in this build" msgstr "DateBk Untersttzung wurde beim kompilieren deaktiviert" #: ../prefs_gui.c:727 msgid "Use Address database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:730 msgid "Use Contacts database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:759 #, fuzzy msgid "Mail Command" msgstr "Whl-Befehl" #: ../prefs_gui.c:773 #, fuzzy, c-format msgid "%s is replaced by the e-mail address" msgstr "%t wird durch die Alarmzeit ersetzt" #: ../prefs_gui.c:785 msgid "Use ToDo database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:788 msgid "Use Task database (Palm OS > 5.2)" msgstr "" #. hide completed check box #: ../prefs_gui.c:815 msgid "Hide Completed ToDos" msgstr "Erledigte Aufgaben ausblenden" #. hide todos not yet due check box #: ../prefs_gui.c:819 msgid "Hide ToDos not yet due" msgstr "Verstecke Aufgaben die noch nicht fllig sind" #. record todo completion date check box #: ../prefs_gui.c:823 msgid "Record Completion Date" msgstr "Fertigstellungsdatum aufzeichnen" #. Use Manana check box #: ../prefs_gui.c:828 msgid "Use Manana database" msgstr "Verwende Manana Datenbank" #: ../prefs_gui.c:836 msgid "Use default number of days due" msgstr "" #: ../prefs_gui.c:858 msgid "Use Memo database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:861 msgid "Use Memos database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:864 #, fuzzy msgid "Use Memo32 database (pedit32)" msgstr "Memo32 (pedit32) nutzen" #: ../prefs_gui.c:904 msgid "External Editor" msgstr "" #: ../prefs_gui.c:917 msgid "Use Ctrl-E inside a memo to launch external editor for memo text" msgstr "" #. ******************************************************************** #. Alarms preference tab #. Open alarm windows check box #: ../prefs_gui.c:925 msgid "Open alarm windows for appointment reminders" msgstr "Meldungsfenster fr Terminerinnerungen anzeigen" #. Execute alarm command check box #: ../prefs_gui.c:929 msgid "Execute this command" msgstr "Diesen Befehl ausfhren" #. Shell warning label #: ../prefs_gui.c:933 msgid "WARNING: executing arbitrary shell commands can be dangerous!!!" msgstr "ACHTUNG: Einen Shell-Befehl auszufhren kann GEFHRLICH sein!" #: ../prefs_gui.c:941 msgid "Alarm Command" msgstr "Alarm-Befehl" #: ../prefs_gui.c:954 msgid "%t is replaced with the alarm time" msgstr "%t wird durch die Alarmzeit ersetzt" #: ../prefs_gui.c:958 #, c-format msgid "%d is replaced with the alarm date" msgstr "%d wird durch das Alarmdatum ersetzt" #: ../prefs_gui.c:963 msgid "%D is replaced with the alarm description" msgstr "%D wird durch die Alarmbeschreibung ersetzt" #: ../prefs_gui.c:967 msgid "%N is replaced with the alarm note" msgstr "%N wird durch die Alarmnotiz ersetzt" #: ../prefs_gui.c:971 msgid "%D (description substitution) is disabled in this build" msgstr "%D (Ersetzen der Beschreibung) in diesem Build deaktiviert" #: ../prefs_gui.c:976 msgid "%N (note substitution) is disabled in this build" msgstr "%D (Ersetzen der Notiz) in diesem Build deaktiviert" #. ******************************************************************** #. Conduits preference tab #. Sync datebook check box #: ../prefs_gui.c:986 msgid "Sync datebook" msgstr "Terminkalender synchronisieren" #. Sync address check box #: ../prefs_gui.c:990 msgid "Sync address" msgstr "Adressen synchronisieren" #. Sync todo check box #: ../prefs_gui.c:994 msgid "Sync todo" msgstr "Aufgaben synchronisieren" #. Sync memo check box #: ../prefs_gui.c:998 msgid "Sync memo" msgstr "Merkzettel synchronisieren" #. Show sync Manana check box #: ../prefs_gui.c:1003 msgid "Sync Manana" msgstr "Manana synchronisieren" #. Show use Japanese Kana extention check box #: ../prefs_gui.c:1009 msgid "Use J-OS (Not Japanese PalmOS:WorkPad/CLIE)" msgstr "Verwende J-OS (Nicht japanisches PalmOS:WorkPad/CLIE)" #. Make a Sync checkbox for each plugin #: ../prefs_gui.c:1022 #, fuzzy, c-format msgid "Sync %s (%s)" msgstr "Synce %s\n" #: ../print_gui.c:185 msgid "Print Options" msgstr "Druckoptionen" #: ../print_gui.c:198 msgid "Paper Size" msgstr "Papiergre" #: ../print_gui.c:214 msgid "Daily Printout" msgstr "Tagesplan drucken" #: ../print_gui.c:220 msgid "Weekly Printout" msgstr "Wochenplan drucken" #: ../print_gui.c:226 msgid "Monthly Printout" msgstr "Monatsplan drucken" #: ../print_gui.c:266 #, fuzzy msgid "Selected record" msgstr "Einen %s-Eintrag gelscht." #: ../print_gui.c:270 msgid "All records in this category" msgstr "Alle Eintrge in dieser Kategorie" #: ../print_gui.c:274 msgid "Print all records" msgstr "Alle Eintrge drucken" #: ../print_gui.c:296 msgid "One record per page" msgstr "Einen Eintrag pro Seite" #: ../print_gui.c:312 #, fuzzy msgid "Blank lines between each record" msgstr " Leerzeilen zwischen Eintrgen" #. Print Command #: ../print_gui.c:321 msgid "Print Command (e.g. lpr, or cat > file.ps)" msgstr "Druckbefehl (z.B. lpr oder cat > file.ps)" #: ../restore_gui.c:71 ../restore_gui.c:229 msgid "Restore Handheld" msgstr "Pilot wiederherstellen" #: ../restore_gui.c:176 ../restore_gui.c:178 msgid "Unable to convert filename for GTK display\n" msgstr "" #: ../restore_gui.c:177 msgid "See console log to find which file will not be restored\n" msgstr "" #: ../restore_gui.c:179 #, fuzzy, c-format msgid "File %s will not be restored\n" msgstr "Zu installierende Dateien" #. Label for instructions #: ../restore_gui.c:246 msgid "To restore your handheld:" msgstr "Um den Pilot wiederherzustellen:" #: ../restore_gui.c:249 #, fuzzy msgid "1. Choose the applications you wish to restore. The default is all." msgstr "" "1. Whlen Sie alle die Anwendungen/Dateien aus, die Sie wiederherstellen " "wollen. (Standard: Alle)" #: ../restore_gui.c:252 msgid "2. Enter the User Name and User ID." msgstr "2. Benutzernamen und BenutzerID eingeben." #: ../restore_gui.c:255 msgid "3. Press the OK button." msgstr "3. OK-Button drcken." #: ../restore_gui.c:258 msgid "This will overwrite data that is currently on the handheld." msgstr "Das berschreibt alle Daten, die sich derzeit auf dem Pilot befinden." #: ../search_gui.c:144 msgid "datebook" msgstr "Termin" #: ../search_gui.c:146 msgid "calendar" msgstr "" #: ../search_gui.c:233 msgid "address" msgstr "Adresse" #: ../search_gui.c:235 msgid "contact" msgstr "" #: ../search_gui.c:304 #, fuzzy msgid "todo" msgstr "Aufgaben synchronisieren" #: ../search_gui.c:361 msgid "memo" msgstr "Merkzettel" #: ../search_gui.c:363 #, fuzzy msgid "memos" msgstr "Merkzettel" #: ../search_gui.c:421 msgid "plugin ?" msgstr "Plugin ?" #: ../search_gui.c:501 msgid "No records found" msgstr "Keine Eintrge gefunden" #: ../search_gui.c:600 msgid "Search" msgstr "Suchen" #. Search label #: ../search_gui.c:617 msgid "Search for: " msgstr "Suchen nach: " #. Case Sensitive checkbox #: ../search_gui.c:626 msgid "Case Sensitive" msgstr "Gro- u. Kleinschreibung beachten?" #: ../sync.c:120 #, fuzzy msgid "open lock file failed\n" msgstr "Kann Log-File nicht ffnen\n" #: ../sync.c:133 #, fuzzy msgid "lock failed\n" msgstr "Fehlgeschlagen.\n" #: ../sync.c:136 #, c-format msgid "sync file is locked by pid %d\n" msgstr "" #: ../sync.c:171 msgid "unlock failed\n" msgstr "" #: ../sync.c:174 #, c-format msgid "sync is locked by pid %d\n" msgstr "" #: ../sync.c:410 #, fuzzy msgid "Check your sync port and settings\n" msgstr "berprfen Sie die serielle Schnittstelle und die Einstellungen\n" #: ../sync.c:669 #, fuzzy msgid "Unable to read home dir\n" msgstr "Kann %s nicht ffnen\n" #: ../sync.c:1075 ../sync.c:1413 #, c-format msgid "%s (Creator ID '%s') is up to date, fetch skipped.\n" msgstr "%s (ErstellerID '%s') ist aktuell und wurde nicht abgeglichen.\n" #: ../sync.c:1079 ../sync.c:1417 #, c-format msgid "Fetching '%s' (Creator ID '%s')... " msgstr "Abgleich mit '%s' ... (ErstellerID '%s')... " #: ../sync.c:1086 ../sync.c:1423 #, c-format msgid "Failed, unable to create file %s\n" msgstr "Kann Datei %s nicht erzeugen\n" #: ../sync.c:1090 ../sync.c:1428 #, fuzzy, c-format msgid "Failed, unable to back up database %s\n" msgstr "Kann Backup der Datenbank nicht durchfhren\n" #: ../sync.c:1094 ../sync.c:1432 ../sync.c:1619 msgid "OK\n" msgstr "Ok\n" #: ../sync.c:1294 #, c-format msgid "Skipping %s (Creator ID '%s')\n" msgstr "berspringe %s (ErstellerID '%s')\n" #: ../sync.c:1488 #, c-format msgid "Installing %s " msgstr "Installiere %s" #: ../sync.c:1494 ../sync.c:1530 #, fuzzy, c-format msgid "" "\n" "Unable to open file: '%s': %s!\n" msgstr "" "\n" "Kann '%s' nicht ffnen!\n" #: ../sync.c:1498 #, fuzzy, c-format msgid "" "\n" "Unable to sync file: '%s': file corrupted?\n" msgstr "" "\n" "Kann '%s' nicht ffnen!\n" #: ../sync.c:1514 #, fuzzy, c-format msgid "(Creator ID '%s')... " msgstr "(ErstellerID ist '%s')..." #: ../sync.c:1518 #, fuzzy, c-format msgid "(Creator ID '%s') " msgstr "(ErstellerID ist '%s')..." #: ../sync.c:1520 #, fuzzy, c-format msgid "(SDcard dir %s)... " msgstr "(ErstellerID ist '%s')..." #: ../sync.c:1552 ../sync.c:1565 ../sync.c:1580 ../sync.c:1593 #, fuzzy, c-format msgid "" "\n" "Unable to open file: %s\n" msgstr "Kann %s nicht ffnen\n" #: ../sync.c:1605 #, c-format msgid "Install %s failed" msgstr "Installation von %s fehlgeschlagen" #: ../sync.c:1609 msgid "Failed.\n" msgstr "Fehlgeschlagen.\n" #: ../sync.c:1615 #, fuzzy, c-format msgid "Installed %s" msgstr "%s wurde installiert" #: ../sync.c:1726 #, c-format msgid "%s:%d Error getting app info %s\n" msgstr "%s:%d Fehler beim Holen der Applikationsinfo %s\n" #: ../sync.c:1732 ../sync.c:1762 #, c-format msgid "%s:%d Error unpacking app info %s\n" msgstr "%s:%d Fehler beim Entpacken der Applikationsinfo %s\n" #: ../sync.c:1753 #, c-format msgid "Error reading appinfo block for %s\n" msgstr "Fehler beim Lesen des Applikationsinfoblocks fr %s\n" #. Fix - need a func for this logging #: ../sync.c:1991 ../sync.c:1995 #, c-format msgid "Could not add category %s to remote.\n" msgstr "Kann Kategorie %s auf Gert nicht hinzufgen.\n" #: ../sync.c:1992 ../sync.c:1998 #, c-format msgid "Too many categories on remote.\n" msgstr "Zu viele Kategorieen auf Gert.\n" #: ../sync.c:1993 ../sync.c:2001 #, c-format msgid "All records on desktop in %s will be moved to %s.\n" msgstr "Alle Datenstze auf dem Desktop in %s werden nach %s verschoben.\n" #: ../sync.c:2096 ../sync.c:2814 #, c-format msgid "Syncing %s\n" msgstr "Synce %s\n" #: ../sync.c:2104 ../sync.c:2457 ../sync.c:2822 #, c-format msgid "Wrote an %s record." msgstr "Habe einen %s-Eintrag geschrieben." #: ../sync.c:2106 ../sync.c:2459 ../sync.c:2824 #, c-format msgid "Writing an %s record failed." msgstr "Das Schreiben eines %s Eintrages ist fehlgeschlagen." #: ../sync.c:2108 ../sync.c:2461 ../sync.c:2826 #, c-format msgid "Deleting an %s record failed." msgstr "Lschen eines %s-Eintrages ist fehlgeschlagen." #: ../sync.c:2110 ../sync.c:2463 ../sync.c:2828 #, c-format msgid "Deleted an %s record." msgstr "Ein %s-Eintrag gelscht." #: ../sync.c:2112 ../sync.c:2465 #, fuzzy, c-format msgid "Sync Conflict: duplicated an %s record." msgstr "Ein %s-Eintrag gelscht." #: ../sync.c:2115 ../sync.c:2468 ../sync.c:2831 #, c-format msgid "Wrote a %s record." msgstr "Einen %s-Eintrag geschrieben." #: ../sync.c:2117 ../sync.c:2470 ../sync.c:2833 #, c-format msgid "Writing a %s record failed." msgstr "Das Schreiben eines %s-Eintrages ist fehlgeschlagen." #: ../sync.c:2119 ../sync.c:2472 ../sync.c:2835 #, c-format msgid "Deleting a %s record failed." msgstr "Das Lschen eines %s-Eintrages ist fehlgeschlagen." #: ../sync.c:2121 ../sync.c:2474 ../sync.c:2837 #, c-format msgid "Deleted a %s record." msgstr "Einen %s-Eintrag gelscht." #: ../sync.c:2123 ../sync.c:2476 #, c-format msgid "Sync Conflict: duplicated a %s record." msgstr "" #: ../sync.c:2227 ../sync.c:2557 #, c-format msgid "Sync Conflict: a %s record must be manually merged\n" msgstr "" #: ../sync.c:2358 ../sync.c:2698 msgid "" "dlp_DeleteRecord failed\n" "This could be because the record was already deleted on the Palm\n" msgstr "" "dlp_DeleteRecord schlug fehl\n" "Das kann daran liegen, da der Eintrag bereits auf dem Palm gelscht wurde\n" #: ../sync.c:2927 msgid "Finished installing user information.\n" msgstr "" #: ../sync.c:3084 #, c-format msgid " Syncing on device %s\n" msgstr " Abgleich mit %s\n" #: ../sync.c:3085 msgid " Press the HotSync button now\n" msgstr " Hot-Sync Knopf jetzt drcken\n" #: ../sync.c:3127 ../sync.c:3149 ../sync.c:3170 #, c-format msgid "Last Synced Username-->\"%s\"\n" msgstr "Letzter synchronisierter Benutzername -->\"%s\"\n" #: ../sync.c:3128 ../sync.c:3150 ../sync.c:3171 #, c-format msgid "Last Synced UserID-->\"%d\"\n" msgstr "Letzte synchronisierte BenutzerID -->\"%d\"\n" #: ../sync.c:3129 ../sync.c:3151 ../sync.c:3172 #, c-format msgid " This Username-->\"%s\"\n" msgstr "Lokaler Benutzername -->\"%s\"\n" #: ../sync.c:3130 ../sync.c:3152 ../sync.c:3173 #, c-format msgid " This User ID-->%d\n" msgstr "Lokale BenutzerID-->%d\n" #: ../sync.c:3194 #, c-format msgid "Username is \"%s\"\n" msgstr "Benutzername -->\"%s\"\n" #: ../sync.c:3195 #, c-format msgid "User ID is %d\n" msgstr "BenutzerID -->%d\n" #: ../sync.c:3197 #, c-format msgid "lastSyncPC = %d\n" msgstr "Letzter SyncPC = %d\n" #: ../sync.c:3198 #, c-format msgid "This PC = %lu\n" msgstr "Dieser PC = %lu\n" #: ../sync.c:3222 msgid "Sync canceled\n" msgstr "Abgleich abgebrochen\n" #: ../sync.c:3245 msgid "Finished restoring handheld.\n" msgstr "Pilot wurde wiederherstellen.\n" #: ../sync.c:3246 msgid "You may need to sync to update J-Pilot.\n" msgstr "" "Mglicherweise mssen Sie einen Abgleich (Sync) vornehmen, wenn Sie JPilot " "auf den neuesten Stand bringen wollen.\n" #: ../sync.c:3268 msgid "Doing a fast sync.\n" msgstr "Schneller Abgleich\n" #: ../sync.c:3281 msgid "Doing a slow sync.\n" msgstr "Langsamer Abgleich\n" #: ../sync.c:3356 msgid "Thank you for using J-Pilot." msgstr "Danke, da Sie JPilot benutzt haben." #: ../sync.c:3401 ../sync.c:3469 msgid "Finished.\n" msgstr "Fertig.\n" #: ../sync.c:3436 #, c-format msgid "%s: sync process already in progress (process ID = %d)\n" msgstr "" #: ../sync.c:3437 #, c-format msgid "" "%s: press the HotSync button on the cradle\n" " or stop the sync by using the cancel sync button\n" " or stop the sync by typing \"kill %d\" at the command line\n" msgstr "" #: ../sync.c:3468 #, c-format msgid "Exiting with status %s\n" msgstr "Exit-Status: %s\n" #: ../todo.c:266 #, fuzzy, c-format msgid "ToDo description text > %d, truncating to %d\n" msgstr "Termin-Beschreibung ist zu lang, %d wurde auf %d abgeschnitten.\n" #: ../todo.c:272 #, fuzzy, c-format msgid "ToDo note text > %d, truncating to %d\n" msgstr "Warnung: Aufgaben-Notiz ist zu lang, wurde auf %d abgeschnitten.\n" #: ../todo_gui.c:161 msgid "Due Date" msgstr "Flligkeitsdatum" #: ../todo_gui.c:532 msgid "File doesn't appear to be todo.dat format\n" msgstr "Diese Datei scheint nicht im todo.dat Format zu sein.\n" #: ../todo_gui.c:596 msgid "DAT/TDA (Palm Archive Formats)" msgstr "" #: ../todo_gui.c:688 #, c-format msgid "" "ToDo exported from %s %s on %s\n" "\n" msgstr "" #: ../todo_gui.c:726 #, c-format msgid "Can't export todo %d\n" msgstr "" #: ../todo_gui.c:766 #, fuzzy, c-format msgid "Due Date: None\n" msgstr "Flligkeitsdatum" #: ../todo_gui.c:769 #, fuzzy, c-format msgid "Due Date: %s\n" msgstr "Flligkeitsdatum" #: ../todo_gui.c:771 #, fuzzy, c-format msgid "Priority: %d\n" msgstr "Prioritt: " #: ../todo_gui.c:772 #, fuzzy, c-format msgid "Completed: %s\n" msgstr "Erledigt" #: ../todo_gui.c:774 #, c-format msgid "Description: %s\n" msgstr "" #: ../todo_gui.c:777 #, c-format msgid "" "Note: %s\n" "\n" msgstr "" #: ../todo_gui.c:1610 msgid "Priority out of range\n" msgstr "" #: ../todo_gui.c:1932 ../KeyRing/keyring.c:1310 #, c-format msgid "No date" msgstr "Kein Flligkeitsdatum" #. Completed checkbox #: ../todo_gui.c:2414 msgid "Completed" msgstr "Erledigt" #: ../todo_gui.c:2421 #, fuzzy msgid "Priority:" msgstr "Prioritt: " #: ../todo_gui.c:2423 msgid "Set priority Alt+#" msgstr "" #: ../todo_gui.c:2444 msgid "Date Due:" msgstr "Flligkeitsdatum:" #: ../utils.c:332 msgid "Today" msgstr "Heute" #: ../utils.c:577 #, fuzzy, c-format msgid "Couldn't find empty DB file %s: %s\n" msgstr "Kann keine leere DB-Datei finden.\n" #: ../utils.c:580 msgid " may not be installed.\n" msgstr " ist evtl. nicht installiert.\n" #. Can't create directory #: ../utils.c:615 ../utils.c:619 #, fuzzy, c-format msgid "Can't create directory %s\n" msgstr "Kann Kategorie %s nicht lschen.\n" #: ../utils.c:625 #, fuzzy, c-format msgid "%s is not a directory\n" msgstr "%s ist ein Verzeichnis" #: ../utils.c:630 #, fuzzy, c-format msgid "Unable to get write permission for directory %s\n" msgstr "Kann Kategorie %s nicht lschen.\n" #: ../utils.c:1330 ../utils.c:1354 msgid "Save Changed Record?" msgstr "Genderten Eintrag speichern?" #: ../utils.c:1331 ../utils.c:1355 msgid "Do you want to save the changes to this record?" msgstr "Wollen Sie die nderungen speichern?" #: ../utils.c:1336 ../utils.c:1360 msgid "Save New Record?" msgstr "Neuen Eintrag speichern?" #: ../utils.c:1337 ../utils.c:1361 msgid "Do you want to save this new record?" msgstr "Wollen Sie den neuen Eintrag speichern?" #: ../utils.c:1652 msgid "infinite loop, breaking\n" msgstr "" #: ../utils.c:1876 #, c-format msgid " -p skip loading plugins\n" msgstr "" #: ../utils.c:1877 #, c-format msgid " -a ignore missed alarms since the last time program was run\n" msgstr "" #: ../utils.c:1878 #, c-format msgid " -A ignore all alarms past and future\n" msgstr "" #: ../utils.c:1879 #, c-format msgid " -s start sync using existing instance of GUI\n" msgstr "" #: ../utils.c:1880 #, c-format msgid " -i iconify program immediately after launch\n" msgstr "" #: ../utils.c:1881 #, c-format msgid "" " -geometry {X geometry} use specified geometry for main window\n" "\n" msgstr "" #: ../utils.c:1882 #, c-format msgid " The PILOTPORT and PILOTRATE environment variables specify\n" msgstr "" #: ../utils.c:1883 #, c-format msgid " which port to sync on, and at what speed.\n" msgstr "" #: ../utils.c:1884 #, c-format msgid " If PILOTPORT is not set then it defaults to /dev/pilot.\n" msgstr "" #: ../utils.c:1921 #, fuzzy msgid "Error reading file" msgstr "Fehler beim lesen von %s\n" #: ../utils.c:1971 msgid "Date compiled" msgstr "Datum der Kompilierung" #: ../utils.c:1972 msgid "Compiled with these options:" msgstr "Kompiliert mit folgenden Optionen:" #: ../utils.c:1974 msgid "Installed Path" msgstr "Installiert in Pfad" #: ../utils.c:1976 msgid "pilot-link version" msgstr "pilot-link Version" #: ../utils.c:1980 msgid "USB support" msgstr "USB Untersttzung" #: ../utils.c:1981 ../utils.c:1984 ../utils.c:1990 ../utils.c:1996 #: ../utils.c:2002 ../utils.c:2008 ../utils.c:2013 msgid "yes" msgstr "Ja" #: ../utils.c:1982 msgid "Private record support" msgstr "Untersttzung fr private Eintrge" #: ../utils.c:1986 ../utils.c:1992 ../utils.c:1998 ../utils.c:2004 #: ../utils.c:2010 msgid "no" msgstr "Nein" #: ../utils.c:1988 msgid "Datebk support" msgstr "Datebk Untersttzung" #: ../utils.c:1994 msgid "Plugin support" msgstr "Plugin Untersttzung" #: ../utils.c:2000 msgid "Manana support" msgstr "Manana Untersttzung" #: ../utils.c:2006 msgid "NLS support (foreign languages)" msgstr "NLS Untersttzung (Fremdsprachen)" #: ../utils.c:2012 msgid "GTK2 support" msgstr "GTK2 Untersttzung" #. No HOME var #: ../utils.c:2055 msgid "Can't get HOME environment variable\n" msgstr "" #: ../utils.c:2062 msgid "HOME environment variable is too long to process\n" msgstr "" #: ../utils.c:2557 #, fuzzy msgid "Edit Categories..." msgstr "Kategorien editieren" #: ../utils.c:3223 msgid "PC ID is 0.\n" msgstr "PC ID ist 0.\n" #: ../utils.c:3224 #, fuzzy, c-format msgid "Generated a new PC ID. It is %lu\n" msgstr "Ich habe eine neue PC ID angelegt: %lu\n" #: ../utils.c:3309 msgid "Invalid UTF-8 encoding in export string\n" msgstr "" #: ../utils.c:3470 #, c-format msgid "Today is %A, %x %X" msgstr "Heute ist %A, %x %X" #: ../utils.c:3472 #, c-format msgid "Today is %%A, %s %s" msgstr "Heute ist %%A, %s %s" #: ../utils.c:3701 #, c-format msgid "" "Incorrect header format for CSV import\n" "Check line 1 of file %s\n" "Aborting import\n" msgstr "" #: ../utils.c:3738 #, fuzzy, c-format msgid "Error writing version header to file: %s%s\n" msgstr "Fehler beim lesen von %s\n" #: ../utils.c:3743 #, fuzzy, c-format msgid "Error writing next id to file: %s%s" msgstr "Fehler beim lesen von %s\n" #: ../weekview_gui.c:297 msgid "Weekly View" msgstr "Wochenansicht" #: ../weekview_gui.c:337 msgid "Last week Alt+LeftArrow" msgstr "" #: ../weekview_gui.c:366 msgid "Next week Alt+RightArrow" msgstr "" #: ../Expense/expense.c:97 msgid "Australia" msgstr "Australien" #: ../Expense/expense.c:98 msgid "Austria" msgstr "sterreich" #: ../Expense/expense.c:99 msgid "Belgium" msgstr "Belgien" #: ../Expense/expense.c:100 msgid "Brazil" msgstr "Brasilien" #: ../Expense/expense.c:101 msgid "Canada" msgstr "Kanada" #: ../Expense/expense.c:102 msgid "Denmark" msgstr "Dnemark" #: ../Expense/expense.c:103 msgid "EU (Euro)" msgstr "" #: ../Expense/expense.c:104 msgid "Finland" msgstr "Finnland" #: ../Expense/expense.c:105 msgid "France" msgstr "Frankreich" #: ../Expense/expense.c:106 msgid "Germany" msgstr "Deutschland" #: ../Expense/expense.c:107 #, fuzzy msgid "Hong Kong" msgstr "Hong Kong" #: ../Expense/expense.c:108 msgid "Iceland" msgstr "Island" #: ../Expense/expense.c:109 msgid "India" msgstr "" #: ../Expense/expense.c:110 #, fuzzy msgid "Indonesia" msgstr "Keiner" #: ../Expense/expense.c:111 msgid "Ireland" msgstr "Irland" #: ../Expense/expense.c:112 msgid "Italy" msgstr "Italien" #: ../Expense/expense.c:113 msgid "Japan" msgstr "Japan" #: ../Expense/expense.c:114 msgid "Korea" msgstr "" #: ../Expense/expense.c:115 msgid "Luxembourg" msgstr "Luxemburg" #: ../Expense/expense.c:116 msgid "Malaysia" msgstr "" #: ../Expense/expense.c:117 msgid "Mexico" msgstr "Mexiko" #: ../Expense/expense.c:118 #, fuzzy msgid "Netherlands" msgstr "Schweiz" #: ../Expense/expense.c:119 msgid "New Zealand" msgstr "Neuseeland" #: ../Expense/expense.c:120 msgid "Norway" msgstr "Norwegen" #: ../Expense/expense.c:121 msgid "P.R.C." msgstr "" #: ../Expense/expense.c:122 msgid "Philippines" msgstr "" #: ../Expense/expense.c:123 msgid "Singapore" msgstr "" #: ../Expense/expense.c:124 msgid "Spain" msgstr "Spanien" #: ../Expense/expense.c:125 msgid "Sweden" msgstr "Schweden" #: ../Expense/expense.c:126 msgid "Switzerland" msgstr "Schweiz" #: ../Expense/expense.c:127 #, fuzzy msgid "Taiwan" msgstr "Eisenbahn" #: ../Expense/expense.c:128 #, fuzzy msgid "Thailand" msgstr "Finnland" #: ../Expense/expense.c:129 msgid "United Kingdom" msgstr "" #: ../Expense/expense.c:130 msgid "United States" msgstr "" #: ../Expense/expense.c:518 ../Expense/expense.c:529 msgid "Expense" msgstr "Kosten" #: ../Expense/expense.c:550 ../Expense/expense.c:1388 msgid "Airfare" msgstr "Flugkosten" #: ../Expense/expense.c:552 ../Expense/expense.c:1389 msgid "Breakfast" msgstr "Frhstck" #: ../Expense/expense.c:554 ../Expense/expense.c:1390 msgid "Bus" msgstr "Bus" #: ../Expense/expense.c:556 ../Expense/expense.c:1391 msgid "BusinessMeals" msgstr "Geschftsessen" #: ../Expense/expense.c:558 ../Expense/expense.c:1392 msgid "CarRental" msgstr "Autoverleih" #: ../Expense/expense.c:560 ../Expense/expense.c:1393 msgid "Dinner" msgstr "Abendessen" #: ../Expense/expense.c:562 ../Expense/expense.c:1394 msgid "Entertainment" msgstr "Unterhaltung" #: ../Expense/expense.c:564 ../Expense/expense.c:1395 msgid "Fax" msgstr "Fax" #: ../Expense/expense.c:566 ../Expense/expense.c:1396 msgid "Gas" msgstr "Benzin" #: ../Expense/expense.c:568 ../Expense/expense.c:1397 msgid "Gifts" msgstr "Geschenke" #: ../Expense/expense.c:570 ../Expense/expense.c:1398 msgid "Hotel" msgstr "Hotel" #: ../Expense/expense.c:572 ../Expense/expense.c:1399 msgid "Incidentals" msgstr "Nebenkosten" #: ../Expense/expense.c:574 ../Expense/expense.c:1400 msgid "Laundry" msgstr "Wscherei" #: ../Expense/expense.c:576 ../Expense/expense.c:1401 msgid "Limo" msgstr "Limousine" #: ../Expense/expense.c:578 ../Expense/expense.c:1402 msgid "Lodging" msgstr "Unterkunft" #: ../Expense/expense.c:580 ../Expense/expense.c:1403 msgid "Lunch" msgstr "Mittagessen" #: ../Expense/expense.c:582 ../Expense/expense.c:1404 msgid "Mileage" msgstr "Kilometergeld" #: ../Expense/expense.c:586 ../Expense/expense.c:1406 msgid "Parking" msgstr "Parken" #: ../Expense/expense.c:588 ../Expense/expense.c:1407 msgid "Postage" msgstr "Porto" #: ../Expense/expense.c:590 ../Expense/expense.c:1408 msgid "Snack" msgstr "Imbiss" #: ../Expense/expense.c:592 ../Expense/expense.c:1409 msgid "Subway" msgstr "U-Bahn" #: ../Expense/expense.c:594 ../Expense/expense.c:1410 msgid "Supplies" msgstr "Zubehr" #: ../Expense/expense.c:596 ../Expense/expense.c:1411 msgid "Taxi" msgstr "Taxi" #: ../Expense/expense.c:598 ../Expense/expense.c:1412 msgid "Telephone" msgstr "Telefon" #: ../Expense/expense.c:600 ../Expense/expense.c:1413 msgid "Tips" msgstr "Trinkgeld" #: ../Expense/expense.c:602 ../Expense/expense.c:1414 msgid "Tolls" msgstr "Maut" #: ../Expense/expense.c:604 ../Expense/expense.c:1415 msgid "Train" msgstr "Eisenbahn" #: ../Expense/expense.c:1239 msgid "Expense: Unknown expense type\n" msgstr "" #: ../Expense/expense.c:1245 msgid "Expense: Unknown payment type\n" msgstr "" #: ../Expense/expense.c:1377 msgid "American Express" msgstr "American Express" #: ../Expense/expense.c:1378 msgid "Cash" msgstr "Bar" #: ../Expense/expense.c:1379 msgid "Check" msgstr "Scheck" #: ../Expense/expense.c:1380 msgid "Credit Card" msgstr "Kreditkarte" #: ../Expense/expense.c:1381 msgid "Master Card" msgstr "Master Card" #: ../Expense/expense.c:1382 msgid "Prepaid" msgstr "Vorausbezahlt" #: ../Expense/expense.c:1383 msgid "VISA" msgstr "VISA" #: ../Expense/expense.c:1619 #, fuzzy msgid "Type" msgstr "Typ: " #: ../Expense/expense.c:1620 #, fuzzy msgid "Amount" msgstr "Betrag: " #. Category Menu #: ../Expense/expense.c:1704 #, fuzzy msgid "Category:" msgstr "Kategorie:" #. Type Menu #: ../Expense/expense.c:1712 #, fuzzy msgid "Type:" msgstr "Typ: " #. Payment Menu #: ../Expense/expense.c:1720 #, fuzzy msgid "Payment:" msgstr "Bezahlung: " #. Currency Menu #: ../Expense/expense.c:1728 #, fuzzy msgid "Currency:" msgstr "Whrung: " #: ../Expense/expense.c:1748 msgid "Month:" msgstr "Monat:" #: ../Expense/expense.c:1762 msgid "Day:" msgstr "Tag:" # msgid "WeekView" # msgstr "Woche" # msgid "MonthView" # msgstr "Monat" #: ../Expense/expense.c:1776 msgid "Year:" msgstr "Jahr:" #. Amount Entry #: ../Expense/expense.c:1789 #, fuzzy msgid "Amount:" msgstr "Betrag: " #. Vendor Entry #: ../Expense/expense.c:1799 #, fuzzy msgid "Vendor:" msgstr "Verkufer: " #. City #: ../Expense/expense.c:1809 #, fuzzy msgid "City:" msgstr "Stadt:" #. Attendees #: ../Expense/expense.c:1819 msgid "Attendees" msgstr "Teilnehmer" #. ------------------------------------------- #: ../Expense/expense.c:2102 #, fuzzy, c-format msgid "" "%s\n" "\n" "Expense plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org" msgstr "" "%s wurde geschrieben von \n" "Judd Montgomery (c) 1999-2001.\n" "judd@jpilot.org\n" "http://jpilot.org\n" #: ../KeyRing/keyring.c:291 msgid "KeyRing: pack_KeyRing(): buf_size too small\n" msgstr "" #: ../KeyRing/keyring.c:1699 msgid "Incorrect, Reenter KeyRing Password" msgstr "Falsches KeyRing Passwort. Bitte erneut eingeben" #: ../KeyRing/keyring.c:1701 msgid "Enter a NEW KeyRing Password" msgstr "Bitte NEUES KeyRing Passwort eingeben" #: ../KeyRing/keyring.c:1703 msgid "Enter KeyRing Password" msgstr "Bitte KeyRing Passwort eingeben" #: ../KeyRing/keyring.c:1769 #, c-format msgid "KeyRing: file %s not found.\n" msgstr "" #: ../KeyRing/keyring.c:1770 msgid "KeyRing: Try Syncing.\n" msgstr "" #: ../KeyRing/keyring.c:1861 ../KeyRing/keyring.c:1872 msgid "KeyRing" msgstr "" #. ------------------------------------------- #: ../KeyRing/keyring.c:1900 #, fuzzy, c-format msgid "" "%s\n" "\n" "KeyRing plugin for J-Pilot was written by\n" "Judd Montgomery (c) 2001.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "KeyRing is a free PalmOS program for storing\n" "passwords and other information in encrypted form\n" "http://gnukeyring.sourceforge.net" msgstr "" "%s wurde geschrieben von \n" "Judd Montgomery (c) 1999-2001.\n" "judd@jpilot.org\n" "http://jpilot.org\n" #: ../KeyRing/keyring.c:2137 #, c-format msgid "" "Keys exported from %s %s on %s\n" "\n" msgstr "" #: ../KeyRing/keyring.c:2162 #, fuzzy, c-format msgid "Can't export key %d\n" msgstr "Kann Kategorie %s nicht lschen.\n" #: ../KeyRing/keyring.c:2229 msgid "B-FOLDERS CSV" msgstr "" #. Change Password button #: ../KeyRing/keyring.c:2384 msgid "" "Change\n" "KeyRing\n" "Password" msgstr "" "ndere\n" "KeyRing}\n" "Passwort" #. Clist #: ../KeyRing/keyring.c:2497 #, fuzzy msgid "Changed" msgstr "Abbrechen" #: ../KeyRing/keyring.c:2499 msgid "Account" msgstr "Konto" #. Name entry #: ../KeyRing/keyring.c:2593 msgid "name: " msgstr "Name: " #. Account entry #: ../KeyRing/keyring.c:2601 msgid "account: " msgstr "Konto: " #. Password entry #: ../KeyRing/keyring.c:2609 msgid "password: " msgstr "Passwort: " #. Last Changed entry #: ../KeyRing/keyring.c:2616 msgid "last changed: " msgstr "" #. Generate Password button (creates random password) #: ../KeyRing/keyring.c:2626 msgid "Generate Password" msgstr "Passwort erzeugen" #: ../SyncTime/synctime.c:61 #, fuzzy msgid "SyncTime" msgstr "Merkzettel synchronisieren" #. ------------------------------------------- #: ../SyncTime/synctime.c:72 #, fuzzy, c-format msgid "" "%s\n" "\n" "SyncTime plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "SyncTime WILL NOT work with PalmOS 3.3!" msgstr "" "%s wurde geschrieben von \n" "Judd Montgomery (c) 1999-2001.\n" "judd@jpilot.org\n" "http://jpilot.org\n" #: ../SyncTime/synctime.c:106 msgid "synctime: Palm OS Version 3.25 and 3.30 do not support SyncTime\n" msgstr "" #: ../SyncTime/synctime.c:107 msgid "synctime: NOT setting the time on the pilot\n" msgstr "" #: ../SyncTime/synctime.c:112 msgid "synctime: Setting the time on the pilot... " msgstr "" #: ../SyncTime/synctime.c:117 #, fuzzy msgid "Done\n" msgstr "Fertig" #, fuzzy #~ msgid "Serial Port" #~ msgstr "Schnittstellengeschwindigkeit" #, fuzzy #~ msgid "Field" #~ msgstr "Finnland" #~ msgid "kana(" #~ msgstr "kana(" #~ msgid "Quick View" #~ msgstr "Kurzansicht" #, fuzzy #~ msgid "Unable to open %s%s file\n" #~ msgstr "Kann %s nicht ffnen\n" #, fuzzy #~ msgid "Unable to open %s.alarms file\n" #~ msgstr "Kann %s nicht ffnen\n" #~ msgid "You can't edit category %s.\n" #~ msgstr "Kann Kategorie %s nicht editieren.\n" #~ msgid "You can't delete category %s.\n" #~ msgstr "Kann Kategorie %s nicht lschen.\n" #, fuzzy #~ msgid "category name" #~ msgstr "Kategorie:" #~ msgid "debug" #~ msgstr "debug" #~ msgid "Close" #~ msgstr "Schlieen" #~ msgid "none" #~ msgstr "Keiner" #, fuzzy #~ msgid "W" #~ msgstr "Mi" #, fuzzy #~ msgid "M" #~ msgstr "Mo" #~ msgid "This Event has no particular time" #~ msgstr "Keine Zeitangabe" #~ msgid "Start Time" #~ msgstr "Startzeit" #~ msgid "End Time" #~ msgstr "Endzeit" #~ msgid "Dismiss" #~ msgstr "Verlassen" #~ msgid "Done" #~ msgstr "Fertig" #~ msgid "Add" #~ msgstr "Hinzufgen" #, fuzzy #~ msgid "User name" #~ msgstr "Benutzername" #~ msgid "/Help/PayBack program" #~ msgstr "/Hilfe/PayBack program" #~ msgid "Clear" #~ msgstr "Lschen" #, fuzzy #~ msgid "Show private records" #~ msgstr "Private Eintrge anzeigen" #, fuzzy #~ msgid "Hide private records" #~ msgstr "Private Eintrge verbergen" #, fuzzy #~ msgid "Mask private records" #~ msgstr "Private Eintrge maskieren (---)" #~ msgid "Font" #~ msgstr "Schrift" #, fuzzy #~ msgid "Couldn't open PC records file\n" #~ msgstr "Kann Datei %s nicht ffnen.\n" #~ msgid "The first day of the week is " #~ msgstr "Erster Wochentag ist " #~ msgid "Serial Port (/dev/ttyS0, /dev/pilot)" #~ msgstr "Serielle Schnittstelle (/dev/ttyS0, /dev/pilot)" #~ msgid "Sync memo32 (pedit32)" #~ msgstr "Memo32 (pedit32) synchronisieren" #~ msgid "One record" #~ msgstr "Einen Eintrag" #, fuzzy #~ msgid "%s: press the hotsync button on the cradle or \"kill %d\"\n" #~ msgstr " Hot-Sync Knopf jetzt drcken\n" #~ msgid "Finished\n" #~ msgstr "Fertig!\n" #~ msgid "Last Username = [%s]\n" #~ msgstr "Letzter Username = [%s]\n" #~ msgid "Last UserID = %d\n" #~ msgstr "Letzte BenutzerID = %d\n" #~ msgid "Username = [%s]\n" #~ msgstr "Benutzername = [%s]\n" #~ msgid "userID = %d\n" #~ msgstr "BenutzerID = %d\n" #~ msgid "palm: number of records = %d\n" #~ msgstr "Palm: Anzahl der Eintrge: %d\n" #~ msgid "disk: number of records = %d\n" #~ msgstr "Disk: Anzahl der Eintrge: %d\n" #, fuzzy #~ msgid "" #~ "%s doesn't appear to be a directory.\n" #~ "I need it to be.\n" #~ msgstr "Diese Datei scheint nicht im address.dat Format zu sein\n" #~ msgid "AmEx" #~ msgstr "AmEx" #~ msgid "CreditCard" #~ msgstr "Kreditkarte" #~ msgid "MasterCard" #~ msgstr "MasterCard" #~ msgid "Quit" #~ msgstr "Beenden" #~ msgid "Help" #~ msgstr "Hilfe" #, fuzzy #~ msgid "Directory" #~ msgstr "%s ist ein Verzeichnis" #~ msgid "Overwrite File" #~ msgstr "Datei berschreiben" #, fuzzy #~ msgid "Filename" #~ msgstr "Umbenennen" #~ msgid "Sync" #~ msgstr "Sync" #, fuzzy #~ msgid "Cancel the modifications ESC" #~ msgstr "Kompiliert mit folgenden Optionen:" #, fuzzy #~ msgid "Add the new record Ctrl+Enter" #~ msgstr "Private Eintrge verbergen" #~ msgid "Backup" #~ msgstr "Backup" #~ msgid "Quit!" #~ msgstr "Beenden!" #, fuzzy #~ msgid "Show Preferences" #~ msgstr "Einstellungen" #~ msgid "About Expense" #~ msgstr "ber Kosten" #, fuzzy #~ msgid "About KeyRing" #~ msgstr "ber Kosten" #~ msgid "\n" #~ msgstr "\n" #, fuzzy #~ msgid "" #~ " [-v] || [-h] || [-d] || [-a] || [-A] || [-i]\n" #~ " -v displays version and compile options and exits.\n" #~ " -h displays help and exits.\n" #~ " -d displays debug info to stdout.\n" #~ " -p do not load plugins.\n" #~ " -a ignore missed alarms since the last time this program was run.\n" #~ " -A ignore all alarms, past and future.\n" #~ " -i makes jpilot iconify itself upon launch\n" #~ " The PILOTPORT, and PILOTRATE env variables are used to specify\n" #~ " which port to sync on, and at what speed.\n" #~ " If PILOTPORT is not set then it defaults to /dev/pilot.\n" #~ msgstr "" #~ " [ [-v] || [-h] || [-d] || [-a] || [-A]\n" #~ " -v zeigt die Version an und beendet das Programm.\n" #~ " -h zeigt Hilfetexte an und beendet das Programm.\n" #~ " -d gibt debugging Informationen nach stdout aus.\n" #~ " -p keine plugins laden.\n" #~ " -a ignoriere abgelaufene Alarmmeldungen seit dem letzten " #~ "Programmaufruf.\n" #~ " -A Alle Alarmmeldungen ignorieren, abgelaufene und zuknftige.\n" #~ " Die Umgebungsvariablen PILOTPORT und PILOTRATE werden genutzt,\n" #~ " um zu bestimmen, an welchem Port mit welcher Geschwindigkeit der " #~ "HotSync\n" #~ " durchgefhrt wird.\n" #~ " Wenn PILOTPORT nicht gesetzt ist, dann wird /dev/pilot angenommen.\n" #~ msgid "slow_sync_application(): Out of memory\n" #~ msgstr "slow_sync_application(): Nicht genug Speicher\n" #~ msgid "dlp_WriteRecord failed\n" #~ msgstr "dlp_EintragSchreiben fehlgeschlagen\n" #~ msgid "" #~ "\n" #~ "Unable to open '%s'!\n" #~ msgstr "" #~ "\n" #~ "Kann '%s' nicht ffnen!\n" #~ msgid "Cannot open %s_to_install file\n" #~ msgstr "Kann Datei %s_to_install nicht ffnen\n" #~ msgid "Cannot open %s_to_install.tmp file\n" #~ msgstr "Kann Datei %s_to_install.tmp nicht ffnen\n" #~ msgid "fast_sync_local_recs(): Out of memory\n" #~ msgstr "fast_sync_local_recs(): Nicht gengend Speicher\n" #~ msgid "Error reading at %s : %s %d\n" #~ msgstr "Fehler beim Lesen von %s : %s %d\n" #~ msgid "Warning ToDo description too long, truncating to %d\n" #~ msgstr "" #~ "Warnung: Aufgaben-Beschreibung ist zu lang, wurde auf %d abgeschnitten.\n" #~ msgid "/Web/Netscape/%s" #~ msgstr "/Web/Netscape/%s" #~ msgid "/Web/Mozilla/%s" #~ msgstr "/Web/Mozilla/%s" #~ msgid "/Web/Galeon/%s" #~ msgstr "/Web/Galeon/%s" #~ msgid "/Web/Opera/%s" #~ msgstr "/Web/Opera/%s" #~ msgid "/Web/GnomeUrl/%s" #~ msgstr "/Web/GnomeUrl/%s" #~ msgid "/Web/Lynx/%s" #~ msgstr "/Web/Lynx/%s" #~ msgid "/Web/Links/%s" #~ msgstr "/Web/Links/%s" #~ msgid "/Web/W3M/%s" #~ msgstr "/Web/W3M/%s" #~ msgid "/Web/Konqueror/%s" #~ msgstr "/Web/Konqueror/%s" #~ msgid "Holland" #~ msgstr "Holland" #~ msgid "U.K." #~ msgstr "Grobritannien" #~ msgid "U.S.A." #~ msgstr "U.S.A." #, fuzzy #~ msgid "Cannot open " #~ msgstr "Kann Log-File nicht ffnen\n" #~ msgid "Time:" #~ msgstr "Zeit:" #~ msgid "RTh" #~ msgstr "Do" #, fuzzy #~ msgid "Last Syned UserID-->\"%d\"\n" #~ msgstr "Letzte BenutzerID -->\"%d\"\n" jpilot-1.8.1.2/po/rw.po0000644000175000017500000025456511702307204011526 00000000000000# Kinyarwanda translations for jpilot package. # Copyright (C) 2005 Free Software Foundation, Inc. # This file is distributed under the same license as the jpilot package. # Steve Murphy , 2005. # Steve performed initial rough translation from compendium built from translations provided by the following translators: # Philibert Ndandali , 2005. # Viateur MUGENZI , 2005. # Noëlla Mupole , 2005. # Carole Karema , 2005. # JEAN BAPTISTE NGENDAHAYO , 2005. # Augustin KIBERWA , 2005. # Donatien NSENGIYUMVA , 2005. # Antoine Bigirimana , 2005. # msgid "" msgstr "" "Project-Id-Version: jpilot 0.99.8-pre3\n" "Report-Msgid-Bugs-To: jpilot-devel@jpilot.org\n" "POT-Creation-Date: 2012-01-08 13:39+0100\n" "PO-Revision-Date: 2005-04-04 10:55-0700\n" "Last-Translator: Steven Michael Murphy \n" "Language-Team: Kinyarwanda \n" "Language: rw\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../address.c:276 ../address.c:448 ../alarms.c:332 ../calendar.c:309 #: ../calendar.c:547 ../contact.c:324 ../contact.c:738 ../dat.c:189 #: ../dat.c:655 ../dat.c:859 ../dat.c:993 ../dat.c:1132 ../datebook.c:130 #: ../datebook.c:165 ../datebook.c:172 ../datebook.c:231 ../jpilot.c:1254 #: ../jpilot-merge.c:95 ../libplugin.c:208 ../libplugin.c:455 #: ../libplugin.c:534 ../libplugin.c:563 ../libplugin.c:811 ../memo.c:214 #: ../memo.c:287 ../otherconv.c:280 ../plugins.c:112 ../prefs.c:350 #: ../prefs.c:375 ../prefs.c:906 ../sync.c:2170 ../sync.c:2187 ../sync.c:2296 #: ../sync.c:2310 ../sync.c:2507 ../sync.c:2646 ../todo.c:236 ../todo.c:490 #: ../utils.c:748 #, c-format msgid "Out of memory" msgstr "Ububiko bwarenzwe" #: ../address.c:332 ../calendar.c:230 ../contact.c:580 ../datebook.c:494 #: ../memo.c:87 ../todo.c:90 #, fuzzy, c-format msgid "%s:%d Error reading application info %s\n" msgstr "%s:%dIcyiciro Ibisobanuro" # svtools/source\misc\errtxt.src:RID_ERRHDL.ERRCODE_SFX_DOLOADFAILED.text #: ../address.c:344 ../address_gui.c:2285 ../address_gui.c:2324 #: ../calendar.c:246 ../contact.c:596 ../datebook.c:514 ../datebook_gui.c:3737 #: ../libplugin.c:405 ../libplugin.c:431 ../memo.c:99 ../memo_gui.c:863 #: ../todo_gui.c:1070 ../Expense/expense.c:1105 #, fuzzy, c-format msgid "Error reading file: %s\n" msgstr "Ikosa mu gusoma idosiye" #: ../address.c:492 ../calendar.c:598 ../calendar.c:607 ../contact.c:780 #: ../libplugin.c:846 ../memo.c:353 ../todo.c:302 ../utils.c:1124 #: ../utils.c:1131 ../utils.c:1138 ../utils.c:1145 ../utils.c:1152 #: ../utils.c:1159 #, fuzzy msgid "error" msgstr "Ikosa" #: ../address_gui.c:325 ../datebook_gui.c:2844 ../memo_gui.c:176 #: ../todo_gui.c:292 ../KeyRing/keyring.c:834 #, fuzzy msgid "" "This record is deleted.\n" "Undelete it or copy it to make changes.\n" msgstr "Icyabitswe ni Cyasibwe Cyangwa Gukoporora Kuri Ubwoko Amahinduka" #: ../address_gui.c:452 ../address_gui.c:458 ../address_gui.c:469 #: ../address_gui.c:481 ../address_gui.c:493 ../address_gui.c:506 #, c-format msgid "%s%s: %s" msgstr "" #: ../address_gui.c:542 ../category.c:118 ../category.c:176 ../category.c:330 #: ../category.c:336 ../datebook_gui.c:430 ../jpilot-merge.c:88 #: ../jpilot-merge.c:146 ../jpilot-merge.c:151 ../memo_gui.c:280 #: ../sync.c:2129 ../sync.c:2135 ../sync.c:2481 ../sync.c:2842 #: ../todo_gui.c:416 ../utils.c:2674 ../utils.c:2711 ../utils.c:2717 #: ../utils.c:2776 ../utils.c:2782 ../utils.c:2836 ../utils.c:2890 #: ../utils.c:2896 ../utils.c:2954 ../utils.c:2961 #, fuzzy, c-format msgid "Unable to open file: %s\n" msgstr "Kuri Gufungura IDOSIYE" #: ../address_gui.c:561 #, fuzzy, c-format msgid "Unable to read file: %s\n" msgstr "Kuri Gufungura IDOSIYE" #: ../address_gui.c:715 #, fuzzy msgid "File doesn't appear to be address.dat format\n" msgstr "Idosiye Kugaragara Kuri Aderesi" #: ../address_gui.c:725 ../datebook_gui.c:647 ../memo_gui.c:324 #: ../memo_gui.c:417 ../todo_gui.c:542 ../Expense/expense.c:1384 msgid "Unfiled" msgstr "" #: ../address_gui.c:781 ../datebook_gui.c:698 ../memo_gui.c:470 #: ../todo_gui.c:595 msgid "CSV (Comma Separated Values)" msgstr "" #: ../address_gui.c:782 msgid "DAT/ABA (Palm Archive Formats)" msgstr "" #. current category name #. previous category name #. entry text, in Pilot character set #: ../address_gui.c:868 ../category.c:408 ../datebook_gui.c:729 #: ../jpilot.c:234 ../jpilot.c:278 ../jpilot.c:352 ../jpilot.c:396 #: ../jpilot.c:953 ../memo_gui.c:506 ../todo_gui.c:635 ../utils.c:1305 #: ../KeyRing/keyring.c:2090 msgid "OK" msgstr "OKE" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "No" msgstr "Oya" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "Yes" msgstr "Yego" #: ../address_gui.c:888 ../datebook_gui.c:753 ../memo_gui.c:520 #: ../todo_gui.c:655 ../KeyRing/keyring.c:2104 #, fuzzy, c-format msgid "%s is a directory" msgstr "%sni a bushyinguro" # basctl/source\basicide\basidesh.src:RID_STR_ERROROPENSTORAGE.text #: ../address_gui.c:890 ../address_gui.c:907 ../datebook_gui.c:755 #: ../datebook_gui.c:772 ../memo_gui.c:522 ../memo_gui.c:539 ../todo_gui.c:657 #: ../todo_gui.c:674 ../KeyRing/keyring.c:2106 ../KeyRing/keyring.c:2123 #, fuzzy msgid "Error Opening File" msgstr "Hari ikibazo mu gufungura dosiye" #: ../address_gui.c:894 ../datebook_gui.c:759 ../memo_gui.c:526 #: ../todo_gui.c:661 ../KeyRing/keyring.c:2110 #, fuzzy, c-format msgid "Do you want to overwrite file %s?" msgstr "Kuri Guhindura IDOSIYE" #: ../address_gui.c:896 ../datebook_gui.c:761 ../memo_gui.c:528 #: ../todo_gui.c:663 ../KeyRing/keyring.c:2112 #, fuzzy msgid "Overwrite File?" msgstr "Gusimbuza Idosiye" # basctl/source\basicide\basidesh.src:RID_STR_ERROROPENSTORAGE.text #: ../address_gui.c:905 ../datebook_gui.c:770 ../memo_gui.c:537 #: ../todo_gui.c:672 ../KeyRing/keyring.c:2121 #, fuzzy, c-format msgid "Error opening file: %s" msgstr "Hari ikibazo mu gufungura dosiye" #: ../address_gui.c:922 #, c-format msgid "" "Address exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:925 #, c-format msgid "" "Contact exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:989 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ldif file may not be standards-compliant\n" msgstr "" #: ../address_gui.c:1002 #, fuzzy, c-format msgid "Can't export address %d\n" msgstr "Kohereza Aderesi" # so3/src\svuidlg.src:MD_DDE_LINKEDIT.FT_DDE_ITEM.text #: ../address_gui.c:1008 ../memo_gui.c:630 ../todo_gui.c:760 #, fuzzy, c-format msgid "Category: %s\n" msgstr "Icyiciro" #: ../address_gui.c:1010 ../memo_gui.c:632 ../todo_gui.c:763 #, fuzzy, c-format msgid "Private: %s\n" msgstr "By'umwihariko" #: ../address_gui.c:1018 ../address_gui.c:1032 ../address_gui.c:1036 #: ../address_gui.c:1045 ../address_gui.c:1048 #, c-format msgid "%s: " msgstr "" #: ../address_gui.c:1022 #, c-format msgid "%s\n" msgstr "" #. E-mail should be the Palm dropdown menu item for email #. Set dial/email button text and callback data #: ../address_gui.c:1196 ../address_gui.c:2846 ../address_gui.c:4185 msgid "E-mail" msgstr "ubutumwa nterineti/elegitoroniki" #: ../address_gui.c:1482 ../datebook_gui.c:1147 ../memo_gui.c:640 #: ../todo_gui.c:844 ../KeyRing/keyring.c:2214 #, fuzzy msgid "Unknown export type\n" msgstr "Kohereza" #: ../address_gui.c:1508 ../datebook_gui.c:1226 ../memo_gui.c:469 #: ../memo_gui.c:666 ../todo_gui.c:870 ../KeyRing/keyring.c:2229 msgid "Text" msgstr "" #: ../address_gui.c:1509 ../datebook_gui.c:1227 ../memo_gui.c:667 #: ../todo_gui.c:871 ../KeyRing/keyring.c:2229 msgid "CSV" msgstr "" #: ../address_gui.c:1510 #, fuzzy msgid "vCard" msgstr "bigaragara,kigaragara" #: ../address_gui.c:1511 msgid "vCard (Optimized for Gmail/Android Import)" msgstr "" #: ../address_gui.c:1512 msgid "ldif" msgstr "" #. Initialize variable if default case taken #: ../address_gui.c:1777 ../address_gui.c:3902 msgid "Last Name/Company" msgstr "" #: ../address_gui.c:1780 ../address_gui.c:3905 msgid "First Name/Company" msgstr "" #: ../address_gui.c:1783 ../address_gui.c:3908 #, fuzzy msgid "Company/Last Name" msgstr "Izina ry'Ikigo:" #: ../address_gui.c:1920 ../datebook_gui.c:2907 ../memo_gui.c:1036 #: ../todo_gui.c:1329 ../KeyRing/keyring.c:1181 #, fuzzy msgid "You can't modify a record that is deleted\n" msgstr "Guhindura a Icyabitswe ni" #. Illegal category, Assume that category 0 is Unfiled and valid #: ../address_gui.c:2119 ../address_gui.c:2370 ../address_gui.c:2803 #: ../address_gui.c:2809 ../address_gui.c:3601 ../datebook_gui.c:1994 #: ../datebook_gui.c:3434 ../datebook_gui.c:3783 ../datebook_gui.c:4074 #: ../memo_gui.c:900 ../memo_gui.c:946 ../memo_gui.c:1161 ../memo_gui.c:1548 #: ../todo_gui.c:1106 ../todo_gui.c:1200 ../todo_gui.c:1589 ../todo_gui.c:2141 #: ../Expense/expense.c:689 ../Expense/expense.c:1143 #: ../Expense/expense.c:1227 ../Expense/expense.c:1887 #: ../KeyRing/keyring.c:1070 ../KeyRing/keyring.c:1512 #: ../KeyRing/keyring.c:1574 ../KeyRing/keyring.c:2688 #, fuzzy msgid "Category is not legal\n" msgstr "ni OYA" #: ../address_gui.c:2179 ../alarms.c:598 ../dialer.c:164 #, fuzzy, c-format msgid "executing command = [%s]\n" msgstr "Gukora: %s]%s Komandi:" #: ../address_gui.c:2181 #, fuzzy, c-format msgid "Failed to execute [%s]\n" msgstr "Kuri Kurema IDOSIYE" #: ../address_gui.c:2425 msgid "Birthday" msgstr "" #: ../address_gui.c:2521 msgid "External program not found, or other error" msgstr "" #: ../address_gui.c:2523 msgid "" "J-Pilot can not find the external program \"convert\"\n" "or an error occurred while executing convert.\n" "You may need to install package ImageMagick" msgstr "" #: ../address_gui.c:2524 #, c-format msgid "Command executed was \"%s\"\n" msgstr "" #: ../address_gui.c:2525 #, c-format msgid "return code was %d\n" msgstr "" #: ../address_gui.c:2603 msgid "chdir() failed\n" msgstr "" #: ../address_gui.c:2606 msgid "Add Photo" msgstr "" # so3/src\svuidlg.src:MD_DDE_LINKEDIT.FT_DDE_ITEM.text #. Category menu #: ../address_gui.c:2828 ../KeyRing/keyring.c:2585 #, fuzzy msgid "Category: " msgstr "Icyiciro" #: ../address_gui.c:2848 ../address_gui.c:4186 msgid "Mail" msgstr "Ubutumwa" #. Dial Phone Button #: ../address_gui.c:2851 ../address_gui.c:4189 ../dialer.c:307 ../dialer.c:331 msgid "Dial" msgstr "" #: ../address_gui.c:3041 ../datebook_gui.c:2757 ../memo_gui.c:1228 #: ../todo_gui.c:1697 msgid "Could not get temporary file name\n" msgstr "" #: ../address_gui.c:3049 ../datebook_gui.c:2765 ../memo_gui.c:1236 #: ../todo_gui.c:1705 msgid "Could not open temporary file for external editor\n" msgstr "" #: ../address_gui.c:3089 ../datebook_gui.c:2806 ../memo_gui.c:1277 #: ../todo_gui.c:1746 msgid "Could not open temporary file from external editor\n" msgstr "" #: ../address_gui.c:3261 ../address_gui.c:3292 #, fuzzy msgid "-Unnamed-" msgstr "-kitiswe-" #: ../address_gui.c:3374 ../memo_gui.c:1454 ../todo_gui.c:2019 #, fuzzy msgid "0 records" msgstr "0 Ibyabitswe" #: ../address_gui.c:3377 ../datebook_gui.c:2637 ../memo_gui.c:1457 #: ../todo_gui.c:2022 #, fuzzy, c-format msgid "%d of %d records" msgstr "%dBya Ibyabitswe" #: ../address_gui.c:3772 ../address_gui.c:3780 ../KeyRing/keyring.c:2498 msgid "Name" msgstr "Izina" #: ../address_gui.c:3773 ../address_gui.c:3774 ../address_gui.c:3775 #: ../address_gui.c:3781 msgid "Address" msgstr "Aderesi" #: ../address_gui.c:3776 ../address_gui.c:3782 ../Expense/expense.c:584 #: ../Expense/expense.c:1405 msgid "Other" msgstr "Ikindi" #. Note textbox #: ../address_gui.c:3777 ../address_gui.c:3783 ../todo_gui.c:2484 #: ../Expense/expense.c:1836 ../KeyRing/keyring.c:2632 msgid "Note" msgstr "Igisobanuro" #: ../address_gui.c:3793 msgid "Reverting to Address database\n" msgstr "" #: ../address_gui.c:3914 msgid "Phone" msgstr "Telefone" #: ../address_gui.c:3946 msgid "Quick Find: " msgstr "" #. Cancel button #. Add record modification buttons #. Cancel button #: ../address_gui.c:3964 ../category.c:409 ../datebook_gui.c:1782 #: ../datebook_gui.c:5124 ../memo_gui.c:1692 ../todo_gui.c:2345 #: ../utils.c:1346 ../KeyRing/keyring.c:2528 msgid "Cancel" msgstr "Kureka" #: ../address_gui.c:3964 ../datebook_gui.c:5124 ../memo_gui.c:1692 #: ../todo_gui.c:2345 ../KeyRing/keyring.c:2528 #, fuzzy msgid "Cancel the modifications" msgstr "i" #. Delete Button #. Delete button #. Delete Button #. Delete button #. Delete, Copy, New, etc. buttons #. Delete button #: ../address_gui.c:3969 ../category.c:409 ../category.c:852 #: ../datebook_gui.c:5129 ../memo_gui.c:1697 ../todo_gui.c:2350 #: ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete" msgstr "Gusiba" #: ../address_gui.c:3969 ../datebook_gui.c:5129 ../memo_gui.c:1697 #: ../todo_gui.c:2350 ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 #, fuzzy msgid "Delete the selected record" msgstr "i Byahiswemo Icyabitswe" #. Undelete Button #. Undelete button #. Undelete Button #. Undelete button #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 msgid "Undelete" msgstr "" #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 #, fuzzy msgid "Undelete the selected record" msgstr "i Byahiswemo Icyabitswe" #. Copy button #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy" msgstr "Guporora" #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 #, fuzzy msgid "Copy the selected record" msgstr "i Byahiswemo Icyabitswe" #. New button #. New Record button #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "New Record" msgstr "Icyabitswe Gishya" #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 #, fuzzy msgid "Add a new record" msgstr "a Gishya Icyabitswe" #. "Add Record" button #. Add Record button #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add Record" msgstr "" #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 #, fuzzy msgid "Add the new record" msgstr "i Gishya Icyabitswe" #. "Apply Changes" button #. Apply Changes button #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Apply Changes" msgstr "" #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 #, fuzzy msgid "Commit the modifications" msgstr "i" #. Private check box #. Private checkbox #: ../address_gui.c:4033 ../datebook_gui.c:5191 ../datebook_gui.c:5233 #: ../memo_gui.c:1747 ../todo_gui.c:2410 msgid "Private" msgstr "By'umwihariko" #: ../address_gui.c:4118 #, fuzzy msgid "Change Photo" msgstr "Kureka" #: ../address_gui.c:4123 #, fuzzy msgid "Remove Photo" msgstr "Gukuraho" #: ../address_gui.c:4195 msgid "Show In List" msgstr "" #: ../address_gui.c:4296 msgid "Reminder" msgstr "" #: ../address_gui.c:4312 ../datebook_gui.c:238 ../datebook_gui.c:5221 #: ../datebook_gui.c:5378 msgid "Days" msgstr "Iminsi" #. The Quickview (ALL) page #. All button #: ../address_gui.c:4356 ../datebook_gui.c:1478 ../datebook_gui.c:1782 #: ../utils.c:2528 msgid "All" msgstr "Byose" #: ../alarms.c:232 ../datebook_gui.c:236 ../datebook_gui.c:5215 #: ../datebook_gui.c:5372 msgid "Minutes" msgstr "Iminota" #: ../alarms.c:234 ../datebook_gui.c:237 ../datebook_gui.c:5219 #: ../datebook_gui.c:5376 msgid "Hours" msgstr "amasaha" #: ../alarms.c:255 msgid "Remind me" msgstr "" #: ../alarms.c:425 ../alarms.c:991 ../sync.c:1639 ../sync.c:1645 #: ../utils.c:3717 #, fuzzy, c-format msgid "Unable to open file: %s%s\n" msgstr "Kuri Gufungura IDOSIYE" #: ../alarms.c:512 msgid "Appointment Reminder" msgstr "" #: ../alarms.c:515 msgid "Past Appointment" msgstr "" #: ../alarms.c:518 msgid "Postponed Appointment" msgstr "" #: ../alarms.c:521 ../datebook_gui.c:5025 msgid "Appointment" msgstr "" #: ../alarms.c:605 msgid "J-Pilot Alarm" msgstr "" #: ../category.c:131 ../category.c:188 ../sync.c:2158 ../sync.c:2495 #, fuzzy msgid "PC file corrupt?\n" msgstr "IDOSIYE" #: ../category.c:138 ../category.c:148 ../category.c:196 ../category.c:206 #: ../category.c:216 ../sync.c:2280 ../sync.c:2334 ../sync.c:2371 #: ../sync.c:2386 ../sync.c:2410 ../sync.c:2630 ../sync.c:2675 ../sync.c:2712 #: ../sync.c:2725 ../sync.c:2750 #, fuzzy msgid "fseek failed - fatal error\n" msgstr "Byanze" #: ../category.c:364 ../utils.c:2738 ../utils.c:2812 ../utils.c:2916 #: ../utils.c:2981 #, fuzzy msgid "rename failed" msgstr "Guhindura izina Byanze" #: ../category.c:409 msgid "Move" msgstr "Kwimura" #: ../category.c:438 ../category.c:500 ../category.c:580 ../category.c:769 msgid "Edit Categories" msgstr "Kwandika ibyiciro" #: ../category.c:439 #, fuzzy msgid "The maximum number of categories (16) are already used" msgstr "Kinini Umubare Bya Ibyiciro" #: ../category.c:442 msgid "Enter New Category" msgstr "" #: ../category.c:453 ../category.c:477 #, fuzzy msgid "Edit Categories Error" msgstr "Kwandika ibyiciro" #: ../category.c:454 #, fuzzy msgid "You must select a category to rename" msgstr "Guhitamo a Icyiciro Kuri Guhindura izina" #: ../category.c:463 msgid "Enter New Category Name" msgstr "" #: ../category.c:478 #, fuzzy msgid "You must select a category to delete" msgstr "Guhitamo a Icyiciro Kuri Gusiba" #: ../category.c:496 #, fuzzy, c-format msgid "" "There are %d records in %s.\n" "Do you want to move them to %s, or delete them?" msgstr "Ibyabitswe in Kuri Kwimura Kuri Cyangwa Gusiba" #: ../category.c:556 #, fuzzy, c-format msgid "invalid state file %s line %d\n" msgstr "Sibyo Leta IDOSIYE Umurongo" #: ../category.c:578 #, fuzzy, c-format msgid "The category %s can't be used more than once" msgstr "Icyiciro Birenzeho Rimwe" # so3/src\svuidlg.src:MD_DDE_LINKEDIT.FT_DDE_ITEM.text #. Category names in host character set #: ../category.c:735 #, fuzzy msgid "Category" msgstr "Icyiciro" #: ../category.c:836 msgid "New" msgstr "Gishya" #: ../category.c:843 msgid "Rename" msgstr "Guhindura izina" #: ../dat.c:456 #, fuzzy msgid "unknown type =" msgstr "Kitazwi Ubwoko" #: ../dat.c:537 #, fuzzy, c-format msgid "fields per row count != %d, unknown format\n" msgstr "Imyanya Urubariro IBARA Kitazwi" #: ../dat.c:551 #, fuzzy, c-format msgid "field count != %d, unknown format\n" msgstr "Umwanya IBARA Kitazwi" #: ../dat.c:559 #, fuzzy msgid "Unknown format, file has wrong schema\n" msgstr "Imiterere IDOSIYE" #: ../dat.c:560 #, fuzzy msgid "File schema is:" msgstr "Idosiye Igishushanyo ni" #: ../dat.c:564 msgid "It should be:" msgstr "" #: ../dat.c:674 ../dat.c:692 ../dat.c:876 ../dat.c:889 ../dat.c:1012 #: ../dat.c:1025 ../dat.c:1149 ../dat.c:1162 #, fuzzy, c-format msgid "%s:%d Record %d, field %d: Invalid type. Expected %d, found %d\n" msgstr "%s:%dUmwanya Ubwoko Itegerejwe Byabonetse" #: ../dat.c:675 ../dat.c:693 ../dat.c:877 ../dat.c:890 ../dat.c:994 #: ../dat.c:1013 ../dat.c:1026 ../dat.c:1150 ../dat.c:1163 #, fuzzy msgid "read of file terminated\n" msgstr "Gusoma Bya IDOSIYE" #: ../datebook.c:705 ../datebook_gui.c:3648 #, fuzzy, c-format msgid "Unknown repeatType (%d) found in DatebookDB\n" msgstr "Byabonetse in" #: ../datebook_gui.c:241 #, fuzzy msgid "Repeat Never" msgstr "ku" #: ../datebook_gui.c:242 #, fuzzy msgid "Repeat Daily" msgstr "ku" #: ../datebook_gui.c:243 #, fuzzy msgid "Repeat Weekly" msgstr "ku" #: ../datebook_gui.c:244 #, fuzzy msgid "Repeat MonthlyByDay" msgstr "ku" #: ../datebook_gui.c:245 #, fuzzy msgid "Repeat MonthlyByDate" msgstr "ku" #: ../datebook_gui.c:246 msgid "Repeat YearlyDate" msgstr "" #: ../datebook_gui.c:247 #, fuzzy msgid "Repeat YearlyDay" msgstr "ku" #: ../datebook_gui.c:250 ../datebook_gui.c:257 ../datebook_gui.c:4803 #: ../datebook_gui.c:4810 msgid "Su" msgstr "" #: ../datebook_gui.c:251 ../datebook_gui.c:4804 #, fuzzy msgid "Mo" msgstr "ukwezi" #: ../datebook_gui.c:252 ../datebook_gui.c:4805 msgid "Tu" msgstr "" #: ../datebook_gui.c:253 ../datebook_gui.c:4806 msgid "We" msgstr "Twebwe" #: ../datebook_gui.c:254 ../datebook_gui.c:4807 msgid "Th" msgstr "" #: ../datebook_gui.c:255 ../datebook_gui.c:4808 msgid "Fr" msgstr "" #: ../datebook_gui.c:256 ../datebook_gui.c:4809 msgid "Sa" msgstr "" #: ../datebook_gui.c:269 #, c-format msgid "" "Start Date: %s\n" "Time: Event" msgstr "" #: ../datebook_gui.c:277 #, c-format msgid "" "Start Date: %s\n" "Time: %s to %s" msgstr "" #: ../datebook_gui.c:287 ../datebook_gui.c:297 msgid "Unknown" msgstr "" #. End Date #: ../datebook_gui.c:300 #, fuzzy msgid "End Date: " msgstr "Impera" #: ../datebook_gui.c:302 msgid "Never" msgstr "" #: ../datebook_gui.c:308 #, c-format msgid "Repeat Frequency: %d\n" msgstr "" #: ../datebook_gui.c:316 #, c-format msgid "Monthly Repeat Day %d\n" msgstr "" #: ../datebook_gui.c:321 ../datebook_gui.c:5520 #, fuzzy msgid "Repeat on Days:" msgstr "ku" #: ../datebook_gui.c:332 #, fuzzy, c-format msgid "Number of exceptions: %d" msgstr "Umubare Bya Ibyabitswe" #: ../datebook_gui.c:338 msgid "" "\n" "more..." msgstr "" #: ../datebook_gui.c:359 ../datebook_gui.c:386 msgid "Description:" msgstr "" #: ../datebook_gui.c:360 ../datebook_gui.c:387 #, fuzzy msgid "Note:" msgstr "Igisobanuro" #: ../datebook_gui.c:362 ../datebook_gui.c:390 msgid "Alarm:" msgstr "" #: ../datebook_gui.c:363 ../datebook_gui.c:391 #, fuzzy msgid "Repeat Type:" msgstr "ku" #: ../datebook_gui.c:366 ../datebook_gui.c:394 #, fuzzy msgid "Start of Week:" msgstr "Bya Icyumweru" #: ../datebook_gui.c:388 ../datebook_gui.c:5343 msgid "Location:" msgstr "" #: ../datebook_gui.c:620 ../datebook_gui.c:2271 #, fuzzy, c-format msgid "Appointment description text > %d, truncating to %d\n" msgstr "Isobanuramiterere Umwandiko Kuri" #: ../datebook_gui.c:631 ../datebook_gui.c:1148 ../datebook_gui.c:2331 #: ../datebook_gui.c:2338 msgid "Error" msgstr "Ikosa" #: ../datebook_gui.c:632 #, fuzzy msgid "File doesn't appear to be datebook.dat format\n" msgstr "Idosiye Kugaragara Kuri" #: ../datebook_gui.c:699 msgid "DAT/DBA (Palm Archive Formats)" msgstr "" #: ../datebook_gui.c:787 #, c-format msgid "" "Datebook exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:790 #, c-format msgid "" "Calendar exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:817 ../todo_gui.c:701 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ical file may not be standards-compliant\n" msgstr "" #: ../datebook_gui.c:1148 #, fuzzy msgid "Unknown export type" msgstr "Kohereza Ubwoko" #: ../datebook_gui.c:1228 ../todo_gui.c:872 #, fuzzy msgid "iCalendar" msgstr "bigaragara,kigaragara" # filter/source\pdf\impdialog.src:RID_PDF_EXPORT_DLG.BT_OK.text # filter/source\xsltdialog\xmlfiltertestdialog.src:DLG_XML_FILTER_TEST_DIALOG.FL_EXPORT.text #: ../datebook_gui.c:1240 ../export_gui.c:251 ../jpilot.c:429 msgid "Export" msgstr "Kohereza" #. Label for instructions #: ../datebook_gui.c:1257 msgid "Export All Datebook Records" msgstr "" #: ../datebook_gui.c:1276 ../export_gui.c:316 msgid "Save as" msgstr "kubika nka" #. Browse button #: ../datebook_gui.c:1286 ../export_gui.c:329 msgid "Browse" msgstr "Gushakisha" #: ../datebook_gui.c:1432 msgid "Datebook Categories" msgstr "" #. None button #. Labels for notebook tabs #: ../datebook_gui.c:1484 ../datebook_gui.c:2026 ../datebook_gui.c:5449 msgid "None" msgstr "Ntacyo" #: ../datebook_gui.c:1633 msgid "Begin On Date" msgstr "" #: ../datebook_gui.c:1639 #, fuzzy msgid "End On Date" msgstr "Impera" #: ../datebook_gui.c:1751 ../prefs.c:451 msgid "Sunday" msgstr "" #: ../datebook_gui.c:1752 ../prefs.c:452 msgid "Monday" msgstr "" #: ../datebook_gui.c:1753 msgid "Tuesday" msgstr "" #: ../datebook_gui.c:1754 msgid "Wednesday" msgstr "" #: ../datebook_gui.c:1755 msgid "Thursday" msgstr "" #: ../datebook_gui.c:1756 msgid "Friday" msgstr "" #: ../datebook_gui.c:1757 msgid "Saturday" msgstr "" #: ../datebook_gui.c:1760 msgid "4th" msgstr "" #: ../datebook_gui.c:1760 msgid "Last" msgstr "Iheruka" #: ../datebook_gui.c:1763 #, fuzzy, c-format msgid "" "This appointment can either\n" "repeat on the 4th %s\n" "of the month, or on the last\n" "%s of the month.\n" "Which do you want?" msgstr "ku i Bya i Ukwezi Cyangwa ku i Bya i Ukwezi" #: ../datebook_gui.c:1770 ../datebook_gui.c:1786 msgid "Question?" msgstr "" #: ../datebook_gui.c:1777 #, fuzzy msgid "" "This is a repeating event.\n" "Do you want to apply these changes to\n" "only the CURRENT event,\n" "just FUTURE events, or\n" "ALL of the occurrences of this event?" msgstr "ni a Icyabaye Kuri Gukurikiza Kuri i Cyangwa Bya Bya iyi Icyabaye" # sc/source\core\src\compiler.src:RID_SC_FUNCTION_NAMES.SC_OPCODE_CURRENT.text #: ../datebook_gui.c:1782 #, fuzzy msgid "Current" msgstr "KIGEZWEHO" #: ../datebook_gui.c:1782 msgid "Future" msgstr "" #: ../datebook_gui.c:2027 msgid "day" msgstr "umunsi" # svtools/source\control\calendar.src:STR_SVT_CALENDAR_WEEK.text #: ../datebook_gui.c:2028 #, fuzzy msgid "week" msgstr "Icyumweru" #: ../datebook_gui.c:2029 msgid "month" msgstr "ukwezi" #: ../datebook_gui.c:2030 msgid "year" msgstr "umwaka" #: ../datebook_gui.c:2326 ../datebook_gui.c:2329 #, fuzzy, c-format msgid "You cannot have an appointment that repeats every %d %s(s)\n" msgstr "buri S" #: ../datebook_gui.c:2339 #, fuzzy msgid "" "You cannot have a weekly repeating appointment that doesn't repeat on any " "day of the week." msgstr "OYA a Buri kyumweru Gusubiramo ku UMUNSI Bya i Icyumweru" #. This is a timeless event #: ../datebook_gui.c:2516 ../datebook_gui.c:5264 msgid "No Time" msgstr "" #: ../datebook_gui.c:2788 ../memo_gui.c:1259 ../todo_gui.c:1728 msgid "External editor command too long to execute\n" msgstr "" #: ../datebook_gui.c:2943 msgid "Invalid Appointment" msgstr "" #: ../datebook_gui.c:2944 #, fuzzy msgid "" "The End Date of this appointment\n" "is before the start date." msgstr "Impera Bya iyi Mbere i Gutangira Itariki" #. "No Date" check box #: ../datebook_gui.c:3339 ../datebook_gui.c:5482 ../datebook_gui.c:5513 #: ../datebook_gui.c:5565 ../datebook_gui.c:5613 ../todo_gui.c:142 #: ../todo_gui.c:2454 msgid "No Date" msgstr "" #: ../datebook_gui.c:3494 #, fuzzy, c-format msgid "Error in DateBookDB or Calendar advanceUnits = %d\n" msgstr "in" #: ../datebook_gui.c:3681 #, c-format msgid "%%a., %s" msgstr "" #: ../datebook_gui.c:3686 msgid " (TODAY)" msgstr "" #. Weekview button #: ../datebook_gui.c:4934 ../datebook_gui.c:5451 msgid "Week" msgstr "Icyumweru" #: ../datebook_gui.c:4943 #, fuzzy msgid "View appointments by week Ctrl+W" msgstr "ku Icyumweru" #. Monthview button #: ../datebook_gui.c:4946 ../datebook_gui.c:5452 msgid "Month" msgstr "Ukwezi" #: ../datebook_gui.c:4955 #, fuzzy msgid "View appointments by month Ctrl+M" msgstr "ku Ukwezi" #. Make Category button #: ../datebook_gui.c:4960 msgid "Cats" msgstr "" #: ../datebook_gui.c:5024 msgid "Time" msgstr "Igihe" #. "Show ToDos" button #: ../datebook_gui.c:5067 msgid "Show ToDos" msgstr "" #: ../datebook_gui.c:5081 ../todo_gui.c:2285 msgid "Task" msgstr "Igikorwa" #: ../datebook_gui.c:5082 ../todo_gui.c:2286 msgid "Due" msgstr "" #: ../datebook_gui.c:5201 ../datebook_gui.c:5358 msgid "Alarm" msgstr "" #. Date Spinners #: ../datebook_gui.c:5241 ../Expense/expense.c:1736 #, fuzzy msgid "Date:" msgstr "Itariki" #. Start date and time #: ../datebook_gui.c:5283 #, fuzzy msgid "Start" msgstr "ku" #. End date and time #: ../datebook_gui.c:5300 #, fuzzy msgid "End" msgstr "Impera ku" #: ../datebook_gui.c:5433 msgid "DateBk Tags" msgstr "" #: ../datebook_gui.c:5450 msgid "Day" msgstr "Umunsi" #: ../datebook_gui.c:5453 msgid "Year" msgstr "Umwaka" #. "No Repeat" page for notebook #: ../datebook_gui.c:5456 #, fuzzy msgid "This event will not repeat" msgstr "Icyabaye OYA Gusubiramo" #: ../datebook_gui.c:5465 ../datebook_gui.c:5498 ../datebook_gui.c:5550 #: ../datebook_gui.c:5596 #, fuzzy msgid "Frequency is Every" msgstr "ni" #: ../datebook_gui.c:5471 msgid "Day(s)" msgstr "U(I)munsi" #: ../datebook_gui.c:5474 ../datebook_gui.c:5507 ../datebook_gui.c:5559 #: ../datebook_gui.c:5605 #, fuzzy msgid "End on" msgstr "Impera ku" #: ../datebook_gui.c:5504 #, fuzzy msgid "Week(s)" msgstr "ibyumweru" #: ../datebook_gui.c:5556 #, fuzzy msgid "Month(s)" msgstr "amezi" #: ../datebook_gui.c:5573 #, fuzzy msgid "Repeat by:" msgstr "ku" #: ../datebook_gui.c:5577 #, fuzzy msgid "Day of week" msgstr "Bya Icyumweru" #: ../datebook_gui.c:5586 ../Expense/expense.c:1618 msgid "Date" msgstr "Itariki" #: ../datebook_gui.c:5602 #, fuzzy msgid "Year(s)" msgstr "S" #: ../dialer.c:195 msgid "Phone Dialer" msgstr "uterefona" #: ../dialer.c:230 #, fuzzy msgid "Prefix 1" msgstr "1." #: ../dialer.c:252 #, fuzzy msgid "Prefix 2" msgstr "2." #: ../dialer.c:274 #, fuzzy msgid "Prefix 3" msgstr "3." # VCARD_LDAP_PHONE_NUMBER # # @name VCARD_LDAP_PHONE_NUMBER # # @loc None #: ../dialer.c:289 #, fuzzy msgid "Phone number:" msgstr "Nomero ya terefoni" #: ../dialer.c:319 msgid "Extension" msgstr "Umugereka" #: ../dialer.c:341 msgid "Dial Command" msgstr "" #: ../export_gui.c:121 #, fuzzy msgid "File Browser" msgstr "Idosiye" #. Label for instructions #: ../export_gui.c:273 #, fuzzy msgid "Select records to be exported" msgstr "Ibyabitswe Kuri" #: ../export_gui.c:275 #, fuzzy msgid "Use Ctrl and Shift Keys" msgstr "Na" #. Import button #: ../import_gui.c:300 ../import_gui.c:369 ../import_gui.c:426 #: ../import_gui.c:471 ../jpilot.c:385 msgid "Import" msgstr "Kuzana" #: ../import_gui.c:317 #, fuzzy, c-format msgid "Record was marked as private" msgstr "cy/ byagarajwe Nka By'umwihariko" #: ../import_gui.c:319 #, fuzzy, c-format msgid "Record was not marked as private" msgstr "OYA cy/ byagarajwe Nka By'umwihariko" #: ../import_gui.c:328 #, fuzzy, c-format msgid "Category before import was: [%s]" msgstr "Mbere Kuzana" #: ../import_gui.c:336 #, fuzzy, c-format msgid "Record will be put in category [%s]" msgstr "Gushyira in Icyiciro" #. Import All button #: ../import_gui.c:376 msgid "Import All" msgstr "" #. Skip button #: ../import_gui.c:383 msgid "Skip" msgstr "" #: ../import_gui.c:457 ../install_gui.c:429 #, fuzzy msgid "To change to a hidden directory type it below and hit TAB" msgstr "Guhindura>> Kuri a gihishwe bushyinguro Ubwoko munsi Na kanda" #: ../import_gui.c:484 #, fuzzy msgid "Import File Type" msgstr "Idosiye" #: ../install_gui.c:366 #, fuzzy msgid "Files to install" msgstr "Kuri" #: ../install_gui.c:374 msgid "Install" msgstr "Kora iyinjizaporogaramu" #: ../install_user.c:118 ../install_user.c:220 #, fuzzy msgid "Install User" msgstr "/Idosiye" #: ../install_user.c:139 msgid "" "A PalmOS(c) device needs a user name and a user ID in order to sync properly." msgstr "" #: ../install_user.c:146 msgid "" "If you want to sync more than 1 PalmOS(c) device each one should have a " "different ID and preferably a different user name." msgstr "" #. Instruction label #: ../install_user.c:168 msgid "Most people choose their name or nickname for the user name." msgstr "" #: ../install_user.c:176 ../restore_gui.c:278 msgid "User Name" msgstr "Izinakoresha" #: ../install_user.c:186 msgid "The ID should be a random number." msgstr "" #: ../install_user.c:194 ../restore_gui.c:297 msgid "User ID" msgstr "koresha Indango" #: ../jpilot.c:319 msgid "Print" msgstr "Gucapa" #: ../jpilot.c:320 #, fuzzy msgid "There is no print support for this conduit." msgstr "ni Oya Gucapa Gushigikira kugirango iyi" #: ../jpilot.c:386 #, fuzzy msgid "There is no import support for this conduit." msgstr "ni Oya Kuzana Gushigikira kugirango iyi" #: ../jpilot.c:430 #, fuzzy msgid "There is no export support for this conduit." msgstr "ni Oya Kohereza Gushigikira kugirango iyi" #: ../jpilot.c:659 msgid " Cancelling HotSync\n" msgstr "" #. ------------------------------------------- #: ../jpilot.c:675 #, fuzzy msgid "" "This handheld does not have the same user name or user ID\n" "as the one that was synced the last time.\n" "Syncing could have unwanted effects including data loss.\n" "\n" "Read the user manual if you are uncertain." msgstr "" "Palm i Ukoresha: Ukoresha: Nka i Igihe Ingaruka i Ukoresha: Bikorwa NIBA" #. ------------------------------------------- #: ../jpilot.c:682 #, fuzzy msgid "" "This handheld has a NULL user ID.\n" "Every handheld must have a unique user ID in order to sync properly.\n" "If the handheld has been hard reset, \n" " use restore from the menu to restore it.\n" "Otherwise, to add a new user name and ID\n" " use install-user from the menu.\n" "\n" "Read the user manual if you are uncertain." msgstr "" "Palm a Ukoresha: ID Palm a Cyo nyine Ukoresha: ID in Itondekanya Kuri " "Ikomeye Kugarura Gukoresha Kugarura Bivuye i Ibikubiyemo Kuri Kugarura " "Cyangwa Gukoresha Kongeramo a Ukoresha: Izina: Na Gukoresha Kwinjiza " "porogaramu Ukoresha: i E Kwinjiza porogaramu Ukoresha: Izina: i Ukoresha: " "Bikorwa NIBA" #: ../jpilot.c:690 msgid "Cancel Sync" msgstr "" #: ../jpilot.c:690 msgid "Sync Anyway" msgstr "" #: ../jpilot.c:699 ../jpilot.c:703 msgid "Sync Problem" msgstr "" #: ../jpilot.c:932 ../jpilot.c:1785 #, fuzzy msgid " User: " msgstr "Ukoresha:" #: ../jpilot.c:944 #, fuzzy msgid "Unknown command from sync process\n" msgstr "Komandi: Bivuye" # offmgr/source\offapp\intro\intro.hrc:TEXT_DEFAULTABOUT.text #: ../jpilot.c:963 ../Expense/expense.c:529 ../KeyRing/keyring.c:1872 #: ../SyncTime/synctime.c:61 #, fuzzy, c-format msgid "About %s" msgstr "Ibyerekeye" #: ../jpilot.c:1105 #, fuzzy msgid "/_File" msgstr "/Idosiye" #: ../jpilot.c:1106 #, fuzzy msgid "/File/tear" msgstr "/Idosiye" #: ../jpilot.c:1107 #, fuzzy msgid "/File/_Find" msgstr "/Idosiye" #: ../jpilot.c:1108 ../jpilot.c:1114 ../jpilot.c:1117 #, fuzzy msgid "/File/sep1" msgstr "/Idosiye" #: ../jpilot.c:1109 #, fuzzy msgid "/File/_Install" msgstr "/Idosiye" #: ../jpilot.c:1110 #, fuzzy msgid "/File/Import" msgstr "/Idosiye" #: ../jpilot.c:1111 #, fuzzy msgid "/File/Export" msgstr "/Idosiye" #: ../jpilot.c:1112 ../jpilot.c:2190 #, fuzzy msgid "/File/Preferences" msgstr "/Idosiye" #: ../jpilot.c:1113 #, fuzzy msgid "/File/_Print" msgstr "/Idosiye" #: ../jpilot.c:1115 #, fuzzy msgid "/File/Install User" msgstr "/Idosiye" #: ../jpilot.c:1116 #, fuzzy msgid "/File/Restore Handheld" msgstr "/Idosiye" #: ../jpilot.c:1118 #, fuzzy msgid "/File/_Quit" msgstr "/Idosiye" #: ../jpilot.c:1119 msgid "/_View" msgstr "" #: ../jpilot.c:1120 ../jpilot.c:1121 ../jpilot.c:1122 ../jpilot.c:1368 #, fuzzy msgid "/View/Hide Private Records" msgstr "By'umwihariko Ibyabitswe" #: ../jpilot.c:1121 ../jpilot.c:1371 #, fuzzy msgid "/View/Show Private Records" msgstr "By'umwihariko Ibyabitswe" #: ../jpilot.c:1122 ../jpilot.c:1374 #, fuzzy msgid "/View/Mask Private Records" msgstr "By'umwihariko Ibyabitswe" #: ../jpilot.c:1123 #, fuzzy msgid "/View/sep1" msgstr "/Idosiye" #: ../jpilot.c:1124 msgid "/View/Datebook" msgstr "" #: ../jpilot.c:1125 #, fuzzy msgid "/View/Addresses" msgstr "/Aderesi" #: ../jpilot.c:1126 msgid "/View/Todos" msgstr "" #: ../jpilot.c:1127 msgid "/View/Memos" msgstr "" #: ../jpilot.c:1128 ../jpilot.c:1259 msgid "/_Plugins" msgstr "" #: ../jpilot.c:1130 msgid "/_Web" msgstr "" #. web #: ../jpilot.c:1131 #, fuzzy msgid "/Web/Netscape" msgstr "/Netscape" #: ../jpilot.c:1135 #, fuzzy msgid "/Web/Mozilla" msgstr "/Mozilla" #: ../jpilot.c:1140 msgid "/Web/Galeon" msgstr "" #: ../jpilot.c:1145 msgid "/Web/Opera" msgstr "" #: ../jpilot.c:1149 msgid "/Web/GnomeUrl" msgstr "" #: ../jpilot.c:1151 msgid "/Web/Lynx" msgstr "" #: ../jpilot.c:1153 msgid "/Web/Links" msgstr "" #: ../jpilot.c:1155 msgid "/Web/W3M" msgstr "" #: ../jpilot.c:1157 msgid "/Web/Konqueror" msgstr "" # sfx2/source\appl\newhelp.src:STR_HELP_WINDOW_TITLE.text #: ../jpilot.c:1160 #, fuzzy msgid "/_Help" msgstr "/Kugoboka" #: ../jpilot.c:1161 msgid "/Help/About J-Pilot" msgstr "" #: ../jpilot.c:1227 #, c-format msgid "/_Plugins/%s" msgstr "" # sfx2/source\appl\newhelp.src:STR_HELP_WINDOW_TITLE.text #: ../jpilot.c:1237 #, fuzzy, c-format msgid "/_Help/%s" msgstr "/Kugoboka" #: ../jpilot.c:1591 #, fuzzy msgid "calendar:week_start:0" msgstr "Kalindari 0" #: ../jpilot.c:1634 ../jpilot-sync.c:171 #, fuzzy msgid "Not loading plugins.\n" msgstr "Itangira..." #: ../jpilot.c:1638 #, fuzzy msgid "Ignoring all alarms.\n" msgstr "Kwirengagiza Byose" #: ../jpilot.c:1642 #, fuzzy msgid "Ignoring past alarms.\n" msgstr "Kwirengagiza" #: ../jpilot.c:1730 ../jpilot.c:1738 #, fuzzy msgid "Unable to open pipe\n" msgstr "Kuri Gufungura" #: ../jpilot.c:1947 #, fuzzy msgid "Show private records Ctrl+Z" msgstr "By'umwihariko Ibyabitswe" #: ../jpilot.c:1952 #, fuzzy msgid "Hide private records Ctrl+Z" msgstr "By'umwihariko Ibyabitswe" #: ../jpilot.c:1957 #, fuzzy msgid "Mask private records Ctrl+Z" msgstr "By'umwihariko Ibyabitswe" #: ../jpilot.c:1969 #, fuzzy msgid "Sync your palm to the desktop Ctrl+Y" msgstr "Palm Kuri i Ibiro" #: ../jpilot.c:1981 #, fuzzy msgid "Stop Sync process" msgstr "Aderesi" #: ../jpilot.c:1993 #, fuzzy msgid "" "Sync your palm to the desktop\n" "and then do a backup" msgstr "Palm Kuri i Hanyuma a Inyibutsa" #: ../jpilot.c:2141 #, fuzzy msgid "Datebook/Go to Today" msgstr "Kuri" #: ../jpilot.c:2142 msgid "Address Book" msgstr "Agatabondanganturo" #: ../jpilot.c:2143 msgid "ToDo List" msgstr "" #: ../jpilot.c:2144 msgid "Memo Pad" msgstr "" #: ../jpilot.c:2172 msgid "Do it now" msgstr "" #: ../jpilot.c:2172 msgid "Remind me later" msgstr "" #: ../jpilot.c:2172 msgid "Don't tell me again!" msgstr "" #: ../jpilot.c:2185 #, fuzzy, c-format msgid "" "J-Pilot uses the GTK2 graphical toolkit. This version of the toolkit uses " "UTF-8 to encode characters.\n" "You should select a UTF-8 charset so that you can see non-ASCII characters " "(accents for example).\n" "\n" "Go to the menu \"%s\" and change the \"%s\"." msgstr "" "ni ikoresha i Verisiyo Bya i 8 Kuri Inyuguti Guhitamo a 8 i Inyuguti " "kugirango Urugero" # #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-# # #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-# # #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-# # #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-# # #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-# #. Character Set #: ../jpilot.c:2190 ../prefs_gui.c:511 #, fuzzy msgid "Character Set" msgstr "Ishyirahamwe ry'Inyuguti" #: ../jpilot.c:2192 #, fuzzy msgid "Select a UTF-8 encoding" msgstr "8 Imisobekere:" #: ../jpilot-dump.c:94 #, fuzzy, c-format msgid " +D +A +T +M format like date +format.\n" msgstr "" "+A Imiterere nka Itariki Imiterere Gukoresha kugirango Birenzeho Ibisobanuro" #: ../jpilot-dump.c:95 #, fuzzy, c-format msgid " -v display version and exit\n" msgstr "-v Verisiyo Na" #: ../jpilot-dump.c:96 ../jpilot-sync.c:68 ../utils.c:1874 #, fuzzy, c-format msgid " -h display help text\n" msgstr "-h Ifashayobora Na" #: ../jpilot-dump.c:97 #, fuzzy, c-format msgid " -f display help for format codes\n" msgstr "-h Ifashayobora Na" #: ../jpilot-dump.c:98 #, fuzzy, c-format msgid " -D dump DateBook\n" msgstr "-A Igitabo" #: ../jpilot-dump.c:99 #, fuzzy, c-format msgid " -i dump DateBook in iCalendar format\n" msgstr "-A Igitabo" #: ../jpilot-dump.c:100 #, fuzzy, c-format msgid " -N dump appts for today in DateBook\n" msgstr "-ku UYUMUNSI in" #: ../jpilot-dump.c:101 #, fuzzy, c-format msgid " -NYYYY/MM/DD dump appts on YYYY/MM/DD in DateBook\n" msgstr "-ku in" #: ../jpilot-dump.c:102 #, fuzzy, c-format msgid " -A dump Address book\n" msgstr "-A Igitabo" #: ../jpilot-dump.c:103 #, fuzzy, c-format msgid " -T dump ToDo list as CSV\n" msgstr "-Urutonde Nka" #: ../jpilot-dump.c:104 #, fuzzy, c-format msgid " -M dump Memos\n" msgstr "-A Igitabo" #: ../jpilot-dump.c:165 #, c-format msgid "" "Warning: Host character encoding is not UTF-8 based.\n" "Exported ical file may not be standards-compliant\n" msgstr "" #: ../jpilot-merge.c:163 ../jpilot-merge.c:169 #, fuzzy, c-format msgid "%s: Unable to open file:%s\n" msgstr "Kuri Gufungura IDOSIYE" #: ../jpilot-merge.c:271 #, c-format msgid "Records read from pdb = %d\n" msgstr "" #: ../jpilot-merge.c:272 #, c-format msgid "Records added = %d\n" msgstr "" #: ../jpilot-merge.c:273 #, c-format msgid "Records deleted = %d\n" msgstr "" #: ../jpilot-merge.c:274 #, c-format msgid "Records modified = %d\n" msgstr "" #: ../jpilot-merge.c:275 #, c-format msgid "Records written = %d\n" msgstr "" #: ../jpilot-merge.c:293 #, c-format msgid "Usage: %s {input pdb file} {input pc3 file} {output pdb file}\n" msgstr "" #: ../jpilot-merge.c:294 #, c-format msgid " This program will merge an unsynced records file (pc3)\n" msgstr "" #: ../jpilot-merge.c:295 #, c-format msgid "" " into the corresponding palm database (pdb) file.\n" "\n" msgstr "" #: ../jpilot-merge.c:296 #, c-format msgid " WARNING: Only run this utility if you understand the consequences!\n" msgstr "" #: ../jpilot-merge.c:297 #, c-format msgid " The merge will leave your databases in an unsync-able state.\n" msgstr "" #: ../jpilot-merge.c:298 #, c-format msgid "" " It is intended for cases where J-pilot is being used as a standalone PIM\n" msgstr "" #: ../jpilot-merge.c:299 #, c-format msgid " and where no syncing occurs to physical hardware.\n" msgstr "" #: ../jpilot-merge.c:300 #, c-format msgid " WARNING: Make a backup copy of your databases before proceeding.\n" msgstr "" #: ../jpilot-merge.c:301 #, c-format msgid "" " It is quite simple to destroy your databases by accidentally merging\n" msgstr "" #: ../jpilot-merge.c:302 #, c-format msgid " address records into datebook databases, etc.\n" msgstr "" #: ../jpilot-sync.c:66 #, fuzzy, c-format msgid "" " J-Pilot preferences are read to get sync info such as port, rate, number of " "backups, etc.\n" msgstr "" "Ibyahiswemo Gusoma Kuri Kubona Umuyoboro Igipimo Umubare Bya Ibyashyinguwe" #: ../jpilot-sync.c:67 ../utils.c:1873 #, fuzzy, c-format msgid " -v display version and compile options\n" msgstr "-v Verisiyo Na Gukusanya Amahitamo Na" #: ../jpilot-sync.c:69 ../utils.c:1875 #, fuzzy, c-format msgid " -d display debug info to stdout\n" msgstr "-D Kosora amakosa Ibisobanuro Kuri" #: ../jpilot-sync.c:70 #, fuzzy, c-format msgid " -P skip loading plugins\n" msgstr "Itangira..." #: ../jpilot-sync.c:71 #, fuzzy, c-format msgid " -b sync, and then do a backup\n" msgstr "Palm Kuri i Hanyuma a Inyibutsa" #: ../jpilot-sync.c:72 #, fuzzy, c-format msgid " -l loop, otherwise sync once and exit\n" msgstr "-L Rimwe Na Gusohoka" #: ../jpilot-sync.c:73 #, fuzzy, c-format msgid " -p {port} use this port to sync on instead of default\n" msgstr "-P Umuyoboro iyi Umuyoboro Kuri Na: Bya Ibyahiswemo" # basctl/source\basicide\basidesh.src:RID_STR_ERROROPENSTORAGE.text #: ../jpilot-sync.c:221 #, fuzzy, c-format msgid "Error: connecting to port %s\n" msgstr "Hari ikibazo mu gufungura dosiye" #: ../jpilot-sync.c:225 #, c-format msgid "Error: pi_listen\n" msgstr "" #: ../jpilot-sync.c:229 #, fuzzy, c-format msgid "Error: opening conduit to handheld\n" msgstr "Gufungura%S IDOSIYE" #: ../jpilot-sync.c:233 #, c-format msgid "Error: pi_accept\n" msgstr "" #: ../jpilot-sync.c:237 ../jpilot-sync.c:265 #, fuzzy, c-format msgid "Error: " msgstr "Ikosa" #: ../jpilot-sync.c:238 #, c-format msgid "This handheld does not have the same user name.\n" msgstr "" #: ../jpilot-sync.c:239 ../jpilot-sync.c:253 #, c-format msgid "as the one that was synced the last time.\n" msgstr "" #: ../jpilot-sync.c:241 #, c-format msgid "" "Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:243 ../jpilot-sync.c:256 #, c-format msgid " COPILOT_HOME" msgstr "" #: ../jpilot-sync.c:245 ../jpilot-sync.c:258 #, c-format msgid " JPILOT_HOME" msgstr "" #: ../jpilot-sync.c:247 ../jpilot-sync.c:260 #, fuzzy, c-format msgid " environment variable can be used to sync different handhelds,\n" msgstr "IMPINDURAGACIRO ni kugirango" #: ../jpilot-sync.c:248 ../jpilot-sync.c:261 #, c-format msgid " to different directories for the same UNIX user name.\n" msgstr "" #: ../jpilot-sync.c:252 #, c-format msgid "This handheld does not have the same user ID.\n" msgstr "" #: ../jpilot-sync.c:254 #, c-format msgid "" " Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:266 #, c-format msgid "This handheld has a NULL user ID.\n" msgstr "" #: ../jpilot-sync.c:267 #, c-format msgid "Every handheld must have a unique user ID in order to sync properly.\n" msgstr "" #: ../jpilot-sync.c:268 #, c-format msgid "If the handheld has been hard reset, \n" msgstr "" #: ../jpilot-sync.c:269 #, c-format msgid " use restore from within " msgstr "" #: ../jpilot-sync.c:270 #, c-format msgid "Otherwise, to add a new user name and ID\n" msgstr "" #: ../jpilot-sync.c:271 #, c-format msgid " use \"install-user %s name numeric_id\"\n" msgstr "" #: ../jpilot-sync.c:275 #, c-format msgid "Error: sync returned error %d\n" msgstr "" #: ../libplugin.c:64 ../utils.c:1054 #, fuzzy msgid "" "This record is already deleted.\n" "It is scheduled to be deleted from the Palm on the next sync.\n" msgstr "Icyabitswe ni Cyasibwe ni Kuri Cyasibwe Bivuye i ku i Komeza>>" #: ../libplugin.c:73 ../libplugin.c:110 ../utils.c:1064 ../utils.c:1106 #, fuzzy msgid "Unable to open PC records file\n" msgstr "Kuri Gufungura Ibyabitswe" #: ../libplugin.c:79 ../utils.c:1071 #, fuzzy msgid "Couldn't find record to delete\n" msgstr "Gushaka Icyabitswe Kuri" #: ../libplugin.c:97 ../utils.c:1091 #, fuzzy, c-format msgid "Unknown header version %d\n" msgstr "Umutwempangano Verisiyo" #: ../libplugin.c:182 #, fuzzy, c-format msgid "%s:%d Error opening file: %s\n" msgstr "%s:%dGufungura %s%S IDOSIYE" #: ../libplugin.c:188 ../libplugin.c:217 ../sync.c:1721 ../todo.c:102 #, fuzzy, c-format msgid "%s:%d Error reading file: %s\n" msgstr "%s:%dIDOSIYE" # basctl/source\basicide\basidesh.src:RID_STR_ERROROPENSTORAGE.text #: ../libplugin.c:340 ../libplugin.c:398 ../utils.c:2119 ../utils.c:2132 #, fuzzy, c-format msgid "Error opening file: %s\n" msgstr "Hari ikibazo mu gufungura dosiye" #: ../libplugin.c:526 #, c-format msgid "Error reading %s 5\n" msgstr "" #: ../libplugin.c:801 #, fuzzy msgid "Error reading PC file 1\n" msgstr "IDOSIYE" #: ../libplugin.c:817 #, fuzzy msgid "Error reading PC file 2\n" msgstr "IDOSIYE" #: ../libplugin.c:923 #, fuzzy, c-format msgid "Unknown PC header version = %d\n" msgstr "Umutwempangano Verisiyo" #: ../log.c:101 #, fuzzy, c-format msgid "Unable to open log file, giving up.\n" msgstr "Kuri Gufungura LOG IDOSIYE Hejuru" #: ../log.c:111 #, fuzzy, c-format msgid "Unable to open log file\n" msgstr "Kuri Gufungura LOG" #: ../memo_gui.c:302 #, fuzzy msgid "Memo text > 65535, truncating\n" msgstr "Umwandiko" #: ../memo_gui.c:330 #, c-format msgid "Imported Memo %s\n" msgstr "" #: ../memo_gui.c:400 #, fuzzy msgid "File doesn't appear to be memopad.dat format\n" msgstr "Idosiye Kugaragara Kuri" #: ../memo_gui.c:471 msgid "DAT/MPA (Palm Archive Formats)" msgstr "" #: ../memo_gui.c:554 #, c-format msgid "" "Memo exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:557 #, c-format msgid "" "Memos exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:584 #, fuzzy, c-format msgid "Can't export memo %d\n" msgstr "Kohereza Umwandikorusobe..." #: ../memo_gui.c:628 #, c-format msgid "Memo: %ld\n" msgstr "" #: ../memo_gui.c:634 #, c-format msgid "----- Start of Memo -----\n" msgstr "" #: ../memo_gui.c:636 #, c-format msgid "" "\n" "----- End of Memo -----\n" "\n" msgstr "" #: ../memo_gui.c:668 msgid "B-Folders CSV" msgstr "" #: ../monthview_gui.c:438 msgid "Monthly View" msgstr "" #: ../monthview_gui.c:480 msgid "Last month Alt+LeftArrow" msgstr "" #: ../monthview_gui.c:508 msgid "Next month Alt+RightArrow" msgstr "" #: ../otherconv.c:76 #, c-format msgid "%s: error exit from g_iconv_close(%s)\n" msgstr "" #: ../otherconv.c:201 #, c-format msgid "%s:%s g_convert_with_iconv error: %s, buff: %s\n" msgstr "" #: ../otherconv.c:203 msgid "last char truncated" msgstr "" #: ../otherconv.c:280 #, c-format msgid "UTF_to_other: %s\n" msgstr "" #: ../otherconv.c:294 #, c-format msgid "iconv: unconvertible sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:298 #, c-format msgid "iconv: incomplete UTF-8 sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:301 #, c-format msgid "iconv: buffer filled. stopped at place %d in '%s'\n" msgstr "" #: ../otherconv.c:304 #, c-format msgid "iconv: unexpected error at place %d in '%s'\n" msgstr "" #: ../password.c:283 msgid "Palm Password" msgstr "" #: ../password.c:308 msgid "Incorrect, Reenter PalmOS Password" msgstr "" #: ../password.c:310 msgid "Enter PalmOS Password" msgstr "" #: ../pidfile.c:67 msgid "removing stale pidfile\n" msgstr "" # svtools/source\misc\errtxt.src:RID_ERRHDL.ERRCODE_SFX_DOLOADFAILED.text #: ../pidfile.c:91 #, fuzzy, c-format msgid "create pidfile failed: %s\n" msgstr "Ikosa mu gusoma idosiye" #: ../pidfile.c:92 msgid "Warning: hotplug syncing disabled.\n" msgstr "" #: ../plugins.c:90 ../plugins.c:203 ../restore_gui.c:133 #, fuzzy msgid "infinite loop" msgstr "Bidashira" #: ../plugins.c:216 #, fuzzy, c-format msgid "While reading %s%s line 1:[%s]\n" msgstr "Umurongo 1." #: ../plugins.c:217 msgid "Wrong Version\n" msgstr "" #: ../plugins.c:218 #, fuzzy msgid "Check preferences->conduits\n" msgstr "Ibyahiswemo" #: ../plugins.c:274 #, fuzzy, c-format msgid "" "Open failed on plugin [%s]\n" " error [%s]\n" msgstr "Byanze ku Ikosa" #: ../plugins.c:291 ../plugins.c:316 #, fuzzy, c-format msgid " plugin is invalid: [%s]\n" msgstr "ni Sibyo" #: ../plugins.c:299 #, c-format msgid "Plugin:[%s]\n" msgstr "" #: ../plugins.c:300 #, fuzzy, c-format msgid "This plugin is version (%d.%d).\n" msgstr "" "Project- Id- Version: basctl\n" "POT- Creation- Date: 2003- 12- 07 17: 13+ 02\n" "PO- Revision- Date: 2004- 11- 04 10: 13- 0700\n" "Last- Translator: Language- Team:< en@ li. org> MIME- Version: 1. 0\n" "Content- Type: text/ plain; charset= UTF- 8\n" "Content- Transfer- Encoding: 8bit\n" "X- Generator: KBabel 1. 0\n" "." #: ../plugins.c:302 #, fuzzy msgid "It is too old to work with this version of J-Pilot.\n" msgstr "ni ki/ bishaje Kuri Akazi Na: iyi Verisiyo Bya" #: ../prefs.c:420 msgid "%B %d, %Y" msgstr "" #: ../prefs.c:421 msgid "%d %B %Y" msgstr "" #: ../prefs.c:422 msgid "%d. %B %Y" msgstr "" #: ../prefs.c:423 msgid "%d %B, %Y" msgstr "" #: ../prefs.c:424 msgid "%Y. %B. %d" msgstr "" #: ../prefs.c:425 msgid "%Y %B %d" msgstr "" #: ../prefs_gui.c:454 msgid "Preferences" msgstr "Ibyahisemo" # officecfg/registry\schema\org\openoffice\Setup.xcs:....L10N.ooLocale.text #: ../prefs_gui.c:485 msgid "Locale" msgstr "Umwanya" #: ../prefs_gui.c:487 msgid "Settings" msgstr "Amagenamiterere" #: ../prefs_gui.c:489 msgid "Datebook" msgstr "" #: ../prefs_gui.c:493 msgid "ToDo" msgstr "" # sysui/oounix\office\cde\writer.lng:.text #: ../prefs_gui.c:495 msgid "Memo" msgstr "Ubutumwa" #: ../prefs_gui.c:497 msgid "Alarms" msgstr "" #: ../prefs_gui.c:499 msgid "Conduits" msgstr "" #. Shortdate #: ../prefs_gui.c:524 #, fuzzy msgid "Short date format" msgstr "Itariki Imiterere" #. Longdate #: ../prefs_gui.c:537 #, fuzzy msgid "Long date format" msgstr "Itariki Imiterere" #. Time #: ../prefs_gui.c:550 #, fuzzy msgid "Time format" msgstr "Imiterere y'igihe" #. GTK colors file #: ../prefs_gui.c:570 #, fuzzy msgid "GTK color theme file" msgstr "Amabara IDOSIYE ni" #. Port #: ../prefs_gui.c:583 #, fuzzy msgid "Sync Port" msgstr "Umwandikorusobe..." #. Serial Rate #: ../prefs_gui.c:607 msgid "Serial Rate" msgstr "" #. Number of backups #: ../prefs_gui.c:627 #, fuzzy msgid "Number of backups to be archived" msgstr "Bya Ibyashyinguwe Kuri" #. Show deleted files check box #: ../prefs_gui.c:645 #, fuzzy msgid "Show deleted records (default NO)" msgstr "Cyasibwe Ibyabitswe Mburabuzi" #. Show modified files check box #: ../prefs_gui.c:649 #, fuzzy msgid "Show modified deleted records (default NO)" msgstr "Byahinduwe Cyasibwe Ibyabitswe Mburabuzi" #: ../prefs_gui.c:654 #, fuzzy msgid "Ask confirmation for file installation (J-Pilot -> PDA) (default YES)" msgstr "Iyemeza kugirango IDOSIYE iyinjizaporogaramu Mburabuzi" #. Show tooltips check box #: ../prefs_gui.c:658 #, fuzzy msgid "Show popup tooltips (default YES) (requires restart)" msgstr "Mburabuzi" #: ../prefs_gui.c:668 msgid "Use Datebook database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:671 msgid "Use Calendar database (Palm OS > 5.2)" msgstr "" #. Show highlight days check box #: ../prefs_gui.c:697 #, fuzzy msgid "Highlight calendar days with appointments" msgstr "Kalindari Iminsi Na:" #. Highlight today on month and week view #: ../prefs_gui.c:702 msgid "Annotate today in day, week, and month views" msgstr "" #. Show number of years on anniversaries in month and week view #: ../prefs_gui.c:706 msgid "Append years on anniversaries in day, week, and month views" msgstr "" #. Show use DateBk check box #: ../prefs_gui.c:712 #, fuzzy msgid "Use DateBk note tags" msgstr "Impugukirwa" #: ../prefs_gui.c:715 #, fuzzy msgid "DateBk support disabled in this build" msgstr "Gushigikira Yahagaritswe in iyi" #: ../prefs_gui.c:727 msgid "Use Address database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:730 msgid "Use Contacts database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:759 msgid "Mail Command" msgstr "" #: ../prefs_gui.c:773 #, fuzzy, c-format msgid "%s is replaced by the e-mail address" msgstr "%sni ku i E Ubutumwa Aderesi" #: ../prefs_gui.c:785 msgid "Use ToDo database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:788 msgid "Use Task database (Palm OS > 5.2)" msgstr "" #. hide completed check box #: ../prefs_gui.c:815 msgid "Hide Completed ToDos" msgstr "" #. hide todos not yet due check box #: ../prefs_gui.c:819 #, fuzzy msgid "Hide ToDos not yet due" msgstr "OYA" #. record todo completion date check box #: ../prefs_gui.c:823 msgid "Record Completion Date" msgstr "" #. Use Manana check box #: ../prefs_gui.c:828 #, fuzzy msgid "Use Manana database" msgstr "Ububikoshingiro" #: ../prefs_gui.c:836 #, fuzzy msgid "Use default number of days due" msgstr "Mburabuzi Umubare Bya Iminsi" #: ../prefs_gui.c:858 msgid "Use Memo database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:861 msgid "Use Memos database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:864 msgid "Use Memo32 database (pedit32)" msgstr "" #: ../prefs_gui.c:904 msgid "External Editor" msgstr "" #: ../prefs_gui.c:917 msgid "Use Ctrl-E inside a memo to launch external editor for memo text" msgstr "" #. ******************************************************************** #. Alarms preference tab #. Open alarm windows check box #: ../prefs_gui.c:925 #, fuzzy msgid "Open alarm windows for appointment reminders" msgstr "kugirango" #. Execute alarm command check box #: ../prefs_gui.c:929 #, fuzzy msgid "Execute this command" msgstr "iyi Komandi:" #. Shell warning label #: ../prefs_gui.c:933 #, fuzzy msgid "WARNING: executing arbitrary shell commands can be dangerous!!!" msgstr "Gukora:%s Igikonoshwa Amabwiriza" #: ../prefs_gui.c:941 msgid "Alarm Command" msgstr "" #: ../prefs_gui.c:954 #, fuzzy msgid "%t is replaced with the alarm time" msgstr "%tni Na: i Igihe" #: ../prefs_gui.c:958 #, fuzzy, c-format msgid "%d is replaced with the alarm date" msgstr "%dni Na: i Itariki" #: ../prefs_gui.c:963 #, fuzzy msgid "%D is replaced with the alarm description" msgstr "%Dni Na: i Isobanuramiterere" #: ../prefs_gui.c:967 #, fuzzy msgid "%N is replaced with the alarm note" msgstr "%Nni Na: i Impugukirwa" #: ../prefs_gui.c:971 #, fuzzy msgid "%D (description substitution) is disabled in this build" msgstr "%D(Isobanuramiterere ni Yahagaritswe in iyi" #: ../prefs_gui.c:976 #, fuzzy msgid "%N (note substitution) is disabled in this build" msgstr "%N(Impugukirwa ni Yahagaritswe in iyi" #. ******************************************************************** #. Conduits preference tab #. Sync datebook check box #: ../prefs_gui.c:986 msgid "Sync datebook" msgstr "" #. Sync address check box #: ../prefs_gui.c:990 #, fuzzy msgid "Sync address" msgstr "Aderesi" #. Sync todo check box #: ../prefs_gui.c:994 msgid "Sync todo" msgstr "" #. Sync memo check box #: ../prefs_gui.c:998 #, fuzzy msgid "Sync memo" msgstr "Umwandikorusobe..." #. Show sync Manana check box #: ../prefs_gui.c:1003 msgid "Sync Manana" msgstr "" #. Show use Japanese Kana extention check box #: ../prefs_gui.c:1009 msgid "Use J-OS (Not Japanese PalmOS:WorkPad/CLIE)" msgstr "" #. Make a Sync checkbox for each plugin #: ../prefs_gui.c:1022 #, c-format msgid "Sync %s (%s)" msgstr "" #: ../print_gui.c:185 msgid "Print Options" msgstr "Ihitamo ry'Ishyirwa-Rupapuro" # padmin/source\rtsetup.src:RID_RTS_PAPERPAGE.RID_RTS_PAPER_PAPER_TXT.text #: ../print_gui.c:198 #, fuzzy msgid "Paper Size" msgstr "Ingano y'urupapuro" #: ../print_gui.c:214 msgid "Daily Printout" msgstr "" #: ../print_gui.c:220 msgid "Weekly Printout" msgstr "" #: ../print_gui.c:226 msgid "Monthly Printout" msgstr "" #: ../print_gui.c:266 #, fuzzy msgid "Selected record" msgstr "a Icyabitswe" #: ../print_gui.c:270 #, fuzzy msgid "All records in this category" msgstr "Ibyabitswe in iyi Icyiciro" #: ../print_gui.c:274 #, fuzzy msgid "Print all records" msgstr "Byose Ibyabitswe" #: ../print_gui.c:296 #, fuzzy msgid "One record per page" msgstr "Icyabitswe Ipaji" #: ../print_gui.c:312 #, fuzzy msgid "Blank lines between each record" msgstr "Imirongo hagati Icyabitswe" #. Print Command #: ../print_gui.c:321 #, fuzzy msgid "Print Command (e.g. lpr, or cat > file.ps)" msgstr "g." #: ../restore_gui.c:71 ../restore_gui.c:229 msgid "Restore Handheld" msgstr "" #: ../restore_gui.c:176 ../restore_gui.c:178 msgid "Unable to convert filename for GTK display\n" msgstr "" #: ../restore_gui.c:177 msgid "See console log to find which file will not be restored\n" msgstr "" #: ../restore_gui.c:179 #, fuzzy, c-format msgid "File %s will not be restored\n" msgstr "Kuri" #. Label for instructions #: ../restore_gui.c:246 #, fuzzy msgid "To restore your handheld:" msgstr "Kugarura" #: ../restore_gui.c:249 #, fuzzy msgid "1. Choose the applications you wish to restore. The default is all." msgstr "1.." #: ../restore_gui.c:252 #, fuzzy msgid "2. Enter the User Name and User ID." msgstr "2.." #: ../restore_gui.c:255 #, fuzzy msgid "3. Press the OK button." msgstr "3.." #: ../restore_gui.c:258 #, fuzzy msgid "This will overwrite data that is currently on the handheld." msgstr "Guhindura Ibyatanzwe ni ku i" #: ../search_gui.c:144 msgid "datebook" msgstr "" #: ../search_gui.c:146 #, fuzzy msgid "calendar" msgstr "bigaragara,kigaragara" #: ../search_gui.c:233 #, fuzzy msgid "address" msgstr "Aderesi" #: ../search_gui.c:235 msgid "contact" msgstr "" #: ../search_gui.c:304 msgid "todo" msgstr "" #: ../search_gui.c:361 msgid "memo" msgstr "ubutumwa" #: ../search_gui.c:363 #, fuzzy msgid "memos" msgstr "ubutumwa" #: ../search_gui.c:421 msgid "plugin ?" msgstr "" #: ../search_gui.c:501 #, fuzzy msgid "No records found" msgstr "Ibyabitswe Byabonetse" #: ../search_gui.c:600 msgid "Search" msgstr "Gushaka" #. Search label #: ../search_gui.c:617 #, fuzzy msgid "Search for: " msgstr "Gushakisha:" # officecfg/registry\schema\org\openoffice\Office\Calc.xcs:....Calculate.Other.CaseSensitive.text #. Case Sensitive checkbox #: ../search_gui.c:626 #, fuzzy msgid "Case Sensitive" msgstr "Imyandikire y'inyuguti nkuru/ nto" #: ../sync.c:120 #, fuzzy msgid "open lock file failed\n" msgstr "Gufungura IDOSIYE" #: ../sync.c:133 msgid "lock failed\n" msgstr "" #: ../sync.c:136 #, fuzzy, c-format msgid "sync file is locked by pid %d\n" msgstr "IDOSIYE ni Gifunze ku" #: ../sync.c:171 msgid "unlock failed\n" msgstr "" #: ../sync.c:174 #, fuzzy, c-format msgid "sync is locked by pid %d\n" msgstr "ni Gifunze ku" #: ../sync.c:410 #, fuzzy msgid "Check your sync port and settings\n" msgstr "Umuyoboro Na" #: ../sync.c:669 #, fuzzy msgid "Unable to read home dir\n" msgstr "Kuri Gusoma Ku Ntangiriro" #: ../sync.c:1075 ../sync.c:1413 #, fuzzy, c-format msgid "%s (Creator ID '%s') is up to date, fetch skipped.\n" msgstr "%s(ni Hejuru Kuri Itariki" #: ../sync.c:1079 ../sync.c:1417 #, c-format msgid "Fetching '%s' (Creator ID '%s')... " msgstr "" #: ../sync.c:1086 ../sync.c:1423 #, fuzzy, c-format msgid "Failed, unable to create file %s\n" msgstr "Kuri Kurema IDOSIYE" #: ../sync.c:1090 ../sync.c:1428 #, fuzzy, c-format msgid "Failed, unable to back up database %s\n" msgstr "Kuri Inyuma Hejuru Ububikoshingiro" #: ../sync.c:1094 ../sync.c:1432 ../sync.c:1619 msgid "OK\n" msgstr "" #: ../sync.c:1294 #, c-format msgid "Skipping %s (Creator ID '%s')\n" msgstr "" #: ../sync.c:1488 #, fuzzy, c-format msgid "Installing %s " msgstr "Gukora iyinjizaporogaramu..." #: ../sync.c:1494 ../sync.c:1530 #, fuzzy, c-format msgid "" "\n" "Unable to open file: '%s': %s!\n" msgstr "Kuri Gufungura IDOSIYE" #: ../sync.c:1498 #, fuzzy, c-format msgid "" "\n" "Unable to sync file: '%s': file corrupted?\n" msgstr "Kuri IDOSIYE IDOSIYE" #: ../sync.c:1514 #, fuzzy, c-format msgid "(Creator ID '%s')... " msgstr "(ni" #: ../sync.c:1518 #, fuzzy, c-format msgid "(Creator ID '%s') " msgstr "(ni" #: ../sync.c:1520 #, fuzzy, c-format msgid "(SDcard dir %s)... " msgstr "(ni" #: ../sync.c:1552 ../sync.c:1565 ../sync.c:1580 ../sync.c:1593 #, fuzzy, c-format msgid "" "\n" "Unable to open file: %s\n" msgstr "Kuri Gufungura IDOSIYE" #: ../sync.c:1605 #, fuzzy, c-format msgid "Install %s failed" msgstr "Byanze" #: ../sync.c:1609 #, fuzzy msgid "Failed.\n" msgstr "Byanze" #: ../sync.c:1615 #, fuzzy, c-format msgid "Installed %s" msgstr "Gukora iyinjizaporogaramu..." #: ../sync.c:1726 #, fuzzy, c-format msgid "%s:%d Error getting app info %s\n" msgstr "%s:%dIbisobanuro" #: ../sync.c:1732 ../sync.c:1762 #, fuzzy, c-format msgid "%s:%d Error unpacking app info %s\n" msgstr "%s:%dIbisobanuro" #: ../sync.c:1753 #, fuzzy, c-format msgid "Error reading appinfo block for %s\n" msgstr "Funga kugirango" #. Fix - need a func for this logging #: ../sync.c:1991 ../sync.c:1995 #, fuzzy, c-format msgid "Could not add category %s to remote.\n" msgstr "OYA Kongeramo Icyiciro Kuri" #: ../sync.c:1992 ../sync.c:1998 #, fuzzy, c-format msgid "Too many categories on remote.\n" msgstr "Ibyiciro ku" #: ../sync.c:1993 ../sync.c:2001 #, fuzzy, c-format msgid "All records on desktop in %s will be moved to %s.\n" msgstr "Ibyabitswe ku Ibiro in Kuri" #: ../sync.c:2096 ../sync.c:2814 #, c-format msgid "Syncing %s\n" msgstr "" #: ../sync.c:2104 ../sync.c:2457 ../sync.c:2822 #, fuzzy, c-format msgid "Wrote an %s record." msgstr "Icyabitswe" #: ../sync.c:2106 ../sync.c:2459 ../sync.c:2824 #, fuzzy, c-format msgid "Writing an %s record failed." msgstr "Icyabitswe Byanze" #: ../sync.c:2108 ../sync.c:2461 ../sync.c:2826 #, fuzzy, c-format msgid "Deleting an %s record failed." msgstr "Icyabitswe Byanze" #: ../sync.c:2110 ../sync.c:2463 ../sync.c:2828 #, fuzzy, c-format msgid "Deleted an %s record." msgstr "Icyabitswe" #: ../sync.c:2112 ../sync.c:2465 #, fuzzy, c-format msgid "Sync Conflict: duplicated an %s record." msgstr "Icyabitswe" #: ../sync.c:2115 ../sync.c:2468 ../sync.c:2831 #, fuzzy, c-format msgid "Wrote a %s record." msgstr "a Icyabitswe" #: ../sync.c:2117 ../sync.c:2470 ../sync.c:2833 #, fuzzy, c-format msgid "Writing a %s record failed." msgstr "a Icyabitswe Byanze" #: ../sync.c:2119 ../sync.c:2472 ../sync.c:2835 #, fuzzy, c-format msgid "Deleting a %s record failed." msgstr "a Icyabitswe Byanze" #: ../sync.c:2121 ../sync.c:2474 ../sync.c:2837 #, fuzzy, c-format msgid "Deleted a %s record." msgstr "a Icyabitswe" #: ../sync.c:2123 ../sync.c:2476 #, c-format msgid "Sync Conflict: duplicated a %s record." msgstr "" #: ../sync.c:2227 ../sync.c:2557 #, c-format msgid "Sync Conflict: a %s record must be manually merged\n" msgstr "" #: ../sync.c:2358 ../sync.c:2698 #, fuzzy msgid "" "dlp_DeleteRecord failed\n" "This could be because the record was already deleted on the Palm\n" msgstr "i Icyabitswe Cyasibwe ku i" #: ../sync.c:2927 msgid "Finished installing user information.\n" msgstr "" #: ../sync.c:3084 #, fuzzy, c-format msgid " Syncing on device %s\n" msgstr "ku APAREYE" #: ../sync.c:3085 #, fuzzy msgid " Press the HotSync button now\n" msgstr "i Akabuto" #: ../sync.c:3127 ../sync.c:3149 ../sync.c:3170 #, c-format msgid "Last Synced Username-->\"%s\"\n" msgstr "" #: ../sync.c:3128 ../sync.c:3150 ../sync.c:3171 #, c-format msgid "Last Synced UserID-->\"%d\"\n" msgstr "" #: ../sync.c:3129 ../sync.c:3151 ../sync.c:3172 #, c-format msgid " This Username-->\"%s\"\n" msgstr "" #: ../sync.c:3130 ../sync.c:3152 ../sync.c:3173 #, c-format msgid " This User ID-->%d\n" msgstr "" #: ../sync.c:3194 #, fuzzy, c-format msgid "Username is \"%s\"\n" msgstr "ni" #: ../sync.c:3195 #, fuzzy, c-format msgid "User ID is %d\n" msgstr "ni" #: ../sync.c:3197 #, c-format msgid "lastSyncPC = %d\n" msgstr "" #: ../sync.c:3198 #, c-format msgid "This PC = %lu\n" msgstr "" #: ../sync.c:3222 msgid "Sync canceled\n" msgstr "" #: ../sync.c:3245 msgid "Finished restoring handheld.\n" msgstr "" #: ../sync.c:3246 #, fuzzy msgid "You may need to sync to update J-Pilot.\n" msgstr "Gicurasi Kuri Kuri Kuvugurura" #: ../sync.c:3268 #, fuzzy msgid "Doing a fast sync.\n" msgstr "a Byihuta" #: ../sync.c:3281 #, fuzzy msgid "Doing a slow sync.\n" msgstr "a Buhoro" #: ../sync.c:3356 #, fuzzy msgid "Thank you for using J-Pilot." msgstr "kugirango ikoresha" # wizards/source\importwizard\importwi.src:sReady.text #: ../sync.c:3401 ../sync.c:3469 #, fuzzy msgid "Finished.\n" msgstr "Byarangiye" #: ../sync.c:3436 #, c-format msgid "%s: sync process already in progress (process ID = %d)\n" msgstr "" #: ../sync.c:3437 #, fuzzy, c-format msgid "" "%s: press the HotSync button on the cradle\n" " or stop the sync by using the cancel sync button\n" " or stop the sync by typing \"kill %d\" at the command line\n" msgstr "%s:Kanda i Akabuto ku i Cyangwa" #: ../sync.c:3468 #, fuzzy, c-format msgid "Exiting with status %s\n" msgstr "Na: Imimerere" #: ../todo.c:266 #, fuzzy, c-format msgid "ToDo description text > %d, truncating to %d\n" msgstr "Isobanuramiterere Umwandiko Kuri" #: ../todo.c:272 #, fuzzy, c-format msgid "ToDo note text > %d, truncating to %d\n" msgstr "Impugukirwa Umwandiko Kuri" #: ../todo_gui.c:161 msgid "Due Date" msgstr "" #: ../todo_gui.c:532 #, fuzzy msgid "File doesn't appear to be todo.dat format\n" msgstr "Idosiye Kugaragara Kuri" #: ../todo_gui.c:596 msgid "DAT/TDA (Palm Archive Formats)" msgstr "" #: ../todo_gui.c:688 #, c-format msgid "" "ToDo exported from %s %s on %s\n" "\n" msgstr "" #: ../todo_gui.c:726 #, fuzzy, c-format msgid "Can't export todo %d\n" msgstr "Kohereza" #: ../todo_gui.c:766 #, c-format msgid "Due Date: None\n" msgstr "" #: ../todo_gui.c:769 #, c-format msgid "Due Date: %s\n" msgstr "" # sfx2/source\dialog\mailwindow.src:RID_MAIL_WINDOW.FT_MAILWIN_PRIO.text #: ../todo_gui.c:771 #, fuzzy, c-format msgid "Priority: %d\n" msgstr "By'ibanze" #: ../todo_gui.c:772 #, c-format msgid "Completed: %s\n" msgstr "" #: ../todo_gui.c:774 #, c-format msgid "Description: %s\n" msgstr "" #: ../todo_gui.c:777 #, c-format msgid "" "Note: %s\n" "\n" msgstr "" #: ../todo_gui.c:1610 #, fuzzy msgid "Priority out of range\n" msgstr "Inyuma Bya" #: ../todo_gui.c:1932 ../KeyRing/keyring.c:1310 #, fuzzy, c-format msgid "No date" msgstr "Itariki" #. Completed checkbox #: ../todo_gui.c:2414 msgid "Completed" msgstr "" # sfx2/source\dialog\mailwindow.src:RID_MAIL_WINDOW.FT_MAILWIN_PRIO.text #: ../todo_gui.c:2421 #, fuzzy msgid "Priority:" msgstr "By'ibanze" #: ../todo_gui.c:2423 msgid "Set priority Alt+#" msgstr "" #: ../todo_gui.c:2444 msgid "Date Due:" msgstr "" #: ../utils.c:332 msgid "Today" msgstr "Uyu munsi" #: ../utils.c:577 #, fuzzy, c-format msgid "Couldn't find empty DB file %s: %s\n" msgstr "Gushaka ubusa IDOSIYE" #: ../utils.c:580 #, fuzzy msgid " may not be installed.\n" msgstr "Gicurasi OYA" #. Can't create directory #: ../utils.c:615 ../utils.c:619 #, fuzzy, c-format msgid "Can't create directory %s\n" msgstr "Kurema bushyinguro" #: ../utils.c:625 #, fuzzy, c-format msgid "%s is not a directory\n" msgstr "%sni a bushyinguro" #: ../utils.c:630 #, fuzzy, c-format msgid "Unable to get write permission for directory %s\n" msgstr "Kwandika Idosiye in bushyinguro" #: ../utils.c:1330 ../utils.c:1354 #, fuzzy msgid "Save Changed Record?" msgstr "Kubika" #: ../utils.c:1331 ../utils.c:1355 #, fuzzy msgid "Do you want to save the changes to this record?" msgstr "Kuri Kubika i Amahinduka Kuri iyi Icyabitswe" #: ../utils.c:1336 ../utils.c:1360 #, fuzzy msgid "Save New Record?" msgstr "Kubika" #: ../utils.c:1337 ../utils.c:1361 #, fuzzy msgid "Do you want to save this new record?" msgstr "Kuri Kubika iyi Gishya Icyabitswe" #: ../utils.c:1652 #, fuzzy msgid "infinite loop, breaking\n" msgstr "Bidashira" #: ../utils.c:1876 #, fuzzy, c-format msgid " -p skip loading plugins\n" msgstr "Itangira..." #: ../utils.c:1877 #, fuzzy, c-format msgid " -a ignore missed alarms since the last time program was run\n" msgstr "-a Kwirengagiza guhera i Iheruka Igihe iyi Porogaramu Gukoresha" #: ../utils.c:1878 #, fuzzy, c-format msgid " -A ignore all alarms past and future\n" msgstr "-A Kwirengagiza Byose Na" #: ../utils.c:1879 #, c-format msgid " -s start sync using existing instance of GUI\n" msgstr "" #: ../utils.c:1880 #, c-format msgid " -i iconify program immediately after launch\n" msgstr "" #: ../utils.c:1881 #, c-format msgid "" " -geometry {X geometry} use specified geometry for main window\n" "\n" msgstr "" #: ../utils.c:1882 #, fuzzy, c-format msgid " The PILOTPORT and PILOTRATE environment variables specify\n" msgstr "Na Ibihinduka Kuri" #: ../utils.c:1883 #, fuzzy, c-format msgid " which port to sync on, and at what speed.\n" msgstr "Umuyoboro Kuri ku Na ku Umuvuduko" #: ../utils.c:1884 #, fuzzy, c-format msgid " If PILOTPORT is not set then it defaults to /dev/pilot.\n" msgstr "ni OYA Gushyiraho Hanyuma Kuri" # svtools/source\misc\errtxt.src:RID_ERRHDL.ERRCODE_SFX_DOLOADFAILED.text #: ../utils.c:1921 #, fuzzy msgid "Error reading file" msgstr "Ikosa mu gusoma idosiye" #: ../utils.c:1971 msgid "Date compiled" msgstr "" #: ../utils.c:1972 #, fuzzy msgid "Compiled with these options:" msgstr "Na: Amahitamo" #: ../utils.c:1974 msgid "Installed Path" msgstr "" #: ../utils.c:1976 #, fuzzy msgid "pilot-link version" msgstr "Ihuza Verisiyo" #: ../utils.c:1980 #, fuzzy msgid "USB support" msgstr "Gushigikira" #: ../utils.c:1981 ../utils.c:1984 ../utils.c:1990 ../utils.c:1996 #: ../utils.c:2002 ../utils.c:2008 ../utils.c:2013 msgid "yes" msgstr "Yego" #: ../utils.c:1982 #, fuzzy msgid "Private record support" msgstr "Icyabitswe Gushigikira" #: ../utils.c:1986 ../utils.c:1992 ../utils.c:1998 ../utils.c:2004 #: ../utils.c:2010 #, fuzzy msgid "no" msgstr "Oya" #: ../utils.c:1988 #, fuzzy msgid "Datebk support" msgstr "Gushigikira" #: ../utils.c:1994 #, fuzzy msgid "Plugin support" msgstr "Gushigikira" #: ../utils.c:2000 #, fuzzy msgid "Manana support" msgstr "Gushigikira" #: ../utils.c:2006 #, fuzzy msgid "NLS support (foreign languages)" msgstr "Gushigikira Mvamahanga Indimi" #: ../utils.c:2012 #, fuzzy msgid "GTK2 support" msgstr "Gushigikira" #. No HOME var #: ../utils.c:2055 #, fuzzy msgid "Can't get HOME environment variable\n" msgstr "Kubona" #: ../utils.c:2062 #, fuzzy msgid "HOME environment variable is too long to process\n" msgstr "IMPINDURAGACIRO ni kugirango" #: ../utils.c:2557 #, fuzzy msgid "Edit Categories..." msgstr "Kwandika ibyiciro" #: ../utils.c:3223 #, fuzzy msgid "PC ID is 0.\n" msgstr "ni 0" #: ../utils.c:3224 #, fuzzy, c-format msgid "Generated a new PC ID. It is %lu\n" msgstr "a Gishya ni" #: ../utils.c:3309 msgid "Invalid UTF-8 encoding in export string\n" msgstr "" #: ../utils.c:3470 #, fuzzy, c-format msgid "Today is %A, %x %X" msgstr "ni" #: ../utils.c:3472 #, fuzzy, c-format msgid "Today is %%A, %s %s" msgstr "ni" #: ../utils.c:3701 #, c-format msgid "" "Incorrect header format for CSV import\n" "Check line 1 of file %s\n" "Aborting import\n" msgstr "" #: ../utils.c:3738 #, fuzzy, c-format msgid "Error writing version header to file: %s%s\n" msgstr "Umutwempangano Kuri IDOSIYE" #: ../utils.c:3743 #, fuzzy, c-format msgid "Error writing next id to file: %s%s" msgstr "Komeza>> ID Kuri IDOSIYE" #: ../weekview_gui.c:297 msgid "Weekly View" msgstr "" #: ../weekview_gui.c:337 msgid "Last week Alt+LeftArrow" msgstr "" #: ../weekview_gui.c:366 msgid "Next week Alt+RightArrow" msgstr "" #: ../Expense/expense.c:97 msgid "Australia" msgstr "Ositaraliya" #: ../Expense/expense.c:98 msgid "Austria" msgstr "Ositiriya" #: ../Expense/expense.c:99 msgid "Belgium" msgstr "Ububiligi" #: ../Expense/expense.c:100 msgid "Brazil" msgstr "Burezile" #: ../Expense/expense.c:101 msgid "Canada" msgstr "Kanada" #: ../Expense/expense.c:102 msgid "Denmark" msgstr "Danimarike" #: ../Expense/expense.c:103 msgid "EU (Euro)" msgstr "" #: ../Expense/expense.c:104 msgid "Finland" msgstr "Finilande" #: ../Expense/expense.c:105 msgid "France" msgstr "Ubufaransa" #: ../Expense/expense.c:106 msgid "Germany" msgstr "Ubudage" #: ../Expense/expense.c:107 msgid "Hong Kong" msgstr "Hongo Kongo" #: ../Expense/expense.c:108 msgid "Iceland" msgstr "Isilande" #: ../Expense/expense.c:109 msgid "India" msgstr "Ubuhinde" #: ../Expense/expense.c:110 msgid "Indonesia" msgstr "Indonesiya" #: ../Expense/expense.c:111 msgid "Ireland" msgstr "Irilande" #: ../Expense/expense.c:112 msgid "Italy" msgstr "Ubutariyani" #: ../Expense/expense.c:113 msgid "Japan" msgstr "Ubuyapani" #: ../Expense/expense.c:114 msgid "Korea" msgstr "" #: ../Expense/expense.c:115 msgid "Luxembourg" msgstr "Lugizamburu" #: ../Expense/expense.c:116 msgid "Malaysia" msgstr "Malesiya" #: ../Expense/expense.c:117 msgid "Mexico" msgstr "Megizike" #: ../Expense/expense.c:118 msgid "Netherlands" msgstr "Nederilande" #: ../Expense/expense.c:119 msgid "New Zealand" msgstr "Nuveli Zelande" #: ../Expense/expense.c:120 msgid "Norway" msgstr "Noruveje" #: ../Expense/expense.c:121 #, fuzzy msgid "P.R.C." msgstr "C." #: ../Expense/expense.c:122 msgid "Philippines" msgstr "Filipine" #: ../Expense/expense.c:123 msgid "Singapore" msgstr "Singapore" #: ../Expense/expense.c:124 msgid "Spain" msgstr "Esipanye" #: ../Expense/expense.c:125 msgid "Sweden" msgstr "Suwede" #: ../Expense/expense.c:126 msgid "Switzerland" msgstr "Ubusuwisi" #: ../Expense/expense.c:127 msgid "Taiwan" msgstr "Tayiwani" #: ../Expense/expense.c:128 msgid "Thailand" msgstr "Tayilande" #: ../Expense/expense.c:129 msgid "United Kingdom" msgstr "Ubwongereza (UK)" #: ../Expense/expense.c:130 msgid "United States" msgstr "Leta Zunze Ubumwe" #: ../Expense/expense.c:518 ../Expense/expense.c:529 msgid "Expense" msgstr "" #: ../Expense/expense.c:550 ../Expense/expense.c:1388 msgid "Airfare" msgstr "" #: ../Expense/expense.c:552 ../Expense/expense.c:1389 msgid "Breakfast" msgstr "" #: ../Expense/expense.c:554 ../Expense/expense.c:1390 msgid "Bus" msgstr "" #: ../Expense/expense.c:556 ../Expense/expense.c:1391 msgid "BusinessMeals" msgstr "" #: ../Expense/expense.c:558 ../Expense/expense.c:1392 msgid "CarRental" msgstr "" #: ../Expense/expense.c:560 ../Expense/expense.c:1393 msgid "Dinner" msgstr "" #: ../Expense/expense.c:562 ../Expense/expense.c:1394 msgid "Entertainment" msgstr "" #: ../Expense/expense.c:564 ../Expense/expense.c:1395 msgid "Fax" msgstr "Fagisi" #: ../Expense/expense.c:566 ../Expense/expense.c:1396 msgid "Gas" msgstr "" #: ../Expense/expense.c:568 ../Expense/expense.c:1397 msgid "Gifts" msgstr "" #: ../Expense/expense.c:570 ../Expense/expense.c:1398 msgid "Hotel" msgstr "" #: ../Expense/expense.c:572 ../Expense/expense.c:1399 msgid "Incidentals" msgstr "" #: ../Expense/expense.c:574 ../Expense/expense.c:1400 msgid "Laundry" msgstr "" #: ../Expense/expense.c:576 ../Expense/expense.c:1401 msgid "Limo" msgstr "" #: ../Expense/expense.c:578 ../Expense/expense.c:1402 msgid "Lodging" msgstr "" #: ../Expense/expense.c:580 ../Expense/expense.c:1403 msgid "Lunch" msgstr "" #: ../Expense/expense.c:582 ../Expense/expense.c:1404 msgid "Mileage" msgstr "" #: ../Expense/expense.c:586 ../Expense/expense.c:1406 msgid "Parking" msgstr "" #: ../Expense/expense.c:588 ../Expense/expense.c:1407 msgid "Postage" msgstr "" #: ../Expense/expense.c:590 ../Expense/expense.c:1408 msgid "Snack" msgstr "" #: ../Expense/expense.c:592 ../Expense/expense.c:1409 msgid "Subway" msgstr "" #: ../Expense/expense.c:594 ../Expense/expense.c:1410 msgid "Supplies" msgstr "" #: ../Expense/expense.c:596 ../Expense/expense.c:1411 msgid "Taxi" msgstr "" #: ../Expense/expense.c:598 ../Expense/expense.c:1412 msgid "Telephone" msgstr "terefoni" # officecfg/registry\schema\org\openoffice\Office\Common.xcs:....Help.Tip.text #: ../Expense/expense.c:600 ../Expense/expense.c:1413 msgid "Tips" msgstr "Inyobora" #: ../Expense/expense.c:602 ../Expense/expense.c:1414 msgid "Tolls" msgstr "" #: ../Expense/expense.c:604 ../Expense/expense.c:1415 msgid "Train" msgstr "" #: ../Expense/expense.c:1239 msgid "Expense: Unknown expense type\n" msgstr "" #: ../Expense/expense.c:1245 msgid "Expense: Unknown payment type\n" msgstr "" #: ../Expense/expense.c:1377 msgid "American Express" msgstr "" #: ../Expense/expense.c:1378 msgid "Cash" msgstr "" #: ../Expense/expense.c:1379 msgid "Check" msgstr "Kugenzura" #: ../Expense/expense.c:1380 msgid "Credit Card" msgstr "ikarita y'inguzanyo" #: ../Expense/expense.c:1381 msgid "Master Card" msgstr "" #: ../Expense/expense.c:1382 msgid "Prepaid" msgstr "" #: ../Expense/expense.c:1383 msgid "VISA" msgstr "" # sfx2/source\dialog\dinfdlg.src:TP_DOCINFODOC.FT_FILE_TYP.text #: ../Expense/expense.c:1619 #, fuzzy msgid "Type" msgstr "Ubwoko" # sw/source\ui\table\insrc.src:DLG_INS_ROW_COL.FT_COUNT.text #: ../Expense/expense.c:1620 #, fuzzy msgid "Amount" msgstr "Igiteranyo" # so3/src\svuidlg.src:MD_DDE_LINKEDIT.FT_DDE_ITEM.text #. Category Menu #: ../Expense/expense.c:1704 #, fuzzy msgid "Category:" msgstr "Icyiciro" # sfx2/source\dialog\dinfdlg.src:TP_DOCINFODOC.FT_FILE_TYP.text #. Type Menu #: ../Expense/expense.c:1712 #, fuzzy msgid "Type:" msgstr "Ubwoko" #. Payment Menu #: ../Expense/expense.c:1720 msgid "Payment:" msgstr "" # #-#-#-#-# svx.pot (PACKAGE VERSION) #-#-#-#-# # svx/source\dialog\numfmt.src:RID_SVXPAGE_NUMBERFORMAT.LB_CATEGORY.5.text # #-#-#-#-# svx.pot (PACKAGE VERSION) #-#-#-#-# # svx/source\dialog\sdstring.src:RID_SVXSTR_TBLAFMT_CURRENCY.text #. Currency Menu #: ../Expense/expense.c:1728 #, fuzzy msgid "Currency:" msgstr "Ifaranga" #: ../Expense/expense.c:1748 #, fuzzy msgid "Month:" msgstr "ukwezi:" #: ../Expense/expense.c:1762 #, fuzzy msgid "Day:" msgstr "Umunsi:" #: ../Expense/expense.c:1776 #, fuzzy msgid "Year:" msgstr "umwaka:" # sw/source\ui\table\insrc.src:DLG_INS_ROW_COL.FT_COUNT.text #. Amount Entry #: ../Expense/expense.c:1789 #, fuzzy msgid "Amount:" msgstr "Igiteranyo" #. Vendor Entry #: ../Expense/expense.c:1799 #, fuzzy msgid "Vendor:" msgstr "Umucuruzi" #. City #: ../Expense/expense.c:1809 #, fuzzy msgid "City:" msgstr "Umujyi:" # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Impress.xcs:....Snap.Position.ExtendEdges.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Draw.xcs:....Snap.Position.ExtendEdges.text #. Attendees #: ../Expense/expense.c:1819 msgid "Attendees" msgstr "Abitabiriye" #. ------------------------------------------- #: ../Expense/expense.c:2102 #, c-format msgid "" "%s\n" "\n" "Expense plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org" msgstr "" #: ../KeyRing/keyring.c:291 msgid "KeyRing: pack_KeyRing(): buf_size too small\n" msgstr "" #: ../KeyRing/keyring.c:1699 msgid "Incorrect, Reenter KeyRing Password" msgstr "" #: ../KeyRing/keyring.c:1701 #, fuzzy msgid "Enter a NEW KeyRing Password" msgstr "a" #: ../KeyRing/keyring.c:1703 msgid "Enter KeyRing Password" msgstr "" #: ../KeyRing/keyring.c:1769 #, fuzzy, c-format msgid "KeyRing: file %s not found.\n" msgstr "IDOSIYE OYA Byabonetse" #: ../KeyRing/keyring.c:1770 msgid "KeyRing: Try Syncing.\n" msgstr "" #: ../KeyRing/keyring.c:1861 ../KeyRing/keyring.c:1872 msgid "KeyRing" msgstr "" #. ------------------------------------------- #: ../KeyRing/keyring.c:1900 #, c-format msgid "" "%s\n" "\n" "KeyRing plugin for J-Pilot was written by\n" "Judd Montgomery (c) 2001.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "KeyRing is a free PalmOS program for storing\n" "passwords and other information in encrypted form\n" "http://gnukeyring.sourceforge.net" msgstr "" #: ../KeyRing/keyring.c:2137 #, c-format msgid "" "Keys exported from %s %s on %s\n" "\n" msgstr "" #: ../KeyRing/keyring.c:2162 #, fuzzy, c-format msgid "Can't export key %d\n" msgstr "Kohereza Umwandikorusobe..." #: ../KeyRing/keyring.c:2229 msgid "B-FOLDERS CSV" msgstr "" #. Change Password button #: ../KeyRing/keyring.c:2384 msgid "" "Change\n" "KeyRing\n" "Password" msgstr "" #. Clist #: ../KeyRing/keyring.c:2497 #, fuzzy msgid "Changed" msgstr "Kureka" #: ../KeyRing/keyring.c:2499 msgid "Account" msgstr "konti" # basctl/source\basicide\moduldlg.src:RID_DLG_NEWLIB.RID_FT_NEWLIB.text #. Name entry #: ../KeyRing/keyring.c:2593 #, fuzzy msgid "name: " msgstr "Izina:" # svtools/source\dialogs\logindlg.src:DLG_LOGIN.FT_LOGIN_ACCOUNT.text #. Account entry #: ../KeyRing/keyring.c:2601 #, fuzzy msgid "account: " msgstr "Konti:" # basctl/source\basicide\moduldlg.src:RID_TP_LIBS.RID_PB_PASSWORD.text #. Password entry #: ../KeyRing/keyring.c:2609 #, fuzzy msgid "password: " msgstr "Ijambobanga..." #. Last Changed entry #: ../KeyRing/keyring.c:2616 msgid "last changed: " msgstr "" #. Generate Password button (creates random password) #: ../KeyRing/keyring.c:2626 msgid "Generate Password" msgstr "" #: ../SyncTime/synctime.c:61 #, fuzzy msgid "SyncTime" msgstr "Umwandikorusobe..." #. ------------------------------------------- #: ../SyncTime/synctime.c:72 #, c-format msgid "" "%s\n" "\n" "SyncTime plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "SyncTime WILL NOT work with PalmOS 3.3!" msgstr "" #: ../SyncTime/synctime.c:106 msgid "synctime: Palm OS Version 3.25 and 3.30 do not support SyncTime\n" msgstr "" #: ../SyncTime/synctime.c:107 msgid "synctime: NOT setting the time on the pilot\n" msgstr "" #: ../SyncTime/synctime.c:112 msgid "synctime: Setting the time on the pilot... " msgstr "" #: ../SyncTime/synctime.c:117 #, fuzzy msgid "Done\n" msgstr "Byakozwe" #, fuzzy #~ msgid " -i makes program iconify itself upon launch.\n" #~ msgstr "-i" #, fuzzy #~ msgid "Your HOME environment variable is too long(>1024)\n" #~ msgstr "IMPINDURAGACIRO ni kugirango" #~ msgid "W" #~ msgstr "W" #~ msgid "M" #~ msgstr "M" #, fuzzy #~ msgid "This Event has no particular time" #~ msgstr "Oya Igihe" #, fuzzy #~ msgid "Start Time" #~ msgstr "Gutangira" #, fuzzy #~ msgid "End Time" #~ msgstr "Impera" #, fuzzy #~ msgid "Unable to open %s%s file\n" #~ msgstr "Kuri Gufungura" #, fuzzy #~ msgid "Unable to open %s.alarms file\n" #~ msgstr "Kuri Gufungura" #, fuzzy #~ msgid "You can't edit category %s.\n" #~ msgstr "Guhindura Icyiciro" #, fuzzy #~ msgid "You can't delete category %s.\n" #~ msgstr "Gusiba Icyiciro" #, fuzzy #~ msgid "category name" #~ msgstr "Icyiciro Izina:" # Debug menu items #, fuzzy #~ msgid "debug" #~ msgstr "Kosora amakosa" #, fuzzy #~ msgid "End Date: Never\n" #~ msgstr "Impera" #, fuzzy #~ msgid "Repeat Days: " #~ msgstr "ku" #~ msgid "Close" #~ msgstr "Gufunga" #~ msgid "none" #~ msgstr "ntacyo" #, fuzzy #~ msgid "Unknown repeatType found in DatebookDB\n" #~ msgstr "Byabonetse in" #~ msgid "Done" #~ msgstr "Byakozwe" #~ msgid "Add" #~ msgstr "Kongera" #~ msgid "Remove" #~ msgstr "Gukuraho" #, fuzzy #~ msgid "User name" #~ msgstr "Izinakoresha" #, fuzzy #~ msgid " -v = version\n" #~ msgstr "-v" #, fuzzy #~ msgid " -h = help\n" #~ msgstr "-h" #, fuzzy #~ msgid " -d = run in debug mode\n" #~ msgstr "-D Gukoresha in Kosora amakosa" #, fuzzy #~ msgid " -P = do not load plugins.\n" #~ msgstr "-OYA Ibirimo" #, fuzzy #~ msgid " -b = Do a sync and then a backup, otherwise just do a sync.\n" #~ msgstr "-B a Na Hanyuma a Inyibutsa a" #, fuzzy #~ msgid "Invalid geometry specification: \"%s\"\n" #~ msgstr "Iyigamashusho" #, fuzzy #~ msgid "/Help/PayBack program" #~ msgstr "/Porogaramu" #, fuzzy #~ msgid "Show private records" #~ msgstr "By'umwihariko Ibyabitswe" #, fuzzy #~ msgid "Hide private records" #~ msgstr "By'umwihariko Ibyabitswe" #, fuzzy #~ msgid "Mask private records" #~ msgstr "By'umwihariko Ibyabitswe" #~ msgid "Font" #~ msgstr "Umukono" #, fuzzy #~ msgid "Go to the menu \"" #~ msgstr "Kuri i Ibikubiyemo" #, fuzzy #~ msgid "\" and change the \"" #~ msgstr "\"Na Guhindura>> i" # #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-# # #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-# # #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-# #, fuzzy #~ msgid "\"." #~ msgstr "\"." #, fuzzy #~ msgid "Couldn't open PC records file\n" #~ msgstr "Gufungura Ibyabitswe" #, fuzzy #~ msgid "The first day of the week is " #~ msgstr "Itangira UMUNSI Bya i Icyumweru ni" #, fuzzy #~ msgid "One record" #~ msgstr "Icyabitswe" # wizards/source\importwizard\importwi.src:sReady.text #, fuzzy #~ msgid "Finished\n" #~ msgstr "Byarangiye" #, fuzzy #~ msgid "Last Username = [%s]\n" #~ msgstr "Izina ry'ukoresha" #, fuzzy #~ msgid "Last UserID = %d\n" #~ msgstr "ni" #, fuzzy #~ msgid "Username = [%s]\n" #~ msgstr "Izina ry'ukoresha" #, fuzzy #~ msgid "userID = %d\n" #~ msgstr "ni" #, fuzzy #~ msgid "number of records = %d\n" #~ msgstr "Umubare Bya Ibyabitswe" #, fuzzy #~ msgid "palm: number of records = %d\n" #~ msgstr "Palm Umubare Bya Ibyabitswe" #, fuzzy #~ msgid "disk: number of records = %d\n" #~ msgstr "Umubare Bya Ibyabitswe" #, fuzzy #~ msgid "Your HOME environment variable is too long for me\n" #~ msgstr "IMPINDURAGACIRO ni kugirango" #, fuzzy #~ msgid "" #~ "%s doesn't appear to be a directory.\n" #~ "I need it to be.\n" #~ msgstr "%sKugaragara Kuri a bushyinguro Kuri" #, fuzzy #~ msgid "I can't write files in directory %s\n" #~ msgstr "Kurema bushyinguro" #~ msgid "Field" #~ msgstr "Umwanya" #, fuzzy #~ msgid "Serial Rate (Does not affect USB)" #~ msgstr "OYA" #~ msgid "Quit" #~ msgstr "Kuvamo" #~ msgid "Help" #~ msgstr "Gufasha" #~ msgid "Directory" #~ msgstr "Ububiko" #, fuzzy #~ msgid "Overwrite File" #~ msgstr "Gusimbuza Idosiye" #~ msgid "Filename" #~ msgstr "Izina ry'idosiye" #, fuzzy #~ msgid " -p do not load plugins.\n" #~ msgstr "-P OYA Ibirimo" #, fuzzy #~ msgid "Copy the record Ctrl+O" #~ msgstr "i Icyabitswe" #~ msgid "Backup" #~ msgstr "Inyibutsa" jpilot-1.8.1.2/po/uk.po0000644000175000017500000031201711702307204011500 00000000000000# Ukrainian translation to jpilot # Copyright (C) YEAR Judd Montgomery # Copyright (C) 2004 Free Software Foundation, Inc. # This file is distributed under the same license as the jpilot package. # Maxim V. Dziumanenko , 2004-2005. # msgid "" msgstr "" "Project-Id-Version: jpilot 0.99.8-pre12\n" "Report-Msgid-Bugs-To: jpilot-devel@jpilot.org\n" "POT-Creation-Date: 2012-01-08 13:39+0100\n" "PO-Revision-Date: 2005-11-25 17:56+0300\n" "Last-Translator: Maxim V. Dziumanenko \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../address.c:276 ../address.c:448 ../alarms.c:332 ../calendar.c:309 #: ../calendar.c:547 ../contact.c:324 ../contact.c:738 ../dat.c:189 #: ../dat.c:655 ../dat.c:859 ../dat.c:993 ../dat.c:1132 ../datebook.c:130 #: ../datebook.c:165 ../datebook.c:172 ../datebook.c:231 ../jpilot.c:1254 #: ../jpilot-merge.c:95 ../libplugin.c:208 ../libplugin.c:455 #: ../libplugin.c:534 ../libplugin.c:563 ../libplugin.c:811 ../memo.c:214 #: ../memo.c:287 ../otherconv.c:280 ../plugins.c:112 ../prefs.c:350 #: ../prefs.c:375 ../prefs.c:906 ../sync.c:2170 ../sync.c:2187 ../sync.c:2296 #: ../sync.c:2310 ../sync.c:2507 ../sync.c:2646 ../todo.c:236 ../todo.c:490 #: ../utils.c:748 #, c-format msgid "Out of memory" msgstr "Скінчилась пам'ять" #: ../address.c:332 ../calendar.c:230 ../contact.c:580 ../datebook.c:494 #: ../memo.c:87 ../todo.c:90 #, fuzzy, c-format msgid "%s:%d Error reading application info %s\n" msgstr "%s:%d Помилка при читанні інформації категорії %s\n" #: ../address.c:344 ../address_gui.c:2285 ../address_gui.c:2324 #: ../calendar.c:246 ../contact.c:596 ../datebook.c:514 ../datebook_gui.c:3737 #: ../libplugin.c:405 ../libplugin.c:431 ../memo.c:99 ../memo_gui.c:863 #: ../todo_gui.c:1070 ../Expense/expense.c:1105 #, c-format msgid "Error reading file: %s\n" msgstr "Помилка при читанні файлу: %s\n" #: ../address.c:492 ../calendar.c:598 ../calendar.c:607 ../contact.c:780 #: ../libplugin.c:846 ../memo.c:353 ../todo.c:302 ../utils.c:1124 #: ../utils.c:1131 ../utils.c:1138 ../utils.c:1145 ../utils.c:1152 #: ../utils.c:1159 msgid "error" msgstr "помилка" #: ../address_gui.c:325 ../datebook_gui.c:2844 ../memo_gui.c:176 #: ../todo_gui.c:292 ../KeyRing/keyring.c:834 msgid "" "This record is deleted.\n" "Undelete it or copy it to make changes.\n" msgstr "" "Запис видалений.\n" "Щоб внести зміни поверніть його з видаленого стану або скопіюйте.\n" #: ../address_gui.c:452 ../address_gui.c:458 ../address_gui.c:469 #: ../address_gui.c:481 ../address_gui.c:493 ../address_gui.c:506 #, fuzzy, c-format msgid "%s%s: %s" msgstr "%%a., %s" #: ../address_gui.c:542 ../category.c:118 ../category.c:176 ../category.c:330 #: ../category.c:336 ../datebook_gui.c:430 ../jpilot-merge.c:88 #: ../jpilot-merge.c:146 ../jpilot-merge.c:151 ../memo_gui.c:280 #: ../sync.c:2129 ../sync.c:2135 ../sync.c:2481 ../sync.c:2842 #: ../todo_gui.c:416 ../utils.c:2674 ../utils.c:2711 ../utils.c:2717 #: ../utils.c:2776 ../utils.c:2782 ../utils.c:2836 ../utils.c:2890 #: ../utils.c:2896 ../utils.c:2954 ../utils.c:2961 #, c-format msgid "Unable to open file: %s\n" msgstr "Не вдається відкрити файл: %s\n" #: ../address_gui.c:561 #, fuzzy, c-format msgid "Unable to read file: %s\n" msgstr "Не вдається відкрити файл: %s\n" #: ../address_gui.c:715 msgid "File doesn't appear to be address.dat format\n" msgstr "Формат файлу не схожий на address.dat\n" #: ../address_gui.c:725 ../datebook_gui.c:647 ../memo_gui.c:324 #: ../memo_gui.c:417 ../todo_gui.c:542 ../Expense/expense.c:1384 msgid "Unfiled" msgstr "Не представлене" #: ../address_gui.c:781 ../datebook_gui.c:698 ../memo_gui.c:470 #: ../todo_gui.c:595 msgid "CSV (Comma Separated Values)" msgstr "" #: ../address_gui.c:782 msgid "DAT/ABA (Palm Archive Formats)" msgstr "" #. current category name #. previous category name #. entry text, in Pilot character set #: ../address_gui.c:868 ../category.c:408 ../datebook_gui.c:729 #: ../jpilot.c:234 ../jpilot.c:278 ../jpilot.c:352 ../jpilot.c:396 #: ../jpilot.c:953 ../memo_gui.c:506 ../todo_gui.c:635 ../utils.c:1305 #: ../KeyRing/keyring.c:2090 msgid "OK" msgstr "Гаразд" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "No" msgstr "Ні" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "Yes" msgstr "Так" #: ../address_gui.c:888 ../datebook_gui.c:753 ../memo_gui.c:520 #: ../todo_gui.c:655 ../KeyRing/keyring.c:2104 #, c-format msgid "%s is a directory" msgstr "%s є каталогом" #: ../address_gui.c:890 ../address_gui.c:907 ../datebook_gui.c:755 #: ../datebook_gui.c:772 ../memo_gui.c:522 ../memo_gui.c:539 ../todo_gui.c:657 #: ../todo_gui.c:674 ../KeyRing/keyring.c:2106 ../KeyRing/keyring.c:2123 msgid "Error Opening File" msgstr "Помилка при відкриванні файлу" #: ../address_gui.c:894 ../datebook_gui.c:759 ../memo_gui.c:526 #: ../todo_gui.c:661 ../KeyRing/keyring.c:2110 #, c-format msgid "Do you want to overwrite file %s?" msgstr "Бажаєте перезаписати файл %s?" #: ../address_gui.c:896 ../datebook_gui.c:761 ../memo_gui.c:528 #: ../todo_gui.c:663 ../KeyRing/keyring.c:2112 msgid "Overwrite File?" msgstr "Перезаписати файл?" #: ../address_gui.c:905 ../datebook_gui.c:770 ../memo_gui.c:537 #: ../todo_gui.c:672 ../KeyRing/keyring.c:2121 #, c-format msgid "Error opening file: %s" msgstr "Помилка при відкриванні файлу: %s" #: ../address_gui.c:922 #, c-format msgid "" "Address exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:925 #, c-format msgid "" "Contact exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:989 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ldif file may not be standards-compliant\n" msgstr "" #: ../address_gui.c:1002 #, c-format msgid "Can't export address %d\n" msgstr "Не вдається експортувати адресу %d\n" #: ../address_gui.c:1008 ../memo_gui.c:630 ../todo_gui.c:760 #, fuzzy, c-format msgid "Category: %s\n" msgstr "Категорія: " #: ../address_gui.c:1010 ../memo_gui.c:632 ../todo_gui.c:763 #, fuzzy, c-format msgid "Private: %s\n" msgstr "Приватний" #: ../address_gui.c:1018 ../address_gui.c:1032 ../address_gui.c:1036 #: ../address_gui.c:1045 ../address_gui.c:1048 #, fuzzy, c-format msgid "%s: " msgstr "%%a., %s" #: ../address_gui.c:1022 #, c-format msgid "%s\n" msgstr "" #. E-mail should be the Palm dropdown menu item for email #. Set dial/email button text and callback data #: ../address_gui.c:1196 ../address_gui.c:2846 ../address_gui.c:4185 msgid "E-mail" msgstr "Ел.адреса" #: ../address_gui.c:1482 ../datebook_gui.c:1147 ../memo_gui.c:640 #: ../todo_gui.c:844 ../KeyRing/keyring.c:2214 msgid "Unknown export type\n" msgstr "Невідомий тип експорту\n" #: ../address_gui.c:1508 ../datebook_gui.c:1226 ../memo_gui.c:469 #: ../memo_gui.c:666 ../todo_gui.c:870 ../KeyRing/keyring.c:2229 msgid "Text" msgstr "" #: ../address_gui.c:1509 ../datebook_gui.c:1227 ../memo_gui.c:667 #: ../todo_gui.c:871 ../KeyRing/keyring.c:2229 msgid "CSV" msgstr "" #: ../address_gui.c:1510 #, fuzzy msgid "vCard" msgstr "Очистити" #: ../address_gui.c:1511 msgid "vCard (Optimized for Gmail/Android Import)" msgstr "" #: ../address_gui.c:1512 msgid "ldif" msgstr "" #. Initialize variable if default case taken #: ../address_gui.c:1777 ../address_gui.c:3902 #, fuzzy msgid "Last Name/Company" msgstr "Ім'я/Компанія" #: ../address_gui.c:1780 ../address_gui.c:3905 #, fuzzy msgid "First Name/Company" msgstr "Ім'я/Компанія" #: ../address_gui.c:1783 ../address_gui.c:3908 #, fuzzy msgid "Company/Last Name" msgstr "Компанія/Ім'я" #: ../address_gui.c:1920 ../datebook_gui.c:2907 ../memo_gui.c:1036 #: ../todo_gui.c:1329 ../KeyRing/keyring.c:1181 msgid "You can't modify a record that is deleted\n" msgstr "Не можна змінювати видалений запис\n" #. Illegal category, Assume that category 0 is Unfiled and valid #: ../address_gui.c:2119 ../address_gui.c:2370 ../address_gui.c:2803 #: ../address_gui.c:2809 ../address_gui.c:3601 ../datebook_gui.c:1994 #: ../datebook_gui.c:3434 ../datebook_gui.c:3783 ../datebook_gui.c:4074 #: ../memo_gui.c:900 ../memo_gui.c:946 ../memo_gui.c:1161 ../memo_gui.c:1548 #: ../todo_gui.c:1106 ../todo_gui.c:1200 ../todo_gui.c:1589 ../todo_gui.c:2141 #: ../Expense/expense.c:689 ../Expense/expense.c:1143 #: ../Expense/expense.c:1227 ../Expense/expense.c:1887 #: ../KeyRing/keyring.c:1070 ../KeyRing/keyring.c:1512 #: ../KeyRing/keyring.c:1574 ../KeyRing/keyring.c:2688 msgid "Category is not legal\n" msgstr "Некоректна категорія\n" #: ../address_gui.c:2179 ../alarms.c:598 ../dialer.c:164 #, c-format msgid "executing command = [%s]\n" msgstr "виконується команда = [%s]\n" #: ../address_gui.c:2181 #, fuzzy, c-format msgid "Failed to execute [%s]\n" msgstr "Помилка, не вдається створити файл %s\n" #: ../address_gui.c:2425 msgid "Birthday" msgstr "" #: ../address_gui.c:2521 msgid "External program not found, or other error" msgstr "" #: ../address_gui.c:2523 msgid "" "J-Pilot can not find the external program \"convert\"\n" "or an error occurred while executing convert.\n" "You may need to install package ImageMagick" msgstr "" #: ../address_gui.c:2524 #, c-format msgid "Command executed was \"%s\"\n" msgstr "" #: ../address_gui.c:2525 #, c-format msgid "return code was %d\n" msgstr "" #: ../address_gui.c:2603 #, fuzzy msgid "chdir() failed\n" msgstr "помилка блокування\n" #: ../address_gui.c:2606 msgid "Add Photo" msgstr "" #. Category menu #: ../address_gui.c:2828 ../KeyRing/keyring.c:2585 msgid "Category: " msgstr "Категорія: " #: ../address_gui.c:2848 ../address_gui.c:4186 msgid "Mail" msgstr "Пошта" #. Dial Phone Button #: ../address_gui.c:2851 ../address_gui.c:4189 ../dialer.c:307 ../dialer.c:331 msgid "Dial" msgstr "Дзвонити" #: ../address_gui.c:3041 ../datebook_gui.c:2757 ../memo_gui.c:1228 #: ../todo_gui.c:1697 msgid "Could not get temporary file name\n" msgstr "" #: ../address_gui.c:3049 ../datebook_gui.c:2765 ../memo_gui.c:1236 #: ../todo_gui.c:1705 msgid "Could not open temporary file for external editor\n" msgstr "" #: ../address_gui.c:3089 ../datebook_gui.c:2806 ../memo_gui.c:1277 #: ../todo_gui.c:1746 msgid "Could not open temporary file from external editor\n" msgstr "" #: ../address_gui.c:3261 ../address_gui.c:3292 msgid "-Unnamed-" msgstr "-Без назви-" #: ../address_gui.c:3374 ../memo_gui.c:1454 ../todo_gui.c:2019 msgid "0 records" msgstr "0 записів" #: ../address_gui.c:3377 ../datebook_gui.c:2637 ../memo_gui.c:1457 #: ../todo_gui.c:2022 #, c-format msgid "%d of %d records" msgstr "%d з %d записів" #: ../address_gui.c:3772 ../address_gui.c:3780 ../KeyRing/keyring.c:2498 msgid "Name" msgstr "Ім'я" #: ../address_gui.c:3773 ../address_gui.c:3774 ../address_gui.c:3775 #: ../address_gui.c:3781 msgid "Address" msgstr "Адреса" #: ../address_gui.c:3776 ../address_gui.c:3782 ../Expense/expense.c:584 #: ../Expense/expense.c:1405 msgid "Other" msgstr "Інше" #. Note textbox #: ../address_gui.c:3777 ../address_gui.c:3783 ../todo_gui.c:2484 #: ../Expense/expense.c:1836 ../KeyRing/keyring.c:2632 msgid "Note" msgstr "Примітка" #: ../address_gui.c:3793 msgid "Reverting to Address database\n" msgstr "" #: ../address_gui.c:3914 msgid "Phone" msgstr "Телефон" #: ../address_gui.c:3946 msgid "Quick Find: " msgstr "Швидко знайти: " #. Cancel button #. Add record modification buttons #. Cancel button #: ../address_gui.c:3964 ../category.c:409 ../datebook_gui.c:1782 #: ../datebook_gui.c:5124 ../memo_gui.c:1692 ../todo_gui.c:2345 #: ../utils.c:1346 ../KeyRing/keyring.c:2528 msgid "Cancel" msgstr "Скасувати" #: ../address_gui.c:3964 ../datebook_gui.c:5124 ../memo_gui.c:1692 #: ../todo_gui.c:2345 ../KeyRing/keyring.c:2528 msgid "Cancel the modifications" msgstr "Скасувати зміни" #. Delete Button #. Delete button #. Delete Button #. Delete button #. Delete, Copy, New, etc. buttons #. Delete button #: ../address_gui.c:3969 ../category.c:409 ../category.c:852 #: ../datebook_gui.c:5129 ../memo_gui.c:1697 ../todo_gui.c:2350 #: ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete" msgstr "Видалити" #: ../address_gui.c:3969 ../datebook_gui.c:5129 ../memo_gui.c:1697 #: ../todo_gui.c:2350 ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete the selected record" msgstr "Повернути з видаленого стану виділений запис" #. Undelete Button #. Undelete button #. Undelete Button #. Undelete button #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 msgid "Undelete" msgstr "Повернути з видаленого стану" #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 msgid "Undelete the selected record" msgstr "Повернути з видаленого стану виділений запис" #. Copy button #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy" msgstr "Копіювати" #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy the selected record" msgstr "Копіювати видалений запис" #. New button #. New Record button #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "New Record" msgstr "Новий запис" #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "Add a new record" msgstr "Додати новий запис" #. "Add Record" button #. Add Record button #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add Record" msgstr "Додати запис" #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add the new record" msgstr "Додати новий запис" #. "Apply Changes" button #. Apply Changes button #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Apply Changes" msgstr "Застосувати зміни" #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Commit the modifications" msgstr "Закріпити зміни" #. Private check box #. Private checkbox #: ../address_gui.c:4033 ../datebook_gui.c:5191 ../datebook_gui.c:5233 #: ../memo_gui.c:1747 ../todo_gui.c:2410 msgid "Private" msgstr "Приватний" #: ../address_gui.c:4118 #, fuzzy msgid "Change Photo" msgstr "Скасувати" #: ../address_gui.c:4123 #, fuzzy msgid "Remove Photo" msgstr "Видалити" #: ../address_gui.c:4195 #, fuzzy msgid "Show In List" msgstr "" "Показувати\n" "у списку" #: ../address_gui.c:4296 #, fuzzy msgid "Reminder" msgstr "Нагадати" #: ../address_gui.c:4312 ../datebook_gui.c:238 ../datebook_gui.c:5221 #: ../datebook_gui.c:5378 msgid "Days" msgstr "днів" #. The Quickview (ALL) page #. All button #: ../address_gui.c:4356 ../datebook_gui.c:1478 ../datebook_gui.c:1782 #: ../utils.c:2528 msgid "All" msgstr "Усі" #: ../alarms.c:232 ../datebook_gui.c:236 ../datebook_gui.c:5215 #: ../datebook_gui.c:5372 msgid "Minutes" msgstr "хвилин" #: ../alarms.c:234 ../datebook_gui.c:237 ../datebook_gui.c:5219 #: ../datebook_gui.c:5376 msgid "Hours" msgstr "годин" #: ../alarms.c:255 msgid "Remind me" msgstr "Нагадати" #: ../alarms.c:425 ../alarms.c:991 ../sync.c:1639 ../sync.c:1645 #: ../utils.c:3717 #, c-format msgid "Unable to open file: %s%s\n" msgstr "Не вдається відкрити файл: %s%s\n" #: ../alarms.c:512 msgid "Appointment Reminder" msgstr "Нагадування про зустріч" #: ../alarms.c:515 msgid "Past Appointment" msgstr "Минула зустріч" #: ../alarms.c:518 msgid "Postponed Appointment" msgstr "Відстрочена зустріч" #: ../alarms.c:521 ../datebook_gui.c:5025 msgid "Appointment" msgstr "Зустріч" #: ../alarms.c:605 msgid "J-Pilot Alarm" msgstr "Сповіщення J-Pilot" #: ../category.c:131 ../category.c:188 ../sync.c:2158 ../sync.c:2495 msgid "PC file corrupt?\n" msgstr "PC файл пошкоджений?\n" #: ../category.c:138 ../category.c:148 ../category.c:196 ../category.c:206 #: ../category.c:216 ../sync.c:2280 ../sync.c:2334 ../sync.c:2371 #: ../sync.c:2386 ../sync.c:2410 ../sync.c:2630 ../sync.c:2675 ../sync.c:2712 #: ../sync.c:2725 ../sync.c:2750 msgid "fseek failed - fatal error\n" msgstr "помилка при fseek() - фатальна помилка\n" #: ../category.c:364 ../utils.c:2738 ../utils.c:2812 ../utils.c:2916 #: ../utils.c:2981 msgid "rename failed" msgstr "помилка перейменування" #: ../category.c:409 msgid "Move" msgstr "Перемістити" #: ../category.c:438 ../category.c:500 ../category.c:580 ../category.c:769 msgid "Edit Categories" msgstr "Правка категорій" #: ../category.c:439 msgid "The maximum number of categories (16) are already used" msgstr "Вже використано максимальну кількість категорій (16)" #: ../category.c:442 msgid "Enter New Category" msgstr "Введіть нову категорію" #: ../category.c:453 ../category.c:477 #, fuzzy msgid "Edit Categories Error" msgstr "Правка категорій" #: ../category.c:454 msgid "You must select a category to rename" msgstr "Необхідно вибрати категорію для перейменування" #: ../category.c:463 msgid "Enter New Category Name" msgstr "Введіть нову назву категорії" #: ../category.c:478 msgid "You must select a category to delete" msgstr "Необхідно вибрати категорію для видалення" #: ../category.c:496 #, c-format msgid "" "There are %d records in %s.\n" "Do you want to move them to %s, or delete them?" msgstr "" "%d записів у %s.\n" "Ви хочете перемістити їх у %s, чи видалити їх?" #: ../category.c:556 #, c-format msgid "invalid state file %s line %d\n" msgstr "неправильний стан файлу %s рядок %d\n" #: ../category.c:578 #, c-format msgid "The category %s can't be used more than once" msgstr "Категорія %s не може використовуватись більше ніж один раз" #. Category names in host character set #: ../category.c:735 #, fuzzy msgid "Category" msgstr "Категорія:" #: ../category.c:836 msgid "New" msgstr "Створити" #: ../category.c:843 msgid "Rename" msgstr "Перейменувати" #: ../dat.c:456 msgid "unknown type =" msgstr "невідомий тип =" #: ../dat.c:537 #, c-format msgid "fields per row count != %d, unknown format\n" msgstr "кількість полів на рядок != %d, невідомий формат\n" #: ../dat.c:551 #, c-format msgid "field count != %d, unknown format\n" msgstr "кількість полів != %d, невідомий формат\n" #: ../dat.c:559 msgid "Unknown format, file has wrong schema\n" msgstr "Невідомий формат, файл має неправильну схему\n" #: ../dat.c:560 msgid "File schema is:" msgstr "Схема файлу:" #: ../dat.c:564 #, fuzzy msgid "It should be:" msgstr "Має бути:" #: ../dat.c:674 ../dat.c:692 ../dat.c:876 ../dat.c:889 ../dat.c:1012 #: ../dat.c:1025 ../dat.c:1149 ../dat.c:1162 #, c-format msgid "%s:%d Record %d, field %d: Invalid type. Expected %d, found %d\n" msgstr "" "%s:%d Запис %d, поле %d: Неправильний тип. Очікувалось %d, знайдено %d\n" #: ../dat.c:675 ../dat.c:693 ../dat.c:877 ../dat.c:890 ../dat.c:994 #: ../dat.c:1013 ../dat.c:1026 ../dat.c:1150 ../dat.c:1163 msgid "read of file terminated\n" msgstr "читання файлу перервано\n" #: ../datebook.c:705 ../datebook_gui.c:3648 #, c-format msgid "Unknown repeatType (%d) found in DatebookDB\n" msgstr "У DatebookDB знайдено невідомий repeatType (%d)\n" #: ../datebook_gui.c:241 #, fuzzy msgid "Repeat Never" msgstr "Повторюється у:" #: ../datebook_gui.c:242 #, fuzzy msgid "Repeat Daily" msgstr "Повторюється у дні:" #: ../datebook_gui.c:243 #, fuzzy msgid "Repeat Weekly" msgstr "Повторюється у:" #: ../datebook_gui.c:244 #, fuzzy msgid "Repeat MonthlyByDay" msgstr "Повторюється у дні:" #: ../datebook_gui.c:245 #, fuzzy msgid "Repeat MonthlyByDate" msgstr "Повторюється у дні:" #: ../datebook_gui.c:246 msgid "Repeat YearlyDate" msgstr "" #: ../datebook_gui.c:247 #, fuzzy msgid "Repeat YearlyDay" msgstr "Повторюється у дні:" #: ../datebook_gui.c:250 ../datebook_gui.c:257 ../datebook_gui.c:4803 #: ../datebook_gui.c:4810 msgid "Su" msgstr "Нд" #: ../datebook_gui.c:251 ../datebook_gui.c:4804 msgid "Mo" msgstr "Пн" #: ../datebook_gui.c:252 ../datebook_gui.c:4805 msgid "Tu" msgstr "Вт" #: ../datebook_gui.c:253 ../datebook_gui.c:4806 msgid "We" msgstr "Ср" #: ../datebook_gui.c:254 ../datebook_gui.c:4807 msgid "Th" msgstr "Чт" #: ../datebook_gui.c:255 ../datebook_gui.c:4808 msgid "Fr" msgstr "Пн" #: ../datebook_gui.c:256 ../datebook_gui.c:4809 msgid "Sa" msgstr "Сб" #: ../datebook_gui.c:269 #, c-format msgid "" "Start Date: %s\n" "Time: Event" msgstr "" #: ../datebook_gui.c:277 #, c-format msgid "" "Start Date: %s\n" "Time: %s to %s" msgstr "" #: ../datebook_gui.c:287 ../datebook_gui.c:297 msgid "Unknown" msgstr "" #. End Date #: ../datebook_gui.c:300 #, fuzzy msgid "End Date: " msgstr "Дата закінчення" #: ../datebook_gui.c:302 msgid "Never" msgstr "" #: ../datebook_gui.c:308 #, c-format msgid "Repeat Frequency: %d\n" msgstr "" #: ../datebook_gui.c:316 #, c-format msgid "Monthly Repeat Day %d\n" msgstr "" #: ../datebook_gui.c:321 ../datebook_gui.c:5520 msgid "Repeat on Days:" msgstr "Повторюється у дні:" #: ../datebook_gui.c:332 #, fuzzy, c-format msgid "Number of exceptions: %d" msgstr "кількість записів = %d\n" #: ../datebook_gui.c:338 msgid "" "\n" "more..." msgstr "" #: ../datebook_gui.c:359 ../datebook_gui.c:386 msgid "Description:" msgstr "" #: ../datebook_gui.c:360 ../datebook_gui.c:387 #, fuzzy msgid "Note:" msgstr "Примітка" #: ../datebook_gui.c:362 ../datebook_gui.c:390 #, fuzzy msgid "Alarm:" msgstr "Сповіщення" #: ../datebook_gui.c:363 ../datebook_gui.c:391 #, fuzzy msgid "Repeat Type:" msgstr "Повторюється у:" #: ../datebook_gui.c:366 ../datebook_gui.c:394 #, fuzzy msgid "Start of Week:" msgstr "День тижня" #: ../datebook_gui.c:388 ../datebook_gui.c:5343 msgid "Location:" msgstr "" #: ../datebook_gui.c:620 ../datebook_gui.c:2271 #, c-format msgid "Appointment description text > %d, truncating to %d\n" msgstr "Текст опису зустрічі > %d, обрізано до %d\n" #: ../datebook_gui.c:631 ../datebook_gui.c:1148 ../datebook_gui.c:2331 #: ../datebook_gui.c:2338 msgid "Error" msgstr "Помилка" #: ../datebook_gui.c:632 msgid "File doesn't appear to be datebook.dat format\n" msgstr "Формат файлу не схожий на datebook.dat\n" #: ../datebook_gui.c:699 msgid "DAT/DBA (Palm Archive Formats)" msgstr "" #: ../datebook_gui.c:787 #, c-format msgid "" "Datebook exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:790 #, c-format msgid "" "Calendar exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:817 ../todo_gui.c:701 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ical file may not be standards-compliant\n" msgstr "" #: ../datebook_gui.c:1148 msgid "Unknown export type" msgstr "Невідомий тип експорту" #: ../datebook_gui.c:1228 ../todo_gui.c:872 #, fuzzy msgid "iCalendar" msgstr "Очистити" #: ../datebook_gui.c:1240 ../export_gui.c:251 ../jpilot.c:429 msgid "Export" msgstr "Експорт" #. Label for instructions #: ../datebook_gui.c:1257 msgid "Export All Datebook Records" msgstr "Експортувати усі записи календар" #: ../datebook_gui.c:1276 ../export_gui.c:316 msgid "Save as" msgstr "Зберегти як" #. Browse button #: ../datebook_gui.c:1286 ../export_gui.c:329 msgid "Browse" msgstr "Огляд" #: ../datebook_gui.c:1432 msgid "Datebook Categories" msgstr "Категорії календаря" #. None button #. Labels for notebook tabs #: ../datebook_gui.c:1484 ../datebook_gui.c:2026 ../datebook_gui.c:5449 msgid "None" msgstr "Немає" #: ../datebook_gui.c:1633 msgid "Begin On Date" msgstr "Дата початку" #: ../datebook_gui.c:1639 msgid "End On Date" msgstr "Дата закінчення" #: ../datebook_gui.c:1751 ../prefs.c:451 msgid "Sunday" msgstr "Неділя" #: ../datebook_gui.c:1752 ../prefs.c:452 msgid "Monday" msgstr "Понеділок" #: ../datebook_gui.c:1753 msgid "Tuesday" msgstr "Вівторок" #: ../datebook_gui.c:1754 msgid "Wednesday" msgstr "Середа" #: ../datebook_gui.c:1755 msgid "Thursday" msgstr "Четвер" #: ../datebook_gui.c:1756 msgid "Friday" msgstr "П'ятниця" #: ../datebook_gui.c:1757 msgid "Saturday" msgstr "Субота" #: ../datebook_gui.c:1760 msgid "4th" msgstr "4-й" #: ../datebook_gui.c:1760 msgid "Last" msgstr "Останній" #: ../datebook_gui.c:1763 #, c-format msgid "" "This appointment can either\n" "repeat on the 4th %s\n" "of the month, or on the last\n" "%s of the month.\n" "Which do you want?" msgstr "" "Ця зустріч може повторюватись\n" "або кожної 4-ї %s\n" "місяця, або у останній\n" "%s місяця.\n" "Що ви обираєте?" #: ../datebook_gui.c:1770 ../datebook_gui.c:1786 msgid "Question?" msgstr "Запитання?" #: ../datebook_gui.c:1777 #, fuzzy msgid "" "This is a repeating event.\n" "Do you want to apply these changes to\n" "only the CURRENT event,\n" "just FUTURE events, or\n" "ALL of the occurrences of this event?" msgstr "" "Це періодична подія.\n" "Бажаєте застосувати ці зміни\n" "лише до ПОТОЧНОЇ події,\n" "чи до усіх таких подій?" #: ../datebook_gui.c:1782 msgid "Current" msgstr "Поточна" #: ../datebook_gui.c:1782 msgid "Future" msgstr "" #: ../datebook_gui.c:2027 msgid "day" msgstr "день" #: ../datebook_gui.c:2028 msgid "week" msgstr "тиждень" #: ../datebook_gui.c:2029 msgid "month" msgstr "місяць" #: ../datebook_gui.c:2030 msgid "year" msgstr "рік" #: ../datebook_gui.c:2326 ../datebook_gui.c:2329 #, c-format msgid "You cannot have an appointment that repeats every %d %s(s)\n" msgstr "Зустріч, що повторюється кожні %d %s(s) неможлива.\n" #: ../datebook_gui.c:2339 #, fuzzy msgid "" "You cannot have a weekly repeating appointment that doesn't repeat on any " "day of the week." msgstr "Щотижнева зустріч, що не повторюється у жоден із днів тижня неможлива." #. This is a timeless event #: ../datebook_gui.c:2516 ../datebook_gui.c:5264 msgid "No Time" msgstr "Час не вказано" #: ../datebook_gui.c:2788 ../memo_gui.c:1259 ../todo_gui.c:1728 msgid "External editor command too long to execute\n" msgstr "" #: ../datebook_gui.c:2943 msgid "Invalid Appointment" msgstr "Неправильна зустріч" #: ../datebook_gui.c:2944 msgid "" "The End Date of this appointment\n" "is before the start date." msgstr "" "Дата закінчення цієї зустрічі більш рання,\n" "ніж дата початку." #. "No Date" check box #: ../datebook_gui.c:3339 ../datebook_gui.c:5482 ../datebook_gui.c:5513 #: ../datebook_gui.c:5565 ../datebook_gui.c:5613 ../todo_gui.c:142 #: ../todo_gui.c:2454 msgid "No Date" msgstr "Дату не вказано" #: ../datebook_gui.c:3494 #, fuzzy, c-format msgid "Error in DateBookDB or Calendar advanceUnits = %d\n" msgstr "Помилка у DateBookDB advanceUnits = %d\n" #: ../datebook_gui.c:3681 #, c-format msgid "%%a., %s" msgstr "%%a., %s" #: ../datebook_gui.c:3686 msgid " (TODAY)" msgstr " (СЬОГОДНІ)" #. Weekview button #: ../datebook_gui.c:4934 ../datebook_gui.c:5451 msgid "Week" msgstr "Тиждень" #: ../datebook_gui.c:4943 #, fuzzy msgid "View appointments by week Ctrl+W" msgstr "Переглянути зустрічі тижня" #. Monthview button #: ../datebook_gui.c:4946 ../datebook_gui.c:5452 msgid "Month" msgstr "Місяць" #: ../datebook_gui.c:4955 #, fuzzy msgid "View appointments by month Ctrl+M" msgstr "Переглянути зустрічі місяця" #. Make Category button #: ../datebook_gui.c:4960 msgid "Cats" msgstr "Категорії" #: ../datebook_gui.c:5024 msgid "Time" msgstr "Час" #. "Show ToDos" button #: ../datebook_gui.c:5067 msgid "Show ToDos" msgstr "Показувати завдання" #: ../datebook_gui.c:5081 ../todo_gui.c:2285 msgid "Task" msgstr "Завдання" #: ../datebook_gui.c:5082 ../todo_gui.c:2286 msgid "Due" msgstr "До" #: ../datebook_gui.c:5201 ../datebook_gui.c:5358 msgid "Alarm" msgstr "Сповіщення" #. Date Spinners #: ../datebook_gui.c:5241 ../Expense/expense.c:1736 msgid "Date:" msgstr "Дата:" #. Start date and time #: ../datebook_gui.c:5283 #, fuzzy msgid "Start" msgstr "Починається" #. End date and time #: ../datebook_gui.c:5300 #, fuzzy msgid "End" msgstr "Закінчується" #: ../datebook_gui.c:5433 msgid "DateBk Tags" msgstr "Теги DateBk" #: ../datebook_gui.c:5450 msgid "Day" msgstr "День" #: ../datebook_gui.c:5453 msgid "Year" msgstr "Рік" #. "No Repeat" page for notebook #: ../datebook_gui.c:5456 msgid "This event will not repeat" msgstr "Ця подія не повторюється" #: ../datebook_gui.c:5465 ../datebook_gui.c:5498 ../datebook_gui.c:5550 #: ../datebook_gui.c:5596 msgid "Frequency is Every" msgstr "Повторюється кожен" #: ../datebook_gui.c:5471 msgid "Day(s)" msgstr "день" #: ../datebook_gui.c:5474 ../datebook_gui.c:5507 ../datebook_gui.c:5559 #: ../datebook_gui.c:5605 msgid "End on" msgstr "Закінчується" #: ../datebook_gui.c:5504 msgid "Week(s)" msgstr "тиждень" #: ../datebook_gui.c:5556 msgid "Month(s)" msgstr "місяць" #: ../datebook_gui.c:5573 msgid "Repeat by:" msgstr "Повторюється у:" #: ../datebook_gui.c:5577 msgid "Day of week" msgstr "День тижня" #: ../datebook_gui.c:5586 ../Expense/expense.c:1618 msgid "Date" msgstr "Дата" #: ../datebook_gui.c:5602 msgid "Year(s)" msgstr "рік" #: ../dialer.c:195 msgid "Phone Dialer" msgstr "Набирання номера" #: ../dialer.c:230 msgid "Prefix 1" msgstr "Префікс 1" #: ../dialer.c:252 msgid "Prefix 2" msgstr "Префікс 2" #: ../dialer.c:274 msgid "Prefix 3" msgstr "Префікс 3" #: ../dialer.c:289 msgid "Phone number:" msgstr "номер телефону:" #: ../dialer.c:319 msgid "Extension" msgstr "Розширення" #: ../dialer.c:341 msgid "Dial Command" msgstr "Команда набирання" #: ../export_gui.c:121 msgid "File Browser" msgstr "Огляд файлів" #. Label for instructions #: ../export_gui.c:273 msgid "Select records to be exported" msgstr "Виберіть записи для експорту" #: ../export_gui.c:275 msgid "Use Ctrl and Shift Keys" msgstr "Користуйтесь клавішами Ctrl та Shift" #. Import button #: ../import_gui.c:300 ../import_gui.c:369 ../import_gui.c:426 #: ../import_gui.c:471 ../jpilot.c:385 msgid "Import" msgstr "Імпорт" #: ../import_gui.c:317 #, c-format msgid "Record was marked as private" msgstr "Запис позначений як приватний" #: ../import_gui.c:319 #, c-format msgid "Record was not marked as private" msgstr "Запис не позначений як приватний" #: ../import_gui.c:328 #, c-format msgid "Category before import was: [%s]" msgstr "Перед імпортом категорія була: [%s]" #: ../import_gui.c:336 #, c-format msgid "Record will be put in category [%s]" msgstr "Запис був у категорії [%s]" #. Import All button #: ../import_gui.c:376 msgid "Import All" msgstr "Імпортувати усе" #. Skip button #: ../import_gui.c:383 msgid "Skip" msgstr "Пропустити" #: ../import_gui.c:457 ../install_gui.c:429 msgid "To change to a hidden directory type it below and hit TAB" msgstr "" "Щоб змінити прихований каталог, наберіть його назву нижче та натисніть Tab" #: ../import_gui.c:484 msgid "Import File Type" msgstr "Тип файлу імпорту" #: ../install_gui.c:366 #, fuzzy msgid "Files to install" msgstr "Файли, що будуть встановлені" #: ../install_gui.c:374 msgid "Install" msgstr "Встановити" #: ../install_user.c:118 ../install_user.c:220 #, fuzzy msgid "Install User" msgstr "/Файл/Встановити користувача" #: ../install_user.c:139 msgid "" "A PalmOS(c) device needs a user name and a user ID in order to sync properly." msgstr "" #: ../install_user.c:146 msgid "" "If you want to sync more than 1 PalmOS(c) device each one should have a " "different ID and preferably a different user name." msgstr "" #. Instruction label #: ../install_user.c:168 msgid "Most people choose their name or nickname for the user name." msgstr "" #: ../install_user.c:176 ../restore_gui.c:278 msgid "User Name" msgstr "Ім'я користувача" #: ../install_user.c:186 msgid "The ID should be a random number." msgstr "" #: ../install_user.c:194 ../restore_gui.c:297 msgid "User ID" msgstr "Ідентифікатор користувача" #: ../jpilot.c:319 msgid "Print" msgstr "Друк" #: ../jpilot.c:320 msgid "There is no print support for this conduit." msgstr "Для цього каналу друк не підтримується." #: ../jpilot.c:386 msgid "There is no import support for this conduit." msgstr "Для цього каналу імпорт не підтримується." #: ../jpilot.c:430 msgid "There is no export support for this conduit." msgstr "Для цього каналу експорт не підтримується." #: ../jpilot.c:659 #, fuzzy msgid " Cancelling HotSync\n" msgstr "Скасувати синхронізацію" #. ------------------------------------------- #: ../jpilot.c:675 #, fuzzy msgid "" "This handheld does not have the same user name or user ID\n" "as the one that was synced the last time.\n" "Syncing could have unwanted effects including data loss.\n" "\n" "Read the user manual if you are uncertain." msgstr "" "Назва або ідентифікатор користувача цього пристрою palm\n" "відрізняється від назви або ідентифікатора, що були під час\n" "останньої синхронізації. Синхронізація може призвести до небажаних\n" "ефектів. Якщо щось незрозуміло, читайте довідку користувача." #. ------------------------------------------- #: ../jpilot.c:682 #, fuzzy msgid "" "This handheld has a NULL user ID.\n" "Every handheld must have a unique user ID in order to sync properly.\n" "If the handheld has been hard reset, \n" " use restore from the menu to restore it.\n" "Otherwise, to add a new user name and ID\n" " use install-user from the menu.\n" "\n" "Read the user manual if you are uncertain." msgstr "" "Ідентифікатор користувача цього пристрою palm дорівнює NULL.\n" "Що синхронізація відбувалась правильно, кожен palm повинен мати\n" "унікальний ідентифікатор. Якщо він був скинутий, відновіть його у,\n" "меню відновлення або використовуючи pilot-xfer.\n" "Щоб додати ім'я та ідентифікатор користувача використовуйте\n" "програму install-user, або пункт меню Встановити користувача.\n" "Якщо щось незрозуміло, читайте довідку користувача." #: ../jpilot.c:690 msgid "Cancel Sync" msgstr "Скасувати синхронізацію" #: ../jpilot.c:690 msgid "Sync Anyway" msgstr "Синхронізувати все одно" #: ../jpilot.c:699 ../jpilot.c:703 msgid "Sync Problem" msgstr "Помилка синхронізації" #: ../jpilot.c:932 ../jpilot.c:1785 msgid " User: " msgstr "Користувач: " #: ../jpilot.c:944 msgid "Unknown command from sync process\n" msgstr "Невідома команда від процесу синхронізації\n" #: ../jpilot.c:963 ../Expense/expense.c:529 ../KeyRing/keyring.c:1872 #: ../SyncTime/synctime.c:61 #, c-format msgid "About %s" msgstr "Про %s" #: ../jpilot.c:1105 msgid "/_File" msgstr "/_Файл" #: ../jpilot.c:1106 msgid "/File/tear" msgstr "/Файл/tear" #: ../jpilot.c:1107 msgid "/File/_Find" msgstr "/Файл/З_найти" #: ../jpilot.c:1108 ../jpilot.c:1114 ../jpilot.c:1117 msgid "/File/sep1" msgstr "/Файл/sep1" #: ../jpilot.c:1109 msgid "/File/_Install" msgstr "/Файл/_Встановити" #: ../jpilot.c:1110 msgid "/File/Import" msgstr "/Файл/Імпорт" #: ../jpilot.c:1111 msgid "/File/Export" msgstr "/Файл/Експорт" #: ../jpilot.c:1112 ../jpilot.c:2190 msgid "/File/Preferences" msgstr "/Файл/Вподобання" #: ../jpilot.c:1113 msgid "/File/_Print" msgstr "/Файл/Д_рук" #: ../jpilot.c:1115 msgid "/File/Install User" msgstr "/Файл/Встановити користувача" #: ../jpilot.c:1116 msgid "/File/Restore Handheld" msgstr "/Файл/Відновити КПК" #: ../jpilot.c:1118 msgid "/File/_Quit" msgstr "/Файл/Ви_йти" #: ../jpilot.c:1119 msgid "/_View" msgstr "/_Вигляд" #: ../jpilot.c:1120 ../jpilot.c:1121 ../jpilot.c:1122 ../jpilot.c:1368 msgid "/View/Hide Private Records" msgstr "/Вигляд/Сховати приватні записи" #: ../jpilot.c:1121 ../jpilot.c:1371 msgid "/View/Show Private Records" msgstr "/Вигляд/Показати приватні записи" #: ../jpilot.c:1122 ../jpilot.c:1374 msgid "/View/Mask Private Records" msgstr "/Вигляд/Маскувати приватні записи" #: ../jpilot.c:1123 msgid "/View/sep1" msgstr "/Файл/sep1" #: ../jpilot.c:1124 msgid "/View/Datebook" msgstr "/Вигляд/Календар" #: ../jpilot.c:1125 msgid "/View/Addresses" msgstr "/Вигляд/Адресна книга" #: ../jpilot.c:1126 msgid "/View/Todos" msgstr "/Вигляд/Завдання" #: ../jpilot.c:1127 msgid "/View/Memos" msgstr "/Вигляд/Пам'ятки" #: ../jpilot.c:1128 ../jpilot.c:1259 msgid "/_Plugins" msgstr "/_Модулі" #: ../jpilot.c:1130 msgid "/_Web" msgstr "/_Web" #. web #: ../jpilot.c:1131 msgid "/Web/Netscape" msgstr "/Web/Netscape" #: ../jpilot.c:1135 msgid "/Web/Mozilla" msgstr "/Web/Mozilla" #: ../jpilot.c:1140 msgid "/Web/Galeon" msgstr "/Web/Galeon" #: ../jpilot.c:1145 msgid "/Web/Opera" msgstr "/Web/Opera" #: ../jpilot.c:1149 msgid "/Web/GnomeUrl" msgstr "/Web/GnomeUrl" #: ../jpilot.c:1151 msgid "/Web/Lynx" msgstr "/Web/Lynx" #: ../jpilot.c:1153 msgid "/Web/Links" msgstr "/Web/Links" #: ../jpilot.c:1155 msgid "/Web/W3M" msgstr "/Web/W3M" #: ../jpilot.c:1157 msgid "/Web/Konqueror" msgstr "/Web/Konqueror" #: ../jpilot.c:1160 msgid "/_Help" msgstr "/_Довідка" #: ../jpilot.c:1161 #, fuzzy msgid "/Help/About J-Pilot" msgstr "/Довідка/J-Pilot" #: ../jpilot.c:1227 #, c-format msgid "/_Plugins/%s" msgstr "/_Модулі/%s" #: ../jpilot.c:1237 #, c-format msgid "/_Help/%s" msgstr "/_Довідка/%s" #: ../jpilot.c:1591 msgid "calendar:week_start:0" msgstr "calendar:week_start:0" #: ../jpilot.c:1634 ../jpilot-sync.c:171 msgid "Not loading plugins.\n" msgstr "Не завантажено модулі.\n" #: ../jpilot.c:1638 msgid "Ignoring all alarms.\n" msgstr "Ігноруються усі сповіщення.\n" #: ../jpilot.c:1642 msgid "Ignoring past alarms.\n" msgstr "Ігноруються останні сповіщення.\n" #: ../jpilot.c:1730 ../jpilot.c:1738 msgid "Unable to open pipe\n" msgstr "Не вдається відкрити канал\n" #: ../jpilot.c:1947 #, fuzzy msgid "Show private records Ctrl+Z" msgstr "Показати приватні записи Ctrl-Z" #: ../jpilot.c:1952 #, fuzzy msgid "Hide private records Ctrl+Z" msgstr "Сховати приватні записи Ctrl-Z" #: ../jpilot.c:1957 #, fuzzy msgid "Mask private records Ctrl+Z" msgstr "Маскувати приватні записи Ctrl-Z" #: ../jpilot.c:1969 #, fuzzy msgid "Sync your palm to the desktop Ctrl+Y" msgstr "Синхронізувати palm з програмою Ctrl-Y" #: ../jpilot.c:1981 #, fuzzy msgid "Stop Sync process" msgstr "Синхронізувати адреси" #: ../jpilot.c:1993 msgid "" "Sync your palm to the desktop\n" "and then do a backup" msgstr "" "Синхронізувати palm з програмою\n" "потім зробити резервну копію" #: ../jpilot.c:2141 msgid "Datebook/Go to Today" msgstr "Календар/Перейти на сьогодні" #: ../jpilot.c:2142 msgid "Address Book" msgstr "Адресна книга" #: ../jpilot.c:2143 msgid "ToDo List" msgstr "Перелік завдань" #: ../jpilot.c:2144 msgid "Memo Pad" msgstr "Блокнот пам'яток" #: ../jpilot.c:2172 msgid "Do it now" msgstr "Виконати зараз" #: ../jpilot.c:2172 msgid "Remind me later" msgstr "Нагадати пізніше" #: ../jpilot.c:2172 msgid "Don't tell me again!" msgstr "Більше не згадувати!" #: ../jpilot.c:2185 #, fuzzy, c-format msgid "" "J-Pilot uses the GTK2 graphical toolkit. This version of the toolkit uses " "UTF-8 to encode characters.\n" "You should select a UTF-8 charset so that you can see non-ASCII characters " "(accents for example).\n" "\n" "Go to the menu \"%s\" and change the \"%s\"." msgstr "" "J-Pilot використовує графічну бібліотеку GTK2. Ця версія бібліотеки " "використовує UTF-8 для кодування символів.\n" "Слід вибрати набір символів UTF-8, тоді ви зможете побачити не-ASCII символи " "(наприклад символи з акцентами).\n" "\n" #. Character Set #: ../jpilot.c:2190 ../prefs_gui.c:511 #, fuzzy msgid "Character Set" msgstr "Набір символів " #: ../jpilot.c:2192 msgid "Select a UTF-8 encoding" msgstr "Виберіть кодування UTF-8" #: ../jpilot-dump.c:94 #, fuzzy, c-format msgid " +D +A +T +M format like date +format.\n" msgstr "" " +B +M +A +T дата відповідна до формату +format (використовуйте -? для " "докладнішої інформації).\n" #: ../jpilot-dump.c:95 #, fuzzy, c-format msgid " -v display version and exit\n" msgstr " -v вивести версію та завершитись.\n" #: ../jpilot-dump.c:96 ../jpilot-sync.c:68 ../utils.c:1874 #, fuzzy, c-format msgid " -h display help text\n" msgstr " -h вивести версію та завершитись.\n" #: ../jpilot-dump.c:97 #, fuzzy, c-format msgid " -f display help for format codes\n" msgstr " -h вивести версію та завершитись.\n" #: ../jpilot-dump.c:98 #, fuzzy, c-format msgid " -D dump DateBook\n" msgstr " -B дамп календаря.\n" #: ../jpilot-dump.c:99 #, fuzzy, c-format msgid " -i dump DateBook in iCalendar format\n" msgstr " -B дамп календаря.\n" #: ../jpilot-dump.c:100 #, fuzzy, c-format msgid " -N dump appts for today in DateBook\n" msgstr " -N дамп програми сьогодні у календарі.\n" #: ../jpilot-dump.c:101 #, fuzzy, c-format msgid " -NYYYY/MM/DD dump appts on YYYY/MM/DD in DateBook\n" msgstr " -NYYYY/MM/DD дамп програм у YYYY/MM/DD у календарі.\n" #: ../jpilot-dump.c:102 #, fuzzy, c-format msgid " -A dump Address book\n" msgstr " -A дамп адресної книги.\n" #: ../jpilot-dump.c:103 #, fuzzy, c-format msgid " -T dump ToDo list as CSV\n" msgstr " -T дамп списку завдань у CSV.\n" #: ../jpilot-dump.c:104 #, fuzzy, c-format msgid " -M dump Memos\n" msgstr " -M дамп пам'яток.\n" #: ../jpilot-dump.c:165 #, c-format msgid "" "Warning: Host character encoding is not UTF-8 based.\n" "Exported ical file may not be standards-compliant\n" msgstr "" #: ../jpilot-merge.c:163 ../jpilot-merge.c:169 #, fuzzy, c-format msgid "%s: Unable to open file:%s\n" msgstr "Не вдається відкрити файл: %s\n" #: ../jpilot-merge.c:271 #, c-format msgid "Records read from pdb = %d\n" msgstr "" #: ../jpilot-merge.c:272 #, c-format msgid "Records added = %d\n" msgstr "" #: ../jpilot-merge.c:273 #, c-format msgid "Records deleted = %d\n" msgstr "" #: ../jpilot-merge.c:274 #, c-format msgid "Records modified = %d\n" msgstr "" #: ../jpilot-merge.c:275 #, c-format msgid "Records written = %d\n" msgstr "" #: ../jpilot-merge.c:293 #, c-format msgid "Usage: %s {input pdb file} {input pc3 file} {output pdb file}\n" msgstr "" #: ../jpilot-merge.c:294 #, c-format msgid " This program will merge an unsynced records file (pc3)\n" msgstr "" #: ../jpilot-merge.c:295 #, c-format msgid "" " into the corresponding palm database (pdb) file.\n" "\n" msgstr "" #: ../jpilot-merge.c:296 #, c-format msgid " WARNING: Only run this utility if you understand the consequences!\n" msgstr "" #: ../jpilot-merge.c:297 #, c-format msgid " The merge will leave your databases in an unsync-able state.\n" msgstr "" #: ../jpilot-merge.c:298 #, c-format msgid "" " It is intended for cases where J-pilot is being used as a standalone PIM\n" msgstr "" #: ../jpilot-merge.c:299 #, c-format msgid " and where no syncing occurs to physical hardware.\n" msgstr "" #: ../jpilot-merge.c:300 #, c-format msgid " WARNING: Make a backup copy of your databases before proceeding.\n" msgstr "" #: ../jpilot-merge.c:301 #, c-format msgid "" " It is quite simple to destroy your databases by accidentally merging\n" msgstr "" #: ../jpilot-merge.c:302 #, c-format msgid " address records into datebook databases, etc.\n" msgstr "" #: ../jpilot-sync.c:66 #, fuzzy, c-format msgid "" " J-Pilot preferences are read to get sync info such as port, rate, number of " "backups, etc.\n" msgstr "" " Читаються параметри J-Pilot для визначення порта, швидкості, кількості " "резервних копій, тощо.\n" #: ../jpilot-sync.c:67 ../utils.c:1873 #, fuzzy, c-format msgid " -v display version and compile options\n" msgstr " -v вивести версію та параметри компіляції.\n" #: ../jpilot-sync.c:69 ../utils.c:1875 #, fuzzy, c-format msgid " -d display debug info to stdout\n" msgstr " -d вивести налагоджувальну інформацію у стандартний вивід.\n" #: ../jpilot-sync.c:70 #, fuzzy, c-format msgid " -P skip loading plugins\n" msgstr "Не завантажено модулі.\n" #: ../jpilot-sync.c:71 #, fuzzy, c-format msgid " -b sync, and then do a backup\n" msgstr "" "Синхронізувати palm з програмою\n" "потім зробити резервну копію" #: ../jpilot-sync.c:72 #, fuzzy, c-format msgid " -l loop, otherwise sync once and exit\n" msgstr "" " -l = циклічно, у іншому випадку один раз виконати синхронізацію та вийти.\n" #: ../jpilot-sync.c:73 #, fuzzy, c-format msgid " -p {port} use this port to sync on instead of default\n" msgstr "" " -p {порт} = Використовувати цей порт для синхронізації замість отримання " "параметрів.\n" #: ../jpilot-sync.c:221 #, fuzzy, c-format msgid "Error: connecting to port %s\n" msgstr "Помилка при відкриванні файлу: %s\n" #: ../jpilot-sync.c:225 #, c-format msgid "Error: pi_listen\n" msgstr "" #: ../jpilot-sync.c:229 #, fuzzy, c-format msgid "Error: opening conduit to handheld\n" msgstr "Помилка при відкриванні файлу: next_id\n" #: ../jpilot-sync.c:233 #, c-format msgid "Error: pi_accept\n" msgstr "" #: ../jpilot-sync.c:237 ../jpilot-sync.c:265 #, fuzzy, c-format msgid "Error: " msgstr "Помилка" #: ../jpilot-sync.c:238 #, c-format msgid "This handheld does not have the same user name.\n" msgstr "" #: ../jpilot-sync.c:239 ../jpilot-sync.c:253 #, c-format msgid "as the one that was synced the last time.\n" msgstr "" #: ../jpilot-sync.c:241 #, c-format msgid "" "Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:243 ../jpilot-sync.c:256 #, c-format msgid " COPILOT_HOME" msgstr "" #: ../jpilot-sync.c:245 ../jpilot-sync.c:258 #, c-format msgid " JPILOT_HOME" msgstr "" #: ../jpilot-sync.c:247 ../jpilot-sync.c:260 #, fuzzy, c-format msgid " environment variable can be used to sync different handhelds,\n" msgstr "Значення змінної оточення HOME надто довге\n" #: ../jpilot-sync.c:248 ../jpilot-sync.c:261 #, c-format msgid " to different directories for the same UNIX user name.\n" msgstr "" #: ../jpilot-sync.c:252 #, c-format msgid "This handheld does not have the same user ID.\n" msgstr "" #: ../jpilot-sync.c:254 #, c-format msgid "" " Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:266 #, c-format msgid "This handheld has a NULL user ID.\n" msgstr "" #: ../jpilot-sync.c:267 #, c-format msgid "Every handheld must have a unique user ID in order to sync properly.\n" msgstr "" #: ../jpilot-sync.c:268 #, c-format msgid "If the handheld has been hard reset, \n" msgstr "" #: ../jpilot-sync.c:269 #, c-format msgid " use restore from within " msgstr "" #: ../jpilot-sync.c:270 #, c-format msgid "Otherwise, to add a new user name and ID\n" msgstr "" #: ../jpilot-sync.c:271 #, c-format msgid " use \"install-user %s name numeric_id\"\n" msgstr "" #: ../jpilot-sync.c:275 #, c-format msgid "Error: sync returned error %d\n" msgstr "" #: ../libplugin.c:64 ../utils.c:1054 msgid "" "This record is already deleted.\n" "It is scheduled to be deleted from the Palm on the next sync.\n" msgstr "" "Цей запис вже видалено.\n" "Він запланований на видалення з Palm при черговій синхронізації.\n" #: ../libplugin.c:73 ../libplugin.c:110 ../utils.c:1064 ../utils.c:1106 msgid "Unable to open PC records file\n" msgstr "Не вдається відкрити файл записів PC\n" #: ../libplugin.c:79 ../utils.c:1071 msgid "Couldn't find record to delete\n" msgstr "Не вдається знайти запис для видалення\n" #: ../libplugin.c:97 ../utils.c:1091 #, c-format msgid "Unknown header version %d\n" msgstr "Невідома версія заголовка %d\n" #: ../libplugin.c:182 #, c-format msgid "%s:%d Error opening file: %s\n" msgstr "%s:%d Помилка відкривання файлу: %s\n" #: ../libplugin.c:188 ../libplugin.c:217 ../sync.c:1721 ../todo.c:102 #, c-format msgid "%s:%d Error reading file: %s\n" msgstr "%s:%d Помилка читання файлу: %s\n" #: ../libplugin.c:340 ../libplugin.c:398 ../utils.c:2119 ../utils.c:2132 #, c-format msgid "Error opening file: %s\n" msgstr "Помилка при відкриванні файлу: %s\n" #: ../libplugin.c:526 #, c-format msgid "Error reading %s 5\n" msgstr "Помилка при читанні %s 5\n" #: ../libplugin.c:801 msgid "Error reading PC file 1\n" msgstr "Помилка при читанні файлу PC 1\n" #: ../libplugin.c:817 msgid "Error reading PC file 2\n" msgstr "Помилка при читанні файлу PC 1\n" #: ../libplugin.c:923 #, c-format msgid "Unknown PC header version = %d\n" msgstr "Невідома версія заголовка PC = %d\n" #: ../log.c:101 #, c-format msgid "Unable to open log file, giving up.\n" msgstr "Не вдається відкрити файл журналу, спроби закінчені.\n" #: ../log.c:111 #, c-format msgid "Unable to open log file\n" msgstr "Не вдається відкрити файл журналу\n" #: ../memo_gui.c:302 msgid "Memo text > 65535, truncating\n" msgstr "Довжина тексту пам'ятки > 65535, обрізується\n" #: ../memo_gui.c:330 #, c-format msgid "Imported Memo %s\n" msgstr "Імпортована пам'ятка %s\n" #: ../memo_gui.c:400 msgid "File doesn't appear to be memopad.dat format\n" msgstr "Формат файлу не схожий на формат memopad.dat\n" #: ../memo_gui.c:471 msgid "DAT/MPA (Palm Archive Formats)" msgstr "" #: ../memo_gui.c:554 #, c-format msgid "" "Memo exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:557 #, c-format msgid "" "Memos exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:584 #, c-format msgid "Can't export memo %d\n" msgstr "Не вдається експортувати %d\n" #: ../memo_gui.c:628 #, fuzzy, c-format msgid "Memo: %ld\n" msgstr "Блокнот пам'яток" #: ../memo_gui.c:634 #, c-format msgid "----- Start of Memo -----\n" msgstr "" #: ../memo_gui.c:636 #, c-format msgid "" "\n" "----- End of Memo -----\n" "\n" msgstr "" #: ../memo_gui.c:668 msgid "B-Folders CSV" msgstr "" #: ../monthview_gui.c:438 msgid "Monthly View" msgstr "Перегляд місяця" #: ../monthview_gui.c:480 msgid "Last month Alt+LeftArrow" msgstr "" #: ../monthview_gui.c:508 msgid "Next month Alt+RightArrow" msgstr "" #: ../otherconv.c:76 #, c-format msgid "%s: error exit from g_iconv_close(%s)\n" msgstr "" #: ../otherconv.c:201 #, c-format msgid "%s:%s g_convert_with_iconv error: %s, buff: %s\n" msgstr "" #: ../otherconv.c:203 msgid "last char truncated" msgstr "" #: ../otherconv.c:280 #, c-format msgid "UTF_to_other: %s\n" msgstr "" #: ../otherconv.c:294 #, c-format msgid "iconv: unconvertible sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:298 #, c-format msgid "iconv: incomplete UTF-8 sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:301 #, c-format msgid "iconv: buffer filled. stopped at place %d in '%s'\n" msgstr "" #: ../otherconv.c:304 #, c-format msgid "iconv: unexpected error at place %d in '%s'\n" msgstr "" #: ../password.c:283 msgid "Palm Password" msgstr "Пароль Palm" #: ../password.c:308 msgid "Incorrect, Reenter PalmOS Password" msgstr "Некоректний, введіть пароль PalmOS" #: ../password.c:310 msgid "Enter PalmOS Password" msgstr "Введіть пароль PalmOS" #: ../pidfile.c:67 msgid "removing stale pidfile\n" msgstr "" #: ../pidfile.c:91 #, fuzzy, c-format msgid "create pidfile failed: %s\n" msgstr "Помилка при читанні файлу: %s\n" #: ../pidfile.c:92 msgid "Warning: hotplug syncing disabled.\n" msgstr "" #: ../plugins.c:90 ../plugins.c:203 ../restore_gui.c:133 msgid "infinite loop" msgstr "нескінчений цикл" #: ../plugins.c:216 #, c-format msgid "While reading %s%s line 1:[%s]\n" msgstr "при читанні %s%s рядок 1:[%s]\n" #: ../plugins.c:217 msgid "Wrong Version\n" msgstr "Неправильна версія\n" #: ../plugins.c:218 msgid "Check preferences->conduits\n" msgstr "Перевірте параметри->канали\n" #: ../plugins.c:274 #, c-format msgid "" "Open failed on plugin [%s]\n" " error [%s]\n" msgstr "" "Помилка відкривання у модулі [%s]\n" " помилка [%s]\n" #: ../plugins.c:291 ../plugins.c:316 #, c-format msgid " plugin is invalid: [%s]\n" msgstr " модуль неправильний: [%s]\n" #: ../plugins.c:299 #, c-format msgid "Plugin:[%s]\n" msgstr "Модуль:[%s]\n" #: ../plugins.c:300 #, c-format msgid "This plugin is version (%d.%d).\n" msgstr "Цей модуль версії (%d.%d).\n" #: ../plugins.c:302 msgid "It is too old to work with this version of J-Pilot.\n" msgstr "Занадто давній та не підтримується цією версією J-Pilot.\n" #: ../prefs.c:420 msgid "%B %d, %Y" msgstr "%B %d, %Y" #: ../prefs.c:421 msgid "%d %B %Y" msgstr "%d %B %Y" #: ../prefs.c:422 msgid "%d. %B %Y" msgstr "%d. %B %Y" #: ../prefs.c:423 msgid "%d %B, %Y" msgstr "%d %B, %Y" #: ../prefs.c:424 msgid "%Y. %B. %d" msgstr "%Y. %B. %d" #: ../prefs.c:425 msgid "%Y %B %d" msgstr "%Y %B %d" #: ../prefs_gui.c:454 msgid "Preferences" msgstr "Вподобання" #: ../prefs_gui.c:485 msgid "Locale" msgstr "Локаль" #: ../prefs_gui.c:487 msgid "Settings" msgstr "Параметри" #: ../prefs_gui.c:489 msgid "Datebook" msgstr "Календар" #: ../prefs_gui.c:493 msgid "ToDo" msgstr "Завдання" #: ../prefs_gui.c:495 msgid "Memo" msgstr "Пам'ятки" #: ../prefs_gui.c:497 msgid "Alarms" msgstr "Сповіщення" #: ../prefs_gui.c:499 msgid "Conduits" msgstr "Канали" #. Shortdate #: ../prefs_gui.c:524 #, fuzzy msgid "Short date format" msgstr "Короткий формат дати " #. Longdate #: ../prefs_gui.c:537 #, fuzzy msgid "Long date format" msgstr "Довгий формат дати " #. Time #: ../prefs_gui.c:550 #, fuzzy msgid "Time format" msgstr "Формат часу " #. GTK colors file #: ../prefs_gui.c:570 #, fuzzy msgid "GTK color theme file" msgstr "Файл власних GTK кольорів " #. Port #: ../prefs_gui.c:583 #, fuzzy msgid "Sync Port" msgstr "Помилка синхронізації" #. Serial Rate #: ../prefs_gui.c:607 msgid "Serial Rate" msgstr "" #. Number of backups #: ../prefs_gui.c:627 msgid "Number of backups to be archived" msgstr "Кількість резервних копій" #. Show deleted files check box #: ../prefs_gui.c:645 msgid "Show deleted records (default NO)" msgstr "Показувати видалені записи (типово НІ)" #. Show modified files check box #: ../prefs_gui.c:649 msgid "Show modified deleted records (default NO)" msgstr "Показувати змінені записи (типово НІ)" #: ../prefs_gui.c:654 msgid "Ask confirmation for file installation (J-Pilot -> PDA) (default YES)" msgstr "Підтверджувати встановлення файлів (J-Pilot -> PDA) (типово ТАК)" #. Show tooltips check box #: ../prefs_gui.c:658 #, fuzzy msgid "Show popup tooltips (default YES) (requires restart)" msgstr "Показувати підказки (типово ТАК)" #: ../prefs_gui.c:668 msgid "Use Datebook database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:671 msgid "Use Calendar database (Palm OS > 5.2)" msgstr "" #. Show highlight days check box #: ../prefs_gui.c:697 msgid "Highlight calendar days with appointments" msgstr "Підсвічувати дні календаря із зустрічами" #. Highlight today on month and week view #: ../prefs_gui.c:702 msgid "Annotate today in day, week, and month views" msgstr "Відмічати сьогоднішній день при перегляді дня, тижня та місяця" #. Show number of years on anniversaries in month and week view #: ../prefs_gui.c:706 msgid "Append years on anniversaries in day, week, and month views" msgstr "Додавати роки до річниць при перегляді дня, тижня та місяця " #. Show use DateBk check box #: ../prefs_gui.c:712 msgid "Use DateBk note tags" msgstr "Використовувати DateBk тег приміток" #: ../prefs_gui.c:715 msgid "DateBk support disabled in this build" msgstr "Підтримка DateBk вимкнена у цій збірці" #: ../prefs_gui.c:727 msgid "Use Address database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:730 msgid "Use Contacts database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:759 msgid "Mail Command" msgstr "Команда перевірки пошти" #: ../prefs_gui.c:773 #, c-format msgid "%s is replaced by the e-mail address" msgstr "%s замінено на адресу ел.пошти" #: ../prefs_gui.c:785 msgid "Use ToDo database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:788 msgid "Use Task database (Palm OS > 5.2)" msgstr "" #. hide completed check box #: ../prefs_gui.c:815 msgid "Hide Completed ToDos" msgstr "Приховувати завершені завдання" #. hide todos not yet due check box #: ../prefs_gui.c:819 msgid "Hide ToDos not yet due" msgstr "Приховувати незавершені завдання" #. record todo completion date check box #: ../prefs_gui.c:823 msgid "Record Completion Date" msgstr "Записувати дату завершення" #. Use Manana check box #: ../prefs_gui.c:828 msgid "Use Manana database" msgstr "Використовувати базу даних Manana" #: ../prefs_gui.c:836 msgid "Use default number of days due" msgstr "Використовувати типову кількість потрібних днів" #: ../prefs_gui.c:858 msgid "Use Memo database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:861 msgid "Use Memos database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:864 #, fuzzy msgid "Use Memo32 database (pedit32)" msgstr "Використовувати Memo32 (pedit32)" #: ../prefs_gui.c:904 msgid "External Editor" msgstr "" #: ../prefs_gui.c:917 msgid "Use Ctrl-E inside a memo to launch external editor for memo text" msgstr "" #. ******************************************************************** #. Alarms preference tab #. Open alarm windows check box #: ../prefs_gui.c:925 msgid "Open alarm windows for appointment reminders" msgstr "Відкривати вікна сповіщення для нагадування" #. Execute alarm command check box #: ../prefs_gui.c:929 msgid "Execute this command" msgstr "Виконати цю команду" #. Shell warning label #: ../prefs_gui.c:933 msgid "WARNING: executing arbitrary shell commands can be dangerous!!!" msgstr "" "ПОПЕРЕДЖЕННЯ: виконання довільних сценаріїв оболонки може бути небезпечним!!!" #: ../prefs_gui.c:941 msgid "Alarm Command" msgstr "Команда сповіщення" #: ../prefs_gui.c:954 msgid "%t is replaced with the alarm time" msgstr "%t замінюється на час сповіщення" #: ../prefs_gui.c:958 #, c-format msgid "%d is replaced with the alarm date" msgstr "%d замінюється на дату сповіщення" #: ../prefs_gui.c:963 msgid "%D is replaced with the alarm description" msgstr "%D замінюється на опис сповіщення" #: ../prefs_gui.c:967 msgid "%N is replaced with the alarm note" msgstr "%N замінюється на примітку сповіщення" #: ../prefs_gui.c:971 msgid "%D (description substitution) is disabled in this build" msgstr "%D (підстановку опису) вимкнено у цій збірці" #: ../prefs_gui.c:976 msgid "%N (note substitution) is disabled in this build" msgstr "%D (підстановку приміток) вимкнено у цій збірці" #. ******************************************************************** #. Conduits preference tab #. Sync datebook check box #: ../prefs_gui.c:986 msgid "Sync datebook" msgstr "Синхронізувати календар" #. Sync address check box #: ../prefs_gui.c:990 msgid "Sync address" msgstr "Синхронізувати адреси" #. Sync todo check box #: ../prefs_gui.c:994 msgid "Sync todo" msgstr "Синхронізувати завдання" #. Sync memo check box #: ../prefs_gui.c:998 msgid "Sync memo" msgstr "Синхронізувати пам'ятки" #. Show sync Manana check box #: ../prefs_gui.c:1003 msgid "Sync Manana" msgstr "Синхронізувати Manana" #. Show use Japanese Kana extention check box #: ../prefs_gui.c:1009 msgid "Use J-OS (Not Japanese PalmOS:WorkPad/CLIE)" msgstr "Використовувати J-OS (Не японська PalmOS:WorkPad/CLIE)" #. Make a Sync checkbox for each plugin #: ../prefs_gui.c:1022 #, c-format msgid "Sync %s (%s)" msgstr "Триває синхронізація %s (%s)" #: ../print_gui.c:185 msgid "Print Options" msgstr "Параметри друку" #: ../print_gui.c:198 msgid "Paper Size" msgstr "Розмір паперу" #: ../print_gui.c:214 msgid "Daily Printout" msgstr "Роздрук дня" #: ../print_gui.c:220 msgid "Weekly Printout" msgstr "Роздрук тижня" #: ../print_gui.c:226 msgid "Monthly Printout" msgstr "Роздрук місяць" #: ../print_gui.c:266 #, fuzzy msgid "Selected record" msgstr "Видалено запис %s." #: ../print_gui.c:270 msgid "All records in this category" msgstr "Усі записи у цій категорії" #: ../print_gui.c:274 msgid "Print all records" msgstr "Друкувати усі записи" #: ../print_gui.c:296 msgid "One record per page" msgstr "Один запис на сторінку" #: ../print_gui.c:312 #, fuzzy msgid "Blank lines between each record" msgstr " порожніх рядків між записами" #. Print Command #: ../print_gui.c:321 msgid "Print Command (e.g. lpr, or cat > file.ps)" msgstr "Команда друку (наприклад lpr, або cat > file.ps)" #: ../restore_gui.c:71 ../restore_gui.c:229 msgid "Restore Handheld" msgstr "Відновити КПК" #: ../restore_gui.c:176 ../restore_gui.c:178 msgid "Unable to convert filename for GTK display\n" msgstr "" #: ../restore_gui.c:177 msgid "See console log to find which file will not be restored\n" msgstr "" #: ../restore_gui.c:179 #, fuzzy, c-format msgid "File %s will not be restored\n" msgstr "Файли, що будуть встановлені" #. Label for instructions #: ../restore_gui.c:246 msgid "To restore your handheld:" msgstr "Щоб відновити КПК:" #: ../restore_gui.c:249 #, fuzzy msgid "1. Choose the applications you wish to restore. The default is all." msgstr "" "1. Виберіть усі додатки, які слід відновити. Типово відновлюються усі." #: ../restore_gui.c:252 msgid "2. Enter the User Name and User ID." msgstr "2. Введіть ім'я та ідентифікатор користувача." #: ../restore_gui.c:255 msgid "3. Press the OK button." msgstr "3. Натисніть кнопку Гаразд." #: ../restore_gui.c:258 msgid "This will overwrite data that is currently on the handheld." msgstr "Це призведе до запису даних у КПК." #: ../search_gui.c:144 msgid "datebook" msgstr "календар" #: ../search_gui.c:146 #, fuzzy msgid "calendar" msgstr "Очистити" #: ../search_gui.c:233 msgid "address" msgstr "адреса" #: ../search_gui.c:235 msgid "contact" msgstr "" #: ../search_gui.c:304 msgid "todo" msgstr "завдання" #: ../search_gui.c:361 msgid "memo" msgstr "пам'ятки" #: ../search_gui.c:363 #, fuzzy msgid "memos" msgstr "пам'ятки" #: ../search_gui.c:421 msgid "plugin ?" msgstr "модуль ?" #: ../search_gui.c:501 msgid "No records found" msgstr "Записів не знайдено" #: ../search_gui.c:600 msgid "Search" msgstr "Пошук" #. Search label #: ../search_gui.c:617 msgid "Search for: " msgstr "Шукати: " #. Case Sensitive checkbox #: ../search_gui.c:626 msgid "Case Sensitive" msgstr "Враховувати регістр" #: ../sync.c:120 msgid "open lock file failed\n" msgstr "Не вдається відкрити файл блокування\n" #: ../sync.c:133 msgid "lock failed\n" msgstr "помилка блокування\n" #: ../sync.c:136 #, c-format msgid "sync file is locked by pid %d\n" msgstr "файл синхронізації заблокований процесом з номером %d\n" #: ../sync.c:171 msgid "unlock failed\n" msgstr "помилка розблокування\n" #: ../sync.c:174 #, c-format msgid "sync is locked by pid %d\n" msgstr "синхронізацію заблоковано процесом з номером %d\n" #: ../sync.c:410 #, fuzzy msgid "Check your sync port and settings\n" msgstr "Перевірте параметри послідовного порта\n" #: ../sync.c:669 msgid "Unable to read home dir\n" msgstr "Не вдається прочитати домашній каталог\n" #: ../sync.c:1075 ../sync.c:1413 #, c-format msgid "%s (Creator ID '%s') is up to date, fetch skipped.\n" msgstr "%s (ID автора '%s') оновлено, отримання пропущено.\n" #: ../sync.c:1079 ../sync.c:1417 #, c-format msgid "Fetching '%s' (Creator ID '%s')... " msgstr "Отримується '%s' (ID автора '%s')... " #: ../sync.c:1086 ../sync.c:1423 #, c-format msgid "Failed, unable to create file %s\n" msgstr "Помилка, не вдається створити файл %s\n" #: ../sync.c:1090 ../sync.c:1428 #, c-format msgid "Failed, unable to back up database %s\n" msgstr "Помилка, не вдається створити резервну копію бази даних %s\n" #: ../sync.c:1094 ../sync.c:1432 ../sync.c:1619 msgid "OK\n" msgstr "Гаразд\n" #: ../sync.c:1294 #, c-format msgid "Skipping %s (Creator ID '%s')\n" msgstr "Пропускається %s (ID автора '%s')\n" #: ../sync.c:1488 #, c-format msgid "Installing %s " msgstr "Встановлюється %s " #: ../sync.c:1494 ../sync.c:1530 #, c-format msgid "" "\n" "Unable to open file: '%s': %s!\n" msgstr "" "\n" "Не вдається відкрити файл '%s': %s!\n" #: ../sync.c:1498 #, c-format msgid "" "\n" "Unable to sync file: '%s': file corrupted?\n" msgstr "" "\n" "Не вдається синхронізувати файл '%s': файл пошкоджений?\n" #: ../sync.c:1514 #, fuzzy, c-format msgid "(Creator ID '%s')... " msgstr "(ID автора '%s')..." #: ../sync.c:1518 #, fuzzy, c-format msgid "(Creator ID '%s') " msgstr "(ID автора '%s')..." #: ../sync.c:1520 #, fuzzy, c-format msgid "(SDcard dir %s)... " msgstr "(ID автора '%s')..." #: ../sync.c:1552 ../sync.c:1565 ../sync.c:1580 ../sync.c:1593 #, c-format msgid "" "\n" "Unable to open file: %s\n" msgstr "" "\n" "Не вдається відкрити файл: %s\n" #: ../sync.c:1605 #, c-format msgid "Install %s failed" msgstr "Встановлення %s завершилось помилкою" #: ../sync.c:1609 msgid "Failed.\n" msgstr "Помилка.\n" #: ../sync.c:1615 #, fuzzy, c-format msgid "Installed %s" msgstr "Встановлено %s " #: ../sync.c:1726 #, c-format msgid "%s:%d Error getting app info %s\n" msgstr "%s:%d Помилка отримання інформації про додаток %s\n" #: ../sync.c:1732 ../sync.c:1762 #, c-format msgid "%s:%d Error unpacking app info %s\n" msgstr "%s:%d Помилка розпаковування інформації про додаток %s\n" #: ../sync.c:1753 #, c-format msgid "Error reading appinfo block for %s\n" msgstr "Помилка читання блоку інформації про додаток для %s\n" #. Fix - need a func for this logging #: ../sync.c:1991 ../sync.c:1995 #, c-format msgid "Could not add category %s to remote.\n" msgstr "Не вдається додати категорію %s до віддаленої сторони.\n" #: ../sync.c:1992 ../sync.c:1998 #, c-format msgid "Too many categories on remote.\n" msgstr "Надто багато категорій для віддаленої сторони.\n" #: ../sync.c:1993 ../sync.c:2001 #, c-format msgid "All records on desktop in %s will be moved to %s.\n" msgstr "Усі записи програми у %s будуть переміщені у %s.\n" #: ../sync.c:2096 ../sync.c:2814 #, c-format msgid "Syncing %s\n" msgstr "Триває синхронізація %s\n" #: ../sync.c:2104 ../sync.c:2457 ../sync.c:2822 #, c-format msgid "Wrote an %s record." msgstr "Записано запис %s." #: ../sync.c:2106 ../sync.c:2459 ../sync.c:2824 #, c-format msgid "Writing an %s record failed." msgstr "Записування запису %s завершився помилкою." #: ../sync.c:2108 ../sync.c:2461 ../sync.c:2826 #, c-format msgid "Deleting an %s record failed." msgstr "Видалення запису %s завершився помилкою." #: ../sync.c:2110 ../sync.c:2463 ../sync.c:2828 #, c-format msgid "Deleted an %s record." msgstr "Видалено запис %s." #: ../sync.c:2112 ../sync.c:2465 #, fuzzy, c-format msgid "Sync Conflict: duplicated an %s record." msgstr "Видалено запис %s." #: ../sync.c:2115 ../sync.c:2468 ../sync.c:2831 #, c-format msgid "Wrote a %s record." msgstr "Записано запис %s." #: ../sync.c:2117 ../sync.c:2470 ../sync.c:2833 #, c-format msgid "Writing a %s record failed." msgstr "Записування запису %s завершився помилкою." #: ../sync.c:2119 ../sync.c:2472 ../sync.c:2835 #, c-format msgid "Deleting a %s record failed." msgstr "Видалення запису %s завершився помилкою." #: ../sync.c:2121 ../sync.c:2474 ../sync.c:2837 #, c-format msgid "Deleted a %s record." msgstr "Видалено запис %s." #: ../sync.c:2123 ../sync.c:2476 #, c-format msgid "Sync Conflict: duplicated a %s record." msgstr "" #: ../sync.c:2227 ../sync.c:2557 #, c-format msgid "Sync Conflict: a %s record must be manually merged\n" msgstr "" #: ../sync.c:2358 ../sync.c:2698 msgid "" "dlp_DeleteRecord failed\n" "This could be because the record was already deleted on the Palm\n" msgstr "" "Помилка у dlp_DeleteRecord()\n" "Це може бути через те, що запис був вже видалений у Palm\n" #: ../sync.c:2927 msgid "Finished installing user information.\n" msgstr "Завершено занесення інформації про користувача.\n" #: ../sync.c:3084 #, c-format msgid " Syncing on device %s\n" msgstr " Синхронізація на пристрій %s\n" #: ../sync.c:3085 msgid " Press the HotSync button now\n" msgstr " Зараз натисніть кнопку ГарячаСинхронізація\n" #: ../sync.c:3127 ../sync.c:3149 ../sync.c:3170 #, c-format msgid "Last Synced Username-->\"%s\"\n" msgstr "Останнє синхронізоване ім'я користувача-->\"%s\"\n" #: ../sync.c:3128 ../sync.c:3150 ../sync.c:3171 #, c-format msgid "Last Synced UserID-->\"%d\"\n" msgstr "Останнє синхронізований ID користувача-->\"%d\"\n" #: ../sync.c:3129 ../sync.c:3151 ../sync.c:3172 #, c-format msgid " This Username-->\"%s\"\n" msgstr " Це ім'я користувача-->\"%s\"\n" #: ../sync.c:3130 ../sync.c:3152 ../sync.c:3173 #, c-format msgid " This User ID-->%d\n" msgstr " Цей ID користувача-->\"%d\"\n" #: ../sync.c:3194 #, c-format msgid "Username is \"%s\"\n" msgstr "Ім'я користувача \"%s\"\n" #: ../sync.c:3195 #, c-format msgid "User ID is %d\n" msgstr "ID користувача %d\n" #: ../sync.c:3197 #, c-format msgid "lastSyncPC = %d\n" msgstr "lastSyncPC = %d\n" #: ../sync.c:3198 #, c-format msgid "This PC = %lu\n" msgstr "Цей PC = %lu\n" #: ../sync.c:3222 msgid "Sync canceled\n" msgstr "Синхронізацію перервано\n" #: ../sync.c:3245 msgid "Finished restoring handheld.\n" msgstr "Відновлення КПК завершено.\n" #: ../sync.c:3246 msgid "You may need to sync to update J-Pilot.\n" msgstr "Необхідна синхронізація для оновлення J-Pilot.\n" #: ../sync.c:3268 msgid "Doing a fast sync.\n" msgstr "Виконується швидка синхронізація.\n" #: ../sync.c:3281 msgid "Doing a slow sync.\n" msgstr "Виконується повільна синхронізація.\n" #: ../sync.c:3356 msgid "Thank you for using J-Pilot." msgstr "Дякуємо за використання J-Pilot." #: ../sync.c:3401 ../sync.c:3469 msgid "Finished.\n" msgstr "Завершено.\n" #: ../sync.c:3436 #, c-format msgid "%s: sync process already in progress (process ID = %d)\n" msgstr "" #: ../sync.c:3437 #, fuzzy, c-format msgid "" "%s: press the HotSync button on the cradle\n" " or stop the sync by using the cancel sync button\n" " or stop the sync by typing \"kill %d\" at the command line\n" msgstr "" "%s: натисніть кнопку ГарячаСинхронізація на пристрої або виконайте \"kill %d" "\"\n" #: ../sync.c:3468 #, c-format msgid "Exiting with status %s\n" msgstr "Завершення зі статусом %s\n" #: ../todo.c:266 #, c-format msgid "ToDo description text > %d, truncating to %d\n" msgstr "Текст опису завдання > %d, обрізано до %d\n" #: ../todo.c:272 #, c-format msgid "ToDo note text > %d, truncating to %d\n" msgstr "Текст пам'ятки до завдання > %d, обрізано до %d\n" #: ../todo_gui.c:161 msgid "Due Date" msgstr "Дата завершення" #: ../todo_gui.c:532 msgid "File doesn't appear to be todo.dat format\n" msgstr "Формат файлу не схожий на формат todo.dat\n" #: ../todo_gui.c:596 msgid "DAT/TDA (Palm Archive Formats)" msgstr "" #: ../todo_gui.c:688 #, c-format msgid "" "ToDo exported from %s %s on %s\n" "\n" msgstr "" #: ../todo_gui.c:726 #, c-format msgid "Can't export todo %d\n" msgstr "Не вдається експортувати список завдань %d\n" #: ../todo_gui.c:766 #, fuzzy, c-format msgid "Due Date: None\n" msgstr "Дата завершення" #: ../todo_gui.c:769 #, fuzzy, c-format msgid "Due Date: %s\n" msgstr "Дата завершення" #: ../todo_gui.c:771 #, fuzzy, c-format msgid "Priority: %d\n" msgstr "Пріоритет: " #: ../todo_gui.c:772 #, fuzzy, c-format msgid "Completed: %s\n" msgstr "Завершено" #: ../todo_gui.c:774 #, c-format msgid "Description: %s\n" msgstr "" #: ../todo_gui.c:777 #, c-format msgid "" "Note: %s\n" "\n" msgstr "" #: ../todo_gui.c:1610 msgid "Priority out of range\n" msgstr "Пріоритет поза межами\n" #: ../todo_gui.c:1932 ../KeyRing/keyring.c:1310 #, c-format msgid "No date" msgstr "Немає дати" #. Completed checkbox #: ../todo_gui.c:2414 msgid "Completed" msgstr "Завершено" #: ../todo_gui.c:2421 #, fuzzy msgid "Priority:" msgstr "Пріоритет: " #: ../todo_gui.c:2423 msgid "Set priority Alt+#" msgstr "" #: ../todo_gui.c:2444 msgid "Date Due:" msgstr "Дата завершення:" #: ../utils.c:332 msgid "Today" msgstr "Сьогодні" #: ../utils.c:577 #, c-format msgid "Couldn't find empty DB file %s: %s\n" msgstr "Не вдається знайти порожній DB файл %s: %s\n" #: ../utils.c:580 msgid " may not be installed.\n" msgstr " можливо не встановлений.\n" #. Can't create directory #: ../utils.c:615 ../utils.c:619 #, c-format msgid "Can't create directory %s\n" msgstr "Не можна видалити категорію %s.\n" #: ../utils.c:625 #, fuzzy, c-format msgid "%s is not a directory\n" msgstr "%s є каталогом" #: ../utils.c:630 #, fuzzy, c-format msgid "Unable to get write permission for directory %s\n" msgstr "Не вдається записати файли у каталоги %s\n" #: ../utils.c:1330 ../utils.c:1354 msgid "Save Changed Record?" msgstr "Зберегти змінені записи?" #: ../utils.c:1331 ../utils.c:1355 msgid "Do you want to save the changes to this record?" msgstr "Бажаєте зберегти зміни у цьому записі?" #: ../utils.c:1336 ../utils.c:1360 msgid "Save New Record?" msgstr "Зберегти новий запис?" #: ../utils.c:1337 ../utils.c:1361 msgid "Do you want to save this new record?" msgstr "Бажаєте зберегти цей новий запис?" #: ../utils.c:1652 msgid "infinite loop, breaking\n" msgstr "нескінченний цикл, переривається\n" #: ../utils.c:1876 #, fuzzy, c-format msgid " -p skip loading plugins\n" msgstr "Не завантажено модулі.\n" #: ../utils.c:1877 #, fuzzy, c-format msgid " -a ignore missed alarms since the last time program was run\n" msgstr " -a ігнорувати пропущені з моменту останнього запуску сповіщення.\n" #: ../utils.c:1878 #, fuzzy, c-format msgid " -A ignore all alarms past and future\n" msgstr " -A ігнорувати усі сповіщення)); минулі та майбутні.\n" #: ../utils.c:1879 #, c-format msgid " -s start sync using existing instance of GUI\n" msgstr "" #: ../utils.c:1880 #, c-format msgid " -i iconify program immediately after launch\n" msgstr "" #: ../utils.c:1881 #, c-format msgid "" " -geometry {X geometry} use specified geometry for main window\n" "\n" msgstr "" #: ../utils.c:1882 #, fuzzy, c-format msgid " The PILOTPORT and PILOTRATE environment variables specify\n" msgstr " Змінні оточення PILOTPORT та PILOTRATE використовуються для\n" #: ../utils.c:1883 #, c-format msgid " which port to sync on, and at what speed.\n" msgstr " визначення порта та швидкості синхронізації.\n" #: ../utils.c:1884 #, c-format msgid " If PILOTPORT is not set then it defaults to /dev/pilot.\n" msgstr " Якщо PILOTPORT не встановлено, то типове значення /dev/pilot.\n" #: ../utils.c:1921 msgid "Error reading file" msgstr "Помилка при читанні файлу" #: ../utils.c:1971 msgid "Date compiled" msgstr "Дата завершення" #: ../utils.c:1972 msgid "Compiled with these options:" msgstr "Скомпільовано з цими параметрами:" #: ../utils.c:1974 msgid "Installed Path" msgstr "Шлях встановлення" #: ../utils.c:1976 msgid "pilot-link version" msgstr "версія pilot-link" #: ../utils.c:1980 msgid "USB support" msgstr "Підтримка USB" #: ../utils.c:1981 ../utils.c:1984 ../utils.c:1990 ../utils.c:1996 #: ../utils.c:2002 ../utils.c:2008 ../utils.c:2013 msgid "yes" msgstr "так" #: ../utils.c:1982 msgid "Private record support" msgstr "Підтримка приватних записів" #: ../utils.c:1986 ../utils.c:1992 ../utils.c:1998 ../utils.c:2004 #: ../utils.c:2010 msgid "no" msgstr "ні" #: ../utils.c:1988 msgid "Datebk support" msgstr "Підтримка Datebk" #: ../utils.c:1994 msgid "Plugin support" msgstr "Підтримка модулів" #: ../utils.c:2000 msgid "Manana support" msgstr "Підтримка Manana" #: ../utils.c:2006 msgid "NLS support (foreign languages)" msgstr "Підтримка NLS (національні мови)" #: ../utils.c:2012 msgid "GTK2 support" msgstr "Підтримка GTK2" #. No HOME var #: ../utils.c:2055 msgid "Can't get HOME environment variable\n" msgstr "Не вдається отримати змінну оточення HOME\n" #: ../utils.c:2062 #, fuzzy msgid "HOME environment variable is too long to process\n" msgstr "Значення змінної оточення HOME надто довге\n" #: ../utils.c:2557 #, fuzzy msgid "Edit Categories..." msgstr "Правка категорій" #: ../utils.c:3223 msgid "PC ID is 0.\n" msgstr "PC ID дорівнює 0.\n" #: ../utils.c:3224 #, fuzzy, c-format msgid "Generated a new PC ID. It is %lu\n" msgstr "Створено новий PC ID. Він дорівнює %lu\n" #: ../utils.c:3309 msgid "Invalid UTF-8 encoding in export string\n" msgstr "" #: ../utils.c:3470 #, c-format msgid "Today is %A, %x %X" msgstr "Сьогодні %A, %x %X" #: ../utils.c:3472 #, c-format msgid "Today is %%A, %s %s" msgstr "Сьогодні %%A, %s %s" #: ../utils.c:3701 #, c-format msgid "" "Incorrect header format for CSV import\n" "Check line 1 of file %s\n" "Aborting import\n" msgstr "" #: ../utils.c:3738 #, fuzzy, c-format msgid "Error writing version header to file: %s%s\n" msgstr "Помилка запису заголовку PC у файл: next_id\n" #: ../utils.c:3743 #, fuzzy, c-format msgid "Error writing next id to file: %s%s" msgstr "Помилка запису наступного ідентифікатора у файл: next_id\n" #: ../weekview_gui.c:297 msgid "Weekly View" msgstr "Перегляд тижня" #: ../weekview_gui.c:337 msgid "Last week Alt+LeftArrow" msgstr "" #: ../weekview_gui.c:366 msgid "Next week Alt+RightArrow" msgstr "" #: ../Expense/expense.c:97 msgid "Australia" msgstr "Австралія" #: ../Expense/expense.c:98 msgid "Austria" msgstr "Австрія" #: ../Expense/expense.c:99 msgid "Belgium" msgstr "Бельгія" #: ../Expense/expense.c:100 msgid "Brazil" msgstr "Бразилія" #: ../Expense/expense.c:101 msgid "Canada" msgstr "Канада" #: ../Expense/expense.c:102 msgid "Denmark" msgstr "Данія" #: ../Expense/expense.c:103 msgid "EU (Euro)" msgstr "EU (Євро)" #: ../Expense/expense.c:104 msgid "Finland" msgstr "Фінляндія" #: ../Expense/expense.c:105 msgid "France" msgstr "Франція" #: ../Expense/expense.c:106 msgid "Germany" msgstr "Німеччина" #: ../Expense/expense.c:107 msgid "Hong Kong" msgstr "Гонг Конг" #: ../Expense/expense.c:108 msgid "Iceland" msgstr "Ісландія" #: ../Expense/expense.c:109 msgid "India" msgstr "Індія" #: ../Expense/expense.c:110 msgid "Indonesia" msgstr "Індонезія" #: ../Expense/expense.c:111 msgid "Ireland" msgstr "Ірландія" #: ../Expense/expense.c:112 msgid "Italy" msgstr "Італія" #: ../Expense/expense.c:113 msgid "Japan" msgstr "Японія" #: ../Expense/expense.c:114 msgid "Korea" msgstr "Корея" #: ../Expense/expense.c:115 msgid "Luxembourg" msgstr "Люксембург" #: ../Expense/expense.c:116 msgid "Malaysia" msgstr "Малайзія" #: ../Expense/expense.c:117 msgid "Mexico" msgstr "Мексика" #: ../Expense/expense.c:118 msgid "Netherlands" msgstr "Голландія" #: ../Expense/expense.c:119 msgid "New Zealand" msgstr "Нова Зеландія" #: ../Expense/expense.c:120 msgid "Norway" msgstr "Норвегія" #: ../Expense/expense.c:121 msgid "P.R.C." msgstr "P.R.C." #: ../Expense/expense.c:122 msgid "Philippines" msgstr "Філіппіни" #: ../Expense/expense.c:123 msgid "Singapore" msgstr "Сінгапур" #: ../Expense/expense.c:124 msgid "Spain" msgstr "Іспанія" #: ../Expense/expense.c:125 msgid "Sweden" msgstr "Швеція" #: ../Expense/expense.c:126 msgid "Switzerland" msgstr "Швейцарія" #: ../Expense/expense.c:127 msgid "Taiwan" msgstr "Тайвань" #: ../Expense/expense.c:128 msgid "Thailand" msgstr "Таїланд" #: ../Expense/expense.c:129 msgid "United Kingdom" msgstr "Велика Британія" #: ../Expense/expense.c:130 msgid "United States" msgstr "США" #: ../Expense/expense.c:518 ../Expense/expense.c:529 msgid "Expense" msgstr "Видатки" #: ../Expense/expense.c:550 ../Expense/expense.c:1388 msgid "Airfare" msgstr "Авіатариф" #: ../Expense/expense.c:552 ../Expense/expense.c:1389 msgid "Breakfast" msgstr "Сніданок" #: ../Expense/expense.c:554 ../Expense/expense.c:1390 msgid "Bus" msgstr "Автобус" #: ../Expense/expense.c:556 ../Expense/expense.c:1391 msgid "BusinessMeals" msgstr "Бізнес Ланч" #: ../Expense/expense.c:558 ../Expense/expense.c:1392 msgid "CarRental" msgstr "Оренда машин" #: ../Expense/expense.c:560 ../Expense/expense.c:1393 msgid "Dinner" msgstr "Обід" #: ../Expense/expense.c:562 ../Expense/expense.c:1394 msgid "Entertainment" msgstr "Розваги" #: ../Expense/expense.c:564 ../Expense/expense.c:1395 msgid "Fax" msgstr "Факс" #: ../Expense/expense.c:566 ../Expense/expense.c:1396 msgid "Gas" msgstr "Газ" #: ../Expense/expense.c:568 ../Expense/expense.c:1397 msgid "Gifts" msgstr "Дарунки" #: ../Expense/expense.c:570 ../Expense/expense.c:1398 msgid "Hotel" msgstr "Готель" #: ../Expense/expense.c:572 ../Expense/expense.c:1399 msgid "Incidentals" msgstr "Випадковості" #: ../Expense/expense.c:574 ../Expense/expense.c:1400 msgid "Laundry" msgstr "Пральня" #: ../Expense/expense.c:576 ../Expense/expense.c:1401 msgid "Limo" msgstr "Limo" #: ../Expense/expense.c:578 ../Expense/expense.c:1402 msgid "Lodging" msgstr "Житло" #: ../Expense/expense.c:580 ../Expense/expense.c:1403 msgid "Lunch" msgstr "Ланч" #: ../Expense/expense.c:582 ../Expense/expense.c:1404 msgid "Mileage" msgstr "Проїзд" #: ../Expense/expense.c:586 ../Expense/expense.c:1406 msgid "Parking" msgstr "Паркування" #: ../Expense/expense.c:588 ../Expense/expense.c:1407 msgid "Postage" msgstr "Поштові" #: ../Expense/expense.c:590 ../Expense/expense.c:1408 msgid "Snack" msgstr "Закуска" #: ../Expense/expense.c:592 ../Expense/expense.c:1409 msgid "Subway" msgstr "Метро" #: ../Expense/expense.c:594 ../Expense/expense.c:1410 msgid "Supplies" msgstr "Постачальники" #: ../Expense/expense.c:596 ../Expense/expense.c:1411 msgid "Taxi" msgstr "Таксі" #: ../Expense/expense.c:598 ../Expense/expense.c:1412 msgid "Telephone" msgstr "Телефон" #: ../Expense/expense.c:600 ../Expense/expense.c:1413 msgid "Tips" msgstr "Особливі" #: ../Expense/expense.c:602 ../Expense/expense.c:1414 msgid "Tolls" msgstr "Мито" #: ../Expense/expense.c:604 ../Expense/expense.c:1415 msgid "Train" msgstr "Поїзд" #: ../Expense/expense.c:1239 msgid "Expense: Unknown expense type\n" msgstr "Витрати: невідомий тип витрат\n" #: ../Expense/expense.c:1245 msgid "Expense: Unknown payment type\n" msgstr "Витрати: Невідомий тип платежу\n" #: ../Expense/expense.c:1377 msgid "American Express" msgstr "American Express" #: ../Expense/expense.c:1378 msgid "Cash" msgstr "Готівка" #: ../Expense/expense.c:1379 msgid "Check" msgstr "Чеки" #: ../Expense/expense.c:1380 msgid "Credit Card" msgstr "Кредитна картка" #: ../Expense/expense.c:1381 msgid "Master Card" msgstr "Master Card" #: ../Expense/expense.c:1382 msgid "Prepaid" msgstr "Передплачені" #: ../Expense/expense.c:1383 msgid "VISA" msgstr "VISA" #: ../Expense/expense.c:1619 #, fuzzy msgid "Type" msgstr "Тип:" #: ../Expense/expense.c:1620 #, fuzzy msgid "Amount" msgstr "Сума:" #. Category Menu #: ../Expense/expense.c:1704 msgid "Category:" msgstr "Категорія:" #. Type Menu #: ../Expense/expense.c:1712 msgid "Type:" msgstr "Тип:" #. Payment Menu #: ../Expense/expense.c:1720 msgid "Payment:" msgstr "Оплата:" #. Currency Menu #: ../Expense/expense.c:1728 msgid "Currency:" msgstr "Валюта:" #: ../Expense/expense.c:1748 msgid "Month:" msgstr "Місяць:" #: ../Expense/expense.c:1762 msgid "Day:" msgstr "День:" #: ../Expense/expense.c:1776 msgid "Year:" msgstr "Рік:" #. Amount Entry #: ../Expense/expense.c:1789 msgid "Amount:" msgstr "Сума:" #. Vendor Entry #: ../Expense/expense.c:1799 msgid "Vendor:" msgstr "Виробник:" #. City #: ../Expense/expense.c:1809 msgid "City:" msgstr "Місто:" #. Attendees #: ../Expense/expense.c:1819 msgid "Attendees" msgstr "Супровід" #. ------------------------------------------- #: ../Expense/expense.c:2102 #, c-format msgid "" "%s\n" "\n" "Expense plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org" msgstr "" #: ../KeyRing/keyring.c:291 msgid "KeyRing: pack_KeyRing(): buf_size too small\n" msgstr "В'язка ключів: pack_KeyRing(): надто мале значення buf_size\n" #: ../KeyRing/keyring.c:1699 msgid "Incorrect, Reenter KeyRing Password" msgstr "Некоректно, введіть повторно пароль до в'язки ключів" #: ../KeyRing/keyring.c:1701 msgid "Enter a NEW KeyRing Password" msgstr "Введіть НОВИЙ пароль в'язки ключів" #: ../KeyRing/keyring.c:1703 msgid "Enter KeyRing Password" msgstr "Введіть пароль в'язки ключів" #: ../KeyRing/keyring.c:1769 #, c-format msgid "KeyRing: file %s not found.\n" msgstr "В'язка ключів: файл %s не існує.\n" #: ../KeyRing/keyring.c:1770 msgid "KeyRing: Try Syncing.\n" msgstr "В'язка ключів: спроба синхронізації.\n" #: ../KeyRing/keyring.c:1861 ../KeyRing/keyring.c:1872 msgid "KeyRing" msgstr "В'язка ключів" #. ------------------------------------------- #: ../KeyRing/keyring.c:1900 #, c-format msgid "" "%s\n" "\n" "KeyRing plugin for J-Pilot was written by\n" "Judd Montgomery (c) 2001.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "KeyRing is a free PalmOS program for storing\n" "passwords and other information in encrypted form\n" "http://gnukeyring.sourceforge.net" msgstr "" #: ../KeyRing/keyring.c:2137 #, c-format msgid "" "Keys exported from %s %s on %s\n" "\n" msgstr "" #: ../KeyRing/keyring.c:2162 #, fuzzy, c-format msgid "Can't export key %d\n" msgstr "Не вдається експортувати %d\n" #: ../KeyRing/keyring.c:2229 msgid "B-FOLDERS CSV" msgstr "" #. Change Password button #: ../KeyRing/keyring.c:2384 msgid "" "Change\n" "KeyRing\n" "Password" msgstr "" "Змінити\n" "пароль\n" "в'язки ключів" #. Clist #: ../KeyRing/keyring.c:2497 #, fuzzy msgid "Changed" msgstr "Скасувати" #: ../KeyRing/keyring.c:2499 msgid "Account" msgstr "Рахунок" #. Name entry #: ../KeyRing/keyring.c:2593 msgid "name: " msgstr "ім'я: " #. Account entry #: ../KeyRing/keyring.c:2601 msgid "account: " msgstr "рахунок: " #. Password entry #: ../KeyRing/keyring.c:2609 msgid "password: " msgstr "пароль: " #. Last Changed entry #: ../KeyRing/keyring.c:2616 msgid "last changed: " msgstr "" #. Generate Password button (creates random password) #: ../KeyRing/keyring.c:2626 msgid "Generate Password" msgstr "Створити пароль" #: ../SyncTime/synctime.c:61 #, fuzzy msgid "SyncTime" msgstr "Синхронізувати пам'ятки" #. ------------------------------------------- #: ../SyncTime/synctime.c:72 #, c-format msgid "" "%s\n" "\n" "SyncTime plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "SyncTime WILL NOT work with PalmOS 3.3!" msgstr "" #: ../SyncTime/synctime.c:106 msgid "synctime: Palm OS Version 3.25 and 3.30 do not support SyncTime\n" msgstr "" #: ../SyncTime/synctime.c:107 msgid "synctime: NOT setting the time on the pilot\n" msgstr "" #: ../SyncTime/synctime.c:112 msgid "synctime: Setting the time on the pilot... " msgstr "" #: ../SyncTime/synctime.c:117 #, fuzzy msgid "Done\n" msgstr "Завершено" #, fuzzy #~ msgid " -i makes program iconify itself upon launch.\n" #~ msgstr " -i мінімізувати jpilot після запуску\n" #, fuzzy #~ msgid "Your HOME environment variable is too long(>1024)\n" #~ msgstr "Значення змінної оточення HOME надто довге\n" #~ msgid "W" #~ msgstr "Тж" #~ msgid "M" #~ msgstr "Мс" #~ msgid "This Event has no particular time" #~ msgstr "Ця подія не має особливого часу" #~ msgid "Start Time" #~ msgstr "Час початку" #~ msgid "End Time" #~ msgstr "Час закінчення" #, fuzzy #~ msgid "email command empty\n" #~ msgstr "Команда перевірки пошти" #~ msgid "Unable to open %s%s file\n" #~ msgstr "Не вдається відкрити файл %s%s\n" #~ msgid "Unable to open %s.alarms file\n" #~ msgstr "Не вдається відкрити %s\n" #~ msgid "You can't edit category %s.\n" #~ msgstr "Не можна редагувати категорію %s.\n" #~ msgid "You can't delete category %s.\n" #~ msgstr "Не можна видалити категорію %s.\n" #~ msgid "category name" #~ msgstr "назва категорії" #~ msgid "debug" #~ msgstr "налагодження" #, fuzzy #~ msgid "End Date: Never\n" #~ msgstr "Дата закінчення" #, fuzzy #~ msgid "Repeat Days: " #~ msgstr "Повторюється у дні:" #~ msgid "Close" #~ msgstr "Закрити" #~ msgid "none" #~ msgstr "немає" #~ msgid "Unknown repeatType found in DatebookDB\n" #~ msgstr "Знайдено невідомий repeatType у DatebookDB\n" #~ msgid "Dismiss" #~ msgstr "Відпустити" #~ msgid "Done" #~ msgstr "Завершено" #~ msgid "Add" #~ msgstr "Додати" #~ msgid "Remove" #~ msgstr "Видалити" #, fuzzy #~ msgid "User name" #~ msgstr "Ім'я користувача" #~ msgid " -v = version\n" #~ msgstr " -v = версія\n" #~ msgid " -h = help\n" #~ msgstr " -h = довідка\n" #~ msgid " -d = run in debug mode\n" #~ msgstr " -d = запустити у налагоджувальному режимі\n" #~ msgid " -P = do not load plugins.\n" #~ msgstr " -P = не завантажувати модулі.\n" #~ msgid " -b = Do a sync and then a backup, otherwise just do a sync.\n" #~ msgstr "" #~ " -b = синхронізувати а потім робити резервну копію, чи просто " #~ "синхронізувати.\n" #~ msgid "Invalid geometry specification: \"%s\"\n" #~ msgstr "Неправильно вказано геометрію: \"%s\"\n" #~ msgid "/Help/PayBack program" #~ msgstr "/Довідка/Програма PayBack" #~ msgid "Font Selection Dialog" #~ msgstr "Діалог вибору шрифту" #~ msgid "Show private records" #~ msgstr "Показати приватні записи" #~ msgid "Hide private records" #~ msgstr "Сховати приватні записи" #~ msgid "Mask private records" #~ msgstr "Маскувати приватні записи" #~ msgid "Font" #~ msgstr "Шрифт" #~ msgid "Go to the menu \"" #~ msgstr "Перейдіть в меню \"" #~ msgid "\" and change the \"" #~ msgstr "\" та змініть \"" #~ msgid "\"." #~ msgstr "\"." #~ msgid "Couldn't open PC records file\n" #~ msgstr "Не вдається відкрити файл записів PC\n" #~ msgid "The first day of the week is " #~ msgstr "Перший день тижня " #~ msgid "One record" #~ msgstr "Один запис" #~ msgid "Finished\n" #~ msgstr "Завершено\n" #~ msgid "Last Username = [%s]\n" #~ msgstr "Останнє ім'я = [%s]\n" #~ msgid "Last UserID = %d\n" #~ msgstr "Останній ID користувача = %d\n" #~ msgid "Username = [%s]\n" #~ msgstr "Ім'я користувача = [%s]\n" #~ msgid "userID = %d\n" #~ msgstr "userID = %d\n" #~ msgid "number of records = %d\n" #~ msgstr "кількість записів = %d\n" #~ msgid "palm: number of records = %d\n" #~ msgstr "palm: кількість записів = %d\n" #~ msgid "disk: number of records = %d\n" #~ msgstr "disk: кількість записів = %d\n" #, fuzzy #~ msgid "Your HOME environment variable is too long for me\n" #~ msgstr "Значення змінної оточення HOME надто довге\n" #~ msgid "" #~ "%s doesn't appear to be a directory.\n" #~ "I need it to be.\n" #~ msgstr "" #~ "%s не схожий на каталог.\n" #~ "Має бути каталогом.\n" #, fuzzy #~ msgid "I can't write files in directory %s\n" #~ msgstr "Не можна видалити категорію %s.\n" #~ msgid "Expense: Unknown category\n" #~ msgstr "Витрати: невідома категорія\n" #~ msgid "Field" #~ msgstr "Поле" #~ msgid "kana(" #~ msgstr "kana(" #~ msgid "Quick View" #~ msgstr "Зведення" #~ msgid "Serial Port (/dev/ttyS0, /dev/pilot)" #~ msgstr "Послідовний порт (/dev/ttyS0, /dev/pilot)" #~ msgid "Serial Rate (Does not affect USB)" #~ msgstr "Швидкість послідовного порта (не впливає на USB)" #~ msgid "Sync memo32 (pedit32)" #~ msgstr "Синхронізувати memo32 (pedit32)" #~ msgid "AmEx" #~ msgstr "AmEx" #~ msgid "CreditCard" #~ msgstr "Кредитні картки" #~ msgid "MasterCard" #~ msgstr "MasterCard" #~ msgid "Quit" #~ msgstr "Вийти" #~ msgid "Help" #~ msgstr "Довідка" #~ msgid "Directory" #~ msgstr "Каталог" #~ msgid "Overwrite File" #~ msgstr "Перезаписати файл" #~ msgid "Filename" #~ msgstr "Назва файлу" #~ msgid "Answer: " #~ msgstr "Відповідь: " #~ msgid "Sync" #~ msgstr "Синхронізувати" #~ msgid " -p do not load plugins.\n" #~ msgstr " -p не завантажувати модуль.\n" jpilot-1.8.1.2/po/ja.po0000644000175000017500000025723311702307203011462 00000000000000# Japanese translations for jpilot. # # Hiroshi Kawashima , 2000 # Hiroshi Miura , 2001 msgid "" msgstr "" "Project-Id-Version: jpilot 0.99.9-pre1\n" "Report-Msgid-Bugs-To: jpilot-devel@jpilot.org\n" "POT-Creation-Date: 2012-01-08 13:39+0100\n" "PO-Revision-Date: 2006-01-29 01:43+0900\n" "Last-Translator: Hiroshi Miura \n" "Language-Team: Japanese \n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=euc-jp\n" "Content-Transfer-Encoding: 8bit\n" #: ../address.c:276 ../address.c:448 ../alarms.c:332 ../calendar.c:309 #: ../calendar.c:547 ../contact.c:324 ../contact.c:738 ../dat.c:189 #: ../dat.c:655 ../dat.c:859 ../dat.c:993 ../dat.c:1132 ../datebook.c:130 #: ../datebook.c:165 ../datebook.c:172 ../datebook.c:231 ../jpilot.c:1254 #: ../jpilot-merge.c:95 ../libplugin.c:208 ../libplugin.c:455 #: ../libplugin.c:534 ../libplugin.c:563 ../libplugin.c:811 ../memo.c:214 #: ../memo.c:287 ../otherconv.c:280 ../plugins.c:112 ../prefs.c:350 #: ../prefs.c:375 ../prefs.c:906 ../sync.c:2170 ../sync.c:2187 ../sync.c:2296 #: ../sync.c:2310 ../sync.c:2507 ../sync.c:2646 ../todo.c:236 ../todo.c:490 #: ../utils.c:748 #, c-format msgid "Out of memory" msgstr "­Ǥ" #: ../address.c:332 ../calendar.c:230 ../contact.c:580 ../datebook.c:494 #: ../memo.c:87 ../todo.c:90 #, fuzzy, c-format msgid "%s:%d Error reading application info %s\n" msgstr "%s:%d ƥ %sɤ߹ߥ顼\n" #: ../address.c:344 ../address_gui.c:2285 ../address_gui.c:2324 #: ../calendar.c:246 ../contact.c:596 ../datebook.c:514 ../datebook_gui.c:3737 #: ../libplugin.c:405 ../libplugin.c:431 ../memo.c:99 ../memo_gui.c:863 #: ../todo_gui.c:1070 ../Expense/expense.c:1105 #, c-format msgid "Error reading file: %s\n" msgstr "ե %sɤ߹ߥ顼\n" #: ../address.c:492 ../calendar.c:598 ../calendar.c:607 ../contact.c:780 #: ../libplugin.c:846 ../memo.c:353 ../todo.c:302 ../utils.c:1124 #: ../utils.c:1131 ../utils.c:1138 ../utils.c:1145 ../utils.c:1152 #: ../utils.c:1159 msgid "error" msgstr "顼" #: ../address_gui.c:325 ../datebook_gui.c:2844 ../memo_gui.c:176 #: ../todo_gui.c:292 ../KeyRing/keyring.c:834 msgid "" "This record is deleted.\n" "Undelete it or copy it to make changes.\n" msgstr "" "Υ쥳ɤϺޤ\n" "ѹϡμäޤϥԡ¹ԤƲ\n" #: ../address_gui.c:452 ../address_gui.c:458 ../address_gui.c:469 #: ../address_gui.c:481 ../address_gui.c:493 ../address_gui.c:506 #, fuzzy, c-format msgid "%s%s: %s" msgstr "%%A., %s" #: ../address_gui.c:542 ../category.c:118 ../category.c:176 ../category.c:330 #: ../category.c:336 ../datebook_gui.c:430 ../jpilot-merge.c:88 #: ../jpilot-merge.c:146 ../jpilot-merge.c:151 ../memo_gui.c:280 #: ../sync.c:2129 ../sync.c:2135 ../sync.c:2481 ../sync.c:2842 #: ../todo_gui.c:416 ../utils.c:2674 ../utils.c:2711 ../utils.c:2717 #: ../utils.c:2776 ../utils.c:2782 ../utils.c:2836 ../utils.c:2890 #: ../utils.c:2896 ../utils.c:2954 ../utils.c:2961 #, c-format msgid "Unable to open file: %s\n" msgstr "ե %s򳫤ޤ\n" #: ../address_gui.c:561 #, fuzzy, c-format msgid "Unable to read file: %s\n" msgstr "ե %s򳫤ޤ\n" #: ../address_gui.c:715 msgid "File doesn't appear to be address.dat format\n" msgstr "եaddress.datեޥåȤǤ̵褦Ǥ\n" #: ../address_gui.c:725 ../datebook_gui.c:647 ../memo_gui.c:324 #: ../memo_gui.c:417 ../todo_gui.c:542 ../Expense/expense.c:1384 msgid "Unfiled" msgstr "ʬ̵" #: ../address_gui.c:781 ../datebook_gui.c:698 ../memo_gui.c:470 #: ../todo_gui.c:595 msgid "CSV (Comma Separated Values)" msgstr "" #: ../address_gui.c:782 msgid "DAT/ABA (Palm Archive Formats)" msgstr "" #. current category name #. previous category name #. entry text, in Pilot character set #: ../address_gui.c:868 ../category.c:408 ../datebook_gui.c:729 #: ../jpilot.c:234 ../jpilot.c:278 ../jpilot.c:352 ../jpilot.c:396 #: ../jpilot.c:953 ../memo_gui.c:506 ../todo_gui.c:635 ../utils.c:1305 #: ../KeyRing/keyring.c:2090 msgid "OK" msgstr "OK" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "No" msgstr "No" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "Yes" msgstr "Yes" #: ../address_gui.c:888 ../datebook_gui.c:753 ../memo_gui.c:520 #: ../todo_gui.c:655 ../KeyRing/keyring.c:2104 #, c-format msgid "%s is a directory" msgstr "%s ϥǥ쥯ȥǤ" #: ../address_gui.c:890 ../address_gui.c:907 ../datebook_gui.c:755 #: ../datebook_gui.c:772 ../memo_gui.c:522 ../memo_gui.c:539 ../todo_gui.c:657 #: ../todo_gui.c:674 ../KeyRing/keyring.c:2106 ../KeyRing/keyring.c:2123 msgid "Error Opening File" msgstr "ե򳫤ȤΥ顼" #: ../address_gui.c:894 ../datebook_gui.c:759 ../memo_gui.c:526 #: ../todo_gui.c:661 ../KeyRing/keyring.c:2110 #, c-format msgid "Do you want to overwrite file %s?" msgstr "ե %s 񤭤ޤ" #: ../address_gui.c:896 ../datebook_gui.c:761 ../memo_gui.c:528 #: ../todo_gui.c:663 ../KeyRing/keyring.c:2112 msgid "Overwrite File?" msgstr "ե񤭤ޤ" #: ../address_gui.c:905 ../datebook_gui.c:770 ../memo_gui.c:537 #: ../todo_gui.c:672 ../KeyRing/keyring.c:2121 #, c-format msgid "Error opening file: %s" msgstr "ե %s 򳫤ȤΥ顼" #: ../address_gui.c:922 #, c-format msgid "" "Address exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:925 #, c-format msgid "" "Contact exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:989 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ldif file may not be standards-compliant\n" msgstr "" #: ../address_gui.c:1002 #, c-format msgid "Can't export address %d\n" msgstr "%d Υɥ쥹򥨥ݡȤǤޤ\n" #: ../address_gui.c:1008 ../memo_gui.c:630 ../todo_gui.c:760 #, fuzzy, c-format msgid "Category: %s\n" msgstr "ƥꡧ" #: ../address_gui.c:1010 ../memo_gui.c:632 ../todo_gui.c:763 #, fuzzy, c-format msgid "Private: %s\n" msgstr "ץ饤١" #: ../address_gui.c:1018 ../address_gui.c:1032 ../address_gui.c:1036 #: ../address_gui.c:1045 ../address_gui.c:1048 #, fuzzy, c-format msgid "%s: " msgstr "%%A., %s" #: ../address_gui.c:1022 #, c-format msgid "%s\n" msgstr "" #. E-mail should be the Palm dropdown menu item for email #. Set dial/email button text and callback data #: ../address_gui.c:1196 ../address_gui.c:2846 ../address_gui.c:4185 msgid "E-mail" msgstr "E-mail" #: ../address_gui.c:1482 ../datebook_gui.c:1147 ../memo_gui.c:640 #: ../todo_gui.c:844 ../KeyRing/keyring.c:2214 msgid "Unknown export type\n" msgstr "ʥݡȥ\n" #: ../address_gui.c:1508 ../datebook_gui.c:1226 ../memo_gui.c:469 #: ../memo_gui.c:666 ../todo_gui.c:870 ../KeyRing/keyring.c:2229 msgid "Text" msgstr "" #: ../address_gui.c:1509 ../datebook_gui.c:1227 ../memo_gui.c:667 #: ../todo_gui.c:871 ../KeyRing/keyring.c:2229 msgid "CSV" msgstr "" #: ../address_gui.c:1510 #, fuzzy msgid "vCard" msgstr "õ" #: ../address_gui.c:1511 msgid "vCard (Optimized for Gmail/Android Import)" msgstr "" #: ../address_gui.c:1512 msgid "ldif" msgstr "" #. Initialize variable if default case taken #: ../address_gui.c:1777 ../address_gui.c:3902 #, fuzzy msgid "Last Name/Company" msgstr "̾/̾" #: ../address_gui.c:1780 ../address_gui.c:3905 #, fuzzy msgid "First Name/Company" msgstr "̾/̾" #: ../address_gui.c:1783 ../address_gui.c:3908 #, fuzzy msgid "Company/Last Name" msgstr "̾/̾" #: ../address_gui.c:1920 ../datebook_gui.c:2907 ../memo_gui.c:1036 #: ../todo_gui.c:1329 ../KeyRing/keyring.c:1181 msgid "You can't modify a record that is deleted\n" msgstr "ѤߤΥ쥳ɤѹǤޤ\n" #. Illegal category, Assume that category 0 is Unfiled and valid #: ../address_gui.c:2119 ../address_gui.c:2370 ../address_gui.c:2803 #: ../address_gui.c:2809 ../address_gui.c:3601 ../datebook_gui.c:1994 #: ../datebook_gui.c:3434 ../datebook_gui.c:3783 ../datebook_gui.c:4074 #: ../memo_gui.c:900 ../memo_gui.c:946 ../memo_gui.c:1161 ../memo_gui.c:1548 #: ../todo_gui.c:1106 ../todo_gui.c:1200 ../todo_gui.c:1589 ../todo_gui.c:2141 #: ../Expense/expense.c:689 ../Expense/expense.c:1143 #: ../Expense/expense.c:1227 ../Expense/expense.c:1887 #: ../KeyRing/keyring.c:1070 ../KeyRing/keyring.c:1512 #: ../KeyRing/keyring.c:1574 ../KeyRing/keyring.c:2688 msgid "Category is not legal\n" msgstr "ƥ꤬ͭǤϤޤ\n" #: ../address_gui.c:2179 ../alarms.c:598 ../dialer.c:164 #, c-format msgid "executing command = [%s]\n" msgstr "¹Ԥ륳ޥ = [%s]\n" #: ../address_gui.c:2181 #, fuzzy, c-format msgid "Failed to execute [%s]\n" msgstr "Ԥޤե %s Ǥޤ\n" #: ../address_gui.c:2425 msgid "Birthday" msgstr "" #: ../address_gui.c:2521 msgid "External program not found, or other error" msgstr "" #: ../address_gui.c:2523 msgid "" "J-Pilot can not find the external program \"convert\"\n" "or an error occurred while executing convert.\n" "You may need to install package ImageMagick" msgstr "" #: ../address_gui.c:2524 #, c-format msgid "Command executed was \"%s\"\n" msgstr "" #: ../address_gui.c:2525 #, c-format msgid "return code was %d\n" msgstr "" #: ../address_gui.c:2603 #, fuzzy msgid "chdir() failed\n" msgstr "åμ\n" #: ../address_gui.c:2606 msgid "Add Photo" msgstr "" #. Category menu #: ../address_gui.c:2828 ../KeyRing/keyring.c:2585 msgid "Category: " msgstr "ƥꡧ" #: ../address_gui.c:2848 ../address_gui.c:4186 msgid "Mail" msgstr "᡼" #. Dial Phone Button #: ../address_gui.c:2851 ../address_gui.c:4189 ../dialer.c:307 ../dialer.c:331 msgid "Dial" msgstr "" #: ../address_gui.c:3041 ../datebook_gui.c:2757 ../memo_gui.c:1228 #: ../todo_gui.c:1697 msgid "Could not get temporary file name\n" msgstr "" #: ../address_gui.c:3049 ../datebook_gui.c:2765 ../memo_gui.c:1236 #: ../todo_gui.c:1705 msgid "Could not open temporary file for external editor\n" msgstr "" #: ../address_gui.c:3089 ../datebook_gui.c:2806 ../memo_gui.c:1277 #: ../todo_gui.c:1746 msgid "Could not open temporary file from external editor\n" msgstr "" #: ../address_gui.c:3261 ../address_gui.c:3292 msgid "-Unnamed-" msgstr "̤" #: ../address_gui.c:3374 ../memo_gui.c:1454 ../todo_gui.c:2019 msgid "0 records" msgstr "0 쥳" #: ../address_gui.c:3377 ../datebook_gui.c:2637 ../memo_gui.c:1457 #: ../todo_gui.c:2022 #, c-format msgid "%d of %d records" msgstr "%d/%d쥳" #: ../address_gui.c:3772 ../address_gui.c:3780 ../KeyRing/keyring.c:2498 msgid "Name" msgstr "̾" #: ../address_gui.c:3773 ../address_gui.c:3774 ../address_gui.c:3775 #: ../address_gui.c:3781 msgid "Address" msgstr "ɥ쥹Ģ" #: ../address_gui.c:3776 ../address_gui.c:3782 ../Expense/expense.c:584 #: ../Expense/expense.c:1405 msgid "Other" msgstr "¾" #. Note textbox #: ../address_gui.c:3777 ../address_gui.c:3783 ../todo_gui.c:2484 #: ../Expense/expense.c:1836 ../KeyRing/keyring.c:2632 msgid "Note" msgstr "Ρ" #: ../address_gui.c:3793 msgid "Reverting to Address database\n" msgstr "" #: ../address_gui.c:3914 msgid "Phone" msgstr "ֹ" #: ../address_gui.c:3946 msgid "Quick Find: " msgstr "å: " #. Cancel button #. Add record modification buttons #. Cancel button #: ../address_gui.c:3964 ../category.c:409 ../datebook_gui.c:1782 #: ../datebook_gui.c:5124 ../memo_gui.c:1692 ../todo_gui.c:2345 #: ../utils.c:1346 ../KeyRing/keyring.c:2528 msgid "Cancel" msgstr "󥻥" #: ../address_gui.c:3964 ../datebook_gui.c:5124 ../memo_gui.c:1692 #: ../todo_gui.c:2345 ../KeyRing/keyring.c:2528 msgid "Cancel the modifications" msgstr "ѹ򥭥󥻥" #. Delete Button #. Delete button #. Delete Button #. Delete button #. Delete, Copy, New, etc. buttons #. Delete button #: ../address_gui.c:3969 ../category.c:409 ../category.c:852 #: ../datebook_gui.c:5129 ../memo_gui.c:1697 ../todo_gui.c:2350 #: ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete" msgstr "" #: ../address_gui.c:3969 ../datebook_gui.c:5129 ../memo_gui.c:1697 #: ../todo_gui.c:2350 ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete the selected record" msgstr "򤷤쥳ɤ" #. Undelete Button #. Undelete button #. Undelete Button #. Undelete button #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 msgid "Undelete" msgstr "᤹" #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 msgid "Undelete the selected record" msgstr "򤷤쥳ɤκä" #. Copy button #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy" msgstr "ԡ" #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy the selected record" msgstr "򤷤쥳ɤ򥳥ԡ" #. New button #. New Record button #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "New Record" msgstr "쥳" #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "Add a new record" msgstr "쥳ɤɲ" #. "Add Record" button #. Add Record button #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add Record" msgstr "쥳ɤɲ" #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add the new record" msgstr "쥳ɤɲ" #. "Apply Changes" button #. Apply Changes button #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Apply Changes" msgstr "ѹŬ" #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Commit the modifications" msgstr "ѹȿ" #. Private check box #. Private checkbox #: ../address_gui.c:4033 ../datebook_gui.c:5191 ../datebook_gui.c:5233 #: ../memo_gui.c:1747 ../todo_gui.c:2410 msgid "Private" msgstr "ץ饤١" #: ../address_gui.c:4118 #, fuzzy msgid "Change Photo" msgstr "󥻥" #: ../address_gui.c:4123 #, fuzzy msgid "Remove Photo" msgstr "" #: ../address_gui.c:4195 #, fuzzy msgid "Show In List" msgstr "" "ꥹȤ\n" "ɽ" #: ../address_gui.c:4296 #, fuzzy msgid "Reminder" msgstr "顼" #: ../address_gui.c:4312 ../datebook_gui.c:238 ../datebook_gui.c:5221 #: ../datebook_gui.c:5378 msgid "Days" msgstr "" #. The Quickview (ALL) page #. All button #: ../address_gui.c:4356 ../datebook_gui.c:1478 ../datebook_gui.c:1782 #: ../utils.c:2528 msgid "All" msgstr "" #: ../alarms.c:232 ../datebook_gui.c:236 ../datebook_gui.c:5215 #: ../datebook_gui.c:5372 msgid "Minutes" msgstr "ʬ" #: ../alarms.c:234 ../datebook_gui.c:237 ../datebook_gui.c:5219 #: ../datebook_gui.c:5376 msgid "Hours" msgstr "" #: ../alarms.c:255 msgid "Remind me" msgstr "顼" #: ../alarms.c:425 ../alarms.c:991 ../sync.c:1639 ../sync.c:1645 #: ../utils.c:3717 #, c-format msgid "Unable to open file: %s%s\n" msgstr "%s/%s 򳫤ޤ\n" #: ../alarms.c:512 msgid "Appointment Reminder" msgstr "ͽ" #: ../alarms.c:515 msgid "Past Appointment" msgstr "λͽ" #: ../alarms.c:518 msgid "Postponed Appointment" msgstr "α줿ͽ" #: ../alarms.c:521 ../datebook_gui.c:5025 msgid "Appointment" msgstr "ͽ" #: ../alarms.c:605 msgid "J-Pilot Alarm" msgstr "J-Pilot 顼" #: ../category.c:131 ../category.c:188 ../sync.c:2158 ../sync.c:2495 msgid "PC file corrupt?\n" msgstr "PCե뤬ؤäƤޤ\n" #: ../category.c:138 ../category.c:148 ../category.c:196 ../category.c:206 #: ../category.c:216 ../sync.c:2280 ../sync.c:2334 ../sync.c:2371 #: ../sync.c:2386 ../sync.c:2410 ../sync.c:2630 ../sync.c:2675 ../sync.c:2712 #: ../sync.c:2725 ../sync.c:2750 msgid "fseek failed - fatal error\n" msgstr "fseekԤޤ - ǽʥ顼Ǥ\n" #: ../category.c:364 ../utils.c:2738 ../utils.c:2812 ../utils.c:2916 #: ../utils.c:2981 msgid "rename failed" msgstr "̾ѹ˼Ԥޤ" #: ../category.c:409 msgid "Move" msgstr "ư" #: ../category.c:438 ../category.c:500 ../category.c:580 ../category.c:769 msgid "Edit Categories" msgstr "ƥԽ" #: ../category.c:439 msgid "The maximum number of categories (16) are already used" msgstr "ƥκ(16)˻ȤäƤޤ" #: ../category.c:442 msgid "Enter New Category" msgstr "ƥ" #: ../category.c:453 ../category.c:477 msgid "Edit Categories Error" msgstr "ƥꥨ顼Խ" #: ../category.c:454 msgid "You must select a category to rename" msgstr "̾ѹ륫ƥɬפǤ" #: ../category.c:463 msgid "Enter New Category Name" msgstr "ƥ̾" #: ../category.c:478 msgid "You must select a category to delete" msgstr "륫ƥɬפǤ" #: ../category.c:496 #, c-format msgid "" "There are %d records in %s.\n" "Do you want to move them to %s, or delete them?" msgstr "" "%d 쥳ɤ %s ˤޤ\n" "%s ˰ưޤȤޤ" #: ../category.c:556 #, c-format msgid "invalid state file %s line %d\n" msgstr "ե %s %d ̵Ǥ\n" #: ../category.c:578 #, c-format msgid "The category %s can't be used more than once" msgstr "ƥ̾ %s ϰʾȤޤ" #. Category names in host character set #: ../category.c:735 #, fuzzy msgid "Category" msgstr "ƥꡧ" #: ../category.c:836 msgid "New" msgstr "" #: ../category.c:843 msgid "Rename" msgstr "̾ѹ" #: ../dat.c:456 msgid "unknown type =" msgstr "ʥ =" #: ../dat.c:537 #, c-format msgid "fields per row count != %d, unknown format\n" msgstr "" "Υեɿ %d ޤʥեޥåȤǤ\n" #: ../dat.c:551 #, c-format msgid "field count != %d, unknown format\n" msgstr "եɿ %d ޤʥեޥåȤǤ\n" #: ../dat.c:559 msgid "Unknown format, file has wrong schema\n" msgstr "ʥեޥåȤǤեΥޤְäƤޤ\n" #: ../dat.c:560 msgid "File schema is:" msgstr "ե륹ޡ" #: ../dat.c:564 #, fuzzy msgid "It should be:" msgstr "٤Ǥ " #: ../dat.c:674 ../dat.c:692 ../dat.c:876 ../dat.c:889 ../dat.c:1012 #: ../dat.c:1025 ../dat.c:1149 ../dat.c:1162 #, c-format msgid "%s:%d Record %d, field %d: Invalid type. Expected %d, found %d\n" msgstr "" "%s:%d %d쥳ɤ %d եɡʥס餯 %d, ĤäΤ " "%d\n" #: ../dat.c:675 ../dat.c:693 ../dat.c:877 ../dat.c:890 ../dat.c:994 #: ../dat.c:1013 ../dat.c:1026 ../dat.c:1150 ../dat.c:1163 msgid "read of file terminated\n" msgstr "եɤ߹ߤλޤ\n" #: ../datebook.c:705 ../datebook_gui.c:3648 #, c-format msgid "Unknown repeatType (%d) found in DatebookDB\n" msgstr "DatebookDB ʷ֤ (%d) Ĥޤ\n" #: ../datebook_gui.c:241 #, fuzzy msgid "Repeat Never" msgstr "֤ꡧ" #: ../datebook_gui.c:242 #, fuzzy msgid "Repeat Daily" msgstr "֤" #: ../datebook_gui.c:243 #, fuzzy msgid "Repeat Weekly" msgstr "֤ꡧ" #: ../datebook_gui.c:244 #, fuzzy msgid "Repeat MonthlyByDay" msgstr "֤" #: ../datebook_gui.c:245 #, fuzzy msgid "Repeat MonthlyByDate" msgstr "֤" #: ../datebook_gui.c:246 msgid "Repeat YearlyDate" msgstr "" #: ../datebook_gui.c:247 #, fuzzy msgid "Repeat YearlyDay" msgstr "֤" #: ../datebook_gui.c:250 ../datebook_gui.c:257 ../datebook_gui.c:4803 #: ../datebook_gui.c:4810 msgid "Su" msgstr "" #: ../datebook_gui.c:251 ../datebook_gui.c:4804 msgid "Mo" msgstr "" #: ../datebook_gui.c:252 ../datebook_gui.c:4805 msgid "Tu" msgstr "" #: ../datebook_gui.c:253 ../datebook_gui.c:4806 msgid "We" msgstr "" #: ../datebook_gui.c:254 ../datebook_gui.c:4807 msgid "Th" msgstr "" #: ../datebook_gui.c:255 ../datebook_gui.c:4808 msgid "Fr" msgstr "" #: ../datebook_gui.c:256 ../datebook_gui.c:4809 msgid "Sa" msgstr "" #: ../datebook_gui.c:269 #, c-format msgid "" "Start Date: %s\n" "Time: Event" msgstr "" #: ../datebook_gui.c:277 #, c-format msgid "" "Start Date: %s\n" "Time: %s to %s" msgstr "" #: ../datebook_gui.c:287 ../datebook_gui.c:297 msgid "Unknown" msgstr "" #. End Date #: ../datebook_gui.c:300 #, fuzzy msgid "End Date: " msgstr "1ν" #: ../datebook_gui.c:302 msgid "Never" msgstr "" #: ../datebook_gui.c:308 #, c-format msgid "Repeat Frequency: %d\n" msgstr "" #: ../datebook_gui.c:316 #, c-format msgid "Monthly Repeat Day %d\n" msgstr "" #: ../datebook_gui.c:321 ../datebook_gui.c:5520 msgid "Repeat on Days:" msgstr "֤" #: ../datebook_gui.c:332 #, fuzzy, c-format msgid "Number of exceptions: %d" msgstr "쥳ɿ = %d\n" #: ../datebook_gui.c:338 msgid "" "\n" "more..." msgstr "" #: ../datebook_gui.c:359 ../datebook_gui.c:386 msgid "Description:" msgstr "" #: ../datebook_gui.c:360 ../datebook_gui.c:387 #, fuzzy msgid "Note:" msgstr "Ρ" #: ../datebook_gui.c:362 ../datebook_gui.c:390 #, fuzzy msgid "Alarm:" msgstr "顼" #: ../datebook_gui.c:363 ../datebook_gui.c:391 #, fuzzy msgid "Repeat Type:" msgstr "֤ꡧ" #: ../datebook_gui.c:366 ../datebook_gui.c:394 #, fuzzy msgid "Start of Week:" msgstr "" #: ../datebook_gui.c:388 ../datebook_gui.c:5343 msgid "Location:" msgstr "" #: ../datebook_gui.c:620 ../datebook_gui.c:2271 #, c-format msgid "Appointment description text > %d, truncating to %d\n" msgstr "ToDoɽ %d Ĺޤ %d ڤͤޤ\n" #: ../datebook_gui.c:631 ../datebook_gui.c:1148 ../datebook_gui.c:2331 #: ../datebook_gui.c:2338 msgid "Error" msgstr "顼" #: ../datebook_gui.c:632 msgid "File doesn't appear to be datebook.dat format\n" msgstr "եdatebook.datեޥåȤǤ̵褦Ǥ\n" #: ../datebook_gui.c:699 msgid "DAT/DBA (Palm Archive Formats)" msgstr "" #: ../datebook_gui.c:787 #, c-format msgid "" "Datebook exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:790 #, c-format msgid "" "Calendar exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:817 ../todo_gui.c:701 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ical file may not be standards-compliant\n" msgstr "" #: ../datebook_gui.c:1148 msgid "Unknown export type" msgstr "ʥݡȥ" #: ../datebook_gui.c:1228 ../todo_gui.c:872 #, fuzzy msgid "iCalendar" msgstr "õ" #: ../datebook_gui.c:1240 ../export_gui.c:251 ../jpilot.c:429 msgid "Export" msgstr "ݡ" #. Label for instructions #: ../datebook_gui.c:1257 msgid "Export All Datebook Records" msgstr "Ƥͽ쥳ɤ" #: ../datebook_gui.c:1276 ../export_gui.c:316 msgid "Save as" msgstr "̾Ĥ¸" #. Browse button #: ../datebook_gui.c:1286 ../export_gui.c:329 msgid "Browse" msgstr "ե" #: ../datebook_gui.c:1432 msgid "Datebook Categories" msgstr "ͽΥƥ" #. None button #. Labels for notebook tabs #: ../datebook_gui.c:1484 ../datebook_gui.c:2026 ../datebook_gui.c:5449 msgid "None" msgstr "ʤ" #: ../datebook_gui.c:1633 msgid "Begin On Date" msgstr "1λϤޤ" #: ../datebook_gui.c:1639 msgid "End On Date" msgstr "1ν" #: ../datebook_gui.c:1751 ../prefs.c:451 msgid "Sunday" msgstr "" #: ../datebook_gui.c:1752 ../prefs.c:452 msgid "Monday" msgstr "" #: ../datebook_gui.c:1753 msgid "Tuesday" msgstr "" #: ../datebook_gui.c:1754 msgid "Wednesday" msgstr "" #: ../datebook_gui.c:1755 msgid "Thursday" msgstr "" #: ../datebook_gui.c:1756 msgid "Friday" msgstr "" #: ../datebook_gui.c:1757 msgid "Saturday" msgstr "" #: ../datebook_gui.c:1760 msgid "4th" msgstr "4" #: ../datebook_gui.c:1760 msgid "Last" msgstr "ǽ" #: ../datebook_gui.c:1763 #, c-format msgid "" "This appointment can either\n" "repeat on the 4th %s\n" "of the month, or on the last\n" "%s of the month.\n" "Which do you want?" msgstr "" "ͽ4 %s ޤ\n" "ǽ %s ΤɤǤ֤ⷫ\n" "Ǥޤ\n" "ɤ˾ޤ?" #: ../datebook_gui.c:1770 ../datebook_gui.c:1786 msgid "Question?" msgstr "?" #: ../datebook_gui.c:1777 #, fuzzy msgid "" "This is a repeating event.\n" "Do you want to apply these changes to\n" "only the CURRENT event,\n" "just FUTURE events, or\n" "ALL of the occurrences of this event?" msgstr "" "ŪͽǤ\n" "ѹָߡפͽ\n" "ŬѤޤȤ⡢\n" "ƤŪͽŬ\n" "ޤ" #: ../datebook_gui.c:1782 msgid "Current" msgstr "" #: ../datebook_gui.c:1782 msgid "Future" msgstr "" #: ../datebook_gui.c:2027 msgid "day" msgstr "" #: ../datebook_gui.c:2028 msgid "week" msgstr "" #: ../datebook_gui.c:2029 msgid "month" msgstr "" #: ../datebook_gui.c:2030 msgid "year" msgstr "ǯ" #: ../datebook_gui.c:2326 ../datebook_gui.c:2329 #, c-format msgid "You cannot have an appointment that repeats every %d %s(s)\n" msgstr "%dȤ%sȤͽꤹ뤳ȤϤǤޤ\n" #: ../datebook_gui.c:2339 #, fuzzy msgid "" "You cannot have a weekly repeating appointment that doesn't repeat on any " "day of the week." msgstr "" "ΤɤˤƤⷫؤͽǤϡ˷֤ͽǤޤ" "" #. This is a timeless event #: ../datebook_gui.c:2516 ../datebook_gui.c:5264 msgid "No Time" msgstr "ʤ" #: ../datebook_gui.c:2788 ../memo_gui.c:1259 ../todo_gui.c:1728 msgid "External editor command too long to execute\n" msgstr "" #: ../datebook_gui.c:2943 msgid "Invalid Appointment" msgstr "ͽ" #: ../datebook_gui.c:2944 msgid "" "The End Date of this appointment\n" "is before the start date." msgstr "" "ͽνλϡ\n" "ǤʤФʤޤ" #. "No Date" check box #: ../datebook_gui.c:3339 ../datebook_gui.c:5482 ../datebook_gui.c:5513 #: ../datebook_gui.c:5565 ../datebook_gui.c:5613 ../todo_gui.c:142 #: ../todo_gui.c:2454 msgid "No Date" msgstr "ʤ" #: ../datebook_gui.c:3494 #, fuzzy, c-format msgid "Error in DateBookDB or Calendar advanceUnits = %d\n" msgstr "DateBookDB ֤ñ̤˥顼 = %d\n" #: ../datebook_gui.c:3681 #, c-format msgid "%%a., %s" msgstr "%%A., %s" #: ../datebook_gui.c:3686 msgid " (TODAY)" msgstr " ()" #. Weekview button #: ../datebook_gui.c:4934 ../datebook_gui.c:5451 msgid "Week" msgstr "" #: ../datebook_gui.c:4943 #, fuzzy msgid "View appointments by week Ctrl+W" msgstr "ͽɽ" #. Monthview button #: ../datebook_gui.c:4946 ../datebook_gui.c:5452 msgid "Month" msgstr "" #: ../datebook_gui.c:4955 #, fuzzy msgid "View appointments by month Ctrl+M" msgstr "ͽɽ" #. Make Category button #: ../datebook_gui.c:4960 msgid "Cats" msgstr "ƥ" #: ../datebook_gui.c:5024 msgid "Time" msgstr "" #. "Show ToDos" button #: ../datebook_gui.c:5067 msgid "Show ToDos" msgstr "ToDoɽ" #: ../datebook_gui.c:5081 ../todo_gui.c:2285 msgid "Task" msgstr "" #: ../datebook_gui.c:5082 ../todo_gui.c:2286 msgid "Due" msgstr "" #: ../datebook_gui.c:5201 ../datebook_gui.c:5358 msgid "Alarm" msgstr "顼" #. Date Spinners #: ../datebook_gui.c:5241 ../Expense/expense.c:1736 msgid "Date:" msgstr "" #. Start date and time #: ../datebook_gui.c:5283 #, fuzzy msgid "Start" msgstr "" #. End date and time #: ../datebook_gui.c:5300 #, fuzzy msgid "End" msgstr "" #: ../datebook_gui.c:5433 msgid "DateBk Tags" msgstr "DateBk" #: ../datebook_gui.c:5450 msgid "Day" msgstr "" #: ../datebook_gui.c:5453 msgid "Year" msgstr "ǯ" #. "No Repeat" page for notebook #: ../datebook_gui.c:5456 msgid "This event will not repeat" msgstr "֤ʤ" #: ../datebook_gui.c:5465 ../datebook_gui.c:5498 ../datebook_gui.c:5550 #: ../datebook_gui.c:5596 msgid "Frequency is Every" msgstr "֤" #: ../datebook_gui.c:5471 msgid "Day(s)" msgstr "" #: ../datebook_gui.c:5474 ../datebook_gui.c:5507 ../datebook_gui.c:5559 #: ../datebook_gui.c:5605 msgid "End on" msgstr "" #: ../datebook_gui.c:5504 msgid "Week(s)" msgstr "" #: ../datebook_gui.c:5556 msgid "Month(s)" msgstr "" #: ../datebook_gui.c:5573 msgid "Repeat by:" msgstr "֤ꡧ" #: ../datebook_gui.c:5577 msgid "Day of week" msgstr "" #: ../datebook_gui.c:5586 ../Expense/expense.c:1618 msgid "Date" msgstr "" #: ../datebook_gui.c:5602 msgid "Year(s)" msgstr "ǯ" #: ../dialer.c:195 msgid "Phone Dialer" msgstr "äΥ" #: ../dialer.c:230 msgid "Prefix 1" msgstr "ץեå 1" #: ../dialer.c:252 msgid "Prefix 2" msgstr "ץեå 2" #: ../dialer.c:274 msgid "Prefix 3" msgstr "ץեå 3" #: ../dialer.c:289 msgid "Phone number:" msgstr "ֹ桧" #: ../dialer.c:319 msgid "Extension" msgstr "" #: ../dialer.c:341 msgid "Dial Command" msgstr "륳ޥ" #: ../export_gui.c:121 msgid "File Browser" msgstr "ե֥饦" #. Label for instructions #: ../export_gui.c:273 msgid "Select records to be exported" msgstr "ݡȤ쥳ɤ" #: ../export_gui.c:275 msgid "Use Ctrl and Shift Keys" msgstr "ȥȥեȥ" #. Import button #: ../import_gui.c:300 ../import_gui.c:369 ../import_gui.c:426 #: ../import_gui.c:471 ../jpilot.c:385 msgid "Import" msgstr "ݡ" #: ../import_gui.c:317 #, c-format msgid "Record was marked as private" msgstr "쥳ɤϥץ饤١ȤꤵƤޤ" #: ../import_gui.c:319 #, c-format msgid "Record was not marked as private" msgstr "쥳ɤϥץ饤١ȤꤵƤʤ" #: ../import_gui.c:328 #, c-format msgid "Category before import was: [%s]" msgstr "ݡΥƥꡧ[%s]" #: ../import_gui.c:336 #, c-format msgid "Record will be put in category [%s]" msgstr "쥳ɤϥƥ [%s] ˥ݡȤޤ" #. Import All button #: ../import_gui.c:376 msgid "Import All" msgstr "Ƥ򥤥ݡ" #. Skip button #: ../import_gui.c:383 msgid "Skip" msgstr "å" #: ../import_gui.c:457 ../install_gui.c:429 msgid "To change to a hidden directory type it below and hit TAB" msgstr "եϥե̾Ϥ TAB ɽ" #: ../import_gui.c:484 msgid "Import File Type" msgstr "ݡȥե륿" #: ../install_gui.c:366 #, fuzzy msgid "Files to install" msgstr "󥹥ȡ뤹ե" #: ../install_gui.c:374 msgid "Install" msgstr "󥹥ȡ" #: ../install_user.c:118 ../install_user.c:220 #, fuzzy msgid "Install User" msgstr "/ե(_F)/桼Υ󥹥ȡ(_U)" #: ../install_user.c:139 msgid "" "A PalmOS(c) device needs a user name and a user ID in order to sync properly." msgstr "" #: ../install_user.c:146 msgid "" "If you want to sync more than 1 PalmOS(c) device each one should have a " "different ID and preferably a different user name." msgstr "" #. Instruction label #: ../install_user.c:168 msgid "Most people choose their name or nickname for the user name." msgstr "" #: ../install_user.c:176 ../restore_gui.c:278 msgid "User Name" msgstr "桼̾" #: ../install_user.c:186 msgid "The ID should be a random number." msgstr "" #: ../install_user.c:194 ../restore_gui.c:297 msgid "User ID" msgstr "桼ID" #: ../jpilot.c:319 msgid "Print" msgstr "" #: ../jpilot.c:320 msgid "There is no print support for this conduit." msgstr "Υ󥸥åȤǤϰϥݡȤƤޤ" #: ../jpilot.c:386 msgid "There is no import support for this conduit." msgstr "Υ󥸥åȤǤϥݡȤϥݡȤƤޤ" #: ../jpilot.c:430 msgid "There is no export support for this conduit." msgstr "Υ󥸥åȤǤϥݡȤϥݡȤƤޤ" #: ../jpilot.c:659 #, fuzzy msgid " Cancelling HotSync\n" msgstr "ƱΥ󥻥" #. ------------------------------------------- #: ../jpilot.c:675 #, fuzzy msgid "" "This handheld does not have the same user name or user ID\n" "as the one that was synced the last time.\n" "Syncing could have unwanted effects including data loss.\n" "\n" "Read the user manual if you are uncertain." msgstr "" " Palm ǥХϡƱȤϰۤʤ\n" "桼̾ޤϥ桼IDäƤޤ\n" "ΤޤƱ硢˾ޤʤƶФޤ\n" "褯ʬʤϥ桼ޥ˥奢ɤǤ" #. ------------------------------------------- #: ../jpilot.c:682 #, fuzzy msgid "" "This handheld has a NULL user ID.\n" "Every handheld must have a unique user ID in order to sync properly.\n" "If the handheld has been hard reset, \n" " use restore from the menu to restore it.\n" "Otherwise, to add a new user name and ID\n" " use install-user from the menu.\n" "\n" "Read the user manual if you are uncertain." msgstr "" " Palm ǥХˤϥ桼 ID ޤ\n" "ƱŬڤ˹ԤˤϡƤ Palm ǥХϸ̤Υ桼 ID \n" "äƤɬפޤ.\n" "⤷ϡɥꥻåȤ򤷤ϡ˥塼 ꥹȥ¹Ԥ뤫\n" "pilot-xferȤäƲ\n" "install-user ǥ桼̾ȥ桼 ID ɲäˤϡ\n" "install-user \"桼̾\" 12345 Τ褦˼¹ԤƲ\n" "褯ʬʤϥ桼ޥ˥奢ɤǤ" #: ../jpilot.c:690 msgid "Cancel Sync" msgstr "ƱΥ󥻥" #: ../jpilot.c:690 msgid "Sync Anyway" msgstr "ȤƱ" #: ../jpilot.c:699 ../jpilot.c:703 msgid "Sync Problem" msgstr "Ʊ" #: ../jpilot.c:932 ../jpilot.c:1785 msgid " User: " msgstr "桼:" #: ../jpilot.c:944 msgid "Unknown command from sync process\n" msgstr "Unknown command from sync process\n" #: ../jpilot.c:963 ../Expense/expense.c:529 ../KeyRing/keyring.c:1872 #: ../SyncTime/synctime.c:61 #, c-format msgid "About %s" msgstr "%s ˤĤ" #: ../jpilot.c:1105 msgid "/_File" msgstr "/ե(_F)" #: ../jpilot.c:1106 msgid "/File/tear" msgstr "/ե(_F)/ʬΥ(_T)" #: ../jpilot.c:1107 msgid "/File/_Find" msgstr "/ե(_F)/(_F)" #: ../jpilot.c:1108 ../jpilot.c:1114 ../jpilot.c:1117 msgid "/File/sep1" msgstr "/ե(_F)/sep1" #: ../jpilot.c:1109 msgid "/File/_Install" msgstr "/ե(_F)/󥹥ȡ(_I)" #: ../jpilot.c:1110 msgid "/File/Import" msgstr "/ե(_F)/ݡ(_N)" #: ../jpilot.c:1111 msgid "/File/Export" msgstr "/ե(_F)/ݡ(_E)" #: ../jpilot.c:1112 ../jpilot.c:2190 msgid "/File/Preferences" msgstr "/ե(_F)/Ķ(_O)" #: ../jpilot.c:1113 msgid "/File/_Print" msgstr "/ե(_F)/(_P)" #: ../jpilot.c:1115 msgid "/File/Install User" msgstr "/ե(_F)/桼Υ󥹥ȡ(_U)" #: ../jpilot.c:1116 msgid "/File/Restore Handheld" msgstr "/ե(_F)/ꥹȥ(_R)" #: ../jpilot.c:1118 msgid "/File/_Quit" msgstr "/ե(_F)/λ(_Q)" #: ../jpilot.c:1119 msgid "/_View" msgstr "/ɽ(_V)" #: ../jpilot.c:1120 ../jpilot.c:1121 ../jpilot.c:1122 ../jpilot.c:1368 msgid "/View/Hide Private Records" msgstr "/ɽ(_V)/ץ饤١ȥ쥳ɤɽ(_H)" #: ../jpilot.c:1121 ../jpilot.c:1371 msgid "/View/Show Private Records" msgstr "/ɽ(_V)/ץ饤١ȥ쥳ɤɽ(_S)" #: ../jpilot.c:1122 ../jpilot.c:1374 msgid "/View/Mask Private Records" msgstr "/ɽ(_V)/ץ饤١ȥ쥳ɤޥ(_U)" #: ../jpilot.c:1123 msgid "/View/sep1" msgstr "/ɽ(_V)/sep1" #: ../jpilot.c:1124 msgid "/View/Datebook" msgstr "/ɽ(_V)/ͽɽ(_S)" #: ../jpilot.c:1125 msgid "/View/Addresses" msgstr "/ɽ(_V)/ɥ쥹Ģ(_A)" #: ../jpilot.c:1126 msgid "/View/Todos" msgstr "/ɽ(_V)/Todoꥹ(_T)" #: ../jpilot.c:1127 msgid "/View/Memos" msgstr "/ɽ(_V)/Ģ(_M)" #: ../jpilot.c:1128 ../jpilot.c:1259 msgid "/_Plugins" msgstr "/ץ饰(_P)" #: ../jpilot.c:1130 msgid "/_Web" msgstr "/(_W)" #. web #: ../jpilot.c:1131 msgid "/Web/Netscape" msgstr "/(_W)/Netscape(_N)" #: ../jpilot.c:1135 msgid "/Web/Mozilla" msgstr "/(_W)/Mozilla(_M)" #: ../jpilot.c:1140 msgid "/Web/Galeon" msgstr "/(_W)/Galeon(_G)" #: ../jpilot.c:1145 msgid "/Web/Opera" msgstr "/(_W)/Opera(_O)" #: ../jpilot.c:1149 msgid "/Web/GnomeUrl" msgstr "/(_W)/GnomeUrl(_U)" #: ../jpilot.c:1151 msgid "/Web/Lynx" msgstr "/(_W)/Lynx(_X)" #: ../jpilot.c:1153 msgid "/Web/Links" msgstr "/(_W)/Links(_L)" #: ../jpilot.c:1155 msgid "/Web/W3M" msgstr "/(_W)/W3M(_W)" #: ../jpilot.c:1157 msgid "/Web/Konqueror" msgstr "/(_W)/Konqueror(_K)" #: ../jpilot.c:1160 msgid "/_Help" msgstr "/إ(_H)" #: ../jpilot.c:1161 msgid "/Help/About J-Pilot" msgstr "/إ(_H)/J-PilotˤĤ(_A)" #: ../jpilot.c:1227 #, c-format msgid "/_Plugins/%s" msgstr "/ץ饰(_P)/%s" #: ../jpilot.c:1237 #, c-format msgid "/_Help/%s" msgstr "/إ(_H)/%s" #: ../jpilot.c:1591 msgid "calendar:week_start:0" msgstr ":λϤޤ:0" #: ../jpilot.c:1634 ../jpilot-sync.c:171 msgid "Not loading plugins.\n" msgstr "ץ饰ɤ߹Ǥޤ\n" #: ../jpilot.c:1638 msgid "Ignoring all alarms.\n" msgstr "ƤΥ顼̵뤷ޤ\n" #: ../jpilot.c:1642 msgid "Ignoring past alarms.\n" msgstr "Υ顼̵뤷ޤ\n" #: ../jpilot.c:1730 ../jpilot.c:1738 msgid "Unable to open pipe\n" msgstr "pipe򳫤ޤ\n" #: ../jpilot.c:1947 #, fuzzy msgid "Show private records Ctrl+Z" msgstr "ץ饤١ȥ쥳ɤɽ Ctrl-Z" #: ../jpilot.c:1952 #, fuzzy msgid "Hide private records Ctrl+Z" msgstr "ץ饤١ȥ쥳ɤ Ctrl-Z" # jpilot.c: old version #: ../jpilot.c:1957 #, fuzzy msgid "Mask private records Ctrl+Z" msgstr "ץ饤١ȥ쥳ɤΥޥ Ctrl-Z" #: ../jpilot.c:1969 #, fuzzy msgid "Sync your palm to the desktop Ctrl+Y" msgstr "ǥȥåפPalmƱ Ctrl-Y" #: ../jpilot.c:1981 #, fuzzy msgid "Stop Sync process" msgstr "ɥ쥹ĢƱ" #: ../jpilot.c:1993 msgid "" "Sync your palm to the desktop\n" "and then do a backup" msgstr "" "ǥȥåפ Palm ǥХƱ\n" "˥Хååפ" #: ../jpilot.c:2141 msgid "Datebook/Go to Today" msgstr "ͽɽ/ɽ" #: ../jpilot.c:2142 msgid "Address Book" msgstr "ɥ쥹Ģ" #: ../jpilot.c:2143 msgid "ToDo List" msgstr "Todoꥹ" #: ../jpilot.c:2144 msgid "Memo Pad" msgstr "Ģ" #: ../jpilot.c:2172 msgid "Do it now" msgstr "¹" #: ../jpilot.c:2172 msgid "Remind me later" msgstr "ǻפФ" #: ../jpilot.c:2172 msgid "Don't tell me again!" msgstr "ɽʤ" #: ../jpilot.c:2185 #, fuzzy, c-format msgid "" "J-Pilot uses the GTK2 graphical toolkit. This version of the toolkit uses " "UTF-8 to encode characters.\n" "You should select a UTF-8 charset so that you can see non-ASCII characters " "(accents for example).\n" "\n" "Go to the menu \"%s\" and change the \"%s\"." msgstr "" "J-Pilot GTK2 ġ륭åȤѤƤޤΥġ륭åȤǤʸΥ" "ɤ UTF-8 ѤƤޤ\n" "ܸɽ٤ˤϺǽ UTF-8ʸåȤ򤷤Ʋ\n" "\n" #. Character Set #: ../jpilot.c:2190 ../prefs_gui.c:511 #, fuzzy msgid "Character Set" msgstr "ʸå " #: ../jpilot.c:2192 msgid "Select a UTF-8 encoding" msgstr "UTF-8 󥳡ɤ򤷤Ʋ" #: ../jpilot-dump.c:94 #, c-format msgid " +D +A +T +M format like date +format.\n" msgstr " +D +A +T +M date +format Ʊ͡\n" #: ../jpilot-dump.c:95 #, fuzzy, c-format msgid " -v display version and exit\n" msgstr " -v Сɽƽλ\n" #: ../jpilot-dump.c:96 ../jpilot-sync.c:68 ../utils.c:1874 #, fuzzy, c-format msgid " -h display help text\n" msgstr " -h إפɽƽλ\n" #: ../jpilot-dump.c:97 #, fuzzy, c-format msgid " -f display help for format codes\n" msgstr " -f եޥåȥɤΥإפɽ\n" #: ../jpilot-dump.c:98 #, fuzzy, c-format msgid " -D dump DateBook\n" msgstr " -D ͽɽפ\n" #: ../jpilot-dump.c:99 #, fuzzy, c-format msgid " -i dump DateBook in iCalendar format\n" msgstr " -D ͽɽפ\n" #: ../jpilot-dump.c:100 #, fuzzy, c-format msgid " -N dump appts for today in DateBook\n" msgstr " -N ͽɽκͽפ\n" #: ../jpilot-dump.c:101 #, fuzzy, c-format msgid " -NYYYY/MM/DD dump appts on YYYY/MM/DD in DateBook\n" msgstr " -NYYYY/MM/DD ͽɽ YYYY/MM/DD ͽפ\n" #: ../jpilot-dump.c:102 #, fuzzy, c-format msgid " -A dump Address book\n" msgstr " -A ɥ쥹Ģפ\n" #: ../jpilot-dump.c:103 #, fuzzy, c-format msgid " -T dump ToDo list as CSV\n" msgstr " -T TodoCSVȤƥפ롣\n" #: ../jpilot-dump.c:104 #, fuzzy, c-format msgid " -M dump Memos\n" msgstr " -M Ģפ\n" #: ../jpilot-dump.c:165 #, c-format msgid "" "Warning: Host character encoding is not UTF-8 based.\n" "Exported ical file may not be standards-compliant\n" msgstr "" #: ../jpilot-merge.c:163 ../jpilot-merge.c:169 #, fuzzy, c-format msgid "%s: Unable to open file:%s\n" msgstr "ե %s򳫤ޤ\n" #: ../jpilot-merge.c:271 #, c-format msgid "Records read from pdb = %d\n" msgstr "" #: ../jpilot-merge.c:272 #, c-format msgid "Records added = %d\n" msgstr "" #: ../jpilot-merge.c:273 #, c-format msgid "Records deleted = %d\n" msgstr "" #: ../jpilot-merge.c:274 #, c-format msgid "Records modified = %d\n" msgstr "" #: ../jpilot-merge.c:275 #, c-format msgid "Records written = %d\n" msgstr "" #: ../jpilot-merge.c:293 #, c-format msgid "Usage: %s {input pdb file} {input pc3 file} {output pdb file}\n" msgstr "" #: ../jpilot-merge.c:294 #, c-format msgid " This program will merge an unsynced records file (pc3)\n" msgstr "" #: ../jpilot-merge.c:295 #, c-format msgid "" " into the corresponding palm database (pdb) file.\n" "\n" msgstr "" #: ../jpilot-merge.c:296 #, c-format msgid " WARNING: Only run this utility if you understand the consequences!\n" msgstr "" #: ../jpilot-merge.c:297 #, c-format msgid " The merge will leave your databases in an unsync-able state.\n" msgstr "" #: ../jpilot-merge.c:298 #, c-format msgid "" " It is intended for cases where J-pilot is being used as a standalone PIM\n" msgstr "" #: ../jpilot-merge.c:299 #, c-format msgid " and where no syncing occurs to physical hardware.\n" msgstr "" #: ../jpilot-merge.c:300 #, c-format msgid " WARNING: Make a backup copy of your databases before proceeding.\n" msgstr "" #: ../jpilot-merge.c:301 #, c-format msgid "" " It is quite simple to destroy your databases by accidentally merging\n" msgstr "" #: ../jpilot-merge.c:302 #, c-format msgid " address records into datebook databases, etc.\n" msgstr "" #: ../jpilot-sync.c:66 #, fuzzy, c-format msgid "" " J-Pilot preferences are read to get sync info such as port, rate, number of " "backups, etc.\n" msgstr "" " J-Pilot ϡݡȤž®١ХååפθĿʤɤ٤ɤ" "ޤޤ\n" #: ../jpilot-sync.c:67 ../utils.c:1873 #, fuzzy, c-format msgid " -v display version and compile options\n" msgstr " -v Сֹȥѥ륪ץɽƽλ\n" #: ../jpilot-sync.c:69 ../utils.c:1875 #, fuzzy, c-format msgid " -d display debug info to stdout\n" msgstr " -d ɸϤ˥ǥХåϡ\n" #: ../jpilot-sync.c:70 #, fuzzy, c-format msgid " -P skip loading plugins\n" msgstr "-p ץ饰ɹߤ򥹥åס\n" #: ../jpilot-sync.c:71 #, fuzzy, c-format msgid " -b sync, and then do a backup\n" msgstr "" "ǥȥåפ Palm ǥХƱ\n" "˥Хååפ" #: ../jpilot-sync.c:72 #, fuzzy, c-format msgid " -l loop, otherwise sync once and exit\n" msgstr " -l = ֤ǤʤаƱƽλ\n" #: ../jpilot-sync.c:73 #, fuzzy, c-format msgid " -p {port} use this port to sync on instead of default\n" msgstr " -p {port} = ꤵ줿ݡȤˡΥݡȤƱ\n" #: ../jpilot-sync.c:221 #, fuzzy, c-format msgid "Error: connecting to port %s\n" msgstr "%s ե򳫤ȤΥ顼\n" #: ../jpilot-sync.c:225 #, c-format msgid "Error: pi_listen\n" msgstr "" #: ../jpilot-sync.c:229 #, fuzzy, c-format msgid "Error: opening conduit to handheld\n" msgstr "ե륪ץ󥨥顼: next_id\n" #: ../jpilot-sync.c:233 #, c-format msgid "Error: pi_accept\n" msgstr "" #: ../jpilot-sync.c:237 ../jpilot-sync.c:265 #, fuzzy, c-format msgid "Error: " msgstr "顼" #: ../jpilot-sync.c:238 #, c-format msgid "This handheld does not have the same user name.\n" msgstr "" #: ../jpilot-sync.c:239 ../jpilot-sync.c:253 #, c-format msgid "as the one that was synced the last time.\n" msgstr "" #: ../jpilot-sync.c:241 #, c-format msgid "" "Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:243 ../jpilot-sync.c:256 #, c-format msgid " COPILOT_HOME" msgstr "" #: ../jpilot-sync.c:245 ../jpilot-sync.c:258 #, c-format msgid " JPILOT_HOME" msgstr "" #: ../jpilot-sync.c:247 ../jpilot-sync.c:260 #, fuzzy, c-format msgid " environment variable can be used to sync different handhelds,\n" msgstr "Ķѿ HOME Ĺ᤮ޤ\n" #: ../jpilot-sync.c:248 ../jpilot-sync.c:261 #, c-format msgid " to different directories for the same UNIX user name.\n" msgstr "" #: ../jpilot-sync.c:252 #, c-format msgid "This handheld does not have the same user ID.\n" msgstr "" #: ../jpilot-sync.c:254 #, c-format msgid "" " Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:266 #, c-format msgid "This handheld has a NULL user ID.\n" msgstr "" #: ../jpilot-sync.c:267 #, c-format msgid "Every handheld must have a unique user ID in order to sync properly.\n" msgstr "" #: ../jpilot-sync.c:268 #, c-format msgid "If the handheld has been hard reset, \n" msgstr "" #: ../jpilot-sync.c:269 #, c-format msgid " use restore from within " msgstr "" #: ../jpilot-sync.c:270 #, c-format msgid "Otherwise, to add a new user name and ID\n" msgstr "" #: ../jpilot-sync.c:271 #, c-format msgid " use \"install-user %s name numeric_id\"\n" msgstr "" #: ../jpilot-sync.c:275 #, c-format msgid "Error: sync returned error %d\n" msgstr "" #: ../libplugin.c:64 ../utils.c:1054 msgid "" "This record is already deleted.\n" "It is scheduled to be deleted from the Palm on the next sync.\n" msgstr "" "Υ쥳ɤϺѤߤǤ\n" "Ʊ Palm ǥХͽǤ\n" #: ../libplugin.c:73 ../libplugin.c:110 ../utils.c:1064 ../utils.c:1106 msgid "Unable to open PC records file\n" msgstr "PC Υ쥳ɥե򳫤ޤ\n" #: ../libplugin.c:79 ../utils.c:1071 msgid "Couldn't find record to delete\n" msgstr "쥳ɤդޤǤ\n" #: ../libplugin.c:97 ../utils.c:1091 #, c-format msgid "Unknown header version %d\n" msgstr "ʥإåС %d Ǥ\n" #: ../libplugin.c:182 #, c-format msgid "%s:%d Error opening file: %s\n" msgstr "%s:%d %sɤ߹ߥ顼\n" #: ../libplugin.c:188 ../libplugin.c:217 ../sync.c:1721 ../todo.c:102 #, c-format msgid "%s:%d Error reading file: %s\n" msgstr "%s:%d %sɤ߹ߥ顼\n" #: ../libplugin.c:340 ../libplugin.c:398 ../utils.c:2119 ../utils.c:2132 #, c-format msgid "Error opening file: %s\n" msgstr "%s ե򳫤ȤΥ顼\n" #: ../libplugin.c:526 #, c-format msgid "Error reading %s 5\n" msgstr "%s 5 ɤ߹ߥ顼\n" #: ../libplugin.c:801 msgid "Error reading PC file 1\n" msgstr "PC ե 1 ɤ߹ߥ顼\n" #: ../libplugin.c:817 msgid "Error reading PC file 2\n" msgstr "PC ե 2 ɤ߹ߥ顼\n" #: ../libplugin.c:923 #, c-format msgid "Unknown PC header version = %d\n" msgstr " PC إåС = %d\n" #: ../log.c:101 #, c-format msgid "Unable to open log file, giving up.\n" msgstr "ե򳫤ޤΤǽλޤ\n" #: ../log.c:111 #, c-format msgid "Unable to open log file\n" msgstr "ե򳫤ޤ\n" #: ../memo_gui.c:302 msgid "Memo text > 65535, truncating\n" msgstr "ĢΥƥȤ 65535 ۤޤڤΤƤޤ\n" #: ../memo_gui.c:330 #, c-format msgid "Imported Memo %s\n" msgstr "Ģ %s 򥤥ݡȤޤ\n" #: ../memo_gui.c:400 msgid "File doesn't appear to be memopad.dat format\n" msgstr "եmemopad.dat եޥåȤǤ̵褦Ǥ\n" #: ../memo_gui.c:471 msgid "DAT/MPA (Palm Archive Formats)" msgstr "" #: ../memo_gui.c:554 #, c-format msgid "" "Memo exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:557 #, c-format msgid "" "Memos exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:584 #, c-format msgid "Can't export memo %d\n" msgstr "Ģ %d 򥨥ݡȤǤޤ\n" #: ../memo_gui.c:628 #, fuzzy, c-format msgid "Memo: %ld\n" msgstr "Ģ" #: ../memo_gui.c:634 #, c-format msgid "----- Start of Memo -----\n" msgstr "" #: ../memo_gui.c:636 #, c-format msgid "" "\n" "----- End of Memo -----\n" "\n" msgstr "" #: ../memo_gui.c:668 msgid "B-Folders CSV" msgstr "" # msgid "WeekView" # msgstr "콵֤ͽ" #: ../monthview_gui.c:438 msgid "Monthly View" msgstr "ɽ" #: ../monthview_gui.c:480 msgid "Last month Alt+LeftArrow" msgstr "" #: ../monthview_gui.c:508 msgid "Next month Alt+RightArrow" msgstr "" #: ../otherconv.c:76 #, c-format msgid "%s: error exit from g_iconv_close(%s)\n" msgstr "" #: ../otherconv.c:201 #, c-format msgid "%s:%s g_convert_with_iconv error: %s, buff: %s\n" msgstr "" #: ../otherconv.c:203 #, fuzzy msgid "last char truncated" msgstr "ǽ: " #: ../otherconv.c:280 #, c-format msgid "UTF_to_other: %s\n" msgstr "" #: ../otherconv.c:294 #, c-format msgid "iconv: unconvertible sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:298 #, c-format msgid "iconv: incomplete UTF-8 sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:301 #, c-format msgid "iconv: buffer filled. stopped at place %d in '%s'\n" msgstr "" #: ../otherconv.c:304 #, c-format msgid "iconv: unexpected error at place %d in '%s'\n" msgstr "" #: ../password.c:283 msgid "Palm Password" msgstr "PalmΥѥ" #: ../password.c:308 msgid "Incorrect, Reenter PalmOS Password" msgstr "ޤPalmOS ΥѥɤϤƤ" #: ../password.c:310 msgid "Enter PalmOS Password" msgstr "PalmOS Υѥ" #: ../pidfile.c:67 msgid "removing stale pidfile\n" msgstr "" #: ../pidfile.c:91 #, fuzzy, c-format msgid "create pidfile failed: %s\n" msgstr "ե %sɤ߹ߥ顼\n" #: ../pidfile.c:92 msgid "Warning: hotplug syncing disabled.\n" msgstr "" #: ../plugins.c:90 ../plugins.c:203 ../restore_gui.c:133 msgid "infinite loop" msgstr "̵¥롼" #: ../plugins.c:216 #, c-format msgid "While reading %s%s line 1:[%s]\n" msgstr "%s%s ɤ߹ line 1:[%s]\n" #: ../plugins.c:217 msgid "Wrong Version\n" msgstr "С󤬰㤤ޤ\n" #: ../plugins.c:218 msgid "Check preferences->conduits\n" msgstr " -> 󥸥åȤǧƲ\n" #: ../plugins.c:274 #, c-format msgid "" "Open failed on plugin [%s]\n" " error [%s]\n" msgstr "" "ץ饰 [%s] Υץ˼ԡ\n" "顼 [%s] \n" #: ../plugins.c:291 ../plugins.c:316 #, c-format msgid " plugin is invalid: [%s]\n" msgstr "̵ʥץ饰: [%s]\n" #: ../plugins.c:299 #, c-format msgid "Plugin:[%s]\n" msgstr "ץ饰:[%s]\n" #: ../plugins.c:300 #, c-format msgid "This plugin is version (%d.%d).\n" msgstr "Υץ饰ΥС (%d.%d) Ǥ\n" #: ../plugins.c:302 msgid "It is too old to work with this version of J-Pilot.\n" msgstr "ΥС J-Pilot ưˤϸŲ᤮ޤ\n" #: ../prefs.c:420 msgid "%B %d, %Y" msgstr "%Yǯ%m%d" #: ../prefs.c:421 msgid "%d %B %Y" msgstr "%Yǯ%b%e" #: ../prefs.c:422 msgid "%d. %B %Y" msgstr "%yǯ%m%d" #: ../prefs.c:423 msgid "%d %B, %Y" msgstr "%yǯ%b%e" #: ../prefs.c:424 msgid "%Y. %B. %d" msgstr "%EY%m%d" #: ../prefs.c:425 msgid "%Y %B %d" msgstr "%EY%b%e" #: ../prefs_gui.c:454 msgid "Preferences" msgstr "" #: ../prefs_gui.c:485 msgid "Locale" msgstr "ϰ" #: ../prefs_gui.c:487 msgid "Settings" msgstr "" #: ../prefs_gui.c:489 msgid "Datebook" msgstr "ͽɽ" #: ../prefs_gui.c:493 msgid "ToDo" msgstr "Todoꥹ" #: ../prefs_gui.c:495 msgid "Memo" msgstr "Ģ" #: ../prefs_gui.c:497 msgid "Alarms" msgstr "顼" #: ../prefs_gui.c:499 msgid "Conduits" msgstr "󥸥å" #. Shortdate #: ../prefs_gui.c:524 #, fuzzy msgid "Short date format" msgstr "ûշ " #. Longdate #: ../prefs_gui.c:537 #, fuzzy msgid "Long date format" msgstr "Ĺշ " #. Time #: ../prefs_gui.c:550 #, fuzzy msgid "Time format" msgstr " " #. GTK colors file #: ../prefs_gui.c:570 #, fuzzy msgid "GTK color theme file" msgstr "GTK 顼ե " #. Port #: ../prefs_gui.c:583 #, fuzzy msgid "Sync Port" msgstr "Ʊ" #. Serial Rate #: ../prefs_gui.c:607 msgid "Serial Rate" msgstr "" #. Number of backups #: ../prefs_gui.c:627 msgid "Number of backups to be archived" msgstr "¸ХååפθĿ " #. Show deleted files check box #: ../prefs_gui.c:645 msgid "Show deleted records (default NO)" msgstr "줿쥳ɤɽ(ǥե NO)" #. Show modified files check box #: ../prefs_gui.c:649 msgid "Show modified deleted records (default NO)" msgstr "쥳ɤɽ(ǥե NO)" #: ../prefs_gui.c:654 msgid "Ask confirmation for file installation (J-Pilot -> PDA) (default YES)" msgstr "եΥ󥹡˳ǧ (J-Pilot -> PDA) (ǥե YES)" #. Show tooltips check box #: ../prefs_gui.c:658 #, fuzzy msgid "Show popup tooltips (default YES) (requires restart)" msgstr "ݥåץåסġåפɽ (ǥե YES)" #: ../prefs_gui.c:668 msgid "Use Datebook database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:671 msgid "Use Calendar database (Palm OS > 5.2)" msgstr "" #. Show highlight days check box #: ../prefs_gui.c:697 msgid "Highlight calendar days with appointments" msgstr "ͽΤϥ饤ɽ" #. Highlight today on month and week view #: ../prefs_gui.c:702 msgid "Annotate today in day, week, and month views" msgstr "ɽ()ɽ" #. Show number of years on anniversaries in month and week view #: ../prefs_gui.c:706 msgid "Append years on anniversaries in day, week, and month views" msgstr "ɽǡǰǯɽ" #. Show use DateBk check box #: ../prefs_gui.c:712 msgid "Use DateBk note tags" msgstr "DateBk ΥΡȥȤ" #: ../prefs_gui.c:715 msgid "DateBk support disabled in this build" msgstr "DataBkݡȤϤΥӥɤǤ̵Ǥ" #: ../prefs_gui.c:727 msgid "Use Address database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:730 msgid "Use Contacts database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:759 msgid "Mail Command" msgstr "᡼륳ޥ" #: ../prefs_gui.c:773 #, c-format msgid "%s is replaced by the e-mail address" msgstr "%s e-mailɥ쥹֤ޤ" #: ../prefs_gui.c:785 msgid "Use ToDo database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:788 msgid "Use Task database (Palm OS > 5.2)" msgstr "" #. hide completed check box #: ../prefs_gui.c:815 msgid "Hide Completed ToDos" msgstr "λToDoɽʤ" #. hide todos not yet due check box #: ../prefs_gui.c:819 msgid "Hide ToDos not yet due" msgstr "¤ƤʤToDo򱣤 " #. record todo completion date check box #: ../prefs_gui.c:823 msgid "Record Completion Date" msgstr "λϿ" #. Use Manana check box #: ../prefs_gui.c:828 msgid "Use Manana database" msgstr "Manana ǡ١Ȥ" #: ../prefs_gui.c:836 msgid "Use default number of days due" msgstr "¤Υǥե" #: ../prefs_gui.c:858 msgid "Use Memo database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:861 msgid "Use Memos database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:864 #, fuzzy msgid "Use Memo32 database (pedit32)" msgstr "Memo32(pedit32)Ȥ" #: ../prefs_gui.c:904 msgid "External Editor" msgstr "" #: ../prefs_gui.c:917 msgid "Use Ctrl-E inside a memo to launch external editor for memo text" msgstr "" #. ******************************************************************** #. Alarms preference tab #. Open alarm windows check box #: ../prefs_gui.c:925 msgid "Open alarm windows for appointment reminders" msgstr "ͽפФ뤿˥顼०ɥɽ" #. Execute alarm command check box #: ../prefs_gui.c:929 msgid "Execute this command" msgstr "ޥɤ¹Ԥ" #. Shell warning label #: ../prefs_gui.c:933 msgid "WARNING: executing arbitrary shell commands can be dangerous!!!" msgstr "ٹ: 륳ޥɤμ¹Ԥˤդ뤳ȡ" #: ../prefs_gui.c:941 msgid "Alarm Command" msgstr "顼ॳޥ" #: ../prefs_gui.c:954 msgid "%t is replaced with the alarm time" msgstr "%t 򥢥顼֤ޤ" #: ../prefs_gui.c:958 #, c-format msgid "%d is replaced with the alarm date" msgstr "%d 򥢥顼֤ޤ" #: ../prefs_gui.c:963 msgid "%D is replaced with the alarm description" msgstr "%D 򥢥顼εҤ֤ޤ" #: ../prefs_gui.c:967 msgid "%N is replaced with the alarm note" msgstr "%N 򥢥顼ΡȤ֤ޤ" #: ../prefs_gui.c:971 msgid "%D (description substitution) is disabled in this build" msgstr "%D ʵ֤ˤϤΥӥɤǤ̵Ǥ" #: ../prefs_gui.c:976 msgid "%N (note substitution) is disabled in this build" msgstr "%N (Ρ֤)ϤΥӥɤǤ̵Ǥ" #. ******************************************************************** #. Conduits preference tab #. Sync datebook check box #: ../prefs_gui.c:986 msgid "Sync datebook" msgstr "ͽɽƱ" #. Sync address check box #: ../prefs_gui.c:990 msgid "Sync address" msgstr "ɥ쥹ĢƱ" #. Sync todo check box #: ../prefs_gui.c:994 msgid "Sync todo" msgstr "TodoƱ" #. Sync memo check box #: ../prefs_gui.c:998 msgid "Sync memo" msgstr "ĢƱ" #. Show sync Manana check box #: ../prefs_gui.c:1003 msgid "Sync Manana" msgstr "Manana Ʊ" #. Show use Japanese Kana extention check box #: ../prefs_gui.c:1009 msgid "Use J-OS (Not Japanese PalmOS:WorkPad/CLIE)" msgstr "J-OS (ܸ OS Palm / WorkPad / CLIE ʳ) Ȥ" #. Make a Sync checkbox for each plugin #: ../prefs_gui.c:1022 #, c-format msgid "Sync %s (%s)" msgstr "%s (%s) Ʊ" #: ../print_gui.c:185 msgid "Print Options" msgstr "ץ" #: ../print_gui.c:198 msgid "Paper Size" msgstr "ѻ極" #: ../print_gui.c:214 msgid "Daily Printout" msgstr "" #: ../print_gui.c:220 msgid "Weekly Printout" msgstr "ְ" # msgid "WeekView" # msgstr "콵֤ͽ" #: ../print_gui.c:226 msgid "Monthly Printout" msgstr "ְ" #: ../print_gui.c:266 #, fuzzy msgid "Selected record" msgstr "%sΥ쥳ɤޤ" #: ../print_gui.c:270 msgid "All records in this category" msgstr "ΥƥƤΥ쥳" #: ../print_gui.c:274 msgid "Print all records" msgstr "ƤΥ쥳ɤ" #: ../print_gui.c:296 msgid "One record per page" msgstr "1 ڡ 1 쥳" #: ../print_gui.c:312 #, fuzzy msgid "Blank lines between each record" msgstr "쥳ɴ֤ζ" #. Print Command #: ../print_gui.c:321 msgid "Print Command (e.g. lpr, or cat > file.ps)" msgstr "ޥ(:lpr, cat >file.ps)" #: ../restore_gui.c:71 ../restore_gui.c:229 msgid "Restore Handheld" msgstr "ϥɥإɤإꥹȥ" #: ../restore_gui.c:176 ../restore_gui.c:178 msgid "Unable to convert filename for GTK display\n" msgstr "" #: ../restore_gui.c:177 msgid "See console log to find which file will not be restored\n" msgstr "" #: ../restore_gui.c:179 #, fuzzy, c-format msgid "File %s will not be restored\n" msgstr "󥹥ȡ뤹ե" #. Label for instructions #: ../restore_gui.c:246 msgid "To restore your handheld:" msgstr "ϥɥإɤإꥹȥˤ" #: ../restore_gui.c:249 #, fuzzy msgid "1. Choose the applications you wish to restore. The default is all." msgstr "" "1. ꥹȥץꥱƤ򤷤ƤͤƤǤ" #: ../restore_gui.c:252 msgid "2. Enter the User Name and User ID." msgstr "2. 桼̾ȥ桼ID򤤤Ƥ" #: ../restore_gui.c:255 msgid "3. Press the OK button." msgstr "3. OKܥ򲡤Ƥ" #: ../restore_gui.c:258 msgid "This will overwrite data that is currently on the handheld." msgstr "ϡ Palm ǥХˤǡ񤭤ޤ" #: ../search_gui.c:144 msgid "datebook" msgstr "ͽɽ" #: ../search_gui.c:146 #, fuzzy msgid "calendar" msgstr "õ" #: ../search_gui.c:233 msgid "address" msgstr "ɥ쥹Ģ" #: ../search_gui.c:235 msgid "contact" msgstr "" #: ../search_gui.c:304 msgid "todo" msgstr "Todo" #: ../search_gui.c:361 msgid "memo" msgstr "Ģ" #: ../search_gui.c:363 #, fuzzy msgid "memos" msgstr "Ģ" #: ../search_gui.c:421 msgid "plugin ?" msgstr "ץ饰 ?" #: ../search_gui.c:501 msgid "No records found" msgstr "쥳ɤդޤ" #: ../search_gui.c:600 msgid "Search" msgstr "" #. Search label #: ../search_gui.c:617 msgid "Search for: " msgstr "ʸ: " #. Case Sensitive checkbox #: ../search_gui.c:626 msgid "Case Sensitive" msgstr "ʸ/ʸ" #: ../sync.c:120 msgid "open lock file failed\n" msgstr "ե򳫤ޤ\n" #: ../sync.c:133 msgid "lock failed\n" msgstr "åμ\n" #: ../sync.c:136 #, c-format msgid "sync file is locked by pid %d\n" msgstr "sync ե pid %d ˤäƥåƤޤ\n" #: ../sync.c:171 msgid "unlock failed\n" msgstr "å˼Ԥޤ\n" #: ../sync.c:174 #, c-format msgid "sync is locked by pid %d\n" msgstr "Ʊ pid %d ˤåƤޤ\n" #: ../sync.c:410 #, fuzzy msgid "Check your sync port and settings\n" msgstr "ꥢݡȤǧƤ\n" #: ../sync.c:669 msgid "Unable to read home dir\n" msgstr "ۡǥ쥯ȥ򳫤ޤ\n" #: ../sync.c:1075 ../sync.c:1413 #, c-format msgid "%s (Creator ID '%s') is up to date, fetch skipped.\n" msgstr "%s (ꥨID '%s')ϺǿʤΤǥåפޤ\n" #: ../sync.c:1079 ../sync.c:1417 #, c-format msgid "Fetching '%s' (Creator ID '%s')... " msgstr "'%s'(ꥨID '%s') ..." #: ../sync.c:1086 ../sync.c:1423 #, c-format msgid "Failed, unable to create file %s\n" msgstr "Ԥޤե %s Ǥޤ\n" #: ../sync.c:1090 ../sync.c:1428 #, c-format msgid "Failed, unable to back up database %s\n" msgstr "Ԥޤǡ١ %s ΥХååפǤޤ\n" #: ../sync.c:1094 ../sync.c:1432 ../sync.c:1619 msgid "OK\n" msgstr "OK\n" #: ../sync.c:1294 #, c-format msgid "Skipping %s (Creator ID '%s')\n" msgstr "%s (ꥨID '%s')Υå\n" #: ../sync.c:1488 #, c-format msgid "Installing %s " msgstr "%s Υ󥹥ȡ" #: ../sync.c:1494 ../sync.c:1530 #, c-format msgid "" "\n" "Unable to open file: '%s': %s!\n" msgstr "" "\n" "'ե򳫤ޤ: '%s': %s!\n" #: ../sync.c:1498 #, c-format msgid "" "\n" "Unable to sync file: '%s': file corrupted?\n" msgstr "" "\n" "եƱǤޤ: '%s': ե»?\n" #: ../sync.c:1514 #, fuzzy, c-format msgid "(Creator ID '%s')... " msgstr "(ꥨID'%s')..." #: ../sync.c:1518 #, fuzzy, c-format msgid "(Creator ID '%s') " msgstr "(ꥨID'%s')..." #: ../sync.c:1520 #, fuzzy, c-format msgid "(SDcard dir %s)... " msgstr "(ꥨID'%s')..." #: ../sync.c:1552 ../sync.c:1565 ../sync.c:1580 ../sync.c:1593 #, c-format msgid "" "\n" "Unable to open file: %s\n" msgstr "" "\n" "%s򳫤ޤ\n" #: ../sync.c:1605 #, c-format msgid "Install %s failed" msgstr "%s Υ󥹥ȡ˼Ԥޤ" #: ../sync.c:1609 msgid "Failed.\n" msgstr "\n" #: ../sync.c:1615 #, fuzzy, c-format msgid "Installed %s" msgstr "%s 򥤥󥹥ȡ뤷ޤ " #: ../sync.c:1726 #, c-format msgid "%s:%d Error getting app info %s\n" msgstr "%s:%d ץꥱ %s 顼\n" #: ../sync.c:1732 ../sync.c:1762 #, c-format msgid "%s:%d Error unpacking app info %s\n" msgstr "%s:%d ץꥱ %s Ф顼\n" #: ../sync.c:1753 #, c-format msgid "Error reading appinfo block for %s\n" msgstr "%s Υץꥱ֥åɤ߹ߥ顼\n" #. Fix - need a func for this logging #: ../sync.c:1991 ../sync.c:1995 #, c-format msgid "Could not add category %s to remote.\n" msgstr "⡼ȤΥƥ %s ɲäǤޤǤ\n" #: ../sync.c:1992 ../sync.c:1998 #, c-format msgid "Too many categories on remote.\n" msgstr "⡼Ȥˤϥƥ꤬¿ޤ\n" #: ../sync.c:1993 ../sync.c:2001 #, c-format msgid "All records on desktop in %s will be moved to %s.\n" msgstr "%s ΥǥȥåפƤΥ쥳ɤϡ %s ذưޤ\n" #: ../sync.c:2096 ../sync.c:2814 #, c-format msgid "Syncing %s\n" msgstr "%s ƱƤޤ\n" #: ../sync.c:2104 ../sync.c:2457 ../sync.c:2822 #, c-format msgid "Wrote an %s record." msgstr "%sΥ쥳ɤ񤭹ߤޤ" #: ../sync.c:2106 ../sync.c:2459 ../sync.c:2824 #, c-format msgid "Writing an %s record failed." msgstr "%sΥ쥳ɤν񤭹ߤԤޤ" #: ../sync.c:2108 ../sync.c:2461 ../sync.c:2826 #, c-format msgid "Deleting an %s record failed." msgstr "%sΥ쥳ɤκԤޤ" #: ../sync.c:2110 ../sync.c:2463 ../sync.c:2828 #, c-format msgid "Deleted an %s record." msgstr "%sΥ쥳ɤޤ" #: ../sync.c:2112 ../sync.c:2465 #, fuzzy, c-format msgid "Sync Conflict: duplicated an %s record." msgstr "%sΥ쥳ɤޤ" #: ../sync.c:2115 ../sync.c:2468 ../sync.c:2831 #, c-format msgid "Wrote a %s record." msgstr "%sΥ쥳ɤ񤭹ߤޤ" #: ../sync.c:2117 ../sync.c:2470 ../sync.c:2833 #, c-format msgid "Writing a %s record failed." msgstr "%sΥ쥳ɤν񤭹ߤԤޤ" #: ../sync.c:2119 ../sync.c:2472 ../sync.c:2835 #, c-format msgid "Deleting a %s record failed." msgstr "%sΥ쥳ɤκԤޤ" #: ../sync.c:2121 ../sync.c:2474 ../sync.c:2837 #, c-format msgid "Deleted a %s record." msgstr "%sΥ쥳ɤޤ" #: ../sync.c:2123 ../sync.c:2476 #, c-format msgid "Sync Conflict: duplicated a %s record." msgstr "" #: ../sync.c:2227 ../sync.c:2557 #, c-format msgid "Sync Conflict: a %s record must be manually merged\n" msgstr "" #: ../sync.c:2358 ../sync.c:2698 msgid "" "dlp_DeleteRecord failed\n" "This could be because the record was already deleted on the Palm\n" msgstr "" "dlp_DeleteRecordԤޤ\n" "PalmǴ˥쥳ɤƤ뤳ȤȤƹͤޤ\n" #: ../sync.c:2927 msgid "Finished installing user information.\n" msgstr "桼Υ󥹥ȡ뤬λޤ\n" #: ../sync.c:3084 #, c-format msgid " Syncing on device %s\n" msgstr "ǥХ%sƱޤ\n" #: ../sync.c:3085 msgid " Press the HotSync button now\n" msgstr "HotSync ܥ򲡤Ƥ\n" #: ../sync.c:3127 ../sync.c:3149 ../sync.c:3170 #, c-format msgid "Last Synced Username-->\"%s\"\n" msgstr "ǸƱ桼̾-->\"%s\"\n" #: ../sync.c:3128 ../sync.c:3150 ../sync.c:3171 #, c-format msgid "Last Synced UserID-->\"%d\"\n" msgstr "ǸƱ桼ID-->\"%d\"\n" #: ../sync.c:3129 ../sync.c:3151 ../sync.c:3172 #, c-format msgid " This Username-->\"%s\"\n" msgstr "Υ桼̾-->\"%s\"\n" #: ../sync.c:3130 ../sync.c:3152 ../sync.c:3173 #, c-format msgid " This User ID-->%d\n" msgstr "Υ桼ID-->%d\n" #: ../sync.c:3194 #, c-format msgid "Username is \"%s\"\n" msgstr "桼̾\"%s\"Ǥ\n" #: ../sync.c:3195 #, c-format msgid "User ID is %d\n" msgstr "桼ID%dǤ.\n" #: ../sync.c:3197 #, c-format msgid "lastSyncPC = %d\n" msgstr "ǸƱPC = %d\n" #: ../sync.c:3198 #, c-format msgid "This PC = %lu\n" msgstr "PC = %lu\n" #: ../sync.c:3222 msgid "Sync canceled\n" msgstr "Ʊ󥻥뤵ޤ\n" #: ../sync.c:3245 msgid "Finished restoring handheld.\n" msgstr "ϥɥإɤؤΥꥹȥλ\n" #: ../sync.c:3246 msgid "You may need to sync to update J-Pilot.\n" msgstr "ƱˤϡJ-PilotΥåץǡȤɬפǤ.\n" #: ../sync.c:3268 msgid "Doing a fast sync.\n" msgstr "®Ʊ档\n" #: ../sync.c:3281 msgid "Doing a slow sync.\n" msgstr "®Ʊ档\n" #: ../sync.c:3356 msgid "Thank you for using J-Pilot." msgstr "J-PilotȤäƤƤ꤬Ȥ!" #: ../sync.c:3401 ../sync.c:3469 msgid "Finished.\n" msgstr "λ\n" #: ../sync.c:3436 #, c-format msgid "%s: sync process already in progress (process ID = %d)\n" msgstr "" #: ../sync.c:3437 #, fuzzy, c-format msgid "" "%s: press the HotSync button on the cradle\n" " or stop the sync by using the cancel sync button\n" " or stop the sync by typing \"kill %d\" at the command line\n" msgstr "%s: HotSyncܥ򲡤 \"kill %d\" ¹ԤƲ\n" #: ../sync.c:3468 #, c-format msgid "Exiting with status %s\n" msgstr " %s ǽλޤ\n" #: ../todo.c:266 #, c-format msgid "ToDo description text > %d, truncating to %d\n" msgstr "ToDoɽ %d Ĺ᤮ޤ %d ڤͤޤ\n" #: ../todo.c:272 #, c-format msgid "ToDo note text > %d, truncating to %d\n" msgstr "ToDoΥΡȤ %d Ĺޤ %d ڤͤޤ\n" #: ../todo_gui.c:161 msgid "Due Date" msgstr "ڤ" #: ../todo_gui.c:532 msgid "File doesn't appear to be todo.dat format\n" msgstr "եϡ todo.dat եޥåȤǤ̵褦Ǥ\n" #: ../todo_gui.c:596 msgid "DAT/TDA (Palm Archive Formats)" msgstr "" #: ../todo_gui.c:688 #, c-format msgid "" "ToDo exported from %s %s on %s\n" "\n" msgstr "" #: ../todo_gui.c:726 #, c-format msgid "Can't export todo %d\n" msgstr "todo %d ݡȤǤޤ\n" #: ../todo_gui.c:766 #, fuzzy, c-format msgid "Due Date: None\n" msgstr "ڤ" #: ../todo_gui.c:769 #, fuzzy, c-format msgid "Due Date: %s\n" msgstr "ڤ" #: ../todo_gui.c:771 #, fuzzy, c-format msgid "Priority: %d\n" msgstr "ͥ١" #: ../todo_gui.c:772 #, fuzzy, c-format msgid "Completed: %s\n" msgstr "λ" #: ../todo_gui.c:774 #, c-format msgid "Description: %s\n" msgstr "" #: ../todo_gui.c:777 #, c-format msgid "" "Note: %s\n" "\n" msgstr "" #: ../todo_gui.c:1610 msgid "Priority out of range\n" msgstr "̤ͥϰϳǤ\n" #: ../todo_gui.c:1932 ../KeyRing/keyring.c:1310 #, c-format msgid "No date" msgstr "ڤʤ" #. Completed checkbox #: ../todo_gui.c:2414 msgid "Completed" msgstr "λ" #: ../todo_gui.c:2421 #, fuzzy msgid "Priority:" msgstr "ͥ١" #: ../todo_gui.c:2423 msgid "Set priority Alt+#" msgstr "" #: ../todo_gui.c:2444 msgid "Date Due:" msgstr "" #: ../utils.c:332 msgid "Today" msgstr "" #: ../utils.c:577 #, c-format msgid "Couldn't find empty DB file %s: %s\n" msgstr " %s DBե %s 򸫤Ĥޤ\n" #: ../utils.c:580 msgid " may not be installed.\n" msgstr "ϥ󥹥ȡ뤵ޤ\n" #. Can't create directory #: ../utils.c:615 ../utils.c:619 #, c-format msgid "Can't create directory %s\n" msgstr "ǥ쥯ȥ %s Ǥޤ\n" #: ../utils.c:625 #, fuzzy, c-format msgid "%s is not a directory\n" msgstr "%s ϥǥ쥯ȥǤ" #: ../utils.c:630 #, fuzzy, c-format msgid "Unable to get write permission for directory %s\n" msgstr "ǥ쥯ȥ %s ˥ե񤭹ޤ\n" #: ../utils.c:1330 ../utils.c:1354 msgid "Save Changed Record?" msgstr "ѹ줿쥳ɤ¸ޤ" #: ../utils.c:1331 ../utils.c:1355 msgid "Do you want to save the changes to this record?" msgstr "Υ쥳ɤѹ¸ޤ" #: ../utils.c:1336 ../utils.c:1360 msgid "Save New Record?" msgstr "쥳ɤ¸ޤ" #: ../utils.c:1337 ../utils.c:1361 msgid "Do you want to save this new record?" msgstr "쥳ɤ¸ޤ" #: ../utils.c:1652 msgid "infinite loop, breaking\n" msgstr "̵¥롼פ\n" #: ../utils.c:1876 #, fuzzy, c-format msgid " -p skip loading plugins\n" msgstr "-p ץ饰ɹߤ򥹥åס\n" #: ../utils.c:1877 #, fuzzy, c-format msgid " -a ignore missed alarms since the last time program was run\n" msgstr " -a ưμԤ顼̵뤹롣\n" #: ../utils.c:1878 #, fuzzy, c-format msgid " -A ignore all alarms past and future\n" msgstr " -A ƤΥ顼̵뤹(̤)\n" #: ../utils.c:1879 #, c-format msgid " -s start sync using existing instance of GUI\n" msgstr "" #: ../utils.c:1880 #, c-format msgid " -i iconify program immediately after launch\n" msgstr "" #: ../utils.c:1881 #, c-format msgid "" " -geometry {X geometry} use specified geometry for main window\n" "\n" msgstr "" #: ../utils.c:1882 #, fuzzy, c-format msgid " The PILOTPORT and PILOTRATE environment variables specify\n" msgstr " Ķѿ PILOTPORT ڤ PILOTRATE Ʊ\n" #: ../utils.c:1883 #, c-format msgid " which port to sync on, and at what speed.\n" msgstr " ݡȵڤӥԡɤꤹΤ˻Ѥޤ\n" #: ../utils.c:1884 #, c-format msgid " If PILOTPORT is not set then it defaults to /dev/pilot.\n" msgstr "" " PILOTPORT ꤵƤʤ /dev/pilot ǥեȤǻѤޤ\n" #: ../utils.c:1921 msgid "Error reading file" msgstr "եɤ߹ߥ顼" #: ../utils.c:1971 msgid "Date compiled" msgstr "ѥ" #: ../utils.c:1972 msgid "Compiled with these options:" msgstr "Υץǥѥ뤵ޤ" #: ../utils.c:1974 msgid "Installed Path" msgstr "󥹥ȡѥ" #: ../utils.c:1976 msgid "pilot-link version" msgstr "pilot-link С" #: ../utils.c:1980 msgid "USB support" msgstr "USB ݡ" #: ../utils.c:1981 ../utils.c:1984 ../utils.c:1990 ../utils.c:1996 #: ../utils.c:2002 ../utils.c:2008 ../utils.c:2013 msgid "yes" msgstr "Ϥ" #: ../utils.c:1982 msgid "Private record support" msgstr "ץ饤١ȥ쥳ɤΥݡ" #: ../utils.c:1986 ../utils.c:1992 ../utils.c:1998 ../utils.c:2004 #: ../utils.c:2010 msgid "no" msgstr "" #: ../utils.c:1988 msgid "Datebk support" msgstr "Databk Υݡ" #: ../utils.c:1994 msgid "Plugin support" msgstr "ץ饰󥵥ݡ" #: ../utils.c:2000 msgid "Manana support" msgstr "Manana ݡ" #: ../utils.c:2006 msgid "NLS support (foreign languages)" msgstr "NLS ݡȡʳ" #: ../utils.c:2012 msgid "GTK2 support" msgstr "GTK2 ݡ" #. No HOME var #: ../utils.c:2055 msgid "Can't get HOME environment variable\n" msgstr "Ķѿ HOME Ǥޤ\n" #: ../utils.c:2062 #, fuzzy msgid "HOME environment variable is too long to process\n" msgstr "Ķѿ HOME Ĺ᤮ޤ\n" #: ../utils.c:2557 #, fuzzy msgid "Edit Categories..." msgstr "ƥԽ" #: ../utils.c:3223 msgid "PC ID is 0.\n" msgstr "PCID0Ǥ\n" #: ../utils.c:3224 #, fuzzy, c-format msgid "Generated a new PC ID. It is %lu\n" msgstr " %lu Ȥ PC ID ޤ\n" #: ../utils.c:3309 msgid "Invalid UTF-8 encoding in export string\n" msgstr "" #: ../utils.c:3470 #, c-format msgid "Today is %A, %x %X" msgstr " %A, %x %X" #: ../utils.c:3472 #, c-format msgid "Today is %%A, %s %s" msgstr " %%A, %s %s" #: ../utils.c:3701 #, c-format msgid "" "Incorrect header format for CSV import\n" "Check line 1 of file %s\n" "Aborting import\n" msgstr "" #: ../utils.c:3738 #, fuzzy, c-format msgid "Error writing version header to file: %s%s\n" msgstr "PC إåե˽񤭹˥顼 : next_id\n" #: ../utils.c:3743 #, fuzzy, c-format msgid "Error writing next id to file: %s%s" msgstr "next id ե˽񤭹˥顼 : next_id\n" #: ../weekview_gui.c:297 msgid "Weekly View" msgstr "ɽ" #: ../weekview_gui.c:337 msgid "Last week Alt+LeftArrow" msgstr "" #: ../weekview_gui.c:366 msgid "Next week Alt+RightArrow" msgstr "" #: ../Expense/expense.c:97 msgid "Australia" msgstr "ȥꥢɥ" #: ../Expense/expense.c:98 msgid "Austria" msgstr "ȥꥢ" #: ../Expense/expense.c:99 msgid "Belgium" msgstr "٥륮" #: ../Expense/expense.c:100 msgid "Brazil" msgstr "֥饸" #: ../Expense/expense.c:101 msgid "Canada" msgstr "ʥɥ" #: ../Expense/expense.c:102 msgid "Denmark" msgstr "ǥޡ" #: ../Expense/expense.c:103 msgid "EU (Euro)" msgstr "桼" #: ../Expense/expense.c:104 msgid "Finland" msgstr "ե" #: ../Expense/expense.c:105 msgid "France" msgstr "ե" #: ../Expense/expense.c:106 msgid "Germany" msgstr "ɥĥޥ륯" #: ../Expense/expense.c:107 msgid "Hong Kong" msgstr "ɥ" #: ../Expense/expense.c:108 msgid "Iceland" msgstr "" #: ../Expense/expense.c:109 msgid "India" msgstr "ԡ" #: ../Expense/expense.c:110 msgid "Indonesia" msgstr "ԥ" #: ../Expense/expense.c:111 msgid "Ireland" msgstr "" #: ../Expense/expense.c:112 msgid "Italy" msgstr "ꥢ" #: ../Expense/expense.c:113 msgid "Japan" msgstr "ܱ" #: ../Expense/expense.c:114 msgid "Korea" msgstr "" #: ../Expense/expense.c:115 msgid "Luxembourg" msgstr "륯֥륰" #: ../Expense/expense.c:116 msgid "Malaysia" msgstr "󥮥å" #: ../Expense/expense.c:117 msgid "Mexico" msgstr "ᥭ" #: ../Expense/expense.c:118 msgid "Netherlands" msgstr "" #: ../Expense/expense.c:119 msgid "New Zealand" msgstr "˥塼ɥɥ" #: ../Expense/expense.c:120 msgid "Norway" msgstr "Υ륦" #: ../Expense/expense.c:121 msgid "P.R.C." msgstr "̱" #: ../Expense/expense.c:122 msgid "Philippines" msgstr "եԥ󡦥ڥ" #: ../Expense/expense.c:123 msgid "Singapore" msgstr "󥬥ݡݥ뎥ɥ" #: ../Expense/expense.c:124 msgid "Spain" msgstr "ڥ" #: ../Expense/expense.c:125 msgid "Sweden" msgstr "ǥ" #: ../Expense/expense.c:126 msgid "Switzerland" msgstr "ե" #: ../Expense/expense.c:127 msgid "Taiwan" msgstr "˥塼ѥɥ" #: ../Expense/expense.c:128 msgid "Thailand" msgstr "С" #: ../Expense/expense.c:129 msgid "United Kingdom" msgstr "ݥ" #: ../Expense/expense.c:130 msgid "United States" msgstr "ƥɥ" #: ../Expense/expense.c:518 ../Expense/expense.c:529 msgid "Expense" msgstr "ʧĢ" #: ../Expense/expense.c:550 ../Expense/expense.c:1388 msgid "Airfare" msgstr "Ҷ" #: ../Expense/expense.c:552 ../Expense/expense.c:1389 msgid "Breakfast" msgstr "ī" #: ../Expense/expense.c:554 ../Expense/expense.c:1390 msgid "Bus" msgstr "Х" #: ../Expense/expense.c:556 ../Expense/expense.c:1391 msgid "BusinessMeals" msgstr "ӥͥ" #: ../Expense/expense.c:558 ../Expense/expense.c:1392 msgid "CarRental" msgstr "ư֥󥿥" #: ../Expense/expense.c:560 ../Expense/expense.c:1393 msgid "Dinner" msgstr "ͼ" #: ../Expense/expense.c:562 ../Expense/expense.c:1394 msgid "Entertainment" msgstr "󥿡ƥ" #: ../Expense/expense.c:564 ../Expense/expense.c:1395 msgid "Fax" msgstr "եå" #: ../Expense/expense.c:566 ../Expense/expense.c:1396 msgid "Gas" msgstr "" #: ../Expense/expense.c:568 ../Expense/expense.c:1397 msgid "Gifts" msgstr "£ʪ" #: ../Expense/expense.c:570 ../Expense/expense.c:1398 msgid "Hotel" msgstr "ۥƥ" #: ../Expense/expense.c:572 ../Expense/expense.c:1399 msgid "Incidentals" msgstr "" #: ../Expense/expense.c:574 ../Expense/expense.c:1400 msgid "Laundry" msgstr "" #: ../Expense/expense.c:576 ../Expense/expense.c:1401 msgid "Limo" msgstr "ॸ" #: ../Expense/expense.c:578 ../Expense/expense.c:1402 msgid "Lodging" msgstr "ɤ߹" #: ../Expense/expense.c:580 ../Expense/expense.c:1403 msgid "Lunch" msgstr "뿩" #: ../Expense/expense.c:582 ../Expense/expense.c:1404 msgid "Mileage" msgstr "ޥ졼" #: ../Expense/expense.c:586 ../Expense/expense.c:1406 msgid "Parking" msgstr "" #: ../Expense/expense.c:588 ../Expense/expense.c:1407 msgid "Postage" msgstr "͹" #: ../Expense/expense.c:590 ../Expense/expense.c:1408 msgid "Snack" msgstr "ۻ" #: ../Expense/expense.c:592 ../Expense/expense.c:1409 msgid "Subway" msgstr "ϲŴ" #: ../Expense/expense.c:594 ../Expense/expense.c:1410 msgid "Supplies" msgstr "" #: ../Expense/expense.c:596 ../Expense/expense.c:1411 msgid "Taxi" msgstr "" #: ../Expense/expense.c:598 ../Expense/expense.c:1412 msgid "Telephone" msgstr "" #: ../Expense/expense.c:600 ../Expense/expense.c:1413 msgid "Tips" msgstr "å" #: ../Expense/expense.c:602 ../Expense/expense.c:1414 msgid "Tolls" msgstr "̹" #: ../Expense/expense.c:604 ../Expense/expense.c:1415 msgid "Train" msgstr "ż" #: ../Expense/expense.c:1239 msgid "Expense: Unknown expense type\n" msgstr "Expense: ʻٽХפǤ\n" #: ../Expense/expense.c:1245 msgid "Expense: Unknown payment type\n" msgstr "Expense: ʻʧפǤ\n" #: ../Expense/expense.c:1377 msgid "American Express" msgstr "ꥫ󥨥ץ쥹" #: ../Expense/expense.c:1378 msgid "Cash" msgstr "" #: ../Expense/expense.c:1379 msgid "Check" msgstr "ڼ" #: ../Expense/expense.c:1380 msgid "Credit Card" msgstr "쥸åȥ" #: ../Expense/expense.c:1381 msgid "Master Card" msgstr "ޥ" #: ../Expense/expense.c:1382 msgid "Prepaid" msgstr "ץڥɥ" #: ../Expense/expense.c:1383 msgid "VISA" msgstr "VISA" #: ../Expense/expense.c:1619 #, fuzzy msgid "Type" msgstr "ס" #: ../Expense/expense.c:1620 #, fuzzy msgid "Amount" msgstr "ס" #. Category Menu #: ../Expense/expense.c:1704 msgid "Category:" msgstr "ƥꡧ" #. Type Menu #: ../Expense/expense.c:1712 msgid "Type:" msgstr "ס" #. Payment Menu #: ../Expense/expense.c:1720 msgid "Payment:" msgstr "ʧ" #. Currency Menu #: ../Expense/expense.c:1728 msgid "Currency:" msgstr "̲ߡ" #: ../Expense/expense.c:1748 msgid "Month:" msgstr "" #: ../Expense/expense.c:1762 msgid "Day:" msgstr "" #: ../Expense/expense.c:1776 msgid "Year:" msgstr "ǯ" #. Amount Entry #: ../Expense/expense.c:1789 msgid "Amount:" msgstr "ס" #. Vendor Entry #: ../Expense/expense.c:1799 msgid "Vendor:" msgstr "٥" #. City #: ../Expense/expense.c:1809 msgid "City:" msgstr "Իԡ" #. Attendees #: ../Expense/expense.c:1819 msgid "Attendees" msgstr "Լ" #. ------------------------------------------- #: ../Expense/expense.c:2102 #, c-format msgid "" "%s\n" "\n" "Expense plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org" msgstr "" #: ../KeyRing/keyring.c:291 msgid "KeyRing: pack_KeyRing(): buf_size too small\n" msgstr "KeyRing: pack_KeyRing(): buf_size ᤮ޤ\n" #: ../KeyRing/keyring.c:1699 msgid "Incorrect, Reenter KeyRing Password" msgstr "ѥɤ㤤ޤ⤦Ƥ" #: ../KeyRing/keyring.c:1701 msgid "Enter a NEW KeyRing Password" msgstr "KeyRingѥɤ" #: ../KeyRing/keyring.c:1703 msgid "Enter KeyRing Password" msgstr "KeyRingѥ" #: ../KeyRing/keyring.c:1769 #, c-format msgid "KeyRing: file %s not found.\n" msgstr "KeyRing: ե %s դޤ\n" #: ../KeyRing/keyring.c:1770 msgid "KeyRing: Try Syncing.\n" msgstr "KeyRing: Ʊ.\n" #: ../KeyRing/keyring.c:1861 ../KeyRing/keyring.c:1872 msgid "KeyRing" msgstr "KeyRing" #. ------------------------------------------- #: ../KeyRing/keyring.c:1900 #, c-format msgid "" "%s\n" "\n" "KeyRing plugin for J-Pilot was written by\n" "Judd Montgomery (c) 2001.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "KeyRing is a free PalmOS program for storing\n" "passwords and other information in encrypted form\n" "http://gnukeyring.sourceforge.net" msgstr "" #: ../KeyRing/keyring.c:2137 #, c-format msgid "" "Keys exported from %s %s on %s\n" "\n" msgstr "" #: ../KeyRing/keyring.c:2162 #, fuzzy, c-format msgid "Can't export key %d\n" msgstr "Ģ %d 򥨥ݡȤǤޤ\n" #: ../KeyRing/keyring.c:2229 msgid "B-FOLDERS CSV" msgstr "" #. Change Password button #: ../KeyRing/keyring.c:2384 msgid "" "Change\n" "KeyRing\n" "Password" msgstr "" "KeyRing\n" "ѥɤѹ" #. Clist #: ../KeyRing/keyring.c:2497 #, fuzzy msgid "Changed" msgstr "󥻥" #: ../KeyRing/keyring.c:2499 msgid "Account" msgstr "" #. Name entry #: ../KeyRing/keyring.c:2593 msgid "name: " msgstr "̾" #. Account entry #: ../KeyRing/keyring.c:2601 msgid "account: " msgstr "ȡ" #. Password entry #: ../KeyRing/keyring.c:2609 msgid "password: " msgstr "ѥɡ" #. Last Changed entry #: ../KeyRing/keyring.c:2616 msgid "last changed: " msgstr "ǽ: " #. Generate Password button (creates random password) #: ../KeyRing/keyring.c:2626 msgid "Generate Password" msgstr "ѥ" #: ../SyncTime/synctime.c:61 #, fuzzy msgid "SyncTime" msgstr "ĢƱ" #. ------------------------------------------- #: ../SyncTime/synctime.c:72 #, c-format msgid "" "%s\n" "\n" "SyncTime plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "SyncTime WILL NOT work with PalmOS 3.3!" msgstr "" #: ../SyncTime/synctime.c:106 msgid "synctime: Palm OS Version 3.25 and 3.30 do not support SyncTime\n" msgstr "" #: ../SyncTime/synctime.c:107 msgid "synctime: NOT setting the time on the pilot\n" msgstr "" #: ../SyncTime/synctime.c:112 msgid "synctime: Setting the time on the pilot... " msgstr "" #: ../SyncTime/synctime.c:117 #, fuzzy msgid "Done\n" msgstr "λ" #~ msgid " -i makes program iconify itself upon launch.\n" #~ msgstr " -i ưjpilotǾ롣\n" #~ msgid "Your HOME environment variable is too long(>1024)\n" #~ msgstr "Ķѿ HOME Ĺ᤮(>1024)ޤ\n" #~ msgid "W" #~ msgstr "" #~ msgid "M" #~ msgstr "" #~ msgid "This Event has no particular time" #~ msgstr "ʤ" #~ msgid "Start Time" #~ msgstr "ϻ" #~ msgid "End Time" #~ msgstr "λ" #, fuzzy #~ msgid "email command empty\n" #~ msgstr "᡼륳ޥ" #~ msgid "Unable to open %s%s file\n" #~ msgstr "ե %s%s 򳫤ޤ\n" #~ msgid "Unable to open %s.alarms file\n" #~ msgstr "%s Υ顼ե򳫤ޤ\n" #~ msgid "You can't edit category %s.\n" #~ msgstr "ƥ %s ԽϤǤޤ\n" #~ msgid "You can't delete category %s.\n" #~ msgstr "ƥ %s Ǥޤ\n" #~ msgid "category name" #~ msgstr "ƥ̾" #~ msgid "debug" #~ msgstr "ǥХå" #, fuzzy #~ msgid "End Date: Never\n" #~ msgstr "1ν" #, fuzzy #~ msgid "Repeat Days: " #~ msgstr "֤" #~ msgid "Close" #~ msgstr "Ĥ" #~ msgid "none" #~ msgstr "ʤ" #~ msgid "Unknown repeatType found in DatebookDB\n" #~ msgstr "DatebookDB ʷ֤פĤޤ\n" #~ msgid "Dismiss" #~ msgstr "λ" #~ msgid "Done" #~ msgstr "λ" #~ msgid "Add" #~ msgstr "ɲ" #~ msgid "Remove" #~ msgstr "" #, fuzzy #~ msgid "User name" #~ msgstr "桼̾" #~ msgid " -v = version\n" #~ msgstr "-v = С\n" #~ msgid " -h = help\n" #~ msgstr " -h = إ\n" #~ msgid " -d = run in debug mode\n" #~ msgstr " -d = ǥХå⡼ɤǼ¹Ԥ\n" #~ msgid " -P = do not load plugins.\n" #~ msgstr " -P = ץ饰ɤ߹ޤʤ\n" #~ msgid " -b = Do a sync and then a backup, otherwise just do a sync.\n" #~ msgstr " -b = Ʊ˥Хååפ롢ǤʤñƱ롣\n" #~ msgid "Invalid geometry specification: \"%s\"\n" #~ msgstr "̵ /ꤵƤޤ \"%s\"\n" #~ msgid "/Help/PayBack program" #~ msgstr "/إ(_H)/ڥХå ץ" #~ msgid "Font Selection Dialog" #~ msgstr "ե" #~ msgid "Show private records" #~ msgstr "ץ饤١ȥ쥳ɤɽ" #~ msgid "Hide private records" #~ msgstr "ץ饤١ȥ쥳ɤ" # jpilot.c: old version #~ msgid "Mask private records" #~ msgstr "ץ饤١ȥ쥳ɤΥޥ" #~ msgid "Font" #~ msgstr "ե" #~ msgid "Go to the menu \"" #~ msgstr "˥塼 \"" #~ msgid "\" and change the \"" #~ msgstr "\" ˰ư \"" #~ msgid "\"." #~ msgstr "\" ѹƲ." #~ msgid "Couldn't open PC records file\n" #~ msgstr "PCΥ쥳ɥե򳫤ޤ\n" #~ msgid "The first day of the week is " #~ msgstr "λϤޤ " #~ msgid "One record" #~ msgstr "1 쥳" #~ msgid "Finished\n" #~ msgstr "λ\n" #~ msgid "Last Username = [%s]\n" #~ msgstr "ǸΥ桼̾[%s]Ǥ\n" #~ msgid "Last UserID = %d\n" #~ msgstr "ǸΥ桼ID%dǤ.\n" #~ msgid "Username = [%s]\n" #~ msgstr "桼̾[%s]Ǥ\n" #~ msgid "userID = %d\n" #~ msgstr "桼ID%dǤ.\n" #~ msgid "number of records = %d\n" #~ msgstr "쥳ɿ = %d\n" #~ msgid "palm: number of records = %d\n" #~ msgstr "palm: 쥳ɿ = %d\n" #~ msgid "disk: number of records = %d\n" #~ msgstr "disk: 쥳ɿ = %d\n" #, fuzzy #~ msgid "Your HOME environment variable is too long for me\n" #~ msgstr "Ķѿ HOME Ĺ᤮(>1024)ޤ\n" #~ msgid "" #~ "%s doesn't appear to be a directory.\n" #~ "I need it to be.\n" #~ msgstr "" #~ "%s ϥǥ쥯ȥǤ̵褦Ǥ\n" #~ "ϥǥ쥯ȥǤʤФʤޤ\n" #, fuzzy #~ msgid "I can't write files in directory %s\n" #~ msgstr "ǥ쥯ȥ %s Ǥޤ\n" #~ msgid "Expense: Unknown category\n" #~ msgstr "Expense: ʥƥǤ\n" #~ msgid "Field" #~ msgstr "ե" #~ msgid "kana(" #~ msgstr "ɤ(" #~ msgid "Quick View" #~ msgstr "" #~ msgid "Serial Port (/dev/ttyS0, /dev/pilot)" #~ msgstr "ݡ(/dev/ttyS0, /dev/pilot) " #~ msgid "Serial Rate (Does not affect USB)" #~ msgstr "ꥢ³ž®(USBˤ̵ط) " #~ msgid "Sync memo32 (pedit32)" #~ msgstr "Ģ (memo32/pedit32) Ʊ" #~ msgid "AmEx" #~ msgstr "AMEX" #~ msgid "CreditCard" #~ msgstr "쥸å" #~ msgid "MasterCard" #~ msgstr "ޥ" jpilot-1.8.1.2/po/ru.po0000644000175000017500000030275211702307204011514 00000000000000# Russian translation for J-Pilot. # # Alexander Bokovoy , 2001, 2002. # Andrey Brindeew , 2003. # Eugene Morozov , 2004. # Sergey Klimov , 2010. msgid "" msgstr "" "Project-Id-Version: JPilot\n" "Report-Msgid-Bugs-To: jpilot-devel@jpilot.org\n" "POT-Creation-Date: 2012-01-08 13:39+0100\n" "PO-Revision-Date: 2010-04-28 18:14+0300\n" "Last-Translator: Sergey Klimov \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Russian\n" #: ../address.c:276 ../address.c:448 ../alarms.c:332 ../calendar.c:309 #: ../calendar.c:547 ../contact.c:324 ../contact.c:738 ../dat.c:189 #: ../dat.c:655 ../dat.c:859 ../dat.c:993 ../dat.c:1132 ../datebook.c:130 #: ../datebook.c:165 ../datebook.c:172 ../datebook.c:231 ../jpilot.c:1254 #: ../jpilot-merge.c:95 ../libplugin.c:208 ../libplugin.c:455 #: ../libplugin.c:534 ../libplugin.c:563 ../libplugin.c:811 ../memo.c:214 #: ../memo.c:287 ../otherconv.c:280 ../plugins.c:112 ../prefs.c:350 #: ../prefs.c:375 ../prefs.c:906 ../sync.c:2170 ../sync.c:2187 ../sync.c:2296 #: ../sync.c:2310 ../sync.c:2507 ../sync.c:2646 ../todo.c:236 ../todo.c:490 #: ../utils.c:748 #, c-format msgid "Out of memory" msgstr "Нехватка памяти" #: ../address.c:332 ../calendar.c:230 ../contact.c:580 ../datebook.c:494 #: ../memo.c:87 ../todo.c:90 #, fuzzy, c-format msgid "%s:%d Error reading application info %s\n" msgstr "%s:%d Ошибка чтения информации о категории %s\n" #: ../address.c:344 ../address_gui.c:2285 ../address_gui.c:2324 #: ../calendar.c:246 ../contact.c:596 ../datebook.c:514 ../datebook_gui.c:3737 #: ../libplugin.c:405 ../libplugin.c:431 ../memo.c:99 ../memo_gui.c:863 #: ../todo_gui.c:1070 ../Expense/expense.c:1105 #, fuzzy, c-format msgid "Error reading file: %s\n" msgstr "Ошибка чтения %s\n" #: ../address.c:492 ../calendar.c:598 ../calendar.c:607 ../contact.c:780 #: ../libplugin.c:846 ../memo.c:353 ../todo.c:302 ../utils.c:1124 #: ../utils.c:1131 ../utils.c:1138 ../utils.c:1145 ../utils.c:1152 #: ../utils.c:1159 msgid "error" msgstr "ошибка" #: ../address_gui.c:325 ../datebook_gui.c:2844 ../memo_gui.c:176 #: ../todo_gui.c:292 ../KeyRing/keyring.c:834 msgid "" "This record is deleted.\n" "Undelete it or copy it to make changes.\n" msgstr "" #: ../address_gui.c:452 ../address_gui.c:458 ../address_gui.c:469 #: ../address_gui.c:481 ../address_gui.c:493 ../address_gui.c:506 #, c-format msgid "%s%s: %s" msgstr "" #: ../address_gui.c:542 ../category.c:118 ../category.c:176 ../category.c:330 #: ../category.c:336 ../datebook_gui.c:430 ../jpilot-merge.c:88 #: ../jpilot-merge.c:146 ../jpilot-merge.c:151 ../memo_gui.c:280 #: ../sync.c:2129 ../sync.c:2135 ../sync.c:2481 ../sync.c:2842 #: ../todo_gui.c:416 ../utils.c:2674 ../utils.c:2711 ../utils.c:2717 #: ../utils.c:2776 ../utils.c:2782 ../utils.c:2836 ../utils.c:2890 #: ../utils.c:2896 ../utils.c:2954 ../utils.c:2961 #, fuzzy, c-format msgid "Unable to open file: %s\n" msgstr "Не удается открыть %s\n" #: ../address_gui.c:561 #, fuzzy, c-format msgid "Unable to read file: %s\n" msgstr "Не удается открыть %s\n" #: ../address_gui.c:715 msgid "File doesn't appear to be address.dat format\n" msgstr "Файл не в формате address.dat\n" #: ../address_gui.c:725 ../datebook_gui.c:647 ../memo_gui.c:324 #: ../memo_gui.c:417 ../todo_gui.c:542 ../Expense/expense.c:1384 msgid "Unfiled" msgstr "Различное" #: ../address_gui.c:781 ../datebook_gui.c:698 ../memo_gui.c:470 #: ../todo_gui.c:595 msgid "CSV (Comma Separated Values)" msgstr "" #: ../address_gui.c:782 msgid "DAT/ABA (Palm Archive Formats)" msgstr "" #. current category name #. previous category name #. entry text, in Pilot character set #: ../address_gui.c:868 ../category.c:408 ../datebook_gui.c:729 #: ../jpilot.c:234 ../jpilot.c:278 ../jpilot.c:352 ../jpilot.c:396 #: ../jpilot.c:953 ../memo_gui.c:506 ../todo_gui.c:635 ../utils.c:1305 #: ../KeyRing/keyring.c:2090 msgid "OK" msgstr "ОК" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "No" msgstr "Нет" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "Yes" msgstr "Да" #: ../address_gui.c:888 ../datebook_gui.c:753 ../memo_gui.c:520 #: ../todo_gui.c:655 ../KeyRing/keyring.c:2104 #, c-format msgid "%s is a directory" msgstr "%s является директорией" #: ../address_gui.c:890 ../address_gui.c:907 ../datebook_gui.c:755 #: ../datebook_gui.c:772 ../memo_gui.c:522 ../memo_gui.c:539 ../todo_gui.c:657 #: ../todo_gui.c:674 ../KeyRing/keyring.c:2106 ../KeyRing/keyring.c:2123 msgid "Error Opening File" msgstr "Ошибка открытия файла" #: ../address_gui.c:894 ../datebook_gui.c:759 ../memo_gui.c:526 #: ../todo_gui.c:661 ../KeyRing/keyring.c:2110 #, c-format msgid "Do you want to overwrite file %s?" msgstr "Перезаписать файл %s?" #: ../address_gui.c:896 ../datebook_gui.c:761 ../memo_gui.c:528 #: ../todo_gui.c:663 ../KeyRing/keyring.c:2112 msgid "Overwrite File?" msgstr "Перезаписать файл?" #: ../address_gui.c:905 ../datebook_gui.c:770 ../memo_gui.c:537 #: ../todo_gui.c:672 ../KeyRing/keyring.c:2121 #, fuzzy, c-format msgid "Error opening file: %s" msgstr "Ошибка открытия файла" #: ../address_gui.c:922 #, c-format msgid "" "Address exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:925 #, c-format msgid "" "Contact exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:989 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ldif file may not be standards-compliant\n" msgstr "" #: ../address_gui.c:1002 #, c-format msgid "Can't export address %d\n" msgstr "Не могу экспортировать адрес\n" #: ../address_gui.c:1008 ../memo_gui.c:630 ../todo_gui.c:760 #, fuzzy, c-format msgid "Category: %s\n" msgstr "Категория" #: ../address_gui.c:1010 ../memo_gui.c:632 ../todo_gui.c:763 #, fuzzy, c-format msgid "Private: %s\n" msgstr "Личное" #: ../address_gui.c:1018 ../address_gui.c:1032 ../address_gui.c:1036 #: ../address_gui.c:1045 ../address_gui.c:1048 #, c-format msgid "%s: " msgstr "" #: ../address_gui.c:1022 #, c-format msgid "%s\n" msgstr "" #. E-mail should be the Palm dropdown menu item for email #. Set dial/email button text and callback data #: ../address_gui.c:1196 ../address_gui.c:2846 ../address_gui.c:4185 msgid "E-mail" msgstr "E-mail" #: ../address_gui.c:1482 ../datebook_gui.c:1147 ../memo_gui.c:640 #: ../todo_gui.c:844 ../KeyRing/keyring.c:2214 msgid "Unknown export type\n" msgstr "Неизвестный формат экспорта\n" #: ../address_gui.c:1508 ../datebook_gui.c:1226 ../memo_gui.c:469 #: ../memo_gui.c:666 ../todo_gui.c:870 ../KeyRing/keyring.c:2229 msgid "Text" msgstr "" #: ../address_gui.c:1509 ../datebook_gui.c:1227 ../memo_gui.c:667 #: ../todo_gui.c:871 ../KeyRing/keyring.c:2229 msgid "CSV" msgstr "" #: ../address_gui.c:1510 #, fuzzy msgid "vCard" msgstr "Очистить" #: ../address_gui.c:1511 msgid "vCard (Optimized for Gmail/Android Import)" msgstr "" #: ../address_gui.c:1512 msgid "ldif" msgstr "" #. Initialize variable if default case taken #: ../address_gui.c:1777 ../address_gui.c:3902 #, fuzzy msgid "Last Name/Company" msgstr "Имя/Компания" #: ../address_gui.c:1780 ../address_gui.c:3905 #, fuzzy msgid "First Name/Company" msgstr "Имя/Компания" #: ../address_gui.c:1783 ../address_gui.c:3908 #, fuzzy msgid "Company/Last Name" msgstr "Компания/Имя" #: ../address_gui.c:1920 ../datebook_gui.c:2907 ../memo_gui.c:1036 #: ../todo_gui.c:1329 ../KeyRing/keyring.c:1181 msgid "You can't modify a record that is deleted\n" msgstr "Вы не можете редактировать удаленную запись \n" #. Illegal category, Assume that category 0 is Unfiled and valid #: ../address_gui.c:2119 ../address_gui.c:2370 ../address_gui.c:2803 #: ../address_gui.c:2809 ../address_gui.c:3601 ../datebook_gui.c:1994 #: ../datebook_gui.c:3434 ../datebook_gui.c:3783 ../datebook_gui.c:4074 #: ../memo_gui.c:900 ../memo_gui.c:946 ../memo_gui.c:1161 ../memo_gui.c:1548 #: ../todo_gui.c:1106 ../todo_gui.c:1200 ../todo_gui.c:1589 ../todo_gui.c:2141 #: ../Expense/expense.c:689 ../Expense/expense.c:1143 #: ../Expense/expense.c:1227 ../Expense/expense.c:1887 #: ../KeyRing/keyring.c:1070 ../KeyRing/keyring.c:1512 #: ../KeyRing/keyring.c:1574 ../KeyRing/keyring.c:2688 msgid "Category is not legal\n" msgstr "Неверная категория\n" #: ../address_gui.c:2179 ../alarms.c:598 ../dialer.c:164 #, fuzzy, c-format msgid "executing command = [%s]\n" msgstr "Выполнить команду\n" #: ../address_gui.c:2181 #, fuzzy, c-format msgid "Failed to execute [%s]\n" msgstr "Не удалось создать файл %s\n" #: ../address_gui.c:2425 msgid "Birthday" msgstr "День рождения" #: ../address_gui.c:2521 msgid "External program not found, or other error" msgstr "" #: ../address_gui.c:2523 msgid "" "J-Pilot can not find the external program \"convert\"\n" "or an error occurred while executing convert.\n" "You may need to install package ImageMagick" msgstr "" #: ../address_gui.c:2524 #, c-format msgid "Command executed was \"%s\"\n" msgstr "" #: ../address_gui.c:2525 #, c-format msgid "return code was %d\n" msgstr "" #: ../address_gui.c:2603 #, fuzzy msgid "chdir() failed\n" msgstr "Ошибка.\n" #: ../address_gui.c:2606 msgid "Add Photo" msgstr "Добавить фото" #. Category menu #: ../address_gui.c:2828 ../KeyRing/keyring.c:2585 msgid "Category: " msgstr "Категория" #: ../address_gui.c:2848 ../address_gui.c:4186 #, fuzzy msgid "Mail" msgstr "Бразилия" #. Dial Phone Button #: ../address_gui.c:2851 ../address_gui.c:4189 ../dialer.c:307 ../dialer.c:331 msgid "Dial" msgstr "Звонить" #: ../address_gui.c:3041 ../datebook_gui.c:2757 ../memo_gui.c:1228 #: ../todo_gui.c:1697 msgid "Could not get temporary file name\n" msgstr "" #: ../address_gui.c:3049 ../datebook_gui.c:2765 ../memo_gui.c:1236 #: ../todo_gui.c:1705 msgid "Could not open temporary file for external editor\n" msgstr "" #: ../address_gui.c:3089 ../datebook_gui.c:2806 ../memo_gui.c:1277 #: ../todo_gui.c:1746 msgid "Could not open temporary file from external editor\n" msgstr "" #: ../address_gui.c:3261 ../address_gui.c:3292 msgid "-Unnamed-" msgstr "-БезНазвания-" #: ../address_gui.c:3374 ../memo_gui.c:1454 ../todo_gui.c:2019 msgid "0 records" msgstr "0 записей" #: ../address_gui.c:3377 ../datebook_gui.c:2637 ../memo_gui.c:1457 #: ../todo_gui.c:2022 #, c-format msgid "%d of %d records" msgstr "%d записей из %d" #: ../address_gui.c:3772 ../address_gui.c:3780 ../KeyRing/keyring.c:2498 msgid "Name" msgstr "Имя" #: ../address_gui.c:3773 ../address_gui.c:3774 ../address_gui.c:3775 #: ../address_gui.c:3781 msgid "Address" msgstr "Адрес" #: ../address_gui.c:3776 ../address_gui.c:3782 ../Expense/expense.c:584 #: ../Expense/expense.c:1405 msgid "Other" msgstr "Другое" #. Note textbox #: ../address_gui.c:3777 ../address_gui.c:3783 ../todo_gui.c:2484 #: ../Expense/expense.c:1836 ../KeyRing/keyring.c:2632 msgid "Note" msgstr "Заметка" #: ../address_gui.c:3793 msgid "Reverting to Address database\n" msgstr "" #: ../address_gui.c:3914 msgid "Phone" msgstr "Тел." #: ../address_gui.c:3946 #, fuzzy msgid "Quick Find: " msgstr "Быстрый поиск" #. Cancel button #. Add record modification buttons #. Cancel button #: ../address_gui.c:3964 ../category.c:409 ../datebook_gui.c:1782 #: ../datebook_gui.c:5124 ../memo_gui.c:1692 ../todo_gui.c:2345 #: ../utils.c:1346 ../KeyRing/keyring.c:2528 msgid "Cancel" msgstr "Отменить" #: ../address_gui.c:3964 ../datebook_gui.c:5124 ../memo_gui.c:1692 #: ../todo_gui.c:2345 ../KeyRing/keyring.c:2528 #, fuzzy msgid "Cancel the modifications" msgstr "Собрано со следующими опциями:" #. Delete Button #. Delete button #. Delete Button #. Delete button #. Delete, Copy, New, etc. buttons #. Delete button #: ../address_gui.c:3969 ../category.c:409 ../category.c:852 #: ../datebook_gui.c:5129 ../memo_gui.c:1697 ../todo_gui.c:2350 #: ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete" msgstr "Удалить" #: ../address_gui.c:3969 ../datebook_gui.c:5129 ../memo_gui.c:1697 #: ../todo_gui.c:2350 ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 #, fuzzy msgid "Delete the selected record" msgstr "Удалена запись %s" #. Undelete Button #. Undelete button #. Undelete Button #. Undelete button #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 #, fuzzy msgid "Undelete" msgstr "Удалить" #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 #, fuzzy msgid "Undelete the selected record" msgstr "Удалена запись %s" #. Copy button #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy" msgstr "Копировать" #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 #, fuzzy msgid "Copy the selected record" msgstr "Добавить запись" #. New button #. New Record button #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "New Record" msgstr "Новая запись" #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 #, fuzzy msgid "Add a new record" msgstr "Добавить запись" #. "Add Record" button #. Add Record button #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add Record" msgstr "Добавить запись" #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 #, fuzzy msgid "Add the new record" msgstr "Добавить запись" #. "Apply Changes" button #. Apply Changes button #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Apply Changes" msgstr "Применить" #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 #, fuzzy msgid "Commit the modifications" msgstr "Собрано со следующими опциями:" #. Private check box #. Private checkbox #: ../address_gui.c:4033 ../datebook_gui.c:5191 ../datebook_gui.c:5233 #: ../memo_gui.c:1747 ../todo_gui.c:2410 msgid "Private" msgstr "Личное" #: ../address_gui.c:4118 #, fuzzy msgid "Change Photo" msgstr "Отменить" #: ../address_gui.c:4123 #, fuzzy msgid "Remove Photo" msgstr "Удалить" #: ../address_gui.c:4195 #, fuzzy msgid "Show In List" msgstr "" "Показать\n" "списком" #: ../address_gui.c:4296 #, fuzzy msgid "Reminder" msgstr "Напоминание" #: ../address_gui.c:4312 ../datebook_gui.c:238 ../datebook_gui.c:5221 #: ../datebook_gui.c:5378 msgid "Days" msgstr "Дни" #. The Quickview (ALL) page #. All button #: ../address_gui.c:4356 ../datebook_gui.c:1478 ../datebook_gui.c:1782 #: ../utils.c:2528 msgid "All" msgstr "Все" #: ../alarms.c:232 ../datebook_gui.c:236 ../datebook_gui.c:5215 #: ../datebook_gui.c:5372 msgid "Minutes" msgstr "Минуты" #: ../alarms.c:234 ../datebook_gui.c:237 ../datebook_gui.c:5219 #: ../datebook_gui.c:5376 msgid "Hours" msgstr "Часы" #: ../alarms.c:255 msgid "Remind me" msgstr "Напоминание" #: ../alarms.c:425 ../alarms.c:991 ../sync.c:1639 ../sync.c:1645 #: ../utils.c:3717 #, fuzzy, c-format msgid "Unable to open file: %s%s\n" msgstr "Не удается открыть %s\n" #: ../alarms.c:512 msgid "Appointment Reminder" msgstr "Напоминание о встречах" #: ../alarms.c:515 msgid "Past Appointment" msgstr "Прошлые встречи" #: ../alarms.c:518 msgid "Postponed Appointment" msgstr "Пропущенные встречи" #: ../alarms.c:521 ../datebook_gui.c:5025 msgid "Appointment" msgstr "Встреча" #: ../alarms.c:605 msgid "J-Pilot Alarm" msgstr "Оповещения J-Pilot" #: ../category.c:131 ../category.c:188 ../sync.c:2158 ../sync.c:2495 msgid "PC file corrupt?\n" msgstr "Файл на стороне PC поврежден?\n" #: ../category.c:138 ../category.c:148 ../category.c:196 ../category.c:206 #: ../category.c:216 ../sync.c:2280 ../sync.c:2334 ../sync.c:2371 #: ../sync.c:2386 ../sync.c:2410 ../sync.c:2630 ../sync.c:2675 ../sync.c:2712 #: ../sync.c:2725 ../sync.c:2750 msgid "fseek failed - fatal error\n" msgstr "Функция fseek провалилась - фатальная ошибка\n" #: ../category.c:364 ../utils.c:2738 ../utils.c:2812 ../utils.c:2916 #: ../utils.c:2981 #, fuzzy msgid "rename failed" msgstr "Установку %s не удалось завершить" #: ../category.c:409 msgid "Move" msgstr "Переместить" #: ../category.c:438 ../category.c:500 ../category.c:580 ../category.c:769 msgid "Edit Categories" msgstr "Редактирование категорий" #: ../category.c:439 msgid "The maximum number of categories (16) are already used" msgstr "Максимальное число категорий (16) уже использовано" #: ../category.c:442 msgid "Enter New Category" msgstr "Добавление новой категории" #: ../category.c:453 ../category.c:477 #, fuzzy msgid "Edit Categories Error" msgstr "Редактирование категорий" #: ../category.c:454 msgid "You must select a category to rename" msgstr "Перед переименованием категорию нужно выбрать" #: ../category.c:463 msgid "Enter New Category Name" msgstr "Введите название новой категории" #: ../category.c:478 msgid "You must select a category to delete" msgstr "Перед удалением категорию необходимо выбрать" #: ../category.c:496 #, c-format msgid "" "There are %d records in %s.\n" "Do you want to move them to %s, or delete them?" msgstr "" "%d записей в %s.\n" "Переместить их в %s или удалить?" #: ../category.c:556 #, c-format msgid "invalid state file %s line %d\n" msgstr "неправильное состояния файла %s в строке %d\n" #: ../category.c:578 #, c-format msgid "The category %s can't be used more than once" msgstr "Категория %s не может использоваться дважды" #. Category names in host character set #: ../category.c:735 #, fuzzy msgid "Category" msgstr "Категория" #: ../category.c:836 msgid "New" msgstr "Создать" #: ../category.c:843 msgid "Rename" msgstr "Переименовать" #: ../dat.c:456 msgid "unknown type =" msgstr "неизвестный тип =" #: ../dat.c:537 #, c-format msgid "fields per row count != %d, unknown format\n" msgstr "полей в строке != %d, неизвестный формат\n" #: ../dat.c:551 #, c-format msgid "field count != %d, unknown format\n" msgstr "полей != %d, неизвестный формат\n" #: ../dat.c:559 msgid "Unknown format, file has wrong schema\n" msgstr "Неизвестный формат, у файла неверная схема\n" #: ../dat.c:560 msgid "File schema is:" msgstr "Схема файла:" #: ../dat.c:564 #, fuzzy msgid "It should be:" msgstr "Должно быть: " #: ../dat.c:674 ../dat.c:692 ../dat.c:876 ../dat.c:889 ../dat.c:1012 #: ../dat.c:1025 ../dat.c:1149 ../dat.c:1162 #, c-format msgid "%s:%d Record %d, field %d: Invalid type. Expected %d, found %d\n" msgstr "" #: ../dat.c:675 ../dat.c:693 ../dat.c:877 ../dat.c:890 ../dat.c:994 #: ../dat.c:1013 ../dat.c:1026 ../dat.c:1150 ../dat.c:1163 msgid "read of file terminated\n" msgstr "чтение файла прекращено\n" #: ../datebook.c:705 ../datebook_gui.c:3648 #, c-format msgid "Unknown repeatType (%d) found in DatebookDB\n" msgstr "" #: ../datebook_gui.c:241 msgid "Repeat Never" msgstr "Не повторять" #: ../datebook_gui.c:242 msgid "Repeat Daily" msgstr "Ежедневно" #: ../datebook_gui.c:243 msgid "Repeat Weekly" msgstr "Еженедельно" #: ../datebook_gui.c:244 msgid "Repeat MonthlyByDay" msgstr "Ежемесячно по дню" #: ../datebook_gui.c:245 msgid "Repeat MonthlyByDate" msgstr "Ежемесячно по дате" #: ../datebook_gui.c:246 msgid "Repeat YearlyDate" msgstr "Повторять каждую дату" #: ../datebook_gui.c:247 msgid "Repeat YearlyDay" msgstr "Ежегодно" #: ../datebook_gui.c:250 ../datebook_gui.c:257 ../datebook_gui.c:4803 #: ../datebook_gui.c:4810 msgid "Su" msgstr "Вс" #: ../datebook_gui.c:251 ../datebook_gui.c:4804 msgid "Mo" msgstr "Пн" #: ../datebook_gui.c:252 ../datebook_gui.c:4805 msgid "Tu" msgstr "Вт" #: ../datebook_gui.c:253 ../datebook_gui.c:4806 msgid "We" msgstr "Ср" #: ../datebook_gui.c:254 ../datebook_gui.c:4807 msgid "Th" msgstr "Чт" #: ../datebook_gui.c:255 ../datebook_gui.c:4808 msgid "Fr" msgstr "Пт" #: ../datebook_gui.c:256 ../datebook_gui.c:4809 msgid "Sa" msgstr "Сб" #: ../datebook_gui.c:269 #, c-format msgid "" "Start Date: %s\n" "Time: Event" msgstr "" #: ../datebook_gui.c:277 #, c-format msgid "" "Start Date: %s\n" "Time: %s to %s" msgstr "" #: ../datebook_gui.c:287 ../datebook_gui.c:297 msgid "Unknown" msgstr "" #. End Date #: ../datebook_gui.c:300 msgid "End Date: " msgstr "Дата окончания:" #: ../datebook_gui.c:302 msgid "Never" msgstr "" #: ../datebook_gui.c:308 #, c-format msgid "Repeat Frequency: %d\n" msgstr "Частота повторения: %d\n" #: ../datebook_gui.c:316 #, c-format msgid "Monthly Repeat Day %d\n" msgstr "День ежемесечного повторения %d\n" #: ../datebook_gui.c:321 ../datebook_gui.c:5520 msgid "Repeat on Days:" msgstr "Повторяется:" #: ../datebook_gui.c:332 #, fuzzy, c-format msgid "Number of exceptions: %d" msgstr "число записей = %d\n" #: ../datebook_gui.c:338 msgid "" "\n" "more..." msgstr "" #: ../datebook_gui.c:359 ../datebook_gui.c:386 msgid "Description:" msgstr "" #: ../datebook_gui.c:360 ../datebook_gui.c:387 msgid "Note:" msgstr "Заметка:" #: ../datebook_gui.c:362 ../datebook_gui.c:390 msgid "Alarm:" msgstr "Оповещение:" #: ../datebook_gui.c:363 ../datebook_gui.c:391 msgid "Repeat Type:" msgstr "Тип повторения:" #: ../datebook_gui.c:366 ../datebook_gui.c:394 msgid "Start of Week:" msgstr "Начало недели:" #: ../datebook_gui.c:388 ../datebook_gui.c:5343 msgid "Location:" msgstr "" #: ../datebook_gui.c:620 ../datebook_gui.c:2271 #, c-format msgid "Appointment description text > %d, truncating to %d\n" msgstr "Описание события длиннее %d символов, обрезано до %d символов\n" #: ../datebook_gui.c:631 ../datebook_gui.c:1148 ../datebook_gui.c:2331 #: ../datebook_gui.c:2338 msgid "Error" msgstr "Ошибка" #: ../datebook_gui.c:632 msgid "File doesn't appear to be datebook.dat format\n" msgstr "Файл не в формате datebook.dat\n" #: ../datebook_gui.c:699 msgid "DAT/DBA (Palm Archive Formats)" msgstr "" #: ../datebook_gui.c:787 #, c-format msgid "" "Datebook exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:790 #, c-format msgid "" "Calendar exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:817 ../todo_gui.c:701 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ical file may not be standards-compliant\n" msgstr "" #: ../datebook_gui.c:1148 msgid "Unknown export type" msgstr "" #: ../datebook_gui.c:1228 ../todo_gui.c:872 msgid "iCalendar" msgstr "iCalendar" #: ../datebook_gui.c:1240 ../export_gui.c:251 ../jpilot.c:429 msgid "Export" msgstr "Экспортировать" #. Label for instructions #: ../datebook_gui.c:1257 msgid "Export All Datebook Records" msgstr "Экспортировать все записи Datebook" #: ../datebook_gui.c:1276 ../export_gui.c:316 msgid "Save as" msgstr "Сохранить как" #. Browse button #: ../datebook_gui.c:1286 ../export_gui.c:329 msgid "Browse" msgstr "Просмотреть" #: ../datebook_gui.c:1432 msgid "Datebook Categories" msgstr "Категории календаря" #. None button #. Labels for notebook tabs #: ../datebook_gui.c:1484 ../datebook_gui.c:2026 ../datebook_gui.c:5449 msgid "None" msgstr "Нет" #: ../datebook_gui.c:1633 msgid "Begin On Date" msgstr "Начало" #: ../datebook_gui.c:1639 msgid "End On Date" msgstr "Окончание" #: ../datebook_gui.c:1751 ../prefs.c:451 msgid "Sunday" msgstr "Воскресенье" #: ../datebook_gui.c:1752 ../prefs.c:452 msgid "Monday" msgstr "Понедельник" #: ../datebook_gui.c:1753 msgid "Tuesday" msgstr "Вторник" #: ../datebook_gui.c:1754 msgid "Wednesday" msgstr "Среда" #: ../datebook_gui.c:1755 msgid "Thursday" msgstr "Четверг" #: ../datebook_gui.c:1756 msgid "Friday" msgstr "Пятница" #: ../datebook_gui.c:1757 msgid "Saturday" msgstr "Субота" #: ../datebook_gui.c:1760 msgid "4th" msgstr "4-й" #: ../datebook_gui.c:1760 msgid "Last" msgstr "Последний" #: ../datebook_gui.c:1763 #, c-format msgid "" "This appointment can either\n" "repeat on the 4th %s\n" "of the month, or on the last\n" "%s of the month.\n" "Which do you want?" msgstr "" #: ../datebook_gui.c:1770 ../datebook_gui.c:1786 msgid "Question?" msgstr "Вопрос?" #: ../datebook_gui.c:1777 #, fuzzy msgid "" "This is a repeating event.\n" "Do you want to apply these changes to\n" "only the CURRENT event,\n" "just FUTURE events, or\n" "ALL of the occurrences of this event?" msgstr "" "Это повторяющееся событие.\n" "Хотите ли Вы использовать указанные\n" "настройки только для ЭТОЙ даты или\n" "также и для ВСЕХ последующих?" #: ../datebook_gui.c:1782 msgid "Current" msgstr "Текущее" #: ../datebook_gui.c:1782 msgid "Future" msgstr "" #: ../datebook_gui.c:2027 msgid "day" msgstr "день" #: ../datebook_gui.c:2028 msgid "week" msgstr "неделя" #: ../datebook_gui.c:2029 msgid "month" msgstr "месяц" #: ../datebook_gui.c:2030 msgid "year" msgstr "год" #: ../datebook_gui.c:2326 ../datebook_gui.c:2329 #, c-format msgid "You cannot have an appointment that repeats every %d %s(s)\n" msgstr "Невозможно назначить встречи с периодом повторения %d %s\n" #: ../datebook_gui.c:2339 msgid "" "You cannot have a weekly repeating appointment that doesn't repeat on any " "day of the week." msgstr "Невозможно назначить еженедельную встречу без выбора дня недели." #. This is a timeless event #: ../datebook_gui.c:2516 ../datebook_gui.c:5264 msgid "No Time" msgstr "Нет времени" #: ../datebook_gui.c:2788 ../memo_gui.c:1259 ../todo_gui.c:1728 msgid "External editor command too long to execute\n" msgstr "" #: ../datebook_gui.c:2943 msgid "Invalid Appointment" msgstr "Неверная встреча" #: ../datebook_gui.c:2944 msgid "" "The End Date of this appointment\n" "is before the start date." msgstr "" "Дата Окончания этой встречи\n" "предшествует дате начала." #. "No Date" check box #: ../datebook_gui.c:3339 ../datebook_gui.c:5482 ../datebook_gui.c:5513 #: ../datebook_gui.c:5565 ../datebook_gui.c:5613 ../todo_gui.c:142 #: ../todo_gui.c:2454 msgid "No Date" msgstr "Нет даты" #: ../datebook_gui.c:3494 #, c-format msgid "Error in DateBookDB or Calendar advanceUnits = %d\n" msgstr "" #: ../datebook_gui.c:3681 #, c-format msgid "%%a., %s" msgstr "" #: ../datebook_gui.c:3686 msgid " (TODAY)" msgstr "(СЕГОДНЯ)" #. Weekview button #: ../datebook_gui.c:4934 ../datebook_gui.c:5451 msgid "Week" msgstr "Неделя" #: ../datebook_gui.c:4943 #, fuzzy msgid "View appointments by week Ctrl+W" msgstr "Просмотреть события, запланированные на эту неделю" #. Monthview button #: ../datebook_gui.c:4946 ../datebook_gui.c:5452 msgid "Month" msgstr "Месяц" #: ../datebook_gui.c:4955 #, fuzzy msgid "View appointments by month Ctrl+M" msgstr "Просмотреть события, запланированные на этот месяц" # Make Category button #. Make Category button #: ../datebook_gui.c:4960 msgid "Cats" msgstr "Категории" #: ../datebook_gui.c:5024 msgid "Time" msgstr "Время" #. "Show ToDos" button #: ../datebook_gui.c:5067 msgid "Show ToDos" msgstr "Показать задачи" #: ../datebook_gui.c:5081 ../todo_gui.c:2285 msgid "Task" msgstr "Задача" #: ../datebook_gui.c:5082 ../todo_gui.c:2286 msgid "Due" msgstr "Цель" #: ../datebook_gui.c:5201 ../datebook_gui.c:5358 msgid "Alarm" msgstr "Будильник" #. Date Spinners #: ../datebook_gui.c:5241 ../Expense/expense.c:1736 msgid "Date:" msgstr "Дата:" #. Start date and time #: ../datebook_gui.c:5283 msgid "Start" msgstr "Начинается:" #. End date and time #: ../datebook_gui.c:5300 msgid "End" msgstr "Заканчивается:" #: ../datebook_gui.c:5433 msgid "DateBk Tags" msgstr "Тэги DateBk" #: ../datebook_gui.c:5450 msgid "Day" msgstr "День" #: ../datebook_gui.c:5453 msgid "Year" msgstr "Год" #. "No Repeat" page for notebook #: ../datebook_gui.c:5456 msgid "This event will not repeat" msgstr "Это событие не повторится" #: ../datebook_gui.c:5465 ../datebook_gui.c:5498 ../datebook_gui.c:5550 #: ../datebook_gui.c:5596 msgid "Frequency is Every" msgstr "Частота повторения:" #: ../datebook_gui.c:5471 msgid "Day(s)" msgstr "день (дней)" #: ../datebook_gui.c:5474 ../datebook_gui.c:5507 ../datebook_gui.c:5559 #: ../datebook_gui.c:5605 msgid "End on" msgstr "Заканчивается:" #: ../datebook_gui.c:5504 msgid "Week(s)" msgstr "неделя (недель)" #: ../datebook_gui.c:5556 msgid "Month(s)" msgstr "месяц(ы)" #: ../datebook_gui.c:5573 msgid "Repeat by:" msgstr "Повторяется:" #: ../datebook_gui.c:5577 msgid "Day of week" msgstr "День недели" #: ../datebook_gui.c:5586 ../Expense/expense.c:1618 msgid "Date" msgstr "Дата" #: ../datebook_gui.c:5602 msgid "Year(s)" msgstr "год(ы)" #: ../dialer.c:195 msgid "Phone Dialer" msgstr "Номеронабиратель" #: ../dialer.c:230 msgid "Prefix 1" msgstr "Префикс 1" #: ../dialer.c:252 msgid "Prefix 2" msgstr "Префикс 2" #: ../dialer.c:274 msgid "Prefix 3" msgstr "Префикс 3" #: ../dialer.c:289 msgid "Phone number:" msgstr "Номер телефона:" #: ../dialer.c:319 msgid "Extension" msgstr "Расширение" #: ../dialer.c:341 msgid "Dial Command" msgstr "Команда дозвона" #: ../export_gui.c:121 msgid "File Browser" msgstr "Просмотр файлов" #. Label for instructions #: ../export_gui.c:273 msgid "Select records to be exported" msgstr "Выберите заметки для экспорта" #: ../export_gui.c:275 msgid "Use Ctrl and Shift Keys" msgstr "Используйте клавиши Ctrl и Shift" #. Import button #: ../import_gui.c:300 ../import_gui.c:369 ../import_gui.c:426 #: ../import_gui.c:471 ../jpilot.c:385 msgid "Import" msgstr "Импортировать" #: ../import_gui.c:317 #, c-format msgid "Record was marked as private" msgstr "Запись была помечена как личная" #: ../import_gui.c:319 #, c-format msgid "Record was not marked as private" msgstr "Запись не была помечена как личная" #: ../import_gui.c:328 #, c-format msgid "Category before import was: [%s]" msgstr "" #: ../import_gui.c:336 #, c-format msgid "Record will be put in category [%s]" msgstr "Запись будет помещена в категорию [%s]" #. Import All button #: ../import_gui.c:376 msgid "Import All" msgstr "Импортировать все" #. Skip button #: ../import_gui.c:383 msgid "Skip" msgstr "Пропустить" #: ../import_gui.c:457 ../install_gui.c:429 msgid "To change to a hidden directory type it below and hit TAB" msgstr "Для перехода в скрытую директорию, наберите ее имя ниже и нажмите TAB" #: ../import_gui.c:484 msgid "Import File Type" msgstr "Тип импортируемого файла" #: ../install_gui.c:366 #, fuzzy msgid "Files to install" msgstr "Файлы для установки" #: ../install_gui.c:374 msgid "Install" msgstr "Установить" #: ../install_user.c:118 ../install_user.c:220 msgid "Install User" msgstr "Установить ID пользователя" #: ../install_user.c:139 msgid "" "A PalmOS(c) device needs a user name and a user ID in order to sync properly." msgstr "" #: ../install_user.c:146 msgid "" "If you want to sync more than 1 PalmOS(c) device each one should have a " "different ID and preferably a different user name." msgstr "" #. Instruction label #: ../install_user.c:168 msgid "Most people choose their name or nickname for the user name." msgstr "" "Большинство людей выбирают имя или ник, но мы советуем поставить вам " "'kracked dude', чтобы проще было ломать программы" #: ../install_user.c:176 ../restore_gui.c:278 msgid "User Name" msgstr "Имя пользователя" #: ../install_user.c:186 msgid "The ID should be a random number." msgstr "ID должен быть случайным числом." #: ../install_user.c:194 ../restore_gui.c:297 msgid "User ID" msgstr "ID пользователя" #: ../jpilot.c:319 msgid "Print" msgstr "Печать" #: ../jpilot.c:320 msgid "There is no print support for this conduit." msgstr "Этот кондуит не поддерживает печать." #: ../jpilot.c:386 msgid "There is no import support for this conduit." msgstr "Этот кондуит не поддерживает импорт." #: ../jpilot.c:430 msgid "There is no export support for this conduit." msgstr "Этот кондуит не поддерживает экспорт." #: ../jpilot.c:659 #, fuzzy msgid " Cancelling HotSync\n" msgstr "Отменить синхронизацию" #. ------------------------------------------- #: ../jpilot.c:675 msgid "" "This handheld does not have the same user name or user ID\n" "as the one that was synced the last time.\n" "Syncing could have unwanted effects including data loss.\n" "\n" "Read the user manual if you are uncertain." msgstr "" #. ------------------------------------------- #: ../jpilot.c:682 msgid "" "This handheld has a NULL user ID.\n" "Every handheld must have a unique user ID in order to sync properly.\n" "If the handheld has been hard reset, \n" " use restore from the menu to restore it.\n" "Otherwise, to add a new user name and ID\n" " use install-user from the menu.\n" "\n" "Read the user manual if you are uncertain." msgstr "" #: ../jpilot.c:690 msgid "Cancel Sync" msgstr "Отменить синхронизацию" #: ../jpilot.c:690 msgid "Sync Anyway" msgstr "Синхронизировать в любом случае" #: ../jpilot.c:699 ../jpilot.c:703 msgid "Sync Problem" msgstr "Проблема синхронизации" #: ../jpilot.c:932 ../jpilot.c:1785 msgid " User: " msgstr "ID пользователя:" #: ../jpilot.c:944 msgid "Unknown command from sync process\n" msgstr "" #: ../jpilot.c:963 ../Expense/expense.c:529 ../KeyRing/keyring.c:1872 #: ../SyncTime/synctime.c:61 #, c-format msgid "About %s" msgstr "О %s" #: ../jpilot.c:1105 msgid "/_File" msgstr "/_Файл" #: ../jpilot.c:1106 msgid "/File/tear" msgstr "/Файл/tear" #: ../jpilot.c:1107 msgid "/File/_Find" msgstr "/Файл/_Поиск" #: ../jpilot.c:1108 ../jpilot.c:1114 ../jpilot.c:1117 msgid "/File/sep1" msgstr "/Файл/sep1" #: ../jpilot.c:1109 msgid "/File/_Install" msgstr "/Файл/Установить" #: ../jpilot.c:1110 msgid "/File/Import" msgstr "/Файл/Импорт" #: ../jpilot.c:1111 msgid "/File/Export" msgstr "/Файл/Экспорт" #: ../jpilot.c:1112 ../jpilot.c:2190 msgid "/File/Preferences" msgstr "/Файл/Настройки" #: ../jpilot.c:1113 msgid "/File/_Print" msgstr "/Файл/Печать" #: ../jpilot.c:1115 msgid "/File/Install User" msgstr "/Файл/Установить HotSync ID" #: ../jpilot.c:1116 msgid "/File/Restore Handheld" msgstr "/Файл/Восстановить Palm" #: ../jpilot.c:1118 msgid "/File/_Quit" msgstr "/Файл/Выход" #: ../jpilot.c:1119 msgid "/_View" msgstr "/Просмотр" #: ../jpilot.c:1120 ../jpilot.c:1121 ../jpilot.c:1122 ../jpilot.c:1368 msgid "/View/Hide Private Records" msgstr "/Просмотр/Спрятать личные записи" #: ../jpilot.c:1121 ../jpilot.c:1371 msgid "/View/Show Private Records" msgstr "/Просмотр/Показать личные записи" #: ../jpilot.c:1122 ../jpilot.c:1374 msgid "/View/Mask Private Records" msgstr "/Просмотр/Замаскировать личные записи" #: ../jpilot.c:1123 msgid "/View/sep1" msgstr "/Просмотр/sep1" #: ../jpilot.c:1124 msgid "/View/Datebook" msgstr "/Просмотр/Календарь" #: ../jpilot.c:1125 msgid "/View/Addresses" msgstr "/Просмотр/Адреса" #: ../jpilot.c:1126 msgid "/View/Todos" msgstr "/Просмотр/Задачи" #: ../jpilot.c:1127 msgid "/View/Memos" msgstr "/Просмотр/Заметки" #: ../jpilot.c:1128 ../jpilot.c:1259 msgid "/_Plugins" msgstr "/_Дополнения" #: ../jpilot.c:1130 msgid "/_Web" msgstr "/_Сеть" #. web #: ../jpilot.c:1131 msgid "/Web/Netscape" msgstr "/Сеть/Netscape" #: ../jpilot.c:1135 msgid "/Web/Mozilla" msgstr "/Сеть/Mozilla" #: ../jpilot.c:1140 msgid "/Web/Galeon" msgstr "/Сеть/Galeon" #: ../jpilot.c:1145 msgid "/Web/Opera" msgstr "/Сеть/Opera" #: ../jpilot.c:1149 msgid "/Web/GnomeUrl" msgstr "/Сеть/GnomeUrl" #: ../jpilot.c:1151 msgid "/Web/Lynx" msgstr "/Сеть/Lynx" #: ../jpilot.c:1153 msgid "/Web/Links" msgstr "Сеть/Links" #: ../jpilot.c:1155 msgid "/Web/W3M" msgstr "/Сеть/W3M" #: ../jpilot.c:1157 msgid "/Web/Konqueror" msgstr "/Сеть/Konqueror" #: ../jpilot.c:1160 msgid "/_Help" msgstr "/Справка" #: ../jpilot.c:1161 msgid "/Help/About J-Pilot" msgstr "/Справка/J-Pilot" #: ../jpilot.c:1227 #, c-format msgid "/_Plugins/%s" msgstr "/_Дополнения/%s" #: ../jpilot.c:1237 #, c-format msgid "/_Help/%s" msgstr "/Справка/%s" #: ../jpilot.c:1591 msgid "calendar:week_start:0" msgstr "" #: ../jpilot.c:1634 ../jpilot-sync.c:171 msgid "Not loading plugins.\n" msgstr "" #: ../jpilot.c:1638 msgid "Ignoring all alarms.\n" msgstr "" #: ../jpilot.c:1642 msgid "Ignoring past alarms.\n" msgstr "" #: ../jpilot.c:1730 ../jpilot.c:1738 #, fuzzy msgid "Unable to open pipe\n" msgstr "Не удается открыть %s\n" #: ../jpilot.c:1947 #, fuzzy msgid "Show private records Ctrl+Z" msgstr "Показать личные записи" #: ../jpilot.c:1952 #, fuzzy msgid "Hide private records Ctrl+Z" msgstr "Спрятать-показать личные записи" #: ../jpilot.c:1957 #, fuzzy msgid "Mask private records Ctrl+Z" msgstr "Скрыть личные записи" #: ../jpilot.c:1969 #, fuzzy msgid "Sync your palm to the desktop Ctrl+Y" msgstr "Синхронизировать Palm с десктоп" #: ../jpilot.c:1981 #, fuzzy msgid "Stop Sync process" msgstr "Синхронизировать адресную книгу" #: ../jpilot.c:1993 msgid "" "Sync your palm to the desktop\n" "and then do a backup" msgstr "" "Синхронизировать вначале Palm и десктоп,\n" "а затем выполнить архивирование" #: ../jpilot.c:2141 msgid "Datebook/Go to Today" msgstr "Календарь/Сегодня" #: ../jpilot.c:2142 msgid "Address Book" msgstr "Адресная книга" #: ../jpilot.c:2143 msgid "ToDo List" msgstr "Список задач" #: ../jpilot.c:2144 msgid "Memo Pad" msgstr "Заметки" #: ../jpilot.c:2172 msgid "Do it now" msgstr "" #: ../jpilot.c:2172 #, fuzzy msgid "Remind me later" msgstr "Напоминание" #: ../jpilot.c:2172 msgid "Don't tell me again!" msgstr "" #: ../jpilot.c:2185 #, c-format msgid "" "J-Pilot uses the GTK2 graphical toolkit. This version of the toolkit uses " "UTF-8 to encode characters.\n" "You should select a UTF-8 charset so that you can see non-ASCII characters " "(accents for example).\n" "\n" "Go to the menu \"%s\" and change the \"%s\"." msgstr "" #. Character Set #: ../jpilot.c:2190 ../prefs_gui.c:511 #, fuzzy msgid "Character Set" msgstr "Кодировка " #: ../jpilot.c:2192 msgid "Select a UTF-8 encoding" msgstr "" #: ../jpilot-dump.c:94 #, c-format msgid " +D +A +T +M format like date +format.\n" msgstr "" #: ../jpilot-dump.c:95 #, c-format msgid " -v display version and exit\n" msgstr "" #: ../jpilot-dump.c:96 ../jpilot-sync.c:68 ../utils.c:1874 #, c-format msgid " -h display help text\n" msgstr "" #: ../jpilot-dump.c:97 #, c-format msgid " -f display help for format codes\n" msgstr "" #: ../jpilot-dump.c:98 #, fuzzy, c-format msgid " -D dump DateBook\n" msgstr "Адресная книга" #: ../jpilot-dump.c:99 #, fuzzy, c-format msgid " -i dump DateBook in iCalendar format\n" msgstr "Адресная книга" #: ../jpilot-dump.c:100 #, fuzzy, c-format msgid " -N dump appts for today in DateBook\n" msgstr "Адресная книга" #: ../jpilot-dump.c:101 #, c-format msgid " -NYYYY/MM/DD dump appts on YYYY/MM/DD in DateBook\n" msgstr "" #: ../jpilot-dump.c:102 #, fuzzy, c-format msgid " -A dump Address book\n" msgstr "Адресная книга" #: ../jpilot-dump.c:103 #, c-format msgid " -T dump ToDo list as CSV\n" msgstr "" #: ../jpilot-dump.c:104 #, fuzzy, c-format msgid " -M dump Memos\n" msgstr "Адресная книга" #: ../jpilot-dump.c:165 #, c-format msgid "" "Warning: Host character encoding is not UTF-8 based.\n" "Exported ical file may not be standards-compliant\n" msgstr "" #: ../jpilot-merge.c:163 ../jpilot-merge.c:169 #, fuzzy, c-format msgid "%s: Unable to open file:%s\n" msgstr "Не удается открыть %s\n" #: ../jpilot-merge.c:271 #, c-format msgid "Records read from pdb = %d\n" msgstr "" #: ../jpilot-merge.c:272 #, c-format msgid "Records added = %d\n" msgstr "" #: ../jpilot-merge.c:273 #, c-format msgid "Records deleted = %d\n" msgstr "" #: ../jpilot-merge.c:274 #, c-format msgid "Records modified = %d\n" msgstr "" #: ../jpilot-merge.c:275 #, c-format msgid "Records written = %d\n" msgstr "" #: ../jpilot-merge.c:293 #, c-format msgid "Usage: %s {input pdb file} {input pc3 file} {output pdb file}\n" msgstr "" #: ../jpilot-merge.c:294 #, c-format msgid " This program will merge an unsynced records file (pc3)\n" msgstr "" #: ../jpilot-merge.c:295 #, c-format msgid "" " into the corresponding palm database (pdb) file.\n" "\n" msgstr "" #: ../jpilot-merge.c:296 #, c-format msgid " WARNING: Only run this utility if you understand the consequences!\n" msgstr "" #: ../jpilot-merge.c:297 #, c-format msgid " The merge will leave your databases in an unsync-able state.\n" msgstr "" #: ../jpilot-merge.c:298 #, c-format msgid "" " It is intended for cases where J-pilot is being used as a standalone PIM\n" msgstr "" #: ../jpilot-merge.c:299 #, c-format msgid " and where no syncing occurs to physical hardware.\n" msgstr "" #: ../jpilot-merge.c:300 #, c-format msgid " WARNING: Make a backup copy of your databases before proceeding.\n" msgstr "" #: ../jpilot-merge.c:301 #, c-format msgid "" " It is quite simple to destroy your databases by accidentally merging\n" msgstr "" #: ../jpilot-merge.c:302 #, c-format msgid " address records into datebook databases, etc.\n" msgstr "" #: ../jpilot-sync.c:66 #, c-format msgid "" " J-Pilot preferences are read to get sync info such as port, rate, number of " "backups, etc.\n" msgstr "" #: ../jpilot-sync.c:67 ../utils.c:1873 #, c-format msgid " -v display version and compile options\n" msgstr "" #: ../jpilot-sync.c:69 ../utils.c:1875 #, c-format msgid " -d display debug info to stdout\n" msgstr "" #: ../jpilot-sync.c:70 #, c-format msgid " -P skip loading plugins\n" msgstr "" #: ../jpilot-sync.c:71 #, fuzzy, c-format msgid " -b sync, and then do a backup\n" msgstr "" "Синхронизировать вначале Palm и десктоп,\n" "а затем выполнить архивирование" #: ../jpilot-sync.c:72 #, c-format msgid " -l loop, otherwise sync once and exit\n" msgstr "" #: ../jpilot-sync.c:73 #, c-format msgid " -p {port} use this port to sync on instead of default\n" msgstr "" #: ../jpilot-sync.c:221 #, fuzzy, c-format msgid "Error: connecting to port %s\n" msgstr "Ошибка открытия файла" #: ../jpilot-sync.c:225 #, c-format msgid "Error: pi_listen\n" msgstr "" #: ../jpilot-sync.c:229 #, fuzzy, c-format msgid "Error: opening conduit to handheld\n" msgstr "Ошибка открытия файла" #: ../jpilot-sync.c:233 #, c-format msgid "Error: pi_accept\n" msgstr "" #: ../jpilot-sync.c:237 ../jpilot-sync.c:265 #, fuzzy, c-format msgid "Error: " msgstr "Ошибка" #: ../jpilot-sync.c:238 #, c-format msgid "This handheld does not have the same user name.\n" msgstr "" #: ../jpilot-sync.c:239 ../jpilot-sync.c:253 #, c-format msgid "as the one that was synced the last time.\n" msgstr "" #: ../jpilot-sync.c:241 #, c-format msgid "" "Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:243 ../jpilot-sync.c:256 #, c-format msgid " COPILOT_HOME" msgstr "" #: ../jpilot-sync.c:245 ../jpilot-sync.c:258 #, c-format msgid " JPILOT_HOME" msgstr "" #: ../jpilot-sync.c:247 ../jpilot-sync.c:260 #, c-format msgid " environment variable can be used to sync different handhelds,\n" msgstr "" #: ../jpilot-sync.c:248 ../jpilot-sync.c:261 #, c-format msgid " to different directories for the same UNIX user name.\n" msgstr "" #: ../jpilot-sync.c:252 #, c-format msgid "This handheld does not have the same user ID.\n" msgstr "" #: ../jpilot-sync.c:254 #, c-format msgid "" " Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:266 #, c-format msgid "This handheld has a NULL user ID.\n" msgstr "" #: ../jpilot-sync.c:267 #, c-format msgid "Every handheld must have a unique user ID in order to sync properly.\n" msgstr "" #: ../jpilot-sync.c:268 #, c-format msgid "If the handheld has been hard reset, \n" msgstr "" #: ../jpilot-sync.c:269 #, c-format msgid " use restore from within " msgstr "" #: ../jpilot-sync.c:270 #, c-format msgid "Otherwise, to add a new user name and ID\n" msgstr "" #: ../jpilot-sync.c:271 #, c-format msgid " use \"install-user %s name numeric_id\"\n" msgstr "" #: ../jpilot-sync.c:275 #, c-format msgid "Error: sync returned error %d\n" msgstr "" #: ../libplugin.c:64 ../utils.c:1054 msgid "" "This record is already deleted.\n" "It is scheduled to be deleted from the Palm on the next sync.\n" msgstr "" #: ../libplugin.c:73 ../libplugin.c:110 ../utils.c:1064 ../utils.c:1106 #, fuzzy msgid "Unable to open PC records file\n" msgstr "Не удается открыть %s\n" #: ../libplugin.c:79 ../utils.c:1071 #, fuzzy msgid "Couldn't find record to delete\n" msgstr "Невозможно добавить категорию %s удалённо.\n" #: ../libplugin.c:97 ../utils.c:1091 #, c-format msgid "Unknown header version %d\n" msgstr "" #: ../libplugin.c:182 #, fuzzy, c-format msgid "%s:%d Error opening file: %s\n" msgstr "%s:%d Ошибка чтения %s\n" #: ../libplugin.c:188 ../libplugin.c:217 ../sync.c:1721 ../todo.c:102 #, fuzzy, c-format msgid "%s:%d Error reading file: %s\n" msgstr "%s:%d Ошибка чтения %s\n" #: ../libplugin.c:340 ../libplugin.c:398 ../utils.c:2119 ../utils.c:2132 #, fuzzy, c-format msgid "Error opening file: %s\n" msgstr "Ошибка открытия файла" #: ../libplugin.c:526 #, fuzzy, c-format msgid "Error reading %s 5\n" msgstr "Ошибка чтения %s\n" #: ../libplugin.c:801 #, fuzzy msgid "Error reading PC file 1\n" msgstr "Ошибка чтения %s\n" #: ../libplugin.c:817 #, fuzzy msgid "Error reading PC file 2\n" msgstr "Ошибка чтения %s\n" #: ../libplugin.c:923 #, c-format msgid "Unknown PC header version = %d\n" msgstr "" #: ../log.c:101 #, fuzzy, c-format msgid "Unable to open log file, giving up.\n" msgstr "Невозможно открыть файл протокола.\n" #: ../log.c:111 #, fuzzy, c-format msgid "Unable to open log file\n" msgstr "Не удается открыть %s\n" #: ../memo_gui.c:302 msgid "Memo text > 65535, truncating\n" msgstr "" #: ../memo_gui.c:330 #, c-format msgid "Imported Memo %s\n" msgstr "" #: ../memo_gui.c:400 msgid "File doesn't appear to be memopad.dat format\n" msgstr "Файл не в формате memopad.dat\n" #: ../memo_gui.c:471 msgid "DAT/MPA (Palm Archive Formats)" msgstr "" #: ../memo_gui.c:554 #, c-format msgid "" "Memo exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:557 #, c-format msgid "" "Memos exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:584 #, c-format msgid "Can't export memo %d\n" msgstr "" #: ../memo_gui.c:628 #, fuzzy, c-format msgid "Memo: %ld\n" msgstr "Заметки" #: ../memo_gui.c:634 #, c-format msgid "----- Start of Memo -----\n" msgstr "" #: ../memo_gui.c:636 #, c-format msgid "" "\n" "----- End of Memo -----\n" "\n" msgstr "" #: ../memo_gui.c:668 msgid "B-Folders CSV" msgstr "" #: ../monthview_gui.c:438 msgid "Monthly View" msgstr "Весь месяц" #: ../monthview_gui.c:480 msgid "Last month Alt+LeftArrow" msgstr "" #: ../monthview_gui.c:508 msgid "Next month Alt+RightArrow" msgstr "" #: ../otherconv.c:76 #, c-format msgid "%s: error exit from g_iconv_close(%s)\n" msgstr "" #: ../otherconv.c:201 #, c-format msgid "%s:%s g_convert_with_iconv error: %s, buff: %s\n" msgstr "" #: ../otherconv.c:203 msgid "last char truncated" msgstr "" #: ../otherconv.c:280 #, c-format msgid "UTF_to_other: %s\n" msgstr "" #: ../otherconv.c:294 #, c-format msgid "iconv: unconvertible sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:298 #, c-format msgid "iconv: incomplete UTF-8 sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:301 #, c-format msgid "iconv: buffer filled. stopped at place %d in '%s'\n" msgstr "" #: ../otherconv.c:304 #, c-format msgid "iconv: unexpected error at place %d in '%s'\n" msgstr "" #: ../password.c:283 msgid "Palm Password" msgstr "Пароль Palm" #: ../password.c:308 msgid "Incorrect, Reenter PalmOS Password" msgstr "Неверно, введите пароль PalmOS" #: ../password.c:310 msgid "Enter PalmOS Password" msgstr "Введите пароль PalmOS" #: ../pidfile.c:67 #, fuzzy msgid "removing stale pidfile\n" msgstr "_to_install файл\n" #: ../pidfile.c:91 #, fuzzy, c-format msgid "create pidfile failed: %s\n" msgstr "Ошибка чтения %s\n" #: ../pidfile.c:92 msgid "Warning: hotplug syncing disabled.\n" msgstr "" #: ../plugins.c:90 ../plugins.c:203 ../restore_gui.c:133 msgid "infinite loop" msgstr "" #: ../plugins.c:216 #, c-format msgid "While reading %s%s line 1:[%s]\n" msgstr "" #: ../plugins.c:217 msgid "Wrong Version\n" msgstr "" #: ../plugins.c:218 msgid "Check preferences->conduits\n" msgstr "" #: ../plugins.c:274 #, c-format msgid "" "Open failed on plugin [%s]\n" " error [%s]\n" msgstr "" #: ../plugins.c:291 ../plugins.c:316 #, c-format msgid " plugin is invalid: [%s]\n" msgstr "" #: ../plugins.c:299 #, fuzzy, c-format msgid "Plugin:[%s]\n" msgstr "/_Дополнения/%s" #: ../plugins.c:300 #, c-format msgid "This plugin is version (%d.%d).\n" msgstr "" #: ../plugins.c:302 msgid "It is too old to work with this version of J-Pilot.\n" msgstr "" #: ../prefs.c:420 msgid "%B %d, %Y" msgstr "" #: ../prefs.c:421 msgid "%d %B %Y" msgstr "" #: ../prefs.c:422 msgid "%d. %B %Y" msgstr "" #: ../prefs.c:423 msgid "%d %B, %Y" msgstr "" #: ../prefs.c:424 msgid "%Y. %B. %d" msgstr "" #: ../prefs.c:425 msgid "%Y %B %d" msgstr "" #: ../prefs_gui.c:454 msgid "Preferences" msgstr "Предпочтения" #: ../prefs_gui.c:485 msgid "Locale" msgstr "Локализация" #: ../prefs_gui.c:487 msgid "Settings" msgstr "Установки" #: ../prefs_gui.c:489 #, fuzzy msgid "Datebook" msgstr "календарь" #: ../prefs_gui.c:493 msgid "ToDo" msgstr "Список задач" #: ../prefs_gui.c:495 #, fuzzy msgid "Memo" msgstr "заметки" #: ../prefs_gui.c:497 msgid "Alarms" msgstr "Будильники" #: ../prefs_gui.c:499 msgid "Conduits" msgstr "Кондуиты" #. Shortdate #: ../prefs_gui.c:524 #, fuzzy msgid "Short date format" msgstr "Краткий формат даты " #. Longdate #: ../prefs_gui.c:537 #, fuzzy msgid "Long date format" msgstr "Полный формат даты " #. Time #: ../prefs_gui.c:550 #, fuzzy msgid "Time format" msgstr "Формат времени " #. GTK colors file #: ../prefs_gui.c:570 #, fuzzy msgid "GTK color theme file" msgstr "Файл цветовых настроек GTK+ " #. Port #: ../prefs_gui.c:583 #, fuzzy msgid "Sync Port" msgstr "Проблема синхронизации" #. Serial Rate #: ../prefs_gui.c:607 #, fuzzy msgid "Serial Rate" msgstr "Скорость порта " #. Number of backups #: ../prefs_gui.c:627 msgid "Number of backups to be archived" msgstr "Количество архивных копий" #. Show deleted files check box #: ../prefs_gui.c:645 msgid "Show deleted records (default NO)" msgstr "Показывать удаленные записи (по умолчанию -- НЕТ)" #. Show modified files check box #: ../prefs_gui.c:649 msgid "Show modified deleted records (default NO)" msgstr "Показывать модифицированные удаленные записи (по умолчанию -- НЕТ)" #: ../prefs_gui.c:654 msgid "Ask confirmation for file installation (J-Pilot -> PDA) (default YES)" msgstr "" #. Show tooltips check box #: ../prefs_gui.c:658 msgid "Show popup tooltips (default YES) (requires restart)" msgstr "" #: ../prefs_gui.c:668 msgid "Use Datebook database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:671 msgid "Use Calendar database (Palm OS > 5.2)" msgstr "" #. Show highlight days check box #: ../prefs_gui.c:697 msgid "Highlight calendar days with appointments" msgstr "Подсвечивать дни со встречами в календаре" #. Highlight today on month and week view #: ../prefs_gui.c:702 msgid "Annotate today in day, week, and month views" msgstr "" #. Show number of years on anniversaries in month and week view #: ../prefs_gui.c:706 msgid "Append years on anniversaries in day, week, and month views" msgstr "" #. Show use DateBk check box #: ../prefs_gui.c:712 msgid "Use DateBk note tags" msgstr "Использовать тэги DateBk для заметок" #: ../prefs_gui.c:715 msgid "DateBk support disabled in this build" msgstr "Данная сборка не поддерживает DateBk" #: ../prefs_gui.c:727 msgid "Use Address database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:730 msgid "Use Contacts database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:759 #, fuzzy msgid "Mail Command" msgstr "Команда дозвона" #: ../prefs_gui.c:773 #, fuzzy, c-format msgid "%s is replaced by the e-mail address" msgstr "%t будет заменено временем напоминания" #: ../prefs_gui.c:785 msgid "Use ToDo database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:788 msgid "Use Task database (Palm OS > 5.2)" msgstr "" #. hide completed check box #: ../prefs_gui.c:815 msgid "Hide Completed ToDos" msgstr "Не показывать завершенные задачи" #. hide todos not yet due check box #: ../prefs_gui.c:819 msgid "Hide ToDos not yet due" msgstr "Скрыть задачи для которых еще не пришло время" #. record todo completion date check box #: ../prefs_gui.c:823 msgid "Record Completion Date" msgstr "Сохранять дату выполнения задачи" #. Use Manana check box #: ../prefs_gui.c:828 msgid "Use Manana database" msgstr "Использовать базу данных Manana" #: ../prefs_gui.c:836 msgid "Use default number of days due" msgstr "" #: ../prefs_gui.c:858 msgid "Use Memo database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:861 msgid "Use Memos database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:864 #, fuzzy msgid "Use Memo32 database (pedit32)" msgstr "Использовать Memo32 (pedit32)" #: ../prefs_gui.c:904 msgid "External Editor" msgstr "" #: ../prefs_gui.c:917 msgid "Use Ctrl-E inside a memo to launch external editor for memo text" msgstr "" #. ******************************************************************** #. Alarms preference tab #. Open alarm windows check box #: ../prefs_gui.c:925 msgid "Open alarm windows for appointment reminders" msgstr "Открывать окна напоминаний для встреч" #. Execute alarm command check box #: ../prefs_gui.c:929 msgid "Execute this command" msgstr "Выполнить команду" #. Shell warning label #: ../prefs_gui.c:933 msgid "WARNING: executing arbitrary shell commands can be dangerous!!!" msgstr "" "ВНИМАНИЕ: выполнение произвольных команд системной оболочки может быть " "опасным!!!" #: ../prefs_gui.c:941 msgid "Alarm Command" msgstr "Команда для напоминания" #: ../prefs_gui.c:954 msgid "%t is replaced with the alarm time" msgstr "%t будет заменено временем напоминания" #: ../prefs_gui.c:958 #, c-format msgid "%d is replaced with the alarm date" msgstr "%d будет заменено датой напоминания" #: ../prefs_gui.c:963 msgid "%D is replaced with the alarm description" msgstr "%D заменено описанием напоминания" #: ../prefs_gui.c:967 msgid "%N is replaced with the alarm note" msgstr "%N заменено примечанием к напоминанию" #: ../prefs_gui.c:971 msgid "%D (description substitution) is disabled in this build" msgstr "%D (макрос описания) запрещен в этой сборке" #: ../prefs_gui.c:976 msgid "%N (note substitution) is disabled in this build" msgstr "%N (макрос заметки) запрещен в этой сборке" #. ******************************************************************** #. Conduits preference tab #. Sync datebook check box #: ../prefs_gui.c:986 msgid "Sync datebook" msgstr "Синхронизировать календарь" #. Sync address check box #: ../prefs_gui.c:990 msgid "Sync address" msgstr "Синхронизировать адресную книгу" #. Sync todo check box #: ../prefs_gui.c:994 msgid "Sync todo" msgstr "Синхронизировать список задач" #. Sync memo check box #: ../prefs_gui.c:998 msgid "Sync memo" msgstr "Синхронизировать заметки" #. Show sync Manana check box #: ../prefs_gui.c:1003 msgid "Sync Manana" msgstr "Синхронизировать Manana" #. Show use Japanese Kana extention check box #: ../prefs_gui.c:1009 msgid "Use J-OS (Not Japanese PalmOS:WorkPad/CLIE)" msgstr "Использовать J-OS (Не японскую PalmOS:WorkPad/CLIE)" #. Make a Sync checkbox for each plugin #: ../prefs_gui.c:1022 #, fuzzy, c-format msgid "Sync %s (%s)" msgstr "Синхронизация %s\n" #: ../print_gui.c:185 msgid "Print Options" msgstr "Опции печати" #: ../print_gui.c:198 msgid "Paper Size" msgstr "Размер бумаги" #: ../print_gui.c:214 msgid "Daily Printout" msgstr "Дневной отчет" #: ../print_gui.c:220 msgid "Weekly Printout" msgstr "Еженедельный отчет" #: ../print_gui.c:226 msgid "Monthly Printout" msgstr "Месячный отчет" #: ../print_gui.c:266 #, fuzzy msgid "Selected record" msgstr "Удалена запись %s" #: ../print_gui.c:270 msgid "All records in this category" msgstr "Все записи в этой категории" #: ../print_gui.c:274 msgid "Print all records" msgstr "Напечатать все записи" #: ../print_gui.c:296 msgid "One record per page" msgstr "Одна запись на страницу" #: ../print_gui.c:312 #, fuzzy msgid "Blank lines between each record" msgstr " Пустые строки между записями" #. Print Command #: ../print_gui.c:321 msgid "Print Command (e.g. lpr, or cat > file.ps)" msgstr "Команда для печати (например, lpr или cat > file.ps)" #: ../restore_gui.c:71 ../restore_gui.c:229 msgid "Restore Handheld" msgstr "Восстановить наладонник" #: ../restore_gui.c:176 ../restore_gui.c:178 msgid "Unable to convert filename for GTK display\n" msgstr "" #: ../restore_gui.c:177 msgid "See console log to find which file will not be restored\n" msgstr "" #: ../restore_gui.c:179 #, fuzzy, c-format msgid "File %s will not be restored\n" msgstr "Файлы для установки" #. Label for instructions #: ../restore_gui.c:246 msgid "To restore your handheld:" msgstr "Чтобы восстановить Ваш наладоник:" #: ../restore_gui.c:249 #, fuzzy msgid "1. Choose the applications you wish to restore. The default is all." msgstr "1. Выберите приложения, подлежащие восстановлению (по умолчанию все)." #: ../restore_gui.c:252 msgid "2. Enter the User Name and User ID." msgstr "2. Введите имя пользователя и пользовательский ID." #: ../restore_gui.c:255 msgid "3. Press the OK button." msgstr "3. Нажмите кнопку OK." #: ../restore_gui.c:258 msgid "This will overwrite data that is currently on the handheld." msgstr "Все данные на наладоннике будут перезаписаны." #: ../search_gui.c:144 msgid "datebook" msgstr "календарь" #: ../search_gui.c:146 #, fuzzy msgid "calendar" msgstr "Очистить" #: ../search_gui.c:233 msgid "address" msgstr "адрес" #: ../search_gui.c:235 msgid "contact" msgstr "" #: ../search_gui.c:304 #, fuzzy msgid "todo" msgstr "Синхронизировать список задач" #: ../search_gui.c:361 msgid "memo" msgstr "заметки" #: ../search_gui.c:363 #, fuzzy msgid "memos" msgstr "заметки" #: ../search_gui.c:421 msgid "plugin ?" msgstr "дополнение ?" #: ../search_gui.c:501 msgid "No records found" msgstr "Записей не найдено" #: ../search_gui.c:600 msgid "Search" msgstr "Поиск" #. Search label #: ../search_gui.c:617 msgid "Search for: " msgstr "Найти: " #. Case Sensitive checkbox #: ../search_gui.c:626 msgid "Case Sensitive" msgstr "С учетом регистра" #: ../sync.c:120 #, fuzzy msgid "open lock file failed\n" msgstr "Невозможно открыть файл протокола\n" #: ../sync.c:133 #, fuzzy msgid "lock failed\n" msgstr "Ошибка.\n" #: ../sync.c:136 #, c-format msgid "sync file is locked by pid %d\n" msgstr "" #: ../sync.c:171 msgid "unlock failed\n" msgstr "" #: ../sync.c:174 #, c-format msgid "sync is locked by pid %d\n" msgstr "" #: ../sync.c:410 #, fuzzy msgid "Check your sync port and settings\n" msgstr "Проверьте настройки серийного порта\n" #: ../sync.c:669 #, fuzzy msgid "Unable to read home dir\n" msgstr "Не удается открыть %s\n" #: ../sync.c:1075 ../sync.c:1413 #, c-format msgid "%s (Creator ID '%s') is up to date, fetch skipped.\n" msgstr "%s (ID автора '%s') не изменялась, пропускается.\n" #: ../sync.c:1079 ../sync.c:1417 #, c-format msgid "Fetching '%s' (Creator ID '%s')... " msgstr "Получение '%s' (ID автора '%s')... " #: ../sync.c:1086 ../sync.c:1423 #, c-format msgid "Failed, unable to create file %s\n" msgstr "Не удалось создать файл %s\n" #: ../sync.c:1090 ../sync.c:1428 #, c-format msgid "Failed, unable to back up database %s\n" msgstr "Не удалось выполнить архивацию базы данных %s\n" #: ../sync.c:1094 ../sync.c:1432 ../sync.c:1619 msgid "OK\n" msgstr "ОК\n" #: ../sync.c:1294 #, c-format msgid "Skipping %s (Creator ID '%s')\n" msgstr "Пропуск '%s' (ID автора '%s')\n" #: ../sync.c:1488 #, c-format msgid "Installing %s " msgstr "Установка %s " #: ../sync.c:1494 ../sync.c:1530 #, fuzzy, c-format msgid "" "\n" "Unable to open file: '%s': %s!\n" msgstr "" "\n" "Невозможно открыть '%s': %s!\n" #: ../sync.c:1498 #, fuzzy, c-format msgid "" "\n" "Unable to sync file: '%s': file corrupted?\n" msgstr "" "\n" "Невозможно синхронизировать '%s': файл поврежден?\n" #: ../sync.c:1514 #, fuzzy, c-format msgid "(Creator ID '%s')... " msgstr "(ID автора '%s')..." #: ../sync.c:1518 #, fuzzy, c-format msgid "(Creator ID '%s') " msgstr "(ID автора '%s')..." #: ../sync.c:1520 #, fuzzy, c-format msgid "(SDcard dir %s)... " msgstr "(ID автора '%s')..." #: ../sync.c:1552 ../sync.c:1565 ../sync.c:1580 ../sync.c:1593 #, fuzzy, c-format msgid "" "\n" "Unable to open file: %s\n" msgstr "Не удается открыть %s\n" #: ../sync.c:1605 #, c-format msgid "Install %s failed" msgstr "Установку %s не удалось завершить" #: ../sync.c:1609 msgid "Failed.\n" msgstr "Ошибка.\n" #: ../sync.c:1615 #, fuzzy, c-format msgid "Installed %s" msgstr "Установлен %s" #: ../sync.c:1726 #, c-format msgid "%s:%d Error getting app info %s\n" msgstr "%s:%d Ошибка получения app info %s\n" #: ../sync.c:1732 ../sync.c:1762 #, c-format msgid "%s:%d Error unpacking app info %s\n" msgstr "%s:%d Ошибка распаковки app info %s\n" #: ../sync.c:1753 #, c-format msgid "Error reading appinfo block for %s\n" msgstr "Ошибка чтения блока appinfo для %s\n" #. Fix - need a func for this logging #: ../sync.c:1991 ../sync.c:1995 #, c-format msgid "Could not add category %s to remote.\n" msgstr "Невозможно добавить категорию %s удалённо.\n" #: ../sync.c:1992 ../sync.c:1998 #, c-format msgid "Too many categories on remote.\n" msgstr "Слишком много категорий на удалённом.\n" #: ../sync.c:1993 ../sync.c:2001 #, c-format msgid "All records on desktop in %s will be moved to %s.\n" msgstr "Все записи на десктопе в %s перемещены на %s.\n" #: ../sync.c:2096 ../sync.c:2814 #, c-format msgid "Syncing %s\n" msgstr "Синхронизация %s\n" #: ../sync.c:2104 ../sync.c:2457 ../sync.c:2822 #, c-format msgid "Wrote an %s record." msgstr "Запись %s сохранена." #: ../sync.c:2106 ../sync.c:2459 ../sync.c:2824 #, c-format msgid "Writing an %s record failed." msgstr "Не удалось напечатать запись %s." #: ../sync.c:2108 ../sync.c:2461 ../sync.c:2826 #, c-format msgid "Deleting an %s record failed." msgstr "Не удалось удалить запись %s." #: ../sync.c:2110 ../sync.c:2463 ../sync.c:2828 #, c-format msgid "Deleted an %s record." msgstr "Запись %s удалена." #: ../sync.c:2112 ../sync.c:2465 #, fuzzy, c-format msgid "Sync Conflict: duplicated an %s record." msgstr "Запись %s удалена." #: ../sync.c:2115 ../sync.c:2468 ../sync.c:2831 #, c-format msgid "Wrote a %s record." msgstr "Запись %s переписана." #: ../sync.c:2117 ../sync.c:2470 ../sync.c:2833 #, c-format msgid "Writing a %s record failed." msgstr "Не удалось переписать запись %s." #: ../sync.c:2119 ../sync.c:2472 ../sync.c:2835 #, c-format msgid "Deleting a %s record failed." msgstr "Не удалось удалить запись %s." #: ../sync.c:2121 ../sync.c:2474 ../sync.c:2837 #, c-format msgid "Deleted a %s record." msgstr "Удалена запись %s" #: ../sync.c:2123 ../sync.c:2476 #, c-format msgid "Sync Conflict: duplicated a %s record." msgstr "" #: ../sync.c:2227 ../sync.c:2557 #, c-format msgid "Sync Conflict: a %s record must be manually merged\n" msgstr "" #: ../sync.c:2358 ../sync.c:2698 msgid "" "dlp_DeleteRecord failed\n" "This could be because the record was already deleted on the Palm\n" msgstr "" "dlp_DeleteRecord завершилась неудачно\n" "Причина, возможно, в том, что запись уже была удалена с Palm\n" #: ../sync.c:2927 msgid "Finished installing user information.\n" msgstr "" #: ../sync.c:3084 #, c-format msgid " Syncing on device %s\n" msgstr " Синхронизация с устройством %s\n" #: ../sync.c:3085 msgid " Press the HotSync button now\n" msgstr " Нажмите кнопку HotSync\n" #: ../sync.c:3127 ../sync.c:3149 ../sync.c:3170 #, c-format msgid "Last Synced Username-->\"%s\"\n" msgstr "Последний пользователь-->\"%s\"\n" #: ../sync.c:3128 ../sync.c:3150 ../sync.c:3171 #, c-format msgid "Last Synced UserID-->\"%d\"\n" msgstr "ID последнего пользователя-->\"%d\"\n" #: ../sync.c:3129 ../sync.c:3151 ../sync.c:3172 #, c-format msgid " This Username-->\"%s\"\n" msgstr "Имя пользователя-->\"%s\"\n" #: ../sync.c:3130 ../sync.c:3152 ../sync.c:3173 #, c-format msgid " This User ID-->%d\n" msgstr "ID пользователя-->%d\n" #: ../sync.c:3194 #, c-format msgid "Username is \"%s\"\n" msgstr "Имя пользователя \"%s\"\n" #: ../sync.c:3195 #, c-format msgid "User ID is %d\n" msgstr "ID пользователя %d\n" #: ../sync.c:3197 #, c-format msgid "lastSyncPC = %d\n" msgstr "Последний PC, использовавшийся для синхронизации = %d\n" #: ../sync.c:3198 #, c-format msgid "This PC = %lu\n" msgstr "Этот PC = %lu\n" #: ../sync.c:3222 msgid "Sync canceled\n" msgstr "Синхронизация отменена\n" # Do not translate this text #: ../sync.c:3245 msgid "Finished restoring handheld.\n" msgstr "Восстановление компьютера завершено\n" #: ../sync.c:3246 msgid "You may need to sync to update J-Pilot.\n" msgstr "Проведите синхронизацию для обновления информации в J-Pilot.\n" #: ../sync.c:3268 msgid "Doing a fast sync.\n" msgstr "Выполнение быстрой синхронизации.\n" #: ../sync.c:3281 msgid "Doing a slow sync.\n" msgstr "Выполнение медленной синхронизации.\n" #: ../sync.c:3356 msgid "Thank you for using J-Pilot." msgstr "Спасибо Вам за использование J-Pilot." #: ../sync.c:3401 ../sync.c:3469 msgid "Finished.\n" msgstr "Завершено\n" #: ../sync.c:3436 #, c-format msgid "%s: sync process already in progress (process ID = %d)\n" msgstr "" #: ../sync.c:3437 #, fuzzy, c-format msgid "" "%s: press the HotSync button on the cradle\n" " or stop the sync by using the cancel sync button\n" " or stop the sync by typing \"kill %d\" at the command line\n" msgstr " Нажмите кнопку HotSync\n" #: ../sync.c:3468 #, c-format msgid "Exiting with status %s\n" msgstr "Выход со статусом %s\n" #: ../todo.c:266 #, fuzzy, c-format msgid "ToDo description text > %d, truncating to %d\n" msgstr "Описание события длиннее %d символов, обрезано до %d символов\n" #: ../todo.c:272 #, fuzzy, c-format msgid "ToDo note text > %d, truncating to %d\n" msgstr "Заметка ToDo слишком длинная, обрезана до %d символов\n" #: ../todo_gui.c:161 msgid "Due Date" msgstr "Дата исполнения" #: ../todo_gui.c:532 msgid "File doesn't appear to be todo.dat format\n" msgstr "Файл не в формате todo.dat\n" #: ../todo_gui.c:596 msgid "DAT/TDA (Palm Archive Formats)" msgstr "" #: ../todo_gui.c:688 #, c-format msgid "" "ToDo exported from %s %s on %s\n" "\n" msgstr "" #: ../todo_gui.c:726 #, c-format msgid "Can't export todo %d\n" msgstr "" #: ../todo_gui.c:766 #, fuzzy, c-format msgid "Due Date: None\n" msgstr "Дата исполнения" #: ../todo_gui.c:769 #, fuzzy, c-format msgid "Due Date: %s\n" msgstr "Дата исполнения" #: ../todo_gui.c:771 #, fuzzy, c-format msgid "Priority: %d\n" msgstr "Приоритет: " #: ../todo_gui.c:772 #, fuzzy, c-format msgid "Completed: %s\n" msgstr "Завершена" #: ../todo_gui.c:774 #, c-format msgid "Description: %s\n" msgstr "" #: ../todo_gui.c:777 #, c-format msgid "" "Note: %s\n" "\n" msgstr "" #: ../todo_gui.c:1610 msgid "Priority out of range\n" msgstr "" #: ../todo_gui.c:1932 ../KeyRing/keyring.c:1310 #, c-format msgid "No date" msgstr "Нет даты" #. Completed checkbox #: ../todo_gui.c:2414 msgid "Completed" msgstr "Завершена" #: ../todo_gui.c:2421 #, fuzzy msgid "Priority:" msgstr "Приоритет: " #: ../todo_gui.c:2423 msgid "Set priority Alt+#" msgstr "" #: ../todo_gui.c:2444 msgid "Date Due:" msgstr "Дата завершения:" #: ../utils.c:332 msgid "Today" msgstr "Сегодня" #: ../utils.c:577 #, c-format msgid "Couldn't find empty DB file %s: %s\n" msgstr "Невозможно найти заготовку пустого файла базы данных %s: %s\n" #: ../utils.c:580 msgid " may not be installed.\n" msgstr " не был корректно установлен.\n" #. Can't create directory #: ../utils.c:615 ../utils.c:619 #, fuzzy, c-format msgid "Can't create directory %s\n" msgstr "Нельзя удалять категорию %s.\n" #: ../utils.c:625 #, fuzzy, c-format msgid "%s is not a directory\n" msgstr "%s является директорией" #: ../utils.c:630 #, fuzzy, c-format msgid "Unable to get write permission for directory %s\n" msgstr "Нельзя удалять категорию %s.\n" #: ../utils.c:1330 ../utils.c:1354 msgid "Save Changed Record?" msgstr "Сохранить измененную запись?" #: ../utils.c:1331 ../utils.c:1355 msgid "Do you want to save the changes to this record?" msgstr "Сохранить изменения в этой записи?" #: ../utils.c:1336 ../utils.c:1360 msgid "Save New Record?" msgstr "Сохранить новую запись?" #: ../utils.c:1337 ../utils.c:1361 msgid "Do you want to save this new record?" msgstr "Сохранить эту новую запись?" #: ../utils.c:1652 msgid "infinite loop, breaking\n" msgstr "бесконечный цикл, выходим\n" #: ../utils.c:1876 #, c-format msgid " -p skip loading plugins\n" msgstr "" #: ../utils.c:1877 #, c-format msgid " -a ignore missed alarms since the last time program was run\n" msgstr "" #: ../utils.c:1878 #, c-format msgid " -A ignore all alarms past and future\n" msgstr "" #: ../utils.c:1879 #, c-format msgid " -s start sync using existing instance of GUI\n" msgstr "" #: ../utils.c:1880 #, c-format msgid " -i iconify program immediately after launch\n" msgstr "" #: ../utils.c:1881 #, c-format msgid "" " -geometry {X geometry} use specified geometry for main window\n" "\n" msgstr "" #: ../utils.c:1882 #, c-format msgid " The PILOTPORT and PILOTRATE environment variables specify\n" msgstr "" #: ../utils.c:1883 #, c-format msgid " which port to sync on, and at what speed.\n" msgstr "" #: ../utils.c:1884 #, c-format msgid " If PILOTPORT is not set then it defaults to /dev/pilot.\n" msgstr "" #: ../utils.c:1921 #, fuzzy msgid "Error reading file" msgstr "Ошибка чтения %s\n" #: ../utils.c:1971 msgid "Date compiled" msgstr "Дата скомпилирована" #: ../utils.c:1972 msgid "Compiled with these options:" msgstr "Собрано со следующими опциями:" #: ../utils.c:1974 msgid "Installed Path" msgstr "Установленный Путь" #: ../utils.c:1976 msgid "pilot-link version" msgstr "версия pilot-link" #: ../utils.c:1980 msgid "USB support" msgstr "Поддержка USB" #: ../utils.c:1981 ../utils.c:1984 ../utils.c:1990 ../utils.c:1996 #: ../utils.c:2002 ../utils.c:2008 ../utils.c:2013 msgid "yes" msgstr "да" #: ../utils.c:1982 msgid "Private record support" msgstr "Поддержка личных записей" #: ../utils.c:1986 ../utils.c:1992 ../utils.c:1998 ../utils.c:2004 #: ../utils.c:2010 msgid "no" msgstr "нет" #: ../utils.c:1988 msgid "Datebk support" msgstr "Поддержка Datebk" #: ../utils.c:1994 msgid "Plugin support" msgstr "Поддержка дополнений" #: ../utils.c:2000 msgid "Manana support" msgstr "Поддерка Macana" #: ../utils.c:2006 msgid "NLS support (foreign languages)" msgstr "Поддержка NSL (иностранные языки)" #: ../utils.c:2012 msgid "GTK2 support" msgstr "Поддержка GTK2" #. No HOME var #: ../utils.c:2055 msgid "Can't get HOME environment variable\n" msgstr "" #: ../utils.c:2062 msgid "HOME environment variable is too long to process\n" msgstr "" #: ../utils.c:2557 #, fuzzy msgid "Edit Categories..." msgstr "Редактирование категорий" #: ../utils.c:3223 msgid "PC ID is 0.\n" msgstr "PC ID равен 0.\n" #: ../utils.c:3224 #, fuzzy, c-format msgid "Generated a new PC ID. It is %lu\n" msgstr "Сгенерирован новый PC ID, равный %lu\n" #: ../utils.c:3309 msgid "Invalid UTF-8 encoding in export string\n" msgstr "" #: ../utils.c:3470 #, c-format msgid "Today is %A, %x %X" msgstr "Сегодня %A, %x %X" #: ../utils.c:3472 #, c-format msgid "Today is %%A, %s %s" msgstr "Сегодня %%A, %s %s" #: ../utils.c:3701 #, c-format msgid "" "Incorrect header format for CSV import\n" "Check line 1 of file %s\n" "Aborting import\n" msgstr "" #: ../utils.c:3738 #, fuzzy, c-format msgid "Error writing version header to file: %s%s\n" msgstr "Ошибка чтения %s\n" #: ../utils.c:3743 #, fuzzy, c-format msgid "Error writing next id to file: %s%s" msgstr "Ошибка чтения %s\n" #: ../weekview_gui.c:297 msgid "Weekly View" msgstr "Вся неделя" #: ../weekview_gui.c:337 msgid "Last week Alt+LeftArrow" msgstr "" #: ../weekview_gui.c:366 msgid "Next week Alt+RightArrow" msgstr "" #: ../Expense/expense.c:97 msgid "Australia" msgstr "Австралия" #: ../Expense/expense.c:98 msgid "Austria" msgstr "Австрия" #: ../Expense/expense.c:99 msgid "Belgium" msgstr "Бельгия" #: ../Expense/expense.c:100 msgid "Brazil" msgstr "Бразилия" #: ../Expense/expense.c:101 msgid "Canada" msgstr "Канада" #: ../Expense/expense.c:102 msgid "Denmark" msgstr "Дания" #: ../Expense/expense.c:103 msgid "EU (Euro)" msgstr "ЕС (Евро)" #: ../Expense/expense.c:104 msgid "Finland" msgstr "Финляндия" #: ../Expense/expense.c:105 msgid "France" msgstr "Франция" #: ../Expense/expense.c:106 msgid "Germany" msgstr "Германия" #: ../Expense/expense.c:107 msgid "Hong Kong" msgstr "Гонконг" #: ../Expense/expense.c:108 msgid "Iceland" msgstr "Исландия" #: ../Expense/expense.c:109 msgid "India" msgstr "Индия" #: ../Expense/expense.c:110 msgid "Indonesia" msgstr "Индонезия" #: ../Expense/expense.c:111 msgid "Ireland" msgstr "Ирландия" #: ../Expense/expense.c:112 msgid "Italy" msgstr "Италия" #: ../Expense/expense.c:113 msgid "Japan" msgstr "Япония" #: ../Expense/expense.c:114 msgid "Korea" msgstr "Корея" #: ../Expense/expense.c:115 msgid "Luxembourg" msgstr "Люксембург" #: ../Expense/expense.c:116 msgid "Malaysia" msgstr "Малайзия" #: ../Expense/expense.c:117 msgid "Mexico" msgstr "Мексика" #: ../Expense/expense.c:118 msgid "Netherlands" msgstr "Нидерланды" #: ../Expense/expense.c:119 msgid "New Zealand" msgstr "Новая Зеландия" #: ../Expense/expense.c:120 msgid "Norway" msgstr "Норвегия" #: ../Expense/expense.c:121 msgid "P.R.C." msgstr "Китайская Народная Республика" #: ../Expense/expense.c:122 msgid "Philippines" msgstr "Филиппины" #: ../Expense/expense.c:123 msgid "Singapore" msgstr "Сингапур" #: ../Expense/expense.c:124 msgid "Spain" msgstr "Испания" #: ../Expense/expense.c:125 msgid "Sweden" msgstr "Швеция" #: ../Expense/expense.c:126 msgid "Switzerland" msgstr "Швейцария" #: ../Expense/expense.c:127 msgid "Taiwan" msgstr "Тайвань" #: ../Expense/expense.c:128 msgid "Thailand" msgstr "Таиланд" #: ../Expense/expense.c:129 msgid "United Kingdom" msgstr "Соединённое Королевство" #: ../Expense/expense.c:130 msgid "United States" msgstr "США" #: ../Expense/expense.c:518 ../Expense/expense.c:529 msgid "Expense" msgstr "Затраты" #: ../Expense/expense.c:550 ../Expense/expense.c:1388 msgid "Airfare" msgstr "Авиабилеты" #: ../Expense/expense.c:552 ../Expense/expense.c:1389 msgid "Breakfast" msgstr "Завтрак" #: ../Expense/expense.c:554 ../Expense/expense.c:1390 msgid "Bus" msgstr "Автобус" #: ../Expense/expense.c:556 ../Expense/expense.c:1391 msgid "BusinessMeals" msgstr "Обеды по работе" #: ../Expense/expense.c:558 ../Expense/expense.c:1392 msgid "CarRental" msgstr "Аренда машины" #: ../Expense/expense.c:560 ../Expense/expense.c:1393 msgid "Dinner" msgstr "Ужины" #: ../Expense/expense.c:562 ../Expense/expense.c:1394 msgid "Entertainment" msgstr "Развлечение" #: ../Expense/expense.c:564 ../Expense/expense.c:1395 msgid "Fax" msgstr "Факс" #: ../Expense/expense.c:566 ../Expense/expense.c:1396 msgid "Gas" msgstr "Топливо" #: ../Expense/expense.c:568 ../Expense/expense.c:1397 msgid "Gifts" msgstr "Подарки" #: ../Expense/expense.c:570 ../Expense/expense.c:1398 msgid "Hotel" msgstr "Отель" #: ../Expense/expense.c:572 ../Expense/expense.c:1399 msgid "Incidentals" msgstr "Неожиданности" #: ../Expense/expense.c:574 ../Expense/expense.c:1400 msgid "Laundry" msgstr "Прачечная" #: ../Expense/expense.c:576 ../Expense/expense.c:1401 msgid "Limo" msgstr "Limo" #: ../Expense/expense.c:578 ../Expense/expense.c:1402 msgid "Lodging" msgstr "Квартира" #: ../Expense/expense.c:580 ../Expense/expense.c:1403 msgid "Lunch" msgstr "Обеды" #: ../Expense/expense.c:582 ../Expense/expense.c:1404 msgid "Mileage" msgstr "Расстояние" #: ../Expense/expense.c:586 ../Expense/expense.c:1406 msgid "Parking" msgstr "Стоянка" #: ../Expense/expense.c:588 ../Expense/expense.c:1407 msgid "Postage" msgstr "Почтовые расходы" #: ../Expense/expense.c:590 ../Expense/expense.c:1408 msgid "Snack" msgstr "Закуски" #: ../Expense/expense.c:592 ../Expense/expense.c:1409 msgid "Subway" msgstr "Метро" #: ../Expense/expense.c:594 ../Expense/expense.c:1410 msgid "Supplies" msgstr "Расходники" #: ../Expense/expense.c:596 ../Expense/expense.c:1411 msgid "Taxi" msgstr "Такси" #: ../Expense/expense.c:598 ../Expense/expense.c:1412 msgid "Telephone" msgstr "Телефон" #: ../Expense/expense.c:600 ../Expense/expense.c:1413 msgid "Tips" msgstr "На чай" #: ../Expense/expense.c:602 ../Expense/expense.c:1414 msgid "Tolls" msgstr "Пошлина" #: ../Expense/expense.c:604 ../Expense/expense.c:1415 msgid "Train" msgstr "Поезд" #: ../Expense/expense.c:1239 msgid "Expense: Unknown expense type\n" msgstr "" #: ../Expense/expense.c:1245 msgid "Expense: Unknown payment type\n" msgstr "" #: ../Expense/expense.c:1377 msgid "American Express" msgstr "American Express" #: ../Expense/expense.c:1378 msgid "Cash" msgstr "Наличными" #: ../Expense/expense.c:1379 msgid "Check" msgstr "Чеком" #: ../Expense/expense.c:1380 msgid "Credit Card" msgstr "Кредитная карта" #: ../Expense/expense.c:1381 msgid "Master Card" msgstr "Master Card" #: ../Expense/expense.c:1382 msgid "Prepaid" msgstr "Предоплачено" #: ../Expense/expense.c:1383 msgid "VISA" msgstr "VISA" #: ../Expense/expense.c:1619 #, fuzzy msgid "Type" msgstr "Тип: " #: ../Expense/expense.c:1620 #, fuzzy msgid "Amount" msgstr "Сумма: " #. Category Menu #: ../Expense/expense.c:1704 #, fuzzy msgid "Category:" msgstr "Категория" #. Type Menu #: ../Expense/expense.c:1712 #, fuzzy msgid "Type:" msgstr "Тип: " #. Payment Menu #: ../Expense/expense.c:1720 #, fuzzy msgid "Payment:" msgstr "Платеж: " #. Currency Menu #: ../Expense/expense.c:1728 #, fuzzy msgid "Currency:" msgstr "Валюта: " #: ../Expense/expense.c:1748 msgid "Month:" msgstr "Месяц:" #: ../Expense/expense.c:1762 msgid "Day:" msgstr "День:" #: ../Expense/expense.c:1776 msgid "Year:" msgstr "Год:" #. Amount Entry #: ../Expense/expense.c:1789 #, fuzzy msgid "Amount:" msgstr "Сумма: " #. Vendor Entry #: ../Expense/expense.c:1799 #, fuzzy msgid "Vendor:" msgstr "Поставщик: " #. City #: ../Expense/expense.c:1809 #, fuzzy msgid "City:" msgstr "Город: " #. Attendees #: ../Expense/expense.c:1819 msgid "Attendees" msgstr "Посетители" #. ------------------------------------------- #: ../Expense/expense.c:2102 #, fuzzy, c-format msgid "" "%s\n" "\n" "Expense plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org" msgstr "" "%s %s был написан\n" "Джаддом Монтгомери (c) 1999-2002\n" "judd@jpilot.org\n" "http://jpilot.org\n" #: ../KeyRing/keyring.c:291 msgid "KeyRing: pack_KeyRing(): buf_size too small\n" msgstr "" #: ../KeyRing/keyring.c:1699 msgid "Incorrect, Reenter KeyRing Password" msgstr "Неверно, введите пароль для KeyRing" #: ../KeyRing/keyring.c:1701 msgid "Enter a NEW KeyRing Password" msgstr "Введите НОВЫЙ пароль для KeyRing" #: ../KeyRing/keyring.c:1703 msgid "Enter KeyRing Password" msgstr "Введите пароль для KeyRing" #: ../KeyRing/keyring.c:1769 #, c-format msgid "KeyRing: file %s not found.\n" msgstr "" #: ../KeyRing/keyring.c:1770 msgid "KeyRing: Try Syncing.\n" msgstr "" #: ../KeyRing/keyring.c:1861 ../KeyRing/keyring.c:1872 msgid "KeyRing" msgstr "" #. ------------------------------------------- #: ../KeyRing/keyring.c:1900 #, fuzzy, c-format msgid "" "%s\n" "\n" "KeyRing plugin for J-Pilot was written by\n" "Judd Montgomery (c) 2001.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "KeyRing is a free PalmOS program for storing\n" "passwords and other information in encrypted form\n" "http://gnukeyring.sourceforge.net" msgstr "" "%s %s был написан\n" "Джаддом Монтгомери (c) 1999-2002\n" "judd@jpilot.org\n" "http://jpilot.org\n" #: ../KeyRing/keyring.c:2137 #, c-format msgid "" "Keys exported from %s %s on %s\n" "\n" msgstr "" #: ../KeyRing/keyring.c:2162 #, fuzzy, c-format msgid "Can't export key %d\n" msgstr "Не могу экспортировать адрес\n" #: ../KeyRing/keyring.c:2229 msgid "B-FOLDERS CSV" msgstr "" #. Change Password button #: ../KeyRing/keyring.c:2384 msgid "" "Change\n" "KeyRing\n" "Password" msgstr "" "Сменить\n" "пароль\n" "KeyRing" #. Clist #: ../KeyRing/keyring.c:2497 #, fuzzy msgid "Changed" msgstr "Отменить" #: ../KeyRing/keyring.c:2499 msgid "Account" msgstr "Учетная запись" #. Name entry #: ../KeyRing/keyring.c:2593 msgid "name: " msgstr "имя: " #. Account entry #: ../KeyRing/keyring.c:2601 msgid "account: " msgstr "учетная запись: " #. Password entry #: ../KeyRing/keyring.c:2609 msgid "password: " msgstr "пароль: " #. Last Changed entry #: ../KeyRing/keyring.c:2616 msgid "last changed: " msgstr "" #. Generate Password button (creates random password) #: ../KeyRing/keyring.c:2626 msgid "Generate Password" msgstr "Сгенерировать пароль" #: ../SyncTime/synctime.c:61 #, fuzzy msgid "SyncTime" msgstr "Синхронизировать заметки" #. ------------------------------------------- #: ../SyncTime/synctime.c:72 #, fuzzy, c-format msgid "" "%s\n" "\n" "SyncTime plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "SyncTime WILL NOT work with PalmOS 3.3!" msgstr "" "%s %s был написан\n" "Джаддом Монтгомери (c) 1999-2002\n" "judd@jpilot.org\n" "http://jpilot.org\n" #: ../SyncTime/synctime.c:106 msgid "synctime: Palm OS Version 3.25 and 3.30 do not support SyncTime\n" msgstr "" #: ../SyncTime/synctime.c:107 msgid "synctime: NOT setting the time on the pilot\n" msgstr "" #: ../SyncTime/synctime.c:112 msgid "synctime: Setting the time on the pilot... " msgstr "" #: ../SyncTime/synctime.c:117 #, fuzzy msgid "Done\n" msgstr "Завершить" #, fuzzy #~ msgid "Serial Port" #~ msgstr "Скорость порта " #, fuzzy #~ msgid "W" #~ msgstr "Ср" #, fuzzy #~ msgid "M" #~ msgstr "Пн" #, fuzzy #~ msgid "Field" #~ msgstr "Финляндия" #~ msgid "kana(" #~ msgstr "kana(" #~ msgid "Quick View" #~ msgstr "Быстрый просмотр" #, fuzzy #~ msgid "Unable to open %s%s file\n" #~ msgstr "Не удается открыть %s\n" #, fuzzy #~ msgid "Unable to open %s.alarms file\n" #~ msgstr "Не удается открыть %s\n" #~ msgid "You can't edit category %s.\n" #~ msgstr "Редактировать категорию %s нельзя.\n" #~ msgid "You can't delete category %s.\n" #~ msgstr "Нельзя удалять категорию %s.\n" #~ msgid "category name" #~ msgstr "название категории" #~ msgid "debug" #~ msgstr "debug" #~ msgid "Close" #~ msgstr "Закрыть" #~ msgid "none" #~ msgstr "нет" #~ msgid "This Event has no particular time" #~ msgstr "Для этого события не назначено время" #~ msgid "Start Time" #~ msgstr "Время начала" #~ msgid "End Time" #~ msgstr "Время окончания" #~ msgid "Dismiss" #~ msgstr "Отмена" #~ msgid "Done" #~ msgstr "Завершить" #~ msgid "Add" #~ msgstr "Добавить" #, fuzzy #~ msgid "User name" #~ msgstr "Имя пользователя" #~ msgid "/Help/PayBack program" #~ msgstr "/Справка/Программа PayBack" #, fuzzy #~ msgid "Show private records" #~ msgstr "Показать личные записи" #, fuzzy #~ msgid "Hide private records" #~ msgstr "Спрятать-показать личные записи" #, fuzzy #~ msgid "Mask private records" #~ msgstr "Скрыть личные записи" #~ msgid "Font" #~ msgstr "Шрифт" #, fuzzy #~ msgid "Couldn't open PC records file\n" #~ msgstr "Невозможно открыть файл %s\n" #~ msgid "The first day of the week is " #~ msgstr "Первый день недели " #~ msgid "Serial Port (/dev/ttyS0, /dev/pilot)" #~ msgstr "Порт (/dev/ttyS0, /dev/pilot)" #~ msgid "Serial Rate (Does not affect USB)" #~ msgstr "Скорость обмена по последовательному порту (не влияет на USB)" #~ msgid "Sync memo32 (pedit32)" #~ msgstr "Синхронизировать заметки memo32 (pedit32)" #~ msgid "One record" #~ msgstr "Одна запись" #~ msgid "Finished\n" #~ msgstr "Завершено\n" #~ msgid "Last Username = [%s]\n" #~ msgstr "Последний пользователь = [%s]\n" #~ msgid "Last UserID = %d\n" #~ msgstr "ID последнего пользователя = %d\n" #~ msgid "Username = [%s]\n" #~ msgstr "Имя пользователя = [%s]\n" #~ msgid "userID = %d\n" #~ msgstr "ID пользователя = %d\n" #~ msgid "palm: number of records = %d\n" #~ msgstr "palm: количество записей = %d\n" #~ msgid "disk: number of records = %d\n" #~ msgstr "disk: количество записей = %d\n" #, fuzzy #~ msgid "" #~ "%s doesn't appear to be a directory.\n" #~ "I need it to be.\n" #~ msgstr "Файл не в формате address.dat\n" #~ msgid "AmEx" #~ msgstr "AmEx" #~ msgid "CreditCard" #~ msgstr "Кредитной картой" #~ msgid "MasterCard" #~ msgstr "MasterCard" #~ msgid "Quit" #~ msgstr "Выход" #~ msgid "Help" #~ msgstr "Справка" #, fuzzy #~ msgid "Directory" #~ msgstr "%s является директорией" #~ msgid "Overwrite File" #~ msgstr "Перезаписать файл" #, fuzzy #~ msgid "Filename" #~ msgstr "Переименовать" #~ msgid "Sync" #~ msgstr "Синхронизация" #, fuzzy #~ msgid "Cancel the modifications ESC" #~ msgstr "Собрано со следующими опциями:" #, fuzzy #~ msgid "Add the new record Ctrl+Enter" #~ msgstr "Спрятать-показать личные записи" #~ msgid "Backup" #~ msgstr "Архив" #~ msgid "Quit!" #~ msgstr "Выход!" #~ msgid "Show Preferences" #~ msgstr "Показывать настройки" #~ msgid "About Expense" #~ msgstr "О Затратах" #, fuzzy #~ msgid "About KeyRing" #~ msgstr "О Затратах" #~ msgid "\n" #~ msgstr "\n" #~ msgid "" #~ " [-v] || [-h] || [-d] || [-a] || [-A] || [-i]\n" #~ " -v displays version and compile options and exits.\n" #~ " -h displays help and exits.\n" #~ " -d displays debug info to stdout.\n" #~ " -p do not load plugins.\n" #~ " -a ignore missed alarms since the last time this program was run.\n" #~ " -A ignore all alarms, past and future.\n" #~ " -i makes jpilot iconify itself upon launch\n" #~ " The PILOTPORT, and PILOTRATE env variables are used to specify\n" #~ " which port to sync on, and at what speed.\n" #~ " If PILOTPORT is not set then it defaults to /dev/pilot.\n" #~ msgstr "" #~ " [ [-v] || [-h] || [-d] || [-a] || [-A] || [-i]\n" #~ " -v показать версию программы, параметры сборки и выйти.\n" #~ " -h показать эту справку и выйти.\n" #~ " -d выводить отладочную информацию на консоль.\n" #~ " -p не загружать дополнения.\n" #~ " -a игнорировать напоминания о событиях, пропущенных с момента последнего " #~ "запуска программы.\n" #~ " -A игнорировать все напоминания, о прошедших и будущих событиях.\n" #~ " -i свернуть jpilot в иконку сразу после запуска.\n" #~ " Переменные окружения PILOTPORT и PILOTRATE используются для указания\n" #~ " порта и скорости синхронизации.\n" #~ " При отсутствии PILOTPORT по умолчанию будет использован /dev/pilot.\n" #~ msgid "slow_sync_application(): Out of memory\n" #~ msgstr "slow_sync_application(): нехватка памяти\n" #~ msgid "dlp_WriteRecord failed\n" #~ msgstr "Процедура dlp_WriteRecord провалилась\n" #~ msgid "" #~ "\n" #~ "Unable to open '%s'!\n" #~ msgstr "" #~ "\n" #~ "Невозможно открыть '%s'!\n" #~ msgid "Cannot open %s_to_install file\n" #~ msgstr "Невозможно открыть файл %s_to_install\n" #~ msgid "Cannot open %s_to_install.tmp file\n" #~ msgstr "Невозможно открыть файл %s_to_install.tmp\n" #~ msgid "fast_sync_local_recs(): Out of memory\n" #~ msgstr "fast_sync_local_recs(): нехватка памяти\n" #~ msgid "Error reading at %s : %s %d\n" #~ msgstr "Ошибка чтения %s : %s %d\n" #~ msgid "Warning ToDo description too long, truncating to %d\n" #~ msgstr "Описание ToDo слишком длинное, обрезано до %d символов\n" #~ msgid "/Web/Netscape/%s" #~ msgstr "/Сеть/Netscape/%s" #~ msgid "/Web/Mozilla/%s" #~ msgstr "/Сеть/Mozilla/%s" #~ msgid "/Web/Galeon/%s" #~ msgstr "/Сеть/Galeon/%s" #~ msgid "/Web/Opera/%s" #~ msgstr "/Сеть/Opera/%s" #~ msgid "/Web/GnomeUrl/%s" #~ msgstr "/Сеть/GnomeUrl/%s" #~ msgid "/Web/Lynx/%s" #~ msgstr "/Сеть/Lynx/%s" #~ msgid "/Web/Links/%s" #~ msgstr "Сеть/Links/%s" #~ msgid "/Web/W3M/%s" #~ msgstr "/Сеть/W3M/%s" #~ msgid "/Web/Konqueror/%s" #~ msgstr "/Сеть/Konqueror/%s" #~ msgid "Holland" #~ msgstr "Голландия" #~ msgid "U.K." #~ msgstr "Великобритания" #~ msgid "U.S.A." #~ msgstr "США" #~ msgid "Open jpilot.org in existing" #~ msgstr "Открыть jpilot.org в текущем окне" #~ msgid "Open jpilot.org in new window" #~ msgstr "Открыть jpilot.org в новом окне" #~ msgid "Open jpilot.org in new Netscape" #~ msgstr "Открыть jpilot.org в новом Netscape" #~ msgid "Open jpilot.org in new tab" #~ msgstr "Открыть jpilot.org в новой вкладке" #~ msgid "Open jpilot.org in new Mozilla" #~ msgstr "Открыть jpilot.org в новой Mozilla" #~ msgid "Open jpilot.org in new Galeon" #~ msgstr "Открыть jpilot.org в новом Galeon" #~ msgid "Open jpilot.org in new Opera" #~ msgstr "Открыть jpilot.org в новой Opera" #~ msgid "Gnome URL Handler for jpilot.org" #~ msgstr "Обработчик ссылок Gnome для jpilot.org" #~ msgid "Lynx jpilot.org" #~ msgstr "Lynx jpilot.org" #~ msgid "Links jpilot.org" #~ msgstr "Links jpilot.org" #~ msgid "w3m jpilot.org" #~ msgstr "w3m jpilot.org" #~ msgid "Konqueror jpilot.org" #~ msgstr "Konqueror jpilot.org" #~ msgid "Cannot open " #~ msgstr "Невозможно открыть " #~ msgid "RTh" #~ msgstr "Чт" #~ msgid "Time:" #~ msgstr "Время:" #~ msgid "Last Syned UserID-->\"%d\"\n" #~ msgstr "ID последнего пользователя-->\"%d\"\n" jpilot-1.8.1.2/po/zh_TW.po0000644000175000017500000024754011702307204012124 00000000000000# Chinese (traditional) translation for jpilot. # This file is distributed under the same license as the jpilot package. # # Anthony Fok , 2002. # Jouston Huang , 2004, 2005. msgid "" msgstr "" "Project-Id-Version: jpilot-0.99.8-pre7\n" "Report-Msgid-Bugs-To: jpilot-devel@jpilot.org\n" "POT-Creation-Date: 2012-01-08 13:39+0100\n" "PO-Revision-Date: 2005-01-14 22:27+0800\n" "Last-Translator: Jouston Huang \n" "Language-Team: Chinese (traditional) \n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=BIG5\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.9.1\n" #: ../address.c:276 ../address.c:448 ../alarms.c:332 ../calendar.c:309 #: ../calendar.c:547 ../contact.c:324 ../contact.c:738 ../dat.c:189 #: ../dat.c:655 ../dat.c:859 ../dat.c:993 ../dat.c:1132 ../datebook.c:130 #: ../datebook.c:165 ../datebook.c:172 ../datebook.c:231 ../jpilot.c:1254 #: ../jpilot-merge.c:95 ../libplugin.c:208 ../libplugin.c:455 #: ../libplugin.c:534 ../libplugin.c:563 ../libplugin.c:811 ../memo.c:214 #: ../memo.c:287 ../otherconv.c:280 ../plugins.c:112 ../prefs.c:350 #: ../prefs.c:375 ../prefs.c:906 ../sync.c:2170 ../sync.c:2187 ../sync.c:2296 #: ../sync.c:2310 ../sync.c:2507 ../sync.c:2646 ../todo.c:236 ../todo.c:490 #: ../utils.c:748 #, c-format msgid "Out of memory" msgstr "O餣" #: ../address.c:332 ../calendar.c:230 ../contact.c:580 ../datebook.c:494 #: ../memo.c:87 ../todo.c:90 #, fuzzy, c-format msgid "%s:%d Error reading application info %s\n" msgstr "%s: %d ŪJOT %s ~\n" #: ../address.c:344 ../address_gui.c:2285 ../address_gui.c:2324 #: ../calendar.c:246 ../contact.c:596 ../datebook.c:514 ../datebook_gui.c:3737 #: ../libplugin.c:405 ../libplugin.c:431 ../memo.c:99 ../memo_gui.c:863 #: ../todo_gui.c:1070 ../Expense/expense.c:1105 #, c-format msgid "Error reading file: %s\n" msgstr "Ūɮ׿~: %s\n" #: ../address.c:492 ../calendar.c:598 ../calendar.c:607 ../contact.c:780 #: ../libplugin.c:846 ../memo.c:353 ../todo.c:302 ../utils.c:1124 #: ../utils.c:1131 ../utils.c:1138 ../utils.c:1145 ../utils.c:1152 #: ../utils.c:1159 msgid "error" msgstr "~" #: ../address_gui.c:325 ../datebook_gui.c:2844 ../memo_gui.c:176 #: ../todo_gui.c:292 ../KeyRing/keyring.c:834 msgid "" "This record is deleted.\n" "Undelete it or copy it to make changes.\n" msgstr "" "owgR.\n" "ϧRάOƻs@~ק.\n" #: ../address_gui.c:452 ../address_gui.c:458 ../address_gui.c:469 #: ../address_gui.c:481 ../address_gui.c:493 ../address_gui.c:506 #, c-format msgid "%s%s: %s" msgstr "" #: ../address_gui.c:542 ../category.c:118 ../category.c:176 ../category.c:330 #: ../category.c:336 ../datebook_gui.c:430 ../jpilot-merge.c:88 #: ../jpilot-merge.c:146 ../jpilot-merge.c:151 ../memo_gui.c:280 #: ../sync.c:2129 ../sync.c:2135 ../sync.c:2481 ../sync.c:2842 #: ../todo_gui.c:416 ../utils.c:2674 ../utils.c:2711 ../utils.c:2717 #: ../utils.c:2776 ../utils.c:2782 ../utils.c:2836 ../utils.c:2890 #: ../utils.c:2896 ../utils.c:2954 ../utils.c:2961 #, c-format msgid "Unable to open file: %s\n" msgstr "Lk}ɮ: %s\n" #: ../address_gui.c:561 #, fuzzy, c-format msgid "Unable to read file: %s\n" msgstr "Lk}ɮ: %s\n" #: ../address_gui.c:715 msgid "File doesn't appear to be address.dat format\n" msgstr "ɮצGO address.dat 榡\n" #: ../address_gui.c:725 ../datebook_gui.c:647 ../memo_gui.c:324 #: ../memo_gui.c:417 ../todo_gui.c:542 ../Expense/expense.c:1384 msgid "Unfiled" msgstr "k" #: ../address_gui.c:781 ../datebook_gui.c:698 ../memo_gui.c:470 #: ../todo_gui.c:595 msgid "CSV (Comma Separated Values)" msgstr "" #: ../address_gui.c:782 msgid "DAT/ABA (Palm Archive Formats)" msgstr "" #. current category name #. previous category name #. entry text, in Pilot character set #: ../address_gui.c:868 ../category.c:408 ../datebook_gui.c:729 #: ../jpilot.c:234 ../jpilot.c:278 ../jpilot.c:352 ../jpilot.c:396 #: ../jpilot.c:953 ../memo_gui.c:506 ../todo_gui.c:635 ../utils.c:1305 #: ../KeyRing/keyring.c:2090 msgid "OK" msgstr "Tw" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "No" msgstr "_" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "Yes" msgstr "O" #: ../address_gui.c:888 ../datebook_gui.c:753 ../memo_gui.c:520 #: ../todo_gui.c:655 ../KeyRing/keyring.c:2104 #, c-format msgid "%s is a directory" msgstr "%s Oؿ" #: ../address_gui.c:890 ../address_gui.c:907 ../datebook_gui.c:755 #: ../datebook_gui.c:772 ../memo_gui.c:522 ../memo_gui.c:539 ../todo_gui.c:657 #: ../todo_gui.c:674 ../KeyRing/keyring.c:2106 ../KeyRing/keyring.c:2123 msgid "Error Opening File" msgstr "}ɮ׮ɵoͿ~" #: ../address_gui.c:894 ../datebook_gui.c:759 ../memo_gui.c:526 #: ../todo_gui.c:661 ../KeyRing/keyring.c:2110 #, c-format msgid "Do you want to overwrite file %s?" msgstr "znмgɮ %s ?" #: ../address_gui.c:896 ../datebook_gui.c:761 ../memo_gui.c:528 #: ../todo_gui.c:663 ../KeyRing/keyring.c:2112 msgid "Overwrite File?" msgstr "мgɮ?" #: ../address_gui.c:905 ../datebook_gui.c:770 ../memo_gui.c:537 #: ../todo_gui.c:672 ../KeyRing/keyring.c:2121 #, c-format msgid "Error opening file: %s" msgstr "}ɮ׮ɵoͿ~: %s" #: ../address_gui.c:922 #, c-format msgid "" "Address exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:925 #, c-format msgid "" "Contact exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:989 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ldif file may not be standards-compliant\n" msgstr "" #: ../address_gui.c:1002 #, c-format msgid "Can't export address %d\n" msgstr "LkץXa} %d\n" #: ../address_gui.c:1008 ../memo_gui.c:630 ../todo_gui.c:760 #, fuzzy, c-format msgid "Category: %s\n" msgstr "O: " #: ../address_gui.c:1010 ../memo_gui.c:632 ../todo_gui.c:763 #, fuzzy, c-format msgid "Private: %s\n" msgstr "pH" #: ../address_gui.c:1018 ../address_gui.c:1032 ../address_gui.c:1036 #: ../address_gui.c:1045 ../address_gui.c:1048 #, c-format msgid "%s: " msgstr "" #: ../address_gui.c:1022 #, c-format msgid "%s\n" msgstr "" #. E-mail should be the Palm dropdown menu item for email #. Set dial/email button text and callback data #: ../address_gui.c:1196 ../address_gui.c:2846 ../address_gui.c:4185 msgid "E-mail" msgstr "qll" #: ../address_gui.c:1482 ../datebook_gui.c:1147 ../memo_gui.c:640 #: ../todo_gui.c:844 ../KeyRing/keyring.c:2214 msgid "Unknown export type\n" msgstr "ץXO\n" #: ../address_gui.c:1508 ../datebook_gui.c:1226 ../memo_gui.c:469 #: ../memo_gui.c:666 ../todo_gui.c:870 ../KeyRing/keyring.c:2229 msgid "Text" msgstr "" #: ../address_gui.c:1509 ../datebook_gui.c:1227 ../memo_gui.c:667 #: ../todo_gui.c:871 ../KeyRing/keyring.c:2229 msgid "CSV" msgstr "" #: ../address_gui.c:1510 #, fuzzy msgid "vCard" msgstr "M" #: ../address_gui.c:1511 msgid "vCard (Optimized for Gmail/Android Import)" msgstr "" #: ../address_gui.c:1512 msgid "ldif" msgstr "" #. Initialize variable if default case taken #: ../address_gui.c:1777 ../address_gui.c:3902 #, fuzzy msgid "Last Name/Company" msgstr "mW/q" #: ../address_gui.c:1780 ../address_gui.c:3905 #, fuzzy msgid "First Name/Company" msgstr "mW/q" #: ../address_gui.c:1783 ../address_gui.c:3908 #, fuzzy msgid "Company/Last Name" msgstr "q/mW" #: ../address_gui.c:1920 ../datebook_gui.c:2907 ../memo_gui.c:1036 #: ../todo_gui.c:1329 ../KeyRing/keyring.c:1181 msgid "You can't modify a record that is deleted\n" msgstr "LkקwR\n" #. Illegal category, Assume that category 0 is Unfiled and valid #: ../address_gui.c:2119 ../address_gui.c:2370 ../address_gui.c:2803 #: ../address_gui.c:2809 ../address_gui.c:3601 ../datebook_gui.c:1994 #: ../datebook_gui.c:3434 ../datebook_gui.c:3783 ../datebook_gui.c:4074 #: ../memo_gui.c:900 ../memo_gui.c:946 ../memo_gui.c:1161 ../memo_gui.c:1548 #: ../todo_gui.c:1106 ../todo_gui.c:1200 ../todo_gui.c:1589 ../todo_gui.c:2141 #: ../Expense/expense.c:689 ../Expense/expense.c:1143 #: ../Expense/expense.c:1227 ../Expense/expense.c:1887 #: ../KeyRing/keyring.c:1070 ../KeyRing/keyring.c:1512 #: ../KeyRing/keyring.c:1574 ../KeyRing/keyring.c:2688 msgid "Category is not legal\n" msgstr "OT\n" #: ../address_gui.c:2179 ../alarms.c:598 ../dialer.c:164 #, c-format msgid "executing command = [%s]\n" msgstr "RO = [%s]\n" #: ../address_gui.c:2181 #, fuzzy, c-format msgid "Failed to execute [%s]\n" msgstr "@~, Lkإɮ %s\n" #: ../address_gui.c:2425 msgid "Birthday" msgstr "" #: ../address_gui.c:2521 msgid "External program not found, or other error" msgstr "" #: ../address_gui.c:2523 msgid "" "J-Pilot can not find the external program \"convert\"\n" "or an error occurred while executing convert.\n" "You may need to install package ImageMagick" msgstr "" #: ../address_gui.c:2524 #, c-format msgid "Command executed was \"%s\"\n" msgstr "" #: ../address_gui.c:2525 #, c-format msgid "return code was %d\n" msgstr "" #: ../address_gui.c:2603 #, fuzzy msgid "chdir() failed\n" msgstr ".\n" #: ../address_gui.c:2606 msgid "Add Photo" msgstr "" #. Category menu #: ../address_gui.c:2828 ../KeyRing/keyring.c:2585 msgid "Category: " msgstr "O: " #: ../address_gui.c:2848 ../address_gui.c:4186 msgid "Mail" msgstr "l" #. Dial Phone Button #: ../address_gui.c:2851 ../address_gui.c:4189 ../dialer.c:307 ../dialer.c:331 msgid "Dial" msgstr "" #: ../address_gui.c:3041 ../datebook_gui.c:2757 ../memo_gui.c:1228 #: ../todo_gui.c:1697 msgid "Could not get temporary file name\n" msgstr "" #: ../address_gui.c:3049 ../datebook_gui.c:2765 ../memo_gui.c:1236 #: ../todo_gui.c:1705 msgid "Could not open temporary file for external editor\n" msgstr "" #: ../address_gui.c:3089 ../datebook_gui.c:2806 ../memo_gui.c:1277 #: ../todo_gui.c:1746 msgid "Could not open temporary file from external editor\n" msgstr "" #: ../address_gui.c:3261 ../address_gui.c:3292 msgid "-Unnamed-" msgstr "-RW-" #: ../address_gui.c:3374 ../memo_gui.c:1454 ../todo_gui.c:2019 msgid "0 records" msgstr "0 " #: ../address_gui.c:3377 ../datebook_gui.c:2637 ../memo_gui.c:1457 #: ../todo_gui.c:2022 #, c-format msgid "%d of %d records" msgstr " %d @ %d " #: ../address_gui.c:3772 ../address_gui.c:3780 ../KeyRing/keyring.c:2498 msgid "Name" msgstr "mW" #: ../address_gui.c:3773 ../address_gui.c:3774 ../address_gui.c:3775 #: ../address_gui.c:3781 msgid "Address" msgstr "a}" #: ../address_gui.c:3776 ../address_gui.c:3782 ../Expense/expense.c:584 #: ../Expense/expense.c:1405 msgid "Other" msgstr "L" #. Note textbox #: ../address_gui.c:3777 ../address_gui.c:3783 ../todo_gui.c:2484 #: ../Expense/expense.c:1836 ../KeyRing/keyring.c:2632 msgid "Note" msgstr "" #: ../address_gui.c:3793 msgid "Reverting to Address database\n" msgstr "" #: ../address_gui.c:3914 msgid "Phone" msgstr "q" #: ../address_gui.c:3946 #, fuzzy msgid "Quick Find: " msgstr "ֳtM" #. Cancel button #. Add record modification buttons #. Cancel button #: ../address_gui.c:3964 ../category.c:409 ../datebook_gui.c:1782 #: ../datebook_gui.c:5124 ../memo_gui.c:1692 ../todo_gui.c:2345 #: ../utils.c:1346 ../KeyRing/keyring.c:2528 msgid "Cancel" msgstr "" #: ../address_gui.c:3964 ../datebook_gui.c:5124 ../memo_gui.c:1692 #: ../todo_gui.c:2345 ../KeyRing/keyring.c:2528 #, fuzzy msgid "Cancel the modifications" msgstr "Mέק Ctrl+Enter" #. Delete Button #. Delete button #. Delete Button #. Delete button #. Delete, Copy, New, etc. buttons #. Delete button #: ../address_gui.c:3969 ../category.c:409 ../category.c:852 #: ../datebook_gui.c:5129 ../memo_gui.c:1697 ../todo_gui.c:2350 #: ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete" msgstr "R" #: ../address_gui.c:3969 ../datebook_gui.c:5129 ../memo_gui.c:1697 #: ../todo_gui.c:2350 ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 #, fuzzy msgid "Delete the selected record" msgstr "Rܪ Ctrl+D" #. Undelete Button #. Undelete button #. Undelete Button #. Undelete button #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 msgid "Undelete" msgstr "ϧR" #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 #, fuzzy msgid "Undelete the selected record" msgstr "Rܪ Ctrl+D" #. Copy button #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy" msgstr "ƻs" #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 #, fuzzy msgid "Copy the selected record" msgstr "Rܪ Ctrl+D" #. New button #. New Record button #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "New Record" msgstr "sW" #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 #, fuzzy msgid "Add a new record" msgstr "[Joӷs Ctrl+R" #. "Add Record" button #. Add Record button #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add Record" msgstr "[J" #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 #, fuzzy msgid "Add the new record" msgstr "[Joӷs Ctrl+R" #. "Apply Changes" button #. Apply Changes button #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Apply Changes" msgstr "Mܧ" #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 #, fuzzy msgid "Commit the modifications" msgstr "Mέק Ctrl+Enter" #. Private check box #. Private checkbox #: ../address_gui.c:4033 ../datebook_gui.c:5191 ../datebook_gui.c:5233 #: ../memo_gui.c:1747 ../todo_gui.c:2410 msgid "Private" msgstr "pH" #: ../address_gui.c:4118 #, fuzzy msgid "Change Photo" msgstr "" #: ../address_gui.c:4123 #, fuzzy msgid "Remove Photo" msgstr "" #: ../address_gui.c:4195 #, fuzzy msgid "Show In List" msgstr "" "bM\n" "" #: ../address_gui.c:4296 #, fuzzy msgid "Reminder" msgstr "" #: ../address_gui.c:4312 ../datebook_gui.c:238 ../datebook_gui.c:5221 #: ../datebook_gui.c:5378 msgid "Days" msgstr "" #. The Quickview (ALL) page #. All button #: ../address_gui.c:4356 ../datebook_gui.c:1478 ../datebook_gui.c:1782 #: ../utils.c:2528 msgid "All" msgstr "" #: ../alarms.c:232 ../datebook_gui.c:236 ../datebook_gui.c:5215 #: ../datebook_gui.c:5372 msgid "Minutes" msgstr "" #: ../alarms.c:234 ../datebook_gui.c:237 ../datebook_gui.c:5219 #: ../datebook_gui.c:5376 msgid "Hours" msgstr "p" #: ../alarms.c:255 msgid "Remind me" msgstr "" #: ../alarms.c:425 ../alarms.c:991 ../sync.c:1639 ../sync.c:1645 #: ../utils.c:3717 #, c-format msgid "Unable to open file: %s%s\n" msgstr "Lk}ɮ %s%s\n" #: ../alarms.c:512 msgid "Appointment Reminder" msgstr "|" #: ../alarms.c:515 msgid "Past Appointment" msgstr "L|" #: ../alarms.c:518 msgid "Postponed Appointment" msgstr "|" #: ../alarms.c:521 ../datebook_gui.c:5025 msgid "Appointment" msgstr "|" #: ../alarms.c:605 msgid "J-Pilot Alarm" msgstr "J-Pilot xa" #: ../category.c:131 ../category.c:188 ../sync.c:2158 ../sync.c:2495 msgid "PC file corrupt?\n" msgstr "PC ɮ׷laF?\n" #: ../category.c:138 ../category.c:148 ../category.c:196 ../category.c:206 #: ../category.c:216 ../sync.c:2280 ../sync.c:2334 ../sync.c:2371 #: ../sync.c:2386 ../sync.c:2410 ../sync.c:2630 ../sync.c:2675 ../sync.c:2712 #: ../sync.c:2725 ../sync.c:2750 msgid "fseek failed - fatal error\n" msgstr "fseek - Y~\n" #: ../category.c:364 ../utils.c:2738 ../utils.c:2812 ../utils.c:2916 #: ../utils.c:2981 msgid "rename failed" msgstr "קW٥" #: ../category.c:409 msgid "Move" msgstr "" #: ../category.c:438 ../category.c:500 ../category.c:580 ../category.c:769 msgid "Edit Categories" msgstr "sO" #: ../category.c:439 msgid "The maximum number of categories (16) are already used" msgstr "̦huϥ16O, wFW" #: ../category.c:442 msgid "Enter New Category" msgstr "JsO" #: ../category.c:453 ../category.c:477 #, fuzzy msgid "Edit Categories Error" msgstr "sO" #: ../category.c:454 msgid "You must select a category to rename" msgstr "Anܤ@O~W" #: ../category.c:463 msgid "Enter New Category Name" msgstr "пJsOW" #: ../category.c:478 msgid "You must select a category to delete" msgstr "Aܤ@O~R" #: ../category.c:496 #, c-format msgid "" "There are %d records in %s.\n" "Do you want to move them to %s, or delete them?" msgstr "" "`@ %d Ʀb %s..\n" "Twn %s άOR?" #: ../category.c:556 #, c-format msgid "invalid state file %s line %d\n" msgstr "Lijzɮ %s %d \n" #: ../category.c:578 #, c-format msgid "The category %s can't be used more than once" msgstr "O %s u঳@" #. Category names in host character set #: ../category.c:735 #, fuzzy msgid "Category" msgstr "O:" #: ../category.c:836 msgid "New" msgstr "sW" #: ../category.c:843 msgid "Rename" msgstr "W" #: ../dat.c:456 msgid "unknown type =" msgstr " =" #: ../dat.c:537 #, c-format msgid "fields per row count != %d, unknown format\n" msgstr "fields per row count != %d, 榡\n" #: ../dat.c:551 #, c-format msgid "field count != %d, unknown format\n" msgstr "field count != %d, 榡\n" #: ../dat.c:559 msgid "Unknown format, file has wrong schema\n" msgstr "榡, file has wrong schema\n" #: ../dat.c:560 msgid "File schema is:" msgstr "ɮתschemaO:" #: ../dat.c:564 #, fuzzy msgid "It should be:" msgstr "ӬO: " #: ../dat.c:674 ../dat.c:692 ../dat.c:876 ../dat.c:889 ../dat.c:1012 #: ../dat.c:1025 ../dat.c:1149 ../dat.c:1162 #, c-format msgid "%s:%d Record %d, field %d: Invalid type. Expected %d, found %d\n" msgstr "%s:%d Record %d, field %d: L. w %d o %d\n" #: ../dat.c:675 ../dat.c:693 ../dat.c:877 ../dat.c:890 ../dat.c:994 #: ../dat.c:1013 ../dat.c:1026 ../dat.c:1150 ../dat.c:1163 msgid "read of file terminated\n" msgstr "Ūɮפ_\n" #: ../datebook.c:705 ../datebook_gui.c:3648 #, c-format msgid "Unknown repeatType (%d) found in DatebookDB\n" msgstr "bDatebookDB repeatType (%d)\n" #: ../datebook_gui.c:241 #, fuzzy msgid "Repeat Never" msgstr "Ƥ覡:" #: ../datebook_gui.c:242 #, fuzzy msgid "Repeat Daily" msgstr "Ʃ:" #: ../datebook_gui.c:243 #, fuzzy msgid "Repeat Weekly" msgstr "Ƥ覡:" #: ../datebook_gui.c:244 #, fuzzy msgid "Repeat MonthlyByDay" msgstr "Ʃ:" #: ../datebook_gui.c:245 #, fuzzy msgid "Repeat MonthlyByDate" msgstr "Ʃ:" #: ../datebook_gui.c:246 msgid "Repeat YearlyDate" msgstr "" #: ../datebook_gui.c:247 #, fuzzy msgid "Repeat YearlyDay" msgstr "Ʃ:" #: ../datebook_gui.c:250 ../datebook_gui.c:257 ../datebook_gui.c:4803 #: ../datebook_gui.c:4810 msgid "Su" msgstr "" #: ../datebook_gui.c:251 ../datebook_gui.c:4804 msgid "Mo" msgstr "@" #: ../datebook_gui.c:252 ../datebook_gui.c:4805 msgid "Tu" msgstr "G" #: ../datebook_gui.c:253 ../datebook_gui.c:4806 msgid "We" msgstr "T" #: ../datebook_gui.c:254 ../datebook_gui.c:4807 msgid "Th" msgstr "|" #: ../datebook_gui.c:255 ../datebook_gui.c:4808 msgid "Fr" msgstr "" #: ../datebook_gui.c:256 ../datebook_gui.c:4809 msgid "Sa" msgstr "" #: ../datebook_gui.c:269 #, c-format msgid "" "Start Date: %s\n" "Time: Event" msgstr "" #: ../datebook_gui.c:277 #, c-format msgid "" "Start Date: %s\n" "Time: %s to %s" msgstr "" #: ../datebook_gui.c:287 ../datebook_gui.c:297 msgid "Unknown" msgstr "" #. End Date #: ../datebook_gui.c:300 #, fuzzy msgid "End Date: " msgstr "ק" #: ../datebook_gui.c:302 msgid "Never" msgstr "" #: ../datebook_gui.c:308 #, c-format msgid "Repeat Frequency: %d\n" msgstr "" #: ../datebook_gui.c:316 #, c-format msgid "Monthly Repeat Day %d\n" msgstr "" #: ../datebook_gui.c:321 ../datebook_gui.c:5520 msgid "Repeat on Days:" msgstr "Ʃ:" #: ../datebook_gui.c:332 #, fuzzy, c-format msgid "Number of exceptions: %d" msgstr "ƥ = %d\n" #: ../datebook_gui.c:338 msgid "" "\n" "more..." msgstr "" #: ../datebook_gui.c:359 ../datebook_gui.c:386 msgid "Description:" msgstr "" #: ../datebook_gui.c:360 ../datebook_gui.c:387 #, fuzzy msgid "Note:" msgstr "" #: ../datebook_gui.c:362 ../datebook_gui.c:390 #, fuzzy msgid "Alarm:" msgstr "xa" #: ../datebook_gui.c:363 ../datebook_gui.c:391 #, fuzzy msgid "Repeat Type:" msgstr "Ƥ覡:" #: ../datebook_gui.c:366 ../datebook_gui.c:394 #, fuzzy msgid "Start of Week:" msgstr "Cg" #: ../datebook_gui.c:388 ../datebook_gui.c:5343 msgid "Location:" msgstr "" #: ../datebook_gui.c:620 ../datebook_gui.c:2271 #, c-format msgid "Appointment description text > %d, truncating to %d\n" msgstr "|yzr > %d, I_ %d\n" #: ../datebook_gui.c:631 ../datebook_gui.c:1148 ../datebook_gui.c:2331 #: ../datebook_gui.c:2338 msgid "Error" msgstr "~" #: ../datebook_gui.c:632 msgid "File doesn't appear to be datebook.dat format\n" msgstr "ɮצGO datebook.dat 榡\n" #: ../datebook_gui.c:699 msgid "DAT/DBA (Palm Archive Formats)" msgstr "" #: ../datebook_gui.c:787 #, c-format msgid "" "Datebook exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:790 #, c-format msgid "" "Calendar exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:817 ../todo_gui.c:701 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ical file may not be standards-compliant\n" msgstr "" #: ../datebook_gui.c:1148 msgid "Unknown export type" msgstr "ץX" #: ../datebook_gui.c:1228 ../todo_gui.c:872 #, fuzzy msgid "iCalendar" msgstr "M" #: ../datebook_gui.c:1240 ../export_gui.c:251 ../jpilot.c:429 msgid "Export" msgstr "ץX" #. Label for instructions #: ../datebook_gui.c:1257 msgid "Export All Datebook Records" msgstr "ץX Datebook " #: ../datebook_gui.c:1276 ../export_gui.c:316 msgid "Save as" msgstr "ts" #. Browse button #: ../datebook_gui.c:1286 ../export_gui.c:329 msgid "Browse" msgstr "s" #: ../datebook_gui.c:1432 msgid "Datebook Categories" msgstr "ƾO" #. None button #. Labels for notebook tabs #: ../datebook_gui.c:1484 ../datebook_gui.c:2026 ../datebook_gui.c:5449 msgid "None" msgstr "L" #: ../datebook_gui.c:1633 msgid "Begin On Date" msgstr "}l" #: ../datebook_gui.c:1639 msgid "End On Date" msgstr "ק" #: ../datebook_gui.c:1751 ../prefs.c:451 msgid "Sunday" msgstr "P" #: ../datebook_gui.c:1752 ../prefs.c:452 msgid "Monday" msgstr "P@" #: ../datebook_gui.c:1753 msgid "Tuesday" msgstr "PG" #: ../datebook_gui.c:1754 msgid "Wednesday" msgstr "PT" #: ../datebook_gui.c:1755 msgid "Thursday" msgstr "P|" #: ../datebook_gui.c:1756 msgid "Friday" msgstr "P" #: ../datebook_gui.c:1757 msgid "Saturday" msgstr "P" #: ../datebook_gui.c:1760 msgid "4th" msgstr "ĥ|g" #: ../datebook_gui.c:1760 msgid "Last" msgstr "g" #: ../datebook_gui.c:1763 #, c-format msgid "" "This appointment can either\n" "repeat on the 4th %s\n" "of the month, or on the last\n" "%s of the month.\n" "Which do you want?" msgstr "" "oӬ|iHb몺\n" "ĥ|g %s άO \n" "̫@g %s\n" "аݦp?" #: ../datebook_gui.c:1770 ../datebook_gui.c:1786 msgid "Question?" msgstr "ð?" #: ../datebook_gui.c:1777 #, fuzzy msgid "" "This is a repeating event.\n" "Do you want to apply these changes to\n" "only the CURRENT event,\n" "just FUTURE events, or\n" "ALL of the occurrences of this event?" msgstr "" "oO@ӭƵoͪƥ.\n" "z谵ק, OȾAΩ\n" "yثezƥάOoƥ\n" "yCo͡zɳA?" #: ../datebook_gui.c:1782 msgid "Current" msgstr "ثeƥ" #: ../datebook_gui.c:1782 msgid "Future" msgstr "" #: ../datebook_gui.c:2027 msgid "day" msgstr "" #: ../datebook_gui.c:2028 msgid "week" msgstr "g" #: ../datebook_gui.c:2029 msgid "month" msgstr "Ӥ" #: ../datebook_gui.c:2030 msgid "year" msgstr "~" #: ../datebook_gui.c:2326 ../datebook_gui.c:2329 #, c-format msgid "You cannot have an appointment that repeats every %d %s(s)\n" msgstr "z[J|LkC %d %sƤ@.\n" #: ../datebook_gui.c:2339 #, fuzzy msgid "" "You cannot have a weekly repeating appointment that doesn't repeat on any " "day of the week." msgstr "z]wF@ӨCgƪ|, zwb@ѭ." #. This is a timeless event #: ../datebook_gui.c:2516 ../datebook_gui.c:5264 msgid "No Time" msgstr "wɶ" #: ../datebook_gui.c:2788 ../memo_gui.c:1259 ../todo_gui.c:1728 msgid "External editor command too long to execute\n" msgstr "" #: ../datebook_gui.c:2943 msgid "Invalid Appointment" msgstr "LĬ|" #: ../datebook_gui.c:2944 msgid "" "The End Date of this appointment\n" "is before the start date." msgstr "" "oӬ|\n" "}l٦." #. "No Date" check box #: ../datebook_gui.c:3339 ../datebook_gui.c:5482 ../datebook_gui.c:5513 #: ../datebook_gui.c:5565 ../datebook_gui.c:5613 ../todo_gui.c:142 #: ../todo_gui.c:2454 msgid "No Date" msgstr "L" #: ../datebook_gui.c:3494 #, fuzzy, c-format msgid "Error in DateBookDB or Calendar advanceUnits = %d\n" msgstr "DateBookDB ~advanceUnits = %d\n" #: ../datebook_gui.c:3681 #, c-format msgid "%%a., %s" msgstr "" #: ../datebook_gui.c:3686 msgid " (TODAY)" msgstr "" #. Weekview button #: ../datebook_gui.c:4934 ../datebook_gui.c:5451 msgid "Week" msgstr "g" #: ../datebook_gui.c:4943 #, fuzzy msgid "View appointments by week Ctrl+W" msgstr "g˵" #. Monthview button #: ../datebook_gui.c:4946 ../datebook_gui.c:5452 msgid "Month" msgstr "" #: ../datebook_gui.c:4955 #, fuzzy msgid "View appointments by month Ctrl+M" msgstr "˵" #. Make Category button #: ../datebook_gui.c:4960 msgid "Cats" msgstr "O" #: ../datebook_gui.c:5024 msgid "Time" msgstr "ɶ" #. "Show ToDos" button #: ../datebook_gui.c:5067 msgid "Show ToDos" msgstr "ܥNƶ" #: ../datebook_gui.c:5081 ../todo_gui.c:2285 msgid "Task" msgstr "u@" #: ../datebook_gui.c:5082 ../todo_gui.c:2286 msgid "Due" msgstr "" #: ../datebook_gui.c:5201 ../datebook_gui.c:5358 msgid "Alarm" msgstr "xa" #. Date Spinners #: ../datebook_gui.c:5241 ../Expense/expense.c:1736 msgid "Date:" msgstr ":" #. Start date and time #: ../datebook_gui.c:5283 #, fuzzy msgid "Start" msgstr "}l" #. End date and time #: ../datebook_gui.c:5300 #, fuzzy msgid "End" msgstr "" #: ../datebook_gui.c:5433 msgid "DateBk Tags" msgstr "DateBk аO" #: ../datebook_gui.c:5450 msgid "Day" msgstr "" #: ../datebook_gui.c:5453 msgid "Year" msgstr "~" #. "No Repeat" page for notebook #: ../datebook_gui.c:5456 msgid "This event will not repeat" msgstr "ƥ󤣷|" #: ../datebook_gui.c:5465 ../datebook_gui.c:5498 ../datebook_gui.c:5550 #: ../datebook_gui.c:5596 msgid "Frequency is Every" msgstr "WvOC" #: ../datebook_gui.c:5471 msgid "Day(s)" msgstr "" #: ../datebook_gui.c:5474 ../datebook_gui.c:5507 ../datebook_gui.c:5559 #: ../datebook_gui.c:5605 msgid "End on" msgstr "" #: ../datebook_gui.c:5504 msgid "Week(s)" msgstr "g" #: ../datebook_gui.c:5556 msgid "Month(s)" msgstr "" #: ../datebook_gui.c:5573 msgid "Repeat by:" msgstr "Ƥ覡:" #: ../datebook_gui.c:5577 msgid "Day of week" msgstr "Cg" #: ../datebook_gui.c:5586 ../Expense/expense.c:1618 msgid "Date" msgstr "Ӥ몺ĴX" #: ../datebook_gui.c:5602 msgid "Year(s)" msgstr "C~" #: ../dialer.c:195 msgid "Phone Dialer" msgstr "qܼ" #: ../dialer.c:230 msgid "Prefix 1" msgstr "emX 1" #: ../dialer.c:252 msgid "Prefix 2" msgstr "emX 2" #: ../dialer.c:274 msgid "Prefix 3" msgstr "emX 3" #: ../dialer.c:289 msgid "Phone number:" msgstr "qܸX:" #: ../dialer.c:319 msgid "Extension" msgstr "X" #: ../dialer.c:341 msgid "Dial Command" msgstr "RO" #: ../export_gui.c:121 msgid "File Browser" msgstr "ɮs" #. Label for instructions #: ../export_gui.c:273 msgid "Select records to be exported" msgstr "пܭnץX" #: ../export_gui.c:275 msgid "Use Ctrl and Shift Keys" msgstr "ϥ Ctrl M Shift " #. Import button #: ../import_gui.c:300 ../import_gui.c:369 ../import_gui.c:426 #: ../import_gui.c:471 ../jpilot.c:385 msgid "Import" msgstr "פJ" #: ../import_gui.c:317 #, c-format msgid "Record was marked as private" msgstr "wаO\"pH\"" #: ../import_gui.c:319 #, c-format msgid "Record was not marked as private" msgstr "аO\"pH\"" #: ../import_gui.c:328 #, c-format msgid "Category before import was: [%s]" msgstr "פJeO: [%s]" #: ../import_gui.c:336 #, c-format msgid "Record will be put in category [%s]" msgstr "NmO [%s]" #. Import All button #: ../import_gui.c:376 msgid "Import All" msgstr "פJ" #. Skip button #: ../import_gui.c:383 msgid "Skip" msgstr "L" #: ../import_gui.c:457 ../install_gui.c:429 msgid "To change to a hidden directory type it below and hit TAB" msgstr "Ynåؿ, ЦbUJ TAB " #: ../import_gui.c:484 msgid "Import File Type" msgstr "פJɮ" #: ../install_gui.c:366 #, fuzzy msgid "Files to install" msgstr "Nw˪ɮ" #: ../install_gui.c:374 msgid "Install" msgstr "w" #: ../install_user.c:118 ../install_user.c:220 #, fuzzy msgid "Install User" msgstr "/ɮ(F)/w(I)" #: ../install_user.c:139 msgid "" "A PalmOS(c) device needs a user name and a user ID in order to sync properly." msgstr "" #: ../install_user.c:146 msgid "" "If you want to sync more than 1 PalmOS(c) device each one should have a " "different ID and preferably a different user name." msgstr "" #. Instruction label #: ../install_user.c:168 msgid "Most people choose their name or nickname for the user name." msgstr "" #: ../install_user.c:176 ../restore_gui.c:278 msgid "User Name" msgstr "ϥΪ̦W" #: ../install_user.c:186 msgid "The ID should be a random number." msgstr "" #: ../install_user.c:194 ../restore_gui.c:297 msgid "User ID" msgstr "ϥΪ ID" #: ../jpilot.c:319 msgid "Print" msgstr "CL" #: ../jpilot.c:320 msgid "There is no print support for this conduit." msgstr "oӦPBqD䴩CL." #: ../jpilot.c:386 msgid "There is no import support for this conduit." msgstr "oӦPBqD䴩פJ." #: ../jpilot.c:430 msgid "There is no export support for this conduit." msgstr "oӦPBqD䴩ץX." #: ../jpilot.c:659 #, fuzzy msgid " Cancelling HotSync\n" msgstr "PB" #. ------------------------------------------- #: ../jpilot.c:675 #, fuzzy msgid "" "This handheld does not have the same user name or user ID\n" "as the one that was synced the last time.\n" "Syncing could have unwanted effects including data loss.\n" "\n" "Read the user manual if you are uncertain." msgstr "" "oPalm PDAMJ-PilotWϥΪ̦W٤P,\n" "άOϥΪIDäO̫@PB@,\n" "pGPBNiyALkɪl.\n" "pGTwܽиԲӾ\ŪϥΪ̤U." #. ------------------------------------------- #: ../jpilot.c:682 #, fuzzy msgid "" "This handheld has a NULL user ID.\n" "Every handheld must have a unique user ID in order to sync properly.\n" "If the handheld has been hard reset, \n" " use restore from the menu to restore it.\n" "Otherwise, to add a new user name and ID\n" " use install-user from the menu.\n" "\n" "Read the user manual if you are uncertain." msgstr "" "o Palm PDA ϥΪ ID O\"Ū\"\n" "C@ Palm ݨƤ@ӿW@LG\n" "ϥΪID~iH`PB. pGoPalm\n" "eg@L hard reset, Шϥο椤\n" "\"_\"Ӧ^_en]w, άOz]iHϥ\n" " pilot-xfer u{ install-user. ӼW[@\n" "ϥΪ̦W٩M ID, \n" "Ҧp install-user \"W\" 12345.\n" "pGTwܽиԲӾ\ŪϥΪ̤U." #: ../jpilot.c:690 msgid "Cancel Sync" msgstr "PB" #: ../jpilot.c:690 msgid "Sync Anyway" msgstr "D, Ӽ˦PB" #: ../jpilot.c:699 ../jpilot.c:703 msgid "Sync Problem" msgstr "PBD" #: ../jpilot.c:932 ../jpilot.c:1785 msgid " User: " msgstr " ϥΪ: " #: ../jpilot.c:944 msgid "Unknown command from sync process\n" msgstr "PBL{ϥΤFRO\n" #: ../jpilot.c:963 ../Expense/expense.c:529 ../KeyRing/keyring.c:1872 #: ../SyncTime/synctime.c:61 #, c-format msgid "About %s" msgstr " %s" #: ../jpilot.c:1105 msgid "/_File" msgstr "/ɮ(F)" #: ../jpilot.c:1106 msgid "/File/tear" msgstr "/ɮ(F)/tear" #: ../jpilot.c:1107 msgid "/File/_Find" msgstr "/ɮ(F)/M(F)" #: ../jpilot.c:1108 ../jpilot.c:1114 ../jpilot.c:1117 msgid "/File/sep1" msgstr "/ɮ(F)/sep1" #: ../jpilot.c:1109 msgid "/File/_Install" msgstr "/ɮ(F)/w(I)" #: ../jpilot.c:1110 msgid "/File/Import" msgstr "/ɮ(F)/פJ" #: ../jpilot.c:1111 msgid "/File/Export" msgstr "/ɮ(F)/ץX" #: ../jpilot.c:1112 ../jpilot.c:2190 msgid "/File/Preferences" msgstr "/ɮ(F)/n]w" #: ../jpilot.c:1113 msgid "/File/_Print" msgstr "/ɮ(F)/CL(P)" #: ../jpilot.c:1115 #, fuzzy msgid "/File/Install User" msgstr "/ɮ(F)/w(I)" #: ../jpilot.c:1116 msgid "/File/Restore Handheld" msgstr "/ɮ(F)/_PDA" #: ../jpilot.c:1118 msgid "/File/_Quit" msgstr "/ɮ(F)/}(Q)" #: ../jpilot.c:1119 msgid "/_View" msgstr "/˵(V)" #: ../jpilot.c:1120 ../jpilot.c:1121 ../jpilot.c:1122 ../jpilot.c:1368 msgid "/View/Hide Private Records" msgstr "/˵(V)/èpH" #: ../jpilot.c:1121 ../jpilot.c:1371 msgid "/View/Show Private Records" msgstr "/˵(V)/ܨpH" #: ../jpilot.c:1122 ../jpilot.c:1374 msgid "/View/Mask Private Records" msgstr "/˵(V)/BnpH" #: ../jpilot.c:1123 msgid "/View/sep1" msgstr "/˵(V)/sep1" #: ../jpilot.c:1124 msgid "/View/Datebook" msgstr "/˵(V)/ƾ" #: ../jpilot.c:1125 msgid "/View/Addresses" msgstr "/˵(V)/a}ï" #: ../jpilot.c:1126 msgid "/View/Todos" msgstr "/˵(V)/ݿƶ" #: ../jpilot.c:1127 msgid "/View/Memos" msgstr "/˵(V)/Ƨѿ" #: ../jpilot.c:1128 ../jpilot.c:1259 msgid "/_Plugins" msgstr "/~{(P)" #: ../jpilot.c:1130 msgid "/_Web" msgstr "/Web(W)" #. web #: ../jpilot.c:1131 msgid "/Web/Netscape" msgstr "/Web(W)/Netscape" #: ../jpilot.c:1135 msgid "/Web/Mozilla" msgstr "/Web(W)/Mozilla" #: ../jpilot.c:1140 msgid "/Web/Galeon" msgstr "/Web(W)/Galeon" #: ../jpilot.c:1145 msgid "/Web/Opera" msgstr "/Web(W)/Opera" #: ../jpilot.c:1149 msgid "/Web/GnomeUrl" msgstr "/Web(W)/GnomeUrl" #: ../jpilot.c:1151 msgid "/Web/Lynx" msgstr "/Web(W)/Lynx" #: ../jpilot.c:1153 msgid "/Web/Links" msgstr "/Web(W)/Links" #: ../jpilot.c:1155 msgid "/Web/W3M" msgstr "/Web(W)/W3M" #: ../jpilot.c:1157 msgid "/Web/Konqueror" msgstr "/Web(W)/Konqueror" #: ../jpilot.c:1160 msgid "/_Help" msgstr "/(H)" #: ../jpilot.c:1161 #, fuzzy msgid "/Help/About J-Pilot" msgstr "/(H)/J-Pilot" #: ../jpilot.c:1227 #, c-format msgid "/_Plugins/%s" msgstr "/~{(P)/%s" #: ../jpilot.c:1237 #, c-format msgid "/_Help/%s" msgstr "/(H)/%s" #: ../jpilot.c:1591 msgid "calendar:week_start:0" msgstr "ƾ:Cg}l:0" #: ../jpilot.c:1634 ../jpilot-sync.c:171 msgid "Not loading plugins.\n" msgstr "J~{.\n" #: ../jpilot.c:1638 msgid "Ignoring all alarms.\n" msgstr "Ҧxa]w.\n" #: ../jpilot.c:1642 msgid "Ignoring past alarms.\n" msgstr "Lxa]w.\n" #: ../jpilot.c:1730 ../jpilot.c:1738 msgid "Unable to open pipe\n" msgstr "Lk}Һ޽u\n" #: ../jpilot.c:1947 #, fuzzy msgid "Show private records Ctrl+Z" msgstr "ܨpH Ctrl-Z" #: ../jpilot.c:1952 #, fuzzy msgid "Hide private records Ctrl+Z" msgstr "èpH Ctrl-Z" #: ../jpilot.c:1957 #, fuzzy msgid "Mask private records Ctrl+Z" msgstr "BnpH Ctrl-Z" #: ../jpilot.c:1969 #, fuzzy msgid "Sync your palm to the desktop Ctrl+Y" msgstr " Palm P J-Pilot PB Ctrl-Y" #: ../jpilot.c:1981 #, fuzzy msgid "Stop Sync process" msgstr "PBa}" #: ../jpilot.c:1993 msgid "" "Sync your palm to the desktop\n" "and then do a backup" msgstr "" "PB Palm P J-Pilot \n" "ç@ƥ" #: ../jpilot.c:2141 msgid "Datebook/Go to Today" msgstr "ƾ/\"\"" #: ../jpilot.c:2142 msgid "Address Book" msgstr "a}ï" #: ../jpilot.c:2143 msgid "ToDo List" msgstr "ݿƶ" #: ../jpilot.c:2144 msgid "Memo Pad" msgstr "Ƨѿ" #: ../jpilot.c:2172 msgid "Do it now" msgstr "No򰵧a" #: ../jpilot.c:2172 msgid "Remind me later" msgstr "yᴣ" #: ../jpilot.c:2172 msgid "Don't tell me again!" msgstr "OAЧ, ڤwgDF!" #: ../jpilot.c:2185 #, fuzzy, c-format msgid "" "J-Pilot uses the GTK2 graphical toolkit. This version of the toolkit uses " "UTF-8 to encode characters.\n" "You should select a UTF-8 charset so that you can see non-ASCII characters " "(accents for example).\n" "\n" "Go to the menu \"%s\" and change the \"%s\"." msgstr "" "ثe J-Pilot ϥ GTK2 graphical toolkit. oӪ GTK2 ϥ UTF-8 @w" "]sX.\n" "Aܤ@ UTF-8 r~ݨDASCIIr (Ҧp).\n" "\n" #. Character Set #: ../jpilot.c:2190 ../prefs_gui.c:511 #, fuzzy msgid "Character Set" msgstr "r " #: ../jpilot.c:2192 msgid "Select a UTF-8 encoding" msgstr "ܤ@ UTF-8 r" #: ../jpilot-dump.c:94 #, fuzzy, c-format msgid " +D +A +T +M format like date +format.\n" msgstr " +B +M +A +T 榡۪ date +榡 (Шϥ -? FѧhԲӸT).\n" #: ../jpilot-dump.c:95 #, fuzzy, c-format msgid " -v display version and exit\n" msgstr " -v Njpilot}\n" #: ../jpilot-dump.c:96 ../jpilot-sync.c:68 ../utils.c:1874 #, fuzzy, c-format msgid " -h display help text\n" msgstr " -h NܨDU}.\n" #: ../jpilot-dump.c:97 #, fuzzy, c-format msgid " -f display help for format codes\n" msgstr " -h NܨDU}.\n" #: ../jpilot-dump.c:98 #, fuzzy, c-format msgid " -D dump DateBook\n" msgstr " -B ɦLƾ.\n" #: ../jpilot-dump.c:99 #, fuzzy, c-format msgid " -i dump DateBook in iCalendar format\n" msgstr " -B ɦLƾ.\n" #: ../jpilot-dump.c:100 #, fuzzy, c-format msgid " -N dump appts for today in DateBook\n" msgstr " -N ɦLƾ䪺.\n" #: ../jpilot-dump.c:101 #, fuzzy, c-format msgid " -NYYYY/MM/DD dump appts on YYYY/MM/DD in DateBook\n" msgstr " -NYYYY/MM/DD N| YYYY/MM/DD 榡ɦLƾ䪺.\n" #: ../jpilot-dump.c:102 #, fuzzy, c-format msgid " -A dump Address book\n" msgstr " -A ɦLa}ï.\n" #: ../jpilot-dump.c:103 #, fuzzy, c-format msgid " -T dump ToDo list as CSV\n" msgstr " -T NNƶCSV榡ɦLX.\n" #: ../jpilot-dump.c:104 #, fuzzy, c-format msgid " -M dump Memos\n" msgstr " -M ɦLƧѿ.\n" #: ../jpilot-dump.c:165 #, c-format msgid "" "Warning: Host character encoding is not UTF-8 based.\n" "Exported ical file may not be standards-compliant\n" msgstr "" #: ../jpilot-merge.c:163 ../jpilot-merge.c:169 #, fuzzy, c-format msgid "%s: Unable to open file:%s\n" msgstr "Lk}ɮ: %s\n" #: ../jpilot-merge.c:271 #, c-format msgid "Records read from pdb = %d\n" msgstr "" #: ../jpilot-merge.c:272 #, c-format msgid "Records added = %d\n" msgstr "" #: ../jpilot-merge.c:273 #, c-format msgid "Records deleted = %d\n" msgstr "" #: ../jpilot-merge.c:274 #, c-format msgid "Records modified = %d\n" msgstr "" #: ../jpilot-merge.c:275 #, c-format msgid "Records written = %d\n" msgstr "" #: ../jpilot-merge.c:293 #, c-format msgid "Usage: %s {input pdb file} {input pc3 file} {output pdb file}\n" msgstr "" #: ../jpilot-merge.c:294 #, c-format msgid " This program will merge an unsynced records file (pc3)\n" msgstr "" #: ../jpilot-merge.c:295 #, c-format msgid "" " into the corresponding palm database (pdb) file.\n" "\n" msgstr "" #: ../jpilot-merge.c:296 #, c-format msgid " WARNING: Only run this utility if you understand the consequences!\n" msgstr "" #: ../jpilot-merge.c:297 #, c-format msgid " The merge will leave your databases in an unsync-able state.\n" msgstr "" #: ../jpilot-merge.c:298 #, c-format msgid "" " It is intended for cases where J-pilot is being used as a standalone PIM\n" msgstr "" #: ../jpilot-merge.c:299 #, c-format msgid " and where no syncing occurs to physical hardware.\n" msgstr "" #: ../jpilot-merge.c:300 #, c-format msgid " WARNING: Make a backup copy of your databases before proceeding.\n" msgstr "" #: ../jpilot-merge.c:301 #, c-format msgid "" " It is quite simple to destroy your databases by accidentally merging\n" msgstr "" #: ../jpilot-merge.c:302 #, c-format msgid " address records into datebook databases, etc.\n" msgstr "" #: ../jpilot-sync.c:66 #, fuzzy, c-format msgid "" " J-Pilot preferences are read to get sync info such as port, rate, number of " "backups, etc.\n" msgstr "" " J-Pilot n]wN|ŪsΨӰ, stvάOnOdXƥ.\n" #: ../jpilot-sync.c:67 ../utils.c:1873 #, fuzzy, c-format msgid " -v display version and compile options\n" msgstr " -v ܪHνsĶﶵX.\n" #: ../jpilot-sync.c:69 ../utils.c:1875 #, fuzzy, c-format msgid " -d display debug info to stdout\n" msgstr " -d NTɦܼзǿX.\n" #: ../jpilot-sync.c:70 #, fuzzy, c-format msgid " -P skip loading plugins\n" msgstr "J~{.\n" #: ../jpilot-sync.c:71 #, fuzzy, c-format msgid " -b sync, and then do a backup\n" msgstr "" "PB Palm P J-Pilot \n" "ç@ƥ" #: ../jpilot-sync.c:72 #, fuzzy, c-format msgid " -l loop, otherwise sync once and exit\n" msgstr " -l = , _hNuPB@åB}.\n" #: ../jpilot-sync.c:73 #, fuzzy, c-format msgid " -p {port} use this port to sync on instead of default\n" msgstr " -p {port} = ϥγoӳsPBӤϥΰn]wҫws.\n" #: ../jpilot-sync.c:221 #, fuzzy, c-format msgid "Error: connecting to port %s\n" msgstr "}ɮ׮ɵoͿ~: %s\n" #: ../jpilot-sync.c:225 #, c-format msgid "Error: pi_listen\n" msgstr "" #: ../jpilot-sync.c:229 #, fuzzy, c-format msgid "Error: opening conduit to handheld\n" msgstr "}ɮ׮ɵoͿ~: next_id\n" #: ../jpilot-sync.c:233 #, c-format msgid "Error: pi_accept\n" msgstr "" #: ../jpilot-sync.c:237 ../jpilot-sync.c:265 #, fuzzy, c-format msgid "Error: " msgstr "~" #: ../jpilot-sync.c:238 #, c-format msgid "This handheld does not have the same user name.\n" msgstr "" #: ../jpilot-sync.c:239 ../jpilot-sync.c:253 #, c-format msgid "as the one that was synced the last time.\n" msgstr "" #: ../jpilot-sync.c:241 #, c-format msgid "" "Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:243 ../jpilot-sync.c:256 #, c-format msgid " COPILOT_HOME" msgstr "" #: ../jpilot-sync.c:245 ../jpilot-sync.c:258 #, c-format msgid " JPILOT_HOME" msgstr "" #: ../jpilot-sync.c:247 ../jpilot-sync.c:260 #, fuzzy, c-format msgid " environment variable can be used to sync different handhelds,\n" msgstr "z HOME ܼƹ J-Pilot ӻӪ\n" #: ../jpilot-sync.c:248 ../jpilot-sync.c:261 #, c-format msgid " to different directories for the same UNIX user name.\n" msgstr "" #: ../jpilot-sync.c:252 #, c-format msgid "This handheld does not have the same user ID.\n" msgstr "" #: ../jpilot-sync.c:254 #, c-format msgid "" " Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:266 #, c-format msgid "This handheld has a NULL user ID.\n" msgstr "" #: ../jpilot-sync.c:267 #, c-format msgid "Every handheld must have a unique user ID in order to sync properly.\n" msgstr "" #: ../jpilot-sync.c:268 #, c-format msgid "If the handheld has been hard reset, \n" msgstr "" #: ../jpilot-sync.c:269 #, c-format msgid " use restore from within " msgstr "" #: ../jpilot-sync.c:270 #, c-format msgid "Otherwise, to add a new user name and ID\n" msgstr "" #: ../jpilot-sync.c:271 #, c-format msgid " use \"install-user %s name numeric_id\"\n" msgstr "" #: ../jpilot-sync.c:275 #, c-format msgid "Error: sync returned error %d\n" msgstr "" #: ../libplugin.c:64 ../utils.c:1054 msgid "" "This record is already deleted.\n" "It is scheduled to be deleted from the Palm on the next sync.\n" msgstr "" "oӬwgQR.\n" "eQ]wƵ{NbU@PBɱqPalmR.\n" #: ../libplugin.c:73 ../libplugin.c:110 ../utils.c:1064 ../utils.c:1106 msgid "Unable to open PC records file\n" msgstr "Lk} PC Wɮ\n" #: ../libplugin.c:79 ../utils.c:1071 msgid "Couldn't find record to delete\n" msgstr "䤣nR\n" #: ../libplugin.c:97 ../utils.c:1091 #, c-format msgid "Unknown header version %d\n" msgstr "Y %d\n" #: ../libplugin.c:182 #, c-format msgid "%s:%d Error opening file: %s\n" msgstr "%s:%d }ɮ׮ɵoͿ~: %s\n" #: ../libplugin.c:188 ../libplugin.c:217 ../sync.c:1721 ../todo.c:102 #, c-format msgid "%s:%d Error reading file: %s\n" msgstr "%s:%d ŪJɮ׿~: %s\n" #: ../libplugin.c:340 ../libplugin.c:398 ../utils.c:2119 ../utils.c:2132 #, c-format msgid "Error opening file: %s\n" msgstr "}ɮ׮ɵoͿ~: %s\n" #: ../libplugin.c:526 #, c-format msgid "Error reading %s 5\n" msgstr "ŪJɮ׿~ %s 5\n" #: ../libplugin.c:801 msgid "Error reading PC file 1\n" msgstr "ŪJ PC ɮ׿~ 1\n" #: ../libplugin.c:817 msgid "Error reading PC file 2\n" msgstr "ŪJ PC ɮ׿~ 2\n" #: ../libplugin.c:923 #, c-format msgid "Unknown PC header version = %d\n" msgstr " PC Y = %d\n" #: ../log.c:101 #, c-format msgid "Unable to open log file, giving up.\n" msgstr "Lk}Ҥx, ާ@.\n" #: ../log.c:111 #, c-format msgid "Unable to open log file\n" msgstr "Lk}Ҥx\n" #: ../memo_gui.c:302 msgid "Memo text > 65535, truncating\n" msgstr "Ƨѿrj 65535 r, I_\n" #: ../memo_gui.c:330 #, c-format msgid "Imported Memo %s\n" msgstr "wפJƧѿ %s\n" #: ../memo_gui.c:400 msgid "File doesn't appear to be memopad.dat format\n" msgstr "ɮצGO memopad.dat 榡\n" #: ../memo_gui.c:471 msgid "DAT/MPA (Palm Archive Formats)" msgstr "" #: ../memo_gui.c:554 #, c-format msgid "" "Memo exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:557 #, c-format msgid "" "Memos exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:584 #, c-format msgid "Can't export memo %d\n" msgstr "LkץXƧѿ %d\n" #: ../memo_gui.c:628 #, fuzzy, c-format msgid "Memo: %ld\n" msgstr "Ƨѿ" #: ../memo_gui.c:634 #, c-format msgid "----- Start of Memo -----\n" msgstr "" #: ../memo_gui.c:636 #, c-format msgid "" "\n" "----- End of Memo -----\n" "\n" msgstr "" #: ../memo_gui.c:668 msgid "B-Folders CSV" msgstr "" #: ../monthview_gui.c:438 msgid "Monthly View" msgstr "˵" #: ../monthview_gui.c:480 msgid "Last month Alt+LeftArrow" msgstr "" #: ../monthview_gui.c:508 msgid "Next month Alt+RightArrow" msgstr "" #: ../otherconv.c:76 #, c-format msgid "%s: error exit from g_iconv_close(%s)\n" msgstr "" #: ../otherconv.c:201 #, c-format msgid "%s:%s g_convert_with_iconv error: %s, buff: %s\n" msgstr "" #: ../otherconv.c:203 msgid "last char truncated" msgstr "" #: ../otherconv.c:280 #, c-format msgid "UTF_to_other: %s\n" msgstr "" #: ../otherconv.c:294 #, c-format msgid "iconv: unconvertible sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:298 #, c-format msgid "iconv: incomplete UTF-8 sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:301 #, c-format msgid "iconv: buffer filled. stopped at place %d in '%s'\n" msgstr "" #: ../otherconv.c:304 #, c-format msgid "iconv: unexpected error at place %d in '%s'\n" msgstr "" #: ../password.c:283 msgid "Palm Password" msgstr "Palm KX" #: ../password.c:308 msgid "Incorrect, Reenter PalmOS Password" msgstr "T, ЭsJ PalmOS KX" #: ../password.c:310 msgid "Enter PalmOS Password" msgstr "пJ PalmOS KX" #: ../pidfile.c:67 msgid "removing stale pidfile\n" msgstr "" #: ../pidfile.c:91 #, fuzzy, c-format msgid "create pidfile failed: %s\n" msgstr "Ūɮ׿~: %s\n" #: ../pidfile.c:92 msgid "Warning: hotplug syncing disabled.\n" msgstr "" #: ../plugins.c:90 ../plugins.c:203 ../restore_gui.c:133 msgid "infinite loop" msgstr "Lj" #: ../plugins.c:216 #, c-format msgid "While reading %s%s line 1:[%s]\n" msgstr "Ū %s%s Ĥ@:[%s]\n" #: ../plugins.c:217 msgid "Wrong Version\n" msgstr "~\n" #: ../plugins.c:218 msgid "Check preferences->conduits\n" msgstr "ˬd n]w->PBqD\n" #: ../plugins.c:274 #, c-format msgid "" "Open failed on plugin [%s]\n" " error [%s]\n" msgstr "" "}ҥ~{ [%s] \n" "oͿ~ [%s]\n" #: ../plugins.c:291 ../plugins.c:316 #, c-format msgid " plugin is invalid: [%s]\n" msgstr " ~{L: [%s]\n" #: ../plugins.c:299 #, c-format msgid "Plugin:[%s]\n" msgstr "~{:[%s]\n" #: ../plugins.c:300 #, c-format msgid "This plugin is version (%d.%d).\n" msgstr "~{ (%d.%d).\n" #: ../plugins.c:302 msgid "It is too old to work with this version of J-Pilot.\n" msgstr "oӪ J-Pilot ӻbӦ¤F.\n" #: ../prefs.c:420 msgid "%B %d, %Y" msgstr "" #: ../prefs.c:421 msgid "%d %B %Y" msgstr "" #: ../prefs.c:422 msgid "%d. %B %Y" msgstr "" #: ../prefs.c:423 msgid "%d %B, %Y" msgstr "" #: ../prefs.c:424 msgid "%Y. %B. %d" msgstr "" #: ../prefs.c:425 msgid "%Y %B %d" msgstr "" #: ../prefs_gui.c:454 msgid "Preferences" msgstr "n]w" #: ../prefs_gui.c:485 msgid "Locale" msgstr "yt]w" #: ../prefs_gui.c:487 msgid "Settings" msgstr "]w" #: ../prefs_gui.c:489 msgid "Datebook" msgstr "ƾ" #: ../prefs_gui.c:493 msgid "ToDo" msgstr "ݿƶ" #: ../prefs_gui.c:495 msgid "Memo" msgstr "Ƨѿ" #: ../prefs_gui.c:497 msgid "Alarms" msgstr "ĵi" #: ../prefs_gui.c:499 msgid "Conduits" msgstr "PBqD" #. Shortdate #: ../prefs_gui.c:524 #, fuzzy msgid "Short date format" msgstr "u榡 " #. Longdate #: ../prefs_gui.c:537 #, fuzzy msgid "Long date format" msgstr "榡 " #. Time #: ../prefs_gui.c:550 #, fuzzy msgid "Time format" msgstr "ɶ榡 " #. GTK colors file #: ../prefs_gui.c:570 #, fuzzy msgid "GTK color theme file" msgstr "ڪ GTK CɬO " #. Port #: ../prefs_gui.c:583 #, fuzzy msgid "Sync Port" msgstr "PBD" #. Serial Rate #: ../prefs_gui.c:607 msgid "Serial Rate" msgstr "" #. Number of backups #: ../prefs_gui.c:627 msgid "Number of backups to be archived" msgstr "OdXƥ" #. Show deleted files check box #: ../prefs_gui.c:645 msgid "Show deleted records (default NO)" msgstr "ܤwR (w] _)" #. Show modified files check box #: ../prefs_gui.c:649 msgid "Show modified deleted records (default NO)" msgstr "ܤwR (w] _)" #: ../prefs_gui.c:654 msgid "Ask confirmation for file installation (J-Pilot -> PDA) (default YES)" msgstr "bw˵{ɽT{ (J-Pilot -> PDA) (w] O)" #. Show tooltips check box #: ../prefs_gui.c:658 #, fuzzy msgid "Show popup tooltips (default YES) (requires restart)" msgstr "ܼuXK޴ (w] O)" #: ../prefs_gui.c:668 msgid "Use Datebook database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:671 msgid "Use Calendar database (Palm OS > 5.2)" msgstr "" #. Show highlight days check box #: ../prefs_gui.c:697 msgid "Highlight calendar days with appointments" msgstr "bƾWGܦ|l" #. Highlight today on month and week view #: ../prefs_gui.c:702 msgid "Annotate today in day, week, and month views" msgstr "" #. Show number of years on anniversaries in month and week view #: ../prefs_gui.c:706 msgid "Append years on anniversaries in day, week, and month views" msgstr "" #. Show use DateBk check box #: ../prefs_gui.c:712 msgid "Use DateBk note tags" msgstr "ϥ DateBk аO" #: ../prefs_gui.c:715 msgid "DateBk support disabled in this build" msgstr "Sҥ DateBk 䴩" #: ../prefs_gui.c:727 msgid "Use Address database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:730 msgid "Use Contacts database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:759 msgid "Mail Command" msgstr "oHRO" #: ../prefs_gui.c:773 #, c-format msgid "%s is replaced by the e-mail address" msgstr "%s wgQqll}N" #: ../prefs_gui.c:785 msgid "Use ToDo database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:788 msgid "Use Task database (Palm OS > 5.2)" msgstr "" #. hide completed check box #: ../prefs_gui.c:815 msgid "Hide Completed ToDos" msgstr "äwݿƶ" #. hide todos not yet due check box #: ../prefs_gui.c:819 msgid "Hide ToDos not yet due" msgstr "åݿƶ" #. record todo completion date check box #: ../prefs_gui.c:823 msgid "Record Completion Date" msgstr "" #. Use Manana check box #: ../prefs_gui.c:828 msgid "Use Manana database" msgstr "ϥ Manana Ʈw" #: ../prefs_gui.c:836 msgid "Use default number of days due" msgstr "w]鬰" #: ../prefs_gui.c:858 msgid "Use Memo database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:861 msgid "Use Memos database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:864 #, fuzzy msgid "Use Memo32 database (pedit32)" msgstr "ϥ Memo32 (pedit32)" #: ../prefs_gui.c:904 msgid "External Editor" msgstr "" #: ../prefs_gui.c:917 msgid "Use Ctrl-E inside a memo to launch external editor for memo text" msgstr "" #. ******************************************************************** #. Alarms preference tab #. Open alarm windows check box #: ../prefs_gui.c:925 msgid "Open alarm windows for appointment reminders" msgstr "|ɶ}Ҿxa" #. Execute alarm command check box #: ../prefs_gui.c:929 msgid "Execute this command" msgstr "榹RO" #. Shell warning label #: ../prefs_gui.c:933 msgid "WARNING: executing arbitrary shell commands can be dangerous!!!" msgstr "ĵi: NtδߩRO۷MI!!!" #: ../prefs_gui.c:941 msgid "Alarm Command" msgstr "xaRO" #: ../prefs_gui.c:954 msgid "%t is replaced with the alarm time" msgstr "%t wgQxaɶN" #: ../prefs_gui.c:958 #, c-format msgid "%d is replaced with the alarm date" msgstr "%d wgQxaN" #: ../prefs_gui.c:963 msgid "%D is replaced with the alarm description" msgstr "%D wgQxayzN" #: ../prefs_gui.c:967 msgid "%N is replaced with the alarm note" msgstr "%N wgQxaN" #: ../prefs_gui.c:971 msgid "%D (description substitution) is disabled in this build" msgstr "Sҥ %D (yzN) \" #: ../prefs_gui.c:976 msgid "%N (note substitution) is disabled in this build" msgstr "Sҥ %N (N) \" #. ******************************************************************** #. Conduits preference tab #. Sync datebook check box #: ../prefs_gui.c:986 msgid "Sync datebook" msgstr "PBƾ" #. Sync address check box #: ../prefs_gui.c:990 msgid "Sync address" msgstr "PBa}" #. Sync todo check box #: ../prefs_gui.c:994 msgid "Sync todo" msgstr "PBݿƶ" #. Sync memo check box #: ../prefs_gui.c:998 msgid "Sync memo" msgstr "PBƧѿ" #. Show sync Manana check box #: ../prefs_gui.c:1003 msgid "Sync Manana" msgstr "PB Manana" #. Show use Japanese Kana extention check box #: ../prefs_gui.c:1009 msgid "Use J-OS (Not Japanese PalmOS:WorkPad/CLIE)" msgstr "ϥ J-OS (D PalmOS: WorkPad/CLIE)" #. Make a Sync checkbox for each plugin #: ../prefs_gui.c:1022 #, c-format msgid "Sync %s (%s)" msgstr "PB %s (%s)" #: ../print_gui.c:185 msgid "Print Options" msgstr "CLﶵ" #: ../print_gui.c:198 msgid "Paper Size" msgstr "ȱijp" #: ../print_gui.c:214 msgid "Daily Printout" msgstr "C" #: ../print_gui.c:220 msgid "Weekly Printout" msgstr "Cg" #: ../print_gui.c:226 msgid "Monthly Printout" msgstr "C" #: ../print_gui.c:266 #, fuzzy msgid "Selected record" msgstr "RF@ %s ." #: ../print_gui.c:270 msgid "All records in this category" msgstr "O" #: ../print_gui.c:274 msgid "Print all records" msgstr "CL" #: ../print_gui.c:296 msgid "One record per page" msgstr "CCL@" #: ../print_gui.c:312 #, fuzzy msgid "Blank lines between each record" msgstr " C[Ŧ" #. Print Command #: ../print_gui.c:321 msgid "Print Command (e.g. lpr, or cat > file.ps)" msgstr "CLRO (Ҧp lpr, cat > file.ps)" #: ../restore_gui.c:71 ../restore_gui.c:229 msgid "Restore Handheld" msgstr "_PDA" #: ../restore_gui.c:176 ../restore_gui.c:178 msgid "Unable to convert filename for GTK display\n" msgstr "" #: ../restore_gui.c:177 msgid "See console log to find which file will not be restored\n" msgstr "" #: ../restore_gui.c:179 #, fuzzy, c-format msgid "File %s will not be restored\n" msgstr "Nw˪ɮ" #. Label for instructions #: ../restore_gui.c:246 msgid "To restore your handheld:" msgstr "p_zPDA:" #: ../restore_gui.c:249 #, fuzzy msgid "1. Choose the applications you wish to restore. The default is all." msgstr "1. ܩҦzn_쪺ε{. w]O." #: ../restore_gui.c:252 msgid "2. Enter the User Name and User ID." msgstr "2. JϥΪ̦W٩MϥΪ ID." #: ../restore_gui.c:255 msgid "3. Press the OK button." msgstr "3. ITws." #: ../restore_gui.c:258 msgid "This will overwrite data that is currently on the handheld." msgstr "ާ@|мgثebPDAWҦ." #: ../search_gui.c:144 msgid "datebook" msgstr "ƾ" #: ../search_gui.c:146 #, fuzzy msgid "calendar" msgstr "M" #: ../search_gui.c:233 msgid "address" msgstr "a}ï" #: ../search_gui.c:235 msgid "contact" msgstr "" #: ../search_gui.c:304 msgid "todo" msgstr "ݿƶ" #: ../search_gui.c:361 msgid "memo" msgstr "Ƨѿ" #: ../search_gui.c:363 #, fuzzy msgid "memos" msgstr "Ƨѿ" #: ../search_gui.c:421 msgid "plugin ?" msgstr "~{ ?" #: ../search_gui.c:501 msgid "No records found" msgstr "䤣" #: ../search_gui.c:600 msgid "Search" msgstr "jM" #. Search label #: ../search_gui.c:617 msgid "Search for: " msgstr "jM: " #. Case Sensitive checkbox #: ../search_gui.c:626 msgid "Case Sensitive" msgstr "Ϥjpg" #: ../sync.c:120 msgid "open lock file failed\n" msgstr "wɮץ.\n" #: ../sync.c:133 msgid "lock failed\n" msgstr ".\n" #: ../sync.c:136 #, c-format msgid "sync file is locked by pid %d\n" msgstr "PBɮפwg pid %d w\n" #: ../sync.c:171 msgid "unlock failed\n" msgstr "Ѱw\n" #: ../sync.c:174 #, c-format msgid "sync is locked by pid %d\n" msgstr "PBwg pid %d w\n" #: ../sync.c:410 #, fuzzy msgid "Check your sync port and settings\n" msgstr "ˬdzǦCM]w\n" #: ../sync.c:669 msgid "Unable to read home dir\n" msgstr "LkŪaؿ\n" #: ../sync.c:1075 ../sync.c:1413 #, c-format msgid "%s (Creator ID '%s') is up to date, fetch skipped.\n" msgstr "%s (إߪ ID '%s') wgO̷sF, L^.\n" #: ../sync.c:1079 ../sync.c:1417 #, c-format msgid "Fetching '%s' (Creator ID '%s')... " msgstr "b^ '%s' (إߪ ID '%s')... " #: ../sync.c:1086 ../sync.c:1423 #, c-format msgid "Failed, unable to create file %s\n" msgstr "@~, Lkإɮ %s\n" #: ../sync.c:1090 ../sync.c:1428 #, c-format msgid "Failed, unable to back up database %s\n" msgstr "@~, LkƥƮw %s\n" #: ../sync.c:1094 ../sync.c:1432 ../sync.c:1619 msgid "OK\n" msgstr "Tw\n" #: ../sync.c:1294 #, c-format msgid "Skipping %s (Creator ID '%s')\n" msgstr "L %s (إߪ ID '%s')\n" #: ../sync.c:1488 #, c-format msgid "Installing %s " msgstr "bw %s " #: ../sync.c:1494 ../sync.c:1530 #, c-format msgid "" "\n" "Unable to open file: '%s': %s!\n" msgstr "" "\n" "Lk} '%s': %s!\n" #: ../sync.c:1498 #, c-format msgid "" "\n" "Unable to sync file: '%s': file corrupted?\n" msgstr "" "\n" "LkPBɮ: '%s': ɮ׷l?\n" #: ../sync.c:1514 #, fuzzy, c-format msgid "(Creator ID '%s')... " msgstr "(إߪ ID O '%s')..." #: ../sync.c:1518 #, fuzzy, c-format msgid "(Creator ID '%s') " msgstr "(إߪ ID O '%s')..." #: ../sync.c:1520 #, fuzzy, c-format msgid "(SDcard dir %s)... " msgstr "(إߪ ID O '%s')..." #: ../sync.c:1552 ../sync.c:1565 ../sync.c:1580 ../sync.c:1593 #, c-format msgid "" "\n" "Unable to open file: %s\n" msgstr "" "\n" "Lk}ɮ: %s\n" #: ../sync.c:1605 #, c-format msgid "Install %s failed" msgstr "w %s " #: ../sync.c:1609 msgid "Failed.\n" msgstr ".\n" #: ../sync.c:1615 #, fuzzy, c-format msgid "Installed %s" msgstr "ww %s " #: ../sync.c:1726 #, c-format msgid "%s:%d Error getting app info %s\n" msgstr "%s:%d oε{ %s ~\n" #: ../sync.c:1732 ../sync.c:1762 #, c-format msgid "%s:%d Error unpacking app info %s\n" msgstr "%s:%d Yε{ %s ~\n" #: ../sync.c:1753 #, c-format msgid "Error reading appinfo block for %s\n" msgstr "Ūε{ư϶ %s ~\n" #. Fix - need a func for this logging #: ../sync.c:1991 ../sync.c:1995 #, c-format msgid "Could not add category %s to remote.\n" msgstr "Lk[JO %s 컷.\n" #: ../sync.c:1992 ../sync.c:1998 #, c-format msgid "Too many categories on remote.\n" msgstr "ݦӦhO.\n" #: ../sync.c:1993 ../sync.c:2001 #, c-format msgid "All records on desktop in %s will be moved to %s.\n" msgstr "bJ-Pilot %s N %s.\n" #: ../sync.c:2096 ../sync.c:2814 #, c-format msgid "Syncing %s\n" msgstr "bPB %s\n" #: ../sync.c:2104 ../sync.c:2457 ../sync.c:2822 #, c-format msgid "Wrote an %s record." msgstr "gF@ %s ." #: ../sync.c:2106 ../sync.c:2459 ../sync.c:2824 #, c-format msgid "Writing an %s record failed." msgstr "gJ@ %s ." #: ../sync.c:2108 ../sync.c:2461 ../sync.c:2826 #, c-format msgid "Deleting an %s record failed." msgstr "R@ %s ." #: ../sync.c:2110 ../sync.c:2463 ../sync.c:2828 #, c-format msgid "Deleted an %s record." msgstr "RF@ %s ." #: ../sync.c:2112 ../sync.c:2465 #, fuzzy, c-format msgid "Sync Conflict: duplicated an %s record." msgstr "RF@ %s ." #: ../sync.c:2115 ../sync.c:2468 ../sync.c:2831 #, c-format msgid "Wrote a %s record." msgstr "gF@ %s ." #: ../sync.c:2117 ../sync.c:2470 ../sync.c:2833 #, c-format msgid "Writing a %s record failed." msgstr "gJ@ %s ." #: ../sync.c:2119 ../sync.c:2472 ../sync.c:2835 #, c-format msgid "Deleting a %s record failed." msgstr "R@ %s ." #: ../sync.c:2121 ../sync.c:2474 ../sync.c:2837 #, c-format msgid "Deleted a %s record." msgstr "RF@ %s ." #: ../sync.c:2123 ../sync.c:2476 #, c-format msgid "Sync Conflict: duplicated a %s record." msgstr "" #: ../sync.c:2227 ../sync.c:2557 #, c-format msgid "Sync Conflict: a %s record must be manually merged\n" msgstr "" #: ../sync.c:2358 ../sync.c:2698 msgid "" "dlp_DeleteRecord failed\n" "This could be because the record was already deleted on the Palm\n" msgstr "" "dlp_DeleteRecord \n" "iO]owgb Palm WRF\n" #: ../sync.c:2927 msgid "Finished installing user information.\n" msgstr "" #: ../sync.c:3084 #, c-format msgid " Syncing on device %s\n" msgstr " bP˸m %s PB\n" #: ../sync.c:3085 msgid " Press the HotSync button now\n" msgstr " {bЫ HotSync \n" #: ../sync.c:3127 ../sync.c:3149 ../sync.c:3170 #, c-format msgid "Last Synced Username-->\"%s\"\n" msgstr "WPBϥΪ̦W-->\"%s\"\n" #: ../sync.c:3128 ../sync.c:3150 ../sync.c:3171 #, c-format msgid "Last Synced UserID-->\"%d\"\n" msgstr "WPBϥΪ ID->\"%d\"\n" #: ../sync.c:3129 ../sync.c:3151 ../sync.c:3172 #, c-format msgid " This Username-->\"%s\"\n" msgstr " ϥΪ̦W-->\"%s\"\n" #: ../sync.c:3130 ../sync.c:3152 ../sync.c:3173 #, c-format msgid " This User ID-->%d\n" msgstr " ϥΪ ID-->%d\n" #: ../sync.c:3194 #, c-format msgid "Username is \"%s\"\n" msgstr "ϥΪ̦W٬O \"%s\"\n" #: ../sync.c:3195 #, c-format msgid "User ID is %d\n" msgstr "ϥΪ ID O %d\n" #: ../sync.c:3197 #, c-format msgid "lastSyncPC = %d\n" msgstr "WPBPC = %d\n" #: ../sync.c:3198 #, c-format msgid "This PC = %lu\n" msgstr "o PC = %lu\n" #: ../sync.c:3222 msgid "Sync canceled\n" msgstr "PBw\n" #: ../sync.c:3245 msgid "Finished restoring handheld.\n" msgstr "_PDA.\n" #: ../sync.c:3246 msgid "You may need to sync to update J-Pilot.\n" msgstr "ziݭn\"PB\"Hs J-Pilot.\n" #: ../sync.c:3268 msgid "Doing a fast sync.\n" msgstr "biֳtPB.\n" #: ../sync.c:3281 msgid "Doing a slow sync.\n" msgstr "biCtPB.\n" #: ../sync.c:3356 msgid "Thank you for using J-Pilot." msgstr "P±zϥ J-Pilot." #: ../sync.c:3401 ../sync.c:3469 msgid "Finished.\n" msgstr ".\n" #: ../sync.c:3436 #, c-format msgid "%s: sync process already in progress (process ID = %d)\n" msgstr "" #: ../sync.c:3437 #, fuzzy, c-format msgid "" "%s: press the HotSync button on the cradle\n" " or stop the sync by using the cancel sync button\n" " or stop the sync by typing \"kill %d\" at the command line\n" msgstr "%s: UPByW Hotsync sάORO \"kill %d\"\n" #: ../sync.c:3468 #, c-format msgid "Exiting with status %s\n" msgstr "}, A %s\n" #: ../todo.c:266 #, c-format msgid "ToDo description text > %d, truncating to %d\n" msgstr "ݿƶyzj %d, I_ %d\n" #: ../todo.c:272 #, c-format msgid "ToDo note text > %d, truncating to %d\n" msgstr "ݿƶj %d, I_ %d\n" #: ../todo_gui.c:161 msgid "Due Date" msgstr "" #: ../todo_gui.c:532 msgid "File doesn't appear to be todo.dat format\n" msgstr "ɮצGO todo.dat 榡\n" #: ../todo_gui.c:596 msgid "DAT/TDA (Palm Archive Formats)" msgstr "" #: ../todo_gui.c:688 #, c-format msgid "" "ToDo exported from %s %s on %s\n" "\n" msgstr "" #: ../todo_gui.c:726 #, c-format msgid "Can't export todo %d\n" msgstr "LkץXݿƶ %d\n" #: ../todo_gui.c:766 #, fuzzy, c-format msgid "Due Date: None\n" msgstr "" #: ../todo_gui.c:769 #, fuzzy, c-format msgid "Due Date: %s\n" msgstr "" #: ../todo_gui.c:771 #, fuzzy, c-format msgid "Priority: %d\n" msgstr "u: " #: ../todo_gui.c:772 #, fuzzy, c-format msgid "Completed: %s\n" msgstr "w" #: ../todo_gui.c:774 #, c-format msgid "Description: %s\n" msgstr "" #: ../todo_gui.c:777 #, c-format msgid "" "Note: %s\n" "\n" msgstr "" #: ../todo_gui.c:1610 msgid "Priority out of range\n" msgstr "uȶWLe\d\n" #: ../todo_gui.c:1932 ../KeyRing/keyring.c:1310 #, c-format msgid "No date" msgstr "L" #. Completed checkbox #: ../todo_gui.c:2414 msgid "Completed" msgstr "w" #: ../todo_gui.c:2421 #, fuzzy msgid "Priority:" msgstr "u: " #: ../todo_gui.c:2423 msgid "Set priority Alt+#" msgstr "" #: ../todo_gui.c:2444 msgid "Date Due:" msgstr ":" #: ../utils.c:332 msgid "Today" msgstr "" #: ../utils.c:577 #, c-format msgid "Couldn't find empty DB file %s: %s\n" msgstr "䤣Ū DB ɮ%s: %s\n" #: ../utils.c:580 msgid " may not be installed.\n" msgstr " iॼw˥T.\n" #. Can't create directory #: ../utils.c:615 ../utils.c:619 #, c-format msgid "Can't create directory %s\n" msgstr "LksWؿ %s\n" #: ../utils.c:625 #, fuzzy, c-format msgid "%s is not a directory\n" msgstr "%s Oؿ" #: ../utils.c:630 #, fuzzy, c-format msgid "Unable to get write permission for directory %s\n" msgstr "ڵLkgJɮצܥؿ %s\n" #: ../utils.c:1330 ../utils.c:1354 msgid "Save Changed Record?" msgstr "xsק?" #: ../utils.c:1331 ../utils.c:1355 msgid "Do you want to save the changes to this record?" msgstr "znxs󦹵ק?" #: ../utils.c:1336 ../utils.c:1360 msgid "Save New Record?" msgstr "xss?" #: ../utils.c:1337 ../utils.c:1361 msgid "Do you want to save this new record?" msgstr "znxssW?" #: ../utils.c:1652 msgid "infinite loop, breaking\n" msgstr "Lj, Ȱ\n" #: ../utils.c:1876 #, fuzzy, c-format msgid " -p skip loading plugins\n" msgstr "J~{.\n" #: ../utils.c:1877 #, fuzzy, c-format msgid " -a ignore missed alarms since the last time program was run\n" msgstr " -a WJ-Pilot{bwLxa.\n" #: ../utils.c:1878 #, fuzzy, c-format msgid " -A ignore all alarms past and future\n" msgstr " -A Ҧxa]w)); ]ALhHΥ.\n" #: ../utils.c:1879 #, c-format msgid " -s start sync using existing instance of GUI\n" msgstr "" #: ../utils.c:1880 #, c-format msgid " -i iconify program immediately after launch\n" msgstr "" #: ../utils.c:1881 #, c-format msgid "" " -geometry {X geometry} use specified geometry for main window\n" "\n" msgstr "" #: ../utils.c:1882 #, fuzzy, c-format msgid " The PILOTPORT and PILOTRATE environment variables specify\n" msgstr " PILOTPORT, H PILOTRATE ܼƤwg]w\n" #: ../utils.c:1883 #, c-format msgid " which port to sync on, and at what speed.\n" msgstr " ϥΨӰPB, HΨϥΦh֪tv.\n" #: ../utils.c:1884 #, c-format msgid " If PILOTPORT is not set then it defaults to /dev/pilot.\n" msgstr " pG PILOTPORT ]w, hϥιw] /dev/pilot.\n" #: ../utils.c:1921 msgid "Error reading file" msgstr "ŪJɮ׿~" #: ../utils.c:1971 msgid "Date compiled" msgstr "sĶ" #: ../utils.c:1972 msgid "Compiled with these options:" msgstr "ϥΥHUﶵsĶ:" #: ../utils.c:1974 msgid "Installed Path" msgstr "w˸|" #: ../utils.c:1976 msgid "pilot-link version" msgstr "pilot-link " #: ../utils.c:1980 msgid "USB support" msgstr "USB 䴩" #: ../utils.c:1981 ../utils.c:1984 ../utils.c:1990 ../utils.c:1996 #: ../utils.c:2002 ../utils.c:2008 ../utils.c:2013 msgid "yes" msgstr "O" #: ../utils.c:1982 msgid "Private record support" msgstr "pH䴩" #: ../utils.c:1986 ../utils.c:1992 ../utils.c:1998 ../utils.c:2004 #: ../utils.c:2010 msgid "no" msgstr "_" #: ../utils.c:1988 msgid "Datebk support" msgstr "Datebk 䴩" #: ../utils.c:1994 msgid "Plugin support" msgstr "~{䴩" #: ../utils.c:2000 msgid "Manana support" msgstr "Manana 䴩" #: ../utils.c:2006 msgid "NLS support (foreign languages)" msgstr "NLS 䴩 (ay䴩)" #: ../utils.c:2012 msgid "GTK2 support" msgstr "GTK2 䴩" #. No HOME var #: ../utils.c:2055 msgid "Can't get HOME environment variable\n" msgstr "Lko HOME ܼ\n" #: ../utils.c:2062 #, fuzzy msgid "HOME environment variable is too long to process\n" msgstr "z HOME ܼƹ J-Pilot ӻӪ\n" #: ../utils.c:2557 #, fuzzy msgid "Edit Categories..." msgstr "sO" #: ../utils.c:3223 msgid "PC ID is 0.\n" msgstr "PC ID O 0.\n" #: ../utils.c:3224 #, fuzzy, c-format msgid "Generated a new PC ID. It is %lu\n" msgstr "ڲͤF@ӷs PC ID, O %lu\n" #: ../utils.c:3309 msgid "Invalid UTF-8 encoding in export string\n" msgstr "" #: ../utils.c:3470 #, c-format msgid "Today is %A, %x %X" msgstr "ѬO %A, %x %X" #: ../utils.c:3472 #, c-format msgid "Today is %%A, %s %s" msgstr "ѬO %%A, %s %s" #: ../utils.c:3701 #, c-format msgid "" "Incorrect header format for CSV import\n" "Check line 1 of file %s\n" "Aborting import\n" msgstr "" #: ../utils.c:3738 #, fuzzy, c-format msgid "Error writing version header to file: %s%s\n" msgstr "gJ PC Yɮ: next_id\n" #: ../utils.c:3743 #, fuzzy, c-format msgid "Error writing next id to file: %s%s" msgstr "gJU@ id ɮ׿~: next_id\n" #: ../weekview_gui.c:297 msgid "Weekly View" msgstr "Cg˵" #: ../weekview_gui.c:337 msgid "Last week Alt+LeftArrow" msgstr "" #: ../weekview_gui.c:366 msgid "Next week Alt+RightArrow" msgstr "" #: ../Expense/expense.c:97 msgid "Australia" msgstr "Dw" #: ../Expense/expense.c:98 msgid "Austria" msgstr "aQ" #: ../Expense/expense.c:99 msgid "Belgium" msgstr "Q" #: ../Expense/expense.c:100 msgid "Brazil" msgstr "ڦ" #: ../Expense/expense.c:101 msgid "Canada" msgstr "[j" #: ../Expense/expense.c:102 msgid "Denmark" msgstr "" #: ../Expense/expense.c:103 msgid "EU (Euro)" msgstr "ڷ (Euro)" #: ../Expense/expense.c:104 msgid "Finland" msgstr "" #: ../Expense/expense.c:105 msgid "France" msgstr "k" #: ../Expense/expense.c:106 msgid "Germany" msgstr "w" #: ../Expense/expense.c:107 msgid "Hong Kong" msgstr "" #: ../Expense/expense.c:108 msgid "Iceland" msgstr "Bq" #: ../Expense/expense.c:109 msgid "India" msgstr "L" #: ../Expense/expense.c:110 msgid "Indonesia" msgstr "L" #: ../Expense/expense.c:111 msgid "Ireland" msgstr "R" #: ../Expense/expense.c:112 msgid "Italy" msgstr "qjQ" #: ../Expense/expense.c:113 msgid "Japan" msgstr "饻" #: ../Expense/expense.c:114 msgid "Korea" msgstr "" #: ../Expense/expense.c:115 msgid "Luxembourg" msgstr "c˳" #: ../Expense/expense.c:116 msgid "Malaysia" msgstr "Ӧ" #: ../Expense/expense.c:117 msgid "Mexico" msgstr "" #: ../Expense/expense.c:118 msgid "Netherlands" msgstr "w ()" #: ../Expense/expense.c:119 msgid "New Zealand" msgstr "æ" #: ../Expense/expense.c:120 msgid "Norway" msgstr "" #: ../Expense/expense.c:121 msgid "P.R.C." msgstr "ؤH@M" #: ../Expense/expense.c:122 msgid "Philippines" msgstr "߻" #: ../Expense/expense.c:123 msgid "Singapore" msgstr "s[Y" #: ../Expense/expense.c:124 msgid "Spain" msgstr "Z" #: ../Expense/expense.c:125 msgid "Sweden" msgstr "" #: ../Expense/expense.c:126 msgid "Switzerland" msgstr "h" #: ../Expense/expense.c:127 msgid "Taiwan" msgstr "xW" #: ../Expense/expense.c:128 msgid "Thailand" msgstr "" #: ../Expense/expense.c:129 msgid "United Kingdom" msgstr "^" #: ../Expense/expense.c:130 msgid "United States" msgstr "" #: ../Expense/expense.c:518 ../Expense/expense.c:529 msgid "Expense" msgstr "}" #: ../Expense/expense.c:550 ../Expense/expense.c:1388 msgid "Airfare" msgstr "" #: ../Expense/expense.c:552 ../Expense/expense.c:1389 msgid "Breakfast" msgstr "\" #: ../Expense/expense.c:554 ../Expense/expense.c:1390 msgid "Bus" msgstr "@T" #: ../Expense/expense.c:556 ../Expense/expense.c:1391 msgid "BusinessMeals" msgstr "Ӱ\|" #: ../Expense/expense.c:558 ../Expense/expense.c:1392 msgid "CarRental" msgstr "" #: ../Expense/expense.c:560 ../Expense/expense.c:1393 msgid "Dinner" msgstr "\" #: ../Expense/expense.c:562 ../Expense/expense.c:1394 msgid "Entertainment" msgstr "T" #: ../Expense/expense.c:564 ../Expense/expense.c:1395 msgid "Fax" msgstr "ǯu" #: ../Expense/expense.c:566 ../Expense/expense.c:1396 msgid "Gas" msgstr "To" #: ../Expense/expense.c:568 ../Expense/expense.c:1397 msgid "Gifts" msgstr "§~" #: ../Expense/expense.c:570 ../Expense/expense.c:1398 msgid "Hotel" msgstr "" #: ../Expense/expense.c:572 ../Expense/expense.c:1399 msgid "Incidentals" msgstr "O" #: ../Expense/expense.c:574 ../Expense/expense.c:1400 msgid "Laundry" msgstr "~" #: ../Expense/expense.c:576 ../Expense/expense.c:1401 msgid "Limo" msgstr "⨮" #: ../Expense/expense.c:578 ../Expense/expense.c:1402 msgid "Lodging" msgstr "HJ" #: ../Expense/expense.c:580 ../Expense/expense.c:1403 msgid "Lunch" msgstr "\" #: ../Expense/expense.c:582 ../Expense/expense.c:1404 msgid "Mileage" msgstr "{" #: ../Expense/expense.c:586 ../Expense/expense.c:1406 msgid "Parking" msgstr "O" #: ../Expense/expense.c:588 ../Expense/expense.c:1407 msgid "Postage" msgstr "lO" #: ../Expense/expense.c:590 ../Expense/expense.c:1408 msgid "Snack" msgstr "sL" #: ../Expense/expense.c:592 ../Expense/expense.c:1409 msgid "Subway" msgstr "aUK" #: ../Expense/expense.c:594 ../Expense/expense.c:1410 msgid "Supplies" msgstr "ͬΫ~" #: ../Expense/expense.c:596 ../Expense/expense.c:1411 msgid "Taxi" msgstr "p{" #: ../Expense/expense.c:598 ../Expense/expense.c:1412 msgid "Telephone" msgstr "qܶO" #: ../Expense/expense.c:600 ../Expense/expense.c:1413 msgid "Tips" msgstr "pO" #: ../Expense/expense.c:602 ../Expense/expense.c:1414 msgid "Tolls" msgstr "qO" #: ../Expense/expense.c:604 ../Expense/expense.c:1415 msgid "Train" msgstr "" #: ../Expense/expense.c:1239 msgid "Expense: Unknown expense type\n" msgstr "}: }\n" #: ../Expense/expense.c:1245 msgid "Expense: Unknown payment type\n" msgstr "}: Iڤ覡\n" #: ../Expense/expense.c:1377 msgid "American Express" msgstr "Bq (American Express)" #: ../Expense/expense.c:1378 msgid "Cash" msgstr "{" #: ../Expense/expense.c:1379 msgid "Check" msgstr "䲼" #: ../Expense/expense.c:1380 msgid "Credit Card" msgstr "HΥd" #: ../Expense/expense.c:1381 msgid "Master Card" msgstr "UƹFd (MasterCard)" #: ../Expense/expense.c:1382 msgid "Prepaid" msgstr "wI" #: ../Expense/expense.c:1383 msgid "VISA" msgstr "VISA d" #: ../Expense/expense.c:1619 #, fuzzy msgid "Type" msgstr ":" #: ../Expense/expense.c:1620 #, fuzzy msgid "Amount" msgstr "B:" #. Category Menu #: ../Expense/expense.c:1704 msgid "Category:" msgstr "O:" #. Type Menu #: ../Expense/expense.c:1712 msgid "Type:" msgstr ":" #. Payment Menu #: ../Expense/expense.c:1720 msgid "Payment:" msgstr "Iڤ覡:" #. Currency Menu #: ../Expense/expense.c:1728 msgid "Currency:" msgstr "ײv:" #: ../Expense/expense.c:1748 msgid "Month:" msgstr ":" #: ../Expense/expense.c:1762 msgid "Day:" msgstr ":" #: ../Expense/expense.c:1776 msgid "Year:" msgstr "~:" #. Amount Entry #: ../Expense/expense.c:1789 msgid "Amount:" msgstr "B:" #. Vendor Entry #: ../Expense/expense.c:1799 msgid "Vendor:" msgstr "t:" #. City #: ../Expense/expense.c:1809 msgid "City:" msgstr ":" #. Attendees #: ../Expense/expense.c:1819 msgid "Attendees" msgstr "Xu" #. ------------------------------------------- #: ../Expense/expense.c:2102 #, c-format msgid "" "%s\n" "\n" "Expense plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org" msgstr "" #: ../KeyRing/keyring.c:291 msgid "KeyRing: pack_KeyRing(): buf_size too small\n" msgstr "_Ͱ: pack__Ͱ(): buf_size Ӥp\n" #: ../KeyRing/keyring.c:1699 msgid "Incorrect, Reenter KeyRing Password" msgstr "T, ЭsJ_ͰKX" #: ../KeyRing/keyring.c:1701 msgid "Enter a NEW KeyRing Password" msgstr "пJs_ͰKX" #: ../KeyRing/keyring.c:1703 msgid "Enter KeyRing Password" msgstr "J_ͰKX" #: ../KeyRing/keyring.c:1769 #, c-format msgid "KeyRing: file %s not found.\n" msgstr "_Ͱ: ɮ %s 䤣.\n" #: ../KeyRing/keyring.c:1770 msgid "KeyRing: Try Syncing.\n" msgstr "_Ͱ: |զPB.\n" #: ../KeyRing/keyring.c:1861 ../KeyRing/keyring.c:1872 msgid "KeyRing" msgstr "_Ͱ" #. ------------------------------------------- #: ../KeyRing/keyring.c:1900 #, c-format msgid "" "%s\n" "\n" "KeyRing plugin for J-Pilot was written by\n" "Judd Montgomery (c) 2001.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "KeyRing is a free PalmOS program for storing\n" "passwords and other information in encrypted form\n" "http://gnukeyring.sourceforge.net" msgstr "" #: ../KeyRing/keyring.c:2137 #, c-format msgid "" "Keys exported from %s %s on %s\n" "\n" msgstr "" #: ../KeyRing/keyring.c:2162 #, fuzzy, c-format msgid "Can't export key %d\n" msgstr "LkץXƧѿ %d\n" #: ../KeyRing/keyring.c:2229 msgid "B-FOLDERS CSV" msgstr "" #. Change Password button #: ../KeyRing/keyring.c:2384 msgid "" "Change\n" "KeyRing\n" "Password" msgstr "" "\n" "_Ͱ\n" "KX" #. Clist #: ../KeyRing/keyring.c:2497 #, fuzzy msgid "Changed" msgstr "" #: ../KeyRing/keyring.c:2499 msgid "Account" msgstr "b" #. Name entry #: ../KeyRing/keyring.c:2593 msgid "name: " msgstr "Wr: " #. Account entry #: ../KeyRing/keyring.c:2601 msgid "account: " msgstr "b: " #. Password entry #: ../KeyRing/keyring.c:2609 msgid "password: " msgstr "KX: " #. Last Changed entry #: ../KeyRing/keyring.c:2616 msgid "last changed: " msgstr "" #. Generate Password button (creates random password) #: ../KeyRing/keyring.c:2626 msgid "Generate Password" msgstr "۰ʲͱKX" #: ../SyncTime/synctime.c:61 #, fuzzy msgid "SyncTime" msgstr "PBƧѿ" #. ------------------------------------------- #: ../SyncTime/synctime.c:72 #, c-format msgid "" "%s\n" "\n" "SyncTime plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "SyncTime WILL NOT work with PalmOS 3.3!" msgstr "" #: ../SyncTime/synctime.c:106 msgid "synctime: Palm OS Version 3.25 and 3.30 do not support SyncTime\n" msgstr "" #: ../SyncTime/synctime.c:107 msgid "synctime: NOT setting the time on the pilot\n" msgstr "" #: ../SyncTime/synctime.c:112 msgid "synctime: Setting the time on the pilot... " msgstr "" #: ../SyncTime/synctime.c:117 #, fuzzy msgid "Done\n" msgstr "" #, fuzzy #~ msgid " -i makes program iconify itself upon launch.\n" #~ msgstr " -i J-PilotҰʮɳ̤p\n" #, fuzzy #~ msgid "Your HOME environment variable is too long(>1024)\n" #~ msgstr "z HOME ܼƹ J-Pilot ӻӪ\n" #~ msgid "W" #~ msgstr "P" #~ msgid "M" #~ msgstr "" #~ msgid "This Event has no particular time" #~ msgstr "ƥLSwɶ" #~ msgid "Start Time" #~ msgstr "}lɶ" #~ msgid "End Time" #~ msgstr "ɶ" #, fuzzy #~ msgid "email command empty\n" #~ msgstr "oHRO" #~ msgid "Unable to open %s%s file\n" #~ msgstr "Lk} %s%s ɮ\n" #~ msgid "Unable to open %s.alarms file\n" #~ msgstr "Lk} %s xaɮ\n" #~ msgid "You can't edit category %s.\n" #~ msgstr "LksO %s \n" #~ msgid "You can't delete category %s.\n" #~ msgstr "LkRO %s \n" #~ msgid "category name" #~ msgstr "OW" #~ msgid "debug" #~ msgstr "" #, fuzzy #~ msgid "End Date: Never\n" #~ msgstr "ק" #, fuzzy #~ msgid "Repeat Days: " #~ msgstr "Ʃ:" #~ msgid "Close" #~ msgstr "" #~ msgid "none" #~ msgstr "L" #~ msgid "Unknown repeatType found in DatebookDB\n" #~ msgstr "bDatebookDBrepeatType\n" #~ msgid "Dismiss" #~ msgstr "" #~ msgid "Done" #~ msgstr "" #~ msgid "Add" #~ msgstr "[J" #~ msgid "Remove" #~ msgstr "" #, fuzzy #~ msgid "User name" #~ msgstr "ϥΪ̦W" #~ msgid " -v = version\n" #~ msgstr " -v = \n" #~ msgid " -h = help\n" #~ msgstr " -h = DU\n" #~ msgid " -d = run in debug mode\n" #~ msgstr " -d = HҦ\n" #~ msgid " -P = do not load plugins.\n" #~ msgstr " -P = J~{.\n" #~ msgid " -b = Do a sync and then a backup, otherwise just do a sync.\n" #~ msgstr " -b = PBåBƥ, _hNuPB.\n" #~ msgid "Invalid geometry specification: \"%s\"\n" #~ msgstr "Xzmεjp]w: \"%s\"\n" #~ msgid "/Help/PayBack program" #~ msgstr "/(H)/PayBack program" #~ msgid "Font Selection Dialog" #~ msgstr "rܹܮ" #, fuzzy #~ msgid "Show private records" #~ msgstr "ܨpH Ctrl-Z" #, fuzzy #~ msgid "Hide private records" #~ msgstr "èpH Ctrl-Z" #, fuzzy #~ msgid "Mask private records" #~ msgstr "BnpH Ctrl-Z" #~ msgid "Font" #~ msgstr "r" #~ msgid "Go to the menu \"" #~ msgstr "ܿ \"" #~ msgid "\" and change the \"" #~ msgstr "\" åBܨ \"" #~ msgid "\"." #~ msgstr "\"." #~ msgid "Couldn't open PC records file\n" #~ msgstr "Lk} PC \n" #~ msgid "The first day of the week is " #~ msgstr "@gĤ@ѬO " #~ msgid "One record" #~ msgstr "@" #~ msgid "Finished\n" #~ msgstr "\n" #~ msgid "Last Username = [%s]\n" #~ msgstr "W@ӨϥΪ̦W = [%s]\n" #~ msgid "Last UserID = %d\n" #~ msgstr "W@ӨϥΪ ID = %d\n" #~ msgid "Username = [%s]\n" #~ msgstr "ϥΪ̦W = [%s]\n" #~ msgid "userID = %d\n" #~ msgstr "ϥΪ ID = %d\n" #~ msgid "number of records = %d\n" #~ msgstr "ƥ = %d\n" #~ msgid "palm: number of records = %d\n" #~ msgstr "Palm: ƥ = %d\n" #~ msgid "disk: number of records = %d\n" #~ msgstr "w: ƥ = %d\n" #, fuzzy #~ msgid "Your HOME environment variable is too long for me\n" #~ msgstr "z HOME ܼƹ J-Pilot ӻӪ\n" #~ msgid "" #~ "%s doesn't appear to be a directory.\n" #~ "I need it to be.\n" #~ msgstr "" #~ "%s GOؿ.\n" #~ "ڭnDOӥؿ.\n" #, fuzzy #~ msgid "I can't write files in directory %s\n" #~ msgstr "LksWؿ %s\n" #~ msgid "Expense: Unknown category\n" #~ msgstr "}: O\n" #~ msgid "Field" #~ msgstr "" #~ msgid "kana(" #~ msgstr "W(" #~ msgid "Quick View" #~ msgstr "ֳt˵" #~ msgid "Serial Port (/dev/ttyS0, /dev/pilot)" #~ msgstr "ǦC (/dev/ttyS0, /dev/pilot)" #~ msgid "Serial Rate (Does not affect USB)" #~ msgstr "ǦCtv (vT USB )" #~ msgid "Sync memo32 (pedit32)" #~ msgstr "PB memo32 (pedit32)" #~ msgid "AmEx" #~ msgstr "Bq (AmEx)" #~ msgid "CreditCard" #~ msgstr "HΥd" #~ msgid "MasterCard" #~ msgstr "UƹFd (MasterCard)" #~ msgid "Quit" #~ msgstr "}" #~ msgid "Help" #~ msgstr "DU" #~ msgid "Directory" #~ msgstr "ؿ" #~ msgid "Overwrite File" #~ msgstr "мgɮ" #~ msgid "Filename" #~ msgstr "ɦW" #~ msgid "Answer: " #~ msgstr ": " #~ msgid "Sync" #~ msgstr "PB" #~ msgid " -p do not load plugins.\n" #~ msgstr " -p J~{.\n" #, fuzzy #~ msgid "Cancel the modifications ESC" #~ msgstr "Mέק Ctrl+Enter" #~ msgid "Delete the selected record Ctrl+D" #~ msgstr "Rܪ Ctrl+D" #~ msgid "Copy the record Ctrl+O" #~ msgstr "ƻso Ctrl+O" #~ msgid "Add a new record Ctrl+N" #~ msgstr "[J@ӷs Ctrl+N" #, fuzzy #~ msgid "Add the new record Ctrl+Enter" #~ msgstr "[Joӷs Ctrl+R" #~ msgid "Commit the modifications Ctrl+Enter" #~ msgstr "Mέק Ctrl+Enter" #~ msgid "Backup" #~ msgstr "ƥ" jpilot-1.8.1.2/po/ko.po0000644000175000017500000025117211702307203011475 00000000000000# Korean translations for jpilot. # This file is distributed under the same license as the jpilot package. # # Byeong-Taek Lee , 2005. msgid "" msgstr "" "Project-Id-Version: jpilot 0.99.8\n" "Report-Msgid-Bugs-To: jpilot-devel@jpilot.org\n" "POT-Creation-Date: 2012-01-08 13:39+0100\n" "PO-Revision-Date: 2005-12-11 23:24-0800\n" "Last-Translator: Byeong-Taek Lee \n" "Language-Team: Korean \n" "Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=euc-kr\n" "Content-Transfer-Encoding: 8bit\n" #: ../address.c:276 ../address.c:448 ../alarms.c:332 ../calendar.c:309 #: ../calendar.c:547 ../contact.c:324 ../contact.c:738 ../dat.c:189 #: ../dat.c:655 ../dat.c:859 ../dat.c:993 ../dat.c:1132 ../datebook.c:130 #: ../datebook.c:165 ../datebook.c:172 ../datebook.c:231 ../jpilot.c:1254 #: ../jpilot-merge.c:95 ../libplugin.c:208 ../libplugin.c:455 #: ../libplugin.c:534 ../libplugin.c:563 ../libplugin.c:811 ../memo.c:214 #: ../memo.c:287 ../otherconv.c:280 ../plugins.c:112 ../prefs.c:350 #: ../prefs.c:375 ../prefs.c:906 ../sync.c:2170 ../sync.c:2187 ../sync.c:2296 #: ../sync.c:2310 ../sync.c:2507 ../sync.c:2646 ../todo.c:236 ../todo.c:490 #: ../utils.c:748 #, c-format msgid "Out of memory" msgstr "޸ " #: ../address.c:332 ../calendar.c:230 ../contact.c:580 ../datebook.c:494 #: ../memo.c:87 ../todo.c:90 #, fuzzy, c-format msgid "%s:%d Error reading application info %s\n" msgstr "%s:%d %s \n" #: ../address.c:344 ../address_gui.c:2285 ../address_gui.c:2324 #: ../calendar.c:246 ../contact.c:596 ../datebook.c:514 ../datebook_gui.c:3737 #: ../libplugin.c:405 ../libplugin.c:431 ../memo.c:99 ../memo_gui.c:863 #: ../todo_gui.c:1070 ../Expense/expense.c:1105 #, c-format msgid "Error reading file: %s\n" msgstr " б : %s\n" #: ../address.c:492 ../calendar.c:598 ../calendar.c:607 ../contact.c:780 #: ../libplugin.c:846 ../memo.c:353 ../todo.c:302 ../utils.c:1124 #: ../utils.c:1131 ../utils.c:1138 ../utils.c:1145 ../utils.c:1152 #: ../utils.c:1159 msgid "error" msgstr "" #: ../address_gui.c:325 ../datebook_gui.c:2844 ../memo_gui.c:176 #: ../todo_gui.c:292 ../KeyRing/keyring.c:834 msgid "" "This record is deleted.\n" "Undelete it or copy it to make changes.\n" msgstr "" " ڷ Ǿϴ.\n" "ϱ ؼ ϰų Ͻʽÿ.\n" #: ../address_gui.c:452 ../address_gui.c:458 ../address_gui.c:469 #: ../address_gui.c:481 ../address_gui.c:493 ../address_gui.c:506 #, fuzzy, c-format msgid "%s%s: %s" msgstr "%%a., %s" #: ../address_gui.c:542 ../category.c:118 ../category.c:176 ../category.c:330 #: ../category.c:336 ../datebook_gui.c:430 ../jpilot-merge.c:88 #: ../jpilot-merge.c:146 ../jpilot-merge.c:151 ../memo_gui.c:280 #: ../sync.c:2129 ../sync.c:2135 ../sync.c:2481 ../sync.c:2842 #: ../todo_gui.c:416 ../utils.c:2674 ../utils.c:2711 ../utils.c:2717 #: ../utils.c:2776 ../utils.c:2782 ../utils.c:2836 ../utils.c:2890 #: ../utils.c:2896 ../utils.c:2954 ../utils.c:2961 #, c-format msgid "Unable to open file: %s\n" msgstr " : %s\n" #: ../address_gui.c:561 #, fuzzy, c-format msgid "Unable to read file: %s\n" msgstr " : %s\n" #: ../address_gui.c:715 msgid "File doesn't appear to be address.dat format\n" msgstr " address.dat ƴ մϴ.\n" #: ../address_gui.c:725 ../datebook_gui.c:647 ../memo_gui.c:324 #: ../memo_gui.c:417 ../todo_gui.c:542 ../Expense/expense.c:1384 msgid "Unfiled" msgstr "з" #: ../address_gui.c:781 ../datebook_gui.c:698 ../memo_gui.c:470 #: ../todo_gui.c:595 msgid "CSV (Comma Separated Values)" msgstr "" #: ../address_gui.c:782 msgid "DAT/ABA (Palm Archive Formats)" msgstr "" #. current category name #. previous category name #. entry text, in Pilot character set #: ../address_gui.c:868 ../category.c:408 ../datebook_gui.c:729 #: ../jpilot.c:234 ../jpilot.c:278 ../jpilot.c:352 ../jpilot.c:396 #: ../jpilot.c:953 ../memo_gui.c:506 ../todo_gui.c:635 ../utils.c:1305 #: ../KeyRing/keyring.c:2090 msgid "OK" msgstr "Ȯ" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "No" msgstr "ƴϿ" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "Yes" msgstr "" #: ../address_gui.c:888 ../datebook_gui.c:753 ../memo_gui.c:520 #: ../todo_gui.c:655 ../KeyRing/keyring.c:2104 #, c-format msgid "%s is a directory" msgstr "%s 丮Դϴ." #: ../address_gui.c:890 ../address_gui.c:907 ../datebook_gui.c:755 #: ../datebook_gui.c:772 ../memo_gui.c:522 ../memo_gui.c:539 ../todo_gui.c:657 #: ../todo_gui.c:674 ../KeyRing/keyring.c:2106 ../KeyRing/keyring.c:2123 msgid "Error Opening File" msgstr "Ͽ " #: ../address_gui.c:894 ../datebook_gui.c:759 ../memo_gui.c:526 #: ../todo_gui.c:661 ../KeyRing/keyring.c:2110 #, c-format msgid "Do you want to overwrite file %s?" msgstr "%s ðڽϱ?" #: ../address_gui.c:896 ../datebook_gui.c:761 ../memo_gui.c:528 #: ../todo_gui.c:663 ../KeyRing/keyring.c:2112 msgid "Overwrite File?" msgstr " ðڽϱ?" #: ../address_gui.c:905 ../datebook_gui.c:770 ../memo_gui.c:537 #: ../todo_gui.c:672 ../KeyRing/keyring.c:2121 #, c-format msgid "Error opening file: %s" msgstr " : %s" #: ../address_gui.c:922 #, c-format msgid "" "Address exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:925 #, c-format msgid "" "Contact exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:989 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ldif file may not be standards-compliant\n" msgstr "" #: ../address_gui.c:1002 #, c-format msgid "Can't export address %d\n" msgstr "ּҸ ϴ %d\n" #: ../address_gui.c:1008 ../memo_gui.c:630 ../todo_gui.c:760 #, fuzzy, c-format msgid "Category: %s\n" msgstr ": " #: ../address_gui.c:1010 ../memo_gui.c:632 ../todo_gui.c:763 #, fuzzy, c-format msgid "Private: %s\n" msgstr "" #: ../address_gui.c:1018 ../address_gui.c:1032 ../address_gui.c:1036 #: ../address_gui.c:1045 ../address_gui.c:1048 #, fuzzy, c-format msgid "%s: " msgstr "%%a., %s" #: ../address_gui.c:1022 #, c-format msgid "%s\n" msgstr "" #. E-mail should be the Palm dropdown menu item for email #. Set dial/email button text and callback data #: ../address_gui.c:1196 ../address_gui.c:2846 ../address_gui.c:4185 msgid "E-mail" msgstr "̸" #: ../address_gui.c:1482 ../datebook_gui.c:1147 ../memo_gui.c:640 #: ../todo_gui.c:844 ../KeyRing/keyring.c:2214 msgid "Unknown export type\n" msgstr "˷ \n" #: ../address_gui.c:1508 ../datebook_gui.c:1226 ../memo_gui.c:469 #: ../memo_gui.c:666 ../todo_gui.c:870 ../KeyRing/keyring.c:2229 msgid "Text" msgstr "" #: ../address_gui.c:1509 ../datebook_gui.c:1227 ../memo_gui.c:667 #: ../todo_gui.c:871 ../KeyRing/keyring.c:2229 msgid "CSV" msgstr "" #: ../address_gui.c:1510 #, fuzzy msgid "vCard" msgstr "" #: ../address_gui.c:1511 msgid "vCard (Optimized for Gmail/Android Import)" msgstr "" #: ../address_gui.c:1512 msgid "ldif" msgstr "" #. Initialize variable if default case taken #: ../address_gui.c:1777 ../address_gui.c:3902 #, fuzzy msgid "Last Name/Company" msgstr "̸/ȸ" #: ../address_gui.c:1780 ../address_gui.c:3905 #, fuzzy msgid "First Name/Company" msgstr "̸/ȸ" #: ../address_gui.c:1783 ../address_gui.c:3908 #, fuzzy msgid "Company/Last Name" msgstr "ȸ/̸" #: ../address_gui.c:1920 ../datebook_gui.c:2907 ../memo_gui.c:1036 #: ../todo_gui.c:1329 ../KeyRing/keyring.c:1181 msgid "You can't modify a record that is deleted\n" msgstr " ڷ ϴ.\n" #. Illegal category, Assume that category 0 is Unfiled and valid #: ../address_gui.c:2119 ../address_gui.c:2370 ../address_gui.c:2803 #: ../address_gui.c:2809 ../address_gui.c:3601 ../datebook_gui.c:1994 #: ../datebook_gui.c:3434 ../datebook_gui.c:3783 ../datebook_gui.c:4074 #: ../memo_gui.c:900 ../memo_gui.c:946 ../memo_gui.c:1161 ../memo_gui.c:1548 #: ../todo_gui.c:1106 ../todo_gui.c:1200 ../todo_gui.c:1589 ../todo_gui.c:2141 #: ../Expense/expense.c:689 ../Expense/expense.c:1143 #: ../Expense/expense.c:1227 ../Expense/expense.c:1887 #: ../KeyRing/keyring.c:1070 ../KeyRing/keyring.c:1512 #: ../KeyRing/keyring.c:1574 ../KeyRing/keyring.c:2688 msgid "Category is not legal\n" msgstr "ִ ʽϴ\n" #: ../address_gui.c:2179 ../alarms.c:598 ../dialer.c:164 #, c-format msgid "executing command = [%s]\n" msgstr " = [%s]\n" #: ../address_gui.c:2181 #, fuzzy, c-format msgid "Failed to execute [%s]\n" msgstr ", %s ϴ.\n" #: ../address_gui.c:2425 msgid "Birthday" msgstr "" #: ../address_gui.c:2521 msgid "External program not found, or other error" msgstr "" #: ../address_gui.c:2523 msgid "" "J-Pilot can not find the external program \"convert\"\n" "or an error occurred while executing convert.\n" "You may need to install package ImageMagick" msgstr "" #: ../address_gui.c:2524 #, c-format msgid "Command executed was \"%s\"\n" msgstr "" #: ../address_gui.c:2525 #, c-format msgid "return code was %d\n" msgstr "" #: ../address_gui.c:2603 #, fuzzy msgid "chdir() failed\n" msgstr " \n" #: ../address_gui.c:2606 msgid "Add Photo" msgstr "" #. Category menu #: ../address_gui.c:2828 ../KeyRing/keyring.c:2585 msgid "Category: " msgstr ": " #: ../address_gui.c:2848 ../address_gui.c:4186 msgid "Mail" msgstr "" #. Dial Phone Button #: ../address_gui.c:2851 ../address_gui.c:4189 ../dialer.c:307 ../dialer.c:331 msgid "Dial" msgstr "ȭɱ" #: ../address_gui.c:3041 ../datebook_gui.c:2757 ../memo_gui.c:1228 #: ../todo_gui.c:1697 msgid "Could not get temporary file name\n" msgstr "" #: ../address_gui.c:3049 ../datebook_gui.c:2765 ../memo_gui.c:1236 #: ../todo_gui.c:1705 msgid "Could not open temporary file for external editor\n" msgstr "" #: ../address_gui.c:3089 ../datebook_gui.c:2806 ../memo_gui.c:1277 #: ../todo_gui.c:1746 msgid "Could not open temporary file from external editor\n" msgstr "" #: ../address_gui.c:3261 ../address_gui.c:3292 msgid "-Unnamed-" msgstr "-̸-" #: ../address_gui.c:3374 ../memo_gui.c:1454 ../todo_gui.c:2019 msgid "0 records" msgstr "0 ڷ" #: ../address_gui.c:3377 ../datebook_gui.c:2637 ../memo_gui.c:1457 #: ../todo_gui.c:2022 #, c-format msgid "%d of %d records" msgstr "%d ° ڷ (ü %d )" #: ../address_gui.c:3772 ../address_gui.c:3780 ../KeyRing/keyring.c:2498 msgid "Name" msgstr "̸" #: ../address_gui.c:3773 ../address_gui.c:3774 ../address_gui.c:3775 #: ../address_gui.c:3781 msgid "Address" msgstr "ּ" #: ../address_gui.c:3776 ../address_gui.c:3782 ../Expense/expense.c:584 #: ../Expense/expense.c:1405 msgid "Other" msgstr "Ÿ" #. Note textbox #: ../address_gui.c:3777 ../address_gui.c:3783 ../todo_gui.c:2484 #: ../Expense/expense.c:1836 ../KeyRing/keyring.c:2632 msgid "Note" msgstr "Ʈ" #: ../address_gui.c:3793 msgid "Reverting to Address database\n" msgstr "" #: ../address_gui.c:3914 msgid "Phone" msgstr "ȭ" #: ../address_gui.c:3946 msgid "Quick Find: " msgstr " ã: " #. Cancel button #. Add record modification buttons #. Cancel button #: ../address_gui.c:3964 ../category.c:409 ../datebook_gui.c:1782 #: ../datebook_gui.c:5124 ../memo_gui.c:1692 ../todo_gui.c:2345 #: ../utils.c:1346 ../KeyRing/keyring.c:2528 msgid "Cancel" msgstr "" #: ../address_gui.c:3964 ../datebook_gui.c:5124 ../memo_gui.c:1692 #: ../todo_gui.c:2345 ../KeyRing/keyring.c:2528 msgid "Cancel the modifications" msgstr " " #. Delete Button #. Delete button #. Delete Button #. Delete button #. Delete, Copy, New, etc. buttons #. Delete button #: ../address_gui.c:3969 ../category.c:409 ../category.c:852 #: ../datebook_gui.c:5129 ../memo_gui.c:1697 ../todo_gui.c:2350 #: ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete" msgstr "" #: ../address_gui.c:3969 ../datebook_gui.c:5129 ../memo_gui.c:1697 #: ../todo_gui.c:2350 ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete the selected record" msgstr "õ ڷ " #. Undelete Button #. Undelete button #. Undelete Button #. Undelete button #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 msgid "Undelete" msgstr " " #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 msgid "Undelete the selected record" msgstr "õ ڷ " #. Copy button #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy" msgstr "" #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy the selected record" msgstr "õ ڷ " #. New button #. New Record button #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "New Record" msgstr " ׸" #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "Add a new record" msgstr " ڷ ϱ" #. "Add Record" button #. Add Record button #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add Record" msgstr "ڷ ϱ" #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add the new record" msgstr " ڷ ϱ" #. "Apply Changes" button #. Apply Changes button #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Apply Changes" msgstr "ٲ " #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Commit the modifications" msgstr " " #. Private check box #. Private checkbox #: ../address_gui.c:4033 ../datebook_gui.c:5191 ../datebook_gui.c:5233 #: ../memo_gui.c:1747 ../todo_gui.c:2410 msgid "Private" msgstr "" #: ../address_gui.c:4118 #, fuzzy msgid "Change Photo" msgstr "" #: ../address_gui.c:4123 #, fuzzy msgid "Remove Photo" msgstr "" #: ../address_gui.c:4195 #, fuzzy msgid "Show In List" msgstr "" "\n" " " #: ../address_gui.c:4296 #, fuzzy msgid "Reminder" msgstr "Ű" #: ../address_gui.c:4312 ../datebook_gui.c:238 ../datebook_gui.c:5221 #: ../datebook_gui.c:5378 msgid "Days" msgstr "" #. The Quickview (ALL) page #. All button #: ../address_gui.c:4356 ../datebook_gui.c:1478 ../datebook_gui.c:1782 #: ../utils.c:2528 msgid "All" msgstr "ü" #: ../alarms.c:232 ../datebook_gui.c:236 ../datebook_gui.c:5215 #: ../datebook_gui.c:5372 msgid "Minutes" msgstr "" #: ../alarms.c:234 ../datebook_gui.c:237 ../datebook_gui.c:5219 #: ../datebook_gui.c:5376 msgid "Hours" msgstr "" #: ../alarms.c:255 msgid "Remind me" msgstr "Ű" #: ../alarms.c:425 ../alarms.c:991 ../sync.c:1639 ../sync.c:1645 #: ../utils.c:3717 #, c-format msgid "Unable to open file: %s%s\n" msgstr " ϴ: %s%s\n" #: ../alarms.c:512 msgid "Appointment Reminder" msgstr " " #: ../alarms.c:515 msgid "Past Appointment" msgstr " " #: ../alarms.c:518 msgid "Postponed Appointment" msgstr " " #: ../alarms.c:521 ../datebook_gui.c:5025 msgid "Appointment" msgstr "" #: ../alarms.c:605 msgid "J-Pilot Alarm" msgstr "J-Pilot ˶" #: ../category.c:131 ../category.c:188 ../sync.c:2158 ../sync.c:2495 msgid "PC file corrupt?\n" msgstr "PC ?\n" #: ../category.c:138 ../category.c:148 ../category.c:196 ../category.c:206 #: ../category.c:216 ../sync.c:2280 ../sync.c:2334 ../sync.c:2371 #: ../sync.c:2386 ../sync.c:2410 ../sync.c:2630 ../sync.c:2675 ../sync.c:2712 #: ../sync.c:2725 ../sync.c:2750 msgid "fseek failed - fatal error\n" msgstr "fseek - ߿ \n" #: ../category.c:364 ../utils.c:2738 ../utils.c:2812 ../utils.c:2916 #: ../utils.c:2981 msgid "rename failed" msgstr "̸ٲٱ " #: ../category.c:409 msgid "Move" msgstr "̵" #: ../category.c:438 ../category.c:500 ../category.c:580 ../category.c:769 msgid "Edit Categories" msgstr " " #: ../category.c:439 msgid "The maximum number of categories (16) are already used" msgstr "̹ ִ (16) " #: ../category.c:442 msgid "Enter New Category" msgstr " ֱ" #: ../category.c:453 ../category.c:477 msgid "Edit Categories Error" msgstr " " #: ../category.c:454 msgid "You must select a category to rename" msgstr "̸ ٲٱ ؼ ָ ؾ " #: ../category.c:463 msgid "Enter New Category Name" msgstr " ̸ ֱ" #: ../category.c:478 msgid "You must select a category to delete" msgstr "ϱ ؼ ָ ؾ " #: ../category.c:496 #, c-format msgid "" "There are %d records in %s.\n" "Do you want to move them to %s, or delete them?" msgstr "" "%d ڷᰡ %s ֽϴ.\n" "%s űų Ͻðڽϱ?" #: ../category.c:556 #, c-format msgid "invalid state file %s line %d\n" msgstr "%s ߸ (%d )\n" #: ../category.c:578 #, c-format msgid "The category %s can't be used more than once" msgstr "%s ִ ̻ " #. Category names in host character set #: ../category.c:735 #, fuzzy msgid "Category" msgstr ":" #: ../category.c:836 msgid "New" msgstr " " #: ../category.c:843 msgid "Rename" msgstr "̸ٲٱ" #: ../dat.c:456 msgid "unknown type =" msgstr "˷ =" #: ../dat.c:537 #, c-format msgid "fields per row count != %d, unknown format\n" msgstr "ٴ ׸ != %d, ˷ \n" #: ../dat.c:551 #, c-format msgid "field count != %d, unknown format\n" msgstr "׸ !=%d, ˷ \n" #: ../dat.c:559 msgid "Unknown format, file has wrong schema\n" msgstr "˷ , ߸ Ű \n" #: ../dat.c:560 msgid "File schema is:" msgstr " Ű:" #: ../dat.c:564 #, fuzzy msgid "It should be:" msgstr "Ģ: " #: ../dat.c:674 ../dat.c:692 ../dat.c:876 ../dat.c:889 ../dat.c:1012 #: ../dat.c:1025 ../dat.c:1149 ../dat.c:1162 #, c-format msgid "%s:%d Record %d, field %d: Invalid type. Expected %d, found %d\n" msgstr "%s:%d ڷ %d, ׸ %d: Ÿġ . 밪 %d, ã %d\n" #: ../dat.c:675 ../dat.c:693 ../dat.c:877 ../dat.c:890 ../dat.c:994 #: ../dat.c:1013 ../dat.c:1026 ../dat.c:1150 ../dat.c:1163 msgid "read of file terminated\n" msgstr " б \n" #: ../datebook.c:705 ../datebook_gui.c:3648 #, c-format msgid "Unknown repeatType (%d) found in DatebookDB\n" msgstr "DatebookDB ˷ ݺ (%d) ߰\n" #: ../datebook_gui.c:241 #, fuzzy msgid "Repeat Never" msgstr "ݺ :" #: ../datebook_gui.c:242 #, fuzzy msgid "Repeat Daily" msgstr "ݺ " #: ../datebook_gui.c:243 #, fuzzy msgid "Repeat Weekly" msgstr "ݺ :" #: ../datebook_gui.c:244 #, fuzzy msgid "Repeat MonthlyByDay" msgstr "ݺ " #: ../datebook_gui.c:245 #, fuzzy msgid "Repeat MonthlyByDate" msgstr "ݺ " #: ../datebook_gui.c:246 msgid "Repeat YearlyDate" msgstr "" #: ../datebook_gui.c:247 #, fuzzy msgid "Repeat YearlyDay" msgstr "ݺ " #: ../datebook_gui.c:250 ../datebook_gui.c:257 ../datebook_gui.c:4803 #: ../datebook_gui.c:4810 msgid "Su" msgstr "" #: ../datebook_gui.c:251 ../datebook_gui.c:4804 msgid "Mo" msgstr "" #: ../datebook_gui.c:252 ../datebook_gui.c:4805 msgid "Tu" msgstr "ȭ" #: ../datebook_gui.c:253 ../datebook_gui.c:4806 msgid "We" msgstr "" #: ../datebook_gui.c:254 ../datebook_gui.c:4807 msgid "Th" msgstr "" #: ../datebook_gui.c:255 ../datebook_gui.c:4808 msgid "Fr" msgstr "" #: ../datebook_gui.c:256 ../datebook_gui.c:4809 msgid "Sa" msgstr "" #: ../datebook_gui.c:269 #, c-format msgid "" "Start Date: %s\n" "Time: Event" msgstr "" #: ../datebook_gui.c:277 #, c-format msgid "" "Start Date: %s\n" "Time: %s to %s" msgstr "" #: ../datebook_gui.c:287 ../datebook_gui.c:297 msgid "Unknown" msgstr "" #. End Date #: ../datebook_gui.c:300 #, fuzzy msgid "End Date: " msgstr " ¥" #: ../datebook_gui.c:302 msgid "Never" msgstr "" #: ../datebook_gui.c:308 #, c-format msgid "Repeat Frequency: %d\n" msgstr "" #: ../datebook_gui.c:316 #, c-format msgid "Monthly Repeat Day %d\n" msgstr "" #: ../datebook_gui.c:321 ../datebook_gui.c:5520 msgid "Repeat on Days:" msgstr "ݺ " #: ../datebook_gui.c:332 #, fuzzy, c-format msgid "Number of exceptions: %d" msgstr "ڷ = %d\n" #: ../datebook_gui.c:338 msgid "" "\n" "more..." msgstr "" #: ../datebook_gui.c:359 ../datebook_gui.c:386 msgid "Description:" msgstr "" #: ../datebook_gui.c:360 ../datebook_gui.c:387 #, fuzzy msgid "Note:" msgstr "Ʈ" #: ../datebook_gui.c:362 ../datebook_gui.c:390 #, fuzzy msgid "Alarm:" msgstr "˶" #: ../datebook_gui.c:363 ../datebook_gui.c:391 #, fuzzy msgid "Repeat Type:" msgstr "ݺ :" #: ../datebook_gui.c:366 ../datebook_gui.c:394 #, fuzzy msgid "Start of Week:" msgstr "" #: ../datebook_gui.c:388 ../datebook_gui.c:5343 msgid "Location:" msgstr "" #: ../datebook_gui.c:620 ../datebook_gui.c:2271 #, c-format msgid "Appointment description text > %d, truncating to %d\n" msgstr " > %d, %d ߷\n" #: ../datebook_gui.c:631 ../datebook_gui.c:1148 ../datebook_gui.c:2331 #: ../datebook_gui.c:2338 msgid "Error" msgstr "" #: ../datebook_gui.c:632 msgid "File doesn't appear to be datebook.dat format\n" msgstr " datebook.dat ƴ \n" #: ../datebook_gui.c:699 msgid "DAT/DBA (Palm Archive Formats)" msgstr "" #: ../datebook_gui.c:787 #, c-format msgid "" "Datebook exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:790 #, c-format msgid "" "Calendar exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:817 ../todo_gui.c:701 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ical file may not be standards-compliant\n" msgstr "" #: ../datebook_gui.c:1148 msgid "Unknown export type" msgstr "˷ " #: ../datebook_gui.c:1228 ../todo_gui.c:872 #, fuzzy msgid "iCalendar" msgstr "" #: ../datebook_gui.c:1240 ../export_gui.c:251 ../jpilot.c:429 msgid "Export" msgstr "" #. Label for instructions #: ../datebook_gui.c:1257 msgid "Export All Datebook Records" msgstr " Datebook ڷ " #: ../datebook_gui.c:1276 ../export_gui.c:316 msgid "Save as" msgstr "̸ " #. Browse button #: ../datebook_gui.c:1286 ../export_gui.c:329 msgid "Browse" msgstr "ĺ" #: ../datebook_gui.c:1432 msgid "Datebook Categories" msgstr "Datebook " #. None button #. Labels for notebook tabs #: ../datebook_gui.c:1484 ../datebook_gui.c:2026 ../datebook_gui.c:5449 msgid "None" msgstr "" #: ../datebook_gui.c:1633 msgid "Begin On Date" msgstr " ¥" #: ../datebook_gui.c:1639 msgid "End On Date" msgstr " ¥" #: ../datebook_gui.c:1751 ../prefs.c:451 msgid "Sunday" msgstr "Ͽ" #: ../datebook_gui.c:1752 ../prefs.c:452 msgid "Monday" msgstr "" #: ../datebook_gui.c:1753 msgid "Tuesday" msgstr "ȭ" #: ../datebook_gui.c:1754 msgid "Wednesday" msgstr "" #: ../datebook_gui.c:1755 msgid "Thursday" msgstr "" #: ../datebook_gui.c:1756 msgid "Friday" msgstr "ݿ" #: ../datebook_gui.c:1757 msgid "Saturday" msgstr "" #: ../datebook_gui.c:1760 msgid "4th" msgstr "4°" #: ../datebook_gui.c:1760 msgid "Last" msgstr "" #: ../datebook_gui.c:1763 #, c-format msgid "" "This appointment can either\n" "repeat on the 4th %s\n" "of the month, or on the last\n" "%s of the month.\n" "Which do you want?" msgstr "" " 4° ش \n" "4° %s\n" "Ȥ ش %s\n" "ݺ ϴ.\n" " մϱ?" #: ../datebook_gui.c:1770 ../datebook_gui.c:1786 msgid "Question?" msgstr "?" #: ../datebook_gui.c:1777 #, fuzzy msgid "" "This is a repeating event.\n" "Do you want to apply these changes to\n" "only the CURRENT event,\n" "just FUTURE events, or\n" "ALL of the occurrences of this event?" msgstr "" "ݺ Դϴ\n" " ٲ ͵\n" " ǿ Ͻðڽϱ\n" "ݺǴ ǵ鿡\n" "Ͻðڽϱ?" #: ../datebook_gui.c:1782 msgid "Current" msgstr "" #: ../datebook_gui.c:1782 msgid "Future" msgstr "" #: ../datebook_gui.c:2027 msgid "day" msgstr "" #: ../datebook_gui.c:2028 msgid "week" msgstr "" #: ../datebook_gui.c:2029 msgid "month" msgstr "" #: ../datebook_gui.c:2030 msgid "year" msgstr "" #: ../datebook_gui.c:2326 ../datebook_gui.c:2329 #, c-format msgid "You cannot have an appointment that repeats every %d %s(s)\n" msgstr " %d %s ݺϴ ϴ\n" #: ../datebook_gui.c:2339 #, fuzzy msgid "" "You cannot have a weekly repeating appointment that doesn't repeat on any " "day of the week." msgstr "  ݺ ʴ¸ ݺ ϴ" #. This is a timeless event #: ../datebook_gui.c:2516 ../datebook_gui.c:5264 msgid "No Time" msgstr " ð" #: ../datebook_gui.c:2788 ../memo_gui.c:1259 ../todo_gui.c:1728 msgid "External editor command too long to execute\n" msgstr "" #: ../datebook_gui.c:2943 msgid "Invalid Appointment" msgstr "Ÿ " #: ../datebook_gui.c:2944 msgid "" "The End Date of this appointment\n" "is before the start date." msgstr "" " \n" "۳¥ ??ϴ." #. "No Date" check box #: ../datebook_gui.c:3339 ../datebook_gui.c:5482 ../datebook_gui.c:5513 #: ../datebook_gui.c:5565 ../datebook_gui.c:5613 ../todo_gui.c:142 #: ../todo_gui.c:2454 msgid "No Date" msgstr "¥ " #: ../datebook_gui.c:3494 #, fuzzy, c-format msgid "Error in DateBookDB or Calendar advanceUnits = %d\n" msgstr "DateBookDB ޴ = %d\n" #: ../datebook_gui.c:3681 #, c-format msgid "%%a., %s" msgstr "%%a., %s" #: ../datebook_gui.c:3686 msgid " (TODAY)" msgstr " ()" #. Weekview button #: ../datebook_gui.c:4934 ../datebook_gui.c:5451 msgid "Week" msgstr "" #: ../datebook_gui.c:4943 #, fuzzy msgid "View appointments by week Ctrl+W" msgstr "ִ Ӻ" #. Monthview button #: ../datebook_gui.c:4946 ../datebook_gui.c:5452 msgid "Month" msgstr "" #: ../datebook_gui.c:4955 #, fuzzy msgid "View appointments by month Ctrl+M" msgstr " Ӻ" #. Make Category button #: ../datebook_gui.c:4960 msgid "Cats" msgstr "Cats" #: ../datebook_gui.c:5024 msgid "Time" msgstr "ð" #. "Show ToDos" button #: ../datebook_gui.c:5067 msgid "Show ToDos" msgstr " " #: ../datebook_gui.c:5081 ../todo_gui.c:2285 msgid "Task" msgstr "" #: ../datebook_gui.c:5082 ../todo_gui.c:2286 msgid "Due" msgstr "" #: ../datebook_gui.c:5201 ../datebook_gui.c:5358 msgid "Alarm" msgstr "˶" #. Date Spinners #: ../datebook_gui.c:5241 ../Expense/expense.c:1736 msgid "Date:" msgstr "¥:" #. Start date and time #: ../datebook_gui.c:5283 #, fuzzy msgid "Start" msgstr " " #. End date and time #: ../datebook_gui.c:5300 #, fuzzy msgid "End" msgstr " " #: ../datebook_gui.c:5433 msgid "DateBk Tags" msgstr "DateBk ǥ" #: ../datebook_gui.c:5450 msgid "Day" msgstr "" #: ../datebook_gui.c:5453 msgid "Year" msgstr "" #. "No Repeat" page for notebook #: ../datebook_gui.c:5456 msgid "This event will not repeat" msgstr " ݺ " #: ../datebook_gui.c:5465 ../datebook_gui.c:5498 ../datebook_gui.c:5550 #: ../datebook_gui.c:5596 msgid "Frequency is Every" msgstr " : " #: ../datebook_gui.c:5471 msgid "Day(s)" msgstr "" #: ../datebook_gui.c:5474 ../datebook_gui.c:5507 ../datebook_gui.c:5559 #: ../datebook_gui.c:5605 msgid "End on" msgstr " " #: ../datebook_gui.c:5504 msgid "Week(s)" msgstr "" #: ../datebook_gui.c:5556 msgid "Month(s)" msgstr "" #: ../datebook_gui.c:5573 msgid "Repeat by:" msgstr "ݺ :" #: ../datebook_gui.c:5577 msgid "Day of week" msgstr "" #: ../datebook_gui.c:5586 ../Expense/expense.c:1618 msgid "Date" msgstr "" #: ../datebook_gui.c:5602 msgid "Year(s)" msgstr "" #: ../dialer.c:195 msgid "Phone Dialer" msgstr "ȭ ɱ" #: ../dialer.c:230 msgid "Prefix 1" msgstr "λ 1" #: ../dialer.c:252 msgid "Prefix 2" msgstr "λ 2" #: ../dialer.c:274 msgid "Prefix 3" msgstr "λ 3" #: ../dialer.c:289 msgid "Phone number:" msgstr "ȭ ȣ:" #: ../dialer.c:319 msgid "Extension" msgstr "Ȯ" #: ../dialer.c:341 msgid "Dial Command" msgstr "ȭɱ " #: ../export_gui.c:121 msgid "File Browser" msgstr " " #. Label for instructions #: ../export_gui.c:273 msgid "Select records to be exported" msgstr " ڷ " #: ../export_gui.c:275 msgid "Use Ctrl and Shift Keys" msgstr "Ctrl Shift Ű ϼ" #. Import button #: ../import_gui.c:300 ../import_gui.c:369 ../import_gui.c:426 #: ../import_gui.c:471 ../jpilot.c:385 msgid "Import" msgstr "鿩" #: ../import_gui.c:317 #, c-format msgid "Record was marked as private" msgstr "ǥ " #: ../import_gui.c:319 #, c-format msgid "Record was not marked as private" msgstr "ڷᰡ " #: ../import_gui.c:328 #, c-format msgid "Category before import was: [%s]" msgstr "鿩 : [%s]" #: ../import_gui.c:336 #, c-format msgid "Record will be put in category [%s]" msgstr "ڷᰡ ַ Էµ [%s]" #. Import All button #: ../import_gui.c:376 msgid "Import All" msgstr " 鿩" #. Skip button #: ../import_gui.c:383 msgid "Skip" msgstr "dzʶٱ" #: ../import_gui.c:457 ../install_gui.c:429 msgid "To change to a hidden directory type it below and hit TAB" msgstr " 丮 Ϸ, Ʒ Էϰ TAB ġ" #: ../import_gui.c:484 msgid "Import File Type" msgstr "鿩 " #: ../install_gui.c:366 #, fuzzy msgid "Files to install" msgstr "ġ ϵ" #: ../install_gui.c:374 msgid "Install" msgstr "ġ" #: ../install_user.c:118 ../install_user.c:220 #, fuzzy msgid "Install User" msgstr "// Է" #: ../install_user.c:139 msgid "" "A PalmOS(c) device needs a user name and a user ID in order to sync properly." msgstr "" #: ../install_user.c:146 msgid "" "If you want to sync more than 1 PalmOS(c) device each one should have a " "different ID and preferably a different user name." msgstr "" #. Instruction label #: ../install_user.c:168 msgid "Most people choose their name or nickname for the user name." msgstr "" #: ../install_user.c:176 ../restore_gui.c:278 msgid "User Name" msgstr " ̸" #: ../install_user.c:186 msgid "The ID should be a random number." msgstr "" #: ../install_user.c:194 ../restore_gui.c:297 msgid "User ID" msgstr " ID" #: ../jpilot.c:319 msgid "Print" msgstr "μ" #: ../jpilot.c:320 msgid "There is no print support for this conduit." msgstr " μ ȵ˴ϴ." #: ../jpilot.c:386 msgid "There is no import support for this conduit." msgstr " 鿩 ȵ˴ϴ." #: ../jpilot.c:430 msgid "There is no export support for this conduit." msgstr " ȵ˴ϴ." #: ../jpilot.c:659 #, fuzzy msgid " Cancelling HotSync\n" msgstr "ũ " #. ------------------------------------------- #: ../jpilot.c:675 #, fuzzy msgid "" "This handheld does not have the same user name or user ID\n" "as the one that was synced the last time.\n" "Syncing could have unwanted effects including data loss.\n" "\n" "Read the user manual if you are uncertain." msgstr "" " ֱ ũ Ͱ ̸\n" "Ȥ ID ʽϴ.\n" "ũѴٸ ġ ʴ ֽϴ.\n" " 𸣰ڴٸ оʽÿ." #. ------------------------------------------- #: ../jpilot.c:682 #, fuzzy msgid "" "This handheld has a NULL user ID.\n" "Every handheld must have a unique user ID in order to sync properly.\n" "If the handheld has been hard reset, \n" " use restore from the menu to restore it.\n" "Otherwise, to add a new user name and ID\n" " use install-user from the menu.\n" "\n" "Read the user manual if you are uncertain." msgstr "" " ʿ id ϴ.\n" " id ־ ũ˴ϴ.\n" "ϵ帮 ߴٸ, ޴ ϱ⸦ ϰų pilot-xfer\n" "Ͽ Ͻʽÿ.\n" "̸ ID ߰ϱ ؼ install-user \n" "ϰų ޴ Է Ͻʽÿ.\n" " 𸣰ڴٸ оʽÿ." #: ../jpilot.c:690 msgid "Cancel Sync" msgstr "ũ " #: ../jpilot.c:690 msgid "Sync Anyway" msgstr "ũ ϱ" #: ../jpilot.c:699 ../jpilot.c:703 msgid "Sync Problem" msgstr "ũ " #: ../jpilot.c:932 ../jpilot.c:1785 msgid " User: " msgstr " : " #: ../jpilot.c:944 msgid "Unknown command from sync process\n" msgstr "ũ ˷ \n" #: ../jpilot.c:963 ../Expense/expense.c:529 ../KeyRing/keyring.c:1872 #: ../SyncTime/synctime.c:61 #, c-format msgid "About %s" msgstr " %s" #: ../jpilot.c:1105 msgid "/_File" msgstr "/(_F)" #: ../jpilot.c:1106 msgid "/File/tear" msgstr "//tear" #: ../jpilot.c:1107 msgid "/File/_Find" msgstr "//ã(_F)" #: ../jpilot.c:1108 ../jpilot.c:1114 ../jpilot.c:1117 msgid "/File/sep1" msgstr "//sep1" #: ../jpilot.c:1109 msgid "/File/_Install" msgstr "//ġϱ(_I)" #: ../jpilot.c:1110 msgid "/File/Import" msgstr "//鿩" #: ../jpilot.c:1111 msgid "/File/Export" msgstr "//" #: ../jpilot.c:1112 ../jpilot.c:2190 msgid "/File/Preferences" msgstr "//û" #: ../jpilot.c:1113 msgid "/File/_Print" msgstr "//μ(_P)" #: ../jpilot.c:1115 msgid "/File/Install User" msgstr "// Է" #: ../jpilot.c:1116 msgid "/File/Restore Handheld" msgstr "// ϱ" #: ../jpilot.c:1118 msgid "/File/_Quit" msgstr "//(_Q)" #: ../jpilot.c:1119 msgid "/_View" msgstr "/(_V)" #: ../jpilot.c:1120 ../jpilot.c:1121 ../jpilot.c:1122 ../jpilot.c:1368 msgid "/View/Hide Private Records" msgstr "// ڷ ߱" #: ../jpilot.c:1121 ../jpilot.c:1371 msgid "/View/Show Private Records" msgstr "// ڷ ǥϱ" #: ../jpilot.c:1122 ../jpilot.c:1374 msgid "/View/Mask Private Records" msgstr "// ڷ ũ" #: ../jpilot.c:1123 msgid "/View/sep1" msgstr "//sep1" #: ../jpilot.c:1124 msgid "/View/Datebook" msgstr "//" #: ../jpilot.c:1125 msgid "/View/Addresses" msgstr "//ּҷ" #: ../jpilot.c:1126 msgid "/View/Todos" msgstr "//" #: ../jpilot.c:1127 msgid "/View/Memos" msgstr "//޸" #: ../jpilot.c:1128 ../jpilot.c:1259 msgid "/_Plugins" msgstr "/÷(_P)" #: ../jpilot.c:1130 msgid "/_Web" msgstr "/(_W)" #. web #: ../jpilot.c:1131 msgid "/Web/Netscape" msgstr "//ݽ" #: ../jpilot.c:1135 msgid "/Web/Mozilla" msgstr "//" #: ../jpilot.c:1140 msgid "/Web/Galeon" msgstr "//" #: ../jpilot.c:1145 msgid "/Web/Opera" msgstr "//" #: ../jpilot.c:1149 msgid "/Web/GnomeUrl" msgstr "//GnomeUrl" #: ../jpilot.c:1151 msgid "/Web/Lynx" msgstr "//Lynx" #: ../jpilot.c:1153 msgid "/Web/Links" msgstr "//Links" #: ../jpilot.c:1155 msgid "/Web/W3M" msgstr "//W3M" #: ../jpilot.c:1157 msgid "/Web/Konqueror" msgstr "//Ŀ" #: ../jpilot.c:1160 msgid "/_Help" msgstr "/(_H)" #: ../jpilot.c:1161 msgid "/Help/About J-Pilot" msgstr "//J-Pilot Ͽ" #: ../jpilot.c:1227 #, c-format msgid "/_Plugins/%s" msgstr "/÷(_P)/%s" #: ../jpilot.c:1237 #, c-format msgid "/_Help/%s" msgstr "/(_H)/%s" #: ../jpilot.c:1591 msgid "calendar:week_start:0" msgstr "޷: (_s):0" #: ../jpilot.c:1634 ../jpilot-sync.c:171 msgid "Not loading plugins.\n" msgstr "÷ ε .\n" #: ../jpilot.c:1638 msgid "Ignoring all alarms.\n" msgstr " ˶ .\n" #: ../jpilot.c:1642 msgid "Ignoring past alarms.\n" msgstr " ˶ .\n" #: ../jpilot.c:1730 ../jpilot.c:1738 msgid "Unable to open pipe\n" msgstr " \n" #: ../jpilot.c:1947 #, fuzzy msgid "Show private records Ctrl+Z" msgstr " ǥϱ Ctrl-Z" #: ../jpilot.c:1952 #, fuzzy msgid "Hide private records Ctrl+Z" msgstr " ߱ Ctrl-Z" #: ../jpilot.c:1957 #, fuzzy msgid "Mask private records Ctrl+Z" msgstr " ũ Ctrl-Z" #: ../jpilot.c:1969 #, fuzzy msgid "Sync your palm to the desktop Ctrl+Y" msgstr "ũž ũϱ Ctrl-Y" #: ../jpilot.c:1981 #, fuzzy msgid "Stop Sync process" msgstr "ּҷ ũ" #: ../jpilot.c:1993 msgid "" "Sync your palm to the desktop\n" "and then do a backup" msgstr "" " ũž ũ \n" "ϱ" #: ../jpilot.c:2141 msgid "Datebook/Go to Today" msgstr "/÷ " #: ../jpilot.c:2142 msgid "Address Book" msgstr "ּҷ" #: ../jpilot.c:2143 msgid "ToDo List" msgstr " " #: ../jpilot.c:2144 msgid "Memo Pad" msgstr "޸" #: ../jpilot.c:2172 msgid "Do it now" msgstr " ϱ" #: ../jpilot.c:2172 msgid "Remind me later" msgstr "߿ ˷ֱ" #: ../jpilot.c:2172 msgid "Don't tell me again!" msgstr "ٽ ˷ " #: ../jpilot.c:2185 #, fuzzy, c-format msgid "" "J-Pilot uses the GTK2 graphical toolkit. This version of the toolkit uses " "UTF-8 to encode characters.\n" "You should select a UTF-8 charset so that you can see non-ASCII characters " "(accents for example).\n" "\n" "Go to the menu \"%s\" and change the \"%s\"." msgstr "" "J-Pilot GTK2 ׷ Ŷ ϰ ֽϴ. Ŷ UTF-8" "Ͽ ڸ ȣȭմϴ.\n" "ASCII ̿ ڸ ؼ UTF-8 ڸ ؾ մϴ.\n" "( ǼƮ).\n" "\n" #. Character Set #: ../jpilot.c:2190 ../prefs_gui.c:511 #, fuzzy msgid "Character Set" msgstr " " #: ../jpilot.c:2192 msgid "Select a UTF-8 encoding" msgstr "UTF-I ȣȭ " #: ../jpilot-dump.c:94 #, fuzzy, c-format msgid " +D +A +T +M format like date +format.\n" msgstr "¥ +format +B +M +A +T \n" #: ../jpilot-dump.c:95 #, fuzzy, c-format msgid " -v display version and exit\n" msgstr "-v .\n" #: ../jpilot-dump.c:96 ../jpilot-sync.c:68 ../utils.c:1874 #, fuzzy, c-format msgid " -h display help text\n" msgstr "-h .\n" #: ../jpilot-dump.c:97 #, fuzzy, c-format msgid " -f display help for format codes\n" msgstr "-f ڵ ֱ.\n" #: ../jpilot-dump.c:98 #, fuzzy, c-format msgid " -D dump DateBook\n" msgstr "-D DateBook ϱ\n" #: ../jpilot-dump.c:99 #, fuzzy, c-format msgid " -i dump DateBook in iCalendar format\n" msgstr "-D DateBook ϱ\n" #: ../jpilot-dump.c:100 #, fuzzy, c-format msgid " -N dump appts for today in DateBook\n" msgstr "-N DateBook \n" #: ../jpilot-dump.c:101 #, fuzzy, c-format msgid " -NYYYY/MM/DD dump appts on YYYY/MM/DD in DateBook\n" msgstr "-NYYYY/MM/DD Datebook YYYY/MM/DD .\n" #: ../jpilot-dump.c:102 #, fuzzy, c-format msgid " -A dump Address book\n" msgstr "-A ּҷ \n" #: ../jpilot-dump.c:103 #, fuzzy, c-format msgid " -T dump ToDo list as CSV\n" msgstr "-T CSV .\n" #: ../jpilot-dump.c:104 #, fuzzy, c-format msgid " -M dump Memos\n" msgstr "-M ޸ .\n" #: ../jpilot-dump.c:165 #, c-format msgid "" "Warning: Host character encoding is not UTF-8 based.\n" "Exported ical file may not be standards-compliant\n" msgstr "" #: ../jpilot-merge.c:163 ../jpilot-merge.c:169 #, fuzzy, c-format msgid "%s: Unable to open file:%s\n" msgstr " : %s\n" #: ../jpilot-merge.c:271 #, c-format msgid "Records read from pdb = %d\n" msgstr "" #: ../jpilot-merge.c:272 #, c-format msgid "Records added = %d\n" msgstr "" #: ../jpilot-merge.c:273 #, c-format msgid "Records deleted = %d\n" msgstr "" #: ../jpilot-merge.c:274 #, c-format msgid "Records modified = %d\n" msgstr "" #: ../jpilot-merge.c:275 #, c-format msgid "Records written = %d\n" msgstr "" #: ../jpilot-merge.c:293 #, c-format msgid "Usage: %s {input pdb file} {input pc3 file} {output pdb file}\n" msgstr "" #: ../jpilot-merge.c:294 #, c-format msgid " This program will merge an unsynced records file (pc3)\n" msgstr "" #: ../jpilot-merge.c:295 #, c-format msgid "" " into the corresponding palm database (pdb) file.\n" "\n" msgstr "" #: ../jpilot-merge.c:296 #, c-format msgid " WARNING: Only run this utility if you understand the consequences!\n" msgstr "" #: ../jpilot-merge.c:297 #, c-format msgid " The merge will leave your databases in an unsync-able state.\n" msgstr "" #: ../jpilot-merge.c:298 #, c-format msgid "" " It is intended for cases where J-pilot is being used as a standalone PIM\n" msgstr "" #: ../jpilot-merge.c:299 #, c-format msgid " and where no syncing occurs to physical hardware.\n" msgstr "" #: ../jpilot-merge.c:300 #, c-format msgid " WARNING: Make a backup copy of your databases before proceeding.\n" msgstr "" #: ../jpilot-merge.c:301 #, c-format msgid "" " It is quite simple to destroy your databases by accidentally merging\n" msgstr "" #: ../jpilot-merge.c:302 #, c-format msgid " address records into datebook databases, etc.\n" msgstr "" #: ../jpilot-sync.c:66 #, fuzzy, c-format msgid "" " J-Pilot preferences are read to get sync info such as port, rate, number of " "backups, etc.\n" msgstr "" "Ʈ/ۼӵ/ , Ÿ J-Pilot û б.\n" #: ../jpilot-sync.c:67 ../utils.c:1873 #, fuzzy, c-format msgid " -v display version and compile options\n" msgstr "-v ɼ ǥϰ .\n" #: ../jpilot-sync.c:69 ../utils.c:1875 #, fuzzy, c-format msgid " -d display debug info to stdout\n" msgstr "-d ǥ ǥ.\n" #: ../jpilot-sync.c:70 #, fuzzy, c-format msgid " -P skip loading plugins\n" msgstr " -p ÷ ε dzʶ.\n" #: ../jpilot-sync.c:71 #, fuzzy, c-format msgid " -b sync, and then do a backup\n" msgstr "" " ũž ũ \n" "ϱ" #: ../jpilot-sync.c:72 #, fuzzy, c-format msgid " -l loop, otherwise sync once and exit\n" msgstr " -l = ݺ, ʴٸ ũ .\n" #: ../jpilot-sync.c:73 #, fuzzy, c-format msgid " -p {port} use this port to sync on instead of default\n" msgstr " -p {port} = ũ û Ʈ \n" #: ../jpilot-sync.c:221 #, fuzzy, c-format msgid "Error: connecting to port %s\n" msgstr " : %s\n" #: ../jpilot-sync.c:225 #, c-format msgid "Error: pi_listen\n" msgstr "" #: ../jpilot-sync.c:229 #, fuzzy, c-format msgid "Error: opening conduit to handheld\n" msgstr " : next_id\n" #: ../jpilot-sync.c:233 #, c-format msgid "Error: pi_accept\n" msgstr "" #: ../jpilot-sync.c:237 ../jpilot-sync.c:265 #, fuzzy, c-format msgid "Error: " msgstr "" #: ../jpilot-sync.c:238 #, c-format msgid "This handheld does not have the same user name.\n" msgstr "" #: ../jpilot-sync.c:239 ../jpilot-sync.c:253 #, c-format msgid "as the one that was synced the last time.\n" msgstr "" #: ../jpilot-sync.c:241 #, c-format msgid "" "Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:243 ../jpilot-sync.c:256 #, c-format msgid " COPILOT_HOME" msgstr "" #: ../jpilot-sync.c:245 ../jpilot-sync.c:258 #, c-format msgid " JPILOT_HOME" msgstr "" #: ../jpilot-sync.c:247 ../jpilot-sync.c:260 #, fuzzy, c-format msgid " environment variable can be used to sync different handhelds,\n" msgstr " Ȩ ȯ ʹ ϴ.\n" #: ../jpilot-sync.c:248 ../jpilot-sync.c:261 #, c-format msgid " to different directories for the same UNIX user name.\n" msgstr "" #: ../jpilot-sync.c:252 #, c-format msgid "This handheld does not have the same user ID.\n" msgstr "" #: ../jpilot-sync.c:254 #, c-format msgid "" " Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:266 #, c-format msgid "This handheld has a NULL user ID.\n" msgstr "" #: ../jpilot-sync.c:267 #, c-format msgid "Every handheld must have a unique user ID in order to sync properly.\n" msgstr "" #: ../jpilot-sync.c:268 #, c-format msgid "If the handheld has been hard reset, \n" msgstr "" #: ../jpilot-sync.c:269 #, c-format msgid " use restore from within " msgstr "" #: ../jpilot-sync.c:270 #, c-format msgid "Otherwise, to add a new user name and ID\n" msgstr "" #: ../jpilot-sync.c:271 #, c-format msgid " use \"install-user %s name numeric_id\"\n" msgstr "" #: ../jpilot-sync.c:275 #, c-format msgid "Error: sync returned error %d\n" msgstr "" #: ../libplugin.c:64 ../utils.c:1054 msgid "" "This record is already deleted.\n" "It is scheduled to be deleted from the Palm on the next sync.\n" msgstr "" " ڷ ̹ Ǿ.\n" " ũ ʿ \n" #: ../libplugin.c:73 ../libplugin.c:110 ../utils.c:1064 ../utils.c:1106 msgid "Unable to open PC records file\n" msgstr "PC ڷ \n" #: ../libplugin.c:79 ../utils.c:1071 msgid "Couldn't find record to delete\n" msgstr " ڷḦ ã \n" #: ../libplugin.c:97 ../utils.c:1091 #, c-format msgid "Unknown header version %d\n" msgstr "˷ %d\n" #: ../libplugin.c:182 #, c-format msgid "%s:%d Error opening file: %s\n" msgstr "%s:%d : %s\n" #: ../libplugin.c:188 ../libplugin.c:217 ../sync.c:1721 ../todo.c:102 #, c-format msgid "%s:%d Error reading file: %s\n" msgstr "%s:%d б : %s\n" #: ../libplugin.c:340 ../libplugin.c:398 ../utils.c:2119 ../utils.c:2132 #, c-format msgid "Error opening file: %s\n" msgstr " : %s\n" #: ../libplugin.c:526 #, c-format msgid "Error reading %s 5\n" msgstr " б %s 5\n" #: ../libplugin.c:801 msgid "Error reading PC file 1\n" msgstr "PC 1\n" #: ../libplugin.c:817 msgid "Error reading PC file 2\n" msgstr "PC 2\n" #: ../libplugin.c:923 #, c-format msgid "Unknown PC header version = %d\n" msgstr "˷ PC header = %d\n" #: ../log.c:101 #, c-format msgid "Unable to open log file, giving up.\n" msgstr " , .\n" #: ../log.c:111 #, c-format msgid "Unable to open log file\n" msgstr " \n" #: ../memo_gui.c:302 msgid "Memo text > 65535, truncating\n" msgstr "޸ ؽũ ũ > 65535, ߶\n" #: ../memo_gui.c:330 #, c-format msgid "Imported Memo %s\n" msgstr "޸ 鿩 %s\n" #: ../memo_gui.c:400 msgid "File doesn't appear to be memopad.dat format\n" msgstr " memopad.dat ƴѵ\n" #: ../memo_gui.c:471 msgid "DAT/MPA (Palm Archive Formats)" msgstr "" #: ../memo_gui.c:554 #, c-format msgid "" "Memo exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:557 #, c-format msgid "" "Memos exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:584 #, c-format msgid "Can't export memo %d\n" msgstr "޸ %d \n" #: ../memo_gui.c:628 #, fuzzy, c-format msgid "Memo: %ld\n" msgstr "޸" #: ../memo_gui.c:634 #, c-format msgid "----- Start of Memo -----\n" msgstr "" #: ../memo_gui.c:636 #, c-format msgid "" "\n" "----- End of Memo -----\n" "\n" msgstr "" #: ../memo_gui.c:668 msgid "B-Folders CSV" msgstr "" #: ../monthview_gui.c:438 msgid "Monthly View" msgstr " " #: ../monthview_gui.c:480 msgid "Last month Alt+LeftArrow" msgstr "" #: ../monthview_gui.c:508 msgid "Next month Alt+RightArrow" msgstr "" #: ../otherconv.c:76 #, c-format msgid "%s: error exit from g_iconv_close(%s)\n" msgstr "" #: ../otherconv.c:201 #, c-format msgid "%s:%s g_convert_with_iconv error: %s, buff: %s\n" msgstr "" #: ../otherconv.c:203 msgid "last char truncated" msgstr "" #: ../otherconv.c:280 #, c-format msgid "UTF_to_other: %s\n" msgstr "" #: ../otherconv.c:294 #, c-format msgid "iconv: unconvertible sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:298 #, c-format msgid "iconv: incomplete UTF-8 sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:301 #, c-format msgid "iconv: buffer filled. stopped at place %d in '%s'\n" msgstr "" #: ../otherconv.c:304 #, c-format msgid "iconv: unexpected error at place %d in '%s'\n" msgstr "" #: ../password.c:283 msgid "Palm Password" msgstr " йȣ" #: ../password.c:308 msgid "Incorrect, Reenter PalmOS Password" msgstr "Ʋ, йȣ ٽ Էϼ" #: ../password.c:310 msgid "Enter PalmOS Password" msgstr " йȣ Էϼ" #: ../pidfile.c:67 msgid "removing stale pidfile\n" msgstr "" #: ../pidfile.c:91 #, fuzzy, c-format msgid "create pidfile failed: %s\n" msgstr " б : %s\n" #: ../pidfile.c:92 msgid "Warning: hotplug syncing disabled.\n" msgstr "" #: ../plugins.c:90 ../plugins.c:203 ../restore_gui.c:133 msgid "infinite loop" msgstr " " #: ../plugins.c:216 #, c-format msgid "While reading %s%s line 1:[%s]\n" msgstr "%s%s 1 д : [%s]\n" #: ../plugins.c:217 msgid "Wrong Version\n" msgstr "߸ \n" #: ../plugins.c:218 msgid "Check preferences->conduits\n" msgstr "û-> ϼ\n" #: ../plugins.c:274 #, c-format msgid "" "Open failed on plugin [%s]\n" " error [%s]\n" msgstr "" "÷ [%s] µ \n" " [%s]\n" #: ../plugins.c:291 ../plugins.c:316 #, c-format msgid " plugin is invalid: [%s]\n" msgstr " ÷ Ÿ : [%s]\n" #: ../plugins.c:299 #, c-format msgid "Plugin:[%s]\n" msgstr "÷: [%s]\n" #: ../plugins.c:300 #, c-format msgid "This plugin is version (%d.%d).\n" msgstr " ÷ (%d.%d).\n" #: ../plugins.c:302 msgid "It is too old to work with this version of J-Pilot.\n" msgstr "J-Pilot ߾ ۵ϱ ʹ Ǿϴ.\n" #: ../prefs.c:420 msgid "%B %d, %Y" msgstr "%B %d, %Y" #: ../prefs.c:421 msgid "%d %B %Y" msgstr "%d %B %Y" #: ../prefs.c:422 msgid "%d. %B %Y" msgstr "%d. %B %Y" #: ../prefs.c:423 msgid "%d %B, %Y" msgstr "%d %B, %Y" #: ../prefs.c:424 msgid "%Y. %B. %d" msgstr "%Y. %B. %d" #: ../prefs.c:425 msgid "%Y %B %d" msgstr "%Y %B %d" #: ../prefs_gui.c:454 msgid "Preferences" msgstr "û" #: ../prefs_gui.c:485 msgid "Locale" msgstr "" #: ../prefs_gui.c:487 msgid "Settings" msgstr "" #: ../prefs_gui.c:489 msgid "Datebook" msgstr "" #: ../prefs_gui.c:493 msgid "ToDo" msgstr "" #: ../prefs_gui.c:495 msgid "Memo" msgstr "޸" #: ../prefs_gui.c:497 msgid "Alarms" msgstr "˶" #: ../prefs_gui.c:499 msgid "Conduits" msgstr "" #. Shortdate #: ../prefs_gui.c:524 #, fuzzy msgid "Short date format" msgstr " ¥ " #. Longdate #: ../prefs_gui.c:537 #, fuzzy msgid "Long date format" msgstr " ¥ " #. Time #: ../prefs_gui.c:550 #, fuzzy msgid "Time format" msgstr "ð " #. GTK colors file #: ../prefs_gui.c:570 #, fuzzy msgid "GTK color theme file" msgstr " GTK " #. Port #: ../prefs_gui.c:583 #, fuzzy msgid "Sync Port" msgstr "ũ " #. Serial Rate #: ../prefs_gui.c:607 msgid "Serial Rate" msgstr "" #. Number of backups #: ../prefs_gui.c:627 msgid "Number of backups to be archived" msgstr " " #. Show deleted files check box #: ../prefs_gui.c:645 msgid "Show deleted records (default NO)" msgstr " ڷ ֱ (⺻ ƴϿ)" #. Show modified files check box #: ../prefs_gui.c:649 msgid "Show modified deleted records (default NO)" msgstr " ڷ ֱ (⺻ ƴϿ)" #: ../prefs_gui.c:654 msgid "Ask confirmation for file installation (J-Pilot -> PDA) (default YES)" msgstr " ġ (J-Pilot -> PDA) Ȯ (⺻ )" #. Show tooltips check box #: ../prefs_gui.c:658 #, fuzzy msgid "Show popup tooltips (default YES) (requires restart)" msgstr "˾ ֱ (⺻ )" #: ../prefs_gui.c:668 msgid "Use Datebook database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:671 msgid "Use Calendar database (Palm OS > 5.2)" msgstr "" #. Show highlight days check box #: ../prefs_gui.c:697 msgid "Highlight calendar days with appointments" msgstr "ִ ¥ ޷¿ ϱ" #. Highlight today on month and week view #: ../prefs_gui.c:702 msgid "Annotate today in day, week, and month views" msgstr "// ⿡ ּó" #. Show number of years on anniversaries in month and week view #: ../prefs_gui.c:706 msgid "Append years on anniversaries in day, week, and month views" msgstr "// ⿡ ų ߰" #. Show use DateBk check box #: ../prefs_gui.c:712 msgid "Use DateBk note tags" msgstr "DateBk Ʈ ϱ" #: ../prefs_gui.c:715 msgid "DateBk support disabled in this build" msgstr " DateBk " #: ../prefs_gui.c:727 msgid "Use Address database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:730 msgid "Use Contacts database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:759 msgid "Mail Command" msgstr " " #: ../prefs_gui.c:773 #, c-format msgid "%s is replaced by the e-mail address" msgstr "%s ̸ ּҷ ġ" #: ../prefs_gui.c:785 msgid "Use ToDo database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:788 msgid "Use Task database (Palm OS > 5.2)" msgstr "" #. hide completed check box #: ../prefs_gui.c:815 msgid "Hide Completed ToDos" msgstr "Ϸ " #. hide todos not yet due check box #: ../prefs_gui.c:819 msgid "Hide ToDos not yet due" msgstr " ƴ " #. record todo completion date check box #: ../prefs_gui.c:823 msgid "Record Completion Date" msgstr "ڷ Ϸ ¥" #. Use Manana check box #: ../prefs_gui.c:828 msgid "Use Manana database" msgstr "Manana Ÿ̽ " #: ../prefs_gui.c:836 msgid "Use default number of days due" msgstr "¥ ⺻ " #: ../prefs_gui.c:858 msgid "Use Memo database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:861 msgid "Use Memos database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:864 #, fuzzy msgid "Use Memo32 database (pedit32)" msgstr "Memo32 (pedit32)" #: ../prefs_gui.c:904 msgid "External Editor" msgstr "" #: ../prefs_gui.c:917 msgid "Use Ctrl-E inside a memo to launch external editor for memo text" msgstr "" #. ******************************************************************** #. Alarms preference tab #. Open alarm windows check box #: ../prefs_gui.c:925 msgid "Open alarm windows for appointment reminders" msgstr " ȯ⸦ ˶ â " #. Execute alarm command check box #: ../prefs_gui.c:929 msgid "Execute this command" msgstr " " #. Shell warning label #: ../prefs_gui.c:933 msgid "WARNING: executing arbitrary shell commands can be dangerous!!!" msgstr ": ϴ ֽϴ!!!" #: ../prefs_gui.c:941 msgid "Alarm Command" msgstr "˶ " #: ../prefs_gui.c:954 msgid "%t is replaced with the alarm time" msgstr "%t ˶ð ġ" #: ../prefs_gui.c:958 #, c-format msgid "%d is replaced with the alarm date" msgstr "%d ˶ ¥ ġ" #: ../prefs_gui.c:963 msgid "%D is replaced with the alarm description" msgstr "%D ˶ ġ" #: ../prefs_gui.c:967 msgid "%N is replaced with the alarm note" msgstr "%N ˶ Ʈ ġ" #: ../prefs_gui.c:971 msgid "%D (description substitution) is disabled in this build" msgstr "%D ( ġ) α׷ " #: ../prefs_gui.c:976 msgid "%N (note substitution) is disabled in this build" msgstr "%N (Ʈ ġ) α׷ " #. ******************************************************************** #. Conduits preference tab #. Sync datebook check box #: ../prefs_gui.c:986 msgid "Sync datebook" msgstr " ũ" #. Sync address check box #: ../prefs_gui.c:990 msgid "Sync address" msgstr "ּҷ ũ" #. Sync todo check box #: ../prefs_gui.c:994 msgid "Sync todo" msgstr " ũ" #. Sync memo check box #: ../prefs_gui.c:998 msgid "Sync memo" msgstr "޸ ũ" #. Show sync Manana check box #: ../prefs_gui.c:1003 msgid "Sync Manana" msgstr "Manana ũ" #. Show use Japanese Kana extention check box #: ../prefs_gui.c:1009 msgid "Use J-OS (Not Japanese PalmOS:WorkPad/CLIE)" msgstr "J-OS (Ϻ ƴ:WorkPad/CLIE) ϱ" #. Make a Sync checkbox for each plugin #: ../prefs_gui.c:1022 #, c-format msgid "Sync %s (%s)" msgstr "ũ %s (%s)" #: ../print_gui.c:185 msgid "Print Options" msgstr "μ û" #: ../print_gui.c:198 msgid "Paper Size" msgstr " ũ" #: ../print_gui.c:214 msgid "Daily Printout" msgstr "Ϻ μ" #: ../print_gui.c:220 msgid "Weekly Printout" msgstr "ֺ μ" #: ../print_gui.c:226 msgid "Monthly Printout" msgstr " μ" #: ../print_gui.c:266 #, fuzzy msgid "Selected record" msgstr "%s ڷ " #: ../print_gui.c:270 msgid "All records in this category" msgstr " ڷ" #: ../print_gui.c:274 msgid "Print all records" msgstr " ڷ μ" #: ../print_gui.c:296 msgid "One record per page" msgstr "ʴ ϳ ڷ" #: ../print_gui.c:312 #, fuzzy msgid "Blank lines between each record" msgstr " ڷ ̿ " #. Print Command #: ../print_gui.c:321 msgid "Print Command (e.g. lpr, or cat > file.ps)" msgstr "μ (. lpr, Ȥ cat > file.ps)" #: ../restore_gui.c:71 ../restore_gui.c:229 msgid "Restore Handheld" msgstr " " #: ../restore_gui.c:176 ../restore_gui.c:178 msgid "Unable to convert filename for GTK display\n" msgstr "" #: ../restore_gui.c:177 msgid "See console log to find which file will not be restored\n" msgstr "" #: ../restore_gui.c:179 #, fuzzy, c-format msgid "File %s will not be restored\n" msgstr "ġ ϵ" #. Label for instructions #: ../restore_gui.c:246 msgid "To restore your handheld:" msgstr " ϱ :" #: ../restore_gui.c:249 #, fuzzy msgid "1. Choose the applications you wish to restore. The default is all." msgstr "1. ϱ⸦ ϴ α׷ . ⺻ ." #: ../restore_gui.c:252 msgid "2. Enter the User Name and User ID." msgstr "2. ̸ ID Է" #: ../restore_gui.c:255 msgid "3. Press the OK button." msgstr "3. Ȯ ư " #: ../restore_gui.c:258 msgid "This will overwrite data that is currently on the handheld." msgstr "̰ ʿ ִ ڷḦ  Դϴ." #: ../search_gui.c:144 msgid "datebook" msgstr "" #: ../search_gui.c:146 #, fuzzy msgid "calendar" msgstr "" #: ../search_gui.c:233 msgid "address" msgstr "ּҷ" #: ../search_gui.c:235 msgid "contact" msgstr "" #: ../search_gui.c:304 msgid "todo" msgstr "" #: ../search_gui.c:361 msgid "memo" msgstr "޸" #: ../search_gui.c:363 #, fuzzy msgid "memos" msgstr "޸" #: ../search_gui.c:421 msgid "plugin ?" msgstr "÷ ?" #: ../search_gui.c:501 msgid "No records found" msgstr "߰ߵ ڷᰡ " #: ../search_gui.c:600 msgid "Search" msgstr "ã" #. Search label #: ../search_gui.c:617 msgid "Search for: " msgstr "ã: " #. Case Sensitive checkbox #: ../search_gui.c:626 msgid "Case Sensitive" msgstr "ҹ " #: ../sync.c:120 msgid "open lock file failed\n" msgstr " \n" #: ../sync.c:133 msgid "lock failed\n" msgstr " \n" #: ../sync.c:136 #, c-format msgid "sync file is locked by pid %d\n" msgstr "ũ pid %d \n" #: ../sync.c:171 msgid "unlock failed\n" msgstr " \n" #: ../sync.c:174 #, c-format msgid "sync is locked by pid %d\n" msgstr "ũ pid %d \n" #: ../sync.c:410 #, fuzzy msgid "Check your sync port and settings\n" msgstr "Ʈ ϼ\n" #: ../sync.c:669 msgid "Unable to read home dir\n" msgstr "Ȩ丮 ϴ\n" #: ../sync.c:1075 ../sync.c:1413 #, c-format msgid "%s (Creator ID '%s') is up to date, fetch skipped.\n" msgstr "%s ( ID '%s') Ʈ , dzʶ.\n" #: ../sync.c:1079 ../sync.c:1417 #, c-format msgid "Fetching '%s' (Creator ID '%s')... " msgstr "'%s' ( ID '%s')... " #: ../sync.c:1086 ../sync.c:1423 #, c-format msgid "Failed, unable to create file %s\n" msgstr ", %s ϴ.\n" #: ../sync.c:1090 ../sync.c:1428 #, c-format msgid "Failed, unable to back up database %s\n" msgstr ", %s ͺ̽ ϴ.\n" #: ../sync.c:1094 ../sync.c:1432 ../sync.c:1619 msgid "OK\n" msgstr "Ȯ\n" #: ../sync.c:1294 #, c-format msgid "Skipping %s (Creator ID '%s')\n" msgstr "%s dzʶ ( ID '%s')\n" #: ../sync.c:1488 #, c-format msgid "Installing %s " msgstr "%s ġ " #: ../sync.c:1494 ../sync.c:1530 #, c-format msgid "" "\n" "Unable to open file: '%s': %s!\n" msgstr "" "\n" " ϴ: '%s': %s!\n" #: ../sync.c:1498 #, c-format msgid "" "\n" "Unable to sync file: '%s': file corrupted?\n" msgstr "" "\n" " ũ ϴ: '%s': ?\n" #: ../sync.c:1514 #, fuzzy, c-format msgid "(Creator ID '%s')... " msgstr "( ID '%s')..." #: ../sync.c:1518 #, fuzzy, c-format msgid "(Creator ID '%s') " msgstr "( ID '%s')..." #: ../sync.c:1520 #, fuzzy, c-format msgid "(SDcard dir %s)... " msgstr "( ID '%s')..." #: ../sync.c:1552 ../sync.c:1565 ../sync.c:1580 ../sync.c:1593 #, c-format msgid "" "\n" "Unable to open file: %s\n" msgstr "" "\n" " ϴ: %s\n" #: ../sync.c:1605 #, c-format msgid "Install %s failed" msgstr "%s ġ " #: ../sync.c:1609 msgid "Failed.\n" msgstr ".\n" #: ../sync.c:1615 #, fuzzy, c-format msgid "Installed %s" msgstr "%s ġ " #: ../sync.c:1726 #, c-format msgid "%s:%d Error getting app info %s\n" msgstr "%s:%d %s α׷ \n" #: ../sync.c:1732 ../sync.c:1762 #, c-format msgid "%s:%d Error unpacking app info %s\n" msgstr "%s:%d %s α׷ \n" #: ../sync.c:1753 #, c-format msgid "Error reading appinfo block for %s\n" msgstr "%s α׷ д \n" #. Fix - need a func for this logging #: ../sync.c:1991 ../sync.c:1995 #, c-format msgid "Could not add category %s to remote.\n" msgstr " %s ָ ߰ ϴ.\n" #: ../sync.c:1992 ../sync.c:1998 #, c-format msgid "Too many categories on remote.\n" msgstr "ݻ ʹ ְ ֽϴ.\n" #: ../sync.c:1993 ../sync.c:2001 #, c-format msgid "All records on desktop in %s will be moved to %s.\n" msgstr "%s ũž ڷᰡ %s Ű Դϴ.\n" #: ../sync.c:2096 ../sync.c:2814 #, c-format msgid "Syncing %s\n" msgstr "%s ũ\n" #: ../sync.c:2104 ../sync.c:2457 ../sync.c:2822 #, c-format msgid "Wrote an %s record." msgstr "%s ڷḦ ." #: ../sync.c:2106 ../sync.c:2459 ../sync.c:2824 #, c-format msgid "Writing an %s record failed." msgstr "%s ڷ " #: ../sync.c:2108 ../sync.c:2461 ../sync.c:2826 #, c-format msgid "Deleting an %s record failed." msgstr "%s ڷ " #: ../sync.c:2110 ../sync.c:2463 ../sync.c:2828 #, c-format msgid "Deleted an %s record." msgstr "%s ڷ " #: ../sync.c:2112 ../sync.c:2465 #, fuzzy, c-format msgid "Sync Conflict: duplicated an %s record." msgstr "%s ڷ " #: ../sync.c:2115 ../sync.c:2468 ../sync.c:2831 #, c-format msgid "Wrote a %s record." msgstr "%s ڷ ϵ" #: ../sync.c:2117 ../sync.c:2470 ../sync.c:2833 #, c-format msgid "Writing a %s record failed." msgstr "%s ڷ " #: ../sync.c:2119 ../sync.c:2472 ../sync.c:2835 #, c-format msgid "Deleting a %s record failed." msgstr "%s ڷ " #: ../sync.c:2121 ../sync.c:2474 ../sync.c:2837 #, c-format msgid "Deleted a %s record." msgstr "%s ڷ " #: ../sync.c:2123 ../sync.c:2476 #, c-format msgid "Sync Conflict: duplicated a %s record." msgstr "" #: ../sync.c:2227 ../sync.c:2557 #, c-format msgid "Sync Conflict: a %s record must be manually merged\n" msgstr "" #: ../sync.c:2358 ../sync.c:2698 msgid "" "dlp_DeleteRecord failed\n" "This could be because the record was already deleted on the Palm\n" msgstr "" "dlp_ڷ(_D) \n" "ڷᰡ ̹ ʿ Ǿ ֽϴ.\n" #: ../sync.c:2927 msgid "Finished installing user information.\n" msgstr " ġϱⰡ .\n" #: ../sync.c:3084 #, c-format msgid " Syncing on device %s\n" msgstr " %s ġ ũ\n" #: ../sync.c:3085 msgid " Press the HotSync button now\n" msgstr " ֽũ ư \n" #: ../sync.c:3127 ../sync.c:3149 ../sync.c:3170 #, c-format msgid "Last Synced Username-->\"%s\"\n" msgstr "ֱ ũ ̸-->\"%s\"\n" #: ../sync.c:3128 ../sync.c:3150 ../sync.c:3171 #, c-format msgid "Last Synced UserID-->\"%d\"\n" msgstr "ֱ ũ ID-->\"%d\"\n" #: ../sync.c:3129 ../sync.c:3151 ../sync.c:3172 #, c-format msgid " This Username-->\"%s\"\n" msgstr " ̸-->\"%s\"\n" #: ../sync.c:3130 ../sync.c:3152 ../sync.c:3173 #, c-format msgid " This User ID-->%d\n" msgstr " ID-->%d\n" #: ../sync.c:3194 #, c-format msgid "Username is \"%s\"\n" msgstr " ̸ \"%s\"\n" #: ../sync.c:3195 #, c-format msgid "User ID is %d\n" msgstr " ID %d\n" #: ../sync.c:3197 #, c-format msgid "lastSyncPC = %d\n" msgstr "ֱ ũ PC = %d\n" #: ../sync.c:3198 #, c-format msgid "This PC = %lu\n" msgstr " PC = %lu\n" #: ../sync.c:3222 msgid "Sync canceled\n" msgstr "ũ \n" #: ../sync.c:3245 msgid "Finished restoring handheld.\n" msgstr " Ϸ.\n" #: ../sync.c:3246 msgid "You may need to sync to update J-Pilot.\n" msgstr "J-Pilot Ʈϱ ũ ʿ䰡 ֽϴ.\n" #: ../sync.c:3268 msgid "Doing a fast sync.\n" msgstr " ũ .\n" #: ../sync.c:3281 msgid "Doing a slow sync.\n" msgstr " ũ .\n" #: ../sync.c:3356 msgid "Thank you for using J-Pilot." msgstr "J-Pilot ּż մϴ." #: ../sync.c:3401 ../sync.c:3469 msgid "Finished.\n" msgstr "Ϸ.\n" #: ../sync.c:3436 #, c-format msgid "%s: sync process already in progress (process ID = %d)\n" msgstr "" #: ../sync.c:3437 #, fuzzy, c-format msgid "" "%s: press the HotSync button on the cradle\n" " or stop the sync by using the cancel sync button\n" " or stop the sync by typing \"kill %d\" at the command line\n" msgstr "%s: ũ̵ ֽũ ư ų \"kill %d\" \n" #: ../sync.c:3468 #, c-format msgid "Exiting with status %s\n" msgstr "%s · \n" #: ../todo.c:266 #, c-format msgid "ToDo description text > %d, truncating to %d\n" msgstr " ýƮ > %d, %d ߷\n" #: ../todo.c:272 #, c-format msgid "ToDo note text > %d, truncating to %d\n" msgstr " Ʈ ؽƮ > %d, %d ߷\n" #: ../todo_gui.c:161 msgid "Due Date" msgstr "Ϸ ¥" #: ../todo_gui.c:532 msgid "File doesn't appear to be todo.dat format\n" msgstr " todo.dat ƴѵ\n" #: ../todo_gui.c:596 msgid "DAT/TDA (Palm Archive Formats)" msgstr "" #: ../todo_gui.c:688 #, c-format msgid "" "ToDo exported from %s %s on %s\n" "\n" msgstr "" #: ../todo_gui.c:726 #, c-format msgid "Can't export todo %d\n" msgstr " %d \n" #: ../todo_gui.c:766 #, fuzzy, c-format msgid "Due Date: None\n" msgstr "Ϸ ¥" #: ../todo_gui.c:769 #, fuzzy, c-format msgid "Due Date: %s\n" msgstr "Ϸ ¥" #: ../todo_gui.c:771 #, fuzzy, c-format msgid "Priority: %d\n" msgstr "켱: " #: ../todo_gui.c:772 #, fuzzy, c-format msgid "Completed: %s\n" msgstr "Ϸ" #: ../todo_gui.c:774 #, c-format msgid "Description: %s\n" msgstr "" #: ../todo_gui.c:777 #, c-format msgid "" "Note: %s\n" "\n" msgstr "" #: ../todo_gui.c:1610 msgid "Priority out of range\n" msgstr "켱 \n" #: ../todo_gui.c:1932 ../KeyRing/keyring.c:1310 #, c-format msgid "No date" msgstr "¥ " #. Completed checkbox #: ../todo_gui.c:2414 msgid "Completed" msgstr "Ϸ" #: ../todo_gui.c:2421 #, fuzzy msgid "Priority:" msgstr "켱: " #: ../todo_gui.c:2423 msgid "Set priority Alt+#" msgstr "" #: ../todo_gui.c:2444 msgid "Date Due:" msgstr " ¥:" #: ../utils.c:332 msgid "Today" msgstr "" #: ../utils.c:577 #, c-format msgid "Couldn't find empty DB file %s: %s\n" msgstr " DB %s() ã : %s\n" #: ../utils.c:580 msgid " may not be installed.\n" msgstr " ġ .\n" #. Can't create directory #: ../utils.c:615 ../utils.c:619 #, c-format msgid "Can't create directory %s\n" msgstr "%s 丮 ϴ.\n" #: ../utils.c:625 #, fuzzy, c-format msgid "%s is not a directory\n" msgstr "%s 丮Դϴ." #: ../utils.c:630 #, fuzzy, c-format msgid "Unable to get write permission for directory %s\n" msgstr "%s 丮 ϴ.\n" #: ../utils.c:1330 ../utils.c:1354 msgid "Save Changed Record?" msgstr "ٲ ڷḦ Ͻðڽϱ?" #: ../utils.c:1331 ../utils.c:1355 msgid "Do you want to save the changes to this record?" msgstr "ٲ ڷῡ Ͻðڽϱ?" #: ../utils.c:1336 ../utils.c:1360 msgid "Save New Record?" msgstr " ڷḦ Ͻðڽϱ?" #: ../utils.c:1337 ../utils.c:1361 msgid "Do you want to save this new record?" msgstr " ڷḦ Ͻðڽϱ?" #: ../utils.c:1652 msgid "infinite loop, breaking\n" msgstr " , ߱\n" #: ../utils.c:1876 #, fuzzy, c-format msgid " -p skip loading plugins\n" msgstr " -p ÷ ε dzʶ.\n" #: ../utils.c:1877 #, fuzzy, c-format msgid " -a ignore missed alarms since the last time program was run\n" msgstr " -a ֱ α׷ ̷ ģ ˶ .\n" #: ../utils.c:1878 #, fuzzy, c-format msgid " -A ignore all alarms past and future\n" msgstr " -A ſ ̷ ˶ .\n" #: ../utils.c:1879 #, c-format msgid " -s start sync using existing instance of GUI\n" msgstr "" #: ../utils.c:1880 #, c-format msgid " -i iconify program immediately after launch\n" msgstr "" #: ../utils.c:1881 #, c-format msgid "" " -geometry {X geometry} use specified geometry for main window\n" "\n" msgstr "" #: ../utils.c:1882 #, fuzzy, c-format msgid " The PILOTPORT and PILOTRATE environment variables specify\n" msgstr " PILOTPORT PILOTRATE ȯ ̿ \n" #: ../utils.c:1883 #, c-format msgid " which port to sync on, and at what speed.\n" msgstr " Ʈ ӵ ũ \n" #: ../utils.c:1884 #, c-format msgid " If PILOTPORT is not set then it defaults to /dev/pilot.\n" msgstr " PILOTPORT ʴٸ ⺻ /dev/pilot.\n" #: ../utils.c:1921 msgid "Error reading file" msgstr " б " #: ../utils.c:1971 msgid "Date compiled" msgstr "¥ ϵ" #: ../utils.c:1972 msgid "Compiled with these options:" msgstr " ɼǵ ϵ:" #: ../utils.c:1974 msgid "Installed Path" msgstr "ġ н" #: ../utils.c:1976 msgid "pilot-link version" msgstr "pilot-link " #: ../utils.c:1980 msgid "USB support" msgstr "USB " #: ../utils.c:1981 ../utils.c:1984 ../utils.c:1990 ../utils.c:1996 #: ../utils.c:2002 ../utils.c:2008 ../utils.c:2013 msgid "yes" msgstr "" #: ../utils.c:1982 msgid "Private record support" msgstr " ڷ " #: ../utils.c:1986 ../utils.c:1992 ../utils.c:1998 ../utils.c:2004 #: ../utils.c:2010 msgid "no" msgstr "ƴϿ" #: ../utils.c:1988 msgid "Datebk support" msgstr " " #: ../utils.c:1994 msgid "Plugin support" msgstr "÷ " #: ../utils.c:2000 msgid "Manana support" msgstr "Manana " #: ../utils.c:2006 msgid "NLS support (foreign languages)" msgstr "NLS (ܱ)" #: ../utils.c:2012 msgid "GTK2 support" msgstr "GTK2 " #. No HOME var #: ../utils.c:2055 msgid "Can't get HOME environment variable\n" msgstr "Ȩ ȯ ϴ\n" #: ../utils.c:2062 #, fuzzy msgid "HOME environment variable is too long to process\n" msgstr " Ȩ ȯ ʹ ϴ.\n" #: ../utils.c:2557 #, fuzzy msgid "Edit Categories..." msgstr " " #: ../utils.c:3223 msgid "PC ID is 0.\n" msgstr "PC ID 0.\n" #: ../utils.c:3224 #, fuzzy, c-format msgid "Generated a new PC ID. It is %lu\n" msgstr " PC ID Ǿϴ. %lu\n" #: ../utils.c:3309 msgid "Invalid UTF-8 encoding in export string\n" msgstr "" #: ../utils.c:3470 #, c-format msgid "Today is %A, %x %X" msgstr " %A, %x %X" #: ../utils.c:3472 #, c-format msgid "Today is %%A, %s %s" msgstr " %%A, %s %s" #: ../utils.c:3701 #, c-format msgid "" "Incorrect header format for CSV import\n" "Check line 1 of file %s\n" "Aborting import\n" msgstr "" #: ../utils.c:3738 #, fuzzy, c-format msgid "Error writing version header to file: %s%s\n" msgstr "PC Ͽ : next_id\n" #: ../utils.c:3743 #, fuzzy, c-format msgid "Error writing next id to file: %s%s" msgstr " id Ͽ : next_id\n" #: ../weekview_gui.c:297 msgid "Weekly View" msgstr "ֺ " #: ../weekview_gui.c:337 msgid "Last week Alt+LeftArrow" msgstr "" #: ../weekview_gui.c:366 msgid "Next week Alt+RightArrow" msgstr "" #: ../Expense/expense.c:97 msgid "Australia" msgstr "Ʈϸ" #: ../Expense/expense.c:98 msgid "Austria" msgstr "Ʈ" #: ../Expense/expense.c:99 msgid "Belgium" msgstr "⿡" #: ../Expense/expense.c:100 msgid "Brazil" msgstr "" #: ../Expense/expense.c:101 msgid "Canada" msgstr "ij" #: ../Expense/expense.c:102 msgid "Denmark" msgstr "ũ" #: ../Expense/expense.c:103 msgid "EU (Euro)" msgstr "EU ()" #: ../Expense/expense.c:104 msgid "Finland" msgstr "ɶ" #: ../Expense/expense.c:105 msgid "France" msgstr "" #: ../Expense/expense.c:106 msgid "Germany" msgstr "" #: ../Expense/expense.c:107 msgid "Hong Kong" msgstr "ȫ" #: ../Expense/expense.c:108 msgid "Iceland" msgstr "̽" #: ../Expense/expense.c:109 msgid "India" msgstr "ε" #: ../Expense/expense.c:110 msgid "Indonesia" msgstr "ε׽þ" #: ../Expense/expense.c:111 msgid "Ireland" msgstr "Ϸ" #: ../Expense/expense.c:112 msgid "Italy" msgstr "¸" #: ../Expense/expense.c:113 msgid "Japan" msgstr "Ϻ" #: ../Expense/expense.c:114 msgid "Korea" msgstr "ѱ" #: ../Expense/expense.c:115 msgid "Luxembourg" msgstr "θ" #: ../Expense/expense.c:116 msgid "Malaysia" msgstr "" #: ../Expense/expense.c:117 msgid "Mexico" msgstr "߽" #: ../Expense/expense.c:118 msgid "Netherlands" msgstr "״" #: ../Expense/expense.c:119 msgid "New Zealand" msgstr "" #: ../Expense/expense.c:120 msgid "Norway" msgstr "븣" #: ../Expense/expense.c:121 msgid "P.R.C." msgstr "P.R.C." #: ../Expense/expense.c:122 msgid "Philippines" msgstr "ʸ" #: ../Expense/expense.c:123 msgid "Singapore" msgstr "̰" #: ../Expense/expense.c:124 msgid "Spain" msgstr "" #: ../Expense/expense.c:125 msgid "Sweden" msgstr "" #: ../Expense/expense.c:126 msgid "Switzerland" msgstr "" #: ../Expense/expense.c:127 msgid "Taiwan" msgstr "븸" #: ../Expense/expense.c:128 msgid "Thailand" msgstr "±" #: ../Expense/expense.c:129 msgid "United Kingdom" msgstr "" #: ../Expense/expense.c:130 msgid "United States" msgstr "̱" #: ../Expense/expense.c:518 ../Expense/expense.c:529 msgid "Expense" msgstr "" #: ../Expense/expense.c:550 ../Expense/expense.c:1388 msgid "Airfare" msgstr "װ" #: ../Expense/expense.c:552 ../Expense/expense.c:1389 msgid "Breakfast" msgstr "ħĻ" #: ../Expense/expense.c:554 ../Expense/expense.c:1390 msgid "Bus" msgstr "" #: ../Expense/expense.c:556 ../Expense/expense.c:1391 msgid "BusinessMeals" msgstr " Ļ" #: ../Expense/expense.c:558 ../Expense/expense.c:1392 msgid "CarRental" msgstr "ڵ Ʈ" #: ../Expense/expense.c:560 ../Expense/expense.c:1393 msgid "Dinner" msgstr "" #: ../Expense/expense.c:562 ../Expense/expense.c:1394 msgid "Entertainment" msgstr "" #: ../Expense/expense.c:564 ../Expense/expense.c:1395 msgid "Fax" msgstr "ѽ" #: ../Expense/expense.c:566 ../Expense/expense.c:1396 msgid "Gas" msgstr "⸧" #: ../Expense/expense.c:568 ../Expense/expense.c:1397 msgid "Gifts" msgstr "" #: ../Expense/expense.c:570 ../Expense/expense.c:1398 msgid "Hotel" msgstr "ȣ" #: ../Expense/expense.c:572 ../Expense/expense.c:1399 msgid "Incidentals" msgstr "" #: ../Expense/expense.c:574 ../Expense/expense.c:1400 msgid "Laundry" msgstr "Ź" #: ../Expense/expense.c:576 ../Expense/expense.c:1401 msgid "Limo" msgstr "" #: ../Expense/expense.c:578 ../Expense/expense.c:1402 msgid "Lodging" msgstr "" #: ../Expense/expense.c:580 ../Expense/expense.c:1403 msgid "Lunch" msgstr "" #: ../Expense/expense.c:582 ../Expense/expense.c:1404 msgid "Mileage" msgstr "ϸ" #: ../Expense/expense.c:586 ../Expense/expense.c:1406 msgid "Parking" msgstr "" #: ../Expense/expense.c:588 ../Expense/expense.c:1407 msgid "Postage" msgstr "" #: ../Expense/expense.c:590 ../Expense/expense.c:1408 msgid "Snack" msgstr "" #: ../Expense/expense.c:592 ../Expense/expense.c:1409 msgid "Subway" msgstr "ö" #: ../Expense/expense.c:594 ../Expense/expense.c:1410 msgid "Supplies" msgstr "ǰ" #: ../Expense/expense.c:596 ../Expense/expense.c:1411 msgid "Taxi" msgstr "ý" #: ../Expense/expense.c:598 ../Expense/expense.c:1412 msgid "Telephone" msgstr "ȭ" #: ../Expense/expense.c:600 ../Expense/expense.c:1413 msgid "Tips" msgstr "" #: ../Expense/expense.c:602 ../Expense/expense.c:1414 msgid "Tolls" msgstr "" #: ../Expense/expense.c:604 ../Expense/expense.c:1415 msgid "Train" msgstr "" #: ../Expense/expense.c:1239 msgid "Expense: Unknown expense type\n" msgstr ": ˷ \n" #: ../Expense/expense.c:1245 msgid "Expense: Unknown payment type\n" msgstr ": ˷ \n" #: ../Expense/expense.c:1377 msgid "American Express" msgstr "Ƹ޸ĭ ͽ" #: ../Expense/expense.c:1378 msgid "Cash" msgstr "" #: ../Expense/expense.c:1379 msgid "Check" msgstr "üũī" #: ../Expense/expense.c:1380 msgid "Credit Card" msgstr "ũ ī" #: ../Expense/expense.c:1381 msgid "Master Card" msgstr " ī" #: ../Expense/expense.c:1382 msgid "Prepaid" msgstr "" #: ../Expense/expense.c:1383 msgid "VISA" msgstr "" #: ../Expense/expense.c:1619 #, fuzzy msgid "Type" msgstr ":" #: ../Expense/expense.c:1620 #, fuzzy msgid "Amount" msgstr ":" #. Category Menu #: ../Expense/expense.c:1704 msgid "Category:" msgstr ":" #. Type Menu #: ../Expense/expense.c:1712 msgid "Type:" msgstr ":" #. Payment Menu #: ../Expense/expense.c:1720 msgid "Payment:" msgstr ":" #. Currency Menu #: ../Expense/expense.c:1728 msgid "Currency:" msgstr "ȭ:" #: ../Expense/expense.c:1748 msgid "Month:" msgstr ":" #: ../Expense/expense.c:1762 msgid "Day:" msgstr "¥:" #: ../Expense/expense.c:1776 msgid "Year:" msgstr ":" #. Amount Entry #: ../Expense/expense.c:1789 msgid "Amount:" msgstr ":" #. Vendor Entry #: ../Expense/expense.c:1799 msgid "Vendor:" msgstr ":" #. City #: ../Expense/expense.c:1809 msgid "City:" msgstr ":" #. Attendees #: ../Expense/expense.c:1819 msgid "Attendees" msgstr "" #. ------------------------------------------- #: ../Expense/expense.c:2102 #, c-format msgid "" "%s\n" "\n" "Expense plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org" msgstr "" #: ../KeyRing/keyring.c:291 msgid "KeyRing: pack_KeyRing(): buf_size too small\n" msgstr "Ű: pack_KeyRing(): buf_size ʹ \n" #: ../KeyRing/keyring.c:1699 msgid "Incorrect, Reenter KeyRing Password" msgstr "Ȯ , Ű йȣ ٽ Էϼ" #: ../KeyRing/keyring.c:1701 msgid "Enter a NEW KeyRing Password" msgstr " Ű йȣ " #: ../KeyRing/keyring.c:1703 msgid "Enter KeyRing Password" msgstr "Ű йȣ " #: ../KeyRing/keyring.c:1769 #, c-format msgid "KeyRing: file %s not found.\n" msgstr "Ű: %s ߰ߵ .\n" #: ../KeyRing/keyring.c:1770 msgid "KeyRing: Try Syncing.\n" msgstr "Ű: ũ õغ.\n" #: ../KeyRing/keyring.c:1861 ../KeyRing/keyring.c:1872 msgid "KeyRing" msgstr "Ű" #. ------------------------------------------- #: ../KeyRing/keyring.c:1900 #, c-format msgid "" "%s\n" "\n" "KeyRing plugin for J-Pilot was written by\n" "Judd Montgomery (c) 2001.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "KeyRing is a free PalmOS program for storing\n" "passwords and other information in encrypted form\n" "http://gnukeyring.sourceforge.net" msgstr "" #: ../KeyRing/keyring.c:2137 #, c-format msgid "" "Keys exported from %s %s on %s\n" "\n" msgstr "" #: ../KeyRing/keyring.c:2162 #, fuzzy, c-format msgid "Can't export key %d\n" msgstr "޸ %d \n" #: ../KeyRing/keyring.c:2229 msgid "B-FOLDERS CSV" msgstr "" #. Change Password button #: ../KeyRing/keyring.c:2384 msgid "" "Change\n" "KeyRing\n" "Password" msgstr "" "\n" "Ű\n" "йȣ" #. Clist #: ../KeyRing/keyring.c:2497 #, fuzzy msgid "Changed" msgstr "" #: ../KeyRing/keyring.c:2499 msgid "Account" msgstr "" #. Name entry #: ../KeyRing/keyring.c:2593 msgid "name: " msgstr "̸: " #. Account entry #: ../KeyRing/keyring.c:2601 msgid "account: " msgstr ": " #. Password entry #: ../KeyRing/keyring.c:2609 msgid "password: " msgstr "йȣ: " #. Last Changed entry #: ../KeyRing/keyring.c:2616 msgid "last changed: " msgstr "" #. Generate Password button (creates random password) #: ../KeyRing/keyring.c:2626 msgid "Generate Password" msgstr "йȣ " #: ../SyncTime/synctime.c:61 #, fuzzy msgid "SyncTime" msgstr "޸ ũ" #. ------------------------------------------- #: ../SyncTime/synctime.c:72 #, c-format msgid "" "%s\n" "\n" "SyncTime plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "SyncTime WILL NOT work with PalmOS 3.3!" msgstr "" #: ../SyncTime/synctime.c:106 msgid "synctime: Palm OS Version 3.25 and 3.30 do not support SyncTime\n" msgstr "" #: ../SyncTime/synctime.c:107 msgid "synctime: NOT setting the time on the pilot\n" msgstr "" #: ../SyncTime/synctime.c:112 msgid "synctime: Setting the time on the pilot... " msgstr "" #: ../SyncTime/synctime.c:117 #, fuzzy msgid "Done\n" msgstr "Ϸ" #~ msgid " -i makes program iconify itself upon launch.\n" #~ msgstr " -i α׷ Űڸ ܻ· .\n" #~ msgid "Your HOME environment variable is too long(>1024)\n" #~ msgstr "Ȩ ȯ溯 ʹ ϴ(>1024)\n" #~ msgid "W" #~ msgstr "W" #~ msgid "M" #~ msgstr "M" #~ msgid "This Event has no particular time" #~ msgstr " ǿ Ư ð " #~ msgid "Start Time" #~ msgstr " ð" #~ msgid "End Time" #~ msgstr " ð" #, fuzzy #~ msgid "email command empty\n" #~ msgstr " " #~ msgid "Unable to open %s%s file\n" #~ msgstr "%s%s \n" #~ msgid "Unable to open %s.alarms file\n" #~ msgstr "%s ˶ \n" #~ msgid "You can't edit category %s.\n" #~ msgstr "%s ִ ϴ.\n" #~ msgid "You can't delete category %s.\n" #~ msgstr "%s ָ .\n" #~ msgid "category name" #~ msgstr " ̸" #~ msgid "debug" #~ msgstr "˻" #, fuzzy #~ msgid "End Date: Never\n" #~ msgstr " ¥" #, fuzzy #~ msgid "Repeat Days: " #~ msgstr "ݺ " #~ msgid "Close" #~ msgstr "ݱ" #~ msgid "none" #~ msgstr "" #~ msgid "Unknown repeatType found in DatebookDB\n" #~ msgstr "DatebookDB ˷ ݺ ߰\n" #~ msgid "Dismiss" #~ msgstr "" #~ msgid "Done" #~ msgstr "Ϸ" #~ msgid "Add" #~ msgstr "߰" #~ msgid "Remove" #~ msgstr "" #, fuzzy #~ msgid "User name" #~ msgstr " ̸" #~ msgid " -v = version\n" #~ msgstr "-v = \n" #~ msgid " -h = help\n" #~ msgstr "-h = \n" #~ msgid " -d = run in debug mode\n" #~ msgstr " -d = ׸ \n" #~ msgid " -P = do not load plugins.\n" #~ msgstr " -P = ÷ ʱ.\n" #~ msgid " -b = Do a sync and then a backup, otherwise just do a sync.\n" #~ msgstr " -b = ũ ϱ, ʴٸ ũ ϱ.\n" #~ msgid "Invalid geometry specification: \"%s\"\n" #~ msgstr "Ÿ : \"%s\"\n" #~ msgid "/Help/PayBack program" #~ msgstr "//PayBack α׷" #~ msgid "Font Selection Dialog" #~ msgstr "۲ ȭ" #~ msgid "Show private records" #~ msgstr " ǥϱ" #~ msgid "Hide private records" #~ msgstr " ߱" #~ msgid "Mask private records" #~ msgstr " ũ" #~ msgid "Font" #~ msgstr "۲" #~ msgid "Go to the menu \"" #~ msgstr "޴ \"" #~ msgid "\" and change the \"" #~ msgstr "\" ׸ ٲٱ \"" #~ msgid "\"." #~ msgstr "\"." #~ msgid "Couldn't open PC records file\n" #~ msgstr "PC ڷ \n" #~ msgid "The first day of the week is " #~ msgstr " " #~ msgid "One record" #~ msgstr "ڷ ϳ" #~ msgid "Finished\n" #~ msgstr "\n" #~ msgid "Last Username = [%s]\n" #~ msgstr "ֱ ̸ = [%s]\n" #~ msgid "Last UserID = %d\n" #~ msgstr "ֱ ID = %d\n" #~ msgid "Username = [%s]\n" #~ msgstr "̸ = [%s]\n" #~ msgid "userID = %d\n" #~ msgstr "ID = %d\n" #~ msgid "number of records = %d\n" #~ msgstr "ڷ = %d\n" #~ msgid "palm: number of records = %d\n" #~ msgstr ": ڷ = %d\n" #~ msgid "disk: number of records = %d\n" #~ msgstr "ũ: ڷ = %d\n" #, fuzzy #~ msgid "Your HOME environment variable is too long for me\n" #~ msgstr "Ȩ ȯ溯 ʹ ϴ(>1024)\n" #~ msgid "" #~ "%s doesn't appear to be a directory.\n" #~ "I need it to be.\n" #~ msgstr "" #~ "%s 丮 ƴ .\n" #~ "丮 ʿ䰡 .\n" #, fuzzy #~ msgid "I can't write files in directory %s\n" #~ msgstr "%s 丮 ϴ.\n" #~ msgid "Expense: Unknown category\n" #~ msgstr ": ˷ \n" #~ msgid "Field" #~ msgstr "ʵ" #~ msgid "kana(" #~ msgstr "(" #~ msgid "Quick View" #~ msgstr " " #~ msgid "Serial Port (/dev/ttyS0, /dev/pilot)" #~ msgstr " Ʈ (/dev/ttyS0, /dev/pilot)" #~ msgid "Serial Rate (Does not affect USB)" #~ msgstr " ӵ (USB ġ )" #~ msgid "Sync memo32 (pedit32)" #~ msgstr "޸32 ũ (pedit32)" #~ msgid "AmEx" #~ msgstr "Ƹ߽" #~ msgid "CreditCard" #~ msgstr "ũī" #~ msgid "MasterCard" #~ msgstr "ī" #~ msgid "Quit" #~ msgstr "" jpilot-1.8.1.2/po/zh_CN.po0000644000175000017500000025536211702307204012073 00000000000000# Chinese (simplified) translation for jpilot. # Copyright (C) 2002 Judd Montgomery # This file is distributed under the same license as the jpilot package. # Funda Wang , 2004. # Anthony Fok , 2002. # msgid "" msgstr "" "Project-Id-Version: jpilot 0.99.8-pre12\n" "Report-Msgid-Bugs-To: jpilot-devel@jpilot.org\n" "POT-Creation-Date: 2012-01-08 13:39+0100\n" "PO-Revision-Date: 2005-10-18 13:58+0800\n" "Last-Translator: Funda Wang \n" "Language-Team: Chinese (simplified) \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../address.c:276 ../address.c:448 ../alarms.c:332 ../calendar.c:309 #: ../calendar.c:547 ../contact.c:324 ../contact.c:738 ../dat.c:189 #: ../dat.c:655 ../dat.c:859 ../dat.c:993 ../dat.c:1132 ../datebook.c:130 #: ../datebook.c:165 ../datebook.c:172 ../datebook.c:231 ../jpilot.c:1254 #: ../jpilot-merge.c:95 ../libplugin.c:208 ../libplugin.c:455 #: ../libplugin.c:534 ../libplugin.c:563 ../libplugin.c:811 ../memo.c:214 #: ../memo.c:287 ../otherconv.c:280 ../plugins.c:112 ../prefs.c:350 #: ../prefs.c:375 ../prefs.c:906 ../sync.c:2170 ../sync.c:2187 ../sync.c:2296 #: ../sync.c:2310 ../sync.c:2507 ../sync.c:2646 ../todo.c:236 ../todo.c:490 #: ../utils.c:748 #, c-format msgid "Out of memory" msgstr "内存溢出" #: ../address.c:332 ../calendar.c:230 ../contact.c:580 ../datebook.c:494 #: ../memo.c:87 ../todo.c:90 #, fuzzy, c-format msgid "%s:%d Error reading application info %s\n" msgstr "%s:%d 读取类别信息 %s 出错\n" #: ../address.c:344 ../address_gui.c:2285 ../address_gui.c:2324 #: ../calendar.c:246 ../contact.c:596 ../datebook.c:514 ../datebook_gui.c:3737 #: ../libplugin.c:405 ../libplugin.c:431 ../memo.c:99 ../memo_gui.c:863 #: ../todo_gui.c:1070 ../Expense/expense.c:1105 #, c-format msgid "Error reading file: %s\n" msgstr "读取文件出错:%s\n" #: ../address.c:492 ../calendar.c:598 ../calendar.c:607 ../contact.c:780 #: ../libplugin.c:846 ../memo.c:353 ../todo.c:302 ../utils.c:1124 #: ../utils.c:1131 ../utils.c:1138 ../utils.c:1145 ../utils.c:1152 #: ../utils.c:1159 msgid "error" msgstr "错误" #: ../address_gui.c:325 ../datebook_gui.c:2844 ../memo_gui.c:176 #: ../todo_gui.c:292 ../KeyRing/keyring.c:834 msgid "" "This record is deleted.\n" "Undelete it or copy it to make changes.\n" msgstr "" "此记录已删除。\n" "请先取消删除,或者复制该记录,再进行更改。\n" #: ../address_gui.c:452 ../address_gui.c:458 ../address_gui.c:469 #: ../address_gui.c:481 ../address_gui.c:493 ../address_gui.c:506 #, fuzzy, c-format msgid "%s%s: %s" msgstr "%%a.,%s" #: ../address_gui.c:542 ../category.c:118 ../category.c:176 ../category.c:330 #: ../category.c:336 ../datebook_gui.c:430 ../jpilot-merge.c:88 #: ../jpilot-merge.c:146 ../jpilot-merge.c:151 ../memo_gui.c:280 #: ../sync.c:2129 ../sync.c:2135 ../sync.c:2481 ../sync.c:2842 #: ../todo_gui.c:416 ../utils.c:2674 ../utils.c:2711 ../utils.c:2717 #: ../utils.c:2776 ../utils.c:2782 ../utils.c:2836 ../utils.c:2890 #: ../utils.c:2896 ../utils.c:2954 ../utils.c:2961 #, c-format msgid "Unable to open file: %s\n" msgstr "无法打开文件:%s\n" #: ../address_gui.c:561 #, fuzzy, c-format msgid "Unable to read file: %s\n" msgstr "无法打开文件:%s\n" #: ../address_gui.c:715 msgid "File doesn't appear to be address.dat format\n" msgstr "文件似乎不是 address.dat 格式\n" #: ../address_gui.c:725 ../datebook_gui.c:647 ../memo_gui.c:324 #: ../memo_gui.c:417 ../todo_gui.c:542 ../Expense/expense.c:1384 msgid "Unfiled" msgstr "未归档" #: ../address_gui.c:781 ../datebook_gui.c:698 ../memo_gui.c:470 #: ../todo_gui.c:595 msgid "CSV (Comma Separated Values)" msgstr "" #: ../address_gui.c:782 msgid "DAT/ABA (Palm Archive Formats)" msgstr "" #. current category name #. previous category name #. entry text, in Pilot character set #: ../address_gui.c:868 ../category.c:408 ../datebook_gui.c:729 #: ../jpilot.c:234 ../jpilot.c:278 ../jpilot.c:352 ../jpilot.c:396 #: ../jpilot.c:953 ../memo_gui.c:506 ../todo_gui.c:635 ../utils.c:1305 #: ../KeyRing/keyring.c:2090 msgid "OK" msgstr "确定" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "No" msgstr "否" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "Yes" msgstr "是" #: ../address_gui.c:888 ../datebook_gui.c:753 ../memo_gui.c:520 #: ../todo_gui.c:655 ../KeyRing/keyring.c:2104 #, c-format msgid "%s is a directory" msgstr "%s 是目录" #: ../address_gui.c:890 ../address_gui.c:907 ../datebook_gui.c:755 #: ../datebook_gui.c:772 ../memo_gui.c:522 ../memo_gui.c:539 ../todo_gui.c:657 #: ../todo_gui.c:674 ../KeyRing/keyring.c:2106 ../KeyRing/keyring.c:2123 msgid "Error Opening File" msgstr "打开文件时发生错误" #: ../address_gui.c:894 ../datebook_gui.c:759 ../memo_gui.c:526 #: ../todo_gui.c:661 ../KeyRing/keyring.c:2110 #, c-format msgid "Do you want to overwrite file %s?" msgstr "您要覆盖文件 %s 吗?" #: ../address_gui.c:896 ../datebook_gui.c:761 ../memo_gui.c:528 #: ../todo_gui.c:663 ../KeyRing/keyring.c:2112 msgid "Overwrite File?" msgstr "覆盖文件?" #: ../address_gui.c:905 ../datebook_gui.c:770 ../memo_gui.c:537 #: ../todo_gui.c:672 ../KeyRing/keyring.c:2121 #, c-format msgid "Error opening file: %s" msgstr "打开文件时出错:%s" #: ../address_gui.c:922 #, c-format msgid "" "Address exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:925 #, c-format msgid "" "Contact exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:989 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ldif file may not be standards-compliant\n" msgstr "" #: ../address_gui.c:1002 #, c-format msgid "Can't export address %d\n" msgstr "无法导出第%d个地址\n" #: ../address_gui.c:1008 ../memo_gui.c:630 ../todo_gui.c:760 #, fuzzy, c-format msgid "Category: %s\n" msgstr "类别:" #: ../address_gui.c:1010 ../memo_gui.c:632 ../todo_gui.c:763 #, fuzzy, c-format msgid "Private: %s\n" msgstr "私有" #: ../address_gui.c:1018 ../address_gui.c:1032 ../address_gui.c:1036 #: ../address_gui.c:1045 ../address_gui.c:1048 #, fuzzy, c-format msgid "%s: " msgstr "%%a.,%s" #: ../address_gui.c:1022 #, c-format msgid "%s\n" msgstr "" #. E-mail should be the Palm dropdown menu item for email #. Set dial/email button text and callback data #: ../address_gui.c:1196 ../address_gui.c:2846 ../address_gui.c:4185 msgid "E-mail" msgstr "电子邮件" #: ../address_gui.c:1482 ../datebook_gui.c:1147 ../memo_gui.c:640 #: ../todo_gui.c:844 ../KeyRing/keyring.c:2214 msgid "Unknown export type\n" msgstr "未知的导出类型\n" #: ../address_gui.c:1508 ../datebook_gui.c:1226 ../memo_gui.c:469 #: ../memo_gui.c:666 ../todo_gui.c:870 ../KeyRing/keyring.c:2229 msgid "Text" msgstr "" #: ../address_gui.c:1509 ../datebook_gui.c:1227 ../memo_gui.c:667 #: ../todo_gui.c:871 ../KeyRing/keyring.c:2229 msgid "CSV" msgstr "" #: ../address_gui.c:1510 #, fuzzy msgid "vCard" msgstr "清除" #: ../address_gui.c:1511 msgid "vCard (Optimized for Gmail/Android Import)" msgstr "" #: ../address_gui.c:1512 msgid "ldif" msgstr "" #. Initialize variable if default case taken #: ../address_gui.c:1777 ../address_gui.c:3902 #, fuzzy msgid "Last Name/Company" msgstr "姓名/公司" #: ../address_gui.c:1780 ../address_gui.c:3905 #, fuzzy msgid "First Name/Company" msgstr "姓名/公司" #: ../address_gui.c:1783 ../address_gui.c:3908 #, fuzzy msgid "Company/Last Name" msgstr "公司/姓名" #: ../address_gui.c:1920 ../datebook_gui.c:2907 ../memo_gui.c:1036 #: ../todo_gui.c:1329 ../KeyRing/keyring.c:1181 msgid "You can't modify a record that is deleted\n" msgstr "您无法修改已删除的记录\n" #. Illegal category, Assume that category 0 is Unfiled and valid #: ../address_gui.c:2119 ../address_gui.c:2370 ../address_gui.c:2803 #: ../address_gui.c:2809 ../address_gui.c:3601 ../datebook_gui.c:1994 #: ../datebook_gui.c:3434 ../datebook_gui.c:3783 ../datebook_gui.c:4074 #: ../memo_gui.c:900 ../memo_gui.c:946 ../memo_gui.c:1161 ../memo_gui.c:1548 #: ../todo_gui.c:1106 ../todo_gui.c:1200 ../todo_gui.c:1589 ../todo_gui.c:2141 #: ../Expense/expense.c:689 ../Expense/expense.c:1143 #: ../Expense/expense.c:1227 ../Expense/expense.c:1887 #: ../KeyRing/keyring.c:1070 ../KeyRing/keyring.c:1512 #: ../KeyRing/keyring.c:1574 ../KeyRing/keyring.c:2688 msgid "Category is not legal\n" msgstr "类别非法\n" #: ../address_gui.c:2179 ../alarms.c:598 ../dialer.c:164 #, c-format msgid "executing command = [%s]\n" msgstr "执行此命令 = [%s]\n" #: ../address_gui.c:2181 #, fuzzy, c-format msgid "Failed to execute [%s]\n" msgstr "失败,无法创建文件 %s\n" #: ../address_gui.c:2425 msgid "Birthday" msgstr "" #: ../address_gui.c:2521 msgid "External program not found, or other error" msgstr "" #: ../address_gui.c:2523 msgid "" "J-Pilot can not find the external program \"convert\"\n" "or an error occurred while executing convert.\n" "You may need to install package ImageMagick" msgstr "" #: ../address_gui.c:2524 #, c-format msgid "Command executed was \"%s\"\n" msgstr "" #: ../address_gui.c:2525 #, c-format msgid "return code was %d\n" msgstr "" #: ../address_gui.c:2603 #, fuzzy msgid "chdir() failed\n" msgstr "锁定失败\n" #: ../address_gui.c:2606 msgid "Add Photo" msgstr "" #. Category menu #: ../address_gui.c:2828 ../KeyRing/keyring.c:2585 msgid "Category: " msgstr "类别:" #: ../address_gui.c:2848 ../address_gui.c:4186 msgid "Mail" msgstr "邮件" #. Dial Phone Button #: ../address_gui.c:2851 ../address_gui.c:4189 ../dialer.c:307 ../dialer.c:331 msgid "Dial" msgstr "拨号" #: ../address_gui.c:3041 ../datebook_gui.c:2757 ../memo_gui.c:1228 #: ../todo_gui.c:1697 msgid "Could not get temporary file name\n" msgstr "" #: ../address_gui.c:3049 ../datebook_gui.c:2765 ../memo_gui.c:1236 #: ../todo_gui.c:1705 msgid "Could not open temporary file for external editor\n" msgstr "" #: ../address_gui.c:3089 ../datebook_gui.c:2806 ../memo_gui.c:1277 #: ../todo_gui.c:1746 msgid "Could not open temporary file from external editor\n" msgstr "" #: ../address_gui.c:3261 ../address_gui.c:3292 msgid "-Unnamed-" msgstr "-未命名-" #: ../address_gui.c:3374 ../memo_gui.c:1454 ../todo_gui.c:2019 msgid "0 records" msgstr "0 项记录" #: ../address_gui.c:3377 ../datebook_gui.c:2637 ../memo_gui.c:1457 #: ../todo_gui.c:2022 #, c-format msgid "%d of %d records" msgstr "%2$d 项记录(共 %1$d 项)" #: ../address_gui.c:3772 ../address_gui.c:3780 ../KeyRing/keyring.c:2498 msgid "Name" msgstr "姓名" #: ../address_gui.c:3773 ../address_gui.c:3774 ../address_gui.c:3775 #: ../address_gui.c:3781 msgid "Address" msgstr "地址" #: ../address_gui.c:3776 ../address_gui.c:3782 ../Expense/expense.c:584 #: ../Expense/expense.c:1405 msgid "Other" msgstr "其他" #. Note textbox #: ../address_gui.c:3777 ../address_gui.c:3783 ../todo_gui.c:2484 #: ../Expense/expense.c:1836 ../KeyRing/keyring.c:2632 msgid "Note" msgstr "注释" #: ../address_gui.c:3793 msgid "Reverting to Address database\n" msgstr "" #: ../address_gui.c:3914 msgid "Phone" msgstr "电话" #: ../address_gui.c:3946 msgid "Quick Find: " msgstr "快速查找:" #. Cancel button #. Add record modification buttons #. Cancel button #: ../address_gui.c:3964 ../category.c:409 ../datebook_gui.c:1782 #: ../datebook_gui.c:5124 ../memo_gui.c:1692 ../todo_gui.c:2345 #: ../utils.c:1346 ../KeyRing/keyring.c:2528 msgid "Cancel" msgstr "取消" #: ../address_gui.c:3964 ../datebook_gui.c:5124 ../memo_gui.c:1692 #: ../todo_gui.c:2345 ../KeyRing/keyring.c:2528 msgid "Cancel the modifications" msgstr "取消修改" #. Delete Button #. Delete button #. Delete Button #. Delete button #. Delete, Copy, New, etc. buttons #. Delete button #: ../address_gui.c:3969 ../category.c:409 ../category.c:852 #: ../datebook_gui.c:5129 ../memo_gui.c:1697 ../todo_gui.c:2350 #: ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete" msgstr "删除" #: ../address_gui.c:3969 ../datebook_gui.c:5129 ../memo_gui.c:1697 #: ../todo_gui.c:2350 ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete the selected record" msgstr "删除选中的记录" #. Undelete Button #. Undelete button #. Undelete Button #. Undelete button #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 msgid "Undelete" msgstr "取消删除" #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 msgid "Undelete the selected record" msgstr "取消选中记录的删除" #. Copy button #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy" msgstr "复制" #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy the selected record" msgstr "复制选中的记录" #. New button #. New Record button #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "New Record" msgstr "新建记录" #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "Add a new record" msgstr "添加新记录" #. "Add Record" button #. Add Record button #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add Record" msgstr "添加记录" #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add the new record" msgstr "添加新记录" #. "Apply Changes" button #. Apply Changes button #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Apply Changes" msgstr "应用更改" #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Commit the modifications" msgstr "确认修改" #. Private check box #. Private checkbox #: ../address_gui.c:4033 ../datebook_gui.c:5191 ../datebook_gui.c:5233 #: ../memo_gui.c:1747 ../todo_gui.c:2410 msgid "Private" msgstr "私有" #: ../address_gui.c:4118 #, fuzzy msgid "Change Photo" msgstr "取消" #: ../address_gui.c:4123 #, fuzzy msgid "Remove Photo" msgstr "删除" #: ../address_gui.c:4195 #, fuzzy msgid "Show In List" msgstr "" "在列表\n" "显示" #: ../address_gui.c:4296 #, fuzzy msgid "Reminder" msgstr "提醒我" #: ../address_gui.c:4312 ../datebook_gui.c:238 ../datebook_gui.c:5221 #: ../datebook_gui.c:5378 msgid "Days" msgstr "天" #. The Quickview (ALL) page #. All button #: ../address_gui.c:4356 ../datebook_gui.c:1478 ../datebook_gui.c:1782 #: ../utils.c:2528 msgid "All" msgstr "全部" #: ../alarms.c:232 ../datebook_gui.c:236 ../datebook_gui.c:5215 #: ../datebook_gui.c:5372 msgid "Minutes" msgstr "分钟" #: ../alarms.c:234 ../datebook_gui.c:237 ../datebook_gui.c:5219 #: ../datebook_gui.c:5376 msgid "Hours" msgstr "小时" #: ../alarms.c:255 msgid "Remind me" msgstr "提醒我" #: ../alarms.c:425 ../alarms.c:991 ../sync.c:1639 ../sync.c:1645 #: ../utils.c:3717 #, c-format msgid "Unable to open file: %s%s\n" msgstr "无法打开文件:%s%s\n" #: ../alarms.c:512 msgid "Appointment Reminder" msgstr "约会提醒" #: ../alarms.c:515 msgid "Past Appointment" msgstr "过往约会" #: ../alarms.c:518 msgid "Postponed Appointment" msgstr "延迟约会" #: ../alarms.c:521 ../datebook_gui.c:5025 msgid "Appointment" msgstr "约会" #: ../alarms.c:605 msgid "J-Pilot Alarm" msgstr "J-Pilot 提醒" #: ../category.c:131 ../category.c:188 ../sync.c:2158 ../sync.c:2495 msgid "PC file corrupt?\n" msgstr "PC 文件损坏了?\n" #: ../category.c:138 ../category.c:148 ../category.c:196 ../category.c:206 #: ../category.c:216 ../sync.c:2280 ../sync.c:2334 ../sync.c:2371 #: ../sync.c:2386 ../sync.c:2410 ../sync.c:2630 ../sync.c:2675 ../sync.c:2712 #: ../sync.c:2725 ../sync.c:2750 msgid "fseek failed - fatal error\n" msgstr "fseek 失败 - 严重错误\n" #: ../category.c:364 ../utils.c:2738 ../utils.c:2812 ../utils.c:2916 #: ../utils.c:2981 msgid "rename failed" msgstr "重命名失败" #: ../category.c:409 msgid "Move" msgstr "移动" #: ../category.c:438 ../category.c:500 ../category.c:580 ../category.c:769 msgid "Edit Categories" msgstr "编辑类别" #: ../category.c:439 msgid "The maximum number of categories (16) are already used" msgstr "达到了可使用的最大类别数(16)" #: ../category.c:442 msgid "Enter New Category" msgstr "输入新类别" #: ../category.c:453 ../category.c:477 #, fuzzy msgid "Edit Categories Error" msgstr "编辑类别" #: ../category.c:454 msgid "You must select a category to rename" msgstr "您必须选择要重命名的类别" #: ../category.c:463 msgid "Enter New Category Name" msgstr "输入新类别名称" #: ../category.c:478 msgid "You must select a category to delete" msgstr "您必须选择要删除的类别" #: ../category.c:496 #, c-format msgid "" "There are %d records in %s.\n" "Do you want to move them to %s, or delete them?" msgstr "" "%2$s 中有 %1$d 项记录。\n" "您是想要将其移动到 %3$s 中,还是删除?" #: ../category.c:556 #, c-format msgid "invalid state file %s line %d\n" msgstr "无效的状态文件 %s 第 %d 行\n" #: ../category.c:578 #, c-format msgid "The category %s can't be used more than once" msgstr "无法多次使用类别 %s" #. Category names in host character set #: ../category.c:735 #, fuzzy msgid "Category" msgstr "类别:" #: ../category.c:836 msgid "New" msgstr "新建" #: ../category.c:843 msgid "Rename" msgstr "重命名" #: ../dat.c:456 msgid "unknown type =" msgstr "未知类型 =" #: ../dat.c:537 #, c-format msgid "fields per row count != %d, unknown format\n" msgstr "每行域数不等于 %d,格式未知\n" #: ../dat.c:551 #, c-format msgid "field count != %d, unknown format\n" msgstr "域数不等于 %d,格式未知\n" #: ../dat.c:559 msgid "Unknown format, file has wrong schema\n" msgstr "格式未知,文件的大纲不对\n" #: ../dat.c:560 msgid "File schema is:" msgstr "文件大纲为:" #: ../dat.c:564 #, fuzzy msgid "It should be:" msgstr "应该为:" #: ../dat.c:674 ../dat.c:692 ../dat.c:876 ../dat.c:889 ../dat.c:1012 #: ../dat.c:1025 ../dat.c:1149 ../dat.c:1162 #, c-format msgid "%s:%d Record %d, field %d: Invalid type. Expected %d, found %d\n" msgstr "%s:%d 第%d条记录,第%d个域:无效的类型。应该是 %d,却是 %d\n" #: ../dat.c:675 ../dat.c:693 ../dat.c:877 ../dat.c:890 ../dat.c:994 #: ../dat.c:1013 ../dat.c:1026 ../dat.c:1150 ../dat.c:1163 msgid "read of file terminated\n" msgstr "读到文件结束\n" #: ../datebook.c:705 ../datebook_gui.c:3648 #, c-format msgid "Unknown repeatType (%d) found in DatebookDB\n" msgstr "行事历中有未知的重复类型(%d)\n" #: ../datebook_gui.c:241 #, fuzzy msgid "Repeat Never" msgstr "重复方式:" #: ../datebook_gui.c:242 #, fuzzy msgid "Repeat Daily" msgstr "哪天重复:" #: ../datebook_gui.c:243 #, fuzzy msgid "Repeat Weekly" msgstr "重复方式:" #: ../datebook_gui.c:244 #, fuzzy msgid "Repeat MonthlyByDay" msgstr "哪天重复:" #: ../datebook_gui.c:245 #, fuzzy msgid "Repeat MonthlyByDate" msgstr "哪天重复:" #: ../datebook_gui.c:246 msgid "Repeat YearlyDate" msgstr "" #: ../datebook_gui.c:247 #, fuzzy msgid "Repeat YearlyDay" msgstr "哪天重复:" #: ../datebook_gui.c:250 ../datebook_gui.c:257 ../datebook_gui.c:4803 #: ../datebook_gui.c:4810 msgid "Su" msgstr "日" #: ../datebook_gui.c:251 ../datebook_gui.c:4804 msgid "Mo" msgstr "一" #: ../datebook_gui.c:252 ../datebook_gui.c:4805 msgid "Tu" msgstr "二" #: ../datebook_gui.c:253 ../datebook_gui.c:4806 msgid "We" msgstr "三" #: ../datebook_gui.c:254 ../datebook_gui.c:4807 msgid "Th" msgstr "四" #: ../datebook_gui.c:255 ../datebook_gui.c:4808 msgid "Fr" msgstr "五" #: ../datebook_gui.c:256 ../datebook_gui.c:4809 msgid "Sa" msgstr "六" #: ../datebook_gui.c:269 #, c-format msgid "" "Start Date: %s\n" "Time: Event" msgstr "" #: ../datebook_gui.c:277 #, c-format msgid "" "Start Date: %s\n" "Time: %s to %s" msgstr "" #: ../datebook_gui.c:287 ../datebook_gui.c:297 msgid "Unknown" msgstr "" #. End Date #: ../datebook_gui.c:300 #, fuzzy msgid "End Date: " msgstr "终束日期" #: ../datebook_gui.c:302 msgid "Never" msgstr "" #: ../datebook_gui.c:308 #, c-format msgid "Repeat Frequency: %d\n" msgstr "" #: ../datebook_gui.c:316 #, c-format msgid "Monthly Repeat Day %d\n" msgstr "" #: ../datebook_gui.c:321 ../datebook_gui.c:5520 msgid "Repeat on Days:" msgstr "哪天重复:" #: ../datebook_gui.c:332 #, fuzzy, c-format msgid "Number of exceptions: %d" msgstr "记录数目 = %d\n" #: ../datebook_gui.c:338 msgid "" "\n" "more..." msgstr "" #: ../datebook_gui.c:359 ../datebook_gui.c:386 msgid "Description:" msgstr "" #: ../datebook_gui.c:360 ../datebook_gui.c:387 #, fuzzy msgid "Note:" msgstr "注释" #: ../datebook_gui.c:362 ../datebook_gui.c:390 #, fuzzy msgid "Alarm:" msgstr "闹铃" #: ../datebook_gui.c:363 ../datebook_gui.c:391 #, fuzzy msgid "Repeat Type:" msgstr "重复方式:" #: ../datebook_gui.c:366 ../datebook_gui.c:394 #, fuzzy msgid "Start of Week:" msgstr "第几周第几天" #: ../datebook_gui.c:388 ../datebook_gui.c:5343 msgid "Location:" msgstr "" #: ../datebook_gui.c:620 ../datebook_gui.c:2271 #, c-format msgid "Appointment description text > %d, truncating to %d\n" msgstr "约会描述文本 > %d,截断为 %d\n" #: ../datebook_gui.c:631 ../datebook_gui.c:1148 ../datebook_gui.c:2331 #: ../datebook_gui.c:2338 msgid "Error" msgstr "错误" #: ../datebook_gui.c:632 msgid "File doesn't appear to be datebook.dat format\n" msgstr "文件似乎不是 datebook.dat 格式\n" #: ../datebook_gui.c:699 msgid "DAT/DBA (Palm Archive Formats)" msgstr "" #: ../datebook_gui.c:787 #, c-format msgid "" "Datebook exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:790 #, c-format msgid "" "Calendar exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:817 ../todo_gui.c:701 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ical file may not be standards-compliant\n" msgstr "" #: ../datebook_gui.c:1148 msgid "Unknown export type" msgstr "未知导出类型" #: ../datebook_gui.c:1228 ../todo_gui.c:872 #, fuzzy msgid "iCalendar" msgstr "清除" #: ../datebook_gui.c:1240 ../export_gui.c:251 ../jpilot.c:429 msgid "Export" msgstr "导出" #. Label for instructions #: ../datebook_gui.c:1257 msgid "Export All Datebook Records" msgstr "导出全部 Datebook 记录" #: ../datebook_gui.c:1276 ../export_gui.c:316 msgid "Save as" msgstr "另存为" #. Browse button #: ../datebook_gui.c:1286 ../export_gui.c:329 msgid "Browse" msgstr "浏览" #: ../datebook_gui.c:1432 msgid "Datebook Categories" msgstr "行事历类别" #. None button #. Labels for notebook tabs #: ../datebook_gui.c:1484 ../datebook_gui.c:2026 ../datebook_gui.c:5449 msgid "None" msgstr "无" #: ../datebook_gui.c:1633 msgid "Begin On Date" msgstr "开始日期" #: ../datebook_gui.c:1639 msgid "End On Date" msgstr "终束日期" #: ../datebook_gui.c:1751 ../prefs.c:451 msgid "Sunday" msgstr "星期日" #: ../datebook_gui.c:1752 ../prefs.c:452 msgid "Monday" msgstr "星期一" #: ../datebook_gui.c:1753 msgid "Tuesday" msgstr "星期二" #: ../datebook_gui.c:1754 msgid "Wednesday" msgstr "星期三" #: ../datebook_gui.c:1755 msgid "Thursday" msgstr "星期四" #: ../datebook_gui.c:1756 msgid "Friday" msgstr "星期五" #: ../datebook_gui.c:1757 msgid "Saturday" msgstr "星期六" #: ../datebook_gui.c:1760 msgid "4th" msgstr "第四周" #: ../datebook_gui.c:1760 msgid "Last" msgstr "月尾周" #: ../datebook_gui.c:1763 #, c-format msgid "" "This appointment can either\n" "repeat on the 4th %s\n" "of the month, or on the last\n" "%s of the month.\n" "Which do you want?" msgstr "" "您约会可以在每月的第四个%s重复,\n" "也可以在每月的最后一个%s重复。\n" "您想要哪种重复?" #: ../datebook_gui.c:1770 ../datebook_gui.c:1786 msgid "Question?" msgstr "问题?" #: ../datebook_gui.c:1777 #, fuzzy msgid "" "This is a repeating event.\n" "Do you want to apply these changes to\n" "only the CURRENT event,\n" "just FUTURE events, or\n" "ALL of the occurrences of this event?" msgstr "" "这是一个重复发生的事生。\n" "您刚做的修改,是仅适用于“当前”事件,\n" "抑或是这事件“每次发生”时都适用?" #: ../datebook_gui.c:1782 msgid "Current" msgstr "当前事件" #: ../datebook_gui.c:1782 msgid "Future" msgstr "" #: ../datebook_gui.c:2027 msgid "day" msgstr "天" #: ../datebook_gui.c:2028 msgid "week" msgstr "周" #: ../datebook_gui.c:2029 msgid "month" msgstr "个月" #: ../datebook_gui.c:2030 msgid "year" msgstr "年" #: ../datebook_gui.c:2326 ../datebook_gui.c:2329 #, c-format msgid "You cannot have an appointment that repeats every %d %s(s)\n" msgstr "您添加的约会不可以每 %d %s重复一次。\n" #: ../datebook_gui.c:2339 #, fuzzy msgid "" "You cannot have a weekly repeating appointment that doesn't repeat on any " "day of the week." msgstr "您添加了一个每周重复约会,但该约会未在一周的任何一天重复。" #. This is a timeless event #: ../datebook_gui.c:2516 ../datebook_gui.c:5264 msgid "No Time" msgstr "未定时间" #: ../datebook_gui.c:2788 ../memo_gui.c:1259 ../todo_gui.c:1728 msgid "External editor command too long to execute\n" msgstr "" #: ../datebook_gui.c:2943 msgid "Invalid Appointment" msgstr "无效约会" #: ../datebook_gui.c:2944 msgid "" "The End Date of this appointment\n" "is before the start date." msgstr "此约会的结束日期早于开始日期。" #. "No Date" check box #: ../datebook_gui.c:3339 ../datebook_gui.c:5482 ../datebook_gui.c:5513 #: ../datebook_gui.c:5565 ../datebook_gui.c:5613 ../todo_gui.c:142 #: ../todo_gui.c:2454 msgid "No Date" msgstr "无限期" #: ../datebook_gui.c:3494 #, fuzzy, c-format msgid "Error in DateBookDB or Calendar advanceUnits = %d\n" msgstr "DateBookDB 中有错,advanceUnits = %d\n" #: ../datebook_gui.c:3681 #, c-format msgid "%%a., %s" msgstr "%%a.,%s" #: ../datebook_gui.c:3686 msgid " (TODAY)" msgstr " (今天)" #. Weekview button #: ../datebook_gui.c:4934 ../datebook_gui.c:5451 msgid "Week" msgstr "周" #: ../datebook_gui.c:4943 #, fuzzy msgid "View appointments by week Ctrl+W" msgstr "按周查看约会" #. Monthview button #: ../datebook_gui.c:4946 ../datebook_gui.c:5452 msgid "Month" msgstr "月" #: ../datebook_gui.c:4955 #, fuzzy msgid "View appointments by month Ctrl+M" msgstr "按月查看约会" #. Make Category button #: ../datebook_gui.c:4960 msgid "Cats" msgstr "类别" #: ../datebook_gui.c:5024 msgid "Time" msgstr "时间" #. "Show ToDos" button #: ../datebook_gui.c:5067 msgid "Show ToDos" msgstr "显示待办" #: ../datebook_gui.c:5081 ../todo_gui.c:2285 msgid "Task" msgstr "任务" #: ../datebook_gui.c:5082 ../todo_gui.c:2286 msgid "Due" msgstr "到期日" #: ../datebook_gui.c:5201 ../datebook_gui.c:5358 msgid "Alarm" msgstr "闹铃" #. Date Spinners #: ../datebook_gui.c:5241 ../Expense/expense.c:1736 msgid "Date:" msgstr "日期:" #. Start date and time #: ../datebook_gui.c:5283 #, fuzzy msgid "Start" msgstr "开始日期:" #. End date and time #: ../datebook_gui.c:5300 #, fuzzy msgid "End" msgstr "结束日期:" #: ../datebook_gui.c:5433 msgid "DateBk Tags" msgstr "DateBk 标记" #: ../datebook_gui.c:5450 msgid "Day" msgstr "天" #: ../datebook_gui.c:5453 msgid "Year" msgstr "年" #. "No Repeat" page for notebook #: ../datebook_gui.c:5456 msgid "This event will not repeat" msgstr "此事件不会重复" #: ../datebook_gui.c:5465 ../datebook_gui.c:5498 ../datebook_gui.c:5550 #: ../datebook_gui.c:5596 msgid "Frequency is Every" msgstr "重复频率是每" #: ../datebook_gui.c:5471 msgid "Day(s)" msgstr "天" #: ../datebook_gui.c:5474 ../datebook_gui.c:5507 ../datebook_gui.c:5559 #: ../datebook_gui.c:5605 msgid "End on" msgstr "结束日期:" #: ../datebook_gui.c:5504 msgid "Week(s)" msgstr "周" #: ../datebook_gui.c:5556 msgid "Month(s)" msgstr "月" #: ../datebook_gui.c:5573 msgid "Repeat by:" msgstr "重复方式:" #: ../datebook_gui.c:5577 msgid "Day of week" msgstr "第几周第几天" #: ../datebook_gui.c:5586 ../Expense/expense.c:1618 msgid "Date" msgstr "该月的第几天" #: ../datebook_gui.c:5602 msgid "Year(s)" msgstr "年" #: ../dialer.c:195 msgid "Phone Dialer" msgstr "电话拨号器" #: ../dialer.c:230 msgid "Prefix 1" msgstr "前缀 1" #: ../dialer.c:252 msgid "Prefix 2" msgstr "前缀 2" #: ../dialer.c:274 msgid "Prefix 3" msgstr "前缀 3" #: ../dialer.c:289 msgid "Phone number:" msgstr "电话号码:" #: ../dialer.c:319 msgid "Extension" msgstr "分机" #: ../dialer.c:341 msgid "Dial Command" msgstr "拨号命令" #: ../export_gui.c:121 msgid "File Browser" msgstr "文件浏览器" #. Label for instructions #: ../export_gui.c:273 msgid "Select records to be exported" msgstr "请选择要导出的记录" #: ../export_gui.c:275 msgid "Use Ctrl and Shift Keys" msgstr "使用 Ctrl 和 Shift 键" #. Import button #: ../import_gui.c:300 ../import_gui.c:369 ../import_gui.c:426 #: ../import_gui.c:471 ../jpilot.c:385 msgid "Import" msgstr "导入" #: ../import_gui.c:317 #, c-format msgid "Record was marked as private" msgstr "记录已标记为私人的" #: ../import_gui.c:319 #, c-format msgid "Record was not marked as private" msgstr "记录未标记为私人的" #: ../import_gui.c:328 #, c-format msgid "Category before import was: [%s]" msgstr "导入前的类别是:[%s]" #: ../import_gui.c:336 #, c-format msgid "Record will be put in category [%s]" msgstr "记录将被存放于类别 [%s]" #. Import All button #: ../import_gui.c:376 msgid "Import All" msgstr "全部导入" #. Skip button #: ../import_gui.c:383 msgid "Skip" msgstr "跳过" #: ../import_gui.c:457 ../install_gui.c:429 msgid "To change to a hidden directory type it below and hit TAB" msgstr "若要切换到隐藏目录,请在下面输入后按 TAB 键" #: ../import_gui.c:484 msgid "Import File Type" msgstr "导入文件类型" #: ../install_gui.c:366 #, fuzzy msgid "Files to install" msgstr "要安装的文件" #: ../install_gui.c:374 msgid "Install" msgstr "安装" #: ../install_user.c:118 ../install_user.c:220 #, fuzzy msgid "Install User" msgstr "/文件(F)/安装用户" #: ../install_user.c:139 msgid "" "A PalmOS(c) device needs a user name and a user ID in order to sync properly." msgstr "" #: ../install_user.c:146 msgid "" "If you want to sync more than 1 PalmOS(c) device each one should have a " "different ID and preferably a different user name." msgstr "" #. Instruction label #: ../install_user.c:168 msgid "Most people choose their name or nickname for the user name." msgstr "" #: ../install_user.c:176 ../restore_gui.c:278 msgid "User Name" msgstr "用户名" #: ../install_user.c:186 msgid "The ID should be a random number." msgstr "" #: ../install_user.c:194 ../restore_gui.c:297 msgid "User ID" msgstr "用户 ID" #: ../jpilot.c:319 msgid "Print" msgstr "打印" #: ../jpilot.c:320 msgid "There is no print support for this conduit." msgstr "这个管道不支持打印。" #: ../jpilot.c:386 msgid "There is no import support for this conduit." msgstr "这个管道不支持导入" #: ../jpilot.c:430 msgid "There is no export support for this conduit." msgstr "这个管道不支持导出" #: ../jpilot.c:659 #, fuzzy msgid " Cancelling HotSync\n" msgstr "取消同步" #. ------------------------------------------- #: ../jpilot.c:675 #, fuzzy msgid "" "This handheld does not have the same user name or user ID\n" "as the one that was synced the last time.\n" "Syncing could have unwanted effects including data loss.\n" "\n" "Read the user manual if you are uncertain." msgstr "" "此 Palm 中的用户名或用户 ID 与上次同步所用\n" "的用户名不同。同步可能造成意外的效果。\n" "如果您不确定的话,请阅读用户手册。" #. ------------------------------------------- #: ../jpilot.c:682 #, fuzzy msgid "" "This handheld has a NULL user ID.\n" "Every handheld must have a unique user ID in order to sync properly.\n" "If the handheld has been hard reset, \n" " use restore from the menu to restore it.\n" "Otherwise, to add a new user name and ID\n" " use install-user from the menu.\n" "\n" "Read the user manual if you are uncertain." msgstr "" "此 Palm 的用户 ID 为 NULL。\n" "每台 Palm 都必须有一个唯一的用户 ID 以便正确进行同步。\n" "如果进行了硬件重置,可以从菜单中选择恢复进行恢复,您也可以使用 pilot-xfer。\n" "要添加用户名和 ID,请使用 install-user 命令行工具,或者从菜单中选择安装用" "户。\n" "如果您不确定的话,请阅读用户手册。" #: ../jpilot.c:690 msgid "Cancel Sync" msgstr "取消同步" #: ../jpilot.c:690 msgid "Sync Anyway" msgstr "忽略问题,照样同步" #: ../jpilot.c:699 ../jpilot.c:703 msgid "Sync Problem" msgstr "同步问题" #: ../jpilot.c:932 ../jpilot.c:1785 msgid " User: " msgstr " 用户:" #: ../jpilot.c:944 msgid "Unknown command from sync process\n" msgstr "同步进程中有未知命令\n" #: ../jpilot.c:963 ../Expense/expense.c:529 ../KeyRing/keyring.c:1872 #: ../SyncTime/synctime.c:61 #, c-format msgid "About %s" msgstr "关于 %s" #: ../jpilot.c:1105 msgid "/_File" msgstr "/文件(_F)" #: ../jpilot.c:1106 msgid "/File/tear" msgstr "/文件(F)/tear" #: ../jpilot.c:1107 msgid "/File/_Find" msgstr "文件(F)/查找(_F)" #: ../jpilot.c:1108 ../jpilot.c:1114 ../jpilot.c:1117 msgid "/File/sep1" msgstr "/文件(F)/sep1" #: ../jpilot.c:1109 msgid "/File/_Install" msgstr "/文件(F)/安装(_I)" #: ../jpilot.c:1110 msgid "/File/Import" msgstr "/文件(F)/导入" #: ../jpilot.c:1111 msgid "/File/Export" msgstr "/文件(F)/导出" #: ../jpilot.c:1112 ../jpilot.c:2190 msgid "/File/Preferences" msgstr "/文件(F)/首选项" #: ../jpilot.c:1113 msgid "/File/_Print" msgstr "/文件(F)/打印(_P)" #: ../jpilot.c:1115 msgid "/File/Install User" msgstr "/文件(F)/安装用户" #: ../jpilot.c:1116 msgid "/File/Restore Handheld" msgstr "/文件(F)/恢复手持设备" #: ../jpilot.c:1118 msgid "/File/_Quit" msgstr "/文件(F)/退出" #: ../jpilot.c:1119 msgid "/_View" msgstr "/查看(_V)" #: ../jpilot.c:1120 ../jpilot.c:1121 ../jpilot.c:1122 ../jpilot.c:1368 msgid "/View/Hide Private Records" msgstr "/查看(V)/隐藏私人记录" #: ../jpilot.c:1121 ../jpilot.c:1371 msgid "/View/Show Private Records" msgstr "/查看(V)/显示私人记录" #: ../jpilot.c:1122 ../jpilot.c:1374 msgid "/View/Mask Private Records" msgstr "/查看(V)/屏蔽私人记录" #: ../jpilot.c:1123 msgid "/View/sep1" msgstr "/查看(V)/sep1" #: ../jpilot.c:1124 msgid "/View/Datebook" msgstr "/查看(V)/行事历" #: ../jpilot.c:1125 msgid "/View/Addresses" msgstr "/查看(V)/地址簿" #: ../jpilot.c:1126 msgid "/View/Todos" msgstr "/查看(V)/待办工作" #: ../jpilot.c:1127 msgid "/View/Memos" msgstr "/查看(V)/备忘录" #: ../jpilot.c:1128 ../jpilot.c:1259 msgid "/_Plugins" msgstr "/插件(_P)" #: ../jpilot.c:1130 msgid "/_Web" msgstr "/_Web" #. web #: ../jpilot.c:1131 msgid "/Web/Netscape" msgstr "/Web/Netscape" #: ../jpilot.c:1135 msgid "/Web/Mozilla" msgstr "/Web/Mozilla" #: ../jpilot.c:1140 msgid "/Web/Galeon" msgstr "/Web/Galeon" #: ../jpilot.c:1145 msgid "/Web/Opera" msgstr "/Web/Opera" #: ../jpilot.c:1149 msgid "/Web/GnomeUrl" msgstr "/Web/GnomeUrl" #: ../jpilot.c:1151 msgid "/Web/Lynx" msgstr "/Web/Lynx" #: ../jpilot.c:1153 msgid "/Web/Links" msgstr "/Web/Links" #: ../jpilot.c:1155 msgid "/Web/W3M" msgstr "/Web/W3M" #: ../jpilot.c:1157 msgid "/Web/Konqueror" msgstr "/Web/Konqueror" #: ../jpilot.c:1160 msgid "/_Help" msgstr "/帮助(_H)" #: ../jpilot.c:1161 #, fuzzy msgid "/Help/About J-Pilot" msgstr "/帮助(H)/J-Pilot" #: ../jpilot.c:1227 #, c-format msgid "/_Plugins/%s" msgstr "/插件(_P)/%s" #: ../jpilot.c:1237 #, c-format msgid "/_Help/%s" msgstr "/帮助(_H)/%s" #: ../jpilot.c:1591 msgid "calendar:week_start:0" msgstr "calendar:week_start:0" #: ../jpilot.c:1634 ../jpilot-sync.c:171 msgid "Not loading plugins.\n" msgstr "未装入插件。\n" #: ../jpilot.c:1638 msgid "Ignoring all alarms.\n" msgstr "忽略全部提醒。\n" #: ../jpilot.c:1642 msgid "Ignoring past alarms.\n" msgstr "忽略过去的提醒。\n" #: ../jpilot.c:1730 ../jpilot.c:1738 msgid "Unable to open pipe\n" msgstr "无法打开管道\n" #: ../jpilot.c:1947 #, fuzzy msgid "Show private records Ctrl+Z" msgstr "显示私人记录 Ctrl+Z" #: ../jpilot.c:1952 #, fuzzy msgid "Hide private records Ctrl+Z" msgstr "隐藏私人记录 Ctrl-Z" #: ../jpilot.c:1957 #, fuzzy msgid "Mask private records Ctrl+Z" msgstr "屏蔽私人记录 Ctrl-Z" #: ../jpilot.c:1969 #, fuzzy msgid "Sync your palm to the desktop Ctrl+Y" msgstr "把您的 Palm 与桌面同步 Ctrl-Y" #: ../jpilot.c:1981 #, fuzzy msgid "Stop Sync process" msgstr "同步地址" #: ../jpilot.c:1993 msgid "" "Sync your palm to the desktop\n" "and then do a backup" msgstr "" "把您的 Palm 与桌面同步\n" "并作备份" #: ../jpilot.c:2141 msgid "Datebook/Go to Today" msgstr "行事历/跳到今天" #: ../jpilot.c:2142 msgid "Address Book" msgstr "地址簿" #: ../jpilot.c:2143 msgid "ToDo List" msgstr "待办工作" #: ../jpilot.c:2144 msgid "Memo Pad" msgstr "备忘录" #: ../jpilot.c:2172 msgid "Do it now" msgstr "立即执行" #: ../jpilot.c:2172 msgid "Remind me later" msgstr "稍后提醒我" #: ../jpilot.c:2172 msgid "Don't tell me again!" msgstr "别再通知我了" #: ../jpilot.c:2185 #, fuzzy, c-format msgid "" "J-Pilot uses the GTK2 graphical toolkit. This version of the toolkit uses " "UTF-8 to encode characters.\n" "You should select a UTF-8 charset so that you can see non-ASCII characters " "(accents for example).\n" "\n" "Go to the menu \"%s\" and change the \"%s\"." msgstr "" "J-Pilot 使用 GTK2 图形前端。此版本的图形前端使用 UTF-8 对字符编码。\n" "您应该选择 UTF-8 字符集,才能看到非 ASCII 字符(如中文)。\n" "\n" #. Character Set #: ../jpilot.c:2190 ../prefs_gui.c:511 #, fuzzy msgid "Character Set" msgstr "字符集 " #: ../jpilot.c:2192 msgid "Select a UTF-8 encoding" msgstr "选择 UTF-8 编码" #: ../jpilot-dump.c:94 #, fuzzy, c-format msgid " +D +A +T +M format like date +format.\n" msgstr " +B +M +A +T 格式就是日期+格式(请查看 -? 中的更多信息)。\n" #: ../jpilot-dump.c:95 #, fuzzy, c-format msgid " -v display version and exit\n" msgstr " -v 显示版本并退出。\n" #: ../jpilot-dump.c:96 ../jpilot-sync.c:68 ../utils.c:1874 #, fuzzy, c-format msgid " -h display help text\n" msgstr " -h 显示帮助并退出。\n" #: ../jpilot-dump.c:97 #, fuzzy, c-format msgid " -f display help for format codes\n" msgstr " -h 显示帮助并退出。\n" #: ../jpilot-dump.c:98 #, fuzzy, c-format msgid " -D dump DateBook\n" msgstr " -B 转存行事历。\n" #: ../jpilot-dump.c:99 #, fuzzy, c-format msgid " -i dump DateBook in iCalendar format\n" msgstr " -B 转存行事历。\n" #: ../jpilot-dump.c:100 #, fuzzy, c-format msgid " -N dump appts for today in DateBook\n" msgstr " -N 将今天的应用转存到行事历。\n" #: ../jpilot-dump.c:101 #, fuzzy, c-format msgid " -NYYYY/MM/DD dump appts on YYYY/MM/DD in DateBook\n" msgstr " -NYYYY/MM/DD 转存行事历中 YYYY/MM/DD 中的应用。\n" #: ../jpilot-dump.c:102 #, fuzzy, c-format msgid " -A dump Address book\n" msgstr " -A 转存地址簿。\n" #: ../jpilot-dump.c:103 #, fuzzy, c-format msgid " -T dump ToDo list as CSV\n" msgstr " -M 将待办工作列表转存为 CSV。\n" #: ../jpilot-dump.c:104 #, fuzzy, c-format msgid " -M dump Memos\n" msgstr " -M 转存备忘。\n" #: ../jpilot-dump.c:165 #, c-format msgid "" "Warning: Host character encoding is not UTF-8 based.\n" "Exported ical file may not be standards-compliant\n" msgstr "" #: ../jpilot-merge.c:163 ../jpilot-merge.c:169 #, fuzzy, c-format msgid "%s: Unable to open file:%s\n" msgstr "无法打开文件:%s\n" #: ../jpilot-merge.c:271 #, c-format msgid "Records read from pdb = %d\n" msgstr "" #: ../jpilot-merge.c:272 #, c-format msgid "Records added = %d\n" msgstr "" #: ../jpilot-merge.c:273 #, c-format msgid "Records deleted = %d\n" msgstr "" #: ../jpilot-merge.c:274 #, c-format msgid "Records modified = %d\n" msgstr "" #: ../jpilot-merge.c:275 #, c-format msgid "Records written = %d\n" msgstr "" #: ../jpilot-merge.c:293 #, c-format msgid "Usage: %s {input pdb file} {input pc3 file} {output pdb file}\n" msgstr "" #: ../jpilot-merge.c:294 #, c-format msgid " This program will merge an unsynced records file (pc3)\n" msgstr "" #: ../jpilot-merge.c:295 #, c-format msgid "" " into the corresponding palm database (pdb) file.\n" "\n" msgstr "" #: ../jpilot-merge.c:296 #, c-format msgid " WARNING: Only run this utility if you understand the consequences!\n" msgstr "" #: ../jpilot-merge.c:297 #, c-format msgid " The merge will leave your databases in an unsync-able state.\n" msgstr "" #: ../jpilot-merge.c:298 #, c-format msgid "" " It is intended for cases where J-pilot is being used as a standalone PIM\n" msgstr "" #: ../jpilot-merge.c:299 #, c-format msgid " and where no syncing occurs to physical hardware.\n" msgstr "" #: ../jpilot-merge.c:300 #, c-format msgid " WARNING: Make a backup copy of your databases before proceeding.\n" msgstr "" #: ../jpilot-merge.c:301 #, c-format msgid "" " It is quite simple to destroy your databases by accidentally merging\n" msgstr "" #: ../jpilot-merge.c:302 #, c-format msgid " address records into datebook databases, etc.\n" msgstr "" #: ../jpilot-sync.c:66 #, fuzzy, c-format msgid "" " J-Pilot preferences are read to get sync info such as port, rate, number of " "backups, etc.\n" msgstr " J-Pilot 首选项可读取端口、速率、备份数,等等。\n" #: ../jpilot-sync.c:67 ../utils.c:1873 #, fuzzy, c-format msgid " -v display version and compile options\n" msgstr " -v 显示版本和编译选项并退出。\n" #: ../jpilot-sync.c:69 ../utils.c:1875 #, fuzzy, c-format msgid " -d display debug info to stdout\n" msgstr " -d 将调试信息显示在标准输出上。\n" #: ../jpilot-sync.c:70 #, fuzzy, c-format msgid " -P skip loading plugins\n" msgstr "未装入插件。\n" #: ../jpilot-sync.c:71 #, fuzzy, c-format msgid " -b sync, and then do a backup\n" msgstr "" "把您的 Palm 与桌面同步\n" "并作备份" #: ../jpilot-sync.c:72 #, fuzzy, c-format msgid " -l loop, otherwise sync once and exit\n" msgstr " -l = 循环,否则只同步一次并退出。\n" #: ../jpilot-sync.c:73 #, fuzzy, c-format msgid " -p {port} use this port to sync on instead of default\n" msgstr " -p {端口} = 使用此端口同步,而不是从首选项获取端口。\n" #: ../jpilot-sync.c:221 #, fuzzy, c-format msgid "Error: connecting to port %s\n" msgstr "打开文件时发生错误:%s\n" #: ../jpilot-sync.c:225 #, c-format msgid "Error: pi_listen\n" msgstr "" #: ../jpilot-sync.c:229 #, fuzzy, c-format msgid "Error: opening conduit to handheld\n" msgstr "打开文件时出错:next_id\n" #: ../jpilot-sync.c:233 #, c-format msgid "Error: pi_accept\n" msgstr "" #: ../jpilot-sync.c:237 ../jpilot-sync.c:265 #, fuzzy, c-format msgid "Error: " msgstr "错误" #: ../jpilot-sync.c:238 #, c-format msgid "This handheld does not have the same user name.\n" msgstr "" #: ../jpilot-sync.c:239 ../jpilot-sync.c:253 #, c-format msgid "as the one that was synced the last time.\n" msgstr "" #: ../jpilot-sync.c:241 #, c-format msgid "" "Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:243 ../jpilot-sync.c:256 #, c-format msgid " COPILOT_HOME" msgstr "" #: ../jpilot-sync.c:245 ../jpilot-sync.c:258 #, c-format msgid " JPILOT_HOME" msgstr "" #: ../jpilot-sync.c:247 ../jpilot-sync.c:260 #, fuzzy, c-format msgid " environment variable can be used to sync different handhelds,\n" msgstr "您的 HOME 环境变量太长\n" #: ../jpilot-sync.c:248 ../jpilot-sync.c:261 #, c-format msgid " to different directories for the same UNIX user name.\n" msgstr "" #: ../jpilot-sync.c:252 #, c-format msgid "This handheld does not have the same user ID.\n" msgstr "" #: ../jpilot-sync.c:254 #, c-format msgid "" " Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:266 #, c-format msgid "This handheld has a NULL user ID.\n" msgstr "" #: ../jpilot-sync.c:267 #, c-format msgid "Every handheld must have a unique user ID in order to sync properly.\n" msgstr "" #: ../jpilot-sync.c:268 #, c-format msgid "If the handheld has been hard reset, \n" msgstr "" #: ../jpilot-sync.c:269 #, c-format msgid " use restore from within " msgstr "" #: ../jpilot-sync.c:270 #, c-format msgid "Otherwise, to add a new user name and ID\n" msgstr "" #: ../jpilot-sync.c:271 #, c-format msgid " use \"install-user %s name numeric_id\"\n" msgstr "" #: ../jpilot-sync.c:275 #, c-format msgid "Error: sync returned error %d\n" msgstr "" #: ../libplugin.c:64 ../utils.c:1054 msgid "" "This record is already deleted.\n" "It is scheduled to be deleted from the Palm on the next sync.\n" msgstr "" "此记录已删除。\n" "该记录已经计划为在下次同步时从 Palm 删除。\n" #: ../libplugin.c:73 ../libplugin.c:110 ../utils.c:1064 ../utils.c:1106 msgid "Unable to open PC records file\n" msgstr "无法打开 PC 记录文件\n" #: ../libplugin.c:79 ../utils.c:1071 msgid "Couldn't find record to delete\n" msgstr "找不到要删除的记录\n" #: ../libplugin.c:97 ../utils.c:1091 #, c-format msgid "Unknown header version %d\n" msgstr "未知头版本 %d\n" #: ../libplugin.c:182 #, c-format msgid "%s:%d Error opening file: %s\n" msgstr "%s:%d 打开文件错误:%s\n" #: ../libplugin.c:188 ../libplugin.c:217 ../sync.c:1721 ../todo.c:102 #, c-format msgid "%s:%d Error reading file: %s\n" msgstr "%s:%d 读取文件错误:%s\n" #: ../libplugin.c:340 ../libplugin.c:398 ../utils.c:2119 ../utils.c:2132 #, c-format msgid "Error opening file: %s\n" msgstr "打开文件时发生错误:%s\n" #: ../libplugin.c:526 #, c-format msgid "Error reading %s 5\n" msgstr "读取 %s 5 出错\n" #: ../libplugin.c:801 msgid "Error reading PC file 1\n" msgstr "读取 PC 文件1 出错\n" #: ../libplugin.c:817 msgid "Error reading PC file 2\n" msgstr "读取 PC 文件2出错\n" #: ../libplugin.c:923 #, c-format msgid "Unknown PC header version = %d\n" msgstr "未知的 PC 头版本 = %d\n" #: ../log.c:101 #, c-format msgid "Unable to open log file, giving up.\n" msgstr "无法打开日志文件,放弃操作。\n" #: ../log.c:111 #, c-format msgid "Unable to open log file\n" msgstr "无法打开日志文件\n" #: ../memo_gui.c:302 msgid "Memo text > 65535, truncating\n" msgstr "备忘文本 > 65535,已截断\n" #: ../memo_gui.c:330 #, c-format msgid "Imported Memo %s\n" msgstr "导入了备忘 %s\n" #: ../memo_gui.c:400 msgid "File doesn't appear to be memopad.dat format\n" msgstr "文件似乎不是 memopad.dat 格式\n" #: ../memo_gui.c:471 msgid "DAT/MPA (Palm Archive Formats)" msgstr "" #: ../memo_gui.c:554 #, c-format msgid "" "Memo exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:557 #, c-format msgid "" "Memos exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:584 #, c-format msgid "Can't export memo %d\n" msgstr "无法导出备忘 %d\n" #: ../memo_gui.c:628 #, fuzzy, c-format msgid "Memo: %ld\n" msgstr "备忘录" #: ../memo_gui.c:634 #, c-format msgid "----- Start of Memo -----\n" msgstr "" #: ../memo_gui.c:636 #, c-format msgid "" "\n" "----- End of Memo -----\n" "\n" msgstr "" #: ../memo_gui.c:668 msgid "B-Folders CSV" msgstr "" #: ../monthview_gui.c:438 msgid "Monthly View" msgstr "月份视图" #: ../monthview_gui.c:480 msgid "Last month Alt+LeftArrow" msgstr "" #: ../monthview_gui.c:508 msgid "Next month Alt+RightArrow" msgstr "" #: ../otherconv.c:76 #, c-format msgid "%s: error exit from g_iconv_close(%s)\n" msgstr "" #: ../otherconv.c:201 #, c-format msgid "%s:%s g_convert_with_iconv error: %s, buff: %s\n" msgstr "" #: ../otherconv.c:203 msgid "last char truncated" msgstr "" #: ../otherconv.c:280 #, c-format msgid "UTF_to_other: %s\n" msgstr "" #: ../otherconv.c:294 #, c-format msgid "iconv: unconvertible sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:298 #, c-format msgid "iconv: incomplete UTF-8 sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:301 #, c-format msgid "iconv: buffer filled. stopped at place %d in '%s'\n" msgstr "" #: ../otherconv.c:304 #, c-format msgid "iconv: unexpected error at place %d in '%s'\n" msgstr "" #: ../password.c:283 msgid "Palm Password" msgstr "Palm 密码" #: ../password.c:308 msgid "Incorrect, Reenter PalmOS Password" msgstr "不正确,请重新输入 PalmOS 密码" #: ../password.c:310 msgid "Enter PalmOS Password" msgstr "请输入 PalmOS 密码" #: ../pidfile.c:67 msgid "removing stale pidfile\n" msgstr "" #: ../pidfile.c:91 #, fuzzy, c-format msgid "create pidfile failed: %s\n" msgstr "读取文件出错:%s\n" #: ../pidfile.c:92 msgid "Warning: hotplug syncing disabled.\n" msgstr "" #: ../plugins.c:90 ../plugins.c:203 ../restore_gui.c:133 msgid "infinite loop" msgstr "无穷循环" #: ../plugins.c:216 #, c-format msgid "While reading %s%s line 1:[%s]\n" msgstr "读取 %s%s 第一行时:[%s]\n" #: ../plugins.c:217 msgid "Wrong Version\n" msgstr "版本错误\n" #: ../plugins.c:218 msgid "Check preferences->conduits\n" msgstr "检查首选项->管道\n" #: ../plugins.c:274 #, c-format msgid "" "Open failed on plugin [%s]\n" " error [%s]\n" msgstr "" "打开插件 [%s] 出错\n" "错误[%s]\n" #: ../plugins.c:291 ../plugins.c:316 #, c-format msgid " plugin is invalid: [%s]\n" msgstr " 插件无效:[%s]\n" #: ../plugins.c:299 #, c-format msgid "Plugin:[%s]\n" msgstr "插件:[%s]\n" #: ../plugins.c:300 #, c-format msgid "This plugin is version (%d.%d).\n" msgstr "此插件的版本是(%d.%d)。\n" #: ../plugins.c:302 msgid "It is too old to work with this version of J-Pilot.\n" msgstr "无法与此版本的 J-Pilot 共同工作。\n" #: ../prefs.c:420 msgid "%B %d, %Y" msgstr "%Y-%m-%d" #: ../prefs.c:421 msgid "%d %B %Y" msgstr "%Y-%m-%d" #: ../prefs.c:422 msgid "%d. %B %Y" msgstr "%Y-%m-%d" #: ../prefs.c:423 msgid "%d %B, %Y" msgstr "%Y-%m-%d" #: ../prefs.c:424 msgid "%Y. %B. %d" msgstr "%Y年%m月%d日" #: ../prefs.c:425 msgid "%Y %B %d" msgstr "%Y年%m月%d日" #: ../prefs_gui.c:454 msgid "Preferences" msgstr "首选项" #: ../prefs_gui.c:485 msgid "Locale" msgstr "语系" #: ../prefs_gui.c:487 msgid "Settings" msgstr "设置" #: ../prefs_gui.c:489 msgid "Datebook" msgstr "行事历" #: ../prefs_gui.c:493 msgid "ToDo" msgstr "待办" #: ../prefs_gui.c:495 msgid "Memo" msgstr "备忘录" #: ../prefs_gui.c:497 msgid "Alarms" msgstr "警告" #: ../prefs_gui.c:499 msgid "Conduits" msgstr "管道" #. Shortdate #: ../prefs_gui.c:524 #, fuzzy msgid "Short date format" msgstr "短日期格式 " #. Longdate #: ../prefs_gui.c:537 #, fuzzy msgid "Long date format" msgstr "长日期格式 " #. Time #: ../prefs_gui.c:550 #, fuzzy msgid "Time format" msgstr "时间格式 " #. GTK colors file #: ../prefs_gui.c:570 #, fuzzy msgid "GTK color theme file" msgstr "我的 GTK 色彩文件是 " #. Port #: ../prefs_gui.c:583 #, fuzzy msgid "Sync Port" msgstr "同步问题" #. Serial Rate #: ../prefs_gui.c:607 msgid "Serial Rate" msgstr "" #. Number of backups #: ../prefs_gui.c:627 msgid "Number of backups to be archived" msgstr "要归档的备份数目" #. Show deleted files check box #: ../prefs_gui.c:645 msgid "Show deleted records (default NO)" msgstr "显示已删除的记录(默认为否)" #. Show modified files check box #: ../prefs_gui.c:649 msgid "Show modified deleted records (default NO)" msgstr "显示已修改的已删除记录(默认为否)" #: ../prefs_gui.c:654 msgid "Ask confirmation for file installation (J-Pilot -> PDA) (default YES)" msgstr "请求文件安装确认(J-Pilot -> PDA)(默认为是)" #. Show tooltips check box #: ../prefs_gui.c:658 #, fuzzy msgid "Show popup tooltips (default YES) (requires restart)" msgstr "显示弹出提示(默认为是)" #: ../prefs_gui.c:668 msgid "Use Datebook database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:671 msgid "Use Calendar database (Palm OS > 5.2)" msgstr "" #. Show highlight days check box #: ../prefs_gui.c:697 msgid "Highlight calendar days with appointments" msgstr "日历上突出显示有约会的日子" #. Highlight today on month and week view #: ../prefs_gui.c:702 msgid "Annotate today in day, week, and month views" msgstr "在天、周和月视图中批注今天" #. Show number of years on anniversaries in month and week view #: ../prefs_gui.c:706 msgid "Append years on anniversaries in day, week, and month views" msgstr "在天、周和月视图中追加年份纪念日" #. Show use DateBk check box #: ../prefs_gui.c:712 msgid "Use DateBk note tags" msgstr "使用 DateBk 记事标记" #: ../prefs_gui.c:715 msgid "DateBk support disabled in this build" msgstr "此版本没有启用 DateBk 支持" #: ../prefs_gui.c:727 msgid "Use Address database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:730 msgid "Use Contacts database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:759 msgid "Mail Command" msgstr "邮件命令" #: ../prefs_gui.c:773 #, c-format msgid "%s is replaced by the e-mail address" msgstr "%s 将替换为电子邮件地址" #: ../prefs_gui.c:785 msgid "Use ToDo database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:788 msgid "Use Task database (Palm OS > 5.2)" msgstr "" #. hide completed check box #: ../prefs_gui.c:815 msgid "Hide Completed ToDos" msgstr "隐藏已完成的工作" #. hide todos not yet due check box #: ../prefs_gui.c:819 msgid "Hide ToDos not yet due" msgstr "隐藏未到期的待办" #. record todo completion date check box #: ../prefs_gui.c:823 msgid "Record Completion Date" msgstr "记录完成日期" #. Use Manana check box #: ../prefs_gui.c:828 msgid "Use Manana database" msgstr "使用 Manana 数据库" #: ../prefs_gui.c:836 msgid "Use default number of days due" msgstr "使用默认的到期日" #: ../prefs_gui.c:858 msgid "Use Memo database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:861 msgid "Use Memos database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:864 #, fuzzy msgid "Use Memo32 database (pedit32)" msgstr "使用 Memo32 (pedit32)" #: ../prefs_gui.c:904 msgid "External Editor" msgstr "" #: ../prefs_gui.c:917 msgid "Use Ctrl-E inside a memo to launch external editor for memo text" msgstr "" #. ******************************************************************** #. Alarms preference tab #. Open alarm windows check box #: ../prefs_gui.c:925 msgid "Open alarm windows for appointment reminders" msgstr "约会提醒时打开闹铃窗口" #. Execute alarm command check box #: ../prefs_gui.c:929 msgid "Execute this command" msgstr "执行此命令" #. Shell warning label #: ../prefs_gui.c:933 msgid "WARNING: executing arbitrary shell commands can be dangerous!!!" msgstr "警告:任意执行 shell 命令有相当的危险性!!!" #: ../prefs_gui.c:941 msgid "Alarm Command" msgstr "闹铃命令" #: ../prefs_gui.c:954 msgid "%t is replaced with the alarm time" msgstr "%t 代表闹铃时间" #: ../prefs_gui.c:958 #, c-format msgid "%d is replaced with the alarm date" msgstr "%d 代表闹铃日期" #: ../prefs_gui.c:963 msgid "%D is replaced with the alarm description" msgstr "%D 代表闹铃描述" #: ../prefs_gui.c:967 msgid "%N is replaced with the alarm note" msgstr "%N 代表闹铃记事" #: ../prefs_gui.c:971 msgid "%D (description substitution) is disabled in this build" msgstr "此版本没有启用 %D (描述替代符) 功能" #: ../prefs_gui.c:976 msgid "%N (note substitution) is disabled in this build" msgstr "此版本没有启用 %N (记事替代符) 功能" #. ******************************************************************** #. Conduits preference tab #. Sync datebook check box #: ../prefs_gui.c:986 msgid "Sync datebook" msgstr "同步行事历" #. Sync address check box #: ../prefs_gui.c:990 msgid "Sync address" msgstr "同步地址" #. Sync todo check box #: ../prefs_gui.c:994 msgid "Sync todo" msgstr "同步待办" #. Sync memo check box #: ../prefs_gui.c:998 msgid "Sync memo" msgstr "同步备忘录" #. Show sync Manana check box #: ../prefs_gui.c:1003 msgid "Sync Manana" msgstr "同步 Manana" #. Show use Japanese Kana extention check box #: ../prefs_gui.c:1009 msgid "Use J-OS (Not Japanese PalmOS:WorkPad/CLIE)" msgstr "使用 J-OS(不是日本 PalmOS:WorkPad/CLIE)" #. Make a Sync checkbox for each plugin #: ../prefs_gui.c:1022 #, c-format msgid "Sync %s (%s)" msgstr "同步 %s(%s)" #: ../print_gui.c:185 msgid "Print Options" msgstr "打印选项" #: ../print_gui.c:198 msgid "Paper Size" msgstr "纸张尺寸" #: ../print_gui.c:214 msgid "Daily Printout" msgstr "一天报告" #: ../print_gui.c:220 msgid "Weekly Printout" msgstr "一周报告" #: ../print_gui.c:226 msgid "Monthly Printout" msgstr "月份报告" #: ../print_gui.c:266 #, fuzzy msgid "Selected record" msgstr "删除了一项 %s 记录。" #: ../print_gui.c:270 msgid "All records in this category" msgstr "该类别里的全部记录" #: ../print_gui.c:274 msgid "Print all records" msgstr "打印全部记录" #: ../print_gui.c:296 msgid "One record per page" msgstr "每页打印一项记录" #: ../print_gui.c:312 #, fuzzy msgid "Blank lines between each record" msgstr " 每项记录中间加空行" #. Print Command #: ../print_gui.c:321 msgid "Print Command (e.g. lpr, or cat > file.ps)" msgstr "打印命令 (例如 lpr, 或 cat > file.ps)" #: ../restore_gui.c:71 ../restore_gui.c:229 msgid "Restore Handheld" msgstr "恢复手持设备" #: ../restore_gui.c:176 ../restore_gui.c:178 msgid "Unable to convert filename for GTK display\n" msgstr "" #: ../restore_gui.c:177 msgid "See console log to find which file will not be restored\n" msgstr "" #: ../restore_gui.c:179 #, fuzzy, c-format msgid "File %s will not be restored\n" msgstr "要安装的文件" #. Label for instructions #: ../restore_gui.c:246 msgid "To restore your handheld:" msgstr "要恢复您的手持设备:" #: ../restore_gui.c:249 #, fuzzy msgid "1. Choose the applications you wish to restore. The default is all." msgstr "1. 选择所有您要恢复的应用程序。默认是全部。" #: ../restore_gui.c:252 msgid "2. Enter the User Name and User ID." msgstr "2. 输入用户名和用户 ID。" #: ../restore_gui.c:255 msgid "3. Press the OK button." msgstr "3. 点击“确定”按钮。" #: ../restore_gui.c:258 msgid "This will overwrite data that is currently on the handheld." msgstr "此项操作会覆盖当前在手持设备上的全部数据。" #: ../search_gui.c:144 msgid "datebook" msgstr "行事历" #: ../search_gui.c:146 #, fuzzy msgid "calendar" msgstr "清除" #: ../search_gui.c:233 msgid "address" msgstr "地址" #: ../search_gui.c:235 msgid "contact" msgstr "" #: ../search_gui.c:304 msgid "todo" msgstr "待办" #: ../search_gui.c:361 msgid "memo" msgstr "备忘" #: ../search_gui.c:363 #, fuzzy msgid "memos" msgstr "备忘" #: ../search_gui.c:421 msgid "plugin ?" msgstr "插件 ?" #: ../search_gui.c:501 msgid "No records found" msgstr "找不到记录" #: ../search_gui.c:600 msgid "Search" msgstr "搜索" #. Search label #: ../search_gui.c:617 msgid "Search for: " msgstr "搜索:" #. Case Sensitive checkbox #: ../search_gui.c:626 msgid "Case Sensitive" msgstr "区分大小写" #: ../sync.c:120 msgid "open lock file failed\n" msgstr "打开锁文件失败\n" #: ../sync.c:133 msgid "lock failed\n" msgstr "锁定失败\n" #: ../sync.c:136 #, c-format msgid "sync file is locked by pid %d\n" msgstr "同步文件被 pid %d 锁定\n" #: ../sync.c:171 msgid "unlock failed\n" msgstr "解锁失败\n" #: ../sync.c:174 #, c-format msgid "sync is locked by pid %d\n" msgstr "同步由 pid %d 锁定\n" #: ../sync.c:410 #, fuzzy msgid "Check your sync port and settings\n" msgstr "检查您的串口和设置\n" #: ../sync.c:669 msgid "Unable to read home dir\n" msgstr "无法读取主目录\n" #: ../sync.c:1075 ../sync.c:1413 #, c-format msgid "%s (Creator ID '%s') is up to date, fetch skipped.\n" msgstr "%s (创建者 ID '%s') 已经是最新的了,跳过获取。\n" #: ../sync.c:1079 ../sync.c:1417 #, c-format msgid "Fetching '%s' (Creator ID '%s')... " msgstr "正在获取 '%s' (创建者 ID '%s')... " #: ../sync.c:1086 ../sync.c:1423 #, c-format msgid "Failed, unable to create file %s\n" msgstr "失败,无法创建文件 %s\n" #: ../sync.c:1090 ../sync.c:1428 #, c-format msgid "Failed, unable to back up database %s\n" msgstr "失败,无法备份数据库 %s\n" #: ../sync.c:1094 ../sync.c:1432 ../sync.c:1619 msgid "OK\n" msgstr "确定\n" #: ../sync.c:1294 #, c-format msgid "Skipping %s (Creator ID '%s')\n" msgstr "跳过 %s (创建者 ID '%s')\n" #: ../sync.c:1488 #, c-format msgid "Installing %s " msgstr "安装 %s " #: ../sync.c:1494 ../sync.c:1530 #, c-format msgid "" "\n" "Unable to open file: '%s': %s!\n" msgstr "" "\n" "无法打开文件:“%s”:%s!\n" #: ../sync.c:1498 #, c-format msgid "" "\n" "Unable to sync file: '%s': file corrupted?\n" msgstr "" "\n" "无法同步文件:“%s”:文件可能已损坏。\n" #: ../sync.c:1514 #, fuzzy, c-format msgid "(Creator ID '%s')... " msgstr "(创建者 ID 是“%s”)..." #: ../sync.c:1518 #, fuzzy, c-format msgid "(Creator ID '%s') " msgstr "(创建者 ID 是“%s”)..." #: ../sync.c:1520 #, fuzzy, c-format msgid "(SDcard dir %s)... " msgstr "(创建者 ID 是“%s”)..." #: ../sync.c:1552 ../sync.c:1565 ../sync.c:1580 ../sync.c:1593 #, c-format msgid "" "\n" "Unable to open file: %s\n" msgstr "" "\n" "无法打开文件:%s\n" #: ../sync.c:1605 #, c-format msgid "Install %s failed" msgstr "安装 %s 失败" #: ../sync.c:1609 msgid "Failed.\n" msgstr "失败。\n" #: ../sync.c:1615 #, fuzzy, c-format msgid "Installed %s" msgstr "已安装 %s " #: ../sync.c:1726 #, c-format msgid "%s:%d Error getting app info %s\n" msgstr "%s:%d 获取应用程序信息 %s 出错\n" #: ../sync.c:1732 ../sync.c:1762 #, c-format msgid "%s:%d Error unpacking app info %s\n" msgstr "%s:%d 提取应用程序信息出错 %s\n" #: ../sync.c:1753 #, c-format msgid "Error reading appinfo block for %s\n" msgstr "读取 %s 的应用程序信息块出错\n" #. Fix - need a func for this logging #: ../sync.c:1991 ../sync.c:1995 #, c-format msgid "Could not add category %s to remote.\n" msgstr "无法将类别 %s 添加到远程。\n" #: ../sync.c:1992 ../sync.c:1998 #, c-format msgid "Too many categories on remote.\n" msgstr "远程的类别太多。\n" #: ../sync.c:1993 ../sync.c:2001 #, c-format msgid "All records on desktop in %s will be moved to %s.\n" msgstr "桌面上 %s 中的全部记录都将移动到 %s 中。\n" #: ../sync.c:2096 ../sync.c:2814 #, c-format msgid "Syncing %s\n" msgstr "同步 %s\n" #: ../sync.c:2104 ../sync.c:2457 ../sync.c:2822 #, c-format msgid "Wrote an %s record." msgstr "写了一项 %s 记录。" #: ../sync.c:2106 ../sync.c:2459 ../sync.c:2824 #, c-format msgid "Writing an %s record failed." msgstr "写入一项 %s 记录失败。" #: ../sync.c:2108 ../sync.c:2461 ../sync.c:2826 #, c-format msgid "Deleting an %s record failed." msgstr "删除一项 %s 记录失败。" #: ../sync.c:2110 ../sync.c:2463 ../sync.c:2828 #, c-format msgid "Deleted an %s record." msgstr "删除了一项 %s 记录。" #: ../sync.c:2112 ../sync.c:2465 #, fuzzy, c-format msgid "Sync Conflict: duplicated an %s record." msgstr "删除了一项 %s 记录。" #: ../sync.c:2115 ../sync.c:2468 ../sync.c:2831 #, c-format msgid "Wrote a %s record." msgstr "写了一项 %s 记录。" #: ../sync.c:2117 ../sync.c:2470 ../sync.c:2833 #, c-format msgid "Writing a %s record failed." msgstr "写入一项 %s 记录失败。" #: ../sync.c:2119 ../sync.c:2472 ../sync.c:2835 #, c-format msgid "Deleting a %s record failed." msgstr "删除一项 %s 记录失败。" #: ../sync.c:2121 ../sync.c:2474 ../sync.c:2837 #, c-format msgid "Deleted a %s record." msgstr "删除了一项 %s 记录。" #: ../sync.c:2123 ../sync.c:2476 #, c-format msgid "Sync Conflict: duplicated a %s record." msgstr "" #: ../sync.c:2227 ../sync.c:2557 #, c-format msgid "Sync Conflict: a %s record must be manually merged\n" msgstr "" #: ../sync.c:2358 ../sync.c:2698 msgid "" "dlp_DeleteRecord failed\n" "This could be because the record was already deleted on the Palm\n" msgstr "" "dlp_DeleteRecord 失败\n" "可能是因为这项记录已经在 Palm 上删除了\n" #: ../sync.c:2927 msgid "Finished installing user information.\n" msgstr "安装用户信息完成。\n" #: ../sync.c:3084 #, c-format msgid " Syncing on device %s\n" msgstr " 正在与设备 %s 同步\n" #: ../sync.c:3085 msgid " Press the HotSync button now\n" msgstr " 现在请按 HotSync 键\n" #: ../sync.c:3127 ../sync.c:3149 ../sync.c:3170 #, c-format msgid "Last Synced Username-->\"%s\"\n" msgstr "上次同步的用户名-->\"%s\"\n" #: ../sync.c:3128 ../sync.c:3150 ../sync.c:3171 #, c-format msgid "Last Synced UserID-->\"%d\"\n" msgstr "上次同步的用户 ID->\"%d\"\n" #: ../sync.c:3129 ../sync.c:3151 ../sync.c:3172 #, c-format msgid " This Username-->\"%s\"\n" msgstr " 此用户名-->\"%s\"\n" #: ../sync.c:3130 ../sync.c:3152 ../sync.c:3173 #, c-format msgid " This User ID-->%d\n" msgstr " 此用户 ID-->%d\n" #: ../sync.c:3194 #, c-format msgid "Username is \"%s\"\n" msgstr "用户名是“%s”\"\n" #: ../sync.c:3195 #, c-format msgid "User ID is %d\n" msgstr "用户 ID 是 %d\n" #: ../sync.c:3197 #, c-format msgid "lastSyncPC = %d\n" msgstr "上次同步的PC = %d\n" #: ../sync.c:3198 #, c-format msgid "This PC = %lu\n" msgstr "这部 PC = %lu\n" #: ../sync.c:3222 msgid "Sync canceled\n" msgstr "同步已取消\n" #: ../sync.c:3245 msgid "Finished restoring handheld.\n" msgstr "恢复手持设备完毕。\n" #: ../sync.c:3246 msgid "You may need to sync to update J-Pilot.\n" msgstr "您可能需要同步以更新 J-Pilot。\n" #: ../sync.c:3268 msgid "Doing a fast sync.\n" msgstr "正在进行快速同步。\n" #: ../sync.c:3281 msgid "Doing a slow sync.\n" msgstr "正在进行慢速同步。\n" #: ../sync.c:3356 msgid "Thank you for using J-Pilot." msgstr "感谢您使用 J-Pilot。" #: ../sync.c:3401 ../sync.c:3469 msgid "Finished.\n" msgstr "完成。\n" #: ../sync.c:3436 #, c-format msgid "%s: sync process already in progress (process ID = %d)\n" msgstr "" #: ../sync.c:3437 #, fuzzy, c-format msgid "" "%s: press the HotSync button on the cradle\n" " or stop the sync by using the cancel sync button\n" " or stop the sync by typing \"kill %d\" at the command line\n" msgstr "%s:请按 HotSync 按钮,或者“kill %d”\n" #: ../sync.c:3468 #, c-format msgid "Exiting with status %s\n" msgstr "离开中,状态号是 %s\n" #: ../todo.c:266 #, c-format msgid "ToDo description text > %d, truncating to %d\n" msgstr "待办工作的描述长度 > %d,截断为 %d\n" #: ../todo.c:272 #, c-format msgid "ToDo note text > %d, truncating to %d\n" msgstr "待办工作的记事长度 > %d,截断为 %d\n" #: ../todo_gui.c:161 msgid "Due Date" msgstr "到期日" #: ../todo_gui.c:532 msgid "File doesn't appear to be todo.dat format\n" msgstr "文件似乎不是 todo.dat 格式\n" #: ../todo_gui.c:596 msgid "DAT/TDA (Palm Archive Formats)" msgstr "" #: ../todo_gui.c:688 #, c-format msgid "" "ToDo exported from %s %s on %s\n" "\n" msgstr "" #: ../todo_gui.c:726 #, c-format msgid "Can't export todo %d\n" msgstr "无法导出待办 %d\n" #: ../todo_gui.c:766 #, fuzzy, c-format msgid "Due Date: None\n" msgstr "到期日" #: ../todo_gui.c:769 #, fuzzy, c-format msgid "Due Date: %s\n" msgstr "到期日" #: ../todo_gui.c:771 #, fuzzy, c-format msgid "Priority: %d\n" msgstr "优先级:" #: ../todo_gui.c:772 #, fuzzy, c-format msgid "Completed: %s\n" msgstr "已完成" #: ../todo_gui.c:774 #, c-format msgid "Description: %s\n" msgstr "" #: ../todo_gui.c:777 #, c-format msgid "" "Note: %s\n" "\n" msgstr "" #: ../todo_gui.c:1610 msgid "Priority out of range\n" msgstr "优先级超出范围\n" #: ../todo_gui.c:1932 ../KeyRing/keyring.c:1310 #, c-format msgid "No date" msgstr "无限期" #. Completed checkbox #: ../todo_gui.c:2414 msgid "Completed" msgstr "已完成" #: ../todo_gui.c:2421 #, fuzzy msgid "Priority:" msgstr "优先级:" #: ../todo_gui.c:2423 msgid "Set priority Alt+#" msgstr "" #: ../todo_gui.c:2444 msgid "Date Due:" msgstr "到期日:" #: ../utils.c:332 msgid "Today" msgstr "今天" #: ../utils.c:577 #, c-format msgid "Couldn't find empty DB file %s: %s\n" msgstr "找不到空的 DB 文件 %s:%s\n" #: ../utils.c:580 msgid " may not be installed.\n" msgstr " 可能未安装。\n" #. Can't create directory #: ../utils.c:615 ../utils.c:619 #, c-format msgid "Can't create directory %s\n" msgstr "无法创建目录 %s\n" #: ../utils.c:625 #, fuzzy, c-format msgid "%s is not a directory\n" msgstr "%s 是目录" #: ../utils.c:630 #, fuzzy, c-format msgid "Unable to get write permission for directory %s\n" msgstr "无法在目录 %s 中写入文件\n" #: ../utils.c:1330 ../utils.c:1354 msgid "Save Changed Record?" msgstr "保存记录修改?" #: ../utils.c:1331 ../utils.c:1355 msgid "Do you want to save the changes to this record?" msgstr "您要保存对于此项记录的修改吗?" #: ../utils.c:1336 ../utils.c:1360 msgid "Save New Record?" msgstr "保存新记录?" #: ../utils.c:1337 ../utils.c:1361 msgid "Do you want to save this new record?" msgstr "您要保存此项新建的记录吗?" #: ../utils.c:1652 msgid "infinite loop, breaking\n" msgstr "无穷询问,跳出\n" #: ../utils.c:1876 #, fuzzy, c-format msgid " -p skip loading plugins\n" msgstr "未装入插件。\n" #: ../utils.c:1877 #, fuzzy, c-format msgid " -a ignore missed alarms since the last time program was run\n" msgstr " -a 忽略自从程序上次运行后错过的提醒。\n" #: ../utils.c:1878 #, fuzzy, c-format msgid " -A ignore all alarms past and future\n" msgstr " -A 忽略全部提醒,包括过去的未来的。\n" #: ../utils.c:1879 #, c-format msgid " -s start sync using existing instance of GUI\n" msgstr "" #: ../utils.c:1880 #, c-format msgid " -i iconify program immediately after launch\n" msgstr "" #: ../utils.c:1881 #, c-format msgid "" " -geometry {X geometry} use specified geometry for main window\n" "\n" msgstr "" #: ../utils.c:1882 #, fuzzy, c-format msgid " The PILOTPORT and PILOTRATE environment variables specify\n" msgstr " PILOTPORT 及 PILOTRATE 环境变量用于指定要使用哪个端口\n" #: ../utils.c:1883 #, c-format msgid " which port to sync on, and at what speed.\n" msgstr " 来同步,以及端口的速度。\n" #: ../utils.c:1884 #, c-format msgid " If PILOTPORT is not set then it defaults to /dev/pilot.\n" msgstr " 如果没有设置 PILOTPORT,则默认为 /dev/pilot。\n" #: ../utils.c:1921 msgid "Error reading file" msgstr "读入文件出错" #: ../utils.c:1971 msgid "Date compiled" msgstr "编译日期" #: ../utils.c:1972 msgid "Compiled with these options:" msgstr "带这些选项编译:" #: ../utils.c:1974 msgid "Installed Path" msgstr "安装路径" #: ../utils.c:1976 msgid "pilot-link version" msgstr "pilot-link 版本" #: ../utils.c:1980 msgid "USB support" msgstr "USB 支持" #: ../utils.c:1981 ../utils.c:1984 ../utils.c:1990 ../utils.c:1996 #: ../utils.c:2002 ../utils.c:2008 ../utils.c:2013 msgid "yes" msgstr "是" #: ../utils.c:1982 msgid "Private record support" msgstr "私人记录支持" #: ../utils.c:1986 ../utils.c:1992 ../utils.c:1998 ../utils.c:2004 #: ../utils.c:2010 msgid "no" msgstr "否" #: ../utils.c:1988 msgid "Datebk support" msgstr "Datebk 支持" #: ../utils.c:1994 msgid "Plugin support" msgstr "插件支持" #: ../utils.c:2000 msgid "Manana support" msgstr "Manana 支持" #: ../utils.c:2006 msgid "NLS support (foreign languages)" msgstr "NLS 支持(外语)" #: ../utils.c:2012 msgid "GTK2 support" msgstr "GTK2 支持" #. No HOME var #: ../utils.c:2055 msgid "Can't get HOME environment variable\n" msgstr "无法获得 HOME 环境变量\n" #: ../utils.c:2062 #, fuzzy msgid "HOME environment variable is too long to process\n" msgstr "您的 HOME 环境变量太长\n" #: ../utils.c:2557 #, fuzzy msgid "Edit Categories..." msgstr "编辑类别" #: ../utils.c:3223 msgid "PC ID is 0.\n" msgstr "PC ID 是 0。\n" #: ../utils.c:3224 #, fuzzy, c-format msgid "Generated a new PC ID. It is %lu\n" msgstr "我生成了一项新的 PC ID,是 %lu\n" #: ../utils.c:3309 msgid "Invalid UTF-8 encoding in export string\n" msgstr "" #: ../utils.c:3470 #, c-format msgid "Today is %A, %x %X" msgstr "今天是%A,%x %X" #: ../utils.c:3472 #, c-format msgid "Today is %%A, %s %s" msgstr "今天是%%A,%s %s" #: ../utils.c:3701 #, c-format msgid "" "Incorrect header format for CSV import\n" "Check line 1 of file %s\n" "Aborting import\n" msgstr "" #: ../utils.c:3738 #, fuzzy, c-format msgid "Error writing version header to file: %s%s\n" msgstr "将 PC 头写入文件出错:next_id\n" #: ../utils.c:3743 #, fuzzy, c-format msgid "Error writing next id to file: %s%s" msgstr "将 next id 写入文件出错:next_id\n" #: ../weekview_gui.c:297 msgid "Weekly View" msgstr "每周视图" #: ../weekview_gui.c:337 msgid "Last week Alt+LeftArrow" msgstr "" #: ../weekview_gui.c:366 msgid "Next week Alt+RightArrow" msgstr "" #: ../Expense/expense.c:97 msgid "Australia" msgstr "澳大利亚" #: ../Expense/expense.c:98 msgid "Austria" msgstr "澳大利亚" #: ../Expense/expense.c:99 msgid "Belgium" msgstr "比利时" #: ../Expense/expense.c:100 msgid "Brazil" msgstr "巴西" #: ../Expense/expense.c:101 msgid "Canada" msgstr "加拿大" #: ../Expense/expense.c:102 msgid "Denmark" msgstr "丹麦" #: ../Expense/expense.c:103 msgid "EU (Euro)" msgstr "欧盟(欧洲)" #: ../Expense/expense.c:104 msgid "Finland" msgstr "芬兰" #: ../Expense/expense.c:105 msgid "France" msgstr "法国" #: ../Expense/expense.c:106 msgid "Germany" msgstr "德国" #: ../Expense/expense.c:107 msgid "Hong Kong" msgstr "香港" #: ../Expense/expense.c:108 msgid "Iceland" msgstr "冰岛" #: ../Expense/expense.c:109 msgid "India" msgstr "印度" #: ../Expense/expense.c:110 msgid "Indonesia" msgstr "印度尼西亚" #: ../Expense/expense.c:111 msgid "Ireland" msgstr "爱尔兰" #: ../Expense/expense.c:112 msgid "Italy" msgstr "意大利" #: ../Expense/expense.c:113 msgid "Japan" msgstr "日本" #: ../Expense/expense.c:114 msgid "Korea" msgstr "韩国" #: ../Expense/expense.c:115 msgid "Luxembourg" msgstr "卢森堡" #: ../Expense/expense.c:116 msgid "Malaysia" msgstr "马来西亚" #: ../Expense/expense.c:117 msgid "Mexico" msgstr "墨西哥" #: ../Expense/expense.c:118 msgid "Netherlands" msgstr "荷兰" #: ../Expense/expense.c:119 msgid "New Zealand" msgstr "新西兰" #: ../Expense/expense.c:120 msgid "Norway" msgstr "挪威" #: ../Expense/expense.c:121 msgid "P.R.C." msgstr "中国" #: ../Expense/expense.c:122 msgid "Philippines" msgstr "菲律宾" #: ../Expense/expense.c:123 msgid "Singapore" msgstr "新加坡" #: ../Expense/expense.c:124 msgid "Spain" msgstr "西班牙" #: ../Expense/expense.c:125 msgid "Sweden" msgstr "瑞典" #: ../Expense/expense.c:126 msgid "Switzerland" msgstr "瑞士" #: ../Expense/expense.c:127 msgid "Taiwan" msgstr "中国台湾" #: ../Expense/expense.c:128 msgid "Thailand" msgstr "泰国" #: ../Expense/expense.c:129 msgid "United Kingdom" msgstr "英国" #: ../Expense/expense.c:130 msgid "United States" msgstr "美国" #: ../Expense/expense.c:518 ../Expense/expense.c:529 msgid "Expense" msgstr "开支" #: ../Expense/expense.c:550 ../Expense/expense.c:1388 msgid "Airfare" msgstr "飞机票" #: ../Expense/expense.c:552 ../Expense/expense.c:1389 msgid "Breakfast" msgstr "早餐" #: ../Expense/expense.c:554 ../Expense/expense.c:1390 msgid "Bus" msgstr "公共汽车" #: ../Expense/expense.c:556 ../Expense/expense.c:1391 msgid "BusinessMeals" msgstr "商务客饭" #: ../Expense/expense.c:558 ../Expense/expense.c:1392 msgid "CarRental" msgstr "租车" #: ../Expense/expense.c:560 ../Expense/expense.c:1393 msgid "Dinner" msgstr "晚餐" #: ../Expense/expense.c:562 ../Expense/expense.c:1394 msgid "Entertainment" msgstr "娱乐" #: ../Expense/expense.c:564 ../Expense/expense.c:1395 msgid "Fax" msgstr "传真" #: ../Expense/expense.c:566 ../Expense/expense.c:1396 msgid "Gas" msgstr "汽油" #: ../Expense/expense.c:568 ../Expense/expense.c:1397 msgid "Gifts" msgstr "礼品" #: ../Expense/expense.c:570 ../Expense/expense.c:1398 msgid "Hotel" msgstr "酒店" #: ../Expense/expense.c:572 ../Expense/expense.c:1399 msgid "Incidentals" msgstr "附带开支" #: ../Expense/expense.c:574 ../Expense/expense.c:1400 msgid "Laundry" msgstr "洗衣" #: ../Expense/expense.c:576 ../Expense/expense.c:1401 msgid "Limo" msgstr "豪华轿车" #: ../Expense/expense.c:578 ../Expense/expense.c:1402 msgid "Lodging" msgstr "寄宿" #: ../Expense/expense.c:580 ../Expense/expense.c:1403 msgid "Lunch" msgstr "午餐" #: ../Expense/expense.c:582 ../Expense/expense.c:1404 msgid "Mileage" msgstr "里程" #: ../Expense/expense.c:586 ../Expense/expense.c:1406 msgid "Parking" msgstr "泊车" #: ../Expense/expense.c:588 ../Expense/expense.c:1407 msgid "Postage" msgstr "邮费" #: ../Expense/expense.c:590 ../Expense/expense.c:1408 msgid "Snack" msgstr "快餐" #: ../Expense/expense.c:592 ../Expense/expense.c:1409 msgid "Subway" msgstr "地铁" #: ../Expense/expense.c:594 ../Expense/expense.c:1410 msgid "Supplies" msgstr "用品" #: ../Expense/expense.c:596 ../Expense/expense.c:1411 msgid "Taxi" msgstr "的士" #: ../Expense/expense.c:598 ../Expense/expense.c:1412 msgid "Telephone" msgstr "电话" #: ../Expense/expense.c:600 ../Expense/expense.c:1413 msgid "Tips" msgstr "小帐" #: ../Expense/expense.c:602 ../Expense/expense.c:1414 msgid "Tolls" msgstr "通行费" #: ../Expense/expense.c:604 ../Expense/expense.c:1415 msgid "Train" msgstr "火车" #: ../Expense/expense.c:1239 msgid "Expense: Unknown expense type\n" msgstr "花费:未知花费类型\n" #: ../Expense/expense.c:1245 msgid "Expense: Unknown payment type\n" msgstr "花费:未知支付类型\n" #: ../Expense/expense.c:1377 msgid "American Express" msgstr "美国运通 (American Express)" #: ../Expense/expense.c:1378 msgid "Cash" msgstr "现金" #: ../Expense/expense.c:1379 msgid "Check" msgstr "支票" #: ../Expense/expense.c:1380 msgid "Credit Card" msgstr "信用卡" #: ../Expense/expense.c:1381 msgid "Master Card" msgstr "万事达卡 (MasterCard)" #: ../Expense/expense.c:1382 msgid "Prepaid" msgstr "预付费" #: ../Expense/expense.c:1383 msgid "VISA" msgstr "VISA 卡" #: ../Expense/expense.c:1619 #, fuzzy msgid "Type" msgstr "类型:" #: ../Expense/expense.c:1620 #, fuzzy msgid "Amount" msgstr "金额:" #. Category Menu #: ../Expense/expense.c:1704 msgid "Category:" msgstr "类别:" #. Type Menu #: ../Expense/expense.c:1712 msgid "Type:" msgstr "类型:" #. Payment Menu #: ../Expense/expense.c:1720 msgid "Payment:" msgstr "支付:" #. Currency Menu #: ../Expense/expense.c:1728 msgid "Currency:" msgstr "货币:" #: ../Expense/expense.c:1748 msgid "Month:" msgstr "月:" #: ../Expense/expense.c:1762 msgid "Day:" msgstr "日:" #: ../Expense/expense.c:1776 msgid "Year:" msgstr "年:" #. Amount Entry #: ../Expense/expense.c:1789 msgid "Amount:" msgstr "金额:" #. Vendor Entry #: ../Expense/expense.c:1799 msgid "Vendor:" msgstr "商户:" #. City #: ../Expense/expense.c:1809 msgid "City:" msgstr "城市:" #. Attendees #: ../Expense/expense.c:1819 msgid "Attendees" msgstr "参加者" #. ------------------------------------------- #: ../Expense/expense.c:2102 #, c-format msgid "" "%s\n" "\n" "Expense plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org" msgstr "" #: ../KeyRing/keyring.c:291 msgid "KeyRing: pack_KeyRing(): buf_size too small\n" msgstr "密钥环:pack_KeyRing():buf_size 太小\n" #: ../KeyRing/keyring.c:1699 msgid "Incorrect, Reenter KeyRing Password" msgstr "不正确,请重新输入密钥环密码" #: ../KeyRing/keyring.c:1701 msgid "Enter a NEW KeyRing Password" msgstr "输入新的密钥环密码" #: ../KeyRing/keyring.c:1703 msgid "Enter KeyRing Password" msgstr "输入密钥环密码" #: ../KeyRing/keyring.c:1769 #, c-format msgid "KeyRing: file %s not found.\n" msgstr "密钥环:文件 %s 未找到。\n" #: ../KeyRing/keyring.c:1770 msgid "KeyRing: Try Syncing.\n" msgstr "密钥环:尝试同步。\n" #: ../KeyRing/keyring.c:1861 ../KeyRing/keyring.c:1872 msgid "KeyRing" msgstr "密钥环" #. ------------------------------------------- #: ../KeyRing/keyring.c:1900 #, c-format msgid "" "%s\n" "\n" "KeyRing plugin for J-Pilot was written by\n" "Judd Montgomery (c) 2001.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "KeyRing is a free PalmOS program for storing\n" "passwords and other information in encrypted form\n" "http://gnukeyring.sourceforge.net" msgstr "" #: ../KeyRing/keyring.c:2137 #, c-format msgid "" "Keys exported from %s %s on %s\n" "\n" msgstr "" #: ../KeyRing/keyring.c:2162 #, fuzzy, c-format msgid "Can't export key %d\n" msgstr "无法导出备忘 %d\n" #: ../KeyRing/keyring.c:2229 msgid "B-FOLDERS CSV" msgstr "" #. Change Password button #: ../KeyRing/keyring.c:2384 msgid "" "Change\n" "KeyRing\n" "Password" msgstr "" "更改\n" "密钥环\n" "密码" #. Clist #: ../KeyRing/keyring.c:2497 #, fuzzy msgid "Changed" msgstr "取消" #: ../KeyRing/keyring.c:2499 msgid "Account" msgstr "账户" #. Name entry #: ../KeyRing/keyring.c:2593 msgid "name: " msgstr "名字:" #. Account entry #: ../KeyRing/keyring.c:2601 msgid "account: " msgstr "账户:" #. Password entry #: ../KeyRing/keyring.c:2609 msgid "password: " msgstr "密码:" #. Last Changed entry #: ../KeyRing/keyring.c:2616 msgid "last changed: " msgstr "" #. Generate Password button (creates random password) #: ../KeyRing/keyring.c:2626 msgid "Generate Password" msgstr "生成密码" #: ../SyncTime/synctime.c:61 #, fuzzy msgid "SyncTime" msgstr "同步备忘录" #. ------------------------------------------- #: ../SyncTime/synctime.c:72 #, c-format msgid "" "%s\n" "\n" "SyncTime plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "SyncTime WILL NOT work with PalmOS 3.3!" msgstr "" #: ../SyncTime/synctime.c:106 msgid "synctime: Palm OS Version 3.25 and 3.30 do not support SyncTime\n" msgstr "" #: ../SyncTime/synctime.c:107 msgid "synctime: NOT setting the time on the pilot\n" msgstr "" #: ../SyncTime/synctime.c:112 msgid "synctime: Setting the time on the pilot... " msgstr "" #: ../SyncTime/synctime.c:117 #, fuzzy msgid "Done\n" msgstr "完成" #, fuzzy #~ msgid " -i makes program iconify itself upon launch.\n" #~ msgstr " -i 调用后将 jpilot 缩小为图标。\n" #, fuzzy #~ msgid "Your HOME environment variable is too long(>1024)\n" #~ msgstr "您的 HOME 环境变量太长\n" #~ msgid "W" #~ msgstr "周" #~ msgid "M" #~ msgstr "月" #~ msgid "This Event has no particular time" #~ msgstr "此事件无特定时间" #~ msgid "Start Time" #~ msgstr "开始时间" #~ msgid "End Time" #~ msgstr "结束时间" #, fuzzy #~ msgid "email command empty\n" #~ msgstr "邮件命令" #~ msgid "Unable to open %s%s file\n" #~ msgstr "无法打开 %s%s 文件\n" #~ msgid "Unable to open %s.alarms file\n" #~ msgstr "无法打开 %s.alarms 文件\n" #~ msgid "You can't edit category %s.\n" #~ msgstr "您无法编辑类别 %s。\n" #~ msgid "You can't delete category %s.\n" #~ msgstr "您无法删除类别 %s。\n" #~ msgid "category name" #~ msgstr "类别名称" #~ msgid "debug" #~ msgstr "调试" #, fuzzy #~ msgid "End Date: Never\n" #~ msgstr "终束日期" #, fuzzy #~ msgid "Repeat Days: " #~ msgstr "哪天重复:" #~ msgid "Close" #~ msgstr "关闭" #~ msgid "none" #~ msgstr "无" #~ msgid "Unknown repeatType found in DatebookDB\n" #~ msgstr "DateBookDB 中有未知的 repeatType\n" #~ msgid "Dismiss" #~ msgstr "未接" #~ msgid "Done" #~ msgstr "完成" #~ msgid "Add" #~ msgstr "添加" #, fuzzy #~ msgid "Remove" #~ msgstr "删除" #, fuzzy #~ msgid "User name" #~ msgstr "用户名" #~ msgid " -v = version\n" #~ msgstr " -v = 版本\n" #~ msgid " -h = help\n" #~ msgstr " -h = 帮助\n" #~ msgid " -d = run in debug mode\n" #~ msgstr " -d = 以调试模式运行\n" #~ msgid " -P = do not load plugins.\n" #~ msgstr " -P = 不装入插件。\n" #~ msgid " -b = Do a sync and then a backup, otherwise just do a sync.\n" #~ msgstr " -b = 执行同步并备份,否则只同步。\n" #~ msgid "Invalid geometry specification: \"%s\"\n" #~ msgstr "指定了无效的地理位置:“%s”\n" #~ msgid "/Help/PayBack program" #~ msgstr "/帮助(H)/PayBack 计划" #~ msgid "Font Selection Dialog" #~ msgstr "字体选择对话框" #~ msgid "Show private records" #~ msgstr "显示私人记录" #~ msgid "Hide private records" #~ msgstr "隐藏私人记录" #~ msgid "Mask private records" #~ msgstr "屏蔽私人记录" #~ msgid "Font" #~ msgstr "字体" #~ msgid "Go to the menu \"" #~ msgstr "转到菜单“" #~ msgid "\" and change the \"" #~ msgstr "”然后更改“" #~ msgid "\"." #~ msgstr "”。" #~ msgid "Couldn't open PC records file\n" #~ msgstr "无法打开 PC 记录文件\n" #~ msgid "The first day of the week is " #~ msgstr "一周的第一天是 " #~ msgid "One record" #~ msgstr "一项记录" #~ msgid "Finished\n" #~ msgstr "完成\n" #~ msgid "Last Username = [%s]\n" #~ msgstr "上一个用户名 = [%s]\n" #~ msgid "Last UserID = %d\n" #~ msgstr "上一个用户 ID = %d\n" #~ msgid "Username = [%s]\n" #~ msgstr "用户名 [%s]\n" #~ msgid "userID = %d\n" #~ msgstr "用户 ID = %d\n" #, fuzzy #~ msgid "number of records = %d\n" #~ msgstr "Palm:记录数目 = %d\n" #~ msgid "palm: number of records = %d\n" #~ msgstr "Palm:记录数目 = %d\n" #~ msgid "disk: number of records = %d\n" #~ msgstr "磁盘:记录数目 = %d\n" #, fuzzy #~ msgid "Your HOME environment variable is too long for me\n" #~ msgstr "您的 HOME 环境变量太长\n" #~ msgid "" #~ "%s doesn't appear to be a directory.\n" #~ "I need it to be.\n" #~ msgstr "" #~ "%s 似乎不是目录。\n" #~ "但需要目录。\n" #, fuzzy #~ msgid "I can't write files in directory %s\n" #~ msgstr "无法创建目录 %s\n" #~ msgid "Expense: Unknown category\n" #~ msgstr "花费:未知类别\n" #~ msgid "Field" #~ msgstr "域" #~ msgid "kana(" #~ msgstr "kana(" #~ msgid "Quick View" #~ msgstr "快速查看" #~ msgid "Serial Port (/dev/ttyS0, /dev/pilot)" #~ msgstr "串行接口 (/dev/ttyS0,/dev/pilot)" #~ msgid "Serial Rate (Does not affect USB)" #~ msgstr "串口速率(不影响 USB)" #~ msgid "Sync memo32 (pedit32)" #~ msgstr "同步 memo32 (pedit32)" #~ msgid "AmEx" #~ msgstr "美国运通(AmEx)" #~ msgid "CreditCard" #~ msgstr "信用卡" #~ msgid "MasterCard" #~ msgstr "万事达卡(MasterCard)" #~ msgid "Quit" #~ msgstr "退出" #~ msgid "Help" #~ msgstr "帮助" #~ msgid "Directory" #~ msgstr "目录" #~ msgid "Overwrite File" #~ msgstr "覆盖文件" #~ msgid "Filename" #~ msgstr "文件名" #~ msgid "Answer: " #~ msgstr "答案:" #~ msgid "Sync" #~ msgstr "同步" #~ msgid " -p do not load plugins.\n" #~ msgstr " -p 不装入插件。\n" jpilot-1.8.1.2/po/POTFILES0000644000175000017500000000137411702306405011674 00000000000000 ../address.c \ ../address_gui.c \ ../alarms.c \ ../calendar.c \ ../category.c \ ../contact.c \ ../dat.c \ ../datebook.c \ ../datebook_gui.c \ ../dialer.c \ ../export_gui.c \ ../import_gui.c \ ../install_gui.c \ ../install_user.c \ ../jpilot.c \ ../jpilot-dump.c \ ../jpilot-merge.c \ ../jpilot-sync.c \ ../libplugin.c \ ../log.c \ ../memo.c \ ../memo_gui.c \ ../monthview_gui.c \ ../otherconv.c \ ../password.c \ ../pidfile.c \ ../plugins.c \ ../prefs.c \ ../prefs_gui.c \ ../print.c \ ../print_gui.c \ ../print_headers.c \ ../print_logo.c \ ../restore_gui.c \ ../search_gui.c \ ../sync.c \ ../todo.c \ ../todo_gui.c \ ../utils.c \ ../weekview_gui.c \ ../Expense/expense.c \ ../KeyRing/keyring.c \ ../SyncTime/synctime.c jpilot-1.8.1.2/po/nl.po0000644000175000017500000024531411702307203011476 00000000000000# Dutch translations for jpilot. # This file is distributed under the same license as the jpilot package. # # Bram Schoenmakers , 2003. # Benno Schulenberg , 2008. msgid "" msgstr "" "Project-Id-Version: jpilot-1.6.0-pre2\n" "Report-Msgid-Bugs-To: jpilot-devel@jpilot.org\n" "POT-Creation-Date: 2012-01-08 13:39+0100\n" "PO-Revision-Date: 2008-05-04 12:53+0200\n" "Last-Translator: Benno Schulenberg \n" "Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../address.c:276 ../address.c:448 ../alarms.c:332 ../calendar.c:309 #: ../calendar.c:547 ../contact.c:324 ../contact.c:738 ../dat.c:189 #: ../dat.c:655 ../dat.c:859 ../dat.c:993 ../dat.c:1132 ../datebook.c:130 #: ../datebook.c:165 ../datebook.c:172 ../datebook.c:231 ../jpilot.c:1254 #: ../jpilot-merge.c:95 ../libplugin.c:208 ../libplugin.c:455 #: ../libplugin.c:534 ../libplugin.c:563 ../libplugin.c:811 ../memo.c:214 #: ../memo.c:287 ../otherconv.c:280 ../plugins.c:112 ../prefs.c:350 #: ../prefs.c:375 ../prefs.c:906 ../sync.c:2170 ../sync.c:2187 ../sync.c:2296 #: ../sync.c:2310 ../sync.c:2507 ../sync.c:2646 ../todo.c:236 ../todo.c:490 #: ../utils.c:748 #, c-format msgid "Out of memory" msgstr "Onvoldoende geheugen beschikbaar" #: ../address.c:332 ../calendar.c:230 ../contact.c:580 ../datebook.c:494 #: ../memo.c:87 ../todo.c:90 #, fuzzy, c-format msgid "%s:%d Error reading application info %s\n" msgstr "%s:%d Fout bij het lezen van category informatie %s\n" #: ../address.c:344 ../address_gui.c:2285 ../address_gui.c:2324 #: ../calendar.c:246 ../contact.c:596 ../datebook.c:514 ../datebook_gui.c:3737 #: ../libplugin.c:405 ../libplugin.c:431 ../memo.c:99 ../memo_gui.c:863 #: ../todo_gui.c:1070 ../Expense/expense.c:1105 #, c-format msgid "Error reading file: %s\n" msgstr "Fout bij lezen van bestand: %s\n" #: ../address.c:492 ../calendar.c:598 ../calendar.c:607 ../contact.c:780 #: ../libplugin.c:846 ../memo.c:353 ../todo.c:302 ../utils.c:1124 #: ../utils.c:1131 ../utils.c:1138 ../utils.c:1145 ../utils.c:1152 #: ../utils.c:1159 msgid "error" msgstr "fout" #: ../address_gui.c:325 ../datebook_gui.c:2844 ../memo_gui.c:176 #: ../todo_gui.c:292 ../KeyRing/keyring.c:834 msgid "" "This record is deleted.\n" "Undelete it or copy it to make changes.\n" msgstr "" #: ../address_gui.c:452 ../address_gui.c:458 ../address_gui.c:469 #: ../address_gui.c:481 ../address_gui.c:493 ../address_gui.c:506 #, c-format msgid "%s%s: %s" msgstr "" #: ../address_gui.c:542 ../category.c:118 ../category.c:176 ../category.c:330 #: ../category.c:336 ../datebook_gui.c:430 ../jpilot-merge.c:88 #: ../jpilot-merge.c:146 ../jpilot-merge.c:151 ../memo_gui.c:280 #: ../sync.c:2129 ../sync.c:2135 ../sync.c:2481 ../sync.c:2842 #: ../todo_gui.c:416 ../utils.c:2674 ../utils.c:2711 ../utils.c:2717 #: ../utils.c:2776 ../utils.c:2782 ../utils.c:2836 ../utils.c:2890 #: ../utils.c:2896 ../utils.c:2954 ../utils.c:2961 #, c-format msgid "Unable to open file: %s\n" msgstr "Kan bestand niet openen: %s\n" #: ../address_gui.c:561 #, fuzzy, c-format msgid "Unable to read file: %s\n" msgstr "Kan bestand niet openen: %s\n" #: ../address_gui.c:715 msgid "File doesn't appear to be address.dat format\n" msgstr "Bestand lijkt niet de 'address.dat'-indeling te hebben\n" #: ../address_gui.c:725 ../datebook_gui.c:647 ../memo_gui.c:324 #: ../memo_gui.c:417 ../todo_gui.c:542 ../Expense/expense.c:1384 msgid "Unfiled" msgstr "Onbekend" #: ../address_gui.c:781 ../datebook_gui.c:698 ../memo_gui.c:470 #: ../todo_gui.c:595 msgid "CSV (Comma Separated Values)" msgstr "" #: ../address_gui.c:782 msgid "DAT/ABA (Palm Archive Formats)" msgstr "" #. current category name #. previous category name #. entry text, in Pilot character set #: ../address_gui.c:868 ../category.c:408 ../datebook_gui.c:729 #: ../jpilot.c:234 ../jpilot.c:278 ../jpilot.c:352 ../jpilot.c:396 #: ../jpilot.c:953 ../memo_gui.c:506 ../todo_gui.c:635 ../utils.c:1305 #: ../KeyRing/keyring.c:2090 msgid "OK" msgstr "OK" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "No" msgstr "Nee" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "Yes" msgstr "Ja" #: ../address_gui.c:888 ../datebook_gui.c:753 ../memo_gui.c:520 #: ../todo_gui.c:655 ../KeyRing/keyring.c:2104 #, c-format msgid "%s is a directory" msgstr "%s is een map" #: ../address_gui.c:890 ../address_gui.c:907 ../datebook_gui.c:755 #: ../datebook_gui.c:772 ../memo_gui.c:522 ../memo_gui.c:539 ../todo_gui.c:657 #: ../todo_gui.c:674 ../KeyRing/keyring.c:2106 ../KeyRing/keyring.c:2123 msgid "Error Opening File" msgstr "Fout bij openen van bestand" #: ../address_gui.c:894 ../datebook_gui.c:759 ../memo_gui.c:526 #: ../todo_gui.c:661 ../KeyRing/keyring.c:2110 #, c-format msgid "Do you want to overwrite file %s?" msgstr "Wilt u het bestand %s overschrijven?" #: ../address_gui.c:896 ../datebook_gui.c:761 ../memo_gui.c:528 #: ../todo_gui.c:663 ../KeyRing/keyring.c:2112 msgid "Overwrite File?" msgstr "Bestand overschrijven?" #: ../address_gui.c:905 ../datebook_gui.c:770 ../memo_gui.c:537 #: ../todo_gui.c:672 ../KeyRing/keyring.c:2121 #, c-format msgid "Error opening file: %s" msgstr "Fout bij openen van bestand: %s" #: ../address_gui.c:922 #, c-format msgid "" "Address exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:925 #, c-format msgid "" "Contact exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:989 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ldif file may not be standards-compliant\n" msgstr "" #: ../address_gui.c:1002 #, c-format msgid "Can't export address %d\n" msgstr "Kan adres %d niet exporteren\n" #: ../address_gui.c:1008 ../memo_gui.c:630 ../todo_gui.c:760 #, fuzzy, c-format msgid "Category: %s\n" msgstr "Categorie: " #: ../address_gui.c:1010 ../memo_gui.c:632 ../todo_gui.c:763 #, fuzzy, c-format msgid "Private: %s\n" msgstr "Privé" #: ../address_gui.c:1018 ../address_gui.c:1032 ../address_gui.c:1036 #: ../address_gui.c:1045 ../address_gui.c:1048 #, c-format msgid "%s: " msgstr "" #: ../address_gui.c:1022 #, c-format msgid "%s\n" msgstr "" #. E-mail should be the Palm dropdown menu item for email #. Set dial/email button text and callback data #: ../address_gui.c:1196 ../address_gui.c:2846 ../address_gui.c:4185 msgid "E-mail" msgstr "" #: ../address_gui.c:1482 ../datebook_gui.c:1147 ../memo_gui.c:640 #: ../todo_gui.c:844 ../KeyRing/keyring.c:2214 msgid "Unknown export type\n" msgstr "Onbekend exporttype\n" #: ../address_gui.c:1508 ../datebook_gui.c:1226 ../memo_gui.c:469 #: ../memo_gui.c:666 ../todo_gui.c:870 ../KeyRing/keyring.c:2229 msgid "Text" msgstr "" #: ../address_gui.c:1509 ../datebook_gui.c:1227 ../memo_gui.c:667 #: ../todo_gui.c:871 ../KeyRing/keyring.c:2229 msgid "CSV" msgstr "" #: ../address_gui.c:1510 #, fuzzy msgid "vCard" msgstr "Wissen" #: ../address_gui.c:1511 msgid "vCard (Optimized for Gmail/Android Import)" msgstr "" #: ../address_gui.c:1512 msgid "ldif" msgstr "" #. Initialize variable if default case taken #: ../address_gui.c:1777 ../address_gui.c:3902 #, fuzzy msgid "Last Name/Company" msgstr "Naam/Bedrijf" #: ../address_gui.c:1780 ../address_gui.c:3905 #, fuzzy msgid "First Name/Company" msgstr "Naam/Bedrijf" #: ../address_gui.c:1783 ../address_gui.c:3908 #, fuzzy msgid "Company/Last Name" msgstr "Bedrijf/Naam" #: ../address_gui.c:1920 ../datebook_gui.c:2907 ../memo_gui.c:1036 #: ../todo_gui.c:1329 ../KeyRing/keyring.c:1181 msgid "You can't modify a record that is deleted\n" msgstr "" #. Illegal category, Assume that category 0 is Unfiled and valid #: ../address_gui.c:2119 ../address_gui.c:2370 ../address_gui.c:2803 #: ../address_gui.c:2809 ../address_gui.c:3601 ../datebook_gui.c:1994 #: ../datebook_gui.c:3434 ../datebook_gui.c:3783 ../datebook_gui.c:4074 #: ../memo_gui.c:900 ../memo_gui.c:946 ../memo_gui.c:1161 ../memo_gui.c:1548 #: ../todo_gui.c:1106 ../todo_gui.c:1200 ../todo_gui.c:1589 ../todo_gui.c:2141 #: ../Expense/expense.c:689 ../Expense/expense.c:1143 #: ../Expense/expense.c:1227 ../Expense/expense.c:1887 #: ../KeyRing/keyring.c:1070 ../KeyRing/keyring.c:1512 #: ../KeyRing/keyring.c:1574 ../KeyRing/keyring.c:2688 msgid "Category is not legal\n" msgstr "Ongeldige categorie\n" #: ../address_gui.c:2179 ../alarms.c:598 ../dialer.c:164 #, fuzzy, c-format msgid "executing command = [%s]\n" msgstr "Voer dit commando uit" #: ../address_gui.c:2181 #, fuzzy, c-format msgid "Failed to execute [%s]\n" msgstr "Mislukt, het was onmogelijk om het bestand %s aan te maken\n" #: ../address_gui.c:2425 msgid "Birthday" msgstr "" #: ../address_gui.c:2521 msgid "External program not found, or other error" msgstr "" #: ../address_gui.c:2523 msgid "" "J-Pilot can not find the external program \"convert\"\n" "or an error occurred while executing convert.\n" "You may need to install package ImageMagick" msgstr "" #: ../address_gui.c:2524 #, c-format msgid "Command executed was \"%s\"\n" msgstr "" #: ../address_gui.c:2525 #, c-format msgid "return code was %d\n" msgstr "" #: ../address_gui.c:2603 #, fuzzy msgid "chdir() failed\n" msgstr "vergrendelen is mislukt\n" #: ../address_gui.c:2606 msgid "Add Photo" msgstr "" #. Category menu #: ../address_gui.c:2828 ../KeyRing/keyring.c:2585 msgid "Category: " msgstr "Categorie: " #: ../address_gui.c:2848 ../address_gui.c:4186 msgid "Mail" msgstr "Mail" #. Dial Phone Button #: ../address_gui.c:2851 ../address_gui.c:4189 ../dialer.c:307 ../dialer.c:331 msgid "Dial" msgstr "Bel" #: ../address_gui.c:3041 ../datebook_gui.c:2757 ../memo_gui.c:1228 #: ../todo_gui.c:1697 msgid "Could not get temporary file name\n" msgstr "" #: ../address_gui.c:3049 ../datebook_gui.c:2765 ../memo_gui.c:1236 #: ../todo_gui.c:1705 msgid "Could not open temporary file for external editor\n" msgstr "" #: ../address_gui.c:3089 ../datebook_gui.c:2806 ../memo_gui.c:1277 #: ../todo_gui.c:1746 msgid "Could not open temporary file from external editor\n" msgstr "" #: ../address_gui.c:3261 ../address_gui.c:3292 msgid "-Unnamed-" msgstr "-Naamloos-" #: ../address_gui.c:3374 ../memo_gui.c:1454 ../todo_gui.c:2019 msgid "0 records" msgstr "0 items" #: ../address_gui.c:3377 ../datebook_gui.c:2637 ../memo_gui.c:1457 #: ../todo_gui.c:2022 #, c-format msgid "%d of %d records" msgstr "%d van de %d items" #: ../address_gui.c:3772 ../address_gui.c:3780 ../KeyRing/keyring.c:2498 msgid "Name" msgstr "Naam" #: ../address_gui.c:3773 ../address_gui.c:3774 ../address_gui.c:3775 #: ../address_gui.c:3781 msgid "Address" msgstr "Adres" #: ../address_gui.c:3776 ../address_gui.c:3782 ../Expense/expense.c:584 #: ../Expense/expense.c:1405 msgid "Other" msgstr "Diversen" #. Note textbox #: ../address_gui.c:3777 ../address_gui.c:3783 ../todo_gui.c:2484 #: ../Expense/expense.c:1836 ../KeyRing/keyring.c:2632 msgid "Note" msgstr "Notitie" #: ../address_gui.c:3793 msgid "Reverting to Address database\n" msgstr "" #: ../address_gui.c:3914 msgid "Phone" msgstr "Telefoonnummer" #: ../address_gui.c:3946 msgid "Quick Find: " msgstr "Snelzoeken: " #. Cancel button #. Add record modification buttons #. Cancel button #: ../address_gui.c:3964 ../category.c:409 ../datebook_gui.c:1782 #: ../datebook_gui.c:5124 ../memo_gui.c:1692 ../todo_gui.c:2345 #: ../utils.c:1346 ../KeyRing/keyring.c:2528 msgid "Cancel" msgstr "Annuleren" #: ../address_gui.c:3964 ../datebook_gui.c:5124 ../memo_gui.c:1692 #: ../todo_gui.c:2345 ../KeyRing/keyring.c:2528 msgid "Cancel the modifications" msgstr "De wijzigingen annuleren" #. Delete Button #. Delete button #. Delete Button #. Delete button #. Delete, Copy, New, etc. buttons #. Delete button #: ../address_gui.c:3969 ../category.c:409 ../category.c:852 #: ../datebook_gui.c:5129 ../memo_gui.c:1697 ../todo_gui.c:2350 #: ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete" msgstr "Verwijderen" #: ../address_gui.c:3969 ../datebook_gui.c:5129 ../memo_gui.c:1697 #: ../todo_gui.c:2350 ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete the selected record" msgstr "Het geselecteerde item verwijderen" #. Undelete Button #. Undelete button #. Undelete Button #. Undelete button #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 #, fuzzy msgid "Undelete" msgstr "Verwijderen" #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 msgid "Undelete the selected record" msgstr "Het geselecteerde item terughalen" #. Copy button #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy" msgstr "Kopiëren" #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy the selected record" msgstr "Het geselecteerde item kopiëren" #. New button #. New Record button #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "New Record" msgstr "Nieuw item" #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "Add a new record" msgstr "Een nieuw item toevoegen" #. "Add Record" button #. Add Record button #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add Record" msgstr "Item toevoegen" #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add the new record" msgstr "Het nieuwe item toevoegen" #. "Apply Changes" button #. Apply Changes button #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Apply Changes" msgstr "Wijzigingen toepassen" #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Commit the modifications" msgstr "De gemaakte wijzigingen doorvoeren" #. Private check box #. Private checkbox #: ../address_gui.c:4033 ../datebook_gui.c:5191 ../datebook_gui.c:5233 #: ../memo_gui.c:1747 ../todo_gui.c:2410 msgid "Private" msgstr "Privé" #: ../address_gui.c:4118 #, fuzzy msgid "Change Photo" msgstr "Gewijzigd" #: ../address_gui.c:4123 #, fuzzy msgid "Remove Photo" msgstr "Verwijderen" #: ../address_gui.c:4195 #, fuzzy msgid "Show In List" msgstr "" "Laat in\n" "lijst zien" #: ../address_gui.c:4296 #, fuzzy msgid "Reminder" msgstr "Herinner me" #: ../address_gui.c:4312 ../datebook_gui.c:238 ../datebook_gui.c:5221 #: ../datebook_gui.c:5378 msgid "Days" msgstr "dagen" #. The Quickview (ALL) page #. All button #: ../address_gui.c:4356 ../datebook_gui.c:1478 ../datebook_gui.c:1782 #: ../utils.c:2528 msgid "All" msgstr "Alles" #: ../alarms.c:232 ../datebook_gui.c:236 ../datebook_gui.c:5215 #: ../datebook_gui.c:5372 msgid "Minutes" msgstr "minuten" #: ../alarms.c:234 ../datebook_gui.c:237 ../datebook_gui.c:5219 #: ../datebook_gui.c:5376 msgid "Hours" msgstr "uren" #: ../alarms.c:255 msgid "Remind me" msgstr "Herinner me" #: ../alarms.c:425 ../alarms.c:991 ../sync.c:1639 ../sync.c:1645 #: ../utils.c:3717 #, c-format msgid "Unable to open file: %s%s\n" msgstr "Kan bestand niet openen: %s%s\n" #: ../alarms.c:512 msgid "Appointment Reminder" msgstr "Herinnering afspraak" #: ../alarms.c:515 msgid "Past Appointment" msgstr "Gemiste herinnering" #: ../alarms.c:518 msgid "Postponed Appointment" msgstr "Uitgestelde afspraak" #: ../alarms.c:521 ../datebook_gui.c:5025 msgid "Appointment" msgstr "Afspraak" #: ../alarms.c:605 msgid "J-Pilot Alarm" msgstr "" #: ../category.c:131 ../category.c:188 ../sync.c:2158 ../sync.c:2495 msgid "PC file corrupt?\n" msgstr "Bestand op PC ongeldig?\n" #: ../category.c:138 ../category.c:148 ../category.c:196 ../category.c:206 #: ../category.c:216 ../sync.c:2280 ../sync.c:2334 ../sync.c:2371 #: ../sync.c:2386 ../sync.c:2410 ../sync.c:2630 ../sync.c:2675 ../sync.c:2712 #: ../sync.c:2725 ../sync.c:2750 msgid "fseek failed - fatal error\n" msgstr "fseek() is mislukt - ernstige fout\n" #: ../category.c:364 ../utils.c:2738 ../utils.c:2812 ../utils.c:2916 #: ../utils.c:2981 msgid "rename failed" msgstr "hernoemen is mislukt" #: ../category.c:409 msgid "Move" msgstr "Verplaatsen" #: ../category.c:438 ../category.c:500 ../category.c:580 ../category.c:769 msgid "Edit Categories" msgstr "Categorieën bewerken" #: ../category.c:439 msgid "The maximum number of categories (16) are already used" msgstr "" #: ../category.c:442 msgid "Enter New Category" msgstr "Voer nieuwe categorie in" #: ../category.c:453 ../category.c:477 msgid "Edit Categories Error" msgstr "" #: ../category.c:454 msgid "You must select a category to rename" msgstr "U dient een categorie te selecteren om te hernoemen" #: ../category.c:463 msgid "Enter New Category Name" msgstr "Voer nieuwe naam van categorie in" #: ../category.c:478 msgid "You must select a category to delete" msgstr "U dient een categorie te selecteren om te verwijderen" #: ../category.c:496 #, c-format msgid "" "There are %d records in %s.\n" "Do you want to move them to %s, or delete them?" msgstr "" "Er zitten %d items in %s.\n" "Wilt u ze naar %s verplaatsen, of ze verwijderen?" #: ../category.c:556 #, c-format msgid "invalid state file %s line %d\n" msgstr "" #: ../category.c:578 #, c-format msgid "The category %s can't be used more than once" msgstr "Categorie %s kan niet meer dan één keer gebruikt worden" #. Category names in host character set #: ../category.c:735 #, fuzzy msgid "Category" msgstr "Categorie:" #: ../category.c:836 msgid "New" msgstr "Nieuw" #: ../category.c:843 msgid "Rename" msgstr "Hernoemen" #: ../dat.c:456 msgid "unknown type =" msgstr "" #: ../dat.c:537 #, c-format msgid "fields per row count != %d, unknown format\n" msgstr "" #: ../dat.c:551 #, c-format msgid "field count != %d, unknown format\n" msgstr "" #: ../dat.c:559 msgid "Unknown format, file has wrong schema\n" msgstr "" #: ../dat.c:560 msgid "File schema is:" msgstr "" #: ../dat.c:564 msgid "It should be:" msgstr "" #: ../dat.c:674 ../dat.c:692 ../dat.c:876 ../dat.c:889 ../dat.c:1012 #: ../dat.c:1025 ../dat.c:1149 ../dat.c:1162 #, c-format msgid "%s:%d Record %d, field %d: Invalid type. Expected %d, found %d\n" msgstr "" #: ../dat.c:675 ../dat.c:693 ../dat.c:877 ../dat.c:890 ../dat.c:994 #: ../dat.c:1013 ../dat.c:1026 ../dat.c:1150 ../dat.c:1163 msgid "read of file terminated\n" msgstr "" #: ../datebook.c:705 ../datebook_gui.c:3648 #, c-format msgid "Unknown repeatType (%d) found in DatebookDB\n" msgstr "" #: ../datebook_gui.c:241 #, fuzzy msgid "Repeat Never" msgstr "Herhaal elke" #: ../datebook_gui.c:242 #, fuzzy msgid "Repeat Daily" msgstr "Herhaal op dagen:" #: ../datebook_gui.c:243 #, fuzzy msgid "Repeat Weekly" msgstr "Herhaal elke" #: ../datebook_gui.c:244 #, fuzzy msgid "Repeat MonthlyByDay" msgstr "Herhaal op dagen:" #: ../datebook_gui.c:245 #, fuzzy msgid "Repeat MonthlyByDate" msgstr "Herhaal op dagen:" #: ../datebook_gui.c:246 msgid "Repeat YearlyDate" msgstr "" #: ../datebook_gui.c:247 #, fuzzy msgid "Repeat YearlyDay" msgstr "Herhaal op dagen:" #: ../datebook_gui.c:250 ../datebook_gui.c:257 ../datebook_gui.c:4803 #: ../datebook_gui.c:4810 msgid "Su" msgstr "Zo" #: ../datebook_gui.c:251 ../datebook_gui.c:4804 msgid "Mo" msgstr "Ma" #: ../datebook_gui.c:252 ../datebook_gui.c:4805 msgid "Tu" msgstr "Di" #: ../datebook_gui.c:253 ../datebook_gui.c:4806 msgid "We" msgstr "Wo" #: ../datebook_gui.c:254 ../datebook_gui.c:4807 msgid "Th" msgstr "Do" #: ../datebook_gui.c:255 ../datebook_gui.c:4808 msgid "Fr" msgstr "Vr" #: ../datebook_gui.c:256 ../datebook_gui.c:4809 msgid "Sa" msgstr "Za" #: ../datebook_gui.c:269 #, c-format msgid "" "Start Date: %s\n" "Time: Event" msgstr "" #: ../datebook_gui.c:277 #, c-format msgid "" "Start Date: %s\n" "Time: %s to %s" msgstr "" #: ../datebook_gui.c:287 ../datebook_gui.c:297 msgid "Unknown" msgstr "" #. End Date #: ../datebook_gui.c:300 #, fuzzy msgid "End Date: " msgstr "Eindigt op datum " #: ../datebook_gui.c:302 msgid "Never" msgstr "" #: ../datebook_gui.c:308 #, c-format msgid "Repeat Frequency: %d\n" msgstr "" #: ../datebook_gui.c:316 #, c-format msgid "Monthly Repeat Day %d\n" msgstr "" #: ../datebook_gui.c:321 ../datebook_gui.c:5520 msgid "Repeat on Days:" msgstr "Herhaal op dagen:" #: ../datebook_gui.c:332 #, fuzzy, c-format msgid "Number of exceptions: %d" msgstr "aantal items = %d\n" #: ../datebook_gui.c:338 msgid "" "\n" "more..." msgstr "" #: ../datebook_gui.c:359 ../datebook_gui.c:386 msgid "Description:" msgstr "" #: ../datebook_gui.c:360 ../datebook_gui.c:387 #, fuzzy msgid "Note:" msgstr "Notitie" #: ../datebook_gui.c:362 ../datebook_gui.c:390 #, fuzzy msgid "Alarm:" msgstr "Alarm" #: ../datebook_gui.c:363 ../datebook_gui.c:391 #, fuzzy msgid "Repeat Type:" msgstr "Herhaal elke" #: ../datebook_gui.c:366 ../datebook_gui.c:394 #, fuzzy msgid "Start of Week:" msgstr "Dag van de week" #: ../datebook_gui.c:388 ../datebook_gui.c:5343 msgid "Location:" msgstr "" #: ../datebook_gui.c:620 ../datebook_gui.c:2271 #, fuzzy, c-format msgid "Appointment description text > %d, truncating to %d\n" msgstr "Waarschuwing: ToDo beschrijving te lang, inkorten naar %d\n" #: ../datebook_gui.c:631 ../datebook_gui.c:1148 ../datebook_gui.c:2331 #: ../datebook_gui.c:2338 msgid "Error" msgstr "Fout" #: ../datebook_gui.c:632 msgid "File doesn't appear to be datebook.dat format\n" msgstr "Bestand lijkt niet de 'datebook.dat'-indeling te hebben\n" #: ../datebook_gui.c:699 msgid "DAT/DBA (Palm Archive Formats)" msgstr "" #: ../datebook_gui.c:787 #, c-format msgid "" "Datebook exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:790 #, c-format msgid "" "Calendar exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:817 ../todo_gui.c:701 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ical file may not be standards-compliant\n" msgstr "" #: ../datebook_gui.c:1148 msgid "Unknown export type" msgstr "" #: ../datebook_gui.c:1228 ../todo_gui.c:872 #, fuzzy msgid "iCalendar" msgstr "Wissen" #: ../datebook_gui.c:1240 ../export_gui.c:251 ../jpilot.c:429 msgid "Export" msgstr "Exporteren..." #. Label for instructions #: ../datebook_gui.c:1257 msgid "Export All Datebook Records" msgstr "Exporteer alle agenda-items" #: ../datebook_gui.c:1276 ../export_gui.c:316 msgid "Save as" msgstr "Opslaan als..." #. Browse button #: ../datebook_gui.c:1286 ../export_gui.c:329 msgid "Browse" msgstr "Bladeren..." #: ../datebook_gui.c:1432 #, fuzzy msgid "Datebook Categories" msgstr "Bewerk categorien" #. None button #. Labels for notebook tabs #: ../datebook_gui.c:1484 ../datebook_gui.c:2026 ../datebook_gui.c:5449 msgid "None" msgstr "Geen" #: ../datebook_gui.c:1633 msgid "Begin On Date" msgstr "Begint op datum" #: ../datebook_gui.c:1639 msgid "End On Date" msgstr "Eindigt op datum " #: ../datebook_gui.c:1751 ../prefs.c:451 msgid "Sunday" msgstr "Zondag" #: ../datebook_gui.c:1752 ../prefs.c:452 msgid "Monday" msgstr "Maandag" #: ../datebook_gui.c:1753 msgid "Tuesday" msgstr "Dinsdag" #: ../datebook_gui.c:1754 msgid "Wednesday" msgstr "Woensdag" #: ../datebook_gui.c:1755 msgid "Thursday" msgstr "Donderdag" #: ../datebook_gui.c:1756 msgid "Friday" msgstr "Vrijdag" #: ../datebook_gui.c:1757 msgid "Saturday" msgstr "Zaterdag" #: ../datebook_gui.c:1760 msgid "4th" msgstr "4de" #: ../datebook_gui.c:1760 msgid "Last" msgstr "Vorige" #: ../datebook_gui.c:1763 #, c-format msgid "" "This appointment can either\n" "repeat on the 4th %s\n" "of the month, or on the last\n" "%s of the month.\n" "Which do you want?" msgstr "" #: ../datebook_gui.c:1770 ../datebook_gui.c:1786 msgid "Question?" msgstr "" #: ../datebook_gui.c:1777 #, fuzzy msgid "" "This is a repeating event.\n" "Do you want to apply these changes to\n" "only the CURRENT event,\n" "just FUTURE events, or\n" "ALL of the occurrences of this event?" msgstr "" "Dit item herhaalt zich.\n" "Wilt u deze veranderingen\n" "toepassen op het huidige\n" "item of op allemaal?" #: ../datebook_gui.c:1782 msgid "Current" msgstr "Huidige" #: ../datebook_gui.c:1782 msgid "Future" msgstr "" #: ../datebook_gui.c:2027 msgid "day" msgstr "dag" #: ../datebook_gui.c:2028 msgid "week" msgstr "week" #: ../datebook_gui.c:2029 msgid "month" msgstr "maand" #: ../datebook_gui.c:2030 msgid "year" msgstr "jaar" #: ../datebook_gui.c:2326 ../datebook_gui.c:2329 #, fuzzy, c-format msgid "You cannot have an appointment that repeats every %d %s(s)\n" msgstr "U kunt geen afspraak maken die zich elke %d %s(s) herhaalt\n" #: ../datebook_gui.c:2339 #, fuzzy msgid "" "You cannot have a weekly repeating appointment that doesn't repeat on any " "day of the week." msgstr "" "U kunt geen wekelijkse afspraak maken die zich op geen enkele dag van de " "week herhaalt." #. This is a timeless event #: ../datebook_gui.c:2516 ../datebook_gui.c:5264 msgid "No Time" msgstr "Geen tijd" #: ../datebook_gui.c:2788 ../memo_gui.c:1259 ../todo_gui.c:1728 msgid "External editor command too long to execute\n" msgstr "" #: ../datebook_gui.c:2943 msgid "Invalid Appointment" msgstr "Ongeldige afspraak" #: ../datebook_gui.c:2944 msgid "" "The End Date of this appointment\n" "is before the start date." msgstr "" "The einddatum van deze afspraak\n" "is voor de begindatum." #. "No Date" check box #: ../datebook_gui.c:3339 ../datebook_gui.c:5482 ../datebook_gui.c:5513 #: ../datebook_gui.c:5565 ../datebook_gui.c:5613 ../todo_gui.c:142 #: ../todo_gui.c:2454 msgid "No Date" msgstr "Geen datum" #: ../datebook_gui.c:3494 #, c-format msgid "Error in DateBookDB or Calendar advanceUnits = %d\n" msgstr "" #: ../datebook_gui.c:3681 #, c-format msgid "%%a., %s" msgstr "" #: ../datebook_gui.c:3686 msgid " (TODAY)" msgstr " (vandaag)" #. Weekview button #: ../datebook_gui.c:4934 ../datebook_gui.c:5451 msgid "Week" msgstr "Week" #: ../datebook_gui.c:4943 msgid "View appointments by week Ctrl+W" msgstr "" #. Monthview button #: ../datebook_gui.c:4946 ../datebook_gui.c:5452 msgid "Month" msgstr "Maand" #: ../datebook_gui.c:4955 msgid "View appointments by month Ctrl+M" msgstr "" #. Make Category button #: ../datebook_gui.c:4960 msgid "Cats" msgstr "Categorieën" #: ../datebook_gui.c:5024 msgid "Time" msgstr "Tijd" #. "Show ToDos" button #: ../datebook_gui.c:5067 msgid "Show ToDos" msgstr "" #: ../datebook_gui.c:5081 ../todo_gui.c:2285 msgid "Task" msgstr "Taak" #: ../datebook_gui.c:5082 ../todo_gui.c:2286 msgid "Due" msgstr "Datum" #: ../datebook_gui.c:5201 ../datebook_gui.c:5358 msgid "Alarm" msgstr "Alarm" #. Date Spinners #: ../datebook_gui.c:5241 ../Expense/expense.c:1736 msgid "Date:" msgstr "Datum:" #. Start date and time #: ../datebook_gui.c:5283 #, fuzzy msgid "Start" msgstr "Begint op" #. End date and time #: ../datebook_gui.c:5300 #, fuzzy msgid "End" msgstr "Eindigt op" #: ../datebook_gui.c:5433 msgid "DateBk Tags" msgstr "" #: ../datebook_gui.c:5450 msgid "Day" msgstr "Dag" #: ../datebook_gui.c:5453 msgid "Year" msgstr "Jaar" #. "No Repeat" page for notebook #: ../datebook_gui.c:5456 msgid "This event will not repeat" msgstr "Deze gebeurtenis herhaalt zich niet" #: ../datebook_gui.c:5465 ../datebook_gui.c:5498 ../datebook_gui.c:5550 #: ../datebook_gui.c:5596 msgid "Frequency is Every" msgstr "Frequentie is iedere" #: ../datebook_gui.c:5471 msgid "Day(s)" msgstr "dag(en)" #: ../datebook_gui.c:5474 ../datebook_gui.c:5507 ../datebook_gui.c:5559 #: ../datebook_gui.c:5605 msgid "End on" msgstr "Eindigt op" #: ../datebook_gui.c:5504 msgid "Week(s)" msgstr "week/weken" #: ../datebook_gui.c:5556 msgid "Month(s)" msgstr "maand(en)" #: ../datebook_gui.c:5573 msgid "Repeat by:" msgstr "Herhaal elke" #: ../datebook_gui.c:5577 msgid "Day of week" msgstr "Dag van de week" #: ../datebook_gui.c:5586 ../Expense/expense.c:1618 msgid "Date" msgstr "Datum" #: ../datebook_gui.c:5602 msgid "Year(s)" msgstr "jaar/jaren" #: ../dialer.c:195 msgid "Phone Dialer" msgstr "Telefoonkiezer" #: ../dialer.c:230 msgid "Prefix 1" msgstr "Voorvoegsel 1" #: ../dialer.c:252 msgid "Prefix 2" msgstr "Voorvoegsel 2" #: ../dialer.c:274 msgid "Prefix 3" msgstr "Voorvoegsel 3" #: ../dialer.c:289 msgid "Phone number:" msgstr "Telefoonnummer:" #: ../dialer.c:319 msgid "Extension" msgstr "Uitbreiding" #: ../dialer.c:341 msgid "Dial Command" msgstr "Kiescommando" #: ../export_gui.c:121 msgid "File Browser" msgstr "Bestandsbrowser" #. Label for instructions #: ../export_gui.c:273 msgid "Select records to be exported" msgstr "Selecteer de items die u wilt exporteren" #: ../export_gui.c:275 msgid "Use Ctrl and Shift Keys" msgstr "Gebruik Ctrl en Shift" #. Import button #: ../import_gui.c:300 ../import_gui.c:369 ../import_gui.c:426 #: ../import_gui.c:471 ../jpilot.c:385 msgid "Import" msgstr "Importeren..." #: ../import_gui.c:317 #, c-format msgid "Record was marked as private" msgstr "Item was als prive gemarkeerd" #: ../import_gui.c:319 #, c-format msgid "Record was not marked as private" msgstr "Item was niet als prive gemarkeerd" #: ../import_gui.c:328 #, c-format msgid "Category before import was: [%s]" msgstr "" #: ../import_gui.c:336 #, fuzzy, c-format msgid "Record will be put in category [%s]" msgstr "Alle items in deze categorie" #. Import All button #: ../import_gui.c:376 msgid "Import All" msgstr "Alles importeren" #. Skip button #: ../import_gui.c:383 msgid "Skip" msgstr "Overslaan" #: ../import_gui.c:457 ../install_gui.c:429 msgid "To change to a hidden directory type it below and hit TAB" msgstr "Om naar een verborgen map te gaan, type het hieronder en druk op TAB" #: ../import_gui.c:484 msgid "Import File Type" msgstr "Bestandstype importeren" #: ../install_gui.c:366 #, fuzzy msgid "Files to install" msgstr "Bestanden die geinstalleerd zullen worden" #: ../install_gui.c:374 msgid "Install" msgstr "Installeren" #: ../install_user.c:118 ../install_user.c:220 #, fuzzy msgid "Install User" msgstr "/Bestand/_Installeren" #: ../install_user.c:139 msgid "" "A PalmOS(c) device needs a user name and a user ID in order to sync properly." msgstr "" #: ../install_user.c:146 msgid "" "If you want to sync more than 1 PalmOS(c) device each one should have a " "different ID and preferably a different user name." msgstr "" #. Instruction label #: ../install_user.c:168 msgid "Most people choose their name or nickname for the user name." msgstr "" #: ../install_user.c:176 ../restore_gui.c:278 msgid "User Name" msgstr "Gebruikersnaam" #: ../install_user.c:186 msgid "The ID should be a random number." msgstr "" #: ../install_user.c:194 ../restore_gui.c:297 msgid "User ID" msgstr "Gebruikers ID" #: ../jpilot.c:319 msgid "Print" msgstr "Afdrukken" #: ../jpilot.c:320 msgid "There is no print support for this conduit." msgstr "Er is geen printondersteuning voor dit onderdeel." #: ../jpilot.c:386 msgid "There is no import support for this conduit." msgstr "Er is geen import-ondersteuning voor dit onderdeel." #: ../jpilot.c:430 msgid "There is no export support for this conduit." msgstr "Er is geen export-ondersteuning voor dit onderdeel." #: ../jpilot.c:659 #, fuzzy msgid " Cancelling HotSync\n" msgstr "synchroniseren annuleren" #. ------------------------------------------- #: ../jpilot.c:675 msgid "" "This handheld does not have the same user name or user ID\n" "as the one that was synced the last time.\n" "Syncing could have unwanted effects including data loss.\n" "\n" "Read the user manual if you are uncertain." msgstr "" #. ------------------------------------------- #: ../jpilot.c:682 msgid "" "This handheld has a NULL user ID.\n" "Every handheld must have a unique user ID in order to sync properly.\n" "If the handheld has been hard reset, \n" " use restore from the menu to restore it.\n" "Otherwise, to add a new user name and ID\n" " use install-user from the menu.\n" "\n" "Read the user manual if you are uncertain." msgstr "" #: ../jpilot.c:690 msgid "Cancel Sync" msgstr "synchroniseren annuleren" #: ../jpilot.c:690 msgid "Sync Anyway" msgstr "Synchroniseer toch" #: ../jpilot.c:699 ../jpilot.c:703 #, fuzzy msgid "Sync Problem" msgstr "Synchroniseer memoblok" #: ../jpilot.c:932 ../jpilot.c:1785 #, fuzzy msgid " User: " msgstr "Gebruikers ID" #: ../jpilot.c:944 msgid "Unknown command from sync process\n" msgstr "" #: ../jpilot.c:963 ../Expense/expense.c:529 ../KeyRing/keyring.c:1872 #: ../SyncTime/synctime.c:61 #, c-format msgid "About %s" msgstr "Info over %s" #: ../jpilot.c:1105 msgid "/_File" msgstr "/_Bestand" #: ../jpilot.c:1106 msgid "/File/tear" msgstr "/Bestand/tear" #: ../jpilot.c:1107 msgid "/File/_Find" msgstr "/Bestand/_Zoeken" #: ../jpilot.c:1108 ../jpilot.c:1114 ../jpilot.c:1117 msgid "/File/sep1" msgstr "/Bestand/sep1" #: ../jpilot.c:1109 msgid "/File/_Install" msgstr "/Bestand/_Installeren" #: ../jpilot.c:1110 msgid "/File/Import" msgstr "/Bestand/Importeren" #: ../jpilot.c:1111 msgid "/File/Export" msgstr "/Bestand/Exporteren" #: ../jpilot.c:1112 ../jpilot.c:2190 msgid "/File/Preferences" msgstr "/Bestand/Voorkeuren..." #: ../jpilot.c:1113 msgid "/File/_Print" msgstr "/Bestand/_Afdrukken" #: ../jpilot.c:1115 #, fuzzy msgid "/File/Install User" msgstr "/Bestand/_Installeren" #: ../jpilot.c:1116 msgid "/File/Restore Handheld" msgstr "/Bestand/Handheld herstellen" #: ../jpilot.c:1118 msgid "/File/_Quit" msgstr "/Bestand/Afsluiten" #: ../jpilot.c:1119 msgid "/_View" msgstr "/B_eeld" #: ../jpilot.c:1120 ../jpilot.c:1121 ../jpilot.c:1122 ../jpilot.c:1368 #, fuzzy msgid "/View/Hide Private Records" msgstr "/Beeld/Verberg-maak prive-items zichtbaar" #: ../jpilot.c:1121 ../jpilot.c:1371 #, fuzzy msgid "/View/Show Private Records" msgstr "/Beeld/Verberg-maak prive-items zichtbaar" #: ../jpilot.c:1122 ../jpilot.c:1374 #, fuzzy msgid "/View/Mask Private Records" msgstr "/Beeld/Verberg-maak prive-items zichtbaar" #: ../jpilot.c:1123 #, fuzzy msgid "/View/sep1" msgstr "/Bestand/sep1" #: ../jpilot.c:1124 msgid "/View/Datebook" msgstr "/Beeld/Agenda" #: ../jpilot.c:1125 msgid "/View/Addresses" msgstr "/Beeld/Adresboek" #: ../jpilot.c:1126 msgid "/View/Todos" msgstr "/Beeld/Takenlijst" #: ../jpilot.c:1127 msgid "/View/Memos" msgstr "/Beeld/Memo's" #: ../jpilot.c:1128 ../jpilot.c:1259 #, fuzzy msgid "/_Plugins" msgstr "/_Plugins" #: ../jpilot.c:1130 #, fuzzy msgid "/_Web" msgstr "/_Web" #. web #: ../jpilot.c:1131 msgid "/Web/Netscape" msgstr "/Web/Netscape" #: ../jpilot.c:1135 msgid "/Web/Mozilla" msgstr "/Web/Mozilla" #: ../jpilot.c:1140 msgid "/Web/Galeon" msgstr "/Web/Galeon" #: ../jpilot.c:1145 msgid "/Web/Opera" msgstr "/Web/Opera" #: ../jpilot.c:1149 msgid "/Web/GnomeUrl" msgstr "/Web/GnomeUrl" #: ../jpilot.c:1151 msgid "/Web/Lynx" msgstr "/Web/Lynx" #: ../jpilot.c:1153 msgid "/Web/Links" msgstr "/Web/Links" #: ../jpilot.c:1155 msgid "/Web/W3M" msgstr "/Web/W3M" #: ../jpilot.c:1157 msgid "/Web/Konqueror" msgstr "/Web/Konequeror" #: ../jpilot.c:1160 msgid "/_Help" msgstr "/_Hulp" #: ../jpilot.c:1161 msgid "/Help/About J-Pilot" msgstr "" #: ../jpilot.c:1227 #, fuzzy, c-format msgid "/_Plugins/%s" msgstr "/Plugins/%s" #: ../jpilot.c:1237 #, c-format msgid "/_Help/%s" msgstr "/_Help/%s" #: ../jpilot.c:1591 msgid "calendar:week_start:0" msgstr "" #: ../jpilot.c:1634 ../jpilot-sync.c:171 msgid "Not loading plugins.\n" msgstr "" #: ../jpilot.c:1638 msgid "Ignoring all alarms.\n" msgstr "" #: ../jpilot.c:1642 msgid "Ignoring past alarms.\n" msgstr "" #: ../jpilot.c:1730 ../jpilot.c:1738 #, fuzzy msgid "Unable to open pipe\n" msgstr "Kon %s niet openen\n" #: ../jpilot.c:1947 #, fuzzy msgid "Show private records Ctrl+Z" msgstr "Laat prive-items zien" #: ../jpilot.c:1952 #, fuzzy msgid "Hide private records Ctrl+Z" msgstr "Prive-items verbergen" #: ../jpilot.c:1957 #, fuzzy msgid "Mask private records Ctrl+Z" msgstr "Prive-items bedekken" #: ../jpilot.c:1969 #, fuzzy msgid "Sync your palm to the desktop Ctrl+Y" msgstr "Synchroniseer uw Palm met uw computer" #: ../jpilot.c:1981 #, fuzzy msgid "Stop Sync process" msgstr "Synchroniseer adresboek" #: ../jpilot.c:1993 msgid "" "Sync your palm to the desktop\n" "and then do a backup" msgstr "" "Synchroniseer uw Palm met uw computer\n" "en maak dan een backup" #: ../jpilot.c:2141 msgid "Datebook/Go to Today" msgstr "Agenda / Ga naar vandaag" #: ../jpilot.c:2142 msgid "Address Book" msgstr "Adresboek" #: ../jpilot.c:2143 msgid "ToDo List" msgstr "Takenlijst" #: ../jpilot.c:2144 msgid "Memo Pad" msgstr "Memoblok" #: ../jpilot.c:2172 msgid "Do it now" msgstr "" #: ../jpilot.c:2172 #, fuzzy msgid "Remind me later" msgstr "Herinner me" #: ../jpilot.c:2172 msgid "Don't tell me again!" msgstr "" #: ../jpilot.c:2185 #, c-format msgid "" "J-Pilot uses the GTK2 graphical toolkit. This version of the toolkit uses " "UTF-8 to encode characters.\n" "You should select a UTF-8 charset so that you can see non-ASCII characters " "(accents for example).\n" "\n" "Go to the menu \"%s\" and change the \"%s\"." msgstr "" #. Character Set #: ../jpilot.c:2190 ../prefs_gui.c:511 #, fuzzy msgid "Character Set" msgstr "Tekenset " #: ../jpilot.c:2192 msgid "Select a UTF-8 encoding" msgstr "" #: ../jpilot-dump.c:94 #, c-format msgid " +D +A +T +M format like date +format.\n" msgstr "" #: ../jpilot-dump.c:95 #, c-format msgid " -v display version and exit\n" msgstr "" #: ../jpilot-dump.c:96 ../jpilot-sync.c:68 ../utils.c:1874 #, c-format msgid " -h display help text\n" msgstr "" #: ../jpilot-dump.c:97 #, c-format msgid " -f display help for format codes\n" msgstr "" #: ../jpilot-dump.c:98 #, fuzzy, c-format msgid " -D dump DateBook\n" msgstr "Adresboek" #: ../jpilot-dump.c:99 #, fuzzy, c-format msgid " -i dump DateBook in iCalendar format\n" msgstr "Adresboek" #: ../jpilot-dump.c:100 #, fuzzy, c-format msgid " -N dump appts for today in DateBook\n" msgstr "Adresboek" #: ../jpilot-dump.c:101 #, c-format msgid " -NYYYY/MM/DD dump appts on YYYY/MM/DD in DateBook\n" msgstr "" #: ../jpilot-dump.c:102 #, fuzzy, c-format msgid " -A dump Address book\n" msgstr "Adresboek" #: ../jpilot-dump.c:103 #, c-format msgid " -T dump ToDo list as CSV\n" msgstr "" #: ../jpilot-dump.c:104 #, fuzzy, c-format msgid " -M dump Memos\n" msgstr "Adresboek" #: ../jpilot-dump.c:165 #, c-format msgid "" "Warning: Host character encoding is not UTF-8 based.\n" "Exported ical file may not be standards-compliant\n" msgstr "" #: ../jpilot-merge.c:163 ../jpilot-merge.c:169 #, fuzzy, c-format msgid "%s: Unable to open file:%s\n" msgstr "Kan bestand niet openen: %s\n" #: ../jpilot-merge.c:271 #, c-format msgid "Records read from pdb = %d\n" msgstr "" #: ../jpilot-merge.c:272 #, c-format msgid "Records added = %d\n" msgstr "" #: ../jpilot-merge.c:273 #, c-format msgid "Records deleted = %d\n" msgstr "" #: ../jpilot-merge.c:274 #, c-format msgid "Records modified = %d\n" msgstr "" #: ../jpilot-merge.c:275 #, c-format msgid "Records written = %d\n" msgstr "" #: ../jpilot-merge.c:293 #, c-format msgid "Usage: %s {input pdb file} {input pc3 file} {output pdb file}\n" msgstr "" #: ../jpilot-merge.c:294 #, c-format msgid " This program will merge an unsynced records file (pc3)\n" msgstr "" #: ../jpilot-merge.c:295 #, c-format msgid "" " into the corresponding palm database (pdb) file.\n" "\n" msgstr "" #: ../jpilot-merge.c:296 #, c-format msgid " WARNING: Only run this utility if you understand the consequences!\n" msgstr "" #: ../jpilot-merge.c:297 #, c-format msgid " The merge will leave your databases in an unsync-able state.\n" msgstr "" #: ../jpilot-merge.c:298 #, c-format msgid "" " It is intended for cases where J-pilot is being used as a standalone PIM\n" msgstr "" #: ../jpilot-merge.c:299 #, c-format msgid " and where no syncing occurs to physical hardware.\n" msgstr "" #: ../jpilot-merge.c:300 #, c-format msgid " WARNING: Make a backup copy of your databases before proceeding.\n" msgstr "" #: ../jpilot-merge.c:301 #, c-format msgid "" " It is quite simple to destroy your databases by accidentally merging\n" msgstr "" #: ../jpilot-merge.c:302 #, c-format msgid " address records into datebook databases, etc.\n" msgstr "" #: ../jpilot-sync.c:66 #, c-format msgid "" " J-Pilot preferences are read to get sync info such as port, rate, number of " "backups, etc.\n" msgstr "" #: ../jpilot-sync.c:67 ../utils.c:1873 #, c-format msgid " -v display version and compile options\n" msgstr "" #: ../jpilot-sync.c:69 ../utils.c:1875 #, c-format msgid " -d display debug info to stdout\n" msgstr "" #: ../jpilot-sync.c:70 #, c-format msgid " -P skip loading plugins\n" msgstr "" #: ../jpilot-sync.c:71 #, fuzzy, c-format msgid " -b sync, and then do a backup\n" msgstr "" "Synchroniseer uw Palm met uw computer\n" "en maak dan een backup" #: ../jpilot-sync.c:72 #, c-format msgid " -l loop, otherwise sync once and exit\n" msgstr "" #: ../jpilot-sync.c:73 #, c-format msgid " -p {port} use this port to sync on instead of default\n" msgstr "" #: ../jpilot-sync.c:221 #, fuzzy, c-format msgid "Error: connecting to port %s\n" msgstr "Fout bij openen bestand" #: ../jpilot-sync.c:225 #, c-format msgid "Error: pi_listen\n" msgstr "" #: ../jpilot-sync.c:229 #, fuzzy, c-format msgid "Error: opening conduit to handheld\n" msgstr "Fout bij openen bestand: next_id()\n" #: ../jpilot-sync.c:233 #, c-format msgid "Error: pi_accept\n" msgstr "" #: ../jpilot-sync.c:237 ../jpilot-sync.c:265 #, fuzzy, c-format msgid "Error: " msgstr "Fout" #: ../jpilot-sync.c:238 #, c-format msgid "This handheld does not have the same user name.\n" msgstr "" #: ../jpilot-sync.c:239 ../jpilot-sync.c:253 #, c-format msgid "as the one that was synced the last time.\n" msgstr "" #: ../jpilot-sync.c:241 #, c-format msgid "" "Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:243 ../jpilot-sync.c:256 #, c-format msgid " COPILOT_HOME" msgstr "" #: ../jpilot-sync.c:245 ../jpilot-sync.c:258 #, c-format msgid " JPILOT_HOME" msgstr "" #: ../jpilot-sync.c:247 ../jpilot-sync.c:260 #, c-format msgid " environment variable can be used to sync different handhelds,\n" msgstr "" #: ../jpilot-sync.c:248 ../jpilot-sync.c:261 #, c-format msgid " to different directories for the same UNIX user name.\n" msgstr "" #: ../jpilot-sync.c:252 #, c-format msgid "This handheld does not have the same user ID.\n" msgstr "" #: ../jpilot-sync.c:254 #, c-format msgid "" " Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:266 #, c-format msgid "This handheld has a NULL user ID.\n" msgstr "" #: ../jpilot-sync.c:267 #, c-format msgid "Every handheld must have a unique user ID in order to sync properly.\n" msgstr "" #: ../jpilot-sync.c:268 #, c-format msgid "If the handheld has been hard reset, \n" msgstr "" #: ../jpilot-sync.c:269 #, c-format msgid " use restore from within " msgstr "" #: ../jpilot-sync.c:270 #, c-format msgid "Otherwise, to add a new user name and ID\n" msgstr "" #: ../jpilot-sync.c:271 #, c-format msgid " use \"install-user %s name numeric_id\"\n" msgstr "" #: ../jpilot-sync.c:275 #, c-format msgid "Error: sync returned error %d\n" msgstr "" #: ../libplugin.c:64 ../utils.c:1054 msgid "" "This record is already deleted.\n" "It is scheduled to be deleted from the Palm on the next sync.\n" msgstr "" #: ../libplugin.c:73 ../libplugin.c:110 ../utils.c:1064 ../utils.c:1106 #, fuzzy msgid "Unable to open PC records file\n" msgstr "Kon %s niet openen\n" #: ../libplugin.c:79 ../utils.c:1071 #, fuzzy msgid "Couldn't find record to delete\n" msgstr "Kon categorie %s niet vanaf hier toevoegen\n" #: ../libplugin.c:97 ../utils.c:1091 #, c-format msgid "Unknown header version %d\n" msgstr "" #: ../libplugin.c:182 #, fuzzy, c-format msgid "%s:%d Error opening file: %s\n" msgstr "%s:%d Fout bij lezen van %s\n" #: ../libplugin.c:188 ../libplugin.c:217 ../sync.c:1721 ../todo.c:102 #, fuzzy, c-format msgid "%s:%d Error reading file: %s\n" msgstr "%s:%d Fout bij lezen van %s\n" #: ../libplugin.c:340 ../libplugin.c:398 ../utils.c:2119 ../utils.c:2132 #, fuzzy, c-format msgid "Error opening file: %s\n" msgstr "Fout bij openen bestand" #: ../libplugin.c:526 #, fuzzy, c-format msgid "Error reading %s 5\n" msgstr "Fout bij lezen van %s\n" #: ../libplugin.c:801 #, fuzzy msgid "Error reading PC file 1\n" msgstr "Fout bij lezen van %s\n" #: ../libplugin.c:817 #, fuzzy msgid "Error reading PC file 2\n" msgstr "Fout bij lezen van %s\n" #: ../libplugin.c:923 #, c-format msgid "Unknown PC header version = %d\n" msgstr "" #: ../log.c:101 #, fuzzy, c-format msgid "Unable to open log file, giving up.\n" msgstr "Kan logbestand niet openen, ik geef op.\n" #: ../log.c:111 #, c-format msgid "Unable to open log file\n" msgstr "Kan logbestand niet openen\n" #: ../memo_gui.c:302 msgid "Memo text > 65535, truncating\n" msgstr "" #: ../memo_gui.c:330 #, c-format msgid "Imported Memo %s\n" msgstr "" #: ../memo_gui.c:400 msgid "File doesn't appear to be memopad.dat format\n" msgstr "Bestand lijkt niet de 'memopad.dat'-indeling te hebben\n" #: ../memo_gui.c:471 msgid "DAT/MPA (Palm Archive Formats)" msgstr "" #: ../memo_gui.c:554 #, c-format msgid "" "Memo exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:557 #, c-format msgid "" "Memos exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:584 #, c-format msgid "Can't export memo %d\n" msgstr "Kan memo %d niet exporteren\n" #: ../memo_gui.c:628 #, fuzzy, c-format msgid "Memo: %ld\n" msgstr "Memoblok" #: ../memo_gui.c:634 #, c-format msgid "----- Start of Memo -----\n" msgstr "" #: ../memo_gui.c:636 #, c-format msgid "" "\n" "----- End of Memo -----\n" "\n" msgstr "" #: ../memo_gui.c:668 msgid "B-Folders CSV" msgstr "" #: ../monthview_gui.c:438 msgid "Monthly View" msgstr "Maandoverzicht" #: ../monthview_gui.c:480 msgid "Last month Alt+LeftArrow" msgstr "" #: ../monthview_gui.c:508 msgid "Next month Alt+RightArrow" msgstr "" #: ../otherconv.c:76 #, c-format msgid "%s: error exit from g_iconv_close(%s)\n" msgstr "" #: ../otherconv.c:201 #, c-format msgid "%s:%s g_convert_with_iconv error: %s, buff: %s\n" msgstr "" #: ../otherconv.c:203 #, fuzzy msgid "last char truncated" msgstr "laatst gewijzigd: " #: ../otherconv.c:280 #, c-format msgid "UTF_to_other: %s\n" msgstr "" #: ../otherconv.c:294 #, c-format msgid "iconv: unconvertible sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:298 #, c-format msgid "iconv: incomplete UTF-8 sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:301 #, c-format msgid "iconv: buffer filled. stopped at place %d in '%s'\n" msgstr "" #: ../otherconv.c:304 #, c-format msgid "iconv: unexpected error at place %d in '%s'\n" msgstr "" #: ../password.c:283 msgid "Palm Password" msgstr "Palm-wachtwoord" #: ../password.c:308 msgid "Incorrect, Reenter PalmOS Password" msgstr "Incorrect, geef PalmOS-wachtwoord opnieuw" #: ../password.c:310 msgid "Enter PalmOS Password" msgstr "Geef PalmOS-wachtwoord" #: ../pidfile.c:67 msgid "removing stale pidfile\n" msgstr "" #: ../pidfile.c:91 #, fuzzy, c-format msgid "create pidfile failed: %s\n" msgstr "Fout bij lezen van bestand: %s\n" #: ../pidfile.c:92 msgid "Warning: hotplug syncing disabled.\n" msgstr "" #: ../plugins.c:90 ../plugins.c:203 ../restore_gui.c:133 msgid "infinite loop" msgstr "" #: ../plugins.c:216 #, c-format msgid "While reading %s%s line 1:[%s]\n" msgstr "" #: ../plugins.c:217 msgid "Wrong Version\n" msgstr "" #: ../plugins.c:218 msgid "Check preferences->conduits\n" msgstr "" #: ../plugins.c:274 #, c-format msgid "" "Open failed on plugin [%s]\n" " error [%s]\n" msgstr "" #: ../plugins.c:291 ../plugins.c:316 #, c-format msgid " plugin is invalid: [%s]\n" msgstr "" #: ../plugins.c:299 #, c-format msgid "Plugin:[%s]\n" msgstr "Plugin:[%s]\n" #: ../plugins.c:300 #, c-format msgid "This plugin is version (%d.%d).\n" msgstr "" #: ../plugins.c:302 msgid "It is too old to work with this version of J-Pilot.\n" msgstr "" #: ../prefs.c:420 msgid "%B %d, %Y" msgstr "" #: ../prefs.c:421 msgid "%d %B %Y" msgstr "" #: ../prefs.c:422 msgid "%d. %B %Y" msgstr "" #: ../prefs.c:423 msgid "%d %B, %Y" msgstr "" #: ../prefs.c:424 msgid "%Y. %B. %d" msgstr "" #: ../prefs.c:425 msgid "%Y %B %d" msgstr "" #: ../prefs_gui.c:454 msgid "Preferences" msgstr "Voorkeuren" #: ../prefs_gui.c:485 msgid "Locale" msgstr "Taalregio" #: ../prefs_gui.c:487 msgid "Settings" msgstr "Instellingen" #: ../prefs_gui.c:489 msgid "Datebook" msgstr "Agenda" #: ../prefs_gui.c:493 msgid "ToDo" msgstr "Takenlijst" #: ../prefs_gui.c:495 #, fuzzy msgid "Memo" msgstr "Memo" #: ../prefs_gui.c:497 msgid "Alarms" msgstr "Herinneringen" #: ../prefs_gui.c:499 msgid "Conduits" msgstr "Onderdelen" #. Shortdate #: ../prefs_gui.c:524 #, fuzzy msgid "Short date format" msgstr "Korte datumopmaak " #. Longdate #: ../prefs_gui.c:537 #, fuzzy msgid "Long date format" msgstr "Lange datumopmaak " #. Time #: ../prefs_gui.c:550 #, fuzzy msgid "Time format" msgstr "Tijdopmaak " #. GTK colors file #: ../prefs_gui.c:570 #, fuzzy msgid "GTK color theme file" msgstr "Mijn GTK-kleurenbestand is " #. Port #: ../prefs_gui.c:583 #, fuzzy msgid "Sync Port" msgstr "Synchroniseer memoblok" #. Serial Rate #: ../prefs_gui.c:607 msgid "Serial Rate" msgstr "" #. Number of backups #: ../prefs_gui.c:627 msgid "Number of backups to be archived" msgstr "Aantal te archiveren backups" #. Show deleted files check box #: ../prefs_gui.c:645 msgid "Show deleted records (default NO)" msgstr "Verwijderde items tonen (Standaard: Nee)" #. Show modified files check box #: ../prefs_gui.c:649 msgid "Show modified deleted records (default NO)" msgstr "Gewijzigde verwijderde items tonen (standaard: Nee)" #: ../prefs_gui.c:654 msgid "Ask confirmation for file installation (J-Pilot -> PDA) (default YES)" msgstr "" #. Show tooltips check box #: ../prefs_gui.c:658 msgid "Show popup tooltips (default YES) (requires restart)" msgstr "" #: ../prefs_gui.c:668 msgid "Use Datebook database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:671 msgid "Use Calendar database (Palm OS > 5.2)" msgstr "" #. Show highlight days check box #: ../prefs_gui.c:697 msgid "Highlight calendar days with appointments" msgstr "Laat afspraken zien op kalender" #. Highlight today on month and week view #: ../prefs_gui.c:702 msgid "Annotate today in day, week, and month views" msgstr "" #. Show number of years on anniversaries in month and week view #: ../prefs_gui.c:706 msgid "Append years on anniversaries in day, week, and month views" msgstr "" #. Show use DateBk check box #: ../prefs_gui.c:712 #, fuzzy msgid "Use DateBk note tags" msgstr "Gebruik DateBk notitie-opties" #: ../prefs_gui.c:715 #, fuzzy msgid "DateBk support disabled in this build" msgstr "Geen DateBk ondersteuning in deze build" #: ../prefs_gui.c:727 msgid "Use Address database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:730 msgid "Use Contacts database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:759 msgid "Mail Command" msgstr "Mailcommando" #: ../prefs_gui.c:773 #, c-format msgid "%s is replaced by the e-mail address" msgstr "%s wordt vervangen door het e-mailadres" #: ../prefs_gui.c:785 #, fuzzy msgid "Use ToDo database (Palm OS < 5.2.1)" msgstr "Gebruik Memo32 (pedit32)" #: ../prefs_gui.c:788 #, fuzzy msgid "Use Task database (Palm OS > 5.2)" msgstr "Gebruik Memo32 (pedit32)" #. hide completed check box #: ../prefs_gui.c:815 msgid "Hide Completed ToDos" msgstr "Verberg voltooide taken" #. hide todos not yet due check box #: ../prefs_gui.c:819 msgid "Hide ToDos not yet due" msgstr "" #. record todo completion date check box #: ../prefs_gui.c:823 msgid "Record Completion Date" msgstr "" #. Use Manana check box #: ../prefs_gui.c:828 msgid "Use Manana database" msgstr "Gebruik Manana database" #: ../prefs_gui.c:836 msgid "Use default number of days due" msgstr "" #: ../prefs_gui.c:858 #, fuzzy msgid "Use Memo database (Palm OS < 5.2.1)" msgstr "Gebruik Memo32 (pedit32)" #: ../prefs_gui.c:861 #, fuzzy msgid "Use Memos database (Palm OS > 5.2)" msgstr "Gebruik Memo32 (pedit32)" #: ../prefs_gui.c:864 #, fuzzy msgid "Use Memo32 database (pedit32)" msgstr "Gebruik Memo32 (pedit32)" #: ../prefs_gui.c:904 msgid "External Editor" msgstr "" #: ../prefs_gui.c:917 msgid "Use Ctrl-E inside a memo to launch external editor for memo text" msgstr "" #. ******************************************************************** #. Alarms preference tab #. Open alarm windows check box #: ../prefs_gui.c:925 msgid "Open alarm windows for appointment reminders" msgstr "Open vensters voor afspraakherinneringen" #. Execute alarm command check box #: ../prefs_gui.c:929 msgid "Execute this command" msgstr "Voer dit commando uit" #. Shell warning label #: ../prefs_gui.c:933 msgid "WARNING: executing arbitrary shell commands can be dangerous!!!" msgstr "" "WAARSCHUWING: willekeurige shell-commando's invoeren kunnen gevaarlijk " "zijn!!!" #: ../prefs_gui.c:941 msgid "Alarm Command" msgstr "Alarm commando" #: ../prefs_gui.c:954 msgid "%t is replaced with the alarm time" msgstr "%t wordt vervangen door de alarmtijd" #: ../prefs_gui.c:958 #, c-format msgid "%d is replaced with the alarm date" msgstr "%d wordt vervangen door de alarmdatum" #: ../prefs_gui.c:963 msgid "%D is replaced with the alarm description" msgstr "%D wordt vervangen door de alarmbeschrijving" #: ../prefs_gui.c:967 msgid "%N is replaced with the alarm note" msgstr "%N wordt vervangen door de alarmnotitie" #: ../prefs_gui.c:971 msgid "%D (description substitution) is disabled in this build" msgstr "%D (vervangende omschrijving) is uitgeschakeld in deze build" #: ../prefs_gui.c:976 msgid "%N (note substitution) is disabled in this build" msgstr "%N (vervangende notitie) is uitgeschakeld in deze build" #. ******************************************************************** #. Conduits preference tab #. Sync datebook check box #: ../prefs_gui.c:986 msgid "Sync datebook" msgstr "Synchroniseer agenda" #. Sync address check box #: ../prefs_gui.c:990 msgid "Sync address" msgstr "Synchroniseer adresboek" #. Sync todo check box #: ../prefs_gui.c:994 msgid "Sync todo" msgstr "Synchroniseer takenlijst" #. Sync memo check box #: ../prefs_gui.c:998 msgid "Sync memo" msgstr "Synchroniseer memoblok" #. Show sync Manana check box #: ../prefs_gui.c:1003 msgid "Sync Manana" msgstr "Synchroniseer Manana" #. Show use Japanese Kana extention check box #: ../prefs_gui.c:1009 msgid "Use J-OS (Not Japanese PalmOS:WorkPad/CLIE)" msgstr "Gebruik J-OS (Niet-Japanse PalmOS: Workpad/CLIE)" #. Make a Sync checkbox for each plugin #: ../prefs_gui.c:1022 #, fuzzy, c-format msgid "Sync %s (%s)" msgstr "Synchronisatie van %s\n" #: ../print_gui.c:185 msgid "Print Options" msgstr "Afdrukopties" #: ../print_gui.c:198 msgid "Paper Size" msgstr "Paperformaat" #: ../print_gui.c:214 msgid "Daily Printout" msgstr "Dagprint" #: ../print_gui.c:220 msgid "Weekly Printout" msgstr "Weekprint" #: ../print_gui.c:226 msgid "Monthly Printout" msgstr "Maandprint" #: ../print_gui.c:266 #, fuzzy msgid "Selected record" msgstr "%s item verwijderd." #: ../print_gui.c:270 msgid "All records in this category" msgstr "Alle items in deze categorie" #: ../print_gui.c:274 msgid "Print all records" msgstr "Print alle items" #: ../print_gui.c:296 msgid "One record per page" msgstr "Een item per pagina" #: ../print_gui.c:312 #, fuzzy msgid "Blank lines between each record" msgstr "Lege lijnen tussen ieder item" #. Print Command #: ../print_gui.c:321 msgid "Print Command (e.g. lpr, or cat > file.ps)" msgstr "Print commando (bijv. lpr of cat > file.ps)" #: ../restore_gui.c:71 ../restore_gui.c:229 msgid "Restore Handheld" msgstr "Handheld herstellen" #: ../restore_gui.c:176 ../restore_gui.c:178 msgid "Unable to convert filename for GTK display\n" msgstr "" #: ../restore_gui.c:177 msgid "See console log to find which file will not be restored\n" msgstr "" #: ../restore_gui.c:179 #, fuzzy, c-format msgid "File %s will not be restored\n" msgstr "Bestanden die geinstalleerd zullen worden" #. Label for instructions #: ../restore_gui.c:246 msgid "To restore your handheld:" msgstr "Om uw handheld te herstellen:" #: ../restore_gui.c:249 #, fuzzy msgid "1. Choose the applications you wish to restore. The default is all." msgstr "1. Kies alle applicaties die u wilt terugplaatsen. Standaard: Alles." #: ../restore_gui.c:252 msgid "2. Enter the User Name and User ID." msgstr "2. Voer de gebruikersnaam en de gebruikers-ID in." #: ../restore_gui.c:255 msgid "3. Press the OK button." msgstr "3. Druk op OK." #: ../restore_gui.c:258 msgid "This will overwrite data that is currently on the handheld." msgstr "Dit zal alle data op de handheld overschrijven." #: ../search_gui.c:144 msgid "datebook" msgstr "Agenda" #: ../search_gui.c:146 #, fuzzy msgid "calendar" msgstr "Wissen" #: ../search_gui.c:233 msgid "address" msgstr "Adresboek" #: ../search_gui.c:235 msgid "contact" msgstr "" #: ../search_gui.c:304 msgid "todo" msgstr "" #: ../search_gui.c:361 msgid "memo" msgstr "Memo" #: ../search_gui.c:363 #, fuzzy msgid "memos" msgstr "Memo" #: ../search_gui.c:421 msgid "plugin ?" msgstr "Plugin ?" #: ../search_gui.c:501 msgid "No records found" msgstr "Geen items gevonden" #: ../search_gui.c:600 msgid "Search" msgstr "Zoeken" #. Search label #: ../search_gui.c:617 msgid "Search for: " msgstr "Zoeken naar: " #. Case Sensitive checkbox #: ../search_gui.c:626 msgid "Case Sensitive" msgstr "Hoofdlettergevoelig" #: ../sync.c:120 msgid "open lock file failed\n" msgstr "openen van vergrendelingsbestand is mislukt\n" #: ../sync.c:133 msgid "lock failed\n" msgstr "vergrendelen is mislukt\n" #: ../sync.c:136 #, c-format msgid "sync file is locked by pid %d\n" msgstr "synchronisatiebestand is vergrendeld door PID %d\n" #: ../sync.c:171 msgid "unlock failed\n" msgstr "ontgrendelen is mislukt\n" #: ../sync.c:174 #, c-format msgid "sync is locked by pid %d\n" msgstr "" #: ../sync.c:410 #, fuzzy msgid "Check your sync port and settings\n" msgstr "Kijk uw seriele poort en instellingen na\n" #: ../sync.c:669 msgid "Unable to read home dir\n" msgstr "Kan persoonlijke map niet lezen\n" #: ../sync.c:1075 ../sync.c:1413 #, c-format msgid "%s (Creator ID '%s') is up to date, fetch skipped.\n" msgstr "" "%s (Creator ID '%s') is up to date, het ophalen daarvan wordt overgeslagen.\n" #: ../sync.c:1079 ../sync.c:1417 #, c-format msgid "Fetching '%s' (Creator ID '%s')... " msgstr "Ophalen van '%s' (Creator ID '%s')..." #: ../sync.c:1086 ../sync.c:1423 #, c-format msgid "Failed, unable to create file %s\n" msgstr "Mislukt, het was onmogelijk om het bestand %s aan te maken\n" #: ../sync.c:1090 ../sync.c:1428 #, fuzzy, c-format msgid "Failed, unable to back up database %s\n" msgstr "Mislukt, het was onmogelijk om de database te backuppen\n" #: ../sync.c:1094 ../sync.c:1432 ../sync.c:1619 msgid "OK\n" msgstr "OK\n" #: ../sync.c:1294 #, c-format msgid "Skipping %s (Creator ID '%s')\n" msgstr "%s overgeslagen (Creator ID '%s')\n" #: ../sync.c:1488 #, c-format msgid "Installing %s " msgstr "Installeren van %s" #: ../sync.c:1494 ../sync.c:1530 #, fuzzy, c-format msgid "" "\n" "Unable to open file: '%s': %s!\n" msgstr "" "\n" "Kon '%s' niet openen!\n" #: ../sync.c:1498 #, fuzzy, c-format msgid "" "\n" "Unable to sync file: '%s': file corrupted?\n" msgstr "" "\n" "Kon '%s' niet openen!\n" #: ../sync.c:1514 #, fuzzy, c-format msgid "(Creator ID '%s')... " msgstr "(Creator-ID is '%s')..." #: ../sync.c:1518 #, fuzzy, c-format msgid "(Creator ID '%s') " msgstr "(Creator-ID is '%s')..." #: ../sync.c:1520 #, fuzzy, c-format msgid "(SDcard dir %s)... " msgstr "(Creator-ID is '%s')..." #: ../sync.c:1552 ../sync.c:1565 ../sync.c:1580 ../sync.c:1593 #, c-format msgid "" "\n" "Unable to open file: %s\n" msgstr "" "\n" "Kan bestand niet openen: %s\n" #: ../sync.c:1605 #, c-format msgid "Install %s failed" msgstr "Installeren van %s is mislukt" #: ../sync.c:1609 msgid "Failed.\n" msgstr "Mislukt.\n" #: ../sync.c:1615 #, fuzzy, c-format msgid "Installed %s" msgstr "%s is geïnstalleerd " #: ../sync.c:1726 #, c-format msgid "%s:%d Error getting app info %s\n" msgstr "%s:%d Fout bij het ophalen van programma-info %s\n" #: ../sync.c:1732 ../sync.c:1762 #, c-format msgid "%s:%d Error unpacking app info %s\n" msgstr "%s:%d Fout bij uitpakken van programma-info %s\n" #: ../sync.c:1753 #, c-format msgid "Error reading appinfo block for %s\n" msgstr "Fout bij lezen van programma-info, blok voor %s\n" #. Fix - need a func for this logging #: ../sync.c:1991 ../sync.c:1995 #, c-format msgid "Could not add category %s to remote.\n" msgstr "Kon categorie %s niet vanaf hier toevoegen\n" #: ../sync.c:1992 ../sync.c:1998 #, c-format msgid "Too many categories on remote.\n" msgstr "Te veel categorien op andere kant.\n" #: ../sync.c:1993 ../sync.c:2001 #, c-format msgid "All records on desktop in %s will be moved to %s.\n" msgstr "Alle items op de pc in %s worden verplaatst naar %s.\n" #: ../sync.c:2096 ../sync.c:2814 #, c-format msgid "Syncing %s\n" msgstr "Synchronisatie van %s\n" #: ../sync.c:2104 ../sync.c:2457 ../sync.c:2822 #, c-format msgid "Wrote an %s record." msgstr "Een %s item is geschreven." #: ../sync.c:2106 ../sync.c:2459 ../sync.c:2824 #, c-format msgid "Writing an %s record failed." msgstr "Het schrijven van een %s item is mislukt." #: ../sync.c:2108 ../sync.c:2461 ../sync.c:2826 #, c-format msgid "Deleting an %s record failed." msgstr "Het verwijderen van een %s item is mislukt." #: ../sync.c:2110 ../sync.c:2463 ../sync.c:2828 #, c-format msgid "Deleted an %s record." msgstr "%s item verwijderd." #: ../sync.c:2112 ../sync.c:2465 #, fuzzy, c-format msgid "Sync Conflict: duplicated an %s record." msgstr "%s item verwijderd." #: ../sync.c:2115 ../sync.c:2468 ../sync.c:2831 #, c-format msgid "Wrote a %s record." msgstr "%s geschreven." #: ../sync.c:2117 ../sync.c:2470 ../sync.c:2833 #, c-format msgid "Writing a %s record failed." msgstr "Het schrijven van een %s item is mislukt." #: ../sync.c:2119 ../sync.c:2472 ../sync.c:2835 #, c-format msgid "Deleting a %s record failed." msgstr "Het verwijderen van een %s item is mislukt." #: ../sync.c:2121 ../sync.c:2474 ../sync.c:2837 #, c-format msgid "Deleted a %s record." msgstr "%s item verwijderd." #: ../sync.c:2123 ../sync.c:2476 #, c-format msgid "Sync Conflict: duplicated a %s record." msgstr "" #: ../sync.c:2227 ../sync.c:2557 #, c-format msgid "Sync Conflict: a %s record must be manually merged\n" msgstr "" #: ../sync.c:2358 ../sync.c:2698 msgid "" "dlp_DeleteRecord failed\n" "This could be because the record was already deleted on the Palm\n" msgstr "" "dlp_DeleteRecord mislukt\n" "Dit zou veroorzaakt kunnen zijn omdat het item al verwijderd was op de Palm\n" #: ../sync.c:2927 msgid "Finished installing user information.\n" msgstr "" #: ../sync.c:3084 #, c-format msgid " Syncing on device %s\n" msgstr "Synchronisatie van apparaat aan %s\n" #: ../sync.c:3085 msgid " Press the HotSync button now\n" msgstr "Druk nu op de HotSync knop\n" #: ../sync.c:3127 ../sync.c:3149 ../sync.c:3170 #, c-format msgid "Last Synced Username-->\"%s\"\n" msgstr "Laatst gesynchroniseerde gebruikersnaam-->\"%s\"\n" #: ../sync.c:3128 ../sync.c:3150 ../sync.c:3171 #, c-format msgid "Last Synced UserID-->\"%d\"\n" msgstr "Laatst gesynchroniseerde gebruikers ID-->\"%d\"\n" #: ../sync.c:3129 ../sync.c:3151 ../sync.c:3172 #, c-format msgid " This Username-->\"%s\"\n" msgstr "Deze gebruikersnaam-->\"%s\"\n" #: ../sync.c:3130 ../sync.c:3152 ../sync.c:3173 #, c-format msgid " This User ID-->%d\n" msgstr "Deze UserID-->%d\n" #: ../sync.c:3194 #, c-format msgid "Username is \"%s\"\n" msgstr "Gebruikersnaam is \"%s\"\n" #: ../sync.c:3195 #, c-format msgid "User ID is %d\n" msgstr "Gebruikers ID is %d\n" #: ../sync.c:3197 #, c-format msgid "lastSyncPC = %d\n" msgstr "lastSyncPC = %d\n" #: ../sync.c:3198 #, c-format msgid "This PC = %lu\n" msgstr "Deze PC = %lu\n" #: ../sync.c:3222 msgid "Sync canceled\n" msgstr "Synchronisatie geannuleerd\n" #: ../sync.c:3245 msgid "Finished restoring handheld.\n" msgstr "Klaar met herstelling handheld.\n" #: ../sync.c:3246 msgid "You may need to sync to update J-Pilot.\n" msgstr "U dient misschien te synchroniseren om J-Pilot te updaten.\n" #: ../sync.c:3268 msgid "Doing a fast sync.\n" msgstr "Snel synchroniseren.\n" #: ../sync.c:3281 msgid "Doing a slow sync.\n" msgstr "Langzaam synchroniseren.\n" #: ../sync.c:3356 msgid "Thank you for using J-Pilot." msgstr "Bedankt voor het gebruiken van J-Pilot" #: ../sync.c:3401 ../sync.c:3469 msgid "Finished.\n" msgstr "Klaar.\n" #: ../sync.c:3436 #, c-format msgid "%s: sync process already in progress (process ID = %d)\n" msgstr "" #: ../sync.c:3437 #, fuzzy, c-format msgid "" "%s: press the HotSync button on the cradle\n" " or stop the sync by using the cancel sync button\n" " or stop the sync by typing \"kill %d\" at the command line\n" msgstr "Druk nu op de HotSync knop\n" #: ../sync.c:3468 #, c-format msgid "Exiting with status %s\n" msgstr "Verlaten met status %s\n" #: ../todo.c:266 #, fuzzy, c-format msgid "ToDo description text > %d, truncating to %d\n" msgstr "Waarschuwing: ToDo beschrijving te lang, inkorten naar %d\n" #: ../todo.c:272 #, fuzzy, c-format msgid "ToDo note text > %d, truncating to %d\n" msgstr "Waarschuwing: ToDo notitie te lang, inkorten naar %d\n" #: ../todo_gui.c:161 msgid "Due Date" msgstr "Einddatum" #: ../todo_gui.c:532 msgid "File doesn't appear to be todo.dat format\n" msgstr "Bestand lijkt niet de 'todo.dat'-indeling te hebben\n" #: ../todo_gui.c:596 msgid "DAT/TDA (Palm Archive Formats)" msgstr "" #: ../todo_gui.c:688 #, c-format msgid "" "ToDo exported from %s %s on %s\n" "\n" msgstr "" #: ../todo_gui.c:726 #, c-format msgid "Can't export todo %d\n" msgstr "" #: ../todo_gui.c:766 #, fuzzy, c-format msgid "Due Date: None\n" msgstr "Einddatum" #: ../todo_gui.c:769 #, fuzzy, c-format msgid "Due Date: %s\n" msgstr "Einddatum" #: ../todo_gui.c:771 #, fuzzy, c-format msgid "Priority: %d\n" msgstr "Prioriteit" #: ../todo_gui.c:772 #, fuzzy, c-format msgid "Completed: %s\n" msgstr "Voltooid" #: ../todo_gui.c:774 #, c-format msgid "Description: %s\n" msgstr "" #: ../todo_gui.c:777 #, c-format msgid "" "Note: %s\n" "\n" msgstr "" #: ../todo_gui.c:1610 msgid "Priority out of range\n" msgstr "" #: ../todo_gui.c:1932 ../KeyRing/keyring.c:1310 #, c-format msgid "No date" msgstr "Geen datum" #. Completed checkbox #: ../todo_gui.c:2414 msgid "Completed" msgstr "Voltooid" #: ../todo_gui.c:2421 #, fuzzy msgid "Priority:" msgstr "Prioriteit" #: ../todo_gui.c:2423 msgid "Set priority Alt+#" msgstr "" #: ../todo_gui.c:2444 msgid "Date Due:" msgstr "Einddatum" #: ../utils.c:332 msgid "Today" msgstr "Vandaag" #: ../utils.c:577 #, fuzzy, c-format msgid "Couldn't find empty DB file %s: %s\n" msgstr "Kon geen leeg DB bestand vinden.\n" #: ../utils.c:580 msgid " may not be installed.\n" msgstr " mag niet geïnstalleerd zijn\n" #. Can't create directory #: ../utils.c:615 ../utils.c:619 #, c-format msgid "Can't create directory %s\n" msgstr "Kan map %s niet aanmaken\n" #: ../utils.c:625 #, fuzzy, c-format msgid "%s is not a directory\n" msgstr "%s is een map" #: ../utils.c:630 #, fuzzy, c-format msgid "Unable to get write permission for directory %s\n" msgstr "Kan geen bestanden in map %s schrijven\n" #: ../utils.c:1330 ../utils.c:1354 msgid "Save Changed Record?" msgstr "Gewijzigd item bewaren?" #: ../utils.c:1331 ../utils.c:1355 msgid "Do you want to save the changes to this record?" msgstr "Wilt u de wijzigingen voor dit item bewaren?" #: ../utils.c:1336 ../utils.c:1360 msgid "Save New Record?" msgstr "Nieuw item opslaan?" #: ../utils.c:1337 ../utils.c:1361 msgid "Do you want to save this new record?" msgstr "Wilt u dit nieuwe item opslaan?" #: ../utils.c:1652 msgid "infinite loop, breaking\n" msgstr "" #: ../utils.c:1876 #, c-format msgid " -p skip loading plugins\n" msgstr "" #: ../utils.c:1877 #, c-format msgid " -a ignore missed alarms since the last time program was run\n" msgstr "" #: ../utils.c:1878 #, c-format msgid " -A ignore all alarms past and future\n" msgstr "" #: ../utils.c:1879 #, c-format msgid " -s start sync using existing instance of GUI\n" msgstr "" #: ../utils.c:1880 #, c-format msgid " -i iconify program immediately after launch\n" msgstr "" #: ../utils.c:1881 #, c-format msgid "" " -geometry {X geometry} use specified geometry for main window\n" "\n" msgstr "" #: ../utils.c:1882 #, c-format msgid " The PILOTPORT and PILOTRATE environment variables specify\n" msgstr "" #: ../utils.c:1883 #, c-format msgid " which port to sync on, and at what speed.\n" msgstr "" #: ../utils.c:1884 #, c-format msgid " If PILOTPORT is not set then it defaults to /dev/pilot.\n" msgstr "" #: ../utils.c:1921 msgid "Error reading file" msgstr "Fout bij lezen van bestand" #: ../utils.c:1971 msgid "Date compiled" msgstr "Compilatiedatum: " #: ../utils.c:1972 msgid "Compiled with these options:" msgstr "Gecompileerd met deze opties:" #: ../utils.c:1974 msgid "Installed Path" msgstr "Geinstalleerd in" #: ../utils.c:1976 msgid "pilot-link version" msgstr "pilot-link versie" #: ../utils.c:1980 msgid "USB support" msgstr "USB ondersteuning" #: ../utils.c:1981 ../utils.c:1984 ../utils.c:1990 ../utils.c:1996 #: ../utils.c:2002 ../utils.c:2008 ../utils.c:2013 msgid "yes" msgstr "ja" #: ../utils.c:1982 msgid "Private record support" msgstr "Prive-items ondersteuning" #: ../utils.c:1986 ../utils.c:1992 ../utils.c:1998 ../utils.c:2004 #: ../utils.c:2010 msgid "no" msgstr "nee" #: ../utils.c:1988 msgid "Datebk support" msgstr "Datebk ondersteuning" #: ../utils.c:1994 msgid "Plugin support" msgstr "Plugin ondersteuning" #: ../utils.c:2000 msgid "Manana support" msgstr "Manana ondersteuning" #: ../utils.c:2006 msgid "NLS support (foreign languages)" msgstr "NLS ondersteuning (vreemde talen)" #: ../utils.c:2012 msgid "GTK2 support" msgstr "GTK2 ondersteuning" #. No HOME var #: ../utils.c:2055 msgid "Can't get HOME environment variable\n" msgstr "" #: ../utils.c:2062 msgid "HOME environment variable is too long to process\n" msgstr "" #: ../utils.c:2557 #, fuzzy msgid "Edit Categories..." msgstr "Categorieën bewerken" #: ../utils.c:3223 msgid "PC ID is 0.\n" msgstr "PC ID is 0.\n" #: ../utils.c:3224 #, fuzzy, c-format msgid "Generated a new PC ID. It is %lu\n" msgstr "Ik heb een nieuwe PC ID aangemaakt. Het is %lu\n" #: ../utils.c:3309 msgid "Invalid UTF-8 encoding in export string\n" msgstr "" #: ../utils.c:3470 #, c-format msgid "Today is %A, %x %X" msgstr "Vandaag is het %A, %x %X" #: ../utils.c:3472 #, c-format msgid "Today is %%A, %s %s" msgstr "Vandaag is het %%A, %s %s" #: ../utils.c:3701 #, c-format msgid "" "Incorrect header format for CSV import\n" "Check line 1 of file %s\n" "Aborting import\n" msgstr "" #: ../utils.c:3738 #, fuzzy, c-format msgid "Error writing version header to file: %s%s\n" msgstr "Fout bij schrijven van volgend ID naar bestand: next_id()\n" #: ../utils.c:3743 #, fuzzy, c-format msgid "Error writing next id to file: %s%s" msgstr "Fout bij schrijven van volgend ID naar bestand: next_id()\n" #: ../weekview_gui.c:297 msgid "Weekly View" msgstr "Weekoverzicht" #: ../weekview_gui.c:337 msgid "Last week Alt+LeftArrow" msgstr "" #: ../weekview_gui.c:366 msgid "Next week Alt+RightArrow" msgstr "" #: ../Expense/expense.c:97 msgid "Australia" msgstr "Australië" #: ../Expense/expense.c:98 msgid "Austria" msgstr "Oostenrijk" #: ../Expense/expense.c:99 msgid "Belgium" msgstr "België" #: ../Expense/expense.c:100 msgid "Brazil" msgstr "Brazilië" #: ../Expense/expense.c:101 msgid "Canada" msgstr "Canada" #: ../Expense/expense.c:102 msgid "Denmark" msgstr "Denemarken" #: ../Expense/expense.c:103 msgid "EU (Euro)" msgstr "EU (euro)" #: ../Expense/expense.c:104 msgid "Finland" msgstr "Finland" #: ../Expense/expense.c:105 msgid "France" msgstr "Frankrijk" #: ../Expense/expense.c:106 msgid "Germany" msgstr "Duitsland" #: ../Expense/expense.c:107 msgid "Hong Kong" msgstr "Hongkong" #: ../Expense/expense.c:108 msgid "Iceland" msgstr "IJsland" #: ../Expense/expense.c:109 msgid "India" msgstr "India" #: ../Expense/expense.c:110 msgid "Indonesia" msgstr "Indonesië" #: ../Expense/expense.c:111 msgid "Ireland" msgstr "Ierland" #: ../Expense/expense.c:112 msgid "Italy" msgstr "Italië" #: ../Expense/expense.c:113 msgid "Japan" msgstr "Japan" #: ../Expense/expense.c:114 msgid "Korea" msgstr "Korea" #: ../Expense/expense.c:115 msgid "Luxembourg" msgstr "Luxemburg" #: ../Expense/expense.c:116 msgid "Malaysia" msgstr "Maleisië" #: ../Expense/expense.c:117 msgid "Mexico" msgstr "Mexico" #: ../Expense/expense.c:118 msgid "Netherlands" msgstr "Nederland" #: ../Expense/expense.c:119 msgid "New Zealand" msgstr "Nieuw-Zeeland" #: ../Expense/expense.c:120 msgid "Norway" msgstr "Noorwegen" #: ../Expense/expense.c:121 msgid "P.R.C." msgstr "China" #: ../Expense/expense.c:122 msgid "Philippines" msgstr "Filipijnen" #: ../Expense/expense.c:123 msgid "Singapore" msgstr "Singapore" #: ../Expense/expense.c:124 msgid "Spain" msgstr "Spanje" #: ../Expense/expense.c:125 msgid "Sweden" msgstr "Zweden" #: ../Expense/expense.c:126 msgid "Switzerland" msgstr "Zwitserland" #: ../Expense/expense.c:127 msgid "Taiwan" msgstr "Taiwan" #: ../Expense/expense.c:128 msgid "Thailand" msgstr "Thailand" #: ../Expense/expense.c:129 msgid "United Kingdom" msgstr "Verenigd Koninkrijk" #: ../Expense/expense.c:130 msgid "United States" msgstr "Verenigde Staten" #: ../Expense/expense.c:518 ../Expense/expense.c:529 msgid "Expense" msgstr "Uitgaven" #: ../Expense/expense.c:550 ../Expense/expense.c:1388 msgid "Airfare" msgstr "Vlucht" #: ../Expense/expense.c:552 ../Expense/expense.c:1389 msgid "Breakfast" msgstr "Ontbijt" #: ../Expense/expense.c:554 ../Expense/expense.c:1390 msgid "Bus" msgstr "Bus" #: ../Expense/expense.c:556 ../Expense/expense.c:1391 msgid "BusinessMeals" msgstr "Zakendiners" #: ../Expense/expense.c:558 ../Expense/expense.c:1392 msgid "CarRental" msgstr "Autohuur" #: ../Expense/expense.c:560 ../Expense/expense.c:1393 msgid "Dinner" msgstr "Diner" #: ../Expense/expense.c:562 ../Expense/expense.c:1394 msgid "Entertainment" msgstr "Ontspanning" #: ../Expense/expense.c:564 ../Expense/expense.c:1395 msgid "Fax" msgstr "Fax" #: ../Expense/expense.c:566 ../Expense/expense.c:1396 msgid "Gas" msgstr "Benzine" #: ../Expense/expense.c:568 ../Expense/expense.c:1397 msgid "Gifts" msgstr "Cadeau" #: ../Expense/expense.c:570 ../Expense/expense.c:1398 msgid "Hotel" msgstr "Hotel" #: ../Expense/expense.c:572 ../Expense/expense.c:1399 msgid "Incidentals" msgstr "Ongelukken" #: ../Expense/expense.c:574 ../Expense/expense.c:1400 msgid "Laundry" msgstr "Wasgoed" #: ../Expense/expense.c:576 ../Expense/expense.c:1401 msgid "Limo" msgstr "Limo" #: ../Expense/expense.c:578 ../Expense/expense.c:1402 msgid "Lodging" msgstr "Herberg" #: ../Expense/expense.c:580 ../Expense/expense.c:1403 msgid "Lunch" msgstr "Lunch" #: ../Expense/expense.c:582 ../Expense/expense.c:1404 msgid "Mileage" msgstr "Kilometervergoeding" #: ../Expense/expense.c:586 ../Expense/expense.c:1406 msgid "Parking" msgstr "Parkeren" #: ../Expense/expense.c:588 ../Expense/expense.c:1407 msgid "Postage" msgstr "Post" #: ../Expense/expense.c:590 ../Expense/expense.c:1408 msgid "Snack" msgstr "Snack" #: ../Expense/expense.c:592 ../Expense/expense.c:1409 msgid "Subway" msgstr "Metro" #: ../Expense/expense.c:594 ../Expense/expense.c:1410 msgid "Supplies" msgstr "Voorraad" #: ../Expense/expense.c:596 ../Expense/expense.c:1411 msgid "Taxi" msgstr "Taxi" #: ../Expense/expense.c:598 ../Expense/expense.c:1412 msgid "Telephone" msgstr "Telefoon" #: ../Expense/expense.c:600 ../Expense/expense.c:1413 msgid "Tips" msgstr "Fooien" #: ../Expense/expense.c:602 ../Expense/expense.c:1414 msgid "Tolls" msgstr "Tol" #: ../Expense/expense.c:604 ../Expense/expense.c:1415 msgid "Train" msgstr "Trein" #: ../Expense/expense.c:1239 msgid "Expense: Unknown expense type\n" msgstr "" #: ../Expense/expense.c:1245 msgid "Expense: Unknown payment type\n" msgstr "" #: ../Expense/expense.c:1377 msgid "American Express" msgstr "American Express" #: ../Expense/expense.c:1378 msgid "Cash" msgstr "Contant" #: ../Expense/expense.c:1379 msgid "Check" msgstr "Cheque" #: ../Expense/expense.c:1380 msgid "Credit Card" msgstr "Creditcard" #: ../Expense/expense.c:1381 msgid "Master Card" msgstr "MasterCard" #: ../Expense/expense.c:1382 msgid "Prepaid" msgstr "Prepaid" #: ../Expense/expense.c:1383 msgid "VISA" msgstr "VISA" #: ../Expense/expense.c:1619 #, fuzzy msgid "Type" msgstr "Type:" #: ../Expense/expense.c:1620 #, fuzzy msgid "Amount" msgstr "Hoeveelheid:" #. Category Menu #: ../Expense/expense.c:1704 msgid "Category:" msgstr "Categorie:" #. Type Menu #: ../Expense/expense.c:1712 msgid "Type:" msgstr "Type:" #. Payment Menu #: ../Expense/expense.c:1720 msgid "Payment:" msgstr "Betaling:" #. Currency Menu #: ../Expense/expense.c:1728 msgid "Currency:" msgstr "Valuta:" #: ../Expense/expense.c:1748 msgid "Month:" msgstr "Maand:" #: ../Expense/expense.c:1762 msgid "Day:" msgstr "Dag:" #: ../Expense/expense.c:1776 msgid "Year:" msgstr "Jaar:" #. Amount Entry #: ../Expense/expense.c:1789 msgid "Amount:" msgstr "Hoeveelheid:" #. Vendor Entry #: ../Expense/expense.c:1799 msgid "Vendor:" msgstr "Winkel:" #. City #: ../Expense/expense.c:1809 msgid "City:" msgstr "Stad:" #. Attendees #: ../Expense/expense.c:1819 msgid "Attendees" msgstr "" #. ------------------------------------------- #: ../Expense/expense.c:2102 #, c-format msgid "" "%s\n" "\n" "Expense plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org" msgstr "" #: ../KeyRing/keyring.c:291 msgid "KeyRing: pack_KeyRing(): buf_size too small\n" msgstr "" #: ../KeyRing/keyring.c:1699 msgid "Incorrect, Reenter KeyRing Password" msgstr "Incorrect, geef het KeyRing wachtwoord opnieuw" #: ../KeyRing/keyring.c:1701 #, fuzzy msgid "Enter a NEW KeyRing Password" msgstr "Voer KeyRing wachtwoord in" #: ../KeyRing/keyring.c:1703 msgid "Enter KeyRing Password" msgstr "Voer KeyRing wachtwoord in" #: ../KeyRing/keyring.c:1769 #, c-format msgid "KeyRing: file %s not found.\n" msgstr "" #: ../KeyRing/keyring.c:1770 msgid "KeyRing: Try Syncing.\n" msgstr "" #: ../KeyRing/keyring.c:1861 ../KeyRing/keyring.c:1872 msgid "KeyRing" msgstr "" #. ------------------------------------------- #: ../KeyRing/keyring.c:1900 #, c-format msgid "" "%s\n" "\n" "KeyRing plugin for J-Pilot was written by\n" "Judd Montgomery (c) 2001.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "KeyRing is a free PalmOS program for storing\n" "passwords and other information in encrypted form\n" "http://gnukeyring.sourceforge.net" msgstr "" #: ../KeyRing/keyring.c:2137 #, c-format msgid "" "Keys exported from %s %s on %s\n" "\n" msgstr "" #: ../KeyRing/keyring.c:2162 #, fuzzy, c-format msgid "Can't export key %d\n" msgstr "Kan memo %d niet exporteren\n" #: ../KeyRing/keyring.c:2229 msgid "B-FOLDERS CSV" msgstr "" #. Change Password button #: ../KeyRing/keyring.c:2384 #, fuzzy msgid "" "Change\n" "KeyRing\n" "Password" msgstr "Voer KeyRing wachtwoord in" #. Clist #: ../KeyRing/keyring.c:2497 msgid "Changed" msgstr "Gewijzigd" #: ../KeyRing/keyring.c:2499 msgid "Account" msgstr "Account" #. Name entry #: ../KeyRing/keyring.c:2593 msgid "name: " msgstr "naam: " #. Account entry #: ../KeyRing/keyring.c:2601 msgid "account: " msgstr "account: " #. Password entry #: ../KeyRing/keyring.c:2609 msgid "password: " msgstr "wachtwoord: " #. Last Changed entry #: ../KeyRing/keyring.c:2616 msgid "last changed: " msgstr "laatst gewijzigd: " #. Generate Password button (creates random password) #: ../KeyRing/keyring.c:2626 msgid "Generate Password" msgstr "Wachtwoord aanmaken" #: ../SyncTime/synctime.c:61 #, fuzzy msgid "SyncTime" msgstr "Synchroniseer memoblok" #. ------------------------------------------- #: ../SyncTime/synctime.c:72 #, c-format msgid "" "%s\n" "\n" "SyncTime plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "SyncTime WILL NOT work with PalmOS 3.3!" msgstr "" #: ../SyncTime/synctime.c:106 msgid "synctime: Palm OS Version 3.25 and 3.30 do not support SyncTime\n" msgstr "" #: ../SyncTime/synctime.c:107 msgid "synctime: NOT setting the time on the pilot\n" msgstr "" #: ../SyncTime/synctime.c:112 msgid "synctime: Setting the time on the pilot... " msgstr "" #: ../SyncTime/synctime.c:117 msgid "Done\n" msgstr "Klaar\n" #~ msgid "W" #~ msgstr "W" #~ msgid "M" #~ msgstr "M" #~ msgid "This Event has no particular time" #~ msgstr "Deze gebeurtenis heeft geen bepaalde tijd" #~ msgid "Start Time" #~ msgstr "Begintijd" #, fuzzy #~ msgid "End Time" #~ msgstr "Tijd" #, fuzzy #~ msgid "email command empty\n" #~ msgstr "Mailcommando" #~ msgid "Unable to open %s%s file\n" #~ msgstr "Kan bestand %s%s niet openen\n" #~ msgid "Unable to open %s.alarms file\n" #~ msgstr "Kan bestand %s.alarms niet openen\n" #~ msgid "You can't edit category %s.\n" #~ msgstr "U kunt categorie %s niet bewerken.\n" #~ msgid "You can't delete category %s.\n" #~ msgstr "U kunt categorie %s niet verwijderen.\n" #~ msgid "category name" #~ msgstr "categorienaam" #, fuzzy #~ msgid "End Date: Never\n" #~ msgstr "Eindigt op datum " #, fuzzy #~ msgid "Repeat Days: " #~ msgstr "Herhaal op dagen:" #~ msgid "Close" #~ msgstr "Sluiten" #~ msgid "none" #~ msgstr "geen" #~ msgid "Dismiss" #~ msgstr "Annuleren" #~ msgid "Done" #~ msgstr "Klaar" #~ msgid "Add" #~ msgstr "Toevoegen" #~ msgid "Remove" #~ msgstr "Verwijderen" #, fuzzy #~ msgid "User name" #~ msgstr "Gebruikersnaam" #, fuzzy #~ msgid "Show private records" #~ msgstr "Laat prive-items zien" #, fuzzy #~ msgid "Hide private records" #~ msgstr "Prive-items verbergen" #, fuzzy #~ msgid "Mask private records" #~ msgstr "Prive-items bedekken" #~ msgid "Font" #~ msgstr "Lettertype" #, fuzzy #~ msgid "Couldn't open PC records file\n" #~ msgstr "Kon bestand %s niet openen\n" #~ msgid "The first day of the week is " #~ msgstr "De eerste dag van de week is " #~ msgid "One record" #~ msgstr "Een item" #~ msgid "Finished\n" #~ msgstr "Klaar\n" #~ msgid "Last Username = [%s]\n" #~ msgstr "Laatste gebruikersnaam = [%s]\n" #~ msgid "Last UserID = %d\n" #~ msgstr "Laatste gebruikers ID = %d\n" #~ msgid "Username = [%s]\n" #~ msgstr "Gebruikersnaam = [%s]\n" #~ msgid "userID = %d\n" #~ msgstr "Gebruikers ID = %d\n" #~ msgid "number of records = %d\n" #~ msgstr "aantal items = %d\n" #~ msgid "palm: number of records = %d\n" #~ msgstr "palm: aantal items = %d\n" #~ msgid "disk: number of records = %d\n" #~ msgstr "pc: aantal items = %d\n" #, fuzzy #~ msgid "" #~ "%s doesn't appear to be a directory.\n" #~ "I need it to be.\n" #~ msgstr "Bestand lijkt geen address.dat formaat te hebben\n" #, fuzzy #~ msgid "I can't write files in directory %s\n" #~ msgstr "Kan map %s niet aanmaken\n" #~ msgid "Field" #~ msgstr "Veld" #~ msgid "Serial Port (/dev/ttyS0, /dev/pilot)" #~ msgstr "Seriële poort (/dev/ttyS0, /dev/pilot)" #~ msgid "kana(" #~ msgstr "kana(" #~ msgid "Quick View" #~ msgstr "Overzicht" #~ msgid "Serial Rate (Does not affect USB)" #~ msgstr "Seriële sneldheid (heeft geen effect op USB)" #~ msgid "Sync memo32 (pedit32)" #~ msgstr "Synchroniseer memo32 (pedit32)" #~ msgid "AmEx" #~ msgstr "AmEx" #~ msgid "CreditCard" #~ msgstr "Creditcard" #~ msgid "MasterCard" #~ msgstr "MasterCard" jpilot-1.8.1.2/po/cs.po0000644000175000017500000026214011702307203011466 00000000000000# Translation for jpilot. # Copyright (C) 2002, 2003, 2004, 2007 Judd Montgomery # Copyright (C) 2004, 2007 Miloslav Trmac # # Jiri Rubes , 2001. # Miloslav Trmac , 2003, 2004, 2007. # msgid "" msgstr "" "Project-Id-Version: jpilot 0.99.8-pre12\n" "Report-Msgid-Bugs-To: jpilot-devel@jpilot.org\n" "POT-Creation-Date: 2012-01-08 13:39+0100\n" "PO-Revision-Date: 2007-09-06 21:58+0200\n" "Last-Translator: Miloslav Trmac \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../address.c:276 ../address.c:448 ../alarms.c:332 ../calendar.c:309 #: ../calendar.c:547 ../contact.c:324 ../contact.c:738 ../dat.c:189 #: ../dat.c:655 ../dat.c:859 ../dat.c:993 ../dat.c:1132 ../datebook.c:130 #: ../datebook.c:165 ../datebook.c:172 ../datebook.c:231 ../jpilot.c:1254 #: ../jpilot-merge.c:95 ../libplugin.c:208 ../libplugin.c:455 #: ../libplugin.c:534 ../libplugin.c:563 ../libplugin.c:811 ../memo.c:214 #: ../memo.c:287 ../otherconv.c:280 ../plugins.c:112 ../prefs.c:350 #: ../prefs.c:375 ../prefs.c:906 ../sync.c:2170 ../sync.c:2187 ../sync.c:2296 #: ../sync.c:2310 ../sync.c:2507 ../sync.c:2646 ../todo.c:236 ../todo.c:490 #: ../utils.c:748 #, c-format msgid "Out of memory" msgstr "Nedostatek paměti" #: ../address.c:332 ../calendar.c:230 ../contact.c:580 ../datebook.c:494 #: ../memo.c:87 ../todo.c:90 #, fuzzy, c-format msgid "%s:%d Error reading application info %s\n" msgstr "%s:%d Chyba při čtení informace o kategoriích %s\n" #: ../address.c:344 ../address_gui.c:2285 ../address_gui.c:2324 #: ../calendar.c:246 ../contact.c:596 ../datebook.c:514 ../datebook_gui.c:3737 #: ../libplugin.c:405 ../libplugin.c:431 ../memo.c:99 ../memo_gui.c:863 #: ../todo_gui.c:1070 ../Expense/expense.c:1105 #, c-format msgid "Error reading file: %s\n" msgstr "Chyba při čtení souboru: %s\n" #: ../address.c:492 ../calendar.c:598 ../calendar.c:607 ../contact.c:780 #: ../libplugin.c:846 ../memo.c:353 ../todo.c:302 ../utils.c:1124 #: ../utils.c:1131 ../utils.c:1138 ../utils.c:1145 ../utils.c:1152 #: ../utils.c:1159 msgid "error" msgstr "chyba" #: ../address_gui.c:325 ../datebook_gui.c:2844 ../memo_gui.c:176 #: ../todo_gui.c:292 ../KeyRing/keyring.c:834 msgid "" "This record is deleted.\n" "Undelete it or copy it to make changes.\n" msgstr "" "Tento záznam je odstraněn.\n" "Pro provádění změn jej obnovte nebo zkopírujte.\n" #: ../address_gui.c:452 ../address_gui.c:458 ../address_gui.c:469 #: ../address_gui.c:481 ../address_gui.c:493 ../address_gui.c:506 #, fuzzy, c-format msgid "%s%s: %s" msgstr "%%a., %s" #: ../address_gui.c:542 ../category.c:118 ../category.c:176 ../category.c:330 #: ../category.c:336 ../datebook_gui.c:430 ../jpilot-merge.c:88 #: ../jpilot-merge.c:146 ../jpilot-merge.c:151 ../memo_gui.c:280 #: ../sync.c:2129 ../sync.c:2135 ../sync.c:2481 ../sync.c:2842 #: ../todo_gui.c:416 ../utils.c:2674 ../utils.c:2711 ../utils.c:2717 #: ../utils.c:2776 ../utils.c:2782 ../utils.c:2836 ../utils.c:2890 #: ../utils.c:2896 ../utils.c:2954 ../utils.c:2961 #, c-format msgid "Unable to open file: %s\n" msgstr "Nemohu otevřít soubor: %s\n" #: ../address_gui.c:561 #, fuzzy, c-format msgid "Unable to read file: %s\n" msgstr "Nemohu otevřít soubor: %s\n" #: ../address_gui.c:715 msgid "File doesn't appear to be address.dat format\n" msgstr "Soubor zřejmě není ve formátu address.dat\n" #: ../address_gui.c:725 ../datebook_gui.c:647 ../memo_gui.c:324 #: ../memo_gui.c:417 ../todo_gui.c:542 ../Expense/expense.c:1384 msgid "Unfiled" msgstr "Nezařazeno" #: ../address_gui.c:781 ../datebook_gui.c:698 ../memo_gui.c:470 #: ../todo_gui.c:595 msgid "CSV (Comma Separated Values)" msgstr "" #: ../address_gui.c:782 msgid "DAT/ABA (Palm Archive Formats)" msgstr "" #. current category name #. previous category name #. entry text, in Pilot character set #: ../address_gui.c:868 ../category.c:408 ../datebook_gui.c:729 #: ../jpilot.c:234 ../jpilot.c:278 ../jpilot.c:352 ../jpilot.c:396 #: ../jpilot.c:953 ../memo_gui.c:506 ../todo_gui.c:635 ../utils.c:1305 #: ../KeyRing/keyring.c:2090 msgid "OK" msgstr "Budiž" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "No" msgstr "Ne" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "Yes" msgstr "Ano" #: ../address_gui.c:888 ../datebook_gui.c:753 ../memo_gui.c:520 #: ../todo_gui.c:655 ../KeyRing/keyring.c:2104 #, c-format msgid "%s is a directory" msgstr "%s je adresář" #: ../address_gui.c:890 ../address_gui.c:907 ../datebook_gui.c:755 #: ../datebook_gui.c:772 ../memo_gui.c:522 ../memo_gui.c:539 ../todo_gui.c:657 #: ../todo_gui.c:674 ../KeyRing/keyring.c:2106 ../KeyRing/keyring.c:2123 msgid "Error Opening File" msgstr "Chyba při otevírání souboru" #: ../address_gui.c:894 ../datebook_gui.c:759 ../memo_gui.c:526 #: ../todo_gui.c:661 ../KeyRing/keyring.c:2110 #, c-format msgid "Do you want to overwrite file %s?" msgstr "Chcete přepsat soubor %s?" #: ../address_gui.c:896 ../datebook_gui.c:761 ../memo_gui.c:528 #: ../todo_gui.c:663 ../KeyRing/keyring.c:2112 msgid "Overwrite File?" msgstr "Přepsat soubor?" #: ../address_gui.c:905 ../datebook_gui.c:770 ../memo_gui.c:537 #: ../todo_gui.c:672 ../KeyRing/keyring.c:2121 #, c-format msgid "Error opening file: %s" msgstr "Chyba při otevírání souboru: %s" #: ../address_gui.c:922 #, c-format msgid "" "Address exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:925 #, c-format msgid "" "Contact exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:989 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ldif file may not be standards-compliant\n" msgstr "" #: ../address_gui.c:1002 #, c-format msgid "Can't export address %d\n" msgstr "Nemohu exportovat adresu %d\n" #: ../address_gui.c:1008 ../memo_gui.c:630 ../todo_gui.c:760 #, fuzzy, c-format msgid "Category: %s\n" msgstr "Kategorie: " #: ../address_gui.c:1010 ../memo_gui.c:632 ../todo_gui.c:763 #, fuzzy, c-format msgid "Private: %s\n" msgstr "Soukromé" #: ../address_gui.c:1018 ../address_gui.c:1032 ../address_gui.c:1036 #: ../address_gui.c:1045 ../address_gui.c:1048 #, fuzzy, c-format msgid "%s: " msgstr "%%a., %s" #: ../address_gui.c:1022 #, c-format msgid "%s\n" msgstr "" #. E-mail should be the Palm dropdown menu item for email #. Set dial/email button text and callback data #: ../address_gui.c:1196 ../address_gui.c:2846 ../address_gui.c:4185 msgid "E-mail" msgstr "E-mail" #: ../address_gui.c:1482 ../datebook_gui.c:1147 ../memo_gui.c:640 #: ../todo_gui.c:844 ../KeyRing/keyring.c:2214 msgid "Unknown export type\n" msgstr "Neznámý typ exportu\n" #: ../address_gui.c:1508 ../datebook_gui.c:1226 ../memo_gui.c:469 #: ../memo_gui.c:666 ../todo_gui.c:870 ../KeyRing/keyring.c:2229 msgid "Text" msgstr "" #: ../address_gui.c:1509 ../datebook_gui.c:1227 ../memo_gui.c:667 #: ../todo_gui.c:871 ../KeyRing/keyring.c:2229 msgid "CSV" msgstr "" #: ../address_gui.c:1510 #, fuzzy msgid "vCard" msgstr "Vymazat" #: ../address_gui.c:1511 msgid "vCard (Optimized for Gmail/Android Import)" msgstr "" #: ../address_gui.c:1512 msgid "ldif" msgstr "" #. Initialize variable if default case taken #: ../address_gui.c:1777 ../address_gui.c:3902 #, fuzzy msgid "Last Name/Company" msgstr "Jméno/Firma" #: ../address_gui.c:1780 ../address_gui.c:3905 #, fuzzy msgid "First Name/Company" msgstr "Jméno/Firma" #: ../address_gui.c:1783 ../address_gui.c:3908 #, fuzzy msgid "Company/Last Name" msgstr "Firma/Jméno" #: ../address_gui.c:1920 ../datebook_gui.c:2907 ../memo_gui.c:1036 #: ../todo_gui.c:1329 ../KeyRing/keyring.c:1181 msgid "You can't modify a record that is deleted\n" msgstr "Nemůžete upravit záznam, který byl odstraněn\n" #. Illegal category, Assume that category 0 is Unfiled and valid #: ../address_gui.c:2119 ../address_gui.c:2370 ../address_gui.c:2803 #: ../address_gui.c:2809 ../address_gui.c:3601 ../datebook_gui.c:1994 #: ../datebook_gui.c:3434 ../datebook_gui.c:3783 ../datebook_gui.c:4074 #: ../memo_gui.c:900 ../memo_gui.c:946 ../memo_gui.c:1161 ../memo_gui.c:1548 #: ../todo_gui.c:1106 ../todo_gui.c:1200 ../todo_gui.c:1589 ../todo_gui.c:2141 #: ../Expense/expense.c:689 ../Expense/expense.c:1143 #: ../Expense/expense.c:1227 ../Expense/expense.c:1887 #: ../KeyRing/keyring.c:1070 ../KeyRing/keyring.c:1512 #: ../KeyRing/keyring.c:1574 ../KeyRing/keyring.c:2688 msgid "Category is not legal\n" msgstr "Kategorie není platná\n" #: ../address_gui.c:2179 ../alarms.c:598 ../dialer.c:164 #, c-format msgid "executing command = [%s]\n" msgstr "spouštím příkaz = [%s]\n" #: ../address_gui.c:2181 #, fuzzy, c-format msgid "Failed to execute [%s]\n" msgstr "Selhalo, nemohu vytvořit soubor %s\n" #: ../address_gui.c:2425 msgid "Birthday" msgstr "" #: ../address_gui.c:2521 msgid "External program not found, or other error" msgstr "" #: ../address_gui.c:2523 msgid "" "J-Pilot can not find the external program \"convert\"\n" "or an error occurred while executing convert.\n" "You may need to install package ImageMagick" msgstr "" #: ../address_gui.c:2524 #, c-format msgid "Command executed was \"%s\"\n" msgstr "" #: ../address_gui.c:2525 #, c-format msgid "return code was %d\n" msgstr "" #: ../address_gui.c:2603 #, fuzzy msgid "chdir() failed\n" msgstr "zamčení selhalo\n" #: ../address_gui.c:2606 msgid "Add Photo" msgstr "" #. Category menu #: ../address_gui.c:2828 ../KeyRing/keyring.c:2585 msgid "Category: " msgstr "Kategorie: " #: ../address_gui.c:2848 ../address_gui.c:4186 msgid "Mail" msgstr "Pošta" #. Dial Phone Button #: ../address_gui.c:2851 ../address_gui.c:4189 ../dialer.c:307 ../dialer.c:331 msgid "Dial" msgstr "Vytočit" #: ../address_gui.c:3041 ../datebook_gui.c:2757 ../memo_gui.c:1228 #: ../todo_gui.c:1697 msgid "Could not get temporary file name\n" msgstr "" #: ../address_gui.c:3049 ../datebook_gui.c:2765 ../memo_gui.c:1236 #: ../todo_gui.c:1705 msgid "Could not open temporary file for external editor\n" msgstr "" #: ../address_gui.c:3089 ../datebook_gui.c:2806 ../memo_gui.c:1277 #: ../todo_gui.c:1746 msgid "Could not open temporary file from external editor\n" msgstr "" #: ../address_gui.c:3261 ../address_gui.c:3292 msgid "-Unnamed-" msgstr "-Nepojmenovaný-" #: ../address_gui.c:3374 ../memo_gui.c:1454 ../todo_gui.c:2019 msgid "0 records" msgstr "0 záznamů" #: ../address_gui.c:3377 ../datebook_gui.c:2637 ../memo_gui.c:1457 #: ../todo_gui.c:2022 #, c-format msgid "%d of %d records" msgstr "%d z %d záznamů" #: ../address_gui.c:3772 ../address_gui.c:3780 ../KeyRing/keyring.c:2498 msgid "Name" msgstr "Jméno" #: ../address_gui.c:3773 ../address_gui.c:3774 ../address_gui.c:3775 #: ../address_gui.c:3781 msgid "Address" msgstr "Adresa" #: ../address_gui.c:3776 ../address_gui.c:3782 ../Expense/expense.c:584 #: ../Expense/expense.c:1405 msgid "Other" msgstr "Jiné" #. Note textbox #: ../address_gui.c:3777 ../address_gui.c:3783 ../todo_gui.c:2484 #: ../Expense/expense.c:1836 ../KeyRing/keyring.c:2632 msgid "Note" msgstr "Poznámka" #: ../address_gui.c:3793 msgid "Reverting to Address database\n" msgstr "" #: ../address_gui.c:3914 msgid "Phone" msgstr "Telefon" #: ../address_gui.c:3946 msgid "Quick Find: " msgstr "Rychlé hledání: " #. Cancel button #. Add record modification buttons #. Cancel button #: ../address_gui.c:3964 ../category.c:409 ../datebook_gui.c:1782 #: ../datebook_gui.c:5124 ../memo_gui.c:1692 ../todo_gui.c:2345 #: ../utils.c:1346 ../KeyRing/keyring.c:2528 msgid "Cancel" msgstr "Zrušit" #: ../address_gui.c:3964 ../datebook_gui.c:5124 ../memo_gui.c:1692 #: ../todo_gui.c:2345 ../KeyRing/keyring.c:2528 msgid "Cancel the modifications" msgstr "Zrušit změny" #. Delete Button #. Delete button #. Delete Button #. Delete button #. Delete, Copy, New, etc. buttons #. Delete button #: ../address_gui.c:3969 ../category.c:409 ../category.c:852 #: ../datebook_gui.c:5129 ../memo_gui.c:1697 ../todo_gui.c:2350 #: ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete" msgstr "Odstranit" #: ../address_gui.c:3969 ../datebook_gui.c:5129 ../memo_gui.c:1697 #: ../todo_gui.c:2350 ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete the selected record" msgstr "Odstranit vybraný záznam" #. Undelete Button #. Undelete button #. Undelete Button #. Undelete button #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 msgid "Undelete" msgstr "Obnovit" #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 msgid "Undelete the selected record" msgstr "Zrušit odstranění vybraného záznamu" #. Copy button #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy" msgstr "Kopírovat" #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy the selected record" msgstr "Zkopírovat vybraný záznam" #. New button #. New Record button #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "New Record" msgstr "Nový záznam" #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "Add a new record" msgstr "Přidat nový záznam" #. "Add Record" button #. Add Record button #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add Record" msgstr "Přidat záznam" #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add the new record" msgstr "Přidat nový záznam" #. "Apply Changes" button #. Apply Changes button #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Apply Changes" msgstr "Provést změny" #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Commit the modifications" msgstr "Potvrdit změny" #. Private check box #. Private checkbox #: ../address_gui.c:4033 ../datebook_gui.c:5191 ../datebook_gui.c:5233 #: ../memo_gui.c:1747 ../todo_gui.c:2410 msgid "Private" msgstr "Soukromé" #: ../address_gui.c:4118 msgid "Change Photo" msgstr "" #: ../address_gui.c:4123 #, fuzzy msgid "Remove Photo" msgstr "Odstranit" #: ../address_gui.c:4195 #, fuzzy msgid "Show In List" msgstr "" "Zobrazovat\n" "v seznamu" #: ../address_gui.c:4296 #, fuzzy msgid "Reminder" msgstr "Připomenout mi" #: ../address_gui.c:4312 ../datebook_gui.c:238 ../datebook_gui.c:5221 #: ../datebook_gui.c:5378 msgid "Days" msgstr "Dnů" #. The Quickview (ALL) page #. All button #: ../address_gui.c:4356 ../datebook_gui.c:1478 ../datebook_gui.c:1782 #: ../utils.c:2528 msgid "All" msgstr "Vše" #: ../alarms.c:232 ../datebook_gui.c:236 ../datebook_gui.c:5215 #: ../datebook_gui.c:5372 msgid "Minutes" msgstr "Minut" #: ../alarms.c:234 ../datebook_gui.c:237 ../datebook_gui.c:5219 #: ../datebook_gui.c:5376 msgid "Hours" msgstr "Hodin" #: ../alarms.c:255 msgid "Remind me" msgstr "Připomenout mi" #: ../alarms.c:425 ../alarms.c:991 ../sync.c:1639 ../sync.c:1645 #: ../utils.c:3717 #, c-format msgid "Unable to open file: %s%s\n" msgstr "Nemohu otevřít soubor: %s%s\n" #: ../alarms.c:512 msgid "Appointment Reminder" msgstr "Připomenutí akce" #: ../alarms.c:515 msgid "Past Appointment" msgstr "Minulá akce" #: ../alarms.c:518 msgid "Postponed Appointment" msgstr "Odložená akce" #: ../alarms.c:521 ../datebook_gui.c:5025 msgid "Appointment" msgstr "Akce" #: ../alarms.c:605 msgid "J-Pilot Alarm" msgstr "Upozornění J-Pilot" #: ../category.c:131 ../category.c:188 ../sync.c:2158 ../sync.c:2495 msgid "PC file corrupt?\n" msgstr "Poškozený soubor na PC?\n" #: ../category.c:138 ../category.c:148 ../category.c:196 ../category.c:206 #: ../category.c:216 ../sync.c:2280 ../sync.c:2334 ../sync.c:2371 #: ../sync.c:2386 ../sync.c:2410 ../sync.c:2630 ../sync.c:2675 ../sync.c:2712 #: ../sync.c:2725 ../sync.c:2750 msgid "fseek failed - fatal error\n" msgstr "fseek selhal - fatální chyba\n" #: ../category.c:364 ../utils.c:2738 ../utils.c:2812 ../utils.c:2916 #: ../utils.c:2981 msgid "rename failed" msgstr "přejmenování selhalo" #: ../category.c:409 msgid "Move" msgstr "Přesunout" #: ../category.c:438 ../category.c:500 ../category.c:580 ../category.c:769 msgid "Edit Categories" msgstr "Upravit kategorie" #: ../category.c:439 msgid "The maximum number of categories (16) are already used" msgstr "Již se používá maximální počet kategorií (16)" #: ../category.c:442 msgid "Enter New Category" msgstr "Zadejte novou kategorii" #: ../category.c:453 ../category.c:477 #, fuzzy msgid "Edit Categories Error" msgstr "Upravit kategorie" #: ../category.c:454 msgid "You must select a category to rename" msgstr "Musíte vybrat kategorii kterou přejmenovat" #: ../category.c:463 msgid "Enter New Category Name" msgstr "Zadejte název nové kategorie" #: ../category.c:478 msgid "You must select a category to delete" msgstr "Musíte vybrat kategorii, kterou odstranit" #: ../category.c:496 #, c-format msgid "" "There are %d records in %s.\n" "Do you want to move them to %s, or delete them?" msgstr "" "V %2$s je %1$d záznamů.\n" "Chcete je přesunout do %3$s nebo odstranit?" #: ../category.c:556 #, c-format msgid "invalid state file %s line %d\n" msgstr "neplatný stav soubor %s řádek %d\n" #: ../category.c:578 #, c-format msgid "The category %s can't be used more than once" msgstr "Kategorii %s nelze použít více než jednou" #. Category names in host character set #: ../category.c:735 #, fuzzy msgid "Category" msgstr "Kategorie:" #: ../category.c:836 msgid "New" msgstr "Nový" #: ../category.c:843 msgid "Rename" msgstr "Přejmenovat" #: ../dat.c:456 msgid "unknown type =" msgstr "neznámý typ =" #: ../dat.c:537 #, c-format msgid "fields per row count != %d, unknown format\n" msgstr "počet polí na řádku != %d, neznámý formát\n" #: ../dat.c:551 #, c-format msgid "field count != %d, unknown format\n" msgstr "počet polí != %d, neznámý formát\n" #: ../dat.c:559 msgid "Unknown format, file has wrong schema\n" msgstr "Neznámý formát, soubor má špatné schéma\n" #: ../dat.c:560 msgid "File schema is:" msgstr "Schéma souboru je:" #: ../dat.c:564 #, fuzzy msgid "It should be:" msgstr "Mělo by být: " #: ../dat.c:674 ../dat.c:692 ../dat.c:876 ../dat.c:889 ../dat.c:1012 #: ../dat.c:1025 ../dat.c:1149 ../dat.c:1162 #, c-format msgid "%s:%d Record %d, field %d: Invalid type. Expected %d, found %d\n" msgstr "%s:%d Záznam %d, pole %d: Neplatný typ. Očekáván %d, nalezen %d\n" #: ../dat.c:675 ../dat.c:693 ../dat.c:877 ../dat.c:890 ../dat.c:994 #: ../dat.c:1013 ../dat.c:1026 ../dat.c:1150 ../dat.c:1163 msgid "read of file terminated\n" msgstr "čtení souboru přerušeno\n" #: ../datebook.c:705 ../datebook_gui.c:3648 #, c-format msgid "Unknown repeatType (%d) found in DatebookDB\n" msgstr "Neznámý repeatType (%d) nalezen v DatebookDB\n" #: ../datebook_gui.c:241 #, fuzzy msgid "Repeat Never" msgstr "Opakovat podle:" #: ../datebook_gui.c:242 #, fuzzy msgid "Repeat Daily" msgstr "Opakovat ve dnech:" #: ../datebook_gui.c:243 #, fuzzy msgid "Repeat Weekly" msgstr "Opakovat podle:" #: ../datebook_gui.c:244 #, fuzzy msgid "Repeat MonthlyByDay" msgstr "Opakovat ve dnech:" #: ../datebook_gui.c:245 #, fuzzy msgid "Repeat MonthlyByDate" msgstr "Opakovat ve dnech:" #: ../datebook_gui.c:246 msgid "Repeat YearlyDate" msgstr "" #: ../datebook_gui.c:247 #, fuzzy msgid "Repeat YearlyDay" msgstr "Opakovat ve dnech:" # FIXME: this is in libc #: ../datebook_gui.c:250 ../datebook_gui.c:257 ../datebook_gui.c:4803 #: ../datebook_gui.c:4810 msgid "Su" msgstr "Ne" #: ../datebook_gui.c:251 ../datebook_gui.c:4804 msgid "Mo" msgstr "Po" #: ../datebook_gui.c:252 ../datebook_gui.c:4805 msgid "Tu" msgstr "Út" #: ../datebook_gui.c:253 ../datebook_gui.c:4806 msgid "We" msgstr "St" #: ../datebook_gui.c:254 ../datebook_gui.c:4807 msgid "Th" msgstr "Čt" #: ../datebook_gui.c:255 ../datebook_gui.c:4808 msgid "Fr" msgstr "Pá" #: ../datebook_gui.c:256 ../datebook_gui.c:4809 msgid "Sa" msgstr "So" #: ../datebook_gui.c:269 #, c-format msgid "" "Start Date: %s\n" "Time: Event" msgstr "" #: ../datebook_gui.c:277 #, c-format msgid "" "Start Date: %s\n" "Time: %s to %s" msgstr "" #: ../datebook_gui.c:287 ../datebook_gui.c:297 msgid "Unknown" msgstr "" #. End Date #: ../datebook_gui.c:300 #, fuzzy msgid "End Date: " msgstr "Skončit dne" #: ../datebook_gui.c:302 msgid "Never" msgstr "" #: ../datebook_gui.c:308 #, c-format msgid "Repeat Frequency: %d\n" msgstr "" #: ../datebook_gui.c:316 #, c-format msgid "Monthly Repeat Day %d\n" msgstr "" #: ../datebook_gui.c:321 ../datebook_gui.c:5520 msgid "Repeat on Days:" msgstr "Opakovat ve dnech:" #: ../datebook_gui.c:332 #, fuzzy, c-format msgid "Number of exceptions: %d" msgstr "počet záznamů = %d\n" #: ../datebook_gui.c:338 msgid "" "\n" "more..." msgstr "" #: ../datebook_gui.c:359 ../datebook_gui.c:386 msgid "Description:" msgstr "" #: ../datebook_gui.c:360 ../datebook_gui.c:387 #, fuzzy msgid "Note:" msgstr "Poznámka" #: ../datebook_gui.c:362 ../datebook_gui.c:390 #, fuzzy msgid "Alarm:" msgstr "Upozornění" #: ../datebook_gui.c:363 ../datebook_gui.c:391 #, fuzzy msgid "Repeat Type:" msgstr "Opakovat podle:" #: ../datebook_gui.c:366 ../datebook_gui.c:394 #, fuzzy msgid "Start of Week:" msgstr "Dne v týdnu" #: ../datebook_gui.c:388 ../datebook_gui.c:5343 msgid "Location:" msgstr "" #: ../datebook_gui.c:620 ../datebook_gui.c:2271 #, c-format msgid "Appointment description text > %d, truncating to %d\n" msgstr "Popis akce > %d, zkracuji na %d\n" #: ../datebook_gui.c:631 ../datebook_gui.c:1148 ../datebook_gui.c:2331 #: ../datebook_gui.c:2338 msgid "Error" msgstr "Chyba" #: ../datebook_gui.c:632 msgid "File doesn't appear to be datebook.dat format\n" msgstr "Soubor zřejmě není ve formátu datebook.dat\n" #: ../datebook_gui.c:699 msgid "DAT/DBA (Palm Archive Formats)" msgstr "" #: ../datebook_gui.c:787 #, c-format msgid "" "Datebook exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:790 #, c-format msgid "" "Calendar exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:817 ../todo_gui.c:701 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ical file may not be standards-compliant\n" msgstr "" #: ../datebook_gui.c:1148 msgid "Unknown export type" msgstr "Neznámý typ exportu" #: ../datebook_gui.c:1228 ../todo_gui.c:872 #, fuzzy msgid "iCalendar" msgstr "Vymazat" #: ../datebook_gui.c:1240 ../export_gui.c:251 ../jpilot.c:429 msgid "Export" msgstr "Exportovat" #. Label for instructions #: ../datebook_gui.c:1257 msgid "Export All Datebook Records" msgstr "Exportovat všechny záznamy diáře" #: ../datebook_gui.c:1276 ../export_gui.c:316 msgid "Save as" msgstr "Uložit jako" #. Browse button #: ../datebook_gui.c:1286 ../export_gui.c:329 msgid "Browse" msgstr "Procházet" #: ../datebook_gui.c:1432 msgid "Datebook Categories" msgstr "Kategorie diáře" #. None button #. Labels for notebook tabs #: ../datebook_gui.c:1484 ../datebook_gui.c:2026 ../datebook_gui.c:5449 msgid "None" msgstr "Nic" #: ../datebook_gui.c:1633 msgid "Begin On Date" msgstr "Začít dne" #: ../datebook_gui.c:1639 msgid "End On Date" msgstr "Skončit dne" # FIXME: again #: ../datebook_gui.c:1751 ../prefs.c:451 msgid "Sunday" msgstr "Neděle" #: ../datebook_gui.c:1752 ../prefs.c:452 msgid "Monday" msgstr "Pondělí" #: ../datebook_gui.c:1753 msgid "Tuesday" msgstr "Úterý" #: ../datebook_gui.c:1754 msgid "Wednesday" msgstr "Středa" #: ../datebook_gui.c:1755 msgid "Thursday" msgstr "Čtvrtek" #: ../datebook_gui.c:1756 msgid "Friday" msgstr "Pátek" #: ../datebook_gui.c:1757 msgid "Saturday" msgstr "Sobota" #: ../datebook_gui.c:1760 msgid "4th" msgstr "4." #: ../datebook_gui.c:1760 msgid "Last" msgstr "Poslední" #: ../datebook_gui.c:1763 #, c-format msgid "" "This appointment can either\n" "repeat on the 4th %s\n" "of the month, or on the last\n" "%s of the month.\n" "Which do you want?" msgstr "" "Tato akce se může\n" "opakovat buď čtvrtou %s\n" "měsíce, nebo poslední\n" "%s měsíce.\n" "Co chcete?" #: ../datebook_gui.c:1770 ../datebook_gui.c:1786 msgid "Question?" msgstr "Otázka?" #: ../datebook_gui.c:1777 #, fuzzy msgid "" "This is a repeating event.\n" "Do you want to apply these changes to\n" "only the CURRENT event,\n" "just FUTURE events, or\n" "ALL of the occurrences of this event?" msgstr "" "Toto je opakující se událost.\n" "Chcete aplikovat změny pouze\n" "na AKTUÁLNÍ událost nebo na\n" "VŠECHNY výskyty této události?" #: ../datebook_gui.c:1782 msgid "Current" msgstr "Aktuální" #: ../datebook_gui.c:1782 msgid "Future" msgstr "" #: ../datebook_gui.c:2027 msgid "day" msgstr "den" #: ../datebook_gui.c:2028 msgid "week" msgstr "týden" #: ../datebook_gui.c:2029 msgid "month" msgstr "měsíc" #: ../datebook_gui.c:2030 msgid "year" msgstr "rok" # FIXME: unlocalizable #: ../datebook_gui.c:2326 ../datebook_gui.c:2329 #, c-format msgid "You cannot have an appointment that repeats every %d %s(s)\n" msgstr "Nemůžete mít akci, která se opakuje každých %d %s\n" #: ../datebook_gui.c:2339 #, fuzzy msgid "" "You cannot have a weekly repeating appointment that doesn't repeat on any " "day of the week." msgstr "" "Nemůžete mít týdně opakovanou akci, která se neopakuje v žádném dnu v týdnu." #. This is a timeless event #: ../datebook_gui.c:2516 ../datebook_gui.c:5264 msgid "No Time" msgstr "Bez času" #: ../datebook_gui.c:2788 ../memo_gui.c:1259 ../todo_gui.c:1728 msgid "External editor command too long to execute\n" msgstr "" #: ../datebook_gui.c:2943 msgid "Invalid Appointment" msgstr "Neplatná akce" #: ../datebook_gui.c:2944 msgid "" "The End Date of this appointment\n" "is before the start date." msgstr "" "Koncové datum této akce\n" "je před počátečním datem" #. "No Date" check box #: ../datebook_gui.c:3339 ../datebook_gui.c:5482 ../datebook_gui.c:5513 #: ../datebook_gui.c:5565 ../datebook_gui.c:5613 ../todo_gui.c:142 #: ../todo_gui.c:2454 msgid "No Date" msgstr "Neurčen" #: ../datebook_gui.c:3494 #, fuzzy, c-format msgid "Error in DateBookDB or Calendar advanceUnits = %d\n" msgstr "Chyba v DateBookDB advanceUnits = %d\n" #: ../datebook_gui.c:3681 #, c-format msgid "%%a., %s" msgstr "%%a., %s" #: ../datebook_gui.c:3686 msgid " (TODAY)" msgstr " (DNES)" #. Weekview button #: ../datebook_gui.c:4934 ../datebook_gui.c:5451 msgid "Week" msgstr "Týden" #: ../datebook_gui.c:4943 #, fuzzy msgid "View appointments by week Ctrl+W" msgstr "Zobrazit akce po týdnech" #. Monthview button #: ../datebook_gui.c:4946 ../datebook_gui.c:5452 msgid "Month" msgstr "Měsíc" #: ../datebook_gui.c:4955 #, fuzzy msgid "View appointments by month Ctrl+M" msgstr "Zobrazit akce po měsících" #. Make Category button #: ../datebook_gui.c:4960 msgid "Cats" msgstr "Kat." #: ../datebook_gui.c:5024 msgid "Time" msgstr "Čas" #. "Show ToDos" button #: ../datebook_gui.c:5067 msgid "Show ToDos" msgstr "Zobrazit úkoly" #: ../datebook_gui.c:5081 ../todo_gui.c:2285 msgid "Task" msgstr "Úkol" #: ../datebook_gui.c:5082 ../todo_gui.c:2286 msgid "Due" msgstr "Termín" #: ../datebook_gui.c:5201 ../datebook_gui.c:5358 msgid "Alarm" msgstr "Upozornění" #. Date Spinners #: ../datebook_gui.c:5241 ../Expense/expense.c:1736 msgid "Date:" msgstr "Datum:" #. Start date and time #: ../datebook_gui.c:5283 #, fuzzy msgid "Start" msgstr "Začíná" #. End date and time #: ../datebook_gui.c:5300 #, fuzzy msgid "End" msgstr "Konec" #: ../datebook_gui.c:5433 msgid "DateBk Tags" msgstr "Značky DateBk" #: ../datebook_gui.c:5450 msgid "Day" msgstr "Den" #: ../datebook_gui.c:5453 msgid "Year" msgstr "Rok" #. "No Repeat" page for notebook #: ../datebook_gui.c:5456 msgid "This event will not repeat" msgstr "Tato akce se neopakuje" #: ../datebook_gui.c:5465 ../datebook_gui.c:5498 ../datebook_gui.c:5550 #: ../datebook_gui.c:5596 msgid "Frequency is Every" msgstr "Opakovat každý" #: ../datebook_gui.c:5471 msgid "Day(s)" msgstr "Den" #: ../datebook_gui.c:5474 ../datebook_gui.c:5507 ../datebook_gui.c:5559 #: ../datebook_gui.c:5605 msgid "End on" msgstr "Konec" #: ../datebook_gui.c:5504 msgid "Week(s)" msgstr "Týden" #: ../datebook_gui.c:5556 msgid "Month(s)" msgstr "Měsíc" #: ../datebook_gui.c:5573 msgid "Repeat by:" msgstr "Opakovat podle:" #: ../datebook_gui.c:5577 msgid "Day of week" msgstr "Dne v týdnu" #: ../datebook_gui.c:5586 ../Expense/expense.c:1618 msgid "Date" msgstr "Data" #: ../datebook_gui.c:5602 msgid "Year(s)" msgstr "Rok" #: ../dialer.c:195 msgid "Phone Dialer" msgstr "Vytáčeč telefonu" #: ../dialer.c:230 msgid "Prefix 1" msgstr "Prefix 1" #: ../dialer.c:252 msgid "Prefix 2" msgstr "Prefix 2" #: ../dialer.c:274 msgid "Prefix 3" msgstr "Prefix 3" #: ../dialer.c:289 msgid "Phone number:" msgstr "Telefonní číslo:" #: ../dialer.c:319 msgid "Extension" msgstr "Klapka" #: ../dialer.c:341 msgid "Dial Command" msgstr "Příkaz pro vytáčení" #: ../export_gui.c:121 msgid "File Browser" msgstr "Prohlížeč souborů" #. Label for instructions #: ../export_gui.c:273 msgid "Select records to be exported" msgstr "Vyberte záznamy, které exportovat" #: ../export_gui.c:275 msgid "Use Ctrl and Shift Keys" msgstr "Použijte klávesy Ctrl a Shift" #. Import button #: ../import_gui.c:300 ../import_gui.c:369 ../import_gui.c:426 #: ../import_gui.c:471 ../jpilot.c:385 msgid "Import" msgstr "Importovat" #: ../import_gui.c:317 #, c-format msgid "Record was marked as private" msgstr "Záznam byl označen jako soukromý" #: ../import_gui.c:319 #, c-format msgid "Record was not marked as private" msgstr "Záznam nebyl označen jako soukromý" #: ../import_gui.c:328 #, c-format msgid "Category before import was: [%s]" msgstr "Kategorie před importem byla: [%s]" #: ../import_gui.c:336 #, c-format msgid "Record will be put in category [%s]" msgstr "Záznam bude umístěn do kategorie [%s]" #. Import All button #: ../import_gui.c:376 msgid "Import All" msgstr "Importovat vše" #. Skip button #: ../import_gui.c:383 msgid "Skip" msgstr "Přeskočit" #: ../import_gui.c:457 ../install_gui.c:429 msgid "To change to a hidden directory type it below and hit TAB" msgstr "Pro přepnutí do skrytého adresáře napište jeho jméno a stiskněte TAB" #: ../import_gui.c:484 msgid "Import File Type" msgstr "Typ importovaného souboru" #: ../install_gui.c:366 #, fuzzy msgid "Files to install" msgstr "Soubory, které instalovat" #: ../install_gui.c:374 msgid "Install" msgstr "Instalovat" #: ../install_user.c:118 ../install_user.c:220 #, fuzzy msgid "Install User" msgstr "/Soubor/Instalovat uživatele" #: ../install_user.c:139 msgid "" "A PalmOS(c) device needs a user name and a user ID in order to sync properly." msgstr "" #: ../install_user.c:146 msgid "" "If you want to sync more than 1 PalmOS(c) device each one should have a " "different ID and preferably a different user name." msgstr "" #. Instruction label #: ../install_user.c:168 msgid "Most people choose their name or nickname for the user name." msgstr "" #: ../install_user.c:176 ../restore_gui.c:278 msgid "User Name" msgstr "Jméno uživatele" #: ../install_user.c:186 msgid "The ID should be a random number." msgstr "" #: ../install_user.c:194 ../restore_gui.c:297 msgid "User ID" msgstr "ID uživatele" #: ../jpilot.c:319 msgid "Print" msgstr "Tisk" #: ../jpilot.c:320 msgid "There is no print support for this conduit." msgstr "Tento modul nepodporuje tisk." #: ../jpilot.c:386 msgid "There is no import support for this conduit." msgstr "Tento modul nepodporuje import." #: ../jpilot.c:430 msgid "There is no export support for this conduit." msgstr "Tento modul nepodporuje export." #: ../jpilot.c:659 #, fuzzy msgid " Cancelling HotSync\n" msgstr "Zrušit synchronizaci" #. ------------------------------------------- #: ../jpilot.c:675 #, fuzzy msgid "" "This handheld does not have the same user name or user ID\n" "as the one that was synced the last time.\n" "Syncing could have unwanted effects including data loss.\n" "\n" "Read the user manual if you are uncertain." msgstr "" "Tento palm nemá stejné jméno uživatele nebo\n" "ID uživatele jako ten, který byl synchronizován\n" "minule. Synchronizace může mít nežádoucí důsledky.\n" "Pokud si nejste jisti, přečtěte si příručku uživatele." #. ------------------------------------------- #: ../jpilot.c:682 #, fuzzy msgid "" "This handheld has a NULL user ID.\n" "Every handheld must have a unique user ID in order to sync properly.\n" "If the handheld has been hard reset, \n" " use restore from the menu to restore it.\n" "Otherwise, to add a new user name and ID\n" " use install-user from the menu.\n" "\n" "Read the user manual if you are uncertain." msgstr "" "Tent palm má id uživatele NULL.\n" "Každý palm musí pro správnou synchronizaci mít jedinečné id uživatele.\n" "Pokud byl tvrdě resetován, obnovte jej použitím obnovit z menu\n" "nebo použijte pilot-xfer.\n" "Jméno uživatele a ID přidejte použitím nástroje install-user v příkazovém " "řádku,\n" "nebo použijte install-user v menu\n" "Pokud si nejste jisti, přečtěte si příručku uživatele." #: ../jpilot.c:690 msgid "Cancel Sync" msgstr "Zrušit synchronizaci" #: ../jpilot.c:690 msgid "Sync Anyway" msgstr "Přesto synchronizovat" #: ../jpilot.c:699 ../jpilot.c:703 msgid "Sync Problem" msgstr "Problém při synchronizaci" #: ../jpilot.c:932 ../jpilot.c:1785 msgid " User: " msgstr " Uživatel: " #: ../jpilot.c:944 msgid "Unknown command from sync process\n" msgstr "Neznámý příkaz od procesu synchronizace\n" #: ../jpilot.c:963 ../Expense/expense.c:529 ../KeyRing/keyring.c:1872 #: ../SyncTime/synctime.c:61 #, c-format msgid "About %s" msgstr "O %s" #: ../jpilot.c:1105 msgid "/_File" msgstr "/_Soubor" #: ../jpilot.c:1106 msgid "/File/tear" msgstr "/Soubor/tear" #: ../jpilot.c:1107 msgid "/File/_Find" msgstr "/Soubor/_Hledat" #: ../jpilot.c:1108 ../jpilot.c:1114 ../jpilot.c:1117 msgid "/File/sep1" msgstr "/Soubor/sep1" #: ../jpilot.c:1109 msgid "/File/_Install" msgstr "/Soubor/_Instalovat" #: ../jpilot.c:1110 msgid "/File/Import" msgstr "/Soubor/Importovat" #: ../jpilot.c:1111 msgid "/File/Export" msgstr "/Soubor/Exportovat" #: ../jpilot.c:1112 ../jpilot.c:2190 msgid "/File/Preferences" msgstr "/Soubor/Nastavení" #: ../jpilot.c:1113 msgid "/File/_Print" msgstr "/Soubor/_Tisk" #: ../jpilot.c:1115 msgid "/File/Install User" msgstr "/Soubor/Instalovat uživatele" #: ../jpilot.c:1116 msgid "/File/Restore Handheld" msgstr "/Soubor/Obnovit handheld" #: ../jpilot.c:1118 msgid "/File/_Quit" msgstr "/Soubor/U_končit" #: ../jpilot.c:1119 msgid "/_View" msgstr "/_Zobrazit" #: ../jpilot.c:1120 ../jpilot.c:1121 ../jpilot.c:1122 ../jpilot.c:1368 msgid "/View/Hide Private Records" msgstr "/Zobrazit/Skrýt soukromé záznamy" #: ../jpilot.c:1121 ../jpilot.c:1371 msgid "/View/Show Private Records" msgstr "/Zobrazit/Zobrazovat soukromé záznamy" #: ../jpilot.c:1122 ../jpilot.c:1374 msgid "/View/Mask Private Records" msgstr "/Zobrazit/Maskovat soukromé záznamy" #: ../jpilot.c:1123 msgid "/View/sep1" msgstr "/Zobrazit/sep1" #: ../jpilot.c:1124 msgid "/View/Datebook" msgstr "/Zobrazit/Diář" #: ../jpilot.c:1125 msgid "/View/Addresses" msgstr "/Zobrazit/Kontakty" #: ../jpilot.c:1126 msgid "/View/Todos" msgstr "/Zobrazit/Úkoly" #: ../jpilot.c:1127 msgid "/View/Memos" msgstr "/Zobrazit/Poznámky" #: ../jpilot.c:1128 ../jpilot.c:1259 msgid "/_Plugins" msgstr "/_Moduly" #: ../jpilot.c:1130 msgid "/_Web" msgstr "/_WWW" #. web #: ../jpilot.c:1131 msgid "/Web/Netscape" msgstr "/WWW/Netscape" #: ../jpilot.c:1135 msgid "/Web/Mozilla" msgstr "/WWW/Mozilla" #: ../jpilot.c:1140 msgid "/Web/Galeon" msgstr "/WWW/Galeon" #: ../jpilot.c:1145 msgid "/Web/Opera" msgstr "/WWW/Opera" #: ../jpilot.c:1149 msgid "/Web/GnomeUrl" msgstr "/WWW/GnomeUrl" #: ../jpilot.c:1151 msgid "/Web/Lynx" msgstr "/WWW/Lynx" #: ../jpilot.c:1153 msgid "/Web/Links" msgstr "/WWW/Links" #: ../jpilot.c:1155 msgid "/Web/W3M" msgstr "/WWW/W3M" #: ../jpilot.c:1157 msgid "/Web/Konqueror" msgstr "/WWW/Konqueror" #: ../jpilot.c:1160 msgid "/_Help" msgstr "/_Nápověda" #: ../jpilot.c:1161 #, fuzzy msgid "/Help/About J-Pilot" msgstr "/Nápověda/J-Pilot" #: ../jpilot.c:1227 #, c-format msgid "/_Plugins/%s" msgstr "/_Moduly/%s" #: ../jpilot.c:1237 #, c-format msgid "/_Help/%s" msgstr "/_Nápověda/%s" #: ../jpilot.c:1591 msgid "calendar:week_start:0" msgstr "calendar:week_start:1" #: ../jpilot.c:1634 ../jpilot-sync.c:171 msgid "Not loading plugins.\n" msgstr "Nenačítám zásuvné moduly.\n" #: ../jpilot.c:1638 msgid "Ignoring all alarms.\n" msgstr "Ignoruji všechna upozornění.\n" #: ../jpilot.c:1642 msgid "Ignoring past alarms.\n" msgstr "Ignoruji minulá upozornění.\n" #: ../jpilot.c:1730 ../jpilot.c:1738 msgid "Unable to open pipe\n" msgstr "Nemohu otevřít rouru\n" #: ../jpilot.c:1947 #, fuzzy msgid "Show private records Ctrl+Z" msgstr "Zobrazovat soukromé záznamy Ctrl-Z" #: ../jpilot.c:1952 #, fuzzy msgid "Hide private records Ctrl+Z" msgstr "Skrýt soukromé záznamy Ctrl-Z" #: ../jpilot.c:1957 #, fuzzy msgid "Mask private records Ctrl+Z" msgstr "Maskovat soukromé záznamy Ctrl-Z" #: ../jpilot.c:1969 #, fuzzy msgid "Sync your palm to the desktop Ctrl+Y" msgstr "Synchronizovat váš palm s desktopem Ctrl-Y" #: ../jpilot.c:1981 #, fuzzy msgid "Stop Sync process" msgstr "Synchronizovat kontakty" #: ../jpilot.c:1993 msgid "" "Sync your palm to the desktop\n" "and then do a backup" msgstr "" "Synchronizovat palm s desktopem\n" "a pak provést zálohu" #: ../jpilot.c:2141 msgid "Datebook/Go to Today" msgstr "Diář/Jít na dnešek" #: ../jpilot.c:2142 msgid "Address Book" msgstr "Kontakty" #: ../jpilot.c:2143 msgid "ToDo List" msgstr "Seznam úkolů" #: ../jpilot.c:2144 msgid "Memo Pad" msgstr "Poznámky" #: ../jpilot.c:2172 msgid "Do it now" msgstr "Udělat to teď" #: ../jpilot.c:2172 msgid "Remind me later" msgstr "Připomeň mi to později" #: ../jpilot.c:2172 msgid "Don't tell me again!" msgstr "Už mi to neříkej!" #: ../jpilot.c:2185 #, fuzzy, c-format msgid "" "J-Pilot uses the GTK2 graphical toolkit. This version of the toolkit uses " "UTF-8 to encode characters.\n" "You should select a UTF-8 charset so that you can see non-ASCII characters " "(accents for example).\n" "\n" "Go to the menu \"%s\" and change the \"%s\"." msgstr "" "J-Pilot používá grafický toolkit GTK2. Tato verze toolkit používá pro " "kódování znaků UTF-8.\n" "Měli byste zvolit znakovou sadu UTF-8, abyste mohli vidět ne-ASCII znaky " "(např. diakritiku).\n" "\n" #. Character Set #: ../jpilot.c:2190 ../prefs_gui.c:511 #, fuzzy msgid "Character Set" msgstr "Znaková sada " #: ../jpilot.c:2192 msgid "Select a UTF-8 encoding" msgstr "Zvolit kódování UTF-8" #: ../jpilot-dump.c:94 #, fuzzy, c-format msgid " +D +A +T +M format like date +format.\n" msgstr "" " +B +M +A +T formát jako date +format (pro více informací použijte -?).\n" #: ../jpilot-dump.c:95 #, fuzzy, c-format msgid " -v display version and exit\n" msgstr " -v zobrazí verzi a skončí.\n" #: ../jpilot-dump.c:96 ../jpilot-sync.c:68 ../utils.c:1874 #, fuzzy, c-format msgid " -h display help text\n" msgstr " -h zobrazí nápovědu a skončí.\n" #: ../jpilot-dump.c:97 #, fuzzy, c-format msgid " -f display help for format codes\n" msgstr " -h zobrazí nápovědu a skončí.\n" #: ../jpilot-dump.c:98 #, fuzzy, c-format msgid " -D dump DateBook\n" msgstr " -B vypsat dateBook.\n" #: ../jpilot-dump.c:99 #, c-format msgid " -i dump DateBook in iCalendar format\n" msgstr "" #: ../jpilot-dump.c:100 #, fuzzy, c-format msgid " -N dump appts for today in DateBook\n" msgstr " -N vypsat akce dnes v dateBook.\n" #: ../jpilot-dump.c:101 #, fuzzy, c-format msgid " -NYYYY/MM/DD dump appts on YYYY/MM/DD in DateBook\n" msgstr " -NRRRR/MM/DD vypsat akce dne DD.MM:RRRR v dateBook.\n" #: ../jpilot-dump.c:102 #, fuzzy, c-format msgid " -A dump Address book\n" msgstr " -A vypsat Kontakty.\n" #: ../jpilot-dump.c:103 #, fuzzy, c-format msgid " -T dump ToDo list as CSV\n" msgstr " -T vypsat Seznam úkolů jako CSV.\n" #: ../jpilot-dump.c:104 #, fuzzy, c-format msgid " -M dump Memos\n" msgstr " -M vypsat Poznámky.\n" #: ../jpilot-dump.c:165 #, c-format msgid "" "Warning: Host character encoding is not UTF-8 based.\n" "Exported ical file may not be standards-compliant\n" msgstr "" #: ../jpilot-merge.c:163 ../jpilot-merge.c:169 #, fuzzy, c-format msgid "%s: Unable to open file:%s\n" msgstr "Nemohu otevřít soubor: %s\n" #: ../jpilot-merge.c:271 #, c-format msgid "Records read from pdb = %d\n" msgstr "" #: ../jpilot-merge.c:272 #, c-format msgid "Records added = %d\n" msgstr "" #: ../jpilot-merge.c:273 #, c-format msgid "Records deleted = %d\n" msgstr "" #: ../jpilot-merge.c:274 #, c-format msgid "Records modified = %d\n" msgstr "" #: ../jpilot-merge.c:275 #, c-format msgid "Records written = %d\n" msgstr "" #: ../jpilot-merge.c:293 #, c-format msgid "Usage: %s {input pdb file} {input pc3 file} {output pdb file}\n" msgstr "" #: ../jpilot-merge.c:294 #, c-format msgid " This program will merge an unsynced records file (pc3)\n" msgstr "" #: ../jpilot-merge.c:295 #, c-format msgid "" " into the corresponding palm database (pdb) file.\n" "\n" msgstr "" #: ../jpilot-merge.c:296 #, c-format msgid " WARNING: Only run this utility if you understand the consequences!\n" msgstr "" #: ../jpilot-merge.c:297 #, c-format msgid " The merge will leave your databases in an unsync-able state.\n" msgstr "" #: ../jpilot-merge.c:298 #, c-format msgid "" " It is intended for cases where J-pilot is being used as a standalone PIM\n" msgstr "" #: ../jpilot-merge.c:299 #, c-format msgid " and where no syncing occurs to physical hardware.\n" msgstr "" #: ../jpilot-merge.c:300 #, c-format msgid " WARNING: Make a backup copy of your databases before proceeding.\n" msgstr "" #: ../jpilot-merge.c:301 #, c-format msgid "" " It is quite simple to destroy your databases by accidentally merging\n" msgstr "" #: ../jpilot-merge.c:302 #, c-format msgid " address records into datebook databases, etc.\n" msgstr "" #: ../jpilot-sync.c:66 #, fuzzy, c-format msgid "" " J-Pilot preferences are read to get sync info such as port, rate, number of " "backups, etc.\n" msgstr "" " Nastavení J-Pilot jsou čtena pro získání portu, rychlosti, počtu záloh " "atd.\n" #: ../jpilot-sync.c:67 ../utils.c:1873 #, fuzzy, c-format msgid " -v display version and compile options\n" msgstr " -v zobrazí verzi a přepínače při překladu a skončí.\n" #: ../jpilot-sync.c:69 ../utils.c:1875 #, fuzzy, c-format msgid " -d display debug info to stdout\n" msgstr " -d zobrazuje ladicí informace na stdout.\n" #: ../jpilot-sync.c:70 #, fuzzy, c-format msgid " -P skip loading plugins\n" msgstr "Nenačítám zásuvné moduly.\n" #: ../jpilot-sync.c:71 #, fuzzy, c-format msgid " -b sync, and then do a backup\n" msgstr "" "Synchronizovat palm s desktopem\n" "a pak provést zálohu" #: ../jpilot-sync.c:72 #, fuzzy, c-format msgid " -l loop, otherwise sync once and exit\n" msgstr " -l = opakovat, jinak synchronizovat jednou a skončit.\n" #: ../jpilot-sync.c:73 #, fuzzy, c-format msgid " -p {port} use this port to sync on instead of default\n" msgstr "" " -p {port} = Použít pro synchronizaci tento port místo čtení nastavení.\n" #: ../jpilot-sync.c:221 #, fuzzy, c-format msgid "Error: connecting to port %s\n" msgstr "Chyba při otevírání souboru: %s\n" #: ../jpilot-sync.c:225 #, c-format msgid "Error: pi_listen\n" msgstr "" #: ../jpilot-sync.c:229 #, fuzzy, c-format msgid "Error: opening conduit to handheld\n" msgstr "Chyba při otevírání souboru: next_id\n" #: ../jpilot-sync.c:233 #, c-format msgid "Error: pi_accept\n" msgstr "" #: ../jpilot-sync.c:237 ../jpilot-sync.c:265 #, fuzzy, c-format msgid "Error: " msgstr "Chyba" #: ../jpilot-sync.c:238 #, c-format msgid "This handheld does not have the same user name.\n" msgstr "" #: ../jpilot-sync.c:239 ../jpilot-sync.c:253 #, c-format msgid "as the one that was synced the last time.\n" msgstr "" #: ../jpilot-sync.c:241 #, c-format msgid "" "Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:243 ../jpilot-sync.c:256 #, c-format msgid " COPILOT_HOME" msgstr "" #: ../jpilot-sync.c:245 ../jpilot-sync.c:258 #, c-format msgid " JPILOT_HOME" msgstr "" #: ../jpilot-sync.c:247 ../jpilot-sync.c:260 #, fuzzy, c-format msgid " environment variable can be used to sync different handhelds,\n" msgstr "Vaše proměnná prostředí HOME je na mě moc dlouhá\n" #: ../jpilot-sync.c:248 ../jpilot-sync.c:261 #, c-format msgid " to different directories for the same UNIX user name.\n" msgstr "" #: ../jpilot-sync.c:252 #, c-format msgid "This handheld does not have the same user ID.\n" msgstr "" #: ../jpilot-sync.c:254 #, c-format msgid "" " Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:266 #, c-format msgid "This handheld has a NULL user ID.\n" msgstr "" #: ../jpilot-sync.c:267 #, c-format msgid "Every handheld must have a unique user ID in order to sync properly.\n" msgstr "" #: ../jpilot-sync.c:268 #, c-format msgid "If the handheld has been hard reset, \n" msgstr "" #: ../jpilot-sync.c:269 #, c-format msgid " use restore from within " msgstr "" #: ../jpilot-sync.c:270 #, c-format msgid "Otherwise, to add a new user name and ID\n" msgstr "" #: ../jpilot-sync.c:271 #, c-format msgid " use \"install-user %s name numeric_id\"\n" msgstr "" #: ../jpilot-sync.c:275 #, c-format msgid "Error: sync returned error %d\n" msgstr "" #: ../libplugin.c:64 ../utils.c:1054 msgid "" "This record is already deleted.\n" "It is scheduled to be deleted from the Palm on the next sync.\n" msgstr "" "Tento záznam již byl odstraněn.\n" "Bude z Palmu odstraněn při příští synchronizaci.\n" #: ../libplugin.c:73 ../libplugin.c:110 ../utils.c:1064 ../utils.c:1106 msgid "Unable to open PC records file\n" msgstr "Nemohu otevřít soubor záznamů PC\n" #: ../libplugin.c:79 ../utils.c:1071 msgid "Couldn't find record to delete\n" msgstr "Nemohu najít záznam, který odstranit\n" #: ../libplugin.c:97 ../utils.c:1091 #, c-format msgid "Unknown header version %d\n" msgstr "Neznámá verze hlavičky %d\n" #: ../libplugin.c:182 #, c-format msgid "%s:%d Error opening file: %s\n" msgstr "%s:%d Chyba při otevírání souboru: %s\n" #: ../libplugin.c:188 ../libplugin.c:217 ../sync.c:1721 ../todo.c:102 #, c-format msgid "%s:%d Error reading file: %s\n" msgstr "%s:%d Chyba při čtení souboru: %s\n" #: ../libplugin.c:340 ../libplugin.c:398 ../utils.c:2119 ../utils.c:2132 #, c-format msgid "Error opening file: %s\n" msgstr "Chyba při otevírání souboru: %s\n" #: ../libplugin.c:526 #, c-format msgid "Error reading %s 5\n" msgstr "Chyba při čtení %s 5\n" #: ../libplugin.c:801 msgid "Error reading PC file 1\n" msgstr "Chyba při čtení souboru PC 1\n" #: ../libplugin.c:817 msgid "Error reading PC file 2\n" msgstr "Chyba při čtení souboru PC 2\n" #: ../libplugin.c:923 #, c-format msgid "Unknown PC header version = %d\n" msgstr "Neznámá verze hlavičky PC = %d\n" #: ../log.c:101 #, c-format msgid "Unable to open log file, giving up.\n" msgstr "Nemohu otevřít soubor záznamu, vzdávám to.\n" #: ../log.c:111 #, c-format msgid "Unable to open log file\n" msgstr "Nemohu otevřít soubor záznamu\n" #: ../memo_gui.c:302 msgid "Memo text > 65535, truncating\n" msgstr "Text poznámky > 65535, zkracuji\n" #: ../memo_gui.c:330 #, c-format msgid "Imported Memo %s\n" msgstr "Importována poznámka %s\n" #: ../memo_gui.c:400 msgid "File doesn't appear to be memopad.dat format\n" msgstr "Soubor zřejmě není ve formátu memopad.dat\n" #: ../memo_gui.c:471 msgid "DAT/MPA (Palm Archive Formats)" msgstr "" #: ../memo_gui.c:554 #, c-format msgid "" "Memo exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:557 #, c-format msgid "" "Memos exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:584 #, c-format msgid "Can't export memo %d\n" msgstr "Nemohu exportovat poznámku %d\n" #: ../memo_gui.c:628 #, fuzzy, c-format msgid "Memo: %ld\n" msgstr "Poznámky" #: ../memo_gui.c:634 #, c-format msgid "----- Start of Memo -----\n" msgstr "" #: ../memo_gui.c:636 #, c-format msgid "" "\n" "----- End of Memo -----\n" "\n" msgstr "" #: ../memo_gui.c:668 msgid "B-Folders CSV" msgstr "" #: ../monthview_gui.c:438 msgid "Monthly View" msgstr "Pohled na měsíc" #: ../monthview_gui.c:480 msgid "Last month Alt+LeftArrow" msgstr "" #: ../monthview_gui.c:508 msgid "Next month Alt+RightArrow" msgstr "" #: ../otherconv.c:76 #, c-format msgid "%s: error exit from g_iconv_close(%s)\n" msgstr "" #: ../otherconv.c:201 #, c-format msgid "%s:%s g_convert_with_iconv error: %s, buff: %s\n" msgstr "" #: ../otherconv.c:203 msgid "last char truncated" msgstr "" #: ../otherconv.c:280 #, c-format msgid "UTF_to_other: %s\n" msgstr "" #: ../otherconv.c:294 #, c-format msgid "iconv: unconvertible sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:298 #, c-format msgid "iconv: incomplete UTF-8 sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:301 #, c-format msgid "iconv: buffer filled. stopped at place %d in '%s'\n" msgstr "" #: ../otherconv.c:304 #, c-format msgid "iconv: unexpected error at place %d in '%s'\n" msgstr "" #: ../password.c:283 msgid "Palm Password" msgstr "Heslo Palmu" #: ../password.c:308 msgid "Incorrect, Reenter PalmOS Password" msgstr "Nesprávné, vložte znovu heslo PalmOS" #: ../password.c:310 msgid "Enter PalmOS Password" msgstr "Vložte heslo PalmOS" #: ../pidfile.c:67 msgid "removing stale pidfile\n" msgstr "" #: ../pidfile.c:91 #, fuzzy, c-format msgid "create pidfile failed: %s\n" msgstr "Chyba při čtení souboru: %s\n" #: ../pidfile.c:92 msgid "Warning: hotplug syncing disabled.\n" msgstr "" #: ../plugins.c:90 ../plugins.c:203 ../restore_gui.c:133 msgid "infinite loop" msgstr "nekonečná smyčka" #: ../plugins.c:216 #, c-format msgid "While reading %s%s line 1:[%s]\n" msgstr "Při čtení %s%s řádek 1:[%s]\n" #: ../plugins.c:217 msgid "Wrong Version\n" msgstr "Špatná verze\n" #: ../plugins.c:218 msgid "Check preferences->conduits\n" msgstr "Zkontrolujte nastavení->moduly\n" #: ../plugins.c:274 #, c-format msgid "" "Open failed on plugin [%s]\n" " error [%s]\n" msgstr "" "Otevření selhalo u zásuvného modulu [%s]\n" " chyba [%s]\n" #: ../plugins.c:291 ../plugins.c:316 #, c-format msgid " plugin is invalid: [%s]\n" msgstr " zásuvný modul není platný: [%s]\n" #: ../plugins.c:299 #, c-format msgid "Plugin:[%s]\n" msgstr "Zásuvný modul:[%s]\n" #: ../plugins.c:300 #, c-format msgid "This plugin is version (%d.%d).\n" msgstr "Tento zásuvný modul má verzi (%d.%d).\n" #: ../plugins.c:302 msgid "It is too old to work with this version of J-Pilot.\n" msgstr "Je moc starý pro práci s touto verzí J-Pilot.\n" #: ../prefs.c:420 msgid "%B %d, %Y" msgstr "%B %d, %Y" #: ../prefs.c:421 msgid "%d %B %Y" msgstr "%d %B %Y" #: ../prefs.c:422 msgid "%d. %B %Y" msgstr "%d. %B %Y" #: ../prefs.c:423 msgid "%d %B, %Y" msgstr "%d %B, %Y" #: ../prefs.c:424 msgid "%Y. %B. %d" msgstr "%Y. %B. %d" #: ../prefs.c:425 msgid "%Y %B %d" msgstr "%Y %B %d" #: ../prefs_gui.c:454 msgid "Preferences" msgstr "Nastavení" #: ../prefs_gui.c:485 msgid "Locale" msgstr "Locale" #: ../prefs_gui.c:487 msgid "Settings" msgstr "Nastavení" #: ../prefs_gui.c:489 msgid "Datebook" msgstr "Diář" #: ../prefs_gui.c:493 msgid "ToDo" msgstr "Úkoly" #: ../prefs_gui.c:495 msgid "Memo" msgstr "Poznámky" #: ../prefs_gui.c:497 msgid "Alarms" msgstr "Upozornění" #: ../prefs_gui.c:499 msgid "Conduits" msgstr "Moduly" #. Shortdate #: ../prefs_gui.c:524 #, fuzzy msgid "Short date format" msgstr "Formát krátkého data " #. Longdate #: ../prefs_gui.c:537 #, fuzzy msgid "Long date format" msgstr "Formát dlouhého data " #. Time #: ../prefs_gui.c:550 #, fuzzy msgid "Time format" msgstr "Formát času " #. GTK colors file #: ../prefs_gui.c:570 #, fuzzy msgid "GTK color theme file" msgstr "Můj soubor barev GTK je " #. Port #: ../prefs_gui.c:583 #, fuzzy msgid "Sync Port" msgstr "Problém při synchronizaci" #. Serial Rate #: ../prefs_gui.c:607 msgid "Serial Rate" msgstr "" #. Number of backups #: ../prefs_gui.c:627 msgid "Number of backups to be archived" msgstr "Počet záloh, které archivovat" #. Show deleted files check box #: ../prefs_gui.c:645 msgid "Show deleted records (default NO)" msgstr "Zobrazovat odstraněné záznamy (implicitně NE)" #. Show modified files check box #: ../prefs_gui.c:649 msgid "Show modified deleted records (default NO)" msgstr "Zobrazovat změněné odstraněné záznamy (implicitně NE)" #: ../prefs_gui.c:654 msgid "Ask confirmation for file installation (J-Pilot -> PDA) (default YES)" msgstr "" "Žádat o potvrzení před instalací souborů (J-Pilot -> PDA) (implicitně ANO)" #. Show tooltips check box #: ../prefs_gui.c:658 #, fuzzy msgid "Show popup tooltips (default YES) (requires restart)" msgstr "Zobrazovat vyskakovací tipy (implicitně ANO)" #: ../prefs_gui.c:668 msgid "Use Datebook database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:671 msgid "Use Calendar database (Palm OS > 5.2)" msgstr "" #. Show highlight days check box #: ../prefs_gui.c:697 msgid "Highlight calendar days with appointments" msgstr "Zvýrazňovat v kalendáři dny s akcí" #. Highlight today on month and week view #: ../prefs_gui.c:702 msgid "Annotate today in day, week, and month views" msgstr "Označit dnešek v pohledech na den, týden a měsíc" #. Show number of years on anniversaries in month and week view #: ../prefs_gui.c:706 msgid "Append years on anniversaries in day, week, and month views" msgstr "Připojit roky k výročím v pohledech na den, týden a měsíc" #. Show use DateBk check box #: ../prefs_gui.c:712 msgid "Use DateBk note tags" msgstr "Používat značky poznámek DateBk" #: ../prefs_gui.c:715 msgid "DateBk support disabled in this build" msgstr "Podpora DateBk v tomto přeložení zakázána" #: ../prefs_gui.c:727 msgid "Use Address database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:730 msgid "Use Contacts database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:759 msgid "Mail Command" msgstr "Příkaz pro poštu" #: ../prefs_gui.c:773 #, c-format msgid "%s is replaced by the e-mail address" msgstr "%s je nahrazeno časem e-mailovou adresou" #: ../prefs_gui.c:785 msgid "Use ToDo database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:788 msgid "Use Task database (Palm OS > 5.2)" msgstr "" #. hide completed check box #: ../prefs_gui.c:815 msgid "Hide Completed ToDos" msgstr "Skrýt dokončené úkoly" #. hide todos not yet due check box #: ../prefs_gui.c:819 msgid "Hide ToDos not yet due" msgstr "Skrýt úkoly, které ještě nemají být hotovy" #. record todo completion date check box #: ../prefs_gui.c:823 msgid "Record Completion Date" msgstr "Zaznamenat datum dokončení" #. Use Manana check box #: ../prefs_gui.c:828 msgid "Use Manana database" msgstr "Použít databázi Mañana" #: ../prefs_gui.c:836 msgid "Use default number of days due" msgstr "Použít implicitní počet zbývajících dnů" #: ../prefs_gui.c:858 msgid "Use Memo database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:861 msgid "Use Memos database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:864 #, fuzzy msgid "Use Memo32 database (pedit32)" msgstr "Používat Memo32 (pedit32)" #: ../prefs_gui.c:904 msgid "External Editor" msgstr "" #: ../prefs_gui.c:917 msgid "Use Ctrl-E inside a memo to launch external editor for memo text" msgstr "" #. ******************************************************************** #. Alarms preference tab #. Open alarm windows check box #: ../prefs_gui.c:925 msgid "Open alarm windows for appointment reminders" msgstr "Otevírat okna s upozorněním pro připomínání akcí" #. Execute alarm command check box #: ../prefs_gui.c:929 msgid "Execute this command" msgstr "Spustit tento příkaz" #. Shell warning label #: ../prefs_gui.c:933 msgid "WARNING: executing arbitrary shell commands can be dangerous!!!" msgstr "VAROVÁNÍ: provádění libovolných příkazů shellu může být nebezpečné!!!" #: ../prefs_gui.c:941 msgid "Alarm Command" msgstr "Příkaz pro upozornění" #: ../prefs_gui.c:954 msgid "%t is replaced with the alarm time" msgstr "%t je nahrazeno časem upozornění" #: ../prefs_gui.c:958 #, c-format msgid "%d is replaced with the alarm date" msgstr "%d je nahrazeno datem upozornění" #: ../prefs_gui.c:963 msgid "%D is replaced with the alarm description" msgstr "%D je nahrazeno popisem upozornění" #: ../prefs_gui.c:967 msgid "%N is replaced with the alarm note" msgstr "%N je nahrazeno poznámkou upozornění" #: ../prefs_gui.c:971 msgid "%D (description substitution) is disabled in this build" msgstr "%D (nahrazení popisu) je v tomto přeložení zakázáno" #: ../prefs_gui.c:976 msgid "%N (note substitution) is disabled in this build" msgstr "%D (nahrazení poznámky) je v tomto přeložení zakázáno" #. ******************************************************************** #. Conduits preference tab #. Sync datebook check box #: ../prefs_gui.c:986 msgid "Sync datebook" msgstr "Synchronizovat diář" #. Sync address check box #: ../prefs_gui.c:990 msgid "Sync address" msgstr "Synchronizovat kontakty" #. Sync todo check box #: ../prefs_gui.c:994 msgid "Sync todo" msgstr "Synchronizovat úkoly" #. Sync memo check box #: ../prefs_gui.c:998 msgid "Sync memo" msgstr "Synchronizovat poznámky" #. Show sync Manana check box #: ../prefs_gui.c:1003 msgid "Sync Manana" msgstr "Synchronizovat Mañana" #. Show use Japanese Kana extention check box #: ../prefs_gui.c:1009 msgid "Use J-OS (Not Japanese PalmOS:WorkPad/CLIE)" msgstr "Používat J-OS (Ne japonský PalmOS:WorkPad/CLIE)" #. Make a Sync checkbox for each plugin #: ../prefs_gui.c:1022 #, c-format msgid "Sync %s (%s)" msgstr "Synchronizovat %s (%s)" #: ../print_gui.c:185 msgid "Print Options" msgstr "Možnosti tisku" #: ../print_gui.c:198 msgid "Paper Size" msgstr "Velikost papíru" #: ../print_gui.c:214 msgid "Daily Printout" msgstr "Denní sestava" #: ../print_gui.c:220 msgid "Weekly Printout" msgstr "Týdenní sestava" #: ../print_gui.c:226 msgid "Monthly Printout" msgstr "Měsíční sestava" #: ../print_gui.c:266 #, fuzzy msgid "Selected record" msgstr "Odstraněn záznam %s." #: ../print_gui.c:270 msgid "All records in this category" msgstr "Všechny záznamy této kategorie" #: ../print_gui.c:274 msgid "Print all records" msgstr "Vytisknout všechny záznamy" #: ../print_gui.c:296 msgid "One record per page" msgstr "Jeden záznam na stránku" #: ../print_gui.c:312 #, fuzzy msgid "Blank lines between each record" msgstr " Prázdné řádky mezi záznamy" #. Print Command #: ../print_gui.c:321 msgid "Print Command (e.g. lpr, or cat > file.ps)" msgstr "Tiskový příkaz (např. lpr nebo cat > soubor.ps)" #: ../restore_gui.c:71 ../restore_gui.c:229 msgid "Restore Handheld" msgstr "Obnovit handheld" #: ../restore_gui.c:176 ../restore_gui.c:178 msgid "Unable to convert filename for GTK display\n" msgstr "" #: ../restore_gui.c:177 msgid "See console log to find which file will not be restored\n" msgstr "" #: ../restore_gui.c:179 #, fuzzy, c-format msgid "File %s will not be restored\n" msgstr "Soubory, které instalovat" #. Label for instructions #: ../restore_gui.c:246 msgid "To restore your handheld:" msgstr "Pro obnovení vašeho handheldu:" #: ../restore_gui.c:249 #, fuzzy msgid "1. Choose the applications you wish to restore. The default is all." msgstr "" "1. Zavřete všechny aplikace, které chcete obnovit. Implicitně se obnovují " "všechny." #: ../restore_gui.c:252 msgid "2. Enter the User Name and User ID." msgstr "2. Zadejte jméno uživatele a ID uživatele." #: ../restore_gui.c:255 msgid "3. Press the OK button." msgstr "3. Stiskněte tlačítko Budiž." #: ../restore_gui.c:258 msgid "This will overwrite data that is currently on the handheld." msgstr "To přepíše data, která momentálně jsou v handheldu." #: ../search_gui.c:144 msgid "datebook" msgstr "diář" #: ../search_gui.c:146 #, fuzzy msgid "calendar" msgstr "Vymazat" #: ../search_gui.c:233 msgid "address" msgstr "Kontakty" #: ../search_gui.c:235 msgid "contact" msgstr "" #: ../search_gui.c:304 msgid "todo" msgstr "úkoly" #: ../search_gui.c:361 msgid "memo" msgstr "poznámky" #: ../search_gui.c:363 #, fuzzy msgid "memos" msgstr "poznámky" #: ../search_gui.c:421 msgid "plugin ?" msgstr "zásuvný modul ?" #: ../search_gui.c:501 msgid "No records found" msgstr "Nenalezeny žádné záznamy" #: ../search_gui.c:600 msgid "Search" msgstr "Hledat" #. Search label #: ../search_gui.c:617 msgid "Search for: " msgstr "Hledat: " #. Case Sensitive checkbox #: ../search_gui.c:626 msgid "Case Sensitive" msgstr "Rozlišovat velikost písmen" #: ../sync.c:120 msgid "open lock file failed\n" msgstr "otevření souboru zámku selhalo\n" #: ../sync.c:133 msgid "lock failed\n" msgstr "zamčení selhalo\n" #: ../sync.c:136 #, c-format msgid "sync file is locked by pid %d\n" msgstr "soubor synchronizace je zamčen pid %d\n" #: ../sync.c:171 msgid "unlock failed\n" msgstr "odemčení selhalo\n" #: ../sync.c:174 #, c-format msgid "sync is locked by pid %d\n" msgstr "synchronizace je zamčena pid %d\n" #: ../sync.c:410 #, fuzzy msgid "Check your sync port and settings\n" msgstr "Zkontrolujte svůj sériový port a nastavení\n" #: ../sync.c:669 msgid "Unable to read home dir\n" msgstr "Nemohu číst domovský adresář\n" #: ../sync.c:1075 ../sync.c:1413 #, c-format msgid "%s (Creator ID '%s') is up to date, fetch skipped.\n" msgstr "%s (ID tvůrce '%s') je aktuální, stahování přeskočeno.\n" #: ../sync.c:1079 ../sync.c:1417 #, c-format msgid "Fetching '%s' (Creator ID '%s')... " msgstr "Stahuji '%s' (ID tvůrce '%s')... " #: ../sync.c:1086 ../sync.c:1423 #, c-format msgid "Failed, unable to create file %s\n" msgstr "Selhalo, nemohu vytvořit soubor %s\n" #: ../sync.c:1090 ../sync.c:1428 #, c-format msgid "Failed, unable to back up database %s\n" msgstr "Selhalo, nemohu zazálohovat databázi %s\n" #: ../sync.c:1094 ../sync.c:1432 ../sync.c:1619 msgid "OK\n" msgstr "Budiž\n" #: ../sync.c:1294 #, c-format msgid "Skipping %s (Creator ID '%s')\n" msgstr "Přeskakuji %s (ID tvůrce '%s')\n" #: ../sync.c:1488 #, c-format msgid "Installing %s " msgstr "Instaluji %s " #: ../sync.c:1494 ../sync.c:1530 #, c-format msgid "" "\n" "Unable to open file: '%s': %s!\n" msgstr "" "\n" "Nemohu otevřít soubor: '%s': %s!\n" #: ../sync.c:1498 #, c-format msgid "" "\n" "Unable to sync file: '%s': file corrupted?\n" msgstr "" "\n" "Nemohu synchronizovat soubor: '%s': poškozený soubor?\n" #: ../sync.c:1514 #, fuzzy, c-format msgid "(Creator ID '%s')... " msgstr "(ID tvůrce je '%s')..." #: ../sync.c:1518 #, fuzzy, c-format msgid "(Creator ID '%s') " msgstr "(ID tvůrce je '%s')..." #: ../sync.c:1520 #, fuzzy, c-format msgid "(SDcard dir %s)... " msgstr "(ID tvůrce je '%s')..." #: ../sync.c:1552 ../sync.c:1565 ../sync.c:1580 ../sync.c:1593 #, c-format msgid "" "\n" "Unable to open file: %s\n" msgstr "" "\n" "Nemohu otevřít soubor: %s\n" #: ../sync.c:1605 #, c-format msgid "Install %s failed" msgstr "Instalace %s selhala" #: ../sync.c:1609 msgid "Failed.\n" msgstr "Chyba.\n" #: ../sync.c:1615 #, fuzzy, c-format msgid "Installed %s" msgstr "Nainstalováno %s " #: ../sync.c:1726 #, c-format msgid "%s:%d Error getting app info %s\n" msgstr "%s:%d Chyba při získávání informace o aplikaci %s\n" #: ../sync.c:1732 ../sync.c:1762 #, c-format msgid "%s:%d Error unpacking app info %s\n" msgstr "%s:%d Chyba při rozbalování informace o aplikaci %s\n" #: ../sync.c:1753 #, c-format msgid "Error reading appinfo block for %s\n" msgstr "Chyba při čtení bloku appinfo pro %s\n" #. Fix - need a func for this logging #: ../sync.c:1991 ../sync.c:1995 #, c-format msgid "Could not add category %s to remote.\n" msgstr "Nemohu přidat kategorii %s do vzdáleného.\n" #: ../sync.c:1992 ../sync.c:1998 #, c-format msgid "Too many categories on remote.\n" msgstr "Příliš mnoho kategorií na vzdáleném.\n" #: ../sync.c:1993 ../sync.c:2001 #, c-format msgid "All records on desktop in %s will be moved to %s.\n" msgstr "Všechny záznamy na desktopu v %s budou přesunuty do %s.\n" #: ../sync.c:2096 ../sync.c:2814 #, c-format msgid "Syncing %s\n" msgstr "Synchronizuji %s\n" #: ../sync.c:2104 ../sync.c:2457 ../sync.c:2822 #, c-format msgid "Wrote an %s record." msgstr "Zapsal jsem záznam %s." #: ../sync.c:2106 ../sync.c:2459 ../sync.c:2824 #, c-format msgid "Writing an %s record failed." msgstr "Zápis záznamu %s selhal." #: ../sync.c:2108 ../sync.c:2461 ../sync.c:2826 #, c-format msgid "Deleting an %s record failed." msgstr "Odstraňování záznamu %s selhalo." #: ../sync.c:2110 ../sync.c:2463 ../sync.c:2828 #, c-format msgid "Deleted an %s record." msgstr "Odstraněn záznam %s." #: ../sync.c:2112 ../sync.c:2465 #, fuzzy, c-format msgid "Sync Conflict: duplicated an %s record." msgstr "Odstraněn záznam %s." #: ../sync.c:2115 ../sync.c:2468 ../sync.c:2831 #, c-format msgid "Wrote a %s record." msgstr "Zapsán záznam %s." #: ../sync.c:2117 ../sync.c:2470 ../sync.c:2833 #, c-format msgid "Writing a %s record failed." msgstr "Zápis záznamu %s selhal." #: ../sync.c:2119 ../sync.c:2472 ../sync.c:2835 #, c-format msgid "Deleting a %s record failed." msgstr "Odstraňování záznamu %s selhalo." #: ../sync.c:2121 ../sync.c:2474 ../sync.c:2837 #, c-format msgid "Deleted a %s record." msgstr "Odstraněn záznam %s." #: ../sync.c:2123 ../sync.c:2476 #, c-format msgid "Sync Conflict: duplicated a %s record." msgstr "" #: ../sync.c:2227 ../sync.c:2557 #, c-format msgid "Sync Conflict: a %s record must be manually merged\n" msgstr "" #: ../sync.c:2358 ../sync.c:2698 msgid "" "dlp_DeleteRecord failed\n" "This could be because the record was already deleted on the Palm\n" msgstr "" "dlp_DeleteRecord selhalo\n" "To je možná protože záznam již byl na Palmu odstraněn\n" #: ../sync.c:2927 msgid "Finished installing user information.\n" msgstr "Instalace informací o uživateli dokončena.\n" #: ../sync.c:3084 #, c-format msgid " Syncing on device %s\n" msgstr " Synchronizuji se zařízením %s\n" #: ../sync.c:3085 msgid " Press the HotSync button now\n" msgstr " Teď stiskněte tlačítko HotSync\n" #: ../sync.c:3127 ../sync.c:3149 ../sync.c:3170 #, c-format msgid "Last Synced Username-->\"%s\"\n" msgstr "Jméno uživatele poslední synchronizace-->\"%s\"\n" #: ../sync.c:3128 ../sync.c:3150 ../sync.c:3171 #, c-format msgid "Last Synced UserID-->\"%d\"\n" msgstr "Poslední ID uživatele synchronizace-->\"%d\"\n" #: ../sync.c:3129 ../sync.c:3151 ../sync.c:3172 #, c-format msgid " This Username-->\"%s\"\n" msgstr " Toto jméno uživatele-->\"%s\"\n" #: ../sync.c:3130 ../sync.c:3152 ../sync.c:3173 #, c-format msgid " This User ID-->%d\n" msgstr " Toto ID uživatele-->\"%d\"\n" #: ../sync.c:3194 #, c-format msgid "Username is \"%s\"\n" msgstr "Jméno uživatele je \"%s\"\n" #: ../sync.c:3195 #, c-format msgid "User ID is %d\n" msgstr "ID uživatele je %d\n" #: ../sync.c:3197 #, c-format msgid "lastSyncPC = %d\n" msgstr "lastSyncPC = %d\n" #: ../sync.c:3198 #, c-format msgid "This PC = %lu\n" msgstr "Toto PC = %lu\n" #: ../sync.c:3222 msgid "Sync canceled\n" msgstr "Synchronizace přerušena\n" # FIXME: so don't make it translatable! #: ../sync.c:3245 msgid "Finished restoring handheld.\n" msgstr "Finished restoring handheld.\n" #: ../sync.c:3246 msgid "You may need to sync to update J-Pilot.\n" msgstr "You may need to sync to update J-Pilot.\n" #: ../sync.c:3268 msgid "Doing a fast sync.\n" msgstr "Provádím rychlou synchronizaci.\n" #: ../sync.c:3281 msgid "Doing a slow sync.\n" msgstr "Provádím pomalou synchronizaci.\n" #: ../sync.c:3356 msgid "Thank you for using J-Pilot." msgstr "Děkujeme vám za použití J-Pilot." #: ../sync.c:3401 ../sync.c:3469 msgid "Finished.\n" msgstr "Finished.\n" #: ../sync.c:3436 #, c-format msgid "%s: sync process already in progress (process ID = %d)\n" msgstr "" #: ../sync.c:3437 #, fuzzy, c-format msgid "" "%s: press the HotSync button on the cradle\n" " or stop the sync by using the cancel sync button\n" " or stop the sync by typing \"kill %d\" at the command line\n" msgstr "%s: stiskněte tlačítko hotsync na kolébce nebo \"kill %d\"\n" #: ../sync.c:3468 #, c-format msgid "Exiting with status %s\n" msgstr "Končím se stavem %s\n" #: ../todo.c:266 #, c-format msgid "ToDo description text > %d, truncating to %d\n" msgstr "Popis úkolu > %d, zkracuji na %d\n" #: ../todo.c:272 #, c-format msgid "ToDo note text > %d, truncating to %d\n" msgstr "Poznámka úkolu > %d, zkracuji na %d\n" #: ../todo_gui.c:161 msgid "Due Date" msgstr "Termín" #: ../todo_gui.c:532 msgid "File doesn't appear to be todo.dat format\n" msgstr "Soubor zřejmě není ve formátu todo.dat\n" #: ../todo_gui.c:596 msgid "DAT/TDA (Palm Archive Formats)" msgstr "" #: ../todo_gui.c:688 #, c-format msgid "" "ToDo exported from %s %s on %s\n" "\n" msgstr "" #: ../todo_gui.c:726 #, c-format msgid "Can't export todo %d\n" msgstr "Nemohu exportovat úkol %d\n" #: ../todo_gui.c:766 #, fuzzy, c-format msgid "Due Date: None\n" msgstr "Termín" #: ../todo_gui.c:769 #, fuzzy, c-format msgid "Due Date: %s\n" msgstr "Termín" #: ../todo_gui.c:771 #, fuzzy, c-format msgid "Priority: %d\n" msgstr "Priorita: " #: ../todo_gui.c:772 #, fuzzy, c-format msgid "Completed: %s\n" msgstr "Dokončeno" #: ../todo_gui.c:774 #, c-format msgid "Description: %s\n" msgstr "" #: ../todo_gui.c:777 #, c-format msgid "" "Note: %s\n" "\n" msgstr "" #: ../todo_gui.c:1610 msgid "Priority out of range\n" msgstr "Priorita mimo rozsah\n" #: ../todo_gui.c:1932 ../KeyRing/keyring.c:1310 #, c-format msgid "No date" msgstr "Neurčen" #. Completed checkbox #: ../todo_gui.c:2414 msgid "Completed" msgstr "Dokončeno" #: ../todo_gui.c:2421 #, fuzzy msgid "Priority:" msgstr "Priorita: " #: ../todo_gui.c:2423 msgid "Set priority Alt+#" msgstr "" #: ../todo_gui.c:2444 msgid "Date Due:" msgstr "Termín:" #: ../utils.c:332 msgid "Today" msgstr "Dnešek" #: ../utils.c:577 #, c-format msgid "Couldn't find empty DB file %s: %s\n" msgstr "Nemohu najít prázdný DB soubor %s: %s\n" #: ../utils.c:580 msgid " may not be installed.\n" msgstr " možná není nainstalován.\n" #. Can't create directory #: ../utils.c:615 ../utils.c:619 #, c-format msgid "Can't create directory %s\n" msgstr "Nemohu vytvořit adresář %s\n" #: ../utils.c:625 #, fuzzy, c-format msgid "%s is not a directory\n" msgstr "%s je adresář" #: ../utils.c:630 #, fuzzy, c-format msgid "Unable to get write permission for directory %s\n" msgstr "Nemohu zapisovat soubory do adresáře %s\n" #: ../utils.c:1330 ../utils.c:1354 msgid "Save Changed Record?" msgstr "Uložit změněný záznam?" #: ../utils.c:1331 ../utils.c:1355 msgid "Do you want to save the changes to this record?" msgstr "Chcete uložit změny tohoto záznamu?" #: ../utils.c:1336 ../utils.c:1360 msgid "Save New Record?" msgstr "Uložit nový záznam?" #: ../utils.c:1337 ../utils.c:1361 msgid "Do you want to save this new record?" msgstr "Chcete tento nový záznam uložit?" #: ../utils.c:1652 msgid "infinite loop, breaking\n" msgstr "nekonečná smyčka, přerušuji\n" #: ../utils.c:1876 #, fuzzy, c-format msgid " -p skip loading plugins\n" msgstr "Nenačítám zásuvné moduly.\n" #: ../utils.c:1877 #, fuzzy, c-format msgid " -a ignore missed alarms since the last time program was run\n" msgstr "" " -a ignorovat upozornění zmeškaná od posledního spuštění tohoto programu.\n" #: ../utils.c:1878 #, fuzzy, c-format msgid " -A ignore all alarms past and future\n" msgstr " -A ignorovat všechna upozornění)); minulá i budoucí.\n" #: ../utils.c:1879 #, c-format msgid " -s start sync using existing instance of GUI\n" msgstr "" #: ../utils.c:1880 #, c-format msgid " -i iconify program immediately after launch\n" msgstr "" #: ../utils.c:1881 #, c-format msgid "" " -geometry {X geometry} use specified geometry for main window\n" "\n" msgstr "" #: ../utils.c:1882 #, fuzzy, c-format msgid " The PILOTPORT and PILOTRATE environment variables specify\n" msgstr " Proměnné prostředí PILOPORT a PILOTRATE se používají pro určení\n" #: ../utils.c:1883 #, c-format msgid " which port to sync on, and at what speed.\n" msgstr " na kterém portu a jakou rychlostí synchronizovat.\n" #: ../utils.c:1884 #, c-format msgid " If PILOTPORT is not set then it defaults to /dev/pilot.\n" msgstr " Pokud PILOTPORT není nastaven, je implicitně /dev/pilot.\n" #: ../utils.c:1921 msgid "Error reading file" msgstr "Chyba při čtení souboru" #: ../utils.c:1971 msgid "Date compiled" msgstr "Datum překladu" #: ../utils.c:1972 msgid "Compiled with these options:" msgstr "Přeložen s těmito přepínači:" #: ../utils.c:1974 msgid "Installed Path" msgstr "Instalovaná cesta" #: ../utils.c:1976 msgid "pilot-link version" msgstr "verze pilot-link" #: ../utils.c:1980 msgid "USB support" msgstr "Podpora USB" #: ../utils.c:1981 ../utils.c:1984 ../utils.c:1990 ../utils.c:1996 #: ../utils.c:2002 ../utils.c:2008 ../utils.c:2013 msgid "yes" msgstr "ano" #: ../utils.c:1982 msgid "Private record support" msgstr "Podpora soukromých záznamů" #: ../utils.c:1986 ../utils.c:1992 ../utils.c:1998 ../utils.c:2004 #: ../utils.c:2010 msgid "no" msgstr "ne" #: ../utils.c:1988 msgid "Datebk support" msgstr "Podpora datebk" #: ../utils.c:1994 msgid "Plugin support" msgstr "Podpora zásuvných modulů" #: ../utils.c:2000 msgid "Manana support" msgstr "Podpora Mañana" #: ../utils.c:2006 msgid "NLS support (foreign languages)" msgstr "Podpora NLS (cizí jazyky)" #: ../utils.c:2012 msgid "GTK2 support" msgstr "Podpora GTK2" #. No HOME var #: ../utils.c:2055 msgid "Can't get HOME environment variable\n" msgstr "Nemohu získat proměnnou prostředí HOME\n" #: ../utils.c:2062 #, fuzzy msgid "HOME environment variable is too long to process\n" msgstr "Vaše proměnná prostředí HOME je na mě moc dlouhá\n" #: ../utils.c:2557 #, fuzzy msgid "Edit Categories..." msgstr "Upravit kategorie" #: ../utils.c:3223 msgid "PC ID is 0.\n" msgstr "ID PC je 0\n" #: ../utils.c:3224 #, fuzzy, c-format msgid "Generated a new PC ID. It is %lu\n" msgstr "Vygeneroval jsem nové ID PC. Je to %lu\n" #: ../utils.c:3309 msgid "Invalid UTF-8 encoding in export string\n" msgstr "" #: ../utils.c:3470 #, c-format msgid "Today is %A, %x %X" msgstr "Dnes je %A, %x %X" #: ../utils.c:3472 #, c-format msgid "Today is %%A, %s %s" msgstr "Dnes je %%A, %s %s" #: ../utils.c:3701 #, c-format msgid "" "Incorrect header format for CSV import\n" "Check line 1 of file %s\n" "Aborting import\n" msgstr "" #: ../utils.c:3738 #, fuzzy, c-format msgid "Error writing version header to file: %s%s\n" msgstr "Chyba při zápisu hlavičky PC do souboru: next_id\n" #: ../utils.c:3743 #, fuzzy, c-format msgid "Error writing next id to file: %s%s" msgstr "Chyba při zápisu dalšího id do souboru: next_id\n" #: ../weekview_gui.c:297 msgid "Weekly View" msgstr "Pohled na týden" #: ../weekview_gui.c:337 msgid "Last week Alt+LeftArrow" msgstr "" #: ../weekview_gui.c:366 msgid "Next week Alt+RightArrow" msgstr "" #: ../Expense/expense.c:97 msgid "Australia" msgstr "Austrálie" #: ../Expense/expense.c:98 msgid "Austria" msgstr "Rakousko" #: ../Expense/expense.c:99 msgid "Belgium" msgstr "Belgie" #: ../Expense/expense.c:100 msgid "Brazil" msgstr "Brazílie" #: ../Expense/expense.c:101 msgid "Canada" msgstr "Kanada" #: ../Expense/expense.c:102 msgid "Denmark" msgstr "Dánsko" #: ../Expense/expense.c:103 msgid "EU (Euro)" msgstr "EU (Euro)" #: ../Expense/expense.c:104 msgid "Finland" msgstr "Finsko" #: ../Expense/expense.c:105 msgid "France" msgstr "Francie" #: ../Expense/expense.c:106 msgid "Germany" msgstr "Německo" #: ../Expense/expense.c:107 msgid "Hong Kong" msgstr "Hong Kong" #: ../Expense/expense.c:108 msgid "Iceland" msgstr "Island" #: ../Expense/expense.c:109 msgid "India" msgstr "Indie" #: ../Expense/expense.c:110 msgid "Indonesia" msgstr "Indonésie" #: ../Expense/expense.c:111 msgid "Ireland" msgstr "Irsko" #: ../Expense/expense.c:112 msgid "Italy" msgstr "Itálie" #: ../Expense/expense.c:113 msgid "Japan" msgstr "Japonsko" #: ../Expense/expense.c:114 msgid "Korea" msgstr "Korea" #: ../Expense/expense.c:115 msgid "Luxembourg" msgstr "Lucembursko" #: ../Expense/expense.c:116 msgid "Malaysia" msgstr "Malajsie" #: ../Expense/expense.c:117 msgid "Mexico" msgstr "Mexiko" #: ../Expense/expense.c:118 msgid "Netherlands" msgstr "Nizozemsko" #: ../Expense/expense.c:119 msgid "New Zealand" msgstr "Nový Zéland" #: ../Expense/expense.c:120 msgid "Norway" msgstr "Norsko" #: ../Expense/expense.c:121 msgid "P.R.C." msgstr "Čínská lidová republika" #: ../Expense/expense.c:122 msgid "Philippines" msgstr "Filipíny" #: ../Expense/expense.c:123 msgid "Singapore" msgstr "Singapur" #: ../Expense/expense.c:124 msgid "Spain" msgstr "Španělsko" #: ../Expense/expense.c:125 msgid "Sweden" msgstr "Švédsko" #: ../Expense/expense.c:126 msgid "Switzerland" msgstr "Švýcarsko" #: ../Expense/expense.c:127 msgid "Taiwan" msgstr "Tchaj-wan" #: ../Expense/expense.c:128 msgid "Thailand" msgstr "Thajsko" #: ../Expense/expense.c:129 msgid "United Kingdom" msgstr "Spojené království" #: ../Expense/expense.c:130 msgid "United States" msgstr "Spojené státy" #: ../Expense/expense.c:518 ../Expense/expense.c:529 msgid "Expense" msgstr "Výdaje" #: ../Expense/expense.c:550 ../Expense/expense.c:1388 msgid "Airfare" msgstr "Let" #: ../Expense/expense.c:552 ../Expense/expense.c:1389 msgid "Breakfast" msgstr "Snídaně" #: ../Expense/expense.c:554 ../Expense/expense.c:1390 msgid "Bus" msgstr "Autobus" #: ../Expense/expense.c:556 ../Expense/expense.c:1391 msgid "BusinessMeals" msgstr "ObchodníObědy" #: ../Expense/expense.c:558 ../Expense/expense.c:1392 msgid "CarRental" msgstr "PronájemAuta" #: ../Expense/expense.c:560 ../Expense/expense.c:1393 msgid "Dinner" msgstr "Večeře" #: ../Expense/expense.c:562 ../Expense/expense.c:1394 msgid "Entertainment" msgstr "Zábava" #: ../Expense/expense.c:564 ../Expense/expense.c:1395 msgid "Fax" msgstr "Fax" #: ../Expense/expense.c:566 ../Expense/expense.c:1396 msgid "Gas" msgstr "Benzín" #: ../Expense/expense.c:568 ../Expense/expense.c:1397 msgid "Gifts" msgstr "Dárky" #: ../Expense/expense.c:570 ../Expense/expense.c:1398 msgid "Hotel" msgstr "Hotel" #: ../Expense/expense.c:572 ../Expense/expense.c:1399 msgid "Incidentals" msgstr "VedlejšíVýdaje" #: ../Expense/expense.c:574 ../Expense/expense.c:1400 msgid "Laundry" msgstr "Prádelna" #: ../Expense/expense.c:576 ../Expense/expense.c:1401 msgid "Limo" msgstr "Limuzína" #: ../Expense/expense.c:578 ../Expense/expense.c:1402 msgid "Lodging" msgstr "Nájem" #: ../Expense/expense.c:580 ../Expense/expense.c:1403 msgid "Lunch" msgstr "Oběd" #: ../Expense/expense.c:582 ../Expense/expense.c:1404 msgid "Mileage" msgstr "Cestovné" #: ../Expense/expense.c:586 ../Expense/expense.c:1406 msgid "Parking" msgstr "Parkovné" #: ../Expense/expense.c:588 ../Expense/expense.c:1407 msgid "Postage" msgstr "Poštovné" #: ../Expense/expense.c:590 ../Expense/expense.c:1408 msgid "Snack" msgstr "Občerstvení" #: ../Expense/expense.c:592 ../Expense/expense.c:1409 msgid "Subway" msgstr "Metro" #: ../Expense/expense.c:594 ../Expense/expense.c:1410 msgid "Supplies" msgstr "Zásoby" #: ../Expense/expense.c:596 ../Expense/expense.c:1411 msgid "Taxi" msgstr "Taxi" #: ../Expense/expense.c:598 ../Expense/expense.c:1412 msgid "Telephone" msgstr "Telefon" #: ../Expense/expense.c:600 ../Expense/expense.c:1413 msgid "Tips" msgstr "Spropitné" #: ../Expense/expense.c:602 ../Expense/expense.c:1414 msgid "Tolls" msgstr "Poplatky" #: ../Expense/expense.c:604 ../Expense/expense.c:1415 msgid "Train" msgstr "Vlak" #: ../Expense/expense.c:1239 msgid "Expense: Unknown expense type\n" msgstr "Výdaj: Neznámý typ výdaje\n" #: ../Expense/expense.c:1245 msgid "Expense: Unknown payment type\n" msgstr "Výdaj: Neznámý typ platby\n" #: ../Expense/expense.c:1377 msgid "American Express" msgstr "American Express" #: ../Expense/expense.c:1378 msgid "Cash" msgstr "Hotovost" #: ../Expense/expense.c:1379 msgid "Check" msgstr "Šek" #: ../Expense/expense.c:1380 msgid "Credit Card" msgstr "Kreditní karta" #: ../Expense/expense.c:1381 msgid "Master Card" msgstr "Master Card" #: ../Expense/expense.c:1382 msgid "Prepaid" msgstr "Předplatné" #: ../Expense/expense.c:1383 msgid "VISA" msgstr "VISA" #: ../Expense/expense.c:1619 #, fuzzy msgid "Type" msgstr "Typ:" #: ../Expense/expense.c:1620 #, fuzzy msgid "Amount" msgstr "Částka:" #. Category Menu #: ../Expense/expense.c:1704 msgid "Category:" msgstr "Kategorie:" #. Type Menu #: ../Expense/expense.c:1712 msgid "Type:" msgstr "Typ:" #. Payment Menu #: ../Expense/expense.c:1720 msgid "Payment:" msgstr "Platba:" #. Currency Menu #: ../Expense/expense.c:1728 msgid "Currency:" msgstr "Měna:" #: ../Expense/expense.c:1748 msgid "Month:" msgstr "Měsíc:" #: ../Expense/expense.c:1762 msgid "Day:" msgstr "Den:" #: ../Expense/expense.c:1776 msgid "Year:" msgstr "Rok:" #. Amount Entry #: ../Expense/expense.c:1789 msgid "Amount:" msgstr "Částka:" #. Vendor Entry #: ../Expense/expense.c:1799 msgid "Vendor:" msgstr "Prodejce:" #. City #: ../Expense/expense.c:1809 msgid "City:" msgstr "Město:" #. Attendees #: ../Expense/expense.c:1819 msgid "Attendees" msgstr "Účastníci" #. ------------------------------------------- #: ../Expense/expense.c:2102 #, c-format msgid "" "%s\n" "\n" "Expense plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org" msgstr "" #: ../KeyRing/keyring.c:291 msgid "KeyRing: pack_KeyRing(): buf_size too small\n" msgstr "KeyRing: pack_KeyRing(): buf_size příliš malá\n" #: ../KeyRing/keyring.c:1699 msgid "Incorrect, Reenter KeyRing Password" msgstr "Neplatné, vložte znovu své heslo KeyRing" #: ../KeyRing/keyring.c:1701 msgid "Enter a NEW KeyRing Password" msgstr "Zadejte NOVÉ heslo KeyRing" #: ../KeyRing/keyring.c:1703 msgid "Enter KeyRing Password" msgstr "Zadejte své heslo KeyRing" #: ../KeyRing/keyring.c:1769 #, c-format msgid "KeyRing: file %s not found.\n" msgstr "KeyRing: soubor %s nenalezen.\n" #: ../KeyRing/keyring.c:1770 msgid "KeyRing: Try Syncing.\n" msgstr "KeyRing: Zkuste synchronizovat.\n" #: ../KeyRing/keyring.c:1861 ../KeyRing/keyring.c:1872 msgid "KeyRing" msgstr "KeyRing" #. ------------------------------------------- #: ../KeyRing/keyring.c:1900 #, c-format msgid "" "%s\n" "\n" "KeyRing plugin for J-Pilot was written by\n" "Judd Montgomery (c) 2001.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "KeyRing is a free PalmOS program for storing\n" "passwords and other information in encrypted form\n" "http://gnukeyring.sourceforge.net" msgstr "" #: ../KeyRing/keyring.c:2137 #, c-format msgid "" "Keys exported from %s %s on %s\n" "\n" msgstr "" #: ../KeyRing/keyring.c:2162 #, fuzzy, c-format msgid "Can't export key %d\n" msgstr "Nemohu exportovat poznámku %d\n" #: ../KeyRing/keyring.c:2229 msgid "B-FOLDERS CSV" msgstr "" #. Change Password button #: ../KeyRing/keyring.c:2384 msgid "" "Change\n" "KeyRing\n" "Password" msgstr "" "Změnit\n" "heslo\n" "KeyRing" #. Clist #: ../KeyRing/keyring.c:2497 #, fuzzy msgid "Changed" msgstr "Zrušit" #: ../KeyRing/keyring.c:2499 msgid "Account" msgstr "Účet" #. Name entry #: ../KeyRing/keyring.c:2593 msgid "name: " msgstr "jméno: " #. Account entry #: ../KeyRing/keyring.c:2601 msgid "account: " msgstr "účet: " #. Password entry #: ../KeyRing/keyring.c:2609 msgid "password: " msgstr "heslo: " #. Last Changed entry #: ../KeyRing/keyring.c:2616 msgid "last changed: " msgstr "" #. Generate Password button (creates random password) #: ../KeyRing/keyring.c:2626 msgid "Generate Password" msgstr "Vygenerovat heslo" #: ../SyncTime/synctime.c:61 #, fuzzy msgid "SyncTime" msgstr "Synchronizovat poznámky" #. ------------------------------------------- #: ../SyncTime/synctime.c:72 #, c-format msgid "" "%s\n" "\n" "SyncTime plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "SyncTime WILL NOT work with PalmOS 3.3!" msgstr "" #: ../SyncTime/synctime.c:106 msgid "synctime: Palm OS Version 3.25 and 3.30 do not support SyncTime\n" msgstr "" #: ../SyncTime/synctime.c:107 msgid "synctime: NOT setting the time on the pilot\n" msgstr "" #: ../SyncTime/synctime.c:112 msgid "synctime: Setting the time on the pilot... " msgstr "" #: ../SyncTime/synctime.c:117 #, fuzzy msgid "Done\n" msgstr "Hotovo" #, fuzzy #~ msgid " -i makes program iconify itself upon launch.\n" #~ msgstr " -i způsobí, že se jpilot po spuštění ikonifikuje\n" #, fuzzy #~ msgid "Your HOME environment variable is too long(>1024)\n" #~ msgstr "Vaše proměnná prostředí HOME je na mě moc dlouhá\n" #~ msgid "W" #~ msgstr "T" #~ msgid "M" #~ msgstr "M" #~ msgid "This Event has no particular time" #~ msgstr "Tato akce nemá přiřazen čas." #~ msgid "Start Time" #~ msgstr "Čas začátku" #~ msgid "End Time" #~ msgstr "Čas konce" #, fuzzy #~ msgid "email command empty\n" #~ msgstr "Příkaz pro poštu" #~ msgid "Unable to open %s%s file\n" #~ msgstr "Nemohu otevřít soubor %s%s\n" #~ msgid "Unable to open %s.alarms file\n" #~ msgstr "Nemohu otevřít soubor %s.alarms\n" #~ msgid "You can't edit category %s.\n" #~ msgstr "Nemůžete upravovat kategorii %s.\n" #~ msgid "You can't delete category %s.\n" #~ msgstr "Nemůžete odstranit kategorii %s.\n" #~ msgid "category name" #~ msgstr "název kategorie" #~ msgid "debug" #~ msgstr "ladění" #, fuzzy #~ msgid "End Date: Never\n" #~ msgstr "Skončit dne" #, fuzzy #~ msgid "Repeat Days: " #~ msgstr "Opakovat ve dnech:" #~ msgid "Close" #~ msgstr "Zavřít" #~ msgid "none" #~ msgstr "nic" #~ msgid "Unknown repeatType found in DatebookDB\n" #~ msgstr "Neznámý repeatType nalezen v DatebookDB\n" #~ msgid "Dismiss" #~ msgstr "Zavřít" #~ msgid "Done" #~ msgstr "Hotovo" #~ msgid "Add" #~ msgstr "Přidat" #~ msgid "Remove" #~ msgstr "Odstranit" #, fuzzy #~ msgid "User name" #~ msgstr "Jméno uživatele" #~ msgid " -v = version\n" #~ msgstr " -v = verze\n" #~ msgid " -h = help\n" #~ msgstr " -h = nápověda\n" #~ msgid " -d = run in debug mode\n" #~ msgstr " -d = spustit v ladicím režimu\n" #~ msgid " -P = do not load plugins.\n" #~ msgstr " -P = nenačítat zásuvné moduly.\n" #~ msgid " -b = Do a sync and then a backup, otherwise just do a sync.\n" #~ msgstr " -b = Synchronizovat a zazálohovat, jinak jen synchronizovat.\n" #~ msgid "Invalid geometry specification: \"%s\"\n" #~ msgstr "Neplatné zadání geometrie: \"%s\"\n" #~ msgid "/Help/PayBack program" #~ msgstr "/Nápověda/Program PayBack" #~ msgid "Font Selection Dialog" #~ msgstr "Dialog výběru písma" #~ msgid "Show private records" #~ msgstr "Zobrazovat soukromé záznamy" #~ msgid "Hide private records" #~ msgstr "Skrýt soukromé záznamy" #~ msgid "Mask private records" #~ msgstr "Maskovat soukromé záznamy" #~ msgid "Font" #~ msgstr "Písmo" #~ msgid "Go to the menu \"" #~ msgstr "Jděte do menu \"" #~ msgid "\" and change the \"" #~ msgstr "\" a změňte \"" #~ msgid "\"." #~ msgstr "\"." #~ msgid "Couldn't open PC records file\n" #~ msgstr "Nemohu otevřít soubor záznamů PC\n" #~ msgid "The first day of the week is " #~ msgstr "První den týdne je " #~ msgid "One record" #~ msgstr "Jeden záznam" #~ msgid "Finished\n" #~ msgstr "Dokončeno\n" #~ msgid "Last Username = [%s]\n" #~ msgstr "Poslední jméno uživatele = [%s]\n" #~ msgid "Last UserID = %d\n" #~ msgstr "Poslední ID uživatele = %d\n" #~ msgid "Username = [%s]\n" #~ msgstr "Jméno uživatele = [%s]\n" #~ msgid "userID = %d\n" #~ msgstr "ID uživatele = %d\n" #~ msgid "number of records = %d\n" #~ msgstr "počet záznamů = %d\n" #~ msgid "palm: number of records = %d\n" #~ msgstr "palm: počet záznamů = %d\n" #~ msgid "disk: number of records = %d\n" #~ msgstr "disk: počet záznamů = %d\n" #, fuzzy #~ msgid "Your HOME environment variable is too long for me\n" #~ msgstr "Vaše proměnná prostředí HOME je na mě moc dlouhá\n" #~ msgid "" #~ "%s doesn't appear to be a directory.\n" #~ "I need it to be.\n" #~ msgstr "" #~ "%s zřejmě není adresář.\n" #~ "Potřebuji, aby byl.\n" #, fuzzy #~ msgid "I can't write files in directory %s\n" #~ msgstr "Nemohu vytvořit adresář %s\n" #~ msgid "Expense: Unknown category\n" #~ msgstr "Výdaj: Neznámá kategorie\n" #~ msgid "Directory" #~ msgstr "Adresář" #~ msgid "Overwrite File" #~ msgstr "Přepsat soubor" #~ msgid "Filename" #~ msgstr "Název souboru" #~ msgid "Field" #~ msgstr "Pole" #~ msgid "kana(" #~ msgstr "kana(" #~ msgid "Quick View" #~ msgstr "Náhled" #~ msgid "Answer: " #~ msgstr "Odpověď: " #~ msgid "Quit" #~ msgstr "Konec" #~ msgid "Help" #~ msgstr "Nápověda" #~ msgid "Sync" #~ msgstr "Synchronizovat" #~ msgid "Serial Port (/dev/ttyS0, /dev/pilot)" #~ msgstr "Sériový port (/dev/ttyS0, /dev/pilot)" #~ msgid "Serial Rate (Does not affect USB)" #~ msgstr "Rychlost přenosu (nemá vliv na USB)" #~ msgid "Sync memo32 (pedit32)" #~ msgstr "Synchronizovat memo32 (pedit32)" #~ msgid " -p do not load plugins.\n" #~ msgstr " -p nenačítat zásuvné moduly.\n" #~ msgid "AmEx" #~ msgstr "AmEx" #~ msgid "CreditCard" #~ msgstr "KreditníKarta" #~ msgid "MasterCard" #~ msgstr "MasterCard" #~ msgid "Backup" #~ msgstr "Zálohovat" #~ msgid "OK, I will do it" #~ msgstr "OK, udělám to" jpilot-1.8.1.2/po/Makefile.in.in0000644000175000017500000001537711702305111013177 00000000000000# Makefile for program source directory in GNU NLS utilities package. # Copyright (C) 1995, 1996, 1997 by Ulrich Drepper # Copyright (C) 2004-2008 Rodney Dawes # # This file may be copied and used freely without restrictions. It may # be used in projects which are not available under a GNU Public License, # but which still want to provide support for the GNU gettext functionality. # # - Modified by Owen Taylor to use GETTEXT_PACKAGE # instead of PACKAGE and to look for po2tbl in ./ not in intl/ # # - Modified by jacob berkman to install # Makefile.in.in and po2tbl.sed.in for use with glib-gettextize # # - Modified by Rodney Dawes for use with intltool # # We have the following line for use by intltoolize: # INTLTOOL_MAKEFILE GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datadir = @datadir@ datarootdir = @datarootdir@ libdir = @libdir@ DATADIRNAME = @DATADIRNAME@ itlocaledir = $(prefix)/$(DATADIRNAME)/locale subdir = po install_sh = @install_sh@ # Automake >= 1.8 provides @mkdir_p@. # Until it can be supposed, use the safe fallback: mkdir_p = $(install_sh) -d INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ GMSGFMT = @GMSGFMT@ MSGFMT = @MSGFMT@ XGETTEXT = @XGETTEXT@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot ALL_LINGUAS = @ALL_LINGUAS@ PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi) USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi) USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) DISTFILES = Makefile.in.in POTFILES.in $(POFILES) EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS POTFILES = \ # This comment gets stripped out CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) .SUFFIXES: .SUFFIXES: .po .pox .gmo .mo .msg .cat .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: $(MSGFMT) -o $@ $< .po.gmo: file=`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) -o $$file $< .po.cat: sed -f ../intl/po2msg.sed < $< > $*.msg \ && rm -f $@ && gencat $@ $*.msg all: all-@USE_NLS@ all-yes: $(CATALOGS) all-no: $(GETTEXT_PACKAGE).pot: $(POTFILES) $(GENPOT) install: install-data install-data: install-data-@USE_NLS@ install-data-no: all install-data-yes: all linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $$dir; \ if test -r $$lang.gmo; then \ $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ else \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $(srcdir)/$$lang.gmo as" \ "$$dir/$(GETTEXT_PACKAGE).mo"; \ fi; \ if test -r $$lang.gmo.m; then \ $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ if test -r $(srcdir)/$$lang.gmo.m ; then \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $(srcdir)/$$lang.gmo.m as" \ "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ true; \ fi; \ fi; \ done # Empty stubs to satisfy archaic automake needs dvi info ctags tags CTAGS TAGS ID: # Define this as empty until I found a useful application. install-exec installcheck: uninstall: linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ done check: all $(GETTEXT_PACKAGE).pot rm -f missing notexist srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m if [ -r missing -o -r notexist ]; then \ exit 1; \ fi mostlyclean: rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp rm -f .intltool-merge-cache clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES stamp-it rm -f *.mo *.msg *.cat *.cat.m *.gmo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f Makefile.in.in distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(DISTFILES) dists="$(DISTFILES)"; \ extra_dists="$(EXTRA_DISTFILES)"; \ for file in $$extra_dists; do \ test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ done; \ for file in $$dists; do \ test -f $$file || file="$(srcdir)/$$file"; \ ln $$file $(distdir) 2> /dev/null \ || cp -p $$file $(distdir); \ done update-po: Makefile $(MAKE) $(GETTEXT_PACKAGE).pot tmpdir=`pwd`; \ linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ echo "$$lang:"; \ result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ if $$result; then \ if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.gmo failed!"; \ rm -f $$tmpdir/$$lang.new.po; \ fi; \ done Makefile POTFILES: stamp-it @if test ! -f $@; then \ rm -f stamp-it; \ $(MAKE) stamp-it; \ fi stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ $(SHELL) ./config.status # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: jpilot-1.8.1.2/po/vi.po0000644000175000017500000027441611702307204011511 00000000000000# Vietnamese translation for JPilot. # Copyright © 2006 Free Software Foundation, Inc. # Clytie Siddall , 2006. # msgid "" msgstr "" "Project-Id-Version: jpilot-0.99.8-pre12\n" "Report-Msgid-Bugs-To: jpilot-devel@jpilot.org\n" "POT-Creation-Date: 2012-01-08 13:39+0100\n" "PO-Revision-Date: 2006-02-09 20:14+1030\n" "Last-Translator: Clytie Siddall \n" "Language-Team: Vietnamese \n" "Language: vi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0\n" "X-Generator: LocFactoryEditor 1.6b36\n" #: ../address.c:276 ../address.c:448 ../alarms.c:332 ../calendar.c:309 #: ../calendar.c:547 ../contact.c:324 ../contact.c:738 ../dat.c:189 #: ../dat.c:655 ../dat.c:859 ../dat.c:993 ../dat.c:1132 ../datebook.c:130 #: ../datebook.c:165 ../datebook.c:172 ../datebook.c:231 ../jpilot.c:1254 #: ../jpilot-merge.c:95 ../libplugin.c:208 ../libplugin.c:455 #: ../libplugin.c:534 ../libplugin.c:563 ../libplugin.c:811 ../memo.c:214 #: ../memo.c:287 ../otherconv.c:280 ../plugins.c:112 ../prefs.c:350 #: ../prefs.c:375 ../prefs.c:906 ../sync.c:2170 ../sync.c:2187 ../sync.c:2296 #: ../sync.c:2310 ../sync.c:2507 ../sync.c:2646 ../todo.c:236 ../todo.c:490 #: ../utils.c:748 #, c-format msgid "Out of memory" msgstr "Hết bộ nhớ" #: ../address.c:332 ../calendar.c:230 ../contact.c:580 ../datebook.c:494 #: ../memo.c:87 ../todo.c:90 #, fuzzy, c-format msgid "%s:%d Error reading application info %s\n" msgstr "%s:%d Gặp lỗi khi đọc thông tin phân loại %s\n" #: ../address.c:344 ../address_gui.c:2285 ../address_gui.c:2324 #: ../calendar.c:246 ../contact.c:596 ../datebook.c:514 ../datebook_gui.c:3737 #: ../libplugin.c:405 ../libplugin.c:431 ../memo.c:99 ../memo_gui.c:863 #: ../todo_gui.c:1070 ../Expense/expense.c:1105 #, c-format msgid "Error reading file: %s\n" msgstr "Gặp lỗi khi đọc tập tin: %s\n" #: ../address.c:492 ../calendar.c:598 ../calendar.c:607 ../contact.c:780 #: ../libplugin.c:846 ../memo.c:353 ../todo.c:302 ../utils.c:1124 #: ../utils.c:1131 ../utils.c:1138 ../utils.c:1145 ../utils.c:1152 #: ../utils.c:1159 msgid "error" msgstr "lỗi" #: ../address_gui.c:325 ../datebook_gui.c:2844 ../memo_gui.c:176 #: ../todo_gui.c:292 ../KeyRing/keyring.c:834 msgid "" "This record is deleted.\n" "Undelete it or copy it to make changes.\n" msgstr "" "Mục ghi này bị xoá bỏ.\n" "Để thay đổi gì, hãy hủy xoá bỏ nó hoặc sao chép nó.\n" # Variable: don't translate / Biến: đừng dịch #: ../address_gui.c:452 ../address_gui.c:458 ../address_gui.c:469 #: ../address_gui.c:481 ../address_gui.c:493 ../address_gui.c:506 #, fuzzy, c-format msgid "%s%s: %s" msgstr "%%a., %s" #: ../address_gui.c:542 ../category.c:118 ../category.c:176 ../category.c:330 #: ../category.c:336 ../datebook_gui.c:430 ../jpilot-merge.c:88 #: ../jpilot-merge.c:146 ../jpilot-merge.c:151 ../memo_gui.c:280 #: ../sync.c:2129 ../sync.c:2135 ../sync.c:2481 ../sync.c:2842 #: ../todo_gui.c:416 ../utils.c:2674 ../utils.c:2711 ../utils.c:2717 #: ../utils.c:2776 ../utils.c:2782 ../utils.c:2836 ../utils.c:2890 #: ../utils.c:2896 ../utils.c:2954 ../utils.c:2961 #, c-format msgid "Unable to open file: %s\n" msgstr "Không thể mở tập tin: %s\n" #: ../address_gui.c:561 #, fuzzy, c-format msgid "Unable to read file: %s\n" msgstr "Không thể mở tập tin: %s\n" #: ../address_gui.c:715 msgid "File doesn't appear to be address.dat format\n" msgstr "Tập tin này có vẻ không phải là tập tin dạng <địa_chỉ.dat>.\n" #: ../address_gui.c:725 ../datebook_gui.c:647 ../memo_gui.c:324 #: ../memo_gui.c:417 ../todo_gui.c:542 ../Expense/expense.c:1384 msgid "Unfiled" msgstr "Chưa ghi lưu" #: ../address_gui.c:781 ../datebook_gui.c:698 ../memo_gui.c:470 #: ../todo_gui.c:595 msgid "CSV (Comma Separated Values)" msgstr "" #: ../address_gui.c:782 msgid "DAT/ABA (Palm Archive Formats)" msgstr "" #. current category name #. previous category name #. entry text, in Pilot character set #: ../address_gui.c:868 ../category.c:408 ../datebook_gui.c:729 #: ../jpilot.c:234 ../jpilot.c:278 ../jpilot.c:352 ../jpilot.c:396 #: ../jpilot.c:953 ../memo_gui.c:506 ../todo_gui.c:635 ../utils.c:1305 #: ../KeyRing/keyring.c:2090 msgid "OK" msgstr "Được" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "No" msgstr "Không" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "Yes" msgstr "Có" #: ../address_gui.c:888 ../datebook_gui.c:753 ../memo_gui.c:520 #: ../todo_gui.c:655 ../KeyRing/keyring.c:2104 #, c-format msgid "%s is a directory" msgstr "%s là thư mục" #: ../address_gui.c:890 ../address_gui.c:907 ../datebook_gui.c:755 #: ../datebook_gui.c:772 ../memo_gui.c:522 ../memo_gui.c:539 ../todo_gui.c:657 #: ../todo_gui.c:674 ../KeyRing/keyring.c:2106 ../KeyRing/keyring.c:2123 msgid "Error Opening File" msgstr "Gặp lỗi khi mở tập tin" #: ../address_gui.c:894 ../datebook_gui.c:759 ../memo_gui.c:526 #: ../todo_gui.c:661 ../KeyRing/keyring.c:2110 #, c-format msgid "Do you want to overwrite file %s?" msgstr "Bạn có muốn ghi đè lên tập tin %s không?" #: ../address_gui.c:896 ../datebook_gui.c:761 ../memo_gui.c:528 #: ../todo_gui.c:663 ../KeyRing/keyring.c:2112 msgid "Overwrite File?" msgstr "Ghi đè tập tin không?" #: ../address_gui.c:905 ../datebook_gui.c:770 ../memo_gui.c:537 #: ../todo_gui.c:672 ../KeyRing/keyring.c:2121 #, c-format msgid "Error opening file: %s" msgstr "Gặp lỗi khi mở tập tin: %s" #: ../address_gui.c:922 #, c-format msgid "" "Address exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:925 #, c-format msgid "" "Contact exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:989 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ldif file may not be standards-compliant\n" msgstr "" #: ../address_gui.c:1002 #, c-format msgid "Can't export address %d\n" msgstr "Không thể xuất địa chỉ %d.\n" #: ../address_gui.c:1008 ../memo_gui.c:630 ../todo_gui.c:760 #, fuzzy, c-format msgid "Category: %s\n" msgstr "Loại: " #: ../address_gui.c:1010 ../memo_gui.c:632 ../todo_gui.c:763 #, fuzzy, c-format msgid "Private: %s\n" msgstr "Riêng" # Variable: don't translate / Biến: đừng dịch #: ../address_gui.c:1018 ../address_gui.c:1032 ../address_gui.c:1036 #: ../address_gui.c:1045 ../address_gui.c:1048 #, fuzzy, c-format msgid "%s: " msgstr "%%a., %s" #: ../address_gui.c:1022 #, c-format msgid "%s\n" msgstr "" #. E-mail should be the Palm dropdown menu item for email #. Set dial/email button text and callback data #: ../address_gui.c:1196 ../address_gui.c:2846 ../address_gui.c:4185 msgid "E-mail" msgstr "Thư điện tử" #: ../address_gui.c:1482 ../datebook_gui.c:1147 ../memo_gui.c:640 #: ../todo_gui.c:844 ../KeyRing/keyring.c:2214 msgid "Unknown export type\n" msgstr "Kiểu xuất lạ\n" #: ../address_gui.c:1508 ../datebook_gui.c:1226 ../memo_gui.c:469 #: ../memo_gui.c:666 ../todo_gui.c:870 ../KeyRing/keyring.c:2229 msgid "Text" msgstr "" #: ../address_gui.c:1509 ../datebook_gui.c:1227 ../memo_gui.c:667 #: ../todo_gui.c:871 ../KeyRing/keyring.c:2229 msgid "CSV" msgstr "" #: ../address_gui.c:1510 #, fuzzy msgid "vCard" msgstr "Xoá" #: ../address_gui.c:1511 msgid "vCard (Optimized for Gmail/Android Import)" msgstr "" #: ../address_gui.c:1512 msgid "ldif" msgstr "" #. Initialize variable if default case taken #: ../address_gui.c:1777 ../address_gui.c:3902 #, fuzzy msgid "Last Name/Company" msgstr "Tên/Công ty" #: ../address_gui.c:1780 ../address_gui.c:3905 #, fuzzy msgid "First Name/Company" msgstr "Tên/Công ty" #: ../address_gui.c:1783 ../address_gui.c:3908 #, fuzzy msgid "Company/Last Name" msgstr "Công ty/Tên" #: ../address_gui.c:1920 ../datebook_gui.c:2907 ../memo_gui.c:1036 #: ../todo_gui.c:1329 ../KeyRing/keyring.c:1181 msgid "You can't modify a record that is deleted\n" msgstr "Bạn không thể sửa đổi một mục ghi bị xoá bỏ.\n" #. Illegal category, Assume that category 0 is Unfiled and valid #: ../address_gui.c:2119 ../address_gui.c:2370 ../address_gui.c:2803 #: ../address_gui.c:2809 ../address_gui.c:3601 ../datebook_gui.c:1994 #: ../datebook_gui.c:3434 ../datebook_gui.c:3783 ../datebook_gui.c:4074 #: ../memo_gui.c:900 ../memo_gui.c:946 ../memo_gui.c:1161 ../memo_gui.c:1548 #: ../todo_gui.c:1106 ../todo_gui.c:1200 ../todo_gui.c:1589 ../todo_gui.c:2141 #: ../Expense/expense.c:689 ../Expense/expense.c:1143 #: ../Expense/expense.c:1227 ../Expense/expense.c:1887 #: ../KeyRing/keyring.c:1070 ../KeyRing/keyring.c:1512 #: ../KeyRing/keyring.c:1574 ../KeyRing/keyring.c:2688 msgid "Category is not legal\n" msgstr "Phân loại không được phép\n" #: ../address_gui.c:2179 ../alarms.c:598 ../dialer.c:164 #, c-format msgid "executing command = [%s]\n" msgstr "đang thực hiện lệnh = [%s]\n" #: ../address_gui.c:2181 #, fuzzy, c-format msgid "Failed to execute [%s]\n" msgstr "Bị lỗi, không thể tạo tập tin %s.\n" #: ../address_gui.c:2425 msgid "Birthday" msgstr "" #: ../address_gui.c:2521 msgid "External program not found, or other error" msgstr "" #: ../address_gui.c:2523 msgid "" "J-Pilot can not find the external program \"convert\"\n" "or an error occurred while executing convert.\n" "You may need to install package ImageMagick" msgstr "" #: ../address_gui.c:2524 #, c-format msgid "Command executed was \"%s\"\n" msgstr "" #: ../address_gui.c:2525 #, c-format msgid "return code was %d\n" msgstr "" #: ../address_gui.c:2603 #, fuzzy msgid "chdir() failed\n" msgstr "việc khoá bị lỗi\n" #: ../address_gui.c:2606 msgid "Add Photo" msgstr "" #. Category menu #: ../address_gui.c:2828 ../KeyRing/keyring.c:2585 msgid "Category: " msgstr "Loại: " #: ../address_gui.c:2848 ../address_gui.c:4186 msgid "Mail" msgstr "Lá thư" #. Dial Phone Button #: ../address_gui.c:2851 ../address_gui.c:4189 ../dialer.c:307 ../dialer.c:331 msgid "Dial" msgstr "Quay số" #: ../address_gui.c:3041 ../datebook_gui.c:2757 ../memo_gui.c:1228 #: ../todo_gui.c:1697 msgid "Could not get temporary file name\n" msgstr "" #: ../address_gui.c:3049 ../datebook_gui.c:2765 ../memo_gui.c:1236 #: ../todo_gui.c:1705 msgid "Could not open temporary file for external editor\n" msgstr "" #: ../address_gui.c:3089 ../datebook_gui.c:2806 ../memo_gui.c:1277 #: ../todo_gui.c:1746 msgid "Could not open temporary file from external editor\n" msgstr "" #: ../address_gui.c:3261 ../address_gui.c:3292 msgid "-Unnamed-" msgstr "-Không tên-" #: ../address_gui.c:3374 ../memo_gui.c:1454 ../todo_gui.c:2019 msgid "0 records" msgstr "0 mục ghi" #: ../address_gui.c:3377 ../datebook_gui.c:2637 ../memo_gui.c:1457 #: ../todo_gui.c:2022 #, c-format msgid "%d of %d records" msgstr "%d trên %d bản ghi" #: ../address_gui.c:3772 ../address_gui.c:3780 ../KeyRing/keyring.c:2498 msgid "Name" msgstr "Tên" #: ../address_gui.c:3773 ../address_gui.c:3774 ../address_gui.c:3775 #: ../address_gui.c:3781 msgid "Address" msgstr "Địa chỉ" #: ../address_gui.c:3776 ../address_gui.c:3782 ../Expense/expense.c:584 #: ../Expense/expense.c:1405 msgid "Other" msgstr "Khác" #. Note textbox #: ../address_gui.c:3777 ../address_gui.c:3783 ../todo_gui.c:2484 #: ../Expense/expense.c:1836 ../KeyRing/keyring.c:2632 msgid "Note" msgstr "Ghi chú" #: ../address_gui.c:3793 msgid "Reverting to Address database\n" msgstr "" #: ../address_gui.c:3914 msgid "Phone" msgstr "Điện thoại" #: ../address_gui.c:3946 msgid "Quick Find: " msgstr "Tìm nhanh: " #. Cancel button #. Add record modification buttons #. Cancel button #: ../address_gui.c:3964 ../category.c:409 ../datebook_gui.c:1782 #: ../datebook_gui.c:5124 ../memo_gui.c:1692 ../todo_gui.c:2345 #: ../utils.c:1346 ../KeyRing/keyring.c:2528 msgid "Cancel" msgstr "Thôi" #: ../address_gui.c:3964 ../datebook_gui.c:5124 ../memo_gui.c:1692 #: ../todo_gui.c:2345 ../KeyRing/keyring.c:2528 msgid "Cancel the modifications" msgstr "Thôi sửa đổi gì" #. Delete Button #. Delete button #. Delete Button #. Delete button #. Delete, Copy, New, etc. buttons #. Delete button #: ../address_gui.c:3969 ../category.c:409 ../category.c:852 #: ../datebook_gui.c:5129 ../memo_gui.c:1697 ../todo_gui.c:2350 #: ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete" msgstr "Xoá bỏ" #: ../address_gui.c:3969 ../datebook_gui.c:5129 ../memo_gui.c:1697 #: ../todo_gui.c:2350 ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete the selected record" msgstr "Xoá bỏ mục ghi được chọn" #. Undelete Button #. Undelete button #. Undelete Button #. Undelete button #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 msgid "Undelete" msgstr "Phục hồi" #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 msgid "Undelete the selected record" msgstr "Phục hồi mục ghi được chọn" #. Copy button #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy" msgstr "Chép" #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy the selected record" msgstr "Sao chép mục ghi được chọn" #. New button #. New Record button #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "New Record" msgstr "Mục ghi mới" #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "Add a new record" msgstr "Thêm một mục ghi mới" #. "Add Record" button #. Add Record button #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add Record" msgstr "Thêm mục ghi" #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add the new record" msgstr "Thêm mục ghi mới đó" #. "Apply Changes" button #. Apply Changes button #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Apply Changes" msgstr "Áp dụng thay đổi" #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Commit the modifications" msgstr "Ghi lưu các sửa đổi" #. Private check box #. Private checkbox #: ../address_gui.c:4033 ../datebook_gui.c:5191 ../datebook_gui.c:5233 #: ../memo_gui.c:1747 ../todo_gui.c:2410 msgid "Private" msgstr "Riêng" #: ../address_gui.c:4118 msgid "Change Photo" msgstr "" #: ../address_gui.c:4123 #, fuzzy msgid "Remove Photo" msgstr "Gỡ bỏ" #: ../address_gui.c:4195 #, fuzzy msgid "Show In List" msgstr "" "Hiện trong\n" "danh sách" #: ../address_gui.c:4296 #, fuzzy msgid "Reminder" msgstr "Nhắc nhở tôi" #: ../address_gui.c:4312 ../datebook_gui.c:238 ../datebook_gui.c:5221 #: ../datebook_gui.c:5378 msgid "Days" msgstr "Ngày" #. The Quickview (ALL) page #. All button #: ../address_gui.c:4356 ../datebook_gui.c:1478 ../datebook_gui.c:1782 #: ../utils.c:2528 msgid "All" msgstr "Tất cả" #: ../alarms.c:232 ../datebook_gui.c:236 ../datebook_gui.c:5215 #: ../datebook_gui.c:5372 msgid "Minutes" msgstr "Phút" #: ../alarms.c:234 ../datebook_gui.c:237 ../datebook_gui.c:5219 #: ../datebook_gui.c:5376 msgid "Hours" msgstr "Giờ" #: ../alarms.c:255 msgid "Remind me" msgstr "Nhắc nhở tôi" #: ../alarms.c:425 ../alarms.c:991 ../sync.c:1639 ../sync.c:1645 #: ../utils.c:3717 #, c-format msgid "Unable to open file: %s%s\n" msgstr "Không thể mở tập tin: %s%s\n" #: ../alarms.c:512 msgid "Appointment Reminder" msgstr "Bộ nhắc nhở cuộc hẹn" #: ../alarms.c:515 msgid "Past Appointment" msgstr "Cuộc hẹn qua" #: ../alarms.c:518 msgid "Postponed Appointment" msgstr "Cuộc hẹn đã hoãn" #: ../alarms.c:521 ../datebook_gui.c:5025 msgid "Appointment" msgstr "Cuộc hẹn" #: ../alarms.c:605 msgid "J-Pilot Alarm" msgstr "Báo động J-Pilot" #: ../category.c:131 ../category.c:188 ../sync.c:2158 ../sync.c:2495 msgid "PC file corrupt?\n" msgstr "Tập tin PC bị hỏng không?\n" #: ../category.c:138 ../category.c:148 ../category.c:196 ../category.c:206 #: ../category.c:216 ../sync.c:2280 ../sync.c:2334 ../sync.c:2371 #: ../sync.c:2386 ../sync.c:2410 ../sync.c:2630 ../sync.c:2675 ../sync.c:2712 #: ../sync.c:2725 ../sync.c:2750 msgid "fseek failed - fatal error\n" msgstr "việc fseek bị lỗi — lỗi nghiêm trọng\n" #: ../category.c:364 ../utils.c:2738 ../utils.c:2812 ../utils.c:2916 #: ../utils.c:2981 msgid "rename failed" msgstr "việc thay đổi tên bị lỗi" #: ../category.c:409 msgid "Move" msgstr "Chuyển" #: ../category.c:438 ../category.c:500 ../category.c:580 ../category.c:769 msgid "Edit Categories" msgstr "Sửa đổi phân loại" #: ../category.c:439 msgid "The maximum number of categories (16) are already used" msgstr "Số phân loại tối (16) đa được dùng" #: ../category.c:442 msgid "Enter New Category" msgstr "Gõ loại mới" #: ../category.c:453 ../category.c:477 #, fuzzy msgid "Edit Categories Error" msgstr "Sửa đổi phân loại" #: ../category.c:454 msgid "You must select a category to rename" msgstr "Bạn phải chọn phân loại cần thay đổi tên" #: ../category.c:463 msgid "Enter New Category Name" msgstr "Gõ tên loại mới" #: ../category.c:478 msgid "You must select a category to delete" msgstr "Bạn phải chọn phân loại cần xoá bỏ" #: ../category.c:496 #, c-format msgid "" "There are %d records in %s.\n" "Do you want to move them to %s, or delete them?" msgstr "" "Có %d mục ghi trong %s.\n" "Bạn có muốn di chuyển chúng vào %s, hoặc xoá bỏ chúng không?" #: ../category.c:556 #, c-format msgid "invalid state file %s line %d\n" msgstr "tập tin tính trạng không hợp lệ %s, dòng %d\n" #: ../category.c:578 #, c-format msgid "The category %s can't be used more than once" msgstr "Không thể dùng phân loại %s nhiều lần." #. Category names in host character set #: ../category.c:735 #, fuzzy msgid "Category" msgstr "Loại:" #: ../category.c:836 msgid "New" msgstr "Mới" #: ../category.c:843 msgid "Rename" msgstr "Đổi tên" #: ../dat.c:456 msgid "unknown type =" msgstr "không biết kiểu =" #: ../dat.c:537 #, c-format msgid "fields per row count != %d, unknown format\n" msgstr "số trường trong mỗi hàng != %d, dạng thức không rõ\n" #: ../dat.c:551 #, c-format msgid "field count != %d, unknown format\n" msgstr "số trường != %d, dạng thức không rõ\n" #: ../dat.c:559 msgid "Unknown format, file has wrong schema\n" msgstr "Dạng thức không rõ, tập tin có giản đồ không đúng.\n" #: ../dat.c:560 msgid "File schema is:" msgstr "Giản đồ tập tin là:" #: ../dat.c:564 #, fuzzy msgid "It should be:" msgstr "Nó nên là: " #: ../dat.c:674 ../dat.c:692 ../dat.c:876 ../dat.c:889 ../dat.c:1012 #: ../dat.c:1025 ../dat.c:1149 ../dat.c:1162 #, c-format msgid "%s:%d Record %d, field %d: Invalid type. Expected %d, found %d\n" msgstr "%s:%d Mục ghi %d, trường %d: Kiểu không hợp lệ. Ngờ %d, còn tìm %d\n" #: ../dat.c:675 ../dat.c:693 ../dat.c:877 ../dat.c:890 ../dat.c:994 #: ../dat.c:1013 ../dat.c:1026 ../dat.c:1150 ../dat.c:1163 msgid "read of file terminated\n" msgstr "việc đọc tập tin bị chấm dứt\n" #: ../datebook.c:705 ../datebook_gui.c:3648 #, c-format msgid "Unknown repeatType (%d) found in DatebookDB\n" msgstr "" "Không biết kiểu làm lại repeatType (%d) được tìm trong cơ sở dữ liệu lịch " "DatebookDB\n" #: ../datebook_gui.c:241 #, fuzzy msgid "Repeat Never" msgstr "Lặp lại theo :" #: ../datebook_gui.c:242 #, fuzzy msgid "Repeat Daily" msgstr "Lập lại vào Hôm:" #: ../datebook_gui.c:243 #, fuzzy msgid "Repeat Weekly" msgstr "Lặp lại theo :" #: ../datebook_gui.c:244 #, fuzzy msgid "Repeat MonthlyByDay" msgstr "Lập lại vào Hôm:" #: ../datebook_gui.c:245 #, fuzzy msgid "Repeat MonthlyByDate" msgstr "Lập lại vào Hôm:" #: ../datebook_gui.c:246 msgid "Repeat YearlyDate" msgstr "" #: ../datebook_gui.c:247 #, fuzzy msgid "Repeat YearlyDay" msgstr "Lập lại vào Hôm:" #: ../datebook_gui.c:250 ../datebook_gui.c:257 ../datebook_gui.c:4803 #: ../datebook_gui.c:4810 msgid "Su" msgstr "CN" #: ../datebook_gui.c:251 ../datebook_gui.c:4804 msgid "Mo" msgstr "T2" #: ../datebook_gui.c:252 ../datebook_gui.c:4805 msgid "Tu" msgstr "T3" #: ../datebook_gui.c:253 ../datebook_gui.c:4806 msgid "We" msgstr "T4" #: ../datebook_gui.c:254 ../datebook_gui.c:4807 msgid "Th" msgstr "T5" #: ../datebook_gui.c:255 ../datebook_gui.c:4808 msgid "Fr" msgstr "T6" #: ../datebook_gui.c:256 ../datebook_gui.c:4809 msgid "Sa" msgstr "T7" #: ../datebook_gui.c:269 #, c-format msgid "" "Start Date: %s\n" "Time: Event" msgstr "" #: ../datebook_gui.c:277 #, c-format msgid "" "Start Date: %s\n" "Time: %s to %s" msgstr "" #: ../datebook_gui.c:287 ../datebook_gui.c:297 msgid "Unknown" msgstr "" #. End Date #: ../datebook_gui.c:300 #, fuzzy msgid "End Date: " msgstr "Ngày cuối" #: ../datebook_gui.c:302 msgid "Never" msgstr "" #: ../datebook_gui.c:308 #, c-format msgid "Repeat Frequency: %d\n" msgstr "" #: ../datebook_gui.c:316 #, c-format msgid "Monthly Repeat Day %d\n" msgstr "" #: ../datebook_gui.c:321 ../datebook_gui.c:5520 msgid "Repeat on Days:" msgstr "Lập lại vào Hôm:" #: ../datebook_gui.c:332 #, fuzzy, c-format msgid "Number of exceptions: %d" msgstr "số mục ghi = %d\n" #: ../datebook_gui.c:338 msgid "" "\n" "more..." msgstr "" #: ../datebook_gui.c:359 ../datebook_gui.c:386 msgid "Description:" msgstr "" #: ../datebook_gui.c:360 ../datebook_gui.c:387 #, fuzzy msgid "Note:" msgstr "Ghi chú" #: ../datebook_gui.c:362 ../datebook_gui.c:390 #, fuzzy msgid "Alarm:" msgstr "Báo động" #: ../datebook_gui.c:363 ../datebook_gui.c:391 #, fuzzy msgid "Repeat Type:" msgstr "Lặp lại theo :" #: ../datebook_gui.c:366 ../datebook_gui.c:394 #, fuzzy msgid "Start of Week:" msgstr "Hôm của tuần" #: ../datebook_gui.c:388 ../datebook_gui.c:5343 msgid "Location:" msgstr "" #: ../datebook_gui.c:620 ../datebook_gui.c:2271 #, c-format msgid "Appointment description text > %d, truncating to %d\n" msgstr "Chuỗi mô tả cuộc hẹn > %d nên cắt xén nó thành %d\n" #: ../datebook_gui.c:631 ../datebook_gui.c:1148 ../datebook_gui.c:2331 #: ../datebook_gui.c:2338 msgid "Error" msgstr "Lỗi" #: ../datebook_gui.c:632 msgid "File doesn't appear to be datebook.dat format\n" msgstr "Tập tin có vẻ không phải có dạng thức \n" #: ../datebook_gui.c:699 msgid "DAT/DBA (Palm Archive Formats)" msgstr "" #: ../datebook_gui.c:787 #, c-format msgid "" "Datebook exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:790 #, c-format msgid "" "Calendar exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:817 ../todo_gui.c:701 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ical file may not be standards-compliant\n" msgstr "" #: ../datebook_gui.c:1148 msgid "Unknown export type" msgstr "Không biết kiểu xuất" #: ../datebook_gui.c:1228 ../todo_gui.c:872 #, fuzzy msgid "iCalendar" msgstr "Xoá" #: ../datebook_gui.c:1240 ../export_gui.c:251 ../jpilot.c:429 msgid "Export" msgstr "Xuất" #. Label for instructions #: ../datebook_gui.c:1257 msgid "Export All Datebook Records" msgstr "Xuất ra mọi mục ghi của Sổ Ngày" #: ../datebook_gui.c:1276 ../export_gui.c:316 msgid "Save as" msgstr "Lưu dạng" #. Browse button #: ../datebook_gui.c:1286 ../export_gui.c:329 msgid "Browse" msgstr "Duyệt" #: ../datebook_gui.c:1432 msgid "Datebook Categories" msgstr "Loại Sổ Ngày" #. None button #. Labels for notebook tabs #: ../datebook_gui.c:1484 ../datebook_gui.c:2026 ../datebook_gui.c:5449 msgid "None" msgstr "Không có" #: ../datebook_gui.c:1633 msgid "Begin On Date" msgstr "Ngày đầu" #: ../datebook_gui.c:1639 msgid "End On Date" msgstr "Ngày cuối" #: ../datebook_gui.c:1751 ../prefs.c:451 msgid "Sunday" msgstr "Chủ Nhật" #: ../datebook_gui.c:1752 ../prefs.c:452 msgid "Monday" msgstr "Thứ Hai" #: ../datebook_gui.c:1753 msgid "Tuesday" msgstr "Thứ Ba" #: ../datebook_gui.c:1754 msgid "Wednesday" msgstr "Thứ Tư" #: ../datebook_gui.c:1755 msgid "Thursday" msgstr "Thứ Năm" #: ../datebook_gui.c:1756 msgid "Friday" msgstr "Thứ Sáu" #: ../datebook_gui.c:1757 msgid "Saturday" msgstr "Thứ Bảy" #: ../datebook_gui.c:1760 msgid "4th" msgstr "thứ 4" #: ../datebook_gui.c:1760 msgid "Last" msgstr "Cuối" #: ../datebook_gui.c:1763 #, c-format msgid "" "This appointment can either\n" "repeat on the 4th %s\n" "of the month, or on the last\n" "%s of the month.\n" "Which do you want?" msgstr "" "Cuộc hạn này có thể\n" "lặp lại vào %s thứ 4\n" "của tháng, hoặc vào %s\n" "cuối của tháng.\n" "Bạn có muốn chón gì?" #: ../datebook_gui.c:1770 ../datebook_gui.c:1786 msgid "Question?" msgstr "Hỏi ?" #: ../datebook_gui.c:1777 #, fuzzy msgid "" "This is a repeating event.\n" "Do you want to apply these changes to\n" "only the CURRENT event,\n" "just FUTURE events, or\n" "ALL of the occurrences of this event?" msgstr "" "Sự kiện này lặp lại.\n" "Bạn có muốn áp dụng các\n" "thay đổi này vào chỉ sự kiện\n" "HIỆN THỜI, hoặc vào MỌI\n" "lần gặp sự kiện này?" #: ../datebook_gui.c:1782 msgid "Current" msgstr "Hiện có" #: ../datebook_gui.c:1782 msgid "Future" msgstr "" #: ../datebook_gui.c:2027 msgid "day" msgstr "ngày" #: ../datebook_gui.c:2028 msgid "week" msgstr "tuần" #: ../datebook_gui.c:2029 msgid "month" msgstr "tháng" #: ../datebook_gui.c:2030 msgid "year" msgstr "năm" #: ../datebook_gui.c:2326 ../datebook_gui.c:2329 #, c-format msgid "You cannot have an appointment that repeats every %d %s(s)\n" msgstr "Bạn không thể có cuộc hẹn lặp lại từng %d %s\n" #: ../datebook_gui.c:2339 #, fuzzy msgid "" "You cannot have a weekly repeating appointment that doesn't repeat on any " "day of the week." msgstr "" "Bạn không thể có cuộc hẹn lặp lại từng tuần mà không lặp lại vào hôm nào." #. This is a timeless event #: ../datebook_gui.c:2516 ../datebook_gui.c:5264 msgid "No Time" msgstr "Chưa có giờ" #: ../datebook_gui.c:2788 ../memo_gui.c:1259 ../todo_gui.c:1728 msgid "External editor command too long to execute\n" msgstr "" #: ../datebook_gui.c:2943 msgid "Invalid Appointment" msgstr "Cuộc hẹn không hợp lệ" #: ../datebook_gui.c:2944 msgid "" "The End Date of this appointment\n" "is before the start date." msgstr "" "Ngày cuối cua cuộc hẹn này\n" "nằm trước ngày đầu." #. "No Date" check box #: ../datebook_gui.c:3339 ../datebook_gui.c:5482 ../datebook_gui.c:5513 #: ../datebook_gui.c:5565 ../datebook_gui.c:5613 ../todo_gui.c:142 #: ../todo_gui.c:2454 msgid "No Date" msgstr "Chưa có ngày" #: ../datebook_gui.c:3494 #, fuzzy, c-format msgid "Error in DateBookDB or Calendar advanceUnits = %d\n" msgstr "Gặp lỗi trong cơ sở dữ liệu Sổ Ngày DateBookDB advanceUnits = %d\n" # Variable: don't translate / Biến: đừng dịch #: ../datebook_gui.c:3681 #, c-format msgid "%%a., %s" msgstr "%%a., %s" #: ../datebook_gui.c:3686 msgid " (TODAY)" msgstr " (HÔM NAY)" #. Weekview button #: ../datebook_gui.c:4934 ../datebook_gui.c:5451 msgid "Week" msgstr "Tuần" #: ../datebook_gui.c:4943 #, fuzzy msgid "View appointments by week Ctrl+W" msgstr "Xem cuộc hẹn theo tuần" #. Monthview button #: ../datebook_gui.c:4946 ../datebook_gui.c:5452 msgid "Month" msgstr "Tháng" #: ../datebook_gui.c:4955 #, fuzzy msgid "View appointments by month Ctrl+M" msgstr "Xem cuộc hẹn theo tháng" #. Make Category button #: ../datebook_gui.c:4960 msgid "Cats" msgstr "Ploại" #: ../datebook_gui.c:5024 msgid "Time" msgstr "Giờ" #. "Show ToDos" button #: ../datebook_gui.c:5067 msgid "Show ToDos" msgstr "Hiện Cần Làm" #: ../datebook_gui.c:5081 ../todo_gui.c:2285 msgid "Task" msgstr "Tác vụ" #: ../datebook_gui.c:5082 ../todo_gui.c:2286 msgid "Due" msgstr "Đến hạn" #: ../datebook_gui.c:5201 ../datebook_gui.c:5358 msgid "Alarm" msgstr "Báo động" #. Date Spinners #: ../datebook_gui.c:5241 ../Expense/expense.c:1736 msgid "Date:" msgstr "Ngày:" #. Start date and time #: ../datebook_gui.c:5283 #, fuzzy msgid "Start" msgstr "Bắt đầu" #. End date and time #: ../datebook_gui.c:5300 #, fuzzy msgid "End" msgstr "Kết thúc vào" #: ../datebook_gui.c:5433 msgid "DateBk Tags" msgstr "Thẻ Sổ Ngày" #: ../datebook_gui.c:5450 msgid "Day" msgstr "Ngày" #: ../datebook_gui.c:5453 msgid "Year" msgstr "Năm" #. "No Repeat" page for notebook #: ../datebook_gui.c:5456 msgid "This event will not repeat" msgstr "Sự kiện này không lặp lại." #: ../datebook_gui.c:5465 ../datebook_gui.c:5498 ../datebook_gui.c:5550 #: ../datebook_gui.c:5596 msgid "Frequency is Every" msgstr "Tần số là Từng" #: ../datebook_gui.c:5471 msgid "Day(s)" msgstr "Ngày" #: ../datebook_gui.c:5474 ../datebook_gui.c:5507 ../datebook_gui.c:5559 #: ../datebook_gui.c:5605 msgid "End on" msgstr "Kết thúc vào" #: ../datebook_gui.c:5504 msgid "Week(s)" msgstr "Tuần" #: ../datebook_gui.c:5556 msgid "Month(s)" msgstr "Tháng" #: ../datebook_gui.c:5573 msgid "Repeat by:" msgstr "Lặp lại theo :" #: ../datebook_gui.c:5577 msgid "Day of week" msgstr "Hôm của tuần" #: ../datebook_gui.c:5586 ../Expense/expense.c:1618 msgid "Date" msgstr "Ngày" #: ../datebook_gui.c:5602 msgid "Year(s)" msgstr "Năm" #: ../dialer.c:195 msgid "Phone Dialer" msgstr "Bộ Quay số Điện thoại" #: ../dialer.c:230 msgid "Prefix 1" msgstr "Tiền tố 1" #: ../dialer.c:252 msgid "Prefix 2" msgstr "Tiền tố 2" #: ../dialer.c:274 msgid "Prefix 3" msgstr "Tiền tố 3" #: ../dialer.c:289 msgid "Phone number:" msgstr "Số điện thoại:" #: ../dialer.c:319 msgid "Extension" msgstr "Phần mở rộng" #: ../dialer.c:341 msgid "Dial Command" msgstr "Lệnh Quay số" #: ../export_gui.c:121 msgid "File Browser" msgstr "Bộ duyệt tập tin" #. Label for instructions #: ../export_gui.c:273 msgid "Select records to be exported" msgstr "Chọn mục ghi cần xuất" #: ../export_gui.c:275 msgid "Use Ctrl and Shift Keys" msgstr "Dùng phím Ctrl và Shift" #. Import button #: ../import_gui.c:300 ../import_gui.c:369 ../import_gui.c:426 #: ../import_gui.c:471 ../jpilot.c:385 msgid "Import" msgstr "Nhập" #: ../import_gui.c:317 #, c-format msgid "Record was marked as private" msgstr "Mục ghi có nhãn Riêng" #: ../import_gui.c:319 #, c-format msgid "Record was not marked as private" msgstr "Mục ghi không có nhãn Riêng" #: ../import_gui.c:328 #, c-format msgid "Category before import was: [%s]" msgstr "Phân loại trước khi nhập là: [%s]" #: ../import_gui.c:336 #, c-format msgid "Record will be put in category [%s]" msgstr "Mục ghi sẽ nằm trong phân loại [%s]" #. Import All button #: ../import_gui.c:376 msgid "Import All" msgstr "Nhập hết" #. Skip button #: ../import_gui.c:383 msgid "Skip" msgstr "Bỏ qua" #: ../import_gui.c:457 ../install_gui.c:429 msgid "To change to a hidden directory type it below and hit TAB" msgstr "" "Để chuyển đổi sang một kiểu thư mục bị ẩn, hãy gõ nó dưới đây rồi bấm phím " "TAB." #: ../import_gui.c:484 msgid "Import File Type" msgstr "Kiểu tập tin nhập" #: ../install_gui.c:366 #, fuzzy msgid "Files to install" msgstr "Tập tin cần cài đặt" #: ../install_gui.c:374 msgid "Install" msgstr "Cài đặt" #: ../install_user.c:118 ../install_user.c:220 #, fuzzy msgid "Install User" msgstr "/Tập tin/Cài đặt người dùng" #: ../install_user.c:139 msgid "" "A PalmOS(c) device needs a user name and a user ID in order to sync properly." msgstr "" #: ../install_user.c:146 msgid "" "If you want to sync more than 1 PalmOS(c) device each one should have a " "different ID and preferably a different user name." msgstr "" #. Instruction label #: ../install_user.c:168 msgid "Most people choose their name or nickname for the user name." msgstr "" #: ../install_user.c:176 ../restore_gui.c:278 msgid "User Name" msgstr "Tên người dùng" #: ../install_user.c:186 msgid "The ID should be a random number." msgstr "" #: ../install_user.c:194 ../restore_gui.c:297 msgid "User ID" msgstr "ID người dùng" #: ../jpilot.c:319 msgid "Print" msgstr "In" #: ../jpilot.c:320 msgid "There is no print support for this conduit." msgstr "Không hỗ trợ khả năng in cho ống dẫn này." #: ../jpilot.c:386 msgid "There is no import support for this conduit." msgstr "Không hỗ trợ khả năng nhập cho ống dẫn này." #: ../jpilot.c:430 msgid "There is no export support for this conduit." msgstr "Không hỗ trợ khả năng xuất cho ống dẫn này." #: ../jpilot.c:659 #, fuzzy msgid " Cancelling HotSync\n" msgstr "Thôi đồng bộ" #. ------------------------------------------- #: ../jpilot.c:675 #, fuzzy msgid "" "This handheld does not have the same user name or user ID\n" "as the one that was synced the last time.\n" "Syncing could have unwanted effects including data loss.\n" "\n" "Read the user manual if you are uncertain." msgstr "" "Máy Palm này không có cùng một tên người\n" "dùng hay ID người dùng với Palm đã đồng bộ\n" "lần trước. Như thế thì việc đồng bộ hóa có thể\n" "tác động một cách sai. Hãy đọc Sổ Tay nếu chưa chắc." #. ------------------------------------------- #: ../jpilot.c:682 #, fuzzy msgid "" "This handheld has a NULL user ID.\n" "Every handheld must have a unique user ID in order to sync properly.\n" "If the handheld has been hard reset, \n" " use restore from the menu to restore it.\n" "Otherwise, to add a new user name and ID\n" " use install-user from the menu.\n" "\n" "Read the user manual if you are uncertain." msgstr "" "Máy Palm này có ID người dùng RỖNG.\n" "Mỗi Palm phải có ID người dùng duy nhất, để đồng bộ được.\n" "Nếu Palm này đã bị lặp lại cứng, hãy dùng Phục hồi từ trình đơn\n" "để phục hồi các thông tin, hoặc dùng pilot-xfer.\n" "Để thêm một tên người dùng và ID, hãy dùng công cụ dòng lệnh\n" "« install-user », hoặc dùng « Cài đặt người dùng » từ trình đơn.\n" "Hãy đọc Sổ Tay nếu chưa chắc." #: ../jpilot.c:690 msgid "Cancel Sync" msgstr "Thôi đồng bộ" #: ../jpilot.c:690 msgid "Sync Anyway" msgstr "Vẫn đồng bộ" #: ../jpilot.c:699 ../jpilot.c:703 msgid "Sync Problem" msgstr "Lỗi đồng bộ" #: ../jpilot.c:932 ../jpilot.c:1785 msgid " User: " msgstr " Người dùng: " #: ../jpilot.c:944 msgid "Unknown command from sync process\n" msgstr "Không biết lệnh từ tiến trình đồng bộ\n" #: ../jpilot.c:963 ../Expense/expense.c:529 ../KeyRing/keyring.c:1872 #: ../SyncTime/synctime.c:61 #, c-format msgid "About %s" msgstr "Giới thiệu về %s" #: ../jpilot.c:1105 msgid "/_File" msgstr "/_Tập tin" #: ../jpilot.c:1106 msgid "/File/tear" msgstr "/Tập tin/tách rời" #: ../jpilot.c:1107 msgid "/File/_Find" msgstr "/Tập tin/_Tìm" #: ../jpilot.c:1108 ../jpilot.c:1114 ../jpilot.c:1117 msgid "/File/sep1" msgstr "/Tập tin/sep1" #: ../jpilot.c:1109 msgid "/File/_Install" msgstr "/Tập tin/_Cài đặt" #: ../jpilot.c:1110 msgid "/File/Import" msgstr "/Tập tin/Nhập" #: ../jpilot.c:1111 msgid "/File/Export" msgstr "/Tập tin/Xuất" #: ../jpilot.c:1112 ../jpilot.c:2190 msgid "/File/Preferences" msgstr "/Tập tin/Tùy thích" #: ../jpilot.c:1113 msgid "/File/_Print" msgstr "/Tập tin/_In" #: ../jpilot.c:1115 msgid "/File/Install User" msgstr "/Tập tin/Cài đặt người dùng" #: ../jpilot.c:1116 msgid "/File/Restore Handheld" msgstr "/Tập tin/Phục hồi bộ cầm tay" #: ../jpilot.c:1118 msgid "/File/_Quit" msgstr "/Tập tin/T_hoát" #: ../jpilot.c:1119 msgid "/_View" msgstr "/_Xem" #: ../jpilot.c:1120 ../jpilot.c:1121 ../jpilot.c:1122 ../jpilot.c:1368 msgid "/View/Hide Private Records" msgstr "/Xem/Ẩn các mục ghi riêng" #: ../jpilot.c:1121 ../jpilot.c:1371 msgid "/View/Show Private Records" msgstr "/Xem/Hiện các mục ghi riêng" #: ../jpilot.c:1122 ../jpilot.c:1374 msgid "/View/Mask Private Records" msgstr "/Xem/Lọc các mục ghi riêng" #: ../jpilot.c:1123 msgid "/View/sep1" msgstr "/Xem/sep1" #: ../jpilot.c:1124 msgid "/View/Datebook" msgstr "/Xem/Sổ Ngày" #: ../jpilot.c:1125 msgid "/View/Addresses" msgstr "/Xem/Địa chỉ" #: ../jpilot.c:1126 msgid "/View/Todos" msgstr "/Xem/Cần làm" #: ../jpilot.c:1127 msgid "/View/Memos" msgstr "/Xem/Ghi nhớ" #: ../jpilot.c:1128 ../jpilot.c:1259 msgid "/_Plugins" msgstr "/Xem/Bộ cầm _phít" #: ../jpilot.c:1130 msgid "/_Web" msgstr "/_Mạng" # Name: don't translate /Tên: đừng dịch #. web #: ../jpilot.c:1131 msgid "/Web/Netscape" msgstr "/Mạng/Netscape" # Name: don't translate / Tên: đừng dịch #: ../jpilot.c:1135 msgid "/Web/Mozilla" msgstr "/Mạng/Mozilla" #: ../jpilot.c:1140 msgid "/Web/Galeon" msgstr "/Mạng/Galeon" #: ../jpilot.c:1145 msgid "/Web/Opera" msgstr "/Mạng/Opera" #: ../jpilot.c:1149 msgid "/Web/GnomeUrl" msgstr "/Mạng/GnomeUrl" #: ../jpilot.c:1151 msgid "/Web/Lynx" msgstr "/Mạng/Lynx" #: ../jpilot.c:1153 msgid "/Web/Links" msgstr "/Mạng/Links" #: ../jpilot.c:1155 msgid "/Web/W3M" msgstr "/Mạng/W3M" #: ../jpilot.c:1157 msgid "/Web/Konqueror" msgstr "/Mạng/Konqueror" #: ../jpilot.c:1160 msgid "/_Help" msgstr "/Trợ _giúp" #: ../jpilot.c:1161 #, fuzzy msgid "/Help/About J-Pilot" msgstr "/Trợ giúp/J-Pilot" #: ../jpilot.c:1227 #, c-format msgid "/_Plugins/%s" msgstr "/Bộ cầm _phít/%s" #: ../jpilot.c:1237 #, c-format msgid "/_Help/%s" msgstr "/Trợ _giúp/%s" #: ../jpilot.c:1591 msgid "calendar:week_start:0" msgstr "calendar:week_start:0" #: ../jpilot.c:1634 ../jpilot-sync.c:171 msgid "Not loading plugins.\n" msgstr "Không tải bộ cầm phít.\n" #: ../jpilot.c:1638 msgid "Ignoring all alarms.\n" msgstr "Bỏ qua mọi bảo động.\n" #: ../jpilot.c:1642 msgid "Ignoring past alarms.\n" msgstr "Bỏ qua các bảo động qua.\n" #: ../jpilot.c:1730 ../jpilot.c:1738 msgid "Unable to open pipe\n" msgstr "Không thể mở ống\n" #: ../jpilot.c:1947 #, fuzzy msgid "Show private records Ctrl+Z" msgstr "Hiện bản ghi riêng Ctrl-Z" #: ../jpilot.c:1952 #, fuzzy msgid "Hide private records Ctrl+Z" msgstr "Ẩn bản ghi riêng Ctrl-Z" #: ../jpilot.c:1957 #, fuzzy msgid "Mask private records Ctrl+Z" msgstr "Lọc bản ghi riêng Ctrl-Z" #: ../jpilot.c:1969 #, fuzzy msgid "Sync your palm to the desktop Ctrl+Y" msgstr "Đồng bộ hóa Palm với máy tính Ctrl-Y" #: ../jpilot.c:1981 #, fuzzy msgid "Stop Sync process" msgstr "Đồng bộ hóa Địa chỉ" #: ../jpilot.c:1993 msgid "" "Sync your palm to the desktop\n" "and then do a backup" msgstr "" "Đồng bộ hóa Palm với máy tính\n" "rồi sao lưu hết" #: ../jpilot.c:2141 msgid "Datebook/Go to Today" msgstr "Sổ Ngày/Đi tới ngày hôm nay" #: ../jpilot.c:2142 msgid "Address Book" msgstr "Sổ địa chỉ" #: ../jpilot.c:2143 msgid "ToDo List" msgstr "Danh sách Cần làm" #: ../jpilot.c:2144 msgid "Memo Pad" msgstr "Tập giấy Ghi nhớ" #: ../jpilot.c:2172 msgid "Do it now" msgstr "Làm ngay" #: ../jpilot.c:2172 msgid "Remind me later" msgstr "Nhắc nhở lần sau" #: ../jpilot.c:2172 msgid "Don't tell me again!" msgstr "Đừng nói điều này lần nữa." #: ../jpilot.c:2185 #, fuzzy, c-format msgid "" "J-Pilot uses the GTK2 graphical toolkit. This version of the toolkit uses " "UTF-8 to encode characters.\n" "You should select a UTF-8 charset so that you can see non-ASCII characters " "(accents for example).\n" "\n" "Go to the menu \"%s\" and change the \"%s\"." msgstr "" "Chương trình J-Pilot đang dùng bộ công cụ đồ họa GTK2. Phiên bản bộ công cụ " "này dùng UTF-8 để mã hóa ký tự.\n" "Bạn nên chọn một bộ ký tự UTF-8 để có khả năng xem ký tự khác ASCII, v.d. " "chữ có giọng.\n" "\n" #. Character Set #: ../jpilot.c:2190 ../prefs_gui.c:511 #, fuzzy msgid "Character Set" msgstr "Bộ ký tự" #: ../jpilot.c:2192 msgid "Select a UTF-8 encoding" msgstr "Chọn bảng mã UTF-8" #: ../jpilot-dump.c:94 #, fuzzy, c-format msgid " +D +A +T +M format like date +format.\n" msgstr "" " dạng thức +B +M +A +T giống như dạng thức date+ (dùng « -? » sẽ xem thông " "tin thêm).\n" #: ../jpilot-dump.c:95 #, fuzzy, c-format msgid " -v display version and exit\n" msgstr " -v hiện phiên bản rồi thoát.\n" #: ../jpilot-dump.c:96 ../jpilot-sync.c:68 ../utils.c:1874 #, fuzzy, c-format msgid " -h display help text\n" msgstr " -h hiện trợ giúp rồi thoát.\n" #: ../jpilot-dump.c:97 #, fuzzy, c-format msgid " -f display help for format codes\n" msgstr " -h hiện trợ giúp rồi thoát.\n" #: ../jpilot-dump.c:98 #, fuzzy, c-format msgid " -D dump DateBook\n" msgstr " -B đổ Sổ Ngày.\n" #: ../jpilot-dump.c:99 #, c-format msgid " -i dump DateBook in iCalendar format\n" msgstr "" #: ../jpilot-dump.c:100 #, fuzzy, c-format msgid " -N dump appts for today in DateBook\n" msgstr " -N đổ các cuộc hẹn của hôm nay trong Sổ Ngày\n" #: ../jpilot-dump.c:101 #, fuzzy, c-format msgid " -NYYYY/MM/DD dump appts on YYYY/MM/DD in DateBook\n" msgstr " -NNĂM/Th/Ng đổ các cuộc hẹn của NĂM/Th/Ng trong Sổ Ngày.\n" #: ../jpilot-dump.c:102 #, fuzzy, c-format msgid " -A dump Address book\n" msgstr " -A đổ Sổ địa chỉ\n" #: ../jpilot-dump.c:103 #, fuzzy, c-format msgid " -T dump ToDo list as CSV\n" msgstr " -T đổ danh sách Cần Làm dạng .csv\n" #: ../jpilot-dump.c:104 #, fuzzy, c-format msgid " -M dump Memos\n" msgstr " -M đổ các Ghi nhớ\n" #: ../jpilot-dump.c:165 #, c-format msgid "" "Warning: Host character encoding is not UTF-8 based.\n" "Exported ical file may not be standards-compliant\n" msgstr "" #: ../jpilot-merge.c:163 ../jpilot-merge.c:169 #, fuzzy, c-format msgid "%s: Unable to open file:%s\n" msgstr "Không thể mở tập tin: %s\n" #: ../jpilot-merge.c:271 #, c-format msgid "Records read from pdb = %d\n" msgstr "" #: ../jpilot-merge.c:272 #, c-format msgid "Records added = %d\n" msgstr "" #: ../jpilot-merge.c:273 #, c-format msgid "Records deleted = %d\n" msgstr "" #: ../jpilot-merge.c:274 #, c-format msgid "Records modified = %d\n" msgstr "" #: ../jpilot-merge.c:275 #, c-format msgid "Records written = %d\n" msgstr "" #: ../jpilot-merge.c:293 #, c-format msgid "Usage: %s {input pdb file} {input pc3 file} {output pdb file}\n" msgstr "" #: ../jpilot-merge.c:294 #, c-format msgid " This program will merge an unsynced records file (pc3)\n" msgstr "" #: ../jpilot-merge.c:295 #, c-format msgid "" " into the corresponding palm database (pdb) file.\n" "\n" msgstr "" #: ../jpilot-merge.c:296 #, c-format msgid " WARNING: Only run this utility if you understand the consequences!\n" msgstr "" #: ../jpilot-merge.c:297 #, c-format msgid " The merge will leave your databases in an unsync-able state.\n" msgstr "" #: ../jpilot-merge.c:298 #, c-format msgid "" " It is intended for cases where J-pilot is being used as a standalone PIM\n" msgstr "" #: ../jpilot-merge.c:299 #, c-format msgid " and where no syncing occurs to physical hardware.\n" msgstr "" #: ../jpilot-merge.c:300 #, c-format msgid " WARNING: Make a backup copy of your databases before proceeding.\n" msgstr "" #: ../jpilot-merge.c:301 #, c-format msgid "" " It is quite simple to destroy your databases by accidentally merging\n" msgstr "" #: ../jpilot-merge.c:302 #, c-format msgid " address records into datebook databases, etc.\n" msgstr "" #: ../jpilot-sync.c:66 #, fuzzy, c-format msgid "" " J-Pilot preferences are read to get sync info such as port, rate, number of " "backups, etc.\n" msgstr "Tùy thích J-Pilot được đọc để biết cổng, tốc độ, số bản sao lưu v.v.\n" #: ../jpilot-sync.c:67 ../utils.c:1873 #, fuzzy, c-format msgid " -v display version and compile options\n" msgstr " -v hiện phiên bản và tùy chọn biên dịch rồi thoát.\n" #: ../jpilot-sync.c:69 ../utils.c:1875 #, fuzzy, c-format msgid " -d display debug info to stdout\n" msgstr " -d hiện thông tin gỡ lỗi vào thiết bị xuất chuẩn.\n" #: ../jpilot-sync.c:70 #, fuzzy, c-format msgid " -P skip loading plugins\n" msgstr "Không tải bộ cầm phít.\n" #: ../jpilot-sync.c:71 #, fuzzy, c-format msgid " -b sync, and then do a backup\n" msgstr "" "Đồng bộ hóa Palm với máy tính\n" "rồi sao lưu hết" #: ../jpilot-sync.c:72 #, fuzzy, c-format msgid " -l loop, otherwise sync once and exit\n" msgstr " -l = lặp lại, không thì đồng bộ hóa một lần rồi thoát.\n" #: ../jpilot-sync.c:73 #, fuzzy, c-format msgid " -p {port} use this port to sync on instead of default\n" msgstr "" " -p (cổng) = dùng cổng này để đồng bộ hóa, không đọc cổng từ tùy thích.\n" #: ../jpilot-sync.c:221 #, fuzzy, c-format msgid "Error: connecting to port %s\n" msgstr "Gặp lỗi khi mở tập tin: %s\n" #: ../jpilot-sync.c:225 #, c-format msgid "Error: pi_listen\n" msgstr "" #: ../jpilot-sync.c:229 #, fuzzy, c-format msgid "Error: opening conduit to handheld\n" msgstr "Gặp lỗi khi mở tập tin: next_id\n" #: ../jpilot-sync.c:233 #, c-format msgid "Error: pi_accept\n" msgstr "" #: ../jpilot-sync.c:237 ../jpilot-sync.c:265 #, fuzzy, c-format msgid "Error: " msgstr "Lỗi" #: ../jpilot-sync.c:238 #, c-format msgid "This handheld does not have the same user name.\n" msgstr "" #: ../jpilot-sync.c:239 ../jpilot-sync.c:253 #, c-format msgid "as the one that was synced the last time.\n" msgstr "" #: ../jpilot-sync.c:241 #, c-format msgid "" "Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:243 ../jpilot-sync.c:256 #, c-format msgid " COPILOT_HOME" msgstr "" #: ../jpilot-sync.c:245 ../jpilot-sync.c:258 #, c-format msgid " JPILOT_HOME" msgstr "" #: ../jpilot-sync.c:247 ../jpilot-sync.c:260 #, fuzzy, c-format msgid " environment variable can be used to sync different handhelds,\n" msgstr "Biến môi trường HOME của bạn là quá dài.\n" #: ../jpilot-sync.c:248 ../jpilot-sync.c:261 #, c-format msgid " to different directories for the same UNIX user name.\n" msgstr "" #: ../jpilot-sync.c:252 #, c-format msgid "This handheld does not have the same user ID.\n" msgstr "" #: ../jpilot-sync.c:254 #, c-format msgid "" " Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:266 #, c-format msgid "This handheld has a NULL user ID.\n" msgstr "" #: ../jpilot-sync.c:267 #, c-format msgid "Every handheld must have a unique user ID in order to sync properly.\n" msgstr "" #: ../jpilot-sync.c:268 #, c-format msgid "If the handheld has been hard reset, \n" msgstr "" #: ../jpilot-sync.c:269 #, c-format msgid " use restore from within " msgstr "" #: ../jpilot-sync.c:270 #, c-format msgid "Otherwise, to add a new user name and ID\n" msgstr "" #: ../jpilot-sync.c:271 #, c-format msgid " use \"install-user %s name numeric_id\"\n" msgstr "" #: ../jpilot-sync.c:275 #, c-format msgid "Error: sync returned error %d\n" msgstr "" #: ../libplugin.c:64 ../utils.c:1054 msgid "" "This record is already deleted.\n" "It is scheduled to be deleted from the Palm on the next sync.\n" msgstr "" "Mục ghi đã bị xoá bỏ.\n" "Nó sẽ bị xoá bỏ ra máy Palm vào lúc đồng bộ hóa kế tiếp.\n" #: ../libplugin.c:73 ../libplugin.c:110 ../utils.c:1064 ../utils.c:1106 msgid "Unable to open PC records file\n" msgstr "Không thể mở tập tin mục ghi PC.\n" #: ../libplugin.c:79 ../utils.c:1071 msgid "Couldn't find record to delete\n" msgstr "Không thể tìm thấy mục ghi cần xoá bỏ.\n" #: ../libplugin.c:97 ../utils.c:1091 #, c-format msgid "Unknown header version %d\n" msgstr "Không biết phiên bản phần đầu %d\n" #: ../libplugin.c:182 #, c-format msgid "%s:%d Error opening file: %s\n" msgstr "%s:%d Gặp lỗi khi mở tập tin: %s\n" #: ../libplugin.c:188 ../libplugin.c:217 ../sync.c:1721 ../todo.c:102 #, c-format msgid "%s:%d Error reading file: %s\n" msgstr "%s:%d Gặp lỗi khi đọc tập tin: %s\n" #: ../libplugin.c:340 ../libplugin.c:398 ../utils.c:2119 ../utils.c:2132 #, c-format msgid "Error opening file: %s\n" msgstr "Gặp lỗi khi mở tập tin: %s\n" #: ../libplugin.c:526 #, c-format msgid "Error reading %s 5\n" msgstr "Gặp lỗi khi đọc %s 5.\n" #: ../libplugin.c:801 msgid "Error reading PC file 1\n" msgstr "Gặp lỗi khi đọc tập tin PC 1\n" #: ../libplugin.c:817 msgid "Error reading PC file 2\n" msgstr "Gặp lỗi khi đọc tập tin PC 2\n" #: ../libplugin.c:923 #, c-format msgid "Unknown PC header version = %d\n" msgstr "Không biết phiên bản phần đầu PC = %d\n" #: ../log.c:101 #, c-format msgid "Unable to open log file, giving up.\n" msgstr "Không thể mở tập tin bản ghi nên chịu thua.\n" #: ../log.c:111 #, c-format msgid "Unable to open log file\n" msgstr "Không thể mở tập tin bản ghi.\n" #: ../memo_gui.c:302 msgid "Memo text > 65535, truncating\n" msgstr "Chuỗi ghi nhớ >65535 nên cắt xén nó\n" #: ../memo_gui.c:330 #, c-format msgid "Imported Memo %s\n" msgstr "Ghi nhớ đã nhập %s\n" #: ../memo_gui.c:400 msgid "File doesn't appear to be memopad.dat format\n" msgstr "Tập tin có vẻ không phải có dạng thức .\n" #: ../memo_gui.c:471 msgid "DAT/MPA (Palm Archive Formats)" msgstr "" #: ../memo_gui.c:554 #, c-format msgid "" "Memo exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:557 #, c-format msgid "" "Memos exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:584 #, c-format msgid "Can't export memo %d\n" msgstr "Không thể xuất ghi nhớ %d.\n" #: ../memo_gui.c:628 #, fuzzy, c-format msgid "Memo: %ld\n" msgstr "Tập giấy Ghi nhớ" #: ../memo_gui.c:634 #, c-format msgid "----- Start of Memo -----\n" msgstr "" #: ../memo_gui.c:636 #, c-format msgid "" "\n" "----- End of Memo -----\n" "\n" msgstr "" #: ../memo_gui.c:668 msgid "B-Folders CSV" msgstr "" #: ../monthview_gui.c:438 msgid "Monthly View" msgstr "Xem tháng" #: ../monthview_gui.c:480 msgid "Last month Alt+LeftArrow" msgstr "" #: ../monthview_gui.c:508 msgid "Next month Alt+RightArrow" msgstr "" #: ../otherconv.c:76 #, c-format msgid "%s: error exit from g_iconv_close(%s)\n" msgstr "" #: ../otherconv.c:201 #, c-format msgid "%s:%s g_convert_with_iconv error: %s, buff: %s\n" msgstr "" #: ../otherconv.c:203 msgid "last char truncated" msgstr "" #: ../otherconv.c:280 #, c-format msgid "UTF_to_other: %s\n" msgstr "" #: ../otherconv.c:294 #, c-format msgid "iconv: unconvertible sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:298 #, c-format msgid "iconv: incomplete UTF-8 sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:301 #, c-format msgid "iconv: buffer filled. stopped at place %d in '%s'\n" msgstr "" #: ../otherconv.c:304 #, c-format msgid "iconv: unexpected error at place %d in '%s'\n" msgstr "" #: ../password.c:283 msgid "Palm Password" msgstr "Mật khẩu Palm" #: ../password.c:308 msgid "Incorrect, Reenter PalmOS Password" msgstr "Sai, hãy gõ lại mật khẩu PalmOS" #: ../password.c:310 msgid "Enter PalmOS Password" msgstr "Gõ mật khẩu PalmOS" #: ../pidfile.c:67 msgid "removing stale pidfile\n" msgstr "" #: ../pidfile.c:91 #, fuzzy, c-format msgid "create pidfile failed: %s\n" msgstr "Gặp lỗi khi đọc tập tin: %s\n" #: ../pidfile.c:92 msgid "Warning: hotplug syncing disabled.\n" msgstr "" #: ../plugins.c:90 ../plugins.c:203 ../restore_gui.c:133 msgid "infinite loop" msgstr "bị lặp vô hạn" #: ../plugins.c:216 #, c-format msgid "While reading %s%s line 1:[%s]\n" msgstr "Trong khi đọc %s%s dòng 1:[%s]\n" #: ../plugins.c:217 msgid "Wrong Version\n" msgstr "Phiên bản không đúng\n" #: ../plugins.c:218 msgid "Check preferences->conduits\n" msgstr "Kiểm tra Tùy thích → Ống dẫn\n" #: ../plugins.c:274 #, c-format msgid "" "Open failed on plugin [%s]\n" " error [%s]\n" msgstr "" "Việc mở bị lỗi trên bộ cầm phít [%s]\n" " lỗi [%s]\n" #: ../plugins.c:291 ../plugins.c:316 #, c-format msgid " plugin is invalid: [%s]\n" msgstr " bộ cầm phít không hợp lệ: [%s]\n" #: ../plugins.c:299 #, c-format msgid "Plugin:[%s]\n" msgstr "Bộ cầm phít:[%s]\n" #: ../plugins.c:300 #, c-format msgid "This plugin is version (%d.%d).\n" msgstr "Bộ cầm phít này là phiên bản (%d.%d).\n" #: ../plugins.c:302 msgid "It is too old to work with this version of J-Pilot.\n" msgstr "nó quá cũ để hoạt động với phiên bản J-Pilot này.\n" #: ../prefs.c:420 msgid "%B %d, %Y" msgstr "%B %d, %Y" #: ../prefs.c:421 msgid "%d %B %Y" msgstr "%d %B %Y" #: ../prefs.c:422 msgid "%d. %B %Y" msgstr "%d. %B %Y" #: ../prefs.c:423 msgid "%d %B, %Y" msgstr "%d %B, %Y" #: ../prefs.c:424 msgid "%Y. %B. %d" msgstr "%Y. %B. %d" #: ../prefs.c:425 msgid "%Y %B %d" msgstr "%Y %B %d" #: ../prefs_gui.c:454 msgid "Preferences" msgstr "Tùy thích" #: ../prefs_gui.c:485 msgid "Locale" msgstr "Miền địa phương" #: ../prefs_gui.c:487 msgid "Settings" msgstr "Thiết lập" #: ../prefs_gui.c:489 msgid "Datebook" msgstr "Sổ Ngày" #: ../prefs_gui.c:493 msgid "ToDo" msgstr "Cần làm" #: ../prefs_gui.c:495 msgid "Memo" msgstr "Ghi nhớ" #: ../prefs_gui.c:497 msgid "Alarms" msgstr "Báo động" #: ../prefs_gui.c:499 msgid "Conduits" msgstr "Ống dẫn" #. Shortdate #: ../prefs_gui.c:524 #, fuzzy msgid "Short date format" msgstr "Dạng ngày ngắn" #. Longdate #: ../prefs_gui.c:537 #, fuzzy msgid "Long date format" msgstr "Dạng ngày dài" #. Time #: ../prefs_gui.c:550 #, fuzzy msgid "Time format" msgstr "Dạng giờ" #. GTK colors file #: ../prefs_gui.c:570 #, fuzzy msgid "GTK color theme file" msgstr "Tập tin màu sắc GTK của tôi là " #. Port #: ../prefs_gui.c:583 #, fuzzy msgid "Sync Port" msgstr "Lỗi đồng bộ" #. Serial Rate #: ../prefs_gui.c:607 msgid "Serial Rate" msgstr "" #. Number of backups #: ../prefs_gui.c:627 msgid "Number of backups to be archived" msgstr "Số bản sao lưu cần lưu trữ" #. Show deleted files check box #: ../prefs_gui.c:645 msgid "Show deleted records (default NO)" msgstr "Hiển thị mục ghi bị xoá bỏ (mặc định là KHÔNG)" #. Show modified files check box #: ../prefs_gui.c:649 msgid "Show modified deleted records (default NO)" msgstr "Hiển thị mục ghi bị xoá bỏ đã sửa đổi (mặc định là KHÔNG)" #: ../prefs_gui.c:654 msgid "Ask confirmation for file installation (J-Pilot -> PDA) (default YES)" msgstr "Nhắc xác nhận cài đặt tập tin (J-Pilot → PDA) (mặc định là CÓ)" #. Show tooltips check box #: ../prefs_gui.c:658 #, fuzzy msgid "Show popup tooltips (default YES) (requires restart)" msgstr "Hiển thị mẹo công cụ bật lên (mặc định là CÓ)" #: ../prefs_gui.c:668 msgid "Use Datebook database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:671 msgid "Use Calendar database (Palm OS > 5.2)" msgstr "" #. Show highlight days check box #: ../prefs_gui.c:697 msgid "Highlight calendar days with appointments" msgstr "Làm nổi bật ngày trên lịch có cuộc hẹn" #. Highlight today on month and week view #: ../prefs_gui.c:702 msgid "Annotate today in day, week, and month views" msgstr "Đánh dấu ngày hôm nay trong khung xem ngày, tuần và tháng đều" #. Show number of years on anniversaries in month and week view #: ../prefs_gui.c:706 msgid "Append years on anniversaries in day, week, and month views" msgstr "Phụ thêm năm vào ngày kỉ niệm trong khung xem ngày, tuần và tháng đều" #. Show use DateBk check box #: ../prefs_gui.c:712 msgid "Use DateBk note tags" msgstr "Dùng thẻ ghi chú Sổ Ngày" #: ../prefs_gui.c:715 msgid "DateBk support disabled in this build" msgstr "Bản xây dựng này không hỗ trợ Sổ Ngày (DateBk)" #: ../prefs_gui.c:727 msgid "Use Address database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:730 msgid "Use Contacts database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:759 msgid "Mail Command" msgstr "Lệnh thư" #: ../prefs_gui.c:773 #, c-format msgid "%s is replaced by the e-mail address" msgstr "%s được thay thế bằng địa chỉ thư điện tử" #: ../prefs_gui.c:785 msgid "Use ToDo database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:788 msgid "Use Task database (Palm OS > 5.2)" msgstr "" #. hide completed check box #: ../prefs_gui.c:815 msgid "Hide Completed ToDos" msgstr "Ẩn mọi tác vụ hoàn tất" #. hide todos not yet due check box #: ../prefs_gui.c:819 msgid "Hide ToDos not yet due" msgstr "Ẩn tác vụ chưa tới hạn" #. record todo completion date check box #: ../prefs_gui.c:823 msgid "Record Completion Date" msgstr "Ghi lưu Ngày hoàn tất" #. Use Manana check box #: ../prefs_gui.c:828 msgid "Use Manana database" msgstr "Dùng cơ sở dữ liệu Manana" #: ../prefs_gui.c:836 msgid "Use default number of days due" msgstr "Dùng số ngày tới hạn mặc định" #: ../prefs_gui.c:858 msgid "Use Memo database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:861 msgid "Use Memos database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:864 #, fuzzy msgid "Use Memo32 database (pedit32)" msgstr "Dùng Memo32 (pedit32)" #: ../prefs_gui.c:904 msgid "External Editor" msgstr "" #: ../prefs_gui.c:917 msgid "Use Ctrl-E inside a memo to launch external editor for memo text" msgstr "" #. ******************************************************************** #. Alarms preference tab #. Open alarm windows check box #: ../prefs_gui.c:925 msgid "Open alarm windows for appointment reminders" msgstr "Mở cửa sổ báo động khi nhắc nhở cuộc hẹn" #. Execute alarm command check box #: ../prefs_gui.c:929 msgid "Execute this command" msgstr "Thi hành lệnh này" #. Shell warning label #: ../prefs_gui.c:933 msgid "WARNING: executing arbitrary shell commands can be dangerous!!!" msgstr "Cảnh báo : thực thi lệnh hệ vỏ tùy ý có thể gây nguy hiểm !!!" #: ../prefs_gui.c:941 msgid "Alarm Command" msgstr "Lệnh báo động" #: ../prefs_gui.c:954 msgid "%t is replaced with the alarm time" msgstr "%t được thay thế bằng giờ báo động" #: ../prefs_gui.c:958 #, c-format msgid "%d is replaced with the alarm date" msgstr "%d được thay thế bằng ngày báo động" #: ../prefs_gui.c:963 msgid "%D is replaced with the alarm description" msgstr "%D được thay thế bằng mô tả báo động" #: ../prefs_gui.c:967 msgid "%N is replaced with the alarm note" msgstr "%N được thay thế bằng ghi chú báo động" #: ../prefs_gui.c:971 msgid "%D (description substitution) is disabled in this build" msgstr "%D (thay thế mô tả) bị tắt trong bản xây dụng này" #: ../prefs_gui.c:976 msgid "%N (note substitution) is disabled in this build" msgstr "%N (thay thế ghi chú) bị tắt trong bản xây dụng này" #. ******************************************************************** #. Conduits preference tab #. Sync datebook check box #: ../prefs_gui.c:986 msgid "Sync datebook" msgstr "Đồng bộ hóa Sổ Ngày" #. Sync address check box #: ../prefs_gui.c:990 msgid "Sync address" msgstr "Đồng bộ hóa Địa chỉ" #. Sync todo check box #: ../prefs_gui.c:994 msgid "Sync todo" msgstr "Đồng bộ hóa Cần làm" #. Sync memo check box #: ../prefs_gui.c:998 msgid "Sync memo" msgstr "Đồng bộ hóa Ghi nhớ" #. Show sync Manana check box #: ../prefs_gui.c:1003 msgid "Sync Manana" msgstr "Đồng bộ hóa Manana" #. Show use Japanese Kana extention check box #: ../prefs_gui.c:1009 msgid "Use J-OS (Not Japanese PalmOS:WorkPad/CLIE)" msgstr "Dùng J-OS (không phải PalmOS của Nhật: WorkPad/CLIE)" #. Make a Sync checkbox for each plugin #: ../prefs_gui.c:1022 #, c-format msgid "Sync %s (%s)" msgstr "Đồng bộ hóa %s (%s)" #: ../print_gui.c:185 msgid "Print Options" msgstr "Tùy chọn in" #: ../print_gui.c:198 msgid "Paper Size" msgstr "Cỡ giấy" #: ../print_gui.c:214 msgid "Daily Printout" msgstr "Bản in hàng ngày" #: ../print_gui.c:220 msgid "Weekly Printout" msgstr "Bản in hàng tuần" #: ../print_gui.c:226 msgid "Monthly Printout" msgstr "Bản in hàng tháng" #: ../print_gui.c:266 #, fuzzy msgid "Selected record" msgstr "Mới xoá bỏ mục ghi %s." #: ../print_gui.c:270 msgid "All records in this category" msgstr "Mọi mục ghi trong phân loại này" #: ../print_gui.c:274 msgid "Print all records" msgstr "In mọi mục ghi" #: ../print_gui.c:296 msgid "One record per page" msgstr "Một mục ghi trong mỗi trang" #: ../print_gui.c:312 #, fuzzy msgid "Blank lines between each record" msgstr " Dòng trắng giữa hai mục ghi" #. Print Command #: ../print_gui.c:321 msgid "Print Command (e.g. lpr, or cat > file.ps)" msgstr "Lệnh in (ví dụ: lpr hay cat > tập_tin.ps)" #: ../restore_gui.c:71 ../restore_gui.c:229 msgid "Restore Handheld" msgstr "Phục hồi bộ cầm tay" #: ../restore_gui.c:176 ../restore_gui.c:178 msgid "Unable to convert filename for GTK display\n" msgstr "" #: ../restore_gui.c:177 msgid "See console log to find which file will not be restored\n" msgstr "" #: ../restore_gui.c:179 #, fuzzy, c-format msgid "File %s will not be restored\n" msgstr "Tập tin cần cài đặt" #. Label for instructions #: ../restore_gui.c:246 msgid "To restore your handheld:" msgstr "Để phục hồi bộ cầm tay của bạn:" #: ../restore_gui.c:249 #, fuzzy msgid "1. Choose the applications you wish to restore. The default is all." msgstr "1. Chọn mọi ứng dụng bạn muốn phục hồi. (Mặc định là tất cả.)" #: ../restore_gui.c:252 msgid "2. Enter the User Name and User ID." msgstr "2. Gõ tên người dùng và ID người dùng." #: ../restore_gui.c:255 msgid "3. Press the OK button." msgstr "3. Nhấn nút Được." #: ../restore_gui.c:258 msgid "This will overwrite data that is currently on the handheld." msgstr "Việc này sẽ ghi đè lên toàn bộ dữ liệu hiện thời trên bộ cầm phít." #: ../search_gui.c:144 msgid "datebook" msgstr "sổ ngày" #: ../search_gui.c:146 #, fuzzy msgid "calendar" msgstr "Xoá" #: ../search_gui.c:233 msgid "address" msgstr "địa chỉ" #: ../search_gui.c:235 msgid "contact" msgstr "" #: ../search_gui.c:304 msgid "todo" msgstr "cần làm" #: ../search_gui.c:361 msgid "memo" msgstr "ghi nhớ" #: ../search_gui.c:363 #, fuzzy msgid "memos" msgstr "ghi nhớ" #: ../search_gui.c:421 msgid "plugin ?" msgstr "bộ cầm phít ?" #: ../search_gui.c:501 msgid "No records found" msgstr "Không tìm thấy" #: ../search_gui.c:600 msgid "Search" msgstr "Tìm kiếm" #. Search label #: ../search_gui.c:617 msgid "Search for: " msgstr "Tìm kiếm:" #. Case Sensitive checkbox #: ../search_gui.c:626 msgid "Case Sensitive" msgstr "Phân biệt chữ hoa/thường" #: ../sync.c:120 msgid "open lock file failed\n" msgstr "việc mở tập tin khoá bị lỗi\n" #: ../sync.c:133 msgid "lock failed\n" msgstr "việc khoá bị lỗi\n" #: ../sync.c:136 #, c-format msgid "sync file is locked by pid %d\n" msgstr "tập tin đồng bộ bị khoá bởi PID %d\n" #: ../sync.c:171 msgid "unlock failed\n" msgstr "việc mở khoá bị lỗi\n" #: ../sync.c:174 #, c-format msgid "sync is locked by pid %d\n" msgstr "việc đồng bộ bị khoá bởi PID %d\n" #: ../sync.c:410 #, fuzzy msgid "Check your sync port and settings\n" msgstr "Hãy kiểm tra cổng nối tiếp và thiết lập\n" #: ../sync.c:669 msgid "Unable to read home dir\n" msgstr "Không thể đọc thư mục chính\n" #: ../sync.c:1075 ../sync.c:1413 #, c-format msgid "%s (Creator ID '%s') is up to date, fetch skipped.\n" msgstr "%s (ID người tạo « %s ») là hiện thời nên việc lấy đã bỏ qua.\n" #: ../sync.c:1079 ../sync.c:1417 #, c-format msgid "Fetching '%s' (Creator ID '%s')... " msgstr "Đang lấy « %s » (ID người tạo « %s »)..." #: ../sync.c:1086 ../sync.c:1423 #, c-format msgid "Failed, unable to create file %s\n" msgstr "Bị lỗi, không thể tạo tập tin %s.\n" #: ../sync.c:1090 ../sync.c:1428 #, c-format msgid "Failed, unable to back up database %s\n" msgstr "Bị lỗi, không thể cập nhật cơ sở dữ liệu %s.\n" #: ../sync.c:1094 ../sync.c:1432 ../sync.c:1619 msgid "OK\n" msgstr "Được\n" #: ../sync.c:1294 #, c-format msgid "Skipping %s (Creator ID '%s')\n" msgstr "Đang bỏ qua %s (ID người tạo « %s »)\n" #: ../sync.c:1488 #, c-format msgid "Installing %s " msgstr "Đang cài đặt %s..." #: ../sync.c:1494 ../sync.c:1530 #, c-format msgid "" "\n" "Unable to open file: '%s': %s!\n" msgstr "" "\n" "Không thể mở tập tin « %s »: %s\n" #: ../sync.c:1498 #, c-format msgid "" "\n" "Unable to sync file: '%s': file corrupted?\n" msgstr "" "\n" "Không thể đồng bộ hóa tập tin « %s »: tập tin bị hỏng không?\n" #: ../sync.c:1514 #, fuzzy, c-format msgid "(Creator ID '%s')... " msgstr " (ID người tạo « %s »)..." #: ../sync.c:1518 #, fuzzy, c-format msgid "(Creator ID '%s') " msgstr " (ID người tạo « %s »)..." #: ../sync.c:1520 #, fuzzy, c-format msgid "(SDcard dir %s)... " msgstr " (ID người tạo « %s »)..." #: ../sync.c:1552 ../sync.c:1565 ../sync.c:1580 ../sync.c:1593 #, c-format msgid "" "\n" "Unable to open file: %s\n" msgstr "" "\n" "Không thể mở tập tin: %s\n" #: ../sync.c:1605 #, c-format msgid "Install %s failed" msgstr "Việc cài đặt %s bị lỗi." #: ../sync.c:1609 msgid "Failed.\n" msgstr "Bị lỗi.\n" #: ../sync.c:1615 #, fuzzy, c-format msgid "Installed %s" msgstr "Đã cài đặt %s" #: ../sync.c:1726 #, c-format msgid "%s:%d Error getting app info %s\n" msgstr "%s:%d Gặp lỗi khi lấy thông tin về ứng dụng %s\n" #: ../sync.c:1732 ../sync.c:1762 #, c-format msgid "%s:%d Error unpacking app info %s\n" msgstr "%s:%d Gặp lỗi khi giải nén thông tin về ứng dụng %s\n" #: ../sync.c:1753 #, c-format msgid "Error reading appinfo block for %s\n" msgstr "Gặp lỗi khi đọc khối thông tin về ứng dụng cho %s\n" #. Fix - need a func for this logging #: ../sync.c:1991 ../sync.c:1995 #, c-format msgid "Could not add category %s to remote.\n" msgstr "Không thể thêm phân loại %s vào bộ ở xa.\n" #: ../sync.c:1992 ../sync.c:1998 #, c-format msgid "Too many categories on remote.\n" msgstr "Quá nhiều phân loại trên bộ ở xa.\n" #: ../sync.c:1993 ../sync.c:2001 #, c-format msgid "All records on desktop in %s will be moved to %s.\n" msgstr "Mọi mục ghi trên máy tính trong %s sẽ được di chuyển sang %s.\n" #: ../sync.c:2096 ../sync.c:2814 #, c-format msgid "Syncing %s\n" msgstr "Đang đồng bộ hóa %s\n" #: ../sync.c:2104 ../sync.c:2457 ../sync.c:2822 #, c-format msgid "Wrote an %s record." msgstr "Mới ghi một mục ghi %s." #: ../sync.c:2106 ../sync.c:2459 ../sync.c:2824 #, c-format msgid "Writing an %s record failed." msgstr "Việc ghi mục ghi %s bị lỗi." #: ../sync.c:2108 ../sync.c:2461 ../sync.c:2826 #, c-format msgid "Deleting an %s record failed." msgstr "Việc xoá bỏ mục ghi %s bị lỗi." #: ../sync.c:2110 ../sync.c:2463 ../sync.c:2828 #, c-format msgid "Deleted an %s record." msgstr "Đang xoá bỏ mục ghi %s." #: ../sync.c:2112 ../sync.c:2465 #, fuzzy, c-format msgid "Sync Conflict: duplicated an %s record." msgstr "Đang xoá bỏ mục ghi %s." #: ../sync.c:2115 ../sync.c:2468 ../sync.c:2831 #, c-format msgid "Wrote a %s record." msgstr "Mới ghi mục ghi %s." #: ../sync.c:2117 ../sync.c:2470 ../sync.c:2833 #, c-format msgid "Writing a %s record failed." msgstr "Việc ghi mục ghi %s bị lỗi." #: ../sync.c:2119 ../sync.c:2472 ../sync.c:2835 #, c-format msgid "Deleting a %s record failed." msgstr "Việc xoá bỏ mục ghi %s bị lỗi." #: ../sync.c:2121 ../sync.c:2474 ../sync.c:2837 #, c-format msgid "Deleted a %s record." msgstr "Mới xoá bỏ mục ghi %s." #: ../sync.c:2123 ../sync.c:2476 #, c-format msgid "Sync Conflict: duplicated a %s record." msgstr "" #: ../sync.c:2227 ../sync.c:2557 #, c-format msgid "Sync Conflict: a %s record must be manually merged\n" msgstr "" #: ../sync.c:2358 ../sync.c:2698 msgid "" "dlp_DeleteRecord failed\n" "This could be because the record was already deleted on the Palm\n" msgstr "" "Việc « dlp_DeleteRecord » (xoá bỏ mục ghi) bị lỗi.\n" "Có lẽ vì mục ghi đó đã bị xoá bỏ trên Palm.\n" #: ../sync.c:2927 msgid "Finished installing user information.\n" msgstr "Mới cài đặt xong thông tin người dùng.\n" #: ../sync.c:3084 #, c-format msgid " Syncing on device %s\n" msgstr " Đang đồng bộ hóa thiết bị %s\n" #: ../sync.c:3085 msgid " Press the HotSync button now\n" msgstr " Hãy nhấn ngay nút HotSync\n" #: ../sync.c:3127 ../sync.c:3149 ../sync.c:3170 #, c-format msgid "Last Synced Username-->\"%s\"\n" msgstr "Tên người dùng được đồng bộ hóa mới đây → « %s »\n" #: ../sync.c:3128 ../sync.c:3150 ../sync.c:3171 #, c-format msgid "Last Synced UserID-->\"%d\"\n" msgstr "ID người dùng được sync mới đây → « %d »\n" #: ../sync.c:3129 ../sync.c:3151 ../sync.c:3172 #, c-format msgid " This Username-->\"%s\"\n" msgstr " Tên người dùng này → « %s »\n" #: ../sync.c:3130 ../sync.c:3152 ../sync.c:3173 #, c-format msgid " This User ID-->%d\n" msgstr " ID người dùng này → %d\n" #: ../sync.c:3194 #, c-format msgid "Username is \"%s\"\n" msgstr "Tên người dùng là « %s »\n" #: ../sync.c:3195 #, c-format msgid "User ID is %d\n" msgstr "ID người dùng là %d\n" #: ../sync.c:3197 #, c-format msgid "lastSyncPC = %d\n" msgstr "đồng bộ hóa PC mới đây = %d\n" #: ../sync.c:3198 #, c-format msgid "This PC = %lu\n" msgstr "PC này = %lu\n" #: ../sync.c:3222 msgid "Sync canceled\n" msgstr "Đồng bộ hóa bị thôi\n" #: ../sync.c:3245 msgid "Finished restoring handheld.\n" msgstr "Mới phục hồi xong bộ cầm tay.\n" #: ../sync.c:3246 msgid "You may need to sync to update J-Pilot.\n" msgstr "Có lẽ bạn cần phải đồng bộ hóa để cập nhật J-Pilot.\n" #: ../sync.c:3268 msgid "Doing a fast sync.\n" msgstr "Đang đồng bộ hóa nhanh.\n" #: ../sync.c:3281 msgid "Doing a slow sync.\n" msgstr "Đang đồng bộ hóa chậm.\n" #: ../sync.c:3356 msgid "Thank you for using J-Pilot." msgstr "Cám ơn bạn đã dùng J-Pilot." #: ../sync.c:3401 ../sync.c:3469 msgid "Finished.\n" msgstr "Đã xong.\n" #: ../sync.c:3436 #, c-format msgid "%s: sync process already in progress (process ID = %d)\n" msgstr "" #: ../sync.c:3437 #, fuzzy, c-format msgid "" "%s: press the HotSync button on the cradle\n" " or stop the sync by using the cancel sync button\n" " or stop the sync by typing \"kill %d\" at the command line\n" msgstr "%s: bấm nút Hotsync trên giá để, hoặc « kill %d ».\n" #: ../sync.c:3468 #, c-format msgid "Exiting with status %s\n" msgstr "Đang thoát với trạng thái %s\n" #: ../todo.c:266 #, c-format msgid "ToDo description text > %d, truncating to %d\n" msgstr "Chuỗi mô tả Cần làm > %d nên cắt xén nó thành %d\n" #: ../todo.c:272 #, c-format msgid "ToDo note text > %d, truncating to %d\n" msgstr "Chuỗi ghi chú Cần làm > %d nên cắt xén nó thành %d\n" #: ../todo_gui.c:161 msgid "Due Date" msgstr "Ngày đến hạn" #: ../todo_gui.c:532 msgid "File doesn't appear to be todo.dat format\n" msgstr "Tập tin có vẻ không phải có dạng thức .\n" #: ../todo_gui.c:596 msgid "DAT/TDA (Palm Archive Formats)" msgstr "" #: ../todo_gui.c:688 #, c-format msgid "" "ToDo exported from %s %s on %s\n" "\n" msgstr "" #: ../todo_gui.c:726 #, c-format msgid "Can't export todo %d\n" msgstr "Không thể xuất Cần làm %d\n" #: ../todo_gui.c:766 #, fuzzy, c-format msgid "Due Date: None\n" msgstr "Ngày đến hạn" #: ../todo_gui.c:769 #, fuzzy, c-format msgid "Due Date: %s\n" msgstr "Ngày đến hạn" #: ../todo_gui.c:771 #, fuzzy, c-format msgid "Priority: %d\n" msgstr "Ưu tiên: " #: ../todo_gui.c:772 #, fuzzy, c-format msgid "Completed: %s\n" msgstr "Hoàn tất" #: ../todo_gui.c:774 #, c-format msgid "Description: %s\n" msgstr "" #: ../todo_gui.c:777 #, c-format msgid "" "Note: %s\n" "\n" msgstr "" #: ../todo_gui.c:1610 msgid "Priority out of range\n" msgstr "Ưu tiên ở ngoại phạm vi.\n" #: ../todo_gui.c:1932 ../KeyRing/keyring.c:1310 #, c-format msgid "No date" msgstr "Không có ngày" #. Completed checkbox #: ../todo_gui.c:2414 msgid "Completed" msgstr "Hoàn tất" #: ../todo_gui.c:2421 #, fuzzy msgid "Priority:" msgstr "Ưu tiên: " #: ../todo_gui.c:2423 msgid "Set priority Alt+#" msgstr "" #: ../todo_gui.c:2444 msgid "Date Due:" msgstr "Ngày tới hạn:" #: ../utils.c:332 msgid "Today" msgstr "Hôm nay" #: ../utils.c:577 #, c-format msgid "Couldn't find empty DB file %s: %s\n" msgstr "Không tìm thấy tập tin cơ sở dữ liệu rỗng %s: %s\n" #: ../utils.c:580 msgid " may not be installed.\n" msgstr " không thể được cài đặt.\n" #. Can't create directory #: ../utils.c:615 ../utils.c:619 #, c-format msgid "Can't create directory %s\n" msgstr "Không thể tạo thư mục %s\n" #: ../utils.c:625 #, fuzzy, c-format msgid "%s is not a directory\n" msgstr "%s là thư mục" #: ../utils.c:630 #, fuzzy, c-format msgid "Unable to get write permission for directory %s\n" msgstr "Không thể ghi tập tin trong thư mục %s\n" #: ../utils.c:1330 ../utils.c:1354 msgid "Save Changed Record?" msgstr "Lưu mục ghi đã thay đổi không?" #: ../utils.c:1331 ../utils.c:1355 msgid "Do you want to save the changes to this record?" msgstr "Bạn có muốn lưu các thay đổi của mục ghi này không?" #: ../utils.c:1336 ../utils.c:1360 msgid "Save New Record?" msgstr "Lưu mục ghi mới không?" #: ../utils.c:1337 ../utils.c:1361 msgid "Do you want to save this new record?" msgstr "Bạn có muốn lưu mục ghi mới này không?" #: ../utils.c:1652 msgid "infinite loop, breaking\n" msgstr "bị lặp vô hạn nên ngắt nó\n" #: ../utils.c:1876 #, fuzzy, c-format msgid " -p skip loading plugins\n" msgstr "Không tải bộ cầm phít.\n" #: ../utils.c:1877 #, fuzzy, c-format msgid " -a ignore missed alarms since the last time program was run\n" msgstr "" " -a bỏ qua các báo động nhỡ sau khi lần cuối cùng chạy chương trình này.\n" #: ../utils.c:1878 #, fuzzy, c-format msgid " -A ignore all alarms past and future\n" msgstr " -A bỏ qua mọi báo động)); qua và tới.\n" #: ../utils.c:1879 #, c-format msgid " -s start sync using existing instance of GUI\n" msgstr "" #: ../utils.c:1880 #, c-format msgid " -i iconify program immediately after launch\n" msgstr "" #: ../utils.c:1881 #, c-format msgid "" " -geometry {X geometry} use specified geometry for main window\n" "\n" msgstr "" #: ../utils.c:1882 #, fuzzy, c-format msgid " The PILOTPORT and PILOTRATE environment variables specify\n" msgstr " Hai biến môi trường PILOTPORT và PILOTRATE được dùng để ghi rõ\n" #: ../utils.c:1883 #, c-format msgid " which port to sync on, and at what speed.\n" msgstr " cổng nào nơi cần đồng bộ hóa, tại tốc độ nào.\n" #: ../utils.c:1884 #, c-format msgid " If PILOTPORT is not set then it defaults to /dev/pilot.\n" msgstr "Nếu chưa đặt cổng PILOTPORT nên mặc định là .\n" #: ../utils.c:1921 msgid "Error reading file" msgstr "Lỗi đọc tập tin" #: ../utils.c:1971 msgid "Date compiled" msgstr "Ngày đã biên dịch" #: ../utils.c:1972 msgid "Compiled with these options:" msgstr "Đã biên dịch với những tùy chọn này:" #: ../utils.c:1974 msgid "Installed Path" msgstr "Đường dẫn đã cài đặt" #: ../utils.c:1976 msgid "pilot-link version" msgstr "phiên bản pilot-link" #: ../utils.c:1980 msgid "USB support" msgstr "Hỗ trợ USB" #: ../utils.c:1981 ../utils.c:1984 ../utils.c:1990 ../utils.c:1996 #: ../utils.c:2002 ../utils.c:2008 ../utils.c:2013 msgid "yes" msgstr "có" #: ../utils.c:1982 msgid "Private record support" msgstr "Hỗ trợ mục ghi riêng" #: ../utils.c:1986 ../utils.c:1992 ../utils.c:1998 ../utils.c:2004 #: ../utils.c:2010 msgid "no" msgstr "không" #: ../utils.c:1988 msgid "Datebk support" msgstr "Hỗ trợ Sổ Ngày" #: ../utils.c:1994 msgid "Plugin support" msgstr "Hỗ trợ bộ cầm phít" #: ../utils.c:2000 msgid "Manana support" msgstr "Hỗ trợ Manana" #: ../utils.c:2006 msgid "NLS support (foreign languages)" msgstr "Hỗ trợ NLS (tiếng nước ngoài)" #: ../utils.c:2012 msgid "GTK2 support" msgstr "Hỗ trợ GTK2" #. No HOME var #: ../utils.c:2055 msgid "Can't get HOME environment variable\n" msgstr "Không thể lấy biến môi trường HOME\n" #: ../utils.c:2062 #, fuzzy msgid "HOME environment variable is too long to process\n" msgstr "Biến môi trường HOME của bạn là quá dài.\n" #: ../utils.c:2557 #, fuzzy msgid "Edit Categories..." msgstr "Sửa đổi phân loại" #: ../utils.c:3223 msgid "PC ID is 0.\n" msgstr "ID PC là 0.\n" #: ../utils.c:3224 #, fuzzy, c-format msgid "Generated a new PC ID. It is %lu\n" msgstr "Đã tạo ra một ID PC mới. Đó là %lu\n" #: ../utils.c:3309 msgid "Invalid UTF-8 encoding in export string\n" msgstr "" #: ../utils.c:3470 #, c-format msgid "Today is %A, %x %X" msgstr "Ngày hôm nay là %A, %x %X" #: ../utils.c:3472 #, c-format msgid "Today is %%A, %s %s" msgstr "Ngày hôm nay là %%A, %s %s" #: ../utils.c:3701 #, c-format msgid "" "Incorrect header format for CSV import\n" "Check line 1 of file %s\n" "Aborting import\n" msgstr "" #: ../utils.c:3738 #, fuzzy, c-format msgid "Error writing version header to file: %s%s\n" msgstr "Gặp lỗi khi ghi phần đầu PC vào tập tin: next_id\n" #: ../utils.c:3743 #, fuzzy, c-format msgid "Error writing next id to file: %s%s" msgstr "Gặp lỗi khi ghi ID kế tiếp vào tập tin: next_id\n" #: ../weekview_gui.c:297 msgid "Weekly View" msgstr "Xem tuần" #: ../weekview_gui.c:337 msgid "Last week Alt+LeftArrow" msgstr "" #: ../weekview_gui.c:366 msgid "Next week Alt+RightArrow" msgstr "" #: ../Expense/expense.c:97 msgid "Australia" msgstr "Úc" #: ../Expense/expense.c:98 msgid "Austria" msgstr "Áo" #: ../Expense/expense.c:99 msgid "Belgium" msgstr "Bỉ" #: ../Expense/expense.c:100 msgid "Brazil" msgstr "Bra-xin" #: ../Expense/expense.c:101 msgid "Canada" msgstr "Ca-na-đa" #: ../Expense/expense.c:102 msgid "Denmark" msgstr "Đan-mạch" #: ../Expense/expense.c:103 msgid "EU (Euro)" msgstr "EU (đồng Âu €)" #: ../Expense/expense.c:104 msgid "Finland" msgstr "Phần-lan" #: ../Expense/expense.c:105 msgid "France" msgstr "Pháp" #: ../Expense/expense.c:106 msgid "Germany" msgstr "Đức" #: ../Expense/expense.c:107 msgid "Hong Kong" msgstr "Hồng Kông" #: ../Expense/expense.c:108 msgid "Iceland" msgstr "Băng-đảo" #: ../Expense/expense.c:109 msgid "India" msgstr "Ấn-độ" #: ../Expense/expense.c:110 msgid "Indonesia" msgstr "Nam-dương" #: ../Expense/expense.c:111 msgid "Ireland" msgstr "Ái-nhĩ-lan" #: ../Expense/expense.c:112 msgid "Italy" msgstr "Ý" #: ../Expense/expense.c:113 msgid "Japan" msgstr "Nhật-bản" #: ../Expense/expense.c:114 msgid "Korea" msgstr "Triều-tiên" #: ../Expense/expense.c:115 msgid "Luxembourg" msgstr "Lúc-xăm-buac" #: ../Expense/expense.c:116 msgid "Malaysia" msgstr "Ma-lay-xi-a" #: ../Expense/expense.c:117 msgid "Mexico" msgstr "Mê-hi-cô" #: ../Expense/expense.c:118 msgid "Netherlands" msgstr "Hoà-lan" #: ../Expense/expense.c:119 msgid "New Zealand" msgstr "Niu Di-lân" #: ../Expense/expense.c:120 msgid "Norway" msgstr "Na-uy" #: ../Expense/expense.c:121 msgid "P.R.C." msgstr "P.R.C." #: ../Expense/expense.c:122 msgid "Philippines" msgstr "Phi-luật-tân" #: ../Expense/expense.c:123 msgid "Singapore" msgstr "Xin-ga-po" #: ../Expense/expense.c:124 msgid "Spain" msgstr "Tây-ban-nha" #: ../Expense/expense.c:125 msgid "Sweden" msgstr "Thụy-điển" #: ../Expense/expense.c:126 msgid "Switzerland" msgstr "Thụy-sĩ" #: ../Expense/expense.c:127 msgid "Taiwan" msgstr "Đài-loan" #: ../Expense/expense.c:128 msgid "Thailand" msgstr "Thái-lan" #: ../Expense/expense.c:129 msgid "United Kingdom" msgstr "Vương quốc Anh Thống nhất" #: ../Expense/expense.c:130 msgid "United States" msgstr "Mỹ" #: ../Expense/expense.c:518 ../Expense/expense.c:529 msgid "Expense" msgstr "Phí tổn" #: ../Expense/expense.c:550 ../Expense/expense.c:1388 msgid "Airfare" msgstr "Tiền vé" #: ../Expense/expense.c:552 ../Expense/expense.c:1389 msgid "Breakfast" msgstr "Ăn sáng" #: ../Expense/expense.c:554 ../Expense/expense.c:1390 msgid "Bus" msgstr "Xe búyt" #: ../Expense/expense.c:556 ../Expense/expense.c:1391 msgid "BusinessMeals" msgstr "Ăn làm việc" #: ../Expense/expense.c:558 ../Expense/expense.c:1392 msgid "CarRental" msgstr "Thuê xe" #: ../Expense/expense.c:560 ../Expense/expense.c:1393 msgid "Dinner" msgstr "Ăn cơm" #: ../Expense/expense.c:562 ../Expense/expense.c:1394 msgid "Entertainment" msgstr "Giải trí" #: ../Expense/expense.c:564 ../Expense/expense.c:1395 msgid "Fax" msgstr "Điện thư" #: ../Expense/expense.c:566 ../Expense/expense.c:1396 msgid "Gas" msgstr "Dầu" #: ../Expense/expense.c:568 ../Expense/expense.c:1397 msgid "Gifts" msgstr "Quà biếu" #: ../Expense/expense.c:570 ../Expense/expense.c:1398 msgid "Hotel" msgstr "Khách san" #: ../Expense/expense.c:572 ../Expense/expense.c:1399 msgid "Incidentals" msgstr "Lặt vặt" #: ../Expense/expense.c:574 ../Expense/expense.c:1400 msgid "Laundry" msgstr "Giặt" #: ../Expense/expense.c:576 ../Expense/expense.c:1401 msgid "Limo" msgstr "Xe hòm" #: ../Expense/expense.c:578 ../Expense/expense.c:1402 msgid "Lodging" msgstr "Chỗ trợ" #: ../Expense/expense.c:580 ../Expense/expense.c:1403 msgid "Lunch" msgstr "Ăn trưa" #: ../Expense/expense.c:582 ../Expense/expense.c:1404 msgid "Mileage" msgstr "Lý/giờ" #: ../Expense/expense.c:586 ../Expense/expense.c:1406 msgid "Parking" msgstr "Đậu xe" #: ../Expense/expense.c:588 ../Expense/expense.c:1407 msgid "Postage" msgstr "Bưu phí" #: ../Expense/expense.c:590 ../Expense/expense.c:1408 msgid "Snack" msgstr "Ăn vội vàng" #: ../Expense/expense.c:592 ../Expense/expense.c:1409 msgid "Subway" msgstr "Xe điện ngầm" #: ../Expense/expense.c:594 ../Expense/expense.c:1410 msgid "Supplies" msgstr "Đồ cung cấp" #: ../Expense/expense.c:596 ../Expense/expense.c:1411 msgid "Taxi" msgstr "Xe tắc xi" #: ../Expense/expense.c:598 ../Expense/expense.c:1412 msgid "Telephone" msgstr "Điện thoại" #: ../Expense/expense.c:600 ../Expense/expense.c:1413 msgid "Tips" msgstr "Tiền chè lá " #: ../Expense/expense.c:602 ../Expense/expense.c:1414 msgid "Tolls" msgstr "Thuế qua đường" #: ../Expense/expense.c:604 ../Expense/expense.c:1415 msgid "Train" msgstr "Xe lửa" #: ../Expense/expense.c:1239 msgid "Expense: Unknown expense type\n" msgstr "Phí tổn: kiểu phí tổn không rõ\n" #: ../Expense/expense.c:1245 msgid "Expense: Unknown payment type\n" msgstr "Phí tổn: kiểu trả không rõ\n" # Name: don't translate / Tên: đừng dịch #: ../Expense/expense.c:1377 msgid "American Express" msgstr "American Express" #: ../Expense/expense.c:1378 msgid "Cash" msgstr "Tiền mặt" #: ../Expense/expense.c:1379 msgid "Check" msgstr "Séc" #: ../Expense/expense.c:1380 msgid "Credit Card" msgstr "Thẻ tín dụng" # Name: don't translate / Tên: đừng dịch #: ../Expense/expense.c:1381 msgid "Master Card" msgstr "Master Card" #: ../Expense/expense.c:1382 msgid "Prepaid" msgstr "Trả trước" # Name: don't translate / Tên: đừng dịch #: ../Expense/expense.c:1383 msgid "VISA" msgstr "VISA" #: ../Expense/expense.c:1619 #, fuzzy msgid "Type" msgstr "Kiểu :" #: ../Expense/expense.c:1620 #, fuzzy msgid "Amount" msgstr "Số tiền:" #. Category Menu #: ../Expense/expense.c:1704 msgid "Category:" msgstr "Loại:" #. Type Menu #: ../Expense/expense.c:1712 msgid "Type:" msgstr "Kiểu :" #. Payment Menu #: ../Expense/expense.c:1720 msgid "Payment:" msgstr "Số tiền trả:" #. Currency Menu #: ../Expense/expense.c:1728 msgid "Currency:" msgstr "Tiền tệ:" #: ../Expense/expense.c:1748 msgid "Month:" msgstr "Tháng:" #: ../Expense/expense.c:1762 msgid "Day:" msgstr "Hôm:" #: ../Expense/expense.c:1776 msgid "Year:" msgstr "Năm:" #. Amount Entry #: ../Expense/expense.c:1789 msgid "Amount:" msgstr "Số tiền:" #. Vendor Entry #: ../Expense/expense.c:1799 msgid "Vendor:" msgstr "Nhà bán:" #. City #: ../Expense/expense.c:1809 msgid "City:" msgstr "Phố :" #. Attendees #: ../Expense/expense.c:1819 msgid "Attendees" msgstr "Người dự" #. ------------------------------------------- #: ../Expense/expense.c:2102 #, c-format msgid "" "%s\n" "\n" "Expense plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org" msgstr "" #: ../KeyRing/keyring.c:291 msgid "KeyRing: pack_KeyRing(): buf_size too small\n" msgstr "" "Vòng chìa khoá: pack_KeyRing(): « buf_size » (kích cỡ bộ đệm) quá nhõ\n" #: ../KeyRing/keyring.c:1699 msgid "Incorrect, Reenter KeyRing Password" msgstr "Không đúng, gõ lại mật khẩu vòng chìa khoá" #: ../KeyRing/keyring.c:1701 msgid "Enter a NEW KeyRing Password" msgstr "Gõ mật khẩu vòng chìa khoá MỚI" #: ../KeyRing/keyring.c:1703 msgid "Enter KeyRing Password" msgstr "Gõ mật khẩu vòng chìa khoá" #: ../KeyRing/keyring.c:1769 #, c-format msgid "KeyRing: file %s not found.\n" msgstr "KeyRing: không tìm thấy tập tin %s.\n" #: ../KeyRing/keyring.c:1770 msgid "KeyRing: Try Syncing.\n" msgstr "KeyRing: hãy cố đồng bộ hoá.\n" #: ../KeyRing/keyring.c:1861 ../KeyRing/keyring.c:1872 msgid "KeyRing" msgstr "Vòng chìa khoá" #. ------------------------------------------- #: ../KeyRing/keyring.c:1900 #, c-format msgid "" "%s\n" "\n" "KeyRing plugin for J-Pilot was written by\n" "Judd Montgomery (c) 2001.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "KeyRing is a free PalmOS program for storing\n" "passwords and other information in encrypted form\n" "http://gnukeyring.sourceforge.net" msgstr "" #: ../KeyRing/keyring.c:2137 #, c-format msgid "" "Keys exported from %s %s on %s\n" "\n" msgstr "" #: ../KeyRing/keyring.c:2162 #, fuzzy, c-format msgid "Can't export key %d\n" msgstr "Không thể xuất ghi nhớ %d.\n" #: ../KeyRing/keyring.c:2229 msgid "B-FOLDERS CSV" msgstr "" #. Change Password button #: ../KeyRing/keyring.c:2384 msgid "" "Change\n" "KeyRing\n" "Password" msgstr "" "Thay đổi\n" "mật khẩu\n" "vòng chìa khoá" #. Clist #: ../KeyRing/keyring.c:2497 #, fuzzy msgid "Changed" msgstr "Thôi" #: ../KeyRing/keyring.c:2499 msgid "Account" msgstr "Tài khoản" #. Name entry #: ../KeyRing/keyring.c:2593 msgid "name: " msgstr "tên: " #. Account entry #: ../KeyRing/keyring.c:2601 msgid "account: " msgstr "tài khoản: " #. Password entry #: ../KeyRing/keyring.c:2609 msgid "password: " msgstr "mật khẩu : " #. Last Changed entry #: ../KeyRing/keyring.c:2616 msgid "last changed: " msgstr "" #. Generate Password button (creates random password) #: ../KeyRing/keyring.c:2626 msgid "Generate Password" msgstr "Tạo ra mật khẩu" #: ../SyncTime/synctime.c:61 #, fuzzy msgid "SyncTime" msgstr "Đồng bộ hóa Ghi nhớ" #. ------------------------------------------- #: ../SyncTime/synctime.c:72 #, c-format msgid "" "%s\n" "\n" "SyncTime plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "SyncTime WILL NOT work with PalmOS 3.3!" msgstr "" #: ../SyncTime/synctime.c:106 msgid "synctime: Palm OS Version 3.25 and 3.30 do not support SyncTime\n" msgstr "" #: ../SyncTime/synctime.c:107 msgid "synctime: NOT setting the time on the pilot\n" msgstr "" #: ../SyncTime/synctime.c:112 msgid "synctime: Setting the time on the pilot... " msgstr "" #: ../SyncTime/synctime.c:117 #, fuzzy msgid "Done\n" msgstr "Đã xong" #, fuzzy #~ msgid " -i makes program iconify itself upon launch.\n" #~ msgstr " -i thu gọn J-Pilot vào lúc khởi chạy\n" #, fuzzy #~ msgid "Your HOME environment variable is too long(>1024)\n" #~ msgstr "Biến môi trường HOME của bạn là quá dài.\n" #~ msgid "W" #~ msgstr "Tn" #~ msgid "M" #~ msgstr "Th" #~ msgid "This Event has no particular time" #~ msgstr "Sự kiện này không có giờ riêng" #~ msgid "Start Time" #~ msgstr "Giờ đầu" #~ msgid "End Time" #~ msgstr "Giờ cuối" #, fuzzy #~ msgid "email command empty\n" #~ msgstr "Lệnh thư" #~ msgid "Unable to open %s%s file\n" #~ msgstr "Không thể mở tập tin %s%s.\n" #~ msgid "Unable to open %s.alarms file\n" #~ msgstr "Không thể mở tập tin <%s.alarms>.\n" #~ msgid "You can't edit category %s.\n" #~ msgstr "Bạn không thể hiệu chỉnh phân loại %s.\n" #~ msgid "You can't delete category %s.\n" #~ msgstr "Bạn không thể xoá bỏ phân loại %s.\n" #~ msgid "category name" #~ msgstr "tên loại" #~ msgid "debug" #~ msgstr "gỡ lỗi" #, fuzzy #~ msgid "End Date: Never\n" #~ msgstr "Ngày cuối" #, fuzzy #~ msgid "Repeat Days: " #~ msgstr "Lập lại vào Hôm:" #~ msgid "Close" #~ msgstr "Đóng" #~ msgid "none" #~ msgstr "không có" #~ msgid "Unknown repeatType found in DatebookDB\n" #~ msgstr "" #~ "Không biết kiểu lặp lại repeatType được tìm trong cơ sở dữ liệu Sổ Ngày " #~ "DatebookDB\n" #~ msgid "Dismiss" #~ msgstr "Bỏ qua" #~ msgid "Done" #~ msgstr "Đã xong" #~ msgid "Add" #~ msgstr "Thêm" #~ msgid "Remove" #~ msgstr "Gỡ bỏ" #, fuzzy #~ msgid "User name" #~ msgstr "Tên người dùng" #~ msgid " -v = version\n" #~ msgstr " -v = phiên bản\n" #~ msgid " -h = help\n" #~ msgstr " -h = trợ giúp\n" #~ msgid " -d = run in debug mode\n" #~ msgstr " -d = chạy trong chế độ gỡ lỗi\n" #~ msgid " -P = do not load plugins.\n" #~ msgstr " -P = đừng tải bộ cầm phít\n" #~ msgid " -b = Do a sync and then a backup, otherwise just do a sync.\n" #~ msgstr " -b = đồng bộ hóa rồi sao lưu hết, không thì chỉ đồng bộ hóa.\n" #~ msgid "Invalid geometry specification: \"%s\"\n" #~ msgstr "Đặc tả dạng hình không hợp lệ: « %s ».\n" #~ msgid "/Help/PayBack program" #~ msgstr "/Trợ giúp/Chương trìinh trả lại" #~ msgid "Font Selection Dialog" #~ msgstr "Hộp thoại chọn phông chữ" #~ msgid "Show private records" #~ msgstr "Hiện bản ghi riêng" #~ msgid "Hide private records" #~ msgstr "Ẩn bản ghi riêng" #~ msgid "Mask private records" #~ msgstr "Lọc bản ghi riêng" #~ msgid "Font" #~ msgstr "Phông chữ" #~ msgid "Go to the menu \"" #~ msgstr "Đi tới trình đơn \"" #~ msgid "\" and change the \"" #~ msgstr "\" và thay đổi \"" #~ msgid "\"." #~ msgstr "\"." #~ msgid "Couldn't open PC records file\n" #~ msgstr "Không thể mở tập tin mục ghi PC\n" #~ msgid "The first day of the week is " #~ msgstr "Hôm thứ nhất trong tuần là " #~ msgid "One record" #~ msgstr "Một mục ghi" #~ msgid "Finished\n" #~ msgstr "Đã xong\n" #~ msgid "Last Username = [%s]\n" #~ msgstr "Tên ngưởi dùng cuối cùng = [%s]\n" #~ msgid "Last UserID = %d\n" #~ msgstr "ID người dùng mới đây = %d\n" #~ msgid "Username = [%s]\n" #~ msgstr "Tên người dùng = [%s]\n" #~ msgid "userID = %d\n" #~ msgstr "ID người dùng = %d\n" #~ msgid "number of records = %d\n" #~ msgstr "số mục ghi = %d\n" #~ msgid "palm: number of records = %d\n" #~ msgstr "palm: số mục ghi = %d\n" #~ msgid "disk: number of records = %d\n" #~ msgstr "đĩa: số mục ghi = %d\n" #, fuzzy #~ msgid "Your HOME environment variable is too long for me\n" #~ msgstr "Biến môi trường HOME của bạn là quá dài.\n" #~ msgid "" #~ "%s doesn't appear to be a directory.\n" #~ "I need it to be.\n" #~ msgstr "" #~ "%s không có vẻ là thư mục.\n" #~ "Phải là thư mục.\n" #, fuzzy #~ msgid "I can't write files in directory %s\n" #~ msgstr "Không thể tạo thư mục %s\n" #~ msgid "Expense: Unknown category\n" #~ msgstr "Phí tổn: phân loại không rõ\n" #~ msgid "Directory" #~ msgstr "Thư mục" #~ msgid "Overwrite File" #~ msgstr "Ghi đè tập tin" #~ msgid "Filename" #~ msgstr "Tên tập tin" #~ msgid "Field" #~ msgstr "Trường" # Literal: don't translate / Nghĩa chữ: đừng dịch #~ msgid "kana(" #~ msgstr "kana(" #~ msgid "Quick View" #~ msgstr "Xem nhanh" #~ msgid "Answer: " #~ msgstr "Đáp :" #~ msgid "Quit" #~ msgstr "Thoát" #~ msgid "Help" #~ msgstr "Trợ giúp" #~ msgid "Sync" #~ msgstr "Đồng bộ" #~ msgid "Serial Port (/dev/ttyS0, /dev/pilot)" #~ msgstr "Cổng nối tiếp (/dev/ttyS0, /dev/pilot)" #~ msgid "Serial Rate (Does not affect USB)" #~ msgstr "Tốc độ nối tiếp (không có tác động USB)" #~ msgid "Sync memo32 (pedit32)" #~ msgstr "Đồng bộ hóa memo32 (pedit32)" #~ msgid " -p do not load plugins.\n" #~ msgstr " -p đừng tải bộ cầm phít.\n" #~ msgid "AmEx" #~ msgstr "AmEx" #~ msgid "CreditCard" #~ msgstr "Thẻ tín dụng" # Name: don't translate / Tên: đừng dịch #~ msgid "MasterCard" #~ msgstr "MasterCard" #~ msgid "\n" #~ msgstr "\n" # Name: don't translate /Tên: đừng dịch #~ msgid "/Web/Netscape/%s" #~ msgstr "/Mạng/Netscape/%s" # Name: don't translate / Tên: đừng dịch #~ msgid "/Web/Mozilla/%s" #~ msgstr "/Mạng/Mozilla/%s" #~ msgid "/Web/Galeon/%s" #~ msgstr "/Mạng/Galeon/%s" #~ msgid "/Web/Opera/%s" #~ msgstr "/Mạng/Opera/%s" #~ msgid "/Web/GnomeUrl/%s" #~ msgstr "/Mạng/GnomeUrl/%s" #~ msgid "/Web/Lynx/%s" #~ msgstr "/Mạng/Lynx/%s" #~ msgid "/Web/Links/%s" #~ msgstr "/Mạng/Links/%s" #~ msgid "/Web/W3M/%s" #~ msgstr "/Mạng/W3M/%s" #~ msgid "/Web/Konqueror/%s" #~ msgstr "/Mạng/Konqueror/%s" #~ msgid "Quit!" #~ msgstr "Thoát !" #~ msgid "Backup" #~ msgstr "Sao lưu" #~ msgid "slow_sync_application(): Out of memory\n" #~ msgstr "slow_sync_application(): Hết bộ nhớ\n" #~ msgid "dlp_WriteRecord failed\n" #~ msgstr "dlp_WriteRecord (ghi mục) bị lỗi\n" #~ msgid "Cannot open " #~ msgstr "Không thể mở " #~ msgid "fast_sync_local_recs(): Out of memory\n" #~ msgstr "fast_sync_local_recs(): Hết bộ nhớ\n" #~ msgid "Error reading at %s : %s %d\n" #~ msgstr "Gặp lỗi khi đọc tại %s : %s %d\n" #~ msgid "About Expense" #~ msgstr "Giới thiệu về Phí tổn" #~ msgid "Holland" #~ msgstr "Hoà-lan" #~ msgid "U.K." #~ msgstr "Anh quốc" #~ msgid "U.S.A." #~ msgstr "Mỹ" jpilot-1.8.1.2/po/Makevars0000644000175000017500000000342710445274004012223 00000000000000# Makefile variables for PO directory in any package using GNU gettext. # Usually the message domain is the same as the package name. DOMAIN = $(PACKAGE) # These two variables depend on the location of this directory. subdir = po top_builddir = .. # These options get passed to xgettext. XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ # This is the copyright holder that gets inserted into the header of the # $(DOMAIN).pot file. Set this to the copyright holder of the surrounding # package. (Note that the msgstr strings, extracted from the package's # sources, belong to the copyright holder of the package.) Translators are # expected to transfer the copyright for their translations to this person # or entity, or to disclaim their copyright. The empty string stands for # the public domain; in this case the translators are expected to disclaim # their copyright. COPYRIGHT_HOLDER = Judd Montgomery # This is the email address or URL to which the translators shall report # bugs in the untranslated strings: # - Strings which are not entire sentences, see the maintainer guidelines # in the GNU gettext documentation, section 'Preparing Strings'. # - Strings which use unclear terms or require additional context to be # understood. # - Strings which make invalid assumptions about notation of date, time or # money. # - Pluralisation problems. # - Incorrect English spelling. # - Incorrect formatting. # It can be your email address, or a mailing list address where translators # can write to without being subscribed, or the URL of a web page through # which the translators can contact you. MSGID_BUGS_ADDRESS = jpilot-devel@jpilot.org # This is the list of locale categories, beyond LC_MESSAGES, for which the # message catalogs shall be used. It is usually empty. EXTRA_LOCALE_CATEGORIES = jpilot-1.8.1.2/po/sv.po0000644000175000017500000025041511702307204011514 00000000000000# J-Pilot p svenska/J-Pilot in Swedish # Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. # Erik Bgfors , 2000. # Gran Uddeborg , 2001. # Johan Hilding , 2002. # msgid "" msgstr "" "Project-Id-Version: jpilot 0.99.2\n" "Report-Msgid-Bugs-To: jpilot-devel@jpilot.org\n" "POT-Creation-Date: 2012-01-08 13:39+0100\n" "PO-Revision-Date: 2002-10-04 17:01+0100\n" "Last-Translator: Johan Hilding \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" #: ../address.c:276 ../address.c:448 ../alarms.c:332 ../calendar.c:309 #: ../calendar.c:547 ../contact.c:324 ../contact.c:738 ../dat.c:189 #: ../dat.c:655 ../dat.c:859 ../dat.c:993 ../dat.c:1132 ../datebook.c:130 #: ../datebook.c:165 ../datebook.c:172 ../datebook.c:231 ../jpilot.c:1254 #: ../jpilot-merge.c:95 ../libplugin.c:208 ../libplugin.c:455 #: ../libplugin.c:534 ../libplugin.c:563 ../libplugin.c:811 ../memo.c:214 #: ../memo.c:287 ../otherconv.c:280 ../plugins.c:112 ../prefs.c:350 #: ../prefs.c:375 ../prefs.c:906 ../sync.c:2170 ../sync.c:2187 ../sync.c:2296 #: ../sync.c:2310 ../sync.c:2507 ../sync.c:2646 ../todo.c:236 ../todo.c:490 #: ../utils.c:748 #, c-format msgid "Out of memory" msgstr "Slut p minne" #: ../address.c:332 ../calendar.c:230 ../contact.c:580 ../datebook.c:494 #: ../memo.c:87 ../todo.c:90 #, fuzzy, c-format msgid "%s:%d Error reading application info %s\n" msgstr "Fel vid lsning av %s\n" #: ../address.c:344 ../address_gui.c:2285 ../address_gui.c:2324 #: ../calendar.c:246 ../contact.c:596 ../datebook.c:514 ../datebook_gui.c:3737 #: ../libplugin.c:405 ../libplugin.c:431 ../memo.c:99 ../memo_gui.c:863 #: ../todo_gui.c:1070 ../Expense/expense.c:1105 #, fuzzy, c-format msgid "Error reading file: %s\n" msgstr "Fel vid lsning av %s\n" #: ../address.c:492 ../calendar.c:598 ../calendar.c:607 ../contact.c:780 #: ../libplugin.c:846 ../memo.c:353 ../todo.c:302 ../utils.c:1124 #: ../utils.c:1131 ../utils.c:1138 ../utils.c:1145 ../utils.c:1152 #: ../utils.c:1159 msgid "error" msgstr "fel" #: ../address_gui.c:325 ../datebook_gui.c:2844 ../memo_gui.c:176 #: ../todo_gui.c:292 ../KeyRing/keyring.c:834 msgid "" "This record is deleted.\n" "Undelete it or copy it to make changes.\n" msgstr "" #: ../address_gui.c:452 ../address_gui.c:458 ../address_gui.c:469 #: ../address_gui.c:481 ../address_gui.c:493 ../address_gui.c:506 #, c-format msgid "%s%s: %s" msgstr "" #: ../address_gui.c:542 ../category.c:118 ../category.c:176 ../category.c:330 #: ../category.c:336 ../datebook_gui.c:430 ../jpilot-merge.c:88 #: ../jpilot-merge.c:146 ../jpilot-merge.c:151 ../memo_gui.c:280 #: ../sync.c:2129 ../sync.c:2135 ../sync.c:2481 ../sync.c:2842 #: ../todo_gui.c:416 ../utils.c:2674 ../utils.c:2711 ../utils.c:2717 #: ../utils.c:2776 ../utils.c:2782 ../utils.c:2836 ../utils.c:2890 #: ../utils.c:2896 ../utils.c:2954 ../utils.c:2961 #, fuzzy, c-format msgid "Unable to open file: %s\n" msgstr "Kunde inte ppna %s\n" #: ../address_gui.c:561 #, fuzzy, c-format msgid "Unable to read file: %s\n" msgstr "Kunde inte ppna %s\n" #: ../address_gui.c:715 msgid "File doesn't appear to be address.dat format\n" msgstr "Filen verkar inte vara i address.dat-format\n" #: ../address_gui.c:725 ../datebook_gui.c:647 ../memo_gui.c:324 #: ../memo_gui.c:417 ../todo_gui.c:542 ../Expense/expense.c:1384 msgid "Unfiled" msgstr "Oarkiverad" #: ../address_gui.c:781 ../datebook_gui.c:698 ../memo_gui.c:470 #: ../todo_gui.c:595 msgid "CSV (Comma Separated Values)" msgstr "" #: ../address_gui.c:782 msgid "DAT/ABA (Palm Archive Formats)" msgstr "" #. current category name #. previous category name #. entry text, in Pilot character set #: ../address_gui.c:868 ../category.c:408 ../datebook_gui.c:729 #: ../jpilot.c:234 ../jpilot.c:278 ../jpilot.c:352 ../jpilot.c:396 #: ../jpilot.c:953 ../memo_gui.c:506 ../todo_gui.c:635 ../utils.c:1305 #: ../KeyRing/keyring.c:2090 msgid "OK" msgstr "OK" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "No" msgstr "Nej" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "Yes" msgstr "Ja" #: ../address_gui.c:888 ../datebook_gui.c:753 ../memo_gui.c:520 #: ../todo_gui.c:655 ../KeyRing/keyring.c:2104 #, c-format msgid "%s is a directory" msgstr "%s r en katalog" #: ../address_gui.c:890 ../address_gui.c:907 ../datebook_gui.c:755 #: ../datebook_gui.c:772 ../memo_gui.c:522 ../memo_gui.c:539 ../todo_gui.c:657 #: ../todo_gui.c:674 ../KeyRing/keyring.c:2106 ../KeyRing/keyring.c:2123 msgid "Error Opening File" msgstr "Fel vid filppning" #: ../address_gui.c:894 ../datebook_gui.c:759 ../memo_gui.c:526 #: ../todo_gui.c:661 ../KeyRing/keyring.c:2110 #, c-format msgid "Do you want to overwrite file %s?" msgstr "Vill du skriva ver filen %s?" #: ../address_gui.c:896 ../datebook_gui.c:761 ../memo_gui.c:528 #: ../todo_gui.c:663 ../KeyRing/keyring.c:2112 msgid "Overwrite File?" msgstr "Vill du skriva ver filen?" #: ../address_gui.c:905 ../datebook_gui.c:770 ../memo_gui.c:537 #: ../todo_gui.c:672 ../KeyRing/keyring.c:2121 #, fuzzy, c-format msgid "Error opening file: %s" msgstr "Fel vid filppning" #: ../address_gui.c:922 #, c-format msgid "" "Address exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:925 #, c-format msgid "" "Contact exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:989 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ldif file may not be standards-compliant\n" msgstr "" #: ../address_gui.c:1002 #, c-format msgid "Can't export address %d\n" msgstr "" #: ../address_gui.c:1008 ../memo_gui.c:630 ../todo_gui.c:760 #, fuzzy, c-format msgid "Category: %s\n" msgstr "Kategori: " #: ../address_gui.c:1010 ../memo_gui.c:632 ../todo_gui.c:763 #, fuzzy, c-format msgid "Private: %s\n" msgstr "Privat" #: ../address_gui.c:1018 ../address_gui.c:1032 ../address_gui.c:1036 #: ../address_gui.c:1045 ../address_gui.c:1048 #, c-format msgid "%s: " msgstr "" #: ../address_gui.c:1022 #, c-format msgid "%s\n" msgstr "" #. E-mail should be the Palm dropdown menu item for email #. Set dial/email button text and callback data #: ../address_gui.c:1196 ../address_gui.c:2846 ../address_gui.c:4185 msgid "E-mail" msgstr "" #: ../address_gui.c:1482 ../datebook_gui.c:1147 ../memo_gui.c:640 #: ../todo_gui.c:844 ../KeyRing/keyring.c:2214 msgid "Unknown export type\n" msgstr "" #: ../address_gui.c:1508 ../datebook_gui.c:1226 ../memo_gui.c:469 #: ../memo_gui.c:666 ../todo_gui.c:870 ../KeyRing/keyring.c:2229 msgid "Text" msgstr "" #: ../address_gui.c:1509 ../datebook_gui.c:1227 ../memo_gui.c:667 #: ../todo_gui.c:871 ../KeyRing/keyring.c:2229 msgid "CSV" msgstr "" #: ../address_gui.c:1510 #, fuzzy msgid "vCard" msgstr "Tm" #: ../address_gui.c:1511 msgid "vCard (Optimized for Gmail/Android Import)" msgstr "" #: ../address_gui.c:1512 msgid "ldif" msgstr "" #. Initialize variable if default case taken #: ../address_gui.c:1777 ../address_gui.c:3902 #, fuzzy msgid "Last Name/Company" msgstr "Namn/Fretag" #: ../address_gui.c:1780 ../address_gui.c:3905 #, fuzzy msgid "First Name/Company" msgstr "Namn/Fretag" #: ../address_gui.c:1783 ../address_gui.c:3908 #, fuzzy msgid "Company/Last Name" msgstr "Fretag/Namn" #: ../address_gui.c:1920 ../datebook_gui.c:2907 ../memo_gui.c:1036 #: ../todo_gui.c:1329 ../KeyRing/keyring.c:1181 msgid "You can't modify a record that is deleted\n" msgstr "" #. Illegal category, Assume that category 0 is Unfiled and valid #: ../address_gui.c:2119 ../address_gui.c:2370 ../address_gui.c:2803 #: ../address_gui.c:2809 ../address_gui.c:3601 ../datebook_gui.c:1994 #: ../datebook_gui.c:3434 ../datebook_gui.c:3783 ../datebook_gui.c:4074 #: ../memo_gui.c:900 ../memo_gui.c:946 ../memo_gui.c:1161 ../memo_gui.c:1548 #: ../todo_gui.c:1106 ../todo_gui.c:1200 ../todo_gui.c:1589 ../todo_gui.c:2141 #: ../Expense/expense.c:689 ../Expense/expense.c:1143 #: ../Expense/expense.c:1227 ../Expense/expense.c:1887 #: ../KeyRing/keyring.c:1070 ../KeyRing/keyring.c:1512 #: ../KeyRing/keyring.c:1574 ../KeyRing/keyring.c:2688 msgid "Category is not legal\n" msgstr "" #: ../address_gui.c:2179 ../alarms.c:598 ../dialer.c:164 #, fuzzy, c-format msgid "executing command = [%s]\n" msgstr "Kr det hr kommandot" #: ../address_gui.c:2181 #, c-format msgid "Failed to execute [%s]\n" msgstr "" #: ../address_gui.c:2425 msgid "Birthday" msgstr "" #: ../address_gui.c:2521 msgid "External program not found, or other error" msgstr "" #: ../address_gui.c:2523 msgid "" "J-Pilot can not find the external program \"convert\"\n" "or an error occurred while executing convert.\n" "You may need to install package ImageMagick" msgstr "" #: ../address_gui.c:2524 #, c-format msgid "Command executed was \"%s\"\n" msgstr "" #: ../address_gui.c:2525 #, c-format msgid "return code was %d\n" msgstr "" #: ../address_gui.c:2603 #, fuzzy msgid "chdir() failed\n" msgstr "Misslyckades.\n" #: ../address_gui.c:2606 #, fuzzy msgid "Add Photo" msgstr "Lgg till" #. Category menu #: ../address_gui.c:2828 ../KeyRing/keyring.c:2585 msgid "Category: " msgstr "Kategori: " #: ../address_gui.c:2848 ../address_gui.c:4186 msgid "Mail" msgstr "" #. Dial Phone Button #: ../address_gui.c:2851 ../address_gui.c:4189 ../dialer.c:307 ../dialer.c:331 msgid "Dial" msgstr "" #: ../address_gui.c:3041 ../datebook_gui.c:2757 ../memo_gui.c:1228 #: ../todo_gui.c:1697 msgid "Could not get temporary file name\n" msgstr "" #: ../address_gui.c:3049 ../datebook_gui.c:2765 ../memo_gui.c:1236 #: ../todo_gui.c:1705 msgid "Could not open temporary file for external editor\n" msgstr "" #: ../address_gui.c:3089 ../datebook_gui.c:2806 ../memo_gui.c:1277 #: ../todo_gui.c:1746 msgid "Could not open temporary file from external editor\n" msgstr "" #: ../address_gui.c:3261 ../address_gui.c:3292 msgid "-Unnamed-" msgstr "" #: ../address_gui.c:3374 ../memo_gui.c:1454 ../todo_gui.c:2019 msgid "0 records" msgstr "0 poster" #: ../address_gui.c:3377 ../datebook_gui.c:2637 ../memo_gui.c:1457 #: ../todo_gui.c:2022 #, c-format msgid "%d of %d records" msgstr "%d av %d poster" #: ../address_gui.c:3772 ../address_gui.c:3780 ../KeyRing/keyring.c:2498 msgid "Name" msgstr "Namn" #: ../address_gui.c:3773 ../address_gui.c:3774 ../address_gui.c:3775 #: ../address_gui.c:3781 msgid "Address" msgstr "Adress" #: ../address_gui.c:3776 ../address_gui.c:3782 ../Expense/expense.c:584 #: ../Expense/expense.c:1405 msgid "Other" msgstr "Annat" #. Note textbox #: ../address_gui.c:3777 ../address_gui.c:3783 ../todo_gui.c:2484 #: ../Expense/expense.c:1836 ../KeyRing/keyring.c:2632 msgid "Note" msgstr "Anteckning" #: ../address_gui.c:3793 msgid "Reverting to Address database\n" msgstr "" #: ../address_gui.c:3914 msgid "Phone" msgstr "Telefon" #: ../address_gui.c:3946 #, fuzzy msgid "Quick Find: " msgstr "Snabbsk" #. Cancel button #. Add record modification buttons #. Cancel button #: ../address_gui.c:3964 ../category.c:409 ../datebook_gui.c:1782 #: ../datebook_gui.c:5124 ../memo_gui.c:1692 ../todo_gui.c:2345 #: ../utils.c:1346 ../KeyRing/keyring.c:2528 msgid "Cancel" msgstr "Avbryt" #: ../address_gui.c:3964 ../datebook_gui.c:5124 ../memo_gui.c:1692 #: ../todo_gui.c:2345 ../KeyRing/keyring.c:2528 msgid "Cancel the modifications" msgstr "" #. Delete Button #. Delete button #. Delete Button #. Delete button #. Delete, Copy, New, etc. buttons #. Delete button #: ../address_gui.c:3969 ../category.c:409 ../category.c:852 #: ../datebook_gui.c:5129 ../memo_gui.c:1697 ../todo_gui.c:2350 #: ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete" msgstr "Ta bort" #: ../address_gui.c:3969 ../datebook_gui.c:5129 ../memo_gui.c:1697 #: ../todo_gui.c:2350 ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 #, fuzzy msgid "Delete the selected record" msgstr "Tog bort en %s-post." #. Undelete Button #. Undelete button #. Undelete Button #. Undelete button #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 #, fuzzy msgid "Undelete" msgstr "Ta bort" #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 #, fuzzy msgid "Undelete the selected record" msgstr "Tog bort en %s-post." #. Copy button #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy" msgstr "Kopiera" #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 #, fuzzy msgid "Copy the selected record" msgstr "Lgg till post" #. New button #. New Record button #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "New Record" msgstr "Ny post" #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 #, fuzzy msgid "Add a new record" msgstr "Lgg till post" #. "Add Record" button #. Add Record button #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add Record" msgstr "Lgg till post" #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 #, fuzzy msgid "Add the new record" msgstr "Lgg till post" #. "Apply Changes" button #. Apply Changes button #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Apply Changes" msgstr "Verkstll ndringar" #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Commit the modifications" msgstr "" #. Private check box #. Private checkbox #: ../address_gui.c:4033 ../datebook_gui.c:5191 ../datebook_gui.c:5233 #: ../memo_gui.c:1747 ../todo_gui.c:2410 msgid "Private" msgstr "Privat" #: ../address_gui.c:4118 #, fuzzy msgid "Change Photo" msgstr "Avbryt" #: ../address_gui.c:4123 #, fuzzy msgid "Remove Photo" msgstr "Ta bort" #: ../address_gui.c:4195 #, fuzzy msgid "Show In List" msgstr "" "Visa\n" "i lista" #: ../address_gui.c:4296 #, fuzzy msgid "Reminder" msgstr "Pminn mig" #: ../address_gui.c:4312 ../datebook_gui.c:238 ../datebook_gui.c:5221 #: ../datebook_gui.c:5378 msgid "Days" msgstr "Dagar" #. The Quickview (ALL) page #. All button #: ../address_gui.c:4356 ../datebook_gui.c:1478 ../datebook_gui.c:1782 #: ../utils.c:2528 msgid "All" msgstr "Alla" #: ../alarms.c:232 ../datebook_gui.c:236 ../datebook_gui.c:5215 #: ../datebook_gui.c:5372 msgid "Minutes" msgstr "Minuter" #: ../alarms.c:234 ../datebook_gui.c:237 ../datebook_gui.c:5219 #: ../datebook_gui.c:5376 msgid "Hours" msgstr "Timmar" #: ../alarms.c:255 msgid "Remind me" msgstr "Pminn mig" #: ../alarms.c:425 ../alarms.c:991 ../sync.c:1639 ../sync.c:1645 #: ../utils.c:3717 #, fuzzy, c-format msgid "Unable to open file: %s%s\n" msgstr "Kunde inte ppna %s\n" #: ../alarms.c:512 msgid "Appointment Reminder" msgstr "Mtespminnare" #: ../alarms.c:515 msgid "Past Appointment" msgstr "Frflutet mte" #: ../alarms.c:518 msgid "Postponed Appointment" msgstr "Senarelagt mte" #: ../alarms.c:521 ../datebook_gui.c:5025 msgid "Appointment" msgstr "Mte" #: ../alarms.c:605 msgid "J-Pilot Alarm" msgstr "" #: ../category.c:131 ../category.c:188 ../sync.c:2158 ../sync.c:2495 msgid "PC file corrupt?\n" msgstr "PC-fil korrupt?\n" #: ../category.c:138 ../category.c:148 ../category.c:196 ../category.c:206 #: ../category.c:216 ../sync.c:2280 ../sync.c:2334 ../sync.c:2371 #: ../sync.c:2386 ../sync.c:2410 ../sync.c:2630 ../sync.c:2675 ../sync.c:2712 #: ../sync.c:2725 ../sync.c:2750 msgid "fseek failed - fatal error\n" msgstr "fseek misslyckades - destigert fel\n" #: ../category.c:364 ../utils.c:2738 ../utils.c:2812 ../utils.c:2916 #: ../utils.c:2981 #, fuzzy msgid "rename failed" msgstr "Installering av %s misslyckades" #: ../category.c:409 #, fuzzy msgid "Move" msgstr "M" #: ../category.c:438 ../category.c:500 ../category.c:580 ../category.c:769 msgid "Edit Categories" msgstr "" #: ../category.c:439 msgid "The maximum number of categories (16) are already used" msgstr "" #: ../category.c:442 msgid "Enter New Category" msgstr "" #: ../category.c:453 ../category.c:477 msgid "Edit Categories Error" msgstr "" #: ../category.c:454 msgid "You must select a category to rename" msgstr "" #: ../category.c:463 msgid "Enter New Category Name" msgstr "" #: ../category.c:478 msgid "You must select a category to delete" msgstr "" #: ../category.c:496 #, c-format msgid "" "There are %d records in %s.\n" "Do you want to move them to %s, or delete them?" msgstr "" #: ../category.c:556 #, c-format msgid "invalid state file %s line %d\n" msgstr "" #: ../category.c:578 #, c-format msgid "The category %s can't be used more than once" msgstr "" #. Category names in host character set #: ../category.c:735 #, fuzzy msgid "Category" msgstr "Kategori: " #: ../category.c:836 msgid "New" msgstr "Ny" #: ../category.c:843 #, fuzzy msgid "Rename" msgstr "namn: " #: ../dat.c:456 msgid "unknown type =" msgstr "" #: ../dat.c:537 #, c-format msgid "fields per row count != %d, unknown format\n" msgstr "" #: ../dat.c:551 #, c-format msgid "field count != %d, unknown format\n" msgstr "" #: ../dat.c:559 msgid "Unknown format, file has wrong schema\n" msgstr "" #: ../dat.c:560 msgid "File schema is:" msgstr "" #: ../dat.c:564 msgid "It should be:" msgstr "" #: ../dat.c:674 ../dat.c:692 ../dat.c:876 ../dat.c:889 ../dat.c:1012 #: ../dat.c:1025 ../dat.c:1149 ../dat.c:1162 #, c-format msgid "%s:%d Record %d, field %d: Invalid type. Expected %d, found %d\n" msgstr "" #: ../dat.c:675 ../dat.c:693 ../dat.c:877 ../dat.c:890 ../dat.c:994 #: ../dat.c:1013 ../dat.c:1026 ../dat.c:1150 ../dat.c:1163 msgid "read of file terminated\n" msgstr "" #: ../datebook.c:705 ../datebook_gui.c:3648 #, c-format msgid "Unknown repeatType (%d) found in DatebookDB\n" msgstr "" #: ../datebook_gui.c:241 #, fuzzy msgid "Repeat Never" msgstr "Upprepa p:" #: ../datebook_gui.c:242 #, fuzzy msgid "Repeat Daily" msgstr "terkommer fljande dagar:" #: ../datebook_gui.c:243 #, fuzzy msgid "Repeat Weekly" msgstr "Upprepa p:" #: ../datebook_gui.c:244 #, fuzzy msgid "Repeat MonthlyByDay" msgstr "terkommer fljande dagar:" #: ../datebook_gui.c:245 #, fuzzy msgid "Repeat MonthlyByDate" msgstr "terkommer fljande dagar:" #: ../datebook_gui.c:246 msgid "Repeat YearlyDate" msgstr "" #: ../datebook_gui.c:247 #, fuzzy msgid "Repeat YearlyDay" msgstr "terkommer fljande dagar:" # These days of the week are put in the buttons above the calendar and # the little buttons in the repeat weekly window. # They should be one letter if possible. The English ones get truncated to # one letter. #: ../datebook_gui.c:250 ../datebook_gui.c:257 ../datebook_gui.c:4803 #: ../datebook_gui.c:4810 msgid "Su" msgstr "S" #: ../datebook_gui.c:251 ../datebook_gui.c:4804 msgid "Mo" msgstr "M" #: ../datebook_gui.c:252 ../datebook_gui.c:4805 msgid "Tu" msgstr "Ti" #: ../datebook_gui.c:253 ../datebook_gui.c:4806 msgid "We" msgstr "On" #: ../datebook_gui.c:254 ../datebook_gui.c:4807 msgid "Th" msgstr "To" #: ../datebook_gui.c:255 ../datebook_gui.c:4808 msgid "Fr" msgstr "Fr" #: ../datebook_gui.c:256 ../datebook_gui.c:4809 msgid "Sa" msgstr "L" #: ../datebook_gui.c:269 #, c-format msgid "" "Start Date: %s\n" "Time: Event" msgstr "" #: ../datebook_gui.c:277 #, c-format msgid "" "Start Date: %s\n" "Time: %s to %s" msgstr "" #: ../datebook_gui.c:287 ../datebook_gui.c:297 msgid "Unknown" msgstr "" #. End Date #: ../datebook_gui.c:300 #, fuzzy msgid "End Date: " msgstr "Slutdatum" #: ../datebook_gui.c:302 msgid "Never" msgstr "" #: ../datebook_gui.c:308 #, c-format msgid "Repeat Frequency: %d\n" msgstr "" #: ../datebook_gui.c:316 #, c-format msgid "Monthly Repeat Day %d\n" msgstr "" #: ../datebook_gui.c:321 ../datebook_gui.c:5520 msgid "Repeat on Days:" msgstr "terkommer fljande dagar:" #: ../datebook_gui.c:332 #, fuzzy, c-format msgid "Number of exceptions: %d" msgstr "antal poster = %d\n" #: ../datebook_gui.c:338 msgid "" "\n" "more..." msgstr "" #: ../datebook_gui.c:359 ../datebook_gui.c:386 msgid "Description:" msgstr "" #: ../datebook_gui.c:360 ../datebook_gui.c:387 #, fuzzy msgid "Note:" msgstr "Anteckning" #: ../datebook_gui.c:362 ../datebook_gui.c:390 #, fuzzy msgid "Alarm:" msgstr "Alarm" #: ../datebook_gui.c:363 ../datebook_gui.c:391 #, fuzzy msgid "Repeat Type:" msgstr "Upprepa p:" #: ../datebook_gui.c:366 ../datebook_gui.c:394 #, fuzzy msgid "Start of Week:" msgstr "Veckodag" #: ../datebook_gui.c:388 ../datebook_gui.c:5343 msgid "Location:" msgstr "" #: ../datebook_gui.c:620 ../datebook_gui.c:2271 #, c-format msgid "Appointment description text > %d, truncating to %d\n" msgstr "" #: ../datebook_gui.c:631 ../datebook_gui.c:1148 ../datebook_gui.c:2331 #: ../datebook_gui.c:2338 #, fuzzy msgid "Error" msgstr "fel" #: ../datebook_gui.c:632 msgid "File doesn't appear to be datebook.dat format\n" msgstr "Filen verkar inte vara i datebook.dat-format\n" #: ../datebook_gui.c:699 msgid "DAT/DBA (Palm Archive Formats)" msgstr "" #: ../datebook_gui.c:787 #, c-format msgid "" "Datebook exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:790 #, c-format msgid "" "Calendar exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:817 ../todo_gui.c:701 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ical file may not be standards-compliant\n" msgstr "" #: ../datebook_gui.c:1148 msgid "Unknown export type" msgstr "" #: ../datebook_gui.c:1228 ../todo_gui.c:872 #, fuzzy msgid "iCalendar" msgstr "Tm" #: ../datebook_gui.c:1240 ../export_gui.c:251 ../jpilot.c:429 msgid "Export" msgstr "Exportera" #. Label for instructions #: ../datebook_gui.c:1257 msgid "Export All Datebook Records" msgstr "Exportera alla kalenderposter" #: ../datebook_gui.c:1276 ../export_gui.c:316 msgid "Save as" msgstr "Spara som" #. Browse button #: ../datebook_gui.c:1286 ../export_gui.c:329 msgid "Browse" msgstr "Blddra" #: ../datebook_gui.c:1432 msgid "Datebook Categories" msgstr "" #. None button #. Labels for notebook tabs #: ../datebook_gui.c:1484 ../datebook_gui.c:2026 ../datebook_gui.c:5449 msgid "None" msgstr "Ingen" #: ../datebook_gui.c:1633 msgid "Begin On Date" msgstr "Startdatum" #: ../datebook_gui.c:1639 msgid "End On Date" msgstr "Slutdatum" #: ../datebook_gui.c:1751 ../prefs.c:451 msgid "Sunday" msgstr "Sndag" #: ../datebook_gui.c:1752 ../prefs.c:452 msgid "Monday" msgstr "Mndag" #: ../datebook_gui.c:1753 msgid "Tuesday" msgstr "Tisdag" #: ../datebook_gui.c:1754 msgid "Wednesday" msgstr "Onsdag" #: ../datebook_gui.c:1755 msgid "Thursday" msgstr "Torsdag" #: ../datebook_gui.c:1756 msgid "Friday" msgstr "Fredag" #: ../datebook_gui.c:1757 msgid "Saturday" msgstr "Lrdag" #: ../datebook_gui.c:1760 msgid "4th" msgstr "4:e" #: ../datebook_gui.c:1760 msgid "Last" msgstr "Sista" #: ../datebook_gui.c:1763 #, c-format msgid "" "This appointment can either\n" "repeat on the 4th %s\n" "of the month, or on the last\n" "%s of the month.\n" "Which do you want?" msgstr "" #: ../datebook_gui.c:1770 ../datebook_gui.c:1786 msgid "Question?" msgstr "" #: ../datebook_gui.c:1777 #, fuzzy msgid "" "This is a repeating event.\n" "Do you want to apply these changes to\n" "only the CURRENT event,\n" "just FUTURE events, or\n" "ALL of the occurrences of this event?" msgstr "" "Detta r en terkommande hndelse.\n" "Vill du att ndringarna ska glla alla\n" "hndelser, eller bara den hr hndelsen?" #: ../datebook_gui.c:1782 msgid "Current" msgstr "Aktuell" #: ../datebook_gui.c:1782 msgid "Future" msgstr "" #: ../datebook_gui.c:2027 msgid "day" msgstr "dag" #: ../datebook_gui.c:2028 msgid "week" msgstr "vecka" #: ../datebook_gui.c:2029 msgid "month" msgstr "mnad" #: ../datebook_gui.c:2030 msgid "year" msgstr "r" #: ../datebook_gui.c:2326 ../datebook_gui.c:2329 #, c-format msgid "You cannot have an appointment that repeats every %d %s(s)\n" msgstr "Du kan inte ha ett mte som repeteras var %d %s\n" #: ../datebook_gui.c:2339 #, fuzzy msgid "" "You cannot have a weekly repeating appointment that doesn't repeat on any " "day of the week." msgstr "" "Du kan inte ha ett mte med veckovis upprepning som inte upprepas p ngon " "veckodag.\n" #. This is a timeless event #: ../datebook_gui.c:2516 ../datebook_gui.c:5264 msgid "No Time" msgstr "Ingen tid" #: ../datebook_gui.c:2788 ../memo_gui.c:1259 ../todo_gui.c:1728 msgid "External editor command too long to execute\n" msgstr "" #: ../datebook_gui.c:2943 #, fuzzy msgid "Invalid Appointment" msgstr "Frflutet mte" #: ../datebook_gui.c:2944 msgid "" "The End Date of this appointment\n" "is before the start date." msgstr "" #. "No Date" check box #: ../datebook_gui.c:3339 ../datebook_gui.c:5482 ../datebook_gui.c:5513 #: ../datebook_gui.c:5565 ../datebook_gui.c:5613 ../todo_gui.c:142 #: ../todo_gui.c:2454 msgid "No Date" msgstr "Inget datum" #: ../datebook_gui.c:3494 #, c-format msgid "Error in DateBookDB or Calendar advanceUnits = %d\n" msgstr "" #: ../datebook_gui.c:3681 #, c-format msgid "%%a., %s" msgstr "" #: ../datebook_gui.c:3686 msgid " (TODAY)" msgstr "" #. Weekview button #: ../datebook_gui.c:4934 ../datebook_gui.c:5451 msgid "Week" msgstr "Vecka" #: ../datebook_gui.c:4943 msgid "View appointments by week Ctrl+W" msgstr "" #. Monthview button #: ../datebook_gui.c:4946 ../datebook_gui.c:5452 msgid "Month" msgstr "Mnad" #: ../datebook_gui.c:4955 msgid "View appointments by month Ctrl+M" msgstr "" #. Make Category button #: ../datebook_gui.c:4960 msgid "Cats" msgstr "Kategorier" #: ../datebook_gui.c:5024 msgid "Time" msgstr "Tid" #. "Show ToDos" button #: ../datebook_gui.c:5067 msgid "Show ToDos" msgstr "" #: ../datebook_gui.c:5081 ../todo_gui.c:2285 msgid "Task" msgstr "Uppgift" #: ../datebook_gui.c:5082 ../todo_gui.c:2286 msgid "Due" msgstr "Frfallen" #: ../datebook_gui.c:5201 ../datebook_gui.c:5358 msgid "Alarm" msgstr "Alarm" #. Date Spinners #: ../datebook_gui.c:5241 ../Expense/expense.c:1736 #, fuzzy msgid "Date:" msgstr "Datum" #. Start date and time #: ../datebook_gui.c:5283 #, fuzzy msgid "Start" msgstr "Brjar p" #. End date and time #: ../datebook_gui.c:5300 #, fuzzy msgid "End" msgstr "Sluta p" #: ../datebook_gui.c:5433 msgid "DateBk Tags" msgstr "" #: ../datebook_gui.c:5450 msgid "Day" msgstr "Dag" # msgid "WeekView" # msgstr "Veckovy" # msgid "MonthView" # msgstr "Mnadsvy" #: ../datebook_gui.c:5453 msgid "Year" msgstr "r" #. "No Repeat" page for notebook #: ../datebook_gui.c:5456 msgid "This event will not repeat" msgstr "Denna hndelse terkommer inte" #: ../datebook_gui.c:5465 ../datebook_gui.c:5498 ../datebook_gui.c:5550 #: ../datebook_gui.c:5596 msgid "Frequency is Every" msgstr "terkommer var" #: ../datebook_gui.c:5471 msgid "Day(s)" msgstr "Dag(ar)" #: ../datebook_gui.c:5474 ../datebook_gui.c:5507 ../datebook_gui.c:5559 #: ../datebook_gui.c:5605 msgid "End on" msgstr "Sluta p" #: ../datebook_gui.c:5504 msgid "Week(s)" msgstr "Vecka(or)" #: ../datebook_gui.c:5556 msgid "Month(s)" msgstr "Mnad(er)" #: ../datebook_gui.c:5573 msgid "Repeat by:" msgstr "Upprepa p:" #: ../datebook_gui.c:5577 msgid "Day of week" msgstr "Veckodag" #: ../datebook_gui.c:5586 ../Expense/expense.c:1618 msgid "Date" msgstr "Datum" #: ../datebook_gui.c:5602 msgid "Year(s)" msgstr "r" #: ../dialer.c:195 msgid "Phone Dialer" msgstr "" #: ../dialer.c:230 msgid "Prefix 1" msgstr "" #: ../dialer.c:252 msgid "Prefix 2" msgstr "" #: ../dialer.c:274 msgid "Prefix 3" msgstr "" #: ../dialer.c:289 msgid "Phone number:" msgstr "" #: ../dialer.c:319 #, fuzzy msgid "Extension" msgstr "Expense" #: ../dialer.c:341 #, fuzzy msgid "Dial Command" msgstr "Alarmkommando" #: ../export_gui.c:121 msgid "File Browser" msgstr "Filblddrare" #. Label for instructions #: ../export_gui.c:273 msgid "Select records to be exported" msgstr "Vlj poster som ska exporteras" #: ../export_gui.c:275 msgid "Use Ctrl and Shift Keys" msgstr "Anvnd Ctrl- och Skift-knapparna" #. Import button #: ../import_gui.c:300 ../import_gui.c:369 ../import_gui.c:426 #: ../import_gui.c:471 ../jpilot.c:385 msgid "Import" msgstr "Importera" #: ../import_gui.c:317 #, c-format msgid "Record was marked as private" msgstr "Posten var markerad som privat" #: ../import_gui.c:319 #, c-format msgid "Record was not marked as private" msgstr "Posten var inte markerad som privat" #: ../import_gui.c:328 #, c-format msgid "Category before import was: [%s]" msgstr "" #: ../import_gui.c:336 #, fuzzy, c-format msgid "Record will be put in category [%s]" msgstr "Alla poster i den hr kategorin" #. Import All button #: ../import_gui.c:376 msgid "Import All" msgstr "Importera alla" #. Skip button #: ../import_gui.c:383 msgid "Skip" msgstr "Hoppa ver" #: ../import_gui.c:457 ../install_gui.c:429 msgid "To change to a hidden directory type it below and hit TAB" msgstr "Fr att flytta till en dold katalog, skriv in det nedan och tryck TAB" #: ../import_gui.c:484 msgid "Import File Type" msgstr "Importera filtyp" #: ../install_gui.c:366 #, fuzzy msgid "Files to install" msgstr "Filer att installera" #: ../install_gui.c:374 msgid "Install" msgstr "Installera" #: ../install_user.c:118 ../install_user.c:220 #, fuzzy msgid "Install User" msgstr "/Arkiv/_Installera" #: ../install_user.c:139 msgid "" "A PalmOS(c) device needs a user name and a user ID in order to sync properly." msgstr "" #: ../install_user.c:146 msgid "" "If you want to sync more than 1 PalmOS(c) device each one should have a " "different ID and preferably a different user name." msgstr "" #. Instruction label #: ../install_user.c:168 msgid "Most people choose their name or nickname for the user name." msgstr "" #: ../install_user.c:176 ../restore_gui.c:278 msgid "User Name" msgstr "Anvndarnamn" #: ../install_user.c:186 msgid "The ID should be a random number." msgstr "" #: ../install_user.c:194 ../restore_gui.c:297 msgid "User ID" msgstr "Anvndar-ID" #: ../jpilot.c:319 msgid "Print" msgstr "Skriv ut" #: ../jpilot.c:320 msgid "There is no print support for this conduit." msgstr "Det finns inget utskriftsstd fr detta tillgg." #: ../jpilot.c:386 msgid "There is no import support for this conduit." msgstr "Det finns inget importstd fr detta tillgg." #: ../jpilot.c:430 msgid "There is no export support for this conduit." msgstr "Det finns inget exportstd fr detta tillgg." #: ../jpilot.c:659 #, fuzzy msgid " Cancelling HotSync\n" msgstr "Avbryt" #. ------------------------------------------- #: ../jpilot.c:675 msgid "" "This handheld does not have the same user name or user ID\n" "as the one that was synced the last time.\n" "Syncing could have unwanted effects including data loss.\n" "\n" "Read the user manual if you are uncertain." msgstr "" #. ------------------------------------------- #: ../jpilot.c:682 msgid "" "This handheld has a NULL user ID.\n" "Every handheld must have a unique user ID in order to sync properly.\n" "If the handheld has been hard reset, \n" " use restore from the menu to restore it.\n" "Otherwise, to add a new user name and ID\n" " use install-user from the menu.\n" "\n" "Read the user manual if you are uncertain." msgstr "" #: ../jpilot.c:690 #, fuzzy msgid "Cancel Sync" msgstr "Avbryt" #: ../jpilot.c:690 msgid "Sync Anyway" msgstr "Synka nd" #: ../jpilot.c:699 ../jpilot.c:703 #, fuzzy msgid "Sync Problem" msgstr "Synka minnesanteckningar" #: ../jpilot.c:932 ../jpilot.c:1785 #, fuzzy msgid " User: " msgstr "Anvndar-ID" #: ../jpilot.c:944 msgid "Unknown command from sync process\n" msgstr "" #: ../jpilot.c:963 ../Expense/expense.c:529 ../KeyRing/keyring.c:1872 #: ../SyncTime/synctime.c:61 #, c-format msgid "About %s" msgstr "Om %s" #: ../jpilot.c:1105 #, fuzzy msgid "/_File" msgstr "/_Arkiv" #: ../jpilot.c:1106 msgid "/File/tear" msgstr "/Arkiv/Riv av" #: ../jpilot.c:1107 msgid "/File/_Find" msgstr "/Arkiv/_Sk" #: ../jpilot.c:1108 ../jpilot.c:1114 ../jpilot.c:1117 msgid "/File/sep1" msgstr "/Arkiv/sep1" #: ../jpilot.c:1109 msgid "/File/_Install" msgstr "/Arkiv/_Installera" #: ../jpilot.c:1110 msgid "/File/Import" msgstr "/Arkiv/Importera" #: ../jpilot.c:1111 msgid "/File/Export" msgstr "/Arkiv/Exportera" #: ../jpilot.c:1112 ../jpilot.c:2190 msgid "/File/Preferences" msgstr "/Arkiv/Instllningar" #: ../jpilot.c:1113 msgid "/File/_Print" msgstr "/Arkiv/Skriv ut" #: ../jpilot.c:1115 #, fuzzy msgid "/File/Install User" msgstr "/Arkiv/_Installera" #: ../jpilot.c:1116 msgid "/File/Restore Handheld" msgstr "/Arkiv/terstll handdatorn" #: ../jpilot.c:1118 msgid "/File/_Quit" msgstr "/Arkiv/Avsluta" #: ../jpilot.c:1119 msgid "/_View" msgstr "/_Visa" #: ../jpilot.c:1120 ../jpilot.c:1121 ../jpilot.c:1122 ../jpilot.c:1368 #, fuzzy msgid "/View/Hide Private Records" msgstr "/Visa/Dlj-Visa privata poster" #: ../jpilot.c:1121 ../jpilot.c:1371 #, fuzzy msgid "/View/Show Private Records" msgstr "/Visa/Dlj-Visa privata poster" #: ../jpilot.c:1122 ../jpilot.c:1374 #, fuzzy msgid "/View/Mask Private Records" msgstr "/Visa/Dlj-Visa privata poster" #: ../jpilot.c:1123 #, fuzzy msgid "/View/sep1" msgstr "/Arkiv/sep1" #: ../jpilot.c:1124 msgid "/View/Datebook" msgstr "/Visa/Kalender" #: ../jpilot.c:1125 msgid "/View/Addresses" msgstr "/Visa/Adresser" #: ../jpilot.c:1126 msgid "/View/Todos" msgstr "/Visa/Att gra-lista" #: ../jpilot.c:1127 msgid "/View/Memos" msgstr "/Visa/Minnesanteckningar" #: ../jpilot.c:1128 ../jpilot.c:1259 #, fuzzy msgid "/_Plugins" msgstr "/Insticksmoduler" #: ../jpilot.c:1130 #, fuzzy msgid "/_Web" msgstr "On" #. web #: ../jpilot.c:1131 msgid "/Web/Netscape" msgstr "" #: ../jpilot.c:1135 msgid "/Web/Mozilla" msgstr "" #: ../jpilot.c:1140 msgid "/Web/Galeon" msgstr "" #: ../jpilot.c:1145 msgid "/Web/Opera" msgstr "" #: ../jpilot.c:1149 msgid "/Web/GnomeUrl" msgstr "" #: ../jpilot.c:1151 msgid "/Web/Lynx" msgstr "" #: ../jpilot.c:1153 msgid "/Web/Links" msgstr "" #: ../jpilot.c:1155 msgid "/Web/W3M" msgstr "" #: ../jpilot.c:1157 msgid "/Web/Konqueror" msgstr "" #: ../jpilot.c:1160 msgid "/_Help" msgstr "/_Hjlp" #: ../jpilot.c:1161 #, fuzzy msgid "/Help/About J-Pilot" msgstr "/Hjlp/J-Pilot" #: ../jpilot.c:1227 #, fuzzy, c-format msgid "/_Plugins/%s" msgstr "/Insticksmoduler/%s" #: ../jpilot.c:1237 #, c-format msgid "/_Help/%s" msgstr "/_Hjlp/%s" #: ../jpilot.c:1591 msgid "calendar:week_start:0" msgstr "" #: ../jpilot.c:1634 ../jpilot-sync.c:171 msgid "Not loading plugins.\n" msgstr "" #: ../jpilot.c:1638 msgid "Ignoring all alarms.\n" msgstr "" #: ../jpilot.c:1642 msgid "Ignoring past alarms.\n" msgstr "" #: ../jpilot.c:1730 ../jpilot.c:1738 #, fuzzy msgid "Unable to open pipe\n" msgstr "Kunde inte ppna %s\n" #: ../jpilot.c:1947 #, fuzzy msgid "Show private records Ctrl+Z" msgstr "/Visa/Dlj-Visa privata poster" #: ../jpilot.c:1952 #, fuzzy msgid "Hide private records Ctrl+Z" msgstr "/Visa/Dlj-Visa privata poster" #: ../jpilot.c:1957 #, fuzzy msgid "Mask private records Ctrl+Z" msgstr "Skriv ut alla poster" #: ../jpilot.c:1969 #, fuzzy msgid "Sync your palm to the desktop Ctrl+Y" msgstr "Synkronisera din palm med datorn" #: ../jpilot.c:1981 #, fuzzy msgid "Stop Sync process" msgstr "Synka adress" #: ../jpilot.c:1993 msgid "" "Sync your palm to the desktop\n" "and then do a backup" msgstr "" "Synkronisera din palm med datorn\n" "och gr sedan en skerhetskopia" #: ../jpilot.c:2141 msgid "Datebook/Go to Today" msgstr "Kalender/G till idag" #: ../jpilot.c:2142 msgid "Address Book" msgstr "Adressbok" #: ../jpilot.c:2143 msgid "ToDo List" msgstr "Att gra-lista" #: ../jpilot.c:2144 msgid "Memo Pad" msgstr "Anteckningsblock" #: ../jpilot.c:2172 msgid "Do it now" msgstr "" #: ../jpilot.c:2172 #, fuzzy msgid "Remind me later" msgstr "Pminn mig" #: ../jpilot.c:2172 msgid "Don't tell me again!" msgstr "" #: ../jpilot.c:2185 #, c-format msgid "" "J-Pilot uses the GTK2 graphical toolkit. This version of the toolkit uses " "UTF-8 to encode characters.\n" "You should select a UTF-8 charset so that you can see non-ASCII characters " "(accents for example).\n" "\n" "Go to the menu \"%s\" and change the \"%s\"." msgstr "" # Lite svrt att verstta, hjlp kan behvas. #. Character Set #: ../jpilot.c:2190 ../prefs_gui.c:511 #, fuzzy msgid "Character Set" msgstr "Teckenuppsttning" #: ../jpilot.c:2192 msgid "Select a UTF-8 encoding" msgstr "" #: ../jpilot-dump.c:94 #, c-format msgid " +D +A +T +M format like date +format.\n" msgstr "" #: ../jpilot-dump.c:95 #, c-format msgid " -v display version and exit\n" msgstr "" #: ../jpilot-dump.c:96 ../jpilot-sync.c:68 ../utils.c:1874 #, c-format msgid " -h display help text\n" msgstr "" #: ../jpilot-dump.c:97 #, c-format msgid " -f display help for format codes\n" msgstr "" #: ../jpilot-dump.c:98 #, fuzzy, c-format msgid " -D dump DateBook\n" msgstr "Adressbok" #: ../jpilot-dump.c:99 #, fuzzy, c-format msgid " -i dump DateBook in iCalendar format\n" msgstr "Adressbok" #: ../jpilot-dump.c:100 #, fuzzy, c-format msgid " -N dump appts for today in DateBook\n" msgstr "Adressbok" #: ../jpilot-dump.c:101 #, c-format msgid " -NYYYY/MM/DD dump appts on YYYY/MM/DD in DateBook\n" msgstr "" #: ../jpilot-dump.c:102 #, fuzzy, c-format msgid " -A dump Address book\n" msgstr "Adressbok" #: ../jpilot-dump.c:103 #, c-format msgid " -T dump ToDo list as CSV\n" msgstr "" #: ../jpilot-dump.c:104 #, fuzzy, c-format msgid " -M dump Memos\n" msgstr "Adressbok" #: ../jpilot-dump.c:165 #, c-format msgid "" "Warning: Host character encoding is not UTF-8 based.\n" "Exported ical file may not be standards-compliant\n" msgstr "" #: ../jpilot-merge.c:163 ../jpilot-merge.c:169 #, fuzzy, c-format msgid "%s: Unable to open file:%s\n" msgstr "Kunde inte ppna %s\n" #: ../jpilot-merge.c:271 #, c-format msgid "Records read from pdb = %d\n" msgstr "" #: ../jpilot-merge.c:272 #, c-format msgid "Records added = %d\n" msgstr "" #: ../jpilot-merge.c:273 #, c-format msgid "Records deleted = %d\n" msgstr "" #: ../jpilot-merge.c:274 #, c-format msgid "Records modified = %d\n" msgstr "" #: ../jpilot-merge.c:275 #, c-format msgid "Records written = %d\n" msgstr "" #: ../jpilot-merge.c:293 #, c-format msgid "Usage: %s {input pdb file} {input pc3 file} {output pdb file}\n" msgstr "" #: ../jpilot-merge.c:294 #, c-format msgid " This program will merge an unsynced records file (pc3)\n" msgstr "" #: ../jpilot-merge.c:295 #, c-format msgid "" " into the corresponding palm database (pdb) file.\n" "\n" msgstr "" #: ../jpilot-merge.c:296 #, c-format msgid " WARNING: Only run this utility if you understand the consequences!\n" msgstr "" #: ../jpilot-merge.c:297 #, c-format msgid " The merge will leave your databases in an unsync-able state.\n" msgstr "" #: ../jpilot-merge.c:298 #, c-format msgid "" " It is intended for cases where J-pilot is being used as a standalone PIM\n" msgstr "" #: ../jpilot-merge.c:299 #, c-format msgid " and where no syncing occurs to physical hardware.\n" msgstr "" #: ../jpilot-merge.c:300 #, c-format msgid " WARNING: Make a backup copy of your databases before proceeding.\n" msgstr "" #: ../jpilot-merge.c:301 #, c-format msgid "" " It is quite simple to destroy your databases by accidentally merging\n" msgstr "" #: ../jpilot-merge.c:302 #, c-format msgid " address records into datebook databases, etc.\n" msgstr "" #: ../jpilot-sync.c:66 #, c-format msgid "" " J-Pilot preferences are read to get sync info such as port, rate, number of " "backups, etc.\n" msgstr "" #: ../jpilot-sync.c:67 ../utils.c:1873 #, c-format msgid " -v display version and compile options\n" msgstr "" #: ../jpilot-sync.c:69 ../utils.c:1875 #, c-format msgid " -d display debug info to stdout\n" msgstr "" #: ../jpilot-sync.c:70 #, c-format msgid " -P skip loading plugins\n" msgstr "" #: ../jpilot-sync.c:71 #, fuzzy, c-format msgid " -b sync, and then do a backup\n" msgstr "" "Synkronisera din palm med datorn\n" "och gr sedan en skerhetskopia" #: ../jpilot-sync.c:72 #, c-format msgid " -l loop, otherwise sync once and exit\n" msgstr "" #: ../jpilot-sync.c:73 #, c-format msgid " -p {port} use this port to sync on instead of default\n" msgstr "" #: ../jpilot-sync.c:221 #, fuzzy, c-format msgid "Error: connecting to port %s\n" msgstr "Fel vid lsning av %s\n" #: ../jpilot-sync.c:225 #, fuzzy, c-format msgid "Error: pi_listen\n" msgstr "Fel i %s\n" #: ../jpilot-sync.c:229 #, fuzzy, c-format msgid "Error: opening conduit to handheld\n" msgstr "Fel vid filppning" #: ../jpilot-sync.c:233 #, c-format msgid "Error: pi_accept\n" msgstr "" #: ../jpilot-sync.c:237 ../jpilot-sync.c:265 #, fuzzy, c-format msgid "Error: " msgstr "fel" #: ../jpilot-sync.c:238 #, c-format msgid "This handheld does not have the same user name.\n" msgstr "" #: ../jpilot-sync.c:239 ../jpilot-sync.c:253 #, c-format msgid "as the one that was synced the last time.\n" msgstr "" #: ../jpilot-sync.c:241 #, c-format msgid "" "Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:243 ../jpilot-sync.c:256 #, c-format msgid " COPILOT_HOME" msgstr "" #: ../jpilot-sync.c:245 ../jpilot-sync.c:258 #, c-format msgid " JPILOT_HOME" msgstr "" #: ../jpilot-sync.c:247 ../jpilot-sync.c:260 #, c-format msgid " environment variable can be used to sync different handhelds,\n" msgstr "" #: ../jpilot-sync.c:248 ../jpilot-sync.c:261 #, c-format msgid " to different directories for the same UNIX user name.\n" msgstr "" #: ../jpilot-sync.c:252 #, c-format msgid "This handheld does not have the same user ID.\n" msgstr "" #: ../jpilot-sync.c:254 #, c-format msgid "" " Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:266 #, c-format msgid "This handheld has a NULL user ID.\n" msgstr "" #: ../jpilot-sync.c:267 #, c-format msgid "Every handheld must have a unique user ID in order to sync properly.\n" msgstr "" #: ../jpilot-sync.c:268 #, c-format msgid "If the handheld has been hard reset, \n" msgstr "" #: ../jpilot-sync.c:269 #, c-format msgid " use restore from within " msgstr "" #: ../jpilot-sync.c:270 #, c-format msgid "Otherwise, to add a new user name and ID\n" msgstr "" #: ../jpilot-sync.c:271 #, c-format msgid " use \"install-user %s name numeric_id\"\n" msgstr "" #: ../jpilot-sync.c:275 #, c-format msgid "Error: sync returned error %d\n" msgstr "" #: ../libplugin.c:64 ../utils.c:1054 msgid "" "This record is already deleted.\n" "It is scheduled to be deleted from the Palm on the next sync.\n" msgstr "" #: ../libplugin.c:73 ../libplugin.c:110 ../utils.c:1064 ../utils.c:1106 #, fuzzy msgid "Unable to open PC records file\n" msgstr "Kunde inte ppna %s\n" #: ../libplugin.c:79 ../utils.c:1071 #, fuzzy msgid "Couldn't find record to delete\n" msgstr "Kunde inte hitta en tom databas-fil.\n" #: ../libplugin.c:97 ../utils.c:1091 #, c-format msgid "Unknown header version %d\n" msgstr "" #: ../libplugin.c:182 #, fuzzy, c-format msgid "%s:%d Error opening file: %s\n" msgstr "Fel vid lsning av %s\n" #: ../libplugin.c:188 ../libplugin.c:217 ../sync.c:1721 ../todo.c:102 #, fuzzy, c-format msgid "%s:%d Error reading file: %s\n" msgstr "Fel vid lsning av %s\n" #: ../libplugin.c:340 ../libplugin.c:398 ../utils.c:2119 ../utils.c:2132 #, fuzzy, c-format msgid "Error opening file: %s\n" msgstr "Fel vid filppning" #: ../libplugin.c:526 #, fuzzy, c-format msgid "Error reading %s 5\n" msgstr "Fel vid lsning av %s\n" #: ../libplugin.c:801 #, fuzzy msgid "Error reading PC file 1\n" msgstr "Fel vid lsning av %s\n" #: ../libplugin.c:817 #, fuzzy msgid "Error reading PC file 2\n" msgstr "Fel vid lsning av %s\n" #: ../libplugin.c:923 #, c-format msgid "Unknown PC header version = %d\n" msgstr "" #: ../log.c:101 #, fuzzy, c-format msgid "Unable to open log file, giving up.\n" msgstr "Kan inte ppna loggfil, ger upp.\n" #: ../log.c:111 #, fuzzy, c-format msgid "Unable to open log file\n" msgstr "Kunde inte ppna %s\n" #: ../memo_gui.c:302 msgid "Memo text > 65535, truncating\n" msgstr "" #: ../memo_gui.c:330 #, c-format msgid "Imported Memo %s\n" msgstr "" #: ../memo_gui.c:400 msgid "File doesn't appear to be memopad.dat format\n" msgstr "Filen verkar inte vara i memopad.dat format\n" #: ../memo_gui.c:471 msgid "DAT/MPA (Palm Archive Formats)" msgstr "" #: ../memo_gui.c:554 #, c-format msgid "" "Memo exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:557 #, c-format msgid "" "Memos exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:584 #, c-format msgid "Can't export memo %d\n" msgstr "" #: ../memo_gui.c:628 #, fuzzy, c-format msgid "Memo: %ld\n" msgstr "Anteckningsblock" #: ../memo_gui.c:634 #, c-format msgid "----- Start of Memo -----\n" msgstr "" #: ../memo_gui.c:636 #, c-format msgid "" "\n" "----- End of Memo -----\n" "\n" msgstr "" #: ../memo_gui.c:668 msgid "B-Folders CSV" msgstr "" #: ../monthview_gui.c:438 msgid "Monthly View" msgstr "Mnadsvy" #: ../monthview_gui.c:480 msgid "Last month Alt+LeftArrow" msgstr "" #: ../monthview_gui.c:508 msgid "Next month Alt+RightArrow" msgstr "" #: ../otherconv.c:76 #, c-format msgid "%s: error exit from g_iconv_close(%s)\n" msgstr "" #: ../otherconv.c:201 #, c-format msgid "%s:%s g_convert_with_iconv error: %s, buff: %s\n" msgstr "" #: ../otherconv.c:203 msgid "last char truncated" msgstr "" #: ../otherconv.c:280 #, c-format msgid "UTF_to_other: %s\n" msgstr "" #: ../otherconv.c:294 #, c-format msgid "iconv: unconvertible sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:298 #, c-format msgid "iconv: incomplete UTF-8 sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:301 #, c-format msgid "iconv: buffer filled. stopped at place %d in '%s'\n" msgstr "" #: ../otherconv.c:304 #, c-format msgid "iconv: unexpected error at place %d in '%s'\n" msgstr "" #: ../password.c:283 msgid "Palm Password" msgstr "Palmlsenord" #: ../password.c:308 #, fuzzy msgid "Incorrect, Reenter PalmOS Password" msgstr "Skriv PalmOSlsenord" #: ../password.c:310 msgid "Enter PalmOS Password" msgstr "Skriv PalmOSlsenord" #: ../pidfile.c:67 #, fuzzy msgid "removing stale pidfile\n" msgstr "Kan inte ppna jpilot_to_install-filen\n" #: ../pidfile.c:91 #, fuzzy, c-format msgid "create pidfile failed: %s\n" msgstr "Fel vid lsning av %s\n" #: ../pidfile.c:92 msgid "Warning: hotplug syncing disabled.\n" msgstr "" #: ../plugins.c:90 ../plugins.c:203 ../restore_gui.c:133 msgid "infinite loop" msgstr "" #: ../plugins.c:216 #, c-format msgid "While reading %s%s line 1:[%s]\n" msgstr "" #: ../plugins.c:217 msgid "Wrong Version\n" msgstr "" #: ../plugins.c:218 msgid "Check preferences->conduits\n" msgstr "" #: ../plugins.c:274 #, c-format msgid "" "Open failed on plugin [%s]\n" " error [%s]\n" msgstr "" #: ../plugins.c:291 ../plugins.c:316 #, c-format msgid " plugin is invalid: [%s]\n" msgstr "" #: ../plugins.c:299 #, fuzzy, c-format msgid "Plugin:[%s]\n" msgstr "/Insticksmoduler/%s" #: ../plugins.c:300 #, c-format msgid "This plugin is version (%d.%d).\n" msgstr "" #: ../plugins.c:302 msgid "It is too old to work with this version of J-Pilot.\n" msgstr "" #: ../prefs.c:420 msgid "%B %d, %Y" msgstr "" #: ../prefs.c:421 msgid "%d %B %Y" msgstr "" #: ../prefs.c:422 msgid "%d. %B %Y" msgstr "" #: ../prefs.c:423 msgid "%d %B, %Y" msgstr "" #: ../prefs.c:424 msgid "%Y. %B. %d" msgstr "" #: ../prefs.c:425 msgid "%Y %B %d" msgstr "" #: ../prefs_gui.c:454 msgid "Preferences" msgstr "Instllningar" #: ../prefs_gui.c:485 msgid "Locale" msgstr "Lokal" #: ../prefs_gui.c:487 msgid "Settings" msgstr "Instllningar" #: ../prefs_gui.c:489 #, fuzzy msgid "Datebook" msgstr "Synka kalender" #: ../prefs_gui.c:493 #, fuzzy msgid "ToDo" msgstr "Att gra-lista" #: ../prefs_gui.c:495 #, fuzzy msgid "Memo" msgstr "Synka minnesanteckningar" #: ../prefs_gui.c:497 msgid "Alarms" msgstr "Alarm" #: ../prefs_gui.c:499 msgid "Conduits" msgstr "Tillgg" #. Shortdate #: ../prefs_gui.c:524 #, fuzzy msgid "Short date format" msgstr "Kort datumformat " #. Longdate #: ../prefs_gui.c:537 #, fuzzy msgid "Long date format" msgstr "Lngt datumformat " #. Time #: ../prefs_gui.c:550 #, fuzzy msgid "Time format" msgstr "Tidsformat " #. GTK colors file #: ../prefs_gui.c:570 #, fuzzy msgid "GTK color theme file" msgstr "Min GTK-frgfil r " #. Port #: ../prefs_gui.c:583 #, fuzzy msgid "Sync Port" msgstr "Synka minnesanteckningar" #. Serial Rate #: ../prefs_gui.c:607 #, fuzzy msgid "Serial Rate" msgstr "Seriell verfringshastighet " #. Number of backups #: ../prefs_gui.c:627 msgid "Number of backups to be archived" msgstr "Antal skerhetskopior som skall arkiveras?" #. Show deleted files check box #: ../prefs_gui.c:645 msgid "Show deleted records (default NO)" msgstr "Visa borttagna poster (standard: Nej)" #. Show modified files check box #: ../prefs_gui.c:649 msgid "Show modified deleted records (default NO)" msgstr "Visa modifierade borttagna poster (standard: Nej)" #: ../prefs_gui.c:654 msgid "Ask confirmation for file installation (J-Pilot -> PDA) (default YES)" msgstr "" #. Show tooltips check box #: ../prefs_gui.c:658 msgid "Show popup tooltips (default YES) (requires restart)" msgstr "" #: ../prefs_gui.c:668 msgid "Use Datebook database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:671 msgid "Use Calendar database (Palm OS > 5.2)" msgstr "" #. Show highlight days check box #: ../prefs_gui.c:697 msgid "Highlight calendar days with appointments" msgstr "Markera kalenderdagar med mten" #. Highlight today on month and week view #: ../prefs_gui.c:702 msgid "Annotate today in day, week, and month views" msgstr "" #. Show number of years on anniversaries in month and week view #: ../prefs_gui.c:706 msgid "Append years on anniversaries in day, week, and month views" msgstr "" #. Show use DateBk check box #: ../prefs_gui.c:712 #, fuzzy msgid "Use DateBk note tags" msgstr "Anvnd DateBk-anteckningstaggar" #: ../prefs_gui.c:715 msgid "DateBk support disabled in this build" msgstr "" #: ../prefs_gui.c:727 msgid "Use Address database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:730 msgid "Use Contacts database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:759 #, fuzzy msgid "Mail Command" msgstr "Alarmkommando" #: ../prefs_gui.c:773 #, fuzzy, c-format msgid "%s is replaced by the e-mail address" msgstr "%t erstts med alarmtiden" #: ../prefs_gui.c:785 msgid "Use ToDo database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:788 msgid "Use Task database (Palm OS > 5.2)" msgstr "" #. hide completed check box #: ../prefs_gui.c:815 msgid "Hide Completed ToDos" msgstr "Dlj avklarade att gra-poster?" #. hide todos not yet due check box #: ../prefs_gui.c:819 msgid "Hide ToDos not yet due" msgstr "" #. record todo completion date check box #: ../prefs_gui.c:823 msgid "Record Completion Date" msgstr "" #. Use Manana check box #: ../prefs_gui.c:828 msgid "Use Manana database" msgstr "" #: ../prefs_gui.c:836 msgid "Use default number of days due" msgstr "" #: ../prefs_gui.c:858 msgid "Use Memo database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:861 msgid "Use Memos database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:864 #, fuzzy msgid "Use Memo32 database (pedit32)" msgstr "Anvnd Memo32 (pedit32)" #: ../prefs_gui.c:904 msgid "External Editor" msgstr "" #: ../prefs_gui.c:917 msgid "Use Ctrl-E inside a memo to launch external editor for memo text" msgstr "" #. ******************************************************************** #. Alarms preference tab #. Open alarm windows check box #: ../prefs_gui.c:925 msgid "Open alarm windows for appointment reminders" msgstr "ppna alarmfnster fr mtespminnelser" #. Execute alarm command check box #: ../prefs_gui.c:929 msgid "Execute this command" msgstr "Kr det hr kommandot" #. Shell warning label #: ../prefs_gui.c:933 msgid "WARNING: executing arbitrary shell commands can be dangerous!!!" msgstr "VARNING: att kra godtyckliga skalkommandon kan vara farligt!!!" #: ../prefs_gui.c:941 msgid "Alarm Command" msgstr "Alarmkommando" #: ../prefs_gui.c:954 msgid "%t is replaced with the alarm time" msgstr "%t erstts med alarmtiden" #: ../prefs_gui.c:958 #, c-format msgid "%d is replaced with the alarm date" msgstr "%d erstts med alarmdatumet" #: ../prefs_gui.c:963 msgid "%D is replaced with the alarm description" msgstr "%D ertts alarmbeskrivningen" #: ../prefs_gui.c:967 msgid "%N is replaced with the alarm note" msgstr "%N erstts med alarmanteckningen" #: ../prefs_gui.c:971 msgid "%D (description substitution) is disabled in this build" msgstr "" #: ../prefs_gui.c:976 msgid "%N (note substitution) is disabled in this build" msgstr "" #. ******************************************************************** #. Conduits preference tab #. Sync datebook check box #: ../prefs_gui.c:986 msgid "Sync datebook" msgstr "Synka kalender" #. Sync address check box #: ../prefs_gui.c:990 msgid "Sync address" msgstr "Synka adress" #. Sync todo check box #: ../prefs_gui.c:994 msgid "Sync todo" msgstr "Synka att gra-lista" #. Sync memo check box #: ../prefs_gui.c:998 msgid "Sync memo" msgstr "Synka minnesanteckningar" #. Show sync Manana check box #: ../prefs_gui.c:1003 #, fuzzy msgid "Sync Manana" msgstr "Synka nd" #. Show use Japanese Kana extention check box #: ../prefs_gui.c:1009 msgid "Use J-OS (Not Japanese PalmOS:WorkPad/CLIE)" msgstr "" #. Make a Sync checkbox for each plugin #: ../prefs_gui.c:1022 #, fuzzy, c-format msgid "Sync %s (%s)" msgstr "Synkroniserar %s\n" #: ../print_gui.c:185 msgid "Print Options" msgstr "Utskriftsinstllningar" #: ../print_gui.c:198 msgid "Paper Size" msgstr "Papperstorlek" #: ../print_gui.c:214 msgid "Daily Printout" msgstr "Dagsutskrift" #: ../print_gui.c:220 msgid "Weekly Printout" msgstr "Veckoutskrift" #: ../print_gui.c:226 msgid "Monthly Printout" msgstr "Mnadsutskrift" #: ../print_gui.c:266 #, fuzzy msgid "Selected record" msgstr "Tog bort en %s-post." #: ../print_gui.c:270 msgid "All records in this category" msgstr "Alla poster i den hr kategorin" #: ../print_gui.c:274 msgid "Print all records" msgstr "Skriv ut alla poster" #: ../print_gui.c:296 msgid "One record per page" msgstr "En post per sida" #: ../print_gui.c:312 #, fuzzy msgid "Blank lines between each record" msgstr " Blanka rader mellan varje post" #. Print Command #: ../print_gui.c:321 msgid "Print Command (e.g. lpr, or cat > file.ps)" msgstr "Utskriftskommando (tex. lpr, eller cat > fil.ps)" #: ../restore_gui.c:71 ../restore_gui.c:229 msgid "Restore Handheld" msgstr "terstll handdator" #: ../restore_gui.c:176 ../restore_gui.c:178 msgid "Unable to convert filename for GTK display\n" msgstr "" #: ../restore_gui.c:177 msgid "See console log to find which file will not be restored\n" msgstr "" #: ../restore_gui.c:179 #, fuzzy, c-format msgid "File %s will not be restored\n" msgstr "Filer att installera" #. Label for instructions #: ../restore_gui.c:246 msgid "To restore your handheld:" msgstr "Fr att terstlla din handdator:" #: ../restore_gui.c:249 #, fuzzy msgid "1. Choose the applications you wish to restore. The default is all." msgstr "" "1. Vlj alla program du vill terstlla. Standard r att terstlla alla." #: ../restore_gui.c:252 msgid "2. Enter the User Name and User ID." msgstr "2. Skriv in anvndarnamnet och anvndar-ID." #: ../restore_gui.c:255 msgid "3. Press the OK button." msgstr "3. Tryck p OK-knappen nu" #: ../restore_gui.c:258 msgid "This will overwrite data that is currently on the handheld." msgstr "Det hr kommer att skriva ver data som just nu finns p handdatorn." #: ../search_gui.c:144 #, fuzzy msgid "datebook" msgstr "Synka kalender" #: ../search_gui.c:146 #, fuzzy msgid "calendar" msgstr "Tm" #: ../search_gui.c:233 #, fuzzy msgid "address" msgstr "Adress" #: ../search_gui.c:235 msgid "contact" msgstr "" #: ../search_gui.c:304 #, fuzzy msgid "todo" msgstr "Synka att gra-lista" #: ../search_gui.c:361 #, fuzzy msgid "memo" msgstr "Synka minnesanteckningar" #: ../search_gui.c:363 #, fuzzy msgid "memos" msgstr "Synka minnesanteckningar" #: ../search_gui.c:421 #, fuzzy msgid "plugin ?" msgstr "/Insticksmoduler" #: ../search_gui.c:501 msgid "No records found" msgstr "Inga poster funna" #: ../search_gui.c:600 msgid "Search" msgstr "Sk" #. Search label #: ../search_gui.c:617 msgid "Search for: " msgstr "Sk efter: " #. Case Sensitive checkbox #: ../search_gui.c:626 msgid "Case Sensitive" msgstr "Skilj p gemener/versaler" #: ../sync.c:120 #, fuzzy msgid "open lock file failed\n" msgstr "Kan inte ppna loggfil\n" #: ../sync.c:133 #, fuzzy msgid "lock failed\n" msgstr "Misslyckades.\n" #: ../sync.c:136 #, c-format msgid "sync file is locked by pid %d\n" msgstr "" #: ../sync.c:171 msgid "unlock failed\n" msgstr "" #: ../sync.c:174 #, c-format msgid "sync is locked by pid %d\n" msgstr "" #: ../sync.c:410 #, fuzzy msgid "Check your sync port and settings\n" msgstr "Kontrollera din serieport och instllningar\n" #: ../sync.c:669 #, fuzzy msgid "Unable to read home dir\n" msgstr "Kunde inte ppna %s\n" #: ../sync.c:1075 ../sync.c:1413 #, c-format msgid "%s (Creator ID '%s') is up to date, fetch skipped.\n" msgstr "%s (Skapar-ID \"%s\") r redan uppdaterad, hoppar ver nerladdning\n" #: ../sync.c:1079 ../sync.c:1417 #, c-format msgid "Fetching '%s' (Creator ID '%s')... " msgstr "Hmtar \"%s\" (Skapar-ID \"%s\")... " #: ../sync.c:1086 ../sync.c:1423 #, c-format msgid "Failed, unable to create file %s\n" msgstr "" #: ../sync.c:1090 ../sync.c:1428 #, c-format msgid "Failed, unable to back up database %s\n" msgstr "" #: ../sync.c:1094 ../sync.c:1432 ../sync.c:1619 msgid "OK\n" msgstr "OK\n" #: ../sync.c:1294 #, c-format msgid "Skipping %s (Creator ID '%s')\n" msgstr "Hoppar ver %s (Skapar-ID \"%s\")\n" #: ../sync.c:1488 #, c-format msgid "Installing %s " msgstr "Installerar %s " #: ../sync.c:1494 ../sync.c:1530 #, fuzzy, c-format msgid "" "\n" "Unable to open file: '%s': %s!\n" msgstr "" "\n" "Kan inte ppna \"%s\"!\n" #: ../sync.c:1498 #, fuzzy, c-format msgid "" "\n" "Unable to sync file: '%s': file corrupted?\n" msgstr "" "\n" "Kan inte ppna \"%s\"!\n" #: ../sync.c:1514 #, fuzzy, c-format msgid "(Creator ID '%s')... " msgstr "(Skapar ID r \"%s\")..." #: ../sync.c:1518 #, fuzzy, c-format msgid "(Creator ID '%s') " msgstr "(Skapar ID r \"%s\")..." #: ../sync.c:1520 #, fuzzy, c-format msgid "(SDcard dir %s)... " msgstr "(Skapar ID r \"%s\")..." #: ../sync.c:1552 ../sync.c:1565 ../sync.c:1580 ../sync.c:1593 #, fuzzy, c-format msgid "" "\n" "Unable to open file: %s\n" msgstr "Kunde inte ppna %s\n" #: ../sync.c:1605 #, c-format msgid "Install %s failed" msgstr "Installering av %s misslyckades" #: ../sync.c:1609 msgid "Failed.\n" msgstr "Misslyckades.\n" #: ../sync.c:1615 #, fuzzy, c-format msgid "Installed %s" msgstr "Installerade %s " #: ../sync.c:1726 #, fuzzy, c-format msgid "%s:%d Error getting app info %s\n" msgstr "Fel vid lsning av %s\n" #: ../sync.c:1732 ../sync.c:1762 #, fuzzy, c-format msgid "%s:%d Error unpacking app info %s\n" msgstr "Fel vid lsning av %s\n" #: ../sync.c:1753 #, fuzzy, c-format msgid "Error reading appinfo block for %s\n" msgstr "Fel vid lsning av %s\n" #. Fix - need a func for this logging #: ../sync.c:1991 ../sync.c:1995 #, c-format msgid "Could not add category %s to remote.\n" msgstr "" #: ../sync.c:1992 ../sync.c:1998 #, c-format msgid "Too many categories on remote.\n" msgstr "" #: ../sync.c:1993 ../sync.c:2001 #, c-format msgid "All records on desktop in %s will be moved to %s.\n" msgstr "" #: ../sync.c:2096 ../sync.c:2814 #, c-format msgid "Syncing %s\n" msgstr "Synkroniserar %s\n" #: ../sync.c:2104 ../sync.c:2457 ../sync.c:2822 #, c-format msgid "Wrote an %s record." msgstr "Skrev en %s-post." #: ../sync.c:2106 ../sync.c:2459 ../sync.c:2824 #, c-format msgid "Writing an %s record failed." msgstr "Skrivandet av en %s-post misslyckades." #: ../sync.c:2108 ../sync.c:2461 ../sync.c:2826 #, c-format msgid "Deleting an %s record failed." msgstr "Borttagandet av en %s-post misslyckades." #: ../sync.c:2110 ../sync.c:2463 ../sync.c:2828 #, c-format msgid "Deleted an %s record." msgstr "Tog bort en %s-post." #: ../sync.c:2112 ../sync.c:2465 #, fuzzy, c-format msgid "Sync Conflict: duplicated an %s record." msgstr "Tog bort en %s-post." #: ../sync.c:2115 ../sync.c:2468 ../sync.c:2831 #, c-format msgid "Wrote a %s record." msgstr "Skrev en %s-post." #: ../sync.c:2117 ../sync.c:2470 ../sync.c:2833 #, c-format msgid "Writing a %s record failed." msgstr "Skrivandet av en %s post misslyckades." #: ../sync.c:2119 ../sync.c:2472 ../sync.c:2835 #, c-format msgid "Deleting a %s record failed." msgstr "Borttagandet av en %s-post misslyckades." #: ../sync.c:2121 ../sync.c:2474 ../sync.c:2837 #, c-format msgid "Deleted a %s record." msgstr "Tog bort en %s-post." #: ../sync.c:2123 ../sync.c:2476 #, c-format msgid "Sync Conflict: duplicated a %s record." msgstr "" #: ../sync.c:2227 ../sync.c:2557 #, c-format msgid "Sync Conflict: a %s record must be manually merged\n" msgstr "" #: ../sync.c:2358 ../sync.c:2698 msgid "" "dlp_DeleteRecord failed\n" "This could be because the record was already deleted on the Palm\n" msgstr "" "dlp_DeleteRecord misslyckades\n" "Det kan bero p att posten redan var borttagen p Palmen\n" #: ../sync.c:2927 msgid "Finished installing user information.\n" msgstr "" #: ../sync.c:3084 #, c-format msgid " Syncing on device %s\n" msgstr " Synkroniserar enhet %s\n" #: ../sync.c:3085 msgid " Press the HotSync button now\n" msgstr " Tryck p HotSync-knappen nu\n" #: ../sync.c:3127 ../sync.c:3149 ../sync.c:3170 #, fuzzy, c-format msgid "Last Synced Username-->\"%s\"\n" msgstr "Senaste anvndarnamn-->\"%s\"\n" #: ../sync.c:3128 ../sync.c:3150 ../sync.c:3171 #, fuzzy, c-format msgid "Last Synced UserID-->\"%d\"\n" msgstr "Senaste anvndar-ID-->\"%d\"\n" #: ../sync.c:3129 ../sync.c:3151 ../sync.c:3172 #, fuzzy, c-format msgid " This Username-->\"%s\"\n" msgstr "Anvndarnamn-->\"%s\"\n" #: ../sync.c:3130 ../sync.c:3152 ../sync.c:3173 #, fuzzy, c-format msgid " This User ID-->%d\n" msgstr "Anvndar-ID-->%d\n" #: ../sync.c:3194 #, fuzzy, c-format msgid "Username is \"%s\"\n" msgstr "Anvndarnamn-->\"%s\"\n" #: ../sync.c:3195 #, fuzzy, c-format msgid "User ID is %d\n" msgstr "Anvndar-ID-->%d\n" #: ../sync.c:3197 #, c-format msgid "lastSyncPC = %d\n" msgstr "lastSyncPC = %d\n" #: ../sync.c:3198 #, c-format msgid "This PC = %lu\n" msgstr "Denna PC = %lu\n" #: ../sync.c:3222 msgid "Sync canceled\n" msgstr "Synkronisering avbruten\n" #: ../sync.c:3245 #, fuzzy msgid "Finished restoring handheld.\n" msgstr "/Arkiv/terstll handdatorn" #: ../sync.c:3246 msgid "You may need to sync to update J-Pilot.\n" msgstr "Du kanske behver synkronisera fr att uppdatera J-Pilot.\n" #: ../sync.c:3268 msgid "Doing a fast sync.\n" msgstr "En snabb synkronisering utfrs.\n" #: ../sync.c:3281 msgid "Doing a slow sync.\n" msgstr "En lngsam synkronisering utfrs.\n" #: ../sync.c:3356 msgid "Thank you for using J-Pilot." msgstr "Tack fr att du anvnder J-Pilot." #: ../sync.c:3401 ../sync.c:3469 msgid "Finished.\n" msgstr "Frdig.\n" #: ../sync.c:3436 #, c-format msgid "%s: sync process already in progress (process ID = %d)\n" msgstr "" #: ../sync.c:3437 #, fuzzy, c-format msgid "" "%s: press the HotSync button on the cradle\n" " or stop the sync by using the cancel sync button\n" " or stop the sync by typing \"kill %d\" at the command line\n" msgstr " Tryck p HotSync-knappen nu\n" #: ../sync.c:3468 #, c-format msgid "Exiting with status %s\n" msgstr "" #: ../todo.c:266 #, c-format msgid "ToDo description text > %d, truncating to %d\n" msgstr "" #: ../todo.c:272 #, c-format msgid "ToDo note text > %d, truncating to %d\n" msgstr "" #: ../todo_gui.c:161 msgid "Due Date" msgstr "Frfallodatum" #: ../todo_gui.c:532 msgid "File doesn't appear to be todo.dat format\n" msgstr "Filen verkar inte var i todo.dat-format\n" #: ../todo_gui.c:596 msgid "DAT/TDA (Palm Archive Formats)" msgstr "" #: ../todo_gui.c:688 #, c-format msgid "" "ToDo exported from %s %s on %s\n" "\n" msgstr "" #: ../todo_gui.c:726 #, c-format msgid "Can't export todo %d\n" msgstr "" #: ../todo_gui.c:766 #, fuzzy, c-format msgid "Due Date: None\n" msgstr "Frfallodatum" #: ../todo_gui.c:769 #, fuzzy, c-format msgid "Due Date: %s\n" msgstr "Frfallodatum" #: ../todo_gui.c:771 #, fuzzy, c-format msgid "Priority: %d\n" msgstr "Prioritet: " #: ../todo_gui.c:772 #, fuzzy, c-format msgid "Completed: %s\n" msgstr "Avslutad" #: ../todo_gui.c:774 #, c-format msgid "Description: %s\n" msgstr "" #: ../todo_gui.c:777 #, c-format msgid "" "Note: %s\n" "\n" msgstr "" #: ../todo_gui.c:1610 msgid "Priority out of range\n" msgstr "" #: ../todo_gui.c:1932 ../KeyRing/keyring.c:1310 #, c-format msgid "No date" msgstr "Inget datum" #. Completed checkbox #: ../todo_gui.c:2414 msgid "Completed" msgstr "Avslutad" #: ../todo_gui.c:2421 #, fuzzy msgid "Priority:" msgstr "Prioritet: " #: ../todo_gui.c:2423 msgid "Set priority Alt+#" msgstr "" #: ../todo_gui.c:2444 msgid "Date Due:" msgstr "Frfallodatum:" #: ../utils.c:332 msgid "Today" msgstr "Idag" #: ../utils.c:577 #, fuzzy, c-format msgid "Couldn't find empty DB file %s: %s\n" msgstr "Kunde inte hitta en tom databas-fil.\n" #: ../utils.c:580 #, fuzzy msgid " may not be installed.\n" msgstr "jpilot r kanske inte installerat.\n" #. Can't create directory #: ../utils.c:615 ../utils.c:619 #, c-format msgid "Can't create directory %s\n" msgstr "" #: ../utils.c:625 #, fuzzy, c-format msgid "%s is not a directory\n" msgstr "%s r en katalog" #: ../utils.c:630 #, c-format msgid "Unable to get write permission for directory %s\n" msgstr "" #: ../utils.c:1330 ../utils.c:1354 msgid "Save Changed Record?" msgstr "Spara ndrad post?" #: ../utils.c:1331 ../utils.c:1355 msgid "Do you want to save the changes to this record?" msgstr "Vill du spara ndringarna i den hr posten?" #: ../utils.c:1336 ../utils.c:1360 msgid "Save New Record?" msgstr "Spara denna nya posten?" #: ../utils.c:1337 ../utils.c:1361 msgid "Do you want to save this new record?" msgstr "Vill du spara den nya posten?" #: ../utils.c:1652 msgid "infinite loop, breaking\n" msgstr "" #: ../utils.c:1876 #, c-format msgid " -p skip loading plugins\n" msgstr "" #: ../utils.c:1877 #, c-format msgid " -a ignore missed alarms since the last time program was run\n" msgstr "" #: ../utils.c:1878 #, c-format msgid " -A ignore all alarms past and future\n" msgstr "" #: ../utils.c:1879 #, c-format msgid " -s start sync using existing instance of GUI\n" msgstr "" #: ../utils.c:1880 #, c-format msgid " -i iconify program immediately after launch\n" msgstr "" #: ../utils.c:1881 #, c-format msgid "" " -geometry {X geometry} use specified geometry for main window\n" "\n" msgstr "" #: ../utils.c:1882 #, c-format msgid " The PILOTPORT and PILOTRATE environment variables specify\n" msgstr "" #: ../utils.c:1883 #, c-format msgid " which port to sync on, and at what speed.\n" msgstr "" #: ../utils.c:1884 #, c-format msgid " If PILOTPORT is not set then it defaults to /dev/pilot.\n" msgstr "" #: ../utils.c:1921 #, fuzzy msgid "Error reading file" msgstr "Fel vid lsning" #: ../utils.c:1971 msgid "Date compiled" msgstr "" #: ../utils.c:1972 msgid "Compiled with these options:" msgstr "" #: ../utils.c:1974 #, fuzzy msgid "Installed Path" msgstr "Installerade %s " #: ../utils.c:1976 msgid "pilot-link version" msgstr "" #: ../utils.c:1980 msgid "USB support" msgstr "" #: ../utils.c:1981 ../utils.c:1984 ../utils.c:1990 ../utils.c:1996 #: ../utils.c:2002 ../utils.c:2008 ../utils.c:2013 #, fuzzy msgid "yes" msgstr "Ja" #: ../utils.c:1982 #, fuzzy msgid "Private record support" msgstr "Skriv ut alla poster" #: ../utils.c:1986 ../utils.c:1992 ../utils.c:1998 ../utils.c:2004 #: ../utils.c:2010 #, fuzzy msgid "no" msgstr "ingen" #: ../utils.c:1988 msgid "Datebk support" msgstr "" #: ../utils.c:1994 #, fuzzy msgid "Plugin support" msgstr "/Insticksmoduler" #: ../utils.c:2000 #, fuzzy msgid "Manana support" msgstr "/Insticksmoduler" #: ../utils.c:2006 msgid "NLS support (foreign languages)" msgstr "" #: ../utils.c:2012 #, fuzzy msgid "GTK2 support" msgstr "/Insticksmoduler" #. No HOME var #: ../utils.c:2055 msgid "Can't get HOME environment variable\n" msgstr "" #: ../utils.c:2062 msgid "HOME environment variable is too long to process\n" msgstr "" #: ../utils.c:2557 msgid "Edit Categories..." msgstr "" #: ../utils.c:3223 msgid "PC ID is 0.\n" msgstr "PC-ID r 0.\n" #: ../utils.c:3224 #, fuzzy, c-format msgid "Generated a new PC ID. It is %lu\n" msgstr "Jag genererade ett nytt PC-ID. Det r %lu\n" #: ../utils.c:3309 msgid "Invalid UTF-8 encoding in export string\n" msgstr "" #: ../utils.c:3470 #, c-format msgid "Today is %A, %x %X" msgstr "Idag r det %A, %x %X" #: ../utils.c:3472 #, c-format msgid "Today is %%A, %s %s" msgstr "Idag r det %%A, %s %s" #: ../utils.c:3701 #, c-format msgid "" "Incorrect header format for CSV import\n" "Check line 1 of file %s\n" "Aborting import\n" msgstr "" #: ../utils.c:3738 #, fuzzy, c-format msgid "Error writing version header to file: %s%s\n" msgstr "Fel vid filppning" #: ../utils.c:3743 #, fuzzy, c-format msgid "Error writing next id to file: %s%s" msgstr "Fel vid filppning" #: ../weekview_gui.c:297 msgid "Weekly View" msgstr "Veckovy" #: ../weekview_gui.c:337 msgid "Last week Alt+LeftArrow" msgstr "" #: ../weekview_gui.c:366 msgid "Next week Alt+RightArrow" msgstr "" #: ../Expense/expense.c:97 msgid "Australia" msgstr "" #: ../Expense/expense.c:98 msgid "Austria" msgstr "" #: ../Expense/expense.c:99 msgid "Belgium" msgstr "" #: ../Expense/expense.c:100 msgid "Brazil" msgstr "" #: ../Expense/expense.c:101 msgid "Canada" msgstr "" #: ../Expense/expense.c:102 msgid "Denmark" msgstr "" #: ../Expense/expense.c:103 msgid "EU (Euro)" msgstr "" #: ../Expense/expense.c:104 msgid "Finland" msgstr "" #: ../Expense/expense.c:105 #, fuzzy msgid "France" msgstr "Avbryt" #: ../Expense/expense.c:106 msgid "Germany" msgstr "" #: ../Expense/expense.c:107 msgid "Hong Kong" msgstr "" #: ../Expense/expense.c:108 msgid "Iceland" msgstr "" #: ../Expense/expense.c:109 msgid "India" msgstr "" #: ../Expense/expense.c:110 #, fuzzy msgid "Indonesia" msgstr "ingen" #: ../Expense/expense.c:111 msgid "Ireland" msgstr "" #: ../Expense/expense.c:112 #, fuzzy msgid "Italy" msgstr "Installera" #: ../Expense/expense.c:113 msgid "Japan" msgstr "" #: ../Expense/expense.c:114 msgid "Korea" msgstr "" #: ../Expense/expense.c:115 msgid "Luxembourg" msgstr "" #: ../Expense/expense.c:116 msgid "Malaysia" msgstr "" #: ../Expense/expense.c:117 msgid "Mexico" msgstr "" #: ../Expense/expense.c:118 msgid "Netherlands" msgstr "" #: ../Expense/expense.c:119 msgid "New Zealand" msgstr "" #: ../Expense/expense.c:120 msgid "Norway" msgstr "" #: ../Expense/expense.c:121 msgid "P.R.C." msgstr "" #: ../Expense/expense.c:122 msgid "Philippines" msgstr "" #: ../Expense/expense.c:123 msgid "Singapore" msgstr "" #: ../Expense/expense.c:124 #, fuzzy msgid "Spain" msgstr "Tg" #: ../Expense/expense.c:125 #, fuzzy msgid "Sweden" msgstr "vecka" #: ../Expense/expense.c:126 msgid "Switzerland" msgstr "" #: ../Expense/expense.c:127 #, fuzzy msgid "Taiwan" msgstr "Tg" #: ../Expense/expense.c:128 #, fuzzy msgid "Thailand" msgstr "Tg" #: ../Expense/expense.c:129 msgid "United Kingdom" msgstr "" #: ../Expense/expense.c:130 msgid "United States" msgstr "" #: ../Expense/expense.c:518 ../Expense/expense.c:529 msgid "Expense" msgstr "Expense" #: ../Expense/expense.c:550 ../Expense/expense.c:1388 msgid "Airfare" msgstr "Flygbiljetter" #: ../Expense/expense.c:552 ../Expense/expense.c:1389 msgid "Breakfast" msgstr "Frukost" #: ../Expense/expense.c:554 ../Expense/expense.c:1390 msgid "Bus" msgstr "Buss" #: ../Expense/expense.c:556 ../Expense/expense.c:1391 msgid "BusinessMeals" msgstr "Affrsmltider" #: ../Expense/expense.c:558 ../Expense/expense.c:1392 msgid "CarRental" msgstr "Hyrbil" #: ../Expense/expense.c:560 ../Expense/expense.c:1393 msgid "Dinner" msgstr "Middag" #: ../Expense/expense.c:562 ../Expense/expense.c:1394 msgid "Entertainment" msgstr "Underhllning" #: ../Expense/expense.c:564 ../Expense/expense.c:1395 msgid "Fax" msgstr "Fax" #: ../Expense/expense.c:566 ../Expense/expense.c:1396 msgid "Gas" msgstr "Bensin" #: ../Expense/expense.c:568 ../Expense/expense.c:1397 msgid "Gifts" msgstr "Gvor" #: ../Expense/expense.c:570 ../Expense/expense.c:1398 msgid "Hotel" msgstr "Hotell" #: ../Expense/expense.c:572 ../Expense/expense.c:1399 msgid "Incidentals" msgstr "Ofrutsedda" #: ../Expense/expense.c:574 ../Expense/expense.c:1400 msgid "Laundry" msgstr "Tvtt" #: ../Expense/expense.c:576 ../Expense/expense.c:1401 msgid "Limo" msgstr "Limousine" #: ../Expense/expense.c:578 ../Expense/expense.c:1402 msgid "Lodging" msgstr "Logi" #: ../Expense/expense.c:580 ../Expense/expense.c:1403 msgid "Lunch" msgstr "Lunch" #: ../Expense/expense.c:582 ../Expense/expense.c:1404 msgid "Mileage" msgstr "Milkostnad" #: ../Expense/expense.c:586 ../Expense/expense.c:1406 msgid "Parking" msgstr "Parkering" #: ../Expense/expense.c:588 ../Expense/expense.c:1407 msgid "Postage" msgstr "Porto" #: ../Expense/expense.c:590 ../Expense/expense.c:1408 msgid "Snack" msgstr "Tilltugg" #: ../Expense/expense.c:592 ../Expense/expense.c:1409 msgid "Subway" msgstr "Tunnelbana" #: ../Expense/expense.c:594 ../Expense/expense.c:1410 msgid "Supplies" msgstr "Frndenheter" #: ../Expense/expense.c:596 ../Expense/expense.c:1411 msgid "Taxi" msgstr "Taxi" #: ../Expense/expense.c:598 ../Expense/expense.c:1412 msgid "Telephone" msgstr "Telefon" #: ../Expense/expense.c:600 ../Expense/expense.c:1413 msgid "Tips" msgstr "Tips" #: ../Expense/expense.c:602 ../Expense/expense.c:1414 msgid "Tolls" msgstr "Avgifter" #: ../Expense/expense.c:604 ../Expense/expense.c:1415 msgid "Train" msgstr "Tg" #: ../Expense/expense.c:1239 msgid "Expense: Unknown expense type\n" msgstr "" #: ../Expense/expense.c:1245 msgid "Expense: Unknown payment type\n" msgstr "" #: ../Expense/expense.c:1377 msgid "American Express" msgstr "American Express" #: ../Expense/expense.c:1378 msgid "Cash" msgstr "Kontant" #: ../Expense/expense.c:1379 msgid "Check" msgstr "Check" #: ../Expense/expense.c:1380 msgid "Credit Card" msgstr "Kreditkort" #: ../Expense/expense.c:1381 msgid "Master Card" msgstr "Master Card" #: ../Expense/expense.c:1382 msgid "Prepaid" msgstr "Frbetald" #: ../Expense/expense.c:1383 msgid "VISA" msgstr "VISA" #: ../Expense/expense.c:1619 #, fuzzy msgid "Type" msgstr "Typ: " #: ../Expense/expense.c:1620 #, fuzzy msgid "Amount" msgstr "Summa: " #. Category Menu #: ../Expense/expense.c:1704 #, fuzzy msgid "Category:" msgstr "Kategori: " #. Type Menu #: ../Expense/expense.c:1712 #, fuzzy msgid "Type:" msgstr "Typ: " #. Payment Menu #: ../Expense/expense.c:1720 #, fuzzy msgid "Payment:" msgstr "Betalning: " #. Currency Menu #: ../Expense/expense.c:1728 #, fuzzy msgid "Currency:" msgstr "Aktuell" #: ../Expense/expense.c:1748 msgid "Month:" msgstr "Mnad:" #: ../Expense/expense.c:1762 msgid "Day:" msgstr "Dag:" #: ../Expense/expense.c:1776 msgid "Year:" msgstr "r:" #. Amount Entry #: ../Expense/expense.c:1789 #, fuzzy msgid "Amount:" msgstr "Summa: " #. Vendor Entry #: ../Expense/expense.c:1799 #, fuzzy msgid "Vendor:" msgstr "Frsljare: " #. City #: ../Expense/expense.c:1809 #, fuzzy msgid "City:" msgstr "Stad: " #. Attendees #: ../Expense/expense.c:1819 msgid "Attendees" msgstr "Nrvarande" #. ------------------------------------------- #: ../Expense/expense.c:2102 #, fuzzy, c-format msgid "" "%s\n" "\n" "Expense plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org" msgstr "" "%s r skrivet av\n" "Judd Montgomery 1999-2001.\n" "judd@jpilot.org\n" "http://jpilot.org\n" #: ../KeyRing/keyring.c:291 msgid "KeyRing: pack_KeyRing(): buf_size too small\n" msgstr "" #: ../KeyRing/keyring.c:1699 #, fuzzy msgid "Incorrect, Reenter KeyRing Password" msgstr "Skriv KeyRing-lsenord" #: ../KeyRing/keyring.c:1701 #, fuzzy msgid "Enter a NEW KeyRing Password" msgstr "Skriv KeyRing-lsenord" #: ../KeyRing/keyring.c:1703 msgid "Enter KeyRing Password" msgstr "Skriv KeyRing-lsenord" #: ../KeyRing/keyring.c:1769 #, c-format msgid "KeyRing: file %s not found.\n" msgstr "" #: ../KeyRing/keyring.c:1770 msgid "KeyRing: Try Syncing.\n" msgstr "" #: ../KeyRing/keyring.c:1861 ../KeyRing/keyring.c:1872 msgid "KeyRing" msgstr "" #. ------------------------------------------- #: ../KeyRing/keyring.c:1900 #, fuzzy, c-format msgid "" "%s\n" "\n" "KeyRing plugin for J-Pilot was written by\n" "Judd Montgomery (c) 2001.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "KeyRing is a free PalmOS program for storing\n" "passwords and other information in encrypted form\n" "http://gnukeyring.sourceforge.net" msgstr "" "%s r skrivet av\n" "Judd Montgomery 1999-2001.\n" "judd@jpilot.org\n" "http://jpilot.org\n" #: ../KeyRing/keyring.c:2137 #, c-format msgid "" "Keys exported from %s %s on %s\n" "\n" msgstr "" #: ../KeyRing/keyring.c:2162 #, fuzzy, c-format msgid "Can't export key %d\n" msgstr "Kategori: " #: ../KeyRing/keyring.c:2229 msgid "B-FOLDERS CSV" msgstr "" #. Change Password button #: ../KeyRing/keyring.c:2384 #, fuzzy msgid "" "Change\n" "KeyRing\n" "Password" msgstr "Skriv KeyRing-lsenord" #. Clist #: ../KeyRing/keyring.c:2497 #, fuzzy msgid "Changed" msgstr "Avbryt" #: ../KeyRing/keyring.c:2499 msgid "Account" msgstr "Konto" #. Name entry #: ../KeyRing/keyring.c:2593 msgid "name: " msgstr "namn: " #. Account entry #: ../KeyRing/keyring.c:2601 msgid "account: " msgstr "konto: " #. Password entry #: ../KeyRing/keyring.c:2609 msgid "password: " msgstr "lsenord: " #. Last Changed entry #: ../KeyRing/keyring.c:2616 msgid "last changed: " msgstr "" #. Generate Password button (creates random password) #: ../KeyRing/keyring.c:2626 #, fuzzy msgid "Generate Password" msgstr "Skriv PalmOSlsenord" #: ../SyncTime/synctime.c:61 #, fuzzy msgid "SyncTime" msgstr "Synka minnesanteckningar" #. ------------------------------------------- #: ../SyncTime/synctime.c:72 #, fuzzy, c-format msgid "" "%s\n" "\n" "SyncTime plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "SyncTime WILL NOT work with PalmOS 3.3!" msgstr "" "%s r skrivet av\n" "Judd Montgomery 1999-2001.\n" "judd@jpilot.org\n" "http://jpilot.org\n" #: ../SyncTime/synctime.c:106 msgid "synctime: Palm OS Version 3.25 and 3.30 do not support SyncTime\n" msgstr "" #: ../SyncTime/synctime.c:107 msgid "synctime: NOT setting the time on the pilot\n" msgstr "" #: ../SyncTime/synctime.c:112 msgid "synctime: Setting the time on the pilot... " msgstr "" #: ../SyncTime/synctime.c:117 #, fuzzy msgid "Done\n" msgstr "Klar" #, fuzzy #~ msgid "Serial Port" #~ msgstr "Serieport " #, fuzzy #~ msgid "W" #~ msgstr "On" #, fuzzy #~ msgid "M" #~ msgstr "M" #~ msgid "This Event has no particular time" #~ msgstr "Denna hndelse har ingen speciell tid" #, fuzzy #~ msgid "Start Time" #~ msgstr "Brjar p" #, fuzzy #~ msgid "End Time" #~ msgstr "Tid" #, fuzzy #~ msgid "email command empty\n" #~ msgstr "Alarmkommando" #, fuzzy #~ msgid "Unable to open %s%s file\n" #~ msgstr "Kunde inte ppna %s\n" #, fuzzy #~ msgid "Unable to open %s.alarms file\n" #~ msgstr "Kunde inte ppna %s\n" #, fuzzy #~ msgid "category name" #~ msgstr "Kategori: " #, fuzzy #~ msgid "End Date: Never\n" #~ msgstr "Slutdatum" #, fuzzy #~ msgid "Repeat Days: " #~ msgstr "terkommer fljande dagar:" #~ msgid "Close" #~ msgstr "Stng" #~ msgid "none" #~ msgstr "ingen" #~ msgid "Done" #~ msgstr "Klar" #~ msgid "Add" #~ msgstr "Lgg till" #~ msgid "Remove" #~ msgstr "Ta bort" #, fuzzy #~ msgid "User name" #~ msgstr "Anvndarnamn" #~ msgid "/Help/PayBack program" #~ msgstr "/Hjlp/PayBack program" #, fuzzy #~ msgid "Show private records" #~ msgstr "/Visa/Dlj-Visa privata poster" #, fuzzy #~ msgid "Hide private records" #~ msgstr "/Visa/Dlj-Visa privata poster" #, fuzzy #~ msgid "Mask private records" #~ msgstr "Skriv ut alla poster" #, fuzzy #~ msgid "Font" #~ msgstr "Mnad" #, fuzzy #~ msgid "Couldn't open PC records file\n" #~ msgstr "Kunde inte ppna filen %s\n" #~ msgid "The first day of the week is " #~ msgstr "Frsta dagen i veckan r " #~ msgid "One record" #~ msgstr "En post" #, fuzzy #~ msgid "Finished\n" #~ msgstr "Frdig.\n" #, fuzzy #~ msgid "Last Username = [%s]\n" #~ msgstr "Senaste anvndarnamn-->\"%s\"\n" #, fuzzy #~ msgid "Last UserID = %d\n" #~ msgstr "Senaste anvndar-ID-->\"%d\"\n" #, fuzzy #~ msgid "Username = [%s]\n" #~ msgstr "Anvndarnamn-->\"%s\"\n" #, fuzzy #~ msgid "userID = %d\n" #~ msgstr "Anvndar-ID-->%d\n" #~ msgid "number of records = %d\n" #~ msgstr "antal poster = %d\n" #~ msgid "palm: number of records = %d\n" #~ msgstr "palm: antal poster = %d\n" #~ msgid "disk: number of records = %d\n" #~ msgstr "disk: antal poster = %d\n" #, fuzzy #~ msgid "" #~ "%s doesn't appear to be a directory.\n" #~ "I need it to be.\n" #~ msgstr "Filen verkar inte vara i address.dat-format\n" #, fuzzy #~ msgid "Field" #~ msgstr "Misslyckades.\n" #~ msgid "Quick View" #~ msgstr "Snabbvisning" #~ msgid "Serial Port (/dev/ttyS0, /dev/pilot)" #~ msgstr "Seriell port (/dev/ttyS0, /dev/pilot)" #~ msgid "Sync memo32 (pedit32)" #~ msgstr "Synka memo32 (pedit32)" #~ msgid "AmEx" #~ msgstr "AmEx" #~ msgid "CreditCard" #~ msgstr "Kreditkort" #~ msgid "MasterCard" #~ msgstr "MasterCard" #~ msgid "Quit" #~ msgstr "Avsluta" #~ msgid "Help" #~ msgstr "Hjlp" #, fuzzy #~ msgid "Directory" #~ msgstr "%s r en katalog" #~ msgid "Overwrite File" #~ msgstr "Skriv ver filen" #, fuzzy #~ msgid "Filename" #~ msgstr "namn: " #~ msgid "Sync" #~ msgstr "Synka" #, fuzzy #~ msgid "Add the new record Ctrl+Enter" #~ msgstr "/Visa/Dlj-Visa privata poster" #~ msgid "Backup" #~ msgstr "Skerhetskopiera" #~ msgid "Quit!" #~ msgstr "Avsluta!" #, fuzzy #~ msgid "Show Preferences" #~ msgstr "Instllningar" #~ msgid "About Expense" #~ msgstr "Om Expense" #, fuzzy #~ msgid "About KeyRing" #~ msgstr "Om Expense" #, fuzzy #~ msgid "" #~ " [-v] || [-h] || [-d] || [-a] || [-A] || [-i]\n" #~ " -v displays version and compile options and exits.\n" #~ " -h displays help and exits.\n" #~ " -d displays debug info to stdout.\n" #~ " -p do not load plugins.\n" #~ " -a ignore missed alarms since the last time this program was run.\n" #~ " -A ignore all alarms, past and future.\n" #~ " -i makes jpilot iconify itself upon launch\n" #~ " The PILOTPORT, and PILOTRATE env variables are used to specify\n" #~ " which port to sync on, and at what speed.\n" #~ " If PILOTPORT is not set then it defaults to /dev/pilot.\n" #~ msgstr "" #~ "\n" #~ "jpilot [ [-v] || [-h] || [-d] || [-a] || [-A]\n" #~ " -v visar versionsinformationen och avslutar.\n" #~ " -h visar hjlptexten och avslutar.\n" #~ " -d skriver felskningsinformationen p standard ut.\n" #~ " -p laddar inte insticksmoduler.\n" #~ " -a ignorerar missade alarm sedan senaste gngen programmet krdes.\n" #~ " -A ignorera alla alarm, passerade och kommande.\n" #~ " PILOTPORT och PILOTRATE r miljvariabler som bestmmer vilken\n" #~ " port som synkronisering skall ske ver och med vilken hastighet.\n" #~ " Om PILOTPORT inte r satt s r standardvrdet /dev/pilot.\n" #~ msgid "slow_sync_application(): Out of memory\n" #~ msgstr "slow_sync_application(): Slut p minne\n" #~ msgid "dlp_WriteRecord failed\n" #~ msgstr "dlp_WriteRecord misslyckades\n" #~ msgid "" #~ "\n" #~ "Unable to open '%s'!\n" #~ msgstr "" #~ "\n" #~ "Kan inte ppna \"%s\"!\n" #, fuzzy #~ msgid "Cannot open %s_to_install file\n" #~ msgstr "Kan inte ppna loggfil\n" #, fuzzy #~ msgid "Cannot open %s_to_install.tmp file\n" #~ msgstr "Kan inte ppna jpilot_to_install.tmp-filen\n" #~ msgid "fast_sync_local_recs(): Out of memory\n" #~ msgstr "fast_sync_local_recs(): Slut p minne\n" #, fuzzy #~ msgid "Error reading at %s : %s %d\n" #~ msgstr "Fel vid lsning av %s\n" #, fuzzy #~ msgid "Cannot open " #~ msgstr "Kan inte ppna loggfil\n" #~ msgid "Time:" #~ msgstr "Tid:" #~ msgid "RTh" #~ msgstr "To" #~ msgid "/_Help/About %s" #~ msgstr "/Hjlp/Om %s" #~ msgid "Out of Memory\n" #~ msgstr "Slut p minne\n" #~ msgid "Out of memory 1\n" #~ msgstr "Slut p minne 1\n" #~ msgid "Out of memory 2\n" #~ msgstr "Slut p minne 2\n" #~ msgid "Out of memory 3\n" #~ msgstr "Slut p minne 3\n" #~ msgid "Out of memory 4\n" #~ msgstr "Slut p minne 4\n" #~ msgid "Add or Modify a Record" #~ msgstr "Lgg till eller ndra en post" #~ msgid "Out of memory\n" #~ msgstr "Slut p minne\n" #~ msgid "Go backward 1 year" #~ msgstr "G bakt 1 r" #~ msgid "Go backward 1 month" #~ msgstr "G bakt 1 mnad" #~ msgid "Go forward 1 month" #~ msgstr "G framt 1 mnad" #~ msgid "Go forward 1 year" #~ msgstr "G framt 1 r" #~ msgid "Daily Schedule" #~ msgstr "Dagligt schema" #~ msgid "Details" #~ msgstr "Detaljer" #~ msgid "out of memory\n" #~ msgstr "slut p minne\n" #~ msgid "Hour:" #~ msgstr "Timmar:" #~ msgid "Min:" #~ msgstr "Min:" #~ msgid "Hide this window" #~ msgstr "Dlj detta fnster" jpilot-1.8.1.2/po/tr.po0000644000175000017500000026141211702307204011510 00000000000000# translation of jpilot-1.6.0-pre2.po to Turkish # jpilot-1.6.0-pre2.po'nun Trke'ye evirisi # Copyright (C) 2008 Free Software Foundation, Inc. # This file is distributed under the same license as the jpilot package. # Eyp Hakan Duran , 2002, 2004, 2005, 2008. # # # msgid "" msgstr "" "Project-Id-Version: jpilot-1.6.0-pre2\n" "Report-Msgid-Bugs-To: jpilot-devel@jpilot.org\n" "POT-Creation-Date: 2012-01-08 13:39+0100\n" "PO-Revision-Date: 2008-05-04 19:00-0400\n" "Last-Translator: Eyp Hakan Duran \n" "Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-9\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.9.1\n" #: ../address.c:276 ../address.c:448 ../alarms.c:332 ../calendar.c:309 #: ../calendar.c:547 ../contact.c:324 ../contact.c:738 ../dat.c:189 #: ../dat.c:655 ../dat.c:859 ../dat.c:993 ../dat.c:1132 ../datebook.c:130 #: ../datebook.c:165 ../datebook.c:172 ../datebook.c:231 ../jpilot.c:1254 #: ../jpilot-merge.c:95 ../libplugin.c:208 ../libplugin.c:455 #: ../libplugin.c:534 ../libplugin.c:563 ../libplugin.c:811 ../memo.c:214 #: ../memo.c:287 ../otherconv.c:280 ../plugins.c:112 ../prefs.c:350 #: ../prefs.c:375 ../prefs.c:906 ../sync.c:2170 ../sync.c:2187 ../sync.c:2296 #: ../sync.c:2310 ../sync.c:2507 ../sync.c:2646 ../todo.c:236 ../todo.c:490 #: ../utils.c:748 #, c-format msgid "Out of memory" msgstr "Bellek yetersiz" #: ../address.c:332 ../calendar.c:230 ../contact.c:580 ../datebook.c:494 #: ../memo.c:87 ../todo.c:90 #, fuzzy, c-format msgid "%s:%d Error reading application info %s\n" msgstr "%s:%d Kategori bilgisi okumada hata %s\n" #: ../address.c:344 ../address_gui.c:2285 ../address_gui.c:2324 #: ../calendar.c:246 ../contact.c:596 ../datebook.c:514 ../datebook_gui.c:3737 #: ../libplugin.c:405 ../libplugin.c:431 ../memo.c:99 ../memo_gui.c:863 #: ../todo_gui.c:1070 ../Expense/expense.c:1105 #, c-format msgid "Error reading file: %s\n" msgstr "Dosya okumada hata: %s\n" #: ../address.c:492 ../calendar.c:598 ../calendar.c:607 ../contact.c:780 #: ../libplugin.c:846 ../memo.c:353 ../todo.c:302 ../utils.c:1124 #: ../utils.c:1131 ../utils.c:1138 ../utils.c:1145 ../utils.c:1152 #: ../utils.c:1159 msgid "error" msgstr "hata" #: ../address_gui.c:325 ../datebook_gui.c:2844 ../memo_gui.c:176 #: ../todo_gui.c:292 ../KeyRing/keyring.c:834 msgid "" "This record is deleted.\n" "Undelete it or copy it to make changes.\n" msgstr "" "Bu kayt silindi.\n" "Deiiklik yapmak iin silmeyi geri alnz ya da kopyalaynz.\n" #: ../address_gui.c:452 ../address_gui.c:458 ../address_gui.c:469 #: ../address_gui.c:481 ../address_gui.c:493 ../address_gui.c:506 #, c-format msgid "%s%s: %s" msgstr "%s%s: %s" #: ../address_gui.c:542 ../category.c:118 ../category.c:176 ../category.c:330 #: ../category.c:336 ../datebook_gui.c:430 ../jpilot-merge.c:88 #: ../jpilot-merge.c:146 ../jpilot-merge.c:151 ../memo_gui.c:280 #: ../sync.c:2129 ../sync.c:2135 ../sync.c:2481 ../sync.c:2842 #: ../todo_gui.c:416 ../utils.c:2674 ../utils.c:2711 ../utils.c:2717 #: ../utils.c:2776 ../utils.c:2782 ../utils.c:2836 ../utils.c:2890 #: ../utils.c:2896 ../utils.c:2954 ../utils.c:2961 #, c-format msgid "Unable to open file: %s\n" msgstr "Dosya alamad: %s\n" #: ../address_gui.c:561 #, fuzzy, c-format msgid "Unable to read file: %s\n" msgstr "Dosya alamad: %s\n" #: ../address_gui.c:715 msgid "File doesn't appear to be address.dat format\n" msgstr "Dosya adres.dat bieminde gzkmyor\n" #: ../address_gui.c:725 ../datebook_gui.c:647 ../memo_gui.c:324 #: ../memo_gui.c:417 ../todo_gui.c:542 ../Expense/expense.c:1384 msgid "Unfiled" msgstr "Dosyalanmam" #: ../address_gui.c:781 ../datebook_gui.c:698 ../memo_gui.c:470 #: ../todo_gui.c:595 msgid "CSV (Comma Separated Values)" msgstr "" #: ../address_gui.c:782 msgid "DAT/ABA (Palm Archive Formats)" msgstr "" #. current category name #. previous category name #. entry text, in Pilot character set #: ../address_gui.c:868 ../category.c:408 ../datebook_gui.c:729 #: ../jpilot.c:234 ../jpilot.c:278 ../jpilot.c:352 ../jpilot.c:396 #: ../jpilot.c:953 ../memo_gui.c:506 ../todo_gui.c:635 ../utils.c:1305 #: ../KeyRing/keyring.c:2090 msgid "OK" msgstr "Tamam" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "No" msgstr "Hayr" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "Yes" msgstr "Evet" #: ../address_gui.c:888 ../datebook_gui.c:753 ../memo_gui.c:520 #: ../todo_gui.c:655 ../KeyRing/keyring.c:2104 #, c-format msgid "%s is a directory" msgstr "%s bir dizin..." #: ../address_gui.c:890 ../address_gui.c:907 ../datebook_gui.c:755 #: ../datebook_gui.c:772 ../memo_gui.c:522 ../memo_gui.c:539 ../todo_gui.c:657 #: ../todo_gui.c:674 ../KeyRing/keyring.c:2106 ../KeyRing/keyring.c:2123 msgid "Error Opening File" msgstr "Dosya Amada Hata" #: ../address_gui.c:894 ../datebook_gui.c:759 ../memo_gui.c:526 #: ../todo_gui.c:661 ../KeyRing/keyring.c:2110 #, c-format msgid "Do you want to overwrite file %s?" msgstr "%s dosyasnn stne kaydetmek istiyor musunuz?" #: ../address_gui.c:896 ../datebook_gui.c:761 ../memo_gui.c:528 #: ../todo_gui.c:663 ../KeyRing/keyring.c:2112 msgid "Overwrite File?" msgstr "Dosya stne Yazlsn m?" #: ../address_gui.c:905 ../datebook_gui.c:770 ../memo_gui.c:537 #: ../todo_gui.c:672 ../KeyRing/keyring.c:2121 #, c-format msgid "Error opening file: %s" msgstr "Dosya Amada Hata: %s" #: ../address_gui.c:922 #, c-format msgid "" "Address exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:925 #, c-format msgid "" "Contact exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:989 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ldif file may not be standards-compliant\n" msgstr "" #: ../address_gui.c:1002 #, c-format msgid "Can't export address %d\n" msgstr "Adres ihra edilemiyor %d\n" #: ../address_gui.c:1008 ../memo_gui.c:630 ../todo_gui.c:760 #, fuzzy, c-format msgid "Category: %s\n" msgstr "Snf " #: ../address_gui.c:1010 ../memo_gui.c:632 ../todo_gui.c:763 #, fuzzy, c-format msgid "Private: %s\n" msgstr "zel" #: ../address_gui.c:1018 ../address_gui.c:1032 ../address_gui.c:1036 #: ../address_gui.c:1045 ../address_gui.c:1048 #, fuzzy, c-format msgid "%s: " msgstr "%s%s: %s" #: ../address_gui.c:1022 #, c-format msgid "%s\n" msgstr "" #. E-mail should be the Palm dropdown menu item for email #. Set dial/email button text and callback data #: ../address_gui.c:1196 ../address_gui.c:2846 ../address_gui.c:4185 msgid "E-mail" msgstr "E-posta" #: ../address_gui.c:1482 ../datebook_gui.c:1147 ../memo_gui.c:640 #: ../todo_gui.c:844 ../KeyRing/keyring.c:2214 msgid "Unknown export type\n" msgstr "Bilinmeyen ihra tr\n" #: ../address_gui.c:1508 ../datebook_gui.c:1226 ../memo_gui.c:469 #: ../memo_gui.c:666 ../todo_gui.c:870 ../KeyRing/keyring.c:2229 msgid "Text" msgstr "" #: ../address_gui.c:1509 ../datebook_gui.c:1227 ../memo_gui.c:667 #: ../todo_gui.c:871 ../KeyRing/keyring.c:2229 msgid "CSV" msgstr "" #: ../address_gui.c:1510 #, fuzzy msgid "vCard" msgstr "Temizle" #: ../address_gui.c:1511 msgid "vCard (Optimized for Gmail/Android Import)" msgstr "" #: ../address_gui.c:1512 msgid "ldif" msgstr "" #. Initialize variable if default case taken #: ../address_gui.c:1777 ../address_gui.c:3902 #, fuzzy msgid "Last Name/Company" msgstr "sim/irket" #: ../address_gui.c:1780 ../address_gui.c:3905 #, fuzzy msgid "First Name/Company" msgstr "sim/irket" #: ../address_gui.c:1783 ../address_gui.c:3908 #, fuzzy msgid "Company/Last Name" msgstr "irket/sim" #: ../address_gui.c:1920 ../datebook_gui.c:2907 ../memo_gui.c:1036 #: ../todo_gui.c:1329 ../KeyRing/keyring.c:1181 msgid "You can't modify a record that is deleted\n" msgstr "Silinmi bir kayd deitiremezsiniz\n" #. Illegal category, Assume that category 0 is Unfiled and valid #: ../address_gui.c:2119 ../address_gui.c:2370 ../address_gui.c:2803 #: ../address_gui.c:2809 ../address_gui.c:3601 ../datebook_gui.c:1994 #: ../datebook_gui.c:3434 ../datebook_gui.c:3783 ../datebook_gui.c:4074 #: ../memo_gui.c:900 ../memo_gui.c:946 ../memo_gui.c:1161 ../memo_gui.c:1548 #: ../todo_gui.c:1106 ../todo_gui.c:1200 ../todo_gui.c:1589 ../todo_gui.c:2141 #: ../Expense/expense.c:689 ../Expense/expense.c:1143 #: ../Expense/expense.c:1227 ../Expense/expense.c:1887 #: ../KeyRing/keyring.c:1070 ../KeyRing/keyring.c:1512 #: ../KeyRing/keyring.c:1574 ../KeyRing/keyring.c:2688 msgid "Category is not legal\n" msgstr "Kategori geerli deil\n" #: ../address_gui.c:2179 ../alarms.c:598 ../dialer.c:164 #, c-format msgid "executing command = [%s]\n" msgstr "Komut uygulanyor = [%s]\n" #: ../address_gui.c:2181 #, fuzzy, c-format msgid "Failed to execute [%s]\n" msgstr "Baarsz, dosya oluturulamad, %s\n" #: ../address_gui.c:2425 msgid "Birthday" msgstr "Doum Gn" #: ../address_gui.c:2521 msgid "External program not found, or other error" msgstr "Harici program bulunamad ya da baka bir hata" #: ../address_gui.c:2523 #, fuzzy msgid "" "J-Pilot can not find the external program \"convert\"\n" "or an error occurred while executing convert.\n" "You may need to install package ImageMagick" msgstr "" "J-Pilot harici bir program \"convert\" bulamad\n" "ya da convert yrtlrken bir hata olutu.\n" "ImageMagick paketini yklemeniz gerekebilir" #: ../address_gui.c:2524 #, c-format msgid "Command executed was \"%s\"\n" msgstr "Yrtlen komut \"%s\" idi\n" #: ../address_gui.c:2525 #, c-format msgid "return code was %d\n" msgstr "dn kodu %d idi\n" #: ../address_gui.c:2603 #, fuzzy msgid "chdir() failed\n" msgstr "kilitleme baarsz\n" #: ../address_gui.c:2606 msgid "Add Photo" msgstr "Foto Ekle" #. Category menu #: ../address_gui.c:2828 ../KeyRing/keyring.c:2585 msgid "Category: " msgstr "Snf " #: ../address_gui.c:2848 ../address_gui.c:4186 msgid "Mail" msgstr "Posta" #. Dial Phone Button #: ../address_gui.c:2851 ../address_gui.c:4189 ../dialer.c:307 ../dialer.c:331 msgid "Dial" msgstr "evir" #: ../address_gui.c:3041 ../datebook_gui.c:2757 ../memo_gui.c:1228 #: ../todo_gui.c:1697 msgid "Could not get temporary file name\n" msgstr "" #: ../address_gui.c:3049 ../datebook_gui.c:2765 ../memo_gui.c:1236 #: ../todo_gui.c:1705 msgid "Could not open temporary file for external editor\n" msgstr "" #: ../address_gui.c:3089 ../datebook_gui.c:2806 ../memo_gui.c:1277 #: ../todo_gui.c:1746 msgid "Could not open temporary file from external editor\n" msgstr "" #: ../address_gui.c:3261 ../address_gui.c:3292 msgid "-Unnamed-" msgstr "-Adsz-" #: ../address_gui.c:3374 ../memo_gui.c:1454 ../todo_gui.c:2019 msgid "0 records" msgstr "0 kayt" #: ../address_gui.c:3377 ../datebook_gui.c:2637 ../memo_gui.c:1457 #: ../todo_gui.c:2022 #, c-format msgid "%d of %d records" msgstr "%2$d kaydn %1$d tanesi" #: ../address_gui.c:3772 ../address_gui.c:3780 ../KeyRing/keyring.c:2498 msgid "Name" msgstr "sim" #: ../address_gui.c:3773 ../address_gui.c:3774 ../address_gui.c:3775 #: ../address_gui.c:3781 msgid "Address" msgstr "Adres" #: ../address_gui.c:3776 ../address_gui.c:3782 ../Expense/expense.c:584 #: ../Expense/expense.c:1405 msgid "Other" msgstr "Dier" #. Note textbox #: ../address_gui.c:3777 ../address_gui.c:3783 ../todo_gui.c:2484 #: ../Expense/expense.c:1836 ../KeyRing/keyring.c:2632 msgid "Note" msgstr "Not" #: ../address_gui.c:3793 msgid "Reverting to Address database\n" msgstr "Adres veritabanna geri dntrlyor\n" #: ../address_gui.c:3914 msgid "Phone" msgstr "Telefon" #: ../address_gui.c:3946 msgid "Quick Find: " msgstr "abuk Bul" #. Cancel button #. Add record modification buttons #. Cancel button #: ../address_gui.c:3964 ../category.c:409 ../datebook_gui.c:1782 #: ../datebook_gui.c:5124 ../memo_gui.c:1692 ../todo_gui.c:2345 #: ../utils.c:1346 ../KeyRing/keyring.c:2528 msgid "Cancel" msgstr "ptal" #: ../address_gui.c:3964 ../datebook_gui.c:5124 ../memo_gui.c:1692 #: ../todo_gui.c:2345 ../KeyRing/keyring.c:2528 msgid "Cancel the modifications" msgstr "Deiiklikleri iptal et" #. Delete Button #. Delete button #. Delete Button #. Delete button #. Delete, Copy, New, etc. buttons #. Delete button #: ../address_gui.c:3969 ../category.c:409 ../category.c:852 #: ../datebook_gui.c:5129 ../memo_gui.c:1697 ../todo_gui.c:2350 #: ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete" msgstr "Sil" #: ../address_gui.c:3969 ../datebook_gui.c:5129 ../memo_gui.c:1697 #: ../todo_gui.c:2350 ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete the selected record" msgstr "Seili kayd sil" #. Undelete Button #. Undelete button #. Undelete Button #. Undelete button #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 msgid "Undelete" msgstr "Silmeyi geri al" #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 msgid "Undelete the selected record" msgstr "Silinmi seili kayd kurtar" #. Copy button #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy" msgstr "Kopyala" #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy the selected record" msgstr "Seili kayd kopyala" #. New button #. New Record button #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "New Record" msgstr "Yeni Kayt" #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "Add a new record" msgstr "Yeni bir kayt ekle" #. "Add Record" button #. Add Record button #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add Record" msgstr "Kayt Ekle" #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add the new record" msgstr "Yeni kayd ekle" #. "Apply Changes" button #. Apply Changes button #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Apply Changes" msgstr "Deiiklikleri Uygula" #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Commit the modifications" msgstr "Deiiklikleri onayla" #. Private check box #. Private checkbox #: ../address_gui.c:4033 ../datebook_gui.c:5191 ../datebook_gui.c:5233 #: ../memo_gui.c:1747 ../todo_gui.c:2410 msgid "Private" msgstr "zel" #: ../address_gui.c:4118 msgid "Change Photo" msgstr "Foto Deitir" #: ../address_gui.c:4123 msgid "Remove Photo" msgstr "Foto kar" #: ../address_gui.c:4195 msgid "Show In List" msgstr "Listede Gster" #: ../address_gui.c:4296 msgid "Reminder" msgstr "Anmsatc" #: ../address_gui.c:4312 ../datebook_gui.c:238 ../datebook_gui.c:5221 #: ../datebook_gui.c:5378 msgid "Days" msgstr "Gn" #. The Quickview (ALL) page #. All button #: ../address_gui.c:4356 ../datebook_gui.c:1478 ../datebook_gui.c:1782 #: ../utils.c:2528 msgid "All" msgstr "Tm" #: ../alarms.c:232 ../datebook_gui.c:236 ../datebook_gui.c:5215 #: ../datebook_gui.c:5372 msgid "Minutes" msgstr "Dakika" #: ../alarms.c:234 ../datebook_gui.c:237 ../datebook_gui.c:5219 #: ../datebook_gui.c:5376 msgid "Hours" msgstr "Saat" #: ../alarms.c:255 msgid "Remind me" msgstr "Anmsat" #: ../alarms.c:425 ../alarms.c:991 ../sync.c:1639 ../sync.c:1645 #: ../utils.c:3717 #, c-format msgid "Unable to open file: %s%s\n" msgstr "Dosya alamad: %s%s\n" #: ../alarms.c:512 msgid "Appointment Reminder" msgstr "Randevu Anmsatc" #: ../alarms.c:515 msgid "Past Appointment" msgstr "Gemi Randevu" #: ../alarms.c:518 msgid "Postponed Appointment" msgstr "Ertelenmi Randevu" #: ../alarms.c:521 ../datebook_gui.c:5025 msgid "Appointment" msgstr "Randevu" #: ../alarms.c:605 msgid "J-Pilot Alarm" msgstr "J-Pilot Alarm" #: ../category.c:131 ../category.c:188 ../sync.c:2158 ../sync.c:2495 msgid "PC file corrupt?\n" msgstr "Bozuk PC dosyas?\n" #: ../category.c:138 ../category.c:148 ../category.c:196 ../category.c:206 #: ../category.c:216 ../sync.c:2280 ../sync.c:2334 ../sync.c:2371 #: ../sync.c:2386 ../sync.c:2410 ../sync.c:2630 ../sync.c:2675 ../sync.c:2712 #: ../sync.c:2725 ../sync.c:2750 msgid "fseek failed - fatal error\n" msgstr "fseek baarsz - lmcl hata\n" #: ../category.c:364 ../utils.c:2738 ../utils.c:2812 ../utils.c:2916 #: ../utils.c:2981 msgid "rename failed" msgstr "yeniden adlandrma baarsz" #: ../category.c:409 msgid "Move" msgstr "Ta" #: ../category.c:438 ../category.c:500 ../category.c:580 ../category.c:769 msgid "Edit Categories" msgstr "Kategorileri Dzenle" #: ../category.c:439 msgid "The maximum number of categories (16) are already used" msgstr "Maksimum kategori says (16) zaten kullanlm" #: ../category.c:442 msgid "Enter New Category" msgstr "Yeni Kategori Girin" #: ../category.c:453 ../category.c:477 msgid "Edit Categories Error" msgstr "Kategorileri Dzenle Hatas" #: ../category.c:454 msgid "You must select a category to rename" msgstr "Yeniden adlandrmak iin bir kategori semelisiniz" #: ../category.c:463 msgid "Enter New Category Name" msgstr "Yeni Kategori Ad Girin" #: ../category.c:478 msgid "You must select a category to delete" msgstr "Silmek iin bir kategori semelisiniz" #: ../category.c:496 #, c-format msgid "" "There are %d records in %s.\n" "Do you want to move them to %s, or delete them?" msgstr "" "%2$s'de %1$d adet kayt var.\n" "Bunlar %3$s'e tamak m, silmek mi istersiniz?" #: ../category.c:556 #, c-format msgid "invalid state file %s line %d\n" msgstr "geersiz durum dosyas %s satr %d\n" #: ../category.c:578 #, c-format msgid "The category %s can't be used more than once" msgstr "%s kategorisi birden fazla kullanlamaz" #. Category names in host character set #: ../category.c:735 #, fuzzy msgid "Category" msgstr "Snf:" #: ../category.c:836 msgid "New" msgstr "Yeni" #: ../category.c:843 msgid "Rename" msgstr "Yeniden adlandr" #: ../dat.c:456 msgid "unknown type =" msgstr "bilinmeyen tr =" #: ../dat.c:537 #, c-format msgid "fields per row count != %d, unknown format\n" msgstr "satr bana alan says != %d, bilinmeyen biem\n" #: ../dat.c:551 #, c-format msgid "field count != %d, unknown format\n" msgstr "alan says != %d, bilinmeyen biem\n" #: ../dat.c:559 msgid "Unknown format, file has wrong schema\n" msgstr "Bilinmeyen biem, dosya yanl ema ieriyor\n" #: ../dat.c:560 msgid "File schema is:" msgstr "Dosya emas:" #: ../dat.c:564 #, fuzzy msgid "It should be:" msgstr "Olmas gereken: " #: ../dat.c:674 ../dat.c:692 ../dat.c:876 ../dat.c:889 ../dat.c:1012 #: ../dat.c:1025 ../dat.c:1149 ../dat.c:1162 #, c-format msgid "%s:%d Record %d, field %d: Invalid type. Expected %d, found %d\n" msgstr "" "%1$s:%2$d Kayt %3$d, alan %4$d: Geersiz tr. %5$d bekleniyordu, %6$d " "bulundu\n" #: ../dat.c:675 ../dat.c:693 ../dat.c:877 ../dat.c:890 ../dat.c:994 #: ../dat.c:1013 ../dat.c:1026 ../dat.c:1150 ../dat.c:1163 msgid "read of file terminated\n" msgstr "dosya okuma sonlandrld\n" #: ../datebook.c:705 ../datebook_gui.c:3648 #, c-format msgid "Unknown repeatType (%d) found in DatebookDB\n" msgstr "RandevudefteriVT'da bilinmeyen yinelemeTr (%d) bulundu\n" #: ../datebook_gui.c:241 #, fuzzy msgid "Repeat Never" msgstr "Yinele:" #: ../datebook_gui.c:242 #, fuzzy msgid "Repeat Daily" msgstr "Yineleme Gn" #: ../datebook_gui.c:243 #, fuzzy msgid "Repeat Weekly" msgstr "Yinele:" #: ../datebook_gui.c:244 #, fuzzy msgid "Repeat MonthlyByDay" msgstr "Yineleme Gn" #: ../datebook_gui.c:245 #, fuzzy msgid "Repeat MonthlyByDate" msgstr "Yineleme Gn" #: ../datebook_gui.c:246 msgid "Repeat YearlyDate" msgstr "" #: ../datebook_gui.c:247 #, fuzzy msgid "Repeat YearlyDay" msgstr "Yineleme Gn" #: ../datebook_gui.c:250 ../datebook_gui.c:257 ../datebook_gui.c:4803 #: ../datebook_gui.c:4810 msgid "Su" msgstr "P" #: ../datebook_gui.c:251 ../datebook_gui.c:4804 msgid "Mo" msgstr "Pzt" #: ../datebook_gui.c:252 ../datebook_gui.c:4805 msgid "Tu" msgstr "S" #: ../datebook_gui.c:253 ../datebook_gui.c:4806 msgid "We" msgstr "ar" #: ../datebook_gui.c:254 ../datebook_gui.c:4807 msgid "Th" msgstr "." #: ../datebook_gui.c:255 ../datebook_gui.c:4808 msgid "Fr" msgstr "C" #: ../datebook_gui.c:256 ../datebook_gui.c:4809 msgid "Sa" msgstr "Cts" #: ../datebook_gui.c:269 #, c-format msgid "" "Start Date: %s\n" "Time: Event" msgstr "" #: ../datebook_gui.c:277 #, c-format msgid "" "Start Date: %s\n" "Time: %s to %s" msgstr "" #: ../datebook_gui.c:287 ../datebook_gui.c:297 msgid "Unknown" msgstr "" #. End Date #: ../datebook_gui.c:300 #, fuzzy msgid "End Date: " msgstr "Biti Tarihi" #: ../datebook_gui.c:302 msgid "Never" msgstr "" #: ../datebook_gui.c:308 #, c-format msgid "Repeat Frequency: %d\n" msgstr "" #: ../datebook_gui.c:316 #, c-format msgid "Monthly Repeat Day %d\n" msgstr "" #: ../datebook_gui.c:321 ../datebook_gui.c:5520 msgid "Repeat on Days:" msgstr "Yineleme Gn" #: ../datebook_gui.c:332 #, fuzzy, c-format msgid "Number of exceptions: %d" msgstr "kayt says = %d\n" #: ../datebook_gui.c:338 msgid "" "\n" "more..." msgstr "" #: ../datebook_gui.c:359 ../datebook_gui.c:386 msgid "Description:" msgstr "" #: ../datebook_gui.c:360 ../datebook_gui.c:387 #, fuzzy msgid "Note:" msgstr "Not" #: ../datebook_gui.c:362 ../datebook_gui.c:390 #, fuzzy msgid "Alarm:" msgstr "Alarm" #: ../datebook_gui.c:363 ../datebook_gui.c:391 #, fuzzy msgid "Repeat Type:" msgstr "Yinele:" #: ../datebook_gui.c:366 ../datebook_gui.c:394 #, fuzzy msgid "Start of Week:" msgstr "Haftann gn" #: ../datebook_gui.c:388 ../datebook_gui.c:5343 msgid "Location:" msgstr "" #: ../datebook_gui.c:620 ../datebook_gui.c:2271 #, c-format msgid "Appointment description text > %d, truncating to %d\n" msgstr "Randevu aklama metni > %d ok uzun, %d'e ksaltlyor\n" #: ../datebook_gui.c:631 ../datebook_gui.c:1148 ../datebook_gui.c:2331 #: ../datebook_gui.c:2338 msgid "Error" msgstr "Hata" #: ../datebook_gui.c:632 msgid "File doesn't appear to be datebook.dat format\n" msgstr "Dosya randevudefteri.dat bieminde gzkmyor\n" #: ../datebook_gui.c:699 msgid "DAT/DBA (Palm Archive Formats)" msgstr "" #: ../datebook_gui.c:787 #, c-format msgid "" "Datebook exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:790 #, c-format msgid "" "Calendar exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:817 ../todo_gui.c:701 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ical file may not be standards-compliant\n" msgstr "" #: ../datebook_gui.c:1148 msgid "Unknown export type" msgstr "Bilinmeyen ihra tr" #: ../datebook_gui.c:1228 ../todo_gui.c:872 #, fuzzy msgid "iCalendar" msgstr "Temizle" #: ../datebook_gui.c:1240 ../export_gui.c:251 ../jpilot.c:429 msgid "Export" msgstr "hra et" #. Label for instructions #: ../datebook_gui.c:1257 msgid "Export All Datebook Records" msgstr "Tm Randevu Defteri Kaytlarn hra Et" #: ../datebook_gui.c:1276 ../export_gui.c:316 msgid "Save as" msgstr "Farkl kaydet" #. Browse button #: ../datebook_gui.c:1286 ../export_gui.c:329 msgid "Browse" msgstr "Gzat" #: ../datebook_gui.c:1432 msgid "Datebook Categories" msgstr "Randevudefteri Kategorileri" #. None button #. Labels for notebook tabs #: ../datebook_gui.c:1484 ../datebook_gui.c:2026 ../datebook_gui.c:5449 msgid "None" msgstr "Hibiri" #: ../datebook_gui.c:1633 msgid "Begin On Date" msgstr "Balang Tarihi" #: ../datebook_gui.c:1639 msgid "End On Date" msgstr "Biti Tarihi" #: ../datebook_gui.c:1751 ../prefs.c:451 msgid "Sunday" msgstr "Pazar" #: ../datebook_gui.c:1752 ../prefs.c:452 msgid "Monday" msgstr "Pazartesi" #: ../datebook_gui.c:1753 msgid "Tuesday" msgstr "Sal" #: ../datebook_gui.c:1754 msgid "Wednesday" msgstr "aramba" #: ../datebook_gui.c:1755 msgid "Thursday" msgstr "Perembe" #: ../datebook_gui.c:1756 msgid "Friday" msgstr "Cuma" #: ../datebook_gui.c:1757 msgid "Saturday" msgstr "Cumartesi" #: ../datebook_gui.c:1760 msgid "4th" msgstr "4." #: ../datebook_gui.c:1760 msgid "Last" msgstr "Son" #: ../datebook_gui.c:1763 #, c-format msgid "" "This appointment can either\n" "repeat on the 4th %s\n" "of the month, or on the last\n" "%s of the month.\n" "Which do you want?" msgstr "" "Bu randevu ya ayn\n" "4'nc %1$s'inde\n" "ya da son %2$s'inde\n" "yinelenir. Hangisini\n" "istersiniz?" #: ../datebook_gui.c:1770 ../datebook_gui.c:1786 msgid "Question?" msgstr "Soru?" #: ../datebook_gui.c:1777 #, fuzzy msgid "" "This is a repeating event.\n" "Do you want to apply these changes to\n" "only the CURRENT event,\n" "just FUTURE events, or\n" "ALL of the occurrences of this event?" msgstr "" "Bu, yinelenen bir olay.\n" "Bu deiiklikleri yalnzca\n" "u anki olaya m, yoksa olayn\n" "tm yinelemelerine mi uygulamak\n" "istersiniz?" #: ../datebook_gui.c:1782 msgid "Current" msgstr "u anki" #: ../datebook_gui.c:1782 msgid "Future" msgstr "" #: ../datebook_gui.c:2027 msgid "day" msgstr "gn" #: ../datebook_gui.c:2028 msgid "week" msgstr "hafta" #: ../datebook_gui.c:2029 msgid "month" msgstr "ay" #: ../datebook_gui.c:2030 msgid "year" msgstr "yl" #: ../datebook_gui.c:2326 ../datebook_gui.c:2329 #, c-format msgid "You cannot have an appointment that repeats every %d %s(s)\n" msgstr "Her %d %s'de yinelenen randevunuz olamaz\n" #: ../datebook_gui.c:2339 #, fuzzy msgid "" "You cannot have a weekly repeating appointment that doesn't repeat on any " "day of the week." msgstr "Haftann herhangi bir gnnde yinelenmeyen haftalk randevunuz olamaz." #. This is a timeless event #: ../datebook_gui.c:2516 ../datebook_gui.c:5264 msgid "No Time" msgstr "Zaman Yok" #: ../datebook_gui.c:2788 ../memo_gui.c:1259 ../todo_gui.c:1728 msgid "External editor command too long to execute\n" msgstr "" #: ../datebook_gui.c:2943 msgid "Invalid Appointment" msgstr "Geersiz Randevu" #: ../datebook_gui.c:2944 msgid "" "The End Date of this appointment\n" "is before the start date." msgstr "" "Bu randevunun Biti Tarihi\n" "balang tarihinden nce." #. "No Date" check box #: ../datebook_gui.c:3339 ../datebook_gui.c:5482 ../datebook_gui.c:5513 #: ../datebook_gui.c:5565 ../datebook_gui.c:5613 ../todo_gui.c:142 #: ../todo_gui.c:2454 msgid "No Date" msgstr "Tarih Yok" #: ../datebook_gui.c:3494 #, fuzzy, c-format msgid "Error in DateBookDB or Calendar advanceUnits = %d\n" msgstr "RandevudefteriVT ilerlemeBirimi hatas = %d\n" #: ../datebook_gui.c:3681 #, c-format msgid "%%a., %s" msgstr "%%a., %s" #: ../datebook_gui.c:3686 msgid " (TODAY)" msgstr " (BUGN)" #. Weekview button #: ../datebook_gui.c:4934 ../datebook_gui.c:5451 msgid "Week" msgstr "Hafta" #: ../datebook_gui.c:4943 #, fuzzy msgid "View appointments by week Ctrl+W" msgstr "Randevular haftalk grntle" #. Monthview button #: ../datebook_gui.c:4946 ../datebook_gui.c:5452 msgid "Month" msgstr "Ay" #: ../datebook_gui.c:4955 #, fuzzy msgid "View appointments by month Ctrl+M" msgstr "Randevular aylk grntle" #. Make Category button #: ../datebook_gui.c:4960 msgid "Cats" msgstr "Snflar" #: ../datebook_gui.c:5024 msgid "Time" msgstr "Zaman" #. "Show ToDos" button #: ../datebook_gui.c:5067 msgid "Show ToDos" msgstr " Listesini Gster" #: ../datebook_gui.c:5081 ../todo_gui.c:2285 msgid "Task" msgstr "Grev" #: ../datebook_gui.c:5082 ../todo_gui.c:2286 msgid "Due" msgstr "Sonlanma" #: ../datebook_gui.c:5201 ../datebook_gui.c:5358 msgid "Alarm" msgstr "Alarm" #. Date Spinners #: ../datebook_gui.c:5241 ../Expense/expense.c:1736 msgid "Date:" msgstr "Tarih:" #. Start date and time #: ../datebook_gui.c:5283 #, fuzzy msgid "Start" msgstr "Balang: " #. End date and time #: ../datebook_gui.c:5300 #, fuzzy msgid "End" msgstr "Biti" #: ../datebook_gui.c:5433 msgid "DateBk Tags" msgstr "RandevuDf Etiketleri" #: ../datebook_gui.c:5450 msgid "Day" msgstr "Gn" #: ../datebook_gui.c:5453 msgid "Year" msgstr "Yl" #. "No Repeat" page for notebook #: ../datebook_gui.c:5456 msgid "This event will not repeat" msgstr "Bu olay yinelenmeyecek" #: ../datebook_gui.c:5465 ../datebook_gui.c:5498 ../datebook_gui.c:5550 #: ../datebook_gui.c:5596 msgid "Frequency is Every" msgstr "Yineleme Her" #: ../datebook_gui.c:5471 msgid "Day(s)" msgstr "Gn" #: ../datebook_gui.c:5474 ../datebook_gui.c:5507 ../datebook_gui.c:5559 #: ../datebook_gui.c:5605 msgid "End on" msgstr "Biti" #: ../datebook_gui.c:5504 msgid "Week(s)" msgstr "Hafta" #: ../datebook_gui.c:5556 msgid "Month(s)" msgstr "Ay" #: ../datebook_gui.c:5573 msgid "Repeat by:" msgstr "Yinele:" #: ../datebook_gui.c:5577 msgid "Day of week" msgstr "Haftann gn" #: ../datebook_gui.c:5586 ../Expense/expense.c:1618 msgid "Date" msgstr "Tarih" #: ../datebook_gui.c:5602 msgid "Year(s)" msgstr "Yl" #: ../dialer.c:195 msgid "Phone Dialer" msgstr "Telefon eviricisi" #: ../dialer.c:230 msgid "Prefix 1" msgstr "Sfat 1" #: ../dialer.c:252 msgid "Prefix 2" msgstr "Sfat 2" #: ../dialer.c:274 msgid "Prefix 3" msgstr "Sfat 3" #: ../dialer.c:289 msgid "Phone number:" msgstr "Telefon numaras:" #: ../dialer.c:319 msgid "Extension" msgstr "Dahili" #: ../dialer.c:341 msgid "Dial Command" msgstr "evir Komutu" #: ../export_gui.c:121 msgid "File Browser" msgstr "Dosya Gzatcs" #. Label for instructions #: ../export_gui.c:273 msgid "Select records to be exported" msgstr "hra edilecek kaytlar seiniz" #: ../export_gui.c:275 msgid "Use Ctrl and Shift Keys" msgstr "Ctrl ve Shift tularn kullannz" #. Import button #: ../import_gui.c:300 ../import_gui.c:369 ../import_gui.c:426 #: ../import_gui.c:471 ../jpilot.c:385 msgid "Import" msgstr "thal et" #: ../import_gui.c:317 #, c-format msgid "Record was marked as private" msgstr "Kayt, zel olarak iaretlenmi" #: ../import_gui.c:319 #, c-format msgid "Record was not marked as private" msgstr "Kayt, zel olarak iaretlenmemi" #: ../import_gui.c:328 #, c-format msgid "Category before import was: [%s]" msgstr "thalden nceki kategori: [%s]" #: ../import_gui.c:336 #, c-format msgid "Record will be put in category [%s]" msgstr "Kaydn konaca kategori [%s]" #. Import All button #: ../import_gui.c:376 msgid "Import All" msgstr "Tmn thal Et" #. Skip button #: ../import_gui.c:383 msgid "Skip" msgstr "Atla" #: ../import_gui.c:457 ../install_gui.c:429 msgid "To change to a hidden directory type it below and hit TAB" msgstr "Gizli dizine dntrmek iin aaya yazp TAB'a basn" #: ../import_gui.c:484 msgid "Import File Type" msgstr "thal Edilen Dosya Tr" #: ../install_gui.c:366 #, fuzzy msgid "Files to install" msgstr "Yklenecek dosyalar" #: ../install_gui.c:374 msgid "Install" msgstr "Ykle" #: ../install_user.c:118 ../install_user.c:220 msgid "Install User" msgstr "Kullanc Kur" #: ../install_user.c:139 msgid "" "A PalmOS(c) device needs a user name and a user ID in order to sync properly." msgstr "" "Bir Palm OS(c) aygtn uygun ekilde ezamanlamak iin bir kullanc ad ve " "numaras gereklidir." #: ../install_user.c:146 msgid "" "If you want to sync more than 1 PalmOS(c) device each one should have a " "different ID and preferably a different user name." msgstr "" "Birden fazla PalmOS(c) aygtn ezamanlamak isterseniz, herbirinin farkl " "numaras ve tercihen farkl kullanc ad olmaldr." #. Instruction label #: ../install_user.c:168 msgid "Most people choose their name or nickname for the user name." msgstr "Pek ok kii kullanc ad olarak kendi ad ya da lakaplarn seer." #: ../install_user.c:176 ../restore_gui.c:278 msgid "User Name" msgstr "Kullanc Ad" #: ../install_user.c:186 msgid "The ID should be a random number." msgstr "Kullanc numaras rasgele bir say olmaldr." #: ../install_user.c:194 ../restore_gui.c:297 msgid "User ID" msgstr "Kullanc No" #: ../jpilot.c:319 msgid "Print" msgstr "Yazdr" #: ../jpilot.c:320 msgid "There is no print support for this conduit." msgstr "Bu arabirim iin yazdrma destei bulunmamakta..." #: ../jpilot.c:386 msgid "There is no import support for this conduit." msgstr "Bu arabirim iin ithal etme destei bulunmamakta..." #: ../jpilot.c:430 msgid "There is no export support for this conduit." msgstr "Bu arabirim iin ihra etme destei bulunmamakta..." #: ../jpilot.c:659 #, fuzzy msgid " Cancelling HotSync\n" msgstr "Ezamanlamay iptal et" #. ------------------------------------------- #: ../jpilot.c:675 #, fuzzy msgid "" "This handheld does not have the same user name or user ID\n" "as the one that was synced the last time.\n" "Syncing could have unwanted effects including data loss.\n" "\n" "Read the user manual if you are uncertain." msgstr "" "Bu avuii son kez ezamanlananla ayn kullanc\n" "ad ya da kimliine sahip deil. Ezamanlamann\n" "istenmeyen etkileri olabilir. Emin deilseniz\n" "kullanc klavuzunu okuyun." #. ------------------------------------------- #: ../jpilot.c:682 #, fuzzy msgid "" "This handheld has a NULL user ID.\n" "Every handheld must have a unique user ID in order to sync properly.\n" "If the handheld has been hard reset, \n" " use restore from the menu to restore it.\n" "Otherwise, to add a new user name and ID\n" " use install-user from the menu.\n" "\n" "Read the user manual if you are uncertain." msgstr "" "Bu avuii, NULL kullanc kimliine sahip.\n" "Uygun ekilde ezamanlanmak iin her palm, kendine has bir kullanc\n" "kimliine sahip olmaldr. Eer donanm yeniden balatldysa, yeniden\n" "yklemek iin menden yeniden yklemeyi kullann ya da pilot-xfer'i " "kullann.\n" "Bir kullanc ad ve kimlii eklemek iin install-user komut satr arac " "kullann,\n" "ya da menden kullanc-ykle'yi kullann\n" "Emin deilseniz kullanc klavuzunu okuyun." #: ../jpilot.c:690 msgid "Cancel Sync" msgstr "Ezamanlamay iptal et" #: ../jpilot.c:690 msgid "Sync Anyway" msgstr "Her halukarda ezamanla" #: ../jpilot.c:699 ../jpilot.c:703 msgid "Sync Problem" msgstr "Problemi Ezamanla" #: ../jpilot.c:932 ../jpilot.c:1785 msgid " User: " msgstr " Kullanc: " #: ../jpilot.c:944 msgid "Unknown command from sync process\n" msgstr "Ezamanlama srecinden bilinmeyen komut\n" #: ../jpilot.c:963 ../Expense/expense.c:529 ../KeyRing/keyring.c:1872 #: ../SyncTime/synctime.c:61 #, c-format msgid "About %s" msgstr "%s Hakknda" #: ../jpilot.c:1105 msgid "/_File" msgstr "/_Dosya" #: ../jpilot.c:1106 msgid "/File/tear" msgstr "/Dosya/yrt" #: ../jpilot.c:1107 msgid "/File/_Find" msgstr "/Dosya/_Bul" #: ../jpilot.c:1108 ../jpilot.c:1114 ../jpilot.c:1117 msgid "/File/sep1" msgstr "/Dosya/ayra1" #: ../jpilot.c:1109 msgid "/File/_Install" msgstr "/Dosya/_Ykle" #: ../jpilot.c:1110 msgid "/File/Import" msgstr "/Dosya/thal et" #: ../jpilot.c:1111 msgid "/File/Export" msgstr "/Dosya/hra et" #: ../jpilot.c:1112 ../jpilot.c:2190 msgid "/File/Preferences" msgstr "/Dosya/Tercihler" #: ../jpilot.c:1113 msgid "/File/_Print" msgstr "/Dosya/_Yazdr" #: ../jpilot.c:1115 msgid "/File/Install User" msgstr "/Dosya/Kullanc Ykle" #: ../jpilot.c:1116 msgid "/File/Restore Handheld" msgstr "/Dosya/Avuiini Geri Ykle" #: ../jpilot.c:1118 msgid "/File/_Quit" msgstr "/Dosya/_k" #: ../jpilot.c:1119 msgid "/_View" msgstr "/_Grnm" #: ../jpilot.c:1120 ../jpilot.c:1121 ../jpilot.c:1122 ../jpilot.c:1368 msgid "/View/Hide Private Records" msgstr "/Grnm/zel Kaytlar Gizle" #: ../jpilot.c:1121 ../jpilot.c:1371 msgid "/View/Show Private Records" msgstr "/Grnm/zel Kaytlar Gster" #: ../jpilot.c:1122 ../jpilot.c:1374 msgid "/View/Mask Private Records" msgstr "/Grnm/zel Kaytlar Maskele" #: ../jpilot.c:1123 msgid "/View/sep1" msgstr "/Dosya/ayra1" #: ../jpilot.c:1124 msgid "/View/Datebook" msgstr "/Grnm/Randevular" #: ../jpilot.c:1125 msgid "/View/Addresses" msgstr "/Grnm/Adresler" #: ../jpilot.c:1126 msgid "/View/Todos" msgstr "/Grnm/ listesi" #: ../jpilot.c:1127 msgid "/View/Memos" msgstr "/Grnm/Notlar" #: ../jpilot.c:1128 ../jpilot.c:1259 msgid "/_Plugins" msgstr "/_Eklentiler" #: ../jpilot.c:1130 msgid "/_Web" msgstr "/_Web" #. web #: ../jpilot.c:1131 msgid "/Web/Netscape" msgstr "/Web/Netscape" #: ../jpilot.c:1135 msgid "/Web/Mozilla" msgstr "/Web/Mozilla" #: ../jpilot.c:1140 msgid "/Web/Galeon" msgstr "/Web/Galeon" #: ../jpilot.c:1145 msgid "/Web/Opera" msgstr "/Web/Opera" #: ../jpilot.c:1149 msgid "/Web/GnomeUrl" msgstr "/Web/GnomeUrl" #: ../jpilot.c:1151 msgid "/Web/Lynx" msgstr "/Web/Lynx" #: ../jpilot.c:1153 msgid "/Web/Links" msgstr "/Web/Links" #: ../jpilot.c:1155 msgid "/Web/W3M" msgstr "/Web/W3M" #: ../jpilot.c:1157 msgid "/Web/Konqueror" msgstr "/Web/Konqueror" #: ../jpilot.c:1160 msgid "/_Help" msgstr "/_Yardm" #: ../jpilot.c:1161 msgid "/Help/About J-Pilot" msgstr "/Yardm/J-Pilot Hakknda" #: ../jpilot.c:1227 #, c-format msgid "/_Plugins/%s" msgstr "/_Eklentiler/%s" #: ../jpilot.c:1237 #, c-format msgid "/_Help/%s" msgstr "/_Yardm/%s" #: ../jpilot.c:1591 msgid "calendar:week_start:0" msgstr "takvim:hafta_ba:0" #: ../jpilot.c:1634 ../jpilot-sync.c:171 msgid "Not loading plugins.\n" msgstr "Eklentiler yklenmiyor.\n" #: ../jpilot.c:1638 msgid "Ignoring all alarms.\n" msgstr "Tm alarmlar yok saylyor.\n" #: ../jpilot.c:1642 msgid "Ignoring past alarms.\n" msgstr "Gemi alarmlar yok saylyor.\n" #: ../jpilot.c:1730 ../jpilot.c:1738 msgid "Unable to open pipe\n" msgstr "Veriyolu alamad\n" #: ../jpilot.c:1947 #, fuzzy msgid "Show private records Ctrl+Z" msgstr "zel kaytlar gster Ctrl-Z" #: ../jpilot.c:1952 #, fuzzy msgid "Hide private records Ctrl+Z" msgstr "zel kaytlar gizle Ctrl-Z" #: ../jpilot.c:1957 #, fuzzy msgid "Mask private records Ctrl+Z" msgstr "zel kaytlar maskele Ctrl-Z" #: ../jpilot.c:1969 #, fuzzy msgid "Sync your palm to the desktop Ctrl+Y" msgstr "Avuiini masastyle ezamanlayn Ctrl-Y" #: ../jpilot.c:1981 #, fuzzy msgid "Stop Sync process" msgstr "Adresleri ezamanla" #: ../jpilot.c:1993 msgid "" "Sync your palm to the desktop\n" "and then do a backup" msgstr "" "Avuiini masastyle ezamanlayn\n" "ve sonrasnda yedekleyin" #: ../jpilot.c:2141 msgid "Datebook/Go to Today" msgstr "Randevular/Bugne Git" #: ../jpilot.c:2142 msgid "Address Book" msgstr "Adres Defteri" #: ../jpilot.c:2143 msgid "ToDo List" msgstr " Listesi" #: ../jpilot.c:2144 msgid "Memo Pad" msgstr "Not defteri" #: ../jpilot.c:2172 msgid "Do it now" msgstr "imdi yap" #: ../jpilot.c:2172 msgid "Remind me later" msgstr "Daha sonra anmsat" #: ../jpilot.c:2172 msgid "Don't tell me again!" msgstr "Bana bir daha syleme!" #: ../jpilot.c:2185 #, fuzzy, c-format msgid "" "J-Pilot uses the GTK2 graphical toolkit. This version of the toolkit uses " "UTF-8 to encode characters.\n" "You should select a UTF-8 charset so that you can see non-ASCII characters " "(accents for example).\n" "\n" "Go to the menu \"%s\" and change the \"%s\"." msgstr "" "J-Pilot, GTK2 grafik ara kitini kullanyor. Ara kitinin bu srm " "karakterleri kodlamada UTF-8 kullanr.\n" "ASCII olmayan karakterleri (rnein aksanlar) grebilmek iin bir UTF-8 " "karakter kmesi semelisiniz.\n" "\n" #. Character Set #: ../jpilot.c:2190 ../prefs_gui.c:511 #, fuzzy msgid "Character Set" msgstr "Karakter Kmesi" #: ../jpilot.c:2192 msgid "Select a UTF-8 encoding" msgstr "Bir UTF-8 kodlama seiniz" #: ../jpilot-dump.c:94 #, c-format msgid " +D +A +T +M format like date +format.\n" msgstr " +D +A +T +M biemi, tarih +biemi gibi.\n" #: ../jpilot-dump.c:95 #, fuzzy, c-format msgid " -v display version and exit\n" msgstr " -v srm gsterir ve kar.\n" #: ../jpilot-dump.c:96 ../jpilot-sync.c:68 ../utils.c:1874 #, fuzzy, c-format msgid " -h display help text\n" msgstr " -h yardm gsterir ve kar.\n" #: ../jpilot-dump.c:97 #, fuzzy, c-format msgid " -f display help for format codes\n" msgstr " -f biem kodlar iin yardm gsterir.\n" #: ../jpilot-dump.c:98 #, fuzzy, c-format msgid " -D dump DateBook\n" msgstr " -D RandevuDefterini boaltr.\n" #: ../jpilot-dump.c:99 #, fuzzy, c-format msgid " -i dump DateBook in iCalendar format\n" msgstr " -i RandevuDefterini iCalender biemine dntrr.\n" #: ../jpilot-dump.c:100 #, fuzzy, c-format msgid " -N dump appts for today in DateBook\n" msgstr " -N RandevuDefterinde bugnk randevular boaltr.\n" #: ../jpilot-dump.c:101 #, fuzzy, c-format msgid " -NYYYY/MM/DD dump appts on YYYY/MM/DD in DateBook\n" msgstr "" " -NYYYY/MM/DD randevuDefterinde YYYY/MM/DD'deki randevular boaltr.\n" #: ../jpilot-dump.c:102 #, fuzzy, c-format msgid " -A dump Address book\n" msgstr " -A Adres defterini boaltr.\n" #: ../jpilot-dump.c:103 #, fuzzy, c-format msgid " -T dump ToDo list as CSV\n" msgstr " -T Listesini CSV gibi boaltr.\n" #: ../jpilot-dump.c:104 #, fuzzy, c-format msgid " -M dump Memos\n" msgstr " -M Notlar boaltr.\n" #: ../jpilot-dump.c:165 #, c-format msgid "" "Warning: Host character encoding is not UTF-8 based.\n" "Exported ical file may not be standards-compliant\n" msgstr "" #: ../jpilot-merge.c:163 ../jpilot-merge.c:169 #, fuzzy, c-format msgid "%s: Unable to open file:%s\n" msgstr "Dosya alamad: %s\n" #: ../jpilot-merge.c:271 #, c-format msgid "Records read from pdb = %d\n" msgstr "" #: ../jpilot-merge.c:272 #, c-format msgid "Records added = %d\n" msgstr "" #: ../jpilot-merge.c:273 #, c-format msgid "Records deleted = %d\n" msgstr "" #: ../jpilot-merge.c:274 #, c-format msgid "Records modified = %d\n" msgstr "" #: ../jpilot-merge.c:275 #, c-format msgid "Records written = %d\n" msgstr "" #: ../jpilot-merge.c:293 #, c-format msgid "Usage: %s {input pdb file} {input pc3 file} {output pdb file}\n" msgstr "" #: ../jpilot-merge.c:294 #, c-format msgid " This program will merge an unsynced records file (pc3)\n" msgstr "" #: ../jpilot-merge.c:295 #, c-format msgid "" " into the corresponding palm database (pdb) file.\n" "\n" msgstr "" #: ../jpilot-merge.c:296 #, c-format msgid " WARNING: Only run this utility if you understand the consequences!\n" msgstr "" #: ../jpilot-merge.c:297 #, c-format msgid " The merge will leave your databases in an unsync-able state.\n" msgstr "" #: ../jpilot-merge.c:298 #, c-format msgid "" " It is intended for cases where J-pilot is being used as a standalone PIM\n" msgstr "" #: ../jpilot-merge.c:299 #, c-format msgid " and where no syncing occurs to physical hardware.\n" msgstr "" #: ../jpilot-merge.c:300 #, c-format msgid " WARNING: Make a backup copy of your databases before proceeding.\n" msgstr "" #: ../jpilot-merge.c:301 #, c-format msgid "" " It is quite simple to destroy your databases by accidentally merging\n" msgstr "" #: ../jpilot-merge.c:302 #, c-format msgid " address records into datebook databases, etc.\n" msgstr "" #: ../jpilot-sync.c:66 #, fuzzy, c-format msgid "" " J-Pilot preferences are read to get sync info such as port, rate, number of " "backups, etc.\n" msgstr "" " J-Pilot tercihleri port, yedekleme says, vs.'yi almak iin okunur.\n" #: ../jpilot-sync.c:67 ../utils.c:1873 #, fuzzy, c-format msgid " -v display version and compile options\n" msgstr " -v srm ve derleme seeneklerini gsterir ve kar.\n" #: ../jpilot-sync.c:69 ../utils.c:1875 #, fuzzy, c-format msgid " -d display debug info to stdout\n" msgstr " -d hata ayklama bilgisini stdout'a gnderir.\n" #: ../jpilot-sync.c:70 #, fuzzy, c-format msgid " -P skip loading plugins\n" msgstr " -p eklentilerin yklenmesini atlar.\n" #: ../jpilot-sync.c:71 #, fuzzy, c-format msgid " -b sync, and then do a backup\n" msgstr "" "Avuiini masastyle ezamanlayn\n" "ve sonrasnda yedekleyin" #: ../jpilot-sync.c:72 #, fuzzy, c-format msgid " -l loop, otherwise sync once and exit\n" msgstr " -l = dngle, aksi halde bir kez ezamanla ve k.\n" #: ../jpilot-sync.c:73 #, fuzzy, c-format msgid " -p {port} use this port to sync on instead of default\n" msgstr " -p {port} = Tercihleri almaktansa bu portu kullanarak ezamanla.\n" #: ../jpilot-sync.c:221 #, fuzzy, c-format msgid "Error: connecting to port %s\n" msgstr "Dosya amada hata: %s\n" #: ../jpilot-sync.c:225 #, c-format msgid "Error: pi_listen\n" msgstr "" #: ../jpilot-sync.c:229 #, fuzzy, c-format msgid "Error: opening conduit to handheld\n" msgstr "Dosya amada hata: next_id\n" #: ../jpilot-sync.c:233 #, c-format msgid "Error: pi_accept\n" msgstr "" #: ../jpilot-sync.c:237 ../jpilot-sync.c:265 #, fuzzy, c-format msgid "Error: " msgstr "Hata" #: ../jpilot-sync.c:238 #, c-format msgid "This handheld does not have the same user name.\n" msgstr "" #: ../jpilot-sync.c:239 ../jpilot-sync.c:253 #, c-format msgid "as the one that was synced the last time.\n" msgstr "" #: ../jpilot-sync.c:241 #, c-format msgid "" "Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:243 ../jpilot-sync.c:256 #, c-format msgid " COPILOT_HOME" msgstr "" #: ../jpilot-sync.c:245 ../jpilot-sync.c:258 #, c-format msgid " JPILOT_HOME" msgstr "" #: ../jpilot-sync.c:247 ../jpilot-sync.c:260 #, fuzzy, c-format msgid " environment variable can be used to sync different handhelds,\n" msgstr "HOME evre deikeniniz benim iin ok uzun\n" #: ../jpilot-sync.c:248 ../jpilot-sync.c:261 #, c-format msgid " to different directories for the same UNIX user name.\n" msgstr "" #: ../jpilot-sync.c:252 #, c-format msgid "This handheld does not have the same user ID.\n" msgstr "" #: ../jpilot-sync.c:254 #, c-format msgid "" " Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:266 #, c-format msgid "This handheld has a NULL user ID.\n" msgstr "" #: ../jpilot-sync.c:267 #, fuzzy, c-format msgid "Every handheld must have a unique user ID in order to sync properly.\n" msgstr "" "Bir Palm OS(c) aygtn uygun ekilde ezamanlamak iin bir kullanc ad ve " "numaras gereklidir." #: ../jpilot-sync.c:268 #, c-format msgid "If the handheld has been hard reset, \n" msgstr "" #: ../jpilot-sync.c:269 #, c-format msgid " use restore from within " msgstr "" #: ../jpilot-sync.c:270 #, c-format msgid "Otherwise, to add a new user name and ID\n" msgstr "" #: ../jpilot-sync.c:271 #, c-format msgid " use \"install-user %s name numeric_id\"\n" msgstr "" #: ../jpilot-sync.c:275 #, c-format msgid "Error: sync returned error %d\n" msgstr "" #: ../libplugin.c:64 ../utils.c:1054 msgid "" "This record is already deleted.\n" "It is scheduled to be deleted from the Palm on the next sync.\n" msgstr "" "Bu kayt zaten silinmi.\n" "Avuiinden bir sonraki ezamanlamada silinecek.\n" #: ../libplugin.c:73 ../libplugin.c:110 ../utils.c:1064 ../utils.c:1106 msgid "Unable to open PC records file\n" msgstr "PC kayt dosyas alamad\n" #: ../libplugin.c:79 ../utils.c:1071 msgid "Couldn't find record to delete\n" msgstr "Silinecek kayt bulunamyor\n" #: ../libplugin.c:97 ../utils.c:1091 #, c-format msgid "Unknown header version %d\n" msgstr "Bilinmeyen balk srm %d\n" #: ../libplugin.c:182 #, c-format msgid "%s:%d Error opening file: %s\n" msgstr "%1$s:%2$d Dosyay amada hata: %3$s\n" #: ../libplugin.c:188 ../libplugin.c:217 ../sync.c:1721 ../todo.c:102 #, c-format msgid "%s:%d Error reading file: %s\n" msgstr "%1$s:%2$d Dosya okumada hata: %3$s\n" #: ../libplugin.c:340 ../libplugin.c:398 ../utils.c:2119 ../utils.c:2132 #, c-format msgid "Error opening file: %s\n" msgstr "Dosya amada hata: %s\n" #: ../libplugin.c:526 #, c-format msgid "Error reading %s 5\n" msgstr "%s 5 okumada hata\n" #: ../libplugin.c:801 msgid "Error reading PC file 1\n" msgstr "PC dosyas 1'i okumada hata\n" #: ../libplugin.c:817 msgid "Error reading PC file 2\n" msgstr "PC dosyas 2'yi okumada hata\n" #: ../libplugin.c:923 #, c-format msgid "Unknown PC header version = %d\n" msgstr "Bilinmeyen PC balk srm = %d\n" #: ../log.c:101 #, c-format msgid "Unable to open log file, giving up.\n" msgstr "Gnlk (log) dosyas alamyor, vazgeiyorum.\n" #: ../log.c:111 #, c-format msgid "Unable to open log file\n" msgstr "Gnlk (log) dosyas alamad\n" #: ../memo_gui.c:302 msgid "Memo text > 65535, truncating\n" msgstr "Not metni > 65535, sondan krplyor\n" #: ../memo_gui.c:330 #, c-format msgid "Imported Memo %s\n" msgstr "thal edilen Not %s\n" #: ../memo_gui.c:400 msgid "File doesn't appear to be memopad.dat format\n" msgstr "Dosya anmsatc.dat bieminde gzkmyor\n" #: ../memo_gui.c:471 msgid "DAT/MPA (Palm Archive Formats)" msgstr "" #: ../memo_gui.c:554 #, c-format msgid "" "Memo exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:557 #, c-format msgid "" "Memos exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:584 #, c-format msgid "Can't export memo %d\n" msgstr "Not ihra edilemiyor %d\n" #: ../memo_gui.c:628 #, fuzzy, c-format msgid "Memo: %ld\n" msgstr "Not defteri" #: ../memo_gui.c:634 #, c-format msgid "----- Start of Memo -----\n" msgstr "" #: ../memo_gui.c:636 #, c-format msgid "" "\n" "----- End of Memo -----\n" "\n" msgstr "" #: ../memo_gui.c:668 msgid "B-Folders CSV" msgstr "" #: ../monthview_gui.c:438 msgid "Monthly View" msgstr "Aylk Grnm" #: ../monthview_gui.c:480 msgid "Last month Alt+LeftArrow" msgstr "" #: ../monthview_gui.c:508 msgid "Next month Alt+RightArrow" msgstr "" #: ../otherconv.c:76 #, c-format msgid "%s: error exit from g_iconv_close(%s)\n" msgstr "" #: ../otherconv.c:201 #, c-format msgid "%s:%s g_convert_with_iconv error: %s, buff: %s\n" msgstr "" #: ../otherconv.c:203 #, fuzzy msgid "last char truncated" msgstr "son deitirme: " #: ../otherconv.c:280 #, c-format msgid "UTF_to_other: %s\n" msgstr "" #: ../otherconv.c:294 #, c-format msgid "iconv: unconvertible sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:298 #, c-format msgid "iconv: incomplete UTF-8 sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:301 #, c-format msgid "iconv: buffer filled. stopped at place %d in '%s'\n" msgstr "" #: ../otherconv.c:304 #, c-format msgid "iconv: unexpected error at place %d in '%s'\n" msgstr "" #: ../password.c:283 msgid "Palm Password" msgstr "Avuii Parolas" #: ../password.c:308 msgid "Incorrect, Reenter PalmOS Password" msgstr "Yanl, PalmOS Parolasn Tekrar Giriniz" #: ../password.c:310 msgid "Enter PalmOS Password" msgstr "PalmOS Parolasn Giriniz" #: ../pidfile.c:67 msgid "removing stale pidfile\n" msgstr "" #: ../pidfile.c:91 #, fuzzy, c-format msgid "create pidfile failed: %s\n" msgstr "Dosya okumada hata: %s\n" #: ../pidfile.c:92 msgid "Warning: hotplug syncing disabled.\n" msgstr "" #: ../plugins.c:90 ../plugins.c:203 ../restore_gui.c:133 msgid "infinite loop" msgstr "sonsuz dng" #: ../plugins.c:216 #, c-format msgid "While reading %s%s line 1:[%s]\n" msgstr "%s%s okunurken satr 1:[%s]\n" #: ../plugins.c:217 msgid "Wrong Version\n" msgstr "Yanl srm\n" #: ../plugins.c:218 msgid "Check preferences->conduits\n" msgstr "Tercihler ->devreler'i kontrol edin\n" #: ../plugins.c:274 #, c-format msgid "" "Open failed on plugin [%s]\n" " error [%s]\n" msgstr "" "Ama eklentide [%s] baarsz oldu\n" " hata [%s]\n" #: ../plugins.c:291 ../plugins.c:316 #, c-format msgid " plugin is invalid: [%s]\n" msgstr " eklenti geersiz: [%s]\n" #: ../plugins.c:299 #, c-format msgid "Plugin:[%s]\n" msgstr "Eklenti:[%s]\n" #: ../plugins.c:300 #, c-format msgid "This plugin is version (%d.%d).\n" msgstr "Bu eklenti srm (%d.%d).\n" #: ../plugins.c:302 msgid "It is too old to work with this version of J-Pilot.\n" msgstr "J-Pilot'un bu srmyle almak iin ok eski.\n" #: ../prefs.c:420 msgid "%B %d, %Y" msgstr "%B %d, %Y" #: ../prefs.c:421 msgid "%d %B %Y" msgstr "%d %B %Y" #: ../prefs.c:422 msgid "%d. %B %Y" msgstr "%d. %B %Y" #: ../prefs.c:423 msgid "%d %B, %Y" msgstr "%d %B, %Y" #: ../prefs.c:424 msgid "%Y. %B. %d" msgstr "%Y. %B. %d" #: ../prefs.c:425 msgid "%Y %B %d" msgstr "%Y %B %d" #: ../prefs_gui.c:454 msgid "Preferences" msgstr "Tercihler" #: ../prefs_gui.c:485 msgid "Locale" msgstr "Yereller" #: ../prefs_gui.c:487 msgid "Settings" msgstr "Ayarlar" #: ../prefs_gui.c:489 msgid "Datebook" msgstr "Randevu defteri" #: ../prefs_gui.c:493 msgid "ToDo" msgstr " Listesi" #: ../prefs_gui.c:495 msgid "Memo" msgstr "Notlar" #: ../prefs_gui.c:497 msgid "Alarms" msgstr "Alarmlar" #: ../prefs_gui.c:499 msgid "Conduits" msgstr "Arabirimler" #. Shortdate #: ../prefs_gui.c:524 #, fuzzy msgid "Short date format" msgstr "Ksa tarih biimi" #. Longdate #: ../prefs_gui.c:537 #, fuzzy msgid "Long date format" msgstr "Uzun tarih biimi" #. Time #: ../prefs_gui.c:550 #, fuzzy msgid "Time format" msgstr "Saat biimi" #. GTK colors file #: ../prefs_gui.c:570 #, fuzzy msgid "GTK color theme file" msgstr "GTK renkleri dosyam " #. Port #: ../prefs_gui.c:583 #, fuzzy msgid "Sync Port" msgstr "Problemi Ezamanla" #. Serial Rate #: ../prefs_gui.c:607 msgid "Serial Rate" msgstr "Seri Oran" #. Number of backups #: ../prefs_gui.c:627 msgid "Number of backups to be archived" msgstr "Arivlenecek yedekleme says " #. Show deleted files check box #: ../prefs_gui.c:645 msgid "Show deleted records (default NO)" msgstr "Silinmi kaytlar gster (ntanml HAYIR)" #. Show modified files check box #: ../prefs_gui.c:649 msgid "Show modified deleted records (default NO)" msgstr "Deitirilmi silinmi kaytlar gster (ntanml HAYIR)" #: ../prefs_gui.c:654 msgid "Ask confirmation for file installation (J-Pilot -> PDA) (default YES)" msgstr "Dosya yklemek iin onay sor (J-Pilot -> PDA) (ntanml EVET)" #. Show tooltips check box #: ../prefs_gui.c:658 #, fuzzy msgid "Show popup tooltips (default YES) (requires restart)" msgstr "Beliriveren ara ipularn gster (ntanml EVET)" #: ../prefs_gui.c:668 #, fuzzy msgid "Use Datebook database (Palm OS < 5.2.1)" msgstr "RandevuDefteri veritabann kullan (Palm OS <= 3.5)" #: ../prefs_gui.c:671 #, fuzzy msgid "Use Calendar database (Palm OS > 5.2)" msgstr "Takvim veritabann kullan (PalmOS >= 4.0)" #. Show highlight days check box #: ../prefs_gui.c:697 msgid "Highlight calendar days with appointments" msgstr "Randevulu takvim gnlerini vurgula" #. Highlight today on month and week view #: ../prefs_gui.c:702 msgid "Annotate today in day, week, and month views" msgstr "Bugn gn, hafta ve ay gsterimlerinde iaretle" #. Show number of years on anniversaries in month and week view #: ../prefs_gui.c:706 msgid "Append years on anniversaries in day, week, and month views" msgstr "Yldnmlerinin kanc olduunu gn, hafta ve ay grnmlerine ekle" #. Show use DateBk check box #: ../prefs_gui.c:712 msgid "Use DateBk note tags" msgstr "DateBK not etiketlerini kullan" #: ../prefs_gui.c:715 msgid "DateBk support disabled in this build" msgstr "DateBk destei bu srmde devre d braklmtr" #: ../prefs_gui.c:727 #, fuzzy msgid "Use Address database (Palm OS < 5.2.1)" msgstr "Adres veritabann kullan (Palm OS <= 3.5)" #: ../prefs_gui.c:730 #, fuzzy msgid "Use Contacts database (Palm OS > 5.2)" msgstr "Balantlar veritabann kullan (Palm OS >= 4.0)" #: ../prefs_gui.c:759 msgid "Mail Command" msgstr "Gnderme Komutu" #: ../prefs_gui.c:773 #, c-format msgid "%s is replaced by the e-mail address" msgstr "%s e-posta adresiyle deitirildi" #: ../prefs_gui.c:785 #, fuzzy msgid "Use ToDo database (Palm OS < 5.2.1)" msgstr " Listesi veritabann kullan (Palm OS <= 3.5) " #: ../prefs_gui.c:788 #, fuzzy msgid "Use Task database (Palm OS > 5.2)" msgstr "Grev veritabann kullan (Palm OS >= 4.0)" #. hide completed check box #: ../prefs_gui.c:815 msgid "Hide Completed ToDos" msgstr "Tamamlanm leri Gizle" #. hide todos not yet due check box #: ../prefs_gui.c:819 msgid "Hide ToDos not yet due" msgstr "Sresi henz dolmam leri gizle" #. record todo completion date check box #: ../prefs_gui.c:823 msgid "Record Completion Date" msgstr "Tamamlanma Tarihini Kaydet" #. Use Manana check box #: ../prefs_gui.c:828 msgid "Use Manana database" msgstr "Manana veritabann kullan" #: ../prefs_gui.c:836 msgid "Use default number of days due" msgstr "ntanml mhleti kullan" #: ../prefs_gui.c:858 #, fuzzy msgid "Use Memo database (Palm OS < 5.2.1)" msgstr "Not veritabann kullan (Palm OS <= 3.5)" #: ../prefs_gui.c:861 #, fuzzy msgid "Use Memos database (Palm OS > 5.2)" msgstr "Notlar veritabann kullan (Palm OS >= 4.0)" #: ../prefs_gui.c:864 msgid "Use Memo32 database (pedit32)" msgstr "Memo32 veritabann kullan (pedit32)" #: ../prefs_gui.c:904 msgid "External Editor" msgstr "" #: ../prefs_gui.c:917 msgid "Use Ctrl-E inside a memo to launch external editor for memo text" msgstr "" #. ******************************************************************** #. Alarms preference tab #. Open alarm windows check box #: ../prefs_gui.c:925 msgid "Open alarm windows for appointment reminders" msgstr "Randevu anmsatclar iin alarm pencereleri a" #. Execute alarm command check box #: ../prefs_gui.c:929 msgid "Execute this command" msgstr "Bu komutu altr" #. Shell warning label #: ../prefs_gui.c:933 msgid "WARNING: executing arbitrary shell commands can be dangerous!!!" msgstr "UYARI: Kabuk komutlarn geliigzel altrmak tehlikeli olabilir!!!" #: ../prefs_gui.c:941 msgid "Alarm Command" msgstr "Alarm Komutu" #: ../prefs_gui.c:954 msgid "%t is replaced with the alarm time" msgstr "%t, alarm saatine dntrld" #: ../prefs_gui.c:958 #, c-format msgid "%d is replaced with the alarm date" msgstr "%d, alarm tarihine dntrld" #: ../prefs_gui.c:963 msgid "%D is replaced with the alarm description" msgstr "%D, alarm tanmna dntrld" #: ../prefs_gui.c:967 msgid "%N is replaced with the alarm note" msgstr "%N, alarm notuna dntrld" #: ../prefs_gui.c:971 msgid "%D (description substitution) is disabled in this build" msgstr "%D (aklama yedeklemesi) bu srmde devre d braklmtr" #: ../prefs_gui.c:976 msgid "%N (note substitution) is disabled in this build" msgstr "%N (not yedeklemesi) bu srmde devre d braklmtr" #. ******************************************************************** #. Conduits preference tab #. Sync datebook check box #: ../prefs_gui.c:986 msgid "Sync datebook" msgstr "Randevu defterini ezamanla" #. Sync address check box #: ../prefs_gui.c:990 msgid "Sync address" msgstr "Adresleri ezamanla" #. Sync todo check box #: ../prefs_gui.c:994 msgid "Sync todo" msgstr " listesini ezamanla" #. Sync memo check box #: ../prefs_gui.c:998 msgid "Sync memo" msgstr "Notlar ezamanla" #. Show sync Manana check box #: ../prefs_gui.c:1003 msgid "Sync Manana" msgstr "Manana'y Ezamanla" #. Show use Japanese Kana extention check box #: ../prefs_gui.c:1009 msgid "Use J-OS (Not Japanese PalmOS:WorkPad/CLIE)" msgstr "J-OS kullan (Japonca PalmOS deil:WorkPad/CLIE)" #. Make a Sync checkbox for each plugin #: ../prefs_gui.c:1022 #, c-format msgid "Sync %s (%s)" msgstr "Ezamanlanyor %s (%s)" #: ../print_gui.c:185 msgid "Print Options" msgstr "Yazdrma Seenekleri" #: ../print_gui.c:198 msgid "Paper Size" msgstr "Kat Boyutu" #: ../print_gui.c:214 msgid "Daily Printout" msgstr "Gnlk Yazc kts" #: ../print_gui.c:220 msgid "Weekly Printout" msgstr "Haftalk Yazc kts" #: ../print_gui.c:226 msgid "Monthly Printout" msgstr "Aylk Yazc kts" #: ../print_gui.c:266 #, fuzzy msgid "Selected record" msgstr "Bir %s kayd silindi." #: ../print_gui.c:270 msgid "All records in this category" msgstr "Bu snftaki tm kaytlar" #: ../print_gui.c:274 msgid "Print all records" msgstr "Tm kaytlar yazdr" #: ../print_gui.c:296 msgid "One record per page" msgstr "Her sayfada bir kayt" #: ../print_gui.c:312 #, fuzzy msgid "Blank lines between each record" msgstr " her kayt arasna bo satr" #. Print Command #: ../print_gui.c:321 msgid "Print Command (e.g. lpr, or cat > file.ps)" msgstr "Yazdrma Komutu (rn:lpr, ya da cat > dosya.ps)" #: ../restore_gui.c:71 ../restore_gui.c:229 msgid "Restore Handheld" msgstr "Avuiini Geri Ykle" #: ../restore_gui.c:176 ../restore_gui.c:178 #, fuzzy msgid "Unable to convert filename for GTK display\n" msgstr "" "GTK gsterimi iin dosya ad dntrlemedi\n" "%s dosyas geri yklenmeyecek\n" #: ../restore_gui.c:177 #, fuzzy msgid "See console log to find which file will not be restored\n" msgstr "" "GTK gsterimi iin dosya ad dntrlemedi\n" "Hangi dosyann geri yklenemeyeceini bulmak iin konsol ktne baknz" #: ../restore_gui.c:179 #, fuzzy, c-format msgid "File %s will not be restored\n" msgstr "Yklenecek dosyalar" #. Label for instructions #: ../restore_gui.c:246 msgid "To restore your handheld:" msgstr "Avuiini geri yklemek iin:" #: ../restore_gui.c:249 #, fuzzy msgid "1. Choose the applications you wish to restore. The default is all." msgstr "" "1. Geri yklemek istediiniz tm uygulamalar seiniz. ntanm tmn seer." #: ../restore_gui.c:252 msgid "2. Enter the User Name and User ID." msgstr "2. Kullanc sim ve Numarasn giriniz." #: ../restore_gui.c:255 msgid "3. Press the OK button." msgstr "3. Tamam dmesine basnz." #: ../restore_gui.c:258 msgid "This will overwrite data that is currently on the handheld." msgstr "Bu ilem, halen avuiinde kaytl verilerin zerine yazacaktr." #: ../search_gui.c:144 msgid "datebook" msgstr "Randevu defteri" #: ../search_gui.c:146 #, fuzzy msgid "calendar" msgstr "Temizle" #: ../search_gui.c:233 msgid "address" msgstr "Adres" #: ../search_gui.c:235 msgid "contact" msgstr "" #: ../search_gui.c:304 msgid "todo" msgstr "i listesi" #: ../search_gui.c:361 msgid "memo" msgstr "Notlar" #: ../search_gui.c:363 #, fuzzy msgid "memos" msgstr "Notlar" #: ../search_gui.c:421 msgid "plugin ?" msgstr "eklenti ?" #: ../search_gui.c:501 msgid "No records found" msgstr "Kayt bulunamad" #: ../search_gui.c:600 msgid "Search" msgstr "Arama" #. Search label #: ../search_gui.c:617 msgid "Search for: " msgstr "Aranacak: " #. Case Sensitive checkbox #: ../search_gui.c:626 msgid "Case Sensitive" msgstr "Byk/kk harf duyarl" #: ../sync.c:120 msgid "open lock file failed\n" msgstr "kilit dosyas ama baarsz\n" #: ../sync.c:133 msgid "lock failed\n" msgstr "kilitleme baarsz\n" #: ../sync.c:136 #, c-format msgid "sync file is locked by pid %d\n" msgstr "ezamanlama dosyas pid %d tarafndan kilitlendi\n" #: ../sync.c:171 msgid "unlock failed\n" msgstr "kilit ama baarsz\n" #: ../sync.c:174 #, c-format msgid "sync is locked by pid %d\n" msgstr "ezamanlama pid %d tarafndan kilitlendi\n" #: ../sync.c:410 #, fuzzy msgid "Check your sync port and settings\n" msgstr "Seri balanty ve ayarlarn kontrol ediniz\n" #: ../sync.c:669 msgid "Unable to read home dir\n" msgstr "Ev dizini okunamad\n" #: ../sync.c:1075 ../sync.c:1413 #, c-format msgid "%s (Creator ID '%s') is up to date, fetch skipped.\n" msgstr "%s (Oluturucu No '%s') gncel, atland.\n" #: ../sync.c:1079 ../sync.c:1417 #, c-format msgid "Fetching '%s' (Creator ID '%s')... " msgstr "'%s' alnyor (Oluturucu No '%s')... " #: ../sync.c:1086 ../sync.c:1423 #, c-format msgid "Failed, unable to create file %s\n" msgstr "Baarsz, dosya oluturulamad, %s\n" #: ../sync.c:1090 ../sync.c:1428 #, c-format msgid "Failed, unable to back up database %s\n" msgstr "Baarsz, %s veritaban yedeklenemedi\n" #: ../sync.c:1094 ../sync.c:1432 ../sync.c:1619 msgid "OK\n" msgstr "Tamam\n" #: ../sync.c:1294 #, c-format msgid "Skipping %s (Creator ID '%s')\n" msgstr "%s atlanyor (Oluturucu No '%s')\n" #: ../sync.c:1488 #, c-format msgid "Installing %s " msgstr "%s ykleniyor " #: ../sync.c:1494 ../sync.c:1530 #, c-format msgid "" "\n" "Unable to open file: '%s': %s!\n" msgstr "" "\n" "Dosya alamyor: '%s': %s!\n" #: ../sync.c:1498 #, c-format msgid "" "\n" "Unable to sync file: '%s': file corrupted?\n" msgstr "" "\n" "Dosya ezamanlanamyor: '%s': bozulmu dosya?\n" #: ../sync.c:1514 #, fuzzy, c-format msgid "(Creator ID '%s')... " msgstr "(Oluturucu No '%s')..." #: ../sync.c:1518 #, fuzzy, c-format msgid "(Creator ID '%s') " msgstr "(Oluturucu No '%s')..." #: ../sync.c:1520 #, fuzzy, c-format msgid "(SDcard dir %s)... " msgstr "(Oluturucu No '%s')..." #: ../sync.c:1552 ../sync.c:1565 ../sync.c:1580 ../sync.c:1593 #, c-format msgid "" "\n" "Unable to open file: %s\n" msgstr "" "\n" "Dosya alamad: %s\n" #: ../sync.c:1605 #, c-format msgid "Install %s failed" msgstr "%s yklenemedi" #: ../sync.c:1609 msgid "Failed.\n" msgstr "Baarsz.\n" #: ../sync.c:1615 #, fuzzy, c-format msgid "Installed %s" msgstr "%s yklendi " #: ../sync.c:1726 #, c-format msgid "%s:%d Error getting app info %s\n" msgstr "%s:%d uyg bilgisi almada hata %s\n" #: ../sync.c:1732 ../sync.c:1762 #, c-format msgid "%s:%d Error unpacking app info %s\n" msgstr "%s:%d uyg bilgisi paketini amada hata %s\n" #: ../sync.c:1753 #, c-format msgid "Error reading appinfo block for %s\n" msgstr "appinfo blou %s iin okuma srasnda hata\n" #. Fix - need a func for this logging #: ../sync.c:1991 ../sync.c:1995 #, c-format msgid "Could not add category %s to remote.\n" msgstr "Uzak'a (remote) %s kategorisi eklenemedi.\n" #: ../sync.c:1992 ../sync.c:1998 #, c-format msgid "Too many categories on remote.\n" msgstr "Uzak'ta (remote) ok sayda kategori.\n" #: ../sync.c:1993 ../sync.c:2001 #, c-format msgid "All records on desktop in %s will be moved to %s.\n" msgstr "%1$s'in masa stndeki tm kaytlar %2$s'e tanacak.\n" #: ../sync.c:2096 ../sync.c:2814 #, c-format msgid "Syncing %s\n" msgstr "%s Ezamanlanyor\n" #: ../sync.c:2104 ../sync.c:2457 ../sync.c:2822 #, c-format msgid "Wrote an %s record." msgstr "Bir %s kayd yazld." #: ../sync.c:2106 ../sync.c:2459 ../sync.c:2824 #, c-format msgid "Writing an %s record failed." msgstr "Bir %s kayd yazlamad." #: ../sync.c:2108 ../sync.c:2461 ../sync.c:2826 #, c-format msgid "Deleting an %s record failed." msgstr "Bir %s kayd silinemedi." #: ../sync.c:2110 ../sync.c:2463 ../sync.c:2828 #, c-format msgid "Deleted an %s record." msgstr "Bir %s kayd silindi." #: ../sync.c:2112 ../sync.c:2465 #, c-format msgid "Sync Conflict: duplicated an %s record." msgstr "Sync Conflict: bir %s kayd iftlendi." #: ../sync.c:2115 ../sync.c:2468 ../sync.c:2831 #, c-format msgid "Wrote a %s record." msgstr "Bir %s kayd yazld." #: ../sync.c:2117 ../sync.c:2470 ../sync.c:2833 #, c-format msgid "Writing a %s record failed." msgstr "Bir %s kayd yazlamad." #: ../sync.c:2119 ../sync.c:2472 ../sync.c:2835 #, c-format msgid "Deleting a %s record failed." msgstr "Bir %s kayd silinemedi." #: ../sync.c:2121 ../sync.c:2474 ../sync.c:2837 #, c-format msgid "Deleted a %s record." msgstr "Bir %s kayd silindi." #: ../sync.c:2123 ../sync.c:2476 #, c-format msgid "Sync Conflict: duplicated a %s record." msgstr "Sync Conflict: bir %s kayd iftlendi." #: ../sync.c:2227 ../sync.c:2557 #, c-format msgid "Sync Conflict: a %s record must be manually merged\n" msgstr "" #: ../sync.c:2358 ../sync.c:2698 msgid "" "dlp_DeleteRecord failed\n" "This could be because the record was already deleted on the Palm\n" msgstr "" "dlp_DeleteRecord baarsz\n" "Kaydn, avuiinden daha nceden silinmi olmasna bal olabilir\n" #: ../sync.c:2927 msgid "Finished installing user information.\n" msgstr "Kullanc bilgisi yklemesi bitti.\n" #: ../sync.c:3084 #, c-format msgid " Syncing on device %s\n" msgstr "%s aygt ezamanlanyor\n" #: ../sync.c:3085 msgid " Press the HotSync button now\n" msgstr " Otomatik Ezamanlama (HotSync) dmesine basnz\n" #: ../sync.c:3127 ../sync.c:3149 ../sync.c:3170 #, c-format msgid "Last Synced Username-->\"%s\"\n" msgstr "Son Ezamanlanm Kullanc Ad-->\"%s\"\n" #: ../sync.c:3128 ../sync.c:3150 ../sync.c:3171 #, c-format msgid "Last Synced UserID-->\"%d\"\n" msgstr "Son Ezamanlanm Kullanc No-->\"%d\"\n" #: ../sync.c:3129 ../sync.c:3151 ../sync.c:3172 #, c-format msgid " This Username-->\"%s\"\n" msgstr " Bu Kullanc Ad-->\"%s\"\n" #: ../sync.c:3130 ../sync.c:3152 ../sync.c:3173 #, c-format msgid " This User ID-->%d\n" msgstr " Bu Kullanc No-->%d\n" #: ../sync.c:3194 #, c-format msgid "Username is \"%s\"\n" msgstr "Kullanc Ad \"%s\"\n" #: ../sync.c:3195 #, c-format msgid "User ID is %d\n" msgstr "Kullanc No %d\n" #: ../sync.c:3197 #, c-format msgid "lastSyncPC = %d\n" msgstr "Son Ezamanlanan PC = %d\n" #: ../sync.c:3198 #, c-format msgid "This PC = %lu\n" msgstr "Bu PC = %lu\n" #: ../sync.c:3222 msgid "Sync canceled\n" msgstr "Ezamanlama iptal edildi\n" #: ../sync.c:3245 msgid "Finished restoring handheld.\n" msgstr "Avuiinin geri yklenmesi bitti.\n" #: ../sync.c:3246 msgid "You may need to sync to update J-Pilot.\n" msgstr "J-Pilot'u gncellemek iin ezamanlamalsnz.\n" #: ../sync.c:3268 msgid "Doing a fast sync.\n" msgstr "Hzl ezamanlanyor.\n" #: ../sync.c:3281 msgid "Doing a slow sync.\n" msgstr "Yava ezamanlanyor.\n" #: ../sync.c:3356 msgid "Thank you for using J-Pilot." msgstr "J-Pilot kullandnz iin teekkrler..." #: ../sync.c:3401 ../sync.c:3469 msgid "Finished.\n" msgstr "Bitti.\n" #: ../sync.c:3436 #, c-format msgid "%s: sync process already in progress (process ID = %d)\n" msgstr "" #: ../sync.c:3437 #, fuzzy, c-format msgid "" "%s: press the HotSync button on the cradle\n" " or stop the sync by using the cancel sync button\n" " or stop the sync by typing \"kill %d\" at the command line\n" msgstr "" "%s: kaidedeki ezamanlama (hotsync) dmesine basnz ya da \"kill %d\"\n" #: ../sync.c:3468 #, c-format msgid "Exiting with status %s\n" msgstr "%s durumuyla klyor\n" #: ../todo.c:266 #, c-format msgid "ToDo description text > %d, truncating to %d\n" msgstr " listesi aklama metni > %d ok uzun, %d'e ksaltlyor\n" #: ../todo.c:272 #, c-format msgid "ToDo note text > %d, truncating to %d\n" msgstr " listesi notu > %1$d ok uzun, %2$d'ye ksaltlyor\n" #: ../todo_gui.c:161 msgid "Due Date" msgstr "Sonlanma Tarihi" #: ../todo_gui.c:532 msgid "File doesn't appear to be todo.dat format\n" msgstr "Dosya ilistesi.dat bieminde gzkmyor\n" #: ../todo_gui.c:596 msgid "DAT/TDA (Palm Archive Formats)" msgstr "" #: ../todo_gui.c:688 #, c-format msgid "" "ToDo exported from %s %s on %s\n" "\n" msgstr "" #: ../todo_gui.c:726 #, c-format msgid "Can't export todo %d\n" msgstr "%d i listesi ihra edilemiyor\n" #: ../todo_gui.c:766 #, fuzzy, c-format msgid "Due Date: None\n" msgstr "Sonlanma Tarihi" #: ../todo_gui.c:769 #, fuzzy, c-format msgid "Due Date: %s\n" msgstr "Sonlanma Tarihi" #: ../todo_gui.c:771 #, fuzzy, c-format msgid "Priority: %d\n" msgstr "ncelik: " #: ../todo_gui.c:772 #, fuzzy, c-format msgid "Completed: %s\n" msgstr "Tamamland" #: ../todo_gui.c:774 #, c-format msgid "Description: %s\n" msgstr "" #: ../todo_gui.c:777 #, c-format msgid "" "Note: %s\n" "\n" msgstr "" #: ../todo_gui.c:1610 msgid "Priority out of range\n" msgstr "ncelik, erim dnda\n" #: ../todo_gui.c:1932 ../KeyRing/keyring.c:1310 #, c-format msgid "No date" msgstr "Tarih yok" #. Completed checkbox #: ../todo_gui.c:2414 msgid "Completed" msgstr "Tamamland" #: ../todo_gui.c:2421 #, fuzzy msgid "Priority:" msgstr "ncelik: " #: ../todo_gui.c:2423 msgid "Set priority Alt+#" msgstr "" #: ../todo_gui.c:2444 msgid "Date Due:" msgstr "Sonlanma Tarihi:" #: ../utils.c:332 msgid "Today" msgstr "Bugn" #: ../utils.c:577 #, c-format msgid "Couldn't find empty DB file %s: %s\n" msgstr "Bo DB dosyas bulunamad %s: %s\n" #: ../utils.c:580 msgid " may not be installed.\n" msgstr " yklenemeyebilir.\n" #. Can't create directory #: ../utils.c:615 ../utils.c:619 #, c-format msgid "Can't create directory %s\n" msgstr "%s dizini oluturulamyor\n" #: ../utils.c:625 #, fuzzy, c-format msgid "%s is not a directory\n" msgstr "%s bir dizin..." #: ../utils.c:630 #, fuzzy, c-format msgid "Unable to get write permission for directory %s\n" msgstr "%s dizininde dosya yazamyorum\n" #: ../utils.c:1330 ../utils.c:1354 msgid "Save Changed Record?" msgstr "Deitirilen kayt kaydedilsin mi?" #: ../utils.c:1331 ../utils.c:1355 msgid "Do you want to save the changes to this record?" msgstr "Deiiklikleri bu kayta kaydetmek istiyor musunuz?" #: ../utils.c:1336 ../utils.c:1360 msgid "Save New Record?" msgstr "Yeni Kayt kaydedilsin mi?" #: ../utils.c:1337 ../utils.c:1361 msgid "Do you want to save this new record?" msgstr "Bu yeni kayd kaydetmek istiyor musunuz?" #: ../utils.c:1652 msgid "infinite loop, breaking\n" msgstr "sonsuz dng, krlyor\n" #: ../utils.c:1876 #, fuzzy, c-format msgid " -p skip loading plugins\n" msgstr " -p eklentilerin yklenmesini atlar.\n" #: ../utils.c:1877 #, fuzzy, c-format msgid " -a ignore missed alarms since the last time program was run\n" msgstr "" " -a bu programn son altrlndan beri karlm alarmlar yoksay.\n" #: ../utils.c:1878 #, fuzzy, c-format msgid " -A ignore all alarms past and future\n" msgstr " -A tm alarmlar yoksayar; gemi ve gelecek.\n" #: ../utils.c:1879 #, c-format msgid " -s start sync using existing instance of GUI\n" msgstr "" #: ../utils.c:1880 #, c-format msgid " -i iconify program immediately after launch\n" msgstr "" #: ../utils.c:1881 #, c-format msgid "" " -geometry {X geometry} use specified geometry for main window\n" "\n" msgstr "" #: ../utils.c:1882 #, fuzzy, c-format msgid " The PILOTPORT and PILOTRATE environment variables specify\n" msgstr "" "PILOTPORT ve PILOTRATE evre deikenleri, hangi porttan ve hangi hzla\n" #: ../utils.c:1883 #, c-format msgid " which port to sync on, and at what speed.\n" msgstr "ezamanlama yaplacan belirler.\n" #: ../utils.c:1884 #, c-format msgid " If PILOTPORT is not set then it defaults to /dev/pilot.\n" msgstr "Eer PILOTPORT atanmamsa, /dev/pilot'a ntanmlanr.\n" #: ../utils.c:1921 msgid "Error reading file" msgstr "Dosya okumada hata" #: ../utils.c:1971 msgid "Date compiled" msgstr "Derleme tarihi" #: ../utils.c:1972 msgid "Compiled with these options:" msgstr "u seeneklerle derlendi:" #: ../utils.c:1974 msgid "Installed Path" msgstr "Ykleme Yolu" #: ../utils.c:1976 msgid "pilot-link version" msgstr "pilot-link srm" #: ../utils.c:1980 msgid "USB support" msgstr "USB destei" #: ../utils.c:1981 ../utils.c:1984 ../utils.c:1990 ../utils.c:1996 #: ../utils.c:2002 ../utils.c:2008 ../utils.c:2013 msgid "yes" msgstr "evet" #: ../utils.c:1982 msgid "Private record support" msgstr "zel kayt destei" #: ../utils.c:1986 ../utils.c:1992 ../utils.c:1998 ../utils.c:2004 #: ../utils.c:2010 msgid "no" msgstr "hayr" #: ../utils.c:1988 msgid "Datebk support" msgstr "Datebk destei" #: ../utils.c:1994 msgid "Plugin support" msgstr "Eklenti destei" #: ../utils.c:2000 msgid "Manana support" msgstr "Manana destei" #: ../utils.c:2006 msgid "NLS support (foreign languages)" msgstr "NLS destei (yabanc diller)" #: ../utils.c:2012 msgid "GTK2 support" msgstr "GTK2 destei" #. No HOME var #: ../utils.c:2055 msgid "Can't get HOME environment variable\n" msgstr "HOME evre deikeni alnamyor\n" #: ../utils.c:2062 #, fuzzy msgid "HOME environment variable is too long to process\n" msgstr "HOME evre deikeniniz benim iin ok uzun\n" #: ../utils.c:2557 #, fuzzy msgid "Edit Categories..." msgstr "Kategorileri Dzenle" #: ../utils.c:3223 msgid "PC ID is 0.\n" msgstr "PC No 0.\n" #: ../utils.c:3224 #, fuzzy, c-format msgid "Generated a new PC ID. It is %lu\n" msgstr "Yeni bir PC No oluturdum: %lu\n" #: ../utils.c:3309 msgid "Invalid UTF-8 encoding in export string\n" msgstr "" #: ../utils.c:3470 #, c-format msgid "Today is %A, %x %X" msgstr "Bugn %A, %x %X" #: ../utils.c:3472 #, c-format msgid "Today is %%A, %s %s" msgstr "Bugn %%A, %s %s" #: ../utils.c:3701 #, c-format msgid "" "Incorrect header format for CSV import\n" "Check line 1 of file %s\n" "Aborting import\n" msgstr "" #: ../utils.c:3738 #, fuzzy, c-format msgid "Error writing version header to file: %s%s\n" msgstr "PC baln dosyaya yazmada hata: next_id\n" #: ../utils.c:3743 #, fuzzy, c-format msgid "Error writing next id to file: %s%s" msgstr "Sonraki kimlii dosyaya yazmada hata: next_id\n" #: ../weekview_gui.c:297 msgid "Weekly View" msgstr "Haftalk Grnm" #: ../weekview_gui.c:337 msgid "Last week Alt+LeftArrow" msgstr "" #: ../weekview_gui.c:366 msgid "Next week Alt+RightArrow" msgstr "" #: ../Expense/expense.c:97 msgid "Australia" msgstr "Avustralya" #: ../Expense/expense.c:98 msgid "Austria" msgstr "Avusturya" #: ../Expense/expense.c:99 msgid "Belgium" msgstr "Belika" #: ../Expense/expense.c:100 msgid "Brazil" msgstr "Brezilya" #: ../Expense/expense.c:101 msgid "Canada" msgstr "Kanada" #: ../Expense/expense.c:102 msgid "Denmark" msgstr "Danimarka" #: ../Expense/expense.c:103 msgid "EU (Euro)" msgstr "EU (Euro)" #: ../Expense/expense.c:104 msgid "Finland" msgstr "Finlandiya" #: ../Expense/expense.c:105 msgid "France" msgstr "Fransa" #: ../Expense/expense.c:106 msgid "Germany" msgstr "Almanya" #: ../Expense/expense.c:107 msgid "Hong Kong" msgstr "Hong Kong" #: ../Expense/expense.c:108 msgid "Iceland" msgstr "zlanda" #: ../Expense/expense.c:109 msgid "India" msgstr "Hindistan" #: ../Expense/expense.c:110 msgid "Indonesia" msgstr "Endonezya" #: ../Expense/expense.c:111 msgid "Ireland" msgstr "rlanda" #: ../Expense/expense.c:112 msgid "Italy" msgstr "talya" #: ../Expense/expense.c:113 msgid "Japan" msgstr "Japonya" #: ../Expense/expense.c:114 msgid "Korea" msgstr "Kore" #: ../Expense/expense.c:115 msgid "Luxembourg" msgstr "Lksemburg" #: ../Expense/expense.c:116 msgid "Malaysia" msgstr "Malezya" #: ../Expense/expense.c:117 msgid "Mexico" msgstr "Meksika" #: ../Expense/expense.c:118 msgid "Netherlands" msgstr "Hollanda" #: ../Expense/expense.c:119 msgid "New Zealand" msgstr "Yeni Zelanda" #: ../Expense/expense.c:120 msgid "Norway" msgstr "Norve" #: ../Expense/expense.c:121 msgid "P.R.C." msgstr "P.R.C." #: ../Expense/expense.c:122 msgid "Philippines" msgstr "Filipinler" #: ../Expense/expense.c:123 msgid "Singapore" msgstr "Singapur" #: ../Expense/expense.c:124 msgid "Spain" msgstr "spanya" #: ../Expense/expense.c:125 msgid "Sweden" msgstr "sve" #: ../Expense/expense.c:126 msgid "Switzerland" msgstr "svire" #: ../Expense/expense.c:127 msgid "Taiwan" msgstr "Tayvan" #: ../Expense/expense.c:128 msgid "Thailand" msgstr "Tayland" #: ../Expense/expense.c:129 msgid "United Kingdom" msgstr "Birleik Krallk" #: ../Expense/expense.c:130 msgid "United States" msgstr "Birleik Devletler" #: ../Expense/expense.c:518 ../Expense/expense.c:529 msgid "Expense" msgstr "Gider" #: ../Expense/expense.c:550 ../Expense/expense.c:1388 msgid "Airfare" msgstr "Uucreti" #: ../Expense/expense.c:552 ../Expense/expense.c:1389 msgid "Breakfast" msgstr "Kahvalt" #: ../Expense/expense.c:554 ../Expense/expense.c:1390 msgid "Bus" msgstr "Otobs" #: ../Expense/expense.c:556 ../Expense/expense.c:1391 msgid "BusinessMeals" msgstr "Yemekleri" #: ../Expense/expense.c:558 ../Expense/expense.c:1392 msgid "CarRental" msgstr "ArabaKiralama" #: ../Expense/expense.c:560 ../Expense/expense.c:1393 msgid "Dinner" msgstr "AkamYemei" #: ../Expense/expense.c:562 ../Expense/expense.c:1394 msgid "Entertainment" msgstr "Elence" #: ../Expense/expense.c:564 ../Expense/expense.c:1395 msgid "Fax" msgstr "Faks" #: ../Expense/expense.c:566 ../Expense/expense.c:1396 msgid "Gas" msgstr "Yakt" #: ../Expense/expense.c:568 ../Expense/expense.c:1397 msgid "Gifts" msgstr "Armaanlar" #: ../Expense/expense.c:570 ../Expense/expense.c:1398 msgid "Hotel" msgstr "Otel" #: ../Expense/expense.c:572 ../Expense/expense.c:1399 msgid "Incidentals" msgstr "Rastlantsallar" #: ../Expense/expense.c:574 ../Expense/expense.c:1400 msgid "Laundry" msgstr "amar" #: ../Expense/expense.c:576 ../Expense/expense.c:1401 msgid "Limo" msgstr "Limo" #: ../Expense/expense.c:578 ../Expense/expense.c:1402 msgid "Lodging" msgstr "Konaklama" #: ../Expense/expense.c:580 ../Expense/expense.c:1403 msgid "Lunch" msgstr "lenYemei" #: ../Expense/expense.c:582 ../Expense/expense.c:1404 msgid "Mileage" msgstr "Uzaklk(mil)" #: ../Expense/expense.c:586 ../Expense/expense.c:1406 msgid "Parking" msgstr "Parketme" #: ../Expense/expense.c:588 ../Expense/expense.c:1407 msgid "Postage" msgstr "Postacreti" #: ../Expense/expense.c:590 ../Expense/expense.c:1408 msgid "Snack" msgstr "Attrma" #: ../Expense/expense.c:592 ../Expense/expense.c:1409 msgid "Subway" msgstr "Metro" #: ../Expense/expense.c:594 ../Expense/expense.c:1410 msgid "Supplies" msgstr "Gereler" #: ../Expense/expense.c:596 ../Expense/expense.c:1411 msgid "Taxi" msgstr "Taksi" #: ../Expense/expense.c:598 ../Expense/expense.c:1412 msgid "Telephone" msgstr "Telefon" #: ../Expense/expense.c:600 ../Expense/expense.c:1413 msgid "Tips" msgstr "pular" #: ../Expense/expense.c:602 ../Expense/expense.c:1414 msgid "Tolls" msgstr "Geicretleri" #: ../Expense/expense.c:604 ../Expense/expense.c:1415 msgid "Train" msgstr "Tren" #: ../Expense/expense.c:1239 msgid "Expense: Unknown expense type\n" msgstr "Gider: Bilinmeyen gider tr\n" #: ../Expense/expense.c:1245 msgid "Expense: Unknown payment type\n" msgstr "Gider: Bilinmeyen deme tr\n" #: ../Expense/expense.c:1377 msgid "American Express" msgstr "Amerikan Ekspres" #: ../Expense/expense.c:1378 msgid "Cash" msgstr "Nakit" #: ../Expense/expense.c:1379 msgid "Check" msgstr "ek" #: ../Expense/expense.c:1380 msgid "Credit Card" msgstr "Kredi Kart" #: ../Expense/expense.c:1381 msgid "Master Card" msgstr "Master Kart" #: ../Expense/expense.c:1382 msgid "Prepaid" msgstr "ncedendenmi" #: ../Expense/expense.c:1383 msgid "VISA" msgstr "VISA" #: ../Expense/expense.c:1619 #, fuzzy msgid "Type" msgstr "Tr:" #: ../Expense/expense.c:1620 #, fuzzy msgid "Amount" msgstr "Miktar:" #. Category Menu #: ../Expense/expense.c:1704 msgid "Category:" msgstr "Snf:" #. Type Menu #: ../Expense/expense.c:1712 msgid "Type:" msgstr "Tr:" #. Payment Menu #: ../Expense/expense.c:1720 msgid "Payment:" msgstr "deme:" #. Currency Menu #: ../Expense/expense.c:1728 msgid "Currency:" msgstr "Para birimi:" #: ../Expense/expense.c:1748 msgid "Month:" msgstr "Ay:" #: ../Expense/expense.c:1762 msgid "Day:" msgstr "Gn:" #: ../Expense/expense.c:1776 msgid "Year:" msgstr "Yl:" #. Amount Entry #: ../Expense/expense.c:1789 msgid "Amount:" msgstr "Miktar:" #. Vendor Entry #: ../Expense/expense.c:1799 msgid "Vendor:" msgstr "Satc:" #. City #: ../Expense/expense.c:1809 msgid "City:" msgstr "ehir:" #. Attendees #: ../Expense/expense.c:1819 msgid "Attendees" msgstr "Katlmclar" #. ------------------------------------------- #: ../Expense/expense.c:2102 #, c-format msgid "" "%s\n" "\n" "Expense plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org" msgstr "" #: ../KeyRing/keyring.c:291 msgid "KeyRing: pack_KeyRing(): buf_size too small\n" msgstr "AnahtarDemeti: pack_KeyRing(): buf_size ok kk\n" #: ../KeyRing/keyring.c:1699 msgid "Incorrect, Reenter KeyRing Password" msgstr "Yanl, AnahtarDemeti Parolasn Tekrar Giriniz" #: ../KeyRing/keyring.c:1701 msgid "Enter a NEW KeyRing Password" msgstr "YEN bir AnahtarDemeti Parolas Giriniz" #: ../KeyRing/keyring.c:1703 msgid "Enter KeyRing Password" msgstr "AnahtarDemeti Parolasn Giriniz" #: ../KeyRing/keyring.c:1769 #, c-format msgid "KeyRing: file %s not found.\n" msgstr "AnahtarDemeti: %s dosyas bulunamad.\n" #: ../KeyRing/keyring.c:1770 msgid "KeyRing: Try Syncing.\n" msgstr "AnahtarDemeti: Ezamanlamay deneyin.\n" #: ../KeyRing/keyring.c:1861 ../KeyRing/keyring.c:1872 msgid "KeyRing" msgstr "AnahtarDemeti" #. ------------------------------------------- #: ../KeyRing/keyring.c:1900 #, c-format msgid "" "%s\n" "\n" "KeyRing plugin for J-Pilot was written by\n" "Judd Montgomery (c) 2001.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "KeyRing is a free PalmOS program for storing\n" "passwords and other information in encrypted form\n" "http://gnukeyring.sourceforge.net" msgstr "" #: ../KeyRing/keyring.c:2137 #, c-format msgid "" "Keys exported from %s %s on %s\n" "\n" msgstr "" #: ../KeyRing/keyring.c:2162 #, fuzzy, c-format msgid "Can't export key %d\n" msgstr "Not ihra edilemiyor %d\n" #: ../KeyRing/keyring.c:2229 msgid "B-FOLDERS CSV" msgstr "" #. Change Password button #: ../KeyRing/keyring.c:2384 msgid "" "Change\n" "KeyRing\n" "Password" msgstr "" "AnahtarDemeti\n" "Parolasn\n" "Deitir" #. Clist #: ../KeyRing/keyring.c:2497 msgid "Changed" msgstr "Deitirildi" #: ../KeyRing/keyring.c:2499 msgid "Account" msgstr "Hesap" #. Name entry #: ../KeyRing/keyring.c:2593 msgid "name: " msgstr "isim: " #. Account entry #: ../KeyRing/keyring.c:2601 msgid "account: " msgstr "hesap: " #. Password entry #: ../KeyRing/keyring.c:2609 msgid "password: " msgstr "parola: " #. Last Changed entry #: ../KeyRing/keyring.c:2616 msgid "last changed: " msgstr "son deitirme: " #. Generate Password button (creates random password) #: ../KeyRing/keyring.c:2626 msgid "Generate Password" msgstr "Parola Olutur" #: ../SyncTime/synctime.c:61 msgid "SyncTime" msgstr "EzamanlamaZaman" #. ------------------------------------------- #: ../SyncTime/synctime.c:72 #, c-format msgid "" "%s\n" "\n" "SyncTime plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "SyncTime WILL NOT work with PalmOS 3.3!" msgstr "" #: ../SyncTime/synctime.c:106 msgid "synctime: Palm OS Version 3.25 and 3.30 do not support SyncTime\n" msgstr "" "synctime: Palm OS 3.25 ve 3.30 srmleri EzamanlamaZaman'n desteklemez\n" #: ../SyncTime/synctime.c:107 msgid "synctime: NOT setting the time on the pilot\n" msgstr "synctime: pilot zerinde zaman ayarlanMIyor\n" #: ../SyncTime/synctime.c:112 msgid "synctime: Setting the time on the pilot... " msgstr "synctime: Pilot zerinde zaman ayarlanyor... " #: ../SyncTime/synctime.c:117 msgid "Done\n" msgstr "Bitti\n" #, fuzzy #~ msgid "Serial Port" #~ msgstr "Seri Oran" #~ msgid " -i makes program iconify itself upon launch.\n" #~ msgstr "" #~ " -i programn almasyla birlikte kendini simgeletirmesini salar\n" #~ msgid "Your HOME environment variable is too long(>1024)\n" #~ msgstr "HOME evre deikeniniz ok uzun(>1024)\n" #~ msgid "W" #~ msgstr "ar" #~ msgid "M" #~ msgstr "Pzt" #~ msgid "This Event has no particular time" #~ msgstr "Bu olayn belirli bir zaman yok" #~ msgid "Start Time" #~ msgstr "Balama Zaman" #~ msgid "End Time" #~ msgstr "Biti Zaman" #~ msgid "email command empty\n" #~ msgstr "eposta komutu bo\n" #~ msgid "Unable to open %s%s file\n" #~ msgstr "%s%s dosyas alamad\n" #~ msgid "Unable to open %s.alarms file\n" #~ msgstr "%s alarmlar dosyas alamyor\n" #~ msgid "You can't edit category %s.\n" #~ msgstr "%s kategorisini dzenleyemezsiniz.\n" #~ msgid "You can't delete category %s.\n" #~ msgstr "%s kategorisini silemezsiniz.\n" #~ msgid "category name" #~ msgstr "kategori ad" #~ msgid "debug" #~ msgstr "hata ayklama" #, fuzzy #~ msgid "End Date: Never\n" #~ msgstr "Biti Tarihi" #, fuzzy #~ msgid "Repeat Days: " #~ msgstr "Yineleme Gn" #~ msgid "Close" #~ msgstr "Kapat" #~ msgid "none" #~ msgstr "hibiri/yok" #~ msgid "Unknown repeatType found in DatebookDB\n" #~ msgstr "RandevudefteriVT'da bilinmeyen yinelemeTr bulundu\n" #~ msgid "Dismiss" #~ msgstr "Bitir" #~ msgid "Done" #~ msgstr "Bitti" #~ msgid "Add" #~ msgstr "Ekle" #~ msgid "Remove" #~ msgstr "kar" #~ msgid "User name" #~ msgstr "Kullanc ad" #~ msgid " -v = version\n" #~ msgstr " -v = srm\n" #~ msgid " -h = help\n" #~ msgstr " -h = yardm\n" #~ msgid " -d = run in debug mode\n" #~ msgstr " -d = sorun giderme kipinde al\n" #~ msgid " -P = do not load plugins.\n" #~ msgstr " -P = eklentileri ykleme.\n" #~ msgid " -b = Do a sync and then a backup, otherwise just do a sync.\n" #~ msgstr "" #~ " -b = Ezmanalyn ve daha sonra yedekleyin, ya da yalnzca ezamanlayn.\n" #~ msgid "Invalid geometry specification: \"%s\"\n" #~ msgstr "Geersiz geometri betimlemesi: \"%s\"\n" #~ msgid "/Help/PayBack program" #~ msgstr "/Yardm/PayBack program" #~ msgid "Font Selection Dialog" #~ msgstr "Yaztipi Seme letiim Kutusu" #~ msgid "Show private records" #~ msgstr "zel kaytlar gster" #~ msgid "Hide private records" #~ msgstr "zel kaytlar gizle" #~ msgid "Mask private records" #~ msgstr "zel kaytlar maskele" #~ msgid "Font" #~ msgstr "Yaz tipi" #~ msgid "Go to the menu \"" #~ msgstr "Menye git \"" #~ msgid "\" and change the \"" #~ msgstr "\" ve unu deitir \"" #~ msgid "\"." #~ msgstr "\"." #~ msgid "Couldn't open PC records file\n" #~ msgstr "PC kayt dosyas alamyor\n" #~ msgid "The first day of the week is " #~ msgstr "Haftann ilk gn " #~ msgid "One record" #~ msgstr "Bir kayt" #~ msgid "Finished\n" #~ msgstr "Bitti\n" #~ msgid "Last Username = [%s]\n" #~ msgstr "Son Kullanc Ad = [%s]\n" #~ msgid "Last UserID = %d\n" #~ msgstr "Son Kullanc No = %d\n" #~ msgid "Username = [%s]\n" #~ msgstr "Kullanc Ad = [%s]\n" #~ msgid "userID = %d\n" #~ msgstr "Kullanc No = %d\n" #~ msgid "number of records = %d\n" #~ msgstr "kayt says = %d\n" #~ msgid "palm: number of records = %d\n" #~ msgstr "avuii: kayt says = %d\n" #~ msgid "disk: number of records = %d\n" #~ msgstr "disk: kayt says = %d\n" #, fuzzy #~ msgid "Your HOME environment variable is too long for me\n" #~ msgstr "HOME evre deikeniniz ok uzun(>1024)\n" #~ msgid "" #~ "%s doesn't appear to be a directory.\n" #~ "I need it to be.\n" #~ msgstr "" #~ "%s bir dizin gibi grnmyor.\n" #~ "yle olmal(yd).\n" #, fuzzy #~ msgid "I can't write files in directory %s\n" #~ msgstr "%s dizini oluturulamyor\n" #~ msgid "Expense: Unknown category\n" #~ msgstr "Gider: Bilinmeyen kategori\n" #~ msgid "Field" #~ msgstr "Alan" #~ msgid "Serial Port (/dev/ttyS0, /dev/pilot)" #~ msgstr "Seri Balant (/dev/ttyS0, /dev/pilot)" jpilot-1.8.1.2/po/pt_BR.po0000644000175000017500000026323011702307204012071 00000000000000# Brazilian Portuguese translation of J-Pilot. # This file is distributed under the same license as the J-Pilot package. # # Leonardo Ferreira Fontenelle , 2007. msgid "" msgstr "" "Project-Id-Version: Jpilot 0.99.9\n" "Report-Msgid-Bugs-To: jpilot-devel@jpilot.org\n" "POT-Creation-Date: 2012-01-08 13:39+0100\n" "PO-Revision-Date: 2007-06-17 22:59-0300\n" "Last-Translator: Frederico Goncalves Guimaraes \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Portuguese\n" "X-Poedit-Country: BRAZIL\n" "X-Poedit-SourceCharset: utf-8\n" "X-Generator: KBabel 1.11.4\n" #: ../address.c:276 ../address.c:448 ../alarms.c:332 ../calendar.c:309 #: ../calendar.c:547 ../contact.c:324 ../contact.c:738 ../dat.c:189 #: ../dat.c:655 ../dat.c:859 ../dat.c:993 ../dat.c:1132 ../datebook.c:130 #: ../datebook.c:165 ../datebook.c:172 ../datebook.c:231 ../jpilot.c:1254 #: ../jpilot-merge.c:95 ../libplugin.c:208 ../libplugin.c:455 #: ../libplugin.c:534 ../libplugin.c:563 ../libplugin.c:811 ../memo.c:214 #: ../memo.c:287 ../otherconv.c:280 ../plugins.c:112 ../prefs.c:350 #: ../prefs.c:375 ../prefs.c:906 ../sync.c:2170 ../sync.c:2187 ../sync.c:2296 #: ../sync.c:2310 ../sync.c:2507 ../sync.c:2646 ../todo.c:236 ../todo.c:490 #: ../utils.c:748 #, c-format msgid "Out of memory" msgstr "Memória insuficiente" #: ../address.c:332 ../calendar.c:230 ../contact.c:580 ../datebook.c:494 #: ../memo.c:87 ../todo.c:90 #, fuzzy, c-format msgid "%s:%d Error reading application info %s\n" msgstr "%s:%d Erro lendo informações de categoria %s\n" #: ../address.c:344 ../address_gui.c:2285 ../address_gui.c:2324 #: ../calendar.c:246 ../contact.c:596 ../datebook.c:514 ../datebook_gui.c:3737 #: ../libplugin.c:405 ../libplugin.c:431 ../memo.c:99 ../memo_gui.c:863 #: ../todo_gui.c:1070 ../Expense/expense.c:1105 #, c-format msgid "Error reading file: %s\n" msgstr "Erro abrindo arquivo: %s\n" #: ../address.c:492 ../calendar.c:598 ../calendar.c:607 ../contact.c:780 #: ../libplugin.c:846 ../memo.c:353 ../todo.c:302 ../utils.c:1124 #: ../utils.c:1131 ../utils.c:1138 ../utils.c:1145 ../utils.c:1152 #: ../utils.c:1159 msgid "error" msgstr "erro" #: ../address_gui.c:325 ../datebook_gui.c:2844 ../memo_gui.c:176 #: ../todo_gui.c:292 ../KeyRing/keyring.c:834 msgid "" "This record is deleted.\n" "Undelete it or copy it to make changes.\n" msgstr "" "O registro foi excluído.\n" "Reverta sua exclusão ou copie-o para fazer alterações.\n" #: ../address_gui.c:452 ../address_gui.c:458 ../address_gui.c:469 #: ../address_gui.c:481 ../address_gui.c:493 ../address_gui.c:506 #, fuzzy, c-format msgid "%s%s: %s" msgstr "%%a., %s" #: ../address_gui.c:542 ../category.c:118 ../category.c:176 ../category.c:330 #: ../category.c:336 ../datebook_gui.c:430 ../jpilot-merge.c:88 #: ../jpilot-merge.c:146 ../jpilot-merge.c:151 ../memo_gui.c:280 #: ../sync.c:2129 ../sync.c:2135 ../sync.c:2481 ../sync.c:2842 #: ../todo_gui.c:416 ../utils.c:2674 ../utils.c:2711 ../utils.c:2717 #: ../utils.c:2776 ../utils.c:2782 ../utils.c:2836 ../utils.c:2890 #: ../utils.c:2896 ../utils.c:2954 ../utils.c:2961 #, c-format msgid "Unable to open file: %s\n" msgstr "Não foi possível abrir arquivo: %s\n" #: ../address_gui.c:561 #, fuzzy, c-format msgid "Unable to read file: %s\n" msgstr "Não foi possível abrir arquivo: %s\n" #: ../address_gui.c:715 msgid "File doesn't appear to be address.dat format\n" msgstr "Arquivo não parece seguir o formato address.dat\n" #: ../address_gui.c:725 ../datebook_gui.c:647 ../memo_gui.c:324 #: ../memo_gui.c:417 ../todo_gui.c:542 ../Expense/expense.c:1384 msgid "Unfiled" msgstr "Não arquivado" #: ../address_gui.c:781 ../datebook_gui.c:698 ../memo_gui.c:470 #: ../todo_gui.c:595 msgid "CSV (Comma Separated Values)" msgstr "" #: ../address_gui.c:782 msgid "DAT/ABA (Palm Archive Formats)" msgstr "" #. current category name #. previous category name #. entry text, in Pilot character set #: ../address_gui.c:868 ../category.c:408 ../datebook_gui.c:729 #: ../jpilot.c:234 ../jpilot.c:278 ../jpilot.c:352 ../jpilot.c:396 #: ../jpilot.c:953 ../memo_gui.c:506 ../todo_gui.c:635 ../utils.c:1305 #: ../KeyRing/keyring.c:2090 msgid "OK" msgstr "OK" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "No" msgstr "Não" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "Yes" msgstr "Sim" #: ../address_gui.c:888 ../datebook_gui.c:753 ../memo_gui.c:520 #: ../todo_gui.c:655 ../KeyRing/keyring.c:2104 #, c-format msgid "%s is a directory" msgstr "%s é um diretório" #: ../address_gui.c:890 ../address_gui.c:907 ../datebook_gui.c:755 #: ../datebook_gui.c:772 ../memo_gui.c:522 ../memo_gui.c:539 ../todo_gui.c:657 #: ../todo_gui.c:674 ../KeyRing/keyring.c:2106 ../KeyRing/keyring.c:2123 msgid "Error Opening File" msgstr "Erro Abrindo Arquivo" #: ../address_gui.c:894 ../datebook_gui.c:759 ../memo_gui.c:526 #: ../todo_gui.c:661 ../KeyRing/keyring.c:2110 #, c-format msgid "Do you want to overwrite file %s?" msgstr "Deseja sobrescrever o arquivo %s?" #: ../address_gui.c:896 ../datebook_gui.c:761 ../memo_gui.c:528 #: ../todo_gui.c:663 ../KeyRing/keyring.c:2112 msgid "Overwrite File?" msgstr "Sobrescrever Arquivo?" #: ../address_gui.c:905 ../datebook_gui.c:770 ../memo_gui.c:537 #: ../todo_gui.c:672 ../KeyRing/keyring.c:2121 #, c-format msgid "Error opening file: %s" msgstr "Erro abrindo arquivo: %s" #: ../address_gui.c:922 #, c-format msgid "" "Address exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:925 #, c-format msgid "" "Contact exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:989 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ldif file may not be standards-compliant\n" msgstr "" #: ../address_gui.c:1002 #, c-format msgid "Can't export address %d\n" msgstr "Não foi possível exportar endereço %d\n" #: ../address_gui.c:1008 ../memo_gui.c:630 ../todo_gui.c:760 #, fuzzy, c-format msgid "Category: %s\n" msgstr "Categoria:" #: ../address_gui.c:1010 ../memo_gui.c:632 ../todo_gui.c:763 #, fuzzy, c-format msgid "Private: %s\n" msgstr "Particular" #: ../address_gui.c:1018 ../address_gui.c:1032 ../address_gui.c:1036 #: ../address_gui.c:1045 ../address_gui.c:1048 #, fuzzy, c-format msgid "%s: " msgstr "%%a., %s" #: ../address_gui.c:1022 #, c-format msgid "%s\n" msgstr "" #. E-mail should be the Palm dropdown menu item for email #. Set dial/email button text and callback data #: ../address_gui.c:1196 ../address_gui.c:2846 ../address_gui.c:4185 msgid "E-mail" msgstr "E-mail" #: ../address_gui.c:1482 ../datebook_gui.c:1147 ../memo_gui.c:640 #: ../todo_gui.c:844 ../KeyRing/keyring.c:2214 msgid "Unknown export type\n" msgstr "Tipo de exportação desconhecido\n" #: ../address_gui.c:1508 ../datebook_gui.c:1226 ../memo_gui.c:469 #: ../memo_gui.c:666 ../todo_gui.c:870 ../KeyRing/keyring.c:2229 msgid "Text" msgstr "" #: ../address_gui.c:1509 ../datebook_gui.c:1227 ../memo_gui.c:667 #: ../todo_gui.c:871 ../KeyRing/keyring.c:2229 msgid "CSV" msgstr "" #: ../address_gui.c:1510 #, fuzzy msgid "vCard" msgstr "Limpar" #: ../address_gui.c:1511 msgid "vCard (Optimized for Gmail/Android Import)" msgstr "" #: ../address_gui.c:1512 msgid "ldif" msgstr "" #. Initialize variable if default case taken #: ../address_gui.c:1777 ../address_gui.c:3902 #, fuzzy msgid "Last Name/Company" msgstr "Nome/Empresa" #: ../address_gui.c:1780 ../address_gui.c:3905 #, fuzzy msgid "First Name/Company" msgstr "Nome/Empresa" #: ../address_gui.c:1783 ../address_gui.c:3908 #, fuzzy msgid "Company/Last Name" msgstr "Empresa/Nome" #: ../address_gui.c:1920 ../datebook_gui.c:2907 ../memo_gui.c:1036 #: ../todo_gui.c:1329 ../KeyRing/keyring.c:1181 msgid "You can't modify a record that is deleted\n" msgstr "Você não pode modificar um registro excluído\n" #. Illegal category, Assume that category 0 is Unfiled and valid #: ../address_gui.c:2119 ../address_gui.c:2370 ../address_gui.c:2803 #: ../address_gui.c:2809 ../address_gui.c:3601 ../datebook_gui.c:1994 #: ../datebook_gui.c:3434 ../datebook_gui.c:3783 ../datebook_gui.c:4074 #: ../memo_gui.c:900 ../memo_gui.c:946 ../memo_gui.c:1161 ../memo_gui.c:1548 #: ../todo_gui.c:1106 ../todo_gui.c:1200 ../todo_gui.c:1589 ../todo_gui.c:2141 #: ../Expense/expense.c:689 ../Expense/expense.c:1143 #: ../Expense/expense.c:1227 ../Expense/expense.c:1887 #: ../KeyRing/keyring.c:1070 ../KeyRing/keyring.c:1512 #: ../KeyRing/keyring.c:1574 ../KeyRing/keyring.c:2688 msgid "Category is not legal\n" msgstr "Categoria ilegal\n" #: ../address_gui.c:2179 ../alarms.c:598 ../dialer.c:164 #, c-format msgid "executing command = [%s]\n" msgstr "executando comando = [%s]\n" #: ../address_gui.c:2181 #, fuzzy, c-format msgid "Failed to execute [%s]\n" msgstr "Falha: não foi possível criar arquivo %s\n" #: ../address_gui.c:2425 msgid "Birthday" msgstr "" #: ../address_gui.c:2521 msgid "External program not found, or other error" msgstr "" #: ../address_gui.c:2523 msgid "" "J-Pilot can not find the external program \"convert\"\n" "or an error occurred while executing convert.\n" "You may need to install package ImageMagick" msgstr "" #: ../address_gui.c:2524 #, c-format msgid "Command executed was \"%s\"\n" msgstr "" #: ../address_gui.c:2525 #, c-format msgid "return code was %d\n" msgstr "" #: ../address_gui.c:2603 #, fuzzy msgid "chdir() failed\n" msgstr "falha em travar\n" #: ../address_gui.c:2606 msgid "Add Photo" msgstr "" #. Category menu #: ../address_gui.c:2828 ../KeyRing/keyring.c:2585 msgid "Category: " msgstr "Categoria:" #: ../address_gui.c:2848 ../address_gui.c:4186 msgid "Mail" msgstr "Escr." #. Dial Phone Button #: ../address_gui.c:2851 ../address_gui.c:4189 ../dialer.c:307 ../dialer.c:331 msgid "Dial" msgstr "Disc." #: ../address_gui.c:3041 ../datebook_gui.c:2757 ../memo_gui.c:1228 #: ../todo_gui.c:1697 msgid "Could not get temporary file name\n" msgstr "" #: ../address_gui.c:3049 ../datebook_gui.c:2765 ../memo_gui.c:1236 #: ../todo_gui.c:1705 msgid "Could not open temporary file for external editor\n" msgstr "" #: ../address_gui.c:3089 ../datebook_gui.c:2806 ../memo_gui.c:1277 #: ../todo_gui.c:1746 msgid "Could not open temporary file from external editor\n" msgstr "" #: ../address_gui.c:3261 ../address_gui.c:3292 msgid "-Unnamed-" msgstr "-Sem nome-" #: ../address_gui.c:3374 ../memo_gui.c:1454 ../todo_gui.c:2019 msgid "0 records" msgstr "0 registro" #: ../address_gui.c:3377 ../datebook_gui.c:2637 ../memo_gui.c:1457 #: ../todo_gui.c:2022 #, c-format msgid "%d of %d records" msgstr "%d de %d registros" #: ../address_gui.c:3772 ../address_gui.c:3780 ../KeyRing/keyring.c:2498 msgid "Name" msgstr "Nome" #: ../address_gui.c:3773 ../address_gui.c:3774 ../address_gui.c:3775 #: ../address_gui.c:3781 msgid "Address" msgstr "Endereço" #: ../address_gui.c:3776 ../address_gui.c:3782 ../Expense/expense.c:584 #: ../Expense/expense.c:1405 msgid "Other" msgstr "Outro" #. Note textbox #: ../address_gui.c:3777 ../address_gui.c:3783 ../todo_gui.c:2484 #: ../Expense/expense.c:1836 ../KeyRing/keyring.c:2632 msgid "Note" msgstr "Nota" #: ../address_gui.c:3793 msgid "Reverting to Address database\n" msgstr "" #: ../address_gui.c:3914 msgid "Phone" msgstr "Telefone" #: ../address_gui.c:3946 msgid "Quick Find: " msgstr "Localizar:" #. Cancel button #. Add record modification buttons #. Cancel button #: ../address_gui.c:3964 ../category.c:409 ../datebook_gui.c:1782 #: ../datebook_gui.c:5124 ../memo_gui.c:1692 ../todo_gui.c:2345 #: ../utils.c:1346 ../KeyRing/keyring.c:2528 msgid "Cancel" msgstr "Cancelar" #: ../address_gui.c:3964 ../datebook_gui.c:5124 ../memo_gui.c:1692 #: ../todo_gui.c:2345 ../KeyRing/keyring.c:2528 msgid "Cancel the modifications" msgstr "Cancela as modificações" #. Delete Button #. Delete button #. Delete Button #. Delete button #. Delete, Copy, New, etc. buttons #. Delete button #: ../address_gui.c:3969 ../category.c:409 ../category.c:852 #: ../datebook_gui.c:5129 ../memo_gui.c:1697 ../todo_gui.c:2350 #: ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete" msgstr "Excluir" #: ../address_gui.c:3969 ../datebook_gui.c:5129 ../memo_gui.c:1697 #: ../todo_gui.c:2350 ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete the selected record" msgstr "Exclui o registro selecionado" #. Undelete Button #. Undelete button #. Undelete Button #. Undelete button #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 msgid "Undelete" msgstr "Desfazer Exclusão" #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 msgid "Undelete the selected record" msgstr "Desfaz a exclusão do registro" #. Copy button #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy" msgstr "Copiar" #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy the selected record" msgstr "Copia o registro selecionado" #. New button #. New Record button #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "New Record" msgstr "Novo Registro" #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "Add a new record" msgstr "Adiciona um novo registro" #. "Add Record" button #. Add Record button #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add Record" msgstr "Adicionar Registro" #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add the new record" msgstr "Adiciona o novo registro" #. "Apply Changes" button #. Apply Changes button #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Apply Changes" msgstr "Aplicar Mudanças" #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Commit the modifications" msgstr "Aplica as modificações" #. Private check box #. Private checkbox #: ../address_gui.c:4033 ../datebook_gui.c:5191 ../datebook_gui.c:5233 #: ../memo_gui.c:1747 ../todo_gui.c:2410 msgid "Private" msgstr "Particular" #: ../address_gui.c:4118 #, fuzzy msgid "Change Photo" msgstr "Alterado" #: ../address_gui.c:4123 #, fuzzy msgid "Remove Photo" msgstr "Remover" #: ../address_gui.c:4195 #, fuzzy msgid "Show In List" msgstr "" "Mostrar\n" "na lista" #: ../address_gui.c:4296 #, fuzzy msgid "Reminder" msgstr "Lembrar-me" #: ../address_gui.c:4312 ../datebook_gui.c:238 ../datebook_gui.c:5221 #: ../datebook_gui.c:5378 msgid "Days" msgstr "Dias" #. The Quickview (ALL) page #. All button #: ../address_gui.c:4356 ../datebook_gui.c:1478 ../datebook_gui.c:1782 #: ../utils.c:2528 msgid "All" msgstr "Todas" #: ../alarms.c:232 ../datebook_gui.c:236 ../datebook_gui.c:5215 #: ../datebook_gui.c:5372 msgid "Minutes" msgstr "Minutos" #: ../alarms.c:234 ../datebook_gui.c:237 ../datebook_gui.c:5219 #: ../datebook_gui.c:5376 msgid "Hours" msgstr "Horas" #: ../alarms.c:255 msgid "Remind me" msgstr "Lembrar-me" #: ../alarms.c:425 ../alarms.c:991 ../sync.c:1639 ../sync.c:1645 #: ../utils.c:3717 #, c-format msgid "Unable to open file: %s%s\n" msgstr "Não foi possível abrir arquivo: %s%s\n" #: ../alarms.c:512 msgid "Appointment Reminder" msgstr "Lembrete de Compromisso" #: ../alarms.c:515 msgid "Past Appointment" msgstr "Compromisso Passado" #: ../alarms.c:518 msgid "Postponed Appointment" msgstr "Compromisso Adiado" #: ../alarms.c:521 ../datebook_gui.c:5025 msgid "Appointment" msgstr "Compromisso" #: ../alarms.c:605 msgid "J-Pilot Alarm" msgstr "Alarme J-Pilot" #: ../category.c:131 ../category.c:188 ../sync.c:2158 ../sync.c:2495 msgid "PC file corrupt?\n" msgstr "Arquivo corrompido no PC?\n" #: ../category.c:138 ../category.c:148 ../category.c:196 ../category.c:206 #: ../category.c:216 ../sync.c:2280 ../sync.c:2334 ../sync.c:2371 #: ../sync.c:2386 ../sync.c:2410 ../sync.c:2630 ../sync.c:2675 ../sync.c:2712 #: ../sync.c:2725 ../sync.c:2750 msgid "fseek failed - fatal error\n" msgstr "Falha no fseek - erro fatal\n" #: ../category.c:364 ../utils.c:2738 ../utils.c:2812 ../utils.c:2916 #: ../utils.c:2981 msgid "rename failed" msgstr "falha ao renomear" #: ../category.c:409 msgid "Move" msgstr "Mover" #: ../category.c:438 ../category.c:500 ../category.c:580 ../category.c:769 msgid "Edit Categories" msgstr "Editar Categorias" #: ../category.c:439 msgid "The maximum number of categories (16) are already used" msgstr "O número máximo de categorias (16) já foi atingido" #: ../category.c:442 msgid "Enter New Category" msgstr "Digite Nova Categoria" #: ../category.c:453 ../category.c:477 msgid "Edit Categories Error" msgstr "Erro ao Editar Categorias" #: ../category.c:454 msgid "You must select a category to rename" msgstr "Você deve selecionar uma categoria para renomear" #: ../category.c:463 msgid "Enter New Category Name" msgstr "Digite um Novo Nome de Categoria" #: ../category.c:478 msgid "You must select a category to delete" msgstr "Você deve selecionar uma categoria para excluir" #: ../category.c:496 #, c-format msgid "" "There are %d records in %s.\n" "Do you want to move them to %s, or delete them?" msgstr "" "Existem %d registros em %s.\n" "Você gostaria de movê-los para %s, ou excluí-los?" #: ../category.c:556 #, c-format msgid "invalid state file %s line %d\n" msgstr "estado inválido no arquivo %s, linha %d\n" #: ../category.c:578 #, c-format msgid "The category %s can't be used more than once" msgstr "A categoria %s não pode ser usada mais de uma vez" #. Category names in host character set #: ../category.c:735 #, fuzzy msgid "Category" msgstr "Categoria:" #: ../category.c:836 msgid "New" msgstr "Nova" #: ../category.c:843 msgid "Rename" msgstr "Renomear" #: ../dat.c:456 msgid "unknown type =" msgstr "tipo desconhecido =" #: ../dat.c:537 #, c-format msgid "fields per row count != %d, unknown format\n" msgstr "conta de campos por coluna != %d, formato desconhecido\n" #: ../dat.c:551 #, c-format msgid "field count != %d, unknown format\n" msgstr "conta de campos != %d, formato desconhecido\n" #: ../dat.c:559 msgid "Unknown format, file has wrong schema\n" msgstr "Formato desconhecido, arquivo tem esquema incorreto\n" #: ../dat.c:560 msgid "File schema is:" msgstr "Esquema de arquivo é:" #: ../dat.c:564 #, fuzzy msgid "It should be:" msgstr "Deveria ser:" #: ../dat.c:674 ../dat.c:692 ../dat.c:876 ../dat.c:889 ../dat.c:1012 #: ../dat.c:1025 ../dat.c:1149 ../dat.c:1162 #, c-format msgid "%s:%d Record %d, field %d: Invalid type. Expected %d, found %d\n" msgstr "" "%s:%d Registro %d, campo %d: Tipo inválido. Esperava-se %d, encontrou-se %d\n" #: ../dat.c:675 ../dat.c:693 ../dat.c:877 ../dat.c:890 ../dat.c:994 #: ../dat.c:1013 ../dat.c:1026 ../dat.c:1150 ../dat.c:1163 msgid "read of file terminated\n" msgstr "leitura do arquivo terminada\n" #: ../datebook.c:705 ../datebook_gui.c:3648 #, c-format msgid "Unknown repeatType (%d) found in DatebookDB\n" msgstr "Foi encontrado repeatType (%d) desconhecido em DatebookDB\n" #: ../datebook_gui.c:241 #, fuzzy msgid "Repeat Never" msgstr "Repetir por:" #: ../datebook_gui.c:242 #, fuzzy msgid "Repeat Daily" msgstr "Repetir nos dias:" #: ../datebook_gui.c:243 #, fuzzy msgid "Repeat Weekly" msgstr "Repetir por:" #: ../datebook_gui.c:244 #, fuzzy msgid "Repeat MonthlyByDay" msgstr "Repetir nos dias:" #: ../datebook_gui.c:245 #, fuzzy msgid "Repeat MonthlyByDate" msgstr "Repetir nos dias:" #: ../datebook_gui.c:246 msgid "Repeat YearlyDate" msgstr "" #: ../datebook_gui.c:247 #, fuzzy msgid "Repeat YearlyDay" msgstr "Repetir nos dias:" #: ../datebook_gui.c:250 ../datebook_gui.c:257 ../datebook_gui.c:4803 #: ../datebook_gui.c:4810 msgid "Su" msgstr "Dom" #: ../datebook_gui.c:251 ../datebook_gui.c:4804 msgid "Mo" msgstr "Seg" #: ../datebook_gui.c:252 ../datebook_gui.c:4805 msgid "Tu" msgstr "Ter" #: ../datebook_gui.c:253 ../datebook_gui.c:4806 msgid "We" msgstr "Qua" #: ../datebook_gui.c:254 ../datebook_gui.c:4807 msgid "Th" msgstr "Qui" #: ../datebook_gui.c:255 ../datebook_gui.c:4808 msgid "Fr" msgstr "Sex" #: ../datebook_gui.c:256 ../datebook_gui.c:4809 msgid "Sa" msgstr "Sáb" #: ../datebook_gui.c:269 #, c-format msgid "" "Start Date: %s\n" "Time: Event" msgstr "" #: ../datebook_gui.c:277 #, c-format msgid "" "Start Date: %s\n" "Time: %s to %s" msgstr "" #: ../datebook_gui.c:287 ../datebook_gui.c:297 msgid "Unknown" msgstr "" #. End Date #: ../datebook_gui.c:300 #, fuzzy msgid "End Date: " msgstr "Terminar em" #: ../datebook_gui.c:302 msgid "Never" msgstr "" #: ../datebook_gui.c:308 #, c-format msgid "Repeat Frequency: %d\n" msgstr "" #: ../datebook_gui.c:316 #, c-format msgid "Monthly Repeat Day %d\n" msgstr "" #: ../datebook_gui.c:321 ../datebook_gui.c:5520 msgid "Repeat on Days:" msgstr "Repetir nos dias:" #: ../datebook_gui.c:332 #, fuzzy, c-format msgid "Number of exceptions: %d" msgstr "número de registros = %d\n" #: ../datebook_gui.c:338 msgid "" "\n" "more..." msgstr "" #: ../datebook_gui.c:359 ../datebook_gui.c:386 msgid "Description:" msgstr "" #: ../datebook_gui.c:360 ../datebook_gui.c:387 #, fuzzy msgid "Note:" msgstr "Nota" #: ../datebook_gui.c:362 ../datebook_gui.c:390 #, fuzzy msgid "Alarm:" msgstr "Alarme" #: ../datebook_gui.c:363 ../datebook_gui.c:391 #, fuzzy msgid "Repeat Type:" msgstr "Repetir por:" #: ../datebook_gui.c:366 ../datebook_gui.c:394 #, fuzzy msgid "Start of Week:" msgstr "Dia da semana" #: ../datebook_gui.c:388 ../datebook_gui.c:5343 msgid "Location:" msgstr "" #: ../datebook_gui.c:620 ../datebook_gui.c:2271 #, c-format msgid "Appointment description text > %d, truncating to %d\n" msgstr "Texto descritor de compromisso > %d, truncando para %d\n" #: ../datebook_gui.c:631 ../datebook_gui.c:1148 ../datebook_gui.c:2331 #: ../datebook_gui.c:2338 msgid "Error" msgstr "Erro" #: ../datebook_gui.c:632 msgid "File doesn't appear to be datebook.dat format\n" msgstr "Arquivo não parece seguir o formato datebook.dat\n" #: ../datebook_gui.c:699 msgid "DAT/DBA (Palm Archive Formats)" msgstr "" #: ../datebook_gui.c:787 #, c-format msgid "" "Datebook exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:790 #, c-format msgid "" "Calendar exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:817 ../todo_gui.c:701 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ical file may not be standards-compliant\n" msgstr "" #: ../datebook_gui.c:1148 msgid "Unknown export type" msgstr "Tipo de exportação desconhecido" #: ../datebook_gui.c:1228 ../todo_gui.c:872 #, fuzzy msgid "iCalendar" msgstr "Limpar" #: ../datebook_gui.c:1240 ../export_gui.c:251 ../jpilot.c:429 msgid "Export" msgstr "Exportar" #. Label for instructions #: ../datebook_gui.c:1257 msgid "Export All Datebook Records" msgstr "Exportar Todos os Registros de Calendário" #: ../datebook_gui.c:1276 ../export_gui.c:316 msgid "Save as" msgstr "Salvar como" #. Browse button #: ../datebook_gui.c:1286 ../export_gui.c:329 msgid "Browse" msgstr "Procurar" #: ../datebook_gui.c:1432 msgid "Datebook Categories" msgstr "Categorias do Calendário" #. None button #. Labels for notebook tabs #: ../datebook_gui.c:1484 ../datebook_gui.c:2026 ../datebook_gui.c:5449 msgid "None" msgstr "Nenhuma" #: ../datebook_gui.c:1633 msgid "Begin On Date" msgstr "Começar em" #: ../datebook_gui.c:1639 msgid "End On Date" msgstr "Terminar em" #: ../datebook_gui.c:1751 ../prefs.c:451 msgid "Sunday" msgstr "Domingo" #: ../datebook_gui.c:1752 ../prefs.c:452 msgid "Monday" msgstr "Segunda-feira" #: ../datebook_gui.c:1753 msgid "Tuesday" msgstr "Terça-feira" #: ../datebook_gui.c:1754 msgid "Wednesday" msgstr "Quarta-feira" #: ../datebook_gui.c:1755 msgid "Thursday" msgstr "Quinta-feira" #: ../datebook_gui.c:1756 msgid "Friday" msgstr "Sexta-feira" #: ../datebook_gui.c:1757 msgid "Saturday" msgstr "Sábado" #: ../datebook_gui.c:1760 msgid "4th" msgstr "4ª" #: ../datebook_gui.c:1760 msgid "Last" msgstr "Última" #: ../datebook_gui.c:1763 #, c-format msgid "" "This appointment can either\n" "repeat on the 4th %s\n" "of the month, or on the last\n" "%s of the month.\n" "Which do you want?" msgstr "" "Este compromisso pode ser\n" "repetido na 4ª %s do mês\n" "ou na última %s do mês.\n" "O que você prefere?" #: ../datebook_gui.c:1770 ../datebook_gui.c:1786 msgid "Question?" msgstr "Dúvida?" #: ../datebook_gui.c:1777 #, fuzzy msgid "" "This is a repeating event.\n" "Do you want to apply these changes to\n" "only the CURRENT event,\n" "just FUTURE events, or\n" "ALL of the occurrences of this event?" msgstr "" "Este é um evento repetido.\n" "Você quer aplicar as mudanças\n" "no evento ATUAL, ou em\n" "TODAS as ocorrências do evento?" #: ../datebook_gui.c:1782 msgid "Current" msgstr "Atual" #: ../datebook_gui.c:1782 msgid "Future" msgstr "" #: ../datebook_gui.c:2027 msgid "day" msgstr "dia" #: ../datebook_gui.c:2028 msgid "week" msgstr "semana" #: ../datebook_gui.c:2029 msgid "month" msgstr "mês" #: ../datebook_gui.c:2030 msgid "year" msgstr "ano" #: ../datebook_gui.c:2326 ../datebook_gui.c:2329 #, c-format msgid "You cannot have an appointment that repeats every %d %s(s)\n" msgstr "Não é possível ter compromissos que se repitam a cada %d %s(s)\n" #: ../datebook_gui.c:2339 #, fuzzy msgid "" "You cannot have a weekly repeating appointment that doesn't repeat on any " "day of the week." msgstr "" "Não é possível ter um compromisso semanal que não se repita em nenhum dia da " "semana." #. This is a timeless event #: ../datebook_gui.c:2516 ../datebook_gui.c:5264 msgid "No Time" msgstr "Sem tempo" #: ../datebook_gui.c:2788 ../memo_gui.c:1259 ../todo_gui.c:1728 msgid "External editor command too long to execute\n" msgstr "" #: ../datebook_gui.c:2943 msgid "Invalid Appointment" msgstr "Compromisso Inválido" #: ../datebook_gui.c:2944 msgid "" "The End Date of this appointment\n" "is before the start date." msgstr "" "A data de término deste compromisso\n" "vem antes da data de início." #. "No Date" check box #: ../datebook_gui.c:3339 ../datebook_gui.c:5482 ../datebook_gui.c:5513 #: ../datebook_gui.c:5565 ../datebook_gui.c:5613 ../todo_gui.c:142 #: ../todo_gui.c:2454 msgid "No Date" msgstr "Sem Data" #: ../datebook_gui.c:3494 #, fuzzy, c-format msgid "Error in DateBookDB or Calendar advanceUnits = %d\n" msgstr "Erro no DateBookDB advanceUnits = %d\n" #: ../datebook_gui.c:3681 #, c-format msgid "%%a., %s" msgstr "%%a., %s" #: ../datebook_gui.c:3686 msgid " (TODAY)" msgstr " (HOJE)" #. Weekview button #: ../datebook_gui.c:4934 ../datebook_gui.c:5451 msgid "Week" msgstr "Semana" #: ../datebook_gui.c:4943 #, fuzzy msgid "View appointments by week Ctrl+W" msgstr "Ver compromissos por semana" #. Monthview button #: ../datebook_gui.c:4946 ../datebook_gui.c:5452 msgid "Month" msgstr "Mês" #: ../datebook_gui.c:4955 #, fuzzy msgid "View appointments by month Ctrl+M" msgstr "Ver compromissos por mês" #. Make Category button #: ../datebook_gui.c:4960 msgid "Cats" msgstr "Categorias" #: ../datebook_gui.c:5024 msgid "Time" msgstr "Tempo" #. "Show ToDos" button #: ../datebook_gui.c:5067 msgid "Show ToDos" msgstr "Mostrar Tarefas" #: ../datebook_gui.c:5081 ../todo_gui.c:2285 msgid "Task" msgstr "Tarefa" #: ../datebook_gui.c:5082 ../todo_gui.c:2286 msgid "Due" msgstr "Prazo" #: ../datebook_gui.c:5201 ../datebook_gui.c:5358 msgid "Alarm" msgstr "Alarme" #. Date Spinners #: ../datebook_gui.c:5241 ../Expense/expense.c:1736 msgid "Date:" msgstr "Data:" #. Start date and time #: ../datebook_gui.c:5283 #, fuzzy msgid "Start" msgstr "Começa em" #. End date and time #: ../datebook_gui.c:5300 #, fuzzy msgid "End" msgstr "Fim em" #: ../datebook_gui.c:5433 msgid "DateBk Tags" msgstr "Etiquetas DateBk" #: ../datebook_gui.c:5450 msgid "Day" msgstr "Dia" #: ../datebook_gui.c:5453 msgid "Year" msgstr "Ano" #. "No Repeat" page for notebook #: ../datebook_gui.c:5456 msgid "This event will not repeat" msgstr "Este evento não se repete" #: ../datebook_gui.c:5465 ../datebook_gui.c:5498 ../datebook_gui.c:5550 #: ../datebook_gui.c:5596 msgid "Frequency is Every" msgstr "Repetir a cada" #: ../datebook_gui.c:5471 msgid "Day(s)" msgstr "Dia(s)" #: ../datebook_gui.c:5474 ../datebook_gui.c:5507 ../datebook_gui.c:5559 #: ../datebook_gui.c:5605 msgid "End on" msgstr "Fim em" #: ../datebook_gui.c:5504 msgid "Week(s)" msgstr "Semana(s)" #: ../datebook_gui.c:5556 msgid "Month(s)" msgstr "Mês(es)" #: ../datebook_gui.c:5573 msgid "Repeat by:" msgstr "Repetir por:" #: ../datebook_gui.c:5577 msgid "Day of week" msgstr "Dia da semana" #: ../datebook_gui.c:5586 ../Expense/expense.c:1618 msgid "Date" msgstr "Dia do mês" #: ../datebook_gui.c:5602 msgid "Year(s)" msgstr "Ano(s)" #: ../dialer.c:195 msgid "Phone Dialer" msgstr "Discador" #: ../dialer.c:230 msgid "Prefix 1" msgstr "Prefixo 1" #: ../dialer.c:252 msgid "Prefix 2" msgstr "Prefixo 2" #: ../dialer.c:274 msgid "Prefix 3" msgstr "Prefixo 3" #: ../dialer.c:289 msgid "Phone number:" msgstr "Nº de telefone:" #: ../dialer.c:319 msgid "Extension" msgstr "Extensão" #: ../dialer.c:341 msgid "Dial Command" msgstr "Comando de Discagem" #: ../export_gui.c:121 msgid "File Browser" msgstr "Navegador de Arquivos" #. Label for instructions #: ../export_gui.c:273 msgid "Select records to be exported" msgstr "Selecione registros a serem exportados" #: ../export_gui.c:275 msgid "Use Ctrl and Shift Keys" msgstr "Usar Teclas Control e Shift" #. Import button #: ../import_gui.c:300 ../import_gui.c:369 ../import_gui.c:426 #: ../import_gui.c:471 ../jpilot.c:385 msgid "Import" msgstr "Importar" #: ../import_gui.c:317 #, c-format msgid "Record was marked as private" msgstr "Registro foi marcado como particular" #: ../import_gui.c:319 #, c-format msgid "Record was not marked as private" msgstr "Registro não foi marcado como particular" #: ../import_gui.c:328 #, c-format msgid "Category before import was: [%s]" msgstr "Categoria antes da importação era: [%s]" #: ../import_gui.c:336 #, c-format msgid "Record will be put in category [%s]" msgstr "Registros serão colocados na categoria [%s]" #. Import All button #: ../import_gui.c:376 msgid "Import All" msgstr "Importação Tudo" #. Skip button #: ../import_gui.c:383 msgid "Skip" msgstr "Ignorar" #: ../import_gui.c:457 ../install_gui.c:429 msgid "To change to a hidden directory type it below and hit TAB" msgstr "Para mudar para um diretório oculto, digite-o abaixo e pressione TAB" #: ../import_gui.c:484 msgid "Import File Type" msgstr "Importar arquivo do tipo" #: ../install_gui.c:366 #, fuzzy msgid "Files to install" msgstr "Arquivos a serem instalados" #: ../install_gui.c:374 msgid "Install" msgstr "Instalar" #: ../install_user.c:118 ../install_user.c:220 msgid "Install User" msgstr "Instalar Usuário" #: ../install_user.c:139 msgid "" "A PalmOS(c) device needs a user name and a user ID in order to sync properly." msgstr "" "O dispositivo PalmOS(c) precisa de um nome de usuário e um ID de usuário " "para sincronizar corretamente." #: ../install_user.c:146 msgid "" "If you want to sync more than 1 PalmOS(c) device each one should have a " "different ID and preferably a different user name." msgstr "" "Caso você deseje sincronizar mais de um dispositivo PalmOS(c), cada um " "deverá ter seu ID e, preferencialmente, nome de usuário próprios." #. Instruction label #: ../install_user.c:168 msgid "Most people choose their name or nickname for the user name." msgstr "Várias pessoas utilizam seu nome ou apelido como nome de usuário." #: ../install_user.c:176 ../restore_gui.c:278 msgid "User Name" msgstr "Nome do usuário" #: ../install_user.c:186 msgid "The ID should be a random number." msgstr "Esse ID deve ser um número aleatório." #: ../install_user.c:194 ../restore_gui.c:297 msgid "User ID" msgstr "ID do usuário" #: ../jpilot.c:319 msgid "Print" msgstr "Imprimir" #: ../jpilot.c:320 msgid "There is no print support for this conduit." msgstr "Este canal não tem suporte para impressão." #: ../jpilot.c:386 msgid "There is no import support for this conduit." msgstr "Este canal não tem suporte para importação." #: ../jpilot.c:430 msgid "There is no export support for this conduit." msgstr "Este canal não tem suporte para exportação." #: ../jpilot.c:659 #, fuzzy msgid " Cancelling HotSync\n" msgstr "Cancelar Sincronização" #. ------------------------------------------- #: ../jpilot.c:675 #, fuzzy msgid "" "This handheld does not have the same user name or user ID\n" "as the one that was synced the last time.\n" "Syncing could have unwanted effects including data loss.\n" "\n" "Read the user manual if you are uncertain." msgstr "" "Este dispositivo não tem o mesmo nome de usuário\n" "ou ID de usuário que aquele sincronizado da última\n" "vez. Sincronizar pode trazer efeitos indesejados.\n" "Se você não tiver certeza, leia o manual do usuário." #. ------------------------------------------- #: ../jpilot.c:682 #, fuzzy msgid "" "This handheld has a NULL user ID.\n" "Every handheld must have a unique user ID in order to sync properly.\n" "If the handheld has been hard reset, \n" " use restore from the menu to restore it.\n" "Otherwise, to add a new user name and ID\n" " use install-user from the menu.\n" "\n" "Read the user manual if you are uncertain." msgstr "" "Este dispositivo tem uma ID de usuário NULL.\n" "Todo dispositivo palm precisa deve ter uma ID única de usuário\n" "para sincronizar apropriadamente. Se o disposito teve um\n" "\"hard reset\", escolha restaurar do menu para restaurá-lo,\n" "ou use o pilot-xfer.\n" "Para adicionar um nome ou ID de usuário, use a ferramenta\n" "de install-user a partir da linha de comando ou do menu.\n" "Se você não tiver certeza, leia o manual do usuário." #: ../jpilot.c:690 msgid "Cancel Sync" msgstr "Cancelar Sincronização" #: ../jpilot.c:690 msgid "Sync Anyway" msgstr "Sincronizar Mesmo Assim" #: ../jpilot.c:699 ../jpilot.c:703 msgid "Sync Problem" msgstr "Problema de Sincronização" #: ../jpilot.c:932 ../jpilot.c:1785 msgid " User: " msgstr " Usuário:" #: ../jpilot.c:944 msgid "Unknown command from sync process\n" msgstr "Comando desconhecido no processo de sincronização\n" #: ../jpilot.c:963 ../Expense/expense.c:529 ../KeyRing/keyring.c:1872 #: ../SyncTime/synctime.c:61 #, c-format msgid "About %s" msgstr "Sobre %s" #: ../jpilot.c:1105 msgid "/_File" msgstr "/_Arquivo" #: ../jpilot.c:1106 msgid "/File/tear" msgstr "/Arquivo/tear" #: ../jpilot.c:1107 msgid "/File/_Find" msgstr "/Arquivo/_Localizar" #: ../jpilot.c:1108 ../jpilot.c:1114 ../jpilot.c:1117 msgid "/File/sep1" msgstr "/Arquivo/sep1" #: ../jpilot.c:1109 msgid "/File/_Install" msgstr "/Arquivo/_Instalar" #: ../jpilot.c:1110 msgid "/File/Import" msgstr "/Arquivo/Importar" #: ../jpilot.c:1111 msgid "/File/Export" msgstr "/Arquivo/Exportar" #: ../jpilot.c:1112 ../jpilot.c:2190 msgid "/File/Preferences" msgstr "/Arquivo/P_referências" #: ../jpilot.c:1113 msgid "/File/_Print" msgstr "/Arquivo/Im_primir" #: ../jpilot.c:1115 msgid "/File/Install User" msgstr "/Arquivo/Instalar Usuário" #: ../jpilot.c:1116 msgid "/File/Restore Handheld" msgstr "/Arquivo/Restaurar Dispositivo" #: ../jpilot.c:1118 msgid "/File/_Quit" msgstr "/Arquivo/_Sair" #: ../jpilot.c:1119 msgid "/_View" msgstr "/_Ver" #: ../jpilot.c:1120 ../jpilot.c:1121 ../jpilot.c:1122 ../jpilot.c:1368 msgid "/View/Hide Private Records" msgstr "/Ver/Esconder os Registros Particulares" #: ../jpilot.c:1121 ../jpilot.c:1371 msgid "/View/Show Private Records" msgstr "/Ver/Mostrar os Registros Particulares" #: ../jpilot.c:1122 ../jpilot.c:1374 msgid "/View/Mask Private Records" msgstr "/Ver/Encobrir Registros Particulares" #: ../jpilot.c:1123 msgid "/View/sep1" msgstr "/Ver/sep1" #: ../jpilot.c:1124 msgid "/View/Datebook" msgstr "/Ver/Calendário" #: ../jpilot.c:1125 msgid "/View/Addresses" msgstr "/Ver/Contatos" #: ../jpilot.c:1126 msgid "/View/Todos" msgstr "/Ver/Tarefas" #: ../jpilot.c:1127 msgid "/View/Memos" msgstr "/Ver/Memos" #: ../jpilot.c:1128 ../jpilot.c:1259 msgid "/_Plugins" msgstr "/_Plug-ins" #: ../jpilot.c:1130 msgid "/_Web" msgstr "/_Web" #. web #: ../jpilot.c:1131 msgid "/Web/Netscape" msgstr "/Web/Netscape" #: ../jpilot.c:1135 msgid "/Web/Mozilla" msgstr "/Web/Mozilla" #: ../jpilot.c:1140 msgid "/Web/Galeon" msgstr "/Web/Galeon" #: ../jpilot.c:1145 msgid "/Web/Opera" msgstr "/Web/Opera" #: ../jpilot.c:1149 msgid "/Web/GnomeUrl" msgstr "/Web/GnomeUrl" #: ../jpilot.c:1151 msgid "/Web/Lynx" msgstr "/Web/Lynx" #: ../jpilot.c:1153 msgid "/Web/Links" msgstr "/Web/Links" #: ../jpilot.c:1155 msgid "/Web/W3M" msgstr "/Web/W3M" #: ../jpilot.c:1157 msgid "/Web/Konqueror" msgstr "/Web/Konqueror" #: ../jpilot.c:1160 msgid "/_Help" msgstr "/Aj_uda" #: ../jpilot.c:1161 msgid "/Help/About J-Pilot" msgstr "/Ajuda/_Sobre" #: ../jpilot.c:1227 #, c-format msgid "/_Plugins/%s" msgstr "/_Plug-ins/%s" #: ../jpilot.c:1237 #, c-format msgid "/_Help/%s" msgstr "/Aj_uda/%s" #: ../jpilot.c:1591 msgid "calendar:week_start:0" msgstr "calendar:week_start:0" #: ../jpilot.c:1634 ../jpilot-sync.c:171 msgid "Not loading plugins.\n" msgstr "Não carregando plug-ins.\n" #: ../jpilot.c:1638 msgid "Ignoring all alarms.\n" msgstr "Ignorando todos os alarmes.\n" #: ../jpilot.c:1642 msgid "Ignoring past alarms.\n" msgstr "Ignorando alarmes passados.\n" #: ../jpilot.c:1730 ../jpilot.c:1738 msgid "Unable to open pipe\n" msgstr "Não foi possível abrir pipe\n" #: ../jpilot.c:1947 #, fuzzy msgid "Show private records Ctrl+Z" msgstr "Mostra registros particulares Ctrl-Z" #: ../jpilot.c:1952 #, fuzzy msgid "Hide private records Ctrl+Z" msgstr "Oculta registros particulares Ctrl-Z" #: ../jpilot.c:1957 #, fuzzy msgid "Mask private records Ctrl+Z" msgstr "Encobre registros particulares Ctrl-Z" #: ../jpilot.c:1969 #, fuzzy msgid "Sync your palm to the desktop Ctrl+Y" msgstr "Sincroniza seu palm com o desktop Ctrl-Y" #: ../jpilot.c:1981 #, fuzzy msgid "Stop Sync process" msgstr "Endereço de sincronização" #: ../jpilot.c:1993 msgid "" "Sync your palm to the desktop\n" "and then do a backup" msgstr "" "Sincroniza seu palm com o desktop\n" "então faz um backup" #: ../jpilot.c:2141 msgid "Datebook/Go to Today" msgstr "Calendário/Ir para Hoje" #: ../jpilot.c:2142 msgid "Address Book" msgstr "Contatos" #: ../jpilot.c:2143 msgid "ToDo List" msgstr "Tarefas" #: ../jpilot.c:2144 msgid "Memo Pad" msgstr "Memos" #: ../jpilot.c:2172 msgid "Do it now" msgstr "Fazer agora" #: ../jpilot.c:2172 msgid "Remind me later" msgstr "Lembrar-me depois" #: ../jpilot.c:2172 msgid "Don't tell me again!" msgstr "Não avisar de novo!" #: ../jpilot.c:2185 #, fuzzy, c-format msgid "" "J-Pilot uses the GTK2 graphical toolkit. This version of the toolkit uses " "UTF-8 to encode characters.\n" "You should select a UTF-8 charset so that you can see non-ASCII characters " "(accents for example).\n" "\n" "Go to the menu \"%s\" and change the \"%s\"." msgstr "" "J-Pilot usa o kit de ferramentas gráficas GTK2. Esta versão do kit usa UTF-8 " "para codificar caracteres.\n" "Você precisa selecionar a codificação UTF-8 para ver os caracteres não ASCII " "(p. ex. com acentos).\n" "\n" #. Character Set #: ../jpilot.c:2190 ../prefs_gui.c:511 #, fuzzy msgid "Character Set" msgstr "Conjunto de caracteres" #: ../jpilot.c:2192 msgid "Select a UTF-8 encoding" msgstr "Selecionar uma codificação UTF-8" #: ../jpilot-dump.c:94 #, c-format msgid " +D +A +T +M format like date +format.\n" msgstr " Formato +D +A +T +M, como date +format.\n" #: ../jpilot-dump.c:95 #, fuzzy, c-format msgid " -v display version and exit\n" msgstr " -v mostra a versão e sai.\n" #: ../jpilot-dump.c:96 ../jpilot-sync.c:68 ../utils.c:1874 #, fuzzy, c-format msgid " -h display help text\n" msgstr " -h mostra a ajuda e sai.\n" #: ../jpilot-dump.c:97 #, fuzzy, c-format msgid " -f display help for format codes\n" msgstr " -f mostra a ajuda para códigos de formato.\n" #: ../jpilot-dump.c:98 #, fuzzy, c-format msgid " -D dump DateBook\n" msgstr " -D despeja o Calendário.\n" #: ../jpilot-dump.c:99 #, fuzzy, c-format msgid " -i dump DateBook in iCalendar format\n" msgstr " -D despeja o Calendário.\n" #: ../jpilot-dump.c:100 #, fuzzy, c-format msgid " -N dump appts for today in DateBook\n" msgstr " -N despeja compromissos de hoje do Calendário.\n" #: ../jpilot-dump.c:101 #, fuzzy, c-format msgid " -NYYYY/MM/DD dump appts on YYYY/MM/DD in DateBook\n" msgstr " -NAAAA/MM/DD despeja compromissos de AAAA/MM/DD do Calendário.\n" #: ../jpilot-dump.c:102 #, fuzzy, c-format msgid " -A dump Address book\n" msgstr " -A despeja os Contatos.\n" #: ../jpilot-dump.c:103 #, fuzzy, c-format msgid " -T dump ToDo list as CSV\n" msgstr " -T despeja a lista de Tarefas como CSV.\n" #: ../jpilot-dump.c:104 #, fuzzy, c-format msgid " -M dump Memos\n" msgstr " -M despeja os Memos.\n" #: ../jpilot-dump.c:165 #, c-format msgid "" "Warning: Host character encoding is not UTF-8 based.\n" "Exported ical file may not be standards-compliant\n" msgstr "" #: ../jpilot-merge.c:163 ../jpilot-merge.c:169 #, fuzzy, c-format msgid "%s: Unable to open file:%s\n" msgstr "Não foi possível abrir arquivo: %s\n" #: ../jpilot-merge.c:271 #, c-format msgid "Records read from pdb = %d\n" msgstr "" #: ../jpilot-merge.c:272 #, c-format msgid "Records added = %d\n" msgstr "" #: ../jpilot-merge.c:273 #, c-format msgid "Records deleted = %d\n" msgstr "" #: ../jpilot-merge.c:274 #, c-format msgid "Records modified = %d\n" msgstr "" #: ../jpilot-merge.c:275 #, c-format msgid "Records written = %d\n" msgstr "" #: ../jpilot-merge.c:293 #, c-format msgid "Usage: %s {input pdb file} {input pc3 file} {output pdb file}\n" msgstr "" #: ../jpilot-merge.c:294 #, c-format msgid " This program will merge an unsynced records file (pc3)\n" msgstr "" #: ../jpilot-merge.c:295 #, c-format msgid "" " into the corresponding palm database (pdb) file.\n" "\n" msgstr "" #: ../jpilot-merge.c:296 #, c-format msgid " WARNING: Only run this utility if you understand the consequences!\n" msgstr "" #: ../jpilot-merge.c:297 #, c-format msgid " The merge will leave your databases in an unsync-able state.\n" msgstr "" #: ../jpilot-merge.c:298 #, c-format msgid "" " It is intended for cases where J-pilot is being used as a standalone PIM\n" msgstr "" #: ../jpilot-merge.c:299 #, c-format msgid " and where no syncing occurs to physical hardware.\n" msgstr "" #: ../jpilot-merge.c:300 #, c-format msgid " WARNING: Make a backup copy of your databases before proceeding.\n" msgstr "" #: ../jpilot-merge.c:301 #, c-format msgid "" " It is quite simple to destroy your databases by accidentally merging\n" msgstr "" #: ../jpilot-merge.c:302 #, c-format msgid " address records into datebook databases, etc.\n" msgstr "" #: ../jpilot-sync.c:66 #, fuzzy, c-format msgid "" " J-Pilot preferences are read to get sync info such as port, rate, number of " "backups, etc.\n" msgstr "" " As preferências do J-Pilot determinam a porta, a taxa de transferência, " "etc.\n" #: ../jpilot-sync.c:67 ../utils.c:1873 #, fuzzy, c-format msgid " -v display version and compile options\n" msgstr " -v exibe a versão e as opções de compilação e sai.\n" #: ../jpilot-sync.c:69 ../utils.c:1875 #, fuzzy, c-format msgid " -d display debug info to stdout\n" msgstr " -d exibe informações de depuração na saída padrão.\n" #: ../jpilot-sync.c:70 #, fuzzy, c-format msgid " -P skip loading plugins\n" msgstr " -p não carrega os plug-ins.\n" #: ../jpilot-sync.c:71 #, fuzzy, c-format msgid " -b sync, and then do a backup\n" msgstr "" "Sincroniza seu palm com o desktop\n" "então faz um backup" #: ../jpilot-sync.c:72 #, fuzzy, c-format msgid " -l loop, otherwise sync once and exit\n" msgstr " -l = loop, senão sincroniza uma vez e sai.\n" #: ../jpilot-sync.c:73 #, fuzzy, c-format msgid " -p {port} use this port to sync on instead of default\n" msgstr "" " -p {porta} = Usar esta porta para sincronizar em vez de ler as " "preferências.\n" #: ../jpilot-sync.c:221 #, fuzzy, c-format msgid "Error: connecting to port %s\n" msgstr "Erro ao abrir arquivo: %s\n" #: ../jpilot-sync.c:225 #, c-format msgid "Error: pi_listen\n" msgstr "" #: ../jpilot-sync.c:229 #, fuzzy, c-format msgid "Error: opening conduit to handheld\n" msgstr "Erro ao abrir arquivo: next_id\n" #: ../jpilot-sync.c:233 #, c-format msgid "Error: pi_accept\n" msgstr "" #: ../jpilot-sync.c:237 ../jpilot-sync.c:265 #, fuzzy, c-format msgid "Error: " msgstr "Erro" #: ../jpilot-sync.c:238 #, c-format msgid "This handheld does not have the same user name.\n" msgstr "" #: ../jpilot-sync.c:239 ../jpilot-sync.c:253 #, c-format msgid "as the one that was synced the last time.\n" msgstr "" #: ../jpilot-sync.c:241 #, c-format msgid "" "Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:243 ../jpilot-sync.c:256 #, c-format msgid " COPILOT_HOME" msgstr "" #: ../jpilot-sync.c:245 ../jpilot-sync.c:258 #, c-format msgid " JPILOT_HOME" msgstr "" #: ../jpilot-sync.c:247 ../jpilot-sync.c:260 #, fuzzy, c-format msgid " environment variable can be used to sync different handhelds,\n" msgstr "Sua variável de ambiente HOME é longa demais para mim\n" #: ../jpilot-sync.c:248 ../jpilot-sync.c:261 #, c-format msgid " to different directories for the same UNIX user name.\n" msgstr "" #: ../jpilot-sync.c:252 #, c-format msgid "This handheld does not have the same user ID.\n" msgstr "" #: ../jpilot-sync.c:254 #, c-format msgid "" " Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:266 #, c-format msgid "This handheld has a NULL user ID.\n" msgstr "" #: ../jpilot-sync.c:267 #, fuzzy, c-format msgid "Every handheld must have a unique user ID in order to sync properly.\n" msgstr "" "O dispositivo PalmOS(c) precisa de um nome de usuário e um ID de usuário " "para sincronizar corretamente." #: ../jpilot-sync.c:268 #, c-format msgid "If the handheld has been hard reset, \n" msgstr "" #: ../jpilot-sync.c:269 #, c-format msgid " use restore from within " msgstr "" #: ../jpilot-sync.c:270 #, c-format msgid "Otherwise, to add a new user name and ID\n" msgstr "" #: ../jpilot-sync.c:271 #, c-format msgid " use \"install-user %s name numeric_id\"\n" msgstr "" #: ../jpilot-sync.c:275 #, c-format msgid "Error: sync returned error %d\n" msgstr "" #: ../libplugin.c:64 ../utils.c:1054 msgid "" "This record is already deleted.\n" "It is scheduled to be deleted from the Palm on the next sync.\n" msgstr "" "Este registro já foi excluído.\n" "Na próxima sincronização, será excluído do Palm.\n" #: ../libplugin.c:73 ../libplugin.c:110 ../utils.c:1064 ../utils.c:1106 msgid "Unable to open PC records file\n" msgstr "Não foi possível abrir o arquivo de registros do PC\n" #: ../libplugin.c:79 ../utils.c:1071 msgid "Couldn't find record to delete\n" msgstr "Não foi possível encontrar registro a ser excluído\n" #: ../libplugin.c:97 ../utils.c:1091 #, c-format msgid "Unknown header version %d\n" msgstr "Cabeçalho desconhecido versão %d\n" #: ../libplugin.c:182 #, c-format msgid "%s:%d Error opening file: %s\n" msgstr "%s:%d Erro abrindo arquivo: %s\n" #: ../libplugin.c:188 ../libplugin.c:217 ../sync.c:1721 ../todo.c:102 #, c-format msgid "%s:%d Error reading file: %s\n" msgstr "%s:%d Erro lendo arquivo: %s\n" #: ../libplugin.c:340 ../libplugin.c:398 ../utils.c:2119 ../utils.c:2132 #, c-format msgid "Error opening file: %s\n" msgstr "Erro ao abrir arquivo: %s\n" #: ../libplugin.c:526 #, c-format msgid "Error reading %s 5\n" msgstr "Erro lendo %s 5\n" #: ../libplugin.c:801 msgid "Error reading PC file 1\n" msgstr "Erro ao ler arquivo 1 de PC\n" #: ../libplugin.c:817 msgid "Error reading PC file 2\n" msgstr "Erro ao ler arquivo 2 de PC\n" #: ../libplugin.c:923 #, c-format msgid "Unknown PC header version = %d\n" msgstr "Versão de cabeçalho do PC desconhecida = %d\n" #: ../log.c:101 #, c-format msgid "Unable to open log file, giving up.\n" msgstr "Não foi possível abrir arquivo de log, desistindo.\n" #: ../log.c:111 #, c-format msgid "Unable to open log file\n" msgstr "Não foi possível abrir arquivo de log\n" #: ../memo_gui.c:302 msgid "Memo text > 65535, truncating\n" msgstr "Texto de Memo > 65535, truncando\n" #: ../memo_gui.c:330 #, c-format msgid "Imported Memo %s\n" msgstr "Memos Importados %s\n" #: ../memo_gui.c:400 msgid "File doesn't appear to be memopad.dat format\n" msgstr "Arquivo não parece seguir o formato memopad.dat\n" #: ../memo_gui.c:471 msgid "DAT/MPA (Palm Archive Formats)" msgstr "" #: ../memo_gui.c:554 #, c-format msgid "" "Memo exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:557 #, c-format msgid "" "Memos exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:584 #, c-format msgid "Can't export memo %d\n" msgstr "Não foi possível exportar memo %d\n" #: ../memo_gui.c:628 #, fuzzy, c-format msgid "Memo: %ld\n" msgstr "Memos" #: ../memo_gui.c:634 #, c-format msgid "----- Start of Memo -----\n" msgstr "" #: ../memo_gui.c:636 #, c-format msgid "" "\n" "----- End of Memo -----\n" "\n" msgstr "" #: ../memo_gui.c:668 msgid "B-Folders CSV" msgstr "" #: ../monthview_gui.c:438 msgid "Monthly View" msgstr "Visão do Mês" #: ../monthview_gui.c:480 msgid "Last month Alt+LeftArrow" msgstr "" #: ../monthview_gui.c:508 msgid "Next month Alt+RightArrow" msgstr "" #: ../otherconv.c:76 #, c-format msgid "%s: error exit from g_iconv_close(%s)\n" msgstr "" #: ../otherconv.c:201 #, c-format msgid "%s:%s g_convert_with_iconv error: %s, buff: %s\n" msgstr "" #: ../otherconv.c:203 #, fuzzy msgid "last char truncated" msgstr "Última alteração:" #: ../otherconv.c:280 #, c-format msgid "UTF_to_other: %s\n" msgstr "" #: ../otherconv.c:294 #, c-format msgid "iconv: unconvertible sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:298 #, c-format msgid "iconv: incomplete UTF-8 sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:301 #, c-format msgid "iconv: buffer filled. stopped at place %d in '%s'\n" msgstr "" #: ../otherconv.c:304 #, c-format msgid "iconv: unexpected error at place %d in '%s'\n" msgstr "" #: ../password.c:283 msgid "Palm Password" msgstr "Senha do Palm" #: ../password.c:308 msgid "Incorrect, Reenter PalmOS Password" msgstr "Incorreto; Digite Novamente a Senha do Palm" #: ../password.c:310 msgid "Enter PalmOS Password" msgstr "Digite a Senha do Palm" #: ../pidfile.c:67 msgid "removing stale pidfile\n" msgstr "" #: ../pidfile.c:91 #, fuzzy, c-format msgid "create pidfile failed: %s\n" msgstr "Erro abrindo arquivo: %s\n" #: ../pidfile.c:92 msgid "Warning: hotplug syncing disabled.\n" msgstr "" #: ../plugins.c:90 ../plugins.c:203 ../restore_gui.c:133 msgid "infinite loop" msgstr "loop infinito" #: ../plugins.c:216 #, c-format msgid "While reading %s%s line 1:[%s]\n" msgstr "Ao ler %s%s linha 1:[%s]\n" #: ../plugins.c:217 msgid "Wrong Version\n" msgstr "Versão Incorreta\n" #: ../plugins.c:218 msgid "Check preferences->conduits\n" msgstr "Verifique Preferências->Canais\n" #: ../plugins.c:274 #, c-format msgid "" "Open failed on plugin [%s]\n" " error [%s]\n" msgstr "" "Falha ao abrir o plug-in [%s]\n" " erro [%s]\n" #: ../plugins.c:291 ../plugins.c:316 #, c-format msgid " plugin is invalid: [%s]\n" msgstr " plug-in é inválido: [%s]\n" #: ../plugins.c:299 #, c-format msgid "Plugin:[%s]\n" msgstr "Plug-in:[%s]\n" #: ../plugins.c:300 #, c-format msgid "This plugin is version (%d.%d).\n" msgstr "A versão deste plug-in é (%d.%d).\n" #: ../plugins.c:302 msgid "It is too old to work with this version of J-Pilot.\n" msgstr "Velho demais para funcionar nesta versão do J-Pilot.\n" #: ../prefs.c:420 msgid "%B %d, %Y" msgstr "%B %d, %Y" #: ../prefs.c:421 msgid "%d %B %Y" msgstr "%d %B %Y" #: ../prefs.c:422 msgid "%d. %B %Y" msgstr "%d %B %Y" #: ../prefs.c:423 msgid "%d %B, %Y" msgstr "%d de %B de %Y" #: ../prefs.c:424 msgid "%Y. %B. %d" msgstr "%Y-%B-%d" #: ../prefs.c:425 msgid "%Y %B %d" msgstr "%Y %B %d" #: ../prefs_gui.c:454 msgid "Preferences" msgstr "Preferências" #: ../prefs_gui.c:485 msgid "Locale" msgstr "Localidade" #: ../prefs_gui.c:487 msgid "Settings" msgstr "Configurações" #: ../prefs_gui.c:489 msgid "Datebook" msgstr "Calendário" #: ../prefs_gui.c:493 msgid "ToDo" msgstr "Tarefas" #: ../prefs_gui.c:495 msgid "Memo" msgstr "Memos" #: ../prefs_gui.c:497 msgid "Alarms" msgstr "Alarmes" #: ../prefs_gui.c:499 msgid "Conduits" msgstr "Canais" #. Shortdate #: ../prefs_gui.c:524 #, fuzzy msgid "Short date format" msgstr "Formato curto de data" #. Longdate #: ../prefs_gui.c:537 #, fuzzy msgid "Long date format" msgstr "Formato longo de data" #. Time #: ../prefs_gui.c:550 #, fuzzy msgid "Time format" msgstr "Formato da hora" #. GTK colors file #: ../prefs_gui.c:570 #, fuzzy msgid "GTK color theme file" msgstr "Meu arquivo de core GTK é " #. Port #: ../prefs_gui.c:583 #, fuzzy msgid "Sync Port" msgstr "Problema de Sincronização" #. Serial Rate #: ../prefs_gui.c:607 msgid "Serial Rate" msgstr "" #. Number of backups #: ../prefs_gui.c:627 msgid "Number of backups to be archived" msgstr "Número de backups a serem arquivados" #. Show deleted files check box #: ../prefs_gui.c:645 msgid "Show deleted records (default NO)" msgstr "Mostrar registros excluídos (padrão: não)" #. Show modified files check box #: ../prefs_gui.c:649 msgid "Show modified deleted records (default NO)" msgstr "Mostrar registros excluídos modificados (padrão: não)" #: ../prefs_gui.c:654 msgid "Ask confirmation for file installation (J-Pilot -> PDA) (default YES)" msgstr "Pedir confirmação para instalar arquivo (J-Pilot -> PDA) (padrão: sim)" #. Show tooltips check box #: ../prefs_gui.c:658 #, fuzzy msgid "Show popup tooltips (default YES) (requires restart)" msgstr "Mostrar dicas de ferramentas (padrão: sim)" #: ../prefs_gui.c:668 msgid "Use Datebook database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:671 msgid "Use Calendar database (Palm OS > 5.2)" msgstr "" #. Show highlight days check box #: ../prefs_gui.c:697 msgid "Highlight calendar days with appointments" msgstr "Destacar no calendário dias com compromisso" #. Highlight today on month and week view #: ../prefs_gui.c:702 msgid "Annotate today in day, week, and month views" msgstr "Anotar o dia de hoje nas visões de dia, semana e mês" #. Show number of years on anniversaries in month and week view #: ../prefs_gui.c:706 msgid "Append years on anniversaries in day, week, and month views" msgstr "Anexar o ano em aniversários nas visões de dia, semana e mês" #. Show use DateBk check box #: ../prefs_gui.c:712 msgid "Use DateBk note tags" msgstr "Usar etiquetas de nota DateBk" #: ../prefs_gui.c:715 msgid "DateBk support disabled in this build" msgstr "Suporte a DateBk desativado nesta compilação" #: ../prefs_gui.c:727 msgid "Use Address database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:730 msgid "Use Contacts database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:759 msgid "Mail Command" msgstr "Comando de e-mail" #: ../prefs_gui.c:773 #, c-format msgid "%s is replaced by the e-mail address" msgstr "%s é substituído pelo endereço eletrônico" #: ../prefs_gui.c:785 msgid "Use ToDo database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:788 msgid "Use Task database (Palm OS > 5.2)" msgstr "" #. hide completed check box #: ../prefs_gui.c:815 msgid "Hide Completed ToDos" msgstr "Ocultar tarefas concluídas" #. hide todos not yet due check box #: ../prefs_gui.c:819 msgid "Hide ToDos not yet due" msgstr "Ocultar tarefas cujo prazo não venceu" #. record todo completion date check box #: ../prefs_gui.c:823 msgid "Record Completion Date" msgstr "Registrar data de conclusão" #. Use Manana check box #: ../prefs_gui.c:828 msgid "Use Manana database" msgstr "Usar banco de dados Manana" #: ../prefs_gui.c:836 msgid "Use default number of days due" msgstr "Usar número padrão de dias após prazo" #: ../prefs_gui.c:858 msgid "Use Memo database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:861 msgid "Use Memos database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:864 #, fuzzy msgid "Use Memo32 database (pedit32)" msgstr "Usar Memo32 (pedit32)" #: ../prefs_gui.c:904 msgid "External Editor" msgstr "" #: ../prefs_gui.c:917 msgid "Use Ctrl-E inside a memo to launch external editor for memo text" msgstr "" #. ******************************************************************** #. Alarms preference tab #. Open alarm windows check box #: ../prefs_gui.c:925 msgid "Open alarm windows for appointment reminders" msgstr "Abrir janelas de alarme para lembretes de comprimossos" #. Execute alarm command check box #: ../prefs_gui.c:929 msgid "Execute this command" msgstr "Executar este comando" #. Shell warning label #: ../prefs_gui.c:933 msgid "WARNING: executing arbitrary shell commands can be dangerous!!!" msgstr "AVISO: executar comandos arbitrários de shell pode ser perigoso!!!" #: ../prefs_gui.c:941 msgid "Alarm Command" msgstr "Comando de Alarme" #: ../prefs_gui.c:954 msgid "%t is replaced with the alarm time" msgstr "%t é substituído pela hora do alarme" #: ../prefs_gui.c:958 #, c-format msgid "%d is replaced with the alarm date" msgstr "%d é substituído pela data do alarme" #: ../prefs_gui.c:963 msgid "%D is replaced with the alarm description" msgstr "%D é substituído pela descrição do alarme" #: ../prefs_gui.c:967 msgid "%N is replaced with the alarm note" msgstr "%N é substituído pela nota do alarme" #: ../prefs_gui.c:971 msgid "%D (description substitution) is disabled in this build" msgstr "%D (descrição do alarme) está desativado nesta compilação" #: ../prefs_gui.c:976 msgid "%N (note substitution) is disabled in this build" msgstr "%N (nota do alarme) está desativado nesta compilação" #. ******************************************************************** #. Conduits preference tab #. Sync datebook check box #: ../prefs_gui.c:986 msgid "Sync datebook" msgstr "Sincronizar calendário" #. Sync address check box #: ../prefs_gui.c:990 msgid "Sync address" msgstr "Endereço de sincronização" #. Sync todo check box #: ../prefs_gui.c:994 msgid "Sync todo" msgstr "Sincronizar tarefas" #. Sync memo check box #: ../prefs_gui.c:998 msgid "Sync memo" msgstr "Sincronizar memos" #. Show sync Manana check box #: ../prefs_gui.c:1003 msgid "Sync Manana" msgstr "Sincronizar Manana" #. Show use Japanese Kana extention check box #: ../prefs_gui.c:1009 msgid "Use J-OS (Not Japanese PalmOS:WorkPad/CLIE)" msgstr "Usar J-OS (PalmOS não japonês:WorkPad/CLIE)" #. Make a Sync checkbox for each plugin #: ../prefs_gui.c:1022 #, c-format msgid "Sync %s (%s)" msgstr "Sincronizar %s (%s)" #: ../print_gui.c:185 msgid "Print Options" msgstr "Opções de Impressão" #: ../print_gui.c:198 msgid "Paper Size" msgstr "Tamanho do Papel" #: ../print_gui.c:214 msgid "Daily Printout" msgstr "Impresso diário" #: ../print_gui.c:220 msgid "Weekly Printout" msgstr "Impresso semanal" #: ../print_gui.c:226 msgid "Monthly Printout" msgstr "Impresso mensal" #: ../print_gui.c:266 #, fuzzy msgid "Selected record" msgstr "Registro %s excluído." #: ../print_gui.c:270 msgid "All records in this category" msgstr "Todos os registros nesta categoria" #: ../print_gui.c:274 msgid "Print all records" msgstr "Imprimir todos os registros" #: ../print_gui.c:296 msgid "One record per page" msgstr "Um registro por página" #: ../print_gui.c:312 #, fuzzy msgid "Blank lines between each record" msgstr " Linhas em branco entre cada registro" #. Print Command #: ../print_gui.c:321 msgid "Print Command (e.g. lpr, or cat > file.ps)" msgstr "Comando de impressão (p.ex. lpr, o cat > file.ps)" #: ../restore_gui.c:71 ../restore_gui.c:229 msgid "Restore Handheld" msgstr "Restaurar Dispositivo" #: ../restore_gui.c:176 ../restore_gui.c:178 msgid "Unable to convert filename for GTK display\n" msgstr "" #: ../restore_gui.c:177 msgid "See console log to find which file will not be restored\n" msgstr "" #: ../restore_gui.c:179 #, fuzzy, c-format msgid "File %s will not be restored\n" msgstr "Arquivos a serem instalados" #. Label for instructions #: ../restore_gui.c:246 msgid "To restore your handheld:" msgstr "Para restaurar seu dispositivo:" #: ../restore_gui.c:249 #, fuzzy msgid "1. Choose the applications you wish to restore. The default is all." msgstr "" "1. Escolha todas as aplicações que deseja restaurar. O padrão são todas." #: ../restore_gui.c:252 msgid "2. Enter the User Name and User ID." msgstr "2. Digite o nome de usuário e a ID." #: ../restore_gui.c:255 msgid "3. Press the OK button." msgstr "3. Pressione o botão OK." #: ../restore_gui.c:258 msgid "This will overwrite data that is currently on the handheld." msgstr "Isso vai sobrescrever os dados atuais no dispositivo." #: ../search_gui.c:144 msgid "datebook" msgstr "calendário" #: ../search_gui.c:146 #, fuzzy msgid "calendar" msgstr "Limpar" #: ../search_gui.c:233 msgid "address" msgstr "contatos" #: ../search_gui.c:235 msgid "contact" msgstr "" #: ../search_gui.c:304 msgid "todo" msgstr "tarefas" #: ../search_gui.c:361 msgid "memo" msgstr "memos" #: ../search_gui.c:363 #, fuzzy msgid "memos" msgstr "memos" #: ../search_gui.c:421 msgid "plugin ?" msgstr "plug-in?" #: ../search_gui.c:501 msgid "No records found" msgstr "Nenhum registro encontrado" #: ../search_gui.c:600 msgid "Search" msgstr "Pesquisar" #. Search label #: ../search_gui.c:617 msgid "Search for: " msgstr "Pesquisar por:" #. Case Sensitive checkbox #: ../search_gui.c:626 msgid "Case Sensitive" msgstr "Dif. maiúsc./minúsc." #: ../sync.c:120 msgid "open lock file failed\n" msgstr "falha ao abrir o arquivo de trava\n" #: ../sync.c:133 msgid "lock failed\n" msgstr "falha em travar\n" #: ../sync.c:136 #, c-format msgid "sync file is locked by pid %d\n" msgstr "arquivo de sincronização travado pelo pid %d\n" #: ../sync.c:171 msgid "unlock failed\n" msgstr "falha em destravar\n" #: ../sync.c:174 #, c-format msgid "sync is locked by pid %d\n" msgstr "sincronização travada pelo pid %d\n" #: ../sync.c:410 #, fuzzy msgid "Check your sync port and settings\n" msgstr "Verifique sua porta serial e as configurações\n" #: ../sync.c:669 msgid "Unable to read home dir\n" msgstr "Não foi possível ler a pasta pessoal\n" #: ../sync.c:1075 ../sync.c:1413 #, c-format msgid "%s (Creator ID '%s') is up to date, fetch skipped.\n" msgstr "%s (ID de Criador '%s') é atual, ignorando.\n" #: ../sync.c:1079 ../sync.c:1417 #, c-format msgid "Fetching '%s' (Creator ID '%s')... " msgstr "Baixando '%s' (ID de Criador '%s')..." #: ../sync.c:1086 ../sync.c:1423 #, c-format msgid "Failed, unable to create file %s\n" msgstr "Falha: não foi possível criar arquivo %s\n" #: ../sync.c:1090 ../sync.c:1428 #, c-format msgid "Failed, unable to back up database %s\n" msgstr "Falha: não foi possível copiar o banco de dados %s\n" #: ../sync.c:1094 ../sync.c:1432 ../sync.c:1619 msgid "OK\n" msgstr "OK\n" #: ../sync.c:1294 #, c-format msgid "Skipping %s (Creator ID '%s')\n" msgstr "Ignorando %s (ID de Criados '%s')\n" #: ../sync.c:1488 #, c-format msgid "Installing %s " msgstr "Instalando %s" #: ../sync.c:1494 ../sync.c:1530 #, c-format msgid "" "\n" "Unable to open file: '%s': %s!\n" msgstr "" "\n" "Não foi possível abrir o arquivo '%s': %s!\n" #: ../sync.c:1498 #, c-format msgid "" "\n" "Unable to sync file: '%s': file corrupted?\n" msgstr "" "\n" "Não foi possível abrir o arquivo '%s': arquivo corrompido?\n" #: ../sync.c:1514 #, fuzzy, c-format msgid "(Creator ID '%s')... " msgstr "(ID do Criador é '%s')..." #: ../sync.c:1518 #, fuzzy, c-format msgid "(Creator ID '%s') " msgstr "(ID do Criador é '%s')..." #: ../sync.c:1520 #, fuzzy, c-format msgid "(SDcard dir %s)... " msgstr "(ID do Criador é '%s')..." #: ../sync.c:1552 ../sync.c:1565 ../sync.c:1580 ../sync.c:1593 #, c-format msgid "" "\n" "Unable to open file: %s\n" msgstr "" "\n" "Não foi possível abrir arquivo: %s\n" #: ../sync.c:1605 #, c-format msgid "Install %s failed" msgstr "Falha na instalação de %s" #: ../sync.c:1609 msgid "Failed.\n" msgstr "Falha.\n" #: ../sync.c:1615 #, fuzzy, c-format msgid "Installed %s" msgstr "%s instalado" #: ../sync.c:1726 #, c-format msgid "%s:%d Error getting app info %s\n" msgstr "%s:%d Erro ao obter informações da aplicação %s\n" #: ../sync.c:1732 ../sync.c:1762 #, c-format msgid "%s:%d Error unpacking app info %s\n" msgstr "%s:%d Erro ao desempacotar informações da aplicação %s\n" #: ../sync.c:1753 #, c-format msgid "Error reading appinfo block for %s\n" msgstr "Erro ao ler bloco appinfo para %s\n" #. Fix - need a func for this logging #: ../sync.c:1991 ../sync.c:1995 #, c-format msgid "Could not add category %s to remote.\n" msgstr "Não foi possível adicionar categoria %s ao dispositivo.\n" #: ../sync.c:1992 ../sync.c:1998 #, c-format msgid "Too many categories on remote.\n" msgstr "Categorias demais no dispositivo.\n" #: ../sync.c:1993 ../sync.c:2001 #, c-format msgid "All records on desktop in %s will be moved to %s.\n" msgstr "Todos os registros do computador em %s serão movidos para %s.\n" #: ../sync.c:2096 ../sync.c:2814 #, c-format msgid "Syncing %s\n" msgstr "Sincronizando %s\n" #: ../sync.c:2104 ../sync.c:2457 ../sync.c:2822 #, c-format msgid "Wrote an %s record." msgstr "Registro %s gravado." #: ../sync.c:2106 ../sync.c:2459 ../sync.c:2824 #, c-format msgid "Writing an %s record failed." msgstr "Falha ao gravar um registro %s." #: ../sync.c:2108 ../sync.c:2461 ../sync.c:2826 #, c-format msgid "Deleting an %s record failed." msgstr "Falha ao excluir um registro %s." #: ../sync.c:2110 ../sync.c:2463 ../sync.c:2828 #, c-format msgid "Deleted an %s record." msgstr "Registro %s excluído." #: ../sync.c:2112 ../sync.c:2465 #, fuzzy, c-format msgid "Sync Conflict: duplicated an %s record." msgstr "Registro %s excluído." #: ../sync.c:2115 ../sync.c:2468 ../sync.c:2831 #, c-format msgid "Wrote a %s record." msgstr "Registro %s gravado." #: ../sync.c:2117 ../sync.c:2470 ../sync.c:2833 #, c-format msgid "Writing a %s record failed." msgstr "Falha ao gravar um registro %s." #: ../sync.c:2119 ../sync.c:2472 ../sync.c:2835 #, c-format msgid "Deleting a %s record failed." msgstr "Falha ao excluir um registro %s." #: ../sync.c:2121 ../sync.c:2474 ../sync.c:2837 #, c-format msgid "Deleted a %s record." msgstr "Registro %s excluído." #: ../sync.c:2123 ../sync.c:2476 #, c-format msgid "Sync Conflict: duplicated a %s record." msgstr "" #: ../sync.c:2227 ../sync.c:2557 #, c-format msgid "Sync Conflict: a %s record must be manually merged\n" msgstr "" #: ../sync.c:2358 ../sync.c:2698 msgid "" "dlp_DeleteRecord failed\n" "This could be because the record was already deleted on the Palm\n" msgstr "" "Falha em dlp_DeleteRecord\n" "Isso pode ser causado por um registro já excluído no Palm\n" #: ../sync.c:2927 msgid "Finished installing user information.\n" msgstr "As informações do usuário foram instaladas.\n" #: ../sync.c:3084 #, c-format msgid " Syncing on device %s\n" msgstr " Sincronizando com dispositivo %s\n" #: ../sync.c:3085 msgid " Press the HotSync button now\n" msgstr " Pressione o botão HotSync agora\n" #: ../sync.c:3127 ../sync.c:3149 ../sync.c:3170 #, c-format msgid "Last Synced Username-->\"%s\"\n" msgstr "Nome do último usuário sincronizado-->\"%s\"\n" #: ../sync.c:3128 ../sync.c:3150 ../sync.c:3171 #, c-format msgid "Last Synced UserID-->\"%d\"\n" msgstr "ID do último usuário sincronizado-->\"%d\"\n" #: ../sync.c:3129 ../sync.c:3151 ../sync.c:3172 #, c-format msgid " This Username-->\"%s\"\n" msgstr " Nome deste usuário-->\"%s\"\n" #: ../sync.c:3130 ../sync.c:3152 ../sync.c:3173 #, c-format msgid " This User ID-->%d\n" msgstr " ID deste usuário-->\"%d\"\n" #: ../sync.c:3194 #, c-format msgid "Username is \"%s\"\n" msgstr "Nome de usuário é \"%s\"\n" #: ../sync.c:3195 #, c-format msgid "User ID is %d\n" msgstr "ID de usuário é %d\n" #: ../sync.c:3197 #, c-format msgid "lastSyncPC = %d\n" msgstr "lastSyncPC = %d\n" #: ../sync.c:3198 #, c-format msgid "This PC = %lu\n" msgstr "Este PC = %lu\n" #: ../sync.c:3222 msgid "Sync canceled\n" msgstr "Sincronização cancelada\n" #: ../sync.c:3245 msgid "Finished restoring handheld.\n" msgstr "A restauração do dispositivo foi concluída.\n" #: ../sync.c:3246 msgid "You may need to sync to update J-Pilot.\n" msgstr "Você pode precisar sincronizar para atualizar o J-Pilot.\n" #: ../sync.c:3268 msgid "Doing a fast sync.\n" msgstr "Fazendo uma sincronização rápida.\n" #: ../sync.c:3281 msgid "Doing a slow sync.\n" msgstr "Fazendo uma sincronização lenta.\n" #: ../sync.c:3356 msgid "Thank you for using J-Pilot." msgstr "Obrigado por utilizar o J-Pilot." #: ../sync.c:3401 ../sync.c:3469 msgid "Finished.\n" msgstr "Concluído.\n" #: ../sync.c:3436 #, c-format msgid "%s: sync process already in progress (process ID = %d)\n" msgstr "" #: ../sync.c:3437 #, fuzzy, c-format msgid "" "%s: press the HotSync button on the cradle\n" " or stop the sync by using the cancel sync button\n" " or stop the sync by typing \"kill %d\" at the command line\n" msgstr "%s: pressione o botão HotSync no berço ou \"kill %d\"\n" #: ../sync.c:3468 #, c-format msgid "Exiting with status %s\n" msgstr "Saindo com estado %s\n" #: ../todo.c:266 #, c-format msgid "ToDo description text > %d, truncating to %d\n" msgstr "Texto de descrição de tarefas > %d, truncando em %d\n" #: ../todo.c:272 #, c-format msgid "ToDo note text > %d, truncating to %d\n" msgstr "Texto de nota da tarefa > %d, truncando em %d\n" #: ../todo_gui.c:161 msgid "Due Date" msgstr "Prazo" #: ../todo_gui.c:532 msgid "File doesn't appear to be todo.dat format\n" msgstr "Arquivo não parece ter formato todo.dat\n" #: ../todo_gui.c:596 msgid "DAT/TDA (Palm Archive Formats)" msgstr "" #: ../todo_gui.c:688 #, c-format msgid "" "ToDo exported from %s %s on %s\n" "\n" msgstr "" #: ../todo_gui.c:726 #, c-format msgid "Can't export todo %d\n" msgstr "Não foi possível exportar tarefa %d\n" #: ../todo_gui.c:766 #, fuzzy, c-format msgid "Due Date: None\n" msgstr "Prazo" #: ../todo_gui.c:769 #, fuzzy, c-format msgid "Due Date: %s\n" msgstr "Prazo" #: ../todo_gui.c:771 #, fuzzy, c-format msgid "Priority: %d\n" msgstr "Prioridade:" #: ../todo_gui.c:772 #, fuzzy, c-format msgid "Completed: %s\n" msgstr "Concluída" #: ../todo_gui.c:774 #, c-format msgid "Description: %s\n" msgstr "" #: ../todo_gui.c:777 #, c-format msgid "" "Note: %s\n" "\n" msgstr "" #: ../todo_gui.c:1610 msgid "Priority out of range\n" msgstr "Prioridade fora de faixa\n" #: ../todo_gui.c:1932 ../KeyRing/keyring.c:1310 #, c-format msgid "No date" msgstr "Sem data" #. Completed checkbox #: ../todo_gui.c:2414 msgid "Completed" msgstr "Concluída" #: ../todo_gui.c:2421 #, fuzzy msgid "Priority:" msgstr "Prioridade:" #: ../todo_gui.c:2423 msgid "Set priority Alt+#" msgstr "" #: ../todo_gui.c:2444 msgid "Date Due:" msgstr "Prazo:" #: ../utils.c:332 msgid "Today" msgstr "Hoje" #: ../utils.c:577 #, c-format msgid "Couldn't find empty DB file %s: %s\n" msgstr "Não foi possível localizar arquivo DB vazio %s: %s\n" #: ../utils.c:580 msgid " may not be installed.\n" msgstr " pode não estar instalado.\n" #. Can't create directory #: ../utils.c:615 ../utils.c:619 #, c-format msgid "Can't create directory %s\n" msgstr "Não foi possível criar o diretório %s\n" #: ../utils.c:625 #, fuzzy, c-format msgid "%s is not a directory\n" msgstr "%s é um diretório" #: ../utils.c:630 #, fuzzy, c-format msgid "Unable to get write permission for directory %s\n" msgstr "Não me é possível gravar arquivos no diretório %s\n" #: ../utils.c:1330 ../utils.c:1354 msgid "Save Changed Record?" msgstr "Salvar Registro Alterado?" #: ../utils.c:1331 ../utils.c:1355 msgid "Do you want to save the changes to this record?" msgstr "Você deseja salvar as alterações deste registro?" #: ../utils.c:1336 ../utils.c:1360 msgid "Save New Record?" msgstr "Salvar Novo Registro?" #: ../utils.c:1337 ../utils.c:1361 msgid "Do you want to save this new record?" msgstr "Você deseja salvar este novo registro?" #: ../utils.c:1652 msgid "infinite loop, breaking\n" msgstr "loop infinito, quebrando\n" #: ../utils.c:1876 #, fuzzy, c-format msgid " -p skip loading plugins\n" msgstr " -p não carrega os plug-ins.\n" #: ../utils.c:1877 #, fuzzy, c-format msgid " -a ignore missed alarms since the last time program was run\n" msgstr " -a ignora os alarmes perdidos desde a última execução do programa.\n" #: ../utils.c:1878 #, fuzzy, c-format msgid " -A ignore all alarms past and future\n" msgstr " -A ignora todos os alarmes, passados e futuros.\n" #: ../utils.c:1879 #, c-format msgid " -s start sync using existing instance of GUI\n" msgstr "" #: ../utils.c:1880 #, c-format msgid " -i iconify program immediately after launch\n" msgstr "" #: ../utils.c:1881 #, c-format msgid "" " -geometry {X geometry} use specified geometry for main window\n" "\n" msgstr "" #: ../utils.c:1882 #, fuzzy, c-format msgid " The PILOTPORT and PILOTRATE environment variables specify\n" msgstr " As variáveis PILOTPORT e PILOTRATE são usadas para especificar\n" #: ../utils.c:1883 #, c-format msgid " which port to sync on, and at what speed.\n" msgstr " através de qual porta sincronizar, e com que velocidade.\n" #: ../utils.c:1884 #, c-format msgid " If PILOTPORT is not set then it defaults to /dev/pilot.\n" msgstr " Se PILOTPORT não estiver definida, o padrão é /dev/pilot.\n" #: ../utils.c:1921 msgid "Error reading file" msgstr "Erro lendo arquivo" #: ../utils.c:1971 msgid "Date compiled" msgstr "Data de compilação" #: ../utils.c:1972 msgid "Compiled with these options:" msgstr "Compilado com as opções:" #: ../utils.c:1974 msgid "Installed Path" msgstr "Caminho da instalação" #: ../utils.c:1976 msgid "pilot-link version" msgstr "Versão do pilot-link" #: ../utils.c:1980 msgid "USB support" msgstr "Suporte a USB" #: ../utils.c:1981 ../utils.c:1984 ../utils.c:1990 ../utils.c:1996 #: ../utils.c:2002 ../utils.c:2008 ../utils.c:2013 msgid "yes" msgstr "sim" #: ../utils.c:1982 msgid "Private record support" msgstr "Suporte a registros particulares" #: ../utils.c:1986 ../utils.c:1992 ../utils.c:1998 ../utils.c:2004 #: ../utils.c:2010 msgid "no" msgstr "não" #: ../utils.c:1988 msgid "Datebk support" msgstr "Suporte a datebk" #: ../utils.c:1994 msgid "Plugin support" msgstr "Suporte a plug-ins" #: ../utils.c:2000 msgid "Manana support" msgstr "Suporte a manana" #: ../utils.c:2006 msgid "NLS support (foreign languages)" msgstr "Suporte a NLS (línguas estrangeiras)" #: ../utils.c:2012 msgid "GTK2 support" msgstr "Suporte a GTK2" #. No HOME var #: ../utils.c:2055 msgid "Can't get HOME environment variable\n" msgstr "Não foi possível obter a variável HOME\n" #: ../utils.c:2062 #, fuzzy msgid "HOME environment variable is too long to process\n" msgstr "Sua variável de ambiente HOME é longa demais para mim\n" #: ../utils.c:2557 #, fuzzy msgid "Edit Categories..." msgstr "Editar Categorias" #: ../utils.c:3223 msgid "PC ID is 0.\n" msgstr "ID do PC é 0.\n" #: ../utils.c:3224 #, fuzzy, c-format msgid "Generated a new PC ID. It is %lu\n" msgstr "Gerei uma nova ID de PC: %lu\n" #: ../utils.c:3309 msgid "Invalid UTF-8 encoding in export string\n" msgstr "" #: ../utils.c:3470 #, c-format msgid "Today is %A, %x %X" msgstr "Hoje é %A, %x %X" #: ../utils.c:3472 #, c-format msgid "Today is %%A, %s %s" msgstr "Hoje é %%A, %s %s" #: ../utils.c:3701 #, c-format msgid "" "Incorrect header format for CSV import\n" "Check line 1 of file %s\n" "Aborting import\n" msgstr "" #: ../utils.c:3738 #, fuzzy, c-format msgid "Error writing version header to file: %s%s\n" msgstr "Erro ao escrever cabeçalho de PC no arquivo: next_id\n" #: ../utils.c:3743 #, fuzzy, c-format msgid "Error writing next id to file: %s%s" msgstr "Erro ao escrever próxima ID no arquivo: next_id\n" #: ../weekview_gui.c:297 msgid "Weekly View" msgstr "Visão semanal" #: ../weekview_gui.c:337 msgid "Last week Alt+LeftArrow" msgstr "" #: ../weekview_gui.c:366 msgid "Next week Alt+RightArrow" msgstr "" #: ../Expense/expense.c:97 msgid "Australia" msgstr "Austrália" #: ../Expense/expense.c:98 msgid "Austria" msgstr "Áustria" #: ../Expense/expense.c:99 msgid "Belgium" msgstr "Bélgica" #: ../Expense/expense.c:100 msgid "Brazil" msgstr "Brasil" #: ../Expense/expense.c:101 msgid "Canada" msgstr "Canadá" #: ../Expense/expense.c:102 msgid "Denmark" msgstr "Dinamarca" #: ../Expense/expense.c:103 msgid "EU (Euro)" msgstr "EU (Euro)" #: ../Expense/expense.c:104 msgid "Finland" msgstr "Finlândia" #: ../Expense/expense.c:105 msgid "France" msgstr "França" #: ../Expense/expense.c:106 msgid "Germany" msgstr "Alemanha" #: ../Expense/expense.c:107 msgid "Hong Kong" msgstr "Hong Kong" #: ../Expense/expense.c:108 msgid "Iceland" msgstr "Islândia" #: ../Expense/expense.c:109 msgid "India" msgstr "Índia" #: ../Expense/expense.c:110 msgid "Indonesia" msgstr "Indonésia" #: ../Expense/expense.c:111 msgid "Ireland" msgstr "Irlanda" #: ../Expense/expense.c:112 msgid "Italy" msgstr "Itália" #: ../Expense/expense.c:113 msgid "Japan" msgstr "Japão" #: ../Expense/expense.c:114 msgid "Korea" msgstr "Coréia" #: ../Expense/expense.c:115 msgid "Luxembourg" msgstr "Luxemburgo" #: ../Expense/expense.c:116 msgid "Malaysia" msgstr "Malásia" #: ../Expense/expense.c:117 msgid "Mexico" msgstr "México" #: ../Expense/expense.c:118 msgid "Netherlands" msgstr "Países Baixos" #: ../Expense/expense.c:119 msgid "New Zealand" msgstr "Nova Zelândia" #: ../Expense/expense.c:120 msgid "Norway" msgstr "Noruega" #: ../Expense/expense.c:121 msgid "P.R.C." msgstr "China" #: ../Expense/expense.c:122 msgid "Philippines" msgstr "Filipinas" #: ../Expense/expense.c:123 msgid "Singapore" msgstr "Cingapura" #: ../Expense/expense.c:124 msgid "Spain" msgstr "Espanha" #: ../Expense/expense.c:125 msgid "Sweden" msgstr "Suécia" #: ../Expense/expense.c:126 msgid "Switzerland" msgstr "Suíça" #: ../Expense/expense.c:127 msgid "Taiwan" msgstr "Taiwan" #: ../Expense/expense.c:128 msgid "Thailand" msgstr "Tailândia" #: ../Expense/expense.c:129 msgid "United Kingdom" msgstr "Reino Unido" #: ../Expense/expense.c:130 msgid "United States" msgstr "Estados Unidos" #: ../Expense/expense.c:518 ../Expense/expense.c:529 msgid "Expense" msgstr "Despesas" #: ../Expense/expense.c:550 ../Expense/expense.c:1388 msgid "Airfare" msgstr "Passagens aéreas" #: ../Expense/expense.c:552 ../Expense/expense.c:1389 msgid "Breakfast" msgstr "Café da manhã" #: ../Expense/expense.c:554 ../Expense/expense.c:1390 msgid "Bus" msgstr "Ônibus" #: ../Expense/expense.c:556 ../Expense/expense.c:1391 msgid "BusinessMeals" msgstr "Refeições a negócios" #: ../Expense/expense.c:558 ../Expense/expense.c:1392 msgid "CarRental" msgstr "Aluguel de carro" #: ../Expense/expense.c:560 ../Expense/expense.c:1393 msgid "Dinner" msgstr "Jantar" #: ../Expense/expense.c:562 ../Expense/expense.c:1394 msgid "Entertainment" msgstr "Diversão" #: ../Expense/expense.c:564 ../Expense/expense.c:1395 msgid "Fax" msgstr "Fax" #: ../Expense/expense.c:566 ../Expense/expense.c:1396 msgid "Gas" msgstr "Combustível" #: ../Expense/expense.c:568 ../Expense/expense.c:1397 msgid "Gifts" msgstr "Presentes" #: ../Expense/expense.c:570 ../Expense/expense.c:1398 msgid "Hotel" msgstr "Hotel" #: ../Expense/expense.c:572 ../Expense/expense.c:1399 msgid "Incidentals" msgstr "Imprevistos" #: ../Expense/expense.c:574 ../Expense/expense.c:1400 msgid "Laundry" msgstr "Lavanderia" #: ../Expense/expense.c:576 ../Expense/expense.c:1401 msgid "Limo" msgstr "Limusine" #: ../Expense/expense.c:578 ../Expense/expense.c:1402 msgid "Lodging" msgstr "Alojamento" #: ../Expense/expense.c:580 ../Expense/expense.c:1403 msgid "Lunch" msgstr "Almoço" #: ../Expense/expense.c:582 ../Expense/expense.c:1404 msgid "Mileage" msgstr "Milhagem" #: ../Expense/expense.c:586 ../Expense/expense.c:1406 msgid "Parking" msgstr "Estacionamento" #: ../Expense/expense.c:588 ../Expense/expense.c:1407 msgid "Postage" msgstr "Postagem" #: ../Expense/expense.c:590 ../Expense/expense.c:1408 msgid "Snack" msgstr "Lanche" #: ../Expense/expense.c:592 ../Expense/expense.c:1409 msgid "Subway" msgstr "Metrô" #: ../Expense/expense.c:594 ../Expense/expense.c:1410 msgid "Supplies" msgstr "Material" #: ../Expense/expense.c:596 ../Expense/expense.c:1411 msgid "Taxi" msgstr "Táxi" #: ../Expense/expense.c:598 ../Expense/expense.c:1412 msgid "Telephone" msgstr "Telefone" #: ../Expense/expense.c:600 ../Expense/expense.c:1413 msgid "Tips" msgstr "Gorjetas" #: ../Expense/expense.c:602 ../Expense/expense.c:1414 msgid "Tolls" msgstr "Taxas" #: ../Expense/expense.c:604 ../Expense/expense.c:1415 msgid "Train" msgstr "Trem" #: ../Expense/expense.c:1239 msgid "Expense: Unknown expense type\n" msgstr "Despesas: tipo de despesa desconhecido\n" #: ../Expense/expense.c:1245 msgid "Expense: Unknown payment type\n" msgstr "Despesas: tipo de pagamento desconhecido\n" #: ../Expense/expense.c:1377 msgid "American Express" msgstr "American Express" #: ../Expense/expense.c:1378 msgid "Cash" msgstr "Dinheiro" #: ../Expense/expense.c:1379 msgid "Check" msgstr "Cheque" #: ../Expense/expense.c:1380 msgid "Credit Card" msgstr "Cartão de Crédito" #: ../Expense/expense.c:1381 msgid "Master Card" msgstr "MasterCard" #: ../Expense/expense.c:1382 msgid "Prepaid" msgstr "Pré-pago" #: ../Expense/expense.c:1383 msgid "VISA" msgstr "VISA" #: ../Expense/expense.c:1619 #, fuzzy msgid "Type" msgstr "Tipo:" #: ../Expense/expense.c:1620 #, fuzzy msgid "Amount" msgstr "Quantia:" #. Category Menu #: ../Expense/expense.c:1704 msgid "Category:" msgstr "Categoria:" #. Type Menu #: ../Expense/expense.c:1712 msgid "Type:" msgstr "Tipo:" #. Payment Menu #: ../Expense/expense.c:1720 msgid "Payment:" msgstr "Pagamento:" #. Currency Menu #: ../Expense/expense.c:1728 msgid "Currency:" msgstr "Moeda:" #: ../Expense/expense.c:1748 msgid "Month:" msgstr "Mês:" #: ../Expense/expense.c:1762 msgid "Day:" msgstr "Dia:" #: ../Expense/expense.c:1776 msgid "Year:" msgstr "Ano:" #. Amount Entry #: ../Expense/expense.c:1789 msgid "Amount:" msgstr "Quantia:" #. Vendor Entry #: ../Expense/expense.c:1799 msgid "Vendor:" msgstr "Fornecedor:" #. City #: ../Expense/expense.c:1809 msgid "City:" msgstr "Cidade:" #. Attendees #: ../Expense/expense.c:1819 msgid "Attendees" msgstr "Participantes" #. ------------------------------------------- #: ../Expense/expense.c:2102 #, c-format msgid "" "%s\n" "\n" "Expense plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org" msgstr "" #: ../KeyRing/keyring.c:291 msgid "KeyRing: pack_KeyRing(): buf_size too small\n" msgstr "KeyRing: pack_KeyRing(): buf_size pequeno demais\n" #: ../KeyRing/keyring.c:1699 msgid "Incorrect, Reenter KeyRing Password" msgstr "Incorreto, Digite Novamente Senha KeyRing" #: ../KeyRing/keyring.c:1701 msgid "Enter a NEW KeyRing Password" msgstr "Digite uma NOVA Senha KeyRing" #: ../KeyRing/keyring.c:1703 msgid "Enter KeyRing Password" msgstr "Digine Senha KeyRing" #: ../KeyRing/keyring.c:1769 #, c-format msgid "KeyRing: file %s not found.\n" msgstr "KeyRing: arquivo %s não encontrado.\n" #: ../KeyRing/keyring.c:1770 msgid "KeyRing: Try Syncing.\n" msgstr "KeyRing: Tente Sincronizar.\n" #: ../KeyRing/keyring.c:1861 ../KeyRing/keyring.c:1872 msgid "KeyRing" msgstr "KeyRing" #. ------------------------------------------- #: ../KeyRing/keyring.c:1900 #, c-format msgid "" "%s\n" "\n" "KeyRing plugin for J-Pilot was written by\n" "Judd Montgomery (c) 2001.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "KeyRing is a free PalmOS program for storing\n" "passwords and other information in encrypted form\n" "http://gnukeyring.sourceforge.net" msgstr "" #: ../KeyRing/keyring.c:2137 #, c-format msgid "" "Keys exported from %s %s on %s\n" "\n" msgstr "" #: ../KeyRing/keyring.c:2162 #, fuzzy, c-format msgid "Can't export key %d\n" msgstr "Não foi possível exportar memo %d\n" #: ../KeyRing/keyring.c:2229 msgid "B-FOLDERS CSV" msgstr "" #. Change Password button #: ../KeyRing/keyring.c:2384 msgid "" "Change\n" "KeyRing\n" "Password" msgstr "" "Alterar\n" "Senha\n" "KeyRing" #. Clist #: ../KeyRing/keyring.c:2497 msgid "Changed" msgstr "Alterado" #: ../KeyRing/keyring.c:2499 msgid "Account" msgstr "Conta" #. Name entry #: ../KeyRing/keyring.c:2593 msgid "name: " msgstr "Nome:" #. Account entry #: ../KeyRing/keyring.c:2601 msgid "account: " msgstr "Conta:" #. Password entry #: ../KeyRing/keyring.c:2609 msgid "password: " msgstr "Senha:" #. Last Changed entry #: ../KeyRing/keyring.c:2616 msgid "last changed: " msgstr "Última alteração:" #. Generate Password button (creates random password) #: ../KeyRing/keyring.c:2626 msgid "Generate Password" msgstr "Gerar Senha" #: ../SyncTime/synctime.c:61 msgid "SyncTime" msgstr "SyncTime" #. ------------------------------------------- #: ../SyncTime/synctime.c:72 #, c-format msgid "" "%s\n" "\n" "SyncTime plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "SyncTime WILL NOT work with PalmOS 3.3!" msgstr "" #: ../SyncTime/synctime.c:106 msgid "synctime: Palm OS Version 3.25 and 3.30 do not support SyncTime\n" msgstr "synctime: as versões 3.25 e 3.30 do Palm OS não suportam o SyncTime\n" #: ../SyncTime/synctime.c:107 msgid "synctime: NOT setting the time on the pilot\n" msgstr "synctime: NÃO está acertando as horas no pilot\n" #: ../SyncTime/synctime.c:112 msgid "synctime: Setting the time on the pilot... " msgstr "synctime: Acertando as horas no pilot... " #: ../SyncTime/synctime.c:117 msgid "Done\n" msgstr "Concluído\n" #~ msgid " -i makes program iconify itself upon launch.\n" #~ msgstr " -i faz o programa ser lançado iconificado.\n" #~ msgid "Your HOME environment variable is too long(>1024)\n" #~ msgstr "Sua variável HOME é longa demais (>1024)\n" #~ msgid "W" #~ msgstr "Q" #~ msgid "M" #~ msgstr "S" #~ msgid "This Event has no particular time" #~ msgstr "Evento sem hora específica" #~ msgid "Start Time" #~ msgstr "Início" #~ msgid "End Time" #~ msgstr "Término" #, fuzzy #~ msgid "email command empty\n" #~ msgstr "Comando de e-mail" #~ msgid "Unable to open %s%s file\n" #~ msgstr "Não foi possível abrir arquivo %s%s\n" #~ msgid "Unable to open %s.alarms file\n" #~ msgstr "Não foi possível abrir arquivo %s.alarms\n" #~ msgid "You can't edit category %s.\n" #~ msgstr "Você não pode editar a categoria %s.\n" #~ msgid "You can't delete category %s.\n" #~ msgstr "Você não pode excluir a categoria %s.\n" #~ msgid "category name" #~ msgstr "nome da categoria" #~ msgid "debug" #~ msgstr "depurar" #, fuzzy #~ msgid "End Date: Never\n" #~ msgstr "Terminar em" #, fuzzy #~ msgid "Repeat Days: " #~ msgstr "Repetir nos dias:" #~ msgid "Close" #~ msgstr "Fechar" #~ msgid "none" #~ msgstr "nenhum" #~ msgid "Unknown repeatType found in DatebookDB\n" #~ msgstr "Foi encontrado repeatType desconhecido em DatebookDB\n" #~ msgid "Dismiss" #~ msgstr "Descartar" #~ msgid "Done" #~ msgstr "Concluído" #~ msgid "Add" #~ msgstr "Adicionar" #~ msgid "Remove" #~ msgstr "Remover" #~ msgid "User name" #~ msgstr "Nome do usuário" #~ msgid " -v = version\n" #~ msgstr " -v = versão\n" #~ msgid " -h = help\n" #~ msgstr " -h = ajuda\n" #~ msgid " -d = run in debug mode\n" #~ msgstr " -d = executar em modo de depuração\n" #~ msgid " -P = do not load plugins.\n" #~ msgstr " -P = não carregar plug-ins.\n" #~ msgid " -b = Do a sync and then a backup, otherwise just do a sync.\n" #~ msgstr "" #~ " -b = Sincronizar e então fazer uma cópia, senão apenas sincronizar.\n" #~ msgid "Invalid geometry specification: \"%s\"\n" #~ msgstr "Especificação geométrica inválida: \"%s\"\n" #~ msgid "/Help/PayBack program" #~ msgstr "/Ajuda/Fazer doação" #~ msgid "Font Selection Dialog" #~ msgstr "Diálogo de Seleção de Fonte" #~ msgid "Show private records" #~ msgstr "Mostra registros particulares" #~ msgid "Hide private records" #~ msgstr "Oculta registros particulares" #~ msgid "Mask private records" #~ msgstr "Encobre registros particulares" #~ msgid "Font" #~ msgstr "Fonte" #~ msgid "Go to the menu \"" #~ msgstr "Ir ao menu \"" #~ msgid "\" and change the \"" #~ msgstr "\" e mudar o \"" #~ msgid "\"." #~ msgstr "\"." #~ msgid "Couldn't open PC records file\n" #~ msgstr "Não foi possível abrir arquivo de registros do PC\n" #~ msgid "The first day of the week is " #~ msgstr "O primeiro dia da semana é" #~ msgid "One record" #~ msgstr "Um registro" #~ msgid "Finished\n" #~ msgstr "Concluído\n" #~ msgid "Last Username = [%s]\n" #~ msgstr "Último nome de usuário = [%s]\n" #~ msgid "Last UserID = %d\n" #~ msgstr "Última ID de usuário = %d\n" #~ msgid "Username = [%s]\n" #~ msgstr "Nome de usuário = [%s]\n" #~ msgid "userID = %d\n" #~ msgstr "ID de usuário = %d\n" #~ msgid "number of records = %d\n" #~ msgstr "número de registros = %d\n" #~ msgid "palm: number of records = %d\n" #~ msgstr "palm: número de registros = %d\n" #~ msgid "disk: number of records = %d\n" #~ msgstr "disco: número de registros = %d\n" #, fuzzy #~ msgid "Your HOME environment variable is too long for me\n" #~ msgstr "Sua variável HOME é longa demais (>1024)\n" #~ msgid "" #~ "%s doesn't appear to be a directory.\n" #~ "I need it to be.\n" #~ msgstr "" #~ "%s não parece ser um diretório.\n" #~ "Eu preciso que seja.\n" #, fuzzy #~ msgid "I can't write files in directory %s\n" #~ msgstr "Não foi possível criar o diretório %s\n" #~ msgid "Expense: Unknown category\n" #~ msgstr "Despesas: categoria desconhecida\n" #~ msgid "Field" #~ msgstr "Campo" #~ msgid "kana(" #~ msgstr "kana(" #~ msgid "Quick View" #~ msgstr "Visualização rápida" #~ msgid "Serial Port (/dev/ttyS0, /dev/pilot)" #~ msgstr "Porta serial (/dev/ttyS0, /dev/pilot)" #~ msgid "Serial Rate (Does not affect USB)" #~ msgstr "Taxa de transferência (não afeta USB)" #~ msgid "Sync memo32 (pedit32)" #~ msgstr "Sincronizar memo32 (pedit32)" #~ msgid "AmEx" #~ msgstr "American Express" #~ msgid "CreditCard" #~ msgstr "Cartão de crédito" #~ msgid "MasterCard" #~ msgstr "MasterCard" jpilot-1.8.1.2/po/jpilot.pot0000644000175000017500000021022111702307202012536 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: jpilot-devel@jpilot.org\n" "POT-Creation-Date: 2012-01-08 13:39+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: ../address.c:276 ../address.c:448 ../alarms.c:332 ../calendar.c:309 #: ../calendar.c:547 ../contact.c:324 ../contact.c:738 ../dat.c:189 #: ../dat.c:655 ../dat.c:859 ../dat.c:993 ../dat.c:1132 ../datebook.c:130 #: ../datebook.c:165 ../datebook.c:172 ../datebook.c:231 ../jpilot.c:1254 #: ../jpilot-merge.c:95 ../libplugin.c:208 ../libplugin.c:455 #: ../libplugin.c:534 ../libplugin.c:563 ../libplugin.c:811 ../memo.c:214 #: ../memo.c:287 ../otherconv.c:280 ../plugins.c:112 ../prefs.c:350 #: ../prefs.c:375 ../prefs.c:906 ../sync.c:2170 ../sync.c:2187 ../sync.c:2296 #: ../sync.c:2310 ../sync.c:2507 ../sync.c:2646 ../todo.c:236 ../todo.c:490 #: ../utils.c:748 #, c-format msgid "Out of memory" msgstr "" #: ../address.c:332 ../calendar.c:230 ../contact.c:580 ../datebook.c:494 #: ../memo.c:87 ../todo.c:90 #, c-format msgid "%s:%d Error reading application info %s\n" msgstr "" #: ../address.c:344 ../address_gui.c:2285 ../address_gui.c:2324 #: ../calendar.c:246 ../contact.c:596 ../datebook.c:514 ../datebook_gui.c:3737 #: ../libplugin.c:405 ../libplugin.c:431 ../memo.c:99 ../memo_gui.c:863 #: ../todo_gui.c:1070 ../Expense/expense.c:1105 #, c-format msgid "Error reading file: %s\n" msgstr "" #: ../address.c:492 ../calendar.c:598 ../calendar.c:607 ../contact.c:780 #: ../libplugin.c:846 ../memo.c:353 ../todo.c:302 ../utils.c:1124 #: ../utils.c:1131 ../utils.c:1138 ../utils.c:1145 ../utils.c:1152 #: ../utils.c:1159 msgid "error" msgstr "" #: ../address_gui.c:325 ../datebook_gui.c:2844 ../memo_gui.c:176 #: ../todo_gui.c:292 ../KeyRing/keyring.c:834 msgid "" "This record is deleted.\n" "Undelete it or copy it to make changes.\n" msgstr "" #: ../address_gui.c:452 ../address_gui.c:458 ../address_gui.c:469 #: ../address_gui.c:481 ../address_gui.c:493 ../address_gui.c:506 #, c-format msgid "%s%s: %s" msgstr "" #: ../address_gui.c:542 ../category.c:118 ../category.c:176 ../category.c:330 #: ../category.c:336 ../datebook_gui.c:430 ../jpilot-merge.c:88 #: ../jpilot-merge.c:146 ../jpilot-merge.c:151 ../memo_gui.c:280 #: ../sync.c:2129 ../sync.c:2135 ../sync.c:2481 ../sync.c:2842 #: ../todo_gui.c:416 ../utils.c:2674 ../utils.c:2711 ../utils.c:2717 #: ../utils.c:2776 ../utils.c:2782 ../utils.c:2836 ../utils.c:2890 #: ../utils.c:2896 ../utils.c:2954 ../utils.c:2961 #, c-format msgid "Unable to open file: %s\n" msgstr "" #: ../address_gui.c:561 #, c-format msgid "Unable to read file: %s\n" msgstr "" #: ../address_gui.c:715 msgid "File doesn't appear to be address.dat format\n" msgstr "" #: ../address_gui.c:725 ../datebook_gui.c:647 ../memo_gui.c:324 #: ../memo_gui.c:417 ../todo_gui.c:542 ../Expense/expense.c:1384 msgid "Unfiled" msgstr "" #: ../address_gui.c:781 ../datebook_gui.c:698 ../memo_gui.c:470 #: ../todo_gui.c:595 msgid "CSV (Comma Separated Values)" msgstr "" #: ../address_gui.c:782 msgid "DAT/ABA (Palm Archive Formats)" msgstr "" #. current category name #. previous category name #. entry text, in Pilot character set #: ../address_gui.c:868 ../category.c:408 ../datebook_gui.c:729 #: ../jpilot.c:234 ../jpilot.c:278 ../jpilot.c:352 ../jpilot.c:396 #: ../jpilot.c:953 ../memo_gui.c:506 ../todo_gui.c:635 ../utils.c:1305 #: ../KeyRing/keyring.c:2090 msgid "OK" msgstr "" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "No" msgstr "" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "Yes" msgstr "" #: ../address_gui.c:888 ../datebook_gui.c:753 ../memo_gui.c:520 #: ../todo_gui.c:655 ../KeyRing/keyring.c:2104 #, c-format msgid "%s is a directory" msgstr "" #: ../address_gui.c:890 ../address_gui.c:907 ../datebook_gui.c:755 #: ../datebook_gui.c:772 ../memo_gui.c:522 ../memo_gui.c:539 ../todo_gui.c:657 #: ../todo_gui.c:674 ../KeyRing/keyring.c:2106 ../KeyRing/keyring.c:2123 msgid "Error Opening File" msgstr "" #: ../address_gui.c:894 ../datebook_gui.c:759 ../memo_gui.c:526 #: ../todo_gui.c:661 ../KeyRing/keyring.c:2110 #, c-format msgid "Do you want to overwrite file %s?" msgstr "" #: ../address_gui.c:896 ../datebook_gui.c:761 ../memo_gui.c:528 #: ../todo_gui.c:663 ../KeyRing/keyring.c:2112 msgid "Overwrite File?" msgstr "" #: ../address_gui.c:905 ../datebook_gui.c:770 ../memo_gui.c:537 #: ../todo_gui.c:672 ../KeyRing/keyring.c:2121 #, c-format msgid "Error opening file: %s" msgstr "" #: ../address_gui.c:922 #, c-format msgid "" "Address exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:925 #, c-format msgid "" "Contact exported from %s %s on %s\n" "\n" msgstr "" #: ../address_gui.c:989 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ldif file may not be standards-compliant\n" msgstr "" #: ../address_gui.c:1002 #, c-format msgid "Can't export address %d\n" msgstr "" #: ../address_gui.c:1008 ../memo_gui.c:630 ../todo_gui.c:760 #, c-format msgid "Category: %s\n" msgstr "" #: ../address_gui.c:1010 ../memo_gui.c:632 ../todo_gui.c:763 #, c-format msgid "Private: %s\n" msgstr "" #: ../address_gui.c:1018 ../address_gui.c:1032 ../address_gui.c:1036 #: ../address_gui.c:1045 ../address_gui.c:1048 #, c-format msgid "%s: " msgstr "" #: ../address_gui.c:1022 #, c-format msgid "%s\n" msgstr "" #. E-mail should be the Palm dropdown menu item for email #. Set dial/email button text and callback data #: ../address_gui.c:1196 ../address_gui.c:2846 ../address_gui.c:4185 msgid "E-mail" msgstr "" #: ../address_gui.c:1482 ../datebook_gui.c:1147 ../memo_gui.c:640 #: ../todo_gui.c:844 ../KeyRing/keyring.c:2214 msgid "Unknown export type\n" msgstr "" #: ../address_gui.c:1508 ../datebook_gui.c:1226 ../memo_gui.c:469 #: ../memo_gui.c:666 ../todo_gui.c:870 ../KeyRing/keyring.c:2229 msgid "Text" msgstr "" #: ../address_gui.c:1509 ../datebook_gui.c:1227 ../memo_gui.c:667 #: ../todo_gui.c:871 ../KeyRing/keyring.c:2229 msgid "CSV" msgstr "" #: ../address_gui.c:1510 msgid "vCard" msgstr "" #: ../address_gui.c:1511 msgid "vCard (Optimized for Gmail/Android Import)" msgstr "" #: ../address_gui.c:1512 msgid "ldif" msgstr "" #. Initialize variable if default case taken #: ../address_gui.c:1777 ../address_gui.c:3902 msgid "Last Name/Company" msgstr "" #: ../address_gui.c:1780 ../address_gui.c:3905 msgid "First Name/Company" msgstr "" #: ../address_gui.c:1783 ../address_gui.c:3908 msgid "Company/Last Name" msgstr "" #: ../address_gui.c:1920 ../datebook_gui.c:2907 ../memo_gui.c:1036 #: ../todo_gui.c:1329 ../KeyRing/keyring.c:1181 msgid "You can't modify a record that is deleted\n" msgstr "" #. Illegal category, Assume that category 0 is Unfiled and valid #: ../address_gui.c:2119 ../address_gui.c:2370 ../address_gui.c:2803 #: ../address_gui.c:2809 ../address_gui.c:3601 ../datebook_gui.c:1994 #: ../datebook_gui.c:3434 ../datebook_gui.c:3783 ../datebook_gui.c:4074 #: ../memo_gui.c:900 ../memo_gui.c:946 ../memo_gui.c:1161 ../memo_gui.c:1548 #: ../todo_gui.c:1106 ../todo_gui.c:1200 ../todo_gui.c:1589 ../todo_gui.c:2141 #: ../Expense/expense.c:689 ../Expense/expense.c:1143 #: ../Expense/expense.c:1227 ../Expense/expense.c:1887 #: ../KeyRing/keyring.c:1070 ../KeyRing/keyring.c:1512 #: ../KeyRing/keyring.c:1574 ../KeyRing/keyring.c:2688 msgid "Category is not legal\n" msgstr "" #: ../address_gui.c:2179 ../alarms.c:598 ../dialer.c:164 #, c-format msgid "executing command = [%s]\n" msgstr "" #: ../address_gui.c:2181 #, c-format msgid "Failed to execute [%s]\n" msgstr "" #: ../address_gui.c:2425 msgid "Birthday" msgstr "" #: ../address_gui.c:2521 msgid "External program not found, or other error" msgstr "" #: ../address_gui.c:2523 msgid "" "J-Pilot can not find the external program \"convert\"\n" "or an error occurred while executing convert.\n" "You may need to install package ImageMagick" msgstr "" #: ../address_gui.c:2524 #, c-format msgid "Command executed was \"%s\"\n" msgstr "" #: ../address_gui.c:2525 #, c-format msgid "return code was %d\n" msgstr "" #: ../address_gui.c:2603 msgid "chdir() failed\n" msgstr "" #: ../address_gui.c:2606 msgid "Add Photo" msgstr "" #. Category menu #: ../address_gui.c:2828 ../KeyRing/keyring.c:2585 msgid "Category: " msgstr "" #: ../address_gui.c:2848 ../address_gui.c:4186 msgid "Mail" msgstr "" #. Dial Phone Button #: ../address_gui.c:2851 ../address_gui.c:4189 ../dialer.c:307 ../dialer.c:331 msgid "Dial" msgstr "" #: ../address_gui.c:3041 ../datebook_gui.c:2757 ../memo_gui.c:1228 #: ../todo_gui.c:1697 msgid "Could not get temporary file name\n" msgstr "" #: ../address_gui.c:3049 ../datebook_gui.c:2765 ../memo_gui.c:1236 #: ../todo_gui.c:1705 msgid "Could not open temporary file for external editor\n" msgstr "" #: ../address_gui.c:3089 ../datebook_gui.c:2806 ../memo_gui.c:1277 #: ../todo_gui.c:1746 msgid "Could not open temporary file from external editor\n" msgstr "" #: ../address_gui.c:3261 ../address_gui.c:3292 msgid "-Unnamed-" msgstr "" #: ../address_gui.c:3374 ../memo_gui.c:1454 ../todo_gui.c:2019 msgid "0 records" msgstr "" #: ../address_gui.c:3377 ../datebook_gui.c:2637 ../memo_gui.c:1457 #: ../todo_gui.c:2022 #, c-format msgid "%d of %d records" msgstr "" #: ../address_gui.c:3772 ../address_gui.c:3780 ../KeyRing/keyring.c:2498 msgid "Name" msgstr "" #: ../address_gui.c:3773 ../address_gui.c:3774 ../address_gui.c:3775 #: ../address_gui.c:3781 msgid "Address" msgstr "" #: ../address_gui.c:3776 ../address_gui.c:3782 ../Expense/expense.c:584 #: ../Expense/expense.c:1405 msgid "Other" msgstr "" #. Note textbox #: ../address_gui.c:3777 ../address_gui.c:3783 ../todo_gui.c:2484 #: ../Expense/expense.c:1836 ../KeyRing/keyring.c:2632 msgid "Note" msgstr "" #: ../address_gui.c:3793 msgid "Reverting to Address database\n" msgstr "" #: ../address_gui.c:3914 msgid "Phone" msgstr "" #: ../address_gui.c:3946 msgid "Quick Find: " msgstr "" #. Cancel button #. Add record modification buttons #. Cancel button #: ../address_gui.c:3964 ../category.c:409 ../datebook_gui.c:1782 #: ../datebook_gui.c:5124 ../memo_gui.c:1692 ../todo_gui.c:2345 #: ../utils.c:1346 ../KeyRing/keyring.c:2528 msgid "Cancel" msgstr "" #: ../address_gui.c:3964 ../datebook_gui.c:5124 ../memo_gui.c:1692 #: ../todo_gui.c:2345 ../KeyRing/keyring.c:2528 msgid "Cancel the modifications" msgstr "" #. Delete Button #. Delete button #. Delete Button #. Delete button #. Delete, Copy, New, etc. buttons #. Delete button #: ../address_gui.c:3969 ../category.c:409 ../category.c:852 #: ../datebook_gui.c:5129 ../memo_gui.c:1697 ../todo_gui.c:2350 #: ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete" msgstr "" #: ../address_gui.c:3969 ../datebook_gui.c:5129 ../memo_gui.c:1697 #: ../todo_gui.c:2350 ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete the selected record" msgstr "" #. Undelete Button #. Undelete button #. Undelete Button #. Undelete button #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 msgid "Undelete" msgstr "" #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 msgid "Undelete the selected record" msgstr "" #. Copy button #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy" msgstr "" #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy the selected record" msgstr "" #. New button #. New Record button #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "New Record" msgstr "" #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "Add a new record" msgstr "" #. "Add Record" button #. Add Record button #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add Record" msgstr "" #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add the new record" msgstr "" #. "Apply Changes" button #. Apply Changes button #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Apply Changes" msgstr "" #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Commit the modifications" msgstr "" #. Private check box #. Private checkbox #: ../address_gui.c:4033 ../datebook_gui.c:5191 ../datebook_gui.c:5233 #: ../memo_gui.c:1747 ../todo_gui.c:2410 msgid "Private" msgstr "" #: ../address_gui.c:4118 msgid "Change Photo" msgstr "" #: ../address_gui.c:4123 msgid "Remove Photo" msgstr "" #: ../address_gui.c:4195 msgid "Show In List" msgstr "" #: ../address_gui.c:4296 msgid "Reminder" msgstr "" #: ../address_gui.c:4312 ../datebook_gui.c:238 ../datebook_gui.c:5221 #: ../datebook_gui.c:5378 msgid "Days" msgstr "" #. The Quickview (ALL) page #. All button #: ../address_gui.c:4356 ../datebook_gui.c:1478 ../datebook_gui.c:1782 #: ../utils.c:2528 msgid "All" msgstr "" #: ../alarms.c:232 ../datebook_gui.c:236 ../datebook_gui.c:5215 #: ../datebook_gui.c:5372 msgid "Minutes" msgstr "" #: ../alarms.c:234 ../datebook_gui.c:237 ../datebook_gui.c:5219 #: ../datebook_gui.c:5376 msgid "Hours" msgstr "" #: ../alarms.c:255 msgid "Remind me" msgstr "" #: ../alarms.c:425 ../alarms.c:991 ../sync.c:1639 ../sync.c:1645 #: ../utils.c:3717 #, c-format msgid "Unable to open file: %s%s\n" msgstr "" #: ../alarms.c:512 msgid "Appointment Reminder" msgstr "" #: ../alarms.c:515 msgid "Past Appointment" msgstr "" #: ../alarms.c:518 msgid "Postponed Appointment" msgstr "" #: ../alarms.c:521 ../datebook_gui.c:5025 msgid "Appointment" msgstr "" #: ../alarms.c:605 msgid "J-Pilot Alarm" msgstr "" #: ../category.c:131 ../category.c:188 ../sync.c:2158 ../sync.c:2495 msgid "PC file corrupt?\n" msgstr "" #: ../category.c:138 ../category.c:148 ../category.c:196 ../category.c:206 #: ../category.c:216 ../sync.c:2280 ../sync.c:2334 ../sync.c:2371 #: ../sync.c:2386 ../sync.c:2410 ../sync.c:2630 ../sync.c:2675 ../sync.c:2712 #: ../sync.c:2725 ../sync.c:2750 msgid "fseek failed - fatal error\n" msgstr "" #: ../category.c:364 ../utils.c:2738 ../utils.c:2812 ../utils.c:2916 #: ../utils.c:2981 msgid "rename failed" msgstr "" #: ../category.c:409 msgid "Move" msgstr "" #: ../category.c:438 ../category.c:500 ../category.c:580 ../category.c:769 msgid "Edit Categories" msgstr "" #: ../category.c:439 msgid "The maximum number of categories (16) are already used" msgstr "" #: ../category.c:442 msgid "Enter New Category" msgstr "" #: ../category.c:453 ../category.c:477 msgid "Edit Categories Error" msgstr "" #: ../category.c:454 msgid "You must select a category to rename" msgstr "" #: ../category.c:463 msgid "Enter New Category Name" msgstr "" #: ../category.c:478 msgid "You must select a category to delete" msgstr "" #: ../category.c:496 #, c-format msgid "" "There are %d records in %s.\n" "Do you want to move them to %s, or delete them?" msgstr "" #: ../category.c:556 #, c-format msgid "invalid state file %s line %d\n" msgstr "" #: ../category.c:578 #, c-format msgid "The category %s can't be used more than once" msgstr "" #. Category names in host character set #: ../category.c:735 msgid "Category" msgstr "" #: ../category.c:836 msgid "New" msgstr "" #: ../category.c:843 msgid "Rename" msgstr "" #: ../dat.c:456 msgid "unknown type =" msgstr "" #: ../dat.c:537 #, c-format msgid "fields per row count != %d, unknown format\n" msgstr "" #: ../dat.c:551 #, c-format msgid "field count != %d, unknown format\n" msgstr "" #: ../dat.c:559 msgid "Unknown format, file has wrong schema\n" msgstr "" #: ../dat.c:560 msgid "File schema is:" msgstr "" #: ../dat.c:564 msgid "It should be:" msgstr "" #: ../dat.c:674 ../dat.c:692 ../dat.c:876 ../dat.c:889 ../dat.c:1012 #: ../dat.c:1025 ../dat.c:1149 ../dat.c:1162 #, c-format msgid "%s:%d Record %d, field %d: Invalid type. Expected %d, found %d\n" msgstr "" #: ../dat.c:675 ../dat.c:693 ../dat.c:877 ../dat.c:890 ../dat.c:994 #: ../dat.c:1013 ../dat.c:1026 ../dat.c:1150 ../dat.c:1163 msgid "read of file terminated\n" msgstr "" #: ../datebook.c:705 ../datebook_gui.c:3648 #, c-format msgid "Unknown repeatType (%d) found in DatebookDB\n" msgstr "" #: ../datebook_gui.c:241 msgid "Repeat Never" msgstr "" #: ../datebook_gui.c:242 msgid "Repeat Daily" msgstr "" #: ../datebook_gui.c:243 msgid "Repeat Weekly" msgstr "" #: ../datebook_gui.c:244 msgid "Repeat MonthlyByDay" msgstr "" #: ../datebook_gui.c:245 msgid "Repeat MonthlyByDate" msgstr "" #: ../datebook_gui.c:246 msgid "Repeat YearlyDate" msgstr "" #: ../datebook_gui.c:247 msgid "Repeat YearlyDay" msgstr "" #: ../datebook_gui.c:250 ../datebook_gui.c:257 ../datebook_gui.c:4803 #: ../datebook_gui.c:4810 msgid "Su" msgstr "" #: ../datebook_gui.c:251 ../datebook_gui.c:4804 msgid "Mo" msgstr "" #: ../datebook_gui.c:252 ../datebook_gui.c:4805 msgid "Tu" msgstr "" #: ../datebook_gui.c:253 ../datebook_gui.c:4806 msgid "We" msgstr "" #: ../datebook_gui.c:254 ../datebook_gui.c:4807 msgid "Th" msgstr "" #: ../datebook_gui.c:255 ../datebook_gui.c:4808 msgid "Fr" msgstr "" #: ../datebook_gui.c:256 ../datebook_gui.c:4809 msgid "Sa" msgstr "" #: ../datebook_gui.c:269 #, c-format msgid "" "Start Date: %s\n" "Time: Event" msgstr "" #: ../datebook_gui.c:277 #, c-format msgid "" "Start Date: %s\n" "Time: %s to %s" msgstr "" #: ../datebook_gui.c:287 ../datebook_gui.c:297 msgid "Unknown" msgstr "" #. End Date #: ../datebook_gui.c:300 msgid "End Date: " msgstr "" #: ../datebook_gui.c:302 msgid "Never" msgstr "" #: ../datebook_gui.c:308 #, c-format msgid "Repeat Frequency: %d\n" msgstr "" #: ../datebook_gui.c:316 #, c-format msgid "Monthly Repeat Day %d\n" msgstr "" #: ../datebook_gui.c:321 ../datebook_gui.c:5520 msgid "Repeat on Days:" msgstr "" #: ../datebook_gui.c:332 #, c-format msgid "Number of exceptions: %d" msgstr "" #: ../datebook_gui.c:338 msgid "" "\n" "more..." msgstr "" #: ../datebook_gui.c:359 ../datebook_gui.c:386 msgid "Description:" msgstr "" #: ../datebook_gui.c:360 ../datebook_gui.c:387 msgid "Note:" msgstr "" #: ../datebook_gui.c:362 ../datebook_gui.c:390 msgid "Alarm:" msgstr "" #: ../datebook_gui.c:363 ../datebook_gui.c:391 msgid "Repeat Type:" msgstr "" #: ../datebook_gui.c:366 ../datebook_gui.c:394 msgid "Start of Week:" msgstr "" #: ../datebook_gui.c:388 ../datebook_gui.c:5343 msgid "Location:" msgstr "" #: ../datebook_gui.c:620 ../datebook_gui.c:2271 #, c-format msgid "Appointment description text > %d, truncating to %d\n" msgstr "" #: ../datebook_gui.c:631 ../datebook_gui.c:1148 ../datebook_gui.c:2331 #: ../datebook_gui.c:2338 msgid "Error" msgstr "" #: ../datebook_gui.c:632 msgid "File doesn't appear to be datebook.dat format\n" msgstr "" #: ../datebook_gui.c:699 msgid "DAT/DBA (Palm Archive Formats)" msgstr "" #: ../datebook_gui.c:787 #, c-format msgid "" "Datebook exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:790 #, c-format msgid "" "Calendar exported from %s %s on %s\n" "\n" msgstr "" #: ../datebook_gui.c:817 ../todo_gui.c:701 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ical file may not be standards-compliant\n" msgstr "" #: ../datebook_gui.c:1148 msgid "Unknown export type" msgstr "" #: ../datebook_gui.c:1228 ../todo_gui.c:872 msgid "iCalendar" msgstr "" #: ../datebook_gui.c:1240 ../export_gui.c:251 ../jpilot.c:429 msgid "Export" msgstr "" #. Label for instructions #: ../datebook_gui.c:1257 msgid "Export All Datebook Records" msgstr "" #: ../datebook_gui.c:1276 ../export_gui.c:316 msgid "Save as" msgstr "" #. Browse button #: ../datebook_gui.c:1286 ../export_gui.c:329 msgid "Browse" msgstr "" #: ../datebook_gui.c:1432 msgid "Datebook Categories" msgstr "" #. None button #. Labels for notebook tabs #: ../datebook_gui.c:1484 ../datebook_gui.c:2026 ../datebook_gui.c:5449 msgid "None" msgstr "" #: ../datebook_gui.c:1633 msgid "Begin On Date" msgstr "" #: ../datebook_gui.c:1639 msgid "End On Date" msgstr "" #: ../datebook_gui.c:1751 ../prefs.c:451 msgid "Sunday" msgstr "" #: ../datebook_gui.c:1752 ../prefs.c:452 msgid "Monday" msgstr "" #: ../datebook_gui.c:1753 msgid "Tuesday" msgstr "" #: ../datebook_gui.c:1754 msgid "Wednesday" msgstr "" #: ../datebook_gui.c:1755 msgid "Thursday" msgstr "" #: ../datebook_gui.c:1756 msgid "Friday" msgstr "" #: ../datebook_gui.c:1757 msgid "Saturday" msgstr "" #: ../datebook_gui.c:1760 msgid "4th" msgstr "" #: ../datebook_gui.c:1760 msgid "Last" msgstr "" #: ../datebook_gui.c:1763 #, c-format msgid "" "This appointment can either\n" "repeat on the 4th %s\n" "of the month, or on the last\n" "%s of the month.\n" "Which do you want?" msgstr "" #: ../datebook_gui.c:1770 ../datebook_gui.c:1786 msgid "Question?" msgstr "" #: ../datebook_gui.c:1777 msgid "" "This is a repeating event.\n" "Do you want to apply these changes to\n" "only the CURRENT event,\n" "just FUTURE events, or\n" "ALL of the occurrences of this event?" msgstr "" #: ../datebook_gui.c:1782 msgid "Current" msgstr "" #: ../datebook_gui.c:1782 msgid "Future" msgstr "" #: ../datebook_gui.c:2027 msgid "day" msgstr "" #: ../datebook_gui.c:2028 msgid "week" msgstr "" #: ../datebook_gui.c:2029 msgid "month" msgstr "" #: ../datebook_gui.c:2030 msgid "year" msgstr "" #: ../datebook_gui.c:2326 ../datebook_gui.c:2329 #, c-format msgid "You cannot have an appointment that repeats every %d %s(s)\n" msgstr "" #: ../datebook_gui.c:2339 msgid "" "You cannot have a weekly repeating appointment that doesn't repeat on any " "day of the week." msgstr "" #. This is a timeless event #: ../datebook_gui.c:2516 ../datebook_gui.c:5264 msgid "No Time" msgstr "" #: ../datebook_gui.c:2788 ../memo_gui.c:1259 ../todo_gui.c:1728 msgid "External editor command too long to execute\n" msgstr "" #: ../datebook_gui.c:2943 msgid "Invalid Appointment" msgstr "" #: ../datebook_gui.c:2944 msgid "" "The End Date of this appointment\n" "is before the start date." msgstr "" #. "No Date" check box #: ../datebook_gui.c:3339 ../datebook_gui.c:5482 ../datebook_gui.c:5513 #: ../datebook_gui.c:5565 ../datebook_gui.c:5613 ../todo_gui.c:142 #: ../todo_gui.c:2454 msgid "No Date" msgstr "" #: ../datebook_gui.c:3494 #, c-format msgid "Error in DateBookDB or Calendar advanceUnits = %d\n" msgstr "" #: ../datebook_gui.c:3681 #, c-format msgid "%%a., %s" msgstr "" #: ../datebook_gui.c:3686 msgid " (TODAY)" msgstr "" #. Weekview button #: ../datebook_gui.c:4934 ../datebook_gui.c:5451 msgid "Week" msgstr "" #: ../datebook_gui.c:4943 msgid "View appointments by week Ctrl+W" msgstr "" #. Monthview button #: ../datebook_gui.c:4946 ../datebook_gui.c:5452 msgid "Month" msgstr "" #: ../datebook_gui.c:4955 msgid "View appointments by month Ctrl+M" msgstr "" #. Make Category button #: ../datebook_gui.c:4960 msgid "Cats" msgstr "" #: ../datebook_gui.c:5024 msgid "Time" msgstr "" #. "Show ToDos" button #: ../datebook_gui.c:5067 msgid "Show ToDos" msgstr "" #: ../datebook_gui.c:5081 ../todo_gui.c:2285 msgid "Task" msgstr "" #: ../datebook_gui.c:5082 ../todo_gui.c:2286 msgid "Due" msgstr "" #: ../datebook_gui.c:5201 ../datebook_gui.c:5358 msgid "Alarm" msgstr "" #. Date Spinners #: ../datebook_gui.c:5241 ../Expense/expense.c:1736 msgid "Date:" msgstr "" #. Start date and time #: ../datebook_gui.c:5283 msgid "Start" msgstr "" #. End date and time #: ../datebook_gui.c:5300 msgid "End" msgstr "" #: ../datebook_gui.c:5433 msgid "DateBk Tags" msgstr "" #: ../datebook_gui.c:5450 msgid "Day" msgstr "" #: ../datebook_gui.c:5453 msgid "Year" msgstr "" #. "No Repeat" page for notebook #: ../datebook_gui.c:5456 msgid "This event will not repeat" msgstr "" #: ../datebook_gui.c:5465 ../datebook_gui.c:5498 ../datebook_gui.c:5550 #: ../datebook_gui.c:5596 msgid "Frequency is Every" msgstr "" #: ../datebook_gui.c:5471 msgid "Day(s)" msgstr "" #: ../datebook_gui.c:5474 ../datebook_gui.c:5507 ../datebook_gui.c:5559 #: ../datebook_gui.c:5605 msgid "End on" msgstr "" #: ../datebook_gui.c:5504 msgid "Week(s)" msgstr "" #: ../datebook_gui.c:5556 msgid "Month(s)" msgstr "" #: ../datebook_gui.c:5573 msgid "Repeat by:" msgstr "" #: ../datebook_gui.c:5577 msgid "Day of week" msgstr "" #: ../datebook_gui.c:5586 ../Expense/expense.c:1618 msgid "Date" msgstr "" #: ../datebook_gui.c:5602 msgid "Year(s)" msgstr "" #: ../dialer.c:195 msgid "Phone Dialer" msgstr "" #: ../dialer.c:230 msgid "Prefix 1" msgstr "" #: ../dialer.c:252 msgid "Prefix 2" msgstr "" #: ../dialer.c:274 msgid "Prefix 3" msgstr "" #: ../dialer.c:289 msgid "Phone number:" msgstr "" #: ../dialer.c:319 msgid "Extension" msgstr "" #: ../dialer.c:341 msgid "Dial Command" msgstr "" #: ../export_gui.c:121 msgid "File Browser" msgstr "" #. Label for instructions #: ../export_gui.c:273 msgid "Select records to be exported" msgstr "" #: ../export_gui.c:275 msgid "Use Ctrl and Shift Keys" msgstr "" #. Import button #: ../import_gui.c:300 ../import_gui.c:369 ../import_gui.c:426 #: ../import_gui.c:471 ../jpilot.c:385 msgid "Import" msgstr "" #: ../import_gui.c:317 #, c-format msgid "Record was marked as private" msgstr "" #: ../import_gui.c:319 #, c-format msgid "Record was not marked as private" msgstr "" #: ../import_gui.c:328 #, c-format msgid "Category before import was: [%s]" msgstr "" #: ../import_gui.c:336 #, c-format msgid "Record will be put in category [%s]" msgstr "" #. Import All button #: ../import_gui.c:376 msgid "Import All" msgstr "" #. Skip button #: ../import_gui.c:383 msgid "Skip" msgstr "" #: ../import_gui.c:457 ../install_gui.c:429 msgid "To change to a hidden directory type it below and hit TAB" msgstr "" #: ../import_gui.c:484 msgid "Import File Type" msgstr "" #: ../install_gui.c:366 msgid "Files to install" msgstr "" #: ../install_gui.c:374 msgid "Install" msgstr "" #: ../install_user.c:118 ../install_user.c:220 msgid "Install User" msgstr "" #: ../install_user.c:139 msgid "" "A PalmOS(c) device needs a user name and a user ID in order to sync properly." msgstr "" #: ../install_user.c:146 msgid "" "If you want to sync more than 1 PalmOS(c) device each one should have a " "different ID and preferably a different user name." msgstr "" #. Instruction label #: ../install_user.c:168 msgid "Most people choose their name or nickname for the user name." msgstr "" #: ../install_user.c:176 ../restore_gui.c:278 msgid "User Name" msgstr "" #: ../install_user.c:186 msgid "The ID should be a random number." msgstr "" #: ../install_user.c:194 ../restore_gui.c:297 msgid "User ID" msgstr "" #: ../jpilot.c:319 msgid "Print" msgstr "" #: ../jpilot.c:320 msgid "There is no print support for this conduit." msgstr "" #: ../jpilot.c:386 msgid "There is no import support for this conduit." msgstr "" #: ../jpilot.c:430 msgid "There is no export support for this conduit." msgstr "" #: ../jpilot.c:659 msgid " Cancelling HotSync\n" msgstr "" #. ------------------------------------------- #: ../jpilot.c:675 msgid "" "This handheld does not have the same user name or user ID\n" "as the one that was synced the last time.\n" "Syncing could have unwanted effects including data loss.\n" "\n" "Read the user manual if you are uncertain." msgstr "" #. ------------------------------------------- #: ../jpilot.c:682 msgid "" "This handheld has a NULL user ID.\n" "Every handheld must have a unique user ID in order to sync properly.\n" "If the handheld has been hard reset, \n" " use restore from the menu to restore it.\n" "Otherwise, to add a new user name and ID\n" " use install-user from the menu.\n" "\n" "Read the user manual if you are uncertain." msgstr "" #: ../jpilot.c:690 msgid "Cancel Sync" msgstr "" #: ../jpilot.c:690 msgid "Sync Anyway" msgstr "" #: ../jpilot.c:699 ../jpilot.c:703 msgid "Sync Problem" msgstr "" #: ../jpilot.c:932 ../jpilot.c:1785 msgid " User: " msgstr "" #: ../jpilot.c:944 msgid "Unknown command from sync process\n" msgstr "" #: ../jpilot.c:963 ../Expense/expense.c:529 ../KeyRing/keyring.c:1872 #: ../SyncTime/synctime.c:61 #, c-format msgid "About %s" msgstr "" #: ../jpilot.c:1105 msgid "/_File" msgstr "" #: ../jpilot.c:1106 msgid "/File/tear" msgstr "" #: ../jpilot.c:1107 msgid "/File/_Find" msgstr "" #: ../jpilot.c:1108 ../jpilot.c:1114 ../jpilot.c:1117 msgid "/File/sep1" msgstr "" #: ../jpilot.c:1109 msgid "/File/_Install" msgstr "" #: ../jpilot.c:1110 msgid "/File/Import" msgstr "" #: ../jpilot.c:1111 msgid "/File/Export" msgstr "" #: ../jpilot.c:1112 ../jpilot.c:2190 msgid "/File/Preferences" msgstr "" #: ../jpilot.c:1113 msgid "/File/_Print" msgstr "" #: ../jpilot.c:1115 msgid "/File/Install User" msgstr "" #: ../jpilot.c:1116 msgid "/File/Restore Handheld" msgstr "" #: ../jpilot.c:1118 msgid "/File/_Quit" msgstr "" #: ../jpilot.c:1119 msgid "/_View" msgstr "" #: ../jpilot.c:1120 ../jpilot.c:1121 ../jpilot.c:1122 ../jpilot.c:1368 msgid "/View/Hide Private Records" msgstr "" #: ../jpilot.c:1121 ../jpilot.c:1371 msgid "/View/Show Private Records" msgstr "" #: ../jpilot.c:1122 ../jpilot.c:1374 msgid "/View/Mask Private Records" msgstr "" #: ../jpilot.c:1123 msgid "/View/sep1" msgstr "" #: ../jpilot.c:1124 msgid "/View/Datebook" msgstr "" #: ../jpilot.c:1125 msgid "/View/Addresses" msgstr "" #: ../jpilot.c:1126 msgid "/View/Todos" msgstr "" #: ../jpilot.c:1127 msgid "/View/Memos" msgstr "" #: ../jpilot.c:1128 ../jpilot.c:1259 msgid "/_Plugins" msgstr "" #: ../jpilot.c:1130 msgid "/_Web" msgstr "" #. web #: ../jpilot.c:1131 msgid "/Web/Netscape" msgstr "" #: ../jpilot.c:1135 msgid "/Web/Mozilla" msgstr "" #: ../jpilot.c:1140 msgid "/Web/Galeon" msgstr "" #: ../jpilot.c:1145 msgid "/Web/Opera" msgstr "" #: ../jpilot.c:1149 msgid "/Web/GnomeUrl" msgstr "" #: ../jpilot.c:1151 msgid "/Web/Lynx" msgstr "" #: ../jpilot.c:1153 msgid "/Web/Links" msgstr "" #: ../jpilot.c:1155 msgid "/Web/W3M" msgstr "" #: ../jpilot.c:1157 msgid "/Web/Konqueror" msgstr "" #: ../jpilot.c:1160 msgid "/_Help" msgstr "" #: ../jpilot.c:1161 msgid "/Help/About J-Pilot" msgstr "" #: ../jpilot.c:1227 #, c-format msgid "/_Plugins/%s" msgstr "" #: ../jpilot.c:1237 #, c-format msgid "/_Help/%s" msgstr "" #: ../jpilot.c:1591 msgid "calendar:week_start:0" msgstr "" #: ../jpilot.c:1634 ../jpilot-sync.c:171 msgid "Not loading plugins.\n" msgstr "" #: ../jpilot.c:1638 msgid "Ignoring all alarms.\n" msgstr "" #: ../jpilot.c:1642 msgid "Ignoring past alarms.\n" msgstr "" #: ../jpilot.c:1730 ../jpilot.c:1738 msgid "Unable to open pipe\n" msgstr "" #: ../jpilot.c:1947 msgid "Show private records Ctrl+Z" msgstr "" #: ../jpilot.c:1952 msgid "Hide private records Ctrl+Z" msgstr "" #: ../jpilot.c:1957 msgid "Mask private records Ctrl+Z" msgstr "" #: ../jpilot.c:1969 msgid "Sync your palm to the desktop Ctrl+Y" msgstr "" #: ../jpilot.c:1981 msgid "Stop Sync process" msgstr "" #: ../jpilot.c:1993 msgid "" "Sync your palm to the desktop\n" "and then do a backup" msgstr "" #: ../jpilot.c:2141 msgid "Datebook/Go to Today" msgstr "" #: ../jpilot.c:2142 msgid "Address Book" msgstr "" #: ../jpilot.c:2143 msgid "ToDo List" msgstr "" #: ../jpilot.c:2144 msgid "Memo Pad" msgstr "" #: ../jpilot.c:2172 msgid "Do it now" msgstr "" #: ../jpilot.c:2172 msgid "Remind me later" msgstr "" #: ../jpilot.c:2172 msgid "Don't tell me again!" msgstr "" #: ../jpilot.c:2185 #, c-format msgid "" "J-Pilot uses the GTK2 graphical toolkit. This version of the toolkit uses " "UTF-8 to encode characters.\n" "You should select a UTF-8 charset so that you can see non-ASCII characters " "(accents for example).\n" "\n" "Go to the menu \"%s\" and change the \"%s\"." msgstr "" #. Character Set #: ../jpilot.c:2190 ../prefs_gui.c:511 msgid "Character Set" msgstr "" #: ../jpilot.c:2192 msgid "Select a UTF-8 encoding" msgstr "" #: ../jpilot-dump.c:94 #, c-format msgid " +D +A +T +M format like date +format.\n" msgstr "" #: ../jpilot-dump.c:95 #, c-format msgid " -v display version and exit\n" msgstr "" #: ../jpilot-dump.c:96 ../jpilot-sync.c:68 ../utils.c:1874 #, c-format msgid " -h display help text\n" msgstr "" #: ../jpilot-dump.c:97 #, c-format msgid " -f display help for format codes\n" msgstr "" #: ../jpilot-dump.c:98 #, c-format msgid " -D dump DateBook\n" msgstr "" #: ../jpilot-dump.c:99 #, c-format msgid " -i dump DateBook in iCalendar format\n" msgstr "" #: ../jpilot-dump.c:100 #, c-format msgid " -N dump appts for today in DateBook\n" msgstr "" #: ../jpilot-dump.c:101 #, c-format msgid " -NYYYY/MM/DD dump appts on YYYY/MM/DD in DateBook\n" msgstr "" #: ../jpilot-dump.c:102 #, c-format msgid " -A dump Address book\n" msgstr "" #: ../jpilot-dump.c:103 #, c-format msgid " -T dump ToDo list as CSV\n" msgstr "" #: ../jpilot-dump.c:104 #, c-format msgid " -M dump Memos\n" msgstr "" #: ../jpilot-dump.c:165 #, c-format msgid "" "Warning: Host character encoding is not UTF-8 based.\n" "Exported ical file may not be standards-compliant\n" msgstr "" #: ../jpilot-merge.c:163 ../jpilot-merge.c:169 #, c-format msgid "%s: Unable to open file:%s\n" msgstr "" #: ../jpilot-merge.c:271 #, c-format msgid "Records read from pdb = %d\n" msgstr "" #: ../jpilot-merge.c:272 #, c-format msgid "Records added = %d\n" msgstr "" #: ../jpilot-merge.c:273 #, c-format msgid "Records deleted = %d\n" msgstr "" #: ../jpilot-merge.c:274 #, c-format msgid "Records modified = %d\n" msgstr "" #: ../jpilot-merge.c:275 #, c-format msgid "Records written = %d\n" msgstr "" #: ../jpilot-merge.c:293 #, c-format msgid "Usage: %s {input pdb file} {input pc3 file} {output pdb file}\n" msgstr "" #: ../jpilot-merge.c:294 #, c-format msgid " This program will merge an unsynced records file (pc3)\n" msgstr "" #: ../jpilot-merge.c:295 #, c-format msgid "" " into the corresponding palm database (pdb) file.\n" "\n" msgstr "" #: ../jpilot-merge.c:296 #, c-format msgid " WARNING: Only run this utility if you understand the consequences!\n" msgstr "" #: ../jpilot-merge.c:297 #, c-format msgid " The merge will leave your databases in an unsync-able state.\n" msgstr "" #: ../jpilot-merge.c:298 #, c-format msgid "" " It is intended for cases where J-pilot is being used as a standalone PIM\n" msgstr "" #: ../jpilot-merge.c:299 #, c-format msgid " and where no syncing occurs to physical hardware.\n" msgstr "" #: ../jpilot-merge.c:300 #, c-format msgid " WARNING: Make a backup copy of your databases before proceeding.\n" msgstr "" #: ../jpilot-merge.c:301 #, c-format msgid "" " It is quite simple to destroy your databases by accidentally merging\n" msgstr "" #: ../jpilot-merge.c:302 #, c-format msgid " address records into datebook databases, etc.\n" msgstr "" #: ../jpilot-sync.c:66 #, c-format msgid "" " J-Pilot preferences are read to get sync info such as port, rate, number of " "backups, etc.\n" msgstr "" #: ../jpilot-sync.c:67 ../utils.c:1873 #, c-format msgid " -v display version and compile options\n" msgstr "" #: ../jpilot-sync.c:69 ../utils.c:1875 #, c-format msgid " -d display debug info to stdout\n" msgstr "" #: ../jpilot-sync.c:70 #, c-format msgid " -P skip loading plugins\n" msgstr "" #: ../jpilot-sync.c:71 #, c-format msgid " -b sync, and then do a backup\n" msgstr "" #: ../jpilot-sync.c:72 #, c-format msgid " -l loop, otherwise sync once and exit\n" msgstr "" #: ../jpilot-sync.c:73 #, c-format msgid " -p {port} use this port to sync on instead of default\n" msgstr "" #: ../jpilot-sync.c:221 #, c-format msgid "Error: connecting to port %s\n" msgstr "" #: ../jpilot-sync.c:225 #, c-format msgid "Error: pi_listen\n" msgstr "" #: ../jpilot-sync.c:229 #, c-format msgid "Error: opening conduit to handheld\n" msgstr "" #: ../jpilot-sync.c:233 #, c-format msgid "Error: pi_accept\n" msgstr "" #: ../jpilot-sync.c:237 ../jpilot-sync.c:265 #, c-format msgid "Error: " msgstr "" #: ../jpilot-sync.c:238 #, c-format msgid "This handheld does not have the same user name.\n" msgstr "" #: ../jpilot-sync.c:239 ../jpilot-sync.c:253 #, c-format msgid "as the one that was synced the last time.\n" msgstr "" #: ../jpilot-sync.c:241 #, c-format msgid "" "Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:243 ../jpilot-sync.c:256 #, c-format msgid " COPILOT_HOME" msgstr "" #: ../jpilot-sync.c:245 ../jpilot-sync.c:258 #, c-format msgid " JPILOT_HOME" msgstr "" #: ../jpilot-sync.c:247 ../jpilot-sync.c:260 #, c-format msgid " environment variable can be used to sync different handhelds,\n" msgstr "" #: ../jpilot-sync.c:248 ../jpilot-sync.c:261 #, c-format msgid " to different directories for the same UNIX user name.\n" msgstr "" #: ../jpilot-sync.c:252 #, c-format msgid "This handheld does not have the same user ID.\n" msgstr "" #: ../jpilot-sync.c:254 #, c-format msgid "" " Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:266 #, c-format msgid "This handheld has a NULL user ID.\n" msgstr "" #: ../jpilot-sync.c:267 #, c-format msgid "Every handheld must have a unique user ID in order to sync properly.\n" msgstr "" #: ../jpilot-sync.c:268 #, c-format msgid "If the handheld has been hard reset, \n" msgstr "" #: ../jpilot-sync.c:269 #, c-format msgid " use restore from within " msgstr "" #: ../jpilot-sync.c:270 #, c-format msgid "Otherwise, to add a new user name and ID\n" msgstr "" #: ../jpilot-sync.c:271 #, c-format msgid " use \"install-user %s name numeric_id\"\n" msgstr "" #: ../jpilot-sync.c:275 #, c-format msgid "Error: sync returned error %d\n" msgstr "" #: ../libplugin.c:64 ../utils.c:1054 msgid "" "This record is already deleted.\n" "It is scheduled to be deleted from the Palm on the next sync.\n" msgstr "" #: ../libplugin.c:73 ../libplugin.c:110 ../utils.c:1064 ../utils.c:1106 msgid "Unable to open PC records file\n" msgstr "" #: ../libplugin.c:79 ../utils.c:1071 msgid "Couldn't find record to delete\n" msgstr "" #: ../libplugin.c:97 ../utils.c:1091 #, c-format msgid "Unknown header version %d\n" msgstr "" #: ../libplugin.c:182 #, c-format msgid "%s:%d Error opening file: %s\n" msgstr "" #: ../libplugin.c:188 ../libplugin.c:217 ../sync.c:1721 ../todo.c:102 #, c-format msgid "%s:%d Error reading file: %s\n" msgstr "" #: ../libplugin.c:340 ../libplugin.c:398 ../utils.c:2119 ../utils.c:2132 #, c-format msgid "Error opening file: %s\n" msgstr "" #: ../libplugin.c:526 #, c-format msgid "Error reading %s 5\n" msgstr "" #: ../libplugin.c:801 msgid "Error reading PC file 1\n" msgstr "" #: ../libplugin.c:817 msgid "Error reading PC file 2\n" msgstr "" #: ../libplugin.c:923 #, c-format msgid "Unknown PC header version = %d\n" msgstr "" #: ../log.c:101 #, c-format msgid "Unable to open log file, giving up.\n" msgstr "" #: ../log.c:111 #, c-format msgid "Unable to open log file\n" msgstr "" #: ../memo_gui.c:302 msgid "Memo text > 65535, truncating\n" msgstr "" #: ../memo_gui.c:330 #, c-format msgid "Imported Memo %s\n" msgstr "" #: ../memo_gui.c:400 msgid "File doesn't appear to be memopad.dat format\n" msgstr "" #: ../memo_gui.c:471 msgid "DAT/MPA (Palm Archive Formats)" msgstr "" #: ../memo_gui.c:554 #, c-format msgid "" "Memo exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:557 #, c-format msgid "" "Memos exported from %s %s on %s\n" "\n" msgstr "" #: ../memo_gui.c:584 #, c-format msgid "Can't export memo %d\n" msgstr "" #: ../memo_gui.c:628 #, c-format msgid "Memo: %ld\n" msgstr "" #: ../memo_gui.c:634 #, c-format msgid "----- Start of Memo -----\n" msgstr "" #: ../memo_gui.c:636 #, c-format msgid "" "\n" "----- End of Memo -----\n" "\n" msgstr "" #: ../memo_gui.c:668 msgid "B-Folders CSV" msgstr "" #: ../monthview_gui.c:438 msgid "Monthly View" msgstr "" #: ../monthview_gui.c:480 msgid "Last month Alt+LeftArrow" msgstr "" #: ../monthview_gui.c:508 msgid "Next month Alt+RightArrow" msgstr "" #: ../otherconv.c:76 #, c-format msgid "%s: error exit from g_iconv_close(%s)\n" msgstr "" #: ../otherconv.c:201 #, c-format msgid "%s:%s g_convert_with_iconv error: %s, buff: %s\n" msgstr "" #: ../otherconv.c:203 msgid "last char truncated" msgstr "" #: ../otherconv.c:280 #, c-format msgid "UTF_to_other: %s\n" msgstr "" #: ../otherconv.c:294 #, c-format msgid "iconv: unconvertible sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:298 #, c-format msgid "iconv: incomplete UTF-8 sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:301 #, c-format msgid "iconv: buffer filled. stopped at place %d in '%s'\n" msgstr "" #: ../otherconv.c:304 #, c-format msgid "iconv: unexpected error at place %d in '%s'\n" msgstr "" #: ../password.c:283 msgid "Palm Password" msgstr "" #: ../password.c:308 msgid "Incorrect, Reenter PalmOS Password" msgstr "" #: ../password.c:310 msgid "Enter PalmOS Password" msgstr "" #: ../pidfile.c:67 msgid "removing stale pidfile\n" msgstr "" #: ../pidfile.c:91 #, c-format msgid "create pidfile failed: %s\n" msgstr "" #: ../pidfile.c:92 msgid "Warning: hotplug syncing disabled.\n" msgstr "" #: ../plugins.c:90 ../plugins.c:203 ../restore_gui.c:133 msgid "infinite loop" msgstr "" #: ../plugins.c:216 #, c-format msgid "While reading %s%s line 1:[%s]\n" msgstr "" #: ../plugins.c:217 msgid "Wrong Version\n" msgstr "" #: ../plugins.c:218 msgid "Check preferences->conduits\n" msgstr "" #: ../plugins.c:274 #, c-format msgid "" "Open failed on plugin [%s]\n" " error [%s]\n" msgstr "" #: ../plugins.c:291 ../plugins.c:316 #, c-format msgid " plugin is invalid: [%s]\n" msgstr "" #: ../plugins.c:299 #, c-format msgid "Plugin:[%s]\n" msgstr "" #: ../plugins.c:300 #, c-format msgid "This plugin is version (%d.%d).\n" msgstr "" #: ../plugins.c:302 msgid "It is too old to work with this version of J-Pilot.\n" msgstr "" #: ../prefs.c:420 msgid "%B %d, %Y" msgstr "" #: ../prefs.c:421 msgid "%d %B %Y" msgstr "" #: ../prefs.c:422 msgid "%d. %B %Y" msgstr "" #: ../prefs.c:423 msgid "%d %B, %Y" msgstr "" #: ../prefs.c:424 msgid "%Y. %B. %d" msgstr "" #: ../prefs.c:425 msgid "%Y %B %d" msgstr "" #: ../prefs_gui.c:454 msgid "Preferences" msgstr "" #: ../prefs_gui.c:485 msgid "Locale" msgstr "" #: ../prefs_gui.c:487 msgid "Settings" msgstr "" #: ../prefs_gui.c:489 msgid "Datebook" msgstr "" #: ../prefs_gui.c:493 msgid "ToDo" msgstr "" #: ../prefs_gui.c:495 msgid "Memo" msgstr "" #: ../prefs_gui.c:497 msgid "Alarms" msgstr "" #: ../prefs_gui.c:499 msgid "Conduits" msgstr "" #. Shortdate #: ../prefs_gui.c:524 msgid "Short date format" msgstr "" #. Longdate #: ../prefs_gui.c:537 msgid "Long date format" msgstr "" #. Time #: ../prefs_gui.c:550 msgid "Time format" msgstr "" #. GTK colors file #: ../prefs_gui.c:570 msgid "GTK color theme file" msgstr "" #. Port #: ../prefs_gui.c:583 msgid "Sync Port" msgstr "" #. Serial Rate #: ../prefs_gui.c:607 msgid "Serial Rate" msgstr "" #. Number of backups #: ../prefs_gui.c:627 msgid "Number of backups to be archived" msgstr "" #. Show deleted files check box #: ../prefs_gui.c:645 msgid "Show deleted records (default NO)" msgstr "" #. Show modified files check box #: ../prefs_gui.c:649 msgid "Show modified deleted records (default NO)" msgstr "" #: ../prefs_gui.c:654 msgid "Ask confirmation for file installation (J-Pilot -> PDA) (default YES)" msgstr "" #. Show tooltips check box #: ../prefs_gui.c:658 msgid "Show popup tooltips (default YES) (requires restart)" msgstr "" #: ../prefs_gui.c:668 msgid "Use Datebook database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:671 msgid "Use Calendar database (Palm OS > 5.2)" msgstr "" #. Show highlight days check box #: ../prefs_gui.c:697 msgid "Highlight calendar days with appointments" msgstr "" #. Highlight today on month and week view #: ../prefs_gui.c:702 msgid "Annotate today in day, week, and month views" msgstr "" #. Show number of years on anniversaries in month and week view #: ../prefs_gui.c:706 msgid "Append years on anniversaries in day, week, and month views" msgstr "" #. Show use DateBk check box #: ../prefs_gui.c:712 msgid "Use DateBk note tags" msgstr "" #: ../prefs_gui.c:715 msgid "DateBk support disabled in this build" msgstr "" #: ../prefs_gui.c:727 msgid "Use Address database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:730 msgid "Use Contacts database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:759 msgid "Mail Command" msgstr "" #: ../prefs_gui.c:773 #, c-format msgid "%s is replaced by the e-mail address" msgstr "" #: ../prefs_gui.c:785 msgid "Use ToDo database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:788 msgid "Use Task database (Palm OS > 5.2)" msgstr "" #. hide completed check box #: ../prefs_gui.c:815 msgid "Hide Completed ToDos" msgstr "" #. hide todos not yet due check box #: ../prefs_gui.c:819 msgid "Hide ToDos not yet due" msgstr "" #. record todo completion date check box #: ../prefs_gui.c:823 msgid "Record Completion Date" msgstr "" #. Use Manana check box #: ../prefs_gui.c:828 msgid "Use Manana database" msgstr "" #: ../prefs_gui.c:836 msgid "Use default number of days due" msgstr "" #: ../prefs_gui.c:858 msgid "Use Memo database (Palm OS < 5.2.1)" msgstr "" #: ../prefs_gui.c:861 msgid "Use Memos database (Palm OS > 5.2)" msgstr "" #: ../prefs_gui.c:864 msgid "Use Memo32 database (pedit32)" msgstr "" #: ../prefs_gui.c:904 msgid "External Editor" msgstr "" #: ../prefs_gui.c:917 msgid "Use Ctrl-E inside a memo to launch external editor for memo text" msgstr "" #. ******************************************************************** #. Alarms preference tab #. Open alarm windows check box #: ../prefs_gui.c:925 msgid "Open alarm windows for appointment reminders" msgstr "" #. Execute alarm command check box #: ../prefs_gui.c:929 msgid "Execute this command" msgstr "" #. Shell warning label #: ../prefs_gui.c:933 msgid "WARNING: executing arbitrary shell commands can be dangerous!!!" msgstr "" #: ../prefs_gui.c:941 msgid "Alarm Command" msgstr "" #: ../prefs_gui.c:954 msgid "%t is replaced with the alarm time" msgstr "" #: ../prefs_gui.c:958 #, c-format msgid "%d is replaced with the alarm date" msgstr "" #: ../prefs_gui.c:963 msgid "%D is replaced with the alarm description" msgstr "" #: ../prefs_gui.c:967 msgid "%N is replaced with the alarm note" msgstr "" #: ../prefs_gui.c:971 msgid "%D (description substitution) is disabled in this build" msgstr "" #: ../prefs_gui.c:976 msgid "%N (note substitution) is disabled in this build" msgstr "" #. ******************************************************************** #. Conduits preference tab #. Sync datebook check box #: ../prefs_gui.c:986 msgid "Sync datebook" msgstr "" #. Sync address check box #: ../prefs_gui.c:990 msgid "Sync address" msgstr "" #. Sync todo check box #: ../prefs_gui.c:994 msgid "Sync todo" msgstr "" #. Sync memo check box #: ../prefs_gui.c:998 msgid "Sync memo" msgstr "" #. Show sync Manana check box #: ../prefs_gui.c:1003 msgid "Sync Manana" msgstr "" #. Show use Japanese Kana extention check box #: ../prefs_gui.c:1009 msgid "Use J-OS (Not Japanese PalmOS:WorkPad/CLIE)" msgstr "" #. Make a Sync checkbox for each plugin #: ../prefs_gui.c:1022 #, c-format msgid "Sync %s (%s)" msgstr "" #: ../print_gui.c:185 msgid "Print Options" msgstr "" #: ../print_gui.c:198 msgid "Paper Size" msgstr "" #: ../print_gui.c:214 msgid "Daily Printout" msgstr "" #: ../print_gui.c:220 msgid "Weekly Printout" msgstr "" #: ../print_gui.c:226 msgid "Monthly Printout" msgstr "" #: ../print_gui.c:266 msgid "Selected record" msgstr "" #: ../print_gui.c:270 msgid "All records in this category" msgstr "" #: ../print_gui.c:274 msgid "Print all records" msgstr "" #: ../print_gui.c:296 msgid "One record per page" msgstr "" #: ../print_gui.c:312 msgid "Blank lines between each record" msgstr "" #. Print Command #: ../print_gui.c:321 msgid "Print Command (e.g. lpr, or cat > file.ps)" msgstr "" #: ../restore_gui.c:71 ../restore_gui.c:229 msgid "Restore Handheld" msgstr "" #: ../restore_gui.c:176 ../restore_gui.c:178 msgid "Unable to convert filename for GTK display\n" msgstr "" #: ../restore_gui.c:177 msgid "See console log to find which file will not be restored\n" msgstr "" #: ../restore_gui.c:179 #, c-format msgid "File %s will not be restored\n" msgstr "" #. Label for instructions #: ../restore_gui.c:246 msgid "To restore your handheld:" msgstr "" #: ../restore_gui.c:249 msgid "1. Choose the applications you wish to restore. The default is all." msgstr "" #: ../restore_gui.c:252 msgid "2. Enter the User Name and User ID." msgstr "" #: ../restore_gui.c:255 msgid "3. Press the OK button." msgstr "" #: ../restore_gui.c:258 msgid "This will overwrite data that is currently on the handheld." msgstr "" #: ../search_gui.c:144 msgid "datebook" msgstr "" #: ../search_gui.c:146 msgid "calendar" msgstr "" #: ../search_gui.c:233 msgid "address" msgstr "" #: ../search_gui.c:235 msgid "contact" msgstr "" #: ../search_gui.c:304 msgid "todo" msgstr "" #: ../search_gui.c:361 msgid "memo" msgstr "" #: ../search_gui.c:363 msgid "memos" msgstr "" #: ../search_gui.c:421 msgid "plugin ?" msgstr "" #: ../search_gui.c:501 msgid "No records found" msgstr "" #: ../search_gui.c:600 msgid "Search" msgstr "" #. Search label #: ../search_gui.c:617 msgid "Search for: " msgstr "" #. Case Sensitive checkbox #: ../search_gui.c:626 msgid "Case Sensitive" msgstr "" #: ../sync.c:120 msgid "open lock file failed\n" msgstr "" #: ../sync.c:133 msgid "lock failed\n" msgstr "" #: ../sync.c:136 #, c-format msgid "sync file is locked by pid %d\n" msgstr "" #: ../sync.c:171 msgid "unlock failed\n" msgstr "" #: ../sync.c:174 #, c-format msgid "sync is locked by pid %d\n" msgstr "" #: ../sync.c:410 msgid "Check your sync port and settings\n" msgstr "" #: ../sync.c:669 msgid "Unable to read home dir\n" msgstr "" #: ../sync.c:1075 ../sync.c:1413 #, c-format msgid "%s (Creator ID '%s') is up to date, fetch skipped.\n" msgstr "" #: ../sync.c:1079 ../sync.c:1417 #, c-format msgid "Fetching '%s' (Creator ID '%s')... " msgstr "" #: ../sync.c:1086 ../sync.c:1423 #, c-format msgid "Failed, unable to create file %s\n" msgstr "" #: ../sync.c:1090 ../sync.c:1428 #, c-format msgid "Failed, unable to back up database %s\n" msgstr "" #: ../sync.c:1094 ../sync.c:1432 ../sync.c:1619 msgid "OK\n" msgstr "" #: ../sync.c:1294 #, c-format msgid "Skipping %s (Creator ID '%s')\n" msgstr "" #: ../sync.c:1488 #, c-format msgid "Installing %s " msgstr "" #: ../sync.c:1494 ../sync.c:1530 #, c-format msgid "" "\n" "Unable to open file: '%s': %s!\n" msgstr "" #: ../sync.c:1498 #, c-format msgid "" "\n" "Unable to sync file: '%s': file corrupted?\n" msgstr "" #: ../sync.c:1514 #, c-format msgid "(Creator ID '%s')... " msgstr "" #: ../sync.c:1518 #, c-format msgid "(Creator ID '%s') " msgstr "" #: ../sync.c:1520 #, c-format msgid "(SDcard dir %s)... " msgstr "" #: ../sync.c:1552 ../sync.c:1565 ../sync.c:1580 ../sync.c:1593 #, c-format msgid "" "\n" "Unable to open file: %s\n" msgstr "" #: ../sync.c:1605 #, c-format msgid "Install %s failed" msgstr "" #: ../sync.c:1609 msgid "Failed.\n" msgstr "" #: ../sync.c:1615 #, c-format msgid "Installed %s" msgstr "" #: ../sync.c:1726 #, c-format msgid "%s:%d Error getting app info %s\n" msgstr "" #: ../sync.c:1732 ../sync.c:1762 #, c-format msgid "%s:%d Error unpacking app info %s\n" msgstr "" #: ../sync.c:1753 #, c-format msgid "Error reading appinfo block for %s\n" msgstr "" #. Fix - need a func for this logging #: ../sync.c:1991 ../sync.c:1995 #, c-format msgid "Could not add category %s to remote.\n" msgstr "" #: ../sync.c:1992 ../sync.c:1998 #, c-format msgid "Too many categories on remote.\n" msgstr "" #: ../sync.c:1993 ../sync.c:2001 #, c-format msgid "All records on desktop in %s will be moved to %s.\n" msgstr "" #: ../sync.c:2096 ../sync.c:2814 #, c-format msgid "Syncing %s\n" msgstr "" #: ../sync.c:2104 ../sync.c:2457 ../sync.c:2822 #, c-format msgid "Wrote an %s record." msgstr "" #: ../sync.c:2106 ../sync.c:2459 ../sync.c:2824 #, c-format msgid "Writing an %s record failed." msgstr "" #: ../sync.c:2108 ../sync.c:2461 ../sync.c:2826 #, c-format msgid "Deleting an %s record failed." msgstr "" #: ../sync.c:2110 ../sync.c:2463 ../sync.c:2828 #, c-format msgid "Deleted an %s record." msgstr "" #: ../sync.c:2112 ../sync.c:2465 #, c-format msgid "Sync Conflict: duplicated an %s record." msgstr "" #: ../sync.c:2115 ../sync.c:2468 ../sync.c:2831 #, c-format msgid "Wrote a %s record." msgstr "" #: ../sync.c:2117 ../sync.c:2470 ../sync.c:2833 #, c-format msgid "Writing a %s record failed." msgstr "" #: ../sync.c:2119 ../sync.c:2472 ../sync.c:2835 #, c-format msgid "Deleting a %s record failed." msgstr "" #: ../sync.c:2121 ../sync.c:2474 ../sync.c:2837 #, c-format msgid "Deleted a %s record." msgstr "" #: ../sync.c:2123 ../sync.c:2476 #, c-format msgid "Sync Conflict: duplicated a %s record." msgstr "" #: ../sync.c:2227 ../sync.c:2557 #, c-format msgid "Sync Conflict: a %s record must be manually merged\n" msgstr "" #: ../sync.c:2358 ../sync.c:2698 msgid "" "dlp_DeleteRecord failed\n" "This could be because the record was already deleted on the Palm\n" msgstr "" #: ../sync.c:2927 msgid "Finished installing user information.\n" msgstr "" #: ../sync.c:3084 #, c-format msgid " Syncing on device %s\n" msgstr "" #: ../sync.c:3085 msgid " Press the HotSync button now\n" msgstr "" #: ../sync.c:3127 ../sync.c:3149 ../sync.c:3170 #, c-format msgid "Last Synced Username-->\"%s\"\n" msgstr "" #: ../sync.c:3128 ../sync.c:3150 ../sync.c:3171 #, c-format msgid "Last Synced UserID-->\"%d\"\n" msgstr "" #: ../sync.c:3129 ../sync.c:3151 ../sync.c:3172 #, c-format msgid " This Username-->\"%s\"\n" msgstr "" #: ../sync.c:3130 ../sync.c:3152 ../sync.c:3173 #, c-format msgid " This User ID-->%d\n" msgstr "" #: ../sync.c:3194 #, c-format msgid "Username is \"%s\"\n" msgstr "" #: ../sync.c:3195 #, c-format msgid "User ID is %d\n" msgstr "" #: ../sync.c:3197 #, c-format msgid "lastSyncPC = %d\n" msgstr "" #: ../sync.c:3198 #, c-format msgid "This PC = %lu\n" msgstr "" #: ../sync.c:3222 msgid "Sync canceled\n" msgstr "" #: ../sync.c:3245 msgid "Finished restoring handheld.\n" msgstr "" #: ../sync.c:3246 msgid "You may need to sync to update J-Pilot.\n" msgstr "" #: ../sync.c:3268 msgid "Doing a fast sync.\n" msgstr "" #: ../sync.c:3281 msgid "Doing a slow sync.\n" msgstr "" #: ../sync.c:3356 msgid "Thank you for using J-Pilot." msgstr "" #: ../sync.c:3401 ../sync.c:3469 msgid "Finished.\n" msgstr "" #: ../sync.c:3436 #, c-format msgid "%s: sync process already in progress (process ID = %d)\n" msgstr "" #: ../sync.c:3437 #, c-format msgid "" "%s: press the HotSync button on the cradle\n" " or stop the sync by using the cancel sync button\n" " or stop the sync by typing \"kill %d\" at the command line\n" msgstr "" #: ../sync.c:3468 #, c-format msgid "Exiting with status %s\n" msgstr "" #: ../todo.c:266 #, c-format msgid "ToDo description text > %d, truncating to %d\n" msgstr "" #: ../todo.c:272 #, c-format msgid "ToDo note text > %d, truncating to %d\n" msgstr "" #: ../todo_gui.c:161 msgid "Due Date" msgstr "" #: ../todo_gui.c:532 msgid "File doesn't appear to be todo.dat format\n" msgstr "" #: ../todo_gui.c:596 msgid "DAT/TDA (Palm Archive Formats)" msgstr "" #: ../todo_gui.c:688 #, c-format msgid "" "ToDo exported from %s %s on %s\n" "\n" msgstr "" #: ../todo_gui.c:726 #, c-format msgid "Can't export todo %d\n" msgstr "" #: ../todo_gui.c:766 #, c-format msgid "Due Date: None\n" msgstr "" #: ../todo_gui.c:769 #, c-format msgid "Due Date: %s\n" msgstr "" #: ../todo_gui.c:771 #, c-format msgid "Priority: %d\n" msgstr "" #: ../todo_gui.c:772 #, c-format msgid "Completed: %s\n" msgstr "" #: ../todo_gui.c:774 #, c-format msgid "Description: %s\n" msgstr "" #: ../todo_gui.c:777 #, c-format msgid "" "Note: %s\n" "\n" msgstr "" #: ../todo_gui.c:1610 msgid "Priority out of range\n" msgstr "" #: ../todo_gui.c:1932 ../KeyRing/keyring.c:1310 #, c-format msgid "No date" msgstr "" #. Completed checkbox #: ../todo_gui.c:2414 msgid "Completed" msgstr "" #: ../todo_gui.c:2421 msgid "Priority:" msgstr "" #: ../todo_gui.c:2423 msgid "Set priority Alt+#" msgstr "" #: ../todo_gui.c:2444 msgid "Date Due:" msgstr "" #: ../utils.c:332 msgid "Today" msgstr "" #: ../utils.c:577 #, c-format msgid "Couldn't find empty DB file %s: %s\n" msgstr "" #: ../utils.c:580 msgid " may not be installed.\n" msgstr "" #. Can't create directory #: ../utils.c:615 ../utils.c:619 #, c-format msgid "Can't create directory %s\n" msgstr "" #: ../utils.c:625 #, c-format msgid "%s is not a directory\n" msgstr "" #: ../utils.c:630 #, c-format msgid "Unable to get write permission for directory %s\n" msgstr "" #: ../utils.c:1330 ../utils.c:1354 msgid "Save Changed Record?" msgstr "" #: ../utils.c:1331 ../utils.c:1355 msgid "Do you want to save the changes to this record?" msgstr "" #: ../utils.c:1336 ../utils.c:1360 msgid "Save New Record?" msgstr "" #: ../utils.c:1337 ../utils.c:1361 msgid "Do you want to save this new record?" msgstr "" #: ../utils.c:1652 msgid "infinite loop, breaking\n" msgstr "" #: ../utils.c:1876 #, c-format msgid " -p skip loading plugins\n" msgstr "" #: ../utils.c:1877 #, c-format msgid " -a ignore missed alarms since the last time program was run\n" msgstr "" #: ../utils.c:1878 #, c-format msgid " -A ignore all alarms past and future\n" msgstr "" #: ../utils.c:1879 #, c-format msgid " -s start sync using existing instance of GUI\n" msgstr "" #: ../utils.c:1880 #, c-format msgid " -i iconify program immediately after launch\n" msgstr "" #: ../utils.c:1881 #, c-format msgid "" " -geometry {X geometry} use specified geometry for main window\n" "\n" msgstr "" #: ../utils.c:1882 #, c-format msgid " The PILOTPORT and PILOTRATE environment variables specify\n" msgstr "" #: ../utils.c:1883 #, c-format msgid " which port to sync on, and at what speed.\n" msgstr "" #: ../utils.c:1884 #, c-format msgid " If PILOTPORT is not set then it defaults to /dev/pilot.\n" msgstr "" #: ../utils.c:1921 msgid "Error reading file" msgstr "" #: ../utils.c:1971 msgid "Date compiled" msgstr "" #: ../utils.c:1972 msgid "Compiled with these options:" msgstr "" #: ../utils.c:1974 msgid "Installed Path" msgstr "" #: ../utils.c:1976 msgid "pilot-link version" msgstr "" #: ../utils.c:1980 msgid "USB support" msgstr "" #: ../utils.c:1981 ../utils.c:1984 ../utils.c:1990 ../utils.c:1996 #: ../utils.c:2002 ../utils.c:2008 ../utils.c:2013 msgid "yes" msgstr "" #: ../utils.c:1982 msgid "Private record support" msgstr "" #: ../utils.c:1986 ../utils.c:1992 ../utils.c:1998 ../utils.c:2004 #: ../utils.c:2010 msgid "no" msgstr "" #: ../utils.c:1988 msgid "Datebk support" msgstr "" #: ../utils.c:1994 msgid "Plugin support" msgstr "" #: ../utils.c:2000 msgid "Manana support" msgstr "" #: ../utils.c:2006 msgid "NLS support (foreign languages)" msgstr "" #: ../utils.c:2012 msgid "GTK2 support" msgstr "" #. No HOME var #: ../utils.c:2055 msgid "Can't get HOME environment variable\n" msgstr "" #: ../utils.c:2062 msgid "HOME environment variable is too long to process\n" msgstr "" #: ../utils.c:2557 msgid "Edit Categories..." msgstr "" #: ../utils.c:3223 msgid "PC ID is 0.\n" msgstr "" #: ../utils.c:3224 #, c-format msgid "Generated a new PC ID. It is %lu\n" msgstr "" #: ../utils.c:3309 msgid "Invalid UTF-8 encoding in export string\n" msgstr "" #: ../utils.c:3470 #, c-format msgid "Today is %A, %x %X" msgstr "" #: ../utils.c:3472 #, c-format msgid "Today is %%A, %s %s" msgstr "" #: ../utils.c:3701 #, c-format msgid "" "Incorrect header format for CSV import\n" "Check line 1 of file %s\n" "Aborting import\n" msgstr "" #: ../utils.c:3738 #, c-format msgid "Error writing version header to file: %s%s\n" msgstr "" #: ../utils.c:3743 #, c-format msgid "Error writing next id to file: %s%s" msgstr "" #: ../weekview_gui.c:297 msgid "Weekly View" msgstr "" #: ../weekview_gui.c:337 msgid "Last week Alt+LeftArrow" msgstr "" #: ../weekview_gui.c:366 msgid "Next week Alt+RightArrow" msgstr "" #: ../Expense/expense.c:97 msgid "Australia" msgstr "" #: ../Expense/expense.c:98 msgid "Austria" msgstr "" #: ../Expense/expense.c:99 msgid "Belgium" msgstr "" #: ../Expense/expense.c:100 msgid "Brazil" msgstr "" #: ../Expense/expense.c:101 msgid "Canada" msgstr "" #: ../Expense/expense.c:102 msgid "Denmark" msgstr "" #: ../Expense/expense.c:103 msgid "EU (Euro)" msgstr "" #: ../Expense/expense.c:104 msgid "Finland" msgstr "" #: ../Expense/expense.c:105 msgid "France" msgstr "" #: ../Expense/expense.c:106 msgid "Germany" msgstr "" #: ../Expense/expense.c:107 msgid "Hong Kong" msgstr "" #: ../Expense/expense.c:108 msgid "Iceland" msgstr "" #: ../Expense/expense.c:109 msgid "India" msgstr "" #: ../Expense/expense.c:110 msgid "Indonesia" msgstr "" #: ../Expense/expense.c:111 msgid "Ireland" msgstr "" #: ../Expense/expense.c:112 msgid "Italy" msgstr "" #: ../Expense/expense.c:113 msgid "Japan" msgstr "" #: ../Expense/expense.c:114 msgid "Korea" msgstr "" #: ../Expense/expense.c:115 msgid "Luxembourg" msgstr "" #: ../Expense/expense.c:116 msgid "Malaysia" msgstr "" #: ../Expense/expense.c:117 msgid "Mexico" msgstr "" #: ../Expense/expense.c:118 msgid "Netherlands" msgstr "" #: ../Expense/expense.c:119 msgid "New Zealand" msgstr "" #: ../Expense/expense.c:120 msgid "Norway" msgstr "" #: ../Expense/expense.c:121 msgid "P.R.C." msgstr "" #: ../Expense/expense.c:122 msgid "Philippines" msgstr "" #: ../Expense/expense.c:123 msgid "Singapore" msgstr "" #: ../Expense/expense.c:124 msgid "Spain" msgstr "" #: ../Expense/expense.c:125 msgid "Sweden" msgstr "" #: ../Expense/expense.c:126 msgid "Switzerland" msgstr "" #: ../Expense/expense.c:127 msgid "Taiwan" msgstr "" #: ../Expense/expense.c:128 msgid "Thailand" msgstr "" #: ../Expense/expense.c:129 msgid "United Kingdom" msgstr "" #: ../Expense/expense.c:130 msgid "United States" msgstr "" #: ../Expense/expense.c:518 ../Expense/expense.c:529 msgid "Expense" msgstr "" #: ../Expense/expense.c:550 ../Expense/expense.c:1388 msgid "Airfare" msgstr "" #: ../Expense/expense.c:552 ../Expense/expense.c:1389 msgid "Breakfast" msgstr "" #: ../Expense/expense.c:554 ../Expense/expense.c:1390 msgid "Bus" msgstr "" #: ../Expense/expense.c:556 ../Expense/expense.c:1391 msgid "BusinessMeals" msgstr "" #: ../Expense/expense.c:558 ../Expense/expense.c:1392 msgid "CarRental" msgstr "" #: ../Expense/expense.c:560 ../Expense/expense.c:1393 msgid "Dinner" msgstr "" #: ../Expense/expense.c:562 ../Expense/expense.c:1394 msgid "Entertainment" msgstr "" #: ../Expense/expense.c:564 ../Expense/expense.c:1395 msgid "Fax" msgstr "" #: ../Expense/expense.c:566 ../Expense/expense.c:1396 msgid "Gas" msgstr "" #: ../Expense/expense.c:568 ../Expense/expense.c:1397 msgid "Gifts" msgstr "" #: ../Expense/expense.c:570 ../Expense/expense.c:1398 msgid "Hotel" msgstr "" #: ../Expense/expense.c:572 ../Expense/expense.c:1399 msgid "Incidentals" msgstr "" #: ../Expense/expense.c:574 ../Expense/expense.c:1400 msgid "Laundry" msgstr "" #: ../Expense/expense.c:576 ../Expense/expense.c:1401 msgid "Limo" msgstr "" #: ../Expense/expense.c:578 ../Expense/expense.c:1402 msgid "Lodging" msgstr "" #: ../Expense/expense.c:580 ../Expense/expense.c:1403 msgid "Lunch" msgstr "" #: ../Expense/expense.c:582 ../Expense/expense.c:1404 msgid "Mileage" msgstr "" #: ../Expense/expense.c:586 ../Expense/expense.c:1406 msgid "Parking" msgstr "" #: ../Expense/expense.c:588 ../Expense/expense.c:1407 msgid "Postage" msgstr "" #: ../Expense/expense.c:590 ../Expense/expense.c:1408 msgid "Snack" msgstr "" #: ../Expense/expense.c:592 ../Expense/expense.c:1409 msgid "Subway" msgstr "" #: ../Expense/expense.c:594 ../Expense/expense.c:1410 msgid "Supplies" msgstr "" #: ../Expense/expense.c:596 ../Expense/expense.c:1411 msgid "Taxi" msgstr "" #: ../Expense/expense.c:598 ../Expense/expense.c:1412 msgid "Telephone" msgstr "" #: ../Expense/expense.c:600 ../Expense/expense.c:1413 msgid "Tips" msgstr "" #: ../Expense/expense.c:602 ../Expense/expense.c:1414 msgid "Tolls" msgstr "" #: ../Expense/expense.c:604 ../Expense/expense.c:1415 msgid "Train" msgstr "" #: ../Expense/expense.c:1239 msgid "Expense: Unknown expense type\n" msgstr "" #: ../Expense/expense.c:1245 msgid "Expense: Unknown payment type\n" msgstr "" #: ../Expense/expense.c:1377 msgid "American Express" msgstr "" #: ../Expense/expense.c:1378 msgid "Cash" msgstr "" #: ../Expense/expense.c:1379 msgid "Check" msgstr "" #: ../Expense/expense.c:1380 msgid "Credit Card" msgstr "" #: ../Expense/expense.c:1381 msgid "Master Card" msgstr "" #: ../Expense/expense.c:1382 msgid "Prepaid" msgstr "" #: ../Expense/expense.c:1383 msgid "VISA" msgstr "" #: ../Expense/expense.c:1619 msgid "Type" msgstr "" #: ../Expense/expense.c:1620 msgid "Amount" msgstr "" #. Category Menu #: ../Expense/expense.c:1704 msgid "Category:" msgstr "" #. Type Menu #: ../Expense/expense.c:1712 msgid "Type:" msgstr "" #. Payment Menu #: ../Expense/expense.c:1720 msgid "Payment:" msgstr "" #. Currency Menu #: ../Expense/expense.c:1728 msgid "Currency:" msgstr "" #: ../Expense/expense.c:1748 msgid "Month:" msgstr "" #: ../Expense/expense.c:1762 msgid "Day:" msgstr "" #: ../Expense/expense.c:1776 msgid "Year:" msgstr "" #. Amount Entry #: ../Expense/expense.c:1789 msgid "Amount:" msgstr "" #. Vendor Entry #: ../Expense/expense.c:1799 msgid "Vendor:" msgstr "" #. City #: ../Expense/expense.c:1809 msgid "City:" msgstr "" #. Attendees #: ../Expense/expense.c:1819 msgid "Attendees" msgstr "" #. ------------------------------------------- #: ../Expense/expense.c:2102 #, c-format msgid "" "%s\n" "\n" "Expense plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org" msgstr "" #: ../KeyRing/keyring.c:291 msgid "KeyRing: pack_KeyRing(): buf_size too small\n" msgstr "" #: ../KeyRing/keyring.c:1699 msgid "Incorrect, Reenter KeyRing Password" msgstr "" #: ../KeyRing/keyring.c:1701 msgid "Enter a NEW KeyRing Password" msgstr "" #: ../KeyRing/keyring.c:1703 msgid "Enter KeyRing Password" msgstr "" #: ../KeyRing/keyring.c:1769 #, c-format msgid "KeyRing: file %s not found.\n" msgstr "" #: ../KeyRing/keyring.c:1770 msgid "KeyRing: Try Syncing.\n" msgstr "" #: ../KeyRing/keyring.c:1861 ../KeyRing/keyring.c:1872 msgid "KeyRing" msgstr "" #. ------------------------------------------- #: ../KeyRing/keyring.c:1900 #, c-format msgid "" "%s\n" "\n" "KeyRing plugin for J-Pilot was written by\n" "Judd Montgomery (c) 2001.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "KeyRing is a free PalmOS program for storing\n" "passwords and other information in encrypted form\n" "http://gnukeyring.sourceforge.net" msgstr "" #: ../KeyRing/keyring.c:2137 #, c-format msgid "" "Keys exported from %s %s on %s\n" "\n" msgstr "" #: ../KeyRing/keyring.c:2162 #, c-format msgid "Can't export key %d\n" msgstr "" #: ../KeyRing/keyring.c:2229 msgid "B-FOLDERS CSV" msgstr "" #. Change Password button #: ../KeyRing/keyring.c:2384 msgid "" "Change\n" "KeyRing\n" "Password" msgstr "" #. Clist #: ../KeyRing/keyring.c:2497 msgid "Changed" msgstr "" #: ../KeyRing/keyring.c:2499 msgid "Account" msgstr "" #. Name entry #: ../KeyRing/keyring.c:2593 msgid "name: " msgstr "" #. Account entry #: ../KeyRing/keyring.c:2601 msgid "account: " msgstr "" #. Password entry #: ../KeyRing/keyring.c:2609 msgid "password: " msgstr "" #. Last Changed entry #: ../KeyRing/keyring.c:2616 msgid "last changed: " msgstr "" #. Generate Password button (creates random password) #: ../KeyRing/keyring.c:2626 msgid "Generate Password" msgstr "" #: ../SyncTime/synctime.c:61 msgid "SyncTime" msgstr "" #. ------------------------------------------- #: ../SyncTime/synctime.c:72 #, c-format msgid "" "%s\n" "\n" "SyncTime plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "SyncTime WILL NOT work with PalmOS 3.3!" msgstr "" #: ../SyncTime/synctime.c:106 msgid "synctime: Palm OS Version 3.25 and 3.30 do not support SyncTime\n" msgstr "" #: ../SyncTime/synctime.c:107 msgid "synctime: NOT setting the time on the pilot\n" msgstr "" #: ../SyncTime/synctime.c:112 msgid "synctime: Setting the time on the pilot... " msgstr "" #: ../SyncTime/synctime.c:117 msgid "Done\n" msgstr "" jpilot-1.8.1.2/po/fr.po0000644000175000017500000027004611702307317011502 00000000000000# French translations for JPILOT. # # Regis Rampnoux , 2000-2003. # Ludovic Rousseau , 2004. msgid "" msgstr "" "Project-Id-Version: jpilot 0.99.9-pre1\n" "Report-Msgid-Bugs-To: jpilot-devel@jpilot.org\n" "POT-Creation-Date: 2012-01-08 13:39+0100\n" "PO-Revision-Date: 2004-10-01 23:05+0100\n" "Last-Translator: Ludovic Rousseau \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../address.c:276 ../address.c:448 ../alarms.c:332 ../calendar.c:309 #: ../calendar.c:547 ../contact.c:324 ../contact.c:738 ../dat.c:189 #: ../dat.c:655 ../dat.c:859 ../dat.c:993 ../dat.c:1132 ../datebook.c:130 #: ../datebook.c:165 ../datebook.c:172 ../datebook.c:231 ../jpilot.c:1254 #: ../jpilot-merge.c:95 ../libplugin.c:208 ../libplugin.c:455 #: ../libplugin.c:534 ../libplugin.c:563 ../libplugin.c:811 ../memo.c:214 #: ../memo.c:287 ../otherconv.c:280 ../plugins.c:112 ../prefs.c:350 #: ../prefs.c:375 ../prefs.c:906 ../sync.c:2170 ../sync.c:2187 ../sync.c:2296 #: ../sync.c:2310 ../sync.c:2507 ../sync.c:2646 ../todo.c:236 ../todo.c:490 #: ../utils.c:748 #, c-format msgid "Out of memory" msgstr "Plus de mémoire" #: ../address.c:332 ../calendar.c:230 ../contact.c:580 ../datebook.c:494 #: ../memo.c:87 ../todo.c:90 #, c-format msgid "%s:%d Error reading application info %s\n" msgstr "%s:%d Erreur de lecture application info %s\n" #: ../address.c:344 ../address_gui.c:2285 ../address_gui.c:2324 #: ../calendar.c:246 ../contact.c:596 ../datebook.c:514 ../datebook_gui.c:3737 #: ../libplugin.c:405 ../libplugin.c:431 ../memo.c:99 ../memo_gui.c:863 #: ../todo_gui.c:1070 ../Expense/expense.c:1105 #, c-format msgid "Error reading file: %s\n" msgstr "Erreur en lecture: %s\n" #: ../address.c:492 ../calendar.c:598 ../calendar.c:607 ../contact.c:780 #: ../libplugin.c:846 ../memo.c:353 ../todo.c:302 ../utils.c:1124 #: ../utils.c:1131 ../utils.c:1138 ../utils.c:1145 ../utils.c:1152 #: ../utils.c:1159 msgid "error" msgstr "erreur" #: ../address_gui.c:325 ../datebook_gui.c:2844 ../memo_gui.c:176 #: ../todo_gui.c:292 ../KeyRing/keyring.c:834 msgid "" "This record is deleted.\n" "Undelete it or copy it to make changes.\n" msgstr "" "Cet enregistrement est effacé.\n" "Restaurez le ou copier le avant de pouvoir le modifier.\n" #: ../address_gui.c:452 ../address_gui.c:458 ../address_gui.c:469 #: ../address_gui.c:481 ../address_gui.c:493 ../address_gui.c:506 #, c-format msgid "%s%s: %s" msgstr "%s%s : %s" #: ../address_gui.c:542 ../category.c:118 ../category.c:176 ../category.c:330 #: ../category.c:336 ../datebook_gui.c:430 ../jpilot-merge.c:88 #: ../jpilot-merge.c:146 ../jpilot-merge.c:151 ../memo_gui.c:280 #: ../sync.c:2129 ../sync.c:2135 ../sync.c:2481 ../sync.c:2842 #: ../todo_gui.c:416 ../utils.c:2674 ../utils.c:2711 ../utils.c:2717 #: ../utils.c:2776 ../utils.c:2782 ../utils.c:2836 ../utils.c:2890 #: ../utils.c:2896 ../utils.c:2954 ../utils.c:2961 #, c-format msgid "Unable to open file: %s\n" msgstr "Impossible d'ouvrir: %s\n" #: ../address_gui.c:561 #, c-format msgid "Unable to read file: %s\n" msgstr "Impossible de lire: %s\n" #: ../address_gui.c:715 msgid "File doesn't appear to be address.dat format\n" msgstr "Le fichier n'est pas du type carnet d'adresses\n" #: ../address_gui.c:725 ../datebook_gui.c:647 ../memo_gui.c:324 #: ../memo_gui.c:417 ../todo_gui.c:542 ../Expense/expense.c:1384 msgid "Unfiled" msgstr "Non renseigné" #: ../address_gui.c:781 ../datebook_gui.c:698 ../memo_gui.c:470 #: ../todo_gui.c:595 msgid "CSV (Comma Separated Values)" msgstr "" #: ../address_gui.c:782 msgid "DAT/ABA (Palm Archive Formats)" msgstr "" #. current category name #. previous category name #. entry text, in Pilot character set #: ../address_gui.c:868 ../category.c:408 ../datebook_gui.c:729 #: ../jpilot.c:234 ../jpilot.c:278 ../jpilot.c:352 ../jpilot.c:396 #: ../jpilot.c:953 ../memo_gui.c:506 ../todo_gui.c:635 ../utils.c:1305 #: ../KeyRing/keyring.c:2090 msgid "OK" msgstr "OK" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "No" msgstr "Non" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "Yes" msgstr "Oui" #: ../address_gui.c:888 ../datebook_gui.c:753 ../memo_gui.c:520 #: ../todo_gui.c:655 ../KeyRing/keyring.c:2104 #, c-format msgid "%s is a directory" msgstr "%s est un répertoire" #: ../address_gui.c:890 ../address_gui.c:907 ../datebook_gui.c:755 #: ../datebook_gui.c:772 ../memo_gui.c:522 ../memo_gui.c:539 ../todo_gui.c:657 #: ../todo_gui.c:674 ../KeyRing/keyring.c:2106 ../KeyRing/keyring.c:2123 msgid "Error Opening File" msgstr "Erreur d'ouverture du fichier" #: ../address_gui.c:894 ../datebook_gui.c:759 ../memo_gui.c:526 #: ../todo_gui.c:661 ../KeyRing/keyring.c:2110 #, c-format msgid "Do you want to overwrite file %s?" msgstr "Voulez vous écraser le fichier %s?" #: ../address_gui.c:896 ../datebook_gui.c:761 ../memo_gui.c:528 #: ../todo_gui.c:663 ../KeyRing/keyring.c:2112 msgid "Overwrite File?" msgstr "Écraser le fichier?" #: ../address_gui.c:905 ../datebook_gui.c:770 ../memo_gui.c:537 #: ../todo_gui.c:672 ../KeyRing/keyring.c:2121 #, c-format msgid "Error opening file: %s" msgstr "Erreur d'ouverture du fichier: %s" #: ../address_gui.c:922 #, c-format msgid "" "Address exported from %s %s on %s\n" "\n" msgstr "" "Address exporté de %s %s le %s\n" "\n" #: ../address_gui.c:925 #, c-format msgid "" "Contact exported from %s %s on %s\n" "\n" msgstr "" "Contact exporté de %s %s le %s\n" "\n" #: ../address_gui.c:989 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ldif file may not be standards-compliant\n" msgstr "" #: ../address_gui.c:1002 #, c-format msgid "Can't export address %d\n" msgstr "Ne peut pas exporter l'adresse %d\n" #: ../address_gui.c:1008 ../memo_gui.c:630 ../todo_gui.c:760 #, c-format msgid "Category: %s\n" msgstr "Catégorie : %s\n" #: ../address_gui.c:1010 ../memo_gui.c:632 ../todo_gui.c:763 #, c-format msgid "Private: %s\n" msgstr "Privé : %s\n" #: ../address_gui.c:1018 ../address_gui.c:1032 ../address_gui.c:1036 #: ../address_gui.c:1045 ../address_gui.c:1048 #, c-format msgid "%s: " msgstr "%s : " #: ../address_gui.c:1022 #, c-format msgid "%s\n" msgstr "" #. E-mail should be the Palm dropdown menu item for email #. Set dial/email button text and callback data #: ../address_gui.c:1196 ../address_gui.c:2846 ../address_gui.c:4185 msgid "E-mail" msgstr "E-mail" #: ../address_gui.c:1482 ../datebook_gui.c:1147 ../memo_gui.c:640 #: ../todo_gui.c:844 ../KeyRing/keyring.c:2214 msgid "Unknown export type\n" msgstr "Type d'export inconnu\n" #: ../address_gui.c:1508 ../datebook_gui.c:1226 ../memo_gui.c:469 #: ../memo_gui.c:666 ../todo_gui.c:870 ../KeyRing/keyring.c:2229 msgid "Text" msgstr "" #: ../address_gui.c:1509 ../datebook_gui.c:1227 ../memo_gui.c:667 #: ../todo_gui.c:871 ../KeyRing/keyring.c:2229 msgid "CSV" msgstr "" #: ../address_gui.c:1510 msgid "vCard" msgstr "vCard" #: ../address_gui.c:1511 msgid "vCard (Optimized for Gmail/Android Import)" msgstr "" #: ../address_gui.c:1512 msgid "ldif" msgstr "ldif" #. Initialize variable if default case taken #: ../address_gui.c:1777 ../address_gui.c:3902 msgid "Last Name/Company" msgstr "Nom/Société" #: ../address_gui.c:1780 ../address_gui.c:3905 msgid "First Name/Company" msgstr "Prénom/Société" #: ../address_gui.c:1783 ../address_gui.c:3908 msgid "Company/Last Name" msgstr "Société/Nom" #: ../address_gui.c:1920 ../datebook_gui.c:2907 ../memo_gui.c:1036 #: ../todo_gui.c:1329 ../KeyRing/keyring.c:1181 msgid "You can't modify a record that is deleted\n" msgstr "Vous ne pouvez pas modifier un enregistrement effacé\n" #. Illegal category, Assume that category 0 is Unfiled and valid #: ../address_gui.c:2119 ../address_gui.c:2370 ../address_gui.c:2803 #: ../address_gui.c:2809 ../address_gui.c:3601 ../datebook_gui.c:1994 #: ../datebook_gui.c:3434 ../datebook_gui.c:3783 ../datebook_gui.c:4074 #: ../memo_gui.c:900 ../memo_gui.c:946 ../memo_gui.c:1161 ../memo_gui.c:1548 #: ../todo_gui.c:1106 ../todo_gui.c:1200 ../todo_gui.c:1589 ../todo_gui.c:2141 #: ../Expense/expense.c:689 ../Expense/expense.c:1143 #: ../Expense/expense.c:1227 ../Expense/expense.c:1887 #: ../KeyRing/keyring.c:1070 ../KeyRing/keyring.c:1512 #: ../KeyRing/keyring.c:1574 ../KeyRing/keyring.c:2688 msgid "Category is not legal\n" msgstr "Catégorie illégale\n" #: ../address_gui.c:2179 ../alarms.c:598 ../dialer.c:164 #, c-format msgid "executing command = [%s]\n" msgstr "Exécution de la commande = [%s]\n" #: ../address_gui.c:2181 #, c-format msgid "Failed to execute [%s]\n" msgstr "Échec d'exécution [%s]\n" #: ../address_gui.c:2425 msgid "Birthday" msgstr "Anniversaire" #: ../address_gui.c:2521 msgid "External program not found, or other error" msgstr "Programme externe non trouvé, ou autre erreur" #: ../address_gui.c:2523 msgid "" "J-Pilot can not find the external program \"convert\"\n" "or an error occurred while executing convert.\n" "You may need to install package ImageMagick" msgstr "" "J-Pilot ne peut pas trouver le programme externe \"convert\"\n" "ou une erreur s'est produite pendant l'excution de convert.\n" "Vous devez peut-être installer le paquet ImageMagick" #: ../address_gui.c:2524 #, c-format msgid "Command executed was \"%s\"\n" msgstr "La commande exécutée était \"%s\"\n" #: ../address_gui.c:2525 #, c-format msgid "return code was %d\n" msgstr "le code de retour était %d\n" #: ../address_gui.c:2603 msgid "chdir() failed\n" msgstr "echec de chdir()\n" #: ../address_gui.c:2606 msgid "Add Photo" msgstr "Ajouter une photo" #. Category menu #: ../address_gui.c:2828 ../KeyRing/keyring.c:2585 msgid "Category: " msgstr "Catégorie : " #: ../address_gui.c:2848 ../address_gui.c:4186 msgid "Mail" msgstr "Mél" #. Dial Phone Button #: ../address_gui.c:2851 ../address_gui.c:4189 ../dialer.c:307 ../dialer.c:331 msgid "Dial" msgstr "Appel" #: ../address_gui.c:3041 ../datebook_gui.c:2757 ../memo_gui.c:1228 #: ../todo_gui.c:1697 msgid "Could not get temporary file name\n" msgstr "" #: ../address_gui.c:3049 ../datebook_gui.c:2765 ../memo_gui.c:1236 #: ../todo_gui.c:1705 msgid "Could not open temporary file for external editor\n" msgstr "" #: ../address_gui.c:3089 ../datebook_gui.c:2806 ../memo_gui.c:1277 #: ../todo_gui.c:1746 msgid "Could not open temporary file from external editor\n" msgstr "" #: ../address_gui.c:3261 ../address_gui.c:3292 msgid "-Unnamed-" msgstr "-Sans-nom-" #: ../address_gui.c:3374 ../memo_gui.c:1454 ../todo_gui.c:2019 msgid "0 records" msgstr "0 enregistrements" #: ../address_gui.c:3377 ../datebook_gui.c:2637 ../memo_gui.c:1457 #: ../todo_gui.c:2022 #, c-format msgid "%d of %d records" msgstr "%d enregistrements sur %d" #: ../address_gui.c:3772 ../address_gui.c:3780 ../KeyRing/keyring.c:2498 msgid "Name" msgstr "Nom" #: ../address_gui.c:3773 ../address_gui.c:3774 ../address_gui.c:3775 #: ../address_gui.c:3781 msgid "Address" msgstr "Adresse" #: ../address_gui.c:3776 ../address_gui.c:3782 ../Expense/expense.c:584 #: ../Expense/expense.c:1405 msgid "Other" msgstr "Autre" #. Note textbox #: ../address_gui.c:3777 ../address_gui.c:3783 ../todo_gui.c:2484 #: ../Expense/expense.c:1836 ../KeyRing/keyring.c:2632 msgid "Note" msgstr "Note" #: ../address_gui.c:3793 msgid "Reverting to Address database\n" msgstr "Utilise la base Address\n" #: ../address_gui.c:3914 msgid "Phone" msgstr "Téléphone" #: ../address_gui.c:3946 msgid "Quick Find: " msgstr "Recherche rapide : " #. Cancel button #. Add record modification buttons #. Cancel button #: ../address_gui.c:3964 ../category.c:409 ../datebook_gui.c:1782 #: ../datebook_gui.c:5124 ../memo_gui.c:1692 ../todo_gui.c:2345 #: ../utils.c:1346 ../KeyRing/keyring.c:2528 msgid "Cancel" msgstr "Annuler" #: ../address_gui.c:3964 ../datebook_gui.c:5124 ../memo_gui.c:1692 #: ../todo_gui.c:2345 ../KeyRing/keyring.c:2528 msgid "Cancel the modifications" msgstr "Annuler les modifications" #. Delete Button #. Delete button #. Delete Button #. Delete button #. Delete, Copy, New, etc. buttons #. Delete button #: ../address_gui.c:3969 ../category.c:409 ../category.c:852 #: ../datebook_gui.c:5129 ../memo_gui.c:1697 ../todo_gui.c:2350 #: ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete" msgstr "Effacer" #: ../address_gui.c:3969 ../datebook_gui.c:5129 ../memo_gui.c:1697 #: ../todo_gui.c:2350 ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete the selected record" msgstr "Efface l'enregistrement sélectionné" #. Undelete Button #. Undelete button #. Undelete Button #. Undelete button #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 msgid "Undelete" msgstr "Restaurer" #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 msgid "Undelete the selected record" msgstr "Récupérer l'enregistrement sélectionné" #. Copy button #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy" msgstr "Copier" #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy the selected record" msgstr "Copier l'enregistrement sélectionné" #. New button #. New Record button #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "New Record" msgstr "Nouveau" #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "Add a new record" msgstr "Ajouter un nouvel enregistrement" #. "Add Record" button #. Add Record button #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add Record" msgstr "Ajouter" #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add the new record" msgstr "Ajouter le nouvel enregistrement" #. "Apply Changes" button #. Apply Changes button #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Apply Changes" msgstr "Appliquer" #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Commit the modifications" msgstr "Appliquer les modifications" #. Private check box #. Private checkbox #: ../address_gui.c:4033 ../datebook_gui.c:5191 ../datebook_gui.c:5233 #: ../memo_gui.c:1747 ../todo_gui.c:2410 msgid "Private" msgstr "Privé" #: ../address_gui.c:4118 msgid "Change Photo" msgstr "Changer la photo" #: ../address_gui.c:4123 msgid "Remove Photo" msgstr "Supprimer la photo" #: ../address_gui.c:4195 msgid "Show In List" msgstr "Montrer dans la liste" #: ../address_gui.c:4296 msgid "Reminder" msgstr "Me le rappeler" #: ../address_gui.c:4312 ../datebook_gui.c:238 ../datebook_gui.c:5221 #: ../datebook_gui.c:5378 msgid "Days" msgstr "Jours" #. The Quickview (ALL) page #. All button #: ../address_gui.c:4356 ../datebook_gui.c:1478 ../datebook_gui.c:1782 #: ../utils.c:2528 msgid "All" msgstr "Tous" #: ../alarms.c:232 ../datebook_gui.c:236 ../datebook_gui.c:5215 #: ../datebook_gui.c:5372 msgid "Minutes" msgstr "Minutes" #: ../alarms.c:234 ../datebook_gui.c:237 ../datebook_gui.c:5219 #: ../datebook_gui.c:5376 msgid "Hours" msgstr "Heures" #: ../alarms.c:255 msgid "Remind me" msgstr "Me le rappeler" #: ../alarms.c:425 ../alarms.c:991 ../sync.c:1639 ../sync.c:1645 #: ../utils.c:3717 #, c-format msgid "Unable to open file: %s%s\n" msgstr "Impossible d'ouvrir le fichier %s%s\n" #: ../alarms.c:512 msgid "Appointment Reminder" msgstr "Rappel de rendez-vous" #: ../alarms.c:515 msgid "Past Appointment" msgstr "Rendez-vous passé" #: ../alarms.c:518 msgid "Postponed Appointment" msgstr "rendez-vous reporté" #: ../alarms.c:521 ../datebook_gui.c:5025 msgid "Appointment" msgstr "Rendez-vous" #: ../alarms.c:605 msgid "J-Pilot Alarm" msgstr "Alarme de J-Pilot" #: ../category.c:131 ../category.c:188 ../sync.c:2158 ../sync.c:2495 msgid "PC file corrupt?\n" msgstr "Fichier PC corrompu?\n" #: ../category.c:138 ../category.c:148 ../category.c:196 ../category.c:206 #: ../category.c:216 ../sync.c:2280 ../sync.c:2334 ../sync.c:2371 #: ../sync.c:2386 ../sync.c:2410 ../sync.c:2630 ../sync.c:2675 ../sync.c:2712 #: ../sync.c:2725 ../sync.c:2750 msgid "fseek failed - fatal error\n" msgstr "fseek échoué - erreur fatale\n" #: ../category.c:364 ../utils.c:2738 ../utils.c:2812 ../utils.c:2916 #: ../utils.c:2981 msgid "rename failed" msgstr "echec de renommage" #: ../category.c:409 msgid "Move" msgstr "Déplacer" #: ../category.c:438 ../category.c:500 ../category.c:580 ../category.c:769 msgid "Edit Categories" msgstr "Edition Catégories" #: ../category.c:439 msgid "The maximum number of categories (16) are already used" msgstr "Le nombre maximum de catégories (16) est atteint" #: ../category.c:442 msgid "Enter New Category" msgstr "Saisir la nouvelle Catégorie" #: ../category.c:453 ../category.c:477 msgid "Edit Categories Error" msgstr "Erreur d'édition de catégories" #: ../category.c:454 msgid "You must select a category to rename" msgstr "Vous devez sélectionner une catégorie à renommer" #: ../category.c:463 msgid "Enter New Category Name" msgstr "Saisir le nom de la nouvelle catégorie" #: ../category.c:478 msgid "You must select a category to delete" msgstr "Vous devez sélectionnet la catégorie à supprimer" #: ../category.c:496 #, c-format msgid "" "There are %d records in %s.\n" "Do you want to move them to %s, or delete them?" msgstr "" "Il y a %d enregistrements dans %s.\n" "Voulez vous les déplacer vers %s, ou les supprimer?" #: ../category.c:556 #, c-format msgid "invalid state file %s line %d\n" msgstr "état invalide fichier %s ligne %d\n" #: ../category.c:578 #, c-format msgid "The category %s can't be used more than once" msgstr "La catégorie %s ne peut pas être utilisée plusieures fois" #. Category names in host character set #: ../category.c:735 msgid "Category" msgstr "Catégorie" #: ../category.c:836 msgid "New" msgstr "Nouveau" #: ../category.c:843 msgid "Rename" msgstr "Renommer" #: ../dat.c:456 msgid "unknown type =" msgstr "type inconnu =" #: ../dat.c:537 #, c-format msgid "fields per row count != %d, unknown format\n" msgstr "champs par colonne != %d, format inconnu\n" #: ../dat.c:551 #, c-format msgid "field count != %d, unknown format\n" msgstr "nombre de champs != %d, format inconnu\n" #: ../dat.c:559 msgid "Unknown format, file has wrong schema\n" msgstr "Format inconnu, le fichier utilise un mauvais schéma\n" #: ../dat.c:560 msgid "File schema is:" msgstr "Le schéma du fichier est :" #: ../dat.c:564 msgid "It should be:" msgstr "Il devrait être :" #: ../dat.c:674 ../dat.c:692 ../dat.c:876 ../dat.c:889 ../dat.c:1012 #: ../dat.c:1025 ../dat.c:1149 ../dat.c:1162 #, c-format msgid "%s:%d Record %d, field %d: Invalid type. Expected %d, found %d\n" msgstr "" "%s:%d Enregistrement %d, champ %d: Type invalide. Attendu %d, trouvé %d\n" #: ../dat.c:675 ../dat.c:693 ../dat.c:877 ../dat.c:890 ../dat.c:994 #: ../dat.c:1013 ../dat.c:1026 ../dat.c:1150 ../dat.c:1163 msgid "read of file terminated\n" msgstr "lecture du fichier terminé\n" #: ../datebook.c:705 ../datebook_gui.c:3648 #, c-format msgid "Unknown repeatType (%d) found in DatebookDB\n" msgstr "repeatType (%d) inconnu trouvé dans DatebookDB\n" #: ../datebook_gui.c:241 msgid "Repeat Never" msgstr "Aucune répétition" #: ../datebook_gui.c:242 msgid "Repeat Daily" msgstr "Répété tous les jours" #: ../datebook_gui.c:243 msgid "Repeat Weekly" msgstr "Répété toutes les semaines" #: ../datebook_gui.c:244 msgid "Repeat MonthlyByDay" msgstr "Répété les mois tel jour" #: ../datebook_gui.c:245 msgid "Repeat MonthlyByDate" msgstr "Répété les mois telle date" #: ../datebook_gui.c:246 msgid "Repeat YearlyDate" msgstr "Répété tous les ans telle date" #: ../datebook_gui.c:247 msgid "Repeat YearlyDay" msgstr "Répété les ans tel jour" #: ../datebook_gui.c:250 ../datebook_gui.c:257 ../datebook_gui.c:4803 #: ../datebook_gui.c:4810 msgid "Su" msgstr "Di" #: ../datebook_gui.c:251 ../datebook_gui.c:4804 msgid "Mo" msgstr "Lu" #: ../datebook_gui.c:252 ../datebook_gui.c:4805 msgid "Tu" msgstr "Ma" #: ../datebook_gui.c:253 ../datebook_gui.c:4806 msgid "We" msgstr "Me" #: ../datebook_gui.c:254 ../datebook_gui.c:4807 msgid "Th" msgstr "Je" #: ../datebook_gui.c:255 ../datebook_gui.c:4808 msgid "Fr" msgstr "Ve" #: ../datebook_gui.c:256 ../datebook_gui.c:4809 msgid "Sa" msgstr "Sa" #: ../datebook_gui.c:269 #, c-format msgid "" "Start Date: %s\n" "Time: Event" msgstr "" "Rendez-vous commence le : %s\n" "Heure : Événement" #: ../datebook_gui.c:277 #, c-format msgid "" "Start Date: %s\n" "Time: %s to %s" msgstr "" "Rendez-vous commence le : %s\n" "Heure : %s à %s" #: ../datebook_gui.c:287 ../datebook_gui.c:297 msgid "Unknown" msgstr "Inconnu" #. End Date #: ../datebook_gui.c:300 msgid "End Date: " msgstr "Date de fin : " #: ../datebook_gui.c:302 msgid "Never" msgstr "Jamais" #: ../datebook_gui.c:308 #, c-format msgid "Repeat Frequency: %d\n" msgstr "Fréquence de répétition : %d\n" #: ../datebook_gui.c:316 #, c-format msgid "Monthly Repeat Day %d\n" msgstr "Répété tous les mois le %dème jour\n" #: ../datebook_gui.c:321 ../datebook_gui.c:5520 msgid "Repeat on Days:" msgstr "Répété les jours :" #: ../datebook_gui.c:332 #, c-format msgid "Number of exceptions: %d" msgstr "Nombre d'exceptions : %d" #: ../datebook_gui.c:338 msgid "" "\n" "more..." msgstr "" "\n" "plus..." #: ../datebook_gui.c:359 ../datebook_gui.c:386 msgid "Description:" msgstr "Description :" #: ../datebook_gui.c:360 ../datebook_gui.c:387 msgid "Note:" msgstr "Note :" #: ../datebook_gui.c:362 ../datebook_gui.c:390 msgid "Alarm:" msgstr "Alarme :" #: ../datebook_gui.c:363 ../datebook_gui.c:391 msgid "Repeat Type:" msgstr "Type de répétition :" #: ../datebook_gui.c:366 ../datebook_gui.c:394 msgid "Start of Week:" msgstr "Début de semaine :" #: ../datebook_gui.c:388 ../datebook_gui.c:5343 msgid "Location:" msgstr "Emplacement : " #: ../datebook_gui.c:620 ../datebook_gui.c:2271 #, c-format msgid "Appointment description text > %d, truncating to %d\n" msgstr "Description trop longue > %d , coupée à %d\n" #: ../datebook_gui.c:631 ../datebook_gui.c:1148 ../datebook_gui.c:2331 #: ../datebook_gui.c:2338 msgid "Error" msgstr "Erreur" #: ../datebook_gui.c:632 msgid "File doesn't appear to be datebook.dat format\n" msgstr "Le fichier n'est pas du type datebook.dat\n" #: ../datebook_gui.c:699 msgid "DAT/DBA (Palm Archive Formats)" msgstr "" #: ../datebook_gui.c:787 #, c-format msgid "" "Datebook exported from %s %s on %s\n" "\n" msgstr "" "Datebook exporté de %s %s le %s\n" "\n" #: ../datebook_gui.c:790 #, c-format msgid "" "Calendar exported from %s %s on %s\n" "\n" msgstr "" "Calendrier exporté de %s %s le %s\n" "\n" #: ../datebook_gui.c:817 ../todo_gui.c:701 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ical file may not be standards-compliant\n" msgstr "" #: ../datebook_gui.c:1148 msgid "Unknown export type" msgstr "Type d'export inconnu" #: ../datebook_gui.c:1228 ../todo_gui.c:872 msgid "iCalendar" msgstr "iCalendar" #: ../datebook_gui.c:1240 ../export_gui.c:251 ../jpilot.c:429 msgid "Export" msgstr "Exporter" #. Label for instructions #: ../datebook_gui.c:1257 msgid "Export All Datebook Records" msgstr "Exporter tous les enregistrements agenda" #: ../datebook_gui.c:1276 ../export_gui.c:316 msgid "Save as" msgstr "Sauver sous" #. Browse button #: ../datebook_gui.c:1286 ../export_gui.c:329 msgid "Browse" msgstr "Parcourir" #: ../datebook_gui.c:1432 msgid "Datebook Categories" msgstr "Catégories agenda" #. None button #. Labels for notebook tabs #: ../datebook_gui.c:1484 ../datebook_gui.c:2026 ../datebook_gui.c:5449 msgid "None" msgstr "Aucun" #: ../datebook_gui.c:1633 msgid "Begin On Date" msgstr "Date de début" #: ../datebook_gui.c:1639 msgid "End On Date" msgstr "Date de fin" #: ../datebook_gui.c:1751 ../prefs.c:451 msgid "Sunday" msgstr "Dimanche" #: ../datebook_gui.c:1752 ../prefs.c:452 msgid "Monday" msgstr "Lundi" #: ../datebook_gui.c:1753 msgid "Tuesday" msgstr "Mardi" #: ../datebook_gui.c:1754 msgid "Wednesday" msgstr "Mercredi" #: ../datebook_gui.c:1755 msgid "Thursday" msgstr "Jeudi" #: ../datebook_gui.c:1756 msgid "Friday" msgstr "Vendredi" #: ../datebook_gui.c:1757 msgid "Saturday" msgstr "Samedi" #: ../datebook_gui.c:1760 msgid "4th" msgstr "4ème" #: ../datebook_gui.c:1760 msgid "Last" msgstr "Dernier" #: ../datebook_gui.c:1763 #, c-format msgid "" "This appointment can either\n" "repeat on the 4th %s\n" "of the month, or on the last\n" "%s of the month.\n" "Which do you want?" msgstr "" "Ce rendez-vous peut être\n" "répété le 4ème %s\n" "du mois, ou le dernier\n" "%s du mois.\n" "Que voulez-vous ?" #: ../datebook_gui.c:1770 ../datebook_gui.c:1786 msgid "Question?" msgstr "Question ?" #: ../datebook_gui.c:1777 msgid "" "This is a repeating event.\n" "Do you want to apply these changes to\n" "only the CURRENT event,\n" "just FUTURE events, or\n" "ALL of the occurrences of this event?" msgstr "" "C'est un évènement répété.\n" "Voulez vous modifier uniquement\n" "l'événement COURANT, l'événement FUTUR\n" "ou TOUTES les apparitions de cet\n" "évènement?" #: ../datebook_gui.c:1782 msgid "Current" msgstr "Courant" #: ../datebook_gui.c:1782 msgid "Future" msgstr "Futur" #: ../datebook_gui.c:2027 msgid "day" msgstr "jour" #: ../datebook_gui.c:2028 msgid "week" msgstr "semaine" #: ../datebook_gui.c:2029 msgid "month" msgstr "mois" #: ../datebook_gui.c:2030 msgid "year" msgstr "année" #: ../datebook_gui.c:2326 ../datebook_gui.c:2329 #, c-format msgid "You cannot have an appointment that repeats every %d %s(s)\n" msgstr "Vous ne pouvez pas avoir un rendez-vous répété tous les %d %s(s)\n" #: ../datebook_gui.c:2339 msgid "" "You cannot have a weekly repeating appointment that doesn't repeat on any " "day of the week." msgstr "" "Vous ne pouvez pas avoir une rendez-vous hebdomadaire qui ne se répète aucun " "jour de la semaine." #. This is a timeless event #: ../datebook_gui.c:2516 ../datebook_gui.c:5264 msgid "No Time" msgstr "Pas d'heure" #: ../datebook_gui.c:2788 ../memo_gui.c:1259 ../todo_gui.c:1728 msgid "External editor command too long to execute\n" msgstr "" #: ../datebook_gui.c:2943 msgid "Invalid Appointment" msgstr "Rendez-vous non valable" #: ../datebook_gui.c:2944 msgid "" "The End Date of this appointment\n" "is before the start date." msgstr "" "La date de fin de ce rendez-vous\n" "est antérieure à celle de début." #. "No Date" check box #: ../datebook_gui.c:3339 ../datebook_gui.c:5482 ../datebook_gui.c:5513 #: ../datebook_gui.c:5565 ../datebook_gui.c:5613 ../todo_gui.c:142 #: ../todo_gui.c:2454 msgid "No Date" msgstr "Pas de date" #: ../datebook_gui.c:3494 #, c-format msgid "Error in DateBookDB or Calendar advanceUnits = %d\n" msgstr "Erreur dans DateBookDB ou Calendar advanceUnits = %d\n" #: ../datebook_gui.c:3681 #, c-format msgid "%%a., %s" msgstr "" #: ../datebook_gui.c:3686 msgid " (TODAY)" msgstr " (AUJOURD'HUI)" #. Weekview button #: ../datebook_gui.c:4934 ../datebook_gui.c:5451 msgid "Week" msgstr "Semaine" #: ../datebook_gui.c:4943 msgid "View appointments by week Ctrl+W" msgstr "Voir les rendez-vous par semaine Ctrl+W" #. Monthview button #: ../datebook_gui.c:4946 ../datebook_gui.c:5452 msgid "Month" msgstr "Mois" #: ../datebook_gui.c:4955 msgid "View appointments by month Ctrl+M" msgstr "Voir les rendez-vous par mois Ctrl+M" #. Make Category button #: ../datebook_gui.c:4960 msgid "Cats" msgstr "Cats" #: ../datebook_gui.c:5024 msgid "Time" msgstr "Heure" #. "Show ToDos" button #: ../datebook_gui.c:5067 msgid "Show ToDos" msgstr "Montrer les tâches à faire" #: ../datebook_gui.c:5081 ../todo_gui.c:2285 msgid "Task" msgstr "Tâche" #: ../datebook_gui.c:5082 ../todo_gui.c:2286 msgid "Due" msgstr "Prévu(e)" #: ../datebook_gui.c:5201 ../datebook_gui.c:5358 msgid "Alarm" msgstr "Alarme" #. Date Spinners #: ../datebook_gui.c:5241 ../Expense/expense.c:1736 msgid "Date:" msgstr "Date :" #. Start date and time #: ../datebook_gui.c:5283 msgid "Start" msgstr "Commence à" #. End date and time #: ../datebook_gui.c:5300 msgid "End" msgstr "Fini à" #: ../datebook_gui.c:5433 msgid "DateBk Tags" msgstr "Étiquettes DateBk" #: ../datebook_gui.c:5450 msgid "Day" msgstr "Jour" #: ../datebook_gui.c:5453 msgid "Year" msgstr "Année" #. "No Repeat" page for notebook #: ../datebook_gui.c:5456 msgid "This event will not repeat" msgstr "Cet évènement ne se répètera pas" #: ../datebook_gui.c:5465 ../datebook_gui.c:5498 ../datebook_gui.c:5550 #: ../datebook_gui.c:5596 msgid "Frequency is Every" msgstr "La fréquence est chaque" #: ../datebook_gui.c:5471 msgid "Day(s)" msgstr "jour(s)" #: ../datebook_gui.c:5474 ../datebook_gui.c:5507 ../datebook_gui.c:5559 #: ../datebook_gui.c:5605 msgid "End on" msgstr "Fin le" #: ../datebook_gui.c:5504 msgid "Week(s)" msgstr "semaine(s)" #: ../datebook_gui.c:5556 msgid "Month(s)" msgstr "mois" #: ../datebook_gui.c:5573 msgid "Repeat by:" msgstr "Répété tous les :" #: ../datebook_gui.c:5577 msgid "Day of week" msgstr "Jour de la semaine" #: ../datebook_gui.c:5586 ../Expense/expense.c:1618 msgid "Date" msgstr "Date" #: ../datebook_gui.c:5602 msgid "Year(s)" msgstr "année(s)" #: ../dialer.c:195 msgid "Phone Dialer" msgstr "Composition des numéros" #: ../dialer.c:230 msgid "Prefix 1" msgstr "Préfixe 1" #: ../dialer.c:252 msgid "Prefix 2" msgstr "Préfixe 2" #: ../dialer.c:274 msgid "Prefix 3" msgstr "préfixe 3" #: ../dialer.c:289 msgid "Phone number:" msgstr "Numéro de téléphone :" #: ../dialer.c:319 msgid "Extension" msgstr "Extension" #: ../dialer.c:341 msgid "Dial Command" msgstr "commande de numérotation" #: ../export_gui.c:121 msgid "File Browser" msgstr "Parcourir les fichiers" #. Label for instructions #: ../export_gui.c:273 msgid "Select records to be exported" msgstr "Sélectionnez les enregistrements à exporter" #: ../export_gui.c:275 msgid "Use Ctrl and Shift Keys" msgstr "Utilisez les touches Ctrl et Shift" #. Import button #: ../import_gui.c:300 ../import_gui.c:369 ../import_gui.c:426 #: ../import_gui.c:471 ../jpilot.c:385 msgid "Import" msgstr "Importer" #: ../import_gui.c:317 #, c-format msgid "Record was marked as private" msgstr "L'enregistrement était privé" #: ../import_gui.c:319 #, c-format msgid "Record was not marked as private" msgstr "L'enregistrement n'était pas privé" #: ../import_gui.c:328 #, c-format msgid "Category before import was: [%s]" msgstr "La catégorie avant l'import était : [%s]" #: ../import_gui.c:336 #, c-format msgid "Record will be put in category [%s]" msgstr "Les enregistrements seront rangés dans la catégorie [%s]" #. Import All button #: ../import_gui.c:376 msgid "Import All" msgstr "Importer tout" #. Skip button #: ../import_gui.c:383 msgid "Skip" msgstr "Sauter" #: ../import_gui.c:457 ../install_gui.c:429 msgid "To change to a hidden directory type it below and hit TAB" msgstr "Pour aller dans un répertoire caché tapez son nom et pressez " #: ../import_gui.c:484 msgid "Import File Type" msgstr "Importer Fichier" #: ../install_gui.c:366 msgid "Files to install" msgstr "Fichiers à installer" #: ../install_gui.c:374 msgid "Install" msgstr "Installer" #: ../install_user.c:118 ../install_user.c:220 msgid "Install User" msgstr "Installer un utilisateur" #: ../install_user.c:139 msgid "" "A PalmOS(c) device needs a user name and a user ID in order to sync properly." msgstr "" "Un PDA PalmOS(c) a besoin d'un ID d'utilisateur pour fonctionner " "correctement." #: ../install_user.c:146 msgid "" "If you want to sync more than 1 PalmOS(c) device each one should have a " "different ID and preferably a different user name." msgstr "" "Si vous voulez synchroniser plus d'un PDA, chaque PDA doit avoir un ID " "différent et, de préférence, un nom d'utilisateur différent." #. Instruction label #: ../install_user.c:168 msgid "Most people choose their name or nickname for the user name." msgstr "" "La plupart des utilisateurs utilisent leur nom ou surnom comme nom " "d'utilisateur." #: ../install_user.c:176 ../restore_gui.c:278 msgid "User Name" msgstr "Nom d'utilisateur" #: ../install_user.c:186 msgid "The ID should be a random number." msgstr "L'ID devrait être un nombre aléatoire." #: ../install_user.c:194 ../restore_gui.c:297 msgid "User ID" msgstr "ID utilisateur" #: ../jpilot.c:319 msgid "Print" msgstr "Imprimer" #: ../jpilot.c:320 msgid "There is no print support for this conduit." msgstr "Pas de support d'impression pour ce conduit" #: ../jpilot.c:386 msgid "There is no import support for this conduit." msgstr "Pas d'import pour ce conduit" #: ../jpilot.c:430 msgid "There is no export support for this conduit." msgstr "Pas d'export pour ce conduit" #: ../jpilot.c:659 msgid " Cancelling HotSync\n" msgstr "Annuler HotSync\n" #. ------------------------------------------- #: ../jpilot.c:675 msgid "" "This handheld does not have the same user name or user ID\n" "as the one that was synced the last time.\n" "Syncing could have unwanted effects including data loss.\n" "\n" "Read the user manual if you are uncertain." msgstr "" "Ce palm n'a pas le même nom d'utilisateur ou de user ID\n" "que celui lors de la dernière synchronisation.\n" "Synchroniser peut avoir des effets non désirés incluant des pertes de " "données.\n" "\n" "Lisez le manuel utilisateur en cas de doute." #. ------------------------------------------- #: ../jpilot.c:682 msgid "" "This handheld has a NULL user ID.\n" "Every handheld must have a unique user ID in order to sync properly.\n" "If the handheld has been hard reset, \n" " use restore from the menu to restore it.\n" "Otherwise, to add a new user name and ID\n" " use install-user from the menu.\n" "\n" "Read the user manual if you are uncertain." msgstr "" "Ce PDA a un user ID NULL.\n" "Chaque PDA doit avoir un user ID unique pour un synchronisation correcte.\n" "Si il a été remis à zéro, \n" " utilisez le menu restauration manuelle.\n" "Sinon, pour ajouter un nom d'utilisateur et ID\n" " utilisez le menu Installer un utilisateur.\n" "ou utilisez 'Installer un utilisateur' depuis le menu\n" "\n" "Lisez le manuel utilisateur en cas de doute." #: ../jpilot.c:690 msgid "Cancel Sync" msgstr "Annuler Sync" #: ../jpilot.c:690 msgid "Sync Anyway" msgstr "Sync quand même" #: ../jpilot.c:699 ../jpilot.c:703 msgid "Sync Problem" msgstr "Problème de synchronisation" #: ../jpilot.c:932 ../jpilot.c:1785 msgid " User: " msgstr " Utilisateur : " #: ../jpilot.c:944 msgid "Unknown command from sync process\n" msgstr "Commande inconnue du processus de synchronisation\n" #: ../jpilot.c:963 ../Expense/expense.c:529 ../KeyRing/keyring.c:1872 #: ../SyncTime/synctime.c:61 #, c-format msgid "About %s" msgstr "À propos de %s" #: ../jpilot.c:1105 msgid "/_File" msgstr "/_Fichier" #: ../jpilot.c:1106 msgid "/File/tear" msgstr "/Fichier/tear" #: ../jpilot.c:1107 msgid "/File/_Find" msgstr "/Fichier/Rechercher" #: ../jpilot.c:1108 ../jpilot.c:1114 ../jpilot.c:1117 msgid "/File/sep1" msgstr "/Fichier/sep1" #: ../jpilot.c:1109 msgid "/File/_Install" msgstr "/Fichier/_Installer" #: ../jpilot.c:1110 msgid "/File/Import" msgstr "/Fichier/Importer" #: ../jpilot.c:1111 msgid "/File/Export" msgstr "/Fichier/Exporter" #: ../jpilot.c:1112 ../jpilot.c:2190 msgid "/File/Preferences" msgstr "/Fichier/Préférences" #: ../jpilot.c:1113 msgid "/File/_Print" msgstr "/Fichier/Im_primer" #: ../jpilot.c:1115 msgid "/File/Install User" msgstr "/Fichier/Installer un utilisateur" #: ../jpilot.c:1116 msgid "/File/Restore Handheld" msgstr "/Fichier/Restauration manuelle" #: ../jpilot.c:1118 msgid "/File/_Quit" msgstr "/Fichier/_Quitter" #: ../jpilot.c:1119 msgid "/_View" msgstr "/Affichage" #: ../jpilot.c:1120 ../jpilot.c:1121 ../jpilot.c:1122 ../jpilot.c:1368 msgid "/View/Hide Private Records" msgstr "/Affichage/Cacher les enregistrements privés" #: ../jpilot.c:1121 ../jpilot.c:1371 msgid "/View/Show Private Records" msgstr "/Affichage/Montrer les enregistrements privés" #: ../jpilot.c:1122 ../jpilot.c:1374 msgid "/View/Mask Private Records" msgstr "/Affichage/Masquer les enregistrements privés" #: ../jpilot.c:1123 msgid "/View/sep1" msgstr "/Affichage/sep1" #: ../jpilot.c:1124 msgid "/View/Datebook" msgstr "/Affichage/Agenda" #: ../jpilot.c:1125 msgid "/View/Addresses" msgstr "/Affichage/Carnet d'adresses" #: ../jpilot.c:1126 msgid "/View/Todos" msgstr "/Affichage/Tâches" #: ../jpilot.c:1127 msgid "/View/Memos" msgstr "/Affichage/Bloc-notes" #: ../jpilot.c:1128 ../jpilot.c:1259 msgid "/_Plugins" msgstr "/_Greffons" #: ../jpilot.c:1130 msgid "/_Web" msgstr "/_Web" #. web #: ../jpilot.c:1131 msgid "/Web/Netscape" msgstr "/Web/Netscape" #: ../jpilot.c:1135 msgid "/Web/Mozilla" msgstr "/Web/Mozilla" #: ../jpilot.c:1140 msgid "/Web/Galeon" msgstr "/Web/Galeon" #: ../jpilot.c:1145 msgid "/Web/Opera" msgstr "/Web/Opera" #: ../jpilot.c:1149 msgid "/Web/GnomeUrl" msgstr "/Web/GnomeUrl" #: ../jpilot.c:1151 msgid "/Web/Lynx" msgstr "/Web/Lynx" #: ../jpilot.c:1153 msgid "/Web/Links" msgstr "/Web/Links" #: ../jpilot.c:1155 msgid "/Web/W3M" msgstr "/Web/W3M" #: ../jpilot.c:1157 msgid "/Web/Konqueror" msgstr "/Web/Konqueror" #: ../jpilot.c:1160 msgid "/_Help" msgstr "/_Aide" #: ../jpilot.c:1161 msgid "/Help/About J-Pilot" msgstr "/Aide/À propos de J-Pilot" #: ../jpilot.c:1227 #, c-format msgid "/_Plugins/%s" msgstr "/_Greffons/%s" #: ../jpilot.c:1237 #, c-format msgid "/_Help/%s" msgstr "/_Aide/%s" #: ../jpilot.c:1591 msgid "calendar:week_start:0" msgstr "" #: ../jpilot.c:1634 ../jpilot-sync.c:171 msgid "Not loading plugins.\n" msgstr "Non chargement des plugins.\n" #: ../jpilot.c:1638 msgid "Ignoring all alarms.\n" msgstr "Ignore toutes les alarmes.\n" #: ../jpilot.c:1642 msgid "Ignoring past alarms.\n" msgstr "Ignore les alarmes échues.\n" #: ../jpilot.c:1730 ../jpilot.c:1738 msgid "Unable to open pipe\n" msgstr "Impossible d'ouvrir le pipe\n" #: ../jpilot.c:1947 msgid "Show private records Ctrl+Z" msgstr "Montrer les enregistrements privés Ctrl+Z" #: ../jpilot.c:1952 msgid "Hide private records Ctrl+Z" msgstr "Cacher les enregistrements privés Ctrl+Z" #: ../jpilot.c:1957 msgid "Mask private records Ctrl+Z" msgstr "Masquer les enregistrements privés Ctrl+Z" #: ../jpilot.c:1969 msgid "Sync your palm to the desktop Ctrl+Y" msgstr "Synchronise le Palm avec l'ordinateur Ctrl+Y" #: ../jpilot.c:1981 msgid "Stop Sync process" msgstr "Arrêter la synchronisation" #: ../jpilot.c:1993 msgid "" "Sync your palm to the desktop\n" "and then do a backup" msgstr "" "Synchronise le palm au bureau\n" "et fait une sauvegarde" #: ../jpilot.c:2141 msgid "Datebook/Go to Today" msgstr "Agenda/Aller à Aujourd'hui" #: ../jpilot.c:2142 msgid "Address Book" msgstr "Carnet d'adresses" #: ../jpilot.c:2143 msgid "ToDo List" msgstr "Liste de tâches" #: ../jpilot.c:2144 msgid "Memo Pad" msgstr "Bloc notes" #: ../jpilot.c:2172 msgid "Do it now" msgstr "Le faire maintenant" #: ../jpilot.c:2172 msgid "Remind me later" msgstr "Me le rappeler plus tard" #: ../jpilot.c:2172 msgid "Don't tell me again!" msgstr "Ne plus me le rapeller !" #: ../jpilot.c:2185 #, c-format msgid "" "J-Pilot uses the GTK2 graphical toolkit. This version of the toolkit uses " "UTF-8 to encode characters.\n" "You should select a UTF-8 charset so that you can see non-ASCII characters " "(accents for example).\n" "\n" "Go to the menu \"%s\" and change the \"%s\"." msgstr "" "J-Pilot utilise la boîte à outils graphique GTK2. Cette version de la boîte " "à outils utilise UTF-8 pour encoder les caractères.\n" "Vous devriez selectionner un encodage UTF-8 pour pouvoir voir les caractères " "non-ASCII (comme les accents par exemple).\n" "\n" "Allez dans le menu \"%s\" et changez le \"%s\"." #. Character Set #: ../jpilot.c:2190 ../prefs_gui.c:511 msgid "Character Set" msgstr "Jeu de caractères" #: ../jpilot.c:2192 msgid "Select a UTF-8 encoding" msgstr "Selectionnez un encodage UTF-8" #: ../jpilot-dump.c:94 #, c-format msgid " +D +A +T +M format like date +format.\n" msgstr " +D +A +T +M format comme date +format.\n" #: ../jpilot-dump.c:95 #, c-format msgid " -v display version and exit\n" msgstr " -v affiche la version et sort\n" #: ../jpilot-dump.c:96 ../jpilot-sync.c:68 ../utils.c:1874 #, c-format msgid " -h display help text\n" msgstr " -h affiche l'aide et sort\n" #: ../jpilot-dump.c:97 #, c-format msgid " -f display help for format codes\n" msgstr " -h affiche l'aide des codes de formatage\n" #: ../jpilot-dump.c:98 #, c-format msgid " -D dump DateBook\n" msgstr " -D dump agenda\n" #: ../jpilot-dump.c:99 #, c-format msgid " -i dump DateBook in iCalendar format\n" msgstr " -i affiche l'agenda au format iCalendar\n" #: ../jpilot-dump.c:100 #, c-format msgid " -N dump appts for today in DateBook\n" msgstr " -N affiche les rendez-vous d'aujourd'hui\n" #: ../jpilot-dump.c:101 #, c-format msgid " -NYYYY/MM/DD dump appts on YYYY/MM/DD in DateBook\n" msgstr " -NYYYY/MM/DD affiche les rendez-vous du YYYY/MM/DD\n" #: ../jpilot-dump.c:102 #, c-format msgid " -A dump Address book\n" msgstr " -A dump le carnet d'adresse\n" #: ../jpilot-dump.c:103 #, c-format msgid " -T dump ToDo list as CSV\n" msgstr " -T affiche les tâches au format CSV\n" #: ../jpilot-dump.c:104 #, c-format msgid " -M dump Memos\n" msgstr " -M dump mémos\n" #: ../jpilot-dump.c:165 #, c-format msgid "" "Warning: Host character encoding is not UTF-8 based.\n" "Exported ical file may not be standards-compliant\n" msgstr "" #: ../jpilot-merge.c:163 ../jpilot-merge.c:169 #, c-format msgid "%s: Unable to open file:%s\n" msgstr "%s: Impossible d'ouvrir: %s\n" #: ../jpilot-merge.c:271 #, c-format msgid "Records read from pdb = %d\n" msgstr "" #: ../jpilot-merge.c:272 #, c-format msgid "Records added = %d\n" msgstr "" #: ../jpilot-merge.c:273 #, c-format msgid "Records deleted = %d\n" msgstr "" #: ../jpilot-merge.c:274 #, c-format msgid "Records modified = %d\n" msgstr "" #: ../jpilot-merge.c:275 #, c-format msgid "Records written = %d\n" msgstr "" #: ../jpilot-merge.c:293 #, c-format msgid "Usage: %s {input pdb file} {input pc3 file} {output pdb file}\n" msgstr "" #: ../jpilot-merge.c:294 #, c-format msgid " This program will merge an unsynced records file (pc3)\n" msgstr "" #: ../jpilot-merge.c:295 #, c-format msgid "" " into the corresponding palm database (pdb) file.\n" "\n" msgstr "" #: ../jpilot-merge.c:296 #, c-format msgid " WARNING: Only run this utility if you understand the consequences!\n" msgstr "" #: ../jpilot-merge.c:297 #, c-format msgid " The merge will leave your databases in an unsync-able state.\n" msgstr "" #: ../jpilot-merge.c:298 #, c-format msgid "" " It is intended for cases where J-pilot is being used as a standalone PIM\n" msgstr "" #: ../jpilot-merge.c:299 #, c-format msgid " and where no syncing occurs to physical hardware.\n" msgstr "" #: ../jpilot-merge.c:300 #, c-format msgid " WARNING: Make a backup copy of your databases before proceeding.\n" msgstr "" #: ../jpilot-merge.c:301 #, c-format msgid "" " It is quite simple to destroy your databases by accidentally merging\n" msgstr "" #: ../jpilot-merge.c:302 #, c-format msgid " address records into datebook databases, etc.\n" msgstr "" #: ../jpilot-sync.c:66 #, c-format msgid "" " J-Pilot preferences are read to get sync info such as port, rate, number of " "backups, etc.\n" msgstr "" " Les préférences J-Pilot sont lus pour connaître le port, la vitesse, le " "nombre de sauvegardes, etc.\n" #: ../jpilot-sync.c:67 ../utils.c:1873 #, c-format msgid " -v display version and compile options\n" msgstr " -v affiche la version, les options de compilation et sort\n" #: ../jpilot-sync.c:69 ../utils.c:1875 #, c-format msgid " -d display debug info to stdout\n" msgstr " -d affiche les information de debug sur stdout\n" #: ../jpilot-sync.c:70 #, c-format msgid " -P skip loading plugins\n" msgstr " -P ne charge pas les plugins\n" #: ../jpilot-sync.c:71 #, c-format msgid " -b sync, and then do a backup\n" msgstr " -b synchroniser et faire une sauvegarde\n" #: ../jpilot-sync.c:72 #, c-format msgid " -l loop, otherwise sync once and exit\n" msgstr " -l boucle, sinon synchronise une fois et sort\n" #: ../jpilot-sync.c:73 #, c-format msgid " -p {port} use this port to sync on instead of default\n" msgstr "" " -p {port} utilise ce port pour synchroniser plutôt que celui par défaut\n" #: ../jpilot-sync.c:221 #, c-format msgid "Error: connecting to port %s\n" msgstr "Erreur de connexion au port %s\n" #: ../jpilot-sync.c:225 #, c-format msgid "Error: pi_listen\n" msgstr "" #: ../jpilot-sync.c:229 #, c-format msgid "Error: opening conduit to handheld\n" msgstr "Erreur d'ouverture du conduit vers le palm\n" #: ../jpilot-sync.c:233 #, c-format msgid "Error: pi_accept\n" msgstr "" #: ../jpilot-sync.c:237 ../jpilot-sync.c:265 #, c-format msgid "Error: " msgstr "Erreur : " #: ../jpilot-sync.c:238 #, c-format msgid "This handheld does not have the same user name.\n" msgstr "" #: ../jpilot-sync.c:239 ../jpilot-sync.c:253 #, c-format msgid "as the one that was synced the last time.\n" msgstr "" #: ../jpilot-sync.c:241 #, c-format msgid "" "Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:243 ../jpilot-sync.c:256 #, c-format msgid " COPILOT_HOME" msgstr "" #: ../jpilot-sync.c:245 ../jpilot-sync.c:258 #, c-format msgid " JPILOT_HOME" msgstr "" #: ../jpilot-sync.c:247 ../jpilot-sync.c:260 #, c-format msgid " environment variable can be used to sync different handhelds,\n" msgstr "" #: ../jpilot-sync.c:248 ../jpilot-sync.c:261 #, c-format msgid " to different directories for the same UNIX user name.\n" msgstr "" #: ../jpilot-sync.c:252 #, c-format msgid "This handheld does not have the same user ID.\n" msgstr "" #: ../jpilot-sync.c:254 #, c-format msgid "" " Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:266 #, c-format msgid "This handheld has a NULL user ID.\n" msgstr "" #: ../jpilot-sync.c:267 #, c-format msgid "Every handheld must have a unique user ID in order to sync properly.\n" msgstr "" "Un palm a besoin d'un ID d'utilisateur pour fonctionner correctement.\n" #: ../jpilot-sync.c:268 #, c-format msgid "If the handheld has been hard reset, \n" msgstr "" #: ../jpilot-sync.c:269 #, c-format msgid " use restore from within " msgstr "" #: ../jpilot-sync.c:270 #, c-format msgid "Otherwise, to add a new user name and ID\n" msgstr "" #: ../jpilot-sync.c:271 #, c-format msgid " use \"install-user %s name numeric_id\"\n" msgstr "" #: ../jpilot-sync.c:275 #, c-format msgid "Error: sync returned error %d\n" msgstr "" #: ../libplugin.c:64 ../utils.c:1054 msgid "" "This record is already deleted.\n" "It is scheduled to be deleted from the Palm on the next sync.\n" msgstr "" "Cet enregistrement est déjà efface.\n" "Il sera effacé du Palm lors de la prochaine synchronisation.\n" #: ../libplugin.c:73 ../libplugin.c:110 ../utils.c:1064 ../utils.c:1106 msgid "Unable to open PC records file\n" msgstr "Impossible d'ouvrir le fichiers des enregistrements\n" #: ../libplugin.c:79 ../utils.c:1071 msgid "Couldn't find record to delete\n" msgstr "Impossible de trouver l'enregistrement à effacer\n" #: ../libplugin.c:97 ../utils.c:1091 #, c-format msgid "Unknown header version %d\n" msgstr "version d'entête inconnue %d\n" #: ../libplugin.c:182 #, c-format msgid "%s:%d Error opening file: %s\n" msgstr "%s:%d Erreur à l'ouverture du fichier %s\n" #: ../libplugin.c:188 ../libplugin.c:217 ../sync.c:1721 ../todo.c:102 #, c-format msgid "%s:%d Error reading file: %s\n" msgstr "%s:%d Erreur en lisant le fichier %s\n" #: ../libplugin.c:340 ../libplugin.c:398 ../utils.c:2119 ../utils.c:2132 #, c-format msgid "Error opening file: %s\n" msgstr "Erreur d'ouverture du fichier : %s\n" #: ../libplugin.c:526 #, c-format msgid "Error reading %s 5\n" msgstr "Erreur en lecture %s 5\n" #: ../libplugin.c:801 msgid "Error reading PC file 1\n" msgstr "Erreur en lecture fichier PC 1\n" #: ../libplugin.c:817 msgid "Error reading PC file 2\n" msgstr "Erreur en lecture fichier PC 2\n" #: ../libplugin.c:923 #, c-format msgid "Unknown PC header version = %d\n" msgstr "Version PC header inconnue =%d\n" #: ../log.c:101 #, c-format msgid "Unable to open log file, giving up.\n" msgstr "Impossible d'ouvrir le journal de bord, abandon.\n" #: ../log.c:111 #, c-format msgid "Unable to open log file\n" msgstr "Impossible d'ouvrir le journal de bord\n" #: ../memo_gui.c:302 msgid "Memo text > 65535, truncating\n" msgstr "Texte du mémo > 65535, troncation\n" #: ../memo_gui.c:330 #, c-format msgid "Imported Memo %s\n" msgstr "Mémo importé %s\n" #: ../memo_gui.c:400 msgid "File doesn't appear to be memopad.dat format\n" msgstr "Le fichier n'est pas au format bloc-notes\n" #: ../memo_gui.c:471 msgid "DAT/MPA (Palm Archive Formats)" msgstr "" #: ../memo_gui.c:554 #, c-format msgid "" "Memo exported from %s %s on %s\n" "\n" msgstr "" "Memo exporté de %s %s le %s\n" "\n" #: ../memo_gui.c:557 #, c-format msgid "" "Memos exported from %s %s on %s\n" "\n" msgstr "" "Memos exporté de %s %s le %s\n" "\n" #: ../memo_gui.c:584 #, c-format msgid "Can't export memo %d\n" msgstr "Imposible d'exporter le mémo %d\n" #: ../memo_gui.c:628 #, c-format msgid "Memo: %ld\n" msgstr "Note : %ld\n" #: ../memo_gui.c:634 #, c-format msgid "----- Start of Memo -----\n" msgstr "----- Début de la Note ----\n" #: ../memo_gui.c:636 #, c-format msgid "" "\n" "----- End of Memo -----\n" "\n" msgstr "" "\n" "----- Fin de la Note -----\n" "\n" #: ../memo_gui.c:668 msgid "B-Folders CSV" msgstr "" #: ../monthview_gui.c:438 msgid "Monthly View" msgstr "Vue mensuelle" #: ../monthview_gui.c:480 msgid "Last month Alt+LeftArrow" msgstr "" #: ../monthview_gui.c:508 msgid "Next month Alt+RightArrow" msgstr "" #: ../otherconv.c:76 #, c-format msgid "%s: error exit from g_iconv_close(%s)\n" msgstr "" #: ../otherconv.c:201 #, c-format msgid "%s:%s g_convert_with_iconv error: %s, buff: %s\n" msgstr "" #: ../otherconv.c:203 msgid "last char truncated" msgstr "dernier caractère tronqué" #: ../otherconv.c:280 #, c-format msgid "UTF_to_other: %s\n" msgstr "" #: ../otherconv.c:294 #, c-format msgid "iconv: unconvertible sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:298 #, c-format msgid "iconv: incomplete UTF-8 sequence at place %d in '%s'\n" msgstr "" #: ../otherconv.c:301 #, c-format msgid "iconv: buffer filled. stopped at place %d in '%s'\n" msgstr "" #: ../otherconv.c:304 #, c-format msgid "iconv: unexpected error at place %d in '%s'\n" msgstr "" #: ../password.c:283 msgid "Palm Password" msgstr "Mot de passe Palm" #: ../password.c:308 msgid "Incorrect, Reenter PalmOS Password" msgstr "Erreur, Re-entrez le mot de passe PalmOS" #: ../password.c:310 msgid "Enter PalmOS Password" msgstr "Entrez le mot de passe PalmOS" #: ../pidfile.c:67 msgid "removing stale pidfile\n" msgstr "effacement du fichier de pid inutile\n" #: ../pidfile.c:91 #, c-format msgid "create pidfile failed: %s\n" msgstr "echec de creation du fichier de pid: %s\n" #: ../pidfile.c:92 msgid "Warning: hotplug syncing disabled.\n" msgstr "Attention: synchronisation hotplug désactivée.\n" #: ../plugins.c:90 ../plugins.c:203 ../restore_gui.c:133 msgid "infinite loop" msgstr "boucle infinie" #: ../plugins.c:216 #, c-format msgid "While reading %s%s line 1:[%s]\n" msgstr "En lisant %s%s ligne 1:[%s]\n" #: ../plugins.c:217 msgid "Wrong Version\n" msgstr "Mauvaise version\n" #: ../plugins.c:218 msgid "Check preferences->conduits\n" msgstr "Verifiez préférences->conduits\n" #: ../plugins.c:274 #, c-format msgid "" "Open failed on plugin [%s]\n" " error [%s]\n" msgstr "" "Échec d'ouverture du greffon [%s]\n" " erreur [%s]\n" #: ../plugins.c:291 ../plugins.c:316 #, c-format msgid " plugin is invalid: [%s]\n" msgstr " greffon invalide : [%s]\n" #: ../plugins.c:299 #, c-format msgid "Plugin:[%s]\n" msgstr "Greffon:[%s]\n" #: ../plugins.c:300 #, c-format msgid "This plugin is version (%d.%d).\n" msgstr "Ce greffon est version (%d.%d).\n" #: ../plugins.c:302 msgid "It is too old to work with this version of J-Pilot.\n" msgstr "Il est trop ancien pour fonctionner avec cette version de J-Pilot.\n" #: ../prefs.c:420 msgid "%B %d, %Y" msgstr "" #: ../prefs.c:421 msgid "%d %B %Y" msgstr "" #: ../prefs.c:422 msgid "%d. %B %Y" msgstr "" #: ../prefs.c:423 msgid "%d %B, %Y" msgstr "" #: ../prefs.c:424 msgid "%Y. %B. %d" msgstr "" #: ../prefs.c:425 msgid "%Y %B %d" msgstr "" #: ../prefs_gui.c:454 msgid "Preferences" msgstr "Préférences" #: ../prefs_gui.c:485 msgid "Locale" msgstr "Locale" #: ../prefs_gui.c:487 msgid "Settings" msgstr "Réglages" #: ../prefs_gui.c:489 msgid "Datebook" msgstr "Agenda" #: ../prefs_gui.c:493 msgid "ToDo" msgstr "Liste de tâches" #: ../prefs_gui.c:495 msgid "Memo" msgstr "Bloc-notes" #: ../prefs_gui.c:497 msgid "Alarms" msgstr "Alarmes" #: ../prefs_gui.c:499 msgid "Conduits" msgstr "Conduits" #. Shortdate #: ../prefs_gui.c:524 msgid "Short date format" msgstr "Date format court" #. Longdate #: ../prefs_gui.c:537 msgid "Long date format" msgstr "Date format long" #. Time #: ../prefs_gui.c:550 msgid "Time format" msgstr "Format de l'heure" #. GTK colors file #: ../prefs_gui.c:570 msgid "GTK color theme file" msgstr "Mon fichier couleurs GTK est" #. Port #: ../prefs_gui.c:583 msgid "Sync Port" msgstr "Port de synchronisation" #. Serial Rate #: ../prefs_gui.c:607 msgid "Serial Rate" msgstr "Vitesse série" #. Number of backups #: ../prefs_gui.c:627 msgid "Number of backups to be archived" msgstr "Nombre de sauvegardes à archiver" #. Show deleted files check box #: ../prefs_gui.c:645 msgid "Show deleted records (default NO)" msgstr "Montrer les enregistrements effacés (NON par défaut)" #. Show modified files check box #: ../prefs_gui.c:649 msgid "Show modified deleted records (default NO)" msgstr "Montrer les enregistrements modifiés (NON par défaut)" #: ../prefs_gui.c:654 msgid "Ask confirmation for file installation (J-Pilot -> PDA) (default YES)" msgstr "" "Demande confirmation pour l'installation de fichier (J-Pilot -> PDA) (OUI " "par défaut)" #. Show tooltips check box #: ../prefs_gui.c:658 msgid "Show popup tooltips (default YES) (requires restart)" msgstr "Montre les bulles d'aide (défaut OUI) (nécessite un redémarrage)" #: ../prefs_gui.c:668 msgid "Use Datebook database (Palm OS < 5.2.1)" msgstr "Utiliser la base de donnée Datebook (Palm OS < 5.2.1)" #: ../prefs_gui.c:671 msgid "Use Calendar database (Palm OS > 5.2)" msgstr "Utiliser la base de donnée Calendar (Palm OS > 5.2)" #. Show highlight days check box #: ../prefs_gui.c:697 msgid "Highlight calendar days with appointments" msgstr "Surligner les jours avec rendez-vous" #. Highlight today on month and week view #: ../prefs_gui.c:702 msgid "Annotate today in day, week, and month views" msgstr "Signaler aujourd'hui dans les vues jour, semaine et mois" #. Show number of years on anniversaries in month and week view #: ../prefs_gui.c:706 msgid "Append years on anniversaries in day, week, and month views" msgstr "" "Ajoute le nombre d'années pour les anniversaires dans les vues jour, semaine " "et mois" #. Show use DateBk check box #: ../prefs_gui.c:712 msgid "Use DateBk note tags" msgstr "Utilise DateBk note tags" #: ../prefs_gui.c:715 msgid "DateBk support disabled in this build" msgstr "Le support pour DateBk est désactivé pour cet exécutable" #: ../prefs_gui.c:727 msgid "Use Address database (Palm OS < 5.2.1)" msgstr "Utiliser la base de donnée Address (Palm OS < 5.2.1)" #: ../prefs_gui.c:730 msgid "Use Contacts database (Palm OS > 5.2)" msgstr "Utiliser la base de donnée Contacts (Palm OS > 5.2)" #: ../prefs_gui.c:759 msgid "Mail Command" msgstr "Commande d'envoi de mél" #: ../prefs_gui.c:773 #, c-format msgid "%s is replaced by the e-mail address" msgstr "%s est remplacé par l'adresse mél" #: ../prefs_gui.c:785 msgid "Use ToDo database (Palm OS < 5.2.1)" msgstr "Utiliser la base ToDo (Palm OS < 5.2.1)" #: ../prefs_gui.c:788 msgid "Use Task database (Palm OS > 5.2)" msgstr "Utiliser la base Task (Palm OS > 5.2)" #. hide completed check box #: ../prefs_gui.c:815 msgid "Hide Completed ToDos" msgstr "Masquer les tâches terminées" #. hide todos not yet due check box #: ../prefs_gui.c:819 msgid "Hide ToDos not yet due" msgstr "Cacher les tâches à date non échue" #. record todo completion date check box #: ../prefs_gui.c:823 msgid "Record Completion Date" msgstr "Date de fin de l'enregistrement" #. Use Manana check box #: ../prefs_gui.c:828 msgid "Use Manana database" msgstr "Utiliser la base de données Mañana" #: ../prefs_gui.c:836 msgid "Use default number of days due" msgstr "Utilise le nombre de jours à 'échéance par défaut" #: ../prefs_gui.c:858 msgid "Use Memo database (Palm OS < 5.2.1)" msgstr "Utiliser la base Memo (Palm OS < 5.2.1)" #: ../prefs_gui.c:861 msgid "Use Memos database (Palm OS > 5.2)" msgstr "Utiliser la base Memos (Palm OS > 5.2)" #: ../prefs_gui.c:864 msgid "Use Memo32 database (pedit32)" msgstr "Utiliser la base Memo32 (pedit32)" #: ../prefs_gui.c:904 msgid "External Editor" msgstr "" #: ../prefs_gui.c:917 msgid "Use Ctrl-E inside a memo to launch external editor for memo text" msgstr "" #. ******************************************************************** #. Alarms preference tab #. Open alarm windows check box #: ../prefs_gui.c:925 msgid "Open alarm windows for appointment reminders" msgstr "Ouvrir une fenêtre de rappel pour les rendez vous" #. Execute alarm command check box #: ../prefs_gui.c:929 msgid "Execute this command" msgstr "Exécuter la commande" #. Shell warning label #: ../prefs_gui.c:933 msgid "WARNING: executing arbitrary shell commands can be dangerous!!!" msgstr "ATTENTION : exécuter des commandes shell peut être dangereux !!!" #: ../prefs_gui.c:941 msgid "Alarm Command" msgstr "Commande d'alarme" #: ../prefs_gui.c:954 msgid "%t is replaced with the alarm time" msgstr "%t est remplacé par l'heure de l'alarme" #: ../prefs_gui.c:958 #, c-format msgid "%d is replaced with the alarm date" msgstr "%d est remplace par la date de l'alarme" #: ../prefs_gui.c:963 msgid "%D is replaced with the alarm description" msgstr "%D est remplacé par la description de l'alarme" #: ../prefs_gui.c:967 msgid "%N is replaced with the alarm note" msgstr "%N est remplacé par le note associée à l'alarme" #: ../prefs_gui.c:971 msgid "%D (description substitution) is disabled in this build" msgstr "%D (description substitution) est désactivé pour cet exécutable" #: ../prefs_gui.c:976 msgid "%N (note substitution) is disabled in this build" msgstr "%N (note substitution) est désactivé pour cet exécutable" #. ******************************************************************** #. Conduits preference tab #. Sync datebook check box #: ../prefs_gui.c:986 msgid "Sync datebook" msgstr "Sync agenda" #. Sync address check box #: ../prefs_gui.c:990 msgid "Sync address" msgstr "Sync carnet d'adresses" #. Sync todo check box #: ../prefs_gui.c:994 msgid "Sync todo" msgstr "Sync tâches" #. Sync memo check box #: ../prefs_gui.c:998 msgid "Sync memo" msgstr "Sync bloc-notes" #. Show sync Manana check box #: ../prefs_gui.c:1003 msgid "Sync Manana" msgstr "Sync Mañana" #. Show use Japanese Kana extention check box #: ../prefs_gui.c:1009 msgid "Use J-OS (Not Japanese PalmOS:WorkPad/CLIE)" msgstr "Utilise J-OS (Sauf PalmOS:WorkPad/CLIE japonais)" #. Make a Sync checkbox for each plugin #: ../prefs_gui.c:1022 #, c-format msgid "Sync %s (%s)" msgstr "Synchronise %s (%s)" #: ../print_gui.c:185 msgid "Print Options" msgstr "Options d'impression" #: ../print_gui.c:198 msgid "Paper Size" msgstr "Taille papier" #: ../print_gui.c:214 msgid "Daily Printout" msgstr "Impression quotidienne" #: ../print_gui.c:220 msgid "Weekly Printout" msgstr "Impression hebdomadaire" #: ../print_gui.c:226 msgid "Monthly Printout" msgstr "Impression mensuelle" #: ../print_gui.c:266 msgid "Selected record" msgstr "Enregistrement selectionné" #: ../print_gui.c:270 msgid "All records in this category" msgstr "Tous les enregistrements de cette catégorie" #: ../print_gui.c:274 msgid "Print all records" msgstr "Imprimer tous les enregistrements" #: ../print_gui.c:296 msgid "One record per page" msgstr "Un enregistrement par page" #: ../print_gui.c:312 msgid "Blank lines between each record" msgstr "Lignes blanches entre les enregistrements" #. Print Command #: ../print_gui.c:321 msgid "Print Command (e.g. lpr, or cat > file.ps)" msgstr "Commande d'impression (e.g. lpr ou cat > fichier.ps)" #: ../restore_gui.c:71 ../restore_gui.c:229 msgid "Restore Handheld" msgstr "Restaure le PDA" #: ../restore_gui.c:176 ../restore_gui.c:178 msgid "Unable to convert filename for GTK display\n" msgstr "Impossible de convertir le fichier en affichage GTK\n" #: ../restore_gui.c:177 msgid "See console log to find which file will not be restored\n" msgstr "" "Regardez la console de log pour savoir quel fichier ne sera pas restauré\n" #: ../restore_gui.c:179 #, c-format msgid "File %s will not be restored\n" msgstr "Le fichier %s ne sera pas restauré\n" #. Label for instructions #: ../restore_gui.c:246 msgid "To restore your handheld:" msgstr "Restaurer votre PDA :" #: ../restore_gui.c:249 msgid "1. Choose the applications you wish to restore. The default is all." msgstr "1. Choisir toutes les applications à restaurer. Toutes par défaut." #: ../restore_gui.c:252 msgid "2. Enter the User Name and User ID." msgstr "2. Entrez le nom d'utilisateur et l'identifiant (user ID)." #: ../restore_gui.c:255 msgid "3. Press the OK button." msgstr "3. Appuyez sur OK." #: ../restore_gui.c:258 msgid "This will overwrite data that is currently on the handheld." msgstr "Cette opération écrase les données sur le PDA." #: ../search_gui.c:144 msgid "datebook" msgstr "agenda" #: ../search_gui.c:146 msgid "calendar" msgstr "calendar" #: ../search_gui.c:233 msgid "address" msgstr "adresse" #: ../search_gui.c:235 msgid "contact" msgstr "" #: ../search_gui.c:304 msgid "todo" msgstr "tâches" #: ../search_gui.c:361 msgid "memo" msgstr "bloc-notes" #: ../search_gui.c:363 msgid "memos" msgstr "bloc-notes" #: ../search_gui.c:421 msgid "plugin ?" msgstr "Greffons ?" #: ../search_gui.c:501 msgid "No records found" msgstr "Aucun enregistrement trouvé" #: ../search_gui.c:600 msgid "Search" msgstr "Recherche" #. Search label #: ../search_gui.c:617 msgid "Search for: " msgstr "Chercher : " #. Case Sensitive checkbox #: ../search_gui.c:626 msgid "Case Sensitive" msgstr "Tiens compte de MAJ/min" #: ../sync.c:120 msgid "open lock file failed\n" msgstr "Échec à l'ouverture du fichier verrou\n" #: ../sync.c:133 msgid "lock failed\n" msgstr "echec du verrouillage\n" #: ../sync.c:136 #, c-format msgid "sync file is locked by pid %d\n" msgstr "fichier de synchro verrouillé par pid %d\n" #: ../sync.c:171 msgid "unlock failed\n" msgstr "echec du déverrouillage\n" #: ../sync.c:174 #, c-format msgid "sync is locked by pid %d\n" msgstr "synchro verrouillée par pid %d\n" #: ../sync.c:410 msgid "Check your sync port and settings\n" msgstr "Vérifier le port de synchronisation et ses réglages\n" #: ../sync.c:669 msgid "Unable to read home dir\n" msgstr "Impossible d'ouvrir le home dir\n" #: ../sync.c:1075 ../sync.c:1413 #, c-format msgid "%s (Creator ID '%s') is up to date, fetch skipped.\n" msgstr "%s (Creator ID '%s') est à jour, récupération sautée\n" #: ../sync.c:1079 ../sync.c:1417 #, c-format msgid "Fetching '%s' (Creator ID '%s')... " msgstr "Récupère '%s' (Creator ID '%s')... " #: ../sync.c:1086 ../sync.c:1423 #, c-format msgid "Failed, unable to create file %s\n" msgstr "Échoué, ne peut créer le fichier %s\n" #: ../sync.c:1090 ../sync.c:1428 #, c-format msgid "Failed, unable to back up database %s\n" msgstr "Échoué, ne peut sauvegarder la base de données %s\n" #: ../sync.c:1094 ../sync.c:1432 ../sync.c:1619 msgid "OK\n" msgstr "OK\n" #: ../sync.c:1294 #, c-format msgid "Skipping %s (Creator ID '%s')\n" msgstr "Saute %s (Creator ID '%s')\n" #: ../sync.c:1488 #, c-format msgid "Installing %s " msgstr "Installe %s " #: ../sync.c:1494 ../sync.c:1530 #, c-format msgid "" "\n" "Unable to open file: '%s': %s!\n" msgstr "" "\n" "Ne peut pas ouvrir '%s' : %s !\n" #: ../sync.c:1498 #, c-format msgid "" "\n" "Unable to sync file: '%s': file corrupted?\n" msgstr "" "\n" "Ne peut pas synchroniser '%s' : fichier corrompu ?\n" #: ../sync.c:1514 #, c-format msgid "(Creator ID '%s')... " msgstr "(Creator ID est '%s')... " #: ../sync.c:1518 #, c-format msgid "(Creator ID '%s') " msgstr "(Creator ID est '%s') " #: ../sync.c:1520 #, c-format msgid "(SDcard dir %s)... " msgstr "(répertoire CDcard est '%s')... " #: ../sync.c:1552 ../sync.c:1565 ../sync.c:1580 ../sync.c:1593 #, c-format msgid "" "\n" "Unable to open file: %s\n" msgstr "" "\n" "Impossible d'ouvrir le fichier %s\n" #: ../sync.c:1605 #, c-format msgid "Install %s failed" msgstr "Installation de %s echouée" #: ../sync.c:1609 msgid "Failed.\n" msgstr "Échoué.\n" #: ../sync.c:1615 #, c-format msgid "Installed %s" msgstr "Installé %s" #: ../sync.c:1726 #, c-format msgid "%s:%d Error getting app info %s\n" msgstr "%s:%d Erreur de lecture app info %s\n" #: ../sync.c:1732 ../sync.c:1762 #, c-format msgid "%s:%d Error unpacking app info %s\n" msgstr "%s:%d Erreur décompactage app info %s\n" #: ../sync.c:1753 #, c-format msgid "Error reading appinfo block for %s\n" msgstr "Erreur en lecture bloc appinfo pour %s\n" #. Fix - need a func for this logging #: ../sync.c:1991 ../sync.c:1995 #, c-format msgid "Could not add category %s to remote.\n" msgstr "Impossible d'ajouter la catégorie %s au distant.\n" #: ../sync.c:1992 ../sync.c:1998 #, c-format msgid "Too many categories on remote.\n" msgstr "Trop de catégories sur le distant.\n" #: ../sync.c:1993 ../sync.c:2001 #, c-format msgid "All records on desktop in %s will be moved to %s.\n" msgstr "Tous les enregistrements dans %s seront déplacés vers %s.\n" #: ../sync.c:2096 ../sync.c:2814 #, c-format msgid "Syncing %s\n" msgstr "Synchronise %s\n" #: ../sync.c:2104 ../sync.c:2457 ../sync.c:2822 #, c-format msgid "Wrote an %s record." msgstr "Écrit un enregistrement %s." #: ../sync.c:2106 ../sync.c:2459 ../sync.c:2824 #, c-format msgid "Writing an %s record failed." msgstr "L'écriture d'un enregistrement %s a échoué." #: ../sync.c:2108 ../sync.c:2461 ../sync.c:2826 #, c-format msgid "Deleting an %s record failed." msgstr "La suppression d'un enregistrement %s a échoué." #: ../sync.c:2110 ../sync.c:2463 ../sync.c:2828 #, c-format msgid "Deleted an %s record." msgstr "Supprime un enregistrement %s." #: ../sync.c:2112 ../sync.c:2465 #, c-format msgid "Sync Conflict: duplicated an %s record." msgstr "Conflit de synchronisation : duplication de l'enregistrement %s." #: ../sync.c:2115 ../sync.c:2468 ../sync.c:2831 #, c-format msgid "Wrote a %s record." msgstr "Écrit un enregistrement %s." #: ../sync.c:2117 ../sync.c:2470 ../sync.c:2833 #, c-format msgid "Writing a %s record failed." msgstr "L'écriture d'un enregistrement %s a échoué." #: ../sync.c:2119 ../sync.c:2472 ../sync.c:2835 #, c-format msgid "Deleting a %s record failed." msgstr "La suppression d'un enregistrement %s a échoué." #: ../sync.c:2121 ../sync.c:2474 ../sync.c:2837 #, c-format msgid "Deleted a %s record." msgstr "Supprime un enregistrement %s." #: ../sync.c:2123 ../sync.c:2476 #, c-format msgid "Sync Conflict: duplicated a %s record." msgstr "Conflit de synchronisation : duplication de l'enregistrement %s." #: ../sync.c:2227 ../sync.c:2557 #, c-format msgid "Sync Conflict: a %s record must be manually merged\n" msgstr "" "Conflit de synchronisation : un enregistrement %s doit être fusionné à la " "main\n" #: ../sync.c:2358 ../sync.c:2698 msgid "" "dlp_DeleteRecord failed\n" "This could be because the record was already deleted on the Palm\n" msgstr "" "dlp_DeleteRecord failed\n" "l'enregistrement est peut-être déjà supprimé sur le Palm\n" #: ../sync.c:2927 msgid "Finished installing user information.\n" msgstr "Fin de l'installation des informations utilisateur.\n" #: ../sync.c:3084 #, c-format msgid " Syncing on device %s\n" msgstr " Synchronisation sur %s\n" #: ../sync.c:3085 msgid " Press the HotSync button now\n" msgstr " Appuyez sur le bouton HotSync maintenant\n" #: ../sync.c:3127 ../sync.c:3149 ../sync.c:3170 #, c-format msgid "Last Synced Username-->\"%s\"\n" msgstr "Dernière Sync Username-->\"%s\"\n" #: ../sync.c:3128 ../sync.c:3150 ../sync.c:3171 #, c-format msgid "Last Synced UserID-->\"%d\"\n" msgstr "Dernière Sync UserID-->\"%d\"\n" #: ../sync.c:3129 ../sync.c:3151 ../sync.c:3172 #, c-format msgid " This Username-->\"%s\"\n" msgstr " Ce Username-->\"%s\"\n" #: ../sync.c:3130 ../sync.c:3152 ../sync.c:3173 #, c-format msgid " This User ID-->%d\n" msgstr " Ce User ID-->%d\n" #: ../sync.c:3194 #, c-format msgid "Username is \"%s\"\n" msgstr "Le nom d'utilisateur est \"%s\"\n" #: ../sync.c:3195 #, c-format msgid "User ID is %d\n" msgstr "L'ID utilisateur est %d\n" #: ../sync.c:3197 #, c-format msgid "lastSyncPC = %d\n" msgstr "lastSyncPC = %d\n" #: ../sync.c:3198 #, c-format msgid "This PC = %lu\n" msgstr "Ce PC = %lu\n" #: ../sync.c:3222 msgid "Sync canceled\n" msgstr "Sync annulé\n" #: ../sync.c:3245 msgid "Finished restoring handheld.\n" msgstr "Restauration manuelle terminée.\n" #: ../sync.c:3246 msgid "You may need to sync to update J-Pilot.\n" msgstr "Vous pouvez avoir besoin de synchroniser pour mettre à jour J-Pilot.\n" #: ../sync.c:3268 msgid "Doing a fast sync.\n" msgstr "Effectue une synchronisation rapide.\n" #: ../sync.c:3281 msgid "Doing a slow sync.\n" msgstr "Effectue une synchronisation lente.\n" #: ../sync.c:3356 msgid "Thank you for using J-Pilot." msgstr "Merci d'utiliser J-Pilot." #: ../sync.c:3401 ../sync.c:3469 msgid "Finished.\n" msgstr "Terminé.\n" #: ../sync.c:3436 #, c-format msgid "%s: sync process already in progress (process ID = %d)\n" msgstr "" #: ../sync.c:3437 #, c-format msgid "" "%s: press the HotSync button on the cradle\n" " or stop the sync by using the cancel sync button\n" " or stop the sync by typing \"kill %d\" at the command line\n" msgstr "" "%s : appuyez sur le bouton hotsync\n" " ou arrêtez la synchronisaton avec le bouton d'annulation\n" " ou arrétez la synchronisation en tapant \"kill %d\" sur la ligne de " "comande\n" #: ../sync.c:3468 #, c-format msgid "Exiting with status %s\n" msgstr "Fin avec l'état %s\n" #: ../todo.c:266 #, c-format msgid "ToDo description text > %d, truncating to %d\n" msgstr "Description de la tâche trop longue > %d, coupée à %d\n" #: ../todo.c:272 #, c-format msgid "ToDo note text > %d, truncating to %d\n" msgstr "Note de la tâche trop longue > %d, coupée à %d\n" #: ../todo_gui.c:161 msgid "Due Date" msgstr "Date prévue" #: ../todo_gui.c:532 msgid "File doesn't appear to be todo.dat format\n" msgstr "Le fichier ne semble pas au bon format (todo.dat)\n" #: ../todo_gui.c:596 msgid "DAT/TDA (Palm Archive Formats)" msgstr "" #: ../todo_gui.c:688 #, c-format msgid "" "ToDo exported from %s %s on %s\n" "\n" msgstr "" "ToDo exporté de %s %s le %s\n" "\n" #: ../todo_gui.c:726 #, c-format msgid "Can't export todo %d\n" msgstr "Ne peut exporter tâche %d\n" #: ../todo_gui.c:766 #, c-format msgid "Due Date: None\n" msgstr "Date prévue : Aucune\n" #: ../todo_gui.c:769 #, c-format msgid "Due Date: %s\n" msgstr "Date prévue : %s\n" #: ../todo_gui.c:771 #, c-format msgid "Priority: %d\n" msgstr "Priorité : %d\n" #: ../todo_gui.c:772 #, c-format msgid "Completed: %s\n" msgstr "Terminé : %s\n" #: ../todo_gui.c:774 #, c-format msgid "Description: %s\n" msgstr "Description : %s\n" #: ../todo_gui.c:777 #, c-format msgid "" "Note: %s\n" "\n" msgstr "" "Note : %s\n" "\n" #: ../todo_gui.c:1610 msgid "Priority out of range\n" msgstr "Priorité hors limite\n" #: ../todo_gui.c:1932 ../KeyRing/keyring.c:1310 #, c-format msgid "No date" msgstr "Sans date" #. Completed checkbox #: ../todo_gui.c:2414 msgid "Completed" msgstr "Terminé" #: ../todo_gui.c:2421 msgid "Priority:" msgstr "Priorité : " #: ../todo_gui.c:2423 msgid "Set priority Alt+#" msgstr "" #: ../todo_gui.c:2444 msgid "Date Due:" msgstr "Date prévue : " #: ../utils.c:332 msgid "Today" msgstr "Aujourd'hui" #: ../utils.c:577 #, c-format msgid "Couldn't find empty DB file %s: %s\n" msgstr "Ne peut pas trouver la base vide %s : %s.\n" #: ../utils.c:580 msgid " may not be installed.\n" msgstr " peut ne pas être installé.\n" #. Can't create directory #: ../utils.c:615 ../utils.c:619 #, c-format msgid "Can't create directory %s\n" msgstr "Ne peut créer le répertoire %s\n" #: ../utils.c:625 #, c-format msgid "%s is not a directory\n" msgstr "%s n'est pas un répertoire.\n" #: ../utils.c:630 #, c-format msgid "Unable to get write permission for directory %s\n" msgstr "N'a pas le droit d'écrire dans le répertoire %s\n" #: ../utils.c:1330 ../utils.c:1354 msgid "Save Changed Record?" msgstr "Sauver les enregistrements modifiés ?" #: ../utils.c:1331 ../utils.c:1355 msgid "Do you want to save the changes to this record?" msgstr "Voulez vous sauvegarder les modifications de cet enregistrement ?" #: ../utils.c:1336 ../utils.c:1360 msgid "Save New Record?" msgstr "Sauver nouvel enregistrement ?" #: ../utils.c:1337 ../utils.c:1361 msgid "Do you want to save this new record?" msgstr "Voulez vous sauvegarder ce nouvel enregistrement ?" #: ../utils.c:1652 msgid "infinite loop, breaking\n" msgstr "boucle infinie, annulation\n" #: ../utils.c:1876 #, c-format msgid " -p skip loading plugins\n" msgstr " -p ne charge pas des plugins\n" #: ../utils.c:1877 #, c-format msgid " -a ignore missed alarms since the last time program was run\n" msgstr " -a ignore les alarmes échues depuis la dernière exécution\n" #: ../utils.c:1878 #, c-format msgid " -A ignore all alarms past and future\n" msgstr " -A ignore toutes les alarmes; passées et futures\n" #: ../utils.c:1879 #, c-format msgid " -s start sync using existing instance of GUI\n" msgstr "" #: ../utils.c:1880 #, c-format msgid " -i iconify program immediately after launch\n" msgstr "" #: ../utils.c:1881 #, c-format msgid "" " -geometry {X geometry} use specified geometry for main window\n" "\n" msgstr "" #: ../utils.c:1882 #, c-format msgid " The PILOTPORT and PILOTRATE environment variables specify\n" msgstr " Les variables d'environnement PILOTPORT et PILOTRATE sont utilisées\n" #: ../utils.c:1883 #, c-format msgid " which port to sync on, and at what speed.\n" msgstr " pour spécifier quel port utiliser et quelle vitesse.\n" #: ../utils.c:1884 #, c-format msgid " If PILOTPORT is not set then it defaults to /dev/pilot.\n" msgstr " Si PILOTPORT n'est pas défini alors /dev/pilot est utilisé.\n" #: ../utils.c:1921 msgid "Error reading file" msgstr "Erreur en lisant le fichier" #: ../utils.c:1971 msgid "Date compiled" msgstr "Date de compilation" #: ../utils.c:1972 msgid "Compiled with these options:" msgstr "Compilé avec ces options :" #: ../utils.c:1974 msgid "Installed Path" msgstr "Chemin d'installation" #: ../utils.c:1976 msgid "pilot-link version" msgstr "version de pilot-link" #: ../utils.c:1980 msgid "USB support" msgstr "Support USB" #: ../utils.c:1981 ../utils.c:1984 ../utils.c:1990 ../utils.c:1996 #: ../utils.c:2002 ../utils.c:2008 ../utils.c:2013 msgid "yes" msgstr "oui" #: ../utils.c:1982 msgid "Private record support" msgstr "Support des enregistrements privés" #: ../utils.c:1986 ../utils.c:1992 ../utils.c:1998 ../utils.c:2004 #: ../utils.c:2010 msgid "no" msgstr "non" #: ../utils.c:1988 msgid "Datebk support" msgstr "Support Datebk" #: ../utils.c:1994 msgid "Plugin support" msgstr "Support des greffons" #: ../utils.c:2000 msgid "Manana support" msgstr "Support Mañana" #: ../utils.c:2006 msgid "NLS support (foreign languages)" msgstr "Support NLS (autres langages)" #: ../utils.c:2012 msgid "GTK2 support" msgstr "support GTK2" #. No HOME var #: ../utils.c:2055 msgid "Can't get HOME environment variable\n" msgstr "Ne peut pas récupérer la variable d'environnement HOME\n" #: ../utils.c:2062 msgid "HOME environment variable is too long to process\n" msgstr "Votre variable d'environnement HOME est trop longue\n" #: ../utils.c:2557 msgid "Edit Categories..." msgstr "Edition des Catégories..." #: ../utils.c:3223 msgid "PC ID is 0.\n" msgstr "PC ID est 0.\n" #: ../utils.c:3224 #, c-format msgid "Generated a new PC ID. It is %lu\n" msgstr "Génération d'un nouveau PC ID. C'est %lu\n" #: ../utils.c:3309 msgid "Invalid UTF-8 encoding in export string\n" msgstr "" #: ../utils.c:3470 #, c-format msgid "Today is %A, %x %X" msgstr "Aujourd'hui %A, %x %X" #: ../utils.c:3472 #, c-format msgid "Today is %%A, %s %s" msgstr "Aujourd'hui %%A, %s %s" #: ../utils.c:3701 #, c-format msgid "" "Incorrect header format for CSV import\n" "Check line 1 of file %s\n" "Aborting import\n" msgstr "" #: ../utils.c:3738 #, c-format msgid "Error writing version header to file: %s%s\n" msgstr "Erreur d'écriture de l'entête de version dans le fichier : %s%s\n" #: ../utils.c:3743 #, c-format msgid "Error writing next id to file: %s%s" msgstr "Erreur d'écriture de next id dans le fichier : %s%s" #: ../weekview_gui.c:297 msgid "Weekly View" msgstr "Vue hebdo" #: ../weekview_gui.c:337 msgid "Last week Alt+LeftArrow" msgstr "" #: ../weekview_gui.c:366 msgid "Next week Alt+RightArrow" msgstr "" #: ../Expense/expense.c:97 msgid "Australia" msgstr "Australie" #: ../Expense/expense.c:98 msgid "Austria" msgstr "Autriche" #: ../Expense/expense.c:99 msgid "Belgium" msgstr "Belgique" #: ../Expense/expense.c:100 msgid "Brazil" msgstr "Brésil" #: ../Expense/expense.c:101 msgid "Canada" msgstr "Canada" #: ../Expense/expense.c:102 msgid "Denmark" msgstr "Danemark" #: ../Expense/expense.c:103 msgid "EU (Euro)" msgstr "EU (Euro)" #: ../Expense/expense.c:104 msgid "Finland" msgstr "Finlande" #: ../Expense/expense.c:105 msgid "France" msgstr "France" #: ../Expense/expense.c:106 msgid "Germany" msgstr "Allemagne" #: ../Expense/expense.c:107 msgid "Hong Kong" msgstr "Hong Kong" #: ../Expense/expense.c:108 msgid "Iceland" msgstr "Islande" #: ../Expense/expense.c:109 msgid "India" msgstr "Inde" #: ../Expense/expense.c:110 msgid "Indonesia" msgstr "Indonésie" #: ../Expense/expense.c:111 msgid "Ireland" msgstr "Irlande" #: ../Expense/expense.c:112 msgid "Italy" msgstr "Italie" #: ../Expense/expense.c:113 msgid "Japan" msgstr "Japon" #: ../Expense/expense.c:114 msgid "Korea" msgstr "Corée" #: ../Expense/expense.c:115 msgid "Luxembourg" msgstr "Luxembourg" #: ../Expense/expense.c:116 msgid "Malaysia" msgstr "Malaysie" #: ../Expense/expense.c:117 msgid "Mexico" msgstr "Mexique" #: ../Expense/expense.c:118 msgid "Netherlands" msgstr "Pays Bas" #: ../Expense/expense.c:119 msgid "New Zealand" msgstr "Nouvelle-Zélande" #: ../Expense/expense.c:120 msgid "Norway" msgstr "Norvège" #: ../Expense/expense.c:121 msgid "P.R.C." msgstr "Chine" #: ../Expense/expense.c:122 msgid "Philippines" msgstr "Philippines" #: ../Expense/expense.c:123 msgid "Singapore" msgstr "Singapour" #: ../Expense/expense.c:124 msgid "Spain" msgstr "Espagne" #: ../Expense/expense.c:125 msgid "Sweden" msgstr "Suède" #: ../Expense/expense.c:126 msgid "Switzerland" msgstr "Suisse" #: ../Expense/expense.c:127 msgid "Taiwan" msgstr "Taïwan" #: ../Expense/expense.c:128 msgid "Thailand" msgstr "Thailand" #: ../Expense/expense.c:129 msgid "United Kingdom" msgstr "Royaume Uni" #: ../Expense/expense.c:130 msgid "United States" msgstr "USA" #: ../Expense/expense.c:518 ../Expense/expense.c:529 msgid "Expense" msgstr "Dépenses" #: ../Expense/expense.c:550 ../Expense/expense.c:1388 msgid "Airfare" msgstr "Transport aérien" #: ../Expense/expense.c:552 ../Expense/expense.c:1389 msgid "Breakfast" msgstr "petit déjeuner" #: ../Expense/expense.c:554 ../Expense/expense.c:1390 msgid "Bus" msgstr "Bus" #: ../Expense/expense.c:556 ../Expense/expense.c:1391 msgid "BusinessMeals" msgstr "repas d'affaire" #: ../Expense/expense.c:558 ../Expense/expense.c:1392 msgid "CarRental" msgstr "Location de voiture" #: ../Expense/expense.c:560 ../Expense/expense.c:1393 msgid "Dinner" msgstr "Diner" #: ../Expense/expense.c:562 ../Expense/expense.c:1394 msgid "Entertainment" msgstr "Distraction" #: ../Expense/expense.c:564 ../Expense/expense.c:1395 msgid "Fax" msgstr "Télécopie" #: ../Expense/expense.c:566 ../Expense/expense.c:1396 msgid "Gas" msgstr "Essence" #: ../Expense/expense.c:568 ../Expense/expense.c:1397 msgid "Gifts" msgstr "Cadeaux" #: ../Expense/expense.c:570 ../Expense/expense.c:1398 msgid "Hotel" msgstr "Hôtel" #: ../Expense/expense.c:572 ../Expense/expense.c:1399 msgid "Incidentals" msgstr "Faux-frais" #: ../Expense/expense.c:574 ../Expense/expense.c:1400 msgid "Laundry" msgstr "Blanchisserie" #: ../Expense/expense.c:576 ../Expense/expense.c:1401 msgid "Limo" msgstr "Voiture" #: ../Expense/expense.c:578 ../Expense/expense.c:1402 msgid "Lodging" msgstr "Pension" #: ../Expense/expense.c:580 ../Expense/expense.c:1403 msgid "Lunch" msgstr "Déjeuner" #: ../Expense/expense.c:582 ../Expense/expense.c:1404 msgid "Mileage" msgstr "Kilométrage" #: ../Expense/expense.c:586 ../Expense/expense.c:1406 msgid "Parking" msgstr "Parking" #: ../Expense/expense.c:588 ../Expense/expense.c:1407 msgid "Postage" msgstr "frais d'envois" #: ../Expense/expense.c:590 ../Expense/expense.c:1408 msgid "Snack" msgstr "Snack" #: ../Expense/expense.c:592 ../Expense/expense.c:1409 msgid "Subway" msgstr "Métro" #: ../Expense/expense.c:594 ../Expense/expense.c:1410 msgid "Supplies" msgstr "Subsistance" #: ../Expense/expense.c:596 ../Expense/expense.c:1411 msgid "Taxi" msgstr "Taxi" #: ../Expense/expense.c:598 ../Expense/expense.c:1412 msgid "Telephone" msgstr "Téléphone" #: ../Expense/expense.c:600 ../Expense/expense.c:1413 msgid "Tips" msgstr "Pourboires" #: ../Expense/expense.c:602 ../Expense/expense.c:1414 msgid "Tolls" msgstr "Péages" #: ../Expense/expense.c:604 ../Expense/expense.c:1415 msgid "Train" msgstr "Train" #: ../Expense/expense.c:1239 msgid "Expense: Unknown expense type\n" msgstr "Expense : type de dépense inconnu\n" #: ../Expense/expense.c:1245 msgid "Expense: Unknown payment type\n" msgstr "Expense : type de paiement inconnu\n" #: ../Expense/expense.c:1377 msgid "American Express" msgstr "American Express" #: ../Expense/expense.c:1378 msgid "Cash" msgstr "Espèces" #: ../Expense/expense.c:1379 msgid "Check" msgstr "Chèque" #: ../Expense/expense.c:1380 msgid "Credit Card" msgstr "Carte de crédit" #: ../Expense/expense.c:1381 msgid "Master Card" msgstr "MasterCard/Eurocard" #: ../Expense/expense.c:1382 msgid "Prepaid" msgstr "Prépayé" #: ../Expense/expense.c:1383 msgid "VISA" msgstr "VISA / CB" #: ../Expense/expense.c:1619 msgid "Type" msgstr "Type" #: ../Expense/expense.c:1620 msgid "Amount" msgstr "Montant" #. Category Menu #: ../Expense/expense.c:1704 msgid "Category:" msgstr "Catégorie :" #. Type Menu #: ../Expense/expense.c:1712 msgid "Type:" msgstr "Type :" #. Payment Menu #: ../Expense/expense.c:1720 msgid "Payment:" msgstr "Paiement :" #. Currency Menu #: ../Expense/expense.c:1728 msgid "Currency:" msgstr "Monnaie :" #: ../Expense/expense.c:1748 msgid "Month:" msgstr "Mois :" #: ../Expense/expense.c:1762 msgid "Day:" msgstr "Jour :" #: ../Expense/expense.c:1776 msgid "Year:" msgstr "Année :" #. Amount Entry #: ../Expense/expense.c:1789 msgid "Amount:" msgstr "Montant :" #. Vendor Entry #: ../Expense/expense.c:1799 msgid "Vendor:" msgstr "Vendeur :" #. City #: ../Expense/expense.c:1809 msgid "City:" msgstr "Ville :" #. Attendees #: ../Expense/expense.c:1819 msgid "Attendees" msgstr "Invités" #. ------------------------------------------- #: ../Expense/expense.c:2102 #, c-format msgid "" "%s\n" "\n" "Expense plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org" msgstr "" #: ../KeyRing/keyring.c:291 msgid "KeyRing: pack_KeyRing(): buf_size too small\n" msgstr "KeyRing : pack_KeyRing() : buf_size trop petite\n" #: ../KeyRing/keyring.c:1699 msgid "Incorrect, Reenter KeyRing Password" msgstr "Erreur, Re-entrez le mot de passe KeyRing" #: ../KeyRing/keyring.c:1701 msgid "Enter a NEW KeyRing Password" msgstr "Tapez le NOUVEAU mot de passe KeyRing" #: ../KeyRing/keyring.c:1703 msgid "Enter KeyRing Password" msgstr "Tapez le mot de passe KeyRing" #: ../KeyRing/keyring.c:1769 #, c-format msgid "KeyRing: file %s not found.\n" msgstr "KeyRing : fichier %s non trouvé.\n" #: ../KeyRing/keyring.c:1770 msgid "KeyRing: Try Syncing.\n" msgstr "KeyRing : Essayez de synchroniser.\n" #: ../KeyRing/keyring.c:1861 ../KeyRing/keyring.c:1872 msgid "KeyRing" msgstr "KeyRing" #. ------------------------------------------- #: ../KeyRing/keyring.c:1900 #, c-format msgid "" "%s\n" "\n" "KeyRing plugin for J-Pilot was written by\n" "Judd Montgomery (c) 2001.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "KeyRing is a free PalmOS program for storing\n" "passwords and other information in encrypted form\n" "http://gnukeyring.sourceforge.net" msgstr "" #: ../KeyRing/keyring.c:2137 #, c-format msgid "" "Keys exported from %s %s on %s\n" "\n" msgstr "" "Clés exportés de %s %s le %s\n" "\n" #: ../KeyRing/keyring.c:2162 #, c-format msgid "Can't export key %d\n" msgstr "Imposible d'exporter la clé %d\n" #: ../KeyRing/keyring.c:2229 msgid "B-FOLDERS CSV" msgstr "" #. Change Password button #: ../KeyRing/keyring.c:2384 msgid "" "Change\n" "KeyRing\n" "Password" msgstr "" "Changer\n" "KeyRing\n" "Mot de passe" #. Clist #: ../KeyRing/keyring.c:2497 msgid "Changed" msgstr "Modifié" #: ../KeyRing/keyring.c:2499 msgid "Account" msgstr "Compte" #. Name entry #: ../KeyRing/keyring.c:2593 msgid "name: " msgstr "nom : " #. Account entry #: ../KeyRing/keyring.c:2601 msgid "account: " msgstr "compte : " #. Password entry #: ../KeyRing/keyring.c:2609 msgid "password: " msgstr "Mot de passe : " #. Last Changed entry #: ../KeyRing/keyring.c:2616 msgid "last changed: " msgstr "dernier changement : " #. Generate Password button (creates random password) #: ../KeyRing/keyring.c:2626 msgid "Generate Password" msgstr "Génération d'un mot de passe" #: ../SyncTime/synctime.c:61 msgid "SyncTime" msgstr "SyncTime" #. ------------------------------------------- #: ../SyncTime/synctime.c:72 #, c-format msgid "" "%s\n" "\n" "SyncTime plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "SyncTime WILL NOT work with PalmOS 3.3!" msgstr "" #: ../SyncTime/synctime.c:106 msgid "synctime: Palm OS Version 3.25 and 3.30 do not support SyncTime\n" msgstr "synctime: Palm OS versions 3.25 et 3.30 ne supportent pas SyncTime\n" #: ../SyncTime/synctime.c:107 msgid "synctime: NOT setting the time on the pilot\n" msgstr "synctime: PAS de mise à l'heure du pilot\n" #: ../SyncTime/synctime.c:112 msgid "synctime: Setting the time on the pilot... " msgstr "synctime: Mise à l'heure du pilot..." #: ../SyncTime/synctime.c:117 msgid "Done\n" msgstr "Fait\n" #~ msgid "Serial Port" #~ msgstr "Port série" #~ msgid " -i makes program iconify itself upon launch.\n" #~ msgstr " -i iconifie jpilot au lancement.\n" #~ msgid "Your HOME environment variable is too long(>1024)\n" #~ msgstr "Votre variable d'environnement HOME est trop longue (>1024)\n" #~ msgid "W" #~ msgstr "S" #~ msgid "M" #~ msgstr "M" #~ msgid "This Event has no particular time" #~ msgstr "Cet évènement n'a pas d'heure définie" #~ msgid "Start Time" #~ msgstr "Heure de début" #~ msgid "End Time" #~ msgstr "Heure de fin" #~ msgid "email command empty\n" #~ msgstr "Commande d'envoi de mél vide\n" #~ msgid "Unable to open %s%s file\n" #~ msgstr "Impossible d'ouvrir le fichier %s%s\n" #~ msgid "Unable to open %s.alarms file\n" #~ msgstr "Impossible d'ouvrir le fichier %s.alarms\n" #~ msgid "You can't edit category %s.\n" #~ msgstr "Impossible de modifier la catégorie %s.\n" #~ msgid "You can't delete category %s.\n" #~ msgstr "La catégorie %s ne peut pas être supprimée.\n" #~ msgid "category name" #~ msgstr "Catégorie" #~ msgid "debug" #~ msgstr "debug" #~ msgid "End Date: Never\n" #~ msgstr "Date de fin : jamais\n" #, fuzzy #~ msgid "Repeat Days: " #~ msgstr "Répété les jours :" #~ msgid "Close" #~ msgstr "Fermer" #~ msgid "none" #~ msgstr "aucun" #~ msgid "Unknown repeatType found in DatebookDB\n" #~ msgstr "repeatType inconnu trouvé dans DatebookDB\n" #~ msgid "Dismiss" #~ msgstr "Annuler" #~ msgid "Done" #~ msgstr "Valider" #~ msgid "Add" #~ msgstr "Ajouter" #~ msgid "Remove" #~ msgstr "Supprimer" #~ msgid "User name" #~ msgstr "Nom d'utilisateur" #~ msgid " -v = version\n" #~ msgstr " -v = version\n" #~ msgid " -h = help\n" #~ msgstr " -h = aide\n" #~ msgid " -d = run in debug mode\n" #~ msgstr " -d = mode débug\n" #~ msgid " -P = do not load plugins.\n" #~ msgstr " -P = ne pas charger les plugins\n" #~ msgid " -b = Do a sync and then a backup, otherwise just do a sync.\n" #~ msgstr "" #~ " -b = synchroniser et faire une sauveragde, sinon juste synchroniser.\n" #~ msgid "Invalid geometry specification: \"%s\"\n" #~ msgstr "Spécification de géométrie invalide : \"%s\"\n" #~ msgid "/Help/PayBack program" #~ msgstr "/Aide/PayBack program" #~ msgid "Font Selection Dialog" #~ msgstr "Boîte de choix de police" #~ msgid "Show private records" #~ msgstr "Montrer les enregistrements privés" #~ msgid "Hide private records" #~ msgstr "Cacher les enregistrements privés" #~ msgid "Mask private records" #~ msgstr "Masquer les enregistrements privés" #~ msgid "Font" #~ msgstr "Police" #~ msgid "Go to the menu \"" #~ msgstr "Allez dans le menu \"" #~ msgid "\" and change the \"" #~ msgstr "\" et changez le \"" #~ msgid "\"." #~ msgstr "\"." #~ msgid "Couldn't open PC records file\n" #~ msgstr "Ne peut pas ouvrir le fichier des enregistrements\n" #~ msgid "The first day of the week is " #~ msgstr "Le premier jour de la semaine est " #~ msgid "One record" #~ msgstr "Un enregistement" #~ msgid "Finished\n" #~ msgstr "Terminé\n" #~ msgid "Last Username = [%s]\n" #~ msgstr "Dernier Username = [%s]\n" #~ msgid "Last UserID = %d\n" #~ msgstr "dernier UserID = %d\n" #~ msgid "Username = [%s]\n" #~ msgstr "Username = [%s]\n" #~ msgid "userID = %d\n" #~ msgstr "userID = %d\n" #~ msgid "number of records = %d\n" #~ msgstr "Nombre d'enregistrements = %d\n" #~ msgid "palm: number of records = %d\n" #~ msgstr "palm : nombre d'enregistrements = %d\n" #~ msgid "disk: number of records = %d\n" #~ msgstr "disque : nombre d'enregistrements = %d\n" #, fuzzy #~ msgid "Your HOME environment variable is too long for me\n" #~ msgstr "Votre variable d'environnement HOME est trop longue (>1024)\n" #~ msgid "" #~ "%s doesn't appear to be a directory.\n" #~ "I need it to be.\n" #~ msgstr "" #~ "%s n'est pas un répertoire.\n" #~ "Il devrait l'être.\n" #, fuzzy #~ msgid "I can't write files in directory %s\n" #~ msgstr "Ne peut créer le répertoire %s\n" #~ msgid "Expense: Unknown category\n" #~ msgstr "Expense : catégorie inconnue\n" #~ msgid "Field" #~ msgstr "Champ" #~ msgid "Serial Port (/dev/ttyS0, /dev/pilot)" #~ msgstr "port série (/dev/ttyS0, /dev/pilot)" #~ msgid "My Palm has the Address application" #~ msgstr "Mon Palm a l'application Address" #~ msgid "My Palm has the Contacts application" #~ msgstr "Mon Palm a l'application Contacts" #~ msgid "Sync memo32 (pedit32)" #~ msgstr "Sync memo32 (pedit32)" #~ msgid "kana(" #~ msgstr "kana(" #~ msgid "Quick View" #~ msgstr "Affichage rapide" #~ msgid "Serial Rate (Does not affect USB)" #~ msgstr "Vitesse port série (sans effet pour USB)" #~ msgid "AmEx" #~ msgstr "Amex" #~ msgid "CreditCard" #~ msgstr "Carte de crédit" #~ msgid "MasterCard" #~ msgstr "MasterCard/Eurocard" #~ msgid "Quit" #~ msgstr "Quitter" #~ msgid "Help" #~ msgstr "Aide" #~ msgid "Directory" #~ msgstr "Répertoire" #~ msgid "Overwrite File" #~ msgstr "Écrase le fichier" #~ msgid "Filename" #~ msgstr "Nom de fichier" #~ msgid "Answer: " #~ msgstr "Réponse : " #~ msgid "Sync" #~ msgstr "Sync" #~ msgid " -p do not load plugins.\n" #~ msgstr " -p ne charge pas les greffons.\n" #~ msgid "Copy the record Ctrl+O" #~ msgstr "Copie l'enregistrement Ctrl+O" #~ msgid "Add a new record Ctrl+N" #~ msgstr "Ajouter un nouvel enregistrement Ctrl+N" #~ msgid "Add the new record Ctrl+Enter" #~ msgstr "Ajouter le nouvel enregistrement Ctrl+Enter" #~ msgid "Commit the modifications Ctrl+Enter" #~ msgstr "Appliquer les modifications Ctrl+Entrée" #~ msgid "Backup" #~ msgstr "Sauver" jpilot-1.8.1.2/po/da.po0000644000175000017500000026207611702307203011455 00000000000000# J-Pilot på dansk/J-Pilot in Danish # Copyright (C) 2001 Free Software Foundation, Inc. # Keld Simonsen , 2001. # Joe Hansen , 2010. # # Datebook -> aftalebog # mask -> maskere # memo -> notat # ToDos -> huskelister (huskeseddel) # msgid "" msgstr "" "Project-Id-Version: jpilot 1.8.0\n" "Report-Msgid-Bugs-To: jpilot-devel@jpilot.org\n" "POT-Creation-Date: 2012-01-08 13:39+0100\n" "PO-Revision-Date: 2010-04-01 01:01I+0200\n" "Last-Translator: Joe Hansen \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../address.c:276 ../address.c:448 ../alarms.c:332 ../calendar.c:309 #: ../calendar.c:547 ../contact.c:324 ../contact.c:738 ../dat.c:189 #: ../dat.c:655 ../dat.c:859 ../dat.c:993 ../dat.c:1132 ../datebook.c:130 #: ../datebook.c:165 ../datebook.c:172 ../datebook.c:231 ../jpilot.c:1254 #: ../jpilot-merge.c:95 ../libplugin.c:208 ../libplugin.c:455 #: ../libplugin.c:534 ../libplugin.c:563 ../libplugin.c:811 ../memo.c:214 #: ../memo.c:287 ../otherconv.c:280 ../plugins.c:112 ../prefs.c:350 #: ../prefs.c:375 ../prefs.c:906 ../sync.c:2170 ../sync.c:2187 ../sync.c:2296 #: ../sync.c:2310 ../sync.c:2507 ../sync.c:2646 ../todo.c:236 ../todo.c:490 #: ../utils.c:748 #, c-format msgid "Out of memory" msgstr "Ikke nok hukommelse" #: ../address.c:332 ../calendar.c:230 ../contact.c:580 ../datebook.c:494 #: ../memo.c:87 ../todo.c:90 #, fuzzy, c-format msgid "%s:%d Error reading application info %s\n" msgstr "%s:%d Fejl ved læsning af kategoriinformation %s\n" #: ../address.c:344 ../address_gui.c:2285 ../address_gui.c:2324 #: ../calendar.c:246 ../contact.c:596 ../datebook.c:514 ../datebook_gui.c:3737 #: ../libplugin.c:405 ../libplugin.c:431 ../memo.c:99 ../memo_gui.c:863 #: ../todo_gui.c:1070 ../Expense/expense.c:1105 #, c-format msgid "Error reading file: %s\n" msgstr "Fejl ved læsning af fil: %s\n" #: ../address.c:492 ../calendar.c:598 ../calendar.c:607 ../contact.c:780 #: ../libplugin.c:846 ../memo.c:353 ../todo.c:302 ../utils.c:1124 #: ../utils.c:1131 ../utils.c:1138 ../utils.c:1145 ../utils.c:1152 #: ../utils.c:1159 msgid "error" msgstr "fejl" #: ../address_gui.c:325 ../datebook_gui.c:2844 ../memo_gui.c:176 #: ../todo_gui.c:292 ../KeyRing/keyring.c:834 msgid "" "This record is deleted.\n" "Undelete it or copy it to make changes.\n" msgstr "" "Denne post er slettet.\n" "Gendan den eller kopier den for at foretage ændringer.\n" #: ../address_gui.c:452 ../address_gui.c:458 ../address_gui.c:469 #: ../address_gui.c:481 ../address_gui.c:493 ../address_gui.c:506 #, c-format msgid "%s%s: %s" msgstr "%s%s: %s" #: ../address_gui.c:542 ../category.c:118 ../category.c:176 ../category.c:330 #: ../category.c:336 ../datebook_gui.c:430 ../jpilot-merge.c:88 #: ../jpilot-merge.c:146 ../jpilot-merge.c:151 ../memo_gui.c:280 #: ../sync.c:2129 ../sync.c:2135 ../sync.c:2481 ../sync.c:2842 #: ../todo_gui.c:416 ../utils.c:2674 ../utils.c:2711 ../utils.c:2717 #: ../utils.c:2776 ../utils.c:2782 ../utils.c:2836 ../utils.c:2890 #: ../utils.c:2896 ../utils.c:2954 ../utils.c:2961 #, c-format msgid "Unable to open file: %s\n" msgstr "Kan ikke åbne filen: %s\n" #: ../address_gui.c:561 #, fuzzy, c-format msgid "Unable to read file: %s\n" msgstr "Kan ikke åbne filen: %s\n" #: ../address_gui.c:715 msgid "File doesn't appear to be address.dat format\n" msgstr "Filen lader ikke til at være i formatet address.dat\n" #: ../address_gui.c:725 ../datebook_gui.c:647 ../memo_gui.c:324 #: ../memo_gui.c:417 ../todo_gui.c:542 ../Expense/expense.c:1384 msgid "Unfiled" msgstr "Ikke gemt" #: ../address_gui.c:781 ../datebook_gui.c:698 ../memo_gui.c:470 #: ../todo_gui.c:595 msgid "CSV (Comma Separated Values)" msgstr "CSV (kommaadskilte værdier)" #: ../address_gui.c:782 msgid "DAT/ABA (Palm Archive Formats)" msgstr "DAT/ABA (Palm Archive-formater)" #. current category name #. previous category name #. entry text, in Pilot character set #: ../address_gui.c:868 ../category.c:408 ../datebook_gui.c:729 #: ../jpilot.c:234 ../jpilot.c:278 ../jpilot.c:352 ../jpilot.c:396 #: ../jpilot.c:953 ../memo_gui.c:506 ../todo_gui.c:635 ../utils.c:1305 #: ../KeyRing/keyring.c:2090 msgid "OK" msgstr "O.k." #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "No" msgstr "Nej" #: ../address_gui.c:869 ../address_gui.c:1011 ../datebook_gui.c:362 #: ../datebook_gui.c:390 ../datebook_gui.c:730 ../memo_gui.c:507 #: ../memo_gui.c:633 ../todo_gui.c:636 ../todo_gui.c:764 ../todo_gui.c:772 #: ../utils.c:1322 ../utils.c:1346 ../KeyRing/keyring.c:2091 msgid "Yes" msgstr "Ja" #: ../address_gui.c:888 ../datebook_gui.c:753 ../memo_gui.c:520 #: ../todo_gui.c:655 ../KeyRing/keyring.c:2104 #, c-format msgid "%s is a directory" msgstr "%s er en mappe" #: ../address_gui.c:890 ../address_gui.c:907 ../datebook_gui.c:755 #: ../datebook_gui.c:772 ../memo_gui.c:522 ../memo_gui.c:539 ../todo_gui.c:657 #: ../todo_gui.c:674 ../KeyRing/keyring.c:2106 ../KeyRing/keyring.c:2123 msgid "Error Opening File" msgstr "Fejl ved åbning af fil" #: ../address_gui.c:894 ../datebook_gui.c:759 ../memo_gui.c:526 #: ../todo_gui.c:661 ../KeyRing/keyring.c:2110 #, c-format msgid "Do you want to overwrite file %s?" msgstr "Ønsker du at overskrive filen %s?" #: ../address_gui.c:896 ../datebook_gui.c:761 ../memo_gui.c:528 #: ../todo_gui.c:663 ../KeyRing/keyring.c:2112 msgid "Overwrite File?" msgstr "Overskriv fil?" #: ../address_gui.c:905 ../datebook_gui.c:770 ../memo_gui.c:537 #: ../todo_gui.c:672 ../KeyRing/keyring.c:2121 #, c-format msgid "Error opening file: %s" msgstr "Fejl ved åbning af fil: %s" #: ../address_gui.c:922 #, c-format msgid "" "Address exported from %s %s on %s\n" "\n" msgstr "" "Adresse eksporteret fra %s %s den %s\n" "\n" #: ../address_gui.c:925 #, c-format msgid "" "Contact exported from %s %s on %s\n" "\n" msgstr "" "Kontakt eksporteret fra %s %s den %s\n" "\n" #: ../address_gui.c:989 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ldif file may not be standards-compliant\n" msgstr "" "Værttegnskodning er ikke baseret på UTF-8.\n" " Eksporteret ldif-fil er måske ikke forenelig med standard\n" #: ../address_gui.c:1002 #, c-format msgid "Can't export address %d\n" msgstr "Kan ikke eksportere adresse %d\n" #: ../address_gui.c:1008 ../memo_gui.c:630 ../todo_gui.c:760 #, c-format msgid "Category: %s\n" msgstr "Kategori: %s\n" #: ../address_gui.c:1010 ../memo_gui.c:632 ../todo_gui.c:763 #, c-format msgid "Private: %s\n" msgstr "Privat: %s\n" #: ../address_gui.c:1018 ../address_gui.c:1032 ../address_gui.c:1036 #: ../address_gui.c:1045 ../address_gui.c:1048 #, c-format msgid "%s: " msgstr "%s: " #: ../address_gui.c:1022 #, c-format msgid "%s\n" msgstr "%s\n" #. E-mail should be the Palm dropdown menu item for email #. Set dial/email button text and callback data #: ../address_gui.c:1196 ../address_gui.c:2846 ../address_gui.c:4185 msgid "E-mail" msgstr "E-post" #: ../address_gui.c:1482 ../datebook_gui.c:1147 ../memo_gui.c:640 #: ../todo_gui.c:844 ../KeyRing/keyring.c:2214 msgid "Unknown export type\n" msgstr "Ukendt eksporttype\n" #: ../address_gui.c:1508 ../datebook_gui.c:1226 ../memo_gui.c:469 #: ../memo_gui.c:666 ../todo_gui.c:870 ../KeyRing/keyring.c:2229 msgid "Text" msgstr "Tekst" #: ../address_gui.c:1509 ../datebook_gui.c:1227 ../memo_gui.c:667 #: ../todo_gui.c:871 ../KeyRing/keyring.c:2229 msgid "CSV" msgstr "CSV" #: ../address_gui.c:1510 msgid "vCard" msgstr "vCard" #: ../address_gui.c:1511 msgid "vCard (Optimized for Gmail/Android Import)" msgstr "" #: ../address_gui.c:1512 msgid "ldif" msgstr "ldif" #. Initialize variable if default case taken #: ../address_gui.c:1777 ../address_gui.c:3902 msgid "Last Name/Company" msgstr "Efternavn/firma" #: ../address_gui.c:1780 ../address_gui.c:3905 msgid "First Name/Company" msgstr "Fornavn/firma" #: ../address_gui.c:1783 ../address_gui.c:3908 msgid "Company/Last Name" msgstr "Firma/efternavn" #: ../address_gui.c:1920 ../datebook_gui.c:2907 ../memo_gui.c:1036 #: ../todo_gui.c:1329 ../KeyRing/keyring.c:1181 msgid "You can't modify a record that is deleted\n" msgstr "Du kan ikke ændre en post som er slettet\n" #. Illegal category, Assume that category 0 is Unfiled and valid #: ../address_gui.c:2119 ../address_gui.c:2370 ../address_gui.c:2803 #: ../address_gui.c:2809 ../address_gui.c:3601 ../datebook_gui.c:1994 #: ../datebook_gui.c:3434 ../datebook_gui.c:3783 ../datebook_gui.c:4074 #: ../memo_gui.c:900 ../memo_gui.c:946 ../memo_gui.c:1161 ../memo_gui.c:1548 #: ../todo_gui.c:1106 ../todo_gui.c:1200 ../todo_gui.c:1589 ../todo_gui.c:2141 #: ../Expense/expense.c:689 ../Expense/expense.c:1143 #: ../Expense/expense.c:1227 ../Expense/expense.c:1887 #: ../KeyRing/keyring.c:1070 ../KeyRing/keyring.c:1512 #: ../KeyRing/keyring.c:1574 ../KeyRing/keyring.c:2688 msgid "Category is not legal\n" msgstr "Kategori er ikke lovlig\n" #: ../address_gui.c:2179 ../alarms.c:598 ../dialer.c:164 #, c-format msgid "executing command = [%s]\n" msgstr "udfører kommando = [%s]\n" #: ../address_gui.c:2181 #, fuzzy, c-format msgid "Failed to execute [%s]\n" msgstr "Fejlede, kunne ikke oprette filen %s\n" #: ../address_gui.c:2425 msgid "Birthday" msgstr "Fødselsdag" #: ../address_gui.c:2521 msgid "External program not found, or other error" msgstr "Eksternt program ikke fundet, eller en anden fejl" #: ../address_gui.c:2523 msgid "" "J-Pilot can not find the external program \"convert\"\n" "or an error occurred while executing convert.\n" "You may need to install package ImageMagick" msgstr "" "J-Pilot kan ikke finde det eksterne program »convert«\n" "eller en fejl opstod under kørsel af convert.\n" "Du skal måske installere pakken imageMagick" #: ../address_gui.c:2524 #, c-format msgid "Command executed was \"%s\"\n" msgstr "Kommando udført var »%s«\n" #: ../address_gui.c:2525 #, c-format msgid "return code was %d\n" msgstr "returkode var %d\n" #: ../address_gui.c:2603 #, fuzzy msgid "chdir() failed\n" msgstr "låsning mislykkedes.\n" #: ../address_gui.c:2606 msgid "Add Photo" msgstr "Tilføj billede" #. Category menu #: ../address_gui.c:2828 ../KeyRing/keyring.c:2585 msgid "Category: " msgstr "Kategori: " #: ../address_gui.c:2848 ../address_gui.c:4186 msgid "Mail" msgstr "Post" #. Dial Phone Button #: ../address_gui.c:2851 ../address_gui.c:4189 ../dialer.c:307 ../dialer.c:331 msgid "Dial" msgstr "Ring" #: ../address_gui.c:3041 ../datebook_gui.c:2757 ../memo_gui.c:1228 #: ../todo_gui.c:1697 msgid "Could not get temporary file name\n" msgstr "" #: ../address_gui.c:3049 ../datebook_gui.c:2765 ../memo_gui.c:1236 #: ../todo_gui.c:1705 msgid "Could not open temporary file for external editor\n" msgstr "" #: ../address_gui.c:3089 ../datebook_gui.c:2806 ../memo_gui.c:1277 #: ../todo_gui.c:1746 msgid "Could not open temporary file from external editor\n" msgstr "" #: ../address_gui.c:3261 ../address_gui.c:3292 msgid "-Unnamed-" msgstr "-Navnløs-" #: ../address_gui.c:3374 ../memo_gui.c:1454 ../todo_gui.c:2019 msgid "0 records" msgstr "0 poster" #: ../address_gui.c:3377 ../datebook_gui.c:2637 ../memo_gui.c:1457 #: ../todo_gui.c:2022 #, c-format msgid "%d of %d records" msgstr "%d af %d poster" #: ../address_gui.c:3772 ../address_gui.c:3780 ../KeyRing/keyring.c:2498 msgid "Name" msgstr "Navn" #: ../address_gui.c:3773 ../address_gui.c:3774 ../address_gui.c:3775 #: ../address_gui.c:3781 msgid "Address" msgstr "Adresse" #: ../address_gui.c:3776 ../address_gui.c:3782 ../Expense/expense.c:584 #: ../Expense/expense.c:1405 msgid "Other" msgstr "Andre oplysninger" #. Note textbox #: ../address_gui.c:3777 ../address_gui.c:3783 ../todo_gui.c:2484 #: ../Expense/expense.c:1836 ../KeyRing/keyring.c:2632 msgid "Note" msgstr "Notat" #: ../address_gui.c:3793 msgid "Reverting to Address database\n" msgstr "Forkaster til adressedatabase\n" #: ../address_gui.c:3914 msgid "Phone" msgstr "Telefon" #: ../address_gui.c:3946 msgid "Quick Find: " msgstr "Hurtig søgning: " #. Cancel button #. Add record modification buttons #. Cancel button #: ../address_gui.c:3964 ../category.c:409 ../datebook_gui.c:1782 #: ../datebook_gui.c:5124 ../memo_gui.c:1692 ../todo_gui.c:2345 #: ../utils.c:1346 ../KeyRing/keyring.c:2528 msgid "Cancel" msgstr "Annuller" #: ../address_gui.c:3964 ../datebook_gui.c:5124 ../memo_gui.c:1692 #: ../todo_gui.c:2345 ../KeyRing/keyring.c:2528 msgid "Cancel the modifications" msgstr "Afbryd ændringerne" #. Delete Button #. Delete button #. Delete Button #. Delete button #. Delete, Copy, New, etc. buttons #. Delete button #: ../address_gui.c:3969 ../category.c:409 ../category.c:852 #: ../datebook_gui.c:5129 ../memo_gui.c:1697 ../todo_gui.c:2350 #: ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete" msgstr "Slet" #: ../address_gui.c:3969 ../datebook_gui.c:5129 ../memo_gui.c:1697 #: ../todo_gui.c:2350 ../Expense/expense.c:1663 ../KeyRing/keyring.c:2533 msgid "Delete the selected record" msgstr "Slet den valgte post" #. Undelete Button #. Undelete button #. Undelete Button #. Undelete button #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 msgid "Undelete" msgstr "Fortryd sletning" #: ../address_gui.c:3975 ../datebook_gui.c:5135 ../memo_gui.c:1703 #: ../todo_gui.c:2356 ../KeyRing/keyring.c:2539 msgid "Undelete the selected record" msgstr "Fortryd sletning af den valgte post" #. Copy button #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy" msgstr "Kopier" #: ../address_gui.c:3981 ../datebook_gui.c:5141 ../memo_gui.c:1709 #: ../todo_gui.c:2362 ../Expense/expense.c:1668 ../KeyRing/keyring.c:2545 msgid "Copy the selected record" msgstr "Kopier den valgte post" #. New button #. New Record button #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "New Record" msgstr "Ny post" #: ../address_gui.c:3987 ../datebook_gui.c:5147 ../memo_gui.c:1715 #: ../todo_gui.c:2368 ../Expense/expense.c:1673 ../KeyRing/keyring.c:2551 msgid "Add a new record" msgstr "Tilføj en ny post" #. "Add Record" button #. Add Record button #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add Record" msgstr "Tilføj post" #: ../address_gui.c:3992 ../datebook_gui.c:5153 ../memo_gui.c:1721 #: ../todo_gui.c:2374 ../Expense/expense.c:1678 ../KeyRing/keyring.c:2557 msgid "Add the new record" msgstr "Tilføj den nye post" #. "Apply Changes" button #. Apply Changes button #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Apply Changes" msgstr "Udfør ændringer" #: ../address_gui.c:4002 ../datebook_gui.c:5163 ../memo_gui.c:1731 #: ../todo_gui.c:2384 ../Expense/expense.c:1687 ../KeyRing/keyring.c:2566 msgid "Commit the modifications" msgstr "Indsend ændringerne" #. Private check box #. Private checkbox #: ../address_gui.c:4033 ../datebook_gui.c:5191 ../datebook_gui.c:5233 #: ../memo_gui.c:1747 ../todo_gui.c:2410 msgid "Private" msgstr "Privat" #: ../address_gui.c:4118 msgid "Change Photo" msgstr "Ændr billede" #: ../address_gui.c:4123 msgid "Remove Photo" msgstr "Fjern billede" #: ../address_gui.c:4195 msgid "Show In List" msgstr "Vis i liste" #: ../address_gui.c:4296 msgid "Reminder" msgstr "Påmindelse" #: ../address_gui.c:4312 ../datebook_gui.c:238 ../datebook_gui.c:5221 #: ../datebook_gui.c:5378 msgid "Days" msgstr "Dage" #. The Quickview (ALL) page #. All button #: ../address_gui.c:4356 ../datebook_gui.c:1478 ../datebook_gui.c:1782 #: ../utils.c:2528 msgid "All" msgstr "Alt" #: ../alarms.c:232 ../datebook_gui.c:236 ../datebook_gui.c:5215 #: ../datebook_gui.c:5372 msgid "Minutes" msgstr "Minutter" #: ../alarms.c:234 ../datebook_gui.c:237 ../datebook_gui.c:5219 #: ../datebook_gui.c:5376 msgid "Hours" msgstr "Timer" #: ../alarms.c:255 msgid "Remind me" msgstr "Påmindelse" #: ../alarms.c:425 ../alarms.c:991 ../sync.c:1639 ../sync.c:1645 #: ../utils.c:3717 #, c-format msgid "Unable to open file: %s%s\n" msgstr "Kan ikke åbne filen: %s%s\n" #: ../alarms.c:512 msgid "Appointment Reminder" msgstr "Påmindelse om aftale" #: ../alarms.c:515 msgid "Past Appointment" msgstr "Tidligere aftale" #: ../alarms.c:518 msgid "Postponed Appointment" msgstr "Udsat aftale" #: ../alarms.c:521 ../datebook_gui.c:5025 msgid "Appointment" msgstr "Aftale" #: ../alarms.c:605 msgid "J-Pilot Alarm" msgstr "J-Pilot-alarm" #: ../category.c:131 ../category.c:188 ../sync.c:2158 ../sync.c:2495 msgid "PC file corrupt?\n" msgstr "Er pc-filen beskadiget?\n" #: ../category.c:138 ../category.c:148 ../category.c:196 ../category.c:206 #: ../category.c:216 ../sync.c:2280 ../sync.c:2334 ../sync.c:2371 #: ../sync.c:2386 ../sync.c:2410 ../sync.c:2630 ../sync.c:2675 ../sync.c:2712 #: ../sync.c:2725 ../sync.c:2750 msgid "fseek failed - fatal error\n" msgstr "fseek mislykkedes - alvorlig fejl\n" #: ../category.c:364 ../utils.c:2738 ../utils.c:2812 ../utils.c:2916 #: ../utils.c:2981 msgid "rename failed" msgstr "omdøbning mislykkedes" #: ../category.c:409 msgid "Move" msgstr "Flyt" #: ../category.c:438 ../category.c:500 ../category.c:580 ../category.c:769 msgid "Edit Categories" msgstr "Rediger kategorier" #: ../category.c:439 msgid "The maximum number of categories (16) are already used" msgstr "Det maksimale antal kategorier (16) er alleree brugt" #: ../category.c:442 msgid "Enter New Category" msgstr "Indtast ny kategori" #: ../category.c:453 ../category.c:477 msgid "Edit Categories Error" msgstr "Rediger kategorifejl" #: ../category.c:454 msgid "You must select a category to rename" msgstr "Du skal vælge en kategori der skal omdøbes" #: ../category.c:463 msgid "Enter New Category Name" msgstr "Indtast nyt kategorinavn" #: ../category.c:478 msgid "You must select a category to delete" msgstr "Du skal vælge en kategori til sletning" #: ../category.c:496 #, c-format msgid "" "There are %d records in %s.\n" "Do you want to move them to %s, or delete them?" msgstr "" "Der er %d poster i %s.\n" "Ønsker du at flytte dem til %s, eller slette dem?" #: ../category.c:556 #, c-format msgid "invalid state file %s line %d\n" msgstr "ugyldig state-fil %s linje %d\n" #: ../category.c:578 #, c-format msgid "The category %s can't be used more than once" msgstr "Kategorien %s kan ikke bruges mere end en gang" #. Category names in host character set #: ../category.c:735 msgid "Category" msgstr "Kategori" #: ../category.c:836 msgid "New" msgstr "Ny" #: ../category.c:843 msgid "Rename" msgstr "Omdøb" #: ../dat.c:456 msgid "unknown type =" msgstr "ukendt type =" #: ../dat.c:537 #, c-format msgid "fields per row count != %d, unknown format\n" msgstr "felter per rækkeoptælling != %d, ukendt format\n" #: ../dat.c:551 #, c-format msgid "field count != %d, unknown format\n" msgstr "feltoptælling != %d, ukendt format\n" #: ../dat.c:559 msgid "Unknown format, file has wrong schema\n" msgstr "Ukendt format, fil har forkert skema\n" #: ../dat.c:560 msgid "File schema is:" msgstr "Filskema er:" #: ../dat.c:564 msgid "It should be:" msgstr "Det bør være:" #: ../dat.c:674 ../dat.c:692 ../dat.c:876 ../dat.c:889 ../dat.c:1012 #: ../dat.c:1025 ../dat.c:1149 ../dat.c:1162 #, c-format msgid "%s:%d Record %d, field %d: Invalid type. Expected %d, found %d\n" msgstr "%s:%d post %d, felt %d: ugyldig type. Forventede %d, fandt %d\n" #: ../dat.c:675 ../dat.c:693 ../dat.c:877 ../dat.c:890 ../dat.c:994 #: ../dat.c:1013 ../dat.c:1026 ../dat.c:1150 ../dat.c:1163 msgid "read of file terminated\n" msgstr "læsning af fil afsluttet\n" #: ../datebook.c:705 ../datebook_gui.c:3648 #, c-format msgid "Unknown repeatType (%d) found in DatebookDB\n" msgstr "Ukendt gentagelsestype (%d) fundet i DatebookDB\n" #: ../datebook_gui.c:241 msgid "Repeat Never" msgstr "Gentag aldrig" #: ../datebook_gui.c:242 msgid "Repeat Daily" msgstr "Gentag dagligt" #: ../datebook_gui.c:243 msgid "Repeat Weekly" msgstr "Gentag ugeligt" #: ../datebook_gui.c:244 msgid "Repeat MonthlyByDay" msgstr "Gentag månedligt per dag" #: ../datebook_gui.c:245 msgid "Repeat MonthlyByDate" msgstr "Gentag månedligt per dato" #: ../datebook_gui.c:246 msgid "Repeat YearlyDate" msgstr "Gentag årligt per dato" #: ../datebook_gui.c:247 msgid "Repeat YearlyDay" msgstr "Gentag årligt per dag" # These days of the week are put in the buttons above the calendar and # the little buttons in the repeat weekly window. # They should be one letter if possible. The English ones get truncated to # one letter. #: ../datebook_gui.c:250 ../datebook_gui.c:257 ../datebook_gui.c:4803 #: ../datebook_gui.c:4810 msgid "Su" msgstr "sø" #: ../datebook_gui.c:251 ../datebook_gui.c:4804 msgid "Mo" msgstr "ma" #: ../datebook_gui.c:252 ../datebook_gui.c:4805 msgid "Tu" msgstr "ti" #: ../datebook_gui.c:253 ../datebook_gui.c:4806 msgid "We" msgstr "on" #: ../datebook_gui.c:254 ../datebook_gui.c:4807 msgid "Th" msgstr "to" #: ../datebook_gui.c:255 ../datebook_gui.c:4808 msgid "Fr" msgstr "fr" #: ../datebook_gui.c:256 ../datebook_gui.c:4809 msgid "Sa" msgstr "lø" #: ../datebook_gui.c:269 #, c-format msgid "" "Start Date: %s\n" "Time: Event" msgstr "" "Startdato: %s\n" "Tidspunkt: Begivenhed" #: ../datebook_gui.c:277 #, c-format msgid "" "Start Date: %s\n" "Time: %s to %s" msgstr "" "Startdato: %s\n" "Tidspunkt: %s til %s" #: ../datebook_gui.c:287 ../datebook_gui.c:297 msgid "Unknown" msgstr "Ukendt" #. End Date #: ../datebook_gui.c:300 msgid "End Date: " msgstr "Slutdato: " #: ../datebook_gui.c:302 msgid "Never" msgstr "Aldrig" #: ../datebook_gui.c:308 #, c-format msgid "Repeat Frequency: %d\n" msgstr "Gentag frekvens: %d\n" #: ../datebook_gui.c:316 #, c-format msgid "Monthly Repeat Day %d\n" msgstr "Månedlig gentagelsesdag %d\n" #: ../datebook_gui.c:321 ../datebook_gui.c:5520 msgid "Repeat on Days:" msgstr "Gentag på følgende dage:" #: ../datebook_gui.c:332 #, c-format msgid "Number of exceptions: %d" msgstr "Antal undtagelser: %d" #: ../datebook_gui.c:338 msgid "" "\n" "more..." msgstr "" "\n" "flere..." #: ../datebook_gui.c:359 ../datebook_gui.c:386 msgid "Description:" msgstr "Beskrivelse:" #: ../datebook_gui.c:360 ../datebook_gui.c:387 msgid "Note:" msgstr "Note:" #: ../datebook_gui.c:362 ../datebook_gui.c:390 msgid "Alarm:" msgstr "Alarm:" #: ../datebook_gui.c:363 ../datebook_gui.c:391 msgid "Repeat Type:" msgstr "Gentag type:" #: ../datebook_gui.c:366 ../datebook_gui.c:394 msgid "Start of Week:" msgstr "Start på ugen:" #: ../datebook_gui.c:388 ../datebook_gui.c:5343 msgid "Location:" msgstr "Sted:" #: ../datebook_gui.c:620 ../datebook_gui.c:2271 #, c-format msgid "Appointment description text > %d, truncating to %d\n" msgstr "Beskrivelsestekst for aftale > %d, forkorter til %d\n" #: ../datebook_gui.c:631 ../datebook_gui.c:1148 ../datebook_gui.c:2331 #: ../datebook_gui.c:2338 msgid "Error" msgstr "Fejl" #: ../datebook_gui.c:632 msgid "File doesn't appear to be datebook.dat format\n" msgstr "Filen lader ikke til at være i formatet datebook.dat\n" #: ../datebook_gui.c:699 msgid "DAT/DBA (Palm Archive Formats)" msgstr "DAT/DBA (Palmarkivformater)" #: ../datebook_gui.c:787 #, c-format msgid "" "Datebook exported from %s %s on %s\n" "\n" msgstr "" "Aftalebog eksporteret fra %s %s den %s\n" "\n" #: ../datebook_gui.c:790 #, c-format msgid "" "Calendar exported from %s %s on %s\n" "\n" msgstr "" "Kalender eksporteret fra %s %s den %s\n" "\n" #: ../datebook_gui.c:817 ../todo_gui.c:701 msgid "" "Host character encoding is not UTF-8 based.\n" " Exported ical file may not be standards-compliant\n" msgstr "" "Værtstegnsæt er ikke baseret på UTF-8.\n" " Eksporteret ical-fil er måske ikke forenelig med standard\n" #: ../datebook_gui.c:1148 msgid "Unknown export type" msgstr "Ukendt eksporttype" #: ../datebook_gui.c:1228 ../todo_gui.c:872 msgid "iCalendar" msgstr "iKalender" #: ../datebook_gui.c:1240 ../export_gui.c:251 ../jpilot.c:429 msgid "Export" msgstr "Eksporter" #. Label for instructions #: ../datebook_gui.c:1257 msgid "Export All Datebook Records" msgstr "Eksporter alle aftalebogsposter" #: ../datebook_gui.c:1276 ../export_gui.c:316 msgid "Save as" msgstr "Gem som" #. Browse button #: ../datebook_gui.c:1286 ../export_gui.c:329 msgid "Browse" msgstr "Gennemse" #: ../datebook_gui.c:1432 msgid "Datebook Categories" msgstr "Kategorier for aftalebog" #. None button #. Labels for notebook tabs #: ../datebook_gui.c:1484 ../datebook_gui.c:2026 ../datebook_gui.c:5449 msgid "None" msgstr "Ingen" #: ../datebook_gui.c:1633 msgid "Begin On Date" msgstr "Startdato" #: ../datebook_gui.c:1639 msgid "End On Date" msgstr "Slutdato" #: ../datebook_gui.c:1751 ../prefs.c:451 msgid "Sunday" msgstr "søndag" #: ../datebook_gui.c:1752 ../prefs.c:452 msgid "Monday" msgstr "mandag" #: ../datebook_gui.c:1753 msgid "Tuesday" msgstr "tirsdag" #: ../datebook_gui.c:1754 msgid "Wednesday" msgstr "onsdag" #: ../datebook_gui.c:1755 msgid "Thursday" msgstr "torsdag" #: ../datebook_gui.c:1756 msgid "Friday" msgstr "fredag" #: ../datebook_gui.c:1757 msgid "Saturday" msgstr "lørdag" #: ../datebook_gui.c:1760 msgid "4th" msgstr "Fjerde" #: ../datebook_gui.c:1760 msgid "Last" msgstr "Sidste" #: ../datebook_gui.c:1763 #, c-format msgid "" "This appointment can either\n" "repeat on the 4th %s\n" "of the month, or on the last\n" "%s of the month.\n" "Which do you want?" msgstr "" "Denne aftale kan enten gentages\n" "på den fjerde %s\n" "i måneden, eller på den sidste\n" "%s af måneden.\n" "Hvilken ønsker du?" #: ../datebook_gui.c:1770 ../datebook_gui.c:1786 msgid "Question?" msgstr "Spørgsmål?" #: ../datebook_gui.c:1777 #, fuzzy msgid "" "This is a repeating event.\n" "Do you want to apply these changes to\n" "only the CURRENT event,\n" "just FUTURE events, or\n" "ALL of the occurrences of this event?" msgstr "" "Denne hændelse gentages.\n" "Skal ændringerne kun gælde\n" "den aktuelle hændelse eller\n" "for alle gentagelserne?" #: ../datebook_gui.c:1782 msgid "Current" msgstr "Aktuelle" #: ../datebook_gui.c:1782 msgid "Future" msgstr "" #: ../datebook_gui.c:2027 msgid "day" msgstr "dag" #: ../datebook_gui.c:2028 msgid "week" msgstr "uge" #: ../datebook_gui.c:2029 msgid "month" msgstr "måned" #: ../datebook_gui.c:2030 msgid "year" msgstr "år" #: ../datebook_gui.c:2326 ../datebook_gui.c:2329 #, c-format msgid "You cannot have an appointment that repeats every %d %s(s)\n" msgstr "Du kan ikke have en aftale som gentages hver %d %s\n" #: ../datebook_gui.c:2339 msgid "" "You cannot have a weekly repeating appointment that doesn't repeat on any " "day of the week." msgstr "" "Du kan ikke have en aftale med ugentlig gentagelse som ikke gentages på en " "bestemt ugedag." #. This is a timeless event #: ../datebook_gui.c:2516 ../datebook_gui.c:5264 msgid "No Time" msgstr "Intet tidspunkt" #: ../datebook_gui.c:2788 ../memo_gui.c:1259 ../todo_gui.c:1728 msgid "External editor command too long to execute\n" msgstr "" #: ../datebook_gui.c:2943 msgid "Invalid Appointment" msgstr "Ugyldig aftale" #: ../datebook_gui.c:2944 msgid "" "The End Date of this appointment\n" "is before the start date." msgstr "" "Slutdato på denne aftale\n" "er før startdatoen." #. "No Date" check box #: ../datebook_gui.c:3339 ../datebook_gui.c:5482 ../datebook_gui.c:5513 #: ../datebook_gui.c:5565 ../datebook_gui.c:5613 ../todo_gui.c:142 #: ../todo_gui.c:2454 msgid "No Date" msgstr "Ingen dato" #: ../datebook_gui.c:3494 #, c-format msgid "Error in DateBookDB or Calendar advanceUnits = %d\n" msgstr "Fejl i DateBookDB eller kalenderens advanceUnits = %d\n" #: ../datebook_gui.c:3681 #, c-format msgid "%%a., %s" msgstr "%%a., %s" #: ../datebook_gui.c:3686 msgid " (TODAY)" msgstr " (I DAG)" #. Weekview button #: ../datebook_gui.c:4934 ../datebook_gui.c:5451 msgid "Week" msgstr "Uge" #: ../datebook_gui.c:4943 #, fuzzy msgid "View appointments by week Ctrl+W" msgstr "Vis aftaler denne uge" #. Monthview button #: ../datebook_gui.c:4946 ../datebook_gui.c:5452 msgid "Month" msgstr "Måned" #: ../datebook_gui.c:4955 #, fuzzy msgid "View appointments by month Ctrl+M" msgstr "Vis aftaler per måned" #. Make Category button #: ../datebook_gui.c:4960 msgid "Cats" msgstr "kat." #: ../datebook_gui.c:5024 msgid "Time" msgstr "Tid" #. "Show ToDos" button #: ../datebook_gui.c:5067 msgid "Show ToDos" msgstr "Vis huskelister" #: ../datebook_gui.c:5081 ../todo_gui.c:2285 msgid "Task" msgstr "Opgave" #: ../datebook_gui.c:5082 ../todo_gui.c:2286 msgid "Due" msgstr "Forfald" #: ../datebook_gui.c:5201 ../datebook_gui.c:5358 msgid "Alarm" msgstr "Alarm" #. Date Spinners #: ../datebook_gui.c:5241 ../Expense/expense.c:1736 msgid "Date:" msgstr "Dato:" #. Start date and time #: ../datebook_gui.c:5283 msgid "Start" msgstr "Start" #. End date and time #: ../datebook_gui.c:5300 msgid "End" msgstr "Slut" #: ../datebook_gui.c:5433 msgid "DateBk Tags" msgstr "DateBk-mærker" #: ../datebook_gui.c:5450 msgid "Day" msgstr "dag" # msgid "WeekView" # msgstr "Pr. uge" # msgid "MonthView" # msgstr "Pr. mnd" #: ../datebook_gui.c:5453 msgid "Year" msgstr "år" #. "No Repeat" page for notebook #: ../datebook_gui.c:5456 msgid "This event will not repeat" msgstr "Denne aftale skal ikke gentages" #: ../datebook_gui.c:5465 ../datebook_gui.c:5498 ../datebook_gui.c:5550 #: ../datebook_gui.c:5596 msgid "Frequency is Every" msgstr "Forekomst hver" #: ../datebook_gui.c:5471 msgid "Day(s)" msgstr "dage" #: ../datebook_gui.c:5474 ../datebook_gui.c:5507 ../datebook_gui.c:5559 #: ../datebook_gui.c:5605 msgid "End on" msgstr "Slut-dato" #: ../datebook_gui.c:5504 msgid "Week(s)" msgstr "uger" #: ../datebook_gui.c:5556 msgid "Month(s)" msgstr "måneder" #: ../datebook_gui.c:5573 msgid "Repeat by:" msgstr "Gentag på:" #: ../datebook_gui.c:5577 msgid "Day of week" msgstr "ugedag" #: ../datebook_gui.c:5586 ../Expense/expense.c:1618 msgid "Date" msgstr "dato" #: ../datebook_gui.c:5602 msgid "Year(s)" msgstr "år" #: ../dialer.c:195 msgid "Phone Dialer" msgstr "Telefonopkaldsprogram" #: ../dialer.c:230 msgid "Prefix 1" msgstr "Præfiks 1" #: ../dialer.c:252 msgid "Prefix 2" msgstr "Præfiks 2" #: ../dialer.c:274 msgid "Prefix 3" msgstr "Præfiks 3" #: ../dialer.c:289 msgid "Phone number:" msgstr "Telefonnummer:" #: ../dialer.c:319 msgid "Extension" msgstr "Lokal" #: ../dialer.c:341 msgid "Dial Command" msgstr "Opkaldskommando" #: ../export_gui.c:121 msgid "File Browser" msgstr "Filbrowser" #. Label for instructions #: ../export_gui.c:273 msgid "Select records to be exported" msgstr "Vælg poster der skal eksporteres" #: ../export_gui.c:275 msgid "Use Ctrl and Shift Keys" msgstr "Brug tasterne Ctrl og Shift" #. Import button #: ../import_gui.c:300 ../import_gui.c:369 ../import_gui.c:426 #: ../import_gui.c:471 ../jpilot.c:385 msgid "Import" msgstr "Importer" #: ../import_gui.c:317 #, c-format msgid "Record was marked as private" msgstr "Indgangen er markeret som privat" #: ../import_gui.c:319 #, c-format msgid "Record was not marked as private" msgstr "Indgangen er ikke markeret privat" #: ../import_gui.c:328 #, c-format msgid "Category before import was: [%s]" msgstr "Kategori før import var: [%s]" #: ../import_gui.c:336 #, c-format msgid "Record will be put in category [%s]" msgstr "Post vil blive placeret i kategori [%s]" #. Import All button #: ../import_gui.c:376 msgid "Import All" msgstr "Importer alle" #. Skip button #: ../import_gui.c:383 msgid "Skip" msgstr "Spring over" #: ../import_gui.c:457 ../install_gui.c:429 msgid "To change to a hidden directory type it below and hit TAB" msgstr "" "For at ændre til en skjult mappe skal du angive det nedenunder og trykke TAB" #: ../import_gui.c:484 msgid "Import File Type" msgstr "Importfil-type" #: ../install_gui.c:366 #, fuzzy msgid "Files to install" msgstr "Filer som skal installeres" #: ../install_gui.c:374 msgid "Install" msgstr "Installer" #: ../install_user.c:118 ../install_user.c:220 msgid "Install User" msgstr "Installer bruger" #: ../install_user.c:139 msgid "" "A PalmOS(c) device needs a user name and a user ID in order to sync properly." msgstr "" "En enhed af typen PalmOS(c) kræver et brugernavn og et bruger-id for at " "kunne synkronisere ordentligt." #: ../install_user.c:146 msgid "" "If you want to sync more than 1 PalmOS(c) device each one should have a " "different ID and preferably a different user name." msgstr "" "Hvis du ønsker at synkronisere mere end 1 enhed af typen PalmOS(c) skal de " "have forskellige id og det foretrækkes også, at de har forskellige " "brugernavne." #. Instruction label #: ../install_user.c:168 msgid "Most people choose their name or nickname for the user name." msgstr "De fleste folk vælger deres navn eller kælenavn som brugernavn." #: ../install_user.c:176 ../restore_gui.c:278 msgid "User Name" msgstr "Brugernavn" #: ../install_user.c:186 msgid "The ID should be a random number." msgstr "Id'et bør være et tilfældigt nummer." #: ../install_user.c:194 ../restore_gui.c:297 msgid "User ID" msgstr "Bruger-id" #: ../jpilot.c:319 msgid "Print" msgstr "Udskriv" #: ../jpilot.c:320 msgid "There is no print support for this conduit." msgstr "Der findes ikke skriverunderstøttelse for dette tillæg." #: ../jpilot.c:386 msgid "There is no import support for this conduit." msgstr "Der findes ikke understøttelse af importering for dette tillæg." #: ../jpilot.c:430 msgid "There is no export support for this conduit." msgstr "Der findes ikke understøttelse af eksportering for dette tillæg." #: ../jpilot.c:659 #, fuzzy msgid " Cancelling HotSync\n" msgstr "Annuller synkronisering" #. ------------------------------------------- #: ../jpilot.c:675 #, fuzzy msgid "" "This handheld does not have the same user name or user ID\n" "as the one that was synced the last time.\n" "Syncing could have unwanted effects including data loss.\n" "\n" "Read the user manual if you are uncertain." msgstr "" "Denne håndholdte har ikke det samme brugernavn eller bruger-id,\n" "som den som blev synkroniseret sidste gang.\n" "Synkronisering kan have uventede effekter.\n" "\n" "Læs brugermanualen hvis du er usikker." #. ------------------------------------------- #: ../jpilot.c:682 msgid "" "This handheld has a NULL user ID.\n" "Every handheld must have a unique user ID in order to sync properly.\n" "If the handheld has been hard reset, \n" " use restore from the menu to restore it.\n" "Otherwise, to add a new user name and ID\n" " use install-user from the menu.\n" "\n" "Read the user manual if you are uncertain." msgstr "" "Denne håndholdte har en NULL-bruger-id.\n" "Enhver håndholdt skal have et unikt bruger-id for at kunne synkronisere\n" "ordentligt. Hvis den håndholdte er blevet nulstillet, \n" " så brug gendan fra menuen for at gendanne den.\n" "Ellers så tilføj et nyt brugernavn og -id\n" " brug installer bruger fra menuen.\n" "\n" "Læs brugermanualen hvis du er usikker." #: ../jpilot.c:690 msgid "Cancel Sync" msgstr "Annuller synkronisering" #: ../jpilot.c:690 msgid "Sync Anyway" msgstr "Synkroniser alligevel" #: ../jpilot.c:699 ../jpilot.c:703 msgid "Sync Problem" msgstr "Synkroniseringsproblem" #: ../jpilot.c:932 ../jpilot.c:1785 msgid " User: " msgstr " Bruger: " #: ../jpilot.c:944 msgid "Unknown command from sync process\n" msgstr "Ukendt kommando fra synkroniseringsproces\n" #: ../jpilot.c:963 ../Expense/expense.c:529 ../KeyRing/keyring.c:1872 #: ../SyncTime/synctime.c:61 #, c-format msgid "About %s" msgstr "Om %s" #: ../jpilot.c:1105 msgid "/_File" msgstr "/_Fil" #: ../jpilot.c:1106 msgid "/File/tear" msgstr "/Filer/afriv" #: ../jpilot.c:1107 msgid "/File/_Find" msgstr "/Filer/_Find" #: ../jpilot.c:1108 ../jpilot.c:1114 ../jpilot.c:1117 msgid "/File/sep1" msgstr "/Filer/sep1" #: ../jpilot.c:1109 msgid "/File/_Install" msgstr "/Filer/_Installer" #: ../jpilot.c:1110 msgid "/File/Import" msgstr "/Filer/Importer" #: ../jpilot.c:1111 msgid "/File/Export" msgstr "/Filer/Eksporter" #: ../jpilot.c:1112 ../jpilot.c:2190 msgid "/File/Preferences" msgstr "/Filer/Indstillinger" #: ../jpilot.c:1113 msgid "/File/_Print" msgstr "/Filer/_Udskriv" #: ../jpilot.c:1115 msgid "/File/Install User" msgstr "/Filer/Installer bruger" #: ../jpilot.c:1116 msgid "/File/Restore Handheld" msgstr "/Filer/Genskab håndholdt" #: ../jpilot.c:1118 msgid "/File/_Quit" msgstr "/Filer/_Afslut" #: ../jpilot.c:1119 msgid "/_View" msgstr "/_Vis" #: ../jpilot.c:1120 ../jpilot.c:1121 ../jpilot.c:1122 ../jpilot.c:1368 msgid "/View/Hide Private Records" msgstr "/Vis/Skjul private poster" #: ../jpilot.c:1121 ../jpilot.c:1371 msgid "/View/Show Private Records" msgstr "/Vis/Vis private poster" #: ../jpilot.c:1122 ../jpilot.c:1374 msgid "/View/Mask Private Records" msgstr "/Vis/Masker private poster" #: ../jpilot.c:1123 msgid "/View/sep1" msgstr "/Vis/sep1" #: ../jpilot.c:1124 msgid "/View/Datebook" msgstr "/Vis/Aftalebog" #: ../jpilot.c:1125 msgid "/View/Addresses" msgstr "/Vis/Adresser" #: ../jpilot.c:1126 msgid "/View/Todos" msgstr "/Vis/Huskelister" #: ../jpilot.c:1127 msgid "/View/Memos" msgstr "/Vis/Notater" #: ../jpilot.c:1128 ../jpilot.c:1259 msgid "/_Plugins" msgstr "/_Udvidelsesmoduler" #: ../jpilot.c:1130 msgid "/_Web" msgstr "/_Internet" #. web #: ../jpilot.c:1131 msgid "/Web/Netscape" msgstr "/Internet/Netscape" #: ../jpilot.c:1135 msgid "/Web/Mozilla" msgstr "/Internet/Mozilla" #: ../jpilot.c:1140 msgid "/Web/Galeon" msgstr "/Internet/Galeon" #: ../jpilot.c:1145 msgid "/Web/Opera" msgstr "/Internet/Opera" #: ../jpilot.c:1149 msgid "/Web/GnomeUrl" msgstr "/Internet/GnomeUrl" #: ../jpilot.c:1151 msgid "/Web/Lynx" msgstr "/Internet/Lynx" #: ../jpilot.c:1153 msgid "/Web/Links" msgstr "/Internet/Henvisninger" #: ../jpilot.c:1155 msgid "/Web/W3M" msgstr "/Internet/W3M" #: ../jpilot.c:1157 msgid "/Web/Konqueror" msgstr "/Internet/Konqueror" #: ../jpilot.c:1160 msgid "/_Help" msgstr "/_Hjælp" #: ../jpilot.c:1161 msgid "/Help/About J-Pilot" msgstr "/Hjælp/Om J-Pilot" #: ../jpilot.c:1227 #, c-format msgid "/_Plugins/%s" msgstr "/_Udvidelsesmoduler/%s" #: ../jpilot.c:1237 #, c-format msgid "/_Help/%s" msgstr "/_Hjælp/%s" #: ../jpilot.c:1591 msgid "calendar:week_start:0" msgstr "kalender:uge_start:0" #: ../jpilot.c:1634 ../jpilot-sync.c:171 msgid "Not loading plugins.\n" msgstr "Indlæser ikke udvidelsesmoduler.\n" #: ../jpilot.c:1638 msgid "Ignoring all alarms.\n" msgstr "Ignorerer alle alarmer.\n" #: ../jpilot.c:1642 msgid "Ignoring past alarms.\n" msgstr "Ignorerer tidligere alarmer.\n" #: ../jpilot.c:1730 ../jpilot.c:1738 msgid "Unable to open pipe\n" msgstr "Kan ikke åbne ledning (pipe)\n" #: ../jpilot.c:1947 #, fuzzy msgid "Show private records Ctrl+Z" msgstr "Vis private poster Ctrl-Z" #: ../jpilot.c:1952 #, fuzzy msgid "Hide private records Ctrl+Z" msgstr "Skjul private poster Ctrl-Z" #: ../jpilot.c:1957 #, fuzzy msgid "Mask private records Ctrl+Z" msgstr "Masker private poster Ctrl-Z" #: ../jpilot.c:1969 #, fuzzy msgid "Sync your palm to the desktop Ctrl+Y" msgstr "Synkroniser din Palm med pc'en Ctrl-Y" #: ../jpilot.c:1981 #, fuzzy msgid "Stop Sync process" msgstr "Synk adresse" #: ../jpilot.c:1993 msgid "" "Sync your palm to the desktop\n" "and then do a backup" msgstr "" "Synkroniser din Palm med pc'en\n" "og tag derefter sikkerhedskopi" #: ../jpilot.c:2141 msgid "Datebook/Go to Today" msgstr "Kalender/Gå til i dag" #: ../jpilot.c:2142 msgid "Address Book" msgstr "Adressebog" #: ../jpilot.c:2143 msgid "ToDo List" msgstr "Huskeliste" #: ../jpilot.c:2144 msgid "Memo Pad" msgstr "Notater" #: ../jpilot.c:2172 msgid "Do it now" msgstr "Gør det nu" #: ../jpilot.c:2172 msgid "Remind me later" msgstr "Påmind mig senere" #: ../jpilot.c:2172 msgid "Don't tell me again!" msgstr "Sig det ikke igen!" #: ../jpilot.c:2185 #, c-format msgid "" "J-Pilot uses the GTK2 graphical toolkit. This version of the toolkit uses " "UTF-8 to encode characters.\n" "You should select a UTF-8 charset so that you can see non-ASCII characters " "(accents for example).\n" "\n" "Go to the menu \"%s\" and change the \"%s\"." msgstr "" "J-Pilot bruger værktøjskassen GTK2-grafik. Denne version af værktøjskassen " "bruger UTF-8 til at kode tegnene med.\n" "Du bør vælge et UTF-8-tegnsæt, så du kan se ikke-ASCII-tegn (for eksempel " "accenter).\n" "\n" "Gå til menuen »%s« og ændr »%s«." #. Character Set #: ../jpilot.c:2190 ../prefs_gui.c:511 msgid "Character Set" msgstr "Tegnsæt" #: ../jpilot.c:2192 msgid "Select a UTF-8 encoding" msgstr "Vælg en UTF-8-kodning" #: ../jpilot-dump.c:94 #, c-format msgid " +D +A +T +M format like date +format.\n" msgstr " +D +A +T +M format såsom dato +format.\n" #: ../jpilot-dump.c:95 #, fuzzy, c-format msgid " -v display version and exit\n" msgstr " -v viser version og afslutter.\n" #: ../jpilot-dump.c:96 ../jpilot-sync.c:68 ../utils.c:1874 #, fuzzy, c-format msgid " -h display help text\n" msgstr " -h viser hjælp og afslutter.\n" #: ../jpilot-dump.c:97 #, fuzzy, c-format msgid " -f display help for format codes\n" msgstr " -f viser hjælp til formatkoder.\n" #: ../jpilot-dump.c:98 #, fuzzy, c-format msgid " -D dump DateBook\n" msgstr " - D smid adressebog.\n" #: ../jpilot-dump.c:99 #, fuzzy, c-format msgid " -i dump DateBook in iCalendar format\n" msgstr " -i smid adressebog i iKalender-format.\n" #: ../jpilot-dump.c:100 #, fuzzy, c-format msgid " -N dump appts for today in DateBook\n" msgstr " -N drop appts for i dag i aftalebog.\n" #: ../jpilot-dump.c:101 #, fuzzy, c-format msgid " -NYYYY/MM/DD dump appts on YYYY/MM/DD in DateBook\n" msgstr " -NYYYY/MM/DD drop appts pån ÅÅÅÅ/MM/DD i datobog.\n" #: ../jpilot-dump.c:102 #, fuzzy, c-format msgid " -A dump Address book\n" msgstr " -A smid adressebog.\n" #: ../jpilot-dump.c:103 #, fuzzy, c-format msgid " -T dump ToDo list as CSV\n" msgstr " -T smid huskelister som csv.\n" #: ../jpilot-dump.c:104 #, fuzzy, c-format msgid " -M dump Memos\n" msgstr " -M smid memoer.\n" #: ../jpilot-dump.c:165 #, c-format msgid "" "Warning: Host character encoding is not UTF-8 based.\n" "Exported ical file may not be standards-compliant\n" msgstr "" "Advarsel: Værttegnskodning er ikke baseret på UTF-8.\n" "Eksporteret ical-fil er måske ikke forenelig med standard\n" #: ../jpilot-merge.c:163 ../jpilot-merge.c:169 #, fuzzy, c-format msgid "%s: Unable to open file:%s\n" msgstr "Kan ikke åbne filen: %s\n" #: ../jpilot-merge.c:271 #, c-format msgid "Records read from pdb = %d\n" msgstr "" #: ../jpilot-merge.c:272 #, c-format msgid "Records added = %d\n" msgstr "" #: ../jpilot-merge.c:273 #, c-format msgid "Records deleted = %d\n" msgstr "" #: ../jpilot-merge.c:274 #, c-format msgid "Records modified = %d\n" msgstr "" #: ../jpilot-merge.c:275 #, c-format msgid "Records written = %d\n" msgstr "" #: ../jpilot-merge.c:293 #, c-format msgid "Usage: %s {input pdb file} {input pc3 file} {output pdb file}\n" msgstr "" #: ../jpilot-merge.c:294 #, c-format msgid " This program will merge an unsynced records file (pc3)\n" msgstr "" #: ../jpilot-merge.c:295 #, c-format msgid "" " into the corresponding palm database (pdb) file.\n" "\n" msgstr "" #: ../jpilot-merge.c:296 #, c-format msgid " WARNING: Only run this utility if you understand the consequences!\n" msgstr "" #: ../jpilot-merge.c:297 #, c-format msgid " The merge will leave your databases in an unsync-able state.\n" msgstr "" #: ../jpilot-merge.c:298 #, c-format msgid "" " It is intended for cases where J-pilot is being used as a standalone PIM\n" msgstr "" #: ../jpilot-merge.c:299 #, c-format msgid " and where no syncing occurs to physical hardware.\n" msgstr "" #: ../jpilot-merge.c:300 #, c-format msgid " WARNING: Make a backup copy of your databases before proceeding.\n" msgstr "" #: ../jpilot-merge.c:301 #, c-format msgid "" " It is quite simple to destroy your databases by accidentally merging\n" msgstr "" #: ../jpilot-merge.c:302 #, c-format msgid " address records into datebook databases, etc.\n" msgstr "" #: ../jpilot-sync.c:66 #, fuzzy, c-format msgid "" " J-Pilot preferences are read to get sync info such as port, rate, number of " "backups, etc.\n" msgstr "" " J-Pilot-indstillinger er læst for port, hastighed, antal sikkerhedskopier, " "etc.\n" #: ../jpilot-sync.c:67 ../utils.c:1873 #, fuzzy, c-format msgid " -v display version and compile options\n" msgstr " -v viser version og kompileringsindstillinger og afslutter.\n" #: ../jpilot-sync.c:69 ../utils.c:1875 #, fuzzy, c-format msgid " -d display debug info to stdout\n" msgstr " -d viser fejlsøgningsinfo til stdout.\n" #: ../jpilot-sync.c:70 #, fuzzy, c-format msgid " -P skip loading plugins\n" msgstr " -P springer indlæsning af udvidelsesmoduler over.\n" #: ../jpilot-sync.c:71 #, fuzzy, c-format msgid " -b sync, and then do a backup\n" msgstr " -b synkroniser og så en sikkerhedskopi\n" #: ../jpilot-sync.c:72 #, fuzzy, c-format msgid " -l loop, otherwise sync once and exit\n" msgstr " -l loop, ellers synkroniser en gang og afslut.\n" #: ../jpilot-sync.c:73 #, fuzzy, c-format msgid " -p {port} use this port to sync on instead of default\n" msgstr " -p {port} brug denne port til synkronisering frem for standard.\n" #: ../jpilot-sync.c:221 #, fuzzy, c-format msgid "Error: connecting to port %s\n" msgstr "Fejl ved åbning af fil: %s\n" #: ../jpilot-sync.c:225 #, c-format msgid "Error: pi_listen\n" msgstr "" #: ../jpilot-sync.c:229 #, c-format msgid "Error: opening conduit to handheld\n" msgstr "" #: ../jpilot-sync.c:233 #, c-format msgid "Error: pi_accept\n" msgstr "" #: ../jpilot-sync.c:237 ../jpilot-sync.c:265 #, fuzzy, c-format msgid "Error: " msgstr "Fejl" #: ../jpilot-sync.c:238 #, c-format msgid "This handheld does not have the same user name.\n" msgstr "" #: ../jpilot-sync.c:239 ../jpilot-sync.c:253 #, c-format msgid "as the one that was synced the last time.\n" msgstr "" #: ../jpilot-sync.c:241 #, c-format msgid "" "Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:243 ../jpilot-sync.c:256 #, c-format msgid " COPILOT_HOME" msgstr "" #: ../jpilot-sync.c:245 ../jpilot-sync.c:258 #, c-format msgid " JPILOT_HOME" msgstr "" #: ../jpilot-sync.c:247 ../jpilot-sync.c:260 #, fuzzy, c-format msgid " environment variable can be used to sync different handhelds,\n" msgstr "HJEMME-miljøvariabel er for lang til at kunne behandles\n" #: ../jpilot-sync.c:248 ../jpilot-sync.c:261 #, c-format msgid " to different directories for the same UNIX user name.\n" msgstr "" #: ../jpilot-sync.c:252 #, c-format msgid "This handheld does not have the same user ID.\n" msgstr "" #: ../jpilot-sync.c:254 #, c-format msgid "" " Syncing with different handhelds to the same directory can destroy data.\n" msgstr "" #: ../jpilot-sync.c:266 #, c-format msgid "This handheld has a NULL user ID.\n" msgstr "" #: ../jpilot-sync.c:267 #, fuzzy, c-format msgid "Every handheld must have a unique user ID in order to sync properly.\n" msgstr "" "En enhed af typen PalmOS(c) kræver et brugernavn og et bruger-id for at " "kunne synkronisere ordentligt." #: ../jpilot-sync.c:268 #, c-format msgid "If the handheld has been hard reset, \n" msgstr "" #: ../jpilot-sync.c:269 #, c-format msgid " use restore from within " msgstr "" #: ../jpilot-sync.c:270 #, c-format msgid "Otherwise, to add a new user name and ID\n" msgstr "" #: ../jpilot-sync.c:271 #, c-format msgid " use \"install-user %s name numeric_id\"\n" msgstr "" #: ../jpilot-sync.c:275 #, c-format msgid "Error: sync returned error %d\n" msgstr "" #: ../libplugin.c:64 ../utils.c:1054 msgid "" "This record is already deleted.\n" "It is scheduled to be deleted from the Palm on the next sync.\n" msgstr "" "Denne post er allerede slettet.\n" "Den er planlagt til at blive slettet fra Palm'en ved næste synkronisering.\n" #: ../libplugin.c:73 ../libplugin.c:110 ../utils.c:1064 ../utils.c:1106 msgid "Unable to open PC records file\n" msgstr "Kan ikke åbne pc-postfiler\n" #: ../libplugin.c:79 ../utils.c:1071 msgid "Couldn't find record to delete\n" msgstr "Kunne ikke finde post til sletning\n" #: ../libplugin.c:97 ../utils.c:1091 #, c-format msgid "Unknown header version %d\n" msgstr "Ukendt teksthovedversion %d\n" #: ../libplugin.c:182 #, c-format msgid "%s:%d Error opening file: %s\n" msgstr "%s:%d Fejl ved åbning af fil: %s\n" #: ../libplugin.c:188 ../libplugin.c:217 ../sync.c:1721 ../todo.c:102 #, c-format msgid "%s:%d Error reading file: %s\n" msgstr "%s:%d Fejl ved læsning af fil: %s\n" #: ../libplugin.c:340 ../libplugin.c:398 ../utils.c:2119 ../utils.c:2132 #, c-format msgid "Error opening file: %s\n" msgstr "Fejl ved åbning af fil: %s\n" #: ../libplugin.c:526 #, c-format msgid "Error reading %s 5\n" msgstr "Fejl ved læsning af %s 5\n" #: ../libplugin.c:801 msgid "Error reading PC file 1\n" msgstr "Fejl ved læsning af pc-fil 1\n" #: ../libplugin.c:817 msgid "Error reading PC file 2\n" msgstr "Fejl ved læsning af pc-fil 2\n" #: ../libplugin.c:923 #, c-format msgid "Unknown PC header version = %d\n" msgstr "Ukendt pc-teksthovedversion = %d\n" #: ../log.c:101 #, c-format msgid "Unable to open log file, giving up.\n" msgstr "Kan ikke åbne logfil, giver op.\n" #: ../log.c:111 #, c-format msgid "Unable to open log file\n" msgstr "Kan ikke åbne logfil\n" #: ../memo_gui.c:302 msgid "Memo text > 65535, truncating\n" msgstr "Memotekst > 65535, forkorter\n" #: ../memo_gui.c:330 #, c-format msgid "Imported Memo %s\n" msgstr "Importeret memo %s\n" #: ../memo_gui.c:400 msgid "File doesn't appear to be memopad.dat format\n" msgstr "Filen lader ikke til at være i formatet memopad.dat\n" #: ../memo_gui.c:471 msgid "DAT/MPA (Palm Archive Formats)" msgstr "DAT/MPA (Palmarkivformater)" #: ../memo_gui.c:554 #, c-format msgid "" "Memo exported from %s %s on %s\n" "\n" msgstr "" "Notat eksporteret fra %s %s den %s\n" "\n" #: ../memo_gui.c:557 #, c-format msgid "" "Memos exported from %s %s on %s\n" "\n" msgstr "" "Notater eksporteret fra %s %s den %s\n" "\n" #: ../memo_gui.c:584 #, c-format msgid "Can't export memo %d\n" msgstr "Kan ikke eksportere memo %d\n" #: ../memo_gui.c:628 #, c-format msgid "Memo: %ld\n" msgstr "Memo: %ld\n" #: ../memo_gui.c:634 #, c-format msgid "----- Start of Memo -----\n" msgstr "----- Start på memo -----\n" #: ../memo_gui.c:636 #, c-format msgid "" "\n" "----- End of Memo -----\n" "\n" msgstr "" "\n" "----- Slut på memo -----\n" "\n" #: ../memo_gui.c:668 msgid "B-Folders CSV" msgstr "" #: ../monthview_gui.c:438 msgid "Monthly View" msgstr "Månedlig visning" #: ../monthview_gui.c:480 msgid "Last month Alt+LeftArrow" msgstr "" #: ../monthview_gui.c:508 msgid "Next month Alt+RightArrow" msgstr "" #: ../otherconv.c:76 #, c-format msgid "%s: error exit from g_iconv_close(%s)\n" msgstr "%s: Fejlafslutning fra g_iconv_close(%s)\n" #: ../otherconv.c:201 #, c-format msgid "%s:%s g_convert_with_iconv error: %s, buff: %s\n" msgstr "%s:%s g_convert_with_iconv error: %s, buff: %s\n" #: ../otherconv.c:203 msgid "last char truncated" msgstr "sidste tegn afkortet" #: ../otherconv.c:280 #, c-format msgid "UTF_to_other: %s\n" msgstr "UTF_til_andet: %s\n" #: ../otherconv.c:294 #, c-format msgid "iconv: unconvertible sequence at place %d in '%s'\n" msgstr "iconv: Inkonvertibel sekvens på sted %d i '%s'\n" #: ../otherconv.c:298 #, c-format msgid "iconv: incomplete UTF-8 sequence at place %d in '%s'\n" msgstr "iconv: Ufuldstændig UTF-8-sekvens på sted %d i '%s'\n" #: ../otherconv.c:301 #, c-format msgid "iconv: buffer filled. stopped at place %d in '%s'\n" msgstr "iconv: Mellemlager fyldt. Stoppede på sted %d i '%s'\n" #: ../otherconv.c:304 #, c-format msgid "iconv: unexpected error at place %d in '%s'\n" msgstr "iconv: Uventet fejl på sted %d i '%s'\n" #: ../password.c:283 msgid "Palm Password" msgstr "Adgangskode til Palm" #: ../password.c:308 msgid "Incorrect, Reenter PalmOS Password" msgstr "Forkert, genindtast adgangskode til PalmOS" #: ../password.c:310 msgid "Enter PalmOS Password" msgstr "Indtast adgangskode til PalmOS" #: ../pidfile.c:67 msgid "removing stale pidfile\n" msgstr "fjerner stale pidfile\n" #: ../pidfile.c:91 #, c-format msgid "create pidfile failed: %s\n" msgstr "oprettelse af pidfile mislykkedes: %s\n" #: ../pidfile.c:92 msgid "Warning: hotplug syncing disabled.\n" msgstr "Advarsel: hotplug synkronisering deaktiveret.\n" #: ../plugins.c:90 ../plugins.c:203 ../restore_gui.c:133 msgid "infinite loop" msgstr "uendeligt loop" #: ../plugins.c:216 #, c-format msgid "While reading %s%s line 1:[%s]\n" msgstr "Under læsning af %s%s linje 1:[%s]\n" #: ../plugins.c:217 msgid "Wrong Version\n" msgstr "Forkert version\n" #: ../plugins.c:218 msgid "Check preferences->conduits\n" msgstr "Tjek indstillinger->tillæg\n" #: ../plugins.c:274 #, c-format msgid "" "Open failed on plugin [%s]\n" " error [%s]\n" msgstr "" "Åbn mislykkedes på udvidelsesmodul [%s]\n" " fejl [%s]\n" #: ../plugins.c:291 ../plugins.c:316 #, c-format msgid " plugin is invalid: [%s]\n" msgstr " udvidelsesmodul er ugyldigt: [%s]\n" #: ../plugins.c:299 #, c-format msgid "Plugin:[%s]\n" msgstr "Udvidelsesmodul:[%s]\n" #: ../plugins.c:300 #, c-format msgid "This plugin is version (%d.%d).\n" msgstr "Dette udvidelsesmodul er version (%d.%d).\n" #: ../plugins.c:302 msgid "It is too old to work with this version of J-Pilot.\n" msgstr "" "Det er for gammelt til at kunne arbejde med denne version af J-Pilot.\n" # March 24, 2010 # kan ikke lige gennemskue hvorfor alle de her ens er her. # ser ud som om at der er taget højde for forskellige sprogs # måde at gøre det på. #: ../prefs.c:420 msgid "%B %d, %Y" msgstr "%B %d, %Y" # 24 March 2010 #: ../prefs.c:421 msgid "%d %B %Y" msgstr "%d %B %Y" #: ../prefs.c:422 msgid "%d. %B %Y" msgstr "%d. %B %Y" #: ../prefs.c:423 msgid "%d %B, %Y" msgstr "%d %B, %Y" #: ../prefs.c:424 msgid "%Y. %B. %d" msgstr "%Y. %B. %d" #: ../prefs.c:425 msgid "%Y %B %d" msgstr "%Y %B %d" #: ../prefs_gui.c:454 msgid "Preferences" msgstr "Indstillinger" #: ../prefs_gui.c:485 msgid "Locale" msgstr "Lokale" #: ../prefs_gui.c:487 msgid "Settings" msgstr "Opsætning" #: ../prefs_gui.c:489 msgid "Datebook" msgstr "Aftalebog" #: ../prefs_gui.c:493 msgid "ToDo" msgstr "Huskeliste" #: ../prefs_gui.c:495 msgid "Memo" msgstr "Notat" #: ../prefs_gui.c:497 msgid "Alarms" msgstr "Alarm" #: ../prefs_gui.c:499 msgid "Conduits" msgstr "Tillæg" #. Shortdate #: ../prefs_gui.c:524 msgid "Short date format" msgstr "Kort datoformat" #. Longdate #: ../prefs_gui.c:537 msgid "Long date format" msgstr "Langt datoformat" #. Time #: ../prefs_gui.c:550 msgid "Time format" msgstr "Tidsformat" #. GTK colors file #: ../prefs_gui.c:570 msgid "GTK color theme file" msgstr "GTK-farvetemafil" #. Port #: ../prefs_gui.c:583 #, fuzzy msgid "Sync Port" msgstr "Synkroniseringsproblem" #. Serial Rate #: ../prefs_gui.c:607 msgid "Serial Rate" msgstr "Seriel overføringshastighed" #. Number of backups #: ../prefs_gui.c:627 msgid "Number of backups to be archived" msgstr "Antal kopier som skal arkiveres" #. Show deleted files check box #: ../prefs_gui.c:645 msgid "Show deleted records (default NO)" msgstr "Vis slettede poster? (standard: nej)" #. Show modified files check box #: ../prefs_gui.c:649 msgid "Show modified deleted records (default NO)" msgstr "Vis ændrede slettede poster? (standard: nej)" #: ../prefs_gui.c:654 msgid "Ask confirmation for file installation (J-Pilot -> PDA) (default YES)" msgstr "Spørg om bekræftelse af filinstallation (J-Pilot -> PDA (standard JA)" #. Show tooltips check box #: ../prefs_gui.c:658 #, fuzzy msgid "Show popup tooltips (default YES) (requires restart)" msgstr "Vis pop op-værktøjsfif (standard JA)" #: ../prefs_gui.c:668 msgid "Use Datebook database (Palm OS < 5.2.1)" msgstr "Brug aftalebogdatabase (Palm OS < 5.2.1)" #: ../prefs_gui.c:671 msgid "Use Calendar database (Palm OS > 5.2)" msgstr "Brug kalenderdatabase (Palm OS > 5.2)" #. Show highlight days check box #: ../prefs_gui.c:697 msgid "Highlight calendar days with appointments" msgstr "Marker dage med aftaler" #. Highlight today on month and week view #: ../prefs_gui.c:702 msgid "Annotate today in day, week, and month views" msgstr "Kommenter i dag i dag-, uge- og månedsvisninger" #. Show number of years on anniversaries in month and week view #: ../prefs_gui.c:706 msgid "Append years on anniversaries in day, week, and month views" msgstr "Tilføj år på årsdage i dag-, uge- og månedsvisninger" #. Show use DateBk check box #: ../prefs_gui.c:712 msgid "Use DateBk note tags" msgstr "Brug DateBk-notatmærker" #: ../prefs_gui.c:715 msgid "DateBk support disabled in this build" msgstr "Understøttelsen af DateBk er deaktiveret i denne udgave" #: ../prefs_gui.c:727 msgid "Use Address database (Palm OS < 5.2.1)" msgstr "Brug adressedatabase (Palm OS < 5.2.1)" #: ../prefs_gui.c:730 msgid "Use Contacts database (Palm OS > 5.2)" msgstr "Brug kontaktdatabase (Palm OS > 5.2)" #: ../prefs_gui.c:759 msgid "Mail Command" msgstr "Postkommando" #: ../prefs_gui.c:773 #, c-format msgid "%s is replaced by the e-mail address" msgstr "%s bliver erstattet med e-post-adressen" #: ../prefs_gui.c:785 msgid "Use ToDo database (Palm OS < 5.2.1)" msgstr "Brug huskelistedatabase (Palm OS < 5.2.1)" #: ../prefs_gui.c:788 msgid "Use Task database (Palm OS > 5.2)" msgstr "Brug opgavedatabase (Palm OS > 5.2)" #. hide completed check box #: ../prefs_gui.c:815 msgid "Hide Completed ToDos" msgstr "Skjul afsluttede huskelister" #. hide todos not yet due check box #: ../prefs_gui.c:819 msgid "Hide ToDos not yet due" msgstr "Skjul huskelister der endnu ikke er forfalden" #. record todo completion date check box #: ../prefs_gui.c:823 msgid "Record Completion Date" msgstr "Færdiggørelsesdato for post" #. Use Manana check box #: ../prefs_gui.c:828 msgid "Use Manana database" msgstr "Brug Manana-database" #: ../prefs_gui.c:836 msgid "Use default number of days due" msgstr "Brug standardantal af dage forfalden" #: ../prefs_gui.c:858 msgid "Use Memo database (Palm OS < 5.2.1)" msgstr "Brug notatdatabase (Palm OS < 5.2.1)" #: ../prefs_gui.c:861 msgid "Use Memos database (Palm OS > 5.2)" msgstr "Brug notatdatabase (Palm OS > 5.2)" #: ../prefs_gui.c:864 msgid "Use Memo32 database (pedit32)" msgstr "Brug notat32-database (pedit32)" #: ../prefs_gui.c:904 msgid "External Editor" msgstr "" #: ../prefs_gui.c:917 msgid "Use Ctrl-E inside a memo to launch external editor for memo text" msgstr "" #. ******************************************************************** #. Alarms preference tab #. Open alarm windows check box #: ../prefs_gui.c:925 msgid "Open alarm windows for appointment reminders" msgstr "Åbn alarmvinduer for påmindelser om aftaler" #. Execute alarm command check box #: ../prefs_gui.c:929 msgid "Execute this command" msgstr "Udfør denne kommando" #. Shell warning label #: ../prefs_gui.c:933 msgid "WARNING: executing arbitrary shell commands can be dangerous!!!" msgstr "ADVARSEL: udførelse af vilkårlige skal-kommandoer kan være farligt!!!" #: ../prefs_gui.c:941 msgid "Alarm Command" msgstr "Alarm-kommando" #: ../prefs_gui.c:954 msgid "%t is replaced with the alarm time" msgstr "%t bliver erstattet med alarmtiden" #: ../prefs_gui.c:958 #, c-format msgid "%d is replaced with the alarm date" msgstr "%d bliver erstattet med alarmdatoen" #: ../prefs_gui.c:963 msgid "%D is replaced with the alarm description" msgstr "%D bliver erstattet med alarmbeskrivelsen" #: ../prefs_gui.c:967 msgid "%N is replaced with the alarm note" msgstr "%d bliver erstattet med alarmnotatet" #: ../prefs_gui.c:971 msgid "%D (description substitution) is disabled in this build" msgstr "%D (beskrivelseserstatning) er deaktiveret i denne udgave" #: ../prefs_gui.c:976 msgid "%N (note substitution) is disabled in this build" msgstr "%N (noteerstatning) er deaktiveret i denne udgave" #. ******************************************************************** #. Conduits preference tab #. Sync datebook check box #: ../prefs_gui.c:986 msgid "Sync datebook" msgstr "Synk aftalebog" #. Sync address check box #: ../prefs_gui.c:990 msgid "Sync address" msgstr "Synk adresse" #. Sync todo check box #: ../prefs_gui.c:994 msgid "Sync todo" msgstr "Synk huskeliste" #. Sync memo check box #: ../prefs_gui.c:998 msgid "Sync memo" msgstr "Synk notat" #. Show sync Manana check box #: ../prefs_gui.c:1003 msgid "Sync Manana" msgstr "Synkroniser Manana" #. Show use Japanese Kana extention check box #: ../prefs_gui.c:1009 msgid "Use J-OS (Not Japanese PalmOS:WorkPad/CLIE)" msgstr "Brug J-OS (ikke japansk PalmOS:WorkPad/CLIE)" #. Make a Sync checkbox for each plugin #: ../prefs_gui.c:1022 #, c-format msgid "Sync %s (%s)" msgstr "Synkroniserer %s (%s)" #: ../print_gui.c:185 msgid "Print Options" msgstr "Udskrivningsindstilinger" #: ../print_gui.c:198 msgid "Paper Size" msgstr "Papirstørrelse" #: ../print_gui.c:214 msgid "Daily Printout" msgstr "Udskriv dagsplan" #: ../print_gui.c:220 msgid "Weekly Printout" msgstr "Udskriv ugeplan" #: ../print_gui.c:226 msgid "Monthly Printout" msgstr "Udskriv månedsplan" #: ../print_gui.c:266 msgid "Selected record" msgstr "Valgt post" #: ../print_gui.c:270 msgid "All records in this category" msgstr "Alle poster i denne kategori" #: ../print_gui.c:274 msgid "Print all records" msgstr "Udskriv alle poster" #: ../print_gui.c:296 msgid "One record per page" msgstr "En post per side" #: ../print_gui.c:312 msgid "Blank lines between each record" msgstr "Tomme linjer mellem hver post" #. Print Command #: ../print_gui.c:321 msgid "Print Command (e.g. lpr, or cat > file.ps)" msgstr "Udskriftskommando (f.eks. lpr, eller cat > fil.ps)" #: ../restore_gui.c:71 ../restore_gui.c:229 msgid "Restore Handheld" msgstr "Genskab håndholdt" #: ../restore_gui.c:176 ../restore_gui.c:178 msgid "Unable to convert filename for GTK display\n" msgstr "Kunne ikke konvertere filnavn til GTK-visning\n" #: ../restore_gui.c:177 #, fuzzy msgid "See console log to find which file will not be restored\n" msgstr "Se konsollog for at se hvilke filer der ikke bliver gendannet" #: ../restore_gui.c:179 #, c-format msgid "File %s will not be restored\n" msgstr "Fil %s vil ikke blive gendannet\n" #. Label for instructions #: ../restore_gui.c:246 msgid "To restore your handheld:" msgstr "Genskab indhold på håndholdt ved:" #: ../restore_gui.c:249 msgid "1. Choose the applications you wish to restore. The default is all." msgstr "1. Vælg de programmer du vil genskabe. Standarden er alle." #: ../restore_gui.c:252 msgid "2. Enter the User Name and User ID." msgstr "2. Indtast brugernavn og bruger-id." #: ../restore_gui.c:255 msgid "3. Press the OK button." msgstr "3. Tryk på knappen O.k." #: ../restore_gui.c:258 msgid "This will overwrite data that is currently on the handheld." msgstr "Dette vil overskive alle data, som der aktuelt er på den håndholdte." #: ../search_gui.c:144 msgid "datebook" msgstr "aftalebog" #: ../search_gui.c:146 msgid "calendar" msgstr "kalender" #: ../search_gui.c:233 msgid "address" msgstr "adresse" #: ../search_gui.c:235 msgid "contact" msgstr "kontakt" #: ../search_gui.c:304 msgid "todo" msgstr "huskeliste" #: ../search_gui.c:361 msgid "memo" msgstr "notat" #: ../search_gui.c:363 #, fuzzy msgid "memos" msgstr "notat" #: ../search_gui.c:421 msgid "plugin ?" msgstr "modul ?" #: ../search_gui.c:501 msgid "No records found" msgstr "Ingen poster fundet" #: ../search_gui.c:600 msgid "Search" msgstr "Søg" #. Search label #: ../search_gui.c:617 msgid "Search for: " msgstr "Søg efter: " #. Case Sensitive checkbox #: ../search_gui.c:626 msgid "Case Sensitive" msgstr "Skeln mellem store/små bogstaver" #: ../sync.c:120 msgid "open lock file failed\n" msgstr "kunne ikke åbne låsningsfil\n" #: ../sync.c:133 msgid "lock failed\n" msgstr "låsning mislykkedes.\n" #: ../sync.c:136 #, c-format msgid "sync file is locked by pid %d\n" msgstr "synkroniseringsfil er låst af pid %d\n" #: ../sync.c:171 msgid "unlock failed\n" msgstr "fjernelse af lås mislykkedes\n" #: ../sync.c:174 #, c-format msgid "sync is locked by pid %d\n" msgstr "synkronisering er låst af pid %d\n" #: ../sync.c:410 #, fuzzy msgid "Check your sync port and settings\n" msgstr "Kontroller serielporten og indstillingerne\n" #: ../sync.c:669 msgid "Unable to read home dir\n" msgstr "Kunne ikke læse hjemmemappe\n" #: ../sync.c:1075 ../sync.c:1413 #, c-format msgid "%s (Creator ID '%s') is up to date, fetch skipped.\n" msgstr "%s (oprettet af '%s') er opdateret, dropper overføring.\n" #: ../sync.c:1079 ../sync.c:1417 #, c-format msgid "Fetching '%s' (Creator ID '%s')... " msgstr "Henter '%s' (oprettet af '%s')... " #: ../sync.c:1086 ../sync.c:1423 #, c-format msgid "Failed, unable to create file %s\n" msgstr "Fejlede, kunne ikke oprette filen %s\n" #: ../sync.c:1090 ../sync.c:1428 #, c-format msgid "Failed, unable to back up database %s\n" msgstr "Fejlede, kunne ikke sikkerhedskopiere databasen %s\n" #: ../sync.c:1094 ../sync.c:1432 ../sync.c:1619 msgid "OK\n" msgstr "O.k.\n" #: ../sync.c:1294 #, c-format msgid "Skipping %s (Creator ID '%s')\n" msgstr "Springer %s over (oprettet af '%s')\n" #: ../sync.c:1488 #, c-format msgid "Installing %s " msgstr "Installerer %s " #: ../sync.c:1494 ../sync.c:1530 #, c-format msgid "" "\n" "Unable to open file: '%s': %s!\n" msgstr "" "\n" "Kunne ikke åbne fil: '%s': %s!\n" #: ../sync.c:1498 #, c-format msgid "" "\n" "Unable to sync file: '%s': file corrupted?\n" msgstr "" "\n" "Kunne ikke synkronisere fil: '%s': Fil ødelagt?\n" #: ../sync.c:1514 #, c-format msgid "(Creator ID '%s')... " msgstr "(Oprettet af '%s')..." #: ../sync.c:1518 #, fuzzy, c-format msgid "(Creator ID '%s') " msgstr "(Oprettet af '%s')..." #: ../sync.c:1520 #, fuzzy, c-format msgid "(SDcard dir %s)... " msgstr "(Oprettet af '%s')..." #: ../sync.c:1552 ../sync.c:1565 ../sync.c:1580 ../sync.c:1593 #, c-format msgid "" "\n" "Unable to open file: %s\n" msgstr "" "\n" "Kunne ikke åbne fil: %s\n" #: ../sync.c:1605 #, c-format msgid "Install %s failed" msgstr "Installering af %s mislykkedes" #: ../sync.c:1609 msgid "Failed.\n" msgstr "Mislykkedes.\n" #: ../sync.c:1615 #, c-format msgid "Installed %s" msgstr "%s installeret" #: ../sync.c:1726 #, c-format msgid "%s:%d Error getting app info %s\n" msgstr "%s:%d Fejl ved indhentning af appinfo %s\n" #: ../sync.c:1732 ../sync.c:1762 #, c-format msgid "%s:%d Error unpacking app info %s\n" msgstr "%s:%d Fejl ved udpakning af appinfo %s\n" #: ../sync.c:1753 #, c-format msgid "Error reading appinfo block for %s\n" msgstr "Fejl ved læsning af appinfo-blok for %s\n" #. Fix - need a func for this logging #: ../sync.c:1991 ../sync.c:1995 #, c-format msgid "Could not add category %s to remote.\n" msgstr "Kunne ikke tilføje kategori %s på ekstern.\n" #: ../sync.c:1992 ../sync.c:1998 #, c-format msgid "Too many categories on remote.\n" msgstr "For mange kategorier på ekstern.\n" #: ../sync.c:1993 ../sync.c:2001 #, c-format msgid "All records on desktop in %s will be moved to %s.\n" msgstr "Alle poster på skrivebordet i %s vil blive flyttet til %s.\n" #: ../sync.c:2096 ../sync.c:2814 #, c-format msgid "Syncing %s\n" msgstr "Synkroniserer %s\n" #: ../sync.c:2104 ../sync.c:2457 ../sync.c:2822 #, c-format msgid "Wrote an %s record." msgstr "Udskrev en %s-post." #: ../sync.c:2106 ../sync.c:2459 ../sync.c:2824 #, c-format msgid "Writing an %s record failed." msgstr "Udskrivning af en %s-post mislykkedes." #: ../sync.c:2108 ../sync.c:2461 ../sync.c:2826 #, c-format msgid "Deleting an %s record failed." msgstr "Sletning af en %s-post mislykkedes." #: ../sync.c:2110 ../sync.c:2463 ../sync.c:2828 #, c-format msgid "Deleted an %s record." msgstr "Slettede en %s-post." #: ../sync.c:2112 ../sync.c:2465 #, c-format msgid "Sync Conflict: duplicated an %s record." msgstr "Synkroniseringskonflikt: Duplikerede en %s-post." #: ../sync.c:2115 ../sync.c:2468 ../sync.c:2831 #, c-format msgid "Wrote a %s record." msgstr "Udskrev en %s-post." #: ../sync.c:2117 ../sync.c:2470 ../sync.c:2833 #, c-format msgid "Writing a %s record failed." msgstr "Udskrivning af en %s-post mislykkedes." #: ../sync.c:2119 ../sync.c:2472 ../sync.c:2835 #, c-format msgid "Deleting a %s record failed." msgstr "Sletning af en %s-post mislykkedes." #: ../sync.c:2121 ../sync.c:2474 ../sync.c:2837 #, c-format msgid "Deleted a %s record." msgstr "Slettede en %s-post." #: ../sync.c:2123 ../sync.c:2476 #, c-format msgid "Sync Conflict: duplicated a %s record." msgstr "Synkroniseringskonflikt: Duplikerede en %s-post." #: ../sync.c:2227 ../sync.c:2557 #, c-format msgid "Sync Conflict: a %s record must be manually merged\n" msgstr "Synkroniseringskonflikt: En %s-post skal manuelt sammenføjes\n" #: ../sync.c:2358 ../sync.c:2698 msgid "" "dlp_DeleteRecord failed\n" "This could be because the record was already deleted on the Palm\n" msgstr "" "dlp_DeleteRecord mislykkedes\n" "Det kan være fordi posten allerede var slettet på Palm'en\n" #: ../sync.c:2927 msgid "Finished installing user information.\n" msgstr "Afsluttede installation af brugerinformation.\n" #: ../sync.c:3084 #, c-format msgid " Syncing on device %s\n" msgstr " Synkroniserer på enhed %s\n" #: ../sync.c:3085 msgid " Press the HotSync button now\n" msgstr " Tryk på HotSync-knappen nu\n" #: ../sync.c:3127 ../sync.c:3149 ../sync.c:3170 #, c-format msgid "Last Synced Username-->\"%s\"\n" msgstr "Seneste synket brugernavn -->\"%s\"\n" #: ../sync.c:3128 ../sync.c:3150 ../sync.c:3171 #, c-format msgid "Last Synced UserID-->\"%d\"\n" msgstr "Seneste synket bruger-id -->\"%d\"\n" #: ../sync.c:3129 ../sync.c:3151 ../sync.c:3172 #, c-format msgid " This Username-->\"%s\"\n" msgstr " Dette brugernavn -->\"%s\"\n" #: ../sync.c:3130 ../sync.c:3152 ../sync.c:3173 #, c-format msgid " This User ID-->%d\n" msgstr " Denne bruger-id-->%d\n" #: ../sync.c:3194 #, c-format msgid "Username is \"%s\"\n" msgstr "Brugernavn er \"%s\"\n" #: ../sync.c:3195 #, c-format msgid "User ID is %d\n" msgstr "Bruger-id er %d\n" #: ../sync.c:3197 #, c-format msgid "lastSyncPC = %d\n" msgstr "Seneste SyncPC = %d\n" #: ../sync.c:3198 #, c-format msgid "This PC = %lu\n" msgstr "Denne pc = %lu\n" #: ../sync.c:3222 msgid "Sync canceled\n" msgstr "Synkronisering annulleret\n" #: ../sync.c:3245 msgid "Finished restoring handheld.\n" msgstr "Afsluttede genskabelse af håndholdt.\n" #: ../sync.c:3246 msgid "You may need to sync to update J-Pilot.\n" msgstr "Du skal måske synkronisere for at opdatere J-Pilot.\n" #: ../sync.c:3268 msgid "Doing a fast sync.\n" msgstr "Udfører hurtig synkronisering\n" #: ../sync.c:3281 msgid "Doing a slow sync.\n" msgstr "Udfører en langsom synkronisering\n" #: ../sync.c:3356 msgid "Thank you for using J-Pilot." msgstr "Tak for at du bruger J-Pilot." #: ../sync.c:3401 ../sync.c:3469 msgid "Finished.\n" msgstr "Færdig.\n" #: ../sync.c:3436 #, fuzzy, c-format msgid "%s: sync process already in progress (process ID = %d)\n" msgstr "" "%s: Synkroniseringsproces er allerede i gang (proces-id = %d\n" ")" #: ../sync.c:3437 #, fuzzy, c-format msgid "" "%s: press the HotSync button on the cradle\n" " or stop the sync by using the cancel sync button\n" " or stop the sync by typing \"kill %d\" at the command line\n" msgstr "" "%s: Tryk på hotsync-knappen på stilladset\n" " eller stop synkroniseringen ved at taste »kill %d« på kommandolinjen\n" #: ../sync.c:3468 #, c-format msgid "Exiting with status %s\n" msgstr "Afsluttede med status %s\n" #: ../todo.c:266 #, c-format msgid "ToDo description text > %d, truncating to %d\n" msgstr "Beskrivelsestekst for huskeliste > %d, forkorter til %d\n" #: ../todo.c:272 #, c-format msgid "ToDo note text > %d, truncating to %d\n" msgstr "Notetekst for huskeliste > %d, forkorter til %d\n" #: ../todo_gui.c:161 msgid "Due Date" msgstr "Forfaldsdato" #: ../todo_gui.c:532 msgid "File doesn't appear to be todo.dat format\n" msgstr "Filen lader ikke til at være i todo.dat-format\n" #: ../todo_gui.c:596 msgid "DAT/TDA (Palm Archive Formats)" msgstr "DAT/TDA (Arkivformater til Palm)" #: ../todo_gui.c:688 #, c-format msgid "" "ToDo exported from %s %s on %s\n" "\n" msgstr "" "Huskeliste eksporteret fra %s %s den %s\n" "\n" #: ../todo_gui.c:726 #, c-format msgid "Can't export todo %d\n" msgstr "Kan ikke eksportere huskeliste %d\n" #: ../todo_gui.c:766 #, c-format msgid "Due Date: None\n" msgstr "Forfaldsdato: Ingen\n" #: ../todo_gui.c:769 #, c-format msgid "Due Date: %s\n" msgstr "Forfaldsdato: %s\n" #: ../todo_gui.c:771 #, c-format msgid "Priority: %d\n" msgstr "Prioritet: %d\n" #: ../todo_gui.c:772 #, c-format msgid "Completed: %s\n" msgstr "Udført: %s\n" #: ../todo_gui.c:774 #, c-format msgid "Description: %s\n" msgstr "Beskrivelse: %s\n" #: ../todo_gui.c:777 #, c-format msgid "" "Note: %s\n" "\n" msgstr "" "Note: %s\n" "\n" #: ../todo_gui.c:1610 msgid "Priority out of range\n" msgstr "Prioritet uden for interval\n" #: ../todo_gui.c:1932 ../KeyRing/keyring.c:1310 #, c-format msgid "No date" msgstr "Ingen dato" #. Completed checkbox #: ../todo_gui.c:2414 msgid "Completed" msgstr "Udført" #: ../todo_gui.c:2421 msgid "Priority:" msgstr "Prioritet:" #: ../todo_gui.c:2423 msgid "Set priority Alt+#" msgstr "" #: ../todo_gui.c:2444 msgid "Date Due:" msgstr "Forfaldsdato:" #: ../utils.c:332 msgid "Today" msgstr "I dag" #: ../utils.c:577 #, c-format msgid "Couldn't find empty DB file %s: %s\n" msgstr "Kunne ikke finde top DB-fil %s: %s\n" #: ../utils.c:580 msgid " may not be installed.\n" msgstr " er måske ikke installeret.\n" #. Can't create directory #: ../utils.c:615 ../utils.c:619 #, c-format msgid "Can't create directory %s\n" msgstr "Kan ikke oprette mappe %s\n" #: ../utils.c:625 #, c-format msgid "%s is not a directory\n" msgstr "%s er ikke en mappe\n" #: ../utils.c:630 #, c-format msgid "Unable to get write permission for directory %s\n" msgstr "Kunne ikke få skriveadgang til mappe %s\n" #: ../utils.c:1330 ../utils.c:1354 msgid "Save Changed Record?" msgstr "Gem ændret post?" #: ../utils.c:1331 ../utils.c:1355 msgid "Do you want to save the changes to this record?" msgstr "Vil du gemme ændringerne i denne post?" #: ../utils.c:1336 ../utils.c:1360 msgid "Save New Record?" msgstr "Gem ny post?" #: ../utils.c:1337 ../utils.c:1361 msgid "Do you want to save this new record?" msgstr "Ønsker du at gemme denne nye post?" #: ../utils.c:1652 msgid "infinite loop, breaking\n" msgstr "uendeligt loop, afbryder\n" #: ../utils.c:1876 #, fuzzy, c-format msgid " -p skip loading plugins\n" msgstr " -p springer indlæsning af udvidelsesmoduler over.\n" #: ../utils.c:1877 #, fuzzy, c-format msgid " -a ignore missed alarms since the last time program was run\n" msgstr "" " -a ignorerer oversete alarmer siden sidste gang programmet blev kørt.\n" #: ../utils.c:1878 #, fuzzy, c-format msgid " -A ignore all alarms past and future\n" msgstr " -A ignorerer alle alarmer tidligere og fremover.\n" #: ../utils.c:1879 #, c-format msgid " -s start sync using existing instance of GUI\n" msgstr "" #: ../utils.c:1880 #, c-format msgid " -i iconify program immediately after launch\n" msgstr "" #: ../utils.c:1881 #, fuzzy, c-format msgid "" " -geometry {X geometry} use specified geometry for main window\n" "\n" msgstr " -geometry bruger x-geometri argument på hovedvindue\n" #: ../utils.c:1882 #, fuzzy, c-format msgid " The PILOTPORT and PILOTRATE environment variables specify\n" msgstr " De miljøvariabler som PILOTPORT og PILOTRATE bruges til at angive\n" #: ../utils.c:1883 #, c-format msgid " which port to sync on, and at what speed.\n" msgstr " hvilken port der skal synkroniseres på og med hvilken hastighed.\n" #: ../utils.c:1884 #, c-format msgid " If PILOTPORT is not set then it defaults to /dev/pilot.\n" msgstr " hvis PILOTPORT ikke er angivet er standarden /dev/pilot.\n" #: ../utils.c:1921 msgid "Error reading file" msgstr "Fejl ved læsning af fil" #: ../utils.c:1971 msgid "Date compiled" msgstr "Dato for kompilering" #: ../utils.c:1972 msgid "Compiled with these options:" msgstr "Kompileret med disse tilvalg:" #: ../utils.c:1974 msgid "Installed Path" msgstr "Installeret sti" #: ../utils.c:1976 msgid "pilot-link version" msgstr "pilot-link version" #: ../utils.c:1980 msgid "USB support" msgstr "USB-understøttelse" #: ../utils.c:1981 ../utils.c:1984 ../utils.c:1990 ../utils.c:1996 #: ../utils.c:2002 ../utils.c:2008 ../utils.c:2013 msgid "yes" msgstr "ja" #: ../utils.c:1982 msgid "Private record support" msgstr "Understøttelse af private poster" #: ../utils.c:1986 ../utils.c:1992 ../utils.c:1998 ../utils.c:2004 #: ../utils.c:2010 msgid "no" msgstr "nej" #: ../utils.c:1988 msgid "Datebk support" msgstr "Datebk-understøttelse" #: ../utils.c:1994 msgid "Plugin support" msgstr "Understøttelse af udvidelsesmodul" #: ../utils.c:2000 msgid "Manana support" msgstr "Understøttelse af Manana" #: ../utils.c:2006 msgid "NLS support (foreign languages)" msgstr "NLS-understøttelse (fremmed sprog)" #: ../utils.c:2012 msgid "GTK2 support" msgstr "GTK2-understøttelse" #. No HOME var #: ../utils.c:2055 msgid "Can't get HOME environment variable\n" msgstr "Kan ikke indhente HJEMME-miljøvariabel\n" #: ../utils.c:2062 msgid "HOME environment variable is too long to process\n" msgstr "HJEMME-miljøvariabel er for lang til at kunne behandles\n" #: ../utils.c:2557 msgid "Edit Categories..." msgstr "Rediger kategorier..." #: ../utils.c:3223 msgid "PC ID is 0.\n" msgstr "Pc-id er 0.\n" #: ../utils.c:3224 #, c-format msgid "Generated a new PC ID. It is %lu\n" msgstr "Oprettede en ny pc-id. Den er %lu\n" #: ../utils.c:3309 msgid "Invalid UTF-8 encoding in export string\n" msgstr "Ugyldig UTF-8-kodning i eksportstreng\n" #: ../utils.c:3470 #, c-format msgid "Today is %A, %x %X" msgstr "I dag er det %A %x %X" #: ../utils.c:3472 #, c-format msgid "Today is %%A, %s %s" msgstr "I dag er det %%A %s %s" #: ../utils.c:3701 #, c-format msgid "" "Incorrect header format for CSV import\n" "Check line 1 of file %s\n" "Aborting import\n" msgstr "" "Ukorrekt teksthovedformat for CSV-import\n" "Tjek linje 1 i filen %s\n" "Afbryder import\n" #: ../utils.c:3738 #, c-format msgid "Error writing version header to file: %s%s\n" msgstr "Fejl ved skrivning af versionteksthoved til filen: %s%s\n" #: ../utils.c:3743 #, c-format msgid "Error writing next id to file: %s%s" msgstr "Fejl ved skrivning af næste id til filen: %s%s" #: ../weekview_gui.c:297 msgid "Weekly View" msgstr "Ugentlig visning" #: ../weekview_gui.c:337 msgid "Last week Alt+LeftArrow" msgstr "" #: ../weekview_gui.c:366 msgid "Next week Alt+RightArrow" msgstr "" #: ../Expense/expense.c:97 msgid "Australia" msgstr "Australien" #: ../Expense/expense.c:98 msgid "Austria" msgstr "Østrig" #: ../Expense/expense.c:99 msgid "Belgium" msgstr "Belgien" #: ../Expense/expense.c:100 msgid "Brazil" msgstr "Brasilien" #: ../Expense/expense.c:101 msgid "Canada" msgstr "Canada" #: ../Expense/expense.c:102 msgid "Denmark" msgstr "Danmark" #: ../Expense/expense.c:103 msgid "EU (Euro)" msgstr "EU (euro)" #: ../Expense/expense.c:104 msgid "Finland" msgstr "Finland" #: ../Expense/expense.c:105 msgid "France" msgstr "Frankrig" #: ../Expense/expense.c:106 msgid "Germany" msgstr "Tyskland" #: ../Expense/expense.c:107 msgid "Hong Kong" msgstr "Hong Kong" #: ../Expense/expense.c:108 msgid "Iceland" msgstr "Island" #: ../Expense/expense.c:109 msgid "India" msgstr "Indien" #: ../Expense/expense.c:110 msgid "Indonesia" msgstr "Indonesien" #: ../Expense/expense.c:111 msgid "Ireland" msgstr "Irland" #: ../Expense/expense.c:112 msgid "Italy" msgstr "Italien" #: ../Expense/expense.c:113 msgid "Japan" msgstr "Japan" #: ../Expense/expense.c:114 msgid "Korea" msgstr "Korea" #: ../Expense/expense.c:115 msgid "Luxembourg" msgstr "Luxembourg" #: ../Expense/expense.c:116 msgid "Malaysia" msgstr "Malaysia" #: ../Expense/expense.c:117 msgid "Mexico" msgstr "Mexico" #: ../Expense/expense.c:118 msgid "Netherlands" msgstr "Holland" #: ../Expense/expense.c:119 msgid "New Zealand" msgstr "New Zealand" #: ../Expense/expense.c:120 msgid "Norway" msgstr "Norge" #: ../Expense/expense.c:121 msgid "P.R.C." msgstr "P.R.C." #: ../Expense/expense.c:122 msgid "Philippines" msgstr "Filippinerne" #: ../Expense/expense.c:123 msgid "Singapore" msgstr "Singapore" #: ../Expense/expense.c:124 msgid "Spain" msgstr "Spanien" #: ../Expense/expense.c:125 msgid "Sweden" msgstr "Sverige" #: ../Expense/expense.c:126 msgid "Switzerland" msgstr "Schweitz" #: ../Expense/expense.c:127 msgid "Taiwan" msgstr "Taiwan" #: ../Expense/expense.c:128 msgid "Thailand" msgstr "Thailand" #: ../Expense/expense.c:129 msgid "United Kingdom" msgstr "Storbritannien" #: ../Expense/expense.c:130 msgid "United States" msgstr "USA" #: ../Expense/expense.c:518 ../Expense/expense.c:529 msgid "Expense" msgstr "Udgift" #: ../Expense/expense.c:550 ../Expense/expense.c:1388 msgid "Airfare" msgstr "Flyrejse" #: ../Expense/expense.c:552 ../Expense/expense.c:1389 msgid "Breakfast" msgstr "Morgenmad" #: ../Expense/expense.c:554 ../Expense/expense.c:1390 msgid "Bus" msgstr "Bus" #: ../Expense/expense.c:556 ../Expense/expense.c:1391 msgid "BusinessMeals" msgstr "Forretningsfrokoster" #: ../Expense/expense.c:558 ../Expense/expense.c:1392 msgid "CarRental" msgstr "Billeje" #: ../Expense/expense.c:560 ../Expense/expense.c:1393 msgid "Dinner" msgstr "Middag" #: ../Expense/expense.c:562 ../Expense/expense.c:1394 msgid "Entertainment" msgstr "Fornøjelse" #: ../Expense/expense.c:564 ../Expense/expense.c:1395 msgid "Fax" msgstr "Fax" #: ../Expense/expense.c:566 ../Expense/expense.c:1396 msgid "Gas" msgstr "Benzin" #: ../Expense/expense.c:568 ../Expense/expense.c:1397 msgid "Gifts" msgstr "Gaver" #: ../Expense/expense.c:570 ../Expense/expense.c:1398 msgid "Hotel" msgstr "Hotel" #: ../Expense/expense.c:572 ../Expense/expense.c:1399 msgid "Incidentals" msgstr "Uforudsete" #: ../Expense/expense.c:574 ../Expense/expense.c:1400 msgid "Laundry" msgstr "Tøjvask" #: ../Expense/expense.c:576 ../Expense/expense.c:1401 msgid "Limo" msgstr "Limousine" #: ../Expense/expense.c:578 ../Expense/expense.c:1402 msgid "Lodging" msgstr "Overnatning" #: ../Expense/expense.c:580 ../Expense/expense.c:1403 msgid "Lunch" msgstr "Frokost" #: ../Expense/expense.c:582 ../Expense/expense.c:1404 msgid "Mileage" msgstr "Kørsel" #: ../Expense/expense.c:586 ../Expense/expense.c:1406 msgid "Parking" msgstr "Parkering" #: ../Expense/expense.c:588 ../Expense/expense.c:1407 msgid "Postage" msgstr "Porto" #: ../Expense/expense.c:590 ../Expense/expense.c:1408 msgid "Snack" msgstr "Snack" #: ../Expense/expense.c:592 ../Expense/expense.c:1409 msgid "Subway" msgstr "Metro" #: ../Expense/expense.c:594 ../Expense/expense.c:1410 msgid "Supplies" msgstr "Leverencer" #: ../Expense/expense.c:596 ../Expense/expense.c:1411 msgid "Taxi" msgstr "Taxi" #: ../Expense/expense.c:598 ../Expense/expense.c:1412 msgid "Telephone" msgstr "Telefon" #: ../Expense/expense.c:600 ../Expense/expense.c:1413 msgid "Tips" msgstr "Drikkepenge" #: ../Expense/expense.c:602 ../Expense/expense.c:1414 msgid "Tolls" msgstr "Told" #: ../Expense/expense.c:604 ../Expense/expense.c:1415 msgid "Train" msgstr "Tog" #: ../Expense/expense.c:1239 msgid "Expense: Unknown expense type\n" msgstr "Udgift: Ukendt udgiftstype\n" #: ../Expense/expense.c:1245 msgid "Expense: Unknown payment type\n" msgstr "Udgift: Ukendt betalingstype\n" #: ../Expense/expense.c:1377 msgid "American Express" msgstr "American Express" #: ../Expense/expense.c:1378 msgid "Cash" msgstr "Kontant" #: ../Expense/expense.c:1379 msgid "Check" msgstr "Check" #: ../Expense/expense.c:1380 msgid "Credit Card" msgstr "Kreditkort" #: ../Expense/expense.c:1381 msgid "Master Card" msgstr "Master Card" #: ../Expense/expense.c:1382 msgid "Prepaid" msgstr "Forudbetalt" #: ../Expense/expense.c:1383 msgid "VISA" msgstr "VISA" #: ../Expense/expense.c:1619 msgid "Type" msgstr "Type" #: ../Expense/expense.c:1620 msgid "Amount" msgstr "Beløb" #. Category Menu #: ../Expense/expense.c:1704 msgid "Category:" msgstr "Kategori:" #. Type Menu #: ../Expense/expense.c:1712 msgid "Type:" msgstr "Type:" #. Payment Menu #: ../Expense/expense.c:1720 msgid "Payment:" msgstr "Betaling:" #. Currency Menu #: ../Expense/expense.c:1728 msgid "Currency:" msgstr "Valuta:" #: ../Expense/expense.c:1748 msgid "Month:" msgstr "Måned:" #: ../Expense/expense.c:1762 msgid "Day:" msgstr "Dag:" # msgid "WeekView" # msgstr "Pr. uge" # msgid "MonthView" # msgstr "Pr. mnd" #: ../Expense/expense.c:1776 msgid "Year:" msgstr "År:" #. Amount Entry #: ../Expense/expense.c:1789 msgid "Amount:" msgstr "Beløb:" #. Vendor Entry #: ../Expense/expense.c:1799 msgid "Vendor:" msgstr "Leverandør:" #. City #: ../Expense/expense.c:1809 msgid "City:" msgstr "By:" #. Attendees #: ../Expense/expense.c:1819 msgid "Attendees" msgstr "Deltagere" #. ------------------------------------------- #: ../Expense/expense.c:2102 #, fuzzy, c-format msgid "" "%s\n" "\n" "Expense plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org" msgstr "" "%s\n" "\n" "Udgiftsudvidelsesmodulet til J-Pilot blev skrevet af\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org\n" "http://jpilot.org" #: ../KeyRing/keyring.c:291 msgid "KeyRing: pack_KeyRing(): buf_size too small\n" msgstr "KeyRing: pack_KeyRing(): buf_size for lille\n" #: ../KeyRing/keyring.c:1699 msgid "Incorrect, Reenter KeyRing Password" msgstr "Ugyldigt, indtast KeyRing-kode igen" #: ../KeyRing/keyring.c:1701 msgid "Enter a NEW KeyRing Password" msgstr "Indtast en NY KeyRing-adgangskode" #: ../KeyRing/keyring.c:1703 msgid "Enter KeyRing Password" msgstr "Indtast KeyRing-adgangskode" #: ../KeyRing/keyring.c:1769 #, c-format msgid "KeyRing: file %s not found.\n" msgstr "KeyRing: Fil %s blev ikke fundet.\n" #: ../KeyRing/keyring.c:1770 msgid "KeyRing: Try Syncing.\n" msgstr "KeyRing: Forsøg synkronisering.\n" #: ../KeyRing/keyring.c:1861 ../KeyRing/keyring.c:1872 msgid "KeyRing" msgstr "KeyRing" #. ------------------------------------------- #: ../KeyRing/keyring.c:1900 #, fuzzy, c-format msgid "" "%s\n" "\n" "KeyRing plugin for J-Pilot was written by\n" "Judd Montgomery (c) 2001.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "KeyRing is a free PalmOS program for storing\n" "passwords and other information in encrypted form\n" "http://gnukeyring.sourceforge.net" msgstr "" "%s\n" "\n" "Udvidelsesmodulet KeyRing til J-Pilot blev skrevet af\n" "Judd Montgomery (c) 2001.\n" "judd@jpilot.org\n" "http://jpilot.org\n" "\n" "KeyRing er et gratis PalmOS-program der kan gemme\n" "adgangskoder og anden information i krypteret form\n" "http://gnukeyring.sourceforge.net" #: ../KeyRing/keyring.c:2137 #, c-format msgid "" "Keys exported from %s %s on %s\n" "\n" msgstr "" "Nøgler eksporteret fra %s %s den %s\n" "\n" #: ../KeyRing/keyring.c:2162 #, c-format msgid "Can't export key %d\n" msgstr "Kan ikke eksportere nøgle %d\n" #: ../KeyRing/keyring.c:2229 msgid "B-FOLDERS CSV" msgstr "" #. Change Password button #: ../KeyRing/keyring.c:2384 msgid "" "Change\n" "KeyRing\n" "Password" msgstr "" "Ændr\n" "KeyRing-\n" "adgangskode" #. Clist #: ../KeyRing/keyring.c:2497 msgid "Changed" msgstr "Ændret" #: ../KeyRing/keyring.c:2499 msgid "Account" msgstr "Konto" #. Name entry #: ../KeyRing/keyring.c:2593 msgid "name: " msgstr "navn: " #. Account entry #: ../KeyRing/keyring.c:2601 msgid "account: " msgstr "konto: " #. Password entry #: ../KeyRing/keyring.c:2609 msgid "password: " msgstr "adgangskode: " #. Last Changed entry #: ../KeyRing/keyring.c:2616 msgid "last changed: " msgstr "sidst ændret: " #. Generate Password button (creates random password) #: ../KeyRing/keyring.c:2626 msgid "Generate Password" msgstr "Opret adgangskode" #: ../SyncTime/synctime.c:61 msgid "SyncTime" msgstr "SyncTime" #. ------------------------------------------- #: ../SyncTime/synctime.c:72 #, fuzzy, c-format msgid "" "%s\n" "\n" "SyncTime plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "SyncTime WILL NOT work with PalmOS 3.3!" msgstr "" "%s\n" "\n" "Udvidelsesmodulet SyncTime til J-Pilot blev skrevet af\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org\n" "http://jpilot.org\n" "\n" "SyncTime VIL IKKE virke med PalmOS 3.3!" #: ../SyncTime/synctime.c:106 msgid "synctime: Palm OS Version 3.25 and 3.30 do not support SyncTime\n" msgstr "synctime: Palm OS version 3.25 og 3.30 understøtter ikke SyncTime\n" #: ../SyncTime/synctime.c:107 msgid "synctime: NOT setting the time on the pilot\n" msgstr "synctime: Indstiller IKKE tiden på piloten\n" #: ../SyncTime/synctime.c:112 msgid "synctime: Setting the time on the pilot... " msgstr "synctime: Indstiller tiden på piloten... " #: ../SyncTime/synctime.c:117 msgid "Done\n" msgstr "Færdig\n" #~ msgid "Serial Port" #~ msgstr "Serielport" #~ msgid " -i makes program iconify itself upon launch.\n" #~ msgstr " -i lader programmet ikonificere sig selv ved opstart.\n" #~ msgid "Your HOME environment variable is too long(>1024)\n" #~ msgstr "Din HJEMME-miljøvariabel er for lang(>1024)\n" #~ msgid "W" #~ msgstr "U" #~ msgid "M" #~ msgstr "M" #, fuzzy #~ msgid "" #~ " [-v] || [-h] || [-d] || [-a] || [-A] || [-i]\n" #~ " -v displays version and compile options and exits.\n" #~ " -h displays help and exits.\n" #~ " -d displays debug info to stdout.\n" #~ " -p do not load plugins.\n" #~ " -a ignore missed alarms since the last time this program was run.\n" #~ " -A ignore all alarms, past and future.\n" #~ " -i makes jpilot iconify itself upon launch\n" #~ " The PILOTPORT, and PILOTRATE env variables are used to specify\n" #~ " which port to sync on, and at what speed.\n" #~ " If PILOTPORT is not set then it defaults to /dev/pilot.\n" #~ msgstr "" #~ " [ [-v] || [-h] || [-d] || [-a] || [-A]\n" #~ " -v viser versionsnummer og afslutter.\n" #~ " -h viser hjælp og afslutter.\n" #~ " -d viser fejlsøgningsoplysninger på stdud.\n" #~ " -p undlader at indlæse indstik.\n" #~ " -a ignorerer ubehandlede alarmer, fra siden sidste gang programmet blev " #~ "kørt.\n" #~ " -A ignorer alle alarmer, gamle og fremtidige\n" #~ " Miljøvariablene PILOTPORT og PILOTRATE bruges til at angive hvilken\n" #~ " port der skal synkroniseres på samt med hvilken hastighed.\n" #~ " Hvis PILOTPORT ikke er sat, benyttes /dev/pilot.\n" jpilot-1.8.1.2/prefs.h0000644000175000017500000001437611547002202011377 00000000000000/* $Id: prefs.h,v 1.54 2011-02-10 23:28:07 rikster5 Exp $ */ /******************************************************************************* * prefs.h * A module of J-Pilot http://jpilot.org * * Copyright (C) 1999-2002 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef __PREFS_H__ #define __PREFS_H__ #include "libplugin.h" #define PREF_RCFILE 0 #define PREF_TIME 1 #define PREF_SHORTDATE 2 #define PREF_LONGDATE 3 #define PREF_FDOW 4 /*First Day Of the Week */ #define PREF_SHOW_DELETED 5 #define PREF_SHOW_MODIFIED 6 #define PREF_TODO_HIDE_COMPLETED 7 #define PREF_DATEBOOK_HIGHLIGHT_DAYS 8 #define PREF_PORT 9 #define PREF_RATE 10 #define PREF_USER 11 #define PREF_USER_ID 12 #define PREF_PC_ID 13 #define PREF_NUM_BACKUPS 14 #define PREF_WINDOW_WIDTH 15 #define PREF_WINDOW_HEIGHT 16 #define PREF_DATEBOOK_PANE 17 #define PREF_ADDRESS_PANE 18 #define PREF_TODO_PANE 19 #define PREF_MEMO_PANE 20 #define PREF_USE_DB3 21 #define PREF_LAST_APP 22 #define PREF_PRINT_THIS_MANY 23 #define PREF_PRINT_ONE_PER_PAGE 24 #define PREF_NUM_BLANK_LINES 25 #define PREF_PRINT_COMMAND 26 #define PREF_CHAR_SET 27 #define PREF_SYNC_DATEBOOK 28 #define PREF_SYNC_ADDRESS 29 #define PREF_SYNC_TODO 30 #define PREF_SYNC_MEMO 31 #define PREF_SYNC_MEMO32 32 #define PREF_ADDRESS_NOTEBOOK_PAGE 33 #define PREF_OUTPUT_HEIGHT 34 #define PREF_OPEN_ALARM_WINDOWS 35 #define PREF_DO_ALARM_COMMAND 36 #define PREF_ALARM_COMMAND 37 #define PREF_REMIND_IN 38 #define PREF_REMIND_UNITS 39 #define PREF_PASSWORD 40 #define PREF_MEMO32_MODE 41 #define PREF_PAPER_SIZE 42 #define PREF_DATEBOOK_EXPORT_FILENAME 43 #define PREF_DATEBOOK_IMPORT_PATH 44 #define PREF_ADDRESS_EXPORT_FILENAME 45 #define PREF_ADDRESS_IMPORT_PATH 46 #define PREF_TODO_EXPORT_FILENAME 47 #define PREF_TODO_IMPORT_PATH 48 #define PREF_MEMO_EXPORT_FILENAME 49 #define PREF_MEMO_IMPORT_PATH 50 #define PREF_MANANA_MODE 51 #define PREF_SYNC_MANANA 52 #define PREF_USE_JOS 53 #define PREF_PHONE_PREFIX1 54 #define PREF_CHECK_PREFIX1 55 #define PREF_PHONE_PREFIX2 56 #define PREF_CHECK_PREFIX2 57 #define PREF_PHONE_PREFIX3 58 #define PREF_CHECK_PREFIX3 59 #define PREF_DIAL_COMMAND 60 #define PREF_DATEBOOK_TODO_PANE 61 #define PREF_DATEBOOK_TODO_SHOW 62 #define PREF_TODO_HIDE_NOT_DUE 63 #define PREF_TODO_COMPLETION_DATE 64 #define PREF_INSTALL_PATH 65 #define PREF_MONTHVIEW_WIDTH 66 #define PREF_MONTHVIEW_HEIGHT 67 #define PREF_WEEKVIEW_WIDTH 68 #define PREF_WEEKVIEW_HEIGHT 69 #define PREF_LAST_DATE_CATEGORY 70 #define PREF_LAST_ADDR_CATEGORY 71 #define PREF_LAST_TODO_CATEGORY 72 #define PREF_LAST_MEMO_CATEGORY 73 #define PREF_MAIL_COMMAND 74 #define PREF_VERSION 75 #define PREF_UTF_ENCODING 76 #define PREF_CONFIRM_FILE_INSTALL 77 #define PREF_TODO_DAYS_DUE 78 #define PREF_TODO_DAYS_TILL_DUE 79 #define PREF_SHOW_TOOLTIPS 80 #define PREF_DATEBOOK_NOTE_PANE 81 #define PREF_DATEBOOK_HI_TODAY 82 #define PREF_DATEBOOK_ANNI_YEARS 83 #define PREF_KEYRING_PANE 84 #define PREF_EXPENSE_PANE 85 /* 0 for Datebook, 1 for Calendar */ #define PREF_DATEBOOK_VERSION 86 /* 0 for Address, 1 for Contacts */ #define PREF_ADDRESS_VERSION 87 /* 0 for Todo, 1 for Tasks */ #define PREF_TODO_VERSION 88 /* 0 for Memo, 1 for Memos, 2 for Memo32 */ #define PREF_MEMO_VERSION 89 #define PREF_CONTACTS_PHOTO_FILENAME 90 #define PREF_TODO_SORT_COLUMN 91 #define PREF_TODO_SORT_ORDER 92 #define PREF_ADDR_SORT_ORDER 93 #define PREF_ADDR_NAME_COL_SZ 94 #define PREF_TODO_NOTE_PANE 95 #define PREF_EXPENSE_SORT_COLUMN 96 #define PREF_EXPENSE_SORT_ORDER 97 #define PREF_KEYR_EXPORT_FILENAME 98 #define PREF_EXTERNAL_EDITOR 99 /* Number of preferences in use */ #define NUM_PREFS 100 /* Maximum number of preferences */ #define MAX_NUM_PREFS 250 /* New code should use MAX_PREF_LEN for clarity over MAX_PREF_VALUE */ #define MAX_PREF_LEN 200 #define MAX_PREF_VALUE 200 #define MAX_PREF_NUM_BACKUPS 99 #define CHAR_SET_LATIN1 0 /* English, European, Latin based languages */ #define CHAR_SET_JAPANESE 1 #define CHAR_SET_1250 2 /* Czech, Polish (Unix: ISO-8859-2) */ #define CHAR_SET_1251 3 /* Russian; palm koi8-r, host win1251 */ #define CHAR_SET_1251_B 4 /* Russian; palm win1251, host koi8-r */ #define CHAR_SET_TRADITIONAL_CHINESE 5 /* Taiwan Chinese */ #define CHAR_SET_KOREAN 6 /* Korean Hangul */ #define CHAR_SET_UTF 7 #define CHAR_SET_1250_UTF 7 /* Czech, Polish (latin2, CP1250) */ #define CHAR_SET_1252_UTF 8 /* Latin European (latin1, CP1252) */ #define CHAR_SET_1253_UTF 9 /* Modern Greek (CP1253) */ #define CHAR_SET_ISO8859_2_UTF 10 /* Czech, Polish (latin2, ISO8859-2) */ #define CHAR_SET_KOI8_R_UTF 11 /* Cyrillic (KOI8-R) */ #define CHAR_SET_1251_UTF 12 /* Cyrillic (CP1251) */ #define CHAR_SET_GBK_UTF 13 /* Chinese (GB2312) */ #define CHAR_SET_SJIS_UTF 14 /* Japanese (SJIS) */ #define CHAR_SET_1255_UTF 15 /* Hebrew (CP1255) */ #define CHAR_SET_BIG5_UTF 16 /* Chinese (BIG-5) */ #define CHAR_SET_949_UTF 17 /* Korean (CP949) */ #define NUM_CHAR_SETS 18 void pref_init(void); int pref_read_rc_file(void); int pref_write_rc_file(void); int get_pref(int which, long *n, const char **ret); int set_pref(int which, long n, const char *string, int save); /* Specialized functions */ int set_pref_possibility(int which, long n, int save); int get_pref_possibility(int which, int n, char *ret); int get_pref_dmy_order(void); void get_pref_hour_ampm(char *datef); int get_pref_time_no_secs(char *datef); int get_pref_time_no_secs_no_ampm(char *datef); /* * Get the preference value as long. If failed to do so, return the * specified default. */ long get_pref_int_default(int which, long defval); int make_pref_menu(GtkWidget **pref_menu, int pref_num); #endif jpilot-1.8.1.2/password.h0000644000175000017500000000334711524574422012133 00000000000000/* $Id: password.h,v 1.11 2010-10-15 16:42:13 rikster5 Exp $ */ /******************************************************************************* * password.h * A module of J-Pilot http://jpilot.org * * Copyright (C) 1999-2002 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef __PASSWORD_H__ #define __PASSWORD_H__ #define SHOW_PRIVATES 1 #define MASK_PRIVATES 2 #define HIDE_PRIVATES 0 #define GET_PRIVATES -1 #define PASSWD_LEN 32 /* * hide passed 1 will set the hide flag * hide passed 0 will unset the hide flag * hide passed -1 will return the current hide flag * hide flag is always returned * The caller will have to ensure a password was entered before calling here */ int show_privates(int hide); #ifdef ENABLE_PRIVATE /* len is the length of the bin str, hex_str must be at least twice as long */ void bin_to_hex_str(unsigned char *bin, char *hex_str, int len); int dialog_password(GtkWindow *main_window, char *ascii_password, int retry); int verify_password(char *password); #endif /* ENABLE_PRIVATE */ #endif jpilot-1.8.1.2/alarms.h0000644000175000017500000000255611365051715011547 00000000000000/* $Id: alarms.h,v 1.7 2010-03-29 05:44:27 rikster5 Exp $ */ /******************************************************************************* * alarms.h * A module of J-Pilot http://jpilot.org * * Copyright (C) 2000-2002 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ int alarms_init(unsigned char skip_past_alarms, unsigned char skip_all_alarms); /* * find the next alarm to happen after date2, and find all missed alarms * between date1 and date2. * soonest_only can be used to not find missed alarms. * date1, and date2 can be NULL, meaning the current time. */ int alarms_find_next(struct tm *date1, struct tm *date2, int soonest_only); jpilot-1.8.1.2/category.c0000644000175000017500000007723711524602776012116 00000000000000/* $Id: category.c,v 1.39 2011-02-09 21:07:42 rousseau Exp $ */ /******************************************************************************* * category.c * A module of J-Pilot http://jpilot.org * * Copyright (C) 2009-2010 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /********************************* Includes ***********************************/ #include "config.h" #include #include #include #include #include #include #include #include #include #include "i18n.h" #include "utils.h" #include "log.h" #include "prefs.h" /********************************* Constants **********************************/ #define EDIT_CAT_START 100 #define EDIT_CAT_NEW 101 #define EDIT_CAT_RENAME 102 #define EDIT_CAT_DELETE 103 #define EDIT_CAT_ENTRY_OK 104 #define EDIT_CAT_ENTRY_CANCEL 105 /* #define EDIT_CATS_DEBUG 1 */ /****************************** Prototypes ************************************/ struct dialog_cats_data { int button_hit; int selected; int state; GtkWidget *clist; GtkWidget *button_box; GtkWidget *entry_box; GtkWidget *entry; GtkWidget *label; char db_name[16]; struct CategoryAppInfo cai1; struct CategoryAppInfo cai2; }; /****************************** Main Code *************************************/ static int count_records_in_cat(char *db_name, int cat_index) { GList *records; GList *temp_list; int count, num; buf_rec *br; jp_logf(JP_LOG_DEBUG, "count_records_in_cat\n"); count = 0; num = jp_read_DB_files(db_name, &records); if (-1 == num) return 0; for (temp_list = records; temp_list; temp_list = temp_list->next) { if (temp_list->data) { br=temp_list->data; } else { continue; } if (!br->buf) continue; if ((br->rt==DELETED_PALM_REC) || (br->rt==DELETED_PC_REC) || (br->rt==MODIFIED_PALM_REC)) continue; if ((br->attrib & 0x0F) != cat_index) continue; count++; } jp_free_DB_records(&records); jp_logf(JP_LOG_DEBUG, "Leaving count_records_in_cat()\n"); return count; } static int edit_cats_delete_cats_pc3(char *DB_name, int cat) { char local_pc_file[FILENAME_MAX]; FILE *pc_in; PC3RecordHeader header; int num; int rec_len; int count=0; g_snprintf(local_pc_file, sizeof(local_pc_file), "%s.pc3", DB_name); pc_in = jp_open_home_file(local_pc_file, "r+"); if (pc_in==NULL) { jp_logf(JP_LOG_WARN, _("Unable to open file: %s\n"), local_pc_file); return EXIT_FAILURE; } while (!feof(pc_in)) { num = read_header(pc_in, &header); if (num!=1) { if (ferror(pc_in)) break; if (feof(pc_in)) break; } rec_len = header.rec_len; if (rec_len > 0x10000) { jp_logf(JP_LOG_WARN, _("PC file corrupt?\n")); fclose(pc_in); return EXIT_FAILURE; } if (((header.rt==NEW_PC_REC) || (header.rt==REPLACEMENT_PALM_REC)) && ((header.attrib&0x0F)==cat)) { if (fseek(pc_in, -(header.header_len), SEEK_CUR)) { jp_logf(JP_LOG_WARN, _("fseek failed - fatal error\n")); fclose(pc_in); return EXIT_FAILURE; } header.rt=DELETED_PC_REC; write_header(pc_in, &header); count++; } /* Skip this record now that we are done with it */ if (fseek(pc_in, rec_len, SEEK_CUR)) { jp_logf(JP_LOG_WARN, _("fseek failed - fatal error\n")); fclose(pc_in); return EXIT_FAILURE; } } fclose(pc_in); return count; } /* Helper routine to change categories. * Function changes category regardless of record type */ static int _edit_cats_change_cats_pc3(char *DB_name, int old_cat, int new_cat, int swap) { char local_pc_file[FILENAME_MAX]; FILE *pc_in; PC3RecordHeader header; int rec_len; int num; int current_cat; int count=0; g_snprintf(local_pc_file, sizeof(local_pc_file), "%s.pc3", DB_name); pc_in = jp_open_home_file(local_pc_file, "r+"); if (pc_in==NULL) { jp_logf(JP_LOG_WARN, _("Unable to open file: %s\n"), local_pc_file); return EXIT_FAILURE; } while (!feof(pc_in)) { num = read_header(pc_in, &header); if (num!=1) { if (ferror(pc_in)) break; if (feof(pc_in)) break; } rec_len = header.rec_len; if (rec_len > 0x10000) { jp_logf(JP_LOG_WARN, _("PC file corrupt?\n")); fclose(pc_in); return EXIT_FAILURE; } current_cat = header.attrib & 0x0F; if (current_cat==old_cat) { if (fseek(pc_in, -(header.header_len), SEEK_CUR)) { jp_logf(JP_LOG_WARN, _("fseek failed - fatal error\n")); fclose(pc_in); return EXIT_FAILURE; } header.attrib=(header.attrib&0xFFFFFFF0) | new_cat; write_header(pc_in, &header); count++; } if ((swap) && (current_cat==new_cat)) { if (fseek(pc_in, -(header.header_len), SEEK_CUR)) { jp_logf(JP_LOG_WARN, _("fseek failed - fatal error\n")); fclose(pc_in); return EXIT_FAILURE; } header.attrib=(header.attrib&0xFFFFFFF0) | old_cat; write_header(pc_in, &header); count++; } /* Skip the rest of the record now that we are done with it */ if (fseek(pc_in, rec_len, SEEK_CUR)) { jp_logf(JP_LOG_WARN, _("fseek failed - fatal error\n")); fclose(pc_in); return EXIT_FAILURE; } } fclose(pc_in); return count; } /* Exported routine to change categories in PC3 file */ int edit_cats_change_cats_pc3(char *DB_name, int old_cat, int new_cat) { return _edit_cats_change_cats_pc3(DB_name, old_cat, new_cat, FALSE); } /* Exported routine to swap categories in PC3 file */ int edit_cats_swap_cats_pc3(char *DB_name, int old_cat, int new_cat) { return _edit_cats_change_cats_pc3(DB_name, old_cat, new_cat, TRUE); } /* * This routine changes records from old_cat to new_cat. * It does not modify the local pdb file. * It does this by writing a modified record to the pc3 file. */ int edit_cats_change_cats_pdb(char *DB_name, int old_cat, int new_cat) { GList *temp_list; GList *records; buf_rec *br; int num, count; jp_logf(JP_LOG_DEBUG, "edit_cats_change_cats_pdb\n"); count=0; num = jp_read_DB_files(DB_name, &records); if (-1 == num) return 0; for (temp_list = records; temp_list; temp_list = temp_list->next) { if (temp_list->data) { br=temp_list->data; } else { continue; } if (!br->buf) continue; if ((br->rt==DELETED_PALM_REC) || (br->rt==MODIFIED_PALM_REC)) continue; if ((br->attrib & 0x0F) == old_cat) { if (new_cat==-1) { /* write a deleted rec */ jp_delete_record(DB_name, br, DELETE_FLAG); count++; } else { /* write a deleted rec */ br->attrib=(br->attrib&0xFFFFFFF0) | (new_cat&0x0F); jp_delete_record(DB_name, br, MODIFY_FLAG); br->rt=REPLACEMENT_PALM_REC; jp_pc_write(DB_name, br); count++; } } } jp_free_DB_records(&records); return count; } /* * This helper routine changes the category index of records in the pdb file. * It will change all old_index records to new_index and with the swap * option will also change new_index records to old_index ones. * Returns the number of records where the category was changed. */ static int _change_cat_pdb(char *DB_name, int old_index, int new_index, int swap) { char local_pdb_file[FILENAME_MAX]; char full_local_pdb_file[FILENAME_MAX]; char full_local_pdb_file2[FILENAME_MAX]; pi_file_t *pf1, *pf2; struct DBInfo infop; void *app_info; void *sort_info; void *record; size_t size; pi_uid_t uid; struct stat statb; struct utimbuf times; int idx; int attr; int cat; int count; jp_logf(JP_LOG_DEBUG, "_change_cat_pdb\n"); g_snprintf(local_pdb_file, sizeof(local_pdb_file), "%s.pdb", DB_name); get_home_file_name(local_pdb_file, full_local_pdb_file, sizeof(full_local_pdb_file)); strcpy(full_local_pdb_file2, full_local_pdb_file); strcat(full_local_pdb_file2, "2"); /* After we are finished, set the create and modify times of new file to the same as the old */ stat(full_local_pdb_file, &statb); times.actime = statb.st_atime; times.modtime = statb.st_mtime; pf1 = pi_file_open(full_local_pdb_file); if (!pf1) { jp_logf(JP_LOG_WARN, _("Unable to open file: %s\n"), full_local_pdb_file); return EXIT_FAILURE; } pi_file_get_info(pf1, &infop); pf2 = pi_file_create(full_local_pdb_file2, &infop); if (!pf2) { jp_logf(JP_LOG_WARN, _("Unable to open file: %s\n"), full_local_pdb_file2); return EXIT_FAILURE; } pi_file_get_app_info(pf1, &app_info, &size); pi_file_set_app_info(pf2, app_info, size); pi_file_get_sort_info(pf1, &sort_info, &size); pi_file_set_sort_info(pf2, sort_info, size); idx = 0; count = 0; while((pi_file_read_record(pf1, idx, &record, &size, &attr, &cat, &uid)) > 0) { if (cat==old_index) { cat=new_index; count++; } else if ((swap) && (cat==new_index)) { cat=old_index; count++; } pi_file_append_record(pf2, record, size, attr, cat, uid); idx++; } pi_file_close(pf1); pi_file_close(pf2); if (rename(full_local_pdb_file2, full_local_pdb_file) < 0) { jp_logf(JP_LOG_WARN, "pdb_file_change_indexes(): %s\n, ", _("rename failed")); } utime(full_local_pdb_file, ×); return EXIT_SUCCESS; } /* Exported routine to change categories in pdb file */ int pdb_file_change_indexes(char *DB_name, int old_cat, int new_cat) { return _change_cat_pdb(DB_name, old_cat, new_cat, FALSE); } /* Exported routine to swap categories in pdb file */ int pdb_file_swap_indexes(char *DB_name, int old_cat, int new_cat) { return _change_cat_pdb(DB_name, old_cat, new_cat, TRUE); } /* * This routine changes deletes records in category cat. * It does not modify a local pdb file. * It does this by writing a modified record to the pc3 file. */ static int edit_cats_delete_cats_pdb(char *DB_name, int cat) { jp_logf(JP_LOG_DEBUG, "edit_cats_delete_cats_pdb\n"); return edit_cats_change_cats_pdb(DB_name, cat, -1); } static void cb_edit_button(GtkWidget *widget, gpointer data) { struct dialog_cats_data *Pdata; int i, r, count; int j; long char_set; int id; int button; int catnum; char currentname[HOSTCAT_NAME_SZ]; /* current category name */ char previousname[HOSTCAT_NAME_SZ]; /* previous category name */ char pilotentry[HOSTCAT_NAME_SZ]; /* entry text, in Pilot character set */ char *button_text[]={N_("OK")}; char *move_text[]={N_("Move"), N_("Delete"), N_("Cancel")}; char *text; const char *entry_text; char temp[256]; get_pref(PREF_CHAR_SET, &char_set, NULL); /* JPA be prepared to make conversions */ button = GPOINTER_TO_INT(data); Pdata = gtk_object_get_data(GTK_OBJECT(gtk_widget_get_toplevel(widget)), "dialog_cats_data"); /* JPA get the selected category number */ catnum = 0; i = 0; while ((i <= Pdata->selected) && (catnum < NUM_CATEGORIES)) { if (Pdata->cai2.name[++catnum][0]) i++; } if (catnum >= NUM_CATEGORIES) catnum = -1; /* not found */ if (Pdata) { switch (button) { case EDIT_CAT_NEW: count=0; for (i=0; iclist), i, 0, &text); if ((r) && (text[0])) { count++; } } if (count>NUM_CATEGORIES-2) { dialog_generic(GTK_WINDOW(gtk_widget_get_toplevel(widget)), _("Edit Categories"), DIALOG_ERROR, _("The maximum number of categories (16) are already used"), 1, button_text); return; } gtk_label_set_text(GTK_LABEL(Pdata->label), _("Enter New Category")); gtk_entry_set_text(GTK_ENTRY(Pdata->entry), ""); gtk_widget_show(Pdata->entry_box); gtk_widget_hide(Pdata->button_box); gtk_widget_grab_focus(GTK_WIDGET(Pdata->entry)); Pdata->state=EDIT_CAT_NEW; break; case EDIT_CAT_RENAME: if ((catnum<0) || (Pdata->cai2.name[catnum][0]=='\0')) { dialog_generic(GTK_WINDOW(gtk_widget_get_toplevel(widget)), _("Edit Categories Error"), DIALOG_ERROR, _("You must select a category to rename"), 1, button_text); return; } #ifdef EDIT_CATS_DEBUG if (catnum == 0) { printf("Trying to rename category 0!\n"); } #endif gtk_clist_get_text(GTK_CLIST(Pdata->clist), Pdata->selected, 0, &text); gtk_label_set_text(GTK_LABEL(Pdata->label), _("Enter New Category Name")); gtk_entry_set_text(GTK_ENTRY(Pdata->entry), text); gtk_widget_show(Pdata->entry_box); gtk_widget_hide(Pdata->button_box); gtk_widget_grab_focus(GTK_WIDGET(Pdata->entry)); Pdata->state=EDIT_CAT_RENAME; break; case EDIT_CAT_DELETE: #ifdef EDIT_CATS_DEBUG printf("delete cat\n"); #endif if (catnum<0) { dialog_generic(GTK_WINDOW(gtk_widget_get_toplevel(widget)), _("Edit Categories Error"), DIALOG_ERROR, _("You must select a category to delete"), 1, button_text); return; } #ifdef EDIT_CATS_DEBUG if (catnum == 0) { printf("Trying to delete category 0!\n"); } #endif /* Check if category is empty */ if (Pdata->cai2.name[catnum][0]=='\0') { return; } /* Check to see if there are records are in this category */ count = count_records_in_cat(Pdata->db_name, catnum); #ifdef EDIT_CATS_DEBUG printf("count=%d\n", count); #endif if (count>0) { g_snprintf(temp, sizeof(temp), _("There are %d records in %s.\n" "Do you want to move them to %s, or delete them?"), count, Pdata->cai1.name[catnum], Pdata->cai1.name[0]); r = dialog_generic(GTK_WINDOW(gtk_widget_get_toplevel(widget)), _("Edit Categories"), DIALOG_QUESTION, temp, 3, move_text); switch (r) { case DIALOG_SAID_1: #ifdef EDIT_CATS_DEBUG printf("MOVE THEM\n"); #endif r = edit_cats_change_cats_pc3(Pdata->db_name, catnum, 0); #ifdef EDIT_CATS_DEBUG printf("moved %d pc records\n", r); #endif r = edit_cats_change_cats_pdb(Pdata->db_name, catnum, 0); #ifdef EDIT_CATS_DEBUG printf("moved %d pdb->pc records\n", r); #endif break; case DIALOG_SAID_2: #ifdef EDIT_CATS_DEBUG printf("DELETE THEM\n"); #endif r = edit_cats_delete_cats_pc3(Pdata->db_name, catnum); #ifdef EDIT_CATS_DEBUG printf("deleted %d pc records\n", r); #endif r = edit_cats_delete_cats_pdb(Pdata->db_name, catnum); #ifdef EDIT_CATS_DEBUG printf("deleted %d pdb->pc records\n", r); #endif break; case DIALOG_SAID_3: #ifdef EDIT_CATS_DEBUG printf("Delete Canceled\n"); #endif return; } } /* delete the category */ #ifdef EDIT_CATS_DEBUG printf("DELETE category\n"); #endif Pdata->cai2.name[catnum][0]='\0'; Pdata->cai2.ID[catnum]=Pdata->cai1.ID[catnum]; Pdata->cai2.renamed[catnum]=0; /* JPA move category names upward in listbox */ /* we get the old text from listbox, to avoid making */ /* character set conversions */ for (i=Pdata->selected; iclist), i+1, 0, &text); if (r) gtk_clist_set_text(GTK_CLIST(Pdata->clist), i, 0, text); } /* JPA now clear the last category */ gtk_clist_set_text(GTK_CLIST(Pdata->clist), NUM_CATEGORIES-2, 0, ""); break; case EDIT_CAT_ENTRY_OK: if ((Pdata->state!=EDIT_CAT_RENAME) && (Pdata->state!=EDIT_CAT_NEW)) { jp_logf(JP_LOG_WARN, _("invalid state file %s line %d\n"), __FILE__, __LINE__); return; } entry_text = gtk_entry_get_text(GTK_ENTRY(Pdata->entry)); /* Can't make an empty category, could do a dialog telling user */ if ((!entry_text) || (!entry_text[0])) { return; } if ((Pdata->state==EDIT_CAT_RENAME) || (Pdata->state==EDIT_CAT_NEW)) { /* Check for category being used more than once */ /* moved here by JPA for use in both new and rename cases */ /* JPA convert entry to Pilot character set before checking */ /* note : don't know Pilot size until converted */ g_strlcpy(pilotentry, entry_text, HOSTCAT_NAME_SZ); charset_j2p(pilotentry, HOSTCAT_NAME_SZ, char_set); pilotentry[PILOTCAT_NAME_SZ-1] = '\0'; for (i=0; istate != EDIT_CAT_RENAME)) && !strcmp(pilotentry, Pdata->cai2.name[i])) { sprintf(temp, _("The category %s can't be used more than once"), entry_text); dialog_generic(GTK_WINDOW(gtk_widget_get_toplevel(widget)), _("Edit Categories"), DIALOG_ERROR, temp, 1, button_text); return; } } } if (Pdata->state==EDIT_CAT_RENAME) { #ifdef EDIT_CATS_DEBUG printf("rename cat\n"); #endif i=Pdata->selected; /* JPA assuming gtk makes a copy */ gtk_clist_set_text(GTK_CLIST(Pdata->clist), i, 0, entry_text); /* JPA enter new category name in Palm Pilot character set */ charset_j2p((char *)entry_text, HOSTCAT_NAME_SZ, char_set); g_strlcpy(Pdata->cai2.name[catnum], entry_text, PILOTCAT_NAME_SZ); Pdata->cai2.renamed[catnum]=1; } if (Pdata->state==EDIT_CAT_NEW) { #ifdef EDIT_CATS_DEBUG printf("new cat\n"); #endif /* JPA have already checked category is not being used more than once */ /* Find a new category ID */ id=128; for (i=1; icai2.ID[i]==id) { id++; i=1; } } /* Find an empty slot */ /* When the new button was pressed we already checked for an empty slot */ for (i=1; icai2.name[i][0]=='\0') { #ifdef EDIT_CATS_DEBUG printf("slot %d is empty\n", i); #endif /* JPA get the old text from listbox, to avoid making */ /* character set conversions */ r = gtk_clist_get_text(GTK_CLIST(Pdata->clist), i-1, 0, &text); if (r) g_strlcpy(currentname, text, HOSTCAT_NAME_SZ); strcpy(Pdata->cai2.name[i], pilotentry); Pdata->cai2.ID[i]=id; Pdata->cai2.renamed[i]=1; gtk_clist_set_text(GTK_CLIST(Pdata->clist), i-1, 0, entry_text); /* JPA relabel category labels beyond the change */ j = ++i; while (r && (i < NUM_CATEGORIES)) { while ((j < NUM_CATEGORIES) && (Pdata->cai2.name[j][0] == '\0')) j++; if (j < NUM_CATEGORIES) { strcpy(previousname, currentname); r = gtk_clist_get_text(GTK_CLIST(Pdata->clist), i-1, 0, &text); if (r) g_strlcpy(currentname, text, HOSTCAT_NAME_SZ); gtk_clist_set_text(GTK_CLIST(Pdata->clist), i-1, 0, previousname); j++; } i++; } break; } } } gtk_widget_hide(Pdata->entry_box); gtk_widget_show(Pdata->button_box); Pdata->state=EDIT_CAT_START; break; case EDIT_CAT_ENTRY_CANCEL: gtk_widget_hide(Pdata->entry_box); gtk_widget_show(Pdata->button_box); Pdata->state=EDIT_CAT_START; break; default: jp_logf(JP_LOG_WARN, "cb_edit_button(): %s\n", "unknown button"); } } } static void cb_clist_edit_cats(GtkWidget *widget, gint row, gint column, GdkEventButton *event, gpointer data) { struct dialog_cats_data *Pdata; Pdata=data; #ifdef EDIT_CATS_DEBUG printf("row=%d\n", row); #endif if (Pdata->state==EDIT_CAT_START) { Pdata->selected=row; } else { #ifdef EDIT_CATS_DEBUG printf("cb_clist_edit_cats not in start state\n"); #endif if (Pdata->selected!=row) { clist_select_row(GTK_CLIST(Pdata->clist), Pdata->selected, 0); } } } #ifdef EDIT_CATS_DEBUG static void cb_edit_cats_debug(GtkWidget *widget, gpointer data) { struct dialog_cats_data *Pdata; int i; Pdata=data; for (i=0; icai1.name[i], Pdata->cai1.ID[i], Pdata->cai1.renamed[i], Pdata->cai2.name[i], Pdata->cai2.ID[i], Pdata->cai2.renamed[i]); } } #endif static void cb_dialog_button(GtkWidget *widget, gpointer data) { struct dialog_cats_data *Pdata; GtkWidget *w; w = gtk_widget_get_toplevel(widget); Pdata = gtk_object_get_data(GTK_OBJECT(w), "dialog_cats_data"); Pdata->button_hit=GPOINTER_TO_INT(data); gtk_widget_destroy(GTK_WIDGET(w)); } static gboolean cb_destroy_dialog(GtkWidget *widget) { gtk_main_quit(); return TRUE; } int edit_cats(GtkWidget *widget, char *db_name, struct CategoryAppInfo *cai) { GtkWidget *button; GtkWidget *hbox, *vbox; GtkWidget *vbox1, *vbox2, *vbox3; GtkWidget *dialog; GtkWidget *clist; GtkWidget *entry; GtkWidget *label; GtkWidget *separator; struct dialog_cats_data Pdata; int i, j; long char_set; char *catname_hchar; /* Category names in host character set */ char *titles[2] = {_("Category")}; gchar *empty_line[] = {""}; jp_logf(JP_LOG_DEBUG, "edit_cats\n"); Pdata.selected=-1; Pdata.state=EDIT_CAT_START; g_strlcpy(Pdata.db_name, db_name, 16); #ifdef EDIT_CATS_DEBUG for (i = 0; i < NUM_CATEGORIES; i++) { if (cai->name[i][0] != '\0') { printf("cat %d [%s] ID %d renamed %d\n", i, cai->name[i], cai->ID[i], cai->renamed[i]); } } #endif /* removed by JPA : do not change category names as they will * be written back to file. * We will however have to make a conversion for host dialog display * * get_pref(PREF_CHAR_SET, &char_set, NULL); * if (char_set != CHAR_SET_LATIN1) { * for (i = 0; i < 16; i++) { * if (cai->name[i][0] != '\0') { * charset_p2j((unsigned char*)cai->name[i], 16, char_set); * } * } * } * */ dialog = gtk_widget_new(GTK_TYPE_WINDOW, "type", GTK_WINDOW_TOPLEVEL, "title", _("Edit Categories"), NULL); gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE); gtk_window_set_modal(GTK_WINDOW(dialog), TRUE); gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(gtk_widget_get_toplevel(widget))); gtk_signal_connect(GTK_OBJECT(dialog), "destroy", GTK_SIGNAL_FUNC(cb_destroy_dialog), dialog); vbox3 = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(dialog), vbox3); hbox = gtk_hbox_new(FALSE, 0); gtk_container_set_border_width(GTK_CONTAINER(hbox), 5); gtk_container_add(GTK_CONTAINER(vbox3), hbox); vbox1 = gtk_vbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), vbox1, FALSE, FALSE, 1); vbox2 = gtk_vbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), vbox2, FALSE, FALSE, 1); clist = gtk_clist_new_with_titles(1, titles); gtk_clist_column_titles_passive(GTK_CLIST(clist)); gtk_clist_set_column_min_width(GTK_CLIST(clist), 0, 100); gtk_clist_set_column_auto_resize(GTK_CLIST(clist), 0, TRUE); gtk_clist_set_selection_mode(GTK_CLIST(clist), GTK_SELECTION_BROWSE); gtk_signal_connect(GTK_OBJECT(clist), "select_row", GTK_SIGNAL_FUNC(cb_clist_edit_cats), &Pdata); gtk_box_pack_start(GTK_BOX(vbox1), clist, TRUE, TRUE, 1); /* Fill clist with categories except for category 0, Unfiled, * which is not editable */ get_pref(PREF_CHAR_SET, &char_set, NULL); for (i=j=1; iname[j][0] == '\0') || (!cai->ID[j]))) { /* Remove categories which have a null ID * to facilitate recovering from errors, */ /* however we cannot synchronize them to the Palm Pilot */ if (!cai->ID[j]) cai->name[j][0] = '\0'; j++; } if (j < NUM_CATEGORIES) { /* Must do character set conversion from Palm to Host */ catname_hchar = charset_p2newj(cai->name[j], PILOTCAT_NAME_SZ, char_set); gtk_clist_set_text(GTK_CLIST(clist), i-1, 0, catname_hchar); free(catname_hchar); } } Pdata.clist = clist; /* Buttons */ hbox = gtk_hbutton_box_new(); gtk_container_set_border_width(GTK_CONTAINER(hbox), 12); gtk_button_box_set_layout(GTK_BUTTON_BOX (hbox), GTK_BUTTONBOX_END); gtk_button_box_set_spacing(GTK_BUTTON_BOX(hbox), 6); gtk_box_pack_start(GTK_BOX(vbox2), hbox, FALSE, FALSE, 1); #ifdef ENABLE_STOCK_BUTTONS button = gtk_button_new_from_stock(GTK_STOCK_NEW); #else button = gtk_button_new_with_label(_("New")); #endif gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_edit_button), GINT_TO_POINTER(EDIT_CAT_NEW)); gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1); button = gtk_button_new_with_label(_("Rename")); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_edit_button), GINT_TO_POINTER(EDIT_CAT_RENAME)); gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1); #ifdef ENABLE_STOCK_BUTTONS button = gtk_button_new_from_stock(GTK_STOCK_DELETE); #else button = gtk_button_new_with_label(_("Delete")); #endif gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_edit_button), GINT_TO_POINTER(EDIT_CAT_DELETE)); gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1); Pdata.button_box = hbox; /* Edit entry and boxes, etc */ vbox = gtk_vbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox2), vbox, FALSE, FALSE, 10); separator = gtk_hseparator_new(); gtk_box_pack_start(GTK_BOX(vbox), separator, FALSE, FALSE, 0); label = gtk_label_new(""); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); separator = gtk_hseparator_new(); gtk_box_pack_start(GTK_BOX(vbox), separator, FALSE, FALSE, 0); Pdata.label = label; entry = gtk_entry_new_with_max_length(HOSTCAT_NAME_SZ-1); gtk_signal_connect(GTK_OBJECT(entry), "activate", GTK_SIGNAL_FUNC(cb_edit_button), GINT_TO_POINTER(EDIT_CAT_ENTRY_OK)); gtk_box_pack_start(GTK_BOX(vbox), entry, FALSE, FALSE, 0); hbox = gtk_hbutton_box_new(); gtk_container_set_border_width(GTK_CONTAINER(hbox), 12); gtk_button_box_set_layout(GTK_BUTTON_BOX (hbox), GTK_BUTTONBOX_END); gtk_button_box_set_spacing(GTK_BUTTON_BOX(hbox), 6); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 1); button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_edit_button), GINT_TO_POINTER(EDIT_CAT_ENTRY_CANCEL)); gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1); button = gtk_button_new_from_stock(GTK_STOCK_OK); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_edit_button), GINT_TO_POINTER(EDIT_CAT_ENTRY_OK)); gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1); separator = gtk_hseparator_new(); gtk_box_pack_start(GTK_BOX(vbox), separator, FALSE, FALSE, 0); Pdata.entry_box = vbox; Pdata.entry = entry; /* Button Box */ hbox = gtk_hbutton_box_new(); gtk_container_set_border_width(GTK_CONTAINER(hbox), 12); gtk_button_box_set_layout(GTK_BUTTON_BOX (hbox), GTK_BUTTONBOX_END); gtk_button_box_set_spacing(GTK_BUTTON_BOX(hbox), 6); gtk_box_pack_start(GTK_BOX(vbox3), hbox, FALSE, FALSE, 2); /* Buttons */ button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_dialog_button), GINT_TO_POINTER(DIALOG_SAID_2)); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 1); button = gtk_button_new_from_stock(GTK_STOCK_OK); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_dialog_button), GINT_TO_POINTER(DIALOG_SAID_1)); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 1); #ifdef EDIT_CATS_DEBUG button = gtk_button_new_with_label("DEBUG"); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_edit_cats_debug), &Pdata); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 1); #endif /* Set the default button pressed to CANCEL */ Pdata.button_hit = DIALOG_SAID_2; /* Initialize data structures */ memcpy(&(Pdata.cai1), cai, sizeof(struct CategoryAppInfo)); memcpy(&(Pdata.cai2), cai, sizeof(struct CategoryAppInfo)); gtk_object_set_data(GTK_OBJECT(dialog), "dialog_cats_data", &Pdata); gtk_widget_show_all(dialog); gtk_widget_hide(Pdata.entry_box); gtk_main(); /* OK, back from gtk_main loop */ #ifdef EDIT_CATS_DEBUG if (Pdata.button_hit==DIALOG_SAID_1) { printf("pressed 1\n"); } #endif if (Pdata.button_hit==DIALOG_SAID_2) { #ifdef EDIT_CATS_DEBUG printf("pressed 2\n"); #endif return DIALOG_SAID_2; } #ifdef EDIT_CATS_DEBUG for (i=0; i acinclude.m4 2> /dev/null) cp INSTALL INSTALL.bak cp ABOUT-NLS ABOUT-NLS.bak autoreconf --verbose --install --force $@ mv INSTALL.bak INSTALL mv ABOUT-NLS.bak ABOUT-NLS #./configure jpilot-1.8.1.2/jpilotrc.default0000644000175000017500000000504310675272737013321 00000000000000################################################################################ # Syntax guide for GTK color resource file # # style [= ] # { #

    ", accel_group); /* This function generates the menu items. Pass the item factory, * the number of items in the array, the array itself, and any * callback data for the the menu items. */ gtk_item_factory_create_items(item_factory, nmenu_items, menu_items2, NULL); /* Attach the new accelerator group to the window. */ gtk_window_add_accel_group(GTK_WINDOW(my_window), accel_group); if (menubar) { /* Finally, return the actual menu bar created by the item factory. */ *menubar = gtk_item_factory_get_widget (item_factory, "
    "); } free(menu_items2); #ifdef ENABLE_PLUGINS if (count) { for (str_i=0; str_i < count; str_i++) { free(plugin_menu_strings[str_i]); } free(plugin_menu_strings); } if (help_count) { for (str_i=0; str_i < help_count; str_i++) { free(plugin_help_strings[str_i]); } free(plugin_help_strings); } #endif menu_hide_privates = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_widget( item_factory, _("/View/Hide Private Records"))); menu_show_privates = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_widget( item_factory, _("/View/Show Private Records"))); menu_mask_privates = GTK_CHECK_MENU_ITEM(gtk_item_factory_get_widget( item_factory, _("/View/Mask Private Records"))); } static void cb_delete_event(GtkWidget *widget, GdkEvent *event, gpointer data) { int pw, ph; int x,y; #ifdef ENABLE_PLUGINS struct plugin_s *plugin; GList *plugin_list, *temp_list; #endif /* gdk_window_get_deskrelative_origin(window->window, &x, &y); */ gdk_window_get_origin(window->window, &x, &y); jp_logf(JP_LOG_DEBUG, "x=%d, y=%d\n", x, y); gdk_window_get_size(window->window, &pw, &ph); set_pref(PREF_WINDOW_WIDTH, pw, NULL, FALSE); set_pref(PREF_WINDOW_HEIGHT, ph, NULL, FALSE); set_pref(PREF_LAST_APP, glob_app, NULL, TRUE); gui_cleanup(); if (weekview_window) cb_weekview_quit(weekview_window, NULL); if (monthview_window) cb_monthview_quit(monthview_window, NULL); #ifdef ENABLE_PLUGINS plugin_list = get_plugin_list(); for (temp_list = plugin_list; temp_list; temp_list = temp_list->next) { plugin = (struct plugin_s *)temp_list->data; if (plugin) { if (plugin->plugin_exit_cleanup) { jp_logf(JP_LOG_DEBUG, "calling plugin_exit_cleanup\n"); plugin->plugin_exit_cleanup(); } } } #endif if (glob_child_pid) { jp_logf(JP_LOG_DEBUG, "killing %d\n", glob_child_pid); kill(glob_child_pid, SIGTERM); } /* Save preferences in jpilot.rc */ pref_write_rc_file(); cleanup_pc_files(); cleanup_pidfile(); gtk_main_quit(); } static void cb_output(GtkWidget *widget, gpointer data) { int flags; int w, h, output_height; flags=GPOINTER_TO_INT(data); if ((flags==OUTPUT_MINIMIZE) || (flags==OUTPUT_RESIZE)) { jp_logf(JP_LOG_DEBUG,"paned pos = %d\n", gtk_paned_get_position(GTK_PANED(output_pane))); gdk_window_get_size(window->window, &w, &h); output_height = (h - gtk_paned_get_position(GTK_PANED(output_pane))); set_pref(PREF_OUTPUT_HEIGHT, output_height, NULL, TRUE); if (flags==OUTPUT_MINIMIZE) { gtk_paned_set_position(GTK_PANED(output_pane), h); } jp_logf(JP_LOG_DEBUG,"output height = %d\n", output_height); } if (flags==OUTPUT_CLEAR) { gtk_text_buffer_set_text(g_output_text_buffer, "", -1); } } static gint cb_output_idle(gpointer data) { cb_output(NULL, data); /* returning false removes this handler from being called again */ return FALSE; } static gint cb_output2(GtkWidget *widget, GdkEventButton *event, gpointer data) { /* Because the pane isn't redrawn yet we can't get positions from it. * So we have to call back after everything is drawn */ gtk_idle_add(cb_output_idle, data); return EXIT_SUCCESS; } static gint cb_check_version(gpointer main_window) { int major, minor, micro; int r; char str_ver[8]; jp_logf(JP_LOG_DEBUG, "cb_check_version\n"); r = sscanf(VERSION, "%d.%d.%d", &major, &minor, µ); if (r!=3) { jp_logf(JP_LOG_DEBUG, "couldn't parse VERSION\n"); return FALSE; } /* These shouldn't be greater than 100, but just in case */ major %= 100; minor %= 100; micro %= 100; sprintf(str_ver, "%02d%02d%02d", major, minor, micro); set_pref(PREF_VERSION, 0, str_ver, 1); return FALSE; } int main(int argc, char *argv[]) { GtkWidget *main_vbox; GtkWidget *temp_hbox; GtkWidget *temp_vbox; GtkWidget *button_datebook,*button_address,*button_todo,*button_memo; GtkWidget *button; GtkWidget *separator; GtkStyle *style; GdkBitmap *mask; GtkWidget *pixmapwid; GdkPixmap *pixmap; GtkWidget *menubar = NULL; GtkWidget *scrolled_window; GtkAccelGroup *accel_group; /* Extract first day of week preference from locale in GTK2 */ int pref_fdow = 0; #ifdef HAVE__NL_TIME_FIRST_WEEKDAY char *langinfo; int week_1stday = 0; int first_weekday = 1; unsigned int week_origin; #else # ifdef ENABLE_NLS char *week_start; # endif #endif unsigned char skip_past_alarms; unsigned char skip_all_alarms; int filedesc[2]; long ivalue; const char *svalue; int i, ret, height, width; char title[MAX_PREF_LEN+256]; long pref_width, pref_height, show_tooltips; long char_set; char *geometry_str=NULL; int iconify = 0; #ifdef ENABLE_PLUGINS GList *plugin_list; GList *temp_list; struct plugin_s *plugin; jp_startup_info info; #endif int pid; int remote_sync = FALSE; #if defined(ENABLE_NLS) # ifdef HAVE_LOCALE_H char *current_locale; # endif #endif skip_plugins=FALSE; skip_past_alarms=FALSE; skip_all_alarms=FALSE; /* log all output to a file */ glob_log_file_mask = JP_LOG_INFO | JP_LOG_WARN | JP_LOG_FATAL | JP_LOG_STDOUT; glob_log_stdout_mask = JP_LOG_INFO | JP_LOG_WARN | JP_LOG_FATAL | JP_LOG_STDOUT; glob_log_gui_mask = JP_LOG_FATAL | JP_LOG_WARN | JP_LOG_GUI; glob_find_id = 0; /* Directory ~/.jpilot is created with permissions of 700 to prevent anyone * but the user from looking at potentially sensitive files. * Files within the directory have permission 600 */ umask(0077); /* enable internationalization(i18n) before printing any output */ #if defined(ENABLE_NLS) # ifdef HAVE_LOCALE_H current_locale = setlocale(LC_ALL, ""); # endif bindtextdomain(EPN, LOCALEDIR); textdomain(EPN); #endif pref_init(); /* read jpilot.rc file for preferences */ pref_read_rc_file(); /* Extract first day of week preference from locale in GTK2 */ # ifdef HAVE__NL_TIME_FIRST_WEEKDAY /* GTK 2.8 libraries */ langinfo = nl_langinfo(_NL_TIME_FIRST_WEEKDAY); first_weekday = langinfo[0]; langinfo = nl_langinfo(_NL_TIME_WEEK_1STDAY); week_origin = GPOINTER_TO_INT(langinfo); if (week_origin == 19971130) /* Sunday */ week_1stday = 0; else if (week_origin == 19971201) /* Monday */ week_1stday = 1; else g_warning ("Unknown value of _NL_TIME_WEEK_1STDAY.\n"); pref_fdow = (week_1stday + first_weekday - 1) % 7; # else /* GTK 2.6 libraries */ # if defined(ENABLE_NLS) week_start = dgettext("gtk20", "calendar:week_start:0"); if (strncmp("calendar:week_start:", week_start, 20) == 0) { pref_fdow = *(week_start + 20) - '0'; } else { pref_fdow = -1; } # endif # endif if (pref_fdow > 1) pref_fdow = 1; if (pref_fdow < 0) pref_fdow = 0; set_pref_possibility(PREF_FDOW, pref_fdow, TRUE); if (otherconv_init()) { printf("Error: could not set character encoding\n"); exit(0); } get_pref(PREF_WINDOW_WIDTH, &pref_width, NULL); get_pref(PREF_WINDOW_HEIGHT, &pref_height, NULL); /* parse command line options */ for (i=1; inext) { plugin = (struct plugin_s *)temp_list->data; jp_logf(JP_LOG_DEBUG, "plugin: [%s] was loaded\n", plugin->name); if (plugin) { if (plugin->plugin_startup) { info.base_dir = strdup(BASE_DIR); jp_logf(JP_LOG_DEBUG, "calling plugin_startup for [%s]\n", plugin->name); plugin->plugin_startup(&info); if (info.base_dir) { free(info.base_dir); } } } } #endif glob_date_timer_tag=0; glob_child_pid=0; /* Create a pipe to send data from sync child to parent */ if (pipe(filedesc) < 0) { jp_logf(JP_LOG_FATAL, _("Unable to open pipe\n")); exit(-1); } pipe_from_child = filedesc[0]; pipe_to_parent = filedesc[1]; /* Create a pipe to send data from parent to sync child */ if (pipe(filedesc) < 0) { jp_logf(JP_LOG_FATAL, _("Unable to open pipe\n")); exit(-1); } pipe_from_parent = filedesc[0]; pipe_to_child = filedesc[1]; get_pref(PREF_CHAR_SET, &char_set, NULL); switch (char_set) { case CHAR_SET_JAPANESE: gtk_rc_parse("gtkrc.ja"); break; case CHAR_SET_TRADITIONAL_CHINESE: gtk_rc_parse("gtkrc.zh_TW.Big5"); break; case CHAR_SET_KOREAN: gtk_rc_parse("gtkrc.ko"); break; /* Since Now, these are not supported yet. */ #if 0 case CHAR_SET_SIMPLIFIED_CHINESE: gtk_rc_parse("gtkrc.zh_CN"); break; case CHAR_SET_1250: gtk_rc_parse("gtkrc.???"); break; case CHAR_SET_1251: gtk_rc_parse("gtkrc.iso-8859-5"); break; case CHAR_SET_1251_B: gtk_rc_parse("gtkrc.ru"); break; #endif default: break; /* do nothing */ } jpilot_master_pid = getpid(); gtk_init(&argc, &argv); read_gtkrc_file(); get_pref(PREF_USER, NULL, &svalue); strcpy(title, PN" "VERSION); if ((svalue) && (svalue[0])) { strcat(title, _(" User: ")); /* Convert user name so that it can be displayed in window title */ /* We assume user name is coded in jpilot.rc as it is on the Palm Pilot */ { char *newvalue; newvalue = charset_p2newj(svalue, -1, char_set); strcat(title, newvalue); free(newvalue); } } window = gtk_widget_new(GTK_TYPE_WINDOW, "type", GTK_WINDOW_TOPLEVEL, "title", title, NULL); /* Set default size and position of main window */ ret = 0; if (geometry_str) { ret = gtk_window_parse_geometry(GTK_WINDOW(window), geometry_str); } if ((!geometry_str) || (ret != 1)) { gtk_window_set_default_size(GTK_WINDOW(window), pref_width, pref_height); } if (iconify) { gtk_window_iconify(GTK_WINDOW(window)); } /* Set a handler for delete_event that immediately exits GTK. */ gtk_signal_connect(GTK_OBJECT(window), "delete_event", GTK_SIGNAL_FUNC(cb_delete_event), NULL); gtk_container_set_border_width(GTK_CONTAINER(window), 0); main_vbox = gtk_vbox_new(FALSE, 0); g_hbox = gtk_hbox_new(FALSE, 0); g_vbox0 = gtk_vbox_new(FALSE, 0); /* Output Pane */ output_pane = gtk_vpaned_new(); gtk_signal_connect(GTK_OBJECT(output_pane), "button_release_event", GTK_SIGNAL_FUNC(cb_output2), GINT_TO_POINTER(OUTPUT_RESIZE)); gtk_container_add(GTK_CONTAINER(window), output_pane); gtk_paned_pack1(GTK_PANED(output_pane), main_vbox, FALSE, FALSE); /* Create the Menu Bar at the top */ #ifdef ENABLE_PLUGINS get_main_menu(window, &menubar, plugin_list); #else get_main_menu(window, &menubar, NULL); #endif gtk_box_pack_start(GTK_BOX(main_vbox), menubar, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(main_vbox), g_hbox, TRUE, TRUE, 3); gtk_container_set_border_width(GTK_CONTAINER(g_hbox), 10); gtk_box_pack_start(GTK_BOX(g_hbox), g_vbox0, FALSE, FALSE, 3); /* Output Text scrolled window */ temp_hbox = gtk_hbox_new(FALSE, 0); gtk_container_set_border_width(GTK_CONTAINER(temp_hbox), 5); gtk_paned_pack2(GTK_PANED(output_pane), temp_hbox, FALSE, TRUE); temp_vbox = gtk_vbox_new(FALSE, 3); gtk_container_set_border_width(GTK_CONTAINER(temp_vbox), 6); gtk_box_pack_end(GTK_BOX(temp_hbox), temp_vbox, FALSE, FALSE, 0); g_output_text = GTK_TEXT_VIEW(gtk_text_view_new()); g_output_text_buffer = gtk_text_view_get_buffer(g_output_text); gtk_text_view_set_cursor_visible(g_output_text, FALSE); gtk_text_view_set_editable(g_output_text, FALSE); gtk_text_view_set_wrap_mode(g_output_text, GTK_WRAP_WORD); scrolled_window = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); gtk_container_add(GTK_CONTAINER(scrolled_window), GTK_WIDGET(g_output_text)); gtk_box_pack_start_defaults(GTK_BOX(temp_hbox), scrolled_window); button = gtk_button_new_from_stock(GTK_STOCK_CLEAR); gtk_box_pack_start(GTK_BOX(temp_vbox), button, TRUE, TRUE, 3); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_output), GINT_TO_POINTER(OUTPUT_CLEAR)); button = gtk_button_new_from_stock(GTK_STOCK_REMOVE); gtk_box_pack_start(GTK_BOX(temp_vbox), button, TRUE, TRUE, 3); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_output), GINT_TO_POINTER(OUTPUT_MINIMIZE)); /* "Datebook" button */ temp_hbox = gtk_hbox_new(FALSE, 0); button_datebook = gtk_button_new(); gtk_signal_connect(GTK_OBJECT(button_datebook), "clicked", GTK_SIGNAL_FUNC(cb_app_button), GINT_TO_POINTER(DATEBOOK)); gtk_box_pack_start(GTK_BOX(g_vbox0), temp_hbox, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(temp_hbox), button_datebook, TRUE, FALSE, 0); /* "Address" button */ temp_hbox = gtk_hbox_new(FALSE, 0); button_address = gtk_button_new(); gtk_signal_connect(GTK_OBJECT(button_address), "clicked", GTK_SIGNAL_FUNC(cb_app_button), GINT_TO_POINTER(ADDRESS)); gtk_box_pack_start(GTK_BOX(g_vbox0), temp_hbox, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(temp_hbox), button_address, TRUE, FALSE, 0); /* "Todo" button */ temp_hbox = gtk_hbox_new(FALSE, 0); button_todo = gtk_button_new(); gtk_signal_connect(GTK_OBJECT(button_todo), "clicked", GTK_SIGNAL_FUNC(cb_app_button), GINT_TO_POINTER(TODO)); gtk_box_pack_start(GTK_BOX(g_vbox0), temp_hbox, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(temp_hbox), button_todo, TRUE, FALSE, 0); /* "Memo" button */ temp_hbox = gtk_hbox_new(FALSE, 0); button_memo = gtk_button_new(); gtk_signal_connect(GTK_OBJECT(button_memo), "clicked", GTK_SIGNAL_FUNC(cb_app_button), GINT_TO_POINTER(MEMO)); gtk_box_pack_start(GTK_BOX(g_vbox0), temp_hbox, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(temp_hbox), button_memo, TRUE, FALSE, 0); gtk_widget_set_name(button_datebook, "button_app"); gtk_widget_set_name(button_address, "button_app"); gtk_widget_set_name(button_todo, "button_app"); gtk_widget_set_name(button_memo, "button_app"); /* Create tooltips */ glob_tooltips = gtk_tooltips_new(); /* Get preference to show tooltips */ get_pref(PREF_SHOW_TOOLTIPS, &show_tooltips, NULL); /* Create key accelerator */ accel_group = gtk_accel_group_new(); gtk_window_add_accel_group(GTK_WINDOW(window), accel_group); /* Lock/Unlock/Mask buttons */ button_locked = gtk_button_new(); button_masklocked = gtk_button_new(); button_unlocked = gtk_button_new(); gtk_signal_connect(GTK_OBJECT(button_locked), "clicked", GTK_SIGNAL_FUNC(cb_private), GINT_TO_POINTER(SHOW_PRIVATES)); gtk_signal_connect(GTK_OBJECT(button_masklocked), "clicked", GTK_SIGNAL_FUNC(cb_private), GINT_TO_POINTER(HIDE_PRIVATES)); gtk_signal_connect(GTK_OBJECT(button_unlocked), "clicked", GTK_SIGNAL_FUNC(cb_private), GINT_TO_POINTER(MASK_PRIVATES)); gtk_box_pack_start(GTK_BOX(g_vbox0), button_locked, FALSE, FALSE, 20); gtk_box_pack_start(GTK_BOX(g_vbox0), button_masklocked, FALSE, FALSE, 20); gtk_box_pack_start(GTK_BOX(g_vbox0), button_unlocked, FALSE, FALSE, 20); set_tooltip(show_tooltips, glob_tooltips, button_locked, _("Show private records Ctrl+Z"), NULL); gtk_widget_add_accelerator(button_locked, "clicked", accel_group, GDK_z, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); set_tooltip(show_tooltips, glob_tooltips, button_masklocked, _("Hide private records Ctrl+Z"), NULL); gtk_widget_add_accelerator(button_masklocked, "clicked", accel_group, GDK_z, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); set_tooltip(show_tooltips, glob_tooltips, button_unlocked, _("Mask private records Ctrl+Z"), NULL); gtk_widget_add_accelerator(button_unlocked, "clicked", accel_group, GDK_z, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); /* "Sync" button */ button_sync = gtk_button_new(); gtk_signal_connect(GTK_OBJECT(button_sync), "clicked", GTK_SIGNAL_FUNC(cb_sync), GINT_TO_POINTER(skip_plugins ? SYNC_NO_PLUGINS : 0)); gtk_box_pack_start(GTK_BOX(g_vbox0), button_sync, FALSE, FALSE, 3); set_tooltip(show_tooltips, glob_tooltips, button_sync, _("Sync your palm to the desktop Ctrl+Y"), NULL); gtk_widget_add_accelerator(button_sync, "clicked", accel_group, GDK_y, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); /* "Cancel Sync" button */ button_cancel_sync = gtk_button_new(); gtk_signal_connect(GTK_OBJECT(button_cancel_sync), "clicked", GTK_SIGNAL_FUNC(cb_cancel_sync), NULL); gtk_box_pack_start(GTK_BOX(g_vbox0), button_cancel_sync, FALSE, FALSE, 3); set_tooltip(show_tooltips, glob_tooltips, button_cancel_sync, _("Stop Sync process"), NULL); /* "Backup" button in left column */ button_backup = gtk_button_new(); gtk_signal_connect(GTK_OBJECT(button_backup), "clicked", GTK_SIGNAL_FUNC(cb_sync), GINT_TO_POINTER (skip_plugins ? SYNC_NO_PLUGINS | SYNC_FULL_BACKUP : SYNC_FULL_BACKUP)); gtk_box_pack_start(GTK_BOX(g_vbox0), button_backup, FALSE, FALSE, 3); set_tooltip(show_tooltips, glob_tooltips, button_backup, _("Sync your palm to the desktop\n" "and then do a backup"), NULL); /* Separator */ separator = gtk_hseparator_new(); gtk_box_pack_start(GTK_BOX(g_vbox0), separator, FALSE, TRUE, 5); /* Creates the 2 main boxes that are changeable */ create_main_boxes(); gtk_widget_show_all(window); gtk_widget_show(window); style = gtk_widget_get_style(window); /* Jpilot Icon pixmap */ pixmap = gdk_pixmap_create_from_xpm_d(window->window, &mask, NULL, jpilot_icon4_xpm); gdk_window_set_icon(window->window, NULL, pixmap, mask); gdk_window_set_icon_name(window->window, PN); /* Create "Datebook" pixmap */ pixmap = gdk_pixmap_create_from_xpm_d(window->window, &mask, &style->bg[GTK_STATE_NORMAL], datebook_xpm); #ifdef __APPLE__ mask = NULL; #endif pixmapwid = gtk_pixmap_new(pixmap, mask); gtk_widget_show(pixmapwid); gtk_container_add(GTK_CONTAINER(button_datebook), pixmapwid); gtk_button_set_relief(GTK_BUTTON(button_datebook), GTK_RELIEF_NONE); /* Create "Address" pixmap */ pixmap = gdk_pixmap_create_from_xpm_d(window->window, &mask, &style->bg[GTK_STATE_NORMAL], address_xpm); #ifdef __APPLE__ mask = NULL; #endif pixmapwid = gtk_pixmap_new(pixmap, mask); gtk_widget_show(pixmapwid); gtk_container_add(GTK_CONTAINER(button_address), pixmapwid); gtk_button_set_relief(GTK_BUTTON(button_address), GTK_RELIEF_NONE); /* Create "Todo" pixmap */ pixmap = gdk_pixmap_create_from_xpm_d(window->window, &mask, &style->bg[GTK_STATE_NORMAL], todo_xpm); #ifdef __APPLE__ mask = NULL; #endif pixmapwid = gtk_pixmap_new(pixmap, mask); gtk_widget_show(pixmapwid); gtk_container_add(GTK_CONTAINER(button_todo), pixmapwid); gtk_button_set_relief(GTK_BUTTON(button_todo), GTK_RELIEF_NONE); /* Create "Memo" pixmap */ pixmap = gdk_pixmap_create_from_xpm_d(window->window, &mask, &style->bg[GTK_STATE_NORMAL], memo_xpm); #ifdef __APPLE__ mask = NULL; #endif pixmapwid = gtk_pixmap_new(pixmap, mask); gtk_widget_show(pixmapwid); gtk_container_add(GTK_CONTAINER(button_memo), pixmapwid); gtk_button_set_relief(GTK_BUTTON(button_memo), GTK_RELIEF_NONE); /* Show locked/unlocked/masked button */ #ifdef ENABLE_PRIVATE gtk_widget_show(button_locked); gtk_widget_hide(button_masklocked); gtk_widget_hide(button_unlocked); #else gtk_widget_hide(button_locked); gtk_widget_hide(button_masklocked); gtk_widget_show(button_unlocked); #endif /* Create "locked" pixmap */ pixmap = gdk_pixmap_create_from_xpm_d(window->window, &mask, &style->bg[GTK_STATE_NORMAL], locked_xpm); #ifdef __APPLE__ mask = NULL; #endif pixmapwid = gtk_pixmap_new(pixmap, mask); gtk_widget_show(pixmapwid); gtk_container_add(GTK_CONTAINER(button_locked), pixmapwid); /* Create "masked" pixmap */ pixmap = gdk_pixmap_create_from_xpm_d(window->window, &mask, &style->bg[GTK_STATE_NORMAL], masklocked_xpm); #ifdef __APPLE__ mask = NULL; #endif pixmapwid = gtk_pixmap_new(pixmap, mask); gtk_widget_show(pixmapwid); gtk_container_add(GTK_CONTAINER(button_masklocked), pixmapwid); /* Create "unlocked" pixmap */ pixmap = gdk_pixmap_create_from_xpm_d(window->window, &mask, &style->bg[GTK_STATE_NORMAL], unlocked_xpm); #ifdef __APPLE__ mask = NULL; #endif pixmapwid = gtk_pixmap_new(pixmap, mask); gtk_widget_show(pixmapwid); gtk_container_add(GTK_CONTAINER(button_unlocked), pixmapwid); /* Create "sync" pixmap */ pixmap = gdk_pixmap_create_from_xpm_d(window->window, &mask, &style->bg[GTK_STATE_NORMAL], sync_xpm); #ifdef __APPLE__ mask = NULL; #endif pixmapwid = gtk_pixmap_new(pixmap, mask); gtk_widget_show(pixmapwid); gtk_container_add(GTK_CONTAINER(button_sync), pixmapwid); /* Create "cancel sync" pixmap */ /* Hide until sync process started */ gtk_widget_hide(button_cancel_sync); pixmap = gdk_pixmap_create_from_xpm_d(window->window, &mask, &style->bg[GTK_STATE_NORMAL], cancel_sync_xpm); #ifdef __APPLE__ mask = NULL; #endif pixmapwid = gtk_pixmap_new(pixmap, mask); gtk_widget_show(pixmapwid); gtk_container_add(GTK_CONTAINER(button_cancel_sync), pixmapwid); /* Create "backup" pixmap */ pixmap = gdk_pixmap_create_from_xpm_d(window->window, &mask, &style->bg[GTK_STATE_NORMAL], backup_xpm); #ifdef __APPLE__ mask = NULL; #endif pixmapwid = gtk_pixmap_new(pixmap, mask); gtk_widget_show(pixmapwid); gtk_container_add(GTK_CONTAINER(button_backup), pixmapwid); set_tooltip(show_tooltips, glob_tooltips, button_datebook, _("Datebook/Go to Today"), NULL); set_tooltip(show_tooltips, glob_tooltips, button_address, _("Address Book"), NULL); set_tooltip(show_tooltips, glob_tooltips, button_todo, _("ToDo List"), NULL); set_tooltip(show_tooltips, glob_tooltips, button_memo, _("Memo Pad"), NULL); /* Set a callback for our pipe from the sync child process */ gdk_input_add(pipe_from_child, GDK_INPUT_READ, cb_read_pipe_from_child, window); get_pref(PREF_LAST_APP, &ivalue, NULL); /* We don't want to start up to a plugin because the plugin might * repeatedly segfault. Of course main apps can do that, but since I * handle the email support... */ if ((ivalue==ADDRESS) || (ivalue==DATEBOOK) || (ivalue==TODO) || (ivalue==MEMO)) { cb_app_button(NULL, GINT_TO_POINTER(ivalue)); } /* Set the pane size */ width = height = 0; gdk_window_get_size(window->window, &width, &height); gtk_paned_set_position(GTK_PANED(output_pane), height); alarms_init(skip_past_alarms, skip_all_alarms); /* In-line code to switch user to UTF-8 encoding. * Should probably be made a subroutine */ { long utf_encoding; char *button_text[] = { N_("Do it now"), N_("Remind me later"), N_("Don't tell me again!") }; /* check if a UTF-8 one is used */ if (char_set >= CHAR_SET_UTF) set_pref(PREF_UTF_ENCODING, 1, NULL, TRUE); get_pref(PREF_UTF_ENCODING, &utf_encoding, NULL); if (0 == utf_encoding) { /* user has not switched to UTF */ int ret; char text[1000]; g_snprintf(text, sizeof(text), _("J-Pilot uses the GTK2 graphical toolkit. " "This version of the toolkit uses UTF-8 to encode characters.\n" "You should select a UTF-8 charset so that you can see non-ASCII characters (accents for example).\n" "\n" /* Coded to reuse existing i18n strings */ "Go to the menu \"%s\" and change the \"%s\"."), _("/File/Preferences"), _("Character Set")); ret = dialog_generic(GTK_WINDOW(window), _("Select a UTF-8 encoding"), DIALOG_QUESTION, text, 3, button_text); switch (ret) { case DIALOG_SAID_1: cb_prefs_gui(NULL, window); break; case DIALOG_SAID_2: /* Do nothing and remind user at next program invocation */ break; case DIALOG_SAID_3: set_pref(PREF_UTF_ENCODING, 1, NULL, TRUE); break; } } } gtk_idle_add(cb_check_version, window); gtk_main(); otherconv_free(); return EXIT_SUCCESS; } jpilot-1.8.1.2/export_gui.c0000644000175000017500000002662311524574422012453 00000000000000/* $Id: export_gui.c,v 1.28 2010-10-15 23:50:07 rikster5 Exp $ */ /******************************************************************************* * export_gui.c * A module of J-Pilot http://jpilot.org * * Copyright (C) 1999-2002 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /********************************* Includes ***********************************/ #include "config.h" #include #include #include #include #include #include "i18n.h" #include "utils.h" #include "log.h" #include "prefs.h" #include "export.h" /********************************* Constants **********************************/ #define NUM_CAT_ITEMS 16 #define BROWSE_OK 1 #define BROWSE_CANCEL 2 /******************************* Global vars **********************************/ static GtkWidget *export_clist; static int export_category; static int glob_export_browse_pressed; static int glob_pref_export; static GtkWidget *export_radio_type[10]; static int glob_export_type; static GtkWidget *save_as_entry; /****************************** Prototypes ************************************/ static void (*glob_cb_export_menu)(GtkWidget *clist, int category); static void (*glob_cb_export_done)(GtkWidget *widget, const char *filename); static void (*glob_cb_export_ok)(GtkWidget *export_window, GtkWidget *clist, int type, const char *filename); /****************************** Main Code *************************************/ /* * Browse GUI */ static gboolean cb_export_browse_destroy(GtkWidget *widget) { gtk_main_quit(); return FALSE; } static void cb_export_browse_cancel(GtkWidget *widget, gpointer data) { glob_export_browse_pressed=BROWSE_CANCEL; gtk_widget_destroy(data); } static void cb_export_browse_ok(GtkWidget *widget, gpointer data) { const char *sel; glob_export_browse_pressed=BROWSE_OK; if (glob_pref_export) { sel = gtk_file_selection_get_filename(GTK_FILE_SELECTION(data)); set_pref(glob_pref_export, 0, sel, TRUE); } gtk_widget_destroy(data); } int export_browse(GtkWidget *main_window, int pref_export) { GtkWidget *filesel; const char *svalue; char dir[MAX_PREF_LEN+2]; int i; glob_export_browse_pressed = 0; if (pref_export) { glob_pref_export = pref_export; } else { glob_pref_export = 0; } if (pref_export) { get_pref(pref_export, NULL, &svalue); g_strlcpy(dir, svalue, sizeof(dir)); i=strlen(dir)-1; if (i<0) i=0; if (dir[i]!='/') { for (i=strlen(dir); i>=0; i--) { if (dir[i]=='/') { dir[i+1]='\0'; break; } } } chdir(dir); } filesel = gtk_file_selection_new(_("File Browser")); gtk_window_set_modal(GTK_WINDOW(filesel), TRUE); gtk_window_set_transient_for(GTK_WINDOW(filesel), GTK_WINDOW(main_window)); gtk_signal_connect(GTK_OBJECT(filesel), "destroy", GTK_SIGNAL_FUNC(cb_export_browse_destroy), filesel); gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filesel)->ok_button), "clicked", GTK_SIGNAL_FUNC(cb_export_browse_ok), filesel); gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filesel)->cancel_button), "clicked", GTK_SIGNAL_FUNC(cb_export_browse_cancel), filesel); gtk_widget_show(filesel); gtk_main(); return glob_export_browse_pressed; } /* End Export Browse */ /* * Start Export code */ static gboolean cb_export_destroy(GtkWidget *widget) { const char *filename; filename = gtk_entry_get_text(GTK_ENTRY(save_as_entry)); if (glob_cb_export_done) { glob_cb_export_done(widget, filename); } clist_clear(GTK_CLIST(export_clist)); gtk_main_quit(); return FALSE; } static void cb_ok(GtkWidget *widget, gpointer data) { const char *filename; filename = gtk_entry_get_text(GTK_ENTRY(save_as_entry)); if (glob_cb_export_ok) { glob_cb_export_ok(data, export_clist, glob_export_type, filename); } gtk_widget_destroy(data); } static void cb_export_browse(GtkWidget *widget, gpointer data) { int r; const char *svalue; r = export_browse(GTK_WIDGET(data), glob_pref_export); if (r==BROWSE_OK) { if (glob_pref_export) { get_pref(glob_pref_export, NULL, &svalue); gtk_entry_set_text(GTK_ENTRY(save_as_entry), svalue); } } } static void cb_export_quit(GtkWidget *widget, gpointer data) { gtk_widget_destroy(data); } static void cb_export_type(GtkWidget *widget, gpointer data) { glob_export_type=GPOINTER_TO_INT(data); } static void cb_export_category(GtkWidget *item, int selection) { if ((GTK_CHECK_MENU_ITEM(item))->active) { export_category = selection; jp_logf(JP_LOG_DEBUG, "cb_export_category() cat=%d\n", export_category); if (glob_cb_export_menu) { glob_cb_export_menu(export_clist, export_category); } gtk_clist_select_all(GTK_CLIST(export_clist)); jp_logf(JP_LOG_DEBUG, "Leaving cb_export_category()\n"); } } int export_gui(GtkWidget *main_window, int w, int h, int x, int y, int columns, struct sorted_cats *sort_l, int pref_export, char *type_text[], int type_int[], void (*cb_export_menu)(GtkWidget *clist, int category), void (*cb_export_done)(GtkWidget *widget, const char *filename), void (*cb_export_ok)(GtkWidget *export_window, GtkWidget *clist, int type, const char *filename) ) { GtkWidget *export_window; GtkWidget *button; GtkWidget *vbox; GtkWidget *hbox; GtkWidget *category_menu; GtkWidget *cat_menu_item[NUM_CAT_ITEMS+1]; GtkWidget *scrolled_window; GtkWidget *label; char title[256]; GSList *group; int i; const char *svalue; jp_logf(JP_LOG_DEBUG, "export_gui()\n"); export_category = CATEGORY_ALL; /* Set the export type to the first type available */ glob_export_type = type_int[0]; glob_cb_export_menu = cb_export_menu; glob_cb_export_done = cb_export_done; glob_cb_export_ok = cb_export_ok; glob_pref_export=pref_export; g_snprintf(title, sizeof(title), "%s %s", PN, _("Export")); export_window = gtk_widget_new(GTK_TYPE_WINDOW, "type", GTK_WINDOW_TOPLEVEL, "title", title, NULL); gtk_window_set_default_size(GTK_WINDOW(export_window), w, h); gtk_widget_set_uposition(GTK_WIDGET(export_window), x, y); gtk_window_set_modal(GTK_WINDOW(export_window), TRUE); gtk_window_set_transient_for(GTK_WINDOW(export_window), GTK_WINDOW(main_window)); gtk_container_set_border_width(GTK_CONTAINER(export_window), 5); gtk_signal_connect(GTK_OBJECT(export_window), "destroy", GTK_SIGNAL_FUNC(cb_export_destroy), export_window); vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(export_window), vbox); /* Label for instructions */ label = gtk_label_new(_("Select records to be exported")); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); label = gtk_label_new(_("Use Ctrl and Shift Keys")); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); /* Put the export category menu up */ make_category_menu(&category_menu, cat_menu_item, sort_l, cb_export_category, TRUE, FALSE); gtk_box_pack_start(GTK_BOX(vbox), category_menu, FALSE, FALSE, 0); /* Put the record list window up */ scrolled_window = gtk_scrolled_window_new(NULL, NULL); gtk_container_set_border_width(GTK_CONTAINER(scrolled_window), 0); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start(GTK_BOX(vbox), scrolled_window, TRUE, TRUE, 0); export_clist = gtk_clist_new(columns); gtk_clist_set_shadow_type(GTK_CLIST(export_clist), SHADOW); gtk_clist_set_selection_mode(GTK_CLIST(export_clist), GTK_SELECTION_EXTENDED); for (i=0; i #include #include #include #include #include #include #include #include #include #include "todo.h" #include "i18n.h" #include "utils.h" #include "log.h" #include "prefs.h" #include "password.h" #include "print.h" #include "export.h" #include "stock_buttons.h" /********************************* Constants **********************************/ #define TODO_MAX_COLUMN_LEN 80 #define MAX_RADIO_BUTTON_LEN 100 #define NUM_TODO_PRIORITIES 5 #define NUM_TODO_CAT_ITEMS 16 #define NUM_TODO_CSV_FIELDS 8 #define CONNECT_SIGNALS 400 #define DISCONNECT_SIGNALS 401 /* RFCs use CRLF for Internet newline */ #define CRLF "\x0D\x0A" /******************************* Global vars **********************************/ /* Keeps track of whether code is using ToDo, or Tasks database * 0 is ToDo, 1 is Tasks */ static long todo_version=0; extern GtkWidget *glob_date_label; extern int glob_date_timer_tag; static GtkWidget *clist; static GtkWidget *todo_desc, *todo_note; static GObject *todo_desc_buffer, *todo_note_buffer; static GtkWidget *todo_completed_checkbox; static GtkWidget *private_checkbox; static struct tm due_date; static GtkWidget *due_date_button; static GtkWidget *todo_no_due_date_checkbox; static GtkWidget *radio_button_todo[NUM_TODO_PRIORITIES]; /* Need two extra slots for the ALL category and Edit Categories... */ static GtkWidget *todo_cat_menu_item1[NUM_TODO_CAT_ITEMS+2]; static GtkWidget *todo_cat_menu_item2[NUM_TODO_CAT_ITEMS]; static GtkWidget *new_record_button; static GtkWidget *apply_record_button; static GtkWidget *add_record_button; static GtkWidget *delete_record_button; static GtkWidget *undelete_record_button; static GtkWidget *copy_record_button; static GtkWidget *cancel_record_button; static GtkWidget *category_menu1; static GtkWidget *category_menu2; static GtkWidget *pane; static GtkWidget *note_pane; static ToDoList *glob_todo_list=NULL; static ToDoList *export_todo_list=NULL; static struct sorted_cats sort_l[NUM_TODO_CAT_ITEMS]; static struct ToDoAppInfo todo_app_info; static int todo_category=CATEGORY_ALL; static int clist_col_selected; static int clist_row_selected; static int record_changed; /****************************** Prototypes ************************************/ static int todo_clear_details(void); static int todo_clist_redraw(void); static int todo_find(void); static void cb_add_new_record(GtkWidget *widget, gpointer data); static void connect_changed_signals(int con_or_dis); /****************************** Main Code *************************************/ /* Called once on initialization of GUI */ static void init(void) { time_t ltime; struct tm *now; long ivalue; time(<ime); now = localtime(<ime); memcpy(&due_date, now, sizeof(struct tm)); get_pref(PREF_TODO_DAYS_TILL_DUE, &ivalue, NULL); add_days_to_date(&due_date, ivalue); clist_row_selected = 0; clist_col_selected = 1; record_changed = CLEAR_FLAG; } static void update_due_button(GtkWidget *button, struct tm *t) { const char *short_date; char str[255]; if (t) { get_pref(PREF_SHORTDATE, NULL, &short_date); strftime(str, sizeof(str), short_date, t); gtk_label_set_text(GTK_LABEL(GTK_BIN(button)->child), str); } else { gtk_label_set_text(GTK_LABEL(GTK_BIN(button)->child), _("No Date")); } } static void cb_cal_dialog(GtkWidget *widget, gpointer data) { long fdow; int r = 0; struct tm t; GtkWidget *Pcheck_button; GtkWidget *Pbutton; Pcheck_button = todo_no_due_date_checkbox; memcpy(&t, &due_date, sizeof(t)); Pbutton = due_date_button; get_pref(PREF_FDOW, &fdow, NULL); r = cal_dialog(GTK_WINDOW(gtk_widget_get_toplevel(widget)), _("Due Date"), fdow, &(t.tm_mon), &(t.tm_mday), &(t.tm_year)); if (r==CAL_DONE) { mktime(&t); memcpy(&due_date, &t, sizeof(due_date)); if (Pcheck_button) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Pcheck_button), FALSE); /* The above call sets due_date forward by n days, so we correct it */ memcpy(&due_date, &t, sizeof(due_date)); update_due_button(Pbutton, &t); } if (Pbutton) { update_due_button(Pbutton, &t); } } } int todo_print(void) { long this_many; MyToDo *mtodo; ToDoList *todo_list; ToDoList todo_list1; get_pref(PREF_PRINT_THIS_MANY, &this_many, NULL); todo_list=NULL; if (this_many==1) { mtodo = gtk_clist_get_row_data(GTK_CLIST(clist), clist_row_selected); if (mtodo < (MyToDo *)CLIST_MIN_DATA) { return EXIT_FAILURE; } memcpy(&(todo_list1.mtodo), mtodo, sizeof(MyToDo)); todo_list1.next=NULL; todo_list = &todo_list1; } if (this_many==2) { get_todos2(&todo_list, SORT_ASCENDING, 2, 2, 2, 2, todo_category); } if (this_many==3) { get_todos2(&todo_list, SORT_ASCENDING, 2, 2, 2, 2, CATEGORY_ALL); } print_todos(todo_list, PN); if ((this_many==2) || (this_many==3)) { free_ToDoList(&todo_list); } return EXIT_SUCCESS; } static void set_new_button_to(int new_state) { jp_logf(JP_LOG_DEBUG, "set_new_button_to new %d old %d\n", new_state, record_changed); if (record_changed==new_state) { return; } switch (new_state) { case MODIFY_FLAG: gtk_widget_show(cancel_record_button); gtk_widget_show(copy_record_button); gtk_widget_show(apply_record_button); gtk_widget_hide(add_record_button); gtk_widget_hide(delete_record_button); gtk_widget_hide(new_record_button); gtk_widget_hide(undelete_record_button); break; case NEW_FLAG: gtk_widget_show(cancel_record_button); gtk_widget_show(add_record_button); gtk_widget_hide(apply_record_button); gtk_widget_hide(copy_record_button); gtk_widget_hide(delete_record_button); gtk_widget_hide(new_record_button); gtk_widget_hide(undelete_record_button); break; case CLEAR_FLAG: gtk_widget_show(delete_record_button); gtk_widget_show(copy_record_button); gtk_widget_show(new_record_button); gtk_widget_hide(add_record_button); gtk_widget_hide(apply_record_button); gtk_widget_hide(cancel_record_button); gtk_widget_hide(undelete_record_button); break; case UNDELETE_FLAG: gtk_widget_show(undelete_record_button); gtk_widget_show(copy_record_button); gtk_widget_show(new_record_button); gtk_widget_hide(add_record_button); gtk_widget_hide(apply_record_button); gtk_widget_hide(cancel_record_button); gtk_widget_hide(delete_record_button); break; default: return; } record_changed=new_state; } static void cb_record_changed(GtkWidget *widget, gpointer data) { jp_logf(JP_LOG_DEBUG, "cb_record_changed\n"); if (record_changed==CLEAR_FLAG) { connect_changed_signals(DISCONNECT_SIGNALS); if (GTK_CLIST(clist)->rows > 0) { set_new_button_to(MODIFY_FLAG); } else { set_new_button_to(NEW_FLAG); } } else if (record_changed==UNDELETE_FLAG) { jp_logf(JP_LOG_INFO|JP_LOG_GUI, _("This record is deleted.\n" "Undelete it or copy it to make changes.\n")); } } static void connect_changed_signals(int con_or_dis) { int i; static int connected=0; /* CONNECT */ if ((con_or_dis==CONNECT_SIGNALS) && (!connected)) { connected=1; for (i=0; iindefinite) { strcpy(due, "Never"); } else { get_pref(PREF_SHORTDATE, NULL, &short_date); strftime(due, sizeof(due), short_date, &(todo->due)); } complete=todo->complete ? yes : no; description=todo->description ? todo->description : empty; note=todo->note ? todo->note : empty; g_snprintf(text, len, "Due: %s\nPriority: %d\nComplete: %s\n\ Description: %s\nNote: %s\n", due, todo->priority, complete, description, note); return EXIT_SUCCESS; } /* * Start Import Code */ static int cb_todo_import(GtkWidget *parent_window, const char *file_path, int type) { FILE *in; char text[65536]; char description[65536]; char note[65536]; struct ToDo new_todo; unsigned char attrib; int i, ret, index; int import_all; ToDoList *todolist; ToDoList *temp_todolist; struct CategoryAppInfo cai; char old_cat_name[32]; int suggested_cat_num; int new_cat_num; int priv, indefinite, priority, completed; int year, month, day; in=fopen(file_path, "r"); if (!in) { jp_logf(JP_LOG_WARN, _("Unable to open file: %s\n"), file_path); return EXIT_FAILURE; } /* CSV */ if (type==IMPORT_TYPE_CSV) { jp_logf(JP_LOG_DEBUG, "Todo import CSV [%s]\n", file_path); /* Get the first line containing the format and check for reasonableness */ fgets(text, sizeof(text), in); ret = verify_csv_header(text, NUM_TODO_CSV_FIELDS, file_path); if (EXIT_FAILURE == ret) return EXIT_FAILURE; import_all=FALSE; while (1) { /* Read the category field */ ret = read_csv_field(in, text, sizeof(text)); if (feof(in)) break; #ifdef JPILOT_DEBUG printf("category is [%s]\n", text); #endif g_strlcpy(old_cat_name, text, 16); attrib=0; /* Figure out what the best category number is */ suggested_cat_num=0; for (i=0; inext) { index=temp_todolist->mtodo.unique_id-1; if (index<0) { g_strlcpy(old_cat_name, _("Unfiled"), 16); index=0; } else { g_strlcpy(old_cat_name, cai.name[index], 16); } /* Figure out what category it was in the dat file */ index=temp_todolist->mtodo.unique_id-1; suggested_cat_num=0; if (index>-1) { for (i=0; imtodo.todo), text, sizeof(text)); if (!import_all) { ret=import_record_ask(parent_window, pane, text, &(todo_app_info.category), old_cat_name, (temp_todolist->mtodo.attrib & 0x10), suggested_cat_num, &new_cat_num); } else { new_cat_num=suggested_cat_num; } if (ret==DIALOG_SAID_IMPORT_QUIT) break; if (ret==DIALOG_SAID_IMPORT_SKIP) continue; if (ret==DIALOG_SAID_IMPORT_ALL) import_all=TRUE; attrib = (new_cat_num & 0x0F) | ((temp_todolist->mtodo.attrib & 0x10) ? dlpRecAttrSecret : 0); if ((ret==DIALOG_SAID_IMPORT_YES) || (import_all)) { pc_todo_write(&(temp_todolist->mtodo.todo), NEW_PC_REC, attrib, NULL); } } free_ToDoList(&todolist); } todo_refresh(); fclose(in); return EXIT_SUCCESS; } int todo_import(GtkWidget *window) { char *type_desc[] = { N_("CSV (Comma Separated Values)"), N_("DAT/TDA (Palm Archive Formats)"), NULL }; int type_int[] = { IMPORT_TYPE_CSV, IMPORT_TYPE_DAT, 0 }; /* Hide ABA import of TaskDB until file format has been decoded */ /* FIXME: Uncomment when support for Tasks has been added if (todo_version==1) { type_desc[1] = NULL; type_int[1] = 0; } */ import_gui(window, pane, type_desc, type_int, cb_todo_import); return EXIT_SUCCESS; } /* * End Import Code */ /* * Start Export code */ static void cb_todo_export_ok(GtkWidget *export_window, GtkWidget *clist, int type, const char *filename) { MyToDo *mtodo; GList *list, *temp_list; FILE *out; struct stat statb; int i, r; const char *short_date; time_t ltime; struct tm *now = NULL; char *button_text[]={N_("OK")}; char *button_overwrite_text[]={N_("No"), N_("Yes")}; char text[1024]; char date_string[1024]; char str1[256], str2[256]; char pref_time[40]; char csv_text[65550]; char *p; gchar *end; char username[256]; char hostname[256]; const char *svalue; long userid; long char_set; char *utf; /* Open file for export, including corner cases where file exists or * can't be opened */ if (!stat(filename, &statb)) { if (S_ISDIR(statb.st_mode)) { g_snprintf(text, sizeof(text), _("%s is a directory"), filename); dialog_generic(GTK_WINDOW(export_window), _("Error Opening File"), DIALOG_ERROR, text, 1, button_text); return; } g_snprintf(text, sizeof(text), _("Do you want to overwrite file %s?"), filename); r = dialog_generic(GTK_WINDOW(export_window), _("Overwrite File?"), DIALOG_QUESTION, text, 2, button_overwrite_text); if (r!=DIALOG_SAID_2) { return; } } out = fopen(filename, "w"); if (!out) { g_snprintf(text, sizeof(text), _("Error opening file: %s"), filename); dialog_generic(GTK_WINDOW(export_window), _("Error Opening File"), DIALOG_ERROR, text, 1, button_text); return; } /* Write a header for TEXT file */ if (type == EXPORT_TYPE_TEXT) { get_pref(PREF_SHORTDATE, NULL, &short_date); get_pref_time_no_secs(pref_time); time(<ime); now = localtime(<ime); strftime(str1, sizeof(str1), short_date, now); strftime(str2, sizeof(str2), pref_time, now); g_snprintf(date_string, sizeof(date_string), "%s %s", str1, str2); fprintf(out, _("ToDo exported from %s %s on %s\n\n"), PN,VERSION,date_string); } /* Write a header to the CSV file */ if (type == EXPORT_TYPE_CSV) { fprintf(out, "CSV todo version "VERSION": Category, Private, Indefinite, Due Date, Priority, Completed, ToDo Text, Note\n"); } /* Special setup for ICAL export */ if (type == EXPORT_TYPE_ICALENDAR) { get_pref(PREF_CHAR_SET, &char_set, NULL); if (char_set < CHAR_SET_UTF) { jp_logf(JP_LOG_WARN, _("Host character encoding is not UTF-8 based.\n" " Exported ical file may not be standards-compliant\n")); } get_pref(PREF_USER, NULL, &svalue); /* Convert User Name stored in Palm character set */ g_strlcpy(text, svalue, 128); text[127] = '\0'; charset_p2j(text, 128, char_set); str_to_ical_str(username, sizeof(username), text); get_pref(PREF_USER_ID, &userid, NULL); gethostname(text, sizeof(hostname)); text[sizeof(hostname)-1]='\0'; str_to_ical_str(hostname, sizeof(hostname), text); time(<ime); now = gmtime(<ime); } get_pref(PREF_CHAR_SET, &char_set, NULL); list=GTK_CLIST(clist)->selection; for (i=0, temp_list=list; temp_list; temp_list = temp_list->next, i++) { mtodo = gtk_clist_get_row_data(GTK_CLIST(clist), GPOINTER_TO_INT(temp_list->data)); if (!mtodo) { continue; jp_logf(JP_LOG_WARN, _("Can't export todo %d\n"), (long) temp_list->data + 1); } switch (type) { case EXPORT_TYPE_CSV: utf = charset_p2newj(todo_app_info.category.name[mtodo->attrib & 0x0F], 16, char_set); str_to_csv_str(csv_text, utf); fprintf(out, "\"%s\",", csv_text); g_free(utf); fprintf(out, "\"%s\",", (mtodo->attrib & dlpRecAttrSecret) ? "1":"0"); fprintf(out, "\"%s\",", mtodo->todo.indefinite ? "1":"0"); if (mtodo->todo.indefinite) { fprintf(out, "\"\","); } else { strftime(text, sizeof(text), "%Y/%02m/%02d", &(mtodo->todo.due)); fprintf(out, "\"%s\",", text); } fprintf(out, "\"%d\",", mtodo->todo.priority); fprintf(out, "\"%s\",", mtodo->todo.complete ? "1":"0"); if (mtodo->todo.description) { str_to_csv_str(csv_text, mtodo->todo.description); fprintf(out, "\"%s\",", csv_text); } else { fprintf(out, "\"\","); } if (mtodo->todo.note) { str_to_csv_str(csv_text, mtodo->todo.note); fprintf(out, "\"%s\"\n", csv_text); } else { fprintf(out, "\"\","); } break; case EXPORT_TYPE_TEXT: utf = charset_p2newj(todo_app_info.category.name[mtodo->attrib & 0x0F], 16, char_set); fprintf(out, _("Category: %s\n"), utf); g_free(utf); fprintf(out, _("Private: %s\n"), (mtodo->attrib & dlpRecAttrSecret) ? _("Yes"):_("No")); if (mtodo->todo.indefinite) { fprintf(out, _("Due Date: None\n")); } else { strftime(text, sizeof(text), short_date, &(mtodo->todo.due)); fprintf(out, _("Due Date: %s\n"), text); } fprintf(out, _("Priority: %d\n"), mtodo->todo.priority); fprintf(out, _("Completed: %s\n"), mtodo->todo.complete ? _("Yes"):_("No")); if (mtodo->todo.description) { fprintf(out, _("Description: %s\n"), mtodo->todo.description); } if (mtodo->todo.note) { fprintf(out, _("Note: %s\n\n"), mtodo->todo.note); } break; case EXPORT_TYPE_ICALENDAR: /* RFC 2445: Internet Calendaring and Scheduling Core * Object Specification */ if (i == 0) { fprintf(out, "BEGIN:VCALENDAR"CRLF); fprintf(out, "VERSION:2.0"CRLF); fprintf(out, "PRODID:%s"CRLF, FPI_STRING); } fprintf(out, "BEGIN:VTODO"CRLF); if (mtodo->attrib & dlpRecAttrSecret) { fprintf(out, "CLASS:PRIVATE"CRLF); } fprintf(out, "UID:palm-todo-%08x-%08lx-%s@%s"CRLF, mtodo->unique_id, userid, username, hostname); fprintf(out, "DTSTAMP:%04d%02d%02dT%02d%02d%02dZ"CRLF, now->tm_year+1900, now->tm_mon+1, now->tm_mday, now->tm_hour, now->tm_min, now->tm_sec); str_to_ical_str(text, sizeof(text), todo_app_info.category.name[mtodo->attrib & 0x0F]); fprintf(out, "CATEGORIES:%s"CRLF, text); if (mtodo->todo.description) { g_strlcpy(str1, mtodo->todo.description, 51); /* truncate the string on a UTF-8 character boundary */ if (char_set > CHAR_SET_UTF) { if (!g_utf8_validate(str1, -1, (const gchar **)&end)) *end = 0; } } else { /* Handle pathological case with null description. */ str1[0] = '\0'; } if ((p = strchr(str1, '\n'))) { *p = '\0'; } str_to_ical_str(text, sizeof(text), str1); fprintf(out, "SUMMARY:%s%s"CRLF, text, strlen(str1) > 49 ? "..." : ""); str_to_ical_str(text, sizeof(text), mtodo->todo.description); fprintf(out, "DESCRIPTION:%s", text); if (mtodo->todo.note && mtodo->todo.note[0]) { str_to_ical_str(text, sizeof(text), mtodo->todo.note); fprintf(out, "\\n"CRLF" %s"CRLF, text); } else { fprintf(out, ""CRLF); } fprintf(out, "STATUS:%s"CRLF, mtodo->todo.complete ? "COMPLETED" : "NEEDS-ACTION"); fprintf(out, "PRIORITY:%d"CRLF, mtodo->todo.priority); if (!mtodo->todo.indefinite) { fprintf(out, "DUE;VALUE=DATE:%04d%02d%02d"CRLF, mtodo->todo.due.tm_year+1900, mtodo->todo.due.tm_mon+1, mtodo->todo.due.tm_mday); } fprintf(out, "END:VTODO"CRLF); if (temp_list->next == NULL) { fprintf(out, "END:VCALENDAR"CRLF); } break; default: jp_logf(JP_LOG_WARN, _("Unknown export type\n")); } } if (out) { fclose(out); } } static void cb_todo_update_clist(GtkWidget *clist, int category) { todo_update_clist(clist, NULL, &export_todo_list, category, FALSE); } static void cb_todo_export_done(GtkWidget *widget, const char *filename) { free_ToDoList(&export_todo_list); set_pref(PREF_TODO_EXPORT_FILENAME, 0, filename, TRUE); } int todo_export(GtkWidget *window) { int w, h, x, y; char *type_text[]={N_("Text"), N_("CSV"), N_("iCalendar"), NULL}; int type_int[]={EXPORT_TYPE_TEXT, EXPORT_TYPE_CSV, EXPORT_TYPE_ICALENDAR}; gdk_window_get_size(window->window, &w, &h); gdk_window_get_root_origin(window->window, &x, &y); w = gtk_paned_get_position(GTK_PANED(pane)); x+=40; export_gui(window, w, h, x, y, 5, sort_l, PREF_TODO_EXPORT_FILENAME, type_text, type_int, cb_todo_update_clist, cb_todo_export_done, cb_todo_export_ok ); return EXIT_SUCCESS; } /* * End Export Code */ /* Find position of category in sorted category array * via its assigned category number */ static int find_sort_cat_pos(int cat) { int i; for (i=0; itodo.description) charset_j2p(mtodo->todo.description, strlen(mtodo->todo.description)+1, char_set); if (mtodo->todo.note) charset_j2p(mtodo->todo.note, strlen(mtodo->todo.note)+1, char_set); } /* Do masking like Palm OS 3.5 */ show_priv = show_privates(GET_PRIVATES); if ((show_priv != SHOW_PRIVATES) && (mtodo->attrib & dlpRecAttrSecret)) { return; } /* End Masking */ flag = GPOINTER_TO_INT(data); if ((flag==MODIFY_FLAG) || (flag==DELETE_FLAG)) { jp_logf(JP_LOG_DEBUG, "calling delete_pc_record\n"); delete_pc_record(TODO, mtodo, flag); if (flag==DELETE_FLAG) { /* when we redraw we want to go to the line above the deleted one */ if (clist_row_selected>0) { clist_row_selected--; } } } if (flag == DELETE_FLAG) { todo_clist_redraw(); } } static void cb_undelete_todo(GtkWidget *widget, gpointer data) { MyToDo *mtodo; int flag; int show_priv; mtodo = gtk_clist_get_row_data(GTK_CLIST(clist), clist_row_selected); if (mtodo < (MyToDo *)CLIST_MIN_DATA) { return; } /* Do masking like Palm OS 3.5 */ show_priv = show_privates(GET_PRIVATES); if ((show_priv != SHOW_PRIVATES) && (mtodo->attrib & dlpRecAttrSecret)) { return; } /* End Masking */ jp_logf(JP_LOG_DEBUG, "mtodo->unique_id = %d\n",mtodo->unique_id); jp_logf(JP_LOG_DEBUG, "mtodo->rt = %d\n",mtodo->rt); flag = GPOINTER_TO_INT(data); if (flag==UNDELETE_FLAG) { if (mtodo->rt == DELETED_PALM_REC || mtodo->rt == DELETED_PC_REC) { undelete_pc_record(TODO, mtodo, flag); } /* Possible later addition of undelete for modified records else if (mtodo->rt == MODIFIED_PALM_REC) { cb_add_new_record(widget, GINT_TO_POINTER(COPY_FLAG)); } */ } todo_clist_redraw(); } static void cb_cancel(GtkWidget *widget, gpointer data) { set_new_button_to(CLEAR_FLAG); todo_refresh(); } static void cb_edit_cats(GtkWidget *widget, gpointer data) { struct ToDoAppInfo ai; char db_name[FILENAME_MAX]; char pdb_name[FILENAME_MAX]; char full_name[FILENAME_MAX]; unsigned char buffer[65536]; int num; size_t size; void *buf; struct pi_file *pf; #ifdef ENABLE_MANANA long ivalue; #endif jp_logf(JP_LOG_DEBUG, "cb_edit_cats\n"); #ifdef ENABLE_MANANA get_pref(PREF_MANANA_MODE, &ivalue, NULL); if (ivalue) { strcpy(pdb_name, "MaanaDB.pdb"); strcpy(db_name, "MaanaDB"); } else { strcpy(pdb_name, "ToDoDB.pdb"); strcpy(db_name, "ToDoDB"); } #else strcpy(pdb_name, "ToDoDB.pdb"); strcpy(db_name, "ToDoDB"); #endif get_home_file_name(pdb_name, full_name, sizeof(full_name)); buf=NULL; memset(&ai, 0, sizeof(ai)); pf = pi_file_open(full_name); pi_file_get_app_info(pf, &buf, &size); num = unpack_ToDoAppInfo(&ai, buf, size); if (num <= 0) { jp_logf(JP_LOG_WARN, _("Error reading file: %s\n"), pdb_name); return; } pi_file_close(pf); edit_cats(widget, db_name, &(ai.category)); size = pack_ToDoAppInfo(&ai, buffer, sizeof(buffer)); pdb_file_write_app_block(db_name, buffer, size); cb_app_button(NULL, GINT_TO_POINTER(REDRAW)); } static void cb_category(GtkWidget *item, int selection) { int b; if ((GTK_CHECK_MENU_ITEM(item))->active) { if (todo_category == selection) { return; } b=dialog_save_changed_record_with_cancel(pane, record_changed); if (b==DIALOG_SAID_1) { /* Cancel */ int index, index2; if (todo_category==CATEGORY_ALL) { index = 0; index2 = 0; } else { index = find_sort_cat_pos(todo_category); index2 = find_menu_cat_pos(index) + 1; index += 1; } if (index<0) { jp_logf(JP_LOG_WARN, _("Category is not legal\n")); } else { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(todo_cat_menu_item1[index]), TRUE); gtk_option_menu_set_history(GTK_OPTION_MENU(category_menu1), index2); } return; } if (b==DIALOG_SAID_3) { /* Save */ cb_add_new_record(NULL, GINT_TO_POINTER(record_changed)); } if (selection==NUM_TODO_CAT_ITEMS+1) { cb_edit_cats(item, NULL); } else { todo_category = selection; } clist_row_selected = 0; jp_logf(JP_LOG_DEBUG, "todo_category = %d\n",todo_category); todo_update_clist(clist, category_menu1, &glob_todo_list, todo_category, TRUE); } } static void cb_check_button_no_due_date(GtkWidget *widget, gpointer data) { long till_due; struct tm *now; time_t ltime; if (GTK_TOGGLE_BUTTON(widget)->active) { update_due_button(due_date_button, NULL); } else { time(<ime); now = localtime(<ime); memcpy(&due_date, now, sizeof(struct tm)); get_pref(PREF_TODO_DAYS_TILL_DUE, &till_due, NULL); add_days_to_date(&due_date, till_due); update_due_button(due_date_button, &due_date); } } static int todo_clear_details(void) { time_t ltime; struct tm *now; int new_cat; int sorted_position; long default_due, till_due; time(<ime); now = localtime(<ime); /* Need to disconnect these signals first */ connect_changed_signals(DISCONNECT_SIGNALS); gtk_widget_freeze_child_notify(todo_desc); gtk_widget_freeze_child_notify(todo_note); gtk_text_buffer_set_text(GTK_TEXT_BUFFER(todo_desc_buffer), "", -1); gtk_text_buffer_set_text(GTK_TEXT_BUFFER(todo_note_buffer), "", -1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio_button_todo[0]), TRUE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(todo_completed_checkbox), FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(private_checkbox), FALSE); get_pref(PREF_TODO_DAYS_DUE, &default_due, NULL); get_pref(PREF_TODO_DAYS_TILL_DUE, &till_due, NULL); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(todo_no_due_date_checkbox), ! default_due); memcpy(&due_date, now, sizeof(struct tm)); if (default_due) { add_days_to_date(&due_date, till_due); update_due_button(due_date_button, &due_date); } else { update_due_button(due_date_button, NULL); } gtk_widget_thaw_child_notify(todo_desc); gtk_widget_thaw_child_notify(todo_note); if (todo_category==CATEGORY_ALL) { new_cat = 0; } else { new_cat = todo_category; } sorted_position = find_sort_cat_pos(new_cat); if (sorted_position<0) { jp_logf(JP_LOG_WARN, _("Category is not legal\n")); } else { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(todo_cat_menu_item2[sorted_position]), TRUE); gtk_option_menu_set_history(GTK_OPTION_MENU(category_menu2), find_menu_cat_pos(sorted_position)); } set_new_button_to(CLEAR_FLAG); connect_changed_signals(CONNECT_SIGNALS); return EXIT_SUCCESS; } static int todo_get_details(struct ToDo *new_todo, unsigned char *attrib) { int i; GtkTextIter start_iter; GtkTextIter end_iter; new_todo->indefinite = (GTK_TOGGLE_BUTTON(todo_no_due_date_checkbox)->active); if (!(new_todo->indefinite)) { new_todo->due.tm_mon = due_date.tm_mon; new_todo->due.tm_mday = due_date.tm_mday; new_todo->due.tm_year = due_date.tm_year; jp_logf(JP_LOG_DEBUG, "todo_get_details: setting due date=%d/%d/%d\n", new_todo->due.tm_mon, new_todo->due.tm_mday, new_todo->due.tm_year); } else { memset(&(new_todo->due), 0, sizeof(new_todo->due)); } new_todo->priority=1; for (i=0; iactive) { new_todo->priority=i+1; break; } } new_todo->complete = (GTK_TOGGLE_BUTTON(todo_completed_checkbox)->active); /* Can there be an entry with no description? */ /* Yes, but the Palm Pilot gui doesn't allow it to be entered on the Palm, */ /* it will show it though. I allow it. */ gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(todo_desc_buffer), &start_iter,&end_iter); new_todo->description = gtk_text_buffer_get_text(GTK_TEXT_BUFFER(todo_desc_buffer), &start_iter,&end_iter,TRUE); gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(todo_note_buffer), &start_iter,&end_iter); new_todo->note = gtk_text_buffer_get_text(GTK_TEXT_BUFFER(todo_note_buffer), &start_iter,&end_iter,TRUE); if (new_todo->note[0]=='\0') { free(new_todo->note); new_todo->note=NULL; } for (i=0; iactive) { *attrib = sort_l[i].cat_num; break; } } } if (GTK_TOGGLE_BUTTON(private_checkbox)->active) { *attrib |= dlpRecAttrSecret; } #ifdef JPILOT_DEBUG jp_logf(JP_LOG_DEBUG, "attrib = %d\n", *attrib); jp_logf(JP_LOG_DEBUG, "indefinite=%d\n",new_todo->indefinite); if (!new_todo->indefinite) { jp_logf(JP_LOG_DEBUG, "due: %d/%d/%d\n",new_todo->due.tm_mon, new_todo->due.tm_mday, new_todo->due.tm_year); } jp_logf(JP_LOG_DEBUG, "priority=%d\n",new_todo->priority); jp_logf(JP_LOG_DEBUG, "complete=%d\n",new_todo->complete); jp_logf(JP_LOG_DEBUG, "description=[%s]\n",new_todo->description); jp_logf(JP_LOG_DEBUG, "note=[%s]\n",new_todo->note); #endif return EXIT_SUCCESS; } static void cb_add_new_record(GtkWidget *widget, gpointer data) { MyToDo *mtodo; struct ToDo new_todo; unsigned char attrib = 0; int flag; int show_priv; unsigned int unique_id; flag=GPOINTER_TO_INT(data); unique_id = 0; mtodo=NULL; /* Do masking like Palm OS 3.5 */ if ((flag==COPY_FLAG) || (flag==MODIFY_FLAG)) { show_priv = show_privates(GET_PRIVATES); mtodo = gtk_clist_get_row_data(GTK_CLIST(clist), clist_row_selected); if (mtodo < (MyToDo *)CLIST_MIN_DATA) { return; } if ((show_priv != SHOW_PRIVATES) && (mtodo->attrib & dlpRecAttrSecret)) { return; } } /* End Masking */ if (flag==CLEAR_FLAG) { /* Clear button was hit */ todo_clear_details(); connect_changed_signals(DISCONNECT_SIGNALS); set_new_button_to(NEW_FLAG); gtk_widget_grab_focus(GTK_WIDGET(todo_desc)); return; } if ((flag!=NEW_FLAG) && (flag!=MODIFY_FLAG) && (flag!=COPY_FLAG)) { return; } if (flag==MODIFY_FLAG) { mtodo = gtk_clist_get_row_data(GTK_CLIST(clist), clist_row_selected); unique_id=mtodo->unique_id; if (mtodo < (MyToDo *)CLIST_MIN_DATA) { return; } if ((mtodo->rt==DELETED_PALM_REC) || (mtodo->rt==DELETED_PC_REC) || (mtodo->rt==MODIFIED_PALM_REC)) { jp_logf(JP_LOG_INFO, _("You can't modify a record that is deleted\n")); return; } } todo_get_details(&new_todo, &attrib); set_new_button_to(CLEAR_FLAG); if (flag==MODIFY_FLAG) { cb_delete_todo(NULL, data); if ((mtodo->rt==PALM_REC) || (mtodo->rt==REPLACEMENT_PALM_REC)) { pc_todo_write(&new_todo, REPLACEMENT_PALM_REC, attrib, &unique_id); } else { unique_id=0; pc_todo_write(&new_todo, NEW_PC_REC, attrib, &unique_id); } } else { unique_id=0; pc_todo_write(&new_todo, NEW_PC_REC, attrib, &unique_id); } free_ToDo(&new_todo); /* Don't return to modified record if search gui active */ if (!glob_find_id) { glob_find_id = unique_id; } todo_clist_redraw(); return; } /* Do masking like Palm OS 3.5 */ static void clear_mytodos(MyToDo *mtodo) { mtodo->unique_id=0; mtodo->attrib=mtodo->attrib & 0xF8; mtodo->todo.complete=0; mtodo->todo.priority=1; mtodo->todo.indefinite=1; if (mtodo->todo.description) { free(mtodo->todo.description); mtodo->todo.description=strdup(""); } if (mtodo->todo.note) { free(mtodo->todo.note); mtodo->todo.note=strdup(""); } return; } /* End Masking */ /* Function is used to sort clist based on the completed checkbox */ static gint GtkClistCompareCheckbox(GtkCList *clist, gconstpointer ptr1, gconstpointer ptr2) { GtkCListRow *row1; GtkCListRow *row2; MyToDo *mtodo1; MyToDo *mtodo2; struct ToDo *todo1; struct ToDo *todo2; row1 = (GtkCListRow *) ptr1; row2 = (GtkCListRow *) ptr2; mtodo1 = row1->data; mtodo2 = row2->data; todo1 = &(mtodo1->todo); todo2 = &(mtodo2->todo); if (todo1->complete && !todo2->complete) { return -1; } else if (todo2->complete && !todo1->complete) { return 1; } else { return 0; } } /* Function is used to sort clist based on the Due Date field */ static gint GtkClistCompareDates(GtkCList *clist, gconstpointer ptr1, gconstpointer ptr2) { GtkCListRow *row1, *row2; MyToDo *mtodo1,*mtodo2; struct ToDo *todo1, *todo2; time_t time1, time2; row1 = (GtkCListRow *) ptr1; row2 = (GtkCListRow *) ptr2; mtodo1 = row1->data; mtodo2 = row2->data; todo1 = &(mtodo1->todo); todo2 = &(mtodo2->todo); if ( !(todo1->indefinite) && (todo2->indefinite) ) { return -1; } if ( (todo1->indefinite) && !(todo2->indefinite) ) { return 1; } /* Both todos have due dates which requires further comparison */ time1 = mktime(&(todo1->due)); time2 = mktime(&(todo2->due)); return(time1 - time2); } static void cb_clist_click_column(GtkWidget *clist, int column) { MyToDo *mtodo; /* Remember currently selected item and return to it after sort * This is critically important because sorting without updating the * global variable clist_row_selected can cause data loss */ mtodo = gtk_clist_get_row_data(GTK_CLIST(clist), clist_row_selected); if (mtodo < (MyToDo *)CLIST_MIN_DATA) { glob_find_id = 0; } else { glob_find_id = mtodo->unique_id; } /* Clicking on same column toggles ascending/descending sort */ if (clist_col_selected == column) { if (GTK_CLIST(clist)->sort_type == GTK_SORT_ASCENDING) { gtk_clist_set_sort_type(GTK_CLIST (clist), GTK_SORT_DESCENDING); } else { gtk_clist_set_sort_type(GTK_CLIST (clist), GTK_SORT_ASCENDING); } } else /* Always sort in ascending order when changing sort column */ { gtk_clist_set_sort_type(GTK_CLIST (clist), GTK_SORT_ASCENDING); } clist_col_selected = column; gtk_clist_set_sort_column(GTK_CLIST(clist), column); switch (column) { case TODO_CHECK_COLUMN: /* Checkbox column */ gtk_clist_set_compare_func(GTK_CLIST(clist),GtkClistCompareCheckbox); break; case TODO_DATE_COLUMN: /* Due Date column */ gtk_clist_set_compare_func(GTK_CLIST(clist),GtkClistCompareDates); break; default: /* All other columns can use GTK default sort function */ gtk_clist_set_compare_func(GTK_CLIST(clist),NULL); break; } gtk_clist_sort (GTK_CLIST (clist)); /* Return to previously selected item */ todo_find(); } static void cb_clist_selection(GtkWidget *clist, gint row, gint column, GdkEventButton *event, gpointer data) { struct ToDo *todo; MyToDo *mtodo; int b; int index, sorted_position; unsigned int unique_id = 0; time_t ltime; struct tm *now; if ((record_changed==MODIFY_FLAG) || (record_changed==NEW_FLAG)) { if (clist_row_selected == row) { return; } mtodo = gtk_clist_get_row_data(GTK_CLIST(clist), row); if (mtodo!=NULL) { unique_id = mtodo->unique_id; } b=dialog_save_changed_record_with_cancel(pane, record_changed); if (b==DIALOG_SAID_1) { /* Cancel */ if (clist_row_selected >=0) { clist_select_row(GTK_CLIST(clist), clist_row_selected, 0); } else { clist_row_selected = 0; clist_select_row(GTK_CLIST(clist), 0, 0); } return; } if (b==DIALOG_SAID_3) { /* Save */ cb_add_new_record(NULL, GINT_TO_POINTER(record_changed)); } set_new_button_to(CLEAR_FLAG); if (unique_id) { glob_find_id = unique_id; todo_find(); } else { clist_select_row(GTK_CLIST(clist), row, column); } return; } time(<ime); now = localtime(<ime); clist_row_selected=row; mtodo = gtk_clist_get_row_data(GTK_CLIST(clist), row); if (mtodo==NULL) { return; } if (mtodo->rt == DELETED_PALM_REC || (mtodo->rt == DELETED_PC_REC)) /* Possible later addition of undelete code for modified deleted records || mtodo->rt == MODIFIED_PALM_REC */ { set_new_button_to(UNDELETE_FLAG); } else { set_new_button_to(CLEAR_FLAG); } connect_changed_signals(DISCONNECT_SIGNALS); if (mtodo==NULL) { return; } todo=&(mtodo->todo); gtk_widget_freeze_child_notify(todo_desc); gtk_widget_freeze_child_notify(todo_note); gtk_text_buffer_set_text(GTK_TEXT_BUFFER(todo_desc_buffer), "", -1); gtk_text_buffer_set_text(GTK_TEXT_BUFFER(todo_note_buffer), "", -1); index = mtodo->attrib & 0x0F; sorted_position = find_sort_cat_pos(index); if (todo_cat_menu_item2[sorted_position]==NULL) { /* Illegal category */ jp_logf(JP_LOG_DEBUG, "Category is not legal\n"); index = sorted_position = 0; sorted_position = find_sort_cat_pos(index); } if (sorted_position<0) { jp_logf(JP_LOG_WARN, _("Category is not legal\n")); } else { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(todo_cat_menu_item2[sorted_position]), TRUE); } gtk_option_menu_set_history(GTK_OPTION_MENU(category_menu2), find_menu_cat_pos(sorted_position)); if (todo->description) { if (todo->description[0]) { gtk_text_buffer_set_text(GTK_TEXT_BUFFER(todo_desc_buffer), todo->description, -1); } } if (todo->note) { if (todo->note[0]) { gtk_text_buffer_set_text(GTK_TEXT_BUFFER(todo_note_buffer), todo->note, -1); } } if ( (todo->priority<1) || (todo->priority>5) ) { jp_logf(JP_LOG_WARN, _("Priority out of range\n")); } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio_button_todo[todo->priority-1]), TRUE); } gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(todo_completed_checkbox), todo->complete); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(private_checkbox), mtodo->attrib & dlpRecAttrSecret); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(todo_no_due_date_checkbox), todo->indefinite); if (!todo->indefinite) { update_due_button(due_date_button, &(todo->due)); due_date.tm_mon=todo->due.tm_mon; due_date.tm_mday=todo->due.tm_mday; due_date.tm_year=todo->due.tm_year; } else { update_due_button(due_date_button, NULL); due_date.tm_mon=now->tm_mon; due_date.tm_mday=now->tm_mday; due_date.tm_year=now->tm_year; } gtk_widget_thaw_child_notify(todo_desc); gtk_widget_thaw_child_notify(todo_note); /* If they have clicked on the checkmark box then do a modify */ if (column==0) { gtk_signal_emit_by_name(GTK_OBJECT(todo_completed_checkbox), "clicked"); gtk_signal_emit_by_name(GTK_OBJECT(apply_record_button), "clicked"); } connect_changed_signals(CONNECT_SIGNALS); } static gboolean cb_key_pressed_left_side(GtkWidget *widget, GdkEventKey *event, gpointer next_widget) { GtkTextBuffer *text_buffer; GtkTextIter iter; if (event->keyval == GDK_Return) { gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), "key_press_event"); gtk_widget_grab_focus(GTK_WIDGET(next_widget)); /* Position cursor at start of text */ text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(next_widget)); gtk_text_buffer_get_start_iter(text_buffer, &iter); gtk_text_buffer_place_cursor(text_buffer, &iter); return TRUE; } return FALSE; } static gboolean cb_key_pressed_right_side(GtkWidget *widget, GdkEventKey *event, gpointer data) { if ((event->keyval == GDK_Return) && (event->state & GDK_SHIFT_MASK)) { gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), "key_press_event"); /* Call clist_selection to handle any cleanup such as a modified record */ cb_clist_selection(clist, clist_row_selected, TODO_PRIORITY_COLUMN, GINT_TO_POINTER(1), NULL); gtk_widget_grab_focus(GTK_WIDGET(clist)); return TRUE; } /* Call external editor for note text */ if (data != NULL && (event->keyval == GDK_e) && (event->state & GDK_CONTROL_MASK)) { gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), "key_press_event"); /* Get current text and place in temporary file */ GtkTextIter start_iter; GtkTextIter end_iter; char *text_out; gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(todo_note_buffer), &start_iter, &end_iter); text_out = gtk_text_buffer_get_text(GTK_TEXT_BUFFER(todo_note_buffer), &start_iter, &end_iter, TRUE); char tmp_fname[] = "jpilot.XXXXXX"; int tmpfd = mkstemp(tmp_fname); if (tmpfd < 0) { jp_logf(JP_LOG_WARN, _("Could not get temporary file name\n")); if (text_out) free(text_out); return TRUE; } FILE *fptr = fdopen(tmpfd, "w"); if (!fptr) { jp_logf(JP_LOG_WARN, _("Could not open temporary file for external editor\n")); if (text_out) free(text_out); return TRUE; } fwrite(text_out, strlen(text_out), 1, fptr); fwrite("\n", 1, 1, fptr); fclose(fptr); /* Call external editor */ char command[1024]; const char *ext_editor; get_pref(PREF_EXTERNAL_EDITOR, NULL, &ext_editor); if (!ext_editor) { jp_logf(JP_LOG_INFO, "External Editor command empty\n"); if (text_out) free(text_out); return TRUE; } if ((strlen(ext_editor) + strlen(tmp_fname) + 1) > sizeof(command)) { jp_logf(JP_LOG_WARN, _("External editor command too long to execute\n")); if (text_out) free(text_out); return TRUE; } g_snprintf(command, sizeof(command), "%s %s", ext_editor, tmp_fname); /* jp_logf(JP_LOG_STDOUT|JP_LOG_FILE, _("executing command = [%s]\n"), command); */ int r = system(command); if (!r) { /* Read data back from temporary file into memo */ char text_in[0xFFFF]; size_t bytes_read; fptr = fopen(tmp_fname, "rb"); if (!fptr) { jp_logf(JP_LOG_WARN, _("Could not open temporary file from external editor\n")); return TRUE; } bytes_read = fread(text_in, 1, 0xFFFF, fptr); fclose(fptr); unlink(tmp_fname); text_in[--bytes_read] = '\0'; /* Strip final newline */ /* Only update text if it has changed */ if (strcmp(text_out, text_in)) { gtk_text_buffer_set_text(GTK_TEXT_BUFFER(todo_note_buffer), text_in, -1); } } if (text_out) free(text_out); return TRUE; } /* End of external editor if */ return FALSE; } void todo_clist_clear(GtkCList *clist) { GtkStyle *base_style, *row_style, *cell_style; int i; base_style = gtk_widget_get_style(GTK_WIDGET(clist)); for (i=0; irows ; i++) { row_style = gtk_clist_get_row_style(GTK_CLIST(clist), i); if (row_style && (row_style != base_style)) { g_object_unref(row_style); } cell_style = gtk_clist_get_cell_style(GTK_CLIST(clist), i, TODO_DATE_COLUMN); if (cell_style && (cell_style != base_style)) { g_object_unref(cell_style); } } gtk_clist_clear(GTK_CLIST(clist)); } void todo_update_clist(GtkWidget *clist, GtkWidget *tooltip_widget, ToDoList **todo_list, int category, int main) { int num_entries, entries_shown, i; gchar *empty_line[] = { "","","","","" }; GdkPixmap *pixmap_note; GdkPixmap *pixmap_check; GdkPixmap *pixmap_checked; GdkBitmap *mask_note; GdkBitmap *mask_check; GdkBitmap *mask_checked; ToDoList *temp_todo; char str[50]; char str2[TODO_MAX_COLUMN_LEN+2]; const char *svalue; long hide_completed, hide_not_due; long show_tooltips; int show_priv; time_t ltime; struct tm *now, *due; int comp_now, comp_due; free_ToDoList(todo_list); /* Need to get all records including private ones for the tooltips calculation */ num_entries = get_todos2(todo_list, SORT_ASCENDING, 2, 2, 1, 1, CATEGORY_ALL); /* Start by clearing existing entry if in main window */ if (main) { todo_clear_details(); } /* Freeze clist to prevent flicker during updating */ gtk_clist_freeze(GTK_CLIST(clist)); if (main) { gtk_signal_disconnect_by_func(GTK_OBJECT(clist), GTK_SIGNAL_FUNC(cb_clist_selection), NULL); } todo_clist_clear(GTK_CLIST(clist)); #ifdef __APPLE__ gtk_clist_thaw(GTK_CLIST(clist)); gtk_widget_hide(clist); gtk_widget_show_all(clist); gtk_clist_freeze(GTK_CLIST(clist)); #endif /* Collect preferences and constant pixmaps for loop */ get_pref(PREF_TODO_HIDE_COMPLETED, &hide_completed, NULL); get_pref(PREF_TODO_HIDE_NOT_DUE, &hide_not_due, NULL); show_priv = show_privates(GET_PRIVATES); get_pixmaps(clist, PIXMAP_NOTE, &pixmap_note, &mask_note); get_pixmaps(clist, PIXMAP_BOX_CHECK, &pixmap_check, &mask_check); get_pixmaps(clist, PIXMAP_BOX_CHECKED, &pixmap_checked,&mask_checked); #ifdef __APPLE__ mask_note = NULL; mask_check = NULL; mask_checked = NULL; #endif /* Current time used for calculating overdue items */ time(<ime); now = localtime(<ime); comp_now=now->tm_year*380+now->tm_mon*31+now->tm_mday-1; entries_shown=0; for (temp_todo = *todo_list, i=0; temp_todo; temp_todo=temp_todo->next) { if ( ((temp_todo->mtodo.attrib & 0x0F) != category) && category != CATEGORY_ALL) { continue; } /* Do masking like Palm OS 3.5 */ if ((show_priv == MASK_PRIVATES) && (temp_todo->mtodo.attrib & dlpRecAttrSecret)) { gtk_clist_append(GTK_CLIST(clist), empty_line); gtk_clist_set_text(GTK_CLIST(clist), entries_shown, TODO_CHECK_COLUMN, "---"); gtk_clist_set_text(GTK_CLIST(clist), entries_shown, TODO_PRIORITY_COLUMN, "---"); gtk_clist_set_text(GTK_CLIST(clist), entries_shown, TODO_TEXT_COLUMN, "--------------------"); gtk_clist_set_text(GTK_CLIST(clist), entries_shown, TODO_DATE_COLUMN, "----------"); clear_mytodos(&temp_todo->mtodo); gtk_clist_set_row_data(GTK_CLIST(clist), entries_shown, &(temp_todo->mtodo)); gtk_clist_set_row_style(GTK_CLIST(clist), entries_shown, NULL); entries_shown++; continue; } /* End Masking */ /* Allow a record found through search window to temporarily be displayed even if it would normally be hidden by option settings */ if (!glob_find_id || (glob_find_id != temp_todo->mtodo.unique_id)) { /* Hide the completed records if need be */ if (hide_completed && temp_todo->mtodo.todo.complete) { continue; } /* Hide the not due yet records if need be */ if ((hide_not_due) && (!(temp_todo->mtodo.todo.indefinite))) { due = &(temp_todo->mtodo.todo.due); comp_due=due->tm_year*380+due->tm_mon*31+due->tm_mday-1; if (comp_due > comp_now) { continue; } } } /* Hide the private records if need be */ if ((show_priv != SHOW_PRIVATES) && (temp_todo->mtodo.attrib & dlpRecAttrSecret)) { continue; } /* Add entry to clist */ gtk_clist_append(GTK_CLIST(clist), empty_line); /* Put a checkbox or checked checkbox pixmap up */ if (temp_todo->mtodo.todo.complete) { gtk_clist_set_pixmap(GTK_CLIST(clist), entries_shown, TODO_CHECK_COLUMN, pixmap_checked, mask_checked); } else { gtk_clist_set_pixmap(GTK_CLIST(clist), entries_shown, TODO_CHECK_COLUMN, pixmap_check, mask_check); } /* Print the priority number */ sprintf(str, "%d", temp_todo->mtodo.todo.priority); gtk_clist_set_text(GTK_CLIST(clist), entries_shown, TODO_PRIORITY_COLUMN, str); /* Put a note pixmap up */ if (temp_todo->mtodo.todo.note[0]) { gtk_clist_set_pixmap(GTK_CLIST(clist), entries_shown, TODO_NOTE_COLUMN, pixmap_note, mask_note); } else { gtk_clist_set_text(GTK_CLIST(clist), entries_shown, TODO_NOTE_COLUMN, ""); } /* Print the due date */ if (!temp_todo->mtodo.todo.indefinite) { get_pref(PREF_SHORTDATE, NULL, &svalue); strftime(str, sizeof(str), svalue, &(temp_todo->mtodo.todo.due)); } else { sprintf(str, _("No date")); } gtk_clist_set_text(GTK_CLIST(clist), entries_shown, TODO_DATE_COLUMN, str); /* Print the todo text */ lstrncpy_remove_cr_lfs(str2, temp_todo->mtodo.todo.description, TODO_MAX_COLUMN_LEN); gtk_clist_set_text(GTK_CLIST(clist), entries_shown, TODO_TEXT_COLUMN, str2); gtk_clist_set_row_data(GTK_CLIST(clist), entries_shown, &(temp_todo->mtodo)); /* Highlight row background depending on status */ switch (temp_todo->mtodo.rt) { case NEW_PC_REC: case REPLACEMENT_PALM_REC: set_bg_rgb_clist_row(clist, entries_shown, CLIST_NEW_RED, CLIST_NEW_GREEN, CLIST_NEW_BLUE); break; case DELETED_PALM_REC: case DELETED_PC_REC: set_bg_rgb_clist_row(clist, entries_shown, CLIST_DEL_RED, CLIST_DEL_GREEN, CLIST_DEL_BLUE); break; case MODIFIED_PALM_REC: set_bg_rgb_clist_row(clist, entries_shown, CLIST_MOD_RED, CLIST_MOD_GREEN, CLIST_MOD_BLUE); break; default: if (temp_todo->mtodo.attrib & dlpRecAttrSecret) { set_bg_rgb_clist_row(clist, entries_shown, CLIST_PRIVATE_RED, CLIST_PRIVATE_GREEN, CLIST_PRIVATE_BLUE); } else { gtk_clist_set_row_style(GTK_CLIST(clist), entries_shown, NULL); } } /* Highlight dates of items overdue or due today */ if (!(temp_todo->mtodo.todo.indefinite)) { due = &(temp_todo->mtodo.todo.due); comp_due=due->tm_year*380+due->tm_mon*31+due->tm_mday-1; if (comp_due < comp_now) { set_fg_rgb_clist_cell(clist, entries_shown, TODO_DATE_COLUMN, CLIST_OVERDUE_RED, CLIST_OVERDUE_GREEN, CLIST_OVERDUE_BLUE); } else if (comp_due == comp_now) { set_fg_rgb_clist_cell(clist, entries_shown, TODO_DATE_COLUMN, CLIST_DUENOW_RED, CLIST_DUENOW_GREEN, CLIST_DUENOW_BLUE); } } entries_shown++; } jp_logf(JP_LOG_DEBUG, "entries_shown=%d\n",entries_shown); /* Sort the clist */ gtk_clist_sort(GTK_CLIST(clist)); if (main) { gtk_signal_connect(GTK_OBJECT(clist), "select_row", GTK_SIGNAL_FUNC(cb_clist_selection), NULL); } /* If there are items in the list, highlight the selected row */ if ((main) && (entries_shown>0)) { /* First, select any record being searched for */ if (glob_find_id) { todo_find(); } /* Second, try the currently selected row */ else if (clist_row_selected < entries_shown) { clist_select_row(GTK_CLIST(clist), clist_row_selected, TODO_PRIORITY_COLUMN); if (!gtk_clist_row_is_visible(GTK_CLIST(clist), clist_row_selected)) { gtk_clist_moveto(GTK_CLIST(clist), clist_row_selected, 0, 0.5, 0.0); } } /* Third, select row 0 if nothing else is possible */ else { clist_select_row(GTK_CLIST(clist), 0, TODO_PRIORITY_COLUMN); } } /* Unfreeze clist after all changes */ gtk_clist_thaw(GTK_CLIST(clist)); if (tooltip_widget) { get_pref(PREF_SHOW_TOOLTIPS, &show_tooltips, NULL); if (todo_list==NULL) { set_tooltip(show_tooltips, glob_tooltips, tooltip_widget, _("0 records"), NULL); } else { sprintf(str, _("%d of %d records"), entries_shown, num_entries); set_tooltip(show_tooltips, glob_tooltips, tooltip_widget, str, NULL); } } /* return focus to clist after any big operation which requires a redraw */ gtk_widget_grab_focus(GTK_WIDGET(clist)); } static int todo_find(void) { int r, found_at; if (glob_find_id) { r = clist_find_id(clist, glob_find_id, &found_at); if (r) { clist_select_row(GTK_CLIST(clist), found_at, TODO_PRIORITY_COLUMN); if (!gtk_clist_row_is_visible(GTK_CLIST(clist), found_at)) { gtk_clist_moveto(GTK_CLIST(clist), found_at, 0, 0.5, 0.0); } } glob_find_id = 0; } return EXIT_SUCCESS; } static gboolean cb_key_pressed_tab(GtkWidget *widget, GdkEventKey *event, gpointer next_widget) { GtkTextIter cursor_pos_iter; GtkTextBuffer *text_buffer; if (event->keyval == GDK_Tab) { /* See if they are at the end of the text */ text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(widget)); gtk_text_buffer_get_iter_at_mark(text_buffer,&cursor_pos_iter,gtk_text_buffer_get_insert(text_buffer)); if (gtk_text_iter_is_end(&cursor_pos_iter)) { gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), "key_press_event"); gtk_widget_grab_focus(GTK_WIDGET(next_widget)); return TRUE; } } return FALSE; } static gboolean cb_key_pressed_shift_tab(GtkWidget *widget, GdkEventKey *event, gpointer next_widget) { if (event->keyval == GDK_ISO_Left_Tab) { gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), "key_press_event"); gtk_widget_grab_focus(GTK_WIDGET(next_widget)); return TRUE; } return FALSE; } /* This redraws the clist and goes back to the same line number */ static int todo_clist_redraw(void) { todo_update_clist(clist, category_menu1, &glob_todo_list, todo_category, TRUE); return EXIT_SUCCESS; } int todo_cycle_cat(void) { int b; int i, new_cat; b=dialog_save_changed_record(pane, record_changed); if (b==DIALOG_SAID_2) { cb_add_new_record(NULL, GINT_TO_POINTER(record_changed)); } if (todo_category == CATEGORY_ALL) { new_cat = -1; } else { new_cat = find_sort_cat_pos(todo_category); } for (i=0; i= NUM_TODO_CAT_ITEMS) { todo_category = CATEGORY_ALL; break; } if ((sort_l[new_cat].Pcat) && (sort_l[new_cat].Pcat[0])) { todo_category = sort_l[new_cat].cat_num; break; } } clist_row_selected = 0; return EXIT_SUCCESS; } int todo_refresh(void) { int index, index2; if (glob_find_id) { todo_category = CATEGORY_ALL; } if (todo_category==CATEGORY_ALL) { index = 0; index2 = 0; } else { index=find_sort_cat_pos(todo_category); index2 = find_menu_cat_pos(index) + 1; index += 1; } todo_update_clist(clist, category_menu1, &glob_todo_list, todo_category, TRUE); if (index<0) { jp_logf(JP_LOG_WARN, _("Category is not legal\n")); } else { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(todo_cat_menu_item1[index]), TRUE); gtk_option_menu_set_history(GTK_OPTION_MENU(category_menu1), index2); } return EXIT_SUCCESS; } int todo_gui_cleanup(void) { int b; b=dialog_save_changed_record(pane, record_changed); if (b==DIALOG_SAID_2) { cb_add_new_record(NULL, GINT_TO_POINTER(record_changed)); } free_ToDoList(&glob_todo_list); connect_changed_signals(DISCONNECT_SIGNALS); set_pref(PREF_TODO_PANE, gtk_paned_get_position(GTK_PANED(pane)), NULL, TRUE); set_pref(PREF_TODO_NOTE_PANE, gtk_paned_get_position(GTK_PANED(note_pane)), NULL, TRUE); set_pref(PREF_LAST_TODO_CATEGORY, todo_category, NULL, TRUE); set_pref(PREF_TODO_SORT_COLUMN, clist_col_selected, NULL, TRUE); set_pref(PREF_TODO_SORT_ORDER, GTK_CLIST(clist)->sort_type, NULL, TRUE); todo_clist_clear(GTK_CLIST(clist)); return EXIT_SUCCESS; } /* Main function */ int todo_gui(GtkWidget *vbox, GtkWidget *hbox) { GtkWidget *scrolled_window; GtkWidget *pixmapwid; GdkPixmap *pixmap; GdkBitmap *mask; GtkWidget *vbox1, *vbox2; GtkWidget *hbox_temp, *hbox_temp2; GtkWidget *vbox_temp; GtkWidget *separator; GtkWidget *label; time_t ltime; struct tm *now; char str[MAX_RADIO_BUTTON_LEN]; int i; GSList *group; long ivalue; char *titles[]={"","","","",""}; GtkAccelGroup *accel_group; long char_set; long show_tooltips; char *cat_name; get_pref(PREF_TODO_VERSION, &todo_version, NULL); init(); get_todo_app_info(&todo_app_info); /* Initialize categories */ get_pref(PREF_CHAR_SET, &char_set, NULL); for (i=1; ichild)), "label_high"); #endif /* "Apply Changes" button */ CREATE_BUTTON(apply_record_button, _("Apply Changes"), APPLY, _("Commit the modifications"), GDK_Return, GDK_CONTROL_MASK, "Ctrl+Enter") gtk_signal_connect(GTK_OBJECT(apply_record_button), "clicked", GTK_SIGNAL_FUNC(cb_add_new_record), GINT_TO_POINTER(MODIFY_FLAG)); #ifndef ENABLE_STOCK_BUTTONS gtk_widget_set_name(GTK_WIDGET(GTK_LABEL(GTK_BIN(apply_record_button)->child)), "label_high"); #endif /* Separator */ separator = gtk_hseparator_new(); gtk_box_pack_start(GTK_BOX(vbox2), separator, FALSE, FALSE, 5); hbox_temp = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox2), hbox_temp, FALSE, FALSE, 0); /* Right-side Category menu */ /* Clear GTK option menus before use */ for (i=0; i #include "print_logo.h" /****************************** Main Code *************************************/ static void print_logo_data(FILE *f) { fputs( "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" "fffffffffffffffffffffffff2d10080808000a1429ffffffffffffffffffffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" "fffffffffffffffffffff1808364f5a535a5a4f3e220008ffffffffffffffffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" "fffffffffffffffff08214f5b635f5b5f5b5b5b63635b390820ffffffffffffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" "fffffffffffff27144f5f5b5b5a5b5a5a5b5a5b5a5b5a68531800ffffffffffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" "fffffffffff142a5f5b5b5a5b5a5b5b5a5b5a5b5a5b5a5a5f633100ffffffffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" "fffffffff0831685b5b5a5b5a5b5a5a5b5a5b5a5b535b5b5b5b5f4304ffffffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" "fffffff35185b5b5a5a5b5a5b5b5a5b5b5b5a5b5b5e5b5a5a5a5b633e00ffffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" "fffff350d5a5f5a5b5b5a5b5a5b5a5b5a5a5b5a5b5a5b5a5b5b5b5b632908ffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" "fffff0d5b5b5b5a5b5a5b5b5a5b5a5b5b5a5b5b5b5f635f5f635f5b5b5b08ffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" "fff08475f5a5b5a5b5a5b5a5b5a5b5a5a5b5f5a4f31221c1822395a5f633e00ffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" "f3521635b5a5b5a5b5a5b5a5b5b5a5b5b5f3e100827393e3e390808395f5b00ffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" "f01535f5a5b5a5b5a5b5a5b5a5b5a5b5b211873ceffffffffffce390043630dffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3" "529635b5a5b5b5a5b5b5a5b5b5a5b632921deffffffffffffffffff4f004300000035" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0" "c4f5b5b5a5b5a5b5a5b5a5b5a5b5f3608c6ffffffffffffffffffffce080021a37c08" "14ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1" "85f5b5a5b5a5b5a5b5a5b5a5b5f3908b5ffffffffffffffffffffffff5408bdffffc6" "1044ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff353" "9635a5b5a5b5b5a5b5a5b5b5f4f08b5ffffffffffffffffffffffffff7b08efffffff" "ad00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff084" "75b5b5a5b5a5b5a5b5a5b5a5b106bffffffffffffffffffffffffffff9400deffffff" "f710ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff085" "a5b5b5a5b5b5a5b5a5b5a633e10e7ffffffffffffffffffffffffffff9d01efffffff" "ff35ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff215" "f5b5a5a5b535b5b535b5b5b0873ffffffffffffffffffffffffffffff840af7ffffff" "ff39ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff35365" "f5a5b585a5f5a5b5e5b5f4a00c6ffffffffffffffffffffffffffffff6b29ffffffff" "ff39ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff104f5" "b5b5a5b5a5b5a5b5a5a5f2910f7ffffffffffffffffffffffffffffff5a4affffffff" "ff29ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff105a5" "b5a5b5a5b5a5b5a5b5b5b104affffffffffffffffffffffffffffffff217bffffffff" "ef0dffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff215f5" "a5b5a5b5b5a5b5b5a5b5a0894ffffffffffffffffffffffffffffffbd08ceffffffff" "d410ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff29685" "b5a5b5a5b5a5b5a5b5b4a08deffffffffffffffffffffffffffffff634affffffffff" "9d1cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff353e5b5" "a5b5b5a5b5a5b5a5a5f3e10efffffffffffffffffffffffffffffef10a6fffffffff7" "31ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff27435f5" "a5b5a5b5a5b5a5b5b633e10e7ffffffffffffffffffffffad5ad47b0094deffffffad" "00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff08535b5" "b5b5a5b5b5a5b5b5a5b4308ceffffffffffffffffffffef08007b3900006bffffff3e" "3effffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015e5b5" "a5a5b5a5b5a5b5a5b5f3e08ceffffffffffffffffffffe700189400000094ffffce10" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff185f5b5" "b5a5b5b5a5b5f5f5b5b5a08ceffffffffffffffffffffffc16b298c8473ffffff5a3e" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2d2a685a5" "a5b5a5b5f53222a535f5b0094fffffffffffff9efc1706c6b210063efffffffbd01ff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0a3e5b5a5" "b5b5a5f53113f4310224f084fffffffffb65b39100d3474863e2b0d1c94efbd21ffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff004a5f5b5" "a5a5f4f0958d5d5a6581818007ca67c39265786aad0c6933417b4c7660d1c013effff" "ffffffffffffffffff4b2a1c14112affffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff085a5b5a5" "b5b5b113fd5d4d0d4d5cdcd9b34316da2c7d4d0b166140a60b8d4d4d5bf75311020ff" "ffffffffffff1026295883868e866d1b20ffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff22685a5b5" "b5f2a1fc7d4d0d0d0d4d0d0d5d5d0dda2352b0a0a2b86c6d5d4d0d0d0d4d8d5b89154" "04092001003faad0d5d5d8d8d8d8d5cd7c00ffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff29475b5b5b5" "a5b116dd5d0d0d0d0d4d5d0d0d0d0d0b88e7f91b1d5d5d4d0d0d0d0d0d0d0d0d4d8d5" "aa6e4a669bd5d5d4d0d0d0d0d0d0d4d4d5a62a29ffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff185a5b5a5a5" "b5f117cd8d0d0d4d5aa91d4d0d0d0d0d4d8d8d5d4d0d0d0d0d0d0d0d0d0d0d0d0d0d4" "d4d5d5d5d5d4d0d0d0d0d0d0d0d0d0d0d0d8c75810ffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff215b5b5b5b5" "a5f1674d5d4d0d57f086ed5d4d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0" "d0d4d0d4d0d0d0d0d0d0d0d0d0d0d0d0d0d0d4d59114ffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffff29395f5a5a5a5" "b682257d5d0d586000043b5d5d5d4d4d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0" "d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d4d5b81bffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffff085f5b5b5b5b5" "b63362bd0d4d59b86aa350a2b75b4d5d5d5d5d4d4d4d4d4d4d4d4d0d0d0d0d0d0d0d0" "d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d8c03f20ffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffff35635a5a5a535" "a5b5308a6d4d0d5d5d5d5a6581f081f587c91b4bcc7c7c7c7c7d5d4d4d0d0d0d0d0d0" "d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d4d546ffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffff0c535f5b5b5b5f5" "b5a53017cd8d0d0d4d0d4d4d5d5aa4300000001080000000000439bd5d5d4d0d0d0d0" "d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d4c70dffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffff22635a585a5a5b5" "a5b5a016ed5d0d0d0d0d0d4d0d0d8d5bca69b93867560756e5018012b75cdd5d4d0d0" "d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d59b00ffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffff144f5f5b5b5a5b5b5" "a5b5b0934d5d4d0d0d0d0d0d0d0d0d0d4d4d5d8d5d8d5d8ddddcd1809202a6ec6d5d4" "d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d4d5503effffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffff21635b5a5a5b5a5a5" "b5b5a21003fc7d4d0d0d0d0d0d0d0d0d0d0d0d0d0d0d4d8bb86580dffffff3e187cc6" "d5d4d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d4bf0dffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffff0c4f5b5a5b5b5a5b5b5" "a5b5b145a3e1bc7d4d0d0d0d0d0d0d0d0d0d0d0d0d4c76018113e35ffffffffff2018" "5fb8d5d8d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d56d2dffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffff225f5b5a5b5a5b5a5b5" "a5b5a14cef73231cdd4d0d0d0d0d0d0d0d0d0d0d4d54a14ffffffffffffffffffffff" "190d58b1d5d5d4d4d4d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d8bb04ffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffff145a5f5a5b5a5b5b5a5b5" "a5b4f22f7ffe71c58d5d0d0d0d0d0d0d0d0d0d4d57501ffffffffffffffffffffffff" "ffff3e083475aad5d5d4d4d4d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d5463eff\n" "ffffffffffffffffffffffffffffffffffffffffffffff14395f5b5b5a5b5a5b5a5b5" "a5f3e4affffffb600b1d4d0d0d0d0d0d0d0d0d5b400ffffffffffffffffffffffffff" "ffffffff2900001b4d93c7d0d5d8d5d4d4d4d0d0d0d0d0d0d0d0d0d88d3eff\n" "ffffffffffffffffffffffffffffffffffffffffffffff045b5b5a5b5a5b5b5a5b5a5" "b632d4fffffffff4f34d5d4d0d0d0d0d0d0d4d54a00ffffffffffffffffffffffffff" "ffffffffffffffff320c18315886a2bcc6d5d5d5d8d4d4d4d0d0d0d4b817ff\n" "ffffffffffffffffffffffffffffffffffffffffffff0c4a5f5b5a5b5a5b5a5b5b5a5" "b632173ffffffffde0977d5d0d0d0d0d0d0d56e0017ffffffffffffffffffffffffff" "ffffffffffffffffffffffff3d2010080d2a466d9bb4c6d0d5d5d4d4d014ff\n" "ffffffffffffffffffffffffffffffffffffffffff2d36635b5a585a5b535b5a585a5" "b5f217bffffffffff9400b1d8d0d0d0d0d8aa0108ffffffffffffffffffffffffffff" "ffffffffffffffffffffffffffffffffffff4b391c0a0a184683c6d5d83fff\n" "ffffffffffffffffffffffffffffffffffffffffff1863585a5b5a5b5b5e5b5b5a5b5" "a682184ffffffffffff4f1bc7d4d0d0d4d5297c63ffffffffffffffffffffffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffff200a468a29ff\n" "ffffffffffffffffffffffffffffffffffffffff08535f5b5a5b5a5b5a5b5a5b5a5b5" "b5b1c8cfffffffffffff71c17b8d5ddcd3443ff4fffffffffffffffffffffffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffff3e140014\n" "ffffffffffffffffffffffffffffffffffffff273e5f5a5b5a5b5a5b5a5b5b5a5b5a5" "b5b149dffffffffffffffe7430d7c7c264fefff21ffffffffffffffffffffffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffff18685a5b5a5b5a5b5a5b5a5b5a5b5a5" "b5a18c6ffffffffffffffffff73000073fffff718ffffffffffffffffffffffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffff1c4f5b5b5a5b5b5a5b5b5a5b5a5b5a5b5" "b5318deffffffffffffffffffffc6c6ffffffde10ffffffffffffffffffffffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffff22635a5b5a5b5a5b5a5b5a5b5b5a5b5a5" "f4329f7ffffffffffffffffffffffffffffffef10ffffffffffffffffffffffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffff10535b5b5a5b5a5b5b5a5b5a5b5a5b5a5b6" "3294affffffffffffffffffffffffffffffffce08ffffffffffffffffffffffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffff273e5f5b5a5b5b5a5b5a5b5a5b5a5b5b5a5b5" "f216bffffffffffffffffffffffffffffffffc600ffffffffffffffffffffffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffff215f5b5a5b5a5b5a5b5a5b5b5a5b5a5b5a5b6" "32191ffffffffffffffffffffffffffffffffce08ffffffffffffffffffffffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffff04535f5a5b5a5b5a5b5a5b5a5b5a5b5b5a5b5b5" "b18b5ffffffffffffffffffffffffffffffffb500ffffffffffffffffffffffffffff" "ffffffffffffffff201c2dffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffff204a5f5b5a5b5a5b5b5a5b5b5a5b5a5b5a5b5a5b4" "f10deffffffffffffffffffffffffffffffffb500ffffffffffffffffffffffffffff" "ffffffffffff21a7d4ddc8b3b3afa39d9d7e843e08102dffffffffffffffff\n" "ffffffffffffffffffffffffffff215f5b5a5b5a5b5a5b5a5b5a5b5f5a5b5a5b5a5b3" "e31ffffffffffffffffffffffffffffffffffce00ffffffffffffffffffffffffffff" "ffffffffffff7efff9f9f6f9f9f9f9f9f9fffff9e5af7332ffffffffffffff\n" "ffffffffffffffffffffffffff204a5f5a5b5b5a5b5b5a5b5b5b424f5b5a5b5a5b632" "96bfffffffffffffffffffffffffffffffffff708ffffffffffffffffffffffffffff" "ffffffffff4ff1b6363535363535363e3e5a5f63a3f9fff147ffffffffffff\n" "ffffffffffffffffffffffffff2e685a5b5a5b5a5b5a5b5a5b5f17315f5b5a5b5b5f1" "87bfffffffffffffffffffffffffffffffffff921ffffffffffffffffffffffffffff" "ffffffffffa3ff4a2e91969d9d919d91896a5e500db6f9f96c00ffffffffff\n" "ffffffffffffffffffffffff14535b5a5b5b5a5b5a5b5a5b5a682920685a5b5a5b5b1" "09bffffffffffffffffffffffffffffffffffff3e0affffffffffffffffffffffffff" "fffffffffff1c855cdd9d4d9d4d9d4d9d9d9d9d461e5f9c87032ffffffffff\n" "ffffffffffffffffffffffff295f5a5b5b5a5b5b5a5b5b5a5b6336215b5b5b5a5b4f1" "8efffffffffffffffffffffffffffffffffffff6b00ffffffffffffffffffffffffff" "ffffffff7cff7cabd4d4d4d1d4d1d4d1d4d1d9839df9ed70c829ffffffffff\n" "ffffffffffffffffffffff10535f5b5a5a585a5b535f5a585a5b3e185f5a5a5b5f314" "affffffffffffffffffffffffffffffffffffff940004ffffffffffffffffffffffff" "ffffffffdae58bd4d4cdd4ccd4ccd1ccd1d4cd6dedf99d8c9cffffffffffff\n" "ffffffffffffffffffffff29685a5b5b5a5b5a5b5a5b5a5b5b5f43215a5b5b5a5f1c8" "4ffffffffffffffffffffffffffffffffffffffad084700ffffffffffffffffffffff" "ffffff53f99dabd4d4d4d1d4d1d4d4d4ccd4b384f9f98cd447ffffffffffff\n" "ffffffffffffffffffff104f5b5b5a5a5b5a5b5a5b5a5b5a5a5b4a115a5b5a5b5a10c" "6ffffffffffffffffffffffffffffffffffffffd40c4f4a00ffffffffffffffffffff" "ffffffb6f98bcdd4d4cdd4ccd4ccd1d4d1d483d4f9d4a7c8ffffffffffffff\n" "ffffffffffffffffffff21685b5a5b5b5b5a5b5b5a5b5b5a5b5b5a084f5b5b5f3636f" "fffffffffffffffffffffffffffffffffffffffef08396847043effffffffffffffff" "ffff5af9baa1d4d4cdd4d4d1d4d1d4ccd4c592f9f9a3d45bffffffffffffff\n" "ffffffffffffffffff1c4f5b5a5b5a5a5b5a5b5a5b5a5b5a5b5a5310435f5a63148cf" "fffffffffffffffff9d7bfffffffffffffffffff7212a63634f0d14ffffffffffffff" "ffff92ff8bbfd4d4ccd4cdd4ccd4d1d4d491cbf9edafbc27ffffffffffffff\n" "ffffffffffffffffff215f5b5a5b5b5a5b5a5b5a5b5a5b5a5b5f5b1839635b4f18def" "fffffffffffffef6b42089bffffffffffffffffff4f18685a5b5a2900ffffffffffff" "fffff1e58fd4d4d1d4d1d4d1d4d1ccd1c570f1f9b7dd70ffffffffffffffff\n" "ffffffffffffffff003e5f5a5b5a5a5b5a5b5a5b5a5b5a5b5a5b5f21215b63225afff" "fffffffffffff9d10f9a714d4ffffffffffffffff73085b5b5b5b63430d0cffffffff" "ff70ffa3b3d4ccd4cdd4ccd4cdd4d4d4a7bcf9f19ddd4fffffffffffffffff\n" "ffffffffffffffff0d5b5b5b5b5a5b5b5b5a5b5b5a5b5b5a5b5a6336105b5b08adfff" "fffffffffffffef4a92ff4f17d4ffffffffffffff9b015a5b5a5a5b5f5a391000ffff" "ffc8f99cd1d4d4d1d4d1d4d1d4d4d4d17eedf9b7c89dffffffffffffffffff\n" "ffffffffffffffff35635a5a5b535b5a535b5a585a5b535b5a585b43085f2918effff" "fffffffffffffffde1cdded293cffffffffffffffd4084f5b5a5b5a5b5b635b290800" "47f9c883cdcdccd4d9d9d4d4d4d1d9ab5ff9f98cdd5bffffffffffffffffff\n" "ffffffffffffff0c4f5b5b5b5a5f5a5b5f5a5b5a5b5a5f5a5b5a5f5308310063fffff" "fffffffffffffffff8447f9f1217bfffffffffffff717365f5b5a5b5a5a5b5b5f4f21" "b6f96c365566667a6e7a91abcdccd450a7f9e592c8ffffffffffffffffffff\n" "ffffffffffffff31685a5b5a5b5b5a5b5a5b5b5a5b5b5a5b5b5a5b5f210000cefffff" "ffffffffffffffffff739539d36006bc6ffffffffff4f185f5a5b5a5b5b5a5a633e53" "f9ed7ebbb3ababa1a1997a6150515031f1ffa3b370ffffffffffffffffffff\n" "ffffffffffff294f5b5a5b5a5b5a5b5a5b5a5b5a5b5a5b5a5b5a5b63310073fffffff" "ffffffffffffff78c310a0008182110084ae7ffffff94005a5b5b5a5b5a5b5b5b39af" "ffb6a1bbbbc2c2bbbbbbc3c3b3ab4468f9f97cb73effffffffffffffffffff\n" "ffffffffffff22635b5a5b5a5b5a5b5b5a5b5a5b5a5b5b5a5b5a5b5b4f00bdfffffff" "fffffffffff9d1800214a5b535f5b5b4f1821d4ffffd4004f5b5a5b5a5b5a5b534af1" "f17eb3bfbbb3bbb3bbb3b3bbbbcc61184f3e211000ffffffffffffffffffff\n" "ffffffffff4c3e5f5a5b5a5b5a5b5a5b5a5b5b5a5b5a5b5a5b5a5a5b5a084afffffff" "fffffffd43c04294f685b5b5b5b5a5b5f631817deffff2127685a5b5b5a5b5f3e70f9" "b651b3abb3c2c2c3c3c2c2bbc27a11314a4f534f10ffffffffffffffffffff\n" "ffffffffff1c5a5b5b5a5b5b5a5b5b5a5b5a5b5a5b5b5a5b5a5b5a5b633e008cfffff" "fffe75a0a1047635b5a5b5a5a5a5b5a5b5b5a005affff6b085b5b5f535b5a6331a6ed" "36314235423632446189a7c3910847635b5b5b683635ffffffffffffffffff\n" "ffffffffff215f5a5b5a5b5a5b5b5b5a5b5a5b5a5b5a5b5b5a5b5b5a5b5f1c00adffe" "7a62100295b5f5b5a5b5a5b5b5b5a5b5a5b5f2a0af7ffb500535b5a5a5b5b533ee5f1" "e5f1ededdda36c4f3921186e2e2d685a5b5a5a5b3e35ffffffffffffffffff\n" "ffffffffff36635b5a5b5a5b4f535a5b5a5b5a5b5a5b5a5b5a5b5a5b5a5b5f2900291" "000184f5f5b5a5b5a5b5b5a5b5a5b5a5b5a5b5a01a6ffef103e635b5b5a5f4a4af9f9" "f9f6f9f1f9fffff9f9e5c8680c5b5b5b5a5b5b633535ffffffffffffffffff\n" "ffffffff14535b5a5b5b5a6322315f5b5b5a5b5b5b5f685f5f5b5a5b5a5a5b5f43293" "14f5b635a5b5a5b5a5b5a5b5a5b5f5f63685b63183effff3e185f5b5a5b5b3684f9f1" "f1f9f9f9f19dd4f9f9f9ff8422635a5b5a5b5a5f21ffffffffffffffffffff\n" "ffffffff185f5b5a5b5a5b5f391c5f5b5a5b5a5b5a36221936535f5a5b5a5b5a5b686" "35b5a5b5b5a5b5a5b5a5b5a5b5b4f292d213e5f3121f7ff94085a5b5a5b5b31c88470" "f1dd8cd4b34f5be5ddedf97c2163585a5b5a5b5f11ffffffffffffffffffff\n" "ffffffff355f5a5b5a5b5a5b53104a5f5b5a5b5f2a1f666635115a5b5a5b5b5a5b5a5" "b5a5b5a5b5a5b5b5a5b5b5a5b5b1800005f29000818f7ffe70c4f5f5a5f5331edaf91" "f9b34fe57c103ef9634ff18c0147635b5a5b5b4f08ffffffffffffffffffff\n" "ffffff394f5b5b5b5a5b5b5a632a21635b5a5b5310b1ddddd5501c5b5b5a5a5b5a5b5" "35b5a5b5a5b5a5b5a5b5a5b5f2910c639a7f17c008cffffff2136635b5b5335e5f9f9" "f1f9f9f973549df99d91ed4f2e183e5b5b5a632900ffffffffffffffffffff\n" "ffffff105a5b5a5b5a5b5a5b5f530d4f5b5b5f364ad8d0d0d4cd2a365f5b5b5a5b5a5" "b5a5b5b5a5b5b5a5b5a5b5b4f008cffbd21e7f96863ffffff63105b5b5a5b29ddf9f1" "f1f1f6f9c8a3f1f9f9f9f9edf1ba214f5b5f4f008e31ffffffffffffffffff\n" "ffffff185f5b5b5a5b5a5b5a5b6318105f5b5b118dd5d0d0d0d591115b5a5b5a5b5b5" "a5b5a5b5a5b5a5b5a5b5a682910f7ffff5a63fff121adffffa6005a5f5b5b217cf9f9" "f9f1f1f1f9f9f1f1f6f1f1f9f9f94f4a5f5b1135dd830d040c1400ffffffff\n" "ffff48365f5b5a5a5b5b5a5b5a5b43003e635318bbd4d0d0d0d0d5313b5f5a5b5a5b5" "a5b5a5b5b5b5b5b5a5b633e0084ffffffef2a9dffa721f7ffde083e5a5b684f1447af" "edf9f9f9f9f9f9f9f9f9f6f1f9f95a5b53220ab8d4d5c7c0a293831fffffff\n" "ffff1c4f5b5a5b5b5a5b5a5b5a5b5f2d00533643d5d4d0d0d0d0d886095b5b5b5a5b5" "a5b5f53535a5f5a585f4f003cffffffffffbd1091ff4a5affff21001021364a5a3108" "215b7092afb7d4ddf1f1f6f9ed7e361a082ab1d8d0d0d0d4d4d8dd4700ffff\n" "ffff145a5b5a5a5b5a5b5a5b5b5a5b5f21080986d5d0d0d0d0d0d0d531225f5b5b5b5" "f5336100a113e5b634f0039efffffffffffffbd18c8ed0d9bff7308ffff0c08081008" "3535353514000a183542473b350414358dd5d4d0d0d0d0d0d4d58314ffffff\n" "ffff215b5b5b5b5a5b5a5b5a5a5b5a5b5f29008ed5d0d0d0d0d0d0d4bc0a2a5f635b3" "610359bb17f0d3e31004fe7ffffffffffffffffad18e5a318efc600ffffffffffffff" "ffffffff1175c0b1a2977e77a2cdc7d8d5d0d0d0d0d0d0d4d88a10ffffffff\n" "ffff2e635a5a5b5a5b5b5a5b5f5b5f5b682a34c0d4d0d0d0d0d0d0d0d8a6181122112" "69bd4d5d4dd660021a6ffffffffffffffffffffff6b3eed2acef714ffffffffffffff" "ffffff0883d5d4d4d4d4d8d8d4d0d0d0d0d0d0d0d0d0d5d56600ffffffffff\n" "ffff395b5b5b5a5b5a5b5b5f4f43433e1414bcd8d0d0d0d0d0d0d0d0d0d5b875588ac" "dd5d4d0d4d88d1ce7ffffffffffffffffffffffffff4f1008deff35ffffffffffffff" "ffff007cd5d4d0d0d0d0d0d0d0d0d0d0d0d0d0d0d4d58d1f00ffffffffffff\n" "ff4c3e5f5a5b5a5b5b5f4f22000000083fb1d4d0d0d0d0d0d0d0d0d0d0d0d4d5d5d5d" "4d0d0d0d0d59e21fffffffffffffffffffffffffffff76363efff6800ffffffffffff" "ff116ed5d4d0d0d0d0d0d0d0d0d0d0d0d0d0d0d4d56d11ffffffffffffffff\n" "ff2d4a5b5b5a5b5a5b4f103583a2a6b4d5d4d0d0d0d0d0d0d0d0d0d0d0d0d0d0d4d0d" "0d0d0d0d0d88d2af7ffffffffffffffffffffffffffffffffffffc600ffffffffffff" "394ad5d4d0d0d0d0d0d0d0d0d0d0d0d0d0d0d5cd4600ffffffffffffffffff\n" "ff20535b5a5b5b5a682a34d5ddd5d4d4d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d" "0d0d0d0d0d8664ffffffffffffffffffffffffffffffffffffffff718ffffffffff2a" "3fd0d4d0d0d0d0d0d0d0d0d0d0d0d0d0d0d4d44a00ffffffffffffffffffff\n" "ff18535f5a5b535b5b1160ddd0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d" "0d0d0d0d0d5475bffffffffffffffffffffffffffffffffffffffff31ffffffffff46" "d5d4d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d58d19ffffffffffffffffffffff\n" "ff215a5b5a5b5e5b5b1174d8d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d" "0d0d0d0d4c7179dffffffffffffffffffffffffffffffffffffffff4affffffff2acd" "d4d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d87e16ffffffffffffffffffffff\n" "ff1c5a5b5a5b5a5b5b0974d5d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d" "0d0d0d0d4b110e7ffffffffffffffffffffffffffffffffffffffff4affffff0aaad5" "d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d534ffffffffffffffffffffff\n" "ff215f5b5a5b5a5b5f0960d5d4d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d" "0d0d0d0d5773effffffffffffffffffffffffffffffffffffffffff5bffff1c91d8d0" "d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d4c618ffffffffffffffffffff\n" "ff315f5b5b5a5b5b5b1150d5d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d" "0d0d0d4d5466fffffffffffffffffffffffffffffffffffffffffff5effff47d5d4d0" "d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d535ffffffffffffffffffff\n" "ff2a635a5b5a5b5a682a35d5d4d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d" "0d0d0d4cd18adffffffffffffffffffffffffffffffffffffffffff4f0c1fc0d4d0d0" "d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d4d59b08ffffffffffffffffffff\n" "ff315f5a585a5b5a5b4f0ab1d5d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d" "0d0d0d4b110e7ffffffffffffffffffffffffffffffffffffffffff310086d8d0d0d0" "d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d4d5aa14ffffffffffffffffffffff\n" "ff2a5f5b5b5a5b5a5b5b0966d5d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d" "0d0d0d5583effffffffffffffffffffffffffffffffffffffffffef091fcdd4d0d0d0" "d0d0d0d0d0d0d0d0d0d0d0d0d0d0d4d5d56d0affffffffffffffffffffffff\n" "ff2a635b5a5b5a5b5a5f3e18c6d4d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d" "0d0d5aa00a4ffffffffffffffffffffffffffffffffffffffffffef0175d5d0d0d0d0" "d0d0d0d0d0d0d0d0d0d0d0d0d4d5d58a3129ffffffffffffffffffffffffff\n" "ff215f5b5a5b5a5b5b5b5a097cd5d4d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d" "0d0d57401efffffffffffffffffffffffffffffffffffffffffffa6009bd8d0d0d0d0" "d0d0d0d0d0d0d0d0d0d0d0d4d59b3f1cffffffffffffffffffffffffffffff\n" "ff215a5b5b5a5b5a5a5b5f3231d5d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d" "0d4d53436ffffffffffffffffffffffffffffffffffffffffffff5a00b4d4d0d0d0d0" "d0d0d0d0d0d0d0d0d0d4d5b84929ffffffffffffffffffffffffffffffffff\n" "ff185b5b5a5b5a5b5b5a5b580997d8d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d" "0d4bb0094ffffffffffffffffffffffffffffffffffffffffffff2d0dc7d5d0d0d0d0" "d0d0d0d0d0d0d0d4d5c67c0a4bffffffffffffffffffffffffffffffffffff\n" "ff14535f5a5b5b5a5b5a5b5f322ad5d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d" "0d57e36ffffffffffffffffffffffffffffffffffffffffffffde014ad5d0d0d0d0d0" "d0d0d0d0d0d4d5c67c2bffffffffffffffffffffffffffffffffffffffffff\n" "ff004f5b5a5b5a5b5a5b5a5b5f097fd5d4d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d" "4d5497effffffffffffffffffffffffffffffffffffffffffff8c0091d8d0d0d0d0d0" "d0d0d0d4d5c66a18ffffffffffffffffffffffffffffffffffffffffffffff\n" "ff21395f5a5b5a5b5b5a5b5a633b26c7d4d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d" "4d0299dffffffffffffffffffffffffffffffffffffffffffff2a1fc7d4d0d0d0d0d0" "d0d0d4d5911fffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffff2a635b5a5b5a5b5a5b5a5b5f1c34d5d4d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d" "4b10cdeffffffffffffffffffffffffffffffffffffffffff8c00aad8d0d0d0d0d0d0" "d0d5cd5f1cffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffff215b5b5a5b5b5a5b5a5b5a5b4f0986d8d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d" "57736ffffffffffffffffffffffffffffffffffffffffff9d0075d4d0d0d0d0d0d0d0" "d5b818ffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffff204f5f5b5a5b5a5b5b5a5b5a683b18c6d4d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d" "d575bffffffffffffffffffffffffffffffffffffffff7b005fd5d4d0d0d0d0d0d4d5" "a60dffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffff21295f5b5a5b5a5b5a5b5b5a5b5f1166d5d4d0d0d0d0d0d0d0d0d0d0d0d0d0d0d" "5506cfffffffffffffffffffffffffffffffffffff75a0043d5d4d0d0d0d0d0d4d58a" "04ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffff014a5f5a5b5a5b5a5b5a5b5a5b4f09a6d5d0d0d0d0d0d0d0d0d0d0d0d0d0d4d" "5497cffffffffffffffffffffffffffffffffffce36006ed5d4d0d0d0d0d0d4d57c08" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffff085a5b5b5a5b5a5b5a5b5b5a683617bfd4d0d0d0d0d0d0d0d0d0d0d0d0d0d" "53191ffffffffffffffffffffffffffffffd4630117aad5d4d0d0d0d0d0d0d58a08ff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffff21115e5b5b5a5b5a5b5a5b5a5b5b1a46d5d4d0d0d0d0d0d0d0d0d0d0d0d4c" "d1fadffffffffffffffffffffffffffef8410146ec6d4d0d0d0d0d0d0d0d8b10affff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffff1c185a5f5b5b5a5b5b5a5b5a5b58016dd5d4d0d0d0d0d0d0d0d0d0d0d0c" "704baffffffffffffffffffffffff9d210031c7ddd4d0d0d0d0d0d0d0d0d531ffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffff1c1043635b5b5a5b5a5b5b5a634f019ed8d0d0d0d0d0d0d0d0d0d0d4a" "610deffffffffffffffffffde94390cffff1731a6d5d4d0d0d0d0d0d0dd7419ffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffff2d00295a5f5b5a5b5a5b5a5b632235d5d0d0d0d0d0d0d0d0d0d0d57" "736ffffffffffffffd484350000ffffffffff39006ed5d4d0d0d0d4d5aa04ffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffff0010475b5f5f5b5f5f5f685b10b1d4d0d0d0d0d0d0d0d0d4dd5" "732fffffff7deb65a00002dffffffffffffffffff0058cdd5ddd5d5bf29ffffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffff0008293e3e3e392121210158d5d4d0d0d0d0d0d0d0d4aa0" "d013e351818000a39ffffffffffffffffffffffffff0c1b6a6d6a4d0dffffffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffff0000141014ffffffff0c43bfd5d4d0d0d0d0d0d57c1" "1ff5a5a5a5affffffffffffffffffffffffffffffffffff2a2a2affffffffffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffff2a188ad5d4d4d0d0d4d534f" "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffff0946a6cdd5d5d58a0cf" "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffff2a0c18636d4604fff" "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffff34111134fffff" "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" "\n\n", f); } void print_logo(FILE *f, int x, int y, float size) { fprintf(f, "%%----------------------------------------\n" "%% Now the jpilot penguin logo; this is data\n" "%% saved as Postscript from xv, then included\n" "%% into the C code of jpilot!!\n\n" "/origstate save def\n" "20 dict begin\n" "/pix 100 string def\n" "%d %d translate\n" "100.00800 %f mul 131.97600 %f mul scale\n" "100 132 8\n" "[100 0 0 -132 0 132]\n" "{currentfile pix readhexstring pop}\n" "image\n", x, y, size, size); print_logo_data(f); fputs("end origstate restore\n\n" "%%----------------------------------------\n" "%% End of logo\n" "%%----------------------------------------\n", f); } jpilot-1.8.1.2/memo_gui.c0000644000175000017500000015633311702304470012061 00000000000000/* $Id: memo_gui.c,v 1.151 2011-12-22 03:43:07 judd Exp $ */ /******************************************************************************* * memo_gui.c * A module of J-Pilot http://jpilot.org * * Copyright (C) 1999-2002 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /********************************* Includes ***********************************/ #include "config.h" #include #include #include #include #include #include #include #include #include #include "memo.h" #include "i18n.h" #include "utils.h" #include "log.h" #include "prefs.h" #include "password.h" #include "print.h" #include "export.h" #include "stock_buttons.h" /********************************* Constants **********************************/ #define NUM_MEMO_CAT_ITEMS 16 #define MEMO_MAX_COLUMN_LEN 80 #define MEMO_CLIST_CHAR_WIDTH 50 #define NUM_MEMO_CSV_FIELDS 3 #define CONNECT_SIGNALS 400 #define DISCONNECT_SIGNALS 401 /******************************* Global vars **********************************/ /* Keeps track of whether code is using Memo, or Memos database * 0 is Memo, 1 is Memos */ static long memo_version=0; extern GtkWidget *glob_date_label; extern int glob_date_timer_tag; static struct MemoAppInfo memo_app_info; static int memo_category = CATEGORY_ALL; static int clist_row_selected; static GtkWidget *clist; static GtkWidget *memo_text; static GObject *memo_text_buffer; static GtkWidget *private_checkbox; /* Need two extra slots for the ALL category and Edit Categories... */ static GtkWidget *memo_cat_menu_item1[NUM_MEMO_CAT_ITEMS+2]; static GtkWidget *memo_cat_menu_item2[NUM_MEMO_CAT_ITEMS]; static GtkWidget *category_menu1; static GtkWidget *category_menu2; static GtkWidget *pane; static struct sorted_cats sort_l[NUM_MEMO_CAT_ITEMS]; static GtkWidget *new_record_button; static GtkWidget *apply_record_button; static GtkWidget *add_record_button; static GtkWidget *delete_record_button; static GtkWidget *undelete_record_button; static GtkWidget *copy_record_button; static GtkWidget *cancel_record_button; static int record_changed; static MemoList *glob_memo_list=NULL; static MemoList *export_memo_list=NULL; /****************************** Prototypes ************************************/ static int memo_clear_details(void); static int memo_clist_redraw(void); static void connect_changed_signals(int con_or_dis); static int memo_find(void); static int memo_get_details(struct Memo *new_memo, unsigned char *attrib); static void memo_update_clist(GtkWidget *clist, GtkWidget *tooltip_widget, MemoList **memo_list, int category, int main); static void cb_add_new_record(GtkWidget *widget, gpointer data); static void cb_edit_cats(GtkWidget *widget, gpointer data); /****************************** Main Code *************************************/ static void set_new_button_to(int new_state) { jp_logf(JP_LOG_DEBUG, "set_new_button_to new %d old %d\n", new_state, record_changed); if (record_changed==new_state) { return; } switch (new_state) { case MODIFY_FLAG: gtk_widget_show(cancel_record_button); gtk_widget_show(copy_record_button); gtk_widget_show(apply_record_button); gtk_widget_hide(add_record_button); gtk_widget_hide(delete_record_button); gtk_widget_hide(new_record_button); gtk_widget_hide(undelete_record_button); break; case NEW_FLAG: gtk_widget_show(cancel_record_button); gtk_widget_show(add_record_button); gtk_widget_hide(apply_record_button); gtk_widget_hide(copy_record_button); gtk_widget_hide(delete_record_button); gtk_widget_hide(new_record_button); gtk_widget_hide(undelete_record_button); break; case CLEAR_FLAG: gtk_widget_show(delete_record_button); gtk_widget_show(copy_record_button); gtk_widget_show(new_record_button); gtk_widget_hide(add_record_button); gtk_widget_hide(apply_record_button); gtk_widget_hide(cancel_record_button); gtk_widget_hide(undelete_record_button); break; case UNDELETE_FLAG: gtk_widget_show(undelete_record_button); gtk_widget_show(copy_record_button); gtk_widget_show(new_record_button); gtk_widget_hide(add_record_button); gtk_widget_hide(apply_record_button); gtk_widget_hide(cancel_record_button); gtk_widget_hide(delete_record_button); break; default: return; } record_changed=new_state; } static void cb_record_changed(GtkWidget *widget, gpointer data) { jp_logf(JP_LOG_DEBUG, "cb_record_changed\n"); if (record_changed==CLEAR_FLAG) { connect_changed_signals(DISCONNECT_SIGNALS); if (GTK_CLIST(clist)->rows > 0) { set_new_button_to(MODIFY_FLAG); } else { set_new_button_to(NEW_FLAG); } } else if (record_changed==UNDELETE_FLAG) { jp_logf(JP_LOG_INFO|JP_LOG_GUI, _("This record is deleted.\n" "Undelete it or copy it to make changes.\n")); } } static void connect_changed_signals(int con_or_dis) { int i; static int connected=0; /* CONNECT */ if ((con_or_dis==CONNECT_SIGNALS) && (!connected)) { connected=1; for (i=0; i65534) { len=65534-text_len; line[len]='\0'; jp_logf(JP_LOG_WARN, _("Memo text > 65535, truncating\n")); strcat(text, line); break; } text_len+=len; strcat(text, line); } /* convert to valid UTF-8 and recalculate the length */ jp_charset_p2j(text, sizeof(text)); text_len = strlen(text); #ifdef JPILOT_DEBUG printf("text=[%s]\n", text); printf("text_len=%d\n", text_len); printf("strlen(text)=%d\n", strlen(text)); #endif new_memo.text=text; ret=import_record_ask(parent_window, pane, new_memo.text, &(memo_app_info.category), _("Unfiled"), 0, attrib & 0x0F, &new_cat_num); if ((ret==DIALOG_SAID_IMPORT_ALL) || (ret==DIALOG_SAID_IMPORT_YES)) { pc_memo_write(&new_memo, NEW_PC_REC, attrib, NULL); jp_logf(JP_LOG_WARN, _("Imported Memo %s\n"), file_path); } } /* CSV */ if (type==IMPORT_TYPE_CSV) { jp_logf(JP_LOG_DEBUG, "Memo import CSV [%s]\n", file_path); /* Get the first line containing the format and check for reasonableness */ fgets(text, sizeof(text), in); ret = verify_csv_header(text, NUM_MEMO_CSV_FIELDS, file_path); if (EXIT_FAILURE == ret) return EXIT_FAILURE; import_all=FALSE; while (1) { /* Read the category field */ ret = read_csv_field(in, text, sizeof(text)); if (feof(in)) break; #ifdef JPILOT_DEBUG printf("category is [%s]\n", text); #endif g_strlcpy(old_cat_name, text, 16); /* Figure out what the best category number is */ suggested_cat_num=0; for (i=0; inext) { #ifdef JPILOT_DEBUG printf("category=%d\n", temp_memolist->mmemo.unique_id); printf("attrib=%d\n", temp_memolist->mmemo.attrib); printf("private=%d\n", temp_memolist->mmemo.attrib & 0x10); printf("memo=[%s]\n", temp_memolist->mmemo.memo.text); #endif new_memo.text=temp_memolist->mmemo.memo.text; index=temp_memolist->mmemo.unique_id-1; if (index<0) { g_strlcpy(old_cat_name, _("Unfiled"), 16); index=0; } else { g_strlcpy(old_cat_name, cai.name[index], 16); } attrib=0; /* Figure out what category it was in the dat file */ index=temp_memolist->mmemo.unique_id-1; suggested_cat_num=0; if (index>-1) { for (i=0; immemo.attrib & 0x10), suggested_cat_num, &new_cat_num); } else { new_cat_num=suggested_cat_num; } if (ret==DIALOG_SAID_IMPORT_QUIT) break; if (ret==DIALOG_SAID_IMPORT_SKIP) continue; if (ret==DIALOG_SAID_IMPORT_ALL) import_all=TRUE; attrib = (new_cat_num & 0x0F) | ((temp_memolist->mmemo.attrib & 0x10) ? dlpRecAttrSecret : 0); if ((ret==DIALOG_SAID_IMPORT_YES) || (import_all)) { pc_memo_write(&new_memo, NEW_PC_REC, attrib, NULL); } } free_MemoList(&memolist); } memo_refresh(); fclose(in); return EXIT_SUCCESS; } int memo_import(GtkWidget *window) { char *type_desc[] = { N_("Text"), N_("CSV (Comma Separated Values)"), N_("DAT/MPA (Palm Archive Formats)"), NULL }; int type_int[] = { IMPORT_TYPE_TEXT, IMPORT_TYPE_CSV, IMPORT_TYPE_DAT, 0 }; /* Hide ABA import of Memos until file format has been decoded */ if (memo_version==1) { type_desc[2] = NULL; type_int[2] = 0; } import_gui(window, pane, type_desc, type_int, cb_memo_import); return EXIT_SUCCESS; } /* End Import Code */ /* Start Export code */ static void cb_memo_export_ok(GtkWidget *export_window, GtkWidget *clist, int type, const char *filename) { MyMemo *mmemo; GList *list, *temp_list; FILE *out; struct stat statb; int i, r, len; const char *short_date; time_t ltime; struct tm *now; char *button_text[]={N_("OK")}; char *button_overwrite_text[]={N_("No"), N_("Yes")}; char text[1024]; char str1[256], str2[256]; char date_string[1024]; char pref_time[40]; char csv_text[65550]; long char_set; char *utf; /* Open file for export, including corner cases where file exists or * can't be opened */ if (!stat(filename, &statb)) { if (S_ISDIR(statb.st_mode)) { g_snprintf(text, sizeof(text), _("%s is a directory"), filename); dialog_generic(GTK_WINDOW(export_window), _("Error Opening File"), DIALOG_ERROR, text, 1, button_text); return; } g_snprintf(text,sizeof(text), _("Do you want to overwrite file %s?"), filename); r = dialog_generic(GTK_WINDOW(export_window), _("Overwrite File?"), DIALOG_ERROR, text, 2, button_overwrite_text); if (r!=DIALOG_SAID_2) { return; } } out = fopen(filename, "w"); if (!out) { g_snprintf(text,sizeof(text), _("Error opening file: %s"), filename); dialog_generic(GTK_WINDOW(export_window), _("Error Opening File"), DIALOG_ERROR, text, 1, button_text); return; } /* Write a header for TEXT file */ if (type == EXPORT_TYPE_TEXT) { get_pref(PREF_SHORTDATE, NULL, &short_date); get_pref_time_no_secs(pref_time); time(<ime); now = localtime(<ime); strftime(str1, sizeof(str1), short_date, now); strftime(str2, sizeof(str2), pref_time, now); g_snprintf(date_string, sizeof(date_string), "%s %s", str1, str2); if (memo_version==0) { fprintf(out, _("Memo exported from %s %s on %s\n\n"), PN,VERSION,date_string); } else { fprintf(out, _("Memos exported from %s %s on %s\n\n"), PN,VERSION,date_string); } } /* Write a header to the CSV file */ if (type == EXPORT_TYPE_CSV) { if (memo_version==0) { fprintf(out, "CSV memo version "VERSION": Category, Private, Memo Text\n"); } else { fprintf(out, "CSV memos version "VERSION": Category, Private, Memo Text\n"); } } /* Write a header to the BFOLDERS CSV file */ if (type == EXPORT_TYPE_BFOLDERS) { fprintf(out, "Notes:\n"); fprintf(out, "Note,Folder\n"); } get_pref(PREF_CHAR_SET, &char_set, NULL); list=GTK_CLIST(clist)->selection; for (i=0, temp_list=list; temp_list; temp_list = temp_list->next, i++) { mmemo = gtk_clist_get_row_data(GTK_CLIST(clist), GPOINTER_TO_INT(temp_list->data)); if (!mmemo) { continue; jp_logf(JP_LOG_WARN, _("Can't export memo %d\n"), (long) temp_list->data + 1); } switch (type) { case EXPORT_TYPE_CSV: len=0; if (mmemo->memo.text) { len=strlen(mmemo->memo.text) * 2 + 4; } if (len<256) len=256; utf = charset_p2newj(memo_app_info.category.name[mmemo->attrib & 0x0F], 16, char_set); str_to_csv_str(csv_text, utf); fprintf(out, "\"%s\",", csv_text); g_free(utf); fprintf(out, "\"%s\",", (mmemo->attrib & dlpRecAttrSecret) ? "1":"0"); str_to_csv_str(csv_text, mmemo->memo.text); fprintf(out, "\"%s\"\n", csv_text); break; case EXPORT_TYPE_BFOLDERS: len=0; str_to_csv_str(csv_text, mmemo->memo.text); fprintf(out, "\"%s\",", csv_text); if (mmemo->memo.text) { len=strlen(mmemo->memo.text) * 2 + 4; } if (len<256) len=256; printf("\"RAW %d %s\"\n", mmemo->attrib & 0x0F, memo_app_info.category.name[mmemo->attrib & 0x0F]); utf = charset_p2newj(memo_app_info.category.name[mmemo->attrib & 0x0F], 16, char_set); str_to_csv_str(csv_text, utf); fprintf(out, "\"Memos > %s\"\n", csv_text); printf("\"Memos > %s\"\n", utf, csv_text); g_free(utf); break; case EXPORT_TYPE_TEXT: get_pref(PREF_SHORTDATE, NULL, &short_date); get_pref_time_no_secs(pref_time); time(<ime); now = localtime(<ime); strftime(str1, sizeof(str1), short_date, now); strftime(str2, sizeof(str2), pref_time, now); g_snprintf(text, sizeof(text), "%s %s", str1, str2); fprintf(out, _("Memo: %ld\n"), (long) temp_list->data + 1); utf = charset_p2newj(memo_app_info.category.name[mmemo->attrib & 0x0F], 16, char_set); fprintf(out, _("Category: %s\n"), utf); g_free(utf); fprintf(out, _("Private: %s\n"), (mmemo->attrib & dlpRecAttrSecret) ? _("Yes"):_("No")); fprintf(out, _("----- Start of Memo -----\n")); fprintf(out, "%s", mmemo->memo.text); fprintf(out, _("\n----- End of Memo -----\n\n")); break; default: jp_logf(JP_LOG_WARN, _("Unknown export type\n")); } } if (out) { fclose(out); } } static void cb_memo_update_clist(GtkWidget *clist, int category) { memo_update_clist(clist, NULL, &export_memo_list, category, FALSE); } static void cb_memo_export_done(GtkWidget *widget, const char *filename) { free_MemoList(&export_memo_list); set_pref(PREF_MEMO_EXPORT_FILENAME, 0, filename, TRUE); } int memo_export(GtkWidget *window) { int w, h, x, y; char *type_text[]={N_("Text"), N_("CSV"), N_("B-Folders CSV"), NULL}; int type_int[]={EXPORT_TYPE_TEXT, EXPORT_TYPE_CSV, EXPORT_TYPE_BFOLDERS}; gdk_window_get_size(window->window, &w, &h); gdk_window_get_root_origin(window->window, &x, &y); w = gtk_paned_get_position(GTK_PANED(pane)); x+=40; export_gui(window, w, h, x, y, 1, sort_l, PREF_MEMO_EXPORT_FILENAME, type_text, type_int, cb_memo_update_clist, cb_memo_export_done, cb_memo_export_ok ); return EXIT_SUCCESS; } /* End Export Code */ /* Find position of category in sorted category array * via its assigned category number */ static int find_sort_cat_pos(int cat) { int i; for (i=0; imemo.text) charset_j2p(mmemo->memo.text, strlen(mmemo->memo.text)+1, char_set); } /* Do masking like Palm OS 3.5 */ show_priv = show_privates(GET_PRIVATES); if ((show_priv != SHOW_PRIVATES) && (mmemo->attrib & dlpRecAttrSecret)) { return; } /* End Masking */ jp_logf(JP_LOG_DEBUG, "mmemo->unique_id = %d\n",mmemo->unique_id); jp_logf(JP_LOG_DEBUG, "mmemo->rt = %d\n",mmemo->rt); flag = GPOINTER_TO_INT(data); if ((flag==MODIFY_FLAG) || (flag==DELETE_FLAG)) { delete_pc_record(MEMO, mmemo, flag); if (flag==DELETE_FLAG) { /* when we redraw we want to go to the line above the deleted one */ if (clist_row_selected>0) { clist_row_selected--; } } } if (flag == DELETE_FLAG) { memo_clist_redraw(); } } static void cb_undelete_memo(GtkWidget *widget, gpointer data) { MyMemo *mmemo; int flag; int show_priv; mmemo = gtk_clist_get_row_data(GTK_CLIST(clist), clist_row_selected); if (mmemo < (MyMemo *)CLIST_MIN_DATA) { return; } /* Do masking like Palm OS 3.5 */ show_priv = show_privates(GET_PRIVATES); if ((show_priv != SHOW_PRIVATES) && (mmemo->attrib & dlpRecAttrSecret)) { return; } /* End Masking */ jp_logf(JP_LOG_DEBUG, "mmemo->unique_id = %d\n",mmemo->unique_id); jp_logf(JP_LOG_DEBUG, "mmemo->rt = %d\n",mmemo->rt); flag = GPOINTER_TO_INT(data); if (flag==UNDELETE_FLAG) { if (mmemo->rt == DELETED_PALM_REC || mmemo->rt == DELETED_PC_REC) { undelete_pc_record(MEMO, mmemo, flag); } /* Possible later addition of undelete for modified records else if (mmemo->rt == MODIFIED_PALM_REC) { cb_add_new_record(widget, GINT_TO_POINTER(COPY_FLAG)); } */ } memo_clist_redraw(); } static void cb_cancel(GtkWidget *widget, gpointer data) { set_new_button_to(CLEAR_FLAG); memo_refresh(); } static void cb_edit_cats(GtkWidget *widget, gpointer data) { struct MemoAppInfo ai; char db_name[FILENAME_MAX]; char pdb_name[FILENAME_MAX]; char full_name[FILENAME_MAX]; unsigned char buffer[65536]; int num; size_t size; void *buf; struct pi_file *pf; long memo_version; jp_logf(JP_LOG_DEBUG, "cb_edit_cats\n"); get_pref(PREF_MEMO_VERSION, &memo_version, NULL); switch (memo_version) { case 0: default: strcpy(pdb_name, "MemoDB.pdb"); strcpy(db_name, "MemoDB"); break; case 1: strcpy(pdb_name, "MemosDB-PMem.pdb"); strcpy(db_name, "MemosDB-PMem"); break; case 2: strcpy(pdb_name, "Memo32DB.pdb"); strcpy(db_name, "Memo32DB"); break; } get_home_file_name(pdb_name, full_name, sizeof(full_name)); buf=NULL; memset(&ai, 0, sizeof(ai)); pf = pi_file_open(full_name); pi_file_get_app_info(pf, &buf, &size); num = unpack_MemoAppInfo(&ai, buf, size); if (num <= 0) { jp_logf(JP_LOG_WARN, _("Error reading file: %s\n"), pdb_name); return; } pi_file_close(pf); edit_cats(widget, db_name, &(ai.category)); size = pack_MemoAppInfo(&ai, buffer, sizeof(buffer)); pdb_file_write_app_block(db_name, buffer, size); cb_app_button(NULL, GINT_TO_POINTER(REDRAW)); } static void cb_category(GtkWidget *item, int selection) { int b; if ((GTK_CHECK_MENU_ITEM(item))->active) { if (memo_category == selection) { return; } b=dialog_save_changed_record_with_cancel(pane, record_changed); if (b==DIALOG_SAID_1) { /* Cancel */ int index, index2; if (memo_category==CATEGORY_ALL) { index = 0; index2 = 0; } else { index = find_sort_cat_pos(memo_category); index2 = find_menu_cat_pos(index) + 1; index += 1; } if (index<0) { jp_logf(JP_LOG_WARN, _("Category is not legal\n")); } else { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(memo_cat_menu_item1[index]), TRUE); gtk_option_menu_set_history(GTK_OPTION_MENU(category_menu1), index2); } return; } if (b==DIALOG_SAID_3) { /* Save */ cb_add_new_record(NULL, GINT_TO_POINTER(record_changed)); } if (selection==NUM_MEMO_CAT_ITEMS+1) { cb_edit_cats(item, NULL); } else { memo_category = selection; } clist_row_selected = 0; jp_logf(JP_LOG_DEBUG, "cb_category() cat=%d\n", memo_category); memo_update_clist(clist, category_menu1, &glob_memo_list, memo_category, TRUE); jp_logf(JP_LOG_DEBUG, "Leaving cb_category()\n"); } } static int memo_clear_details(void) { int new_cat; int sorted_position; jp_logf(JP_LOG_DEBUG, "memo_clear_details()\n"); /* Need to disconnect signals first */ connect_changed_signals(DISCONNECT_SIGNALS); gtk_text_buffer_set_text(GTK_TEXT_BUFFER(memo_text_buffer), "", -1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(private_checkbox), FALSE); if (memo_category==CATEGORY_ALL) { new_cat = 0; } else { new_cat = memo_category; } sorted_position = find_sort_cat_pos(new_cat); if (sorted_position<0) { jp_logf(JP_LOG_WARN, _("Category is not legal\n")); } else { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(memo_cat_menu_item2[sorted_position]), TRUE); gtk_option_menu_set_history(GTK_OPTION_MENU(category_menu2), find_menu_cat_pos(sorted_position)); } set_new_button_to(CLEAR_FLAG); connect_changed_signals(CONNECT_SIGNALS); jp_logf(JP_LOG_DEBUG, "Leaving memo_clear_details()\n"); return EXIT_SUCCESS; } static int memo_get_details(struct Memo *new_memo, unsigned char *attrib) { int i; GtkTextIter start_iter; GtkTextIter end_iter; gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(memo_text_buffer),&start_iter,&end_iter); new_memo->text = gtk_text_buffer_get_text(GTK_TEXT_BUFFER(memo_text_buffer),&start_iter,&end_iter,TRUE); if (new_memo->text[0]=='\0') { free(new_memo->text); new_memo->text=NULL; } /* Get the category that is set from the menu */ for (i=0; iactive) { *attrib = sort_l[i].cat_num; break; } } } if (GTK_TOGGLE_BUTTON(private_checkbox)->active) { *attrib |= dlpRecAttrSecret; } return EXIT_SUCCESS; } static void cb_add_new_record(GtkWidget *widget, gpointer data) { MyMemo *mmemo; struct Memo new_memo; unsigned char attrib; int flag; unsigned int unique_id; int show_priv; flag=GPOINTER_TO_INT(data); mmemo=NULL; unique_id=0; /* Do masking like Palm OS 3.5 */ if ((flag==COPY_FLAG) || (flag==MODIFY_FLAG)) { show_priv = show_privates(GET_PRIVATES); mmemo = gtk_clist_get_row_data(GTK_CLIST(clist), clist_row_selected); if (mmemo < (MyMemo *)CLIST_MIN_DATA) { return; } if ((show_priv != SHOW_PRIVATES) && (mmemo->attrib & dlpRecAttrSecret)) { return; } } /* End Masking */ if (flag==CLEAR_FLAG) { /* Clear button was hit */ memo_clear_details(); connect_changed_signals(DISCONNECT_SIGNALS); set_new_button_to(NEW_FLAG); gtk_widget_grab_focus(GTK_WIDGET(memo_text)); return; } if ((flag!=NEW_FLAG) && (flag!=MODIFY_FLAG) && (flag!=COPY_FLAG)) { return; } if (flag==MODIFY_FLAG) { mmemo = gtk_clist_get_row_data(GTK_CLIST(clist), clist_row_selected); unique_id = mmemo->unique_id; if (mmemo < (MyMemo *)CLIST_MIN_DATA) { return; } if ((mmemo->rt==DELETED_PALM_REC) || (mmemo->rt==DELETED_PC_REC) || (mmemo->rt==MODIFIED_PALM_REC)) { jp_logf(JP_LOG_INFO, _("You can't modify a record that is deleted\n")); return; } } memo_get_details(&new_memo, &attrib); set_new_button_to(CLEAR_FLAG); /* Keep unique ID intact */ if (flag==MODIFY_FLAG) { cb_delete_memo(NULL, data); if ((mmemo->rt==PALM_REC) || (mmemo->rt==REPLACEMENT_PALM_REC)) { pc_memo_write(&new_memo, REPLACEMENT_PALM_REC, attrib, &unique_id); } else { unique_id=0; pc_memo_write(&new_memo, NEW_PC_REC, attrib, &unique_id); } } else { unique_id=0; pc_memo_write(&new_memo, NEW_PC_REC, attrib, &unique_id); } free_Memo(&new_memo); /* Don't return to modified record if search gui active */ if (!glob_find_id) { glob_find_id = unique_id; } memo_clist_redraw(); return; } /* Do masking like Palm OS 3.5 */ static void clear_mymemo(MyMemo *mmemo) { mmemo->unique_id=0; mmemo->attrib=mmemo->attrib & 0xF8; if (mmemo->memo.text) { free(mmemo->memo.text); mmemo->memo.text=strdup(""); } return; } /* End Masking */ static void cb_clist_selection(GtkWidget *clist, gint row, gint column, GdkEventButton *event, gpointer data) { struct Memo *memo; MyMemo *mmemo; int b; int index, sorted_position; unsigned int unique_id = 0; if ((record_changed==MODIFY_FLAG) || (record_changed==NEW_FLAG)) { if (clist_row_selected == row) { return; } mmemo = gtk_clist_get_row_data(GTK_CLIST(clist), row); if (mmemo!=NULL) { unique_id = mmemo->unique_id; } b=dialog_save_changed_record_with_cancel(pane, record_changed); if (b==DIALOG_SAID_1) { /* Cancel */ if (clist_row_selected >=0) { clist_select_row(GTK_CLIST(clist), clist_row_selected, 0); } else { clist_row_selected = 0; clist_select_row(GTK_CLIST(clist), 0, 0); } return; } if (b==DIALOG_SAID_3) { /* Save */ cb_add_new_record(NULL, GINT_TO_POINTER(record_changed)); } set_new_button_to(CLEAR_FLAG); if (unique_id) { glob_find_id = unique_id; memo_find(); } else { clist_select_row(GTK_CLIST(clist), row, column); } return; } clist_row_selected=row; mmemo = gtk_clist_get_row_data(GTK_CLIST(clist), row); if (mmemo==NULL) { return; } if (mmemo->rt == DELETED_PALM_REC || (mmemo->rt == DELETED_PC_REC)) /* Possible later addition of undelete code for modified deleted records || mmemo->rt == MODIFIED_PALM_REC */ { set_new_button_to(UNDELETE_FLAG); } else { set_new_button_to(CLEAR_FLAG); } connect_changed_signals(DISCONNECT_SIGNALS); memo=&(mmemo->memo); index = mmemo->attrib & 0x0F; sorted_position = find_sort_cat_pos(index); if (memo_cat_menu_item2[sorted_position]==NULL) { /* Illegal category */ jp_logf(JP_LOG_DEBUG, "Category is not legal\n"); index = sorted_position = 0; } if (sorted_position<0) { jp_logf(JP_LOG_WARN, _("Category is not legal\n")); } else { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(memo_cat_menu_item2[sorted_position]), TRUE); } gtk_option_menu_set_history(GTK_OPTION_MENU(category_menu2), find_menu_cat_pos(sorted_position)); gtk_text_buffer_set_text(GTK_TEXT_BUFFER(memo_text_buffer), memo->text, -1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(private_checkbox), mmemo->attrib & dlpRecAttrSecret); connect_changed_signals(CONNECT_SIGNALS); } static gboolean cb_key_pressed_left_side(GtkWidget *widget, GdkEventKey *event, gpointer next_widget) { GtkTextBuffer *text_buffer; GtkTextIter iter; if (event->keyval == GDK_Return) { gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), "key_press_event"); gtk_widget_grab_focus(GTK_WIDGET(next_widget)); /* Position cursor at start of text */ text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(next_widget)); gtk_text_buffer_get_start_iter(text_buffer, &iter); gtk_text_buffer_place_cursor(text_buffer, &iter); return TRUE; } return FALSE; } static gboolean cb_key_pressed_right_side(GtkWidget *widget, GdkEventKey *event, gpointer next_widget) { /* Switch to clist */ if ((event->keyval == GDK_Return) && (event->state & GDK_SHIFT_MASK)) { gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), "key_press_event"); /* Call clist_selection to handle any cleanup such as a modified record */ cb_clist_selection(clist, clist_row_selected, 0, GINT_TO_POINTER(1), NULL); gtk_widget_grab_focus(GTK_WIDGET(next_widget)); return TRUE; } /* Call external editor for memo_text */ if ((event->keyval == GDK_e) && (event->state & GDK_CONTROL_MASK)) { gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), "key_press_event"); /* Get current text and place in temporary file */ GtkTextIter start_iter; GtkTextIter end_iter; char *text_out; gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(memo_text_buffer), &start_iter, &end_iter); text_out = gtk_text_buffer_get_text(GTK_TEXT_BUFFER(memo_text_buffer), &start_iter, &end_iter, TRUE); char tmp_fname[] = "jpilot.XXXXXX"; int tmpfd = mkstemp(tmp_fname); if (tmpfd < 0) { jp_logf(JP_LOG_WARN, _("Could not get temporary file name\n")); if (text_out) free(text_out); return TRUE; } FILE *fptr = fdopen(tmpfd, "w"); if (!fptr) { jp_logf(JP_LOG_WARN, _("Could not open temporary file for external editor\n")); if (text_out) free(text_out); return TRUE; } fwrite(text_out, strlen(text_out), 1, fptr); fwrite("\n", 1, 1, fptr); fclose(fptr); /* Call external editor */ char command[1024]; const char *ext_editor; get_pref(PREF_EXTERNAL_EDITOR, NULL, &ext_editor); if (!ext_editor) { jp_logf(JP_LOG_INFO, "External Editor command empty\n"); if (text_out) free(text_out); return TRUE; } if ((strlen(ext_editor) + strlen(tmp_fname) + 1) > sizeof(command)) { jp_logf(JP_LOG_WARN, _("External editor command too long to execute\n")); if (text_out) free(text_out); return TRUE; } g_snprintf(command, sizeof(command), "%s %s", ext_editor, tmp_fname); /* jp_logf(JP_LOG_STDOUT|JP_LOG_FILE, _("executing command = [%s]\n"), command); */ int r = system(command); if (!r) { /* Read data back from temporary file into memo */ char text_in[0xFFFF]; size_t bytes_read; fptr = fopen(tmp_fname, "rb"); if (!fptr) { jp_logf(JP_LOG_WARN, _("Could not open temporary file from external editor\n")); return TRUE; } bytes_read = fread(text_in, 1, 0xFFFF, fptr); fclose(fptr); unlink(tmp_fname); text_in[--bytes_read] = '\0'; /* Strip final newline */ /* Only update text if it has changed */ if (strcmp(text_out, text_in)) { gtk_text_buffer_set_text(GTK_TEXT_BUFFER(memo_text_buffer), text_in, -1); } } if (text_out) free(text_out); return TRUE; } /* End of external editor if */ return FALSE; } static void memo_update_clist(GtkWidget *clist, GtkWidget *tooltip_widget, MemoList **memo_list, int category, int main) { int num_entries, entries_shown; size_t copy_max_length; char *last; gchar *empty_line[] = { "" }; char str2[MEMO_MAX_COLUMN_LEN]; MemoList *temp_memo; char str[MEMO_CLIST_CHAR_WIDTH+10]; int len, len1; int show_priv; long show_tooltips; jp_logf(JP_LOG_DEBUG, "memo_update_clist()\n"); free_MemoList(memo_list); /* Need to get all records including private ones for the tooltips calculation */ num_entries = get_memos2(memo_list, SORT_ASCENDING, 2, 2, 1, CATEGORY_ALL); /* Start by clearing existing entry if in main window */ if (main) { memo_clear_details(); } /* Freeze clist to prevent flicker during updating */ gtk_clist_freeze(GTK_CLIST(clist)); if (main) { gtk_signal_disconnect_by_func(GTK_OBJECT(clist), GTK_SIGNAL_FUNC(cb_clist_selection), NULL); } clist_clear(GTK_CLIST(clist)); #ifdef __APPLE__ gtk_clist_thaw(GTK_CLIST(clist)); gtk_widget_hide(clist); gtk_widget_show_all(clist); gtk_clist_freeze(GTK_CLIST(clist)); #endif show_priv = show_privates(GET_PRIVATES); entries_shown=0; for (temp_memo = *memo_list; temp_memo; temp_memo=temp_memo->next) { if ( ((temp_memo->mmemo.attrib & 0x0F) != category) && category != CATEGORY_ALL) { continue; } /* Do masking like Palm OS 3.5 */ if ((show_priv == MASK_PRIVATES) && (temp_memo->mmemo.attrib & dlpRecAttrSecret)) { gtk_clist_append(GTK_CLIST(clist), empty_line); gtk_clist_set_text(GTK_CLIST(clist), entries_shown, 0, "----------------------------------------"); clear_mymemo(&temp_memo->mmemo); gtk_clist_set_row_data(GTK_CLIST(clist), entries_shown, &(temp_memo->mmemo)); gtk_clist_set_row_style(GTK_CLIST(clist), entries_shown, NULL); entries_shown++; continue; } /* End Masking */ /* Hide the private records if need be */ if ((show_priv != SHOW_PRIVATES) && (temp_memo->mmemo.attrib & dlpRecAttrSecret)) { continue; } /* Add entry to clist */ gtk_clist_append(GTK_CLIST(clist), empty_line); sprintf(str, "%d. ", entries_shown + 1); len1 = strlen(str); len = strlen(temp_memo->mmemo.memo.text)+1; /* ..memo clist does not display '/n' */ if ((copy_max_length = len) > MEMO_CLIST_CHAR_WIDTH) { copy_max_length = MEMO_CLIST_CHAR_WIDTH; } last = (char *)multibyte_safe_memccpy(str+len1, temp_memo->mmemo.memo.text,'\n', copy_max_length); if (last) { *(last-1)='\0'; } else { str[copy_max_length + len1]='\0'; } lstrncpy_remove_cr_lfs(str2, str, MEMO_MAX_COLUMN_LEN); gtk_clist_set_text(GTK_CLIST(clist), entries_shown, 0, str2); gtk_clist_set_row_data(GTK_CLIST(clist), entries_shown, &(temp_memo->mmemo)); /* Highlight row background depending on status */ switch (temp_memo->mmemo.rt) { case NEW_PC_REC: case REPLACEMENT_PALM_REC: set_bg_rgb_clist_row(clist, entries_shown, CLIST_NEW_RED, CLIST_NEW_GREEN, CLIST_NEW_BLUE); break; case DELETED_PALM_REC: case DELETED_PC_REC: set_bg_rgb_clist_row(clist, entries_shown, CLIST_DEL_RED, CLIST_DEL_GREEN, CLIST_DEL_BLUE); break; case MODIFIED_PALM_REC: set_bg_rgb_clist_row(clist, entries_shown, CLIST_MOD_RED, CLIST_MOD_GREEN, CLIST_MOD_BLUE); break; default: if (temp_memo->mmemo.attrib & dlpRecAttrSecret) { set_bg_rgb_clist_row(clist, entries_shown, CLIST_PRIVATE_RED, CLIST_PRIVATE_GREEN, CLIST_PRIVATE_BLUE); } else { gtk_clist_set_row_style(GTK_CLIST(clist), entries_shown, NULL); } } entries_shown++; } jp_logf(JP_LOG_DEBUG, "entries_shown=%d\n", entries_shown); if (main) { gtk_signal_connect(GTK_OBJECT(clist), "select_row", GTK_SIGNAL_FUNC(cb_clist_selection), NULL); } /* If there are items in the list, highlight the selected row */ if ((main) && (entries_shown>0)) { /* First, select any record being searched for */ if (glob_find_id) { memo_find(); } /* Second, try the currently selected row */ else if (clist_row_selected < entries_shown) { clist_select_row(GTK_CLIST(clist), clist_row_selected, 0); if (!gtk_clist_row_is_visible(GTK_CLIST(clist), clist_row_selected)) { gtk_clist_moveto(GTK_CLIST(clist), clist_row_selected, 0, 0.5, 0.0); } } /* Third, select row 0 if nothing else is possible */ else { clist_select_row(GTK_CLIST(clist), 0, 0); } } /* Unfreeze clist after all changes */ gtk_clist_thaw(GTK_CLIST(clist)); if (tooltip_widget) { get_pref(PREF_SHOW_TOOLTIPS, &show_tooltips, NULL); if (memo_list==NULL) { set_tooltip(show_tooltips, glob_tooltips, tooltip_widget, _("0 records"), NULL); } else { sprintf(str, _("%d of %d records"), entries_shown, num_entries); set_tooltip(show_tooltips, glob_tooltips, tooltip_widget, str, NULL); } } if (main) { connect_changed_signals(CONNECT_SIGNALS); } /* return focus to clist after any big operation which requires a redraw */ gtk_widget_grab_focus(GTK_WIDGET(clist)); jp_logf(JP_LOG_DEBUG, "Leaving memo_update_clist()\n"); } static int memo_find(void) { int r, found_at; if (glob_find_id) { r = clist_find_id(clist, glob_find_id, &found_at); if (r) { clist_select_row(GTK_CLIST(clist), found_at, 0); if (!gtk_clist_row_is_visible(GTK_CLIST(clist), found_at)) { gtk_clist_moveto(GTK_CLIST(clist), found_at, 0, 0.5, 0.0); } } glob_find_id = 0; } return EXIT_SUCCESS; } static int memo_clist_redraw(void) { memo_update_clist(clist, category_menu1, &glob_memo_list, memo_category, TRUE); return EXIT_SUCCESS; } int memo_cycle_cat(void) { int b; int i, new_cat; b=dialog_save_changed_record(pane, record_changed); if (b==DIALOG_SAID_2) { cb_add_new_record(NULL, GINT_TO_POINTER(record_changed)); } if (memo_category == CATEGORY_ALL) { new_cat = -1; } else { new_cat = find_sort_cat_pos(memo_category); } for (i=0; i= NUM_MEMO_CAT_ITEMS) { memo_category = CATEGORY_ALL; break; } if ((sort_l[new_cat].Pcat) && (sort_l[new_cat].Pcat[0])) { memo_category = sort_l[new_cat].cat_num; break; } } clist_row_selected = 0; return EXIT_SUCCESS; } int memo_refresh(void) { int index, index2; if (glob_find_id) { memo_category = CATEGORY_ALL; } if (memo_category==CATEGORY_ALL) { index = 0; index2 = 0; } else { index = find_sort_cat_pos(memo_category); index2 = find_menu_cat_pos(index) + 1; index += 1; } memo_update_clist(clist, category_menu1, &glob_memo_list, memo_category, TRUE); if (index<0) { jp_logf(JP_LOG_WARN, _("Category is not legal\n")); } else { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(memo_cat_menu_item1[index]), TRUE); gtk_option_menu_set_history(GTK_OPTION_MENU(category_menu1), index2); } return EXIT_SUCCESS; } int memo_gui_cleanup(void) { int b; b=dialog_save_changed_record(pane, record_changed); if (b==DIALOG_SAID_2) { cb_add_new_record(NULL, GINT_TO_POINTER(record_changed)); } free_MemoList(&glob_memo_list); connect_changed_signals(DISCONNECT_SIGNALS); set_pref(PREF_MEMO_PANE, gtk_paned_get_position(GTK_PANED(pane)), NULL, TRUE); set_pref(PREF_LAST_MEMO_CATEGORY, memo_category, NULL, TRUE); clist_clear(GTK_CLIST(clist)); return EXIT_SUCCESS; } /* Main function */ int memo_gui(GtkWidget *vbox, GtkWidget *hbox) { int i; GtkWidget *scrolled_window; GtkWidget *vbox1, *vbox2, *hbox_temp; GtkWidget *separator; long ivalue; GtkAccelGroup *accel_group; long char_set; long show_tooltips; char *cat_name; get_pref(PREF_MEMO_VERSION, &memo_version, NULL); /* Do some initialization */ clist_row_selected=0; record_changed=CLEAR_FLAG; get_memo_app_info(&memo_app_info); /* Initialize categories */ get_pref(PREF_CHAR_SET, &char_set, NULL); for (i=1; ichild)), "label_high"); #endif /* "Apply Changes" button */ CREATE_BUTTON(apply_record_button, _("Apply Changes"), APPLY, _("Commit the modifications"), GDK_Return, GDK_CONTROL_MASK, "Ctrl+Enter") gtk_signal_connect(GTK_OBJECT(apply_record_button), "clicked", GTK_SIGNAL_FUNC(cb_add_new_record), GINT_TO_POINTER(MODIFY_FLAG)); #ifndef ENABLE_STOCK_BUTTONS gtk_widget_set_name(GTK_WIDGET(GTK_LABEL(GTK_BIN(apply_record_button)->child)), "label_high"); #endif /* Separator */ separator = gtk_hseparator_new(); gtk_box_pack_start(GTK_BOX(vbox2), separator, FALSE, FALSE, 5); /* Private check box */ hbox_temp = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox2), hbox_temp, FALSE, FALSE, 0); private_checkbox = gtk_check_button_new_with_label(_("Private")); gtk_box_pack_end(GTK_BOX(hbox_temp), private_checkbox, FALSE, FALSE, 0); /* Right-side Category menu */ /* Clear GTK option menus before use */ for (i=0; i. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] Wrapper for compilers which do not understand `-c -o'. Remove `-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the right script to run: please start by reading the file `INSTALL'. Report bugs to . EOF exit $? ;; -v | --v*) echo "compile $scriptversion" exit $? ;; esac ofile= cfile= eat= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as `compile cc -o foo foo.c'. # So we strip `-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) ofile=$2 ;; *) set x "$@" -o "$2" shift ;; esac ;; *.c) cfile=$1 set x "$@" "$1" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -z "$ofile" || test -z "$cfile"; then # If no `-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no # `.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi # Name of file we expect compiler to create. cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'` # Create the lock directory. # Note: use `[/.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break fi sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. trap "rmdir '$lockdir'; exit 1" 1 2 15 # Run the compile. "$@" ret=$? if test -f "$cofile"; then mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: jpilot-1.8.1.2/jpilot.xpm0000644000175000017500000000226410445274015012140 00000000000000/* XPM */ static char * jpilot_xpm[] = { "24 32 17 1", " c None", ". c #FFFF00", "+ c #666667", "@ c #4C4C4C", "# c #000000", "$ c #191919", "% c #7F7F00", "& c #FFFFFF", "* c #999999", "= c #333333", "- c #B2B2B2", "; c #7F7F7F", "> c #E5E5E5", ", c #CCCCCC", "' c #00FFFF", ") c #7F0000", "! c #007F7F", " #$===$ ", " #$@++@=$ ", " $@++@++$# ", " #=+@@->,+@# ", " #@+@*&&>-,# ", " $@+@,&&>,-$ ", " $+@@>&>;-;# ", " #=+%@--;%;$#$$# ", " $=+.*.;%.*%@%.%$# ", " $@@%.%.......-..=#", " #=+@+.*;%%%*.....%=", " #@++*...%$#$)%.*..@", " #=+@+,-.%$ ##$=%%%", " #$+@++>>--$ ##", " $@@++;>&&,$ #$$$## ", " #=++@@;&&&>$ $;**;=#", " $@+@@@-&&&>=# +--'-+#", " #=+++@@,&,>&+=#$*'-,,= ", " $@+@+@;&&*->*@@%*---;$ ", "#$@++@@*>-+@;*@+*'**;=# ", "#@+@@+@++@+@@*@+-,*++=# ", "$@@@+;+@+@++;-++,,,*@=$#", "=@+@%.%+++@,,*+=!*-*%.*$", "=+@@*..%.%,&&-*#$%...%=#", "=++..-...*>&&&>$+.-..% ", "@@;......->&&&&%.....= ", "=+@...*.%,&&&&-%...%=# ", "=+@%.*...>&&&&*..;%$# ", "$++@;.*..>&&>-%.%$# ", "#=@+%...*&>,;*..$ ", " #===%.*+*@$$%%= ", " ##$)%%$## #$# "}; jpilot-1.8.1.2/memo.h0000644000175000017500000000302011365051716011211 00000000000000/* $Id: memo.h,v 1.9 2010-03-29 05:44:29 rikster5 Exp $ */ /******************************************************************************* * memo.h * A module of J-Pilot http://jpilot.org * * Copyright (C) 1999-2002 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef __MEMO_H__ #define __MEMO_H__ #include #include "utils.h" int get_memo_app_info(struct MemoAppInfo *ai); void free_MemoList(MemoList **memo); int get_memos(MemoList **memo_list, int sort_order); int get_memos2(MemoList **memo_list, int sort_order, int modified, int deleted, int privates, int category); int pc_memo_write(struct Memo *memo, PCRecType rt, unsigned char attrib, unsigned int *unique_id); int memo_print(void); int memo_import(GtkWidget *window); int memo_export(GtkWidget *window); #endif jpilot-1.8.1.2/prefs_gui.c0000644000175000017500000011312211547063267012245 00000000000000/* $Id: prefs_gui.c,v 1.84 2011-04-06 12:02:28 rousseau Exp $ */ /******************************************************************************* * prefs_gui.c * A module of J-Pilot http://jpilot.org * * Copyright (C) 1999-2002 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /********************************* Includes ***********************************/ #include "config.h" #include #include #include #include "prefs_gui.h" #include "prefs.h" #include "i18n.h" #include "utils.h" #include "log.h" #include "plugins.h" /******************************* Global vars **********************************/ static GtkWidget *window; static GtkWidget *main_window; static GtkWidget *port_entry; static GtkWidget *backups_entry; static GtkWidget *ext_editor_entry; static GtkWidget *alarm_command_entry; static GtkWidget *mail_command_entry; static GtkWidget *todo_days_due_entry; extern int glob_app; extern GtkTooltips *glob_tooltips; #ifdef ENABLE_PLUGINS extern unsigned char skip_plugins; #endif /* Sync Port Menu */ static GtkWidget *port_menu; static GtkWidget *port_menu_item[10]; static const char *port_choices[]={ "other", "usb:", "/dev/ttyUSB0", "/dev/ttyUSB1", "/dev/ttyUSB2", "/dev/ttyUSB3", "/dev/ttyS0", "/dev/ttyS1", "/dev/ttyS2", "/dev/ttyS3", NULL }; /* Serial Rate Menu */ static GtkWidget *rate_menu; /****************************** Main Code *************************************/ #ifdef COLORS /* This doesn't work quite right. There is supposedly no way to do it in GTK. */ static void r(GtkWidget *w, gpointer data) { GtkStyle *style; style = gtk_rc_get_style(GTK_WIDGET(w)); if (style) gtk_rc_style_unref(style); if (GTK_IS_CONTAINER(w)) { gtk_container_foreach(GTK_CONTAINER(w), r, w); } } static void set_colors() { GtkStyle* style; int i; r(main_window, NULL); r(window, NULL); gtk_rc_reparse_all(); read_gtkrc_file(); gtk_rc_reparse_all(); gtk_widget_reset_rc_styles(window); gtk_widget_reset_rc_styles(main_window); gtk_rc_reparse_all(); gtk_widget_queue_draw(window); gtk_widget_queue_draw(main_window); } #endif /* #ifdef COLORS */ /* Sync Port menu code */ static void cb_serial_port_menu(GtkWidget *widget, gpointer data) { if (!widget) return; if (!(GTK_CHECK_MENU_ITEM(widget))->active) { return; } const char *port_str = port_choices[GPOINTER_TO_INT(data)]; gtk_entry_set_text(GTK_ENTRY(port_entry), port_str); if (! strcmp(port_str, "usb:")) { gtk_widget_set_sensitive(rate_menu, FALSE); } else { gtk_widget_set_sensitive(rate_menu, TRUE); } return; } static int make_serial_port_menu(GtkWidget **port_menu) { GtkWidget *menu; GSList *group; int i, selected; const char *entry_text; *port_menu = gtk_option_menu_new(); menu = gtk_menu_new(); group = NULL; selected=0; entry_text = gtk_entry_get_text(GTK_ENTRY(port_entry)); for (i=0; port_choices[i]; i++) { port_menu_item[i] = gtk_radio_menu_item_new_with_label(group, port_choices[i]); group = gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(port_menu_item[i])); gtk_menu_append(GTK_MENU(menu), port_menu_item[i]); if (!strcmp(entry_text, port_choices[i])) { gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(port_menu_item[i]), TRUE); selected=i; } /* We don't want a callback if "other" is selected */ if (i) { gtk_signal_connect(GTK_OBJECT(port_menu_item[i]), "activate", GTK_SIGNAL_FUNC(cb_serial_port_menu), GINT_TO_POINTER(i)); } gtk_widget_show(port_menu_item[i]); } gtk_option_menu_set_menu(GTK_OPTION_MENU(*port_menu), menu); gtk_option_menu_set_history(GTK_OPTION_MENU(*port_menu), selected); return EXIT_SUCCESS; } /* End Sync Port Menu code */ static void cb_pref_menu(GtkWidget *widget, gpointer data) { int pref; int value; if (!widget) return; if (!(GTK_CHECK_MENU_ITEM(widget))->active) { return; } pref = GPOINTER_TO_INT(data); value = pref & 0xFF; pref = pref >> 8; set_pref_possibility(pref, value, TRUE); jp_logf(JP_LOG_DEBUG, "pref %d, value %d\n", pref, value); #ifdef COLORS if (pref==PREF_RCFILE) { set_colors(); } #endif return; } int make_pref_menu(GtkWidget **pref_menu, int pref_num) { GtkWidget *menu_item; GtkWidget *menu; GSList *group; int i, r; long ivalue; const char *svalue; char format_text[MAX_PREF_LEN]; char human_text[MAX_PREF_LEN]; time_t ltime; struct tm *now; time(<ime); now = localtime(<ime); *pref_menu = gtk_option_menu_new(); menu = gtk_menu_new(); group = NULL; get_pref(pref_num, &ivalue, &svalue); for (i=0; i 99) { num_backups = 99; } set_pref(PREF_NUM_BACKUPS, num_backups, NULL, FALSE); } static void cb_checkbox_todo_days_till_due(GtkWidget *widget, gpointer data) { int num_days; const char *entry_text; entry_text = gtk_entry_get_text(GTK_ENTRY(todo_days_due_entry)); sscanf(entry_text, "%d", &num_days); set_pref(PREF_TODO_DAYS_TILL_DUE, num_days, NULL, TRUE); } static void cb_checkbox_show_tooltips(GtkWidget *widget, gpointer data) { set_pref(PREF_SHOW_TOOLTIPS, GTK_TOGGLE_BUTTON(widget)->active, NULL, TRUE); } static void cb_text_entry(GtkWidget *widget, gpointer data) { const char *entry_text; int i, found; entry_text = gtk_entry_get_text(GTK_ENTRY(widget)); set_pref(GPOINTER_TO_INT(data), 0, entry_text, FALSE); if (GPOINTER_TO_INT(data) == PREF_PORT) { if (GTK_IS_WIDGET(port_menu_item[0])) { found=0; for (i=0; port_choices[i]; i++) { if (!strcmp(entry_text, port_choices[i])) { gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(port_menu_item[i]), TRUE); gtk_option_menu_set_history(GTK_OPTION_MENU(port_menu), i); found=1; } } if (!found) { gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(port_menu_item[0]), TRUE); gtk_option_menu_set_history(GTK_OPTION_MENU(port_menu), 0); } } } } static void cb_checkbox_set_pref(GtkWidget *widget, gpointer data) { unsigned long pref, value; pref = GPOINTER_TO_INT(data); value = GTK_TOGGLE_BUTTON(widget)->active; set_pref(pref, value, NULL, TRUE); } /* * upper 16 bits of data is pref to set * lower 16 bits of data is value to set it to */ static void cb_radio_set_pref(GtkWidget *widget, gpointer data) { unsigned long pref, value; pref=GPOINTER_TO_INT(data); value=pref & 0xFFFF; pref >>= 16; set_pref(pref, value, NULL, TRUE); } #ifdef ENABLE_PLUGINS static void cb_sync_plugin(GtkWidget *widget, gpointer data) { GList *plugin_list, *temp_list; struct plugin_s *Pplugin; int number; number = GPOINTER_TO_INT(data); plugin_list=NULL; plugin_list = get_plugin_list(); for (temp_list = plugin_list; temp_list; temp_list = temp_list->next) { Pplugin = (struct plugin_s *)temp_list->data; if (Pplugin) { if (number == Pplugin->number) { if (GTK_TOGGLE_BUTTON(widget)->active) { Pplugin->sync_on = 1; } else { Pplugin->sync_on = 0; } } } } write_plugin_sync_file(); } #endif static gboolean cb_destroy(GtkWidget *widget) { jp_logf(JP_LOG_DEBUG, "Pref GUI Cleanup\n"); pref_write_rc_file(); window = NULL; /* Preference changes can affect visual elements of applications. * Redraw the screen to incorporate any changes made. */ cb_app_button(NULL, GINT_TO_POINTER(REDRAW)); return FALSE; } static void cb_quit(GtkWidget *widget, gpointer data) { jp_logf(JP_LOG_DEBUG, "cb_quit\n"); if (GTK_IS_WIDGET(data)) { gtk_widget_destroy(data); } } /* This function adds a simple option checkbutton for the supplied text + * option. */ static void add_checkbutton(const char *text, int which, GtkWidget *vbox, void cb(GtkWidget *widget, gpointer data)) { /* Create button */ GtkWidget *checkbutton = gtk_check_button_new_with_label(text); gtk_box_pack_start(GTK_BOX(vbox), checkbutton, FALSE, FALSE, 0); gtk_widget_show(checkbutton); /* Set the button state based on option value */ if (get_pref_int_default(which, 0)) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton), TRUE); /* Set button callback */ gtk_signal_connect(GTK_OBJECT(checkbutton), "clicked", GTK_SIGNAL_FUNC(cb), GINT_TO_POINTER(which)); } void cb_prefs_gui(GtkWidget *widget, gpointer data) { GtkWidget *checkbutton; GtkWidget *pref_menu; GtkWidget *label; GtkWidget *button; GtkWidget *table; GtkWidget *vbox; GtkWidget *vbox_locale; GtkWidget *vbox_settings; GtkWidget *vbox_datebook; GtkWidget *vbox_address; GtkWidget *vbox_todo; GtkWidget *vbox_memo; GtkWidget *vbox_alarms; GtkWidget *vbox_conduits; GtkWidget *hbox_temp; GtkWidget *hseparator; GtkWidget *notebook; /* FIXME: Uncomment when support for Task has been added */ #if 0 GtkWidget *radio_button_todo_version[2]; #endif GtkWidget *radio_button_datebook_version[2]; GtkWidget *radio_button_address_version[2]; GtkWidget *radio_button_memo_version[3]; long ivalue; const char *cstr; char temp_str[10]; char temp[256]; GSList *group; #ifdef ENABLE_PLUGINS GList *plugin_list, *temp_list; struct plugin_s *Pplugin; #endif jp_logf(JP_LOG_DEBUG, "cb_prefs_gui\n"); if (window) { jp_logf(JP_LOG_DEBUG, "pref_window is already up\n"); /* Shift focus to existing window if called again and window is still alive. */ gtk_window_present(GTK_WINDOW(window)); return; } main_window = data; window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width(GTK_CONTAINER(window), 10); g_snprintf(temp, sizeof(temp), "%s %s", PN, _("Preferences")); gtk_window_set_title(GTK_WINDOW(window), temp); gtk_signal_connect(GTK_OBJECT(window), "destroy", GTK_SIGNAL_FUNC(cb_destroy), window); vbox = gtk_vbox_new(FALSE, 5); gtk_container_add(GTK_CONTAINER(window), vbox); /* Boxes for each preference tax */ vbox_locale = gtk_vbox_new(FALSE, 0); vbox_settings = gtk_vbox_new(FALSE, 0); vbox_datebook = gtk_vbox_new(FALSE, 0); vbox_address = gtk_vbox_new(FALSE, 0); vbox_todo = gtk_vbox_new(FALSE, 0); vbox_memo = gtk_vbox_new(FALSE, 0); vbox_alarms = gtk_vbox_new(FALSE, 0); vbox_conduits = gtk_vbox_new(FALSE, 0); gtk_container_set_border_width(GTK_CONTAINER(vbox_locale), 5); gtk_container_set_border_width(GTK_CONTAINER(vbox_settings), 5); gtk_container_set_border_width(GTK_CONTAINER(vbox_datebook), 5); gtk_container_set_border_width(GTK_CONTAINER(vbox_address), 5); gtk_container_set_border_width(GTK_CONTAINER(vbox_todo), 5); gtk_container_set_border_width(GTK_CONTAINER(vbox_memo), 5); gtk_container_set_border_width(GTK_CONTAINER(vbox_alarms), 5); gtk_container_set_border_width(GTK_CONTAINER(vbox_conduits), 5); /* Notebook for preference tabs */ notebook = gtk_notebook_new(); gtk_notebook_set_tab_pos(GTK_NOTEBOOK(notebook), GTK_POS_TOP); label = gtk_label_new(_("Locale")); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox_locale, label); label = gtk_label_new(_("Settings")); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox_settings, label); label = gtk_label_new(_("Datebook")); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox_datebook, label); label = gtk_label_new(C_("prefgui","Address")); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox_address, label); label = gtk_label_new(_("ToDo")); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox_todo, label); label = gtk_label_new(_("Memo")); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox_memo, label); label = gtk_label_new(_("Alarms")); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox_alarms, label); label = gtk_label_new(_("Conduits")); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox_conduits, label); gtk_box_pack_start(GTK_BOX(vbox), notebook, FALSE, FALSE, 0); /************************************************************/ /* Locale preference tab */ table = gtk_table_new(5, 2, FALSE); gtk_table_set_row_spacings(GTK_TABLE(table),0); gtk_table_set_col_spacings(GTK_TABLE(table),5); gtk_box_pack_start(GTK_BOX(vbox_locale), table, FALSE, FALSE, 0); /* Character Set */ label = gtk_label_new(_("Character Set")); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(label), 0, 1, 0, 1); gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); make_pref_menu(&pref_menu, PREF_CHAR_SET); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(pref_menu), 1, 2, 0, 1); get_pref(PREF_CHAR_SET, &ivalue, NULL); gtk_option_menu_set_history(GTK_OPTION_MENU(pref_menu), ivalue); /* Shortdate */ label = gtk_label_new(_("Short date format")); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(label), 0, 1, 1, 2); gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); make_pref_menu(&pref_menu, PREF_SHORTDATE); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(pref_menu), 1, 2, 1, 2); get_pref(PREF_SHORTDATE, &ivalue, NULL); gtk_option_menu_set_history(GTK_OPTION_MENU(pref_menu), ivalue); /* Longdate */ label = gtk_label_new(_("Long date format")); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(label), 0, 1, 2, 3); gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); make_pref_menu(&pref_menu, PREF_LONGDATE); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(pref_menu), 1, 2, 2, 3); get_pref(PREF_LONGDATE, &ivalue, NULL); gtk_option_menu_set_history(GTK_OPTION_MENU(pref_menu), ivalue); /* Time */ label = gtk_label_new(_("Time format")); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(label), 0, 1, 3, 4); gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); make_pref_menu(&pref_menu, PREF_TIME); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(pref_menu), 1, 2, 3, 4); get_pref(PREF_TIME, &ivalue, NULL); gtk_option_menu_set_history(GTK_OPTION_MENU(pref_menu), ivalue); /**********************************************************************/ /* Settings preference tab */ table = gtk_table_new(4, 3, FALSE); gtk_table_set_row_spacings(GTK_TABLE(table),0); gtk_table_set_col_spacings(GTK_TABLE(table),5); gtk_box_pack_start(GTK_BOX(vbox_settings), table, FALSE, FALSE, 0); /* GTK colors file */ label = gtk_label_new(_("GTK color theme file")); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(label), 0, 2, 0, 1); gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); make_pref_menu(&pref_menu, PREF_RCFILE); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(pref_menu), 2, 3, 0, 1); get_pref(PREF_RCFILE, &ivalue, NULL); gtk_option_menu_set_history(GTK_OPTION_MENU(pref_menu), ivalue); /* Port */ label = gtk_label_new(_("Sync Port")); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(label), 0, 1, 1, 2); gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); port_entry = gtk_entry_new_with_max_length(MAX_PREF_LEN - 2); entry_set_multiline_truncate(GTK_ENTRY(port_entry), TRUE); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(port_entry), 2, 3, 1, 2); get_pref(PREF_PORT, NULL, &cstr); if (cstr) { gtk_entry_set_text(GTK_ENTRY(port_entry), cstr); } gtk_signal_connect(GTK_OBJECT(port_entry), "changed", GTK_SIGNAL_FUNC(cb_text_entry), GINT_TO_POINTER(PREF_PORT)); /* Sync Port Menu */ /* Note that port_entry must exist before we call this function */ make_serial_port_menu(&port_menu); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(port_menu), 1, 2, 1, 2); /* Serial Rate */ label = gtk_label_new(_("Serial Rate")); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(label), 0, 2, 2, 3); gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); make_pref_menu(&rate_menu, PREF_RATE); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(rate_menu), 2, 3, 2, 3); get_pref(PREF_RATE, &ivalue, NULL); gtk_option_menu_set_history(GTK_OPTION_MENU(rate_menu), ivalue); /* Disable Serial Rate menu if sync port is USB */ if (! strcmp(cstr, "usb:")) { gtk_widget_set_sensitive(rate_menu, FALSE); } else { gtk_widget_set_sensitive(rate_menu, TRUE); } /* Number of backups */ label = gtk_label_new(_("Number of backups to be archived")); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(label), 0, 2, 3, 4); gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); backups_entry = gtk_entry_new_with_max_length(2); entry_set_multiline_truncate(GTK_ENTRY(backups_entry), TRUE); gtk_widget_set_usize(backups_entry, 30, 0); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(backups_entry), 2, 3, 3, 4); get_pref(PREF_NUM_BACKUPS, &ivalue, NULL); sprintf(temp_str, "%ld", ivalue); gtk_entry_set_text(GTK_ENTRY(backups_entry), temp_str); gtk_signal_connect(GTK_OBJECT(backups_entry), "changed", GTK_SIGNAL_FUNC(cb_backups_entry), NULL); /* Show deleted files check box */ add_checkbutton(_("Show deleted records (default NO)"), PREF_SHOW_DELETED, vbox_settings, cb_checkbox_set_pref); /* Show modified files check box */ add_checkbutton(_("Show modified deleted records (default NO)"), PREF_SHOW_MODIFIED, vbox_settings, cb_checkbox_set_pref); /* Confirm file installation */ add_checkbutton( _("Ask confirmation for file installation (J-Pilot -> PDA) (default YES)"), PREF_CONFIRM_FILE_INSTALL, vbox_settings, cb_checkbox_set_pref); /* Show tooltips check box */ add_checkbutton(_("Show popup tooltips (default YES) (requires restart)"), PREF_SHOW_TOOLTIPS, vbox_settings, cb_checkbox_show_tooltips); /**********************************************************************/ /* Datebook preference tab */ /* Radio box to choose which database to use: Datebook/Calendar */ group = NULL; radio_button_datebook_version[0] = gtk_radio_button_new_with_label(group, _("Use Datebook database (Palm OS < 5.2.1)")); group = gtk_radio_button_group(GTK_RADIO_BUTTON(radio_button_datebook_version[0])); radio_button_datebook_version[1] = gtk_radio_button_new_with_label(group, _("Use Calendar database (Palm OS > 5.2)")); group = gtk_radio_button_group(GTK_RADIO_BUTTON(radio_button_datebook_version[1])); gtk_box_pack_start(GTK_BOX(vbox_datebook), radio_button_datebook_version[0], FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox_datebook), radio_button_datebook_version[1], FALSE, FALSE, 0); gtk_signal_connect(GTK_OBJECT(radio_button_datebook_version[0]), "pressed", GTK_SIGNAL_FUNC(cb_radio_set_pref), GINT_TO_POINTER((PREF_DATEBOOK_VERSION<<16)|0)); gtk_signal_connect(GTK_OBJECT(radio_button_datebook_version[1]), "pressed", GTK_SIGNAL_FUNC(cb_radio_set_pref), GINT_TO_POINTER((PREF_DATEBOOK_VERSION<<16)|1)); get_pref(PREF_DATEBOOK_VERSION, &ivalue, NULL); if (ivalue) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio_button_datebook_version[1]), TRUE); } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio_button_datebook_version[0]), TRUE); } /* Separate database selection from less important options */ hseparator = gtk_hseparator_new(); gtk_box_pack_start(GTK_BOX(vbox_datebook), hseparator, FALSE, FALSE, 3); /* Show highlight days check box */ add_checkbutton(_("Highlight calendar days with appointments"), PREF_DATEBOOK_HIGHLIGHT_DAYS, vbox_datebook, cb_checkbox_set_pref); /* Highlight today on month and week view */ add_checkbutton(_("Annotate today in day, week, and month views"), PREF_DATEBOOK_HI_TODAY, vbox_datebook, cb_checkbox_set_pref); /* Show number of years on anniversaries in month and week view */ add_checkbutton(_("Append years on anniversaries in day, week, and month views"), PREF_DATEBOOK_ANNI_YEARS, vbox_datebook, cb_checkbox_set_pref); #ifdef ENABLE_DATEBK /* Show use DateBk check box */ add_checkbutton(_("Use DateBk note tags"), PREF_USE_DB3, vbox_datebook, cb_checkbox_set_pref); #else checkbutton = gtk_check_button_new_with_label(_("DateBk support disabled in this build")); gtk_widget_set_sensitive(checkbutton, FALSE); gtk_box_pack_start(GTK_BOX(vbox_datebook), checkbutton, FALSE, FALSE, 0); gtk_widget_show(checkbutton); #endif /**********************************************************************/ /* Address preference tab */ /* Radio box to choose which database to use: Address/Contacts */ group = NULL; radio_button_address_version[0] = gtk_radio_button_new_with_label(group, _("Use Address database (Palm OS < 5.2.1)")); group = gtk_radio_button_group(GTK_RADIO_BUTTON(radio_button_address_version[0])); radio_button_address_version[1] = gtk_radio_button_new_with_label(group, _("Use Contacts database (Palm OS > 5.2)")); group = gtk_radio_button_group(GTK_RADIO_BUTTON(radio_button_address_version[1])); gtk_box_pack_start(GTK_BOX(vbox_address), radio_button_address_version[0], FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox_address), radio_button_address_version[1], FALSE, FALSE, 0); gtk_signal_connect(GTK_OBJECT(radio_button_address_version[0]), "pressed", GTK_SIGNAL_FUNC(cb_radio_set_pref), GINT_TO_POINTER((PREF_ADDRESS_VERSION<<16)|0)); gtk_signal_connect(GTK_OBJECT(radio_button_address_version[1]), "pressed", GTK_SIGNAL_FUNC(cb_radio_set_pref), GINT_TO_POINTER((PREF_ADDRESS_VERSION<<16)|1)); get_pref(PREF_ADDRESS_VERSION, &ivalue, NULL); if (ivalue) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio_button_address_version[1]), TRUE); } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio_button_address_version[0]), TRUE); } /* Separate database selection from less important options */ hseparator = gtk_hseparator_new(); gtk_box_pack_start(GTK_BOX(vbox_address), hseparator, FALSE, FALSE, 3); /* Command to use for e-mailing from address book */ hbox_temp = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox_address), hbox_temp, FALSE, FALSE, 0); label = gtk_label_new(_("Mail Command")); gtk_box_pack_start(GTK_BOX(hbox_temp), label, FALSE, FALSE, 0); mail_command_entry = gtk_entry_new_with_max_length(MAX_PREF_LEN - 2); get_pref(PREF_MAIL_COMMAND, NULL, &cstr); if (cstr) { gtk_entry_set_text(GTK_ENTRY(mail_command_entry), cstr); } gtk_signal_connect(GTK_OBJECT(mail_command_entry), "changed", GTK_SIGNAL_FUNC(cb_text_entry), GINT_TO_POINTER(PREF_MAIL_COMMAND)); gtk_box_pack_start(GTK_BOX(hbox_temp), mail_command_entry, TRUE, TRUE, 1); label = gtk_label_new(_("%s is replaced by the e-mail address")); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.0); gtk_box_pack_start(GTK_BOX(vbox_address), label, FALSE, FALSE, 0); /**********************************************************************/ /* ToDo preference tab */ /* FIXME: undef when support for Task has been coded */ #if 0 /* Radio box to choose which database to use: Todo/Task */ group = NULL; radio_button_task_version[0] = gtk_radio_button_new_with_label(group, _("Use ToDo database (Palm OS < 5.2.1)")); group = gtk_radio_button_group(GTK_RADIO_BUTTON(radio_button_todo_version[0])); radio_button_todo_version[1] = gtk_radio_button_new_with_label(group, _("Use Task database (Palm OS > 5.2)")); group = gtk_radio_button_group(GTK_RADIO_BUTTON(radio_button_todo_version[1])); gtk_box_pack_start(GTK_BOX(vbox_todo), radio_button_todo_version[0], FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox_todo), radio_button_todo_version[1], FALSE, FALSE, 0); gtk_signal_connect(GTK_OBJECT(radio_button_todo_version[0]), "pressed", GTK_SIGNAL_FUNC(cb_radio_set_pref), GINT_TO_POINTER((PREF_TODO_VERSION<<16)|0)); gtk_signal_connect(GTK_OBJECT(radio_button_todo_version[1]), "pressed", GTK_SIGNAL_FUNC(cb_radio_set_pref), GINT_TO_POINTER((PREF_TODO_VERSION<<16)|1)); get_pref(PREF_TODO_VERSION, &ivalue, NULL); if (ivalue) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio_button_todo_version[1]), TRUE); } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio_button_todo_version[0]), TRUE); } /* Separate database selection from less important options */ hseparator = gtk_hseparator_new(); gtk_box_pack_start(GTK_BOX(vbox_todo), hseparator, FALSE, FALSE, 3); #endif /* hide completed check box */ add_checkbutton(_("Hide Completed ToDos"), PREF_TODO_HIDE_COMPLETED, vbox_todo, cb_checkbox_set_pref); /* hide todos not yet due check box */ add_checkbutton(_("Hide ToDos not yet due"), PREF_TODO_HIDE_NOT_DUE, vbox_todo, cb_checkbox_set_pref); /* record todo completion date check box */ add_checkbutton(_("Record Completion Date"), PREF_TODO_COMPLETION_DATE, vbox_todo, cb_checkbox_set_pref); #ifdef ENABLE_MANANA /* Use Manana check box */ add_checkbutton(_("Use Manana database"), PREF_MANANA_MODE, vbox_todo, cb_checkbox_set_pref); #endif /* Default Number of Days Due for ToDos */ hbox_temp = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox_todo), hbox_temp, FALSE, FALSE, 0); add_checkbutton(_("Use default number of days due"), PREF_TODO_DAYS_DUE, hbox_temp, cb_checkbox_set_pref); todo_days_due_entry = gtk_entry_new_with_max_length(MAX_PREF_LEN - 2); entry_set_multiline_truncate(GTK_ENTRY(todo_days_due_entry), TRUE); get_pref(PREF_TODO_DAYS_TILL_DUE, &ivalue, NULL); temp[0]='\0'; g_snprintf(temp, sizeof(temp), "%ld", ivalue); gtk_entry_set_text(GTK_ENTRY(todo_days_due_entry), temp); gtk_box_pack_start(GTK_BOX(hbox_temp), todo_days_due_entry, FALSE, FALSE, 0); gtk_signal_connect(GTK_OBJECT(todo_days_due_entry), "changed", GTK_SIGNAL_FUNC(cb_checkbox_todo_days_till_due), NULL); gtk_widget_show_all(hbox_temp); /**********************************************************************/ /* Memo preference tab */ /* Radio box to choose which database to use: Memo/Memos/Memo32 */ group = NULL; radio_button_memo_version[0] = gtk_radio_button_new_with_label(group, _("Use Memo database (Palm OS < 5.2.1)")); group = gtk_radio_button_group(GTK_RADIO_BUTTON(radio_button_memo_version[0])); radio_button_memo_version[1] = gtk_radio_button_new_with_label(group, _("Use Memos database (Palm OS > 5.2)")); group = gtk_radio_button_group(GTK_RADIO_BUTTON(radio_button_memo_version[1])); radio_button_memo_version[2] = gtk_radio_button_new_with_label(group, _("Use Memo32 database (pedit32)")); group = gtk_radio_button_group(GTK_RADIO_BUTTON(radio_button_memo_version[2])); gtk_box_pack_start(GTK_BOX(vbox_memo), radio_button_memo_version[0], FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox_memo), radio_button_memo_version[1], FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox_memo), radio_button_memo_version[2], FALSE, FALSE, 0); gtk_signal_connect(GTK_OBJECT(radio_button_memo_version[0]), "pressed", GTK_SIGNAL_FUNC(cb_radio_set_pref), GINT_TO_POINTER((PREF_MEMO_VERSION<<16)|0)); gtk_signal_connect(GTK_OBJECT(radio_button_memo_version[1]), "pressed", GTK_SIGNAL_FUNC(cb_radio_set_pref), GINT_TO_POINTER((PREF_MEMO_VERSION<<16)|1)); gtk_signal_connect(GTK_OBJECT(radio_button_memo_version[2]), "pressed", GTK_SIGNAL_FUNC(cb_radio_set_pref), GINT_TO_POINTER((PREF_MEMO_VERSION<<16)|2)); get_pref(PREF_MEMO_VERSION, &ivalue, NULL); switch (ivalue) { case 0: default: gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio_button_memo_version[0]), TRUE); break; case 1: gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio_button_memo_version[1]), TRUE); break; case 2: gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio_button_memo_version[2]), TRUE); break; } hseparator = gtk_hseparator_new(); gtk_box_pack_start(GTK_BOX(vbox_memo), hseparator, FALSE, FALSE, 3); /* External Editor Command to execute */ hbox_temp = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox_memo), hbox_temp, FALSE, FALSE, 0); label = gtk_label_new(_("External Editor")); gtk_box_pack_start(GTK_BOX(hbox_temp), label, FALSE, FALSE, 0); ext_editor_entry = gtk_entry_new_with_max_length(MAX_PREF_LEN - 2); get_pref(PREF_EXTERNAL_EDITOR, NULL, &cstr); if (cstr) { gtk_entry_set_text(GTK_ENTRY(ext_editor_entry), cstr); } gtk_signal_connect(GTK_OBJECT(ext_editor_entry), "changed", GTK_SIGNAL_FUNC(cb_text_entry), GINT_TO_POINTER(PREF_EXTERNAL_EDITOR)); gtk_box_pack_start(GTK_BOX(hbox_temp), ext_editor_entry, TRUE, TRUE, 1); label = gtk_label_new(_("Use Ctrl-E inside a memo to launch external editor for memo text")); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.0); gtk_box_pack_start(GTK_BOX(vbox_memo), label, FALSE, FALSE, 0); /**********************************************************************/ /* Alarms preference tab */ /* Open alarm windows check box */ add_checkbutton(_("Open alarm windows for appointment reminders"), PREF_OPEN_ALARM_WINDOWS, vbox_alarms, cb_checkbox_set_pref); /* Execute alarm command check box */ add_checkbutton(_("Execute this command"), PREF_DO_ALARM_COMMAND, vbox_alarms, cb_checkbox_set_pref); /* Shell warning label */ label = gtk_label_new(_("WARNING: executing arbitrary shell commands can be dangerous!!!")); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.0); gtk_box_pack_start(GTK_BOX(vbox_alarms), label, FALSE, FALSE, 0); /* Alarm Command to execute */ hbox_temp = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox_alarms), hbox_temp, FALSE, FALSE, 0); label = gtk_label_new(_("Alarm Command")); gtk_box_pack_start(GTK_BOX(hbox_temp), label, FALSE, FALSE, 10); alarm_command_entry = gtk_entry_new_with_max_length(MAX_PREF_LEN - 2); get_pref(PREF_ALARM_COMMAND, NULL, &cstr); if (cstr) { gtk_entry_set_text(GTK_ENTRY(alarm_command_entry), cstr); } gtk_signal_connect(GTK_OBJECT(alarm_command_entry), "changed", GTK_SIGNAL_FUNC(cb_text_entry), GINT_TO_POINTER(PREF_ALARM_COMMAND)); gtk_box_pack_start(GTK_BOX(hbox_temp), alarm_command_entry, FALSE, FALSE, 0); label = gtk_label_new(_("%t is replaced with the alarm time")); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.0); gtk_box_pack_start(GTK_BOX(vbox_alarms), label, FALSE, FALSE, 0); label = gtk_label_new(_("%d is replaced with the alarm date")); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.0); gtk_box_pack_start(GTK_BOX(vbox_alarms), label, FALSE, FALSE, 0); #ifdef ENABLE_ALARM_SHELL_DANGER label = gtk_label_new(_("%D is replaced with the alarm description")); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.0); gtk_box_pack_start(GTK_BOX(vbox_alarms), label, FALSE, FALSE, 0); label = gtk_label_new(_("%N is replaced with the alarm note")); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.0); gtk_box_pack_start(GTK_BOX(vbox_alarms), label, FALSE, FALSE, 0); #else label = gtk_label_new(_("%D (description substitution) is disabled in this build")); gtk_widget_set_sensitive(label, FALSE); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); gtk_box_pack_start(GTK_BOX(vbox_alarms), label, FALSE, FALSE, 0); label = gtk_label_new(_("%N (note substitution) is disabled in this build")); gtk_widget_set_sensitive(label, FALSE); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); gtk_box_pack_start(GTK_BOX(vbox_alarms), label, FALSE, FALSE, 0); #endif /**********************************************************************/ /* Conduits preference tab */ /* Sync datebook check box */ add_checkbutton(_("Sync datebook"), PREF_SYNC_DATEBOOK, vbox_conduits, cb_checkbox_set_pref); /* Sync address check box */ add_checkbutton(_("Sync address"), PREF_SYNC_ADDRESS, vbox_conduits, cb_checkbox_set_pref); /* Sync todo check box */ add_checkbutton(_("Sync todo"), PREF_SYNC_TODO, vbox_conduits, cb_checkbox_set_pref); /* Sync memo check box */ add_checkbutton(_("Sync memo"), PREF_SYNC_MEMO, vbox_conduits, cb_checkbox_set_pref); #ifdef ENABLE_MANANA /* Show sync Manana check box */ add_checkbutton(_("Sync Manana"), PREF_SYNC_MANANA, vbox_conduits, cb_checkbox_set_pref); #endif get_pref(PREF_CHAR_SET, &ivalue, NULL); if (ivalue == CHAR_SET_JAPANESE || ivalue == CHAR_SET_SJIS_UTF) { /* Show use Japanese Kana extention check box */ add_checkbutton(_("Use J-OS (Not Japanese PalmOS:WorkPad/CLIE)"), PREF_USE_JOS, vbox_settings, cb_checkbox_set_pref); } #ifdef ENABLE_PLUGINS if (!skip_plugins) { plugin_list=NULL; plugin_list = get_plugin_list(); for (temp_list = plugin_list; temp_list; temp_list = temp_list->next) { Pplugin = (struct plugin_s *)temp_list->data; if (Pplugin) { /* Make a Sync checkbox for each plugin */ g_snprintf(temp, sizeof(temp), _("Sync %s (%s)"), Pplugin->name, Pplugin->full_path); checkbutton = gtk_check_button_new_with_label(temp); gtk_box_pack_start(GTK_BOX(vbox_conduits), checkbutton, FALSE, FALSE, 0); gtk_widget_show(checkbutton); if (Pplugin->sync_on) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton), TRUE); } gtk_signal_connect(GTK_OBJECT(checkbutton), "clicked", GTK_SIGNAL_FUNC(cb_sync_plugin), GINT_TO_POINTER(Pplugin->number)); } } } #endif /* Done button */ hbox_temp = gtk_hbutton_box_new(); gtk_button_box_set_layout(GTK_BUTTON_BOX (hbox_temp), GTK_BUTTONBOX_END); gtk_box_pack_start(GTK_BOX(vbox), hbox_temp, FALSE, FALSE, 1); button = gtk_button_new_from_stock(GTK_STOCK_OK); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_quit), window); gtk_box_pack_end(GTK_BOX(hbox_temp), button, FALSE, FALSE, 0); gtk_widget_show_all(window); } jpilot-1.8.1.2/dat.c0000644000175000017500000007660011524602776011042 00000000000000/* $Id: dat.c,v 1.28 2011-02-09 21:16:56 rousseau Exp $ */ /******************************************************************************* * dat.c * A module of J-Pilot http://jpilot.org * * Copyright (C) 2001-2002 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /* * Thanks to nseessle@mail.hh.provi.de * http://ourworld.compuserve.com/homepages/nseessle/frames/pilot/dat_e.htm * http://www.geocities.com/Heartland/Acres/3216/todo_dat.htm * Scott Leighton helphand@pacbell.net * * for their descriptions of the dat formats. */ /********************************* Includes ***********************************/ #include "config.h" #include #include #include #include #include "i18n.h" #include "utils.h" #include "log.h" /********************************* Constants **********************************/ #define DAT_STATUS_ADD 0x01 #define DAT_STATUS_UPDATE 0x02 #define DAT_STATUS_DELETE 0x04 #define DAT_STATUS_PENDING 0x08 #define DAT_STATUS_ARCHIVE 0x80 /* I made this one up for a bit to store the private flag */ #define DAT_STATUS_PRIVATE 0x10 /* Repeat types */ #define DAILY 1 #define WEEKLY 2 #define MONTHLY_BY_DAY 3 #define MONTHLY_BY_DATE 4 #define YEARLY_BY_DATE 5 #define YEARLY_BY_DAY 6 /* DAT field types */ #define DAT_TYPE_INTEGER 1 #define DAT_TYPE_CSTRING 5 #define DAT_TYPE_DATE 3 #define DAT_TYPE_BOOLEAN 6 #define DAT_TYPE_BITFLAG 7 #define DAT_TYPE_REPEAT 8 /* #define JPILOT_DEBUG */ /****************************** Prototypes ************************************/ #ifdef JPILOT_DEBUG static int print_date(int palm_date); #endif struct field { int type; int i; long date; char *str; }; /****************************** Main Code *************************************/ static int x86_short(unsigned char *str) { return str[1] * 0x100 + str[0]; } static long x86_long(unsigned char *str) { return str[3]*0x1000000 + str[2]*0x0010000 + str[1]*0x0000100 + str[0]; } /* Returns the length of the CString read */ static int get_CString(FILE *in, char **PStr) { unsigned char size1; unsigned char size2[2]; int size; fread(&size1, 1, 1, in); if (size1==0) { *PStr = NULL; return 0; } if (size1==0xFF) { fread(size2, 2, 1, in); size = x86_short(size2); #ifdef JPILOT_DEBUG printf("BIG STRING size=%d\n", size); #endif } else { size=size1; } /* malloc an extra byte just to be safe */ *PStr=malloc(size+2); fread(*PStr, size, 1, in); (*PStr)[size]='\0'; return size; } static int get_categories(FILE *in, struct CategoryAppInfo *ai) { unsigned char str_long[4]; char *PStr; long count; int i; /* Get the category count */ fread(str_long, 4, 1, in); count = x86_long(str_long); for (i=0; i<16; i++) { ai->renamed[i]=0; ai->name[i][0]=0; ai->ID[i]=0; } ai->lastUniqueID=0; for (i=0; iID[i] = x86_long(str_long); /* category dirty flag */ fread(str_long, 4, 1, in); /* long category name */ get_CString(in, &PStr); strncpy(ai->name[i], PStr, 16); ai->name[i][15]='\0'; free(PStr); /* short category name */ get_CString(in, &PStr); free(PStr); } return count; } static int get_repeat(FILE *in, struct Appointment *appt) { time_t t = 0; struct tm *now; unsigned char str_long[4]; unsigned char str_short[2]; int l, s, i, bit; char *PStr; int repeat_type; fread(str_short, 2, 1, in); s = x86_short(str_short); #ifdef JPILOT_DEBUG printf(" repeat entry follows:\n"); printf("%d exceptions\n", s); #endif if (!appt) return EXIT_FAILURE; appt->exception=NULL; memset(&(appt->repeatEnd), 0, sizeof(appt->repeatEnd)); appt->exceptions=s; if (s>0) { appt->exception=malloc(sizeof(struct tm) * s); if (!(appt->exceptions)) { jp_logf(JP_LOG_WARN, "get_repeat(): %s\n", _("Out of memory")); } } for (i=0; iexception[i]), now, sizeof(struct tm)); } #ifdef JPILOT_DEBUG printf("date_exception_entry: "); print_date(l); #endif } fread(str_short, 2, 1, in); s = x86_short(str_short); #ifdef JPILOT_DEBUG printf("0x%x repeat event flag\n", s); #endif if (s==0x0000) { appt->repeatType=calendarRepeatNone; return EXIT_SUCCESS; } if (s==0xFFFF) { /* Class entry here */ fread(str_short, 2, 1, in); s = x86_short(str_short); #ifdef JPILOT_DEBUG printf("constant of 1 = %d\n", s); #endif fread(str_short, 2, 1, in); s = x86_short(str_short); #ifdef JPILOT_DEBUG printf("class name length = %d\n", s); #endif PStr = malloc(s+1); fread(PStr, s, 1, in); PStr[s]='\0'; #ifdef JPILOT_DEBUG printf("class = [%s]\n", PStr); #endif free(PStr); } fread(str_long, 4, 1, in); repeat_type = x86_long(str_long); appt->repeatType=repeat_type; #ifdef JPILOT_DEBUG printf("repeatType=%d ", repeat_type); switch (repeat_type) { case DAILY: printf("Daily\n"); break; case WEEKLY: printf("Weekly\n"); break; case MONTHLY_BY_DAY: printf("MonthlyByDay\n"); break; case MONTHLY_BY_DATE: printf("Monthly By Date\n"); break; case YEARLY_BY_DATE: printf("Yearly By Date\n"); break; case YEARLY_BY_DAY: printf("Yearly By Day\n"); break; default: printf("unknown repeat type %d\n", l); } #endif fread(str_long, 4, 1, in); l = x86_long(str_long); #ifdef JPILOT_DEBUG printf("Interval = %d\n", l); #endif appt->repeatFrequency=l; fread(str_long, 4, 1, in); l = x86_long(str_long); { t = l; now = localtime(&t); memcpy(&(appt->repeatEnd), now, sizeof(struct tm)); } if (t==0x749e77bf) { appt->repeatForever=TRUE; } else { appt->repeatForever=FALSE; } #ifdef JPILOT_DEBUG printf("repeatEnd: 0x%x -> ", l); print_date(l); #endif fread(str_long, 4, 1, in); l = x86_long(str_long); appt->repeatWeekstart=l; #ifdef JPILOT_DEBUG printf("First Day of Week = %d\n", l); #endif switch (repeat_type) { case DAILY: fread(str_long, 4, 1, in); l = x86_long(str_long); #ifdef JPILOT_DEBUG printf("Day Index = %d\n", l); #endif break; case WEEKLY: fread(str_long, 4, 1, in); l = x86_long(str_long); #ifdef JPILOT_DEBUG printf("Day Index = %d\n", l); #endif fread(str_long, 1, 1, in); for (i=0, bit=1; i<7; i++, bit=bit<<1) { appt->repeatDays[i]=( str_long[0] & bit ); } #ifdef JPILOT_DEBUG printf("Days Mask = %x\n", str_long[0]); #endif break; case MONTHLY_BY_DAY: fread(str_long, 4, 1, in); s = x86_long(str_long); #ifdef JPILOT_DEBUG printf("Day Index = %d\n", l); #endif fread(str_long, 4, 1, in); l = x86_long(str_long); #ifdef JPILOT_DEBUG printf("Week Index = %d\n", l); #endif appt->repeatDay = 7*l + s; break; case MONTHLY_BY_DATE: fread(str_long, 4, 1, in); l = x86_long(str_long); #ifdef JPILOT_DEBUG printf("Day Number = %d\n", l); #endif break; case YEARLY_BY_DATE: fread(str_long, 4, 1, in); l = x86_long(str_long); #ifdef JPILOT_DEBUG printf("Day Number = %d\n", l); #endif fread(str_long, 4, 1, in); l = x86_long(str_long); #ifdef JPILOT_DEBUG printf("Month Index = %d\n", l); #endif break; case YEARLY_BY_DAY: break; default: #ifdef JPILOT_DEBUG printf("unknown repeat type2 %d\n", l); #endif break; } return EXIT_SUCCESS; } #ifdef JPILOT_DEBUG static int print_date(int palm_date) { time_t t; struct tm *now; char text[256]; t = palm_date; /* - 20828448800; */ now = localtime(&t); strftime(text, sizeof(text), "%02m/%02d/%Y %02H:%02M:%02S", now); printf("%s\n", text); return EXIT_SUCCESS; } #endif #ifdef JPILOT_DEBUG static int print_field(struct field *f) { switch (f->type) { case DAT_TYPE_INTEGER: printf("%d\n", f->i); break; case DAT_TYPE_CSTRING: if (f->str) printf("%s\n", f->str); else printf("\n"); break; case DAT_TYPE_BOOLEAN: if (f->i) { printf("True\n"); } else { printf("False\n"); } break; case DAT_TYPE_DATE: print_date(f->date); break; case DAT_TYPE_REPEAT: printf("Repeat Type\n"); break; default: printf("print_field: unknown type = %d\n", f->type); break; } return EXIT_SUCCESS; } #endif static int get_field(FILE *in, struct field *f) { unsigned char str_long[4]; long type; char *PStr; fread(str_long, 4, 1, in); type = x86_long(str_long); f->type=type; f->str=NULL; switch (type) { case DAT_TYPE_INTEGER: fread(str_long, 4, 1, in); f->i = x86_long(str_long); break; case DAT_TYPE_CSTRING: fseek(in, 4, SEEK_CUR); /* padding */ get_CString(in, &PStr); f->str = PStr; break; case DAT_TYPE_BOOLEAN: fread(str_long, 4, 1, in); f->i = x86_long(str_long); break; case DAT_TYPE_DATE: fread(str_long, 4, 1, in); f->date = x86_long(str_long); break; case DAT_TYPE_BITFLAG: /* I currently do not know how to read this datatype */ break; case DAT_TYPE_REPEAT: /* The calling function needs to call this */ /* get_repeat(in, NULL); */ break; default: jp_logf(JP_LOG_WARN, "get_field(): %s %ld\n", _("unknown type ="), type); break; } return EXIT_SUCCESS; } int dat_check_if_dat_file(FILE *in) { char version[6]; memset(version, 0, sizeof(version)); fseek(in, 0, SEEK_SET); /* Version */ fread(version, 4, 1, in); fseek(in, 0, SEEK_SET); jp_logf(JP_LOG_DEBUG, "dat_check_if_dat_file(): version = [%c%c%d%d]\n", version[3],version[2],version[1],version[0]); if ((version[3]=='D') && (version[2]=='B') && (version[1]==1) && (version[0]==0)) { return DAT_DATEBOOK_FILE; } if ((version[3]=='A') && (version[2]=='B') && (version[1]==1) && (version[0]==0)) { return DAT_ADDRESS_FILE; } if ((version[3]=='T') && (version[2]=='D') && (version[1]==1) && (version[0]==0)) { return DAT_TODO_FILE; } if ((version[3]=='M') && (version[2]=='P') && (version[1]==1) && (version[0]==0)) { return DAT_MEMO_FILE; } return EXIT_SUCCESS; } static int dat_read_header(FILE *in, int expected_field_count, char *schema, struct CategoryAppInfo *ai, int *schema_count, int *field_count, long *rec_count) { int i; unsigned char filler[100]; char version[4]; char *PStr; unsigned char str_long[4]; fseek(in, 0, SEEK_SET); /* Version */ fread(version, 4, 1, in); jp_logf(JP_LOG_DEBUG, "version = [%c%c%d%d]\n", version[3],version[2],version[1],version[0]); /* Full file path name */ get_CString(in, &PStr); jp_logf(JP_LOG_DEBUG, "path:[%s]\n",PStr); free(PStr); /* Show Header */ get_CString(in, &PStr); jp_logf(JP_LOG_DEBUG, "show header:[%s]\n",PStr); free(PStr); /* Next free category ID */ fread(filler, 4, 1, in); /* Categories */ get_categories(in, ai); #ifdef JPILOT_DEBUG for (i=0; i<16; i++) { printf("%d [%s]\n", ai->ID[i], ai->name[i]); } #endif /* Schema resource ID */ fread(filler, 4, 1, in); /* Schema fields per row */ fread(filler, 4, 1, in); *field_count=x86_long(filler); if (*field_count != expected_field_count) { jp_logf(JP_LOG_WARN, _("fields per row count != %d, unknown format\n"), expected_field_count); return EXIT_FAILURE; } /* Schema record ID position */ fread(filler, 4, 1, in); /* Schema record status position */ fread(filler, 4, 1, in); /* Schema placement position */ fread(filler, 4, 1, in); /* Schema fields count */ fread(filler, 2, 1, in); *field_count = x86_short(filler); if (*field_count != expected_field_count) { jp_logf(JP_LOG_WARN, _("field count != %d, unknown format\n"), expected_field_count); return EXIT_FAILURE; } /* Schema fields */ fread(filler, (*field_count)*2, 1, in); if (memcmp(filler, schema, (*field_count)*2)) { jp_logf(JP_LOG_WARN, _("Unknown format, file has wrong schema\n")); jp_logf(JP_LOG_WARN, _("File schema is:")); for (i=0; i<(*field_count)*2; i++) { jp_logf(JP_LOG_WARN, " %02d\n", (char)filler[i]); } jp_logf(JP_LOG_WARN, _("It should be:")); for (i=0; i<(*field_count)*2; i++) { jp_logf(JP_LOG_WARN, " %02d\n", (char)schema[i]); } return EXIT_FAILURE; } /* Get record count */ fread(str_long, 4, 1, in); if ((*field_count)) { *rec_count = x86_long(str_long) / (*field_count); } #ifdef JPILOT_DEBUG printf("Record Count = %ld\n", *rec_count); #endif return EXIT_SUCCESS; } int dat_get_appointments(FILE *in, AppointmentList **alist, struct CategoryAppInfo *ai) { #ifdef JPILOT_DEBUG struct field hack_f; #endif int ret, i, j; struct field fa[28]; int schema_count, field_count; long rec_count; AppointmentList *temp_alist; AppointmentList *last_alist; time_t t; struct tm *now; /* Should be 1, 1, 1, 3, 1, 5, 1, 5, 6, 6, 1, 6, 1, 1, 8 */ char schema[30]={ DAT_TYPE_INTEGER,0, DAT_TYPE_INTEGER,0, DAT_TYPE_INTEGER,0, DAT_TYPE_DATE,0, DAT_TYPE_INTEGER,0, DAT_TYPE_CSTRING,0, DAT_TYPE_INTEGER,0, DAT_TYPE_CSTRING,0, DAT_TYPE_BOOLEAN,0, DAT_TYPE_BOOLEAN,0, DAT_TYPE_INTEGER,0, DAT_TYPE_BOOLEAN,0, DAT_TYPE_INTEGER,0, DAT_TYPE_INTEGER,0, DAT_TYPE_REPEAT,0 }; #ifdef JPILOT_DEBUG char *rec_fields[]={ "Record ID", "Status field", "Position" }; char *field_names[]={ "Start Time", "End Time", "Description", "Duration", "Note", "Untimed", "Private", "Category", "Alarm Set", "Alarm Advance Units", "Alarm Advance Type", "Repeat Event" }; #endif jp_logf(JP_LOG_DEBUG, "dat_get_appointments\n"); if (!alist) return EXIT_SUCCESS; *alist=NULL; ret = dat_read_header(in, 15, schema, ai, &schema_count, &field_count, &rec_count); if (ret<0) return ret; /* Get records */ last_alist=*alist; #ifdef JPILOT_DEBUG printf("---------- Records ----------\n"); #endif for (i=0; imappt.appt), 0, sizeof(temp_alist->mappt.appt)); temp_alist->next=NULL; temp_alist->app_type=DATEBOOK; /* Record ID */ /* Status Field */ /* Position */ for (j=0; j<3; j++) { get_field(in, &(fa[j])); #ifdef JPILOT_DEBUG printf("rec field %d %s: ", j, rec_fields[j]); print_field(&(fa[j])); #endif if (fa[j].type!=schema[j*2]) { jp_logf(JP_LOG_WARN, _("%s:%d Record %d, field %d: Invalid type. Expected %d, found %d\n"), __FILE__, __LINE__, i+1, j+3, schema[j*2], fa[j].type); jp_logf(JP_LOG_WARN, _("read of file terminated\n")); free(temp_alist); return EXIT_FAILURE; } } /* Get Fields */ for (j=0; j<12; j++) { get_field(in, &(fa[j])); #ifdef JPILOT_DEBUG printf("field %d %s: ", j, field_names[j]); print_field(&(fa[j])); if (j==1) { hack_f.type=DAT_TYPE_DATE; hack_f.date=fa[j].i; printf(" "); print_field(&hack_f); } #endif if (fa[j].type!=schema[j*2+6]) { jp_logf(JP_LOG_WARN, _("%s:%d Record %d, field %d: Invalid type. Expected %d, found %d\n"), __FILE__, __LINE__, i+1, j+3, schema[j*2+6], fa[j].type); jp_logf(JP_LOG_WARN, _("read of file terminated\n")); free(temp_alist); return EXIT_FAILURE; } if (fa[j].type==DAT_TYPE_REPEAT) { get_repeat(in, &(temp_alist->mappt.appt)); } } /* Start Time */ t = fa[0].date; now = localtime(&t); memcpy(&(temp_alist->mappt.appt.begin), now, sizeof(struct tm)); /* End Time */ t = fa[1].i; now = localtime(&t); memcpy(&(temp_alist->mappt.appt.end), now, sizeof(struct tm)); /* Description */ if (fa[2].str) { temp_alist->mappt.appt.description=fa[2].str; } else { temp_alist->mappt.appt.description=strdup(""); } /* Duration */ /* what is duration? (repeatForever?) */ /* Note */ if (fa[4].str) { temp_alist->mappt.appt.note=fa[4].str; } else { temp_alist->mappt.appt.note=strdup(""); } /* Untimed */ temp_alist->mappt.appt.event=fa[5].i; /* Private */ temp_alist->mappt.attrib = 0; if (fa[6].i) { temp_alist->mappt.attrib |= DAT_STATUS_PRIVATE; } /* Category */ temp_alist->mappt.unique_id = fa[7].i; if (temp_alist->mappt.unique_id > 15) { temp_alist->mappt.unique_id = 15; } if (temp_alist->mappt.unique_id < 0) { temp_alist->mappt.unique_id = 0; } /* Alarm Set */ temp_alist->mappt.appt.alarm=fa[8].i; /* Alarm Advance Units */ temp_alist->mappt.appt.advance=fa[9].i; /* Alarm Advance Type */ temp_alist->mappt.appt.advanceUnits=fa[10].i; /* Append onto the end of the list */ if (last_alist) { last_alist->next=temp_alist; last_alist=temp_alist; } else { last_alist=temp_alist; *alist=last_alist; } } return EXIT_SUCCESS; } int dat_get_addresses(FILE *in, AddressList **addrlist, struct CategoryAppInfo *ai) { int ret, i, j, k; struct field fa[28]; int schema_count, field_count; long rec_count; AddressList *temp_addrlist; AddressList *last_addrlist; int dat_order[19]={ 0,1,3,5,7,9,11,13,14,15,16,17,18,2,22,23,24,25,19 }; /* Should be 1, 1, 1, 5, 5, 5, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 5, 5, 5, 5, 5, 5, 6, 1, 5, 5, 5, 5, 1 */ char schema[60]={ DAT_TYPE_INTEGER,0, DAT_TYPE_INTEGER,0, DAT_TYPE_INTEGER,0, DAT_TYPE_CSTRING,0, DAT_TYPE_CSTRING,0, DAT_TYPE_CSTRING,0, DAT_TYPE_CSTRING,0, DAT_TYPE_INTEGER,0, DAT_TYPE_CSTRING,0, DAT_TYPE_INTEGER,0, DAT_TYPE_CSTRING,0, DAT_TYPE_INTEGER,0, DAT_TYPE_CSTRING,0, DAT_TYPE_INTEGER,0, DAT_TYPE_CSTRING,0, DAT_TYPE_INTEGER,0, DAT_TYPE_CSTRING,0, DAT_TYPE_CSTRING,0, DAT_TYPE_CSTRING,0, DAT_TYPE_CSTRING,0, DAT_TYPE_CSTRING,0, DAT_TYPE_CSTRING,0, DAT_TYPE_CSTRING,0, DAT_TYPE_BOOLEAN,0, DAT_TYPE_INTEGER,0, DAT_TYPE_CSTRING,0, DAT_TYPE_CSTRING,0, DAT_TYPE_CSTRING,0, DAT_TYPE_CSTRING,0, DAT_TYPE_INTEGER,0 }; #ifdef JPILOT_DEBUG char *rec_fields[]={ "Record ID", "Status field", "Position" }; char *field_names[]={ "Last Name", "First Name", "Title", "Company", "Phone1 Label", "Phone1", "Phone2 Label", "Phone2", "Phone3 Label", "Phone3", "Phone4 Label", "Phone4", "Phone5 Label", "Phone5", "Address", "City", "State", "Zip", "Country", "Note", "Private", "Category", "Custom1", "Custom2", "Custom3", "Custom4", "Display Phone" }; #endif jp_logf(JP_LOG_DEBUG, "dat_get_addresses\n"); if (!addrlist) return EXIT_SUCCESS; *addrlist=NULL; ret = dat_read_header(in, 30, schema, ai, &schema_count, &field_count, &rec_count); if (ret<0) return ret; /* Get records */ last_addrlist=*addrlist; #ifdef JPILOT_DEBUG printf("---------- Records ----------\n"); #endif for (i=0; inext=NULL; temp_addrlist->app_type=ADDRESS; #ifdef JPILOT_DEBUG printf("----- record %d -----\n", i+1); #endif /* Record ID */ /* Status Field */ /* Position */ for (j=0; j<3; j++) { get_field(in, &(fa[j])); #ifdef JPILOT_DEBUG printf("rec field %d %s: ", j, rec_fields[j]); print_field(&(fa[j])); #endif if (fa[j].type!=schema[j*2]) { jp_logf(JP_LOG_WARN, _("%s:%d Record %d, field %d: Invalid type. Expected %d, found %d\n"), __FILE__, __LINE__, i+1, j+3, schema[j*2], fa[j].type); jp_logf(JP_LOG_WARN, _("read of file terminated\n")); free(temp_addrlist); return EXIT_FAILURE; } } /* Get Fields */ for (j=0; j<27; j++) { get_field(in, &(fa[j])); #ifdef JPILOT_DEBUG printf("field %d %s: ", j, field_names[j]); print_field(&(fa[j])); #endif if (fa[j].type!=schema[j*2+6]) { jp_logf(JP_LOG_WARN, _("%s:%d Record %d, field %d: Invalid type. Expected %d, found %d\n"), __FILE__, __LINE__, i+1, j+3, schema[j*2+6], fa[j].type); jp_logf(JP_LOG_WARN, _("read of file terminated\n")); free(temp_addrlist); return EXIT_FAILURE; } } for (k=0; k<19; k++) { temp_addrlist->maddr.addr.entry[k]=fa[dat_order[k]].str; } temp_addrlist->maddr.addr.phoneLabel[0] = fa[4].i; temp_addrlist->maddr.addr.phoneLabel[1] = fa[6].i; temp_addrlist->maddr.addr.phoneLabel[2] = fa[8].i; temp_addrlist->maddr.addr.phoneLabel[3] = fa[10].i; temp_addrlist->maddr.addr.phoneLabel[4] = fa[12].i; /* Private */ temp_addrlist->maddr.attrib = 0; if (fa[20].i) { temp_addrlist->maddr.attrib |= DAT_STATUS_PRIVATE; } /* Category */ temp_addrlist->maddr.unique_id = fa[21].i; if (temp_addrlist->maddr.unique_id > 15) { temp_addrlist->maddr.unique_id = 15; } if (temp_addrlist->maddr.unique_id < 0) { temp_addrlist->maddr.unique_id = 0; } /* Show phone in list */ temp_addrlist->maddr.addr.showPhone = fa[26].i - 1; for (k=0; k<19; k++) { if (temp_addrlist->maddr.addr.entry[k]==NULL) { temp_addrlist->maddr.addr.entry[k]=strdup(""); } } /* Append onto the end of the list */ if (last_addrlist) { last_addrlist->next=temp_addrlist; last_addrlist=temp_addrlist; } else { last_addrlist=temp_addrlist; *addrlist=last_addrlist; } } return EXIT_SUCCESS; } int dat_get_todos(FILE *in, ToDoList **todolist, struct CategoryAppInfo *ai) { int ret, i, j; struct field fa[10]; int schema_count, field_count; long rec_count; time_t t; struct tm *now; ToDoList *temp_todolist; ToDoList *last_todolist; /* Should be 1, 1, 1, 5, 3, 6, 1, 6, 1, 5 */ char schema[20]={ DAT_TYPE_INTEGER,0, DAT_TYPE_INTEGER,0, DAT_TYPE_INTEGER,0, DAT_TYPE_CSTRING,0, DAT_TYPE_DATE,0, DAT_TYPE_BOOLEAN,0, DAT_TYPE_INTEGER,0, DAT_TYPE_BOOLEAN,0, DAT_TYPE_INTEGER,0, DAT_TYPE_CSTRING,0 }; #ifdef JPILOT_DEBUG char *rec_fields[]={ "Record ID", "Status field", "Position" }; char *field_names[]={ "Description", "Due Date", "Completed", "Priority", "Private", "Category", "Note" }; #endif jp_logf(JP_LOG_DEBUG, "dat_get_todos\n"); if (!todolist) return EXIT_SUCCESS; *todolist=NULL; ret = dat_read_header(in, 10, schema, ai, &schema_count, &field_count, &rec_count); if (ret<0) return ret; /* Get records */ last_todolist=*todolist; #ifdef JPILOT_DEBUG printf("---------- Records ----------\n"); #endif for (i=0; inext=NULL; temp_todolist->app_type=TODO; #ifdef JPILOT_DEBUG printf("----- record %d -----\n", i+1); #endif /* Record ID */ /* Status Field */ /* Position */ for (j=0; j<3; j++) { get_field(in, &(fa[j])); #ifdef JPILOT_DEBUG printf("rec field %d %s: ", j, rec_fields[j]); print_field(&(fa[j])); #endif if (fa[j].type!=schema[j*2]) { jp_logf(JP_LOG_WARN, _("%s:%d Record %d, field %d: Invalid type. Expected %d, found %d\n"), __FILE__, __LINE__, i+1, j+3, schema[j*2], fa[j].type); jp_logf(JP_LOG_WARN, _("read of file terminated\n")); free(temp_todolist); return EXIT_FAILURE; } } /* Get Fields */ for (j=0; j<7; j++) { get_field(in, &(fa[j])); #ifdef JPILOT_DEBUG printf("field %d %s: ", j, field_names[j]); print_field(&(fa[j])); #endif if (fa[j].type!=schema[j*2+6]) { jp_logf(JP_LOG_WARN, _("%s:%d Record %d, field %d: Invalid type. Expected %d, found %d\n"), __FILE__, __LINE__, i+1, j+3, schema[j*2+6], fa[j].type); jp_logf(JP_LOG_WARN, _("read of file terminated\n")); free(temp_todolist); return EXIT_FAILURE; } } /* Description */ if (fa[0].str) { temp_todolist->mtodo.todo.description=fa[0].str; } else { temp_todolist->mtodo.todo.description=strdup(""); } /* Due Date */ if (fa[1].date==0x749E77BF) { temp_todolist->mtodo.todo.indefinite=1; memset(&(temp_todolist->mtodo.todo.due), 0, sizeof(temp_todolist->mtodo.todo.due)); } else { t = fa[1].date; now = localtime(&t); memcpy(&(temp_todolist->mtodo.todo.due), now, sizeof(struct tm)); temp_todolist->mtodo.todo.indefinite=0; } /* Completed */ temp_todolist->mtodo.todo.complete = (fa[2].i==0) ? 0 : 1; /* Priority */ if (fa[3].i < 0) fa[3].i=0; if (fa[3].i > 5) fa[3].i=5; temp_todolist->mtodo.todo.priority = fa[3].i; /* Private */ temp_todolist->mtodo.attrib = 0; if (fa[4].i) { temp_todolist->mtodo.attrib |= DAT_STATUS_PRIVATE; } /* Category */ /* Normally the category would go into 4 bits of the attrib. * They jumbled the attrib bits, so to make things easy I'll put it * here. */ if (fa[5].i < 0) fa[5].i=0; if (fa[5].i > 15) fa[5].i=15; temp_todolist->mtodo.unique_id = fa[5].i; /* Note */ if (fa[6].str) { temp_todolist->mtodo.todo.note=fa[6].str; } else { temp_todolist->mtodo.todo.note=strdup(""); } /* Append onto the end of the list */ if (last_todolist) { last_todolist->next=temp_todolist; last_todolist=temp_todolist; } else { last_todolist=temp_todolist; *todolist=last_todolist; } } return EXIT_SUCCESS; } int dat_get_memos(FILE *in, MemoList **memolist, struct CategoryAppInfo *ai) { int ret, i, j; struct field fa[10]; int schema_count, field_count; long rec_count; MemoList *temp_memolist; MemoList *last_memolist; char schema[12]={ DAT_TYPE_INTEGER,0, DAT_TYPE_INTEGER,0, DAT_TYPE_INTEGER,0, DAT_TYPE_CSTRING,0, DAT_TYPE_BOOLEAN,0, DAT_TYPE_INTEGER,0 }; #ifdef JPILOT_DEBUG char *rec_fields[]={ "Record ID", "Status field", "Position" }; char *field_names[]={ "Memo", "Private", "Category" }; #endif jp_logf(JP_LOG_DEBUG, "dat_get_memos\n"); if (!memolist) return EXIT_SUCCESS; *memolist=NULL; ret = dat_read_header(in, 6, schema, ai, &schema_count, &field_count, &rec_count); if (ret<0) return ret; /* Get records */ last_memolist=*memolist; #ifdef JPILOT_DEBUG printf("---------- Records ----------\n"); #endif for (i=0; inext=NULL; temp_memolist->app_type=MEMO; #ifdef JPILOT_DEBUG printf("----- record %d -----\n", i+1); #endif /* Record ID */ /* Status Field */ /* Position */ for (j=0; j<3; j++) { get_field(in, &(fa[j])); #ifdef JPILOT_DEBUG printf("rec field %d %s: ", j, rec_fields[j]); print_field(&(fa[j])); #endif if (fa[j].type!=schema[j*2]) { jp_logf(JP_LOG_WARN, _("%s:%d Record %d, field %d: Invalid type. Expected %d, found %d\n"), __FILE__, __LINE__, i+1, j+3, schema[j*2], fa[j].type); jp_logf(JP_LOG_WARN, _("read of file terminated\n")); free(temp_memolist); return EXIT_FAILURE; } } /* Get Fields */ for (j=0; j<3; j++) { get_field(in, &(fa[j])); #ifdef JPILOT_DEBUG printf("field %d %s: ", j, field_names[j]); print_field(&(fa[j])); #endif if (fa[j].type!=schema[j*2+6]) { jp_logf(JP_LOG_WARN, _("%s:%d Record %d, field %d: Invalid type. Expected %d, found %d\n"), __FILE__, __LINE__, i+1, j+3, schema[j*2+6], fa[j].type); jp_logf(JP_LOG_WARN, _("read of file terminated\n")); free(temp_memolist); return EXIT_FAILURE; } } /* Memo */ temp_memolist->mmemo.memo.text=fa[0].str; /* Private */ temp_memolist->mmemo.attrib = 0; if (fa[1].i) { temp_memolist->mmemo.attrib |= DAT_STATUS_PRIVATE; } /* Category */ /* Normally the category would go into 4 bits of the attrib. * They jumbled the attrib bits, so to make things easy I'll put it * here. */ if (fa[2].i < 0) fa[2].i=0; if (fa[2].i > 15) fa[2].i=15; temp_memolist->mmemo.unique_id = fa[2].i; /* Append onto the end of the list */ if (last_memolist) { last_memolist->next=temp_memolist; last_memolist=temp_memolist; } else { last_memolist=temp_memolist; *memolist=last_memolist; } } return EXIT_SUCCESS; } jpilot-1.8.1.2/Expense/0000755000175000017500000000000011702310021011555 500000000000000jpilot-1.8.1.2/Expense/expense.c0000644000175000017500000020422711524602776013346 00000000000000/* $Id: expense.c,v 1.78 2011-02-09 20:40:43 rousseau Exp $ */ /******************************************************************************* * expense.c * * This is a plugin for J-Pilot which implements an interface to the * Palm Expense application. * * Copyright (C) 1999 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #include #include #include #include #include #include #include #include #include "libplugin.h" #include "i18n.h" #include "utils.h" #include "prefs.h" #include "stock_buttons.h" /******************************************************************************/ /* Constants */ /******************************************************************************/ #define EXPENSE_TYPE 3 #define EXPENSE_PAYMENT 4 #define EXPENSE_CURRENCY 5 #define EXP_DATE_COLUMN 0 #define PLUGIN_MAX_INACTIVE_TIME 1 #define NUM_EXP_CAT_ITEMS 16 #define MAX_EXPENSE_TYPES 28 #define MAX_PAYMENTS 8 #define MAX_CURRENCYS 34 #define CONNECT_SIGNALS 400 #define DISCONNECT_SIGNALS 401 /* This was copied out of the pilot-link package. * I just like it here for quick reference. struct Expense { struct tm date; enum ExpenseType type; enum ExpensePayment payment; int currency; char * amount; char * vendor; char * city; char * attendees; char * note; }; */ /* This is my wrapper to the expense structure so that I can put * a few more fields in with it */ struct MyExpense { PCRecType rt; unsigned int unique_id; unsigned char attrib; struct Expense ex; struct MyExpense *next; }; struct currency_s { const char *country; int currency; }; /******************************************************************************/ /* Global vars */ /******************************************************************************/ static struct currency_s glob_currency[MAX_CURRENCYS]={ {N_("Australia"), 0}, {N_("Austria"), 1}, {N_("Belgium"), 2}, {N_("Brazil"), 3}, {N_("Canada"), 4}, {N_("Denmark"), 5}, {N_("EU (Euro)"), 133}, {N_("Finland"), 6}, {N_("France"), 7}, {N_("Germany"), 8}, {N_("Hong Kong"), 9}, {N_("Iceland"), 10}, {N_("India"), 24}, {N_("Indonesia"), 25}, {N_("Ireland"), 11}, {N_("Italy"), 12}, {N_("Japan"), 13}, {N_("Korea"), 26}, {N_("Luxembourg"), 14}, {N_("Malaysia"), 27}, {N_("Mexico"), 15}, {N_("Netherlands"), 16}, {N_("New Zealand"), 17}, {N_("Norway"), 18}, {N_("P.R.C."), 28}, {N_("Philippines"), 29}, {N_("Singapore"), 30}, {N_("Spain"), 19}, {N_("Sweden"), 20}, {N_("Switzerland"), 21}, {N_("Taiwan"), 32}, {N_("Thailand"), 31}, {N_("United Kingdom"), 22}, {N_("United States"), 23} }; /* Left-hand side of GUI */ static struct sorted_cats sort_l[NUM_EXP_CAT_ITEMS]; static GtkWidget *category_menu1; /* Need two extra slots for the ALL category and Edit Categories... */ static GtkWidget *exp_cat_menu_item1[NUM_EXP_CAT_ITEMS+2]; static GtkWidget *scrolled_window; static GtkWidget *clist; /* Right-hand side of GUI */ static GtkWidget *new_record_button; static GtkWidget *apply_record_button; static GtkWidget *add_record_button; static GtkWidget *delete_record_button; static GtkWidget *copy_record_button; static GtkWidget *table; static GtkWidget *category_menu2; static GtkWidget *exp_cat_menu_item2[NUM_EXP_CAT_ITEMS]; static GtkWidget *menu_payment; static GtkWidget *menu_item_payment[MAX_PAYMENTS]; static GtkWidget *menu_expense_type; static GtkWidget *menu_item_expense_type[MAX_EXPENSE_TYPES]; static GtkWidget *menu_currency; static GtkWidget *menu_item_currency[MAX_CURRENCYS]; static GtkWidget *spinner_mon, *spinner_day, *spinner_year; static GtkAdjustment *adj_mon, *adj_day, *adj_year; static GtkWidget *entry_amount; static GtkWidget *entry_vendor; static GtkWidget *entry_city; static GtkWidget *pane=NULL; #ifndef ENABLE_STOCK_BUTTONS static GtkAccelGroup *accel_group; #endif static GtkWidget *attendees; static GObject *attendees_buffer; static GtkWidget *note; static GObject *note_buffer; /* This is the category that is currently being displayed */ static int exp_category = CATEGORY_ALL; static time_t plugin_last_time = 0; static int record_changed; static int clist_row_selected; static int clist_col_selected; static int connected=0; static int glob_detail_type; static int glob_detail_payment; static int glob_detail_currency_pos; static struct MyExpense *glob_myexpense_list=NULL; /******************************************************************************/ /* Prototypes */ /******************************************************************************/ static void display_records(void); static void connect_changed_signals(int con_or_dis); static void cb_clist_selection(GtkWidget *clist, gint row, gint column, GdkEventButton *event, gpointer data); static void cb_add_new_record(GtkWidget *widget, gpointer data); static void cb_pulldown_menu(GtkWidget *item, unsigned int value); static int make_menu(const char *items[], int menu_index, GtkWidget **Poption_menu, GtkWidget *menu_items[]); static int expense_find(int unique_id); static void cb_category(GtkWidget *item, int selection); static int find_sort_cat_pos(int cat); static int find_menu_cat_pos(int cat); /******************************************************************************/ /* Start of code */ /******************************************************************************/ int plugin_unpack_cai_from_ai(struct CategoryAppInfo *cai, unsigned char *ai_raw, int len) { struct ExpenseAppInfo ai; int r; jp_logf(JP_LOG_DEBUG, "unpack_expense_cai_from_ai\n"); memset(&ai, 0, sizeof(ai)); r = unpack_ExpenseAppInfo(&ai, ai_raw, len); if (r <= 0) { jp_logf(JP_LOG_DEBUG, "unpack_ExpenseAppInfo failed %s %d\n", __FILE__, __LINE__); return EXIT_FAILURE; } memcpy(cai, &(ai.category), sizeof(struct CategoryAppInfo)); return EXIT_SUCCESS; } int plugin_pack_cai_into_ai(struct CategoryAppInfo *cai, unsigned char *ai_raw, int len) { struct ExpenseAppInfo ai; int r; jp_logf(JP_LOG_DEBUG, "pack_expense_cai_into_ai\n"); r = unpack_ExpenseAppInfo(&ai, ai_raw, len); if (r <= 0) { jp_logf(JP_LOG_DEBUG, "unpack_ExpenseAppInfo failed %s %d\n", __FILE__, __LINE__); return EXIT_FAILURE; } memcpy(&(ai.category), cai, sizeof(struct CategoryAppInfo)); r = pack_ExpenseAppInfo(&ai, ai_raw, len); if (r <= 0) { jp_logf(JP_LOG_DEBUG, "pack_ExpenseAppInfo failed %s %d\n", __FILE__, __LINE__); return EXIT_FAILURE; } return EXIT_SUCCESS; } static gint sort_compare_date(GtkCList *clist, gconstpointer ptr1, gconstpointer ptr2) { const GtkCListRow *row1, *row2; struct MyExpense *mexp1, *mexp2; time_t time1, time2; row1 = (const GtkCListRow *) ptr1; row2 = (const GtkCListRow *) ptr2; mexp1 = row1->data; mexp2 = row2->data; time1 = mktime(&(mexp1->ex.date)); time2 = mktime(&(mexp2->ex.date)); return(time1 - time2); } static void cb_clist_click_column(GtkWidget *clist, int column) { struct MyExpense *mexp; unsigned int unique_id; /* Remember currently selected item and return to it after sort * This is critically important because sorting without updating the * global variable clist_row_selected can cause data loss */ mexp = gtk_clist_get_row_data(GTK_CLIST(clist), clist_row_selected); if (mexp < (struct MyExpense *)CLIST_MIN_DATA) { unique_id = 0; } else { unique_id = mexp->unique_id; } /* Clicking on same column toggles ascending/descending sort */ if (clist_col_selected == column) { if (GTK_CLIST(clist)->sort_type == GTK_SORT_ASCENDING) { gtk_clist_set_sort_type(GTK_CLIST (clist), GTK_SORT_DESCENDING); } else { gtk_clist_set_sort_type(GTK_CLIST (clist), GTK_SORT_ASCENDING); } } else /* Always sort in ascending order when changing sort column */ { gtk_clist_set_sort_type(GTK_CLIST (clist), GTK_SORT_ASCENDING); } clist_col_selected = column; gtk_clist_set_sort_column(GTK_CLIST(clist), column); switch (column) { case EXP_DATE_COLUMN: /* Date column */ gtk_clist_set_compare_func(GTK_CLIST(clist), sort_compare_date); break; default: /* All other columns can use GTK default sort function */ gtk_clist_set_compare_func(GTK_CLIST(clist), NULL); break; } gtk_clist_sort(GTK_CLIST(clist)); /* Return to previously selected item */ expense_find(unique_id); } static void set_new_button_to(int new_state) { jp_logf(JP_LOG_DEBUG, "set_new_button_to new %d old %d\n", new_state, record_changed); if (record_changed==new_state) { return; } switch (new_state) { case MODIFY_FLAG: gtk_widget_show(copy_record_button); gtk_widget_show(apply_record_button); gtk_widget_hide(add_record_button); gtk_widget_hide(delete_record_button); gtk_widget_hide(new_record_button); break; case NEW_FLAG: gtk_widget_show(add_record_button); gtk_widget_hide(apply_record_button); gtk_widget_hide(copy_record_button); gtk_widget_hide(delete_record_button); gtk_widget_hide(new_record_button); break; case CLEAR_FLAG: gtk_widget_show(delete_record_button); gtk_widget_show(copy_record_button); gtk_widget_show(new_record_button); gtk_widget_hide(add_record_button); gtk_widget_hide(apply_record_button); break; default: return; } record_changed=new_state; } static void cb_record_changed(GtkWidget *widget, gpointer data) { jp_logf(JP_LOG_DEBUG, "cb_record_changed\n"); if (record_changed==CLEAR_FLAG) { connect_changed_signals(DISCONNECT_SIGNALS); if (GTK_CLIST(clist)->rows > 0) { set_new_button_to(MODIFY_FLAG); } else { set_new_button_to(NEW_FLAG); } } } static void connect_changed_signals(int con_or_dis) { int i; /* CONNECT */ if ((con_or_dis==CONNECT_SIGNALS) && (!connected)) { jp_logf(JP_LOG_DEBUG, "Expense: connect_changed_signals\n"); connected=1; for (i=0; iex)); next_mexp = mexp->next; free(mexp); } *PPmexp=NULL; } #define PLUGIN_MAJOR 1 #define PLUGIN_MINOR 1 /* This is a mandatory plugin function. */ void plugin_version(int *major_version, int *minor_version) { *major_version = PLUGIN_MAJOR; *minor_version = PLUGIN_MINOR; } static int static_plugin_get_name(char *name, int len) { jp_logf(JP_LOG_DEBUG, "Expense: plugin_get_name\n"); snprintf(name, len, "Expense %d.%d", PLUGIN_MAJOR, PLUGIN_MINOR); return EXIT_SUCCESS; } /* This is a mandatory plugin function. */ int plugin_get_name(char *name, int len) { return static_plugin_get_name(name, len); } /* * This is an optional plugin function. * This is the name that will show up in the plugins menu in J-Pilot. */ int plugin_get_menu_name(char *name, int len) { strncpy(name, _("Expense"), len); return EXIT_SUCCESS; } /* * This is an optional plugin function. * This is the name that will show up in the plugins help menu in J-Pilot. * If this function is used then plugin_help must also be defined. */ int plugin_get_help_name(char *name, int len) { g_snprintf(name, len, _("About %s"), _("Expense")); return EXIT_SUCCESS; } /* * This is an optional plugin function. * This is the palm database that will automatically be synced. */ int plugin_get_db_name(char *name, int len) { strncpy(name, "ExpenseDB", len); return EXIT_SUCCESS; } /* * A utility function for getting textual data from an enum. */ static char *get_entry_type(enum ExpenseType type) { switch(type) { case etAirfare: return _("Airfare"); case etBreakfast: return _("Breakfast"); case etBus: return _("Bus"); case etBusinessMeals: return _("BusinessMeals"); case etCarRental: return _("CarRental"); case etDinner: return _("Dinner"); case etEntertainment: return _("Entertainment"); case etFax: return _("Fax"); case etGas: return _("Gas"); case etGifts: return _("Gifts"); case etHotel: return _("Hotel"); case etIncidentals: return _("Incidentals"); case etLaundry: return _("Laundry"); case etLimo: return _("Limo"); case etLodging: return _("Lodging"); case etLunch: return _("Lunch"); case etMileage: return _("Mileage"); case etOther: return _("Other"); case etParking: return _("Parking"); case etPostage: return _("Postage"); case etSnack: return _("Snack"); case etSubway: return _("Subway"); case etSupplies: return _("Supplies"); case etTaxi: return _("Taxi"); case etTelephone: return _("Telephone"); case etTips: return _("Tips"); case etTolls: return _("Tolls"); case etTrain: return _("Train"); default: return NULL; } } /* This function gets called when the "delete" button is pressed */ static void cb_delete(GtkWidget *widget, gpointer data) { struct MyExpense *mexp; int size; unsigned char buf[0xFFFF]; buf_rec br; int flag; jp_logf(JP_LOG_DEBUG, "Expense: cb_delete\n"); flag=GPOINTER_TO_INT(data); mexp = gtk_clist_get_row_data(GTK_CLIST(clist), clist_row_selected); if (!mexp) { return; } /* The record that we want to delete should be written to the pc file * so that it can be deleted at sync time. We need the original record * so that if it has changed on the pilot we can warn the user that * the record has changed on the pilot. */ size = pack_Expense(&(mexp->ex), buf, 0xFFFF); br.rt = mexp->rt; br.unique_id = mexp->unique_id; br.attrib = mexp->attrib; br.buf = buf; br.size = size; if ((flag==MODIFY_FLAG) || (flag==DELETE_FLAG)) { jp_delete_record("ExpenseDB", &br, DELETE_FLAG); } if (flag == DELETE_FLAG) { /* when we redraw we want to go to the line above the deleted one */ if (clist_row_selected > 0) { clist_row_selected--; } display_records(); } } /* * This is called when the "Clear" button is pressed. * It just clears out all the detail fields. */ static void exp_clear_details(void) { time_t ltime; struct tm *now; int new_cat; int sorted_position; jp_logf(JP_LOG_DEBUG, "Expense: exp_clear_details\n"); time(<ime); now = localtime(<ime); /* Disconnect signals to prevent callbacks while we change values */ connect_changed_signals(DISCONNECT_SIGNALS); gtk_spin_button_set_value(GTK_SPIN_BUTTON(spinner_mon), now->tm_mon+1); gtk_spin_button_set_value(GTK_SPIN_BUTTON(spinner_day), now->tm_mday); gtk_spin_button_set_value(GTK_SPIN_BUTTON(spinner_year), now->tm_year+1900); gtk_entry_set_text(GTK_ENTRY(entry_amount), ""); gtk_entry_set_text(GTK_ENTRY(entry_vendor), ""); gtk_entry_set_text(GTK_ENTRY(entry_city), ""); gtk_text_buffer_set_text(GTK_TEXT_BUFFER(attendees_buffer), "", -1); gtk_text_buffer_set_text(GTK_TEXT_BUFFER(note_buffer), "", -1); if (exp_category==CATEGORY_ALL) { new_cat = 0; } else { new_cat = exp_category; } sorted_position = find_sort_cat_pos(new_cat); if (sorted_position<0) { jp_logf(JP_LOG_WARN, _("Category is not legal\n")); } else { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(exp_cat_menu_item2[sorted_position]), TRUE); gtk_option_menu_set_history(GTK_OPTION_MENU(category_menu2), find_menu_cat_pos(sorted_position)); } set_new_button_to(CLEAR_FLAG); connect_changed_signals(CONNECT_SIGNALS); } /* returns position, position starts at zero */ static int currency_id_to_position(int currency) { int i; int found=0; for (i=0; iunique_id; } /* Grab details of record from widgets on right-hand side of screen */ ex.type = glob_detail_type; ex.payment = glob_detail_payment; ex.currency = position_to_currency_id(glob_detail_currency_pos); /* gtk_entry_get_text *does not* allocate memory */ text = gtk_entry_get_text(GTK_ENTRY(entry_amount)); ex.amount = (char *)text; if (ex.amount[0]=='\0') { ex.amount=NULL; } text = gtk_entry_get_text(GTK_ENTRY(entry_vendor)); ex.vendor = (char *)text; if (ex.vendor[0]=='\0') { ex.vendor=NULL; } text = gtk_entry_get_text(GTK_ENTRY(entry_city)); ex.city = (char *)text; if (ex.city[0]=='\0') { ex.city=NULL; } ex.date.tm_mon = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spinner_mon)) - 1;; ex.date.tm_mday = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spinner_day));; ex.date.tm_year = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spinner_year)) - 1900;; ex.date.tm_hour = 12; ex.date.tm_min = 0; ex.date.tm_sec = 0; gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(attendees_buffer),&start_iter,&end_iter); ex.attendees = gtk_text_buffer_get_text(GTK_TEXT_BUFFER(attendees_buffer),&start_iter,&end_iter,TRUE); if (ex.attendees[0]=='\0') { free(ex.attendees); ex.attendees=NULL; } gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(note_buffer),&start_iter,&end_iter); ex.note = gtk_text_buffer_get_text(GTK_TEXT_BUFFER(note_buffer),&start_iter,&end_iter,TRUE); if (ex.note[0]=='\0') { free(ex.note); ex.note=NULL; } /* * The record must be packed into a palm record (blob of data) * pack_Expense just happens to be already written in pilot-link, * however, a pack function must be written for each record type. */ size = pack_Expense(&ex, buf, 0xFFFF); if (ex.attendees) { free(ex.attendees); } if (ex.note) { free(ex.note); } /* This is a new record from the PC, and not yet on the palm */ br.rt = NEW_PC_REC; /* jp_pc_write will give us a temporary PC unique ID. */ /* The palm will give us an "official" unique ID during the sync */ /* Any attributes go here. Usually just the category */ /* Get the category that is set from the menu */ for (i=0; iactive) { br.attrib = sort_l[i].cat_num; break; } } } jp_logf(JP_LOG_DEBUG, "category is %d\n", br.attrib); br.buf = buf; br.size = size; br.unique_id = 0; if (flag==MODIFY_FLAG) { cb_delete(NULL, data); if ((mexp->rt==PALM_REC) || (mexp->rt==REPLACEMENT_PALM_REC)) { /* This code is to keep the unique ID intact */ br.unique_id = unique_id; br.rt = REPLACEMENT_PALM_REC; } } /* Write out the record. It goes to the .pc3 file until it gets synced */ jp_pc_write("ExpenseDB", &br); set_new_button_to(CLEAR_FLAG); display_records(); return; } /* * This function just adds the record to the clist on the left side of * the screen. */ static int display_record(struct MyExpense *mexp, int at_row) { char *Ptype; char date[12]; GdkColor color; GdkColormap *colormap; jp_logf(JP_LOG_DEBUG, "Expense: display_record\n"); switch (mexp->rt) { case NEW_PC_REC: case REPLACEMENT_PALM_REC: colormap = gtk_widget_get_colormap(clist); color.red = CLIST_NEW_RED; color.green = CLIST_NEW_GREEN; color.blue = CLIST_NEW_BLUE; gdk_color_alloc(colormap, &color); gtk_clist_set_background(GTK_CLIST(clist), at_row, &color); break; case DELETED_PALM_REC: case DELETED_PC_REC: colormap = gtk_widget_get_colormap(clist); color.red = CLIST_DEL_RED; color.green = CLIST_DEL_GREEN; color.blue = CLIST_DEL_BLUE; gdk_color_alloc(colormap, &color); gtk_clist_set_background(GTK_CLIST(clist), at_row, &color); break; case MODIFIED_PALM_REC: colormap = gtk_widget_get_colormap(clist); color.red = CLIST_MOD_RED; color.green = CLIST_MOD_GREEN; color.blue = CLIST_MOD_BLUE; gdk_color_alloc(colormap, &color); gtk_clist_set_background(GTK_CLIST(clist), at_row, &color); break; default: if (mexp->attrib & dlpRecAttrSecret) { colormap = gtk_widget_get_colormap(clist); color.red = CLIST_PRIVATE_RED; color.green = CLIST_PRIVATE_GREEN; color.blue = CLIST_PRIVATE_BLUE; gdk_color_alloc(colormap, &color); gtk_clist_set_background(GTK_CLIST(clist), at_row, &color); } else { gtk_clist_set_background(GTK_CLIST(clist), at_row, NULL); } } gtk_clist_set_row_data(GTK_CLIST(clist), at_row, mexp); sprintf(date, "%02d/%02d", mexp->ex.date.tm_mon+1, mexp->ex.date.tm_mday); gtk_clist_set_text(GTK_CLIST(clist), at_row, 0, date); Ptype = get_entry_type(mexp->ex.type); gtk_clist_set_text(GTK_CLIST(clist), at_row, 1, Ptype); if (mexp->ex.amount) { gtk_clist_set_text(GTK_CLIST(clist), at_row, 2, mexp->ex.amount); } return EXIT_SUCCESS; } /* * This function lists the records in the clist on the left side of * the screen. */ static void display_records(void) { int num, i; int entries_shown; struct MyExpense *mexp; GList *records; GList *temp_list; buf_rec *br; gchar *empty_line[] = { "","","" }; jp_logf(JP_LOG_DEBUG, "Expense: display_records\n"); records=NULL; free_myexpense_list(&glob_myexpense_list); /* Clear left-hand side of window */ exp_clear_details(); /* Freeze clist to prevent flicker during updating */ gtk_clist_freeze(GTK_CLIST(clist)); connect_changed_signals(DISCONNECT_SIGNALS); gtk_signal_disconnect_by_func(GTK_OBJECT(clist), GTK_SIGNAL_FUNC(cb_clist_selection), NULL); gtk_clist_clear(GTK_CLIST(clist)); #ifdef __APPLE__ gtk_clist_thaw(GTK_CLIST(clist)); gtk_widget_hide(clist); gtk_widget_show_all(clist); gtk_clist_freeze(GTK_CLIST(clist)); #endif /* This function takes care of reading the Database for us */ num = jp_read_DB_files("ExpenseDB", &records); if (-1 == num) return; entries_shown = 0; for (i=0, temp_list = records; temp_list; temp_list = temp_list->next, i++) { if (temp_list->data) { br=temp_list->data; } else { continue; } if (!br->buf) { continue; } /* Since deleted and modified records are also returned and we don't * want to see those we skip over them. */ if ((br->rt == DELETED_PALM_REC) || (br->rt == DELETED_PC_REC) || (br->rt == MODIFIED_PALM_REC) ) { continue; } if (exp_category < NUM_EXP_CAT_ITEMS) { if ( ((br->attrib & 0x0F) != exp_category) && exp_category != CATEGORY_ALL) { continue; } } mexp = malloc(sizeof(struct MyExpense)); mexp->next = NULL; mexp->attrib = br->attrib; mexp->unique_id = br->unique_id; mexp->rt = br->rt; /* We need to unpack the record blobs from the database. * unpack_Expense is already written in pilot-link, but normally * an unpack must be written for each type of application */ if (unpack_Expense(&(mexp->ex), br->buf, br->size)!=0) { gtk_clist_append(GTK_CLIST(clist), empty_line); display_record(mexp, entries_shown); entries_shown++; } /* Prepend entry at head of list */ mexp->next = glob_myexpense_list; glob_myexpense_list = mexp; } jp_free_DB_records(&records); /* Sort the clist */ gtk_clist_sort(GTK_CLIST(clist)); gtk_signal_connect(GTK_OBJECT(clist), "select_row", GTK_SIGNAL_FUNC(cb_clist_selection), NULL); /* Select the existing requested row, or row 0 if that is impossible */ if (clist_row_selected <= entries_shown) { gtk_clist_select_row(GTK_CLIST(clist), clist_row_selected, 0); if (!gtk_clist_row_is_visible(GTK_CLIST(clist), clist_row_selected)) { gtk_clist_moveto(GTK_CLIST(clist), clist_row_selected, 0, 0.5, 0.0); } } else { gtk_clist_select_row(GTK_CLIST(clist), 0, 0); } /* Unfreeze clist after all changes */ gtk_clist_thaw(GTK_CLIST(clist)); connect_changed_signals(CONNECT_SIGNALS); jp_logf(JP_LOG_DEBUG, "Expense: leave display_records\n"); } /* Find position of category in sorted category array * via its assigned category number */ static int find_sort_cat_pos(int cat) { int i; for (i=0; iactive) { if (exp_category == selection) { return; } b=dialog_save_changed_record_with_cancel(pane, record_changed); if (b==DIALOG_SAID_1) { /* Cancel */ int index, index2; if (exp_category==CATEGORY_ALL) { index = 0; index2 = 0; } else { index = find_sort_cat_pos(exp_category); index2 = find_menu_cat_pos(index) + 1; index += 1; } if (index<0) { jp_logf(JP_LOG_WARN, _("Category is not legal\n")); } else { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(exp_cat_menu_item1[index]), TRUE); gtk_option_menu_set_history(GTK_OPTION_MENU(category_menu1), index2); } return; } if (b==DIALOG_SAID_3) { /* Save */ cb_add_new_record(NULL, GINT_TO_POINTER(record_changed)); } if (selection==NUM_EXP_CAT_ITEMS+1) { cb_edit_cats(item, NULL); } else { exp_category = selection; } jp_logf(JP_LOG_DEBUG, "cb_category() cat=%d\n", exp_category); clist_row_selected = 0; display_records(); jp_logf(JP_LOG_DEBUG, "Leaving cb_category()\n"); } } /* * This function just displays a record on the right hand side of the screen * (the details) after a row has been selected in the clist on the left. */ static void cb_clist_selection(GtkWidget *clist, gint row, gint column, GdkEventButton *event, gpointer data) { struct MyExpense *mexp; int b; int index, sorted_position; int currency_position; unsigned int unique_id = 0; jp_logf(JP_LOG_DEBUG, "Expense: cb_clist_selection\n"); if ((record_changed==MODIFY_FLAG) || (record_changed==NEW_FLAG)) { mexp = gtk_clist_get_row_data(GTK_CLIST(clist), row); if (mexp!=NULL) { unique_id = mexp->unique_id; } b=dialog_save_changed_record(scrolled_window, record_changed); if (b==DIALOG_SAID_2) { cb_add_new_record(NULL, GINT_TO_POINTER(record_changed)); } set_new_button_to(CLEAR_FLAG); if (unique_id) { expense_find(unique_id); } else { clist_select_row(GTK_CLIST(clist), row, column); } return; } clist_row_selected = row; mexp = gtk_clist_get_row_data(GTK_CLIST(clist), row); if (mexp==NULL) { return; } set_new_button_to(CLEAR_FLAG); /* Need to disconnect signals while changing values */ connect_changed_signals(DISCONNECT_SIGNALS); index = mexp->attrib & 0x0F; sorted_position = find_sort_cat_pos(index); if (exp_cat_menu_item2[sorted_position]==NULL) { /* Illegal category */ jp_logf(JP_LOG_DEBUG, "Category is not legal\n"); sorted_position = 0; } if (sorted_position<0) { jp_logf(JP_LOG_WARN, _("Category is not legal\n")); } else { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(exp_cat_menu_item2[sorted_position]), TRUE); } gtk_option_menu_set_history(GTK_OPTION_MENU(category_menu2), find_menu_cat_pos(sorted_position)); if (mexp->ex.type < MAX_EXPENSE_TYPES) { gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM (menu_item_expense_type[mexp->ex.type]), TRUE); } else { jp_logf(JP_LOG_WARN, _("Expense: Unknown expense type\n")); } if (mexp->ex.payment < MAX_PAYMENTS) { gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM (menu_item_payment[mexp->ex.payment]), TRUE); } else { jp_logf(JP_LOG_WARN, _("Expense: Unknown payment type\n")); } currency_position = currency_id_to_position(mexp->ex.currency); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM (menu_item_currency[currency_position]), TRUE); gtk_option_menu_set_history(GTK_OPTION_MENU(menu_expense_type), mexp->ex.type); gtk_option_menu_set_history(GTK_OPTION_MENU(menu_payment), mexp->ex.payment); gtk_option_menu_set_history(GTK_OPTION_MENU(menu_currency), currency_position); gtk_spin_button_set_value(GTK_SPIN_BUTTON(spinner_mon), mexp->ex.date.tm_mon+1); gtk_spin_button_set_value(GTK_SPIN_BUTTON(spinner_day), mexp->ex.date.tm_mday); gtk_spin_button_set_value(GTK_SPIN_BUTTON(spinner_year), mexp->ex.date.tm_year+1900); if (mexp->ex.amount) { gtk_entry_set_text(GTK_ENTRY(entry_amount), mexp->ex.amount); } else { gtk_entry_set_text(GTK_ENTRY(entry_amount), ""); } if (mexp->ex.vendor) { gtk_entry_set_text(GTK_ENTRY(entry_vendor), mexp->ex.vendor); } else { gtk_entry_set_text(GTK_ENTRY(entry_vendor), ""); } if (mexp->ex.city) { gtk_entry_set_text(GTK_ENTRY(entry_city), mexp->ex.city); } else { gtk_entry_set_text(GTK_ENTRY(entry_city), ""); } gtk_text_buffer_set_text(GTK_TEXT_BUFFER(attendees_buffer), "", -1); if (mexp->ex.attendees) { gtk_text_buffer_set_text(GTK_TEXT_BUFFER(attendees_buffer), mexp->ex.attendees, -1); } gtk_text_buffer_set_text(GTK_TEXT_BUFFER(note_buffer), "", -1); if (mexp->ex.note) { gtk_text_buffer_set_text(GTK_TEXT_BUFFER(note_buffer), mexp->ex.note, -1); } connect_changed_signals(CONNECT_SIGNALS); jp_logf(JP_LOG_DEBUG, "Expense: leaving cb_clist_selection\n"); } /* * All menus use this same callback function. I use the value parameter * to determine which menu was changed and which item was selected from it. */ static void cb_pulldown_menu(GtkWidget *item, unsigned int value) { int menu, sel; jp_logf(JP_LOG_DEBUG, "Expense: cb_pulldown_menu\n"); if (!item) return; if (!(GTK_CHECK_MENU_ITEM(item))->active) return; menu = (value & 0xFF00) >> 8; sel = value & 0x00FF; switch (menu) { case EXPENSE_TYPE: glob_detail_type = sel; break; case EXPENSE_PAYMENT: glob_detail_payment = sel; break; case EXPENSE_CURRENCY: glob_detail_currency_pos = sel; break; } } /* * Just a convenience function for passing in an array of strings and getting * them all stuffed into a menu. */ static int make_menu(const char *items[], int menu_index, GtkWidget **Poption_menu, GtkWidget *menu_items[]) { int i, item_num; GSList *group; GtkWidget *option_menu; GtkWidget *menu_item; GtkWidget *menu; jp_logf(JP_LOG_DEBUG, "Expense: make_menu\n"); *Poption_menu = option_menu = gtk_option_menu_new(); menu = gtk_menu_new(); group = NULL; for (i=0; items[i]; i++) { menu_item = gtk_radio_menu_item_new_with_label(group, _(items[i])); menu_items[i] = menu_item; item_num = i; gtk_signal_connect(GTK_OBJECT(menu_item), "activate", GTK_SIGNAL_FUNC(cb_pulldown_menu), GINT_TO_POINTER(menu_index<<8 | item_num)); group = gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(menu_item)); gtk_menu_append(GTK_MENU(menu), menu_item); gtk_widget_show(menu_item); } gtk_option_menu_set_menu(GTK_OPTION_MENU(option_menu), menu); /* Make this one show up by default */ gtk_option_menu_set_history(GTK_OPTION_MENU(option_menu), 0); gtk_widget_show(option_menu); return EXIT_SUCCESS; } /* * This function makes all of the menus on the screen. */ static void make_menus(void) { struct ExpenseAppInfo exp_app_info; unsigned char *buf; int buf_size; int i; long char_set; char *cat_name; const char *payment[MAX_PAYMENTS+1]={ N_("American Express"), N_("Cash"), N_("Check"), N_("Credit Card"), N_("Master Card"), N_("Prepaid"), N_("VISA"), N_("Unfiled"), NULL }; const char *expense_type[MAX_CURRENCYS+1]={ N_("Airfare"), N_("Breakfast"), N_("Bus"), N_("BusinessMeals"), N_("CarRental"), N_("Dinner"), N_("Entertainment"), N_("Fax"), N_("Gas"), N_("Gifts"), N_("Hotel"), N_("Incidentals"), N_("Laundry"), N_("Limo"), N_("Lodging"), N_("Lunch"), N_("Mileage"), N_("Other"), N_("Parking"), N_("Postage"), N_("Snack"), N_("Subway"), N_("Supplies"), N_("Taxi"), N_("Telephone"), N_("Tips"), N_("Tolls"), N_("Train"), NULL }; const char *currency[MAX_CURRENCYS+1]; jp_logf(JP_LOG_DEBUG, "Expense: make_menus\n"); /* Point the currency array to the country names and NULL terminate it */ for (i=0; irows; i++) { mexp = gtk_clist_get_row_data(GTK_CLIST(clist), i); if (!mexp) { break; } if (mexp->unique_id==unique_id) { found = TRUE; *found_at = i; break; } } return found; } static int expense_find(int unique_id) { int r, found_at; jp_logf(JP_LOG_DEBUG, "Expense: expense_find, unique_id=%d\n",unique_id); if (unique_id) { r = expense_clist_find_id(clist, unique_id, &found_at); if (r) { gtk_clist_select_row(GTK_CLIST(clist), found_at, 0); if (!gtk_clist_row_is_visible(GTK_CLIST(clist), found_at)) { gtk_clist_moveto(GTK_CLIST(clist), found_at, 0, 0.5, 0.0); } } } return EXIT_SUCCESS; } /* * This function is called by J-Pilot when the user selects this plugin * from the plugin menu, or from the search window when a search result * record is chosen. In the latter case, unique ID will be set. This * application should go directly to that record if the ID is set. */ int plugin_gui(GtkWidget *vbox, GtkWidget *hbox, unsigned int unique_id) { GtkWidget *vbox1, *vbox2; GtkWidget *hbox_temp; GtkWidget *temp_vbox; GtkWidget *label; GtkWidget *separator; time_t ltime; struct tm *now; long ivalue; long show_tooltips; char *titles[]={"","",""}; int i; int cycle_category=FALSE; int new_cat; int index, index2; jp_logf(JP_LOG_DEBUG, "Expense: plugin gui started, unique_id=%d\n", unique_id); record_changed = CLEAR_FLAG; if (difftime(time(NULL), plugin_last_time) > PLUGIN_MAX_INACTIVE_TIME) { cycle_category = FALSE; } else { cycle_category = TRUE; } /* reset time entered */ plugin_last_time = time(NULL); /* called to display the result of a search */ if (unique_id) { cycle_category = FALSE; } clist_row_selected = 0; time(<ime); now = localtime(<ime); /************************************************************/ /* Build the GUI */ get_pref(PREF_SHOW_TOOLTIPS, &show_tooltips, NULL); /* Make the menus */ make_menus(); pane = gtk_hpaned_new(); get_pref(PREF_EXPENSE_PANE, &ivalue, NULL); gtk_paned_set_position(GTK_PANED(pane), ivalue); gtk_box_pack_start(GTK_BOX(hbox), pane, TRUE, TRUE, 5); /* left and right main boxes */ vbox1 = gtk_vbox_new(FALSE, 0); vbox2 = gtk_vbox_new(FALSE, 0); gtk_paned_pack1(GTK_PANED(pane), vbox1, TRUE, FALSE); gtk_paned_pack2(GTK_PANED(pane), vbox2, TRUE, FALSE); gtk_widget_set_usize(GTK_WIDGET(vbox1), 0, 230); gtk_widget_set_usize(GTK_WIDGET(vbox2), 0, 230); /* Make accelerators for some buttons window */ #ifndef ENABLE_STOCK_BUTTONS accel_group = gtk_accel_group_new(); gtk_window_add_accel_group(GTK_WINDOW(gtk_widget_get_toplevel(vbox)), accel_group); #endif /************************************************************/ /* Left half of screen */ /* Make menu box for category menu */ hbox_temp = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox1), hbox_temp, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox_temp), category_menu1, TRUE, TRUE, 0); /* Scrolled Window */ scrolled_window = gtk_scrolled_window_new(NULL, NULL); gtk_container_set_border_width(GTK_CONTAINER(scrolled_window), 0); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start(GTK_BOX(vbox1), scrolled_window, TRUE, TRUE, 0); /* Clist */ clist = gtk_clist_new_with_titles(3, titles); gtk_clist_set_column_title(GTK_CLIST(clist), 0, _("Date")); gtk_clist_set_column_title(GTK_CLIST(clist), 1, _("Type")); gtk_clist_set_column_title(GTK_CLIST(clist), 2, _("Amount")); /* auto resize is used in all the other application clists but here * it produces a cramped layout so a minimum width is specified */ gtk_clist_set_column_auto_resize(GTK_CLIST(clist), 0, TRUE); gtk_clist_set_column_min_width(GTK_CLIST(clist), 0, 44); gtk_clist_set_column_auto_resize(GTK_CLIST(clist), 1, TRUE); gtk_clist_set_column_min_width(GTK_CLIST(clist), 1, 100); gtk_clist_set_column_auto_resize(GTK_CLIST(clist), 2, FALSE); gtk_clist_column_titles_active(GTK_CLIST(clist)); gtk_signal_connect(GTK_OBJECT(clist), "click_column", GTK_SIGNAL_FUNC (cb_clist_click_column), NULL); gtk_signal_connect(GTK_OBJECT(clist), "select_row", GTK_SIGNAL_FUNC(cb_clist_selection), NULL); gtk_clist_set_shadow_type(GTK_CLIST(clist), SHADOW); gtk_clist_set_selection_mode(GTK_CLIST(clist), GTK_SELECTION_BROWSE); /* Restore previous sorting configuration */ get_pref(PREF_EXPENSE_SORT_COLUMN, &ivalue, NULL); clist_col_selected = ivalue; gtk_clist_set_sort_column(GTK_CLIST(clist), clist_col_selected); switch (clist_col_selected) { case EXP_DATE_COLUMN: /* Date column */ gtk_clist_set_compare_func(GTK_CLIST(clist),sort_compare_date); break; default: /* All other columns can use GTK default sort function */ gtk_clist_set_compare_func(GTK_CLIST(clist),NULL); break; } get_pref(PREF_EXPENSE_SORT_ORDER, &ivalue, NULL); gtk_clist_set_sort_type(GTK_CLIST(clist), ivalue); gtk_container_add(GTK_CONTAINER(scrolled_window), GTK_WIDGET(clist)); /************************************************************/ /* Right half of screen */ hbox_temp = gtk_hbox_new(FALSE, 3); gtk_box_pack_start(GTK_BOX(vbox2), hbox_temp, FALSE, FALSE, 0); /* Delete, Copy, New, etc. buttons */ CREATE_BUTTON(delete_record_button, _("Delete"), DELETE, _("Delete the selected record"), GDK_d, GDK_CONTROL_MASK, "Ctrl+D"); gtk_signal_connect(GTK_OBJECT(delete_record_button), "clicked", GTK_SIGNAL_FUNC(cb_delete), GINT_TO_POINTER(DELETE_FLAG)); CREATE_BUTTON(copy_record_button, _("Copy"), COPY, _("Copy the selected record"), GDK_c, GDK_CONTROL_MASK|GDK_SHIFT_MASK, "Ctrl+Shift+C") gtk_signal_connect(GTK_OBJECT(copy_record_button), "clicked", GTK_SIGNAL_FUNC(cb_add_new_record), GINT_TO_POINTER(COPY_FLAG)); CREATE_BUTTON(new_record_button, _("New Record"), NEW, _("Add a new record"), GDK_n, GDK_CONTROL_MASK, "Ctrl+N") gtk_signal_connect(GTK_OBJECT(new_record_button), "clicked", GTK_SIGNAL_FUNC(cb_add_new_record), GINT_TO_POINTER(CLEAR_FLAG)); CREATE_BUTTON(add_record_button, _("Add Record"), ADD, _("Add the new record"), GDK_Return, GDK_CONTROL_MASK, "Ctrl+Enter") gtk_signal_connect(GTK_OBJECT(add_record_button), "clicked", GTK_SIGNAL_FUNC(cb_add_new_record), GINT_TO_POINTER(NEW_FLAG)); #ifndef ENABLE_STOCK_BUTTONS gtk_widget_set_name(GTK_WIDGET(GTK_LABEL(GTK_BIN(add_record_button)->child)), "label_high"); #endif CREATE_BUTTON(apply_record_button, _("Apply Changes"), APPLY, _("Commit the modifications"), GDK_Return, GDK_CONTROL_MASK, "Ctrl+Enter") gtk_signal_connect(GTK_OBJECT(apply_record_button), "clicked", GTK_SIGNAL_FUNC(cb_add_new_record), GINT_TO_POINTER(MODIFY_FLAG)); #ifndef ENABLE_STOCK_BUTTONS gtk_widget_set_name(GTK_WIDGET(GTK_LABEL(GTK_BIN(apply_record_button)->child)), "label_high"); #endif /*Separator */ separator = gtk_hseparator_new(); gtk_box_pack_start(GTK_BOX(vbox2), separator, FALSE, FALSE, 5); table = gtk_table_new(8, 2, FALSE); gtk_box_pack_start(GTK_BOX(vbox2), table, FALSE, FALSE, 0); /* Category Menu */ label = gtk_label_new(_("Category:")); gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); gtk_table_attach(GTK_TABLE(table), GTK_WIDGET(label), 0, 1, 0, 1, GTK_FILL, GTK_FILL, 2, 0); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(category_menu2), 1, 2, 0, 1); /* Type Menu */ label = gtk_label_new(_("Type:")); gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); gtk_table_attach(GTK_TABLE(table), GTK_WIDGET(label), 0, 1, 1, 2, GTK_FILL, GTK_FILL, 2, 0); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(menu_expense_type), 1, 2, 1, 2); /* Payment Menu */ label = gtk_label_new(_("Payment:")); gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); gtk_table_attach(GTK_TABLE(table), GTK_WIDGET(label), 0, 1, 2, 3, GTK_FILL, GTK_FILL, 2, 0); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(menu_payment), 1, 2, 2, 3); /* Currency Menu */ label = gtk_label_new(_("Currency:")); gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); gtk_table_attach(GTK_TABLE(table), GTK_WIDGET(label), 0, 1, 3, 4, GTK_FILL, GTK_FILL, 2, 0); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(menu_currency), 1, 2, 3, 4); /* Date Spinners */ label = gtk_label_new(_("Date:")); gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.8); gtk_table_attach(GTK_TABLE(table), GTK_WIDGET(label), 0, 1, 4, 5, GTK_FILL, GTK_FILL, 2, 0); hbox_temp = gtk_hbox_new(FALSE, 0); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(hbox_temp), 1, 2, 4, 5); /* Month spinner */ temp_vbox = gtk_vbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox_temp), temp_vbox, FALSE, FALSE, 0); label = gtk_label_new(_("Month:")); gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); gtk_box_pack_start(GTK_BOX(temp_vbox), label, FALSE, TRUE, 0); adj_mon = GTK_ADJUSTMENT(gtk_adjustment_new(now->tm_mon+1, 1.0, 12.0, 1.0, 5.0, 0.0)); spinner_mon = gtk_spin_button_new(adj_mon, 0, 0); gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(spinner_mon), FALSE); gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(spinner_mon), TRUE); gtk_box_pack_start(GTK_BOX(temp_vbox), spinner_mon, FALSE, TRUE, 0); /* Day spinner */ temp_vbox = gtk_vbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox_temp), temp_vbox, FALSE, FALSE, 0); label = gtk_label_new(_("Day:")); gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); gtk_box_pack_start(GTK_BOX(temp_vbox), label, FALSE, TRUE, 0); adj_day = GTK_ADJUSTMENT(gtk_adjustment_new(now->tm_mday, 1.0, 31.0, 1.0, 5.0, 0.0)); spinner_day = gtk_spin_button_new(adj_day, 0, 0); gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(spinner_day), FALSE); gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(spinner_day), TRUE); gtk_box_pack_start(GTK_BOX(temp_vbox), spinner_day, FALSE, TRUE, 0); /* Year spinner */ temp_vbox = gtk_vbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox_temp), temp_vbox, FALSE, FALSE, 0); label = gtk_label_new(_("Year:")); gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); gtk_box_pack_start(GTK_BOX(temp_vbox), label, FALSE, TRUE, 0); adj_year = GTK_ADJUSTMENT(gtk_adjustment_new(now->tm_year+1900, 0.0, 2037.0, 1.0, 100.0, 0.0)); spinner_year = gtk_spin_button_new(adj_year, 0, 0); gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(spinner_year), FALSE); gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(spinner_year), TRUE); gtk_box_pack_start(GTK_BOX(temp_vbox), spinner_year, FALSE, TRUE, 0); gtk_widget_set_usize(spinner_year, 55, 0); /* Amount Entry */ label = gtk_label_new(_("Amount:")); gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); gtk_table_attach(GTK_TABLE(table), GTK_WIDGET(label), 0, 1, 5, 6, GTK_FILL, GTK_FILL, 2, 0); entry_amount = gtk_entry_new(); entry_set_multiline_truncate(GTK_ENTRY(entry_amount), TRUE); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(entry_amount), 1, 2, 5, 6); /* Vendor Entry */ label = gtk_label_new(_("Vendor:")); gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); gtk_table_attach(GTK_TABLE(table), GTK_WIDGET(label), 0, 1, 6, 7, GTK_FILL, GTK_FILL, 2, 0); entry_vendor = gtk_entry_new(); entry_set_multiline_truncate(GTK_ENTRY(entry_vendor), TRUE); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(entry_vendor), 1, 2, 6, 7); /* City */ label = gtk_label_new(_("City:")); gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); gtk_table_attach(GTK_TABLE(table), GTK_WIDGET(label), 0, 1, 7, 8, GTK_FILL, GTK_FILL, 2, 0); entry_city = gtk_entry_new(); entry_set_multiline_truncate(GTK_ENTRY(entry_city), TRUE); gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(entry_city), 1, 2, 7, 8); /* Attendees */ label = gtk_label_new(_("Attendees")); gtk_box_pack_start(GTK_BOX(vbox2), label, FALSE, FALSE, 0); /* Attendees textbox */ scrolled_window = gtk_scrolled_window_new(NULL, NULL); /*gtk_widget_set_usize(GTK_WIDGET(scrolled_window), 150, 0); */ gtk_container_set_border_width(GTK_CONTAINER(scrolled_window), 0); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start(GTK_BOX(vbox2), scrolled_window, TRUE, TRUE, 0); attendees = gtk_text_view_new(); attendees_buffer = G_OBJECT(gtk_text_view_get_buffer(GTK_TEXT_VIEW(attendees))); gtk_text_view_set_editable(GTK_TEXT_VIEW(attendees), TRUE); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(attendees), GTK_WRAP_WORD); gtk_container_add(GTK_CONTAINER(scrolled_window), GTK_WIDGET(attendees)); label = gtk_label_new(_("Note")); gtk_box_pack_start(GTK_BOX(vbox2), label, FALSE, FALSE, 0); /* Note textbox */ scrolled_window = gtk_scrolled_window_new(NULL, NULL); /*gtk_widget_set_usize(GTK_WIDGET(scrolled_window), 150, 0); */ gtk_container_set_border_width(GTK_CONTAINER(scrolled_window), 0); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start(GTK_BOX(vbox2), scrolled_window, TRUE, TRUE, 0); note = gtk_text_view_new(); note_buffer = G_OBJECT(gtk_text_view_get_buffer(GTK_TEXT_VIEW(note))); gtk_text_view_set_editable(GTK_TEXT_VIEW(note), TRUE); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(note), GTK_WRAP_WORD); gtk_container_add(GTK_CONTAINER(scrolled_window), GTK_WIDGET(note)); gtk_widget_show_all(hbox); gtk_widget_show_all(vbox); gtk_widget_hide(add_record_button); gtk_widget_hide(apply_record_button); if (cycle_category) { /* First cycle exp_category var */ if (exp_category == CATEGORY_ALL) { new_cat = -1; } else { new_cat = find_sort_cat_pos(exp_category); } for (i=0; i= NUM_EXP_CAT_ITEMS) { exp_category = CATEGORY_ALL; break; } if ((sort_l[new_cat].Pcat) && (sort_l[new_cat].Pcat[0])) { exp_category = sort_l[new_cat].cat_num; break; } } /* Then update menu with new exp_category */ if (exp_category==CATEGORY_ALL) { index = 0; index2 = 0; } else { index = find_sort_cat_pos(exp_category); index2 = find_menu_cat_pos(index) + 1; index += 1; } if (index<0) { jp_logf(JP_LOG_WARN, _("Category is not legal\n")); } else { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(exp_cat_menu_item1[index]), TRUE); gtk_option_menu_set_history(GTK_OPTION_MENU(category_menu1), index2); } } else { exp_category = CATEGORY_ALL; } /* The focus doesn't do any good on the application button */ gtk_widget_grab_focus(GTK_WIDGET(clist)); jp_logf(JP_LOG_DEBUG, "Expense: calling display_records\n"); display_records(); jp_logf(JP_LOG_DEBUG, "Expense: after display_records\n"); if (unique_id) { expense_find(unique_id); } return EXIT_SUCCESS; } /* * This function is called by J-Pilot before switching to another application. * The plugin is expected to perform any desirable cleanup operations before * its windows are terminated. Desirable actions include freeing allocated * memory, storing state variables, etc. */ int plugin_gui_cleanup(void) { int b; jp_logf(JP_LOG_DEBUG, "Expense: plugin_gui_cleanup\n"); b=dialog_save_changed_record(scrolled_window, record_changed); if (b==DIALOG_SAID_2) { cb_add_new_record(NULL, GINT_TO_POINTER(record_changed)); } connect_changed_signals(DISCONNECT_SIGNALS); free_myexpense_list(&glob_myexpense_list); if (pane) { /* Remove the accelerators */ #ifndef ENABLE_STOCK_BUTTONS gtk_window_remove_accel_group(GTK_WINDOW(gtk_widget_get_toplevel(pane)), accel_group); #endif set_pref(PREF_EXPENSE_PANE, gtk_paned_get_position(GTK_PANED(pane)), NULL, TRUE); pane = NULL; } set_pref(PREF_EXPENSE_SORT_COLUMN, clist_col_selected, NULL, TRUE); set_pref(PREF_EXPENSE_SORT_ORDER, GTK_CLIST(clist)->sort_type, NULL, TRUE); plugin_last_time = time(NULL); return EXIT_SUCCESS; } /* * This is a plugin callback function that is executed when J-Pilot starts up. * base_dir is where J-Pilot is compiled to be installed at (e.g. /usr/local/) */ int plugin_startup(jp_startup_info *info) { jp_init(); jp_logf(JP_LOG_DEBUG, "Expense: plugin_startup\n"); if (info) { if (info->base_dir) { jp_logf(JP_LOG_DEBUG, "Expense: base_dir = [%s]\n", info->base_dir); } } return EXIT_SUCCESS; } /* * This is a plugin callback function that is executed before a sync occurs. * Any sync preperation can be done here. */ int plugin_pre_sync(void) { jp_logf(JP_LOG_DEBUG, "Expense: plugin_pre_sync\n"); return EXIT_SUCCESS; } /* * This is a plugin callback function that is executed during a sync. * Notice that I don't need to sync the Expense application. Since I used * the plugin_get_db_name call to tell J-Pilot what to sync for me. It will * be done automatically. */ int plugin_sync(int sd) { jp_logf(JP_LOG_DEBUG, "Expense: plugin_sync\n"); return EXIT_SUCCESS; } static int add_search_result(const char *line, int unique_id, struct search_result **sr) { struct search_result *temp_sr; jp_logf(JP_LOG_DEBUG, "Expense: add_search_result for [%s]\n", line); temp_sr=malloc(sizeof(struct search_result)); if (!temp_sr) { return EXIT_FAILURE; } temp_sr->unique_id=unique_id; temp_sr->line=strdup(line); temp_sr->next = *sr; *sr = temp_sr; return 0; } /* * This function is called when the user does a search. It should return * records which match the search string. */ int plugin_search(const char *search_string, int case_sense, struct search_result **sr) { GList *records; GList *temp_list; buf_rec *br; struct MyExpense mexp; int num, count; char *line; jp_logf(JP_LOG_DEBUG, "Expense: plugin_search\n"); records = NULL; *sr = NULL; /* This function takes care of reading the Database for us */ num = jp_read_DB_files("ExpenseDB", &records); if (-1 == num) return 0; count = 0; for (temp_list = records; temp_list; temp_list = temp_list->next) { if (temp_list->data) { br=temp_list->data; } else { continue; } if (!br->buf) { continue; } /* Since deleted and modified records are also returned and we don't * want to see those we skip over them. */ if ((br->rt == DELETED_PALM_REC) || (br->rt == DELETED_PC_REC) || (br->rt == MODIFIED_PALM_REC)) { continue; } mexp.attrib = br->attrib; mexp.unique_id = br->unique_id; mexp.rt = br->rt; /* We need to unpack the record blobs from the database. * unpack_Expense is already written in pilot-link, but normally * an unpack must be written for each type of application */ if (unpack_Expense(&(mexp.ex), br->buf, br->size)!=0) { line = NULL; if (jp_strstr(mexp.ex.amount, search_string, case_sense)) line = mexp.ex.amount; if (jp_strstr(mexp.ex.vendor, search_string, case_sense)) line = mexp.ex.vendor; if (jp_strstr(mexp.ex.city, search_string, case_sense)) line = mexp.ex.city; if (jp_strstr(mexp.ex.attendees, search_string, case_sense)) line = mexp.ex.attendees; if (jp_strstr(mexp.ex.note, search_string, case_sense)) line = mexp.ex.note; if (line) { /* Add it to our result list */ jp_logf(JP_LOG_DEBUG, "Expense: calling add_search_result\n"); add_search_result(line, br->unique_id, sr); jp_logf(JP_LOG_DEBUG, "Expense: back from add_search_result\n"); count++; } free_Expense(&(mexp.ex)); } } jp_free_DB_records(&records); return count; } int plugin_help(char **text, int *width, int *height) { /* We could also pass back *text=NULL * and implement whatever we wanted to here. */ char plugin_name[200]; static_plugin_get_name(plugin_name, sizeof(plugin_name)); *text = g_strdup_printf( /*-------------------------------------------*/ _("%s\n" "\n" "Expense plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org" ), plugin_name ); *height = 0; *width = 0; return EXIT_SUCCESS; } /* * This is a plugin callback function called after a sync. */ int plugin_post_sync(void) { jp_logf(JP_LOG_DEBUG, "Expense: plugin_post_sync\n"); return EXIT_SUCCESS; } /* * This is a plugin callback function called during program exit. */ int plugin_exit_cleanup(void) { jp_logf(JP_LOG_DEBUG, "Expense: plugin_exit_cleanup\n"); return EXIT_SUCCESS; } jpilot-1.8.1.2/Expense/Makefile.am0000644000175000017500000000051711245244222013547 00000000000000# $Id: Makefile.am,v 1.8 2009/08/11 20:13:41 rikster5 Exp $ libdir = @libdir@/@PACKAGE@/plugins if MAKE_EXPENSE lib_LTLIBRARIES = libexpense.la libexpense_la_SOURCES = expense.c libexpense_la_CFLAGS = @PILOT_FLAGS@ @GTK_CFLAGS@ -I$(top_srcdir) libexpense_la_LDFLAGS = -module -avoid-version libexpense_la_LIBADD = @GTK_LIBS@ endif jpilot-1.8.1.2/Expense/Makefile.in0000644000175000017500000004550011702305114013555 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # $Id: Makefile.am,v 1.8 2009/08/11 20:13:41 rikster5 Exp $ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = Expense DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-2.0.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) libexpense_la_DEPENDENCIES = am__libexpense_la_SOURCES_DIST = expense.c @MAKE_EXPENSE_TRUE@am_libexpense_la_OBJECTS = \ @MAKE_EXPENSE_TRUE@ libexpense_la-expense.lo libexpense_la_OBJECTS = $(am_libexpense_la_OBJECTS) libexpense_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libexpense_la_CFLAGS) \ $(CFLAGS) $(libexpense_la_LDFLAGS) $(LDFLAGS) -o $@ @MAKE_EXPENSE_TRUE@am_libexpense_la_rpath = -rpath $(libdir) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libexpense_la_SOURCES) DIST_SOURCES = $(am__libexpense_la_SOURCES_DIST) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ABILIB = @ABILIB@ ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CUT = @CUT@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@ LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@ LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENSSL_LIBS = @OPENSSL_LIBS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PILOT_FLAGS = @PILOT_FLAGS@ PILOT_LIBS = @PILOT_LIBS@ PKG_CONFIG = @PKG_CONFIG@ POSUB = @POSUB@ PROGNAME = @PROGNAME@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@/@PACKAGE@/plugins libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @MAKE_EXPENSE_TRUE@lib_LTLIBRARIES = libexpense.la @MAKE_EXPENSE_TRUE@libexpense_la_SOURCES = expense.c @MAKE_EXPENSE_TRUE@libexpense_la_CFLAGS = @PILOT_FLAGS@ @GTK_CFLAGS@ -I$(top_srcdir) @MAKE_EXPENSE_TRUE@libexpense_la_LDFLAGS = -module -avoid-version @MAKE_EXPENSE_TRUE@libexpense_la_LIBADD = @GTK_LIBS@ all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Expense/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign Expense/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libexpense.la: $(libexpense_la_OBJECTS) $(libexpense_la_DEPENDENCIES) $(libexpense_la_LINK) $(am_libexpense_la_rpath) $(libexpense_la_OBJECTS) $(libexpense_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libexpense_la-expense.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libexpense_la-expense.lo: expense.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libexpense_la_CFLAGS) $(CFLAGS) -MT libexpense_la-expense.lo -MD -MP -MF $(DEPDIR)/libexpense_la-expense.Tpo -c -o libexpense_la-expense.lo `test -f 'expense.c' || echo '$(srcdir)/'`expense.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libexpense_la-expense.Tpo $(DEPDIR)/libexpense_la-expense.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='expense.c' object='libexpense_la-expense.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libexpense_la_CFLAGS) $(CFLAGS) -c -o libexpense_la-expense.lo `test -f 'expense.c' || echo '$(srcdir)/'`expense.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-libLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: jpilot-1.8.1.2/todo.c0000644000175000017500000003317211524574422011230 00000000000000/* $Id: todo.c,v 1.54 2010-10-16 22:49:25 rikster5 Exp $ */ /******************************************************************************* * todo.c * A module of J-Pilot http://jpilot.org * * Copyright (C) 1999-2002 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /********************************* Includes ***********************************/ #include "config.h" #include #include #include #include #include #include #include #include "i18n.h" #include "utils.h" #include "log.h" #include "todo.h" #include "prefs.h" #include "libplugin.h" #include "password.h" /********************************* Constants **********************************/ /******************************* Global vars **********************************/ static struct ToDoAppInfo *glob_Ptodo_app_info; /****************************** Prototypes ************************************/ static int todo_sort(ToDoList **todol, int sort_order); /****************************** Main Code *************************************/ void free_ToDoList(ToDoList **todo) { ToDoList *temp_todo, *temp_todo_next; for (temp_todo = *todo; temp_todo; temp_todo=temp_todo_next) { free_ToDo(&(temp_todo->mtodo.todo)); temp_todo_next = temp_todo->next; free(temp_todo); } *todo = NULL; } int get_todo_app_info(struct ToDoAppInfo *ai) { int num, r; int rec_size; unsigned char *buf; #ifdef ENABLE_MANANA long ivalue; #endif char DBname[32]; memset(ai, 0, sizeof(*ai)); buf=NULL; /* Put at least one entry in there */ strcpy(ai->category.name[0], "Unfiled"); #ifdef ENABLE_MANANA get_pref(PREF_MANANA_MODE, &ivalue, NULL); if (ivalue) { strcpy(DBname, "MaanaDB"); } else { strcpy(DBname, "ToDoDB"); } #else strcpy(DBname, "ToDoDB"); #endif r = jp_get_app_info(DBname, &buf, &rec_size); if ((r != EXIT_SUCCESS) || (rec_size<=0)) { jp_logf(JP_LOG_WARN, _("%s:%d Error reading application info %s\n"), __FILE__, __LINE__, DBname); if (buf) { free(buf); } return EXIT_FAILURE; } num = unpack_ToDoAppInfo(ai, buf, rec_size); if (buf) { free(buf); } if (num <= 0) { jp_logf(JP_LOG_WARN, _("%s:%d Error reading file: %s\n"), __FILE__, __LINE__, DBname); return EXIT_FAILURE; } return EXIT_SUCCESS; } int get_todos(ToDoList **todo_list, int sort_order) { return get_todos2(todo_list, sort_order, 1, 1, 1, 1, CATEGORY_ALL); } /* * sort_order: SORT_ASCENDING | SORT_DESCENDING * modified, deleted, private, completed: * 0 for no, 1 for yes, 2 for use prefs */ int get_todos2(ToDoList **todo_list, int sort_order, int modified, int deleted, int privates, int completed, int category) { GList *records; GList *temp_list; int recs_returned, num; struct ToDo todo; ToDoList *temp_todo_list; long keep_modified, keep_deleted, hide_completed; int keep_priv; buf_rec *br; long char_set; char *buf; pi_buffer_t *RecordBuffer; #ifdef ENABLE_MANANA long ivalue; #endif jp_logf(JP_LOG_DEBUG, "get_todos2()\n"); if (modified==2) { get_pref(PREF_SHOW_MODIFIED, &keep_modified, NULL); } else { keep_modified = modified; } if (deleted==2) { get_pref(PREF_SHOW_DELETED, &keep_deleted, NULL); } else { keep_deleted = deleted; } if (privates==2) { keep_priv = show_privates(GET_PRIVATES); } else { keep_priv = privates; } if (completed==2) { get_pref(PREF_TODO_HIDE_COMPLETED, &hide_completed, NULL); } else { hide_completed = !completed; } get_pref(PREF_CHAR_SET, &char_set, NULL); *todo_list=NULL; recs_returned = 0; #ifdef ENABLE_MANANA get_pref(PREF_MANANA_MODE, &ivalue, NULL); if (ivalue) { num = jp_read_DB_files("MaanaDB", &records); if (-1 == num) return 0; } else { num = jp_read_DB_files("ToDoDB", &records); if (-1 == num) return 0; } #else num = jp_read_DB_files("ToDoDB", &records); if (-1 == num) return 0; #endif for (temp_list = records; temp_list; temp_list = temp_list->next) { if (temp_list->data) { br=temp_list->data; } else { continue; } if (!br->buf) { continue; } if ( ((br->rt==DELETED_PALM_REC) && (!keep_deleted)) || ((br->rt==DELETED_PC_REC) && (!keep_deleted)) || ((br->rt==MODIFIED_PALM_REC) && (!keep_modified)) ) { continue; } if ((keep_priv != SHOW_PRIVATES) && (br->attrib & dlpRecAttrSecret)) { continue; } RecordBuffer = pi_buffer_new(br->size); memcpy(RecordBuffer->data, br->buf, br->size); RecordBuffer->used = br->size; if (unpack_ToDo(&todo, RecordBuffer, todo_v1) == -1) { pi_buffer_free(RecordBuffer); continue; } pi_buffer_free(RecordBuffer); if ( ((br->attrib & 0x0F) != category) && category != CATEGORY_ALL) { free_ToDo(&todo); continue; } if (hide_completed && todo.complete) { continue; } if (todo.description) { buf = charset_p2newj(todo.description, -1, char_set); if (buf) { free(todo.description); todo.description = buf; } } if (todo.note) { buf = charset_p2newj(todo.note, -1, char_set); if (buf) { free(todo.note); todo.note = buf; } } temp_todo_list = malloc(sizeof(ToDoList)); if (!temp_todo_list) { jp_logf(JP_LOG_WARN, "get_todos2(): %s\n", _("Out of memory")); break; } memcpy(&(temp_todo_list->mtodo.todo), &todo, sizeof(struct ToDo)); temp_todo_list->app_type = TODO; temp_todo_list->mtodo.rt = br->rt; temp_todo_list->mtodo.attrib = br->attrib; temp_todo_list->mtodo.unique_id = br->unique_id; temp_todo_list->next = *todo_list; *todo_list = temp_todo_list; recs_returned++; } jp_free_DB_records(&records); todo_sort(todo_list, sort_order); jp_logf(JP_LOG_DEBUG, "Leaving get_todos2()\n"); return recs_returned; } /* * This function just checks some todo fields to make sure they are valid. * It truncates the description and note fields if necessary. */ static void pc_todo_validate_correct(struct ToDo *todo) { if (todo->description) { if ((strlen(todo->description)+1 > MAX_TODO_DESC_LEN)) { jp_logf(JP_LOG_WARN, _("ToDo description text > %d, truncating to %d\n"), MAX_TODO_DESC_LEN, MAX_TODO_DESC_LEN-1); todo->description[MAX_TODO_DESC_LEN-1]='\0'; } } if (todo->note) { if ((strlen(todo->note)+1 > MAX_TODO_NOTE_LEN)) { jp_logf(JP_LOG_WARN, _("ToDo note text > %d, truncating to %d\n"), MAX_TODO_NOTE_LEN, MAX_TODO_NOTE_LEN-1); todo->note[MAX_TODO_NOTE_LEN-1]='\0'; } } } int pc_todo_write(struct ToDo *todo, PCRecType rt, unsigned char attrib, unsigned int *unique_id) { pi_buffer_t *RecordBuffer; buf_rec br; long char_set; #ifdef ENABLE_MANANA long ivalue; #endif get_pref(PREF_CHAR_SET, &char_set, NULL); if (char_set != CHAR_SET_LATIN1) { if (todo->description) { charset_j2p(todo->description, strlen(todo->description)+1, char_set); } if (todo->note) { charset_j2p(todo->note, strlen(todo->note)+1, char_set); } } pc_todo_validate_correct(todo); RecordBuffer = pi_buffer_new(0); if (pack_ToDo(todo, RecordBuffer, todo_v1) == -1) { PRINT_FILE_LINE; jp_logf(JP_LOG_WARN, "pack_ToDo %s\n", _("error")); pi_buffer_free(RecordBuffer); return EXIT_FAILURE; } br.rt=rt; br.attrib = attrib; br.buf = RecordBuffer->data; br.size = RecordBuffer->used; /* Keep unique ID intact */ if (unique_id) { br.unique_id = *unique_id; } else { br.unique_id = 0; } #ifdef ENABLE_MANANA get_pref(PREF_MANANA_MODE, &ivalue, NULL); if (ivalue) { jp_pc_write("MaanaDB", &br); } else { jp_pc_write("ToDoDB", &br); } #else jp_pc_write("ToDoDB", &br); #endif if (unique_id) { *unique_id = br.unique_id; } pi_buffer_free(RecordBuffer); return EXIT_SUCCESS; } /* * sort by: * priority, due date * due date, priority * category, priority * category, due date */ static int todo_compare(const void *v1, const void *v2) { time_t t1, t2; int r; int cat1, cat2; ToDoList **todol1, **todol2; struct ToDo *todo1, *todo2; int sort_by_priority; todol1=(ToDoList **)v1; todol2=(ToDoList **)v2; todo1=&((*todol1)->mtodo.todo); todo2=&((*todol2)->mtodo.todo); sort_by_priority = glob_Ptodo_app_info->sortByPriority; cat1 = (*todol1)->mtodo.attrib & 0x0F; cat2 = (*todol2)->mtodo.attrib & 0x0F; if (sort_by_priority == 0) { /* due date, priority */ r = todo2->indefinite - todo1->indefinite; if (r) { return r; } if ( !(todo1->indefinite) && !(todo2->indefinite) ) { t1 = mktime(&(todo1->due)); t2 = mktime(&(todo2->due)); if ( t1 < t2 ) { return 1; } if ( t1 > t2 ) { return -1; } } if (todo1->priority < todo2->priority) { return 1; } if (todo1->priority > todo2->priority) { return -1; } /* If all else fails sort alphabetically */ if (todo1->description && todo2->description) { return strcoll(todo2->description,todo1->description); } } if (sort_by_priority == 1) { /* priority, due date */ if (todo1->priority < todo2->priority) { return 1; } if (todo1->priority > todo2->priority) { return -1; } r = todo2->indefinite - todo1->indefinite; if (r) { return r; } if ( !(todo1->indefinite) && !(todo2->indefinite) ) { t1 = mktime(&(todo1->due)); t2 = mktime(&(todo2->due)); if ( t1 < t2 ) { return 1; } if ( t1 > t2 ) { return -1; } } /* If all else fails sort alphabetically */ if (todo1->description && todo2->description) { return strcoll(todo2->description,todo1->description); } } if (sort_by_priority == 2) { /* category, priority */ r = strcoll(glob_Ptodo_app_info->category.name[cat2], glob_Ptodo_app_info->category.name[cat1]); if (r) { return r; } if (todo1->priority < todo2->priority) { return 1; } if (todo1->priority > todo2->priority) { return -1; } /* If all else fails sort alphabetically */ if (todo1->description && todo2->description) { return strcoll(todo2->description,todo1->description); } } if (sort_by_priority == 3) { /* category, due date */ r = strcoll(glob_Ptodo_app_info->category.name[cat2], glob_Ptodo_app_info->category.name[cat1]); if (r) { return r; } r = todo2->indefinite - todo1->indefinite; if (r) { return r; } if ( !(todo1->indefinite) && !(todo2->indefinite) ) { t1 = mktime(&(todo1->due)); t2 = mktime(&(todo2->due)); if ( t1 < t2 ) { return 1; } if ( t1 > t2 ) { return -1; } } /* If all else fails sort alphabetically */ if (todo1->description && todo2->description) { return strcoll(todo2->description,todo1->description); } } return 0; } static int todo_sort(ToDoList **todol, int sort_order) { ToDoList *temp_todol; ToDoList **sort_todol; struct ToDoAppInfo ai; int count, i; /* Count the entries in the list */ for (count=0, temp_todol=*todol; temp_todol; temp_todol=temp_todol->next, count++) {} if (count<2) { /* No need to sort 0 or 1 items */ return EXIT_SUCCESS; } get_todo_app_info(&ai); glob_Ptodo_app_info = &ai; /* Allocate an array to be qsorted */ sort_todol = calloc(count, sizeof(ToDoList *)); if (!sort_todol) { jp_logf(JP_LOG_WARN, "todo_sort(): %s\n", _("Out of memory")); return EXIT_FAILURE; } /* Set our array to be a list of pointers to the nodes in the linked list */ for (i=0, temp_todol=*todol; temp_todol; temp_todol=temp_todol->next, i++) { sort_todol[i] = temp_todol; } /* qsort them */ qsort(sort_todol, count, sizeof(ToDoList *), todo_compare); /* Put the linked list in the order of the array */ if (sort_order==SORT_ASCENDING) { for (i=count-1; i>0; i--) { sort_todol[i]->next=sort_todol[i-1]; } sort_todol[0]->next = NULL; *todol = sort_todol[count-1]; } else { /* Descending order */ sort_todol[count-1]->next = NULL; for (i=count-1; i; i--) { sort_todol[i-1]->next=sort_todol[i]; } *todol = sort_todol[0]; } free(sort_todol); return EXIT_SUCCESS; } jpilot-1.8.1.2/calendar.c0000644000175000017500000004441411524574422012035 00000000000000/* $Id: calendar.c,v 1.16 2010-10-16 22:49:25 rikster5 Exp $ */ /******************************************************************************* * calendar.c * A module of J-Pilot http://jpilot.org * * Copyright (C) 1999-2009 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /********************************* Includes ***********************************/ #include "config.h" #include #include #include #include #include #include #include #include #include "datebook.h" #include "i18n.h" #include "utils.h" #include "log.h" #include "prefs.h" #include "libplugin.h" #include "password.h" #include "calendar.h" /* Copy AppInfo data structures */ int copy_appointment_ai_to_calendar_ai(const struct AppointmentAppInfo *aai, struct CalendarAppInfo *cai) { cai->type = calendar_v1; memcpy(&cai->category, &aai->category, sizeof(struct CategoryAppInfo)); cai->startOfWeek = aai->startOfWeek; memset(&cai->internal, '\0', sizeof(cai->internal)); return EXIT_SUCCESS; } /* Copy AppInfo data structures */ int copy_calendar_ai_to_appointment_ai(const struct CalendarAppInfo *cai, struct AppointmentAppInfo *aai) { memcpy(&aai->category, &cai->category, sizeof(struct CategoryAppInfo)); aai->startOfWeek = cai->startOfWeek; return EXIT_SUCCESS; } int copy_appointment_to_calendarEvent(const struct Appointment *appt, struct CalendarEvent *cale) { int i; cale->event = appt->event; cale->begin = appt->begin; cale->end = appt->end; cale->alarm = appt->alarm; cale->advance = appt->advance; cale->advanceUnits = appt->advanceUnits; cale->repeatType = appt->repeatType; cale->repeatForever = appt->repeatForever; cale->repeatEnd = appt->repeatEnd; cale->repeatFrequency = appt->repeatFrequency; cale->repeatDay = appt->repeatDay; for (i=0; i<7; i++) { cale->repeatDays[i] = appt->repeatDays[i]; } cale->repeatWeekstart = appt->repeatWeekstart; cale->exceptions = appt->exceptions; if (appt->exceptions > 0) { cale->exception = (struct tm *) malloc(appt->exceptions * sizeof(struct tm)); memcpy(cale->exception, appt->exception, appt->exceptions * sizeof(struct tm)); } else { cale->exception = NULL; } if (appt->description) { cale->description = strdup(appt->description); } else { cale->description = NULL; } if (appt->note) { cale->note = strdup(appt->note); } else { cale->note = NULL; } cale->location = NULL; /* No blobs */ for (i=0; iblob[i]=NULL; } cale->tz = NULL; return EXIT_SUCCESS; } int copy_calendarEvent_to_appointment(const struct CalendarEvent *cale, struct Appointment *appt) { int i; appt->event = cale->event; appt->begin = cale->begin; appt->end = cale->end; appt->alarm = cale->alarm; appt->advance = cale->advance; appt->advanceUnits = cale->advanceUnits; appt->repeatType = cale->repeatType; appt->repeatForever = cale->repeatForever; appt->repeatEnd = cale->repeatEnd; appt->repeatFrequency = cale->repeatFrequency; appt->repeatDay = cale->repeatDay; for (i=0; i<7; i++) { appt->repeatDays[i] = cale->repeatDays[i]; } appt->repeatWeekstart = cale->repeatWeekstart; appt->exceptions = cale->exceptions; if (cale->exceptions > 0) { appt->exception = (struct tm *) malloc(cale->exceptions * sizeof(struct tm)); memcpy(appt->exception, cale->exception, cale->exceptions * sizeof(struct tm)); } else { appt->exception = NULL; } if (cale->description) { appt->description = strdup(cale->description); } else { appt->description = NULL; } if (cale->note) { appt->note = strdup(cale->note); } else { appt->note = NULL; } return EXIT_SUCCESS; } int copy_appointments_to_calendarEvents(AppointmentList *al, CalendarEventList **cel) { CalendarEventList *temp_cel, *last_cel; AppointmentList *temp_al; *cel = last_cel = NULL; for (temp_al = al; temp_al; temp_al=temp_al->next) { temp_cel = malloc(sizeof(CalendarEventList)); if (!temp_cel) return -1; temp_cel->mcale.rt = temp_al->mappt.rt; temp_cel->mcale.unique_id = temp_al->mappt.unique_id; temp_cel->mcale.attrib = temp_al->mappt.attrib; copy_appointment_to_calendarEvent(&(temp_al->mappt.appt), &(temp_cel->mcale.cale)); temp_cel->app_type = CALENDAR; temp_cel->next=NULL; if (!last_cel) { *cel = last_cel = temp_cel; } else { last_cel->next = temp_cel; last_cel = temp_cel; } } return EXIT_SUCCESS; } int copy_calendarEvents_to_appointments(CalendarEventList *cel, AppointmentList **al) { AppointmentList *temp_al, *last_al; CalendarEventList *temp_cel; *al = last_al = NULL; for (temp_cel = cel; temp_cel; temp_cel=temp_cel->next) { temp_al = malloc(sizeof(AppointmentList)); if (!temp_al) return -1; temp_al->mappt.rt = temp_cel->mcale.rt; temp_al->mappt.unique_id = temp_cel->mcale.unique_id; temp_al->mappt.attrib = temp_cel->mcale.attrib; copy_calendarEvent_to_appointment(&(temp_cel->mcale.cale), &(temp_al->mappt.appt)); temp_al->app_type = DATEBOOK; temp_al->next=NULL; if (!last_al) { *al = last_al = temp_al; } else { last_al->next = temp_al; last_al = temp_al; } } return EXIT_SUCCESS; } void free_CalendarEventList(CalendarEventList **cel) { CalendarEventList *temp_cel, *temp_cel_next; for (temp_cel = *cel; temp_cel; temp_cel=temp_cel_next) { free_CalendarEvent(&(temp_cel->mcale.cale)); temp_cel_next = temp_cel->next; free(temp_cel); } *cel = NULL; } int get_calendar_app_info(struct CalendarAppInfo *cai) { int num, r; int rec_size; unsigned char *buf; pi_buffer_t pi_buf; memset(cai, 0, sizeof(*cai)); /* Put at least one entry in there */ strcpy(cai->category.name[0], "Unfiled"); r = jp_get_app_info("CalendarDB-PDat", &buf, &rec_size); if ((r != EXIT_SUCCESS) || (rec_size<=0)) { jp_logf(JP_LOG_WARN, _("%s:%d Error reading application info %s\n"), __FILE__, __LINE__, "CalendarDB-PDat"); if (buf) { free(buf); } return EXIT_FAILURE; } pi_buf.data = buf; pi_buf.used = rec_size; pi_buf.allocated = rec_size; num = unpack_CalendarAppInfo(cai, &pi_buf); if (buf) { free(buf); } if ((num<0) || (rec_size<=0)) { jp_logf(JP_LOG_WARN, _("Error reading file: %s\n"), "CalendarDB-PDat.pdb"); return EXIT_FAILURE; } return EXIT_SUCCESS; } static int calendar_compare(const void *v1, const void *v2) { int r; CalendarEventList **cel1, **cel2; struct CalendarEvent *ce1, *ce2; cel1=(CalendarEventList **)v1; cel2=(CalendarEventList **)v2; ce1=&((*cel1)->mcale.cale); ce2=&((*cel2)->mcale.cale); /* Sort by untimed event / timed event */ r = ce1->event - ce2->event; if (r) { return r; } /* Sort by appointment start time */ /* Jim Rees pointed out my sorting error */ if (!(ce1->event) && !(ce2->event)) { r = (ce2->begin.tm_hour*60 + ce2->begin.tm_min) - (ce1->begin.tm_hour*60 + ce1->begin.tm_min); if (r) { return r; } } /* If all else fails sort alphabetically */ if (ce1->description && ce2->description) { return strcoll(ce2->description,ce1->description); } return 0; } int calendar_sort(CalendarEventList **cel, int (*compare_func)(const void*, const void*)) { CalendarEventList *temp_cel; CalendarEventList **sort_cel; int count, i; /* Count the entries in the list */ for (count=0, temp_cel=*cel; temp_cel; temp_cel=temp_cel->next, count++) {} if (count<2) { /* No need to sort 0 or 1 items */ return EXIT_SUCCESS; } /* Allocate an array to be qsorted */ sort_cel = calloc(count, sizeof(CalendarEventList *)); if (!sort_cel) { jp_logf(JP_LOG_WARN, "calendar_sort(): %s\n", _("Out of memory")); return EXIT_FAILURE; } /* Set our array to be a list of pointers to the nodes in the linked list */ for (i=0, temp_cel=*cel; temp_cel; temp_cel=temp_cel->next, i++) { sort_cel[i] = temp_cel; } /* qsort them */ qsort(sort_cel, count, sizeof(CalendarEventList *), compare_func); /* Put the linked list in the order of the array */ sort_cel[count-1]->next = NULL; for (i=count-1; i>0; i--) { sort_cel[i]->next=sort_cel[i-1]; } sort_cel[0]->next = NULL; *cel = sort_cel[count-1]; free(sort_cel); return EXIT_SUCCESS; } int get_days_calendar_events(CalendarEventList **calendar_event_list, struct tm *now, int category, int *total_records) { return get_days_calendar_events2(calendar_event_list, now, 1, 1, 1, category, total_records); } #ifdef ENABLE_DATEBK static int calendar_db3_hack_date(struct CalendarEvent *cale, struct tm *today) { int t1, t2; if (today==NULL) { return EXIT_SUCCESS; } if (!cale->note) { return EXIT_SUCCESS; } if (strlen(cale->note) > 8) { if ((cale->note[0]=='#') && (cale->note[1]=='#')) { if (cale->note[2]=='f' || cale->note[2]=='F') { /* Check to see if its in the future */ t1 = cale->begin.tm_mday + cale->begin.tm_mon*31 + cale->begin.tm_year*372; t2 = today->tm_mday + today->tm_mon*31 + today->tm_year*372; if (t1 > t2) return EXIT_SUCCESS; /* We found some silly hack, so we lie about the date */ /* memcpy(&(cale->begin), today, sizeof(struct tm));*/ /* memcpy(&(cale->end), today, sizeof(struct tm));*/ cale->begin.tm_mday = today->tm_mday; cale->begin.tm_mon = today->tm_mon; cale->begin.tm_year = today->tm_year; cale->begin.tm_wday = today->tm_wday; cale->begin.tm_yday = today->tm_yday; cale->begin.tm_isdst = today->tm_isdst; cale->end.tm_mday = today->tm_mday; cale->end.tm_mon = today->tm_mon; cale->end.tm_year = today->tm_year; cale->end.tm_wday = today->tm_wday; cale->end.tm_yday = today->tm_yday; cale->end.tm_isdst = today->tm_isdst; /* If the appointment has an end date, and today is past the end * date, because of this hack we would never be able to view * it anymore (or delete it). */ if (!(cale->repeatForever)) { if (compareTimesToDay(today, &(cale->repeatEnd))==1) { /* end date is before start date, illegal appointment */ /* make it legal, by only floating up to the end date */ memcpy(&(cale->begin), &(cale->repeatEnd), sizeof(struct tm)); memcpy(&(cale->end), &(cale->repeatEnd), sizeof(struct tm)); } } } } } return EXIT_SUCCESS; } #endif /* * If NULL is passed in for date, then all appointments will be returned. * modified, deleted and private, 0 for no, 1 for yes, 2 for use prefs */ int get_days_calendar_events2(CalendarEventList **calendar_event_list, struct tm *now, int modified, int deleted, int privates, int category, int *total_records) { GList *records; GList *temp_list; int recs_returned, num; struct CalendarEvent cale; CalendarEventList *temp_ce_list; long keep_modified, keep_deleted; int keep_priv; buf_rec *br; long char_set; long datebook_version; char *buf; pi_buffer_t RecordBuffer; int i; #ifdef ENABLE_DATEBK long use_db3_tags; time_t ltime; struct tm today; #endif struct Appointment appt; #ifdef ENABLE_DATEBK time(<ime); /* Copy into stable memory */ memcpy(&today, localtime(<ime), sizeof(struct tm)); get_pref(PREF_USE_DB3, &use_db3_tags, NULL); #endif jp_logf(JP_LOG_DEBUG, "get_days_calendar_events()\n"); if (modified==2) { get_pref(PREF_SHOW_MODIFIED, &keep_modified, NULL); } else { keep_modified = modified; } if (deleted==2) { get_pref(PREF_SHOW_DELETED, &keep_deleted, NULL); } else { keep_deleted = deleted; } if (privates==2) { keep_priv = show_privates(GET_PRIVATES); } else { keep_priv = privates; } get_pref(PREF_CHAR_SET, &char_set, NULL); *calendar_event_list=NULL; recs_returned = 0; get_pref(PREF_DATEBOOK_VERSION, &datebook_version, NULL); if (datebook_version) { num = jp_read_DB_files("CalendarDB-PDat", &records); } else { num = jp_read_DB_files("DatebookDB", &records); } if (-1 == num) return 0; if (total_records) *total_records = num; for (temp_list = records; temp_list; temp_list = temp_list->next) { if (temp_list->data) { br=temp_list->data; } else { continue; } if (!br->buf) { continue; } if ( ((br->rt==DELETED_PALM_REC) && (!keep_deleted)) || ((br->rt==DELETED_PC_REC) && (!keep_deleted)) || ((br->rt==MODIFIED_PALM_REC) && (!keep_modified)) ) { continue; } if ((keep_priv != SHOW_PRIVATES) && (br->attrib & dlpRecAttrSecret)) { continue; } if ( ((br->attrib & 0x0F) != category) && category != CATEGORY_ALL) { continue; } cale.exception=NULL; cale.description=NULL; cale.note=NULL; cale.location=NULL; for (i=0; i< MAX_BLOBS; i++) { cale.blob[i]=NULL; } cale.tz=NULL; /* This is kind of a hack to set the pi_buf directly, but its faster */ RecordBuffer.data = br->buf; RecordBuffer.used = br->size; RecordBuffer.allocated = br->size; if (datebook_version) { if (unpack_CalendarEvent(&cale, &RecordBuffer, calendar_v1) == -1) { continue; } } else { if (unpack_Appointment(&appt, &RecordBuffer, calendar_v1) == -1) { continue; } copy_appointment_to_calendarEvent(&appt, &cale); free_Appointment(&appt); } //FIXME: verify db3 hack works with new calendar code #ifdef ENABLE_DATEBK if (use_db3_tags) { calendar_db3_hack_date(&cale, &today); } #endif if (now!=NULL) { if (! calendar_isApptOnDate(&cale, now)) { free_CalendarEvent(&cale); continue; } } if (cale.description) { buf = charset_p2newj(cale.description, -1, char_set); if (buf) { free(cale.description); cale.description = buf; } } if (cale.note) { buf = charset_p2newj(cale.note, -1, char_set); if (buf) { free(cale.note); cale.note = buf; } } if (cale.location) { buf = charset_p2newj(cale.location, -1, char_set); if (buf) { free(cale.location); cale.location = buf; } } temp_ce_list = malloc(sizeof(CalendarEventList)); if (!temp_ce_list) { jp_logf(JP_LOG_WARN, "get_days_calendar_events2(): %s\n", _("Out of memory")); free_CalendarEvent(&cale); break; } memcpy(&(temp_ce_list->mcale.cale), &cale, sizeof(struct CalendarEvent)); temp_ce_list->app_type = CALENDAR; temp_ce_list->mcale.rt = br->rt; temp_ce_list->mcale.attrib = br->attrib; temp_ce_list->mcale.unique_id = br->unique_id; temp_ce_list->next = *calendar_event_list; *calendar_event_list = temp_ce_list; recs_returned++; } jp_free_DB_records(&records); calendar_sort(calendar_event_list, calendar_compare); jp_logf(JP_LOG_DEBUG, "Leaving get_days_calendar_events()\n"); return recs_returned; } int pc_calendar_write(struct CalendarEvent *cale, PCRecType rt, unsigned char attrib, unsigned int *unique_id) { Appointment_t appt; pi_buffer_t *RecordBuffer; buf_rec br; long char_set; long datebook_version; int r; get_pref(PREF_DATEBOOK_VERSION, &datebook_version, NULL); get_pref(PREF_CHAR_SET, &char_set, NULL); if (char_set != CHAR_SET_LATIN1) { if (cale->description) charset_j2p(cale->description, strlen(cale->description)+1, char_set); if (cale->note) charset_j2p(cale->note, strlen(cale->note)+1, char_set); if (datebook_version) { if (cale->location) charset_j2p(cale->location, strlen(cale->location)+1, char_set); } } RecordBuffer = pi_buffer_new(0); if (datebook_version) { if (pack_CalendarEvent(cale, RecordBuffer, calendar_v1) == -1) { PRINT_FILE_LINE; jp_logf(JP_LOG_WARN, "pack_CalendarEvent %s\n", _("error")); return EXIT_FAILURE; } } else { copy_calendarEvent_to_appointment(cale, &appt); r = pack_Appointment(&appt, RecordBuffer, datebook_v1); free_Appointment(&appt); if (r == -1) { PRINT_FILE_LINE; jp_logf(JP_LOG_WARN, "pack_Appointment %s\n", _("error")); return EXIT_FAILURE; } } br.rt=rt; br.attrib = attrib; br.buf = RecordBuffer->data; br.size = RecordBuffer->used; /* Keep unique ID intact */ if ((unique_id) && (*unique_id!=0)) { br.unique_id = *unique_id; } else { br.unique_id = 0; } if (datebook_version) { jp_pc_write("CalendarDB-PDat", &br); } else { jp_pc_write("DatebookDB", &br); } if (unique_id) { *unique_id = br.unique_id; } pi_buffer_free(RecordBuffer); return EXIT_SUCCESS; } jpilot-1.8.1.2/weekview_gui.c0000644000175000017500000003343611524574423012761 00000000000000/* $Id: weekview_gui.c,v 1.56 2010-11-10 03:57:48 rikster5 Exp $ */ /******************************************************************************* * weekview_gui.c * A module of J-Pilot http://jpilot.org * * Copyright (C) 1999-2002 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /********************************* Includes ***********************************/ #include "config.h" #include #include #include #include #include "pi-calendar.h" #include "i18n.h" #include "utils.h" #include "prefs.h" #include "log.h" #include "datebook.h" #include "calendar.h" #include "print.h" #include "jpilot.h" /******************************* Global vars **********************************/ extern int datebk_category; extern int glob_app; extern GtkTooltips *glob_tooltips; GtkWidget *weekview_window=NULL; static GtkWidget *week_day_label[8]; static GtkWidget *week_day_text[8]; static GObject *week_day_text_buffer[8]; static struct tm glob_week_date; /****************************** Prototypes ************************************/ static int clear_weeks_appts(GtkWidget **day_texts); static int display_weeks_appts(struct tm *date_in, GtkWidget **day_texts); /****************************** Main Code *************************************/ static gboolean cb_destroy(GtkWidget *widget) { weekview_window = NULL; return FALSE; } void cb_weekview_quit(GtkWidget *widget, gpointer data) { int w, h; gdk_window_get_size(weekview_window->window, &w, &h); set_pref(PREF_WEEKVIEW_WIDTH, w, NULL, FALSE); set_pref(PREF_WEEKVIEW_HEIGHT, h, NULL, FALSE); gtk_widget_destroy(weekview_window); } /* This is where week printing is kicked off from */ static void cb_week_print(GtkWidget *widget, gpointer data) { long paper_size; jp_logf(JP_LOG_DEBUG, "cb_week_print called\n"); if (print_gui(weekview_window, DATEBOOK, 2, 0x02) == DIALOG_SAID_PRINT) { get_pref(PREF_PAPER_SIZE, &paper_size, NULL); if (paper_size==1) { print_weeks_appts(&glob_week_date, PAPER_A4); } else { print_weeks_appts(&glob_week_date, PAPER_Letter); } } } static void freeze_weeks_appts(void) { int i; for (i=0; i<8; i++) { gtk_widget_freeze_child_notify(week_day_text[i]); } } static void thaw_weeks_appts(void) { int i; for (i=0; i<8; i++) { gtk_widget_thaw_child_notify(week_day_text[i]); } } static void cb_week_move(GtkWidget *widget, gpointer data) { if (GPOINTER_TO_INT(data)==-1) { sub_days_from_date(&glob_week_date, 7); } if (GPOINTER_TO_INT(data)==1) { add_days_to_date(&glob_week_date, 7); } freeze_weeks_appts(); clear_weeks_appts(week_day_text); display_weeks_appts(&glob_week_date, week_day_text); thaw_weeks_appts(); } static int clear_weeks_appts(GtkWidget **day_texts) { int i; GObject *text_buffer; for (i=0; i<8; i++) { text_buffer = G_OBJECT(gtk_text_view_get_buffer(GTK_TEXT_VIEW(day_texts[i]))); gtk_text_buffer_set_text(GTK_TEXT_BUFFER(text_buffer), "", -1); } return EXIT_SUCCESS; } /* * This function requires that date_in be the date of the first day of * the week (be it a Sunday, or a Monday). * It will then print the next eight days to the day_texts array of * text boxes. */ static int display_weeks_appts(struct tm *date_in, GtkWidget **day_texts) { CalendarEventList *ce_list; CalendarEventList *temp_cel; struct tm date; GtkWidget **text; char desc[256]; char datef[20]; int n, i; const char *svalue; char str[82]; char str_dow[32]; char short_date[32]; char default_date[]="%x"; int now_today; #ifdef ENABLE_DATEBK int ret; int cat_bit; int db3_type; long use_db3_tags; struct db4_struct db4; #endif GObject *text_buffer; char *markup_str; ce_list = NULL; text = day_texts; memcpy(&date, date_in, sizeof(struct tm)); get_pref(PREF_SHORTDATE, NULL, &svalue); if (svalue==NULL) { svalue = default_date; } /* Label each day including special markup for TODAY */ for (i=0; i<8; i++, add_days_to_date(&date, 1)) { strftime(short_date, sizeof(short_date), svalue, &date); jp_strftime(str_dow, sizeof(str_dow), "%A", &date); /* Determine today for highlighting */ now_today = get_highlighted_today(&date); g_snprintf(str, sizeof(str), "%s %s", str_dow, short_date); if (date.tm_mday == now_today) { markup_str = g_markup_printf_escaped("%s", str); gtk_widget_set_name(GTK_WIDGET(text[i]), "today"); } else { markup_str = g_markup_printf_escaped("%s", str); gtk_widget_set_name(GTK_WIDGET(text[i]), ""); } gtk_label_set_markup(GTK_LABEL(week_day_label[i]), markup_str); g_free(markup_str); } /* Get all of the appointments */ get_days_calendar_events2(&ce_list, NULL, 2, 2, 2, CATEGORY_ALL, NULL); memcpy(&date, date_in, sizeof(struct tm)); /* Iterate through 8 days */ for (n=0; n<8; n++, add_days_to_date(&date, 1)) { text_buffer = G_OBJECT(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text[n]))); for (temp_cel = ce_list; temp_cel; temp_cel=temp_cel->next) { #ifdef ENABLE_DATEBK get_pref(PREF_USE_DB3, &use_db3_tags, NULL); if (use_db3_tags) { ret = db3_parse_tag(temp_cel->mcale.cale.note, &db3_type, &db4); jp_logf(JP_LOG_DEBUG, "category = 0x%x\n", db4.category); cat_bit=1<mcale.cale), &date)) { if (temp_cel->mcale.cale.event) { strcpy(desc, "*"); } else { get_pref_time_no_secs(datef); strftime(desc, sizeof(desc), datef, &(temp_cel->mcale.cale.begin)); strcat(desc, " "); } if (temp_cel->mcale.cale.description) { strncat(desc, temp_cel->mcale.cale.description, 70); /* FIXME: This kind of truncation is bad for UTF-8 */ desc[62]='\0'; } /* FIXME: Add location in parentheses (loc) as the Palm does. * We would need to check strlen, etc., before adding */ remove_cr_lfs(desc); /* Append number of anniversary years if enabled & appropriate */ append_anni_years(desc, 62, &date, NULL, &temp_cel->mcale.cale); strcat(desc, "\n"); gtk_text_buffer_insert_at_cursor(GTK_TEXT_BUFFER(text_buffer),desc,-1); } } } free_CalendarEventList(&ce_list); return EXIT_SUCCESS; } /* Called when a day is clicked on the week view */ static void cb_enter_selected_day(GtkWidget *widget, GdkEvent *event, gpointer data) { struct tm date; if (glob_app != DATEBOOK) return; date = glob_week_date; /* Calculate the date which the user has clicked on */ add_days_to_date(&date, GPOINTER_TO_INT(data)); /* Redisplay the day view based on this date */ datebook_gui_setdate(date.tm_year, date.tm_mon, date.tm_mday); } void weekview_gui(struct tm *date_in) { GtkWidget *button; GtkWidget *align; GtkWidget *vbox, *hbox; GtkWidget *hbox_temp; GtkWidget *vbox_left, *vbox_right; GtkAccelGroup *accel_group; long fdow; int i; char title[200]; long w, h, show_tooltips; if (weekview_window) { /* Delete any existing window to ensure that new window is biased * around currently selected date and so that the new window * contents are updated with any changes on the day view. */ gtk_widget_destroy(weekview_window); } memcpy(&glob_week_date, date_in, sizeof(struct tm)); get_pref(PREF_WEEKVIEW_WIDTH, &w, NULL); get_pref(PREF_WEEKVIEW_HEIGHT, &h, NULL); get_pref(PREF_SHOW_TOOLTIPS, &show_tooltips, NULL); g_snprintf(title, sizeof(title), "%s %s", PN, _("Weekly View")); weekview_window = gtk_widget_new(GTK_TYPE_WINDOW, "type", GTK_WINDOW_TOPLEVEL, "title", title, NULL); gtk_window_set_default_size(GTK_WINDOW(weekview_window), w, h); gtk_container_set_border_width(GTK_CONTAINER(weekview_window), 10); gtk_signal_connect(GTK_OBJECT(weekview_window), "destroy", GTK_SIGNAL_FUNC(cb_destroy), weekview_window); vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(weekview_window), vbox); /* Make accelerators for some buttons window */ accel_group = gtk_accel_group_new(); gtk_window_add_accel_group(GTK_WINDOW(gtk_widget_get_toplevel(vbox)), accel_group); /* This box has the close button and arrows in it */ align = gtk_alignment_new(0.5, 0.5, 0, 0); gtk_box_pack_start(GTK_BOX(vbox), align, FALSE, FALSE, 0); hbox_temp = gtk_hbutton_box_new(); gtk_button_box_set_spacing(GTK_BUTTON_BOX(hbox_temp), 6); gtk_container_set_border_width(GTK_CONTAINER(hbox_temp), 6); gtk_container_add(GTK_CONTAINER(align), hbox_temp); /* Make a left arrow for going back a week */ button = gtk_button_new_from_stock(GTK_STOCK_GO_BACK); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_week_move), GINT_TO_POINTER(-1)); gtk_box_pack_start(GTK_BOX(hbox_temp), button, FALSE, FALSE, 0); /* Accelerator key for left arrow */ gtk_widget_add_accelerator(GTK_WIDGET(button), "clicked", accel_group, GDK_Left, GDK_MOD1_MASK, GTK_ACCEL_VISIBLE); set_tooltip(show_tooltips, glob_tooltips, button, _("Last week Alt+LeftArrow"), NULL); /* Close button */ button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_weekview_quit), NULL); /* Closing the window via a delete event uses the same cleanup routine */ gtk_signal_connect(GTK_OBJECT(weekview_window), "delete_event", GTK_SIGNAL_FUNC(cb_weekview_quit), NULL); gtk_box_pack_start(GTK_BOX(hbox_temp), button, FALSE, FALSE, 0); /* Print button */ button = gtk_button_new_from_stock(GTK_STOCK_PRINT); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_week_print), weekview_window); gtk_box_pack_start(GTK_BOX(hbox_temp), button, FALSE, FALSE, 0); /* Make a right arrow for going forward a week */ button = gtk_button_new_from_stock(GTK_STOCK_GO_FORWARD); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_week_move), GINT_TO_POINTER(1)); gtk_box_pack_start(GTK_BOX(hbox_temp), button, FALSE, FALSE, 0); /* Accelerator key for right arrow */ gtk_widget_add_accelerator(GTK_WIDGET(button), "clicked", accel_group, GDK_Right, GDK_MOD1_MASK, GTK_ACCEL_VISIBLE); set_tooltip(show_tooltips, glob_tooltips, button, _("Next week Alt+RightArrow"), NULL); get_pref(PREF_FDOW, &fdow, NULL); hbox = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 0); vbox_left = gtk_vbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), vbox_left, TRUE, TRUE, 0); vbox_right = gtk_vbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), vbox_right, TRUE, TRUE, 0); /* Get the first day of the week */ sub_days_from_date(&glob_week_date, (7 - fdow + glob_week_date.tm_wday)%7); /* Make 8 boxes, 1 for each day, to hold appt. descriptions */ for (i=0; i<8; i++) { week_day_label[i] = gtk_label_new(""); gtk_misc_set_alignment(GTK_MISC(week_day_label[i]), 0.0, 0.5); week_day_text[i] = gtk_text_view_new(); week_day_text_buffer[i] = G_OBJECT(gtk_text_view_get_buffer(GTK_TEXT_VIEW(week_day_text[i]))); gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(week_day_text[i]), FALSE); gtk_text_view_set_editable(GTK_TEXT_VIEW(week_day_text[i]), FALSE); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(week_day_text[i]), GTK_WRAP_WORD); gtk_container_set_border_width(GTK_CONTAINER(week_day_text[i]), 1); gtk_text_buffer_create_tag(GTK_TEXT_BUFFER(week_day_text_buffer[i]), "gray_background", "background", "gray", NULL); gtk_widget_set_usize(GTK_WIDGET(week_day_text[i]), 10, 10); gtk_signal_connect(GTK_OBJECT(week_day_text[i]), "button_release_event", GTK_SIGNAL_FUNC(cb_enter_selected_day), GINT_TO_POINTER(i)); if (i>3) { gtk_box_pack_start(GTK_BOX(vbox_right), week_day_label[i], FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox_right), week_day_text[i], TRUE, TRUE, 0); } else { gtk_box_pack_start(GTK_BOX(vbox_left), week_day_label[i], FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox_left), week_day_text[i], TRUE, TRUE, 0); } } display_weeks_appts(&glob_week_date, week_day_text); gtk_widget_show_all(weekview_window); } jpilot-1.8.1.2/install_user.h0000644000175000017500000000215311524574422012767 00000000000000/* $Id: install_user.h,v 1.3 2010-10-15 03:28:59 rikster5 Exp $ */ /******************************************************************************* * jpilot.c * A module of J-Pilot http://jpilot.org * * Copyright (C) 1999-2003 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef __INSTALL_USER_H__ #define __INSTALL_USER_H__ #include int install_user_gui(GtkWidget *main_window); #endif jpilot-1.8.1.2/icons/0000755000175000017500000000000011702310021011261 500000000000000jpilot-1.8.1.2/icons/clist_mini_icons.h0000644000175000017500000001111011547063267014721 00000000000000/* $Id: clist_mini_icons.h,v 1.6 2011-04-06 12:43:45 rousseau Exp $ */ /******************************************************************************* * clist_mini_icons.h * A module of J-Pilot http://jpilot.org * * Copyright (C) 1999-2010 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /* Note pixmap */ const char * xpm_note[] = { "12 16 3 1", " c None", ". c #000000", "+ c #CCCCCC", " ", " ...... ", " .+++.+. ", " .+++.++. ", " .+++.+++. ", " .+++..... ", " .+++++++. ", " .+++++++. ", " .+++++++. ", " .+++++++. ", " .+++++++. ", " .+++++++. ", " .+++++++. ", " ......... ", " ", " "}; /* Alarm pixmap */ const char * xpm_alarm[] = { "16 16 4 1", "# c None", ". c None", "a c #000000", "b c #cccccc", "................", ".#aaa.aaa.aaa#..", ".aaaaabbbaaaaa..", ".aaabbbbbbbaaa..", ".aabbbbbbbbbaa..", "..abbbbabbbba...", ".abbbbbabbbbba..", ".abaaaaabbbbba..", ".abbbbbbbbbbba..", "..abbbbbbbbba...", "..abbbbbbbbba...", "...abbbbbbba....", "....aaaaaaa.....", "....aaa.aaa.....", "................", "................"}; /* Old alarm pixmap: < 8/28/2009 */ /* char * xpm_alarm[] = { "16 16 3 1", " c None", ". c #000000000000", "X c #cccccccccccc", " ", " . . ", " ... ... ", " ........... ", " .XXXXXXXX. ", " .XXXX.XXXXX. ", " .XXXXX.XXXXXX. ", " .X.....XXXXXX. ", " .XXXXXXXXXXX. ", " .XXXXXXXXX. ", " .XXXXXXX. ", " ......... ", " . . ", " .... .... ", " ", " " }; */ /* ToDo checkbox, blank */ const char * xpm_check[] = { "12 16 3 1", " c None", ". c #000000000000", "X c #cccccccccccc", " ", " ......... ", " .XXXXXXX. ", " .X X. ", " .X X. ", " .X X. ", " .X X. ", " .X X. ", " .X X. ", " .X X. ", " .X X. ", " .X X. ", " .XXXXXXX. ", " ......... ", " ", " " }; /* ToDo checkbox, checked */ const char * xpm_checked[] = { "12 16 4 1", " c None", ". c #000000000000", "X c #cccccccccccc", "R c #FFFF00000000", " ", " ......... ", " .XXXXXXX.RR", " .X XRR ", " .X RR ", " .X RR. ", " .X RR. ", " .X RRX. ", " RR RR X. ", " .RR RR X. ", " .X RR X. ", " .X R X. ", " .XXXXXXX. ", " ......... ", " ", " " }; const char * xpm_float_check[] = { "14 16 4 1", " c None", ". c #000000000000", "X c #CCCCCCCCCCCC", "W c #FFFFFFFFFFFF", " ", " .... ", " ...... ", " ..XXXX.. ", " ..XWWWWX.. ", " ..XWWWWWWX.. ", " ..XWWWWWWX.. ", " ..XWWWWWWX.. ", " ..XWWWWWWX.. ", " ..XWWWWWWX.. ", " ..XWWWWX.. ", " ..XXXX.. ", " ...... ", " .... ", " ", " " }; const char * xpm_float_checked[] = { "14 16 5 1", " c None", ". c #000000000000", "X c #cccccccccccc", "R c #FFFF00000000", "W c #FFFFFFFFFFFF", " ", " .... ", " ...... RR ", " ..XXXX.RR ", " ..XWWWWRR. ", " ..XWWWWRRX.. ", " ..XWWWWRRX.. ", " ..XWWWRRWX.. ", " .RRWWRRWWX.. ", " ..RRWRRWWX.. ", " ..XRRWWX.. ", " ..XRXX.. ", " ...... ", " .... ", " ", " " }; /* SDcard pixmap */ const char * xpm_sdcard[] = { "12 16 3 1", " c None", ". c #000000", "+ c #CCCCCC", " ", " ...... ", " .+++++. ", " .++++++. ", " .+++++++. ", " .+++++++. ", " .+++++++. ", " .+++++++. ", " .+++++++. ", " .+++++++. ", " .+.+.+.+. ", " .+.+.+.+. ", " .+.+.+.+. ", " ......... ", " ", " "}; jpilot-1.8.1.2/icons/README0000644000175000017500000000047210445274002012077 00000000000000Ubiratan Oliverio contributed jpilot-icon1.xpm, Judd reduced the amount of colors vik vik@asi.org contributed jpilot-icon2.xpm Robert Anderson made icon2 background clear -> icon3 Judd Montgomery took icon1, lightened it, and reduced it to 16 colors and named it icon4 jpilot-1.8.1.2/icons/memo.xpm0000644000175000017500000000534211020634573012706 00000000000000/* XPM */ static char * memo_xpm[] = { "40 40 65 1", " c None", ". c #020202", "+ c #EEEEEE", "@ c #9A9A9A", "# c #4E4E4E", "$ c #363636", "% c #828282", "& c #262626", "* c #B2B2B2", "= c #727272", "- c #1A1A1A", "; c #DADADA", "> c #626262", ", c #121212", "' c #3E3E3E", ") c #C2C2C2", "! c #F2F2F2", "~ c #5A5A5A", "{ c #F6F6F6", "] c #929292", "^ c #424242", "/ c #2A2A2A", "( c #FAFAFA", "_ c #C6C6C6", ": c #0E0E0E", "< c #525252", "[ c #6E6E6E", "} c #464646", "| c #A6A6A6", "1 c #7A7A7A", "2 c #2E2E2E", "3 c #CACACA", "4 c #0A0A0A", "5 c #8A8A8A", "6 c #FEFEFE", "7 c #CECECE", "8 c #BABABA", "9 c #E6E6E6", "0 c #1E1E1E", "a c #666666", "b c #5E5E5E", "c c #D6D6D6", "d c #A2A2A2", "e c #565656", "f c #DEDEDE", "g c #060606", "h c #161616", "i c #AEAEAE", "j c #323232", "k c #767676", "l c #E2E2E2", "m c #4A4A4A", "n c #D2D2D2", "o c #868686", "p c #7E7E7E", "q c #969696", "r c #BEBEBE", "s c #9E9E9E", "t c #222222", "u c #B6B6B6", "v c #8E8E8E", "w c #6A6A6A", "x c #3A3A3A", "y c #EAEAEA", "z c #AAAAAA", " [[mj-0jma ", " 4.............[ ", " e.......h&0:.......m ", " .....2<~~>>b>~#x0.....1 ", " >....'>=wb+66qebeb~#2..g.e ", " j...$bpv5a66r(6n~~~##e^0::.j ", " j...m1](66!67eey)~e~e#}mmjhhg2 ", " >...bp1(6yl66)e5%~a~b~e#}''/0&g' ", " >...*6666([~r;596]>u>~~ee}x2'0t&.e ", " ...o66l(6)e]na]6ie16se~~76((6666l)c66q<66#'/k66.m^$ ", " ..x>ee+66=|6{{{6685k>en6lu6u'$'66[.2ej ", " ..me~>e6(66((6675%opaa!6666#}2y66:g&~^ ", "a..~e76((|ak=sn66{8~n6lm^b66m-0-.#be", "2.&<<#~b~e66c<18(66!sae<(6~#'66s,t0,.e>e", "h.2#}e~eeb@6{96667kb~eb+6n}xz6+-/0hh.#a~", "h./m}#e~~be96667~~~~%l666#m#66j/&0-:.#=~", "/.&m^m#e~~e1668~ee5966(6sm'!6}&t&0-:.b=e", "m.0'^^}", "a..$$'m}#e<~p6{c66(p<[65^^66+&&0-0:..[= ", " ..2$x'^##<#e(666s~#}66^j+6(6200-:g..p1 ", " ..t$$$'^m}#^r66~mm'f6@/o6({6a:-hg..}o% ", " ...jj$$$'^}^=6r2^#y66/x6{((68.,,...v|o ", " a..&//j$$x'x^66@)666kh66({{66:4....*dp ", " ..:&t/j2$x$/n666((6)n6+(({6{^....@3s ", " #.g-0&t&j2$&q((({{{6((({66(b....2n85 ", " .:h-00t&&/0a6{{({({6{66(q...g..ffr ", " =.-0,-0000h}6(({({((6(s.......8ln% ", " m.00.:---,'66({(66!v........z!fs ", " /.t0..,h.j6({66;kg........8yfu ", " /g224...}66(_m.........:7fnu ", " '.jx2..m6_4..........%3fnd ", " -&x}$...........h1*_r*p ", " ^&j#<#}'$j2'w[[=1=[p51 ", " e<<~~>ee "}; jpilot-1.8.1.2/icons/appl_menu_icons.h0000644000175000017500000001344111547063267014560 00000000000000/* $Id: appl_menu_icons.h,v 1.4 2011-04-06 13:03:56 rousseau Exp $ */ /******************************************************************************* * appl_menu_icons.h * A module of J-Pilot http://jpilot.org * * Copyright (C) 1999-2010 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ static const char *todo_menu_icon[]={ "14 14 38 1", "# c None", ". c #000000", "a c #ffffff", "b c #f7f3f7", "c c #636563", "d c #adaaad", "e c #e7e3e7", "f c #c6c7c6", "g c #737573", "h c #b5b6b5", "i c #d6cfce", "j c #5a5d5a", "k c #5a595a", "l c #525552", "m c #c67d7b", "n c #ad7173", "o c #ad7d7b", "p c #9c9a9c", "q c #bd5d5a", "r c #9c0000", "s c #ad4142", "t c #a51c18", "u c #b54d4a", "v c #efd7d6", "w c #b53c39", "x c #ad3431", "y c #d69294", "z c #a52021", "A c #dea6a5", "B c #9c0808", "C c #b54542", "D c #bd5552", "E c #a51410", "F c #ad2421", "G c #ad2c29", "H c #ad2829", "I c #bdbebd", "J c #b5b2b5", "...........###", ".aaaaaaabcd.##", ".aaaaaaafgah.#", ".aaaaaaaijkl.#", ".aaaaaaamnop.#", ".aaaaaaqrsah.#", ".atuaavrwaah.#", ".axryazraaah.#", ".aABryrwaaah.#", ".aaCrDraaaah.#", ".aaAErFaaaah.#", ".aaaGHaaaaah.#", ".aIhhhhhhhhJ.#", ".............#"}; static const char *addr_menu_icon[] = { "16 16 43 1", " c None", ". c #000000", "+ c #BDBEBD", "@ c #FFFFFF", "# c #A5A2A5", "$ c #FFFBFF", "% c #CEB69C", "& c #8C7152", "* c #846D52", "= c #BDB2A5", "- c #EFEBE7", "; c #F7F3F7", "> c #AD8E6B", ", c #DED3BD", "' c #5A4129", ") c #7B6D5A", "! c #313031", "~ c #525552", "{ c #EFDFCE", "] c #F7EFE7", "^ c #735D42", "/ c #736152", "( c #7392AD", "_ c #C6655A", ": c #425973", "< c #D6D7D6", "[ c #ADAEAD", "} c #9C9A9C", "| c #4A6984", "1 c #9CBAD6", "2 c #4A6584", "3 c #314D6B", "4 c #63798C", "5 c #5A7D94", "6 c #5A7994", "7 c #39556B", "8 c #314963", "9 c #EFEFEF", "0 c #C6C7C6", "a c #5A5D5A", "b c #7B797B", "c c #E7DFD6", "d c #948E84", " .............. ", ".+@@@@@@@@@@@@#.", ".@$%&*=@@@$@@@-.", ".@;>,')@!~@~@@-.", ".@;{]^/@@@@@@@-.", ".@$(_:<@[@}[@@-.", ".@|1234@@@@@@@-.", ".@56|78@}}90@@-.", ".@@@@@@@@@@@@@-.", ".@@a@a@b@}@0@@c.", ".#-----------cd.", " .............. ", " ", " ", " ", " "}; static const char *date_menu_icon[] = { "16 16 68 1", " c None", ". c #000000", "+ c #FFFFFF", "@ c #E7E3E7", "# c #C6C3C6", "$ c #F7F3F7", "% c #FFFBFF", "& c #ADAAAD", "* c #525152", "= c #101410", "- c #101010", "; c #393839", "> c #6B6D6B", ", c #ADAEAD", "' c #737173", ") c #5A5D5A", "! c #424142", "~ c #BD8E31", "{ c #EFB239", "] c #423010", "^ c #E7E7E7", "/ c #B5B6B5", "( c #636163", "_ c #DEDBDE", ": c #737573", "< c #4A494A", "[ c #EFB639", "} c #F7D794", "| c #F7BA42", "1 c #946D21", "2 c #A5A2A5", "3 c #949294", "4 c #FFE7BD", "5 c #FFD784", "6 c #FFC342", "7 c #CECFCE", "8 c #080808", "9 c #BDBABD", "0 c #BD8A31", "a c #FFE3B5", "b c #FFD78C", "c c #D6D3D6", "d c #313431", "e c #8C8A8C", "f c #313029", "g c #CECFBD", "h c #E7AE39", "i c #FFDFA5", "j c #FFCB5A", "k c #D69E31", "l c #F7F7F7", "m c #392808", "n c #8C6D21", "o c #292008", "p c #8C8E8C", "q c #C6C3AD", "r c #DEDFDE", "s c #CECBCE", "t c #C6C7C6", "u c #393C31", "v c #ADAE9C", "w c #D6D7D6", "x c #BDBEBD", "y c #B5B2B5", "z c #424542", "A c #A5A6A5", "B c #9C9A9C", "C c #9C9E9C", " ......... ", " .+++++++@#. ", " .+$$$$$$#%&. ", " .*=.-;>$,')!.", " ..~{]^/.(_:<=.", " ..[}|1%$^.(/23.", " .[4566+789.2^3.", ".0ab666cde$&fg3.", ".hij66kde+l_-^3.", ".mn666o>++pd.q3.", ".r$+++cd&+$s-^3.", ".&@l+++c<%t2uv3.", " .7wl%+%l79.2^3.", " ..x9s:s,y.)t^3.", " ..2,zAB. c #111111", ", c #0D0D0D", "' c #C0C0C0", ") c #080808", "! c #808080", "~ c #040404", "{ c #1B1FE8", "] c #870C0C", "^ c #DC261E", "/ c #E52920", "( c #DB251D", "_ c #D1221B", ": c #CB211A", "< c #BA1B16", "[ c #B11915", "} c #F2DE09", "| c #8F0E0D", "1 c #D3231C", "2 c #C21E18", "3 c #A91613", "4 c #A01311", "5 c #98110F", " +++++++++++++++", "++++++++++++++++", "++@@@@#$%&*=@@@@", "++@@-;#$%&*>=@@@", "++@@-;#$%&*>,=@@", "++@@-'..%&*>,)=@", "++@@@-!.'+*>,)~=", "++@@-'{'..!>,)~=", "++@@-'.....>,)~=", "++@@@-'...!>,==@", "++@@@-....=>,=@@", "++@@@-''''!=,=@@", "++@@@@]=!!!!====", "++@@@^]!'.'']]@=", "++@@/(_:'<[]}}|]", "++@@/^1:2<[345|]"}; jpilot-1.8.1.2/icons/jpilot-icon1.xpm0000644000175000017500000000537210445274002014261 00000000000000/* XPM */ static char * jpilot_icon1_xpm[] = { "48 48 17 1", " c None", ". c #050807", "+ c #316B3B", "@ c #1D9A75", "# c #2DAE75", "$ c #1A3A28", "% c #4F6C53", "& c #3C9D53", "* c #265640", "= c #128871", "- c #548256", "; c #142318", "> c #3F554A", ", c #33894D", "' c #4DAC4C", ") c #7B8285", "! c #304043", "====+========================,==,=,=,=,=,@,@,,@,", "===@@=@=@=@@@@@@@@@@@@#@#######################&", "=@@@@@@@@@@@@@@@@@#@#@#@@@@###############'#'##,", "======@=@@=@@@@@@@@@@@@#@#@@@@@#@######'######,+", "==@=@===@=@=@@@@@@@@@@@@@@@@@#@@#@#@#&###'#'&&,+", "=@===@==========@=@@@@@@@@@@@@@@@&@&@#@&&#&#@,=+", "==@=======@==@=======@=@@@@@@@&@@@&@&&@&@&&&,,,+", "=@=@===========@=@=@==@==,@,@,@,@,@&@@&@&@&@&,=+", "===@==========**$*!*>***!**!******+@,&@&&@&@&,,+", "=@@=@=========*!!%))))>!!$!!!!!!!!+@&@&@&&&&@,,+", "==@=========@=*!!>)>%>!>!>!!>!!>!!+@&&@&&@&,&,,+", "=@=@@====@====*!!%%%-%%%%%-%%-%%!!+&@&&@&&&&&@,+", "==@==@=====@=@*!!%-------------->!*&@&&&&@&&,&,+", "=@@@=====+*===*!!%----->%-->>--->!+&&@&@&&&&&,,+", "==@@@=@==$.*=@*!!%---->;;--.;%--!!+@&&&&,=+&&&,+", "=@@=@====$!-,=*!!%----%$%->.;--->!+@&@&&*.$&,&,+", "=@@@=@=@=*+==*!!;!%---+>%-!.$--%!;$*&&&*;.$,&,,+", "=@@@@===*.$=*.....;%-%;.--;.!-%$....$,#....*&&,+", "==@@=@==$.!,$..!*..$-%..-%;.>-$.;>$..*&*..%-&&,+", "=@@@@@==;.*@;.$%>;.;%>.;-+.;%%..+>+;.$,+.;-&&&,+", "=@@@=@==.;+,..%>!$.;%$.$->.;-!.$%!+;.!&$.$&&&&,+", "=@@@@@=*.;,+..>!!..>-..>-$.!-;.!>!$;.+&;.>&&&&&+", "=@@@=@@$.;,*..>!;..%-..%%;.>-;.;>$;.;-&..%&&&&,+", "=@@@@==$.*,$..;...!-%.;%%;.%-!......%&+..$'&&&&+", "=@@@@@=;.+,;.$;.;*-->;!-+;;---$;.;;%,'&;.;-'&&,+", "=@@@@=+..,+..+>>%%-------------%>>-&&&&&--&&&&&+", "=#@@@@..;-+.;-*!!>%%%%%%%%%%%%%%>!+&'&'&&'&'&&&+", "=#@@@@;;+@*;!,>!>!>>>>>>>>>>>>!>!!+&'&''&'''&&&+", "=@#@@@,,,@@,,&*!!>!>%%%%%%%%%%!>>!+&'&'&''&&&&-+", "=@@@@@@,@,@&@@*!>>>%>%%%%%%%%>>>!!+&'#''&'''&&&+", ",#@&@&@@,@,@&,>!!!>>>%%>%%%>%>!>>!+'&'&''''''&&+", "=@#@@@,@@@&@@@>!!!>>>>>%>>>%>>!!!!+&'&'''&'&'&&+", ",#@&@&@,&@,&&@*!!!!!!!!!!!!!!!!!!!+'''&'''''&&&%", "@@#&@@,@@&@@@&>!!!!!!!!!!!!!!!!>!!+&'''''''''&&+", ",#@#@&@&,@&,&@>>!>!>!!!!!!>>>!!>!!+'&''''''&&&&%", "@@#@@&@@&@&@&@,>!)>!>%!!!!!)%!!)>!+'''&'''''''&+", ",##&@&@,@&@&&&+*!%!!!!!!!!!>!!!>!!+'''''''''&&&%", ",#@#&@&&@&@&@,>!!;!!!;!!!!!!!!!!!!+'''''''''&'&+", "=#&#@&@@&&&@&&!!!!!!!>!!>!!!!!!!!!+''''''''''&&%", ",###@&&,@&&@&&+>>>>>>>>>>>>>>>%>>>,''''''''''&'+", ",#&#&@&@&@&&&@&&&&&'&'''''''''''''&'''''''''''--", "=##&#@&&&&@&&&&&&#&&&&&&&'&'&'&'''''''''''''''&+", ",##&#&@&@&&&@&&#&&'&'#&'&'&'''''''''''''''''''&%", ",###&&@&,@&&&&&&&&&&&&&&&&'&&&&&'&'''''''''''''+", ",#&#&@,,&,,@,&,&&&&&&&&&&&&&&'&&'&&&''''''''-'&-", "&##&,,,,,,,,,,,,,,,,,&,&&,&&&&-&&-&&-&-&-&-&''&+", ",#&,=,=,,,,,,,,,,,,,-,,-,--,-,-&-&-&-&-&-'-&--'%", ",=+*****************+***+*+*+*+*+*+>+++>++++++++"}; jpilot-1.8.1.2/icons/Makefile.am0000644000175000017500000000035110634524002013245 00000000000000# $Id: Makefile.am,v 1.5 2007/06/15 14:53:54 rousseau Exp $ icondir = $(datadir)/doc/$(PACKAGE)/icons icon_DATA = \ jpilot-icon1.xpm \ jpilot-icon2.xpm \ jpilot-icon3.xpm \ jpilot-icon4.xpm \ README EXTRA_DIST = $(icon_DATA) jpilot-1.8.1.2/icons/lock_icons.h0000644000175000017500000000551611365051717013527 00000000000000/* $Id: lock_icons.h,v 1.4 2010-03-29 05:44:32 rikster5 Exp $ */ /******************************************************************************* * lock_icons.h * A module of J-Pilot http://jpilot.org * * Copyright (C) 1999-2010 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /* Private records locked icon */ static char *locked_xpm[] = { "15 18 4 1", " c None", "b c #000000000000", "g c #777777777777", "w c #FFFFFFFFFFFF", " ", " bbbbb ", " bwwwwwb ", " bwbbbbbwb ", " bwb bwb ", " bwb bwb ", " bwb bwb ", " bwb bwb ", " bbbbbbbbbbbbb ", " bwwwwwwwwwwwb ", " bgggggggggggb ", " bwgwwwwwwwgwb ", " bggwwwwwwwggb ", " bwgwwwwwwwgwb ", " bgggggggggggb ", " bwwwwwwwwwwwb ", " bbbbbbbbbbbbb ", " " }; /* Private records masked icon */ static char *masklocked_xpm[] = { "15 18 4 1", " c None", "b c #000000000000", "g c #777777777777", "w c #FFFFFFFFFFFF", " ", " bbbbb ", " bwwwwwb ", " bwbbbbbwb ", " bwb bwb ", " bwb bwb ", " bwb bwb ", " bwb bwb ", " bbbbbbbbbbbbb ", " bwwbbwwbbwwbb ", " bbbwwbbwwbbwb ", " bwwbbwwbbwwbb ", " bbbwwbbwwbbwb ", " bwwbbwwbbwwbb ", " bbbwwbbwwbbwb ", " bwwbbwwbbwwbb ", " bbbbbbbbbbbbb ", " " }; /* Private records unlocked icon */ static char *unlocked_xpm[] = { "21 18 4 1", " c None", "b c #000000000000", "g c #777777777777", "w c #FFFFFFFF0000", " ", " bbbbb ", " bwwwwwb ", " bwbbbbbwb ", " bwb bwb ", " bwb bwb ", " bwb bwb ", " bwb bwb ", " bbbbbbbbbbbbb ", " bwwwwwwwwwwwb ", " bgggggggggggb ", " bwwwwwwwwwwwb ", " bgggggggggggb ", " bwwwwwwwwwwwb ", " bgggggggggggb ", " bwwwwwwwwwwwb ", " bbbbbbbbbbbbb ", " " }; jpilot-1.8.1.2/icons/Makefile.in0000644000175000017500000003130011702305114013252 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # $Id: Makefile.am,v 1.5 2007/06/15 14:53:54 rousseau Exp $ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = icons DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-2.0.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(icondir)" DATA = $(icon_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ABILIB = @ABILIB@ ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CUT = @CUT@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@ LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@ LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENSSL_LIBS = @OPENSSL_LIBS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PILOT_FLAGS = @PILOT_FLAGS@ PILOT_LIBS = @PILOT_LIBS@ PKG_CONFIG = @PKG_CONFIG@ POSUB = @POSUB@ PROGNAME = @PROGNAME@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ icondir = $(datadir)/doc/$(PACKAGE)/icons icon_DATA = \ jpilot-icon1.xpm \ jpilot-icon2.xpm \ jpilot-icon3.xpm \ jpilot-icon4.xpm \ README EXTRA_DIST = $(icon_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign icons/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign icons/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-iconDATA: $(icon_DATA) @$(NORMAL_INSTALL) test -z "$(icondir)" || $(MKDIR_P) "$(DESTDIR)$(icondir)" @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(icondir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \ done uninstall-iconDATA: @$(NORMAL_UNINSTALL) @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(icondir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(icondir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(icondir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-iconDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-iconDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-iconDATA install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-iconDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: jpilot-1.8.1.2/icons/sync.xpm0000644000175000017500000000174511020634573012730 00000000000000/* XPM */ static char * sync_xpm[] = { "27 24 7 1", " c None", ". c #020043", "+ c #6B0000", "@ c #002EC9", "# c #9D0505", "$ c #F71711", "% c #00A0FF", " ", " ++++ ", " ++++ . ", " +#+ .@.. ", " +#+ .%@@@. ", " +#+ .%@%@@@. ", " +#+ . .%@%@@@@@. ", " +#+ ..%%%@..@@@. ", " +##+ .%%%.. .@@@. ", " +#+ .%%%. .@@. ", " +#+ ...... .@@. ", " +#+ .@. ", " +#+ .@. ", " +##+ ++++++ .@. ", " +##+ +$$$+ .@. ", " +###+ ++$$$+ .@@. ", " +###++#$$$++ .@. ", " +#####$#$+ + .@. ", " +###$#$+ .@. ", " +###$+ .@. ", " ++#+ .@. ", " + .... ", " .... ", " " }; jpilot-1.8.1.2/icons/jpilot-icon4.xpm0000644000175000017500000000537210445274002014264 00000000000000/* XPM */ static char * jpilot_icon4_xpm[] = { "48 48 17 1", " c None", ". c #070B09", "+ c #2E8D56", "@ c #26CE9C", "# c #3AE99E", "$ c #50D26F", "% c #3D5657", "& c #698F6E", "* c #327256", "= c #17B797", "- c #72AF72", "; c #1A2E20", "> c #537163", ", c #43B667", "' c #65E768", ") c #A7AFB5", "! c #448F4D", "===+==+======================,==,=,=,@,=,@,@,@,,", "=@@@@@@@@@@@@@@@@@@#@#@#####################'##$", "==@@@@@@@@@@@@@#@#@@##@#@################'###'#,", "=@===@=@=@@@@@@@@@@@@@#@@@@@@@########'####'##$+", "===@===@=@=@@@@@@@@@@@@@@@#@#@@@#@##$###'###'@,+", "=@=@=@====@=====@@@@@@@@@@@@@#@@$@$@#@$$#$#$$,,+", "===@========@=@=====@=@@@@@@@@@$@@$@$$@$$$$@$,,+", "=@@=============@=@=@==@=,@,@,@@@@$@@@$@@$$@$@,+", "==@=@=======@=+*%***>*>*%******%>*!@$$@$$@$$,$,+", "=@@@==========*%%&))))>%%%%%%%%%%%!@$$@$$$@$$,,+", "===@=@===@====*%%>&&>>>%>%%%>>>%>%+$@$$@$$$@$$,+", "=@@=@=====@==@*%%&&-&-&-&-&-&&&&>%!@$@$#$$$$,$,+", "=@@=@==@====@=>%%&-------------->%+$$$$@$#$$$$,+", "=@@@=@===+*===>%>&----->&-->&--->%+$@$$$$$$$,$,!", "==@@==@==;.+,@*%%&---->.;--.;&--%%!$$#$$@,,$$$,+", "=@@@@==@=*%-=@*%>&----&%&->.;&-->%+$@$$$%.%$$$$!", "=@@=@@===*+==*%%;%&---&>--%.%--&%;%+$@$+;.;,$,,+", "=@@@@=@=*.%=*.....;&-&;.--;.*-&%....%$$....*$$$!", "=@@@@=@=;.%,%..%>..%-!..-&;.>-%.;>%..*$*..&-$,,!", "=@@@@=@=;.*=;.%&>;.;&>.;-!.;&!..!>+;.%$+.;-$$$$!", "=@@@@@==.;!,..!>%;.;-%.%->.;-%.%&%!;.%$%.%$$$$,!", "=@@@@=@*.;,+..&%%..%-..>-%.%-;.%>%*..!$;.>$$$$$!", "=@@@@@=*.;$*..>%;.;!-..&&;.>-;.;>%..;-$..&'$$$,!", "=@@@@@=;.*,;..;...%-&.;&&;.&-%......&,,..%$'$$$!", "=@@@@@=;.!,;.%;.;>-->;%-!;;---%;.;;&$$$;.;$'$$$!", "=#@@@@+..-=..!>>>--------------&!>-$$'$$--$$$$$!", "=@@@@@..;-+.;-*%%>&&&&&&&&&&&&&&>%!'$'$'$$''$$$!", "=@#@@@;;!@*;%,!%%>>>>>>&>>>>>>>>%%!'$'$'''''$$$!", "=#@@@@@-,@@$,$>%%>%>&&&&&&&&&>%>>%!$''#'$'$'$$$!", "=##@$@@@$@,@@@>%>>&>&&&&&&&&&&>>>%+'$'$'''''$$$!", "=@#@@$@,@@$@$@>%%%>>&&&&&&&&&>%>%%!''''''''$'$$!", "@@#$@@@@,@$@$@>%%%>>>>&>&>&>>>%>%%!'$''$'''''$$!", ",#@#@$@$@$@$@$*%%%%%%%%%%%%%%%%%%%!''$''''''$$$!", "=##@$@$@@,@$@$>%%%%%%%%%%%%%%%%%%%+'''''''''''$!", ",#@$@@$,@$@$$@!%%>>%>%%%%%>>>%>>%%!''''''''$$$$&", "=###@$@@$@$@$$!&%)>%%&%%%%%)&%%)>%!'''''''''''$!", ",#@#$@$$@$$@$@!*%&%%%>%%%%%>%%%>%%!''''''''''$$-", ",##$#@$@$@$$$$>%%%%%%;%%%%%%%%%%%%!''''''''''$$!", "=##@$@$@$@$@$@>%%%%%%>%%>%%%%%%%%%!'''''''''''-,", ",####$$@$$#$$$>>>>>>>&>>>>>>&>&>>*-''''''''''''!", ",##$@$@$$@$$@$$$$$$'$''''''''''''''''''''''''$--", ",###$#$@$$$#$#$#$#$$#$$$'$'$'''''''''''''''''''!", ",###$#$$@$$$$$$$$'$'$''$''''$'''''''''''''''''$&", "@'##$@$$@$@$@$$$$$$$$$$$$$$'$'$''''''''''''''''!", ",##'$@,$,$,$$$$$$$$$$$$$$$$$$$$$'$'''''''''''$'&", "$##$@,,,,,,,,,,,,,,$,$$$$$$$$$$-$$$-$$$'-'-'-'$,", "@'$,,,=,,,,,,,,,,,,,,,,-,-,--,$-$-$-$--$-$$-$-$&", ",=+***********+*+*!**+**+*+!*!*!*!*!!!!!!!!!!!!!"}; jpilot-1.8.1.2/icons/cancel_sync.xpm0000644000175000017500000000165011454173514014234 00000000000000/* XPM */ static char * cancel_sync_xpm[] = { "27 24 9 1", " c None", ". c #E30000", "+ c #6B0000", "@ c #020043", "# c #9D0505", "$ c #002EC9", "% c #00A0FF", "& c #002DC8", "* c #F71711", " ", " . ++++ . ", " ... ++++ @ ... ", " .....#+ @$@..... ", " ..... @%$..... ", " ..... @%$..... ", " +#.....@ @%$.....$@ ", " +#+.....@%%.....$$@ ", " +##+ .....%.....@&$$@ ", " +#+ ......... @$$@ ", " +#+ ....... @$$@ ", " +#+ ....... @$@ ", " +#+ ....... @$@ ", " +##+ ....... @$@ ", " +##+ ......... @$@ ", " +###+.....*..... @$$@ ", " +##.....**+.....@$@ ", " +#.....#*+ +.....$@ ", " .....#*+ ..... ", " .....#*+ ..... ", " .....+#+ @$..... ", " ... + @@@@ ... ", " . @@@@ . ", " "}; jpilot-1.8.1.2/icons/address.xpm0000644000175000017500000000527011020634573013376 00000000000000/* XPM */ static char * address_xpm[] = { "40 40 62 1", " c None", ". c #020202", "+ c #F6F6F6", "@ c #8A8A8A", "# c #424242", "$ c #2A2A2A", "% c #D2D2D2", "& c #6E6E6E", "* c #1E1E1E", "= c #4E4E4E", "- c #BABABA", "; c #161616", "> c #5E5E5E", ", c #A6A6A6", "' c #323232", ") c #7E7E7E", "! c #0E0E0E", "~ c #9A9A9A", "{ c #E6E6E6", "] c #525252", "^ c #3E3E3E", "/ c #FAFAFA", "( c #727272", "_ c #666666", ": c #4A4A4A", "< c #CECECE", "[ c #0A0A0A", "} c #222222", "| c #8E8E8E", "1 c #DEDEDE", "2 c #767676", "3 c #5A5A5A", "4 c #CACACA", "5 c #FEFEFE", "6 c #AEAEAE", "7 c #363636", "8 c #626262", "9 c #EEEEEE", "0 c #1A1A1A", "a c #A2A2A2", "b c #868686", "c c #969696", "d c #BEBEBE", "e c #2E2E2E", "f c #060606", "g c #DADADA", "h c #262626", "i c #7A7A7A", "j c #121212", "k c #6A6A6A", "l c #464646", "m c #828282", "n c #565656", "o c #E2E2E2", "p c #C2C2C2", "q c #D6D6D6", "r c #929292", "s c #9E9E9E", "t c #3A3A3A", "u c #F2F2F2", "v c #B2B2B2", "w c #AAAAAA", " &:'0}':_. ", " i[............._ ", " 3.......;**!.......: ", " .....h]3>_&_83=t*..... ", " 8...q512k___>>>>883=h..f.n ", " '...e4555c8&k_888nn]=n#*[j.' ", " '...~p82555)_&(&>>>3]=l::';0.e ", " 8...k5553@555_2&8&8383n=l##e}}[^ ", " ...3{5+553p55~i))&_>333==#^7eh}. ", " ...=&+5//5<_55d2)ii&_833n=#t7'h7$j ", " n..^(35+++/5kq5-mbm2i__33n=:#tehe7h ", " ..._83u5+++/d,5c|r))2&_83n=l#^7h;^th ", " ..:k33p5/+/5%c~~cr@)i&_33nn=#7e$;hl' ", " ...83>3|5/++5qc,~~|bm2&8>33=l#^7$}!:#^ ", " ..t_n8>>5/5u51ra~crbii&8>>nn=#^7$}f']' ", " ..l838>n%5+/5{r~c|@@)2k_33n=l#t7h*!*3# ", "_..=]]>>>@5++/5a@r@bi2(&>33n=l^t'h}j.]= ", "l.;nnn833>{5/+5gkb@mii&>3>3==l#7eh*0.=8n", "e.h]==38n>~5+//5~&i22(>k>3n]l#t7eh*j.]_n", ";.e==n]>>8n95++552&i&33nn3]=:t^'$*0;.]_3", ";.$=l=nn338)5+//55n>>i55c:=l#t7eh*0j.]&3", "}.hl#:=]333n%5+++593n2555%##^^7$}*0!.3(8", "l.;###:]]33n35////5/,>]u55d7t7eh*0j..k_8", "_..^t#l==nn3n@5++++555it//5#7'$*0j!..&&3", " ..'t^t#====nn65//+++55]#5+6}$h*0jf..i( ", " ..*77^##::===#45++5+/55}v5/0h*0;f..lbb ", " ...ee77t###l::#%5//+//5k755!}0jj...|,b ", " ..h$''77^#####7d5++++51h53j0*j...f6a) ", " ..!}}'ee7^7ttt^$v55//5{[!..[!..f.~pa ", " :.[0*}h$'e777777*i5555v$-5q*....e%dr ", " .f;0**}h}$$$eee$0},/555555m.f..11d ", " .00!00*}*hh}hhh}0f.-5+++/....-o%i ", " ].*0.!0*;0*;0*0;00f;i'{5{k3.a+qa ", " e.h}..jj;;*0jj;!![..}5/+55+o1- ", " e[ee[..fffj[f.f....s+55q/+g6 ", " ^.'te..............,grd1%, ", " =;h##7!..........[>~--6 ", " #}7ln=l^7'e^]k(bsssr ", " ]t7ln8&&&(((k)@ ", " ]n3388 "}; jpilot-1.8.1.2/icons/jpilot-icon3.xpm0000644000175000017500000002053410445274002014260 00000000000000/* XPM */ static char * jpilot_icon3_xpm[] = { "48 48 230 2", " c None", ". c #4C4E54", "+ c #3C3A3E", "@ c #3C3E43", "# c #343237", "$ c #443634", "% c #34363B", "& c #4C5654", "* c #646A6C", "= c #544E54", "- c #B4BABC", "; c #ACAAAC", "> c #ACBAB4", ", c #A4B2AC", "' c #4C4A51", ") c #545258", "! c #646267", "~ c #C4C2C4", "{ c #ACAEAC", "] c #D4D2D4", "^ c #847E7C", "/ c #746668", "( c #8C4E3C", "_ c #744234", ": c #6C6A74", "< c #7C8684", "[ c #8C8A8C", "} c #8C9294", "| c #848E8C", "1 c #4C525F", "2 c #5C5A63", "3 c #A47A6C", "4 c #B4725C", "5 c #A45E4C", "6 c #7C4234", "7 c #746A74", "8 c #444A4C", "9 c #44464B", "0 c #44424C", "a c #3C4244", "b c #AC7664", "c c #B46E57", "d c #54565C", "e c #4C625C", "f c #547A64", "g c #5C766C", "h c #547664", "i c #5C7A6C", "j c #6C7E7C", "k c #A4766C", "l c #AC664E", "m c #5C7E6C", "n c #547E64", "o c #5C726C", "p c #6C8684", "q c #8C5E4C", "r c #9C5A44", "s c #7C4A3C", "t c #546E61", "u c #5C565C", "v c #6C4E4C", "w c #6C423C", "x c #645E64", "y c #94523C", "z c #7C4E3E", "A c #746E74", "B c #5C5E64", "C c #546A5E", "D c #748A84", "E c #443A3C", "F c #6C3A2C", "G c #9C624C", "H c #945644", "I c #642E24", "J c #5C3A34", "K c #4C3A3C", "L c #3C160C", "M c #AC6A54", "N c #A46A5C", "O c #A4624C", "P c #8C4A3C", "Q c #644A3C", "R c #343E3C", "S c #6C8A84", "T c #441A14", "U c #9C6E5F", "V c #B46A54", "W c #AC725E", "X c #844E3C", "Y c #64666C", "Z c #4C3E3C", "` c #5C2A1C", " . c #A46652", ".. c #B47664", "+. c #BC765C", "@. c #8C523D", "#. c #547264", "$. c #748E84", "%. c #6C2E24", "&. c #847A7C", "*. c #BC7A64", "=. c #C4826C", "-. c #6C6A6C", ";. c #6C3224", ">. c #9C7264", ",. c #C47E64", "'. c #846A6C", "). c #945E4C", "!. c #543A34", "~. c #545A5A", "{. c #4C5E54", "]. c #745254", "^. c #4C1E14", "/. c #443234", "(. c #7C767C", "_. c #9C5E46", ":. c #74463C", "<. c #B47A6C", "[. c #BC725C", "}. c #643E34", "|. c #94624C", "1. c #A48274", "2. c #84523F", "3. c #5C261C", "4. c #844A36", "5. c #945A44", "6. c #947674", "7. c #BC7E64", "8. c #CC8A74", "9. c #845644", "0. c #6C6670", "a. c #844634", "b. c #946654", "c. c #744A3D", "d. c #946E64", "e. c #C4866C", "f. c #7C5244", "g. c #445664", "h. c #747274", "i. c #2C0A0C", "j. c #743A2C", "k. c #6C463C", "l. c #240604", "m. c #94726C", "n. c #8C5A44", "o. c #544244", "p. c #648674", "q. c #648A74", "r. c #5C826C", "s. c #648274", "t. c #B47E6C", "u. c #6C4A40", "v. c #7CA294", "w. c #84BAA4", "x. c #7CB29C", "y. c #84B6A0", "z. c #7CAA9C", "A. c #749288", "B. c #44524C", "C. c #6C9284", "D. c #9C6654", "E. c #AC6E59", "F. c #7C564C", "G. c #6C8A78", "H. c #4C5A54", "I. c #74A28C", "J. c #647E74", "K. c #747A7C", "L. c #8C6A5C", "M. c #744E3F", "N. c #6C8E80", "O. c #749A8C", "P. c #743E2C", "Q. c #845A49", "R. c #643A34", "S. c #94AEA4", "T. c #7CAE9C", "U. c #749689", "V. c #A47264", "W. c #6C867C", "X. c #84A294", "Y. c #7C9E94", "Z. c #3C4644", "`. c #644E44", " + c #8C6250", ".+ c #94867C", "++ c #849A94", "@+ c #84B29C", "#+ c #749E8C", "$+ c #7C727A", "%+ c #54665C", "&+ c #4C5254", "*+ c #8C6654", "=+ c #B4765C", "-+ c #845E4C", ";+ c #444244", ">+ c #845E54", ",+ c #74564C", "'+ c #2C2E30", ")+ c #1C1A1C", "!+ c #A49EA4", "~+ c #848284", "{+ c #74766C", "]+ c #DCDEE0", "^+ c #BCB6BC", "/+ c #BCBABC", "(+ c #B4B2B4", "_+ c #B47A64", ":+ c #A47661", "<+ c #74767C", "[+ c #848684", "}+ c #7C6A74", "|+ c #BC826C", "1+ c #8C5642", "2+ c #5C5254", "3+ c #4C423C", "4+ c #5C3E34", "5+ c #946A59", "6+ c #7C4634", "7+ c #CC8E74", "8+ c #A47A64", "9+ c #64524C", "0+ c #B4826C", "a+ c #CC8674", "b+ c #846254", "c+ c #A46E5C", "d+ c #746A69", "e+ c #646E64", "f+ c #646E7C", "g+ c #546684", " ", " ", " . + @ # + + $ + + + # $ % + + + + @ @ + % + % % + . ", " & * = = - ; > , ' = = = = = . = = = ) = ! ~ { ] ^ ' % ", " / ( _ : ) ) < [ } | ) = 1 ) ) = ) ) 1 ) ) 1 2 | } } ! 1 ' ", " 3 4 5 6 7 ) = ' 8 ' 9 0 9 9 9 a 9 9 9 9 9 ' 9 0 @ @ 0 ) ) ' ", " b c 5 6 7 d . e f g h h i h g h h g h h h h h h h h h j d ' ", " k l 5 6 7 d . h m n m f m f f i f n f f i f i f i f o p 2 0 ", " q r s 7 2 = t m f f i n i n f n i f f n f n f f f i p u ' v w ", " x y z A B ) C m f m f i f f i f f f i f i f i n i n D B ) E F G H _ ", " 5 5 I J : x d C n i f f n f m f f f n f n f n f f f m D B K L y M r G ", " N l O P Q A B ) C i f n f i f f n f i R f i f i h R f m S ! E T r M 5 N ", " U V W l r X A Y d t n i f h f f i f R f R i f f f R R R i D ! Z ` .l r 4 ", " ..4 k +.4 @.: : d #.m f R h R R e f e f % h e R e h + f n $.B K %. .l ( N ", " &.l *.=.4 P -.Y u #.f f i h R i % f R f R f % f % f R f m D ! Z ;.l l r l ", " >.*.,.O 6 7 -.d #.i f R h R h R f R i % f R f R h R f i S Y Z ;.l l H r ", " '.).r r 6 !.A * ~.h h h % f % R {.i R f R {.e % e m e R m D B K I 5 l r ]. ", " / M l y 6 ^./.(.Y u h f h R f R f n f f f m f m n i f f i n D x Z I _.5 ).:. ", " 7 <.[.l l ( ` }.&.* d #.R f R i R i f m i f f i n i n f i f m D B Z I @.|.).z ", " 1.=.,.<...4 r 2.A * u #.e @ {.n % n i f n f m f i n i m n f m S ! E 3.4.5.@.Q ", " 6.*.7.,.8.*.4 9.A 0.d h i f m f m f f m f i n i n m n m i n m D B Z 3.a.b.@.c. ", " d.*.4 *.e.V f.(.* u h n i f f i n i f m f i f m m f m f f m D B K 3.a.b.@.w ", " g._.c 4 +.H c.&.Y ) t m n i n f i f n f i n m n m f m f i n p 2 Z F X |.q v ", " h.*.M H 6 i./.&.Y 2 C m i n i m n i f m f f f i m f m f f m D B Z j.a.b.q k. ", " b +.c O 6 l.+ (.: 2 #.f m f m f n i n i f m m n m m f f m n p x Z j.X |.q v ", " m.e.7.c W n.3.o.&.* 2 p.p.h p.q.r.r.r.r.r.r.m r.m r.r.r.s.m q.D 2 Z j.2.>.).c. ", " 6.[.e.<.t.M a.u.(.Y d v.| {.g v.w.w.w.w.w.w.x.y.z.w.w.A.B.e C.p x Z j.X >.|.z ", " D.,.*.=.e.E.F.A Y u C.G.& H.I.w.w.w.w.w.w.w.w.w.w.w.C.R B.J.K.2 Z j.9.N b.X ", " L.5 +.+.=.O M.(.-.d $.I.s.N.v.w.w.w.w.w.w.w.w.w.w.w.O.i m p.(.2 Z P.Q. .).X ", " .l O @.I R.(.Y u $.S.A.T.I.w.w.w.w.w.w.x.w.T.O.T.C.g i U.j u o.z ).D.|.s ", " V.r @.;.s A -.d W.X.i m Y.x.w.w.w.w.w.x.z.O.v.z.G.Z.R D (.~.`.X n.b. +c. ", " .+l @.6 _.A ! d G.++{.W.C.I.w.w.w.w.w.w.y.@+y.#+p.g o U.$+2 w z ).b.@. ", " M 5 +.c $+B ) ) C C %+e {.{.{.{.B.' . 8 . 8 ' . {.&+d 0.B w 9.b.*+k. ", " >.=+=.<.^ 2 d 2 2 2 d u d ) d ) &+) ) = ) . . . d ) d 2 2 M.-+b.|.!. ", " * *.*...&.) 2 2 . ) d d d ) ) ) ;+;+. . . . = . ;+;+. ) 1 >+b.*+9. ", " >+=.7.,+8 ) @ '+9 u = 9 + ' 9 + )+% ;+9 9 ' ;+% 0 ' . ;+-+b.|.M. ", " *.=.m.C.B.8 { !+B % ~+{+Y u . '+# '+]+^+-.. /+(+2 d % -+*+n.s ", " _+=.:+w.p.& !+<+u 9 [+; ' ! B ' 9 ' ]+/+-.9 h.0.B . % Q.b.q F ", " }+..=+Z.1 ) . Y B d ' ' B 8 A ' ;+) 9 B d 9 8 . 9 + # -+b.9.k. ", " U |+8 ' . ) d d u u d u ' 2 . ' &+' ' ' 9 9 + + # $ -+*+1+o. ", " 2+<.3+% + + + 0 9 0 0 0 9 9 ' ;++ + % % + # # % E M.b.|.X 4+ ", " *+7.<.U Q.z M.:.F F w }.c.M.c.2.-+ +q -+-+-+-+b.5+*+|.6+/. ", " *.8.7+8.7.+.M 5 r r H M M 4 ,.,.=.=.=.t.8+3 k U ).2.u. ", " 9+0+8.7+8.=.4 l M M O 4 +.+.7.7.,.*.*.*.<.:+:+5+2.z c. ", " v 7.7+8.7+a+*.*.[.c [.+.=+,.=.=.*.+.M W 5+5+).H +F.1 ", " b+*.8.8.e.=.=.*.=.=.,.*.=.e.=.+.=++.V D.b.b.b.*+0.d ", " k *.=.8.=.=.*.=.=.7.,.,.*.*.+.+.+.4 c+5+b.*+}+-.d ", " U +.7+e.=.=.e.=.,.7.*.+.+.+.=++.b :+L.d+d+e+f+g+ "}; jpilot-1.8.1.2/icons/datebook.xpm0000644000175000017500000000531011020634573013534 00000000000000/* XPM */ static char * datebook_xpm[] = { "40 40 63 1", " c None", ". c #020202", "+ c #E6E6E6", "@ c #8E8E8E", "# c #2A2A2A", "$ c #626262", "% c #CACACA", "& c #363636", "* c #1E1E1E", "= c #424242", "- c #AEAEAE", "; c #7A7A7A", "> c #4A4A4A", ", c #161616", "' c #EEEEEE", ") c #4E4E4E", "! c #727272", "~ c #F2F2F2", "{ c #A2A2A2", "] c #525252", "^ c #0E0E0E", "/ c #DADADA", "( c #C2C2C2", "_ c #5E5E5E", ": c #6E6E6E", "< c #FEFEFE", "[ c #969696", "} c #868686", "| c #0A0A0A", "1 c #2E2E2E", "2 c #BABABA", "3 c #3A3A3A", "4 c #D2D2D2", "5 c #5A5A5A", "6 c #666666", "7 c #222222", "8 c #7E7E7E", "9 c #B2B2B2", "0 c #E2E2E2", "a c #AAAAAA", "b c #767676", "c c #9A9A9A", "d c #565656", "e c #060606", "f c #323232", "g c #1A1A1A", "h c #121212", "i c #464646", "j c #262626", "k c #FAFAFA", "l c #A6A6A6", "m c #6A6A6A", "n c #B6B6B6", "o c #828282", "p c #DEDEDE", "q c #8A8A8A", "r c #D6D6D6", "s c #9E9E9E", "t c #3E3E3E", "u c #CECECE", "v c #BEBEBE", "w c #929292", "x c #C6C6C6", " 6>fg7f>6 ", " |.............6 ", " .......,j,^.......> ", " .....1]5_6$$$]=je..... ", " $....i$bm$$__6a/<<93j..|.] ", " f...f6;:!$$@%if,,e1 ", " $...5;:ddxk<~kkkk<=t ", " ..3$d__ok[$b9-@9q<@g7ef)f ", "o..>$]$$_$m:/k~{o2<~e,1|.]65", ",.j)>)dd$]c)))-):=3sm,>i'kk~k<+*>k<^:'....@l} ", " 6..7#7(kkk4:=t3&)<~k~kk.e,^! c #848284", " ", " ............. ", " .+++++++++++++@ ", " .+@@@@@@@@@@@+@ ", " .+@....#####@+@ ", " .+@.........@+@ ", " .+@#########@+@ ", " .+@#@#@@@@@#@+@ $$ ", " .+@#########@+@ $%$ ", " .+@#@#@@@@@#@+@ $%$ ", " .+@#########@+@ $%&$ ", " .+@########$$$$$$%&$ ", " .+@@@@@@@@@$**=-%%&&$ ", " .+@++++@+++$**=-%%&&$ ", " .+@++++@+++$**=-%%&&;$ ", " .+@@@@@@@@@$**=-%%&&;$>", " .++++++++++$**=-%%&&$>>", " .+..+..+..+$**=-%%&&$> ", " .+..+..+..+$$$$$$%&$>> ", " .++++++++++>>>>>$%&$> ", " @@@@@@@@@@@@@ $%$>> ", " $%$> ", " $$>> ", " >> " }; jpilot-1.8.1.2/icons/todo.xpm0000644000175000017500000000534211020634573012716 00000000000000/* XPM */ static char * todo_xpm[] = { "40 40 65 1", " c None", ". c #020202", "+ c #EEEEEE", "@ c #9E9E9E", "# c #525252", "$ c #363636", "% c #2A2A2A", "& c #868686", "* c #B6B6B6", "= c #1E1E1E", "- c #727272", "; c #CACACA", "> c #161616", ", c #666666", "' c #424242", ") c #F6F6F6", "! c #D2D2D2", "~ c #5E5E5E", "{ c #0E0E0E", "] c #FAFAFA", "^ c #DEDEDE", "/ c #464646", "( c #7E7E7E", "_ c #969696", ": c #A2A2A2", "< c #323232", "[ c #3A3A3A", "} c #C2C2C2", "| c #0A0A0A", "1 c #FEFEFE", "2 c #262626", "3 c #6E6E6E", "4 c #7A7A7A", "5 c #565656", "6 c #4E4E4E", "7 c #E6E6E6", "8 c #8A8A8A", "9 c #AEAEAE", "0 c #5A5A5A", "a c #626262", "b c #BEBEBE", "c c #1A1A1A", "d c #D6D6D6", "e c #060606", "f c #A6A6A6", "g c #8E8E8E", "h c #4A4A4A", "i c #2E2E2E", "j c #AAAAAA", "k c #BABABA", "l c #222222", "m c #828282", "n c #3E3E3E", "o c #E2E2E2", "p c #767676", "q c #121212", "r c #C6C6C6", "s c #DADADA", "t c #6A6A6A", "u c #CECECE", "v c #929292", "w c #9A9A9A", "x c #EAEAEA", "y c #F2F2F2", "z c #B2B2B2", " 3.h=={.......h ", " .....i#0~,t,~06[=.....6 ", " <....h,4tt,aa55#5506i..e.6 ", " <...$,43-p~aa(j^11+6/5'={q.< ", " <...#pt(,5,g})1111]11//h/<>=e% ", " <...0pp,53*+11]])])))]7h'n'i==|n ", " <...0-a5(}111b7]])]]1])1f''n[%%%e5 ", " ...6-0,;111]d5z1)11)xo]]15'n$<2$%q ", " 5..n-5k11)))1@p^11}_(05&111[n[i=%[2' ", " ...~j]1])]1]]g_)1_aa5~091)1m[n$%>n[2 ", " -..6t_1)]1!u1dgk1sa-f;+11])11$ni%>%/<5 ", " ...~00j1)18ak@@^]);s111]])]]1mi$%={h'[ ", " ..[,5a5s1]1f3g8]1]11])))]1)117<<%=e<5< ", "m..h050~~]1)1+_u11)))))]11j0y]1#%%=|l0'5", ",..#505~~v1)]]11^jb1]11+b,5[;1]w2%=q.#65", "/.>#55~~~5^1))xgt-571s-5556f1]1y%%=>.6a5", "i.%#6500~~-1]+33(b-31b604j+1]))1[c=q.#,5", ">.i6h555000b11(011^5u111111))]]1m{=>.#,0", ">.%h/650~~0-11z0]1j5_1]11]])1)11}{>>.6-0", "%.2/'h6500~5d115,g00+1)])))]1}1))c{{.~-5", "h.cn''/650~5811g55f111)]1]17hcg11$...,-a", "~..[[nhh6##50)11d11!8u1]1z~$2>71]a...--0", "-..<[[['6665#b111;0#/51dn<%=n)1)1f...44 ", " ..=$$nn'hh6/m11p'/#6'+x['md11)]^2..'m( ", " ..ei!]]11u%.e....i!b8 ", " .{>c>=l=%=$1)x$#f1111b6..e..e..^^} ", " -.>cc>c>=c[11111111*'..e......k7! ", " 6.==.ccc.-1]1]1!&[..e|...e..fy^@ ", " i.2=..{=11xk4[...e........kxsz ", " %e=[/${..........>4z}**& ", " 2, 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; tar*) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar*) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: jpilot-1.8.1.2/address_gui.c0000644000175000017500000046062511702304470012553 00000000000000/* $Id: address_gui.c,v 1.281 2011-11-11 02:38:37 judd Exp $ */ /******************************************************************************* * address_gui.c * A module of J-Pilot http://jpilot.org * * Copyright (C) 1999-2006 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /********************************* Includes ***********************************/ #include "config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include "jp-pi-contact.h" #include "address.h" #include "i18n.h" #include "utils.h" #include "log.h" #include "prefs.h" #include "print.h" #include "password.h" #include "export.h" #include "stock_buttons.h" /********************************* Constants **********************************/ #define NUM_ADDRESS_CAT_ITEMS 16 #define NUM_PHONE_ENTRIES 7 #define NUM_PHONE_LABELS 8 #define MAX_NUM_TEXTS contNote+1 #define NUM_IM_LABELS 5 #define ADDRESS_NAME_COLUMN 0 #define ADDRESS_NOTE_COLUMN 1 #define ADDRESS_PHONE_COLUMN 2 #define ADDRESS_MAX_CLIST_NAME 30 #define ADDRESS_MAX_COLUMN_LEN 80 #define NUM_CONT_CSV_FIELDS 56 #define NUM_ADDR_CSV_FIELDS 27 /* Size of photo to display in Jpilot. Actual photo can be larger */ #define PHOTO_X_SZ 139 #define PHOTO_Y_SZ 144 /* Many RFCs require that the line termination be CRLF rather than just \n. * For conformance to standards this requires adding the two-byte string to * the end of strings destined for export */ #define CRLF "\x0D\x0A" #define CONNECT_SIGNALS 400 #define DISCONNECT_SIGNALS 401 /******************************* Global vars **********************************/ static address_schema_entry *schema; static int schema_size; static address_schema_entry contact_schema[NUM_CONTACT_FIELDS]={ {contLastname, 0, ADDRESS_GUI_LABEL_TEXT}, {contFirstname, 0, ADDRESS_GUI_LABEL_TEXT}, {contCompany, 0, ADDRESS_GUI_LABEL_TEXT}, {contTitle, 0, ADDRESS_GUI_LABEL_TEXT}, {contPhone1, 0, ADDRESS_GUI_DIAL_SHOW_PHONE_MENU_TEXT}, {contPhone2, 0, ADDRESS_GUI_DIAL_SHOW_PHONE_MENU_TEXT}, {contPhone3, 0, ADDRESS_GUI_DIAL_SHOW_PHONE_MENU_TEXT}, {contPhone4, 0, ADDRESS_GUI_DIAL_SHOW_PHONE_MENU_TEXT}, {contPhone5, 0, ADDRESS_GUI_DIAL_SHOW_PHONE_MENU_TEXT}, {contPhone6, 0, ADDRESS_GUI_DIAL_SHOW_PHONE_MENU_TEXT}, {contPhone7, 0, ADDRESS_GUI_DIAL_SHOW_PHONE_MENU_TEXT}, {contIM1, 0, ADDRESS_GUI_IM_MENU_TEXT}, {contIM2, 0, ADDRESS_GUI_IM_MENU_TEXT}, {contWebsite, 0, ADDRESS_GUI_WEBSITE_TEXT}, {contAddress1, 1, ADDRESS_GUI_ADDR_MENU_TEXT}, {contCity1, 1, ADDRESS_GUI_LABEL_TEXT}, {contState1, 1, ADDRESS_GUI_LABEL_TEXT}, {contZip1, 1, ADDRESS_GUI_LABEL_TEXT}, {contCountry1, 1, ADDRESS_GUI_LABEL_TEXT}, {contAddress2, 2, ADDRESS_GUI_ADDR_MENU_TEXT}, {contCity2, 2, ADDRESS_GUI_LABEL_TEXT}, {contState2, 2, ADDRESS_GUI_LABEL_TEXT}, {contZip2, 2, ADDRESS_GUI_LABEL_TEXT}, {contCountry2, 2, ADDRESS_GUI_LABEL_TEXT}, {contAddress3, 3, ADDRESS_GUI_ADDR_MENU_TEXT}, {contCity3, 3, ADDRESS_GUI_LABEL_TEXT}, {contState3, 3, ADDRESS_GUI_LABEL_TEXT}, {contZip3, 3, ADDRESS_GUI_LABEL_TEXT}, {contCountry3, 3, ADDRESS_GUI_LABEL_TEXT}, {contBirthday, 4, ADDRESS_GUI_BIRTHDAY}, {contCustom1, 4, ADDRESS_GUI_LABEL_TEXT}, {contCustom2, 4, ADDRESS_GUI_LABEL_TEXT}, {contCustom3, 4, ADDRESS_GUI_LABEL_TEXT}, {contCustom4, 4, ADDRESS_GUI_LABEL_TEXT}, {contCustom5, 4, ADDRESS_GUI_LABEL_TEXT}, {contCustom6, 4, ADDRESS_GUI_LABEL_TEXT}, {contCustom7, 4, ADDRESS_GUI_LABEL_TEXT}, {contCustom8, 4, ADDRESS_GUI_LABEL_TEXT}, {contCustom9, 4, ADDRESS_GUI_LABEL_TEXT}, {contNote, 5, ADDRESS_GUI_LABEL_TEXT} }; static address_schema_entry address_schema[NUM_ADDRESS_FIELDS]={ {contLastname, 0, ADDRESS_GUI_LABEL_TEXT}, {contFirstname, 0, ADDRESS_GUI_LABEL_TEXT}, {contTitle, 0, ADDRESS_GUI_LABEL_TEXT}, {contCompany, 0, ADDRESS_GUI_LABEL_TEXT}, {contPhone1, 0, ADDRESS_GUI_DIAL_SHOW_PHONE_MENU_TEXT}, {contPhone2, 0, ADDRESS_GUI_DIAL_SHOW_PHONE_MENU_TEXT}, {contPhone3, 0, ADDRESS_GUI_DIAL_SHOW_PHONE_MENU_TEXT}, {contPhone4, 0, ADDRESS_GUI_DIAL_SHOW_PHONE_MENU_TEXT}, {contPhone5, 0, ADDRESS_GUI_DIAL_SHOW_PHONE_MENU_TEXT}, {contAddress1, 1, ADDRESS_GUI_LABEL_TEXT}, {contCity1, 1, ADDRESS_GUI_LABEL_TEXT}, {contState1, 1, ADDRESS_GUI_LABEL_TEXT}, {contZip1, 1, ADDRESS_GUI_LABEL_TEXT}, {contCountry1, 1, ADDRESS_GUI_LABEL_TEXT}, {contCustom1, 2, ADDRESS_GUI_LABEL_TEXT}, {contCustom2, 2, ADDRESS_GUI_LABEL_TEXT}, {contCustom3, 2, ADDRESS_GUI_LABEL_TEXT}, {contCustom4, 2, ADDRESS_GUI_LABEL_TEXT}, {contNote, 3, ADDRESS_GUI_LABEL_TEXT} }; /* Keeps track of whether code is using Address or Contacts database. * 0 is AddressDB, 1 is ContactsDB */ static long address_version=0; static GtkWidget *clist; static GtkWidget *addr_text[MAX_NUM_TEXTS]; static GObject *addr_text_buffer[MAX_NUM_TEXTS]; static GtkWidget *addr_all; static GObject *addr_all_buffer; static GtkWidget *notebook_label[NUM_CONTACT_NOTEBOOK_PAGES]; static GtkWidget *phone_type_list_menu[NUM_PHONE_ENTRIES]; static GtkWidget *phone_type_menu_item[NUM_PHONE_ENTRIES][NUM_PHONE_LABELS]; /* 7 menus with 8 possible entries */ static GtkWidget *address_type_list_menu[NUM_ADDRESSES]; static GtkWidget *address_type_menu_item[NUM_ADDRESSES][NUM_ADDRESSES]; /* 3 menus with 3 possible entries */ static GtkWidget *IM_type_list_menu[NUM_IMS]; static GtkWidget *IM_type_menu_item[NUM_IMS][NUM_IM_LABELS]; /* 2 menus with 5 possible entries */ static int address_phone_label_selected[NUM_PHONE_ENTRIES]; static int address_type_selected[NUM_ADDRESSES]; static int IM_type_selected[NUM_IMS]; /* Need two extra slots for the ALL category and Edit Categories... */ static GtkWidget *address_cat_menu_item1[NUM_ADDRESS_CAT_ITEMS+2]; static GtkWidget *address_cat_menu_item2[NUM_ADDRESS_CAT_ITEMS]; static GtkWidget *category_menu1; static GtkWidget *category_menu2; static GtkWidget *address_quickfind_entry; static GtkWidget *notebook; static GtkWidget *pane; static GtkWidget *radio_button[NUM_PHONE_ENTRIES]; static GtkWidget *dial_button[NUM_PHONE_ENTRIES]; static struct AddressAppInfo address_app_info; static struct ContactAppInfo contact_app_info; static struct sorted_cats sort_l[NUM_ADDRESS_CAT_ITEMS]; static int address_category=CATEGORY_ALL; static int clist_row_selected; static ContactList *glob_contact_list=NULL; static ContactList *export_contact_list=NULL; static GtkWidget *new_record_button; static GtkWidget *apply_record_button; static GtkWidget *add_record_button; static GtkWidget *delete_record_button; static GtkWidget *undelete_record_button; static GtkWidget *copy_record_button; static GtkWidget *cancel_record_button; static int record_changed; static GtkWidget *private_checkbox; static GtkWidget *picture_button; static GtkWidget *birthday_checkbox; static GtkWidget *birthday_button; static GtkWidget *birthday_box; static GtkWidget *reminder_checkbox; static GtkWidget *reminder_entry; static GtkWidget *reminder_box; static struct tm birthday; static GtkWidget *image=NULL; static struct ContactPicture contact_picture; static GList *changed_list=NULL; extern GtkWidget *glob_date_label; extern int glob_date_timer_tag; /****************************** Prototypes ************************************/ static void connect_changed_signals(int con_or_dis); static void address_update_clist(GtkWidget *clist, GtkWidget *tooltip_widget, ContactList **cont_list, int category, int main); static int address_clist_redraw(void); static int address_find(void); /****************************** Main Code *************************************/ /* Called once on initialization of GUI */ static void init(void) { time_t ltime; struct tm *now; if (address_version) { jp_logf(JP_LOG_DEBUG, "setting schema to contacts\n"); schema = contact_schema; schema_size = NUM_CONTACT_FIELDS; } else { jp_logf(JP_LOG_DEBUG, "setting schema to addresses\n"); schema = address_schema; schema_size = NUM_ADDRESS_FIELDS; } time(<ime); now = localtime(<ime); memcpy(&birthday, now, sizeof(struct tm)); contact_picture.dirty=0; contact_picture.length=0; contact_picture.data=NULL; clist_row_selected=0; changed_list=NULL; record_changed=CLEAR_FLAG; } static void set_new_button_to(int new_state) { jp_logf(JP_LOG_DEBUG, "set_new_button_to new %d old %d\n", new_state, record_changed); if (record_changed==new_state) { return; } switch (new_state) { case MODIFY_FLAG: gtk_widget_show(cancel_record_button); gtk_widget_show(copy_record_button); gtk_widget_show(apply_record_button); gtk_widget_hide(add_record_button); gtk_widget_hide(delete_record_button); gtk_widget_hide(new_record_button); gtk_widget_hide(undelete_record_button); break; case NEW_FLAG: gtk_widget_show(cancel_record_button); gtk_widget_show(add_record_button); gtk_widget_hide(apply_record_button); gtk_widget_hide(copy_record_button); gtk_widget_hide(delete_record_button); gtk_widget_hide(new_record_button); gtk_widget_hide(undelete_record_button); break; case CLEAR_FLAG: gtk_widget_show(delete_record_button); gtk_widget_show(copy_record_button); gtk_widget_show(new_record_button); gtk_widget_hide(add_record_button); gtk_widget_hide(apply_record_button); gtk_widget_hide(cancel_record_button); gtk_widget_hide(undelete_record_button); break; case UNDELETE_FLAG: gtk_widget_show(undelete_record_button); gtk_widget_show(copy_record_button); gtk_widget_show(new_record_button); gtk_widget_hide(add_record_button); gtk_widget_hide(apply_record_button); gtk_widget_hide(cancel_record_button); gtk_widget_hide(delete_record_button); break; default: return; } record_changed=new_state; } static void cb_record_changed(GtkWidget *widget, gpointer data) { jp_logf(JP_LOG_DEBUG, "cb_record_changed\n"); if (record_changed==CLEAR_FLAG) { connect_changed_signals(DISCONNECT_SIGNALS); if (GTK_CLIST(clist)->rows > 0) { set_new_button_to(MODIFY_FLAG); } else { set_new_button_to(NEW_FLAG); } } else if (record_changed==UNDELETE_FLAG) { jp_logf(JP_LOG_INFO|JP_LOG_GUI, _("This record is deleted.\n" "Undelete it or copy it to make changes.\n")); } } static void connect_changed_signals(int con_or_dis) { GtkWidget *w; GList *temp_list; static int connected=0; /* Connect signals */ if ((con_or_dis==CONNECT_SIGNALS)) { if (connected) return; connected=1; for (temp_list = changed_list; temp_list; temp_list = temp_list->next) { if (!(w=temp_list->data)) { continue; } if (GTK_IS_TEXT_BUFFER(w) || GTK_IS_ENTRY(w) || GTK_IS_TEXT_VIEW(w) ) { g_signal_connect(w, "changed", GTK_SIGNAL_FUNC(cb_record_changed), NULL); continue; } if (GTK_IS_CHECK_MENU_ITEM(w) || GTK_IS_RADIO_BUTTON(w) || GTK_IS_CHECK_BUTTON(w) ) { g_signal_connect(w, "toggled", GTK_SIGNAL_FUNC(cb_record_changed), NULL); continue; } if (GTK_IS_BUTTON(w)) { g_signal_connect(w, "pressed", GTK_SIGNAL_FUNC(cb_record_changed), NULL); continue; } jp_logf(JP_LOG_DEBUG, "connect_changed_signals(): Encountered unknown object type. Skipping\n"); } return; } /* Disconnect signals */ if ((con_or_dis==DISCONNECT_SIGNALS)) { if (!connected) return; connected=0; for (temp_list = changed_list; temp_list; temp_list = temp_list->next) { if (!(temp_list->data)) { continue; } w=temp_list->data; g_signal_handlers_disconnect_by_func(w, GTK_SIGNAL_FUNC(cb_record_changed), NULL); } } } int address_print(void) { long this_many; AddressList *addr_list; MyContact *mcont; ContactList *cont_list; ContactList cont_list1; int get_category; get_pref(PREF_PRINT_THIS_MANY, &this_many, NULL); cont_list=NULL; if (this_many==1) { mcont = gtk_clist_get_row_data(GTK_CLIST(clist), clist_row_selected); if (mcont < (MyContact *)CLIST_MIN_DATA) { return EXIT_FAILURE; } memcpy(&(cont_list1.mcont), mcont, sizeof(MyContact)); cont_list1.next=NULL; cont_list = &cont_list1; } /* Get Contacts, or Addresses */ if ((this_many==2) || (this_many==3)) { get_category = CATEGORY_ALL; if (this_many==2) { get_category = address_category; } if (address_version==0) { addr_list = NULL; get_addresses2(&addr_list, SORT_ASCENDING, 2, 2, 1, get_category); copy_addresses_to_contacts(addr_list, &cont_list); free_AddressList(&addr_list); } else { get_contacts2(&cont_list, SORT_ASCENDING, 2, 2, 1, get_category); } } print_contacts(cont_list, &contact_app_info, schema, schema_size); if ((this_many==2) || (this_many==3)) { free_ContactList(&cont_list); } return EXIT_SUCCESS; } static GString *contact_to_gstring(struct Contact *cont) { GString *s; int i; int address_i, IM_i, phone_i; char birthday_str[255]; const char *pref_date; char NL[2]; char *utf; long char_set; get_pref(PREF_CHAR_SET, &char_set, NULL); s = g_string_sized_new(4096); NL[0]='\0'; NL[1]='\0'; address_i = IM_i = phone_i = 0; for (i=0; ientry[schema[i].record_field]==NULL) continue; if (address_version) { g_string_sprintfa(s, _("%s%s: %s"), NL, contact_app_info.labels[schema[i].record_field], cont->entry[schema[i].record_field]); } else { utf = charset_p2newj(contact_app_info.labels[schema[i].record_field], 16, char_set); g_string_sprintfa(s, _("%s%s: %s"), NL, utf, cont->entry[schema[i].record_field]); g_free(utf); } NL[0]='\n'; break; case ADDRESS_GUI_DIAL_SHOW_PHONE_MENU_TEXT: if (cont->entry[schema[i].record_field]==NULL) { phone_i++; continue; } utf = charset_p2newj(contact_app_info.phoneLabels[cont->phoneLabel[phone_i]], 16, char_set); g_string_sprintfa(s, _("%s%s: %s"), NL, utf, cont->entry[schema[i].record_field]); g_free(utf); NL[0]='\n'; phone_i++; break; case ADDRESS_GUI_IM_MENU_TEXT: if (cont->entry[schema[i].record_field]==NULL) { IM_i++; continue; } utf = charset_p2newj(contact_app_info.IMLabels[cont->IMLabel[IM_i]], 16, char_set); g_string_sprintfa(s, _("%s%s: %s"), NL, utf, cont->entry[schema[i].record_field]); g_free(utf); NL[0]='\n'; IM_i++; break; case ADDRESS_GUI_ADDR_MENU_TEXT: if (cont->entry[schema[i].record_field]==NULL) { address_i++; continue; } utf = charset_p2newj(contact_app_info.addrLabels[cont->addressLabel[address_i]], 16, char_set); g_string_sprintfa(s, _("%s%s: %s"), NL, utf, cont->entry[schema[i].record_field]); g_free(utf); NL[0]='\n'; address_i++; break; case ADDRESS_GUI_BIRTHDAY: if (cont->birthdayFlag==0) continue; get_pref(PREF_LONGDATE, NULL, &pref_date); strftime(birthday_str, sizeof(birthday_str), pref_date, &cont->birthday); utf = charset_p2newj(contact_app_info.labels[schema[i].record_field], 16, char_set); g_string_sprintfa(s, _("%s%s: %s"), NL, utf, birthday_str); g_free(utf); NL[0]='\n'; break; } } return s; } /* Start Import Code */ static int cb_addr_import(GtkWidget *parent_window, const char *file_path, int type) { FILE *in; char text[65536]; struct Address new_addr; struct Contact new_cont; struct CategoryAppInfo *p_cai; unsigned char attrib; int i, j, ret, index; int address_i, IM_i, phone_i; int import_all; char old_cat_name[32]; int new_cat_num, suggested_cat_num; int priv; int year, month, day; GString *cont_text; AddressList *addrlist; AddressList *temp_addrlist; struct CategoryAppInfo cai; in=fopen(file_path, "r"); if (!in) { jp_logf(JP_LOG_WARN, _("Unable to open file: %s\n"), file_path); return EXIT_FAILURE; } switch (type) { case IMPORT_TYPE_CSV: jp_logf(JP_LOG_DEBUG, "Address import CSV [%s]\n", file_path); /* Switch between contacts & address data structures */ if (address_version) { p_cai = &contact_app_info.category; } else { p_cai = &address_app_info.category; } /* Get the first line containing the format and check for reasonableness */ if (! fgets(text, sizeof(text), in)) { jp_logf(JP_LOG_WARN, _("Unable to read file: %s\n"), file_path); } if (address_version) { ret = verify_csv_header(text, NUM_CONT_CSV_FIELDS, file_path); } else { ret = verify_csv_header(text, NUM_ADDR_CSV_FIELDS, file_path); } if (EXIT_FAILURE == ret) return EXIT_FAILURE; import_all=FALSE; while (1) { /* Read the category field */ read_csv_field(in, text, sizeof(text)); if (feof(in)) break; #ifdef JPILOT_DEBUG printf("category is [%s]\n", text); #endif g_strlcpy(old_cat_name, text, 16); /* Try to match imported category name to an existing category number */ suggested_cat_num = 0; for (i=0; iname[i][0]) continue; if (!strcmp(p_cai->name[i], old_cat_name)) { suggested_cat_num = i; break; } } /* Read the private field */ read_csv_field(in, text, sizeof(text)); #ifdef JPILOT_DEBUG printf("private is [%s]\n", text); #endif sscanf(text, "%d", &priv); /* Need to clear record if doing multiple imports */ memset(&new_cont, 0, sizeof(new_cont)); address_i=phone_i=IM_i=0; for (i=0; istr, p_cai, old_cat_name, priv, suggested_cat_num, &new_cat_num); } else { new_cat_num=suggested_cat_num; } g_string_free(cont_text, TRUE); if (ret==DIALOG_SAID_IMPORT_QUIT) { jp_free_Contact(&new_cont); break; } if (ret==DIALOG_SAID_IMPORT_SKIP) { jp_free_Contact(&new_cont); continue; } if (ret==DIALOG_SAID_IMPORT_ALL) { import_all=TRUE; } attrib = (new_cat_num & 0x0F) | (priv ? dlpRecAttrSecret : 0); if ((ret==DIALOG_SAID_IMPORT_YES) || import_all) { if (address_version) { pc_contact_write(&new_cont, NEW_PC_REC, attrib, NULL); jp_free_Contact(&new_cont); } else { copy_contact_to_address(&new_cont,&new_addr); jp_free_Contact(&new_cont); pc_address_write(&new_addr, NEW_PC_REC, attrib, NULL); free_Address(&new_addr); } } } break; case IMPORT_TYPE_DAT: /* Palm Desktop DAT format */ jp_logf(JP_LOG_DEBUG, "Address import DAT [%s]\n", file_path); if (dat_check_if_dat_file(in)!=DAT_ADDRESS_FILE) { jp_logf(JP_LOG_WARN, _("File doesn't appear to be address.dat format\n")); fclose(in); return EXIT_FAILURE; } addrlist=NULL; dat_get_addresses(in, &addrlist, &cai); import_all=FALSE; for (temp_addrlist=addrlist; temp_addrlist; temp_addrlist=temp_addrlist->next) { index=temp_addrlist->maddr.unique_id-1; if (index<0) { g_strlcpy(old_cat_name, _("Unfiled"), 16); } else { g_strlcpy(old_cat_name, cai.name[index], 16); } /* Figure out what category it was in the dat file */ index=temp_addrlist->maddr.unique_id-1; suggested_cat_num=0; if (index>-1) { for (i=0; imaddr.addr), &new_cont); cont_text = contact_to_gstring(&new_cont); ret=import_record_ask(parent_window, pane, cont_text->str, &(address_app_info.category), old_cat_name, (temp_addrlist->maddr.attrib & 0x10), suggested_cat_num, &new_cat_num); g_string_free(cont_text, TRUE); jp_free_Contact(&new_cont); } else { new_cat_num=suggested_cat_num; } if (ret==DIALOG_SAID_IMPORT_QUIT) break; if (ret==DIALOG_SAID_IMPORT_SKIP) continue; if (ret==DIALOG_SAID_IMPORT_ALL) import_all=TRUE; attrib = (new_cat_num & 0x0F) | ((temp_addrlist->maddr.attrib & 0x10) ? dlpRecAttrSecret : 0); if ((ret==DIALOG_SAID_IMPORT_YES) || (import_all)) { pc_address_write(&(temp_addrlist->maddr.addr), NEW_PC_REC, attrib, NULL); } } free_AddressList(&addrlist); break; } /* end switch for import types */ address_refresh(); fclose(in); return EXIT_SUCCESS; } int address_import(GtkWidget *window) { char *type_desc[] = { N_("CSV (Comma Separated Values)"), N_("DAT/ABA (Palm Archive Formats)"), NULL }; int type_int[] = { IMPORT_TYPE_CSV, IMPORT_TYPE_DAT, 0 }; /* Hide ABA import of Contacts until file format has been decoded */ if (address_version==1) { type_desc[1] = NULL; type_int[1] = 0; } import_gui(window, pane, type_desc, type_int, cb_addr_import); return EXIT_SUCCESS; } /* End Import Code */ /* Start Export code */ static const char *ldifMapType(int label) { switch (label) { case 0: return "telephoneNumber"; case 1: return "homePhone"; case 2: return "facsimileTelephoneNumber"; case 3: return "xotherTelephoneNumber"; case 4: return "mail"; case 5: return "xmainTelephoneNumber"; case 6: return "pager"; case 7: return "mobile"; default: return "xunknownTelephoneNumber"; } } static const char *vCardMapType(int label) { switch (label) { case 0: return "work"; case 1: return "home"; case 2: return "fax"; case 3: return "x-other"; case 4: return "email"; case 5: return "x-main"; case 6: return "pager"; case 7: return "cell"; default: return "x-unknown"; } } static void cb_addr_export_ok(GtkWidget *export_window, GtkWidget *clist, int type, const char *filename) { MyContact *mcont; GList *list, *temp_list; FILE *out; struct stat statb; const char *short_date; time_t ltime; struct tm *now; char str1[256], str2[256]; char pref_time[40]; int i, r, n; int record_num; char *button_text[]={N_("OK")}; char *button_overwrite_text[]={N_("No"), N_("Yes")}; char text[1024]; char date_string[1024]; char csv_text[65550]; long char_set; char username[256]; char hostname[256]; const char *svalue; long userid; char birthday_str[255]; const char *pref_date; int address_i, IM_i, phone_i; int index = 0; char *utf; /* Open file for export, including corner cases where file exists or * can't be opened */ if (!stat(filename, &statb)) { if (S_ISDIR(statb.st_mode)) { g_snprintf(text, sizeof(text), _("%s is a directory"), filename); dialog_generic(GTK_WINDOW(export_window), _("Error Opening File"), DIALOG_ERROR, text, 1, button_text); return; } g_snprintf(text, sizeof(text), _("Do you want to overwrite file %s?"), filename); r = dialog_generic(GTK_WINDOW(export_window), _("Overwrite File?"), DIALOG_QUESTION, text, 2, button_overwrite_text); if (r!=DIALOG_SAID_2) { return; } } out = fopen(filename, "w"); if (!out) { g_snprintf(text, sizeof(text), _("Error opening file: %s"), filename); dialog_generic(GTK_WINDOW(export_window), _("Error Opening File"), DIALOG_ERROR, text, 1, button_text); return; } /* Write a header for TEXT file */ if (type == EXPORT_TYPE_TEXT) { get_pref(PREF_SHORTDATE, NULL, &short_date); get_pref_time_no_secs(pref_time); time(<ime); now = localtime(<ime); strftime(str1, sizeof(str1), short_date, now); strftime(str2, sizeof(str2), pref_time, now); g_snprintf(date_string, sizeof(date_string), "%s %s", str1, str2); if (address_version==0) { fprintf(out, _("Address exported from %s %s on %s\n\n"), PN,VERSION,date_string); } else { fprintf(out, _("Contact exported from %s %s on %s\n\n"), PN,VERSION,date_string); } } /* Write a header to the CSV file */ if (type == EXPORT_TYPE_CSV) { if (address_version) { fprintf(out, "CSV contacts version "VERSION": Category, Private, "); } else { fprintf(out, "CSV address version "VERSION": Category, Private, "); } address_i=phone_i=IM_i=0; for (i=0; iselection; /* Loop over clist of records to export */ for (record_num=0, temp_list=list; temp_list; temp_list = temp_list->next, record_num++) { mcont = gtk_clist_get_row_data(GTK_CLIST(clist), GPOINTER_TO_INT(temp_list->data)); if (!mcont) { continue; jp_logf(JP_LOG_WARN, _("Can't export address %d\n"), (long) temp_list->data + 1); } switch (type) { case EXPORT_TYPE_TEXT: utf = charset_p2newj(contact_app_info.category.name[mcont->attrib & 0x0F], 16, char_set); fprintf(out, _("Category: %s\n"), utf); g_free(utf); fprintf(out, _("Private: %s\n"), (mcont->attrib & dlpRecAttrSecret) ? _("Yes"):_("No")); for (i=0; icont.birthdayFlag) { fprintf(out, _("%s: "), contact_app_info.labels[schema[i].record_field] ? contact_app_info.labels[schema[i].record_field] : ""); birthday_str[0]='\0'; get_pref(PREF_SHORTDATE, NULL, &pref_date); strftime(birthday_str, sizeof(birthday_str), pref_date, &(mcont->cont.birthday)); fprintf(out, _("%s\n"), birthday_str); continue; } } if (mcont->cont.entry[schema[i].record_field]) { /* Print labels for menu selectable fields (Work, Fax, etc.) */ switch (schema[i].type) { case ADDRESS_GUI_IM_MENU_TEXT: index = mcont->cont.IMLabel[i-contIM1]; fprintf(out, _("%s: "), contact_app_info.IMLabels[index]); break; case ADDRESS_GUI_DIAL_SHOW_PHONE_MENU_TEXT: index = mcont->cont.phoneLabel[i-contPhone1]; fprintf(out, _("%s: "), contact_app_info.phoneLabels[index]); break; case ADDRESS_GUI_ADDR_MENU_TEXT: switch (schema[i].record_field) { case contAddress1 : index = 0; break; case contAddress2 : index = 1; break; case contAddress3 : index = 2; break; } index = mcont->cont.addressLabel[index]; fprintf(out, _("%s: "), contact_app_info.addrLabels[mcont->cont.addressLabel[index]]); break; default: fprintf(out, _("%s: "), contact_app_info.labels[schema[i].record_field] ? contact_app_info.labels[schema[i].record_field] : ""); } /* Next print the entry field */ switch (schema[i].type) { case ADDRESS_GUI_LABEL_TEXT: case ADDRESS_GUI_DIAL_SHOW_PHONE_MENU_TEXT: case ADDRESS_GUI_IM_MENU_TEXT: case ADDRESS_GUI_ADDR_MENU_TEXT: case ADDRESS_GUI_WEBSITE_TEXT: fprintf(out, "%s\n", mcont->cont.entry[schema[i].record_field]); break; } } } fprintf(out, "\n"); break; case EXPORT_TYPE_CSV: /* Category name */ utf = charset_p2newj(contact_app_info.category.name[mcont->attrib & 0x0F], 16, char_set); str_to_csv_str(csv_text, utf); fprintf(out, "\"%s\",", csv_text); g_free(utf); /* Private */ fprintf(out, "\"%s\",", (mcont->attrib & dlpRecAttrSecret) ? "1":"0"); address_i=phone_i=IM_i=0; /* The Contact entry values */ for (i=0; icont.IMLabel[IM_i]]); fprintf(out, "\"%s\",", csv_text); str_to_csv_str(csv_text, mcont->cont.entry[schema[i].record_field] ? mcont->cont.entry[schema[i].record_field] : ""); fprintf(out, "\"%s\",", csv_text); IM_i++; break; case ADDRESS_GUI_DIAL_SHOW_PHONE_MENU_TEXT: str_to_csv_str(csv_text, contact_app_info.phoneLabels[mcont->cont.phoneLabel[phone_i]]); fprintf(out, "\"%s\",", csv_text); str_to_csv_str(csv_text, mcont->cont.entry[schema[i].record_field] ? mcont->cont.entry[schema[i].record_field] : ""); fprintf(out, "\"%s\",", csv_text); phone_i++; break; case ADDRESS_GUI_ADDR_MENU_TEXT: str_to_csv_str(csv_text, contact_app_info.addrLabels[mcont->cont.addressLabel[address_i]]); fprintf(out, "\"%s\",", csv_text); str_to_csv_str(csv_text, mcont->cont.entry[schema[i].record_field] ? mcont->cont.entry[schema[i].record_field] : ""); fprintf(out, "\"%s\",", csv_text); address_i++; break; case ADDRESS_GUI_LABEL_TEXT: case ADDRESS_GUI_WEBSITE_TEXT: str_to_csv_str(csv_text, mcont->cont.entry[schema[i].record_field] ? mcont->cont.entry[schema[i].record_field] : ""); fprintf(out, "\"%s\",", csv_text); break; case ADDRESS_GUI_BIRTHDAY: if (mcont->cont.birthdayFlag) { birthday_str[0]='\0'; strftime(birthday_str, sizeof(birthday_str), "%Y/%02m/%02d", &(mcont->cont.birthday)); fprintf(out, "\"%s\",", birthday_str); if (mcont->cont.reminder) { fprintf(out, "\"%d\",", mcont->cont.advance); } else { fprintf(out, "\"\","); } } else { fprintf(out, "\"\","); /* for null Birthday field */ fprintf(out, "\"\","); /* for null Birthday Reminder field */ } break; } } fprintf(out, "\"%d\"\n", mcont->cont.showPhone); break; case EXPORT_TYPE_VCARD: case EXPORT_TYPE_VCARD_GMAIL: /* RFC 2426: vCard MIME Directory Profile */ fprintf(out, "BEGIN:VCARD"CRLF); fprintf(out, "VERSION:3.0"CRLF); fprintf(out, "PRODID:%s"CRLF, FPI_STRING); if (mcont->attrib & dlpRecAttrSecret) { fprintf(out, "CLASS:PRIVATE"CRLF); } fprintf(out, "UID:palm-addressbook-%08x-%08lx-%s@%s"CRLF, mcont->unique_id, userid, username, hostname); utf = charset_p2newj(contact_app_info.category.name[mcont->attrib & 0x0F], 16, char_set); str_to_vcard_str(csv_text, sizeof(csv_text), utf); fprintf(out, "CATEGORIES:%s"CRLF, csv_text); g_free(utf); if (mcont->cont.entry[contLastname] || mcont->cont.entry[contFirstname]) { char *last = mcont->cont.entry[contLastname]; char *first = mcont->cont.entry[contFirstname]; fprintf(out, "FN:"); if (first) { str_to_vcard_str(csv_text, sizeof(csv_text), first); fprintf(out, "%s", csv_text); } if (first && last) { fprintf(out, " "); } if (last) { str_to_vcard_str(csv_text, sizeof(csv_text), last); fprintf(out, "%s", csv_text); } fprintf(out, CRLF); fprintf(out, "N:"); if (last) { str_to_vcard_str(csv_text, sizeof(csv_text), last); fprintf(out, "%s", csv_text); } fprintf(out, ";"); /* split up first into first + middle and do first;middle,middle*/ if (first) { str_to_vcard_str(csv_text, sizeof(csv_text), first); fprintf(out, "%s", csv_text); } fprintf(out, CRLF); } else if (mcont->cont.entry[contCompany]) { str_to_vcard_str(csv_text, sizeof(csv_text), mcont->cont.entry[contCompany]); fprintf(out, "FN:%s"CRLF"N:%s"CRLF, csv_text, csv_text); } else { fprintf(out, "FN:-Unknown-"CRLF"N:known-;-Un"CRLF); } if (mcont->cont.entry[contTitle]) { str_to_vcard_str(csv_text, sizeof(csv_text), mcont->cont.entry[contTitle]); fprintf(out, "TITLE:%s"CRLF, csv_text); } if (mcont->cont.entry[contCompany]) { str_to_vcard_str(csv_text, sizeof(csv_text), mcont->cont.entry[contCompany]); fprintf(out, "ORG:%s"CRLF, csv_text); } for (n = contPhone1; n < contPhone7 + 1; n++) { if (mcont->cont.entry[n]) { str_to_vcard_str(csv_text, sizeof(csv_text), mcont->cont.entry[n]); /* E-mail should be the Palm dropdown menu item for email */ if (!strcasecmp(contact_app_info.phoneLabels[mcont->cont.phoneLabel[n-contPhone1]], _("E-mail"))) { fprintf(out, "EMAIL:%s"CRLF, csv_text); } else { fprintf(out, "TEL;TYPE=%s", vCardMapType(mcont->cont.phoneLabel[n - contPhone1])); if (mcont->cont.showPhone == n - contPhone1) { fprintf(out, ",pref"); } fprintf(out, ":%s"CRLF, csv_text); } } } for (i=0; icont.entry[address_i] || mcont->cont.entry[city_i] || mcont->cont.entry[state_i] || mcont->cont.entry[zip_i] || mcont->cont.entry[country_i]) { /* Should we rely on the label, or the label index, for the addr * type? The label depends on the translated text. I'll go * with index for now. The text is here: contact_app_info.addrLabels[mcont->cont.addressLabel[i]] */ switch (mcont->cont.addressLabel[i]) { case 0: fprintf(out, "ADR;TYPE=WORK:;;"); break; case 1: fprintf(out, "ADR;TYPE=HOME:;;"); break; default: fprintf(out, "ADR:;;"); } for (n = address_i; n < country_i + 1; n++) { if (mcont->cont.entry[n]) { str_to_vcard_str(csv_text, sizeof(csv_text), mcont->cont.entry[n]); fprintf(out, "%s", csv_text); } if (n < country_i) { fprintf(out, ";"); } } fprintf(out, CRLF); } } for (i = 0; i < NUM_IMS; i++) { int im_i = 0; switch (i) { case 0: im_i = contIM1; break; case 1: im_i = contIM2; break; } if (mcont->cont.entry[im_i]) { int i_label = mcont->cont.IMLabel[i]; const gchar *label = contact_app_info.IMLabels[i_label]; gchar *vlabel; if (strcmp(label, "AOL ICQ") == 0) label = "ICQ"; vlabel = g_strcanon(g_ascii_strup(label, -1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ-", '-'); fprintf(out, "X-%s:", vlabel); g_free(vlabel); str_to_vcard_str(csv_text, sizeof(csv_text), mcont->cont.entry[im_i]); fprintf(out, "%s"CRLF, csv_text); } } if (mcont->cont.entry[contWebsite]) { str_to_vcard_str(csv_text, sizeof(csv_text), mcont->cont.entry[contWebsite]); fprintf(out, "URL:%s"CRLF, csv_text); } if (mcont->cont.birthdayFlag) { char birthday_str[255]; strftime(birthday_str, sizeof(birthday_str), "%F", &mcont->cont.birthday); str_to_vcard_str(csv_text, sizeof(csv_text), birthday_str); fprintf(out, "BDAY:%s"CRLF, birthday_str); } if (type == EXPORT_TYPE_VCARD_GMAIL) { /* Gmail contacts don't have fields for the custom fields, * rather than lose them we can stick them all in a note field */ int printed_note = 0; for (n=contCustom1; n<=contCustom9; n++) { if (mcont->cont.entry[n]) { if (!printed_note) { printed_note=1; fprintf(out, "NOTE:"); } else { fprintf(out, " "); } str_to_vcard_str(csv_text, sizeof(csv_text), mcont->cont.entry[n]); fprintf(out, "%s:%s\\n"CRLF, contact_app_info.customLabels[n-contCustom1], csv_text); } } if (mcont->cont.entry[contNote]) { if (!printed_note) { fprintf(out, "NOTE:"); } else { fprintf(out, " note:"); } str_to_vcard_str(csv_text, sizeof(csv_text), mcont->cont.entry[contNote]); fprintf(out, "%s\\n"CRLF, csv_text); } } else { /* Not a Gmail optimized export */ if (mcont->cont.entry[contCustom1] || mcont->cont.entry[contCustom2] || mcont->cont.entry[contCustom3] || mcont->cont.entry[contCustom4] || mcont->cont.entry[contCustom5] || mcont->cont.entry[contCustom6] || mcont->cont.entry[contCustom7] || mcont->cont.entry[contCustom8] || mcont->cont.entry[contCustom9]) { for (n=contCustom1; n<=contCustom9; n++) { if (mcont->cont.entry[n]) { const gchar *label = contact_app_info.customLabels[n-contCustom1]; gchar *vlabel; vlabel = g_strcanon(g_ascii_strup(label, -1), "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-", '-'); fprintf(out, "X-%s:", vlabel); g_free(vlabel); str_to_vcard_str(csv_text, sizeof(csv_text), mcont->cont.entry[n]); fprintf(out, "%s"CRLF, csv_text); } } } if (mcont->cont.entry[contNote]) { fprintf(out, "NOTE:"); str_to_vcard_str(csv_text, sizeof(csv_text), mcont->cont.entry[contNote]); fprintf(out, "%s\\n"CRLF, csv_text); } } fprintf(out, "END:VCARD"CRLF); break; case EXPORT_TYPE_LDIF: /* RFC 2256 - organizationalPerson */ /* RFC 2798 - inetOrgPerson */ /* RFC 2849 - LDIF file format */ if (record_num == 0) { fprintf(out, "version: 1\n"); } { char *cn; char *email = NULL; char *last = mcont->cont.entry[contLastname]; char *first = mcont->cont.entry[contFirstname]; for (n = contPhone1; n <= contPhone7; n++) { if (mcont->cont.entry[n] && mcont->cont.phoneLabel[n - contPhone1] == 4) { email = mcont->cont.entry[n]; break; } } if (first || last) { cn = csv_text; snprintf(csv_text, sizeof(csv_text), "%s%s%s", first ? first : "", first && last ? " " : "", last ? last : ""); if (!last) { last = first; first = NULL; } } else if (mcont->cont.entry[contCompany]) { last = mcont->cont.entry[contCompany]; cn = last; } else { last = "Unknown"; cn = last; } /* maybe add dc=%s for each part of the email address? */ /* Mozilla just does mail=%s */ ldif_out(out, "dn", "cn=%s%s%s", cn, email ? ",mail=" : "", email ? email : ""); fprintf(out, "dnQualifier: %s\n", PN); fprintf(out, "objectClass: top\nobjectClass: person\n"); fprintf(out, "objectClass: organizationalPerson\n"); fprintf(out, "objectClass: inetOrgPerson\n"); ldif_out(out, "cn", "%s", cn); ldif_out(out, "sn", "%s", last); if (first) ldif_out(out, "givenName", "%s", first); if (mcont->cont.entry[contCompany]) ldif_out(out, "o", "%s", mcont->cont.entry[contCompany]); for (n = contPhone1; n <= contPhone7; n++) { if (mcont->cont.entry[n]) { ldif_out(out, ldifMapType(mcont->cont.phoneLabel[n - contPhone1]), "%s", mcont->cont.entry[n]); } } if (mcont->cont.entry[contAddress1]) ldif_out(out, "postalAddress", "%s", mcont->cont.entry[contAddress1]); if (mcont->cont.entry[contCity1]) ldif_out(out, "l", "%s", mcont->cont.entry[contCity1]); if (mcont->cont.entry[contState1]) ldif_out(out, "st", "%s", mcont->cont.entry[contState1]); if (mcont->cont.entry[contZip1]) ldif_out(out, "postalCode", "%s", mcont->cont.entry[contZip1]); if (mcont->cont.entry[contCountry1]) ldif_out(out, "c", "%s", mcont->cont.entry[contCountry1]); if (mcont->cont.entry[contAddress2]) ldif_out(out, "postalAddress", "%s", mcont->cont.entry[contAddress2]); if (mcont->cont.entry[contCity2]) ldif_out(out, "l", "%s", mcont->cont.entry[contCity2]); if (mcont->cont.entry[contState2]) ldif_out(out, "st", "%s", mcont->cont.entry[contState2]); if (mcont->cont.entry[contZip2]) ldif_out(out, "postalCode", "%s", mcont->cont.entry[contZip2]); if (mcont->cont.entry[contCountry2]) ldif_out(out, "c", "%s", mcont->cont.entry[contCountry2]); if (mcont->cont.entry[contAddress3]) ldif_out(out, "postalAddress", "%s", mcont->cont.entry[contAddress3]); if (mcont->cont.entry[contCity3]) ldif_out(out, "l", "%s", mcont->cont.entry[contCity3]); if (mcont->cont.entry[contState3]) ldif_out(out, "st", "%s", mcont->cont.entry[contState3]); if (mcont->cont.entry[contZip3]) ldif_out(out, "postalCode", "%s", mcont->cont.entry[contZip3]); if (mcont->cont.entry[contCountry3]) ldif_out(out, "c", "%s", mcont->cont.entry[contCountry3]); if (mcont->cont.entry[contIM1]) { strncpy(text, contact_app_info.IMLabels[mcont->cont.IMLabel[0]], 100); ldif_out(out, text, "%s", mcont->cont.entry[contIM1]); } if (mcont->cont.entry[contIM2]) { strncpy(text, contact_app_info.IMLabels[mcont->cont.IMLabel[1]], 100); ldif_out(out, text, "%s", mcont->cont.entry[contIM2]); } if (mcont->cont.entry[contWebsite]) ldif_out(out, "website", "%s", mcont->cont.entry[contWebsite]); if (mcont->cont.entry[contTitle]) ldif_out(out, "title", "%s", mcont->cont.entry[contTitle]); if (mcont->cont.entry[contCustom1]) ldif_out(out, "custom1", "%s", mcont->cont.entry[contCustom1]); if (mcont->cont.entry[contCustom2]) ldif_out(out, "custom2", "%s", mcont->cont.entry[contCustom2]); if (mcont->cont.entry[contCustom3]) ldif_out(out, "custom3", "%s", mcont->cont.entry[contCustom3]); if (mcont->cont.entry[contCustom4]) ldif_out(out, "custom4", "%s", mcont->cont.entry[contCustom4]); if (mcont->cont.entry[contCustom5]) ldif_out(out, "custom5", "%s", mcont->cont.entry[contCustom5]); if (mcont->cont.entry[contCustom6]) ldif_out(out, "custom6", "%s", mcont->cont.entry[contCustom6]); if (mcont->cont.entry[contCustom7]) ldif_out(out, "custom7", "%s", mcont->cont.entry[contCustom7]); if (mcont->cont.entry[contCustom8]) ldif_out(out, "custom8", "%s", mcont->cont.entry[contCustom8]); if (mcont->cont.entry[contCustom9]) ldif_out(out, "custom9", "%s", mcont->cont.entry[contCustom9]); if (mcont->cont.entry[contNote]) ldif_out(out, "description", "%s", mcont->cont.entry[contNote]); fprintf(out, "\n"); break; } default: jp_logf(JP_LOG_WARN, _("Unknown export type\n")); } } if (out) { fclose(out); } } static void cb_addr_update_clist(GtkWidget *clist, int category) { address_update_clist(clist, NULL, &export_contact_list, category, FALSE); } static void cb_addr_export_done(GtkWidget *widget, const char *filename) { free_ContactList(&export_contact_list); set_pref(PREF_ADDRESS_EXPORT_FILENAME, 0, filename, TRUE); } int address_export(GtkWidget *window) { int w, h, x, y; char *type_text[]={N_("Text"), N_("CSV"), N_("vCard"), N_("vCard (Optimized for Gmail/Android Import)"), N_("ldif"), NULL}; int type_int[]={EXPORT_TYPE_TEXT, EXPORT_TYPE_CSV, EXPORT_TYPE_VCARD, EXPORT_TYPE_VCARD_GMAIL, EXPORT_TYPE_LDIF}; gdk_window_get_size(window->window, &w, &h); gdk_window_get_root_origin(window->window, &x, &y); w = gtk_paned_get_position(GTK_PANED(pane)); x+=40; export_gui(window, w, h, x, y, 3, sort_l, PREF_ADDRESS_EXPORT_FILENAME, type_text, type_int, cb_addr_update_clist, cb_addr_export_done, cb_addr_export_ok ); return EXIT_SUCCESS; } /* End Export Code */ static void cb_resize_column (GtkCList *clist, gint column, gint width, gpointer user_data) { if (column != ADDRESS_NAME_COLUMN) return; set_pref(PREF_ADDR_NAME_COL_SZ, width, NULL, TRUE); } /* Find position of category in sorted category array * via its assigned category number */ static int find_sort_cat_pos(int cat) { int i; for (i=0; icont), &(maddr.addr)); maddr.rt = mcont->rt; maddr.unique_id = mcont->unique_id; maddr.attrib = mcont->attrib; /* convert to Palm character set */ get_pref(PREF_CHAR_SET, &char_set, NULL); if (char_set != CHAR_SET_LATIN1) { for (i=0; i0) { clist_row_selected--; } } } free_Address(&(maddr.addr)); if (flag == DELETE_FLAG) { address_clist_redraw(); } } static void cb_delete_contact(GtkWidget *widget, gpointer data) { MyContact *mcont; int flag; int show_priv; long char_set; int i; mcont = gtk_clist_get_row_data(GTK_CLIST(clist), clist_row_selected); if (mcont < (MyContact *)CLIST_MIN_DATA) { return; } /* convert to Palm character set */ get_pref(PREF_CHAR_SET, &char_set, NULL); if (char_set != CHAR_SET_LATIN1) { for (i=0; icont.entry[i]) { charset_j2p(mcont->cont.entry[i], strlen(mcont->cont.entry[i])+1, char_set); } } } /* Do masking like Palm OS 3.5 */ show_priv = show_privates(GET_PRIVATES); if ((show_priv != SHOW_PRIVATES) && (mcont->attrib & dlpRecAttrSecret)) { return; } /* End Masking */ flag = GPOINTER_TO_INT(data); if ((flag==MODIFY_FLAG) || (flag==DELETE_FLAG)) { delete_pc_record(CONTACTS, mcont, flag); if (flag==DELETE_FLAG) { /* when we redraw we want to go to the line above the deleted one */ if (clist_row_selected>0) { clist_row_selected--; } } } if (flag == DELETE_FLAG) { address_clist_redraw(); } } static void cb_delete_address_or_contact(GtkWidget *widget, gpointer data) { if (address_version==0) { cb_delete_address(widget, data); } else { cb_delete_contact(widget, data); } } static void cb_undelete_address(GtkWidget *widget, gpointer data) { MyContact *mcont; int flag; int show_priv; mcont = gtk_clist_get_row_data(GTK_CLIST(clist), clist_row_selected); if (mcont < (MyContact *)CLIST_MIN_DATA) { return; } /* Do masking like Palm OS 3.5 */ show_priv = show_privates(GET_PRIVATES); if ((show_priv != SHOW_PRIVATES) && (mcont->attrib & dlpRecAttrSecret)) { return; } /* End Masking */ jp_logf(JP_LOG_DEBUG, "mcont->unique_id = %d\n",mcont->unique_id); jp_logf(JP_LOG_DEBUG, "mcont->rt = %d\n",mcont->rt); flag = GPOINTER_TO_INT(data); if (flag==UNDELETE_FLAG) { if (mcont->rt == DELETED_PALM_REC || (mcont->rt == DELETED_PC_REC)) { if (address_version==0) { MyAddress maddr; maddr.unique_id = mcont->unique_id; undelete_pc_record(ADDRESS, &maddr, flag); } else { undelete_pc_record(CONTACTS, mcont, flag); } } /* Possible later addition of undelete for modified records else if (mcont->rt == MODIFIED_PALM_REC) { cb_add_new_record(widget, GINT_TO_POINTER(COPY_FLAG)); } */ } address_clist_redraw(); } static void cb_cancel(GtkWidget *widget, gpointer data) { set_new_button_to(CLEAR_FLAG); address_refresh(); } /* TODO, this needs converted to Contacts */ static void cb_resort(GtkWidget *widget, gpointer data) { MyAddress *maddr; /* Rotate address sort order among 3 possibilities */ addr_sort_order = addr_sort_order << 1; if (!(addr_sort_order & 0x07)) addr_sort_order = SORT_BY_LNAME; set_pref(PREF_ADDR_SORT_ORDER, addr_sort_order, NULL, TRUE); /* Return to this record after resorting */ maddr = gtk_clist_get_row_data(GTK_CLIST(clist), clist_row_selected); if (maddr < (MyAddress *)CLIST_MIN_DATA) { glob_find_id = 0; } else { glob_find_id = maddr->unique_id; } address_clist_redraw(); /* Update labels AFTER redrawing clist to work around GTK bug */ switch (addr_sort_order) { case SORT_BY_LNAME: gtk_clist_set_column_title(GTK_CLIST(clist), ADDRESS_NAME_COLUMN, _("Last Name/Company")); break; case SORT_BY_FNAME: gtk_clist_set_column_title(GTK_CLIST(clist), ADDRESS_NAME_COLUMN, _("First Name/Company")); break; case SORT_BY_COMPANY: gtk_clist_set_column_title(GTK_CLIST(clist), ADDRESS_NAME_COLUMN, _("Company/Last Name")); break; } } static void cb_phone_menu(GtkWidget *item, unsigned int value) { if (!item) return; if ((GTK_CHECK_MENU_ITEM(item))->active) { jp_logf(JP_LOG_DEBUG, "phone_menu = %d\n", (value & 0xFF00) >> 8); jp_logf(JP_LOG_DEBUG, "selection = %d\n", value & 0xFF); address_phone_label_selected[(value & 0xFF00) >> 8] = value & 0xFF; } } static void cb_IM_type_menu(GtkWidget *item, unsigned int value) { if (!item) return; if ((GTK_CHECK_MENU_ITEM(item))->active) { jp_logf(JP_LOG_DEBUG, "IM_type_menu = %d\n", (value & 0xFF00) >> 8); jp_logf(JP_LOG_DEBUG, "selection = %d\n", value & 0xFF); IM_type_selected[(value & 0xFF00) >> 8] = value & 0xFF; } } /* The least significant byte of value is the selection of the menu, * i.e., which item is chosen (Work, Office, Home). * The next to least significant byte is the address type menu * that is being selected (there are 3 addresses and 3 pulldown menus) */ static void cb_address_type_menu(GtkWidget *item, unsigned int value) { int menu, selection; int address_i, i; if (!item) return; if ((GTK_CHECK_MENU_ITEM(item))->active) { menu = (value & 0xFF00) >> 8; selection = value & 0xFF; jp_logf(JP_LOG_DEBUG, "addr_type_menu = %d\n", menu); jp_logf(JP_LOG_DEBUG, "selection = %d\n", selection); address_type_selected[menu] = selection; /* We want to make the notebook page tab label match the type of * address from the menu. So, we'll find the nth address menu * and set whatever page the schema says it resides on */ address_i=0; for (i=0; iactive) { *attrib = sort_l[i].cat_num; break; } } } /* Get private flag */ if (GTK_TOGGLE_BUTTON(private_checkbox)->active) { *attrib |= dlpRecAttrSecret; } } static void cb_add_new_record(GtkWidget *widget, gpointer data) { int i; struct Contact cont; MyContact *mcont; struct Address addr; unsigned char attrib; int address_i, IM_i, phone_i; int flag, type; unsigned int unique_id; int show_priv; GtkTextIter start_iter; GtkTextIter end_iter; memset(&cont, 0, sizeof(cont)); flag=GPOINTER_TO_INT(data); unique_id=0; mcont=NULL; /* Do masking like Palm OS 3.5 */ if ((flag==COPY_FLAG) || (flag==MODIFY_FLAG)) { show_priv = show_privates(GET_PRIVATES); mcont = gtk_clist_get_row_data(GTK_CLIST(clist), clist_row_selected); if (mcont < (MyContact *)CLIST_MIN_DATA) { return; } if ((show_priv != SHOW_PRIVATES) && (mcont->attrib & dlpRecAttrSecret)) { return; } } /* End Masking */ if ((flag==NEW_FLAG) || (flag==COPY_FLAG) || (flag==MODIFY_FLAG)) { /* These rec_types are both the same for now */ if (flag==MODIFY_FLAG) { mcont = gtk_clist_get_row_data(GTK_CLIST(clist), clist_row_selected); unique_id=mcont->unique_id; if (mcont < (MyContact *)CLIST_MIN_DATA) { return; } if ((mcont->rt==DELETED_PALM_REC) || (mcont->rt==DELETED_PC_REC) || (mcont->rt==MODIFIED_PALM_REC)) { jp_logf(JP_LOG_INFO, _("You can't modify a record that is deleted\n")); return; } } cont.showPhone=0; /* Get the menu labels and settings */ address_i = IM_i = phone_i = 0; for (i=0; iactive) { cont.showPhone=phone_i; } cont.phoneLabel[phone_i]=address_phone_label_selected[phone_i]; phone_i++; break; case ADDRESS_GUI_IM_MENU_TEXT: cont.IMLabel[IM_i]=IM_type_selected[IM_i]; IM_i++; break; case ADDRESS_GUI_ADDR_MENU_TEXT: cont.addressLabel[address_i]=address_type_selected[address_i]; address_i++; break; case ADDRESS_GUI_BIRTHDAY: if (GTK_TOGGLE_BUTTON(birthday_checkbox)->active) { cont.birthdayFlag = 1; memcpy(&cont.birthday, &birthday, sizeof(struct tm)); } if (GTK_TOGGLE_BUTTON(reminder_checkbox)->active) { cont.reminder = 1; cont.advance=atoi(gtk_entry_get_text(GTK_ENTRY(reminder_entry))); cont.advanceUnits = 1; /* Days */ } break; case ADDRESS_GUI_LABEL_TEXT: case ADDRESS_GUI_WEBSITE_TEXT: break; } } /* Get the entry texts */ for (i=0; irt==PALM_REC) || (mcont->rt==REPLACEMENT_PALM_REC)) { type = REPLACEMENT_PALM_REC; } else { unique_id = 0; type = NEW_PC_REC; } } else { unique_id=0; type = NEW_PC_REC; } if (address_version==0) { copy_contact_to_address(&cont, &addr); jp_free_Contact(&cont); pc_address_write(&addr, type, attrib, &unique_id); free_Address(&addr); } else { pc_contact_write(&cont, type, attrib, &unique_id); jp_free_Contact(&cont); } /* Don't return to modified record if search gui active */ if (!glob_find_id) { glob_find_id = unique_id; } address_clist_redraw(); } } static void addr_clear_details(void) { int i; int new_cat; int sorted_position; int address_i, IM_i, phone_i; long ivalue; char reminder_str[10]; /* Palm has phone popup menus in one order and the display of phone tabs * in another. This reorders the tabs to produce the more usable order of * the Palm desktop software */ int phone_btn_order[NUM_PHONE_ENTRIES] = { 0, 1, 4, 7, 5, 3, 2 }; /* Need to disconnect signals first */ connect_changed_signals(DISCONNECT_SIGNALS); /* Clear the quickview */ gtk_text_buffer_set_text(GTK_TEXT_BUFFER(addr_all_buffer), "", -1); /* Clear all of the text fields */ for (i=0; irows; i++) { r = gtk_clist_get_text(GTK_CLIST(clist), i, ADDRESS_NAME_COLUMN, &clist_text); if (!r) { break; } if (!strncasecmp(clist_text, entry_text, strlen(entry_text))) { clist_select_row(GTK_CLIST(clist), i, ADDRESS_NAME_COLUMN); gtk_clist_moveto(GTK_CLIST(clist), i, 0, 0.5, 0.0); break; } } } static void cb_edit_cats_contacts(GtkWidget *widget, gpointer data) { struct ContactAppInfo cai; char full_name[FILENAME_MAX]; int num; size_t size; void *buf; struct pi_file *pf; pi_buffer_t *pi_buf; jp_logf(JP_LOG_DEBUG, "cb_edit_cats_contacts\n"); get_home_file_name("ContactsDB-PAdd.pdb", full_name, sizeof(full_name)); buf=NULL; memset(&cai, 0, sizeof(cai)); /* Contacts App Info is 1152 or so */ pi_buf = pi_buffer_new(1500); pf = pi_file_open(full_name); pi_file_get_app_info(pf, &buf, &size); pi_buf = pi_buffer_append(pi_buf, buf, size); num = jp_unpack_ContactAppInfo(&cai, pi_buf); if (num <= 0) { jp_logf(JP_LOG_WARN, _("Error reading file: %s\n"), "ContactsDB-PAdd.pdb"); pi_buffer_free(pi_buf); return; } pi_file_close(pf); edit_cats(widget, "ContactsDB-PAdd", &(cai.category)); size = jp_pack_ContactAppInfo(&cai, pi_buf); pdb_file_write_app_block("ContactsDB-PAdd", pi_buf->data, pi_buf->used); pi_buffer_free(pi_buf); } static void cb_edit_cats_address(GtkWidget *widget, gpointer data) { struct AddressAppInfo aai; char full_name[FILENAME_MAX]; char buffer[65536]; int num; size_t size; void *buf; struct pi_file *pf; jp_logf(JP_LOG_DEBUG, "cb_edit_cats_address\n"); get_home_file_name("AddressDB.pdb", full_name, sizeof(full_name)); buf=NULL; memset(&aai, 0, sizeof(aai)); pf = pi_file_open(full_name); pi_file_get_app_info(pf, &buf, &size); num = unpack_AddressAppInfo(&aai, buf, size); if (num <= 0) { jp_logf(JP_LOG_WARN, _("Error reading file: %s\n"), "AddressDB.pdb"); return; } pi_file_close(pf); edit_cats(widget, "AddressDB", &(aai.category)); size = pack_AddressAppInfo(&aai, (unsigned char*)buffer, sizeof(buffer)); pdb_file_write_app_block("AddressDB", buffer, size); } static void cb_edit_cats(GtkWidget *widget, gpointer data) { if (address_version) { cb_edit_cats_contacts(widget, data); } else { cb_edit_cats_address(widget, data); } cb_app_button(NULL, GINT_TO_POINTER(REDRAW)); } static void cb_category(GtkWidget *item, int selection) { int b; if (!item) return; if ((GTK_CHECK_MENU_ITEM(item))->active) { if (address_category == selection) { return; } b=dialog_save_changed_record_with_cancel(pane, record_changed); if (b==DIALOG_SAID_1) { /* Cancel */ int index, index2; if (address_category==CATEGORY_ALL) { index = 0; index2 = 0; } else { index=find_sort_cat_pos(address_category); index2 = find_menu_cat_pos(index) + 1; index += 1; } if (index<0) { jp_logf(JP_LOG_WARN, _("Category is not legal\n")); } else { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(address_cat_menu_item1[index]), TRUE); gtk_option_menu_set_history(GTK_OPTION_MENU(category_menu1), index2); } return; } if (b==DIALOG_SAID_3) { /* Save */ cb_add_new_record(NULL, GINT_TO_POINTER(record_changed)); } if (selection==NUM_ADDRESS_CAT_ITEMS+1) { cb_edit_cats(item, NULL); } else { address_category = selection; } clist_row_selected = 0; jp_logf(JP_LOG_DEBUG, "address_category = %d\n",address_category); address_update_clist(clist, category_menu1, &glob_contact_list, address_category, TRUE); /* gives the focus to the search field */ gtk_widget_grab_focus(address_quickfind_entry); } } static void clear_mycontact(MyContact *mcont) { mcont->unique_id=0; mcont->attrib=mcont->attrib & 0xF8; jp_free_Contact(&(mcont->cont)); memset(&(mcont->cont), 0, sizeof(struct Contact)); return; } static void set_button_label_to_date(GtkWidget *button, struct tm *date) { char birthday_str[255]; const char *pref_date; birthday_str[0]='\0'; get_pref(PREF_SHORTDATE, NULL, &pref_date); strftime(birthday_str, sizeof(birthday_str), pref_date, date); gtk_button_set_label(GTK_BUTTON(button), birthday_str); } static void cb_button_birthday(GtkWidget *widget, gpointer data) { long fdow; int r; get_pref(PREF_FDOW, &fdow, NULL); r = cal_dialog(GTK_WINDOW(gtk_widget_get_toplevel(widget)), _("Birthday"), fdow, &(birthday.tm_mon), &(birthday.tm_mday), &(birthday.tm_year)); if (r==CAL_DONE) { set_button_label_to_date(birthday_button, &birthday); } } static void cb_check_button_birthday(GtkWidget *widget, gpointer data) { time_t ltime; struct tm *now; if (GTK_TOGGLE_BUTTON(widget)->active) { gtk_widget_show(birthday_box); set_button_label_to_date(birthday_button, &birthday); } else { gtk_widget_hide(birthday_box); gtk_widget_hide(reminder_box); time(<ime); now = localtime(<ime); memcpy(&birthday, now, sizeof(struct tm)); } } static void cb_check_button_reminder(GtkWidget *widget, gpointer data) { if (GTK_TOGGLE_BUTTON(widget)->active) { gtk_widget_show(reminder_box); } else { gtk_widget_hide(reminder_box); } } /* Photo Code */ static GtkWidget *image_from_data(void *buf, size_t size) { GdkPixbufLoader *loader; GError *error; GdkPixbuf *pb; GtkWidget *tmp_image = NULL; error=NULL; loader = gdk_pixbuf_loader_new(); gdk_pixbuf_loader_write(loader, buf, size, &error); pb = gdk_pixbuf_loader_get_pixbuf(loader); tmp_image = g_object_ref(gtk_image_new_from_pixbuf(pb)); if (loader) { gdk_pixbuf_loader_close(loader, &error); g_object_unref(loader); } /* Force down reference count to prevent memory leak */ if (tmp_image) { g_object_unref(tmp_image); } return tmp_image; } typedef void (*sighandler_t)(int); static int change_photo(char *filename) { FILE *in; char command[FILENAME_MAX + 256]; char buf[0xFFFF]; int total_read, count, r; sighandler_t old_sighandler; /* SIGCHLD handler installed by sync process interferes with pclose. * Temporarily restore SIGCHLD to its default value (null) while * processing command through pipe */ old_sighandler = signal(SIGCHLD, SIG_DFL); sprintf(command, "convert -resize %dx%d %s jpg:-", PHOTO_X_SZ, PHOTO_Y_SZ, filename); in = popen(command, "r"); if (!in) { return EXIT_FAILURE; } total_read = 0; while (!feof(in)) { count = fread(buf + total_read, 1, 0xFFFF - total_read, in); total_read+=count; if ((count==0) || (total_read>=0xFFFF)) break; } r = pclose(in); if (r) { dialog_generic_ok(gtk_widget_get_toplevel(notebook), _("External program not found, or other error"), DIALOG_ERROR, _("J-Pilot can not find the external program \"convert\"\nor an error occurred while executing convert.\nYou may need to install package ImageMagick")); jp_logf(JP_LOG_WARN, _("Command executed was \"%s\"\n"), command); jp_logf(JP_LOG_WARN, _("return code was %d\n"), r); return EXIT_FAILURE; } if (image) { gtk_widget_destroy(image); image=NULL; } if (contact_picture.data) { free(contact_picture.data); contact_picture.dirty=0; contact_picture.length=0; contact_picture.data=NULL; } contact_picture.data=malloc(total_read); memcpy(contact_picture.data, buf, total_read); contact_picture.length = total_read; contact_picture.dirty = 0; image = image_from_data(contact_picture.data, contact_picture.length); gtk_container_add(GTK_CONTAINER(picture_button), image); gtk_widget_show(image); signal(SIGCHLD, old_sighandler); return EXIT_SUCCESS; } // TODO: make a common filesel function static void cb_photo_browse_cancel(GtkWidget *widget, gpointer data) { gtk_widget_destroy(data); } static void cb_photo_browse_ok(GtkWidget *widget, gpointer data) { const char *sel; char **Pselection; sel = gtk_file_selection_get_filename(GTK_FILE_SELECTION(data)); set_pref(PREF_CONTACTS_PHOTO_FILENAME, 0, sel, TRUE); Pselection = gtk_object_get_data(GTK_OBJECT(GTK_FILE_SELECTION(data)), "selection"); if (Pselection) { jp_logf(JP_LOG_DEBUG, "setting selection to %s\n", sel); *Pselection = strdup(sel); } gtk_widget_destroy(data); } static gboolean cb_photo_browse_destroy(GtkWidget *widget) { gtk_main_quit(); return FALSE; } static int browse_photo(GtkWidget *main_window) { GtkWidget *filesel; const char *svalue; char dir[MAX_PREF_LEN+2]; int i; char *selection; get_pref(PREF_CONTACTS_PHOTO_FILENAME, NULL, &svalue); g_strlcpy(dir, svalue, sizeof(dir)); i=strlen(dir)-1; if (i<0) i=0; if (dir[i]!='/') { for (i=strlen(dir); i>=0; i--) { if (dir[i]=='/') { dir[i+1]='\0'; break; } } } if (chdir(dir)) { jp_logf(JP_LOG_WARN, _("chdir() failed\n")); } filesel = gtk_file_selection_new(_("Add Photo")); gtk_window_set_modal(GTK_WINDOW(filesel), TRUE); gtk_window_set_transient_for(GTK_WINDOW(filesel), GTK_WINDOW(main_window)); gtk_signal_connect(GTK_OBJECT(filesel), "destroy", GTK_SIGNAL_FUNC(cb_photo_browse_destroy), filesel); gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filesel)->ok_button), "clicked", GTK_SIGNAL_FUNC(cb_photo_browse_ok), filesel); gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filesel)->cancel_button), "clicked", GTK_SIGNAL_FUNC(cb_photo_browse_cancel), filesel); gtk_widget_show(filesel); gtk_object_set_data(GTK_OBJECT(filesel), "selection", &selection); selection = NULL; gtk_main(); if (selection) { jp_logf(JP_LOG_DEBUG, "browse_photo(): selection = %s\n", selection); change_photo(selection); free(selection); return 1; } return 0; } static void cb_photo_menu_select(GtkWidget *item, GtkPositionType selected) { if (selected == 1) { if (0 == browse_photo(gtk_widget_get_toplevel(clist))) /* change photo canceled */ return; } if (selected==2) { if (image) { gtk_widget_destroy(image); image=NULL; } if (contact_picture.data) { free(contact_picture.data); contact_picture.dirty=0; contact_picture.length=0; contact_picture.data=NULL; } } cb_record_changed(NULL, NULL); } static gint cb_photo_menu_popup(GtkWidget *widget, GdkEvent *event) { GtkMenu *menu; GdkEventButton *event_button; g_return_val_if_fail(widget != NULL, FALSE); g_return_val_if_fail(GTK_IS_MENU(widget), FALSE); g_return_val_if_fail(event != NULL, FALSE); if (event->type == GDK_BUTTON_PRESS) { event_button = (GdkEventButton *) event; if (event_button->button == 1) { menu = GTK_MENU (widget); gtk_menu_popup(menu, NULL, NULL, NULL, NULL, event_button->button, event_button->time); return TRUE; } } return FALSE; } /* End Photo code */ static void cb_clist_selection(GtkWidget *clist, gint row, gint column, GdkEventButton *event, gpointer data) { /* The rename-able phone entries are indexes 3,4,5,6,7 */ struct Contact *cont; MyContact *mcont; int b; int i, index, sorted_position; unsigned int unique_id = 0; char *clist_text; const char *entry_text; int address_i, IM_i, phone_i; char birthday_str[255]; long ivalue; char reminder_str[10]; GString *s; long char_set; get_pref(PREF_CHAR_SET, &char_set, NULL); if ((record_changed==MODIFY_FLAG) || (record_changed==NEW_FLAG)) { if (clist_row_selected == row) { return; } mcont = gtk_clist_get_row_data(GTK_CLIST(clist), row); if (mcont!=NULL) { unique_id = mcont->unique_id; } b=dialog_save_changed_record_with_cancel(pane, record_changed); if (b==DIALOG_SAID_1) { /* Cancel */ if (clist_row_selected >=0) { clist_select_row(GTK_CLIST(clist), clist_row_selected, 0); } else { clist_row_selected = 0; clist_select_row(GTK_CLIST(clist), 0, 0); } return; } if (b==DIALOG_SAID_3) { /* Save */ cb_add_new_record(NULL, GINT_TO_POINTER(record_changed)); } set_new_button_to(CLEAR_FLAG); if (unique_id) { glob_find_id = unique_id; address_find(); } else { clist_select_row(GTK_CLIST(clist), row, column); } return; } clist_row_selected=row; mcont = gtk_clist_get_row_data(GTK_CLIST(clist), row); if (mcont==NULL) { return; } if (mcont->rt == DELETED_PALM_REC || (mcont->rt == DELETED_PC_REC)) /* Possible later addition of undelete code for modified deleted records || mcont->rt == MODIFIED_PALM_REC */ { set_new_button_to(UNDELETE_FLAG); } else { set_new_button_to(CLEAR_FLAG); } connect_changed_signals(DISCONNECT_SIGNALS); if (mcont->cont.picture && mcont->cont.picture->data) { if (contact_picture.data) { free(contact_picture.data); } /* Set global variables to keep the picture data */ contact_picture.data=malloc(mcont->cont.picture->length); memcpy(contact_picture.data, mcont->cont.picture->data, mcont->cont.picture->length); contact_picture.length = mcont->cont.picture->length; contact_picture.dirty = 0; if (image) { gtk_widget_destroy(image); } image = image_from_data(contact_picture.data, contact_picture.length); gtk_container_add(GTK_CONTAINER(picture_button), image); gtk_widget_show(image); } else { if (image) { gtk_widget_destroy(image); image=NULL; } if (contact_picture.data) { free(contact_picture.data); contact_picture.dirty=0; contact_picture.length=0; contact_picture.data=NULL; } } cont=&(mcont->cont); clist_text = NULL; gtk_clist_get_text(GTK_CLIST(clist), row, ADDRESS_NAME_COLUMN, &clist_text); entry_text = gtk_entry_get_text(GTK_ENTRY(address_quickfind_entry)); if (strncasecmp(clist_text, entry_text, strlen(entry_text))) { gtk_entry_set_text(GTK_ENTRY(address_quickfind_entry), ""); } /* category menu */ index = mcont->attrib & 0x0F; sorted_position = find_sort_cat_pos(index); if (address_cat_menu_item2[sorted_position]==NULL) { /* Illegal category, Assume that category 0 is Unfiled and valid */ jp_logf(JP_LOG_WARN, _("Category is not legal\n")); index = 0; sorted_position = find_sort_cat_pos(index); } if (sorted_position<0) { jp_logf(JP_LOG_WARN, _("Category is not legal\n")); } else { if (address_cat_menu_item2[sorted_position]) { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(address_cat_menu_item2[sorted_position]), TRUE); } gtk_option_menu_set_history(GTK_OPTION_MENU(category_menu2), find_menu_cat_pos(sorted_position)); } /* End category menu */ /* Freeze the "All" text buffer to prevent flicker while updating */ gtk_widget_freeze_child_notify(addr_all); gtk_text_buffer_set_text(GTK_TEXT_BUFFER(addr_all_buffer), "", -1); /* Fill out the "All" text buffer */ s = contact_to_gstring(cont); if (s->len) { gtk_text_buffer_insert_at_cursor(GTK_TEXT_BUFFER(addr_all_buffer), _("Category: "), -1); char *utf; utf = charset_p2newj(contact_app_info.category.name[mcont->attrib & 0x0F], 16, char_set); gtk_text_buffer_insert_at_cursor(GTK_TEXT_BUFFER(addr_all_buffer), utf, -1); g_free(utf); gtk_text_buffer_insert_at_cursor(GTK_TEXT_BUFFER(addr_all_buffer), "\n", -1); gtk_text_buffer_insert_at_cursor(GTK_TEXT_BUFFER(addr_all_buffer), s->str, -1); } g_string_free(s, TRUE); address_i=phone_i=IM_i=0; for (i=0; iphoneLabel[phone_i]], _("E-mail"))) { gtk_object_set_data(GTK_OBJECT(dial_button[phone_i]), "mail", GINT_TO_POINTER(1)); gtk_button_set_label(GTK_BUTTON(dial_button[phone_i]), _("Mail")); } else { gtk_object_set_data(GTK_OBJECT(dial_button[phone_i]), "mail", 0); gtk_button_set_label(GTK_BUTTON(dial_button[phone_i]), _("Dial")); } if ((phone_iphoneLabel[phone_i] < NUM_PHONE_LABELS)) { if (GTK_IS_WIDGET(phone_type_menu_item[phone_i][cont->phoneLabel[phone_i]])) { gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM (phone_type_menu_item[phone_i][cont->phoneLabel[phone_i]]), TRUE); gtk_option_menu_set_history(GTK_OPTION_MENU(phone_type_list_menu[phone_i]), cont->phoneLabel[phone_i]); } } phone_i++; goto set_text; case ADDRESS_GUI_IM_MENU_TEXT: if (GTK_IS_WIDGET(IM_type_menu_item[IM_i][cont->IMLabel[IM_i]])) { gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM (IM_type_menu_item[IM_i][cont->IMLabel[IM_i]]), TRUE); gtk_option_menu_set_history(GTK_OPTION_MENU(IM_type_list_menu[IM_i]), cont->IMLabel[IM_i]); } IM_i++; goto set_text; case ADDRESS_GUI_ADDR_MENU_TEXT: if (GTK_IS_WIDGET(address_type_menu_item[address_i][cont->addressLabel[address_i]])) { gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM (address_type_menu_item[address_i][cont->addressLabel[address_i]]), TRUE); gtk_option_menu_set_history(GTK_OPTION_MENU(address_type_list_menu[address_i]), cont->addressLabel[address_i]); /* We want to make the notebook page tab label match the type of * address from the menu. So, we'll find the nth address menu * and set whatever page the schema says it resides on */ if (GTK_IS_LABEL(notebook_label[schema[i].notebook_page])) { gtk_label_set_text(GTK_LABEL(notebook_label[schema[i].notebook_page]), contact_app_info.addrLabels[cont->addressLabel[address_i]]); } } address_i++; goto set_text; case ADDRESS_GUI_WEBSITE_TEXT: set_text: if (cont->entry[schema[i].record_field]) { gtk_text_buffer_set_text(GTK_TEXT_BUFFER(addr_text_buffer[schema[i].record_field]), cont->entry[schema[i].record_field], -1); } else { gtk_text_buffer_set_text(GTK_TEXT_BUFFER(addr_text_buffer[schema[i].record_field]), "", -1); } break; case ADDRESS_GUI_BIRTHDAY: get_pref(PREF_TODO_DAYS_TILL_DUE, &ivalue, NULL); reminder_str[0]='\0'; g_snprintf(reminder_str, sizeof(reminder_str), "%ld", ivalue); if (cont->birthdayFlag) { memcpy(&birthday, &cont->birthday, sizeof(struct tm)); set_button_label_to_date(birthday_button, &birthday); /* Birthday checkbox */ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(birthday_checkbox), TRUE); if (cont->reminder) { sprintf(birthday_str, "%d", cont->advance); gtk_entry_set_text(GTK_ENTRY(reminder_entry), birthday_str); /* Reminder checkbox */ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(reminder_checkbox), cont->reminder); } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(reminder_checkbox), FALSE); gtk_entry_set_text(GTK_ENTRY(reminder_entry), reminder_str); } } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(birthday_checkbox), FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(reminder_checkbox), FALSE); gtk_entry_set_text(GTK_ENTRY(reminder_entry), reminder_str); } break; } } /* Set phone grouped radio buttons */ if ((cont->showPhone > -1) && (cont->showPhone < NUM_PHONE_ENTRIES)) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio_button[cont->showPhone]), TRUE); } /* Private checkbox */ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(private_checkbox), mcont->attrib & dlpRecAttrSecret); gtk_widget_thaw_child_notify(addr_all); connect_changed_signals(CONNECT_SIGNALS); } static gboolean cb_key_pressed_left_side(GtkWidget *widget, GdkEventKey *event) { GtkWidget *entry_widget; GtkTextBuffer *text_buffer; GtkTextIter iter; if (event->keyval == GDK_Return) { gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), "key_press_event"); if (address_version==0) { switch (gtk_notebook_get_current_page(GTK_NOTEBOOK(notebook))) { case 0 : entry_widget = addr_text[contLastname]; break; case 1 : entry_widget = addr_text[contAddress1]; break; case 2 : entry_widget = addr_text[contCustom1]; break; case 3 : entry_widget = addr_text[contNote]; break; default: entry_widget = addr_text[0]; } } else { switch (gtk_notebook_get_current_page(GTK_NOTEBOOK(notebook))) { case 0 : entry_widget = addr_text[contLastname]; break; case 1 : entry_widget = addr_text[contAddress1]; break; case 2 : entry_widget = addr_text[contAddress2]; break; case 3 : entry_widget = addr_text[contAddress3]; break; case 4 : entry_widget = addr_text[contCustom1]; break; case 5 : entry_widget = addr_text[contNote]; break; default: entry_widget = addr_text[0]; } } gtk_widget_grab_focus(entry_widget); /* Position cursor at start of text */ text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(entry_widget)); gtk_text_buffer_get_start_iter(text_buffer, &iter); gtk_text_buffer_place_cursor(text_buffer, &iter); return TRUE; } return FALSE; } static gboolean cb_key_pressed_right_side(GtkWidget *widget, GdkEventKey *event, gpointer data) { if ((event->keyval == GDK_Return) && (event->state & GDK_SHIFT_MASK)) { gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), "key_press_event"); /* Call clist_selection to handle any cleanup such as a modified record */ cb_clist_selection(clist, clist_row_selected, ADDRESS_PHONE_COLUMN, GINT_TO_POINTER(1), NULL); gtk_widget_grab_focus(GTK_WIDGET(clist)); return TRUE; } /* Call external editor for note text */ if (data != NULL && (event->keyval == GDK_e) && (event->state & GDK_CONTROL_MASK)) { gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), "key_press_event"); /* Get current text and place in temporary file */ GtkTextIter start_iter; GtkTextIter end_iter; char *text_out; GObject *note_buffer = addr_text_buffer[schema[GPOINTER_TO_INT(data)].record_field]; gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(note_buffer), &start_iter, &end_iter); text_out = gtk_text_buffer_get_text(GTK_TEXT_BUFFER(note_buffer), &start_iter, &end_iter, TRUE); char tmp_fname[] = "jpilot.XXXXXX"; int tmpfd = mkstemp(tmp_fname); if (tmpfd < 0) { jp_logf(JP_LOG_WARN, _("Could not get temporary file name\n")); if (text_out) free(text_out); return TRUE; } FILE *fptr = fdopen(tmpfd, "w"); if (!fptr) { jp_logf(JP_LOG_WARN, _("Could not open temporary file for external editor\n")); if (text_out) free(text_out); return TRUE; } fwrite(text_out, strlen(text_out), 1, fptr); fwrite("\n", 1, 1, fptr); fclose(fptr); /* Call external editor */ char command[1024]; const char *ext_editor; get_pref(PREF_EXTERNAL_EDITOR, NULL, &ext_editor); if (!ext_editor) { jp_logf(JP_LOG_INFO, "External Editor command empty\n"); if (text_out) free(text_out); return TRUE; } if ((strlen(ext_editor) + strlen(tmp_fname) + 1) > sizeof(command)) { if (text_out) free(text_out); return TRUE; } g_snprintf(command, sizeof(command), "%s %s", ext_editor, tmp_fname); /* jp_logf(JP_LOG_STDOUT|JP_LOG_FILE, _("executing command = [%s]\n"), command); */ int r = system(command); if (!r) { /* Read data back from temporary file into memo */ char text_in[0xFFFF]; size_t bytes_read; fptr = fopen(tmp_fname, "rb"); if (!fptr) { jp_logf(JP_LOG_WARN, _("Could not open temporary file from external editor\n")); return TRUE; } bytes_read = fread(text_in, 1, 0xFFFF, fptr); fclose(fptr); unlink(tmp_fname); text_in[--bytes_read] = '\0'; /* Strip final newline */ /* Only update text if it has changed */ if (strcmp(text_out, text_in)) { gtk_text_buffer_set_text(GTK_TEXT_BUFFER(note_buffer), text_in, -1); } } if (text_out) free(text_out); return TRUE; } /* End of external editor if */ return FALSE; } static void address_update_clist(GtkWidget *clist, GtkWidget *tooltip_widget, ContactList **cont_list, int category, int main) { int num_entries, entries_shown; int show1, show2, show3; gchar *empty_line[] = { "","","" }; GdkPixmap *pixmap_note; GdkBitmap *mask_note; ContactList *temp_cl; char str[ADDRESS_MAX_COLUMN_LEN+2]; char str2[ADDRESS_MAX_COLUMN_LEN+2]; int show_priv; long use_jos, char_set, show_tooltips; char *tmp_p1, *tmp_p2, *tmp_p3; char blank[]=""; char slash[]=" / "; char comma_space[]=", "; char *field1, *field2, *field3; char *delim1, *delim2; char *tmp_delim1, *tmp_delim2; AddressList *addr_list; free_ContactList(cont_list); if (address_version==0) { addr_list = NULL; num_entries = get_addresses2(&addr_list, SORT_ASCENDING, 2, 2, 1, CATEGORY_ALL); copy_addresses_to_contacts(addr_list, cont_list); free_AddressList(&addr_list); } else { /* Need to get all records including private ones for the tooltips calculation */ num_entries = get_contacts2(cont_list, SORT_ASCENDING, 2, 2, 1, CATEGORY_ALL); } /* Start by clearing existing entry if in main window */ if (main) { addr_clear_details(); gtk_text_buffer_set_text(GTK_TEXT_BUFFER(addr_all_buffer), "", -1); } /* Freeze clist to prevent flicker during updating */ gtk_clist_freeze(GTK_CLIST(clist)); if (main) { gtk_signal_disconnect_by_func(GTK_OBJECT(clist), GTK_SIGNAL_FUNC(cb_clist_selection), NULL); } clist_clear(GTK_CLIST(clist)); #ifdef __APPLE__ gtk_clist_thaw(GTK_CLIST(clist)); gtk_widget_hide(clist); gtk_widget_show_all(clist); gtk_clist_freeze(GTK_CLIST(clist)); #endif /* Collect preferences and pixmaps before loop */ get_pref(PREF_CHAR_SET, &char_set, NULL); get_pref(PREF_USE_JOS, &use_jos, NULL); show_priv = show_privates(GET_PRIVATES); get_pixmaps(clist, PIXMAP_NOTE, &pixmap_note, &mask_note); #ifdef __APPLE__ mask_note = NULL; #endif switch (addr_sort_order) { case SORT_BY_LNAME: default: show1=contLastname; show2=contFirstname; show3=contCompany; delim1 = comma_space; delim2 = slash; break; case SORT_BY_FNAME: show1=contFirstname; show2=contLastname; show3=contCompany; delim1 = comma_space; delim2 = slash; break; case SORT_BY_COMPANY: show1=contCompany; show2=contLastname; show3=contFirstname; delim1 = slash; delim2 = comma_space; break; } entries_shown=0; for (temp_cl = *cont_list; temp_cl; temp_cl=temp_cl->next) { if ( ((temp_cl->mcont.attrib & 0x0F) != category) && category != CATEGORY_ALL) { continue; } /* Do masking like Palm OS 3.5 */ if ((show_priv == MASK_PRIVATES) && (temp_cl->mcont.attrib & dlpRecAttrSecret)) { gtk_clist_append(GTK_CLIST(clist), empty_line); gtk_clist_set_text(GTK_CLIST(clist), entries_shown, ADDRESS_NAME_COLUMN, "---------------"); gtk_clist_set_text(GTK_CLIST(clist), entries_shown, ADDRESS_PHONE_COLUMN, "---------------"); clear_mycontact(&temp_cl->mcont); gtk_clist_set_row_data(GTK_CLIST(clist), entries_shown, &(temp_cl->mcont)); gtk_clist_set_row_style(GTK_CLIST(clist), entries_shown, NULL); entries_shown++; continue; } /* End Masking */ /* Hide the private records if need be */ if ((show_priv != SHOW_PRIVATES) && (temp_cl->mcont.attrib & dlpRecAttrSecret)) { continue; } if (!use_jos && (char_set == CHAR_SET_JAPANESE || char_set == CHAR_SET_SJIS_UTF)) { str[0]='\0'; if (temp_cl->mcont.cont.entry[show1] || temp_cl->mcont.cont.entry[show2]) { if (temp_cl->mcont.cont.entry[show1] && temp_cl->mcont.cont.entry[show2]) { if ((tmp_p1 = strchr(temp_cl->mcont.cont.entry[show1],'\1'))) *tmp_p1='\0'; if ((tmp_p2 = strchr(temp_cl->mcont.cont.entry[show2],'\1'))) *tmp_p2='\0'; g_snprintf(str, ADDRESS_MAX_CLIST_NAME, "%s, %s", temp_cl->mcont.cont.entry[show1], temp_cl->mcont.cont.entry[show2]); if (tmp_p1) *tmp_p1='\1'; if (tmp_p2) *tmp_p2='\1'; } if (temp_cl->mcont.cont.entry[show1] && ! temp_cl->mcont.cont.entry[show2]) { if ((tmp_p1 = strchr(temp_cl->mcont.cont.entry[show1],'\1'))) *tmp_p1='\0'; if (temp_cl->mcont.cont.entry[show3]) { if ((tmp_p3 = strchr(temp_cl->mcont.cont.entry[show3],'\1'))) *tmp_p3='\0'; g_snprintf(str, ADDRESS_MAX_CLIST_NAME, "%s, %s", temp_cl->mcont.cont.entry[show1], temp_cl->mcont.cont.entry[show3]); if (tmp_p3) *tmp_p3='\1'; } else { multibyte_safe_strncpy(str, temp_cl->mcont.cont.entry[show1], ADDRESS_MAX_CLIST_NAME); } if (tmp_p1) *tmp_p1='\1'; } if (! temp_cl->mcont.cont.entry[show1] && temp_cl->mcont.cont.entry[show2]) { if ((tmp_p2 = strchr(temp_cl->mcont.cont.entry[show2],'\1'))) *tmp_p2='\0'; multibyte_safe_strncpy(str, temp_cl->mcont.cont.entry[show2], ADDRESS_MAX_CLIST_NAME); if (tmp_p2) *tmp_p2='\1'; } } else if (temp_cl->mcont.cont.entry[show3]) { if ((tmp_p3 = strchr(temp_cl->mcont.cont.entry[show3],'\1'))) *tmp_p3='\0'; multibyte_safe_strncpy(str, temp_cl->mcont.cont.entry[show3], ADDRESS_MAX_CLIST_NAME); if (tmp_p3) *tmp_p3='\1'; } else { strcpy(str, _("-Unnamed-")); } gtk_clist_append(GTK_CLIST(clist), empty_line); } else { str[0]='\0'; field1=field2=field3=blank; tmp_delim1=delim1; tmp_delim2=delim2; if (temp_cl->mcont.cont.entry[show1]) field1=temp_cl->mcont.cont.entry[show1]; if (temp_cl->mcont.cont.entry[show2]) field2=temp_cl->mcont.cont.entry[show2]; if (temp_cl->mcont.cont.entry[show3]) field3=temp_cl->mcont.cont.entry[show3]; switch (addr_sort_order) { case SORT_BY_LNAME: default: if ((!field1[0]) || (!field2[0])) tmp_delim1=blank; if (!(field3[0])) tmp_delim2=blank; if ((!field1[0]) && (!field2[0])) tmp_delim2=blank; break; case SORT_BY_FNAME: if ((!field1[0]) || (!field2[0])) tmp_delim1=blank; if (!(field3[0])) tmp_delim2=blank; if ((!field1[0]) && (!field2[0])) tmp_delim2=blank; break; case SORT_BY_COMPANY: if (!(field1[0])) tmp_delim1=blank; if ((!field2[0]) || (!field3[0])) tmp_delim2=blank; if ((!field2[0]) && (!field3[0])) tmp_delim1=blank; break; } g_snprintf(str, ADDRESS_MAX_COLUMN_LEN, "%s%s%s%s%s", field1, tmp_delim1, field2, tmp_delim2, field3); if (strlen(str)<1) strcpy(str, _("-Unnamed-")); str[ADDRESS_MAX_COLUMN_LEN]='\0'; gtk_clist_append(GTK_CLIST(clist), empty_line); } lstrncpy_remove_cr_lfs(str2, str, ADDRESS_MAX_COLUMN_LEN); gtk_clist_set_text(GTK_CLIST(clist), entries_shown, ADDRESS_NAME_COLUMN, str2); /* Clear string so previous data won't be used inadvertently in next set_text */ str2[0] = '\0'; lstrncpy_remove_cr_lfs(str2, temp_cl->mcont.cont.entry[temp_cl->mcont.cont.showPhone + 4], ADDRESS_MAX_COLUMN_LEN); gtk_clist_set_text(GTK_CLIST(clist), entries_shown, ADDRESS_PHONE_COLUMN, str2); gtk_clist_set_row_data(GTK_CLIST(clist), entries_shown, &(temp_cl->mcont)); /* Highlight row background depending on status */ switch (temp_cl->mcont.rt) { case NEW_PC_REC: case REPLACEMENT_PALM_REC: set_bg_rgb_clist_row(clist, entries_shown, CLIST_NEW_RED, CLIST_NEW_GREEN, CLIST_NEW_BLUE); break; case DELETED_PALM_REC: case DELETED_PC_REC: set_bg_rgb_clist_row(clist, entries_shown, CLIST_DEL_RED, CLIST_DEL_GREEN, CLIST_DEL_BLUE); break; case MODIFIED_PALM_REC: set_bg_rgb_clist_row(clist, entries_shown, CLIST_MOD_RED, CLIST_MOD_GREEN, CLIST_MOD_BLUE); break; default: if (temp_cl->mcont.attrib & dlpRecAttrSecret) { set_bg_rgb_clist_row(clist, entries_shown, CLIST_PRIVATE_RED, CLIST_PRIVATE_GREEN, CLIST_PRIVATE_BLUE); } else { gtk_clist_set_row_style(GTK_CLIST(clist), entries_shown, NULL); } } /* Put a note pixmap up */ if (temp_cl->mcont.cont.entry[contNote]) { gtk_clist_set_pixmap(GTK_CLIST(clist), entries_shown, ADDRESS_NOTE_COLUMN, pixmap_note, mask_note); } else { gtk_clist_set_text(GTK_CLIST(clist), entries_shown, ADDRESS_NOTE_COLUMN, ""); } entries_shown++; } if (main) { gtk_signal_connect(GTK_OBJECT(clist), "select_row", GTK_SIGNAL_FUNC(cb_clist_selection), NULL); } /* If there are items in the list, highlight the selected row */ if ((main) && (entries_shown>0)) { /* First, select any record being searched for */ if (glob_find_id) { address_find(); } /* Second, try the currently selected row */ else if (clist_row_selected < entries_shown) { clist_select_row(GTK_CLIST(clist), clist_row_selected, ADDRESS_PHONE_COLUMN); if (!gtk_clist_row_is_visible(GTK_CLIST(clist), clist_row_selected)) { gtk_clist_moveto(GTK_CLIST(clist), clist_row_selected, 0, 0.5, 0.0); } } else /* Third, select row 0 if nothing else is possible */ { clist_select_row(GTK_CLIST(clist), 0, ADDRESS_PHONE_COLUMN); } } /* Unfreeze clist after all changes */ gtk_clist_thaw(GTK_CLIST(clist)); if (tooltip_widget) { get_pref(PREF_SHOW_TOOLTIPS, &show_tooltips, NULL); if (cont_list==NULL) { set_tooltip(show_tooltips, glob_tooltips, category_menu1, _("0 records"), NULL); } else { sprintf(str, _("%d of %d records"), entries_shown, num_entries); set_tooltip(show_tooltips, glob_tooltips, category_menu1, str, NULL); } } /* return focus to clist after any big operation which requires a redraw */ gtk_widget_grab_focus(GTK_WIDGET(clist)); } /* default set is which menu item is to be set on by default */ /* set is which set in the phone_type_menu_item array to use */ static int make_IM_type_menu(int default_set, unsigned int callback_id, int set) { int i; GSList *group; GtkWidget *menu; IM_type_list_menu[set] = gtk_option_menu_new(); menu = gtk_menu_new(); group = NULL; for (i=0; i= NUM_ADDRESS_CAT_ITEMS) { address_category = CATEGORY_ALL; break; } if ((sort_l[new_cat].Pcat) && (sort_l[new_cat].Pcat[0])) { address_category = sort_l[new_cat].cat_num; break; } } clist_row_selected = 0; return EXIT_SUCCESS; } int address_refresh(void) { int index, index2; if (glob_find_id) { address_category = CATEGORY_ALL; } if (address_category==CATEGORY_ALL) { index = 0; index2 = 0; } else { index=find_sort_cat_pos(address_category); index2 = find_menu_cat_pos(index) + 1; index += 1; } address_update_clist(clist, category_menu1, &glob_contact_list, address_category, TRUE); if (index<0) { jp_logf(JP_LOG_WARN, _("Category is not legal\n")); } else { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(address_cat_menu_item1[index]), TRUE); gtk_option_menu_set_history(GTK_OPTION_MENU(category_menu1), index2); } /* gives the focus to the search field */ gtk_widget_grab_focus(address_quickfind_entry); return EXIT_SUCCESS; } static gboolean cb_key_pressed_quickfind(GtkWidget *widget, GdkEventKey *event, gpointer data) { int row_count; int select_row; int add; add=0; if ((event->keyval == GDK_KP_Down) || (event->keyval == GDK_Down)) { add=1; } if ((event->keyval == GDK_KP_Up) || (event->keyval == GDK_Up)) { add=-1; } if (!add) return FALSE; row_count =GTK_CLIST(clist)->rows; if (!row_count) return FALSE; gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), "key_press_event"); select_row=clist_row_selected+add; if (select_row>row_count-1) { select_row=0; } if (select_row<0) { select_row=row_count-1; } clist_select_row(GTK_CLIST(clist), select_row, ADDRESS_NAME_COLUMN); if (!gtk_clist_row_is_visible(GTK_CLIST(clist), select_row)) { gtk_clist_moveto(GTK_CLIST(clist), select_row, 0, 0.5, 0.0); } return TRUE; } static gboolean cb_key_pressed(GtkWidget *widget, GdkEventKey *event) { GtkTextIter cursor_pos_iter; GtkTextBuffer *text_buffer; int page, next; int i, j, found, break_loop; if ((event->keyval != GDK_Tab) && (event->keyval != GDK_ISO_Left_Tab)) { return FALSE; } if (event->keyval == GDK_Tab) { /* See if they are at the end of the text */ text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(widget)); gtk_text_buffer_get_iter_at_mark(text_buffer,&cursor_pos_iter,gtk_text_buffer_get_insert(text_buffer)); if (!(gtk_text_iter_is_end(&cursor_pos_iter))) { return FALSE; } } gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), "key_press_event"); /* Initialize page and next widget in case search fails */ page = schema[0].notebook_page; next = schema[0].record_field; found = break_loop = 0; for (i=j=0; ikeyval == GDK_ISO_Left_Tab) { j = (j < 0 ? 0 : j); page = schema[j].notebook_page; next = schema[j].record_field; } gtk_notebook_set_page(GTK_NOTEBOOK(notebook), page); gtk_widget_grab_focus(GTK_WIDGET(addr_text[next])); return TRUE; } int address_gui_cleanup(void) { int b; b=dialog_save_changed_record(pane, record_changed); if (b==DIALOG_SAID_2) { cb_add_new_record(NULL, GINT_TO_POINTER(record_changed)); } g_list_free(changed_list); changed_list=NULL; free_ContactList(&glob_contact_list); free_ContactList(&export_contact_list); connect_changed_signals(DISCONNECT_SIGNALS); set_pref(PREF_ADDRESS_PANE, gtk_paned_get_position(GTK_PANED(pane)), NULL, TRUE); set_pref(PREF_LAST_ADDR_CATEGORY, address_category, NULL, TRUE); clist_clear(GTK_CLIST(clist)); if (image) { gtk_widget_destroy(image); image = NULL; } if (contact_picture.data) { free(contact_picture.data); } contact_picture.dirty=0; contact_picture.length=0; contact_picture.data=NULL; return EXIT_SUCCESS; } /* Main function */ int address_gui(GtkWidget *vbox, GtkWidget *hbox) { GtkWidget *scrolled_window; GtkWidget *pixmapwid; GdkPixmap *pixmap; GdkBitmap *mask; GtkWidget *vbox1, *vbox2; GtkWidget *hbox_temp; GtkWidget *vbox_temp; GtkWidget *separator; GtkWidget *label; GtkWidget *button; GtkWidget *table; GtkWidget *notebook_tab; GSList *group; long ivalue, notebook_page; long show_tooltips; char *titles[]={"","",""}; GtkAccelGroup *accel_group; int address_type_i, IM_type_i, page_i, table_y_i; int x, y; int i, j, phone_i, num_pages; long char_set; char *cat_name; /* Note that the contact pages labeled "Address" will change * dynamically if the address type pulldown is selected */ char *contact_page_names[]={ N_("Name"), N_("Address"), N_("Address"), N_("Address"), N_("Other"), N_("Note") }; char *address_page_names[]={ N_("Name"), N_("Address"), N_("Other"), N_("Note") }; char **page_names; get_pref(PREF_ADDRESS_VERSION, &address_version, NULL); if (address_version) { unsigned char *buf; int rec_size; if ((EXIT_SUCCESS != jp_get_app_info("ContactsDB-PAdd", &buf, &rec_size)) || (0 == rec_size)) { jp_logf(JP_LOG_WARN, _("Reverting to Address database\n")); address_version = 0; } else { if (buf) free(buf); } } init(); if (address_version) { page_names = contact_page_names; num_pages=NUM_CONTACT_NOTEBOOK_PAGES; get_contact_app_info(&contact_app_info); } else { page_names = address_page_names; num_pages=NUM_ADDRESS_NOTEBOOK_PAGES; get_address_app_info(&address_app_info); copy_address_ai_to_contact_ai(&address_app_info, &contact_app_info); } /* Initialize categories */ get_pref(PREF_CHAR_SET, &char_set, NULL); for (i=1; icolumn[ADDRESS_NAME_COLUMN].button), "clicked", GTK_SIGNAL_FUNC(cb_resort), NULL); gtk_clist_set_column_title(GTK_CLIST(clist), ADDRESS_PHONE_COLUMN, _("Phone")); /* Put pretty pictures in the clist column headings */ get_pixmaps(vbox, PIXMAP_NOTE, &pixmap, &mask); #ifdef __APPLE__ mask = NULL; #endif pixmapwid = gtk_pixmap_new(pixmap, mask); gtk_clist_set_column_widget(GTK_CLIST(clist), ADDRESS_NOTE_COLUMN, pixmapwid); gtk_signal_connect(GTK_OBJECT(clist), "select_row", GTK_SIGNAL_FUNC(cb_clist_selection), NULL); gtk_clist_set_shadow_type(GTK_CLIST(clist), SHADOW); gtk_clist_set_selection_mode(GTK_CLIST(clist), GTK_SELECTION_BROWSE); gtk_clist_set_column_min_width(GTK_CLIST(clist), ADDRESS_NAME_COLUMN, 60); get_pref(PREF_ADDR_NAME_COL_SZ, &ivalue, NULL); gtk_clist_set_column_width(GTK_CLIST(clist), ADDRESS_NAME_COLUMN, ivalue); gtk_clist_set_column_auto_resize(GTK_CLIST(clist), ADDRESS_NAME_COLUMN, FALSE); gtk_clist_set_column_auto_resize(GTK_CLIST(clist), ADDRESS_NOTE_COLUMN, TRUE); gtk_clist_set_column_auto_resize(GTK_CLIST(clist), ADDRESS_PHONE_COLUMN, FALSE); gtk_clist_set_column_justification(GTK_CLIST(clist), ADDRESS_NOTE_COLUMN, GTK_JUSTIFY_CENTER); gtk_signal_connect(GTK_OBJECT(clist), "resize-column", GTK_SIGNAL_FUNC(cb_resize_column), NULL); gtk_container_add(GTK_CONTAINER(scrolled_window), GTK_WIDGET(clist)); hbox_temp = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox1), hbox_temp, FALSE, FALSE, 0); label = gtk_label_new(_("Quick Find: ")); gtk_box_pack_start(GTK_BOX(hbox_temp), label, FALSE, FALSE, 0); address_quickfind_entry = gtk_entry_new(); entry_set_multiline_truncate(GTK_ENTRY(address_quickfind_entry), TRUE); gtk_signal_connect(GTK_OBJECT(address_quickfind_entry), "key_press_event", GTK_SIGNAL_FUNC(cb_key_pressed_quickfind), NULL); gtk_signal_connect(GTK_OBJECT(address_quickfind_entry), "changed", GTK_SIGNAL_FUNC(cb_address_quickfind), NULL); gtk_box_pack_start(GTK_BOX(hbox_temp), address_quickfind_entry, TRUE, TRUE, 0); /* Right side of GUI */ hbox_temp = gtk_hbox_new(FALSE, 3); gtk_box_pack_start(GTK_BOX(vbox2), hbox_temp, FALSE, FALSE, 0); /* Cancel button */ CREATE_BUTTON(cancel_record_button, _("Cancel"), CANCEL, _("Cancel the modifications"), GDK_Escape, 0, "ESC") gtk_signal_connect(GTK_OBJECT(cancel_record_button), "clicked", GTK_SIGNAL_FUNC(cb_cancel), NULL); /* Delete Button */ CREATE_BUTTON(delete_record_button, _("Delete"), DELETE, _("Delete the selected record"), GDK_d, GDK_CONTROL_MASK, "Ctrl+D") gtk_signal_connect(GTK_OBJECT(delete_record_button), "clicked", GTK_SIGNAL_FUNC(cb_delete_address_or_contact), GINT_TO_POINTER(DELETE_FLAG)); /* Undelete Button */ CREATE_BUTTON(undelete_record_button, _("Undelete"), UNDELETE, _("Undelete the selected record"), 0, 0, "") gtk_signal_connect(GTK_OBJECT(undelete_record_button), "clicked", GTK_SIGNAL_FUNC(cb_undelete_address), GINT_TO_POINTER(UNDELETE_FLAG)); /* Copy button */ CREATE_BUTTON(copy_record_button, _("Copy"), COPY, _("Copy the selected record"), GDK_c, GDK_CONTROL_MASK|GDK_SHIFT_MASK, "Ctrl+Shift+C") gtk_signal_connect(GTK_OBJECT(copy_record_button), "clicked", GTK_SIGNAL_FUNC(cb_add_new_record), GINT_TO_POINTER(COPY_FLAG)); /* New button */ CREATE_BUTTON(new_record_button, _("New Record"), NEW, _("Add a new record"), GDK_n, GDK_CONTROL_MASK, "Ctrl+N") gtk_signal_connect(GTK_OBJECT(new_record_button), "clicked", GTK_SIGNAL_FUNC(cb_address_clear), NULL); /* "Add Record" button */ CREATE_BUTTON(add_record_button, _("Add Record"), ADD, _("Add the new record"), GDK_Return, GDK_CONTROL_MASK, "Ctrl+Enter") gtk_signal_connect(GTK_OBJECT(add_record_button), "clicked", GTK_SIGNAL_FUNC(cb_add_new_record), GINT_TO_POINTER(NEW_FLAG)); #ifndef ENABLE_STOCK_BUTTONS gtk_widget_set_name(GTK_WIDGET(GTK_LABEL(GTK_BIN(add_record_button)->child)), "label_high"); #endif /* "Apply Changes" button */ CREATE_BUTTON(apply_record_button, _("Apply Changes"), APPLY, _("Commit the modifications"), GDK_Return, GDK_CONTROL_MASK, "Ctrl+Enter") gtk_signal_connect(GTK_OBJECT(apply_record_button), "clicked", GTK_SIGNAL_FUNC(cb_add_new_record), GINT_TO_POINTER(MODIFY_FLAG)); #ifndef ENABLE_STOCK_BUTTONS gtk_widget_set_name(GTK_WIDGET(GTK_LABEL(GTK_BIN(apply_record_button)->child)), "label_high"); #endif /* Separator */ separator = gtk_hseparator_new(); gtk_box_pack_start(GTK_BOX(vbox2), separator, FALSE, FALSE, 5); hbox_temp = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox2), hbox_temp, FALSE, FALSE, 0); /* Right-side Category menu */ /* Clear GTK option menus before use */ for (i=0; i-1)) { gtk_notebook_set_page(GTK_NOTEBOOK(notebook), notebook_page); } address_refresh(); return EXIT_SUCCESS; } jpilot-1.8.1.2/address.h0000644000175000017500000000647111365051714011714 00000000000000/* $Id: address.h,v 1.19 2010-03-29 05:44:27 rikster5 Exp $ */ /******************************************************************************* * address.h * A module of J-Pilot http://jpilot.org * * Copyright (C) 1999-2002 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef __ADDRESS_H__ #define __ADDRESS_H__ #include #include "utils.h" /* * This describes how to draw a GUI entry for each field in an address record */ typedef struct { int record_field; int notebook_page; int type; } address_schema_entry; #define NUM_IMS 2 #define NUM_ADDRESSES 3 #define NUM_CONTACT_NOTEBOOK_PAGES 6 #define NUM_ADDRESS_NOTEBOOK_PAGES 4 #define NUM_ADDRESS_FIELDS 19 #define ADDRESS_GUI_LABEL_TEXT 2 /* Show a label and a textview widget */ #define ADDRESS_GUI_DIAL_SHOW_PHONE_MENU_TEXT 3 /* Show a dial button, show in list radio button, and a phone menu, and a textview */ #define ADDRESS_GUI_IM_MENU_TEXT 4 /* Show a IM menu and a textview */ #define ADDRESS_GUI_ADDR_MENU_TEXT 5 /* Show a address menu and a textview */ #define ADDRESS_GUI_WEBSITE_TEXT 6 /* Show a website button and a textview */ #define ADDRESS_GUI_BIRTHDAY 7 /* Show a birthdate checkbox and complex birthday GUI */ #define SORT_BY_LNAME 1 #define SORT_BY_FNAME 2 #define SORT_BY_COMPANY 4 /* This flag affects sorting of address records */ extern int addr_sort_order; int get_address_app_info(struct AddressAppInfo *aai); int pc_address_write(struct Address *a, PCRecType rt, unsigned char attrib, unsigned int *unqiue_id); void free_AddressList(AddressList **al); int get_addresses(AddressList **address_list, int sort_order); int get_addresses2(AddressList **address_list, int sort_order, int modified, int deleted, int privates, int category); int address_print(void); int address_import(GtkWidget *window); int address_export(GtkWidget *window); /* Contact header */ int get_contact_app_info(struct ContactAppInfo *cai); int pc_contact_write(struct Contact *c, PCRecType rt, unsigned char attrib, unsigned int *unqiue_id); void free_ContactList(ContactList **cl); int get_contacts(ContactList **contact_list, int sort_order); int get_contacts2(ContactList **contact_list, int sort_order, int modified, int deleted, int privates, int category); int copy_address_ai_to_contact_ai(const struct AddressAppInfo *aai, struct ContactAppInfo *cai); int copy_contact_to_address(const struct Contact *c, struct Address *a); int copy_address_to_contact(const struct Address *a, struct Contact *c); int copy_addresses_to_contacts(AddressList *al, ContactList **cl); #endif jpilot-1.8.1.2/intltool-merge.in0000644000175000017500000000000011702305111013351 00000000000000jpilot-1.8.1.2/print_headers.c0000644000175000017500000011226111547063267013114 00000000000000/* $Id: print_headers.c,v 1.14 2011-04-06 12:43:45 rousseau Exp $ */ /******************************************************************************* * print_headers.c * A module of J-Pilot http://jpilot.org * * Copyright (C) 2001 by Colin Brough * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /********************************* Includes ***********************************/ #include #include #include "print_headers.h" /****************************** Main Code *************************************/ void print_common_prolog(FILE *f) { const char *common_prolog = "/Recode {\n" " exch\n" " findfont\n" " dup length dict\n" " begin\n" " { def } forall\n" " /Encoding ISOLatin1Encoding def\n" " currentdict\n" " end\n" " definefont pop\n" "} bind def\n\n" "/inch {72 mul} def\n" "/edef { exch def } def\n" "/esub { exch sub } def\n" "/l { lineto } def\n" "/m { moveto } def\n" "/rm { rmoveto } def\n" "/rl { rlineto } def\n" "/strw { stringwidth } def\n" "/nstr 10 string def\n" "/slw { setlinewidth } def\n" "\n" "%------------------------------------------------------------------\n" "/CenterText {\n" " dup strw pop 2 div 5 2 roll 3 -1 roll dup 3 1 roll sub 2 div\n" " add 3 -1 roll sub exch m show\n" "} def\n" "/RightText { dup strw pop 4 -1 roll exch sub 3 -1 roll m show } def\n" "%------------------------------------------------------------------\n" "% Should leave the minimum of 2 values on the stack\n" "\n" "/Min { 2 copy gt { exch } if pop } def\n" "\n" "%------------------------------------------------------------------\n" "% This is an array of paper sizes lifted from ghostview; the A4\n" "% definitions are here because we scale everything else relative to\n" "% an A4 page.\n" "\n" "/A4X 842 def\n" "/A4Y 595 def\n" "\n" "/PaperSizes [\n" " [ (Letter) 612 792 10 ]\n" " [ (Legal) 612 1008 10 ]\n" " [ (Statement) 396 612 10 ]\n" " [ (Tabloid) 792 1224 10 ]\n" " [ (Ledger) 1224 792 10 ]\n" " [ (Folio) 612 936 10 ]\n" " [ (Quarto) 610 780 10 ]\n" " [ (7x9) 504 648 10 ]\n" " [ (9x11) 648 792 10 ]\n" " [ (9x12) 648 864 10 ]\n" " [ (10x13) 720 936 10 ]\n" " [ (10x14) 720 1008 10 ]\n" " [ (Executive) 540 720 10 ]\n" " [ (A0) 2384 3370 10 ]\n" " [ (A1) 1684 2384 10 ]\n" " [ (A2) 1191 1684 10 ]\n" " [ (A3) 842 1191 9 ]\n" " [ (A4) 595 842 10 ]\n" " [ (A5) 420 595 12 ]\n" " [ (A6) 297 420 10 ]\n" " [ (A7) 210 297 10 ]\n" " [ (A8) 148 210 10 ]\n" " [ (A9) 105 148 10 ]\n" " [ (A10) 73 105 10 ]\n" " [ (B0) 2920 4127 10 ]\n" " [ (B1) 2064 2920 10 ]\n" " [ (B2) 1460 2064 10 ]\n" " [ (B3) 1032 1460 10 ]\n" " [ (B4) 729 1032 10 ]\n" " [ (B5) 516 729 10 ]\n" " [ (B6) 363 516 10 ]\n" " [ (B7) 258 363 10 ]\n" " [ (B8) 181 258 10 ]\n" " [ (B9) 127 181 10 ]\n" " [ (B10) 91 127 10 ]\n" " [ (ISOB0) 2835 4008 10 ]\n" " [ (ISOB1) 2004 2835 10 ]\n" " [ (ISOB2) 1417 2004 10 ]\n" " [ (ISOB3) 1001 1417 10 ]\n" " [ (ISOB4) 709 1001 10 ]\n" " [ (ISOB5) 499 709 10 ]\n" " [ (ISOB6) 354 499 10 ]\n" " [ (ISOB7) 249 354 10 ]\n" " [ (ISOB8) 176 249 10 ]\n" " [ (ISOB9) 125 176 10 ]\n" " [ (ISOB10) 88 125 10 ]\n" " [ (C0) 2599 3676 10 ]\n" " [ (C1) 1837 2599 10 ]\n" " [ (C2) 1298 1837 10 ]\n" " [ (C3) 918 1296 10 ]\n" " [ (C4) 649 918 10 ]\n" " [ (C5) 459 649 10 ]\n" " [ (C6) 323 459 10 ]\n" " [ (C7) 230 323 10 ]\n" " [ (DL) 312 624 10 ]\n" " [ (Filo) 270 487 12 ]\n" "] def\n" "\n"; fputs(common_prolog, f); } void print_common_setup(FILE *f) { const char *common_setup = "%------------------------------------------------------------------\n" "/Times-Roman /Times-Roman-ISOLatin1 Recode\n" "/Times-Bold /Times-Bold-ISOLatin1 Recode\n" "/Courier /Courier-ISOLatin1 Recode\n" "/Courier-Bold /Courier-Bold-ISOLatin1 Recode\n" "/Helvetica /Helvetica-ISOLatin1 Recode\n" "%------------------------------------------------------------------\n" "% Based on the paper size, work out the scaling and fontsize for\n" "% the page.\n" "\n" "PaperSizes {\n" " /PaperArray edef\n" " PaperArray 0 get PageSize eq {\n" " /ScaleX PaperArray 2 get A4X div def\n" " /ScaleY PaperArray 1 get A4Y div def\n" " /fontsize PaperArray 3 get def\n" " /linespacing fontsize 1.1 mul def\n" " } if\n" "} forall\n"; fputs(common_setup, f); } /*---------------------------------------------------------------------- * print_week_header Routine to print the week plan view PostScript * header. *----------------------------------------------------------------------*/ void print_week_header(FILE *f) { const char *week_header = "/TM 560 def % top margin\n" "/BM 30 def % bottom margin\n" "/LM 30 def % left margin\n" "/RM 810 def % right margin\n" "\n" "%------------------------------------------------------------------\n" "\n" "/itemfont /Helvetica-ISOLatin1 def\n" "/datefont /Helvetica-Bold def\n" "/FirstHour 9 def % Default beginning and end of the plan\n" "/LastHour 22 def\n" "\n" "/usefont {findfont fontsize scalefont setfont} def\n" "\n" "%------------------------------------------------------------------\n" "% Rotate page round so it is printed A4 landscape\n" "\n" "/A4landscape {\n" " initgraphics\n" " A4Y ScaleY mul 0 translate\n" " 90 rotate\n" " ScaleX ScaleY Min dup scale\n" "} def\n" "\n" "%------------------------------------------------------------------\n" "% 'concat' - routine to concatenate two strings from the\n" "% stack, leaving result on the stack. Does it by stack\n" "% manipulation, without needing to 'def' anything...\n" "\n" "/concat {\n" " 2 copy\n" " length exch length add string dup dup\n" " 0 5 index putinterval\n" " 3 index length 3 index putinterval\n" " exch pop exch pop\n" "} def\n" "\n" "%------------------------------------------------------------------\n" "% This does all the initial set up for a planner sheet, setting up\n" "% page, printing the times down left hand edge of sheet, printing\n" "% date and time of printing at the top, etc.\n" "\n" "/startprinting {\n" " dup LastHour gt { /LastHour edef } { pop } ifelse\n" " dup FirstHour lt { /FirstHour edef } { pop } ifelse\n" " /Year edef\n" " /Month edef\n" " /Day edef\n" " A4landscape\n" " gsave\n" " /Helvetica-Oblique findfont 8 scalefont setfont\n" " LM TM 5 add m (Printed on: ) show\n" " Day nstr cvs show (/) show\n" " Month nstr cvs show (/) show\n" " Year nstr cvs show\n" " gsave\n" " %----------------------------------------------------------\n" " % Put the times, in 24 hour format, down the left hand edge\n" " % of the page...\n" " datefont usefont\n" " /HourHeight TopOfDay BotOfDay sub LastHour FirstHour sub\n" " div def\n" " FirstHour 1 LastHour {\n" " dup dup 0 TimeToY fontsize 0.7 mul sub LM exch m\n" " 10 lt { (0) show } if\n" " nstr cvs show (00) show\n" " } for\n" " grestore\n" "} def\n" "\n" "%------------------------------------------------------------------\n" "% Brief counterpart to startprinting: just showpages and restores\n" "% the graphics state...\n" "\n" "/finishprinting {\n" " showpage\n" " grestore\n" "} def\n" "\n" "%------------------------------------------------------------------\n" "% Give TimeToY a 24 hour clock time (hours, minutes) and it'll work\n" "% out a Y offset...\n" "\n" "/TimeColWidth 40 def\n" "/DayWidth RM LM sub TimeColWidth sub 7 div def\n" "/TopOfDay TM linespacing 2 mul sub def\n" "/BotOfDay BM linespacing 8 mul add def\n" "\n" "/TimeToY {\n" " 60 div exch FirstHour sub add HourHeight mul TopOfDay esub\n" "} def\n" "\n" "/TimeToY2 {\n" " FirstHour sub HourHeight mul TopOfDay esub\n" "} def\n" "\n" "%------------------------------------------------------------------\n" "% Some constants for the the 'StringToTime' routine below\n" "\n" "/PM (p) 0 get def\n" "/AM (a) 0 get def\n" "/Colon (:) 0 get def\n" "/Zero (0) 0 get def\n" "/Nine (9) 0 get def\n" "\n" "%------------------------------------------------------------------\n" "% Give this a string containing a from/to time pair, like:\n" "% (6:30pm to 7:30pm)\n" "% it will leave the two times, in 24-hour format, with the minutes\n" "% as a decimal fraction of the hour, on the stack.\n" "\n" "/StringToTimes {\n" " /String edef\n" "\n" " %----------------------------------------------------------\n" " % This stuff extracts the from time from the start of the\n" " % string.\n" "\n" " String 1 get Colon eq { /Len1 1 def }{ /Len1 2 def } ifelse\n" " /Hour1 String 0 Len1 getinterval cvi def\n" " /Min1 String Len1 1 add 2 getinterval cvi def\n" " Hour1 12 eq { /Hour1 0 def } if\n" " String Len1 3 add get PM eq { /Hour1 Hour1 12 add def } if\n" "\n" " Hour1 Min1 60 div add\n" "\n" " %----------------------------------------------------------\n" " /Len3 9 Len1 add def\n" " String Len3 1 add get Colon eq { /Len2 1 def }\n" " { /Len2 2 def } ifelse\n" " /Hour2 String Len3 Len2 getinterval cvi def\n" " /Min2 String Len3 Len2 1 add add 2 getinterval cvi def\n" " Hour2 12 eq { /Hour2 0 def } if\n" " String Len3 Len2 3 add add get PM eq\n" " { /Hour2 Hour2 12 add def } if\n" "\n" " Hour2 Min2 60 div add\n" "} def\n" "\n" "%------------------------------------------------------------------\n" "\n" "/startday {\n" " /Today edef\n" " /TodayLM DayWidth Today mul TimeColWidth add LM add def\n" " grestore gsave\n" " gsave newpath\n" " TodayLM TM m TodayLM DayWidth add TM l\n" " TodayLM DayWidth add BM l TodayLM BM l\n" " closepath 0 slw 0 setgray stroke\n" " TodayLM TopOfDay 3 add m DayWidth 0 rlineto stroke\n" " 2 slw\n" " TodayLM BotOfDay m DayWidth 0 rlineto stroke\n" " Dashes {\n" " 0 slw [ 1 5 ] 1 setdash\n" " FirstHour 1 add 1 LastHour 1 sub {\n" " TodayLM exch 0 TimeToY m DayWidth 0 rlineto stroke\n" " } for\n" " } if\n" " grestore\n" " newpath\n" " TodayLM TM m TodayLM DayWidth add TM l\n" " TodayLM DayWidth add BM l TodayLM BM l\n" " closepath clip\n" " /BotItemY BotOfDay 3 sub def\n" "} def\n" "\n" "/dateline {\n" " datefont usefont\n" " TodayLM 5 add TM linespacing sub m show\n" " TodayLM 5 add TM 100 sub m\n" "} def\n" "\n" "%------------------------------------------------------------------\n" "% 'spacify' routine to replace line-feeds with spaces in strings\n" "% passed in - places string back on stack where it came from.\n" "\n" "/spacify {\n" " /LF 10 def\n" " /SP 32 def\n" "\n" " /String edef\n" "\n" " 0 1 String length 1 sub {\n" " /I edef\n" " String I get LF eq {\n" " String I SP put\n" " } if\n" " } for\n" " String\n" "} def\n" "\n" "%------------------------------------------------------------------\n" "% Move onto the next line\n" "\n" "/incY { /X LMpara def /Y Y linespacing sub def } def\n" "\n" "%------------------------------------------------------------------\n" "% This routine will do automatic line-breaking of the item text, so\n" "% that as much of it as possible is visible.\n" "%\n" "% Arguments are: 'Paragraph Y para'\n" "\n" "/para {\n" " /RMpara TodayLM DayWidth add def\n" " /LMpara TodayLM 3 add def\n" " /Y edef\n" " spacify\n" " /Paragraph edef\n" " /SpaceW ( ) stringwidth pop def\n" " RMpara LMpara sub Paragraph stringwidth pop gt\n" " {\n" " %----------------------------------------------\n" " % The whole paragraph fits on one line - so\n" " % just print it!\n" " %----------------------------------------------\n" " LMpara Y m Paragraph show\n" " } {\n" " %----------------------------------------------\n" " % Have to do our clever formatting\n" " %----------------------------------------------\n" " /X LMpara def\n" " {\n" " Paragraph ( ) search\n" " {\n" " %--------------------------------------------\n" " % Found a space - so check where to print it.\n" " %--------------------------------------------\n" " dup\n" " stringwidth pop /SW edef\n" " SW RMpara X sub gt { incY } if\n" " X Y m show\n" " pop\n" " /X X SW SpaceW add add def\n" " /Paragraph edef\n" " } {\n" " %----------------------------------------\n" " % No space. Print rest of string and exit\n" " %----------------------------------------\n" " RMpara X sub Paragraph stringwidth pop lt\n" " { incY } if\n" " X Y m Paragraph show\n" " pop\n" " exit\n" " } ifelse\n" " } loop\n" " } ifelse\n" "} def\n" "\n" "%------------------------------------------------------------------\n" "% Takes either one or two arguments - one if no time component, two\n" "% if there is also a time for the appointment. Prints time in left\n" "% margin, and actual item text offset by 65 point. Long lines can\n" "% generate extra strings, which should print on a new line, but at\n" "% the moment, on basis that space is critical and in Filofax I am\n" "% likely to get the gist - I can always check the details at home!\n" "\n" "/itemline {\n" " itemfont usefont\n" " count 0 ne {\n" " count 1 eq {\n" " /BotItemY BotItemY linespacing sub def\n" " TodayLM 3 add BotItemY m show\n" " } {\n" " { count 3 gt { concat } { exit } ifelse } loop\n" " /Details edef\n" " /HourTo edef\n" " /HourFrom edef\n" " %----------------------------------------\n" " % Having got the times extracted, draw the\n" " % shaded box round the blocked out time,\n" " % and set this box to be a clipping path...\n" " gsave\n" " newpath\n" " TodayLM HourFrom TimeToY2 m\n" " TodayLM DayWidth add HourFrom TimeToY2 l\n" " TodayLM DayWidth add HourTo TimeToY2 l\n" " TodayLM HourTo TimeToY2 l\n" " closepath gsave 0.9 setgray fill\n" " grestore gsave 0 setgray stroke\n" " grestore clip\n" "\n" " %----------------------------------------\n" " % Now fill in the text of the details\n" " Details HourFrom TimeToY2 linespacing sub para\n" " grestore\n" " } ifelse\n" " } if\n" "} def\n" "\n" "%-------------------------------------------------------------\n\n\n"; fputs(week_header, f); } /*---------------------------------------------------------------------- * print_month_header Routine to print the month view PostScript * header. *----------------------------------------------------------------------*/ void print_month_header(FILE *f) { const char *month_header = "/Row 0 def\n" "/Col 0 def\n" "/DayNumber 0 def\n" "/LM 60 def\n" "/RM 780 def\n" "/TM 550 def\n" "/BM 50 def\n" "\n" "%------------------------------------------------------------------\n" "% Utility routines are up here\n" "\n" "/Rectangle {\n" " newpath 4 2 roll m exch dup 3 1 roll 0 rl 0 exch rl neg 0\n" " rl closepath\n" "} def\n" "/DrawBox { slw Rectangle stroke 1 slw } def\n" "/ColToX { BoxWidth mul LM add } def\n" "/RowToY { 4 exch sub BoxHeight mul BM add } def\n" "/DaysOfWeek {\n" " FDOW 0 eq {\n" " [(Sun) (Mon) (Tue) (Wed) (Thu) (Fri) (Sat)]\n" " } {\n" " [(Mon) (Tue) (Wed) (Thu) (Fri) (Sat) (Sun)]\n" " } ifelse\n" "} def\n" "\n" "%------------------------------------------------------------------\n" "\n" "/InitialisePage {\n" " /FDOW edef % First day of week; 1 = Mon, 0 = Sun\n" " /JpilotVersion edef % Jpilot version string\n" " /TodaysDate edef % String for date of printing\n" " /FirstDay edef % Day of 1st of month (0=Sun, 1=Mon...)\n" " /MonthName edef % Month/year string\n" " %----------------------------------------------------------\n" " % Orient page and scale to fit paper size\n" " initgraphics\n" " A4Y ScaleY mul 0 translate\n" " 90 rotate\n" " ScaleX ScaleY Min dup scale\n" "\n" " %----------------------------------------------------------\n" " % Draw various headings\n" " /Helvetica-Bold findfont fontsize 3 mul scalefont setfont\n" " LM TM 30 sub RM MonthName CenterText\n" " /Helvetica findfont fontsize 0.8 mul scalefont setfont\n" " LM TM 30 sub m (Printed on: ) show TodaysDate show\n" " RM TM 30 sub JpilotVersion RightText\n" "\n" " %----------------------------------------------------------\n" " % Now draw the seven days of week across top\n" " /X LM def\n" " /Y TM 60 sub def\n" " /BoxWidth RM LM sub 7 div def\n" " /BoxHeight Y BM sub 5 div def\n" " /Helvetica-Bold findfont 16 scalefont setfont\n" " DaysOfWeek\n" " {\n" " /DayName edef\n" " 0.5 setgray X Y BoxWidth 20 Rectangle fill\n" " 0 setgray X Y BoxWidth 20 1 DrawBox\n" " 1 setgray X Y 3 add X BoxWidth add DayName CenterText\n" " /X X BoxWidth add def\n" " } forall\n" " 0 setgray\n" "\n" " %----------------------------------------------------------\n" " % Now draw all the empty, slightly gray boxes that are the\n" " % backdrop\n" "\n" " 0 1 6 {\n" " /Col edef\n" " 0 1 4 {\n" " /Row edef\n" " Col ColToX Row RowToY BoxWidth BoxHeight Rectangle\n" " gsave 0.95 setgray fill grestore 0 setgray stroke\n" " } for\n" " } for\n" " /Col FirstDay FDOW 1 add sub def\n" " Col -2 eq { /Col 5 def } if\n" " /Row 0 def\n" " gsave\n" "} def\n" "\n" "%------------------------------------------------------------------\n" "\n" "/NextDay {\n" " grestore gsave % This copes with a changing clipping path\n" " /DayNumber DayNumber 1 add def\n" " /Col Col 1 add def\n" " Col 7 eq { \n" " /Row Row 1 add def /Col 0 def \n" " Row 5 eq { /Row 0 def } if\n" " } if\n" " %----------------------------------------------------------\n" " % First box the thing off in white, and set a clipping path\n" " Col ColToX Row RowToY BoxWidth BoxHeight Rectangle\n" " gsave 1 setgray fill grestore 0 setgray stroke\n" "\n" " Col ColToX 1 add Row RowToY 1 add BoxWidth 2 sub BoxHeight\n" " 2 sub Rectangle clip\n" "\n" " %----------------------------------------------------------\n" " % Then put up the large number for the day...\n" " /Helvetica-Bold findfont fontsize 2 mul scalefont setfont\n" " Col ColToX 3 add\n" " Row RowToY BoxHeight fontsize 2 mul 1 add sub add m\n" " DayNumber nstr cvs show\n" "\n" " %----------------------------------------------------------\n" " % Finally, set variables for the items\n" " /X Col ColToX 3 add def\n" " /Y Row RowToY BoxHeight fontsize sub 2 sub add def\n" " /Ytop2 Row RowToY BoxHeight fontsize 3 mul sub add def\n" " /fsize fontsize 0.8 mul def\n" "} def\n" "\n" "%------------------------------------------------------------------\n" "% 'spacify' routine to replace line-feeds with spaces in strings\n" "% passed in - places string back on stack where it came from.\n" "\n" "/spacify {\n" " /LF 10 def\n" " /SP 32 def\n" "\n" " /String edef\n" "\n" " 0 1 String length 1 sub {\n" " /I edef\n" " String I get LF eq {\n" " String I SP put\n" " } if\n" " } for\n" " String\n" "} def\n" "\n" "%------------------------------------------------------------------\n" "% Move onto the next line\n" "\n" "/incY { /X X_LM def /Y Y fsize sub def } def\n" "\n" "%------------------------------------------------------------------\n" "% This routine will do automatic line-breaking of the item text, so\n" "% that as much of it as possible is visible.\n" "%\n" "% Arguments are: 'Paragraph Y para'\n" "\n" "/para {\n" " /RMpara X PrintBoxWidth add def\n" " /LMpara X def\n" " /Y edef\n" " spacify\n" " /Paragraph edef\n" " /SpaceW ( ) stringwidth pop def\n" " RMpara LMpara sub Paragraph stringwidth pop gt\n" " {\n" " %----------------------------------------------\n" " % The whole paragraph fits on one line - so\n" " % just print it!\n" " %----------------------------------------------\n" " LMpara Y m Paragraph show\n" " } {\n" " %----------------------------------------------\n" " % Have to do our clever formatting\n" " %----------------------------------------------\n" " /X LMpara def\n" " /I 0 def\n" " {\n" " Paragraph ( ) search\n" " {\n" " %--------------------------------------------\n" " % Found a space - so check where to print it.\n" " %--------------------------------------------\n" " dup\n" " stringwidth pop /SW edef\n" " SW RMpara X sub gt { /I I 1 add def I 2 eq { exit } if incY } if\n" " X Y m show\n" " pop\n" " /X X SW SpaceW add add def\n" " /Paragraph edef\n" " } {\n" " %----------------------------------------\n" " % No space. Print rest of string and exit\n" " %----------------------------------------\n" " RMpara X sub Paragraph stringwidth pop lt\n" " { /I I 1 add def I 2 eq { exit } if incY } if\n" " X Y m Paragraph show\n" " pop\n" " exit\n" " } ifelse\n" " } loop\n" " } ifelse\n" "} def\n" "\n" "%------------------------------------------------------------------\n" "% This procedure prints an item\n" "\n" "/TimedItem {\n" " /ApptText edef\n" " Y Ytop2 gt { /Y Ytop2 def } if\n" " /Helvetica-Oblique findfont fsize scalefont setfont\n" " X Y m show\n" " /Helvetica-ISOLatin1 findfont fsize scalefont setfont\n" " /X_LM X def\n" " /X X 4.2 fsize mul add def\n" " /PrintBoxWidth BoxWidth X X_LM sub sub 3 sub def\n" " ApptText Y para\n" " incY\n" "} def\n" "\n" "/UntimedItem {\n" " /ApptText edef\n" " /Helvetica-ISOLatin1 findfont fsize scalefont setfont\n" " /X_LM_save X def\n" " /X X 3 fsize mul add def\n" " /X_LM X def\n" " /PrintBoxWidth BoxWidth X X_LM_save sub sub 3 sub def\n" " ApptText Y para\n" " /X_LM X_LM_save def\n" " incY\n" "} def\n" "\n" "%------------------------------------------------------------------\n" "\n" "/SmallMonth {\n" " grestore gsave % This copes with a changing clipping path\n" " /S_FDOM edef\n" " /NumDays edef\n" " /MonthName edef\n" " /S_row edef\n" " /S_col edef\n" "\n" " /X1 S_col ColToX def\n" " /X2 S_col 1 add ColToX def\n" " /Y1 S_row RowToY def\n" " /Y2 S_row 1 sub RowToY def\n" " /SmallBoxWidth .125 BoxWidth mul def\n" " /SmallLeftMargin X1 .16 BoxWidth mul add def\n" " /Helvetica-Bold findfont 10 scalefont setfont \n" " X1 Y2 12 sub X2 MonthName CenterText\n" " /Helvetica-Bold findfont 8 scalefont setfont \n" " /X SmallLeftMargin def\n" " /DayName 1 string def\n" " DaysOfWeek\n" " {\n" " 0 get DayName 0 3 2 roll put\n" " X S_row 1 sub RowToY 24 sub DayName RightText\n" " /X X SmallBoxWidth add def\n" " } forall\n" " /Helvetica findfont 8 scalefont setfont \n" " /SmallRow 0 def\n" " /SmallCol S_FDOM FDOW sub def\n" " SmallCol FDOW lt { /SmallCol SmallCol 7 add 7 mod def } if\n" " 1 1 NumDays {\n" " /Day edef\n" " SmallLeftMargin SmallCol SmallBoxWidth mul add\n" " Y1 4 SmallRow sub 11 mul 10 add add\n" " Day nstr cvs RightText\n" " /SmallCol SmallCol 1 add def\n" " SmallCol 7 ge {\n" " /SmallCol 0 def\n" " /SmallRow SmallRow 1 add def\n" " SmallRow 4 gt { /SmallRow 0 def } if\n" " } if\n" " } for\n" "} def\n" "\n" "%------------------------------------------------------------------\n" "\n" "/SmallMonths {\n" " /NumDays2 edef\n" " /FDOM2 edef\n" " /MonthName2 edef\n" " /NumDays1 edef\n" " /FDOM1 edef\n" " /MonthName1 edef\n" "\n" " Col 5 lt {\n" " Row 0 ne {\n" " 5 4 MonthName1 NumDays1 FDOM1 SmallMonth\n" " 6 4 MonthName2 NumDays2 FDOM2 SmallMonth\n" " } {\n" " Col 2 add 0 MonthName1 NumDays1 FDOM1 SmallMonth\n" " Col 3 add 0 MonthName2 NumDays2 FDOM2 SmallMonth\n" " } ifelse\n" " } {\n" " Row 4 eq {\n" " 0 0 MonthName1 NumDays1 FDOM1 SmallMonth\n" " 1 0 MonthName2 NumDays2 FDOM2 SmallMonth\n" " } {\n" " 5 4 MonthName1 NumDays1 FDOM1 SmallMonth\n" " 6 4 MonthName2 NumDays2 FDOM2 SmallMonth\n" " } ifelse\n" " } ifelse\n" "} def\n" "\n" "%------------------------------------------------------------------\n" "% This is the end of the header\n" "%------------------------------------------------------------------\n" "\n"; fputs(month_header, f); } /*---------------------------------------------------------------------- * print_day_header Routine to print the day view PostScript * header. *----------------------------------------------------------------------*/ void print_day_header(FILE *f) { const char *day_header = "ScaleY ScaleX Min dup scale\n" "%----------------------------------------\n" "% First the gray background area\n" "newpath\n" "0 slw\n" " 0.5 inch 3.5 inch m\n" " 0 7.0 inch rl\n" " 7.5 inch 0 rl\n" " 0 -1 inch rl\n" "-3 inch 0 rl\n" " 0 -6 inch rl\n" "-0.75 inch 0 rl\n" " 0 6 inch rl\n" "-3 inch 0 rl\n" " 0 -6 inch rl\n" "closepath 0.85 setgray fill stroke\n" "%----------------------------------------\n" "% Next highlighting lines round title\n" "0 setgray\n" "1 slw newpath 0.5 inch 10.5 inch m 7.5 inch 0 rl stroke\n" " newpath 0.5 inch 9.5625 inch m 7.5 inch 0 rl stroke\n" "2 slw newpath 0.5 inch 9.5 inch m 7.5 inch 0 rl stroke\n\n" "/Times-Roman-ISOLatin1 findfont 14 scalefont setfont\n" "0 slw\n" "0 1 11 {\n" " /I edef\n" " %----------------------------------------\n" " % The hours\n" " 0.5 inch 9.15 inch I 0.5 inch mul sub m\n" " I 10 lt { (0) show } if I nstr cvs show (:00) show\n" " 4.25 inch 9.15 inch I 0.5 inch mul sub m\n" " I 12 add nstr cvs show (:00) show\n" " %----------------------------------------\n" " % The horizontal lines between hours\n" " 1.25 inch 9 inch I 0.5 inch mul sub m 3 inch 0 rl\n" " 5 inch 9 inch I 0.5 inch mul sub m 3 inch 0 rl\n" "} for\n" "stroke\n"; fputs(day_header, f); } /*---------------------------------------------------------------------- * print_todo_header *----------------------------------------------------------------------*/ void print_todo_header(FILE *f) { const char *todo_header = "%------------------------------------------------------------------\n" "() CategoryName eq {\n" " /CategoryName (All Categories) def\n" "}\n" "/Ytitle 785 def\n" "/Ytop Ytitle 20 sub def\n" "/PageNo 0 def\n" "\n" "/IndentDone 30 def\n" "/IndentPriority IndentDone fontsize 1.5 mul add def\n" "/IndentDate IndentDone fontsize 3 mul add def\n" "/IndentText IndentDone fontsize 9.5 mul add def\n" "/fsize fontsize 1.2 mul def\n" "\n" "%-----------------------------------------\n" "\n" "/NewPage {\n" " PageNo 0 ne { showpage } if\n" " /PageNo PageNo 1 add def\n" " ScaleY ScaleX Min dup scale\n" " /Y Ytop def\n" /* " /Helvetica-Bold findfont fsize 1.5 mul scalefont setfont \n" */ " /Times-Roman-ISOLatin1 findfont fsize 1.5 mul scalefont setfont \n" " 0 Ytitle A4Y CategoryName CenterText\n" /* " /Helvetica findfont fsize scalefont setfont \n" */ " /Times-Roman-ISOLatin1 findfont fsize scalefont setfont \n" " IndentDone Ytitle m (To Do List) show\n" " /PageString 8 string def\n" " (Page: ) PageString copy\n" " PageString 5 PageNo nstr cvs putinterval\n" " A4Y IndentDone sub Ytitle PageString RightText\n" " 2 slw\n" " IndentDone Ytitle 3 sub m A4Y IndentDone sub Ytitle 3 sub l" " stroke\n" " 0 slw\n" "} def\n" "\n" "%-----------------------------------------\n" "\n" "/incY { /Y Y linespacing 1.2 mul sub def Y 30 lt {NewPage} if } def\n" "\n" "%-----------------------------------------\n" "\n" "/Todo {\n" " /Note edef\n" " /Text edef\n" " /Date edef\n" " /Priority edef\n" " /Done edef\n" " PageNo 0 eq { NewPage } { incY } ifelse\n" " IndentDone Y 0.9 fsize mul dup\n" " Done { rectfill } { rectstroke } ifelse\n" /* " /Helvetica-Bold findfont fsize scalefont setfont \n" */ " /Courier-Bold-ISOLatin1 findfont fsize scalefont setfont \n" " IndentPriority Y m Priority nstr cvs show\n" /* " /Helvetica findfont fsize scalefont setfont \n" */ " /Courier-ISOLatin1 findfont fsize scalefont setfont \n" " IndentDate Y m Date show\n" " IndentText Y m Text show\n" " () Note ne {\n" " incY\n" /* " /Helvetica-Oblique findfont fsize scalefont setfont\n" */ " /Courier-ISOLatin1 findfont fsize scalefont setfont \n" " gsave\n" " IndentText 2 sub Y 2 sub A4Y IndentText IndentDone\n" " add sub linespacing 1.2 mul rectclip\n" " IndentText Y m Note show\n" " grestore\n" " } if\n" "} def\n"; fputs(todo_header, f); } jpilot-1.8.1.2/i18n.h0000644000175000017500000000250011365051716011035 00000000000000/* $Id: i18n.h,v 1.12 2010-03-29 05:44:29 rikster5 Exp $ */ /******************************************************************************* * i18n.h * A module of J-Pilot http://jpilot.org * * Copyright (C) 1999-2002 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef __I18N_H__ # define __I18N_H__ # include "config.h" # if defined(ENABLE_NLS) # include # include "gettext.h" # define _(str) gettext(str) # define N_(str) str # define C_(context, str) pgettext(context, str) # else # define _(str) str # define N_(str) str # define C_(context, str) str # endif #endif jpilot-1.8.1.2/datebook_gui.c0000644000175000017500000061127111547063267012726 00000000000000/* $Id: datebook_gui.c,v 1.249 2011-04-06 12:51:39 rousseau Exp $ */ /******************************************************************************* * datebook_gui.c * A module of J-Pilot http://jpilot.org * * Copyright (C) 1999-2002 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /********************************* Includes ***********************************/ #include "config.h" #include #include #include #include #include #include #include #include "datebook.h" #include "calendar.h" #include "i18n.h" #include "utils.h" #include "todo.h" #include "log.h" #include "prefs.h" #include "password.h" #include "export.h" #include "print.h" #include "alarms.h" #include "stock_buttons.h" /********************************* Constants **********************************/ //#define EASTER #define PAGE_NONE 0 #define PAGE_DAY 1 #define PAGE_WEEK 2 #define PAGE_MONTH 3 #define PAGE_YEAR 4 #define BEGIN_DATE_BUTTON 5 /* Maximum length of description (not including the null) */ /* todo check this before every record write */ #define MAX_DESC_LEN 255 #define DATEBOOK_MAX_COLUMN_LEN 80 #define DB_TIME_COLUMN 0 #define DB_NOTE_COLUMN 1 #define DB_ALARM_COLUMN 2 #ifdef ENABLE_DATEBK # define DB_FLOAT_COLUMN 3 static int DB_APPT_COLUMN=4; #else static int DB_APPT_COLUMN=3; #endif #define NUM_DATEBOOK_CAT_ITEMS 16 #define NUM_EXPORT_TYPES 3 #define NUM_DBOOK_CSV_FIELDS 19 #define NUM_CALENDAR_CSV_FIELDS 20 /* RFCs use CRLF for Internet newline */ #define CRLF "\x0D\x0A" #define BROWSE_OK 1 #define BROWSE_CANCEL 2 #define CONNECT_SIGNALS 400 #define DISCONNECT_SIGNALS 401 #define CAL_DAY_SELECTED 327 #define UPDATE_DATE_ENTRIES 0x01 #define UPDATE_DATE_MENUS 0x02 #define START_TIME_FLAG 0x00 #define END_TIME_FLAG 0x80 #define HOURS_FLAG 0x40 /* #define DAY_VIEW */ /******************************* Global vars **********************************/ /* Keeps track of whether code is using Datebook, or Calendar database * 0 is Datebook, 1 is Calendar */ static long datebook_version=0; /* This refers to the main jpilot window. This should probably * be replaced somehow by a GTK call which works out what the * top-level window is from the widget. Right now it relies * on the fact that there is only one item titled "window" in * the global name space */ extern GtkWidget *window; extern GtkWidget *glob_date_label; extern gint glob_date_timer_tag; static GtkWidget *pane; static GtkWidget *note_pane; static GtkWidget *todo_pane; static GtkWidget *todo_vbox; static struct CalendarAppInfo dbook_app_info; static int dbook_category = CATEGORY_ALL; static struct sorted_cats sort_l[NUM_DATEBOOK_CAT_ITEMS]; static GtkWidget *main_calendar; static GtkWidget *dow_label; static GtkWidget *clist; static GtkWidget *dbook_desc, *dbook_note; static GObject *dbook_desc_buffer,*dbook_note_buffer; /* Need two extra slots for the ALL category and Edit Categories... */ static GtkWidget *dbook_cat_menu_item1[NUM_DATEBOOK_CAT_ITEMS+2]; static GtkWidget *dbook_cat_menu_item2[NUM_DATEBOOK_CAT_ITEMS]; static GtkWidget *category_menu1; static GtkWidget *category_menu2; static GtkWidget *private_checkbox; static GtkWidget *check_button_alarm; static GtkWidget *check_button_day_endon; static GtkWidget *check_button_week_endon; static GtkWidget *check_button_mon_endon; static GtkWidget *check_button_year_endon; static GtkWidget *units_entry; static GtkWidget *repeat_day_entry; static GtkWidget *repeat_week_entry; static GtkWidget *repeat_mon_entry; static GtkWidget *repeat_year_entry; static GtkWidget *radio_button_no_time; static GtkWidget *radio_button_appt_time; static GtkWidget *radio_button_alarm_min; static GtkWidget *radio_button_alarm_hour; static GtkWidget *radio_button_alarm_day; static GtkWidget *location_entry; static GtkWidget *glob_endon_day_button; static struct tm glob_endon_day_tm; static GtkWidget *glob_endon_week_button; static struct tm glob_endon_week_tm; static GtkWidget *glob_endon_mon_button; static struct tm glob_endon_mon_tm; static GtkWidget *glob_endon_year_button; static struct tm glob_endon_year_tm; static GtkWidget *toggle_button_repeat_days[7]; static GtkWidget *toggle_button_repeat_mon_byday; static GtkWidget *toggle_button_repeat_mon_bydate; static GtkWidget *notebook; static int current_day; /* range 1-31 */ static int current_month; /* range 0-11 */ static int current_year; /* years since 1900 */ static int clist_row_selected; static int record_changed; #ifdef ENABLE_DATEBK int datebk_category=0xFFFF; /* This is a bitmask */ static GtkWidget *datebk_entry; #endif static GtkWidget *hbox_alarm1, *hbox_alarm2; static GtkWidget *scrolled_window; static struct tm begin_date, end_date; static GtkWidget *option1, *option2, *option3, *option4; static GtkWidget *begin_date_button; static GtkWidget *begin_time_entry, *end_time_entry; static GtkWidget *new_record_button; static GtkWidget *apply_record_button; static GtkWidget *add_record_button; static GtkWidget *delete_record_button; static GtkWidget *undelete_record_button; static GtkWidget *copy_record_button; static GtkWidget *cancel_record_button; static GtkAccelGroup *accel_group; static CalendarEventList *glob_cel = NULL; /* For todo list */ static GtkWidget *todo_clist; static GtkWidget *show_todos_button; static GtkWidget *todo_scrolled_window; static ToDoList *datebook_todo_list=NULL; /* For export GUI */ static GtkWidget *export_window; static GtkWidget *save_as_entry; static GtkWidget *export_radio_type[NUM_EXPORT_TYPES+1]; static int glob_export_type; /****************************** Prototypes ************************************/ static void highlight_days(void); static int datebook_find(void); static int datebook_update_clist(void); static void update_endon_button(GtkWidget *button, struct tm *t); static void cb_clist_selection(GtkWidget *clist, gint row, gint column, GdkEventButton *event, gpointer data); static void cb_add_new_record(GtkWidget *widget, gpointer data); static void set_new_button_to(int new_state); static void connect_changed_signals(int con_or_dis); static int datebook_export_gui(GtkWidget *main_window, int x, int y); /****************************** Main Code *************************************/ static int datebook_to_text(struct CalendarEvent *cale, char *text, int len) { int i; const char *short_date; const char *pref_time; char temp[255]; char text_time[200]; char str_begin_date[20]; char str_begin_time[20]; char str_end_time[20]; char text_repeat_type[40]; char text_repeat_day[200]; char text_end_date[200]; char text_repeat_freq[200]; char text_alarm[40]; char text_repeat_days[200]; char text_exceptions[65535]; char *adv_type[] = { N_("Minutes"), N_("Hours"), N_("Days") }; char *repeat_type[] = { N_("Repeat Never"), N_("Repeat Daily"), N_("Repeat Weekly"), N_("Repeat MonthlyByDay"), N_("Repeat MonthlyByDate"), N_("Repeat YearlyDate"), N_("Repeat YearlyDay") }; char *days[] = { N_("Su"), N_("Mo"), N_("Tu"), N_("We"), N_("Th"), N_("Fr"), N_("Sa"), N_("Su") }; if ((cale->repeatWeekstart<0) ||(cale->repeatWeekstart>6)) { cale->repeatWeekstart=0; } get_pref(PREF_SHORTDATE, NULL, &short_date); get_pref(PREF_TIME, NULL, &pref_time); /* Event date/time */ strftime(str_begin_date, sizeof(str_begin_date), short_date, &(cale->begin)); if (cale->event) { sprintf(text_time, _("Start Date: %s\nTime: Event"), str_begin_date); } else { strftime(str_begin_time, sizeof(str_begin_time), pref_time, &(cale->begin)); strftime(str_end_time, sizeof(str_end_time), pref_time, &(cale->end)); str_begin_date[19]='\0'; str_begin_time[19]='\0'; str_end_time[19]='\0'; sprintf(text_time, _("Start Date: %s\nTime: %s to %s"), str_begin_date, str_begin_time, str_end_time); } /* Alarm */ if (cale->alarm) { sprintf(text_alarm, " %d ", cale->advance); i=cale->advanceUnits; if ((i>-1) && (i<3)) { strcat(text_alarm, adv_type[i]); } else { strcat(text_alarm, _("Unknown")); } } else { text_alarm[0]='\0'; } /* Repeat Type */ i=cale->repeatType; if ((i > -1) && (i < 7)) { strcpy(text_repeat_type, _(repeat_type[i])); } else { strcpy(text_repeat_type, _("Unknown")); } /* End Date */ strcpy(text_end_date, _("End Date: ")); if (cale->repeatForever) { strcat(text_end_date, _("Never")); } else { strftime(temp, sizeof(temp), short_date, &(cale->repeatEnd)); strcat(text_end_date, temp); } strcat(text_end_date, "\n"); sprintf(text_repeat_freq, _("Repeat Frequency: %d\n"), cale->repeatFrequency); if (cale->repeatType==calendarRepeatNone) { text_end_date[0]='\0'; text_repeat_freq[0]='\0'; } /* Repeat Day (for MonthlyByDay) */ text_repeat_day[0]='\0'; if (cale->repeatType==calendarRepeatMonthlyByDay) { sprintf(text_repeat_day, _("Monthly Repeat Day %d\n"), cale->repeatDay); } /* Repeat Days (for weekly) */ text_repeat_days[0]='\0'; if (cale->repeatType==calendarRepeatWeekly) { strcpy(text_repeat_days, _("Repeat on Days:")); for (i=0; i<7; i++) { if (cale->repeatDays[i]) { strcat(text_repeat_days, " "); strcat(text_repeat_days, _(days[i])); } } strcat(text_repeat_days, "\n"); } text_exceptions[0]='\0'; if (cale->exceptions > 0) { sprintf(text_exceptions, _("Number of exceptions: %d"), cale->exceptions); for (i=0; iexceptions; i++) { strcat(text_exceptions, "\n"); strftime(temp, sizeof(temp), short_date, &(cale->exception[i])); strcat(text_exceptions, temp); if (strlen(text_exceptions)>65000) { strcat(text_exceptions, _("\nmore...")); break; } } strcat(text_exceptions, "\n"); } if (datebook_version==0) { /* DateBook app */ g_snprintf(text, len, "%s %s\n" "%s %s\n" "%s\n" "%s %s%s\n" "%s %s\n" "%s" "%s" "%s %s\n" "%s" "%s" "%s", _("Description:"), cale->description, _("Note:"), (cale->note ? cale->note : ""), text_time, _("Alarm:"), cale->alarm ? _("Yes"):_("No"), text_alarm, _("Repeat Type:"), text_repeat_type, text_repeat_freq, text_end_date, _("Start of Week:"), _(days[cale->repeatWeekstart]), text_repeat_day, text_repeat_days, text_exceptions ); } else { /* Calendar app */ g_snprintf(text, len, "%s %s\n" "%s %s\n" "%s %s\n" "%s\n" "%s %s%s\n" "%s %s\n" "%s" "%s" "%s %s\n" "%s" "%s" "%s", _("Description:"), cale->description, _("Note:"), (cale->note ? cale->note : ""), _("Location:"), (cale->location ? cale->location : ""), text_time, _("Alarm:"), cale->alarm ? _("Yes"):_("No"), text_alarm, _("Repeat Type:"), text_repeat_type, text_repeat_freq, text_end_date, _("Start of Week:"), _(days[cale->repeatWeekstart]), text_repeat_day, text_repeat_days, text_exceptions ); } return EXIT_SUCCESS; } /*************** Start Import Code ***************/ static int cb_dbook_import(GtkWidget *parent_window, const char *file_path, int type) { FILE *in; char text[65536]; char description[65536]; char note[65536]; char location[65536]; struct CalendarEvent new_cale; unsigned char attrib; int i, str_i, ret, index; int import_all; AppointmentList *alist; CalendarEventList *celist; CalendarEventList *temp_celist; struct CategoryAppInfo cai; char old_cat_name[32]; int suggested_cat_num; int new_cat_num; int priv; int year, month, day, hour, minute; in=fopen(file_path, "r"); if (!in) { jp_logf(JP_LOG_WARN, _("Unable to open file: %s\n"), file_path); return EXIT_FAILURE; } /* CSV */ if (type==IMPORT_TYPE_CSV) { jp_logf(JP_LOG_DEBUG, "Datebook import CSV [%s]\n", file_path); /* Get the first line containing the format and check for reasonableness */ fgets(text, sizeof(text), in); if (datebook_version==0) { ret = verify_csv_header(text, NUM_DBOOK_CSV_FIELDS, file_path); } else { ret = verify_csv_header(text, NUM_CALENDAR_CSV_FIELDS, file_path); } if (EXIT_FAILURE == ret) return EXIT_FAILURE; import_all=FALSE; while (1) { memset(&new_cale, 0, sizeof(new_cale)); /* Read the category field */ read_csv_field(in, text, sizeof(text)); if (feof(in)) break; #ifdef JPILOT_DEBUG printf("category is [%s]\n", text); #endif g_strlcpy(old_cat_name, text, 16); /* Figure out what the best category number is */ suggested_cat_num=0; for (i=0; i 0) { new_cale.description=description; } else { new_cale.description=NULL; } /* Note */ read_csv_field(in, note, sizeof(note)); if (strlen(note) > 0) { new_cale.note=note; } else { new_cale.note=NULL; } if (datebook_version) { /* Location */ read_csv_field(in, location, sizeof(location)); if (strlen(location) > 0) { new_cale.location=location; } else { new_cale.location=NULL; } } /* Event */ read_csv_field(in, text, sizeof(text)); sscanf(text, "%d", &(new_cale.event)); /* Begin Time */ memset(&(new_cale.begin), 0, sizeof(new_cale.begin)); read_csv_field(in, text, sizeof(text)); sscanf(text, "%d %d %d %d:%d", &year, &month, &day, &hour, &minute); new_cale.begin.tm_year=year-1900; new_cale.begin.tm_mon=month-1; new_cale.begin.tm_mday=day; new_cale.begin.tm_hour=hour; new_cale.begin.tm_min=minute; new_cale.begin.tm_isdst=-1; mktime(&(new_cale.begin)); /* End Time */ memset(&(new_cale.end), 0, sizeof(new_cale.end)); read_csv_field(in, text, sizeof(text)); sscanf(text, "%d %d %d %d:%d", &year, &month, &day, &hour, &minute); new_cale.end.tm_year=year-1900; new_cale.end.tm_mon=month-1; new_cale.end.tm_mday=day; new_cale.end.tm_hour=hour; new_cale.end.tm_min=minute; new_cale.end.tm_isdst=-1; mktime(&(new_cale.end)); /* Alarm */ read_csv_field(in, text, sizeof(text)); sscanf(text, "%d", &(new_cale.alarm)); /* Alarm Advance */ read_csv_field(in, text, sizeof(text)); sscanf(text, "%d", &(new_cale.advance)); /* Advance Units */ read_csv_field(in, text, sizeof(text)); sscanf(text, "%d", &(new_cale.advanceUnits)); /* Repeat Type */ read_csv_field(in, text, sizeof(text)); sscanf(text, "%d", &(i)); new_cale.repeatType=i; /* Repeat Forever */ read_csv_field(in, text, sizeof(text)); sscanf(text, "%d", &(new_cale.repeatForever)); /* Repeat End */ memset(&(new_cale.repeatEnd), 0, sizeof(new_cale.repeatEnd)); read_csv_field(in, text, sizeof(text)); sscanf(text, "%d %d %d", &year, &month, &day); new_cale.repeatEnd.tm_year=year-1900; new_cale.repeatEnd.tm_mon=month-1; new_cale.repeatEnd.tm_mday=day; new_cale.repeatEnd.tm_isdst=-1; mktime(&(new_cale.repeatEnd)); /* Repeat Frequency */ read_csv_field(in, text, sizeof(text)); sscanf(text, "%d", &(new_cale.repeatFrequency)); /* Repeat Day */ read_csv_field(in, text, sizeof(text)); sscanf(text, "%d", &(i)); new_cale.repeatDay=i; /* Repeat Days */ read_csv_field(in, text, sizeof(text)); for (i=0; i<7; i++) { new_cale.repeatDays[i]=(text[i]=='1'); } /* Week Start */ read_csv_field(in, text, sizeof(text)); sscanf(text, "%d", &(new_cale.repeatWeekstart)); /* Number of Exceptions */ read_csv_field(in, text, sizeof(text)); sscanf(text, "%d", &(new_cale.exceptions)); /* Exceptions */ ret = read_csv_field(in, text, sizeof(text)); new_cale.exception=calloc(new_cale.exceptions, sizeof(struct tm)); for (str_i=0, i=0; i MAX_DESC_LEN) { new_cale.description[MAX_DESC_LEN+1]='\0'; jp_logf(JP_LOG_WARN, _("Appointment description text > %d, truncating to %d\n"), MAX_DESC_LEN, MAX_DESC_LEN); } pc_calendar_write(&new_cale, NEW_PC_REC, attrib, NULL); } } } /* Palm Desktop DAT format */ if (type==IMPORT_TYPE_DAT) { jp_logf(JP_LOG_DEBUG, "Datebook import DAT [%s]\n", file_path); if (dat_check_if_dat_file(in)!=DAT_DATEBOOK_FILE) { dialog_generic_ok(notebook, _("Error"), DIALOG_ERROR, _("File doesn't appear to be datebook.dat format\n")); fclose(in); return EXIT_FAILURE; } alist=NULL; dat_get_appointments(in, &alist, &cai); /* Copy this to a calendar event list */ copy_appointments_to_calendarEvents(alist, &celist); free_AppointmentList(&alist); import_all=FALSE; for (temp_celist=celist; temp_celist; temp_celist=temp_celist->next) { index=temp_celist->mcale.unique_id-1; if (index<0) { g_strlcpy(old_cat_name, _("Unfiled"), 16); } else { g_strlcpy(old_cat_name, cai.name[index], 16); } /* Figure out what category it was in the dat file */ index=temp_celist->mcale.unique_id-1; suggested_cat_num=0; if (index>-1) { for (i=0; imcale.cale), text, 65535); ret=import_record_ask(parent_window, pane, text, &(dbook_app_info.category), old_cat_name, (temp_celist->mcale.attrib & 0x10), suggested_cat_num, &new_cat_num); } else { new_cat_num=suggested_cat_num; } if (ret==DIALOG_SAID_IMPORT_QUIT) break; if (ret==DIALOG_SAID_IMPORT_SKIP) continue; if (ret==DIALOG_SAID_IMPORT_ALL) import_all=TRUE; attrib = (new_cat_num & 0x0F) | ((temp_celist->mcale.attrib & 0x10) ? dlpRecAttrSecret : 0); if ((ret==DIALOG_SAID_IMPORT_YES) || (import_all)) { pc_calendar_write(&(temp_celist->mcale.cale), NEW_PC_REC, attrib, NULL); } } free_CalendarEventList(&celist); } datebook_refresh(FALSE, TRUE); fclose(in); return EXIT_SUCCESS; } int datebook_import(GtkWidget *window) { char *type_desc[] = { N_("CSV (Comma Separated Values)"), N_("DAT/DBA (Palm Archive Formats)"), NULL }; int type_int[] = { IMPORT_TYPE_CSV, IMPORT_TYPE_DAT, 0 }; /* Hide ABA import of CalendarDB until file format has been decoded */ if (datebook_version==1) { type_desc[1] = NULL; type_int[1] = 0; } import_gui(window, pane, type_desc, type_int, cb_dbook_import); return EXIT_SUCCESS; } /*** End Import Code ***/ /*************** Start Export Code ***************/ /* TODO rename */ static void appt_export_ok(int type, const char *filename) { MyCalendarEvent *mcale; CalendarEventList *cel, *temp_list; FILE *out; struct stat statb; int i, r; char *button_text[]={N_("OK")}; char *button_overwrite_text[]={N_("No"), N_("Yes")}; char text[1024]; char csv_text[65550]; char *p; gchar *end; time_t ltime; struct tm *now = NULL; struct tm ical_time; long char_set; char username[256]; char hostname[256]; const char *svalue; long userid; const char *short_date; char pref_time[40]; char str1[256], str2[256]; char date_string[1024]; char *utf; /* Open file for export, including corner cases where file exists or * can't be opened */ if (!stat(filename, &statb)) { if (S_ISDIR(statb.st_mode)) { g_snprintf(text, sizeof(text), _("%s is a directory"), filename); dialog_generic(GTK_WINDOW(export_window), _("Error Opening File"), DIALOG_ERROR, text, 1, button_text); return; } g_snprintf(text, sizeof(text), _("Do you want to overwrite file %s?"), filename); r = dialog_generic(GTK_WINDOW(export_window), _("Overwrite File?"), DIALOG_QUESTION, text, 2, button_overwrite_text); if (r!=DIALOG_SAID_2) { return; } } out = fopen(filename, "w"); if (!out) { g_snprintf(text, sizeof(text), _("Error opening file: %s"), filename); dialog_generic(GTK_WINDOW(export_window), _("Error Opening File"), DIALOG_ERROR, text, 1, button_text); return; } /* Write a header for TEXT file */ if (type == EXPORT_TYPE_TEXT) { get_pref(PREF_SHORTDATE, NULL, &short_date); get_pref_time_no_secs(pref_time); time(<ime); now = localtime(<ime); strftime(str1, sizeof(str1), short_date, now); strftime(str2, sizeof(str2), pref_time, now); g_snprintf(date_string, sizeof(date_string), "%s %s", str1, str2); if (datebook_version==0) { fprintf(out, _("Datebook exported from %s %s on %s\n\n"), PN,VERSION,date_string); } else { fprintf(out, _("Calendar exported from %s %s on %s\n\n"), PN,VERSION,date_string); } } /* Write a header to the CSV file */ if (type == EXPORT_TYPE_CSV) { if (datebook_version==0) { fprintf(out, "CSV datebook version "VERSION": Category, Private, " "Description, Note, Event, Begin, End, Alarm, Advance, " "Advance Units, Repeat Type, Repeat Forever, Repeat End, " "Repeat Frequency, Repeat Day, Repeat Days, " "Week Start, Number of Exceptions, Exceptions\n"); } else { fprintf(out, "CSV calendar version "VERSION": Category, Private, " "Description, Note, Location, " "Event, Begin, End, Alarm, Advance, " "Advance Units, Repeat Type, Repeat Forever, Repeat End, " "Repeat Frequency, Repeat Day, Repeat Days, " "Week Start, Number of Exceptions, Exceptions\n"); } } /* Special setup for ICAL export */ if (type == EXPORT_TYPE_ICALENDAR) { get_pref(PREF_CHAR_SET, &char_set, NULL); if (char_set < CHAR_SET_UTF) { jp_logf(JP_LOG_WARN, _("Host character encoding is not UTF-8 based.\n" " Exported ical file may not be standards-compliant\n")); } /* Convert User Name stored in Palm character set */ get_pref(PREF_USER, NULL, &svalue); g_strlcpy(text, svalue, 128); text[127] = '\0'; charset_p2j(text, 128, char_set); str_to_ical_str(username, sizeof(username), text); get_pref(PREF_USER_ID, &userid, NULL); gethostname(text, sizeof(hostname)); text[sizeof(hostname)-1]='\0'; str_to_ical_str(hostname, sizeof(hostname), text); time(<ime); now = gmtime(<ime); } get_pref(PREF_CHAR_SET, &char_set, NULL); cel=NULL; get_days_calendar_events2(&cel, NULL, 2, 2, 2, CATEGORY_ALL, NULL); mcale=NULL; for (i=0, temp_list=cel; temp_list; temp_list = temp_list->next, i++) { mcale = &(temp_list->mcale); switch (type) { case EXPORT_TYPE_TEXT: csv_text[0]='\0'; datebook_to_text(&(mcale->cale), csv_text, sizeof(csv_text)); fprintf(out, "%s\n", csv_text); break; case EXPORT_TYPE_CSV: if (datebook_version==0) { fprintf(out, "\"\","); /* No category for Datebook */ } else { utf = charset_p2newj(dbook_app_info.category.name[mcale->attrib & 0x0F], 16, char_set); str_to_csv_str(csv_text, utf); fprintf(out, "\"%s\",", csv_text); g_free(utf); } fprintf(out, "\"%s\",", (mcale->attrib & dlpRecAttrSecret) ? "1":"0"); str_to_csv_str(csv_text, mcale->cale.description); fprintf(out, "\"%s\",", csv_text); str_to_csv_str(csv_text, mcale->cale.note); fprintf(out, "\"%s\",", csv_text); if (datebook_version) { str_to_csv_str(csv_text, mcale->cale.location); fprintf(out, "\"%s\",", csv_text); } fprintf(out, "\"%d\",", mcale->cale.event); fprintf(out, "\"%d %02d %02d %02d:%02d\",", mcale->cale.begin.tm_year+1900, mcale->cale.begin.tm_mon+1, mcale->cale.begin.tm_mday, mcale->cale.begin.tm_hour, mcale->cale.begin.tm_min); fprintf(out, "\"%d %02d %02d %02d:%02d\",", mcale->cale.end.tm_year+1900, mcale->cale.end.tm_mon+1, mcale->cale.end.tm_mday, mcale->cale.end.tm_hour, mcale->cale.end.tm_min); fprintf(out, "\"%s\",", (mcale->cale.alarm) ? "1":"0"); fprintf(out, "\"%d\",", mcale->cale.advance); fprintf(out, "\"%d\",", mcale->cale.advanceUnits); fprintf(out, "\"%d\",", mcale->cale.repeatType); if (mcale->cale.repeatType == calendarRepeatNone) { /* Single events don't have valid repeat data fields so * a standard output data template is used for them */ fprintf(out, "\"0\",\"1970 01 01\",\"0\",\"0\",\"0\",\"0\",\"0\",\""); } else { fprintf(out, "\"%d\",", mcale->cale.repeatForever); if (mcale->cale.repeatForever) { /* repeatForever events don't have valid end date fields * so a standard output date is used for them */ fprintf(out, "\"1970 01 01\","); } else { fprintf(out, "\"%d %02d %02d\",", mcale->cale.repeatEnd.tm_year+1900, mcale->cale.repeatEnd.tm_mon+1, mcale->cale.repeatEnd.tm_mday); } fprintf(out, "\"%d\",", mcale->cale.repeatFrequency); fprintf(out, "\"%d\",", mcale->cale.repeatDay); fprintf(out, "\""); for (i=0; i<7; i++) { fprintf(out, "%d", mcale->cale.repeatDays[i]); } fprintf(out, "\","); fprintf(out, "\"%d\",", mcale->cale.repeatWeekstart); fprintf(out, "\"%d\",", mcale->cale.exceptions); fprintf(out, "\""); if (mcale->cale.exceptions > 0) { for (i=0; icale.exceptions; i++) { if (i>0) { fprintf(out, ","); } fprintf(out, "%d %02d %02d", mcale->cale.exception[i].tm_year+1900, mcale->cale.exception[i].tm_mon+1, mcale->cale.exception[i].tm_mday); } } /* if for exceptions */ } /* else for repeat event */ fprintf(out, "\"\n"); break; case EXPORT_TYPE_ICALENDAR: /* RFC 2445: Internet Calendaring and Scheduling Core * Object Specification */ if (i == 0) { fprintf(out, "BEGIN:VCALENDAR"CRLF); fprintf(out, "VERSION:2.0"CRLF); fprintf(out, "PRODID:%s"CRLF, FPI_STRING); } fprintf(out, "BEGIN:VEVENT"CRLF); /* XXX maybe if it's secret export a VFREEBUSY busy instead? */ if (mcale->attrib & dlpRecAttrSecret) { fprintf(out, "CLASS:PRIVATE"CRLF); } fprintf(out, "UID:palm-datebook-%08x-%08lx-%s@%s"CRLF, mcale->unique_id, userid, username, hostname); fprintf(out, "DTSTAMP:%04d%02d%02dT%02d%02d%02dZ"CRLF, now->tm_year+1900, now->tm_mon+1, now->tm_mday, now->tm_hour, now->tm_min, now->tm_sec); if (datebook_version) { /* Calendar supports categories and locations */ utf = charset_p2newj(dbook_app_info.category.name[mcale->attrib & 0x0F], 16, char_set); str_to_ical_str(text, sizeof(text), utf); fprintf(out, "CATEGORIES:%s"CRLF, text); g_free(utf); if (mcale->cale.location) { str_to_ical_str(text, sizeof(text), mcale->cale.location); fprintf(out, "LOCATION:%s"CRLF, text); } } /* Create truncated description for use in SUMMARY field */ if (mcale->cale.description) { g_strlcpy(text, mcale->cale.description, 51); /* truncate the string on a UTF-8 character boundary */ if (char_set > CHAR_SET_UTF) { if (!g_utf8_validate(text, -1, (const gchar **)&end)) *end = 0; } } else { /* Handle pathological case with null description. */ text[0] = '\0'; } if ((p = strchr(text, '\n'))) { *p = '\0'; } str_to_ical_str(csv_text, sizeof(csv_text), text); fprintf(out, "SUMMARY:%s%s"CRLF, csv_text, strlen(text) > 49 ? "..." : ""); str_to_ical_str(csv_text, sizeof(csv_text), mcale->cale.description); fprintf(out, "DESCRIPTION:%s", csv_text); if (mcale->cale.note && mcale->cale.note[0]) { str_to_ical_str(csv_text, sizeof(csv_text), mcale->cale.note); fprintf(out, "\\n"CRLF" %s"CRLF, csv_text); } else { fprintf(out, CRLF); } if (mcale->cale.event) { fprintf(out, "DTSTART;VALUE=DATE:%04d%02d%02d"CRLF, mcale->cale.begin.tm_year+1900, mcale->cale.begin.tm_mon+1, mcale->cale.begin.tm_mday); /* XXX unclear: can "event" span multiple days? */ /* since DTEND is "noninclusive", should this be the next day? */ if (mcale->cale.end.tm_year != mcale->cale.begin.tm_year || mcale->cale.end.tm_mon != mcale->cale.begin.tm_mon || mcale->cale.end.tm_mday != mcale->cale.begin.tm_mday) { fprintf(out, "DTEND;VALUE=DATE:%04d%02d%02d"CRLF, mcale->cale.end.tm_year+1900, mcale->cale.end.tm_mon+1, mcale->cale.end.tm_mday); } } else { /* * These are "local" times, so will be treated as being in * the other person's timezone when they are imported. This * may or may not be what is desired. (DateBk calls this * "all time zones"). * * DateBk timezones could help us decide what to do here. * * When using DateBk timezones, we could write them out * as iCalendar timezones. * * Maybe the default should be to write an absolute (UTC) time, * and only write a "local" time when using DateBk and it says to. * It'd be interesting to see if repeated events get translated * properly when doing this, or if they become not eligible for * daylight savings. This probably depends on the importing * application. */ fprintf(out, "DTSTART:%04d%02d%02dT%02d%02d00"CRLF, mcale->cale.begin.tm_year+1900, mcale->cale.begin.tm_mon+1, mcale->cale.begin.tm_mday, mcale->cale.begin.tm_hour, mcale->cale.begin.tm_min); fprintf(out, "DTEND:%04d%02d%02dT%02d%02d00"CRLF, mcale->cale.end.tm_year+1900, mcale->cale.end.tm_mon+1, mcale->cale.end.tm_mday, mcale->cale.end.tm_hour, mcale->cale.end.tm_min); } if (mcale->cale.repeatType != calendarRepeatNone) { int wcomma, rptday; char *wday[] = {"SU","MO","TU","WE","TH","FR","SA"}; fprintf(out, "RRULE:FREQ="); switch (mcale->cale.repeatType) { case calendarRepeatNone: /* can't happen, just here to silence compiler warning */ break; case calendarRepeatDaily: fprintf(out, "DAILY"); break; case calendarRepeatWeekly: fprintf(out, "WEEKLY;BYDAY="); wcomma=0; for (i=0; i<7; i++) { if (mcale->cale.repeatDays[i]) { if (wcomma) { fprintf(out, ","); } wcomma = 1; fprintf(out, "%s", wday[i]); } } break; case calendarRepeatMonthlyByDay: rptday = (mcale->cale.repeatDay / 7) + 1; fprintf(out, "MONTHLY;BYDAY=%d%s", rptday == 5 ? -1 : rptday, wday[mcale->cale.repeatDay % 7]); break; case calendarRepeatMonthlyByDate: fprintf(out, "MONTHLY;BYMONTHDAY=%d", mcale->cale.begin.tm_mday); break; case calendarRepeatYearly: fprintf(out, "YEARLY"); break; } if (mcale->cale.repeatFrequency != 1) { if (mcale->cale.repeatType == calendarRepeatWeekly && mcale->cale.repeatWeekstart >= 0 && mcale->cale.repeatWeekstart < 7) { fprintf(out, CRLF" "); /* Weekly repeats can exceed RFC line length */ fprintf(out, ";WKST=%s", wday[mcale->cale.repeatWeekstart]); } fprintf(out, ";INTERVAL=%d", mcale->cale.repeatFrequency); } if (!mcale->cale.repeatForever) { /* RFC 5445, which supercedes RFC 2445, specifies that dates * are inclusive of the last event. This clears up confusion * in the earlier specification and means that Jpilot no longer * needs to add +1day to the end of repeating events. */ memset(&ical_time, 0, sizeof(ical_time)); ical_time.tm_year = mcale->cale.repeatEnd.tm_year; ical_time.tm_mon = mcale->cale.repeatEnd.tm_mon; ical_time.tm_mday = mcale->cale.repeatEnd.tm_mday; ical_time.tm_isdst= -1; mktime(&ical_time); fprintf(out, ";UNTIL=%04d%02d%02d", ical_time.tm_year+1900, ical_time.tm_mon+1, ical_time.tm_mday); } fprintf(out, CRLF); if (mcale->cale.exceptions > 0) { for (i=0; icale.exceptions; i++) { fprintf(out, "EXDATE;VALUE=DATE:%04d%02d%02d"CRLF, mcale->cale.exception[i].tm_year+1900, mcale->cale.exception[i].tm_mon+1, mcale->cale.exception[i].tm_mday); } } } if (mcale->cale.alarm) { char *units; fprintf(out, "BEGIN:VALARM"CRLF); fprintf(out, "ACTION:DISPLAY"CRLF); str_to_ical_str(csv_text, sizeof(csv_text), mcale->cale.description); fprintf(out, "DESCRIPTION:%s"CRLF, csv_text); switch (mcale->cale.advanceUnits) { case advMinutes: units = "M"; break; case advHours: units = "H"; break; case advDays: units = "D"; break; default: /* XXX */ units = "?"; break; } fprintf(out, "TRIGGER:-PT%d%s"CRLF, mcale->cale.advance, units); fprintf(out, "END:VALARM"CRLF); } fprintf(out, "END:VEVENT"CRLF); if (temp_list->next == NULL) { fprintf(out, "END:VCALENDAR"CRLF); } break; default: jp_logf(JP_LOG_WARN, _("Unknown export type\n")); dialog_generic_ok(notebook, _("Error"), DIALOG_ERROR, _("Unknown export type")); } } free_CalendarEventList(&cel); if (out) { fclose(out); } } /*************** Start Export GUI ***************/ int datebook_export(GtkWidget *window) { int x, y; gdk_window_get_root_origin(window->window, &x, &y); x+=40; datebook_export_gui(window, x, y); return EXIT_SUCCESS; } static gboolean cb_export_destroy(GtkWidget *widget) { const char *filename; filename = gtk_entry_get_text(GTK_ENTRY(save_as_entry)); set_pref(PREF_DATEBOOK_EXPORT_FILENAME, 0, filename, TRUE); gtk_main_quit(); return FALSE; } static void cb_ok(GtkWidget *widget, gpointer data) { const char *filename; filename = gtk_entry_get_text(GTK_ENTRY(save_as_entry)); appt_export_ok(glob_export_type, filename); gtk_widget_destroy(data); } static void cb_export_browse(GtkWidget *widget, gpointer data) { int r; const char *svalue; r = export_browse(GTK_WIDGET(data), PREF_DATEBOOK_EXPORT_FILENAME); if (r==BROWSE_OK) { get_pref(PREF_DATEBOOK_EXPORT_FILENAME, NULL, &svalue); gtk_entry_set_text(GTK_ENTRY(save_as_entry), svalue); } } static void cb_export_quit(GtkWidget *widget, gpointer data) { gtk_widget_destroy(data); } static void cb_export_type(GtkWidget *widget, gpointer data) { glob_export_type=GPOINTER_TO_INT(data); } static int datebook_export_gui(GtkWidget *main_window, int x, int y) { GtkWidget *button; GtkWidget *vbox; GtkWidget *hbox; GtkWidget *label; GSList *group; char *type_text[]={N_("Text"), N_("CSV"), N_("iCalendar"), NULL}; int type_int[]={EXPORT_TYPE_TEXT, EXPORT_TYPE_CSV, EXPORT_TYPE_ICALENDAR}; int i; const char *svalue; jp_logf(JP_LOG_DEBUG, "datebook_export_gui()\n"); glob_export_type=EXPORT_TYPE_TEXT; export_window = gtk_widget_new(GTK_TYPE_WINDOW, "type", GTK_WINDOW_TOPLEVEL, "title", _("Export"), NULL); gtk_widget_set_uposition(export_window, x, y); gtk_window_set_modal(GTK_WINDOW(export_window), TRUE); gtk_window_set_transient_for(GTK_WINDOW(export_window), GTK_WINDOW(main_window)); gtk_container_set_border_width(GTK_CONTAINER(export_window), 5); gtk_signal_connect(GTK_OBJECT(export_window), "destroy", GTK_SIGNAL_FUNC(cb_export_destroy), export_window); vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(export_window), vbox); /* Label for instructions */ label = gtk_label_new(_("Export All Datebook Records")); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); /* Export Type Buttons */ group = NULL; for (i=0; iactive) { on=1; } else { on=0; } cat_bit = bit << category; if (on) { datebk_category |= cat_bit; } else { datebk_category &= ~cat_bit; } datebook_update_clist(); } static void cb_datebk_category(GtkWidget *widget, gpointer data) { int i, count; int b; int flag; jp_logf(JP_LOG_DEBUG, "cb_datebk_category\n"); flag=GPOINTER_TO_INT(data); b=dialog_save_changed_record(pane, record_changed); if (b==DIALOG_SAID_2) { cb_add_new_record(NULL, GINT_TO_POINTER(record_changed)); } count=0; for (i=0; i<16; i++) { if (GTK_IS_WIDGET(toggle_button[i])) { if ((GTK_TOGGLE_BUTTON(toggle_button[i])->active) != (flag)) { count++; } } } cb_toggle(NULL, count | 0x4000); for (i=0; i<16; i++) { if (GTK_IS_WIDGET(toggle_button[i])) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle_button[i]), flag); } } if (flag) { datebk_category=0xFFFF; } else { datebk_category=0x0000; } datebook_update_clist(); } static void cb_datebk_cats(GtkWidget *widget, gpointer data) { struct CalendarAppInfo cai; int i; int bit; char title[200]; GtkWidget *table; GtkWidget *button; GtkWidget *vbox, *hbox; long char_set; jp_logf(JP_LOG_DEBUG, "cb_datebk_cats\n"); if (GTK_IS_WINDOW(window_datebk_cats)) { gdk_window_raise(window_datebk_cats->window); jp_logf(JP_LOG_DEBUG, "datebk_cats window is already up\n"); return; } get_calendar_or_datebook_app_info(&cai, 0); window_datebk_cats = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_position(GTK_WINDOW(window_datebk_cats), GTK_WIN_POS_MOUSE); gtk_window_set_modal(GTK_WINDOW(window_datebk_cats), TRUE); gtk_window_set_transient_for(GTK_WINDOW(window_datebk_cats), GTK_WINDOW(gtk_widget_get_toplevel(widget))); gtk_container_set_border_width(GTK_CONTAINER(window_datebk_cats), 10); g_snprintf(title, sizeof(title), "%s %s", PN, _("Datebook Categories")); gtk_window_set_title(GTK_WINDOW(window_datebk_cats), title); gtk_signal_connect(GTK_OBJECT(window_datebk_cats), "destroy", GTK_SIGNAL_FUNC(cb_destroy_datebk_cats), window_datebk_cats); vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(window_datebk_cats), vbox); /* Table */ table = gtk_table_new(8, 2, TRUE); gtk_table_set_row_spacings(GTK_TABLE(table),0); gtk_table_set_col_spacings(GTK_TABLE(table),0); gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); get_pref(PREF_CHAR_SET, &char_set, NULL); for (i=0, bit=1; i<16; i++, bit <<= 1) { if (cai.category.name[i][0]) { char *l; l = charset_p2newj(cai.category.name[i], sizeof(cai.category.name[0]), char_set); toggle_button[i]=gtk_toggle_button_new_with_label(l); g_free(l); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle_button[i]), datebk_category & bit); gtk_table_attach_defaults (GTK_TABLE(table), GTK_WIDGET(toggle_button[i]), (i>7)?1:0, (i>7)?2:1, (i>7)?i-8:i, (i>7)?i-7:i+1); gtk_signal_connect(GTK_OBJECT(toggle_button[i]), "toggled", GTK_SIGNAL_FUNC(cb_toggle), GINT_TO_POINTER(i)); } else { toggle_button[i]=NULL; } } hbox = gtk_hbutton_box_new(); gtk_button_box_set_spacing(GTK_BUTTON_BOX(hbox), 6); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); /* Close button */ button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_quit_datebk_cats), window_datebk_cats); gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); /* All button */ button = gtk_button_new_with_label(_("All")); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_datebk_category), GINT_TO_POINTER(1)); gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); /* None button */ button = gtk_button_new_with_label(_("None")); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_datebk_category), GINT_TO_POINTER(0)); gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); gtk_widget_show_all(window_datebk_cats); } #endif /*** End Datebk3/4 Code ***/ /* Find position of category in sorted category array * via its assigned category number */ static int find_sort_cat_pos(int cat) { int i; for (i=0; itm_mon), &(Pt->tm_mday), &(Pt->tm_year)); } else { r = cal_dialog(GTK_WINDOW(gtk_widget_get_toplevel(widget)), _("End On Date"), fdow, &(Pt->tm_mon), &(Pt->tm_mday), &(Pt->tm_year)); } if (GPOINTER_TO_INT(data) == BEGIN_DATE_BUTTON) { end_date.tm_mon = begin_date.tm_mon; end_date.tm_mday = begin_date.tm_mday; end_date.tm_year = begin_date.tm_year; } if (r==CAL_DONE) { if (Pcheck_button) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Pcheck_button), TRUE); } if (Pbutton) { update_endon_button(Pbutton, Pt); } } } static void cb_weekview(GtkWidget *widget, gpointer data) { struct tm date; memset(&date, 0, sizeof(date)); date.tm_mon=current_month; date.tm_mday=current_day; date.tm_year=current_year; date.tm_sec=0; date.tm_min=0; date.tm_hour=11; date.tm_isdst=-1; mktime(&date); weekview_gui(&date); } static void init(void) { time_t ltime; struct tm *now; struct tm next_tm; int next_found; CalendarEventList *ce_list; CalendarEventList *temp_cel; #ifdef ENABLE_DATEBK long use_db3_tags; #endif #ifdef ENABLE_DATEBK get_pref(PREF_USE_DB3, &use_db3_tags, NULL); if (use_db3_tags) { DB_APPT_COLUMN=4; } else { DB_APPT_COLUMN=3; } #endif time(<ime); now = localtime(<ime); current_day = now->tm_mday; current_month = now->tm_mon; current_year = now->tm_year; memcpy(&glob_endon_day_tm, now, sizeof(glob_endon_day_tm)); memcpy(&glob_endon_week_tm, now, sizeof(glob_endon_week_tm)); memcpy(&glob_endon_mon_tm, now, sizeof(glob_endon_mon_tm)); memcpy(&glob_endon_year_tm, now, sizeof(glob_endon_year_tm)); if (glob_find_id) { jp_logf(JP_LOG_DEBUG, "init() glob_find_id = %d\n", glob_find_id); /* Search appointments for this id to get its date */ ce_list = NULL; get_days_calendar_events2(&ce_list, NULL, 1, 1, 1, CATEGORY_ALL, NULL); for (temp_cel = ce_list; temp_cel; temp_cel=temp_cel->next) { if (temp_cel->mcale.unique_id == glob_find_id) { jp_logf(JP_LOG_DEBUG, "init() found glob_find_id\n"); /* Position calendar on the actual event * or the next future occurrence * depending on which is closest to the current date */ if (temp_cel->mcale.cale.repeatType == calendarRepeatNone) { next_found = 0; } else { next_found = find_next_rpt_event(&(temp_cel->mcale.cale), now, &next_tm); } if (!next_found) { current_month = temp_cel->mcale.cale.begin.tm_mon; current_day = temp_cel->mcale.cale.begin.tm_mday; current_year = temp_cel->mcale.cale.begin.tm_year; } else { current_month = next_tm.tm_mon; current_day = next_tm.tm_mday; current_year = next_tm.tm_year; } } } free_CalendarEventList(&ce_list); } clist_row_selected=0; record_changed=CLEAR_FLAG; } static int dialog_4_or_last(int dow) { char *days[]={ N_("Sunday"), N_("Monday"), N_("Tuesday"), N_("Wednesday"), N_("Thursday"), N_("Friday"), N_("Saturday") }; char text[255]; char *button_text[]={N_("4th"), N_("Last")}; sprintf(text, _("This appointment can either\n" "repeat on the 4th %s\n" "of the month, or on the last\n" "%s of the month.\n" "Which do you want?"), _(days[dow]), _(days[dow])); return dialog_generic(GTK_WINDOW(gtk_widget_get_toplevel(scrolled_window)), _("Question?"), DIALOG_QUESTION, text, 2, button_text); } static int dialog_current_future_all_cancel(void) { char text[]= N_("This is a repeating event.\n" "Do you want to apply these changes to\n" "only the CURRENT event,\n" "just FUTURE events, or\n" "ALL of the occurrences of this event?"); char *button_text[]={ N_("Current"), N_("Future"), N_("All"), N_("Cancel") }; return dialog_generic(GTK_WINDOW(gtk_widget_get_toplevel(scrolled_window)), _("Question?"), DIALOG_QUESTION, _(text), 4, button_text); } #ifdef EASTER static int dialog_easter(int mday) { char text[255]; char who[50]; char *button_text[]={"I'll send a present!!!"}; if (mday==29) { strcpy(who, "Judd Montgomery"); } if (mday==20) { strcpy(who, "Jacki Montgomery"); } sprintf(text, "Today is\n" "%s\'s\n" "Birthday!\n", who); return dialog_generic(GTK_WINDOW(gtk_widget_get_toplevel(scrolled_window)), "Happy Birthday to Me!", DIALOG_INFO, text, 1, button_text); } #endif /* End of Dialog window code */ /* month = 0-11 */ /* dom = day of month 1-31 */ /* year = calendar year - 1900 */ /* dow = day of week 0-6, where 0=Sunday, etc. */ /* */ /* Returns an enum from DayOfMonthType defined in pi-datebook.h */ static long get_dom_type(int month, int dom, int year, int dow) { long r; int ndim; /* ndim = number of days in month 28-31 */ int dow_fdof; /* Day of the week for the first day of the month */ int result; r=((int)((dom-1)/7))*7 + dow; /* If its the 5th occurrence of this dow in the month then it is always * going to be the last occurrence of that dow in the month. * Sometimes this will occur in the 4th week, sometimes in the 5th. * If its the 4th occurrence of this dow in the month and there is a 5th * then it always the 4th occurrence. * If its the 4th occurrence of this dow in the month and there is not a * 5th then we need to ask if this appointment repeats on the last dow of * the month, or the 4th dow of every month. * This should be perfectly clear now, right? */ /* These are the last 2 lines of the DayOfMonthType enum: */ /* dom4thSun, dom4thMon, dom4thTue, dom4thWen, dom4thThu, dom4thFri, dom4thSat */ /* domLastSun, domLastMon, domLastTue, domLastWen, domLastThu, domLastFri, domLastSat */ if ((r>=dom4thSun) && (r<=dom4thSat)) { get_month_info(month, dom, year, &dow_fdof, &ndim); if ((ndim - dom < 7)) { /* This is the 4th dow, and there is no 5th in this month. */ result = dialog_4_or_last(dow); /* If they want it to be the last dow in the month instead of the */ /* 4th, then we need to add 7. */ if (result == DIALOG_SAID_LAST) { r += 7; } } } return r; } /* flag UPDATE_DATE_ENTRY is to set entry fields * flag UPDATE_DATE_MENUS is to set menu items */ static void set_begin_end_labels(struct tm *begin, struct tm *end, int flags) { char str[255]; char time1_str[255]; char time2_str[255]; char pref_time[40]; const char *pref_date; str[0]='\0'; get_pref(PREF_SHORTDATE, NULL, &pref_date); strftime(str, sizeof(str), pref_date, begin); gtk_label_set_text(GTK_LABEL(GTK_BIN(begin_date_button)->child), str); if (flags & UPDATE_DATE_ENTRIES) { if (GTK_TOGGLE_BUTTON(radio_button_no_time)->active) { gtk_entry_set_text(GTK_ENTRY(begin_time_entry), ""); gtk_entry_set_text(GTK_ENTRY(end_time_entry), ""); } else { get_pref_time_no_secs(pref_time); jp_strftime(time1_str, sizeof(time1_str), pref_time, begin); jp_strftime(time2_str, sizeof(time2_str), pref_time, end); gtk_entry_set_text(GTK_ENTRY(begin_time_entry), time1_str); gtk_entry_set_text(GTK_ENTRY(end_time_entry), time2_str); } } if (flags & UPDATE_DATE_MENUS) { gtk_option_menu_set_history(GTK_OPTION_MENU(option1), begin_date.tm_hour); gtk_option_menu_set_history(GTK_OPTION_MENU(option2), begin_date.tm_min/5); gtk_option_menu_set_history(GTK_OPTION_MENU(option3), end_date.tm_hour); gtk_option_menu_set_history(GTK_OPTION_MENU(option4), end_date.tm_min/5); } } static void clear_begin_end_labels(void) { begin_date.tm_mon = current_month; begin_date.tm_mday = current_day; begin_date.tm_year = current_year; begin_date.tm_hour = 8; begin_date.tm_min = 0; begin_date.tm_sec = 0; begin_date.tm_isdst = -1; end_date.tm_mon = current_month; end_date.tm_mday = current_day; end_date.tm_year = current_year; end_date.tm_hour = 9; end_date.tm_min = 0; end_date.tm_sec = 0; end_date.tm_isdst = -1; set_begin_end_labels(&begin_date, &end_date, UPDATE_DATE_ENTRIES | UPDATE_DATE_MENUS); } static void appt_clear_details(void) { int i; struct tm today; int new_cat; int sorted_position; #ifdef ENABLE_DATEBK long use_db3_tags; #endif connect_changed_signals(DISCONNECT_SIGNALS); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button_alarm), FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio_button_no_time), TRUE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(private_checkbox), FALSE); clear_begin_end_labels(); gtk_text_buffer_set_text(GTK_TEXT_BUFFER(dbook_desc_buffer), "", -1); gtk_text_buffer_set_text(GTK_TEXT_BUFFER(dbook_note_buffer), "", -1); #ifdef ENABLE_DATEBK get_pref(PREF_USE_DB3, &use_db3_tags, NULL); if (use_db3_tags) { gtk_entry_set_text(GTK_ENTRY(datebk_entry), ""); } #endif if (datebook_version) { /* Calendar has a location field */ gtk_entry_set_text(GTK_ENTRY(location_entry), ""); } /* Clear the notebook pages */ gtk_notebook_set_page(GTK_NOTEBOOK(notebook), PAGE_NONE); gtk_entry_set_text(GTK_ENTRY(units_entry), "5"); gtk_entry_set_text(GTK_ENTRY(repeat_day_entry), "1"); gtk_entry_set_text(GTK_ENTRY(repeat_week_entry), "1"); gtk_entry_set_text(GTK_ENTRY(repeat_mon_entry), "1"); gtk_entry_set_text(GTK_ENTRY(repeat_year_entry), "1"); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button_day_endon), FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button_week_endon), FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button_mon_endon), FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button_year_endon), FALSE); for(i=0; i<7; i++) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle_button_repeat_days[i]), FALSE); } gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle_button_repeat_mon_bydate), TRUE); memset(&today, 0, sizeof(today)); today.tm_year = current_year; today.tm_mon = current_month; today.tm_mday = current_day; today.tm_hour = 12; today.tm_min = 0; mktime(&today); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle_button_repeat_days[today.tm_wday]), TRUE); memcpy(&glob_endon_day_tm, &today, sizeof(glob_endon_day_tm)); memcpy(&glob_endon_week_tm, &today, sizeof(glob_endon_week_tm)); memcpy(&glob_endon_mon_tm, &today, sizeof(glob_endon_mon_tm)); memcpy(&glob_endon_year_tm, &today, sizeof(glob_endon_year_tm)); if (datebook_version) { /* Calendar supports categories */ if (dbook_category==CATEGORY_ALL) { new_cat = 0; } else { new_cat = dbook_category; } sorted_position = find_sort_cat_pos(new_cat); if (sorted_position<0) { jp_logf(JP_LOG_WARN, _("Category is not legal\n")); } else { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(dbook_cat_menu_item2[sorted_position]), TRUE); gtk_option_menu_set_history(GTK_OPTION_MENU(category_menu2), find_menu_cat_pos(sorted_position)); } } connect_changed_signals(CONNECT_SIGNALS); } /* TODO rename */ static int appt_get_details(struct CalendarEvent *cale, unsigned char *attrib) { int i; time_t ltime, ltime2; char str[30]; gint page; int total_repeat_days; char datef[32]; const char *svalue1, *svalue2; const gchar *text1; GtkTextIter start_iter; GtkTextIter end_iter; #ifdef ENABLE_DATEBK gchar *datebk_note_text=NULL; gchar *text2; long use_db3_tags; char null_str[]=""; #endif const char *period[] = { N_("None"), N_("day"), N_("week"), N_("month"), N_("year") }; #ifdef ENABLE_DATEBK get_pref(PREF_USE_DB3, &use_db3_tags, NULL); #endif memset(cale, 0, sizeof(*cale)); *attrib = 0; if (datebook_version) { /* Calendar supports categories */ /* Get the category that is set from the menu */ for (i=0; iactive) { *attrib = sort_l[i].cat_num; break; } } } } time(<ime); localtime(<ime); total_repeat_days=0; /* The first day of the week */ /* I always use 0, Sunday is always 0 in this code */ cale->repeatWeekstart=0; cale->exceptions = 0; cale->exception = NULL; /* daylight savings flag */ cale->end.tm_isdst=cale->begin.tm_isdst=-1; /* Begin time */ cale->begin.tm_mon = begin_date.tm_mon; cale->begin.tm_mday = begin_date.tm_mday; cale->begin.tm_year = begin_date.tm_year; cale->begin.tm_hour = begin_date.tm_hour; cale->begin.tm_min = begin_date.tm_min; cale->begin.tm_sec = 0; /* End time */ cale->end.tm_mon = end_date.tm_mon; cale->end.tm_mday = end_date.tm_mday; cale->end.tm_year = end_date.tm_year; cale->end.tm_hour = end_date.tm_hour; cale->end.tm_min = end_date.tm_min; cale->end.tm_sec = 0; if (GTK_TOGGLE_BUTTON(radio_button_no_time)->active) { cale->event=1; /* This event doesn't have a time */ cale->begin.tm_hour = 0; cale->begin.tm_min = 0; cale->begin.tm_sec = 0; cale->end.tm_hour = 0; cale->end.tm_min = 0; cale->end.tm_sec = 0; } else { cale->event=0; } ltime = mktime(&cale->begin); ltime2 = mktime(&cale->end); /* Datebook does not support events spanning midnight where the beginning time is greater than the ending time */ if (datebook_version == 0) { if (ltime > ltime2) { memcpy(&(cale->end), &(cale->begin), sizeof(struct tm)); } } if (GTK_TOGGLE_BUTTON(check_button_alarm)->active) { cale->alarm = 1; text1 = gtk_entry_get_text(GTK_ENTRY(units_entry)); cale->advance=atoi(text1); jp_logf(JP_LOG_DEBUG, "alarm advance %d", cale->advance); if (GTK_TOGGLE_BUTTON(radio_button_alarm_min)->active) { cale->advanceUnits = advMinutes; jp_logf(JP_LOG_DEBUG, "min\n"); } if (GTK_TOGGLE_BUTTON(radio_button_alarm_hour)->active) { cale->advanceUnits = advHours; jp_logf(JP_LOG_DEBUG, "hour\n"); } if (GTK_TOGGLE_BUTTON(radio_button_alarm_day)->active) { cale->advanceUnits = advDays; jp_logf(JP_LOG_DEBUG, "day\n"); } } else { cale->alarm = 0; } page = gtk_notebook_get_current_page(GTK_NOTEBOOK(notebook)); cale->repeatEnd.tm_hour = 0; cale->repeatEnd.tm_min = 0; cale->repeatEnd.tm_sec = 0; cale->repeatEnd.tm_isdst= -1; switch (page) { case PAGE_NONE: cale->repeatType=calendarRepeatNone; jp_logf(JP_LOG_DEBUG, "no repeat\n"); break; case PAGE_DAY: cale->repeatType=calendarRepeatDaily; text1 = gtk_entry_get_text(GTK_ENTRY(repeat_day_entry)); cale->repeatFrequency = atoi(text1); jp_logf(JP_LOG_DEBUG, "every %d day(s)\n", cale->repeatFrequency); if (GTK_TOGGLE_BUTTON(check_button_day_endon)->active) { cale->repeatForever=0; jp_logf(JP_LOG_DEBUG, "end on day\n"); cale->repeatEnd.tm_mon = glob_endon_day_tm.tm_mon; cale->repeatEnd.tm_mday = glob_endon_day_tm.tm_mday; cale->repeatEnd.tm_year = glob_endon_day_tm.tm_year; cale->repeatEnd.tm_isdst = -1; mktime(&cale->repeatEnd); } else { cale->repeatForever=1; } break; case PAGE_WEEK: cale->repeatType=calendarRepeatWeekly; text1 = gtk_entry_get_text(GTK_ENTRY(repeat_week_entry)); cale->repeatFrequency = atoi(text1); jp_logf(JP_LOG_DEBUG, "every %d week(s)\n", cale->repeatFrequency); if (GTK_TOGGLE_BUTTON(check_button_week_endon)->active) { cale->repeatForever=0; jp_logf(JP_LOG_DEBUG, "end on week\n"); cale->repeatEnd.tm_mon = glob_endon_week_tm.tm_mon; cale->repeatEnd.tm_mday = glob_endon_week_tm.tm_mday; cale->repeatEnd.tm_year = glob_endon_week_tm.tm_year; cale->repeatEnd.tm_isdst = -1; mktime(&cale->repeatEnd); get_pref(PREF_SHORTDATE, NULL, &svalue1); get_pref(PREF_TIME, NULL, &svalue2); if ((svalue1==NULL) || (svalue2==NULL)) { strcpy(datef, "%x %X"); } else { sprintf(datef, "%s %s", svalue1, svalue2); } strftime(str, sizeof(str), datef, &cale->repeatEnd); jp_logf(JP_LOG_DEBUG, "repeat_end time = %s\n", str); } else { cale->repeatForever=1; } jp_logf(JP_LOG_DEBUG, "Repeat Days:"); cale->repeatWeekstart = 0; /* We are going to always use 0 */ for (i=0; i<7; i++) { cale->repeatDays[i]=(GTK_TOGGLE_BUTTON(toggle_button_repeat_days[i])->active); total_repeat_days += cale->repeatDays[i]; } jp_logf(JP_LOG_DEBUG, "\n"); break; case PAGE_MONTH: text1 = gtk_entry_get_text(GTK_ENTRY(repeat_mon_entry)); cale->repeatFrequency = atoi(text1); jp_logf(JP_LOG_DEBUG, "every %d month(s)\n", cale->repeatFrequency); if (GTK_TOGGLE_BUTTON(check_button_mon_endon)->active) { cale->repeatForever=0; jp_logf(JP_LOG_DEBUG, "end on month\n"); cale->repeatEnd.tm_mon = glob_endon_mon_tm.tm_mon; cale->repeatEnd.tm_mday = glob_endon_mon_tm.tm_mday; cale->repeatEnd.tm_year = glob_endon_mon_tm.tm_year; cale->repeatEnd.tm_isdst = -1; mktime(&cale->repeatEnd); get_pref(PREF_SHORTDATE, NULL, &svalue1); get_pref(PREF_TIME, NULL, &svalue2); if ((svalue1==NULL) || (svalue2==NULL)) { strcpy(datef, "%x %X"); } else { sprintf(datef, "%s %s", svalue1, svalue2); } strftime(str, sizeof(str), datef, &cale->repeatEnd); jp_logf(JP_LOG_DEBUG, "repeat_end time = %s\n", str); } else { cale->repeatForever=1; } if (GTK_TOGGLE_BUTTON(toggle_button_repeat_mon_byday)->active) { cale->repeatType=calendarRepeatMonthlyByDay; cale->repeatDay = get_dom_type(cale->begin.tm_mon, cale->begin.tm_mday, cale->begin.tm_year, cale->begin.tm_wday); jp_logf(JP_LOG_DEBUG, "***by day\n"); } if (GTK_TOGGLE_BUTTON(toggle_button_repeat_mon_bydate)->active) { cale->repeatType=calendarRepeatMonthlyByDate; jp_logf(JP_LOG_DEBUG, "***by date\n"); } break; case PAGE_YEAR: cale->repeatType=calendarRepeatYearly; text1 = gtk_entry_get_text(GTK_ENTRY(repeat_year_entry)); cale->repeatFrequency = atoi(text1); jp_logf(JP_LOG_DEBUG, "every %s year(s)\n", cale->repeatFrequency); if (GTK_TOGGLE_BUTTON(check_button_year_endon)->active) { cale->repeatForever=0; jp_logf(JP_LOG_DEBUG, "end on year\n"); cale->repeatEnd.tm_mon = glob_endon_year_tm.tm_mon; cale->repeatEnd.tm_mday = glob_endon_year_tm.tm_mday; cale->repeatEnd.tm_year = glob_endon_year_tm.tm_year; cale->repeatEnd.tm_isdst = -1; mktime(&cale->repeatEnd); get_pref(PREF_SHORTDATE, NULL, &svalue1); get_pref(PREF_TIME, NULL, &svalue2); if ((svalue1==NULL) || (svalue2==NULL)) { strcpy(datef, "%x %X"); } else { sprintf(datef, "%s %s", svalue1, svalue2); } str[0]='\0'; strftime(str, sizeof(str), datef, &cale->repeatEnd); jp_logf(JP_LOG_DEBUG, "repeat_end time = %s\n", str); } else { cale->repeatForever=1; } break; } gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(dbook_desc_buffer),&start_iter,&end_iter); cale->description = gtk_text_buffer_get_text(GTK_TEXT_BUFFER(dbook_desc_buffer),&start_iter,&end_iter,TRUE); /* Empty appointment descriptions crash PalmOS 2.0, but are fine in * later versions */ if (cale->description[0]=='\0') { free(cale->description); cale->description=strdup(" "); } if (strlen(cale->description)+1 > MAX_DESC_LEN) { cale->description[MAX_DESC_LEN+1]='\0'; jp_logf(JP_LOG_WARN, _("Appointment description text > %d, truncating to %d\n"), MAX_DESC_LEN, MAX_DESC_LEN); } if (cale->description) { jp_logf(JP_LOG_DEBUG, "description=[%s]\n", cale->description); } #ifdef ENABLE_DATEBK if (use_db3_tags) { text1 = gtk_entry_get_text(GTK_ENTRY(datebk_entry)); gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(dbook_note_buffer),&start_iter,&end_iter); text2 = gtk_text_buffer_get_text(GTK_TEXT_BUFFER(dbook_note_buffer),&start_iter,&end_iter,TRUE); if (!text1) text1=null_str; if (!text2) text2=null_str; /* 8 extra characters is just being paranoid */ datebk_note_text=malloc(strlen(text1) + strlen(text2) + 8); datebk_note_text[0]='\0'; cale->note=datebk_note_text; if ((text1) && (text1[0])) { strcpy(datebk_note_text, text1); strcat(datebk_note_text, "\n"); } strcat(datebk_note_text, text2); } else { gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(dbook_note_buffer),&start_iter,&end_iter); cale->note = gtk_text_buffer_get_text(GTK_TEXT_BUFFER(dbook_note_buffer),&start_iter,&end_iter,TRUE); } #else /* Datebk #ifdef */ gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(dbook_note_buffer),&start_iter,&end_iter); cale->note = gtk_text_buffer_get_text(GTK_TEXT_BUFFER(dbook_note_buffer),&start_iter,&end_iter,TRUE); #endif /* Datebk #ifdef */ if (cale->note[0]=='\0') { free(cale->note); cale->note=NULL; } if (cale->note) { jp_logf(JP_LOG_DEBUG, "text note=[%s]\n", cale->note); } if (datebook_version) { cale->location = strdup(gtk_entry_get_text(GTK_ENTRY(location_entry))); if (cale->location[0]=='\0') { free(cale->location); cale->location=NULL; } if (cale->location) { jp_logf(JP_LOG_DEBUG, "text location=[%s]\n", cale->location); } } else { cale->location=NULL; } /* We won't allow a repeat frequency of less than 1 */ if ((page != PAGE_NONE) && (cale->repeatFrequency < 1)) { char str[200]; jp_logf(JP_LOG_WARN, _("You cannot have an appointment that repeats every %d %s(s)\n"), cale->repeatFrequency, _(period[page])); g_snprintf(str, sizeof(str), _("You cannot have an appointment that repeats every %d %s(s)\n"), cale->repeatFrequency, _(period[page])); dialog_generic_ok(notebook, _("Error"), DIALOG_ERROR, str); cale->repeatFrequency = 1; return EXIT_FAILURE; } /* We won't allow a weekly repeating that doesn't repeat on any day */ if ((page == PAGE_WEEK) && (total_repeat_days == 0)) { dialog_generic_ok(notebook, _("Error"), DIALOG_ERROR, _("You cannot have a weekly repeating appointment that doesn't repeat on any day of the week.")); return EXIT_FAILURE; } if (GTK_TOGGLE_BUTTON(private_checkbox)->active) { *attrib |= dlpRecAttrSecret; } return EXIT_SUCCESS; } static void update_endon_button(GtkWidget *button, struct tm *t) { const char *short_date; char str[255]; get_pref(PREF_SHORTDATE, NULL, &short_date); strftime(str, sizeof(str), short_date, t); gtk_label_set_text(GTK_LABEL(GTK_BIN(button)->child), str); } /* Do masking like Palm OS 3.5 */ static void clear_myCalendarEvent(MyCalendarEvent *mcale) { mcale->unique_id=0; mcale->attrib=mcale->attrib & 0xF8; mcale->cale.event = 1; mcale->cale.alarm = 0; mcale->cale.repeatType = calendarRepeatNone; memset(&mcale->cale.begin, 0, sizeof(struct tm)); memset(&mcale->cale.end, 0, sizeof(struct tm)); if (mcale->cale.location) { free(mcale->cale.location); mcale->cale.location=strdup(""); } if (mcale->cale.description) { free(mcale->cale.description); mcale->cale.description=strdup(""); } if (mcale->cale.note) { free(mcale->cale.note); mcale->cale.note=strdup(""); } /* TODO do we need to clear blob and tz? */ return; } /* End Masking */ static int datebook_update_clist(void) { int num_entries, entries_shown, num; CalendarEventList *temp_cel; gchar *empty_line[] = { "","","","",""}; char begin_time[32]; char end_time[32]; char a_time[sizeof(begin_time)+sizeof(end_time)+1]; char datef[20]; GdkPixmap *pixmap_note; GdkPixmap *pixmap_alarm; GdkBitmap *mask_note; GdkBitmap *mask_alarm; int has_note; #ifdef ENABLE_DATEBK int cat_bit; int db3_type; long use_db3_tags; struct db4_struct db4; GdkPixmap *pixmap_float_check; GdkPixmap *pixmap_float_checked; GdkBitmap *mask_float_check; GdkBitmap *mask_float_checked; #endif struct tm new_time; int show_priv; char str[DATEBOOK_MAX_COLUMN_LEN+2]; char str2[DATEBOOK_MAX_COLUMN_LEN]; long show_tooltips; jp_logf(JP_LOG_DEBUG, "datebook_update_clist()\n"); free_CalendarEventList(&glob_cel); memset(&new_time, 0, sizeof(new_time)); new_time.tm_hour=11; new_time.tm_mday=current_day; new_time.tm_mon=current_month; new_time.tm_year=current_year; new_time.tm_isdst=-1; mktime(&new_time); num = get_days_calendar_events2(&glob_cel, &new_time, 2, 2, 1, CATEGORY_ALL, &num_entries); jp_logf(JP_LOG_DEBUG, "get_days_appointments==>%d\n", num); #ifdef ENABLE_DATEBK jp_logf(JP_LOG_DEBUG, "datebk_category = 0x%x\n", datebk_category); #endif /* Freeze clist to prevent flicker during updating */ gtk_clist_freeze(GTK_CLIST(clist)); gtk_signal_disconnect_by_func(GTK_OBJECT(clist), GTK_SIGNAL_FUNC(cb_clist_selection), NULL); clist_clear(GTK_CLIST(clist)); #ifdef __APPLE__ gtk_clist_thaw(GTK_CLIST(clist)); gtk_widget_hide(clist); gtk_widget_show_all(clist); gtk_clist_freeze(GTK_CLIST(clist)); #endif /* Collect preferences and constant pixmaps for loop */ show_priv = show_privates(GET_PRIVATES); get_pixmaps(scrolled_window, PIXMAP_NOTE, &pixmap_note, &mask_note); get_pixmaps(scrolled_window, PIXMAP_ALARM, &pixmap_alarm, &mask_alarm); #ifdef __APPLE__ mask_note = NULL; mask_alarm = NULL; #endif #ifdef ENABLE_DATEBK get_pref(PREF_USE_DB3, &use_db3_tags, NULL); get_pixmaps(scrolled_window, PIXMAP_FLOAT_CHECK, &pixmap_float_check, &mask_float_check); get_pixmaps(scrolled_window, PIXMAP_FLOAT_CHECKED, &pixmap_float_checked, &mask_float_checked); # ifdef __APPLE__ mask_float_check = NULL; mask_float_checked = NULL; # endif #endif entries_shown=0; for (temp_cel = glob_cel; temp_cel; temp_cel=temp_cel->next) { if (datebook_version) { /* Filter by category for Calendar application */ if ( ((temp_cel->mcale.attrib & 0x0F) != dbook_category) && dbook_category != CATEGORY_ALL) { continue; } } #ifdef ENABLE_DATEBK if (use_db3_tags) { db3_parse_tag(temp_cel->mcale.cale.note, &db3_type, &db4); jp_logf(JP_LOG_DEBUG, "category = 0x%x\n", db4.category); cat_bit=1<mcale.attrib & dlpRecAttrSecret)) { gtk_clist_append(GTK_CLIST(clist), empty_line); gtk_clist_set_text(GTK_CLIST(clist), entries_shown, DB_TIME_COLUMN, "----------"); gtk_clist_set_text(GTK_CLIST(clist), entries_shown, DB_APPT_COLUMN, "---------------"); clear_myCalendarEvent(&temp_cel->mcale); gtk_clist_set_row_data(GTK_CLIST(clist), entries_shown, &(temp_cel->mcale)); gtk_clist_set_row_style(GTK_CLIST(clist), entries_shown, NULL); entries_shown++; continue; } /* End Masking */ /* Hide the private records if need be */ if ((show_priv != SHOW_PRIVATES) && (temp_cel->mcale.attrib & dlpRecAttrSecret)) { continue; } /* Add entry to clist */ gtk_clist_append(GTK_CLIST(clist), empty_line); /* Print the event time */ if (temp_cel->mcale.cale.event) { /* This is a timeless event */ strcpy(a_time, _("No Time")); } else { get_pref_time_no_secs_no_ampm(datef); strftime(begin_time, sizeof(begin_time), datef, &(temp_cel->mcale.cale.begin)); get_pref_time_no_secs(datef); strftime(end_time, sizeof(end_time), datef, &(temp_cel->mcale.cale.end)); g_snprintf(a_time, sizeof(a_time), "%s-%s", begin_time, end_time); } gtk_clist_set_text(GTK_CLIST(clist), entries_shown, DB_TIME_COLUMN, a_time); #ifdef ENABLE_DATEBK if (use_db3_tags) { if (db4.floating_event==DB3_FLOAT) { gtk_clist_set_pixmap(GTK_CLIST(clist), entries_shown, DB_FLOAT_COLUMN, pixmap_float_check, mask_float_check); } if (db4.floating_event==DB3_FLOAT_COMPLETE) { gtk_clist_set_pixmap(GTK_CLIST(clist), entries_shown, DB_FLOAT_COLUMN, pixmap_float_checked, mask_float_checked); } } #endif has_note=0; #ifdef ENABLE_DATEBK if (use_db3_tags) { if (db3_type!=DB3_TAG_TYPE_NONE) { if (db4.note && db4.note[0]!='\0') { has_note = 1; } } else { if (temp_cel->mcale.cale.note && (temp_cel->mcale.cale.note[0]!='\0')) { has_note=1; } } } else { if (temp_cel->mcale.cale.note && (temp_cel->mcale.cale.note[0]!='\0')) { has_note=1; } } #else /* Ordinary, non DateBk code */ if (temp_cel->mcale.cale.note && (temp_cel->mcale.cale.note[0]!='\0')) { has_note=1; } #endif /* Put a note pixmap up */ if (has_note) { gtk_clist_set_pixmap(GTK_CLIST(clist), entries_shown, DB_NOTE_COLUMN, pixmap_note, mask_note); } /* Put an alarm pixmap up */ if (temp_cel->mcale.cale.alarm) { gtk_clist_set_pixmap(GTK_CLIST(clist), entries_shown, DB_ALARM_COLUMN, pixmap_alarm, mask_alarm); } /* Print the appointment description */ lstrncpy_remove_cr_lfs(str2, temp_cel->mcale.cale.description, DATEBOOK_MAX_COLUMN_LEN); /* Append number of anniversary years if enabled & appropriate */ append_anni_years(str2, sizeof(str2), &new_time, NULL, &temp_cel->mcale.cale); gtk_clist_set_text(GTK_CLIST(clist), entries_shown, DB_APPT_COLUMN, str2); gtk_clist_set_row_data(GTK_CLIST(clist), entries_shown, &(temp_cel->mcale)); /* Highlight row background depending on status */ switch (temp_cel->mcale.rt) { case NEW_PC_REC: case REPLACEMENT_PALM_REC: set_bg_rgb_clist_row(clist, entries_shown, CLIST_NEW_RED, CLIST_NEW_GREEN, CLIST_NEW_BLUE); break; case DELETED_PALM_REC: case DELETED_PC_REC: set_bg_rgb_clist_row(clist, entries_shown, CLIST_DEL_RED, CLIST_DEL_GREEN, CLIST_DEL_BLUE); break; case MODIFIED_PALM_REC: set_bg_rgb_clist_row(clist, entries_shown, CLIST_MOD_RED, CLIST_MOD_GREEN, CLIST_MOD_BLUE); break; default: if (temp_cel->mcale.attrib & dlpRecAttrSecret) { set_bg_rgb_clist_row(clist, entries_shown, CLIST_PRIVATE_RED, CLIST_PRIVATE_GREEN, CLIST_PRIVATE_BLUE); } else { gtk_clist_set_row_style(GTK_CLIST(clist), entries_shown, NULL); } } entries_shown++; } gtk_signal_connect(GTK_OBJECT(clist), "select_row", GTK_SIGNAL_FUNC(cb_clist_selection), NULL); /* If there are items in the list, highlight the selected row */ if (entries_shown>0) { /* First, select any record being searched for */ if (glob_find_id) { datebook_find(); } /* Second, try the currently selected row */ else if (clist_row_selected < entries_shown) { clist_select_row(GTK_CLIST(clist), clist_row_selected, 1); if (!gtk_clist_row_is_visible(GTK_CLIST(clist), clist_row_selected)) { gtk_clist_moveto(GTK_CLIST(clist), clist_row_selected, 0, 0.5, 0.0); } } /* Third, select row 0 if nothing else is possible */ else { clist_select_row(GTK_CLIST(clist), 0, 1); } } else { set_new_button_to(CLEAR_FLAG); appt_clear_details(); } gtk_clist_thaw(GTK_CLIST(clist)); get_pref(PREF_SHOW_TOOLTIPS, &show_tooltips, NULL); g_snprintf(str, sizeof(str), _("%d of %d records"), entries_shown, num_entries); set_tooltip(show_tooltips, glob_tooltips, GTK_CLIST(clist)->column[DB_APPT_COLUMN].button, str, NULL); /* return focus to clist after any big operation which requires a redraw */ gtk_widget_grab_focus(GTK_WIDGET(clist)); return EXIT_SUCCESS; } static void set_new_button_to(int new_state) { jp_logf(JP_LOG_DEBUG, "set_new_button_to new %d old %d\n", new_state, record_changed); if (record_changed==new_state) { return; } switch (new_state) { case MODIFY_FLAG: gtk_widget_show(cancel_record_button); gtk_widget_show(copy_record_button); gtk_widget_show(apply_record_button); gtk_widget_hide(add_record_button); gtk_widget_hide(delete_record_button); gtk_widget_hide(new_record_button); gtk_widget_hide(undelete_record_button); break; case NEW_FLAG: gtk_widget_show(cancel_record_button); gtk_widget_show(add_record_button); gtk_widget_hide(apply_record_button); gtk_widget_hide(copy_record_button); gtk_widget_hide(delete_record_button); gtk_widget_hide(new_record_button); gtk_widget_hide(undelete_record_button); break; case CLEAR_FLAG: gtk_widget_show(delete_record_button); gtk_widget_show(copy_record_button); gtk_widget_show(new_record_button); gtk_widget_hide(add_record_button); gtk_widget_hide(apply_record_button); gtk_widget_hide(cancel_record_button); gtk_widget_hide(undelete_record_button); break; case UNDELETE_FLAG: gtk_widget_show(undelete_record_button); gtk_widget_show(copy_record_button); gtk_widget_show(new_record_button); gtk_widget_hide(add_record_button); gtk_widget_hide(apply_record_button); gtk_widget_hide(cancel_record_button); gtk_widget_hide(delete_record_button); break; default: return; } record_changed=new_state; } static gboolean cb_key_pressed_left_side(GtkWidget *widget, GdkEventKey *event, gpointer next_widget) { GtkTextBuffer *text_buffer; GtkTextIter iter; if (event->keyval == GDK_Return) { gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), "key_press_event"); gtk_widget_grab_focus(GTK_WIDGET(next_widget)); /* Position cursor at start of text */ text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(next_widget)); gtk_text_buffer_get_start_iter(text_buffer, &iter); gtk_text_buffer_place_cursor(text_buffer, &iter); return TRUE; } return FALSE; } static gboolean cb_key_pressed_right_side(GtkWidget *widget, GdkEventKey *event, gpointer data) { if ((event->keyval == GDK_Return) && (event->state & GDK_SHIFT_MASK)) { gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), "key_press_event"); /* Call clist_selection to handle any cleanup such as a modified record */ cb_clist_selection(clist, clist_row_selected, 1, GINT_TO_POINTER(1), NULL); gtk_widget_grab_focus(GTK_WIDGET(clist)); return TRUE; } /* Call external editor for note text */ if (data != NULL && (event->keyval == GDK_e) && (event->state & GDK_CONTROL_MASK)) { gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), "key_press_event"); /* Get current text and place in temporary file */ GtkTextIter start_iter; GtkTextIter end_iter; char *text_out; gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(dbook_note_buffer), &start_iter, &end_iter); text_out = gtk_text_buffer_get_text(GTK_TEXT_BUFFER(dbook_note_buffer), &start_iter, &end_iter, TRUE); char tmp_fname[] = "jpilot.XXXXXX"; int tmpfd = mkstemp(tmp_fname); if (tmpfd < 0) { jp_logf(JP_LOG_WARN, _("Could not get temporary file name\n")); if (text_out) free(text_out); return TRUE; } FILE *fptr = fdopen(tmpfd, "w"); if (!fptr) { jp_logf(JP_LOG_WARN, _("Could not open temporary file for external editor\n")); if (text_out) free(text_out); return TRUE; } fwrite(text_out, strlen(text_out), 1, fptr); fwrite("\n", 1, 1, fptr); fclose(fptr); /* Call external editor */ char command[1024]; const char *ext_editor; get_pref(PREF_EXTERNAL_EDITOR, NULL, &ext_editor); if (!ext_editor) { jp_logf(JP_LOG_INFO, "External Editor command empty\n"); if (text_out) free(text_out); return TRUE; } if ((strlen(ext_editor) + strlen(tmp_fname) + 1) > sizeof(command)) { jp_logf(JP_LOG_WARN, _("External editor command too long to execute\n")); if (text_out) free(text_out); return TRUE; } g_snprintf(command, sizeof(command), "%s %s", ext_editor, tmp_fname); /* jp_logf(JP_LOG_STDOUT|JP_LOG_FILE, _("executing command = [%s]\n"), command); */ int r = system(command); if (!r) { /* Read data back from temporary file into memo */ char text_in[0xFFFF]; size_t bytes_read; fptr = fopen(tmp_fname, "rb"); if (!fptr) { jp_logf(JP_LOG_WARN, _("Could not open temporary file from external editor\n")); return TRUE; } bytes_read = fread(text_in, 1, 0xFFFF, fptr); fclose(fptr); unlink(tmp_fname); text_in[--bytes_read] = '\0'; /* Strip final newline */ /* Only update text if it has changed */ if (strcmp(text_out, text_in)) { gtk_text_buffer_set_text(GTK_TEXT_BUFFER(dbook_note_buffer), text_in, -1); } } if (text_out) free(text_out); return TRUE; } /* End of external editor if */ return FALSE; } static void cb_record_changed(GtkWidget *widget, gpointer data) { jp_logf(JP_LOG_DEBUG, "cb_record_changed\n"); if (record_changed==CLEAR_FLAG) { connect_changed_signals(DISCONNECT_SIGNALS); if (GTK_CLIST(clist)->rows > 0) { set_new_button_to(MODIFY_FLAG); } else { set_new_button_to(NEW_FLAG); } } else if (record_changed==UNDELETE_FLAG) { jp_logf(JP_LOG_INFO|JP_LOG_GUI, _("This record is deleted.\n" "Undelete it or copy it to make changes.\n")); } } static void cb_add_new_record(GtkWidget *widget, gpointer data) { MyCalendarEvent *mcale; struct CalendarEvent *cale; struct CalendarEvent new_cale; int flag; int dialog = 0; int r; unsigned char attrib; int show_priv; unsigned int unique_id; time_t t_begin, t_end; struct tm next_tm; int next_found; time_t ltime; struct tm *now; jp_logf(JP_LOG_DEBUG, "cb_add_new_record\n"); flag=GPOINTER_TO_INT(data); mcale=NULL; unique_id=0; /* Do masking like Palm OS 3.5 */ if ((flag==COPY_FLAG) || (flag==MODIFY_FLAG)) { show_priv = show_privates(GET_PRIVATES); mcale = gtk_clist_get_row_data(GTK_CLIST(clist), clist_row_selected); if (mcale < (MyCalendarEvent *)CLIST_MIN_DATA) { return; } if ((show_priv != SHOW_PRIVATES) && (mcale->attrib & dlpRecAttrSecret)) { return; } } /* End Masking */ if (flag==CLEAR_FLAG) { /* Clear button was hit */ appt_clear_details(); connect_changed_signals(DISCONNECT_SIGNALS); set_new_button_to(NEW_FLAG); gtk_widget_grab_focus(GTK_WIDGET(dbook_desc)); return; } if ((flag!=NEW_FLAG) && (flag!=MODIFY_FLAG) && (flag!=COPY_FLAG)) { return; } if (flag==MODIFY_FLAG) { mcale = gtk_clist_get_row_data(GTK_CLIST(clist), clist_row_selected); unique_id = mcale->unique_id; if (mcale < (MyCalendarEvent *)CLIST_MIN_DATA) { return; } if ((mcale->rt==DELETED_PALM_REC) || (mcale->rt==DELETED_PC_REC) || (mcale->rt==MODIFIED_PALM_REC)) { jp_logf(JP_LOG_INFO, _("You can't modify a record that is deleted\n")); return; } } r = appt_get_details(&new_cale, &attrib); if (r != EXIT_SUCCESS) { free_CalendarEvent(&new_cale); return; } /* Validate dates for repeating events */ if (new_cale.repeatType != calendarRepeatNone) { next_found = find_next_rpt_event(&new_cale, &(new_cale.begin), &next_tm); if (next_found) { jp_logf(JP_LOG_DEBUG, "Repeat event begin day shifted from %d to %d\n", new_cale.begin.tm_mday, next_tm.tm_mday); new_cale.begin.tm_year = next_tm.tm_year; new_cale.begin.tm_mon = next_tm.tm_mon; new_cale.begin.tm_mday = next_tm.tm_mday; new_cale.begin.tm_isdst = -1; mktime(&(new_cale.begin)); new_cale.end.tm_year = next_tm.tm_year; new_cale.end.tm_mon = next_tm.tm_mon; new_cale.end.tm_mday = next_tm.tm_mday; new_cale.end.tm_isdst = -1; mktime(&(new_cale.end)); } } if ((new_cale.repeatType != calendarRepeatNone) && (!(new_cale.repeatForever))) { t_begin = mktime_dst_adj(&(new_cale.begin)); t_end = mktime_dst_adj(&(new_cale.repeatEnd)); if (t_begin > t_end) { dialog_generic_ok(notebook, _("Invalid Appointment"), DIALOG_ERROR, _("The End Date of this appointment\nis before the start date.")); free_CalendarEvent(&new_cale); return; } } if ((flag==MODIFY_FLAG) && (new_cale.repeatType != calendarRepeatNone)) { /* We need more user input. Pop up a dialog */ dialog = dialog_current_future_all_cancel(); if (dialog==DIALOG_SAID_RPT_CANCEL) { return; } else if (dialog==DIALOG_SAID_RPT_CURRENT) { /* Create an exception in the appointment */ new_cale.repeatType = calendarRepeatNone; new_cale.begin.tm_year = current_year; new_cale.begin.tm_mon = current_month; new_cale.begin.tm_mday = current_day; new_cale.begin.tm_isdst = -1; mktime(&new_cale.begin); new_cale.repeatType = calendarRepeatNone; new_cale.end.tm_year = current_year; new_cale.end.tm_mon = current_month; new_cale.end.tm_mday = current_day; new_cale.end.tm_isdst = -1; mktime(&new_cale.end); } else if (dialog==DIALOG_SAID_RPT_FUTURE) { /* Change rpt. end date on old appt. to end 1 day before new event*/ mcale->cale.repeatForever = 0; memset(&(mcale->cale.repeatEnd), 0, sizeof(struct tm)); mcale->cale.repeatEnd.tm_mon = current_month; mcale->cale.repeatEnd.tm_mday = current_day - 1; mcale->cale.repeatEnd.tm_year = current_year; mcale->cale.repeatEnd.tm_isdst = -1; mktime(&(mcale->cale.repeatEnd)); /* Create new appt. for future including exceptions from previous event */ new_cale.begin.tm_year = current_year; new_cale.begin.tm_mon = current_month; new_cale.begin.tm_mday = current_day; new_cale.begin.tm_isdst = -1; mktime(&new_cale.begin); new_cale.exception = malloc(mcale->cale.exceptions * sizeof(struct tm)); memcpy(new_cale.exception, mcale->cale.exception, mcale->cale.exceptions * sizeof(struct tm)); new_cale.exceptions = mcale->cale.exceptions; } else if (dialog==DIALOG_SAID_RPT_ALL) { /* Keep the list of exceptions from the original record */ new_cale.exception = malloc(mcale->cale.exceptions * sizeof(struct tm)); memcpy(new_cale.exception, mcale->cale.exception, mcale->cale.exceptions * sizeof(struct tm)); new_cale.exceptions = mcale->cale.exceptions; } } /* TODO - take care of blob and tz? */ set_new_button_to(CLEAR_FLAG); /* New record */ if (flag != MODIFY_FLAG) { unique_id=0; /* Palm will supply unique_id for new record */ pc_calendar_write(&new_cale, NEW_PC_REC, attrib, &unique_id); } if (flag==MODIFY_FLAG) { long char_set; /* Convert to Palm character set */ get_pref(PREF_CHAR_SET, &char_set, NULL); if (char_set != CHAR_SET_LATIN1) { if (mcale->cale.description) charset_j2p(mcale->cale.description, strlen(mcale->cale.description)+1, char_set); if (mcale->cale.note) charset_j2p(mcale->cale.note, strlen(mcale->cale.note)+1, char_set); if (mcale->cale.location) charset_j2p(mcale->cale.location, strlen(mcale->cale.location)+1, char_set); /* TODO blob and tz? */ } if (datebook_version==0) { MyAppointment mappt; mappt.rt=mcale->rt; mappt.unique_id=mcale->unique_id; mappt.attrib=mcale->attrib; copy_calendarEvent_to_appointment(&(mcale->cale), &(mappt.appt)); delete_pc_record(DATEBOOK, &mappt, flag); free_Appointment(&(mappt.appt)); } else { delete_pc_record(CALENDAR, mcale, flag); } /* We need to take care of the 3 options allowed when modifying * repeating appointments */ if (dialog==DIALOG_SAID_RPT_CURRENT) { copy_calendar_event(&(mcale->cale), &cale); /* TODO rename? */ datebook_add_exception(cale, current_year, current_month, current_day); if ((mcale->rt==PALM_REC) || (mcale->rt==REPLACEMENT_PALM_REC)) { /* The original record gets the same ID, this exception gets a new one. */ pc_calendar_write(cale, REPLACEMENT_PALM_REC, attrib, &unique_id); } else { pc_calendar_write(cale, NEW_PC_REC, attrib, NULL); } unique_id = 0; pc_calendar_write(&new_cale, NEW_PC_REC, attrib, &unique_id); free_CalendarEvent(cale); free(cale); } else if (dialog==DIALOG_SAID_RPT_FUTURE) { /* Write old record with rpt. end date */ if ((mcale->rt==PALM_REC) || (mcale->rt==REPLACEMENT_PALM_REC)) { pc_calendar_write(&(mcale->cale), REPLACEMENT_PALM_REC, attrib, &unique_id); } else { unique_id=0; pc_calendar_write(&(mcale->cale), NEW_PC_REC, attrib, &unique_id); } /* Write new record with future rpt. events */ unique_id=0; /* Palm will supply unique_id for new record */ pc_calendar_write(&new_cale, NEW_PC_REC, attrib, &unique_id); } else { if ((mcale->rt==PALM_REC) || (mcale->rt==REPLACEMENT_PALM_REC)) { pc_calendar_write(&new_cale, REPLACEMENT_PALM_REC, attrib, &unique_id); } else { unique_id=0; pc_calendar_write(&new_cale, NEW_PC_REC, attrib, &unique_id); } } } /* Position calendar on the actual event or next future occurrence depending * on what is closest to the current date */ if ((flag!=COPY_FLAG)) { if (new_cale.repeatType == calendarRepeatNone) { memcpy(&next_tm, &(new_cale.begin), sizeof(next_tm)); } else { time(<ime); now = localtime(<ime); next_found = find_next_rpt_event(&new_cale, now, &next_tm); if (!next_found) { memcpy(&next_tm, &(new_cale.begin), sizeof(next_tm)); } } gtk_calendar_freeze(GTK_CALENDAR(main_calendar)); /* Unselect current day before changing to a new month. * This prevents a GTK error when the new month does not have the * same number of days. Example: attempting to switch from * Jan. 31 to Feb. 31 */ gtk_calendar_select_day(GTK_CALENDAR(main_calendar), 0); gtk_calendar_select_month(GTK_CALENDAR(main_calendar), next_tm.tm_mon, next_tm.tm_year+1900); gtk_calendar_select_day(GTK_CALENDAR(main_calendar), next_tm.tm_mday); gtk_calendar_thaw(GTK_CALENDAR(main_calendar)); } free_CalendarEvent(&new_cale); highlight_days(); /* Don't return to modified record if search gui active */ if (!glob_find_id) { glob_find_id = unique_id; } datebook_update_clist(); /* Make sure that the next alarm will go off */ alarms_find_next(NULL, NULL, TRUE); return; } static void cb_delete_appt(GtkWidget *widget, gpointer data) { MyCalendarEvent *mcale; struct CalendarEvent *cale; int flag; int dialog = 0; int show_priv; long char_set; unsigned int *write_unique_id; mcale = gtk_clist_get_row_data(GTK_CLIST(clist), clist_row_selected); if (mcale < (MyCalendarEvent *)CLIST_MIN_DATA) { return; } /* Convert to Palm character set */ get_pref(PREF_CHAR_SET, &char_set, NULL); if (char_set != CHAR_SET_LATIN1) { if (mcale->cale.description) charset_j2p(mcale->cale.description, strlen(mcale->cale.description)+1, char_set); if (mcale->cale.note) charset_j2p(mcale->cale.note, strlen(mcale->cale.note)+1, char_set); if (mcale->cale.location) charset_j2p(mcale->cale.location, strlen(mcale->cale.location)+1, char_set); } /* Do masking like Palm OS 3.5 */ show_priv = show_privates(GET_PRIVATES); if ((show_priv != SHOW_PRIVATES) && (mcale->attrib & dlpRecAttrSecret)) { return; } /* End Masking */ flag = GPOINTER_TO_INT(data); if ((flag!=MODIFY_FLAG) && (flag!=DELETE_FLAG)) { return; } /* We need to take care of the 3 options allowed when modifying */ /* repeating appointments */ write_unique_id = NULL; if (mcale->cale.repeatType != calendarRepeatNone) { /* We need more user input. Pop up a dialog */ dialog = dialog_current_future_all_cancel(); if (dialog==DIALOG_SAID_RPT_CANCEL) { return; } else if (dialog==DIALOG_SAID_RPT_CURRENT) { /* Create an exception in the appointment */ copy_calendar_event(&(mcale->cale), &cale); datebook_add_exception(cale, current_year, current_month, current_day); if ((mcale->rt==PALM_REC) || (mcale->rt==REPLACEMENT_PALM_REC)) { write_unique_id = &(mcale->unique_id); } else { write_unique_id = NULL; } /* Since this was really a modify, and not a delete */ flag=MODIFY_FLAG; } else if (dialog==DIALOG_SAID_RPT_FUTURE) { /* Set an end date on the repeating event to delete future events */ copy_calendar_event(&(mcale->cale), &cale); cale->repeatForever = 0; memset(&(cale->repeatEnd), 0, sizeof(struct tm)); cale->repeatEnd.tm_mon = current_month; cale->repeatEnd.tm_mday = current_day - 1; cale->repeatEnd.tm_year = current_year; cale->repeatEnd.tm_isdst = -1; mktime(&(cale->repeatEnd)); if ((mcale->rt==PALM_REC) || (mcale->rt==REPLACEMENT_PALM_REC)) { write_unique_id = &(mcale->unique_id); } else { write_unique_id = NULL; } } } /* Its important to write a delete record first and then a new/modified * record in that order. This is so that the sync code can check to see * if the remote record is the same as the removed, or changed local * or not before it goes and modifies it. */ if (datebook_version==0) { MyAppointment mappt; mappt.rt=mcale->rt; mappt.unique_id=mcale->unique_id; mappt.attrib=mcale->attrib; copy_calendarEvent_to_appointment(&(mcale->cale), &(mappt.appt)); delete_pc_record(DATEBOOK, &mappt, flag); free_Appointment(&(mappt.appt)); } else { delete_pc_record(CALENDAR, mcale, flag); } if (dialog==DIALOG_SAID_RPT_CURRENT || dialog==DIALOG_SAID_RPT_FUTURE) { pc_calendar_write(cale, REPLACEMENT_PALM_REC, mcale->attrib, write_unique_id); free_CalendarEvent(cale); free(cale); } if (flag==DELETE_FLAG) { /* when we redraw we want to go to the line above the deleted one */ if (clist_row_selected>0) { clist_row_selected--; } } if ((flag == DELETE_FLAG) || (dialog==DIALOG_SAID_RPT_CURRENT)) { datebook_update_clist(); highlight_days(); } } static void cb_undelete_appt(GtkWidget *widget, gpointer data) { MyCalendarEvent *mcale; int flag; int show_priv; mcale = gtk_clist_get_row_data(GTK_CLIST(clist), clist_row_selected); if (mcale < (MyCalendarEvent *)CLIST_MIN_DATA) { return; } /* Do masking like Palm OS 3.5 */ show_priv = show_privates(GET_PRIVATES); if ((show_priv != SHOW_PRIVATES) && (mcale->attrib & dlpRecAttrSecret)) { return; } /* End Masking */ jp_logf(JP_LOG_DEBUG, "mcale->unique_id = %d\n",mcale->unique_id); jp_logf(JP_LOG_DEBUG, "mcale->rt = %d\n",mcale->rt); flag = GPOINTER_TO_INT(data); if (flag==UNDELETE_FLAG) { if (mcale->rt == DELETED_PALM_REC || mcale->rt == DELETED_PC_REC) { if (datebook_version==0) { MyAppointment mappt; mappt.unique_id=mcale->unique_id; undelete_pc_record(DATEBOOK, &mappt, flag); } else { undelete_pc_record(CALENDAR, mcale, flag); } } /* Possible later addition of undelete for modified records else if (mcale->rt == MODIFIED_PALM_REC) { cb_add_new_record(widget, GINT_TO_POINTER(COPY_FLAG)); } */ } datebook_update_clist(); highlight_days(); } static void cb_check_button_alarm(GtkWidget *widget, gpointer data) { if (GTK_TOGGLE_BUTTON(widget)->active) { gtk_widget_show(hbox_alarm2); } else { gtk_widget_hide(hbox_alarm2); } } static void cb_radio_button_no_time(GtkWidget *widget, gpointer data) { /* GTK does not handle nested callbacks well! * When a time is selected from the drop-down menus cb_menu_time * is called. cb_menu_time, in turn, de-selects the notime checkbutton * which causes a signal to be generated which invokes * cb_radio_button_no_time. Finally, both callback routines call * set_begin_end_labels and in that routine is a call which sets the * currently selected item in the gtk_option_menu. This sequence of * events screws up the option menu for the first click. One solution * would be to disable signals in cb_menu_time, de-select the checkbutton, * and then re-enable signals. Given the frequency with which the menus * are used this solution involves too much of a performance hit. * Instead, this routine only updates the entry widgets and the menus * are left alone. Currently(20060111) this produces no difference in * jpilot behavior because the menus have been set to correct values in * other routines. */ /* set_begin_end_labels(&begin_date, &end_date, UPDATE_DATE_ENTRIES | UPDATE_DATE_MENUS); */ set_begin_end_labels(&begin_date, &end_date, UPDATE_DATE_ENTRIES); } static void cb_check_button_endon(GtkWidget *widget, gpointer data) { GtkWidget *Pbutton; struct tm *Pt; switch (GPOINTER_TO_INT(data)) { case PAGE_DAY: Pbutton = glob_endon_day_button; Pt = &glob_endon_day_tm; break; case PAGE_WEEK: Pbutton = glob_endon_week_button; Pt = &glob_endon_week_tm; break; case PAGE_MONTH: Pbutton = glob_endon_mon_button; Pt = &glob_endon_mon_tm; break; case PAGE_YEAR: Pbutton = glob_endon_year_button; Pt = &glob_endon_year_tm; break; default: return; } if (GTK_TOGGLE_BUTTON(widget)->active) { update_endon_button(Pbutton, Pt); } else { gtk_label_set_text(GTK_LABEL(GTK_BIN(Pbutton)->child), _("No Date")); } } static void cb_clist_selection(GtkWidget *clist, gint row, gint column, GdkEventButton *event, gpointer data) { struct CalendarEvent *cale; MyCalendarEvent *mcale; char tempstr[20]; int i, b; int index, sorted_position; unsigned int unique_id = 0; #ifdef ENABLE_DATEBK int type; char *note; int len; long use_db3_tags; #endif #ifdef ENABLE_DATEBK get_pref(PREF_USE_DB3, &use_db3_tags, NULL); #endif if ((record_changed==MODIFY_FLAG) || (record_changed==NEW_FLAG)) { if (clist_row_selected == row) { return; } mcale = gtk_clist_get_row_data(GTK_CLIST(clist), row); if (mcale!=NULL) { unique_id = mcale->unique_id; } b=dialog_save_changed_record_with_cancel(pane, record_changed); if (b==DIALOG_SAID_1) { /* Cancel */ if (clist_row_selected >=0) { clist_select_row(GTK_CLIST(clist), clist_row_selected, 0); } else { clist_row_selected = 0; clist_select_row(GTK_CLIST(clist), 0, 0); } return; } if (b==DIALOG_SAID_3) { /* Save */ cb_add_new_record(NULL, GINT_TO_POINTER(record_changed)); } set_new_button_to(CLEAR_FLAG); if (unique_id) { glob_find_id = unique_id; datebook_find(); } else { clist_select_row(GTK_CLIST(clist), row, column); } return; } clist_row_selected=row; mcale = gtk_clist_get_row_data(GTK_CLIST(clist), row); if (mcale==NULL) { return; } if (mcale->rt == DELETED_PALM_REC || (mcale->rt == DELETED_PC_REC)) /* Possible later addition of undelete code for modified deleted records || mcale->rt == MODIFIED_PALM_REC */ { set_new_button_to(UNDELETE_FLAG); } else { set_new_button_to(CLEAR_FLAG); } connect_changed_signals(DISCONNECT_SIGNALS); cale=&(mcale->cale); if (datebook_version) { /* Calendar supports categories */ index = mcale->attrib & 0x0F; sorted_position = find_sort_cat_pos(index); if (dbook_cat_menu_item2[sorted_position]==NULL) { /* Illegal category */ jp_logf(JP_LOG_DEBUG, "Category is not legal\n"); index = 0; sorted_position = find_sort_cat_pos(index); } if (sorted_position<0) { jp_logf(JP_LOG_WARN, _("Category is not legal\n")); } else { if (dbook_cat_menu_item2[sorted_position]) { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(dbook_cat_menu_item2[sorted_position]), TRUE); } gtk_option_menu_set_history(GTK_OPTION_MENU(category_menu2), find_menu_cat_pos(sorted_position)); } } /* End check for datebook version */ if (cale->event) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio_button_no_time), TRUE); } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio_button_appt_time), TRUE); } gtk_text_buffer_set_text(GTK_TEXT_BUFFER(dbook_desc_buffer), "", -1); gtk_text_buffer_set_text(GTK_TEXT_BUFFER(dbook_note_buffer), "", -1); if (datebook_version) { gtk_entry_set_text(GTK_ENTRY(location_entry), ""); } #ifdef ENABLE_DATEBK if (use_db3_tags) { gtk_entry_set_text(GTK_ENTRY(datebk_entry), ""); } #endif if (cale->alarm) { /* This is to insure that the callback gets called */ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button_alarm), FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button_alarm), TRUE); switch (cale->advanceUnits) { case calendar_advMinutes: gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (radio_button_alarm_min), TRUE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (radio_button_alarm_hour), FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (radio_button_alarm_day), FALSE); break; case calendar_advHours: gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (radio_button_alarm_min), FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (radio_button_alarm_hour), TRUE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (radio_button_alarm_day), FALSE); break; case calendar_advDays: gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (radio_button_alarm_min), FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (radio_button_alarm_hour), FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (radio_button_alarm_day), TRUE); break; default: jp_logf(JP_LOG_WARN, _("Error in DateBookDB or Calendar advanceUnits = %d\n"),cale->advanceUnits); } sprintf(tempstr, "%d", cale->advance); gtk_entry_set_text(GTK_ENTRY(units_entry), tempstr); } else { /* This is to insure that the callback gets called */ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button_alarm), TRUE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button_alarm), FALSE); gtk_entry_set_text(GTK_ENTRY(units_entry), "0"); } if (cale->description) { gtk_text_buffer_set_text(GTK_TEXT_BUFFER(dbook_desc_buffer), cale->description, -1); } #ifdef ENABLE_DATEBK if (use_db3_tags) { if (db3_parse_tag(cale->note, &type, NULL) > 0) { /* There is a datebk tag. Need to separate it from the note */ note = strdup(cale->note); len=strlen(note); for (i=0; inote) { gtk_text_buffer_set_text(GTK_TEXT_BUFFER(dbook_note_buffer), cale->note, -1); } } else if (cale->note) { /* Not using db3 tags */ gtk_text_buffer_set_text(GTK_TEXT_BUFFER(dbook_note_buffer), cale->note, -1); } #else /* Ordinary, non-DateBk code */ if (cale->note) { gtk_text_buffer_set_text(GTK_TEXT_BUFFER(dbook_note_buffer), cale->note, -1); } #endif begin_date.tm_mon = cale->begin.tm_mon; begin_date.tm_mday = cale->begin.tm_mday; begin_date.tm_year = cale->begin.tm_year; begin_date.tm_hour = cale->begin.tm_hour; begin_date.tm_min = cale->begin.tm_min; end_date.tm_mon = cale->end.tm_mon; end_date.tm_mday = cale->end.tm_mday; end_date.tm_year = cale->end.tm_year; end_date.tm_hour = cale->end.tm_hour; end_date.tm_min = cale->end.tm_min; set_begin_end_labels(&begin_date, &end_date, UPDATE_DATE_ENTRIES | UPDATE_DATE_MENUS); if (datebook_version) { /* Calendar has a location field */ if (cale->location) { gtk_entry_set_text(GTK_ENTRY(location_entry), cale->location); } } /* Do the Repeat information */ switch (cale->repeatType) { case calendarRepeatNone: gtk_notebook_set_page(GTK_NOTEBOOK(notebook), PAGE_NONE); break; case calendarRepeatDaily: if ((cale->repeatForever)) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (check_button_day_endon), FALSE); } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (check_button_day_endon), TRUE); glob_endon_day_tm.tm_mon = cale->repeatEnd.tm_mon; glob_endon_day_tm.tm_mday = cale->repeatEnd.tm_mday; glob_endon_day_tm.tm_year = cale->repeatEnd.tm_year; update_endon_button(glob_endon_day_button, &glob_endon_day_tm); } sprintf(tempstr, "%d", cale->repeatFrequency); gtk_entry_set_text(GTK_ENTRY(repeat_day_entry), tempstr); gtk_notebook_set_page(GTK_NOTEBOOK(notebook), PAGE_DAY); break; case calendarRepeatWeekly: if ((cale->repeatForever)) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (check_button_week_endon), FALSE); } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (check_button_week_endon), TRUE); glob_endon_week_tm.tm_mon = cale->repeatEnd.tm_mon; glob_endon_week_tm.tm_mday = cale->repeatEnd.tm_mday; glob_endon_week_tm.tm_year = cale->repeatEnd.tm_year; update_endon_button(glob_endon_week_button, &glob_endon_week_tm); } sprintf(tempstr, "%d", cale->repeatFrequency); gtk_entry_set_text(GTK_ENTRY(repeat_week_entry), tempstr); for (i=0; i<7; i++) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(toggle_button_repeat_days[i]), cale->repeatDays[i]); } gtk_notebook_set_page(GTK_NOTEBOOK(notebook), PAGE_WEEK); break; case calendarRepeatMonthlyByDate: case calendarRepeatMonthlyByDay: jp_logf(JP_LOG_DEBUG, "repeat day=%d\n",cale->repeatDay); if ((cale->repeatForever)) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (check_button_mon_endon), FALSE); } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (check_button_mon_endon), TRUE); glob_endon_mon_tm.tm_mon = cale->repeatEnd.tm_mon; glob_endon_mon_tm.tm_mday = cale->repeatEnd.tm_mday; glob_endon_mon_tm.tm_year = cale->repeatEnd.tm_year; update_endon_button(glob_endon_mon_button, &glob_endon_mon_tm); } sprintf(tempstr, "%d", cale->repeatFrequency); gtk_entry_set_text(GTK_ENTRY(repeat_mon_entry), tempstr); if (cale->repeatType == calendarRepeatMonthlyByDay) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (toggle_button_repeat_mon_byday), TRUE); } if (cale->repeatType == calendarRepeatMonthlyByDate) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (toggle_button_repeat_mon_bydate), TRUE); } gtk_notebook_set_page(GTK_NOTEBOOK(notebook), PAGE_MONTH); break; case calendarRepeatYearly: if ((cale->repeatForever)) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (check_button_year_endon), FALSE); } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (check_button_year_endon), TRUE); glob_endon_year_tm.tm_mon = cale->repeatEnd.tm_mon; glob_endon_year_tm.tm_mday = cale->repeatEnd.tm_mday; glob_endon_year_tm.tm_year = cale->repeatEnd.tm_year; update_endon_button(glob_endon_year_button, &glob_endon_year_tm); } sprintf(tempstr, "%d", cale->repeatFrequency); gtk_entry_set_text(GTK_ENTRY(repeat_year_entry), tempstr); gtk_notebook_set_page(GTK_NOTEBOOK(notebook), PAGE_YEAR); break; default: jp_logf(JP_LOG_WARN, _("Unknown repeatType (%d) found in DatebookDB\n"), cale->repeatFrequency); } gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(private_checkbox), mcale->attrib & dlpRecAttrSecret); connect_changed_signals(CONNECT_SIGNALS); return; } static void set_date_label(void) { struct tm now; char str[50]; char datef[50]; const char *svalue; now.tm_sec=0; now.tm_min=0; now.tm_hour=11; now.tm_isdst=-1; now.tm_wday=0; now.tm_yday=0; now.tm_mday = current_day; now.tm_mon = current_month; now.tm_year = current_year; mktime(&now); get_pref(PREF_LONGDATE, NULL, &svalue); if (svalue==NULL) { strcpy(datef, "%x"); } else { sprintf(datef, _("%%a., %s"), svalue); } /* Determine today for highlighting */ if (now.tm_mday == get_highlighted_today(&now)) strcat(datef, _(" (TODAY)")); jp_strftime(str, sizeof(str), datef, &now); gtk_label_set_text(GTK_LABEL(dow_label), str); } static void cb_cancel(GtkWidget *widget, gpointer data) { set_new_button_to(CLEAR_FLAG); datebook_refresh(FALSE, FALSE); } static void cb_edit_cats(GtkWidget *widget, gpointer data) { struct CalendarAppInfo cai; char db_name[FILENAME_MAX]; char pdb_name[FILENAME_MAX]; char full_name[FILENAME_MAX]; int num; size_t size; void *buf; struct pi_file *pf; long datebook_version; pi_buffer_t pi_buf; jp_logf(JP_LOG_DEBUG, "cb_edit_cats\n"); get_pref(PREF_DATEBOOK_VERSION, &datebook_version, NULL); if (datebook_version) { strcpy(pdb_name, "CalendarDB-PDat.pdb"); strcpy(db_name, "CalendarDB-PDat"); } else { /* Datebook doesn't use categories */ return; } get_home_file_name(pdb_name, full_name, sizeof(full_name)); buf=NULL; memset(&cai, 0, sizeof(cai)); pf = pi_file_open(full_name); pi_file_get_app_info(pf, &buf, &size); pi_buf.data = buf; pi_buf.used = size; pi_buf.allocated = size; num = unpack_CalendarAppInfo(&cai, &pi_buf); if (num <= 0) { jp_logf(JP_LOG_WARN, _("Error reading file: %s\n"), pdb_name); return; } pi_file_close(pf); edit_cats(widget, db_name, &(cai.category)); pi_buf.data = NULL; pi_buf.used = 0; pi_buf.allocated = 0; size = pack_CalendarAppInfo(&cai, &pi_buf); pdb_file_write_app_block(db_name, pi_buf.data, pi_buf.used); free(pi_buf.data); cb_app_button(NULL, GINT_TO_POINTER(REDRAW)); } static void cb_category(GtkWidget *item, int selection) { int b; if ((GTK_CHECK_MENU_ITEM(item))->active) { if (dbook_category == selection) { return; } #ifdef JPILOT_DEBUG printf("dbook_category: %d, selection: %d\n", dbook_category, selection); #endif b=dialog_save_changed_record_with_cancel(pane, record_changed); if (b==DIALOG_SAID_1) { /* Cancel */ int index, index2; if (dbook_category==CATEGORY_ALL) { index = 0; index2 = 0; } else { index = find_sort_cat_pos(dbook_category); index2 = find_menu_cat_pos(index) + 1; index += 1; } if (index<0) { jp_logf(JP_LOG_WARN, _("Category is not legal\n")); } else { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(dbook_cat_menu_item1[index]), TRUE); gtk_option_menu_set_history(GTK_OPTION_MENU(category_menu1), index2); } return; } if (b==DIALOG_SAID_3) { /* Save */ cb_add_new_record(NULL, GINT_TO_POINTER(record_changed)); } if (selection==NUM_DATEBOOK_CAT_ITEMS+1) { cb_edit_cats(item, NULL); } else { dbook_category = selection; } clist_row_selected = 0; jp_logf(JP_LOG_DEBUG, "cb_category() cat=%d\n", dbook_category); datebook_update_clist(); highlight_days(); jp_logf(JP_LOG_DEBUG, "Leaving cb_category()\n"); } } /* When a calendar day is pressed */ static void cb_cal_changed(GtkWidget *widget, gpointer data) { int num; unsigned int cal_year, cal_month, cal_day; int day_changed, mon_changed, year_changed; int b; #ifdef EASTER static int Easter=0; #endif num = GPOINTER_TO_INT(data); if (num!=CAL_DAY_SELECTED) { return; } /* Get selected date from calendar */ gtk_calendar_get_date(GTK_CALENDAR(main_calendar), &cal_year, &cal_month, &cal_day); /* Handle modified record before switching to new date */ if ((record_changed==MODIFY_FLAG) || (record_changed==NEW_FLAG)) { if (current_day==cal_day) { return; } b=dialog_save_changed_record_with_cancel(pane, record_changed); if (b==DIALOG_SAID_1) { /* Cancel */ gtk_signal_disconnect_by_func(GTK_OBJECT(main_calendar), GTK_SIGNAL_FUNC(cb_cal_changed), GINT_TO_POINTER(CAL_DAY_SELECTED)); gtk_calendar_select_month(GTK_CALENDAR(main_calendar), current_month, 1900+current_year); gtk_calendar_select_day(GTK_CALENDAR(main_calendar), current_day); gtk_signal_connect(GTK_OBJECT(main_calendar), "day_selected", GTK_SIGNAL_FUNC(cb_cal_changed), GINT_TO_POINTER(CAL_DAY_SELECTED)); return; } if (b==DIALOG_SAID_3) { /* Save */ /* cb_add_new_record is troublesome because it attempts to * change the calendar. Not only must signals be disconnected * to avoid re-triggering cb_cal_changed but the original date * must be re-selected after the add_new_record has changed it */ gtk_signal_disconnect_by_func(GTK_OBJECT(main_calendar), GTK_SIGNAL_FUNC(cb_cal_changed), GINT_TO_POINTER(CAL_DAY_SELECTED)); cb_add_new_record(NULL, GINT_TO_POINTER(record_changed)); gtk_calendar_freeze(GTK_CALENDAR(main_calendar)); gtk_calendar_select_month(GTK_CALENDAR(main_calendar), cal_month, cal_year); gtk_calendar_select_day(GTK_CALENDAR(main_calendar), cal_day); gtk_calendar_thaw(GTK_CALENDAR(main_calendar)); gtk_signal_connect(GTK_OBJECT(main_calendar), "day_selected", GTK_SIGNAL_FUNC(cb_cal_changed), GINT_TO_POINTER(CAL_DAY_SELECTED)); } } set_new_button_to(CLEAR_FLAG); /* Day 0 is used in GTK to unselect the current highlighted day -- * NOT to change to the zeroeth day */ if (cal_day==0) { return; } mon_changed = year_changed = 0; if (cal_year < 1903) { cal_year=1903; gtk_calendar_select_month(GTK_CALENDAR(main_calendar), cal_month, 1903); } if (cal_year > 2037) { cal_year=2037; gtk_calendar_select_month(GTK_CALENDAR(main_calendar), cal_month, 2037); } if (current_year!=cal_year-1900) { current_year=cal_year-1900; year_changed = 1; mon_changed = 1; } if (current_month!=cal_month) { current_month=cal_month; mon_changed = 1; } day_changed = (current_day!=cal_day); current_day=cal_day; jp_logf(JP_LOG_DEBUG, "cb_cal_changed, %02d/%02d/%02d\n", cal_month,cal_day,cal_year); /* Easter Egg Code */ #ifdef EASTER if (((current_day==29) && (current_month==7)) || ((current_day==20) && (current_month==11))) { Easter++; if (Easter>4) { Easter=0; dialog_easter(current_day); } } else { Easter=0; } #endif if (mon_changed) { highlight_days(); } if (day_changed || mon_changed || year_changed) { set_date_label(); clist_row_selected = 0; } datebook_update_clist(); /* Keep focus on calendar so that GTK accelerator keys for calendar * can continue to be used */ gtk_widget_grab_focus(GTK_WIDGET(main_calendar)); } /* Called by week and month views when a user clicks on a date so that we * can set the day view to that date */ void datebook_gui_setdate(int year, int month, int day) { /* Reset current day pointers to the day the user click on */ current_year = year; current_month = month; current_day = day; /* Redraw the day view */ datebook_refresh(FALSE, FALSE); /* Force exposure of main window */ if (window) { gtk_window_present(GTK_WINDOW(window)); } } static void highlight_days(void) { int bit, mask; int dow_int, ndim, i; long ivalue; get_pref(PREF_DATEBOOK_HIGHLIGHT_DAYS, &ivalue, NULL); if (!ivalue) { return; } get_month_info(current_month, 1, current_year, &dow_int, &ndim); appointment_on_day_list(current_month, current_year, &mask, dbook_category, datebook_version); gtk_calendar_freeze(GTK_CALENDAR(main_calendar)); for (i=1, bit=1; i<=ndim; i++, bit = bit<<1) { if (bit & mask) { gtk_calendar_mark_day(GTK_CALENDAR(main_calendar), i); } else { gtk_calendar_unmark_day(GTK_CALENDAR(main_calendar), i); } } gtk_calendar_thaw(GTK_CALENDAR(main_calendar)); } static int datebook_find(void) { int r, found_at; jp_logf(JP_LOG_DEBUG, "datebook_find(), glob_find_id = %d\n", glob_find_id); if (glob_find_id) { r = clist_find_id(clist, glob_find_id, &found_at); if (r) { if (!gtk_clist_row_is_visible(GTK_CLIST(clist), found_at)) { gtk_clist_moveto(GTK_CLIST(clist), found_at, 0, 0.5, 0.0); } jp_logf(JP_LOG_DEBUG, "datebook_find(), selecting row %d\n", found_at); clist_select_row(GTK_CLIST(clist), found_at, 1); } glob_find_id = 0; } return EXIT_SUCCESS; } int datebook_refresh(int first, int do_init) { int b; int index = 0; int index2 = 0; int copy_current_day; int copy_current_month; int copy_current_year; b=dialog_save_changed_record(pane, record_changed); if (b==DIALOG_SAID_2) { cb_add_new_record(NULL, GINT_TO_POINTER(record_changed)); } set_new_button_to(CLEAR_FLAG); if (do_init) init(); if (datebook_version) { /* Contacts supports categories */ if (glob_find_id) { dbook_category = CATEGORY_ALL; } if (dbook_category==CATEGORY_ALL) { index = 0; index2 = 0; } else { index = find_sort_cat_pos(dbook_category); index2 = find_menu_cat_pos(index) + 1; index += 1; } } #ifdef ENABLE_DATEBK if (glob_find_id) { if (GTK_IS_WINDOW(window_datebk_cats)) { cb_datebk_category(NULL, GINT_TO_POINTER(1)); } else { datebk_category = 0xFFFF; } } #endif /* Need to disconnect signal before using gtk_calendar_select_day or callback will be activated inadvertently. */ gtk_signal_disconnect_by_func(GTK_OBJECT(main_calendar), GTK_SIGNAL_FUNC(cb_cal_changed), GINT_TO_POINTER(CAL_DAY_SELECTED)); if (first) { gtk_calendar_select_month(GTK_CALENDAR(main_calendar), current_month, current_year+1900); gtk_calendar_select_day(GTK_CALENDAR(main_calendar), current_day); } else { copy_current_day = current_day; copy_current_month = current_month; copy_current_year = current_year; gtk_calendar_freeze(GTK_CALENDAR(main_calendar)); /* Unselect current day before changing to a new month */ gtk_calendar_select_day(GTK_CALENDAR(main_calendar), 0); gtk_calendar_select_month(GTK_CALENDAR(main_calendar), copy_current_month, copy_current_year+1900); gtk_calendar_select_day(GTK_CALENDAR(main_calendar), copy_current_day); gtk_calendar_thaw(GTK_CALENDAR(main_calendar)); } gtk_signal_connect(GTK_OBJECT(main_calendar), "day_selected", GTK_SIGNAL_FUNC(cb_cal_changed), GINT_TO_POINTER(CAL_DAY_SELECTED)); datebook_update_clist(); if (datebook_version ) { if (index<0) { jp_logf(JP_LOG_WARN, _("Category is not legal\n")); } else { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(dbook_cat_menu_item1[index]), TRUE); gtk_option_menu_set_history(GTK_OPTION_MENU(category_menu1), index2); } } highlight_days(); set_date_label(); return EXIT_SUCCESS; } static void cb_menu_time(GtkWidget *item, gint data) { int span; if (END_TIME_FLAG & data) { if (HOURS_FLAG & data) { end_date.tm_hour = data&0x3F; } else { end_date.tm_min = data&0x3F; } } else { /* If start time changed then update end time to keep same appt. length */ if (HOURS_FLAG & data) { span = end_date.tm_hour - begin_date.tm_hour; begin_date.tm_hour = data&0x3F; span = (begin_date.tm_hour + span) % 24; span < 0 ? span += 24 : span; end_date.tm_hour = span; } else { span = end_date.tm_min - begin_date.tm_min; begin_date.tm_min = data&0x3F; span = begin_date.tm_min + span; if (span >= 60) { span -= 60; end_date.tm_hour = (end_date.tm_hour + 1) % 24; } else if (span < 0) { span += 60; end_date.tm_hour = (end_date.tm_hour - 1) % 24; } end_date.tm_min = span; } } gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio_button_appt_time), TRUE); set_begin_end_labels(&begin_date, &end_date, UPDATE_DATE_ENTRIES); } static gboolean cb_hide_menu_time(GtkWidget *widget, gpointer data) { /* Datebook does not support events spanning midnight where the beginning time is greater than the ending time */ if (datebook_version == 0) { if (begin_date.tm_hour > end_date.tm_hour) { end_date.tm_hour = begin_date.tm_hour; } } set_begin_end_labels(&begin_date, &end_date, UPDATE_DATE_MENUS | UPDATE_DATE_ENTRIES); return FALSE; } #define PRESSED_P 100 #define PRESSED_A 101 #define PRESSED_TAB 102 #define PRESSED_MINUS 103 #define PRESSED_SHIFT_TAB 104 static void entry_key_pressed(int next_digit, int end_entry) { struct tm *Ptm; int span_hour, span_min; if (end_entry) { Ptm = &end_date; } else { Ptm = &begin_date; } span_hour = end_date.tm_hour - begin_date.tm_hour; span_min = end_date.tm_min - begin_date.tm_min; if ((next_digit>=0) && (next_digit<=9)) { Ptm->tm_hour = ((Ptm->tm_hour)*10 + (Ptm->tm_min)/10)%100; Ptm->tm_min = ((Ptm->tm_min)*10)%100 + next_digit; } if ((next_digit==PRESSED_P) && ((Ptm->tm_hour)<12)) { (Ptm->tm_hour) += 12; } if ((next_digit==PRESSED_A) && ((Ptm->tm_hour)>11)) { (Ptm->tm_hour) -= 12; } /* Don't let the first digit exceed 2 */ if ((int)(Ptm->tm_hour/10) > 2) { Ptm->tm_hour -= ((int)(Ptm->tm_hour/10)-2)*10; } /* Don't let the hour be > 23 */ if (Ptm->tm_hour > 23) { Ptm->tm_hour = 23; } /* If start time changed then update end time to keep same appt. length */ if (!end_entry) { span_hour = (begin_date.tm_hour + span_hour) % 24; span_hour < 0 ? span_hour += 24 : span_hour; end_date.tm_hour = span_hour; span_min = begin_date.tm_min + span_min; while (span_min >= 60) { span_min -= 60; span_hour = (span_hour + 1) % 24; } while (span_min < 0) { span_min += 60; span_hour = (span_hour - 1) % 24; } end_date.tm_min = span_min; span_hour < 0 ? span_hour += 24 : span_hour; end_date.tm_hour = span_hour; } set_begin_end_labels(&begin_date, &end_date, UPDATE_DATE_ENTRIES | UPDATE_DATE_MENUS); } static gboolean cb_entry_pressed(GtkWidget *w, gpointer data) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio_button_appt_time), TRUE); set_begin_end_labels(&begin_date, &end_date, UPDATE_DATE_ENTRIES | UPDATE_DATE_MENUS); /* return FALSE to let GTK know we did not handle the event * this allows GTK to finish handling it.*/ return FALSE; } static gboolean cb_entry_key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data) { int digit=-1; jp_logf(JP_LOG_DEBUG, "cb_entry_key_pressed key = %d\n", event->keyval); gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), "key_press_event"); if ((event->keyval >= GDK_0) && (event->keyval <= GDK_9)) { digit = (event->keyval)-GDK_0; } else if ((event->keyval >= GDK_KP_0) && (event->keyval <= GDK_KP_9)) { digit = (event->keyval)-GDK_KP_0; } else if ((event->keyval == GDK_P) || (event->keyval == GDK_p)) { digit = PRESSED_P; } else if ((event->keyval == GDK_A) || (event->keyval == GDK_a)) { digit = PRESSED_A; } else if (event->keyval == GDK_Tab) { digit = PRESSED_TAB; } else if (event->keyval == GDK_ISO_Left_Tab) { digit = PRESSED_SHIFT_TAB; } else if ((event->keyval == GDK_KP_Subtract) || (event->keyval == GDK_minus)) { digit = PRESSED_MINUS; } /* time entry widgets are cycled focus by pressing "-" * Tab will go to the next widget * Shift-Tab will go to the previous widget */ if ((digit==PRESSED_TAB) || (digit==PRESSED_MINUS)) { if (widget==begin_time_entry) { gtk_widget_grab_focus(GTK_WIDGET(end_time_entry)); } if (widget==end_time_entry) { if (digit==PRESSED_MINUS) { gtk_widget_grab_focus(GTK_WIDGET(begin_time_entry)); } if (digit==PRESSED_TAB) { gtk_widget_grab_focus(GTK_WIDGET(dbook_desc)); } } } else if (digit==PRESSED_SHIFT_TAB) { if (widget==begin_time_entry) { gtk_widget_grab_focus(GTK_WIDGET(radio_button_no_time)); } else if (widget==end_time_entry) { gtk_widget_grab_focus(GTK_WIDGET(begin_time_entry)); } } if (digit>=0) { if ((digit>=0) && (digit<=9)){ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio_button_appt_time), TRUE); } if (widget==begin_time_entry) { entry_key_pressed(digit, 0); } if (widget==end_time_entry) { entry_key_pressed(digit, 1); } return TRUE; } return FALSE; } static gboolean cb_key_pressed_tab(GtkWidget *widget, GdkEventKey *event, gpointer next_widget) { if (event->keyval == GDK_Tab) { gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), "key_press_event"); gtk_widget_grab_focus(GTK_WIDGET(next_widget)); return TRUE; } return FALSE; } static gboolean cb_key_pressed_tab_entry(GtkWidget *widget, GdkEventKey *event, gpointer next_widget) { GtkTextIter cursor_pos_iter; GtkTextBuffer *text_buffer; if (event->keyval == GDK_Tab) { text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(widget)); gtk_text_buffer_get_iter_at_mark(text_buffer,&cursor_pos_iter,gtk_text_buffer_get_insert(text_buffer)); if (gtk_text_iter_is_end(&cursor_pos_iter)) { gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), "key_press_event"); gtk_widget_grab_focus(GTK_WIDGET(next_widget)); return TRUE; } } return FALSE; } static gboolean cb_key_pressed_shift_tab(GtkWidget *widget, GdkEventKey *event, gpointer next_widget) { if (event->keyval == GDK_ISO_Left_Tab) { gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), "key_press_event"); gtk_widget_grab_focus(GTK_WIDGET(next_widget)); return TRUE; } return FALSE; } static gboolean cb_keyboard(GtkWidget *widget, GdkEventKey *event, gpointer *p) { struct tm day; int up, down; int b; up = down = 0; switch (event->keyval) { case GDK_Page_Up: case GDK_KP_Page_Up: up=1; break; case GDK_Page_Down: case GDK_KP_Page_Down: down=1; break; } if (up || down) { gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), "key_press_event"); b=dialog_save_changed_record_with_cancel(pane, record_changed); if (b==DIALOG_SAID_1) { /* Cancel */ return TRUE; } if (b==DIALOG_SAID_3) { /* Save */ cb_add_new_record(NULL, GINT_TO_POINTER(record_changed)); } set_new_button_to(CLEAR_FLAG); memset(&day, 0, sizeof(day)); day.tm_year = current_year; day.tm_mon = current_month; day.tm_mday = current_day; day.tm_hour = 12; day.tm_min = 0; if (up) { sub_days_from_date(&day, 1); } if (down) { add_days_to_date(&day, 1); } current_year = day.tm_year; current_month = day.tm_mon; current_day = day.tm_mday; /* This next line prevents a GTK error message from being printed. * e.g. If the day were 31 and the next month has <31 days then the * select month call will cause an error message since the 31st isn't * valid in that month. 0 is code for unselect the day */ gtk_calendar_freeze(GTK_CALENDAR(main_calendar)); gtk_calendar_select_day(GTK_CALENDAR(main_calendar), 0); gtk_calendar_select_month(GTK_CALENDAR(main_calendar), day.tm_mon, day.tm_year+1900); gtk_calendar_select_day(GTK_CALENDAR(main_calendar), day.tm_mday); gtk_calendar_thaw(GTK_CALENDAR(main_calendar)); return TRUE; } return FALSE; } int datebook_gui_cleanup(void) { int b; b=dialog_save_changed_record(pane, record_changed); if (b==DIALOG_SAID_2) { cb_add_new_record(NULL, GINT_TO_POINTER(record_changed)); } free_CalendarEventList(&glob_cel); free_ToDoList(&datebook_todo_list); connect_changed_signals(DISCONNECT_SIGNALS); if (datebook_version) { set_pref(PREF_LAST_DATE_CATEGORY, dbook_category, NULL, TRUE); } set_pref(PREF_DATEBOOK_PANE, gtk_paned_get_position(GTK_PANED(pane)), NULL, TRUE); set_pref(PREF_DATEBOOK_NOTE_PANE, gtk_paned_get_position(GTK_PANED(note_pane)), NULL, TRUE); if (GTK_TOGGLE_BUTTON(show_todos_button)->active) { set_pref(PREF_DATEBOOK_TODO_PANE, gtk_paned_get_position(GTK_PANED(todo_pane)), NULL, TRUE); } todo_clist_clear(GTK_CLIST(todo_clist)); #ifdef ENABLE_DATEBK if (GTK_IS_WIDGET(window_datebk_cats)) { gtk_widget_destroy(window_datebk_cats); } #endif clist_clear(GTK_CLIST(clist)); /* Remove the accelerators */ gtk_window_remove_accel_group(GTK_WINDOW(gtk_widget_get_toplevel(main_calendar)), accel_group); gtk_signal_disconnect_by_func(GTK_OBJECT(main_calendar), GTK_SIGNAL_FUNC(cb_keyboard), NULL); gtk_signal_disconnect_by_func(GTK_OBJECT(clist), GTK_SIGNAL_FUNC(cb_keyboard), NULL); return EXIT_SUCCESS; } static void connect_changed_signals(int con_or_dis) { int i; static int connected=0; #ifdef ENABLE_DATEBK long use_db3_tags; #endif #ifdef ENABLE_DATEBK get_pref(PREF_USE_DB3, &use_db3_tags, NULL); #endif /* CONNECT */ if ((con_or_dis==CONNECT_SIGNALS) && (!connected)) { connected=1; if (datebook_version) { for (i=0; iunique_id; cb_app_button(NULL, GINT_TO_POINTER(TODO)); } static void cb_todos_show(GtkWidget *widget, gpointer data) { long ivalue; set_pref(PREF_DATEBOOK_TODO_SHOW, GTK_TOGGLE_BUTTON(show_todos_button)->active, NULL, TRUE); if (!(GTK_TOGGLE_BUTTON(show_todos_button)->active)) { set_pref(PREF_DATEBOOK_TODO_PANE, gtk_paned_get_position(GTK_PANED(todo_pane)), NULL, TRUE); } if (GTK_TOGGLE_BUTTON(widget)->active) { get_pref(PREF_DATEBOOK_TODO_PANE, &ivalue, NULL); gtk_paned_set_position(GTK_PANED(todo_pane), ivalue); gtk_widget_show_all(GTK_WIDGET(todo_vbox)); } else { gtk_widget_hide_all(GTK_WIDGET(todo_vbox)); } } /*** End ToDo code ***/ #ifdef DAY_VIEW static void cb_resize(GtkWidget *widget, gpointer data) { printf("resize\n"); } static gint cb_datebook_idle(gpointer data) { update_daily_view_undo(NULL); gtk_signal_connect(GTK_OBJECT(scrolled_window), "configure_event", GTK_SIGNAL_FUNC(cb_resize), NULL); return FALSE; /* Cause this function not to be called again */ } #endif int datebook_gui(GtkWidget *vbox, GtkWidget *hbox) { GtkWidget *pixmapwid; GdkPixmap *pixmap; GdkBitmap *mask; GtkWidget *button; GtkWidget *separator; GtkWidget *label; GtkWidget *table; GtkWidget *vbox1, *vbox2; GtkWidget *hbox_temp; GtkWidget *vbox_temp; #ifdef DAY_VIEW GtkWidget *vbox_no_time_appts; GtkWidget *scrolled_window2; #endif GtkWidget *vbox_repeat_day; GtkWidget *hbox_repeat_day1; GtkWidget *hbox_repeat_day2; GtkWidget *vbox_repeat_week; GtkWidget *hbox_repeat_week1; GtkWidget *hbox_repeat_week2; GtkWidget *hbox_repeat_week3; GtkWidget *vbox_repeat_mon; GtkWidget *hbox_repeat_mon1; GtkWidget *hbox_repeat_mon2; GtkWidget *hbox_repeat_mon3; GtkWidget *vbox_repeat_year; GtkWidget *hbox_repeat_year1; GtkWidget *hbox_repeat_year2; GtkWidget *notebook_tab1; GtkWidget *notebook_tab2; GtkWidget *notebook_tab3; GtkWidget *notebook_tab4; GtkWidget *notebook_tab5; GSList *group; char *titles[]={"","","","",""}; long fdow; long ivalue; long char_set; long show_tooltips; char *cat_name; #ifdef ENABLE_DATEBK long use_db3_tags; #endif int i, j; char days2[12]; char *days[] = { N_("Su"), N_("Mo"), N_("Tu"), N_("We"), N_("Th"), N_("Fr"), N_("Sa"), N_("Su") }; get_pref(PREF_DATEBOOK_VERSION, &datebook_version, NULL); init(); #ifdef ENABLE_DATEBK datebk_entry = NULL; get_pref(PREF_USE_DB3, &use_db3_tags, NULL); #endif get_calendar_or_datebook_app_info(&dbook_app_info, datebook_version); if (datebook_version) { /* Initialize categories */ get_pref(PREF_CHAR_SET, &char_set, NULL); for (i=1; ichild)), "label_high"); #endif /* "Apply Changes" button */ CREATE_BUTTON(apply_record_button, _("Apply Changes"), APPLY, _("Commit the modifications"), GDK_Return, GDK_CONTROL_MASK, "Ctrl+Enter") gtk_signal_connect(GTK_OBJECT(apply_record_button), "clicked", GTK_SIGNAL_FUNC(cb_add_new_record), GINT_TO_POINTER(MODIFY_FLAG)); #ifndef ENABLE_STOCK_BUTTONS gtk_widget_set_name(GTK_WIDGET(GTK_LABEL(GTK_BIN(apply_record_button)->child)), "label_high"); #endif /* Separator */ separator = gtk_hseparator_new(); gtk_box_pack_start(GTK_BOX(vbox2), separator, FALSE, FALSE, 5); if (datebook_version) { /* Calendar supports categories */ /* Right-side Category menu */ hbox_temp = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox2), hbox_temp, FALSE, FALSE, 0); /* Clear GTK option menus before use */ for (i=0; i6) { j=0; } g_strlcpy(days2, _(days[j]), sizeof(days2)); /* If no translation occurred then use the first letter only */ if (!strcmp(days2, days[j])) { days2[0]=days[j][0]; days2[1]='\0'; } toggle_button_repeat_days[j] = gtk_toggle_button_new_with_label(days2); gtk_box_pack_start(GTK_BOX(hbox_repeat_week3), toggle_button_repeat_days[j], FALSE, FALSE, 0); } /* "Month Repeat" page */ vbox_repeat_mon = gtk_vbox_new(FALSE, 0); hbox_repeat_mon1 = gtk_hbox_new(FALSE, 0); hbox_repeat_mon2 = gtk_hbox_new(FALSE, 0); hbox_repeat_mon3 = gtk_hbox_new(FALSE, 0); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox_repeat_mon, notebook_tab4); gtk_box_pack_start(GTK_BOX(vbox_repeat_mon), hbox_repeat_mon1, FALSE, FALSE, 2); gtk_box_pack_start(GTK_BOX(vbox_repeat_mon), hbox_repeat_mon2, FALSE, FALSE, 2); gtk_box_pack_start(GTK_BOX(vbox_repeat_mon), hbox_repeat_mon3, FALSE, FALSE, 2); label = gtk_label_new(_("Frequency is Every")); gtk_box_pack_start(GTK_BOX(hbox_repeat_mon1), label, FALSE, FALSE, 2); repeat_mon_entry = gtk_entry_new_with_max_length(2); entry_set_multiline_truncate(GTK_ENTRY(repeat_mon_entry), TRUE); gtk_widget_set_usize(repeat_mon_entry, 30, 0); gtk_box_pack_start(GTK_BOX(hbox_repeat_mon1), repeat_mon_entry, FALSE, FALSE, 0); label = gtk_label_new(_("Month(s)")); gtk_box_pack_start(GTK_BOX(hbox_repeat_mon1), label, FALSE, FALSE, 2); check_button_mon_endon = gtk_check_button_new_with_label(_("End on")); gtk_signal_connect(GTK_OBJECT(check_button_mon_endon), "clicked", GTK_SIGNAL_FUNC(cb_check_button_endon), GINT_TO_POINTER(PAGE_MONTH)); gtk_box_pack_start(GTK_BOX(hbox_repeat_mon2), check_button_mon_endon, FALSE, FALSE, 0); glob_endon_mon_button = gtk_button_new_with_label(_("No Date")); gtk_box_pack_start(GTK_BOX(hbox_repeat_mon2), glob_endon_mon_button, FALSE, FALSE, 0); gtk_signal_connect(GTK_OBJECT(glob_endon_mon_button), "clicked", GTK_SIGNAL_FUNC(cb_cal_dialog), GINT_TO_POINTER(PAGE_MONTH)); label = gtk_label_new(_("Repeat by:")); gtk_box_pack_start(GTK_BOX(hbox_repeat_mon3), label, FALSE, FALSE, 0); toggle_button_repeat_mon_byday = gtk_radio_button_new_with_label (NULL, _("Day of week")); gtk_box_pack_start(GTK_BOX(hbox_repeat_mon3), toggle_button_repeat_mon_byday, FALSE, FALSE, 0); group = NULL; group = gtk_radio_button_group(GTK_RADIO_BUTTON(toggle_button_repeat_mon_byday)); toggle_button_repeat_mon_bydate = gtk_radio_button_new_with_label (group, _("Date")); gtk_box_pack_start(GTK_BOX(hbox_repeat_mon3), toggle_button_repeat_mon_bydate, FALSE, FALSE, 0); /* "Year Repeat" page */ vbox_repeat_year = gtk_vbox_new(FALSE, 0); hbox_repeat_year1 = gtk_hbox_new(FALSE, 0); hbox_repeat_year2 = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox_repeat_year), hbox_repeat_year1, FALSE, FALSE, 2); gtk_box_pack_start(GTK_BOX(vbox_repeat_year), hbox_repeat_year2, FALSE, FALSE, 2); label = gtk_label_new(_("Frequency is Every")); gtk_box_pack_start(GTK_BOX(hbox_repeat_year1), label, FALSE, FALSE, 2); repeat_year_entry = gtk_entry_new_with_max_length(2); entry_set_multiline_truncate(GTK_ENTRY(repeat_year_entry), TRUE); gtk_widget_set_usize(repeat_year_entry, 30, 0); gtk_box_pack_start(GTK_BOX(hbox_repeat_year1), repeat_year_entry, FALSE, FALSE, 0); label = gtk_label_new(_("Year(s)")); gtk_box_pack_start(GTK_BOX(hbox_repeat_year1), label, FALSE, FALSE, 2); check_button_year_endon = gtk_check_button_new_with_label(_("End on")); gtk_signal_connect(GTK_OBJECT(check_button_year_endon), "clicked", GTK_SIGNAL_FUNC(cb_check_button_endon), GINT_TO_POINTER(PAGE_YEAR)); gtk_box_pack_start(GTK_BOX(hbox_repeat_year2), check_button_year_endon, FALSE, FALSE, 0); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox_repeat_year, notebook_tab5); glob_endon_year_button = gtk_button_new_with_label(_("No Date")); gtk_box_pack_start(GTK_BOX(hbox_repeat_year2), glob_endon_year_button, FALSE, FALSE, 0); gtk_signal_connect(GTK_OBJECT(glob_endon_year_button), "clicked", GTK_SIGNAL_FUNC(cb_cal_dialog), GINT_TO_POINTER(PAGE_YEAR)); /* Set default values for repeats */ gtk_entry_set_text(GTK_ENTRY(units_entry), "5"); gtk_entry_set_text(GTK_ENTRY(repeat_day_entry), "1"); gtk_entry_set_text(GTK_ENTRY(repeat_week_entry), "1"); gtk_entry_set_text(GTK_ENTRY(repeat_mon_entry), "1"); gtk_entry_set_text(GTK_ENTRY(repeat_year_entry), "1"); gtk_notebook_set_page(GTK_NOTEBOOK(notebook), 0); gtk_notebook_popup_enable(GTK_NOTEBOOK(notebook)); /* end notebook details */ /* Capture the TAB key in text fields */ gtk_signal_connect(GTK_OBJECT(dbook_desc), "key_press_event", GTK_SIGNAL_FUNC(cb_key_pressed_tab_entry), dbook_note); gtk_signal_connect(GTK_OBJECT(dbook_desc), "key_press_event", GTK_SIGNAL_FUNC(cb_key_pressed_shift_tab), end_time_entry); gtk_signal_connect(GTK_OBJECT(dbook_note), "key_press_event", GTK_SIGNAL_FUNC(cb_key_pressed_shift_tab), dbook_desc); /* Capture the Enter & Shift-Enter key combinations to move back and * forth between the left- and right-hand sides of the display. */ gtk_signal_connect(GTK_OBJECT(clist), "key_press_event", GTK_SIGNAL_FUNC(cb_key_pressed_left_side), dbook_desc); gtk_signal_connect(GTK_OBJECT(dbook_desc), "key_press_event", GTK_SIGNAL_FUNC(cb_key_pressed_right_side), NULL); gtk_signal_connect(GTK_OBJECT(dbook_note), "key_press_event", GTK_SIGNAL_FUNC(cb_key_pressed_right_side), GINT_TO_POINTER(1)); /* Allow PgUp and PgDown to move selected day in calendar */ gtk_signal_connect(GTK_OBJECT(main_calendar), "key_press_event", GTK_SIGNAL_FUNC(cb_keyboard), NULL); gtk_signal_connect(GTK_OBJECT(clist), "key_press_event", GTK_SIGNAL_FUNC(cb_keyboard), NULL); /**********************************************************************/ gtk_widget_show_all(vbox); gtk_widget_show_all(hbox); gtk_widget_hide(add_record_button); gtk_widget_hide(apply_record_button); gtk_widget_hide(undelete_record_button); gtk_widget_hide(cancel_record_button); gtk_widget_hide(hbox_alarm2); get_pref(PREF_DATEBOOK_TODO_SHOW, &ivalue, NULL); if (!ivalue) { gtk_widget_hide_all(todo_vbox); gtk_paned_set_position(GTK_PANED(todo_pane), 100000); } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(show_todos_button), TRUE); } datebook_refresh(TRUE, TRUE); /* The focus doesn't do any good on the application button */ gtk_widget_grab_focus(GTK_WIDGET(main_calendar)); return EXIT_SUCCESS; } jpilot-1.8.1.2/datebook.h0000644000175000017500000001144211524574422012054 00000000000000/* $Id: datebook.h,v 1.30 2010-10-15 16:42:13 rikster5 Exp $ */ /******************************************************************************* * datebook.h * A module of J-Pilot http://jpilot.org * * Copyright (C) 1999-2002 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef __DATEBOOK_H__ #define __DATEBOOK_H__ #include #include #include #include "utils.h" #ifdef ENABLE_DATEBK /* These defines depend on the defaults being zero so that the structure being zeroed out sets the defaults (0) */ # define DB3_TAG_TYPE_NONE 0 # define DB3_TAG_TYPE_DBplus 1 # define DB3_TAG_TYPE_DB3 3 # define DB3_TAG_TYPE_DB4 4 # define DB3_REGULAR 0 # define DB3_FLOAT 1 # define DB3_FLOAT_COMPLETE 2 # define DB3_FLOAT_DONE 3 # define DB3_FONT_NONE 0 # define DB3_FONT_BOLD 1 # define DB3_FONT_LARGE 2 # define DB3_FONT_LARGE_BOLD 3 # define DB3_SPAN_MID_NO 0 # define DB3_SPAN_MID_YES 1 # define DB3_LINK_NO 0 # define DB3_LINK_YES 1 struct db4_struct { int floating_event; /* The following are db3 and greater only tags */ int custom_font; int category; int icon; int spans_midnight; int time_zone; /* The following are db4 and greater only tags */ int link; int advance; /* I don't understand this and next field yet */ int last_date; /* This may need to be a struct tm (not sure yet) */ int custom_alarm_sound; int color; /* This isn't datebk specific */ char *note; /* points to where the note starts after the tag (or null) */ }; #endif int datebook_print(int type); int datebook_import(GtkWidget *window); int datebook_cleanup(void); void free_AppointmentList(AppointmentList **al); /* * If Null is passed in for date, then all appointments will be returned. * total_records returns total records in database (can pass in NULL). * returns number of records in list. */ int get_days_appointments(AppointmentList **al_out, struct tm *date, int *total_records); /* * If Null is passed in for date, then all appointments will be returned * modified, deleted and private, 0 for no, 1 for yes, 2 for use prefs. * total_records returns total records in database (can pass in NULL). * returns number of records in list. */ int get_days_appointments2(AppointmentList **appointment_list, struct tm *now, int modified, int deleted, int privates, int *total_records); /* This function removes appointments from the list that obviously will not * occur in this month. Skip privates will ignore private records. */ int weed_datebook_list(AppointmentList **al, int mon, int year, int skip_privates, int *mask); int weed_calendar_event_list(CalendarEventList **cel, int mon, int year, int skip_privates, int *mask); /* Year is years since 1900 */ /* Mon is 0-11 */ /* Day is 1-31 */ /* */ int datebook_add_exception(struct CalendarEvent *cale, int year, int mon, int day); int get_calendar_or_datebook_app_info(struct CalendarAppInfo *cai, long datebook_version); int copy_calendar_event(const struct CalendarEvent *source, struct CalendarEvent **dest); /* returns a bit mask where bit 1 is day one, etc. Bit is set if an */ /* appointment occurs on that day, 0 if not. */ int appointment_on_day_list(int mon, int year, int *mask, int category, int datebook_version); /* * returns 1 if an appointment does occur/re-occur on dat * else returns 0 */ unsigned int isApptOnDate(struct Appointment *a, struct tm *date); unsigned int calendar_isApptOnDate(struct CalendarEvent *cale, struct tm *date); int compareTimesToDay(struct tm *tm1, struct tm *tm2); #ifdef ENABLE_DATEBK /* Returns a bitmask * 0 if not a floating OR * bitmask: * 1 if float, * 2 if completed float * 16 if float has a note */ int db3_parse_tag(char *note, int *type, struct db4_struct *db4); int db3_has_tags(struct Appointment *a); int db3_which_icon(struct Appointment *a); #endif int datebook_export(GtkWidget *window); #endif jpilot-1.8.1.2/description-pak0000644000175000017500000000051710445273774013142 00000000000000jpilot: J-Pilot Desktop for Palm OS handheld organizers jpilot: jpilot: J-Pilot is a desktop organizer application for PalmOS devices. jpilot: It is meant to be an alternative to the Palm Desktop for those jpilot: who run the most popular Operating Systems in the World, Linux jpilot: and Unix. jpilot: jpilot: jpilot: jpilot: jpilot: jpilot-1.8.1.2/jpilotrc.green0000644000175000017500000001041611122007765012756 00000000000000style "window" { #fg[NORMAL] = { 1.0, 0, 0 } bg[NORMAL] = { 0.0, 0.5, 0.5 } } style "label_high" { fg[NORMAL] = { 0.0, 0.0, 0.8 } } style "today" { base[NORMAL] = { 0.0, 0.70, .71 } } style "tooltips" { fg[NORMAL] = { 0.0, 0.0, 0.0 } bg[NORMAL] = { 1.0, 0.98, .84 } } style "button" { fg[PRELIGHT] = { 1.0, 1.0, 1.0 } bg[PRELIGHT] = { 0, 0.5, 0.5 } fg[ACTIVE] = { 0, 0.0, 0.0 } bg[ACTIVE] = { 0, 0.6, 0.6 } fg[NORMAL] = { 0.0, 0.0, 0.0 } bg[NORMAL] = { 0.0, 0.5, 0.5 } fg[INSENSITIVE] = { 0.0, 0.0, 0.0 } bg[INSENSITIVE] = { 0.0, .690, .678 } } style "button_app" { fg[PRELIGHT] = { 1.0, 1.0, 1.0 } bg[PRELIGHT] = { 0.0, .65, .65 } } style "toggle_button" = "button" { fg[NORMAL] = { 0, 0, 0.0 } bg[NORMAL] = { 0, 0.5, 0.5 } fg[ACTIVE] = { 0.0, 0.0, 0.0 } bg[ACTIVE] = { 0.0, 0.7, 0.7 } bg[PRELIGHT] = { 0.0, 0.5, 0.5 } } style "spin_button" { #fg[NORMAL] = { 0.0, 0.0, 0.0 } bg[NORMAL] = { 0.0, 0.5, 0.5 } fg[INSENSITIVE] = { 0.0, 0.0, 0.0 } bg[INSENSITIVE] = { 0.0, 0.5, 0.5 } #fg[PRELIGHT] = { 1.0, 1.0, 1.0 } #bg[PRELIGHT] = { 1.0, 1.0, 0.0 } } style "text" { #This is how to use a different font under GTK 1.x #font = "-adobe-courier-medium-o-normal--8-80-75-75-m-50-iso8859-1" #This is how to use a different font under GTK 2.x #font_name = "Sans 12" fg[NORMAL] = { 0.0, 0.0, 0.0 } bg[NORMAL] = { 0, 0.5, 0.5 } fg[PRELIGHT] = { 0.0, 0.0, 0.0 } bg[PRELIGHT] = { 0.0, 0.55, 0.55 } #fg[SELECTED] = { 0.0, 0.0, 0.0 } #bg[SELECTED] = { 0.0, 0.7, 0.7 } fg[ACTIVE] = { 0.0, 0.0, 0.0 } bg[ACTIVE] = { 0.0, 0.5, 0.5 } #bg of scrollbars fg[INSENSITIVE] = { 0.0, 0.0, 0.0 } #fg of scrollbar buttons when insensitive bg[INSENSITIVE] = { 0.0, 0.5, 0.5 } #bg of scrollbar buttons when insensitive text[NORMAL] = { 0.0, 0.0, 0.0 } base[NORMAL] = { 1.0, 1.0, 1.0 } #base[NORMAL] = { 0, 0.5, 0.5 } } style "menu" { fg[NORMAL] = { 0.0, 0.0, 0.0 } bg[NORMAL] = { 0.0, 0.5, 0.5 } fg[PRELIGHT] = { 1.0, 1.0, 1.0 } bg[PRELIGHT] = { 0.0, 0.55, 0.55 } fg[ACTIVE] = { 1.0, 0.0, 0.0 } bg[ACTIVE] = { 0, 0.5, 0.5 } fg[SELECTED] = { 1.0, 0.0, 0.0 } bg[SELECTED] = { 0, 0.5, 0.5 } } style "notebook" { fg[NORMAL] = { 0, 0, 0 } bg[NORMAL] = { 0.0, 0.5, 0.5 } fg[ACTIVE] = { 0, 0.0, 0.0 } bg[ACTIVE] = { 0.0, 0.45, 0.45 } } style "calendar" { fg[NORMAL] = { 0.0, 0.0, 0.0 } # normal days text and month/year text bg[NORMAL] = { 0.0, 0.7, 0.7 } # top header part and off month days fg[SELECTED] = { 0.0, 0.0, 0.0 } # selected and week numbers for GTK1.x bg[SELECTED] = { 0.0, 0.7, 0.7 } # selected and week numbers for GTK1.x text[SELECTED] = { 0.0, 0.0, 0.0 } # selected and week numbers for GTK2.x base[SELECTED] = { 0.0, 0.7, 0.7 } # selected and week numbers for GTK2.x text[ACTIVE] = { 0.0, 0.0, 0.0 } # week numbers when focus is not on widget for GTK2.x base[ACTIVE] = { 0.0, 0.7, 0.7 } # week numbers when focus is not on widget for GTK2.x fg[PRELIGHT] = { 1.0, 1.0, 1.0 } # prelights for arrows bg[PRELIGHT] = { 0.0, 0.7, 0.7 } # prelights for arrows base[NORMAL] = { 0.0, 0.5, 0.5 } # bg for calendar } ################################################################################ # These set the widget types to use the styles defined above. widget_class "GtkWindow" style "window" widget_class "GtkDialog" style "window" widget_class "GtkMessageDialog" style "window" widget_class "GtkFileSelection" style "window" widget_class "GtkFontSel*" style "notebook" widget_class "*GtkNotebook" style "notebook" widget_class "*GtkButton*" style "button" widget_class "*GtkCheckButton*" style "toggle_button" widget_class "*GtkRadioButton*" style "toggle_button" widget_class "*GtkToggleButton*" style "toggle_button" widget_class "*GtkSpinButton*" style "spin_button" widget_class "*Menu*" style "menu" widget_class "*GtkText" style "text" widget_class "*GtkTextView" style "text" widget_class "*GtkCList" style "text" widget_class "*GtkVScrollbar" style "text" widget_class "*GtkHScrollbar" style "text" widget_class "*GtkEventBox" style "window" widget_class "*GtkCalendar" style "calendar" ############################################################ # These set the widget types for named gtk widgets in the C code widget "*.button_app" style "button_app" widget "*.label_high" style "label_high" widget "*.today" style "today" widget "*tooltip*" style "tooltips" jpilot-1.8.1.2/print.h0000644000175000017500000000553411524574422011425 00000000000000/* $Id: print.h,v 1.9 2010-10-13 03:18:59 rikster5 Exp $ */ /******************************************************************************* * print.h * A module of J-Pilot http://jpilot.org * * Copyright (C) 2000-2002 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef _PRINT_H__ #define _PRINT_H__ #include "utils.h" #include "address.h" #define DAILY 1 #define WEEKLY 2 #define MONTHLY 3 extern int print_day_week_month; typedef enum { PAPER_Letter, PAPER_Legal, PAPER_Statement, PAPER_Tabloid, PAPER_Ledger, PAPER_Folio, PAPER_Quarto, PAPER_7x9, PAPER_9x11, PAPER_9x12, PAPER_10x13, PAPER_10x14, PAPER_Executive, PAPER_A0, PAPER_A1, PAPER_A2, PAPER_A3, PAPER_A4, PAPER_A5, PAPER_A6, PAPER_A7, PAPER_A8, PAPER_A9, PAPER_A10, PAPER_B0, PAPER_B1, PAPER_B2, PAPER_B3, PAPER_B4, PAPER_B5, PAPER_B6, PAPER_B7, PAPER_B8, PAPER_B9, PAPER_B10, PAPER_ISOB0, PAPER_ISOB1, PAPER_ISOB2, PAPER_ISOB3, PAPER_ISOB4, PAPER_ISOB5, PAPER_ISOB6, PAPER_ISOB7, PAPER_ISOB8, PAPER_ISOB9, PAPER_ISOB10, PAPER_C0, PAPER_C1, PAPER_C2, PAPER_C3, PAPER_C4, PAPER_C5, PAPER_C6, PAPER_C7, PAPER_DL, PAPER_Filo } PaperSize; /* The print options window * The main window should be passed in if possible, or NULL * Returns: * DIALOG_SAID_PRINT * DIALOG_SAID_CANCEL * <0 on error */ /* year_mon_day is a binary flag to choose which radio buttons appear for * datebook printing. * 1 = daily * 2 = weekly * 4 = monthly */ int print_gui(GtkWidget *main_window, int app, int date_button, int mon_week_day); int print_days_appts(struct tm *date); int print_months_appts(struct tm *date_in, PaperSize paper_size); int print_weeks_appts(struct tm *date_in, PaperSize paper_size); int print_contacts(ContactList *contact_list, struct ContactAppInfo *contact_app_info, address_schema_entry *schema, int schema_size); int print_todos(ToDoList *todo_list, char *category_name); int print_memos(MemoList *todo_list); #endif jpilot-1.8.1.2/print.c0000644000175000017500000011661011547063267011423 00000000000000/* $Id: print.c,v 1.55 2011-04-06 11:58:47 rousseau Exp $ */ /******************************************************************************* * print.c * A module of J-Pilot http://jpilot.org * * Copyright (C) 2000-2002 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /********************************* Includes ***********************************/ #include "config.h" #include #include #include #include #include #include "print.h" #include "print_headers.h" #include "print_logo.h" #include "datebook.h" #include "calendar.h" #include "address.h" #include "todo.h" #include "sync.h" #include "prefs.h" #include "log.h" #include "i18n.h" #ifdef HAVE_LOCALE_H # include #endif /********************************* Constants **********************************/ #ifdef JPILOT_PRINTABLE # define FLAG_CHAR 'A' # define Q_FLAG_CHAR "A" #else # define FLAG_CHAR 010 # define Q_FLAG_CHAR "\\010" #endif /******************************* Global vars **********************************/ static FILE *out; static int first_hour, first_min, last_hour, last_min; extern int datebk_category; static const char *PaperSizes[] = { "Letter", "Legal", "Statement", "Tabloid", "Ledger", "Folio", "Quarto", "7x9", "9x11", "9x12", "10x13", "10x14", "Executive", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", "B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10", "ISOB0", "ISOB1", "ISOB2", "ISOB3", "ISOB4", "ISOB5", "ISOB6", "ISOB7", "ISOB8", "ISOB9", "ISOB10", "C0", "C1", "C2", "C3", "C4", "C5", "C6", "C7", "DL", "Filo" }; /****************************** Prototypes ************************************/ static int fill_in(struct tm *date, CalendarEventList *a_list); static void ps_strncat(char *dest, const char *src, int n); /****************************** Main Code *************************************/ static FILE *print_open(void) { const char *command; get_pref(PREF_PRINT_COMMAND, NULL, &command); if (command) { return popen(command, "w"); } else { return NULL; } } static void print_close(FILE *f) { pclose(f); } static int courier_12(void) { /* fprintf(out, "/Courier 12 selectfont\n"); */ fprintf(out, "%cC12\n", FLAG_CHAR); return EXIT_SUCCESS; } static int courier_bold_12(void) { /* fprintf(out, "/Courier-Bold 12 selectfont\n"); */ fprintf(out, "%cCB12\n", FLAG_CHAR); return EXIT_SUCCESS; } static int clip_to_box(float x1, float y1, float x2, float y2) { fprintf(out, "%g inch %g inch %g inch %g inch rectclip\n", x1, y1, x2-x1, y2-y1); return EXIT_SUCCESS; } static int puttext(float x, float y, const char *text) { int len; char *buf; len = strlen(text); buf = malloc(2 * len + 1); memset(buf, 0, 2 * len + 1); ps_strncat(buf, text, 2 * len); fprintf(out, "%g inch %g inch moveto (%s) show\n", x, y, buf); free(buf); return EXIT_SUCCESS; } static int header(void) { time_t ltime; time(<ime); fprintf(out, "%%!PS-Adobe-2.0\n" "%%%%Creator: J-Pilot\n" "%%%%CreationDate: %s" "%%%%DocumentData: Clean7Bit\n" "%%%%Orientation: Portrait\n" "%%DocumentFonts: Times-Roman Times-Bold Courier Courier-Bold\n" "%%%%Magnification: 1.0000\n" "%%%%Pages: 1\n" "%%%%EndComments\n" "%%%%BeginProlog\n" ,ctime(<ime)); fprintf(out, "/PageSize (%s) def\n\n", PaperSizes[PAPER_Letter]); print_common_prolog(out); fprintf(out, "%%%%EndProlog\n" "%%%%BeginSetup\n"); print_common_setup(out); fprintf(out, "595 612 div 842 792 div Min dup scale %% HACK!!!! (CMB)\n"); /* This hack pre-scales to compensate for the standard scaling mechanism below, to avoid me having to redo the layout of the dayview for the A4 standard size page. */ fprintf(out, "%%%%EndSetup\n" "%%%%Page: 1 1\n\n"); return EXIT_SUCCESS; } static int print_dayview(struct tm *date, CalendarEventList *ce_list) { char str[80]; char datef[80]; time_t ltime; struct tm *now; const char *svalue; #ifdef HAVE_LOCALE_H char *current_locale; current_locale = setlocale(LC_NUMERIC,"C"); #endif header(); /* Draw the 2 gray columns and header block */ print_day_header(out); /* Put the month name up */ fprintf(out, "/Times-Bold-ISOLatin1 findfont 20 scalefont setfont\n" "newpath 0 setgray\n"); get_pref(PREF_LONGDATE, NULL, &svalue); strftime(str, sizeof(str), _(svalue), date); puttext(0.5, 10.25, str); /* Put the weekday name up */ fprintf(out, "/Times-Roman-ISOLatin1 findfont 15 scalefont setfont\n"); strftime(str, sizeof(str), "%A", date); puttext(0.5, 10, str); /* Put the time of printing up */ fprintf(out, "newpath\n" "/Times-Roman-ISOLatin1 findfont 10 scalefont setfont\n"); time(<ime); now = localtime(<ime); get_pref(PREF_SHORTDATE, NULL, &svalue); g_snprintf(datef, sizeof(datef), "%s %s", "Printed on: ", svalue); strftime(str, sizeof(str), datef, now); puttext(0.5, 0.9, str); puttext(7.5, 0.9, "J-Pilot"); fprintf(out, "stroke\n"); print_logo(out, 40, 90, 0.35); /* Put the appointments on the dayview calendar */ fill_in(date, ce_list); fprintf(out, "showpage\n"); fprintf(out, "%%%%EOF\n"); #ifdef HAVE_LOCALE_H setlocale(LC_ALL, current_locale); #endif return EXIT_SUCCESS; } static int fill_in(struct tm *date, CalendarEventList *ce_list) { CalendarEventList *temp_cel; int i; int hours[24]; int defaults1=0, defaults2=0; int hour24; int am; float top_y=9.40; float default_y=3.40; float indent1=1.25; float indent2=5.00; float step=0.12; /* This is the space between lines */ float x,y; int max_per_line=4; char str[256]; char datef[32]; for (i=0; i<24; i++) { hours[i]=0; } /* We have to go through them twice, once for AM, and once for PM * This is because of the clipping */ for (i=0; i<2; i++) { am=i%2; fprintf(out, "gsave\n"); if (am) { clip_to_box(1.25, 0.5, 4.25, 9.5); } else { clip_to_box(5.0, 0.5, 8.0, 9.5); } for (temp_cel = ce_list; temp_cel; temp_cel=temp_cel->next) { if (temp_cel->mcale.cale.description == NULL) { continue; } if (temp_cel->mcale.cale.event) { strcpy(str, " "); if (!am) { continue; } x=indent1; y=default_y - defaults1 * step; defaults1++; } else { hour24 = temp_cel->mcale.cale.begin.tm_hour; if ((hour24 > 11) && (am)) { continue; } if ((hour24 < 12) && (!am)) { continue; } get_pref_time_no_secs(datef); strftime(str, sizeof(str), datef, &temp_cel->mcale.cale.begin); if (hour24 > 11) { x=indent2; y=top_y - (hour24 - 12) * 0.5 - (hours[hour24]) * step; hours[hour24]++; if (hours[hour24] > max_per_line) { y=default_y - defaults2 * step; defaults2++; } } else { x=indent1; y=top_y - (hour24) * 0.5 - (hours[hour24]) * step; hours[hour24]++; if (hours[hour24] > max_per_line) { y=default_y - defaults1 * step; defaults1++; } } } if (temp_cel->mcale.cale.description) { strcat(str, " "); strncat(str, temp_cel->mcale.cale.description, sizeof(str)-strlen(str)-2); str[128]='\0'; /* FIXME: Add location in parentheses (loc) as the Palm does. * We would need to check strlen, etc., before adding */ } if (y > 1.0) { puttext(x, y, str); } else { jp_logf(JP_LOG_WARN, "Too many appointments, dropping one\n"); } } fprintf(out, "grestore\n"); } return EXIT_SUCCESS; } int print_days_appts(struct tm *date) { CalendarEventList *ce_list; out = print_open(); if (!out) { return EXIT_FAILURE; } ce_list = NULL; get_days_calendar_events2(&ce_list, date, 2, 2, 2, CATEGORY_ALL, NULL); print_dayview(date, ce_list); print_close(out); free_CalendarEventList(&ce_list); return EXIT_SUCCESS; } static int f_indent_print(FILE *f, int indent, char *str) { char *P; int i, col; col=indent; for (P=str; *P; P++) { col++; if ((*P==10) || (*P==13)) { fprintf(f, "%c", *P); for (i=indent; i; i--) { fprintf(f, " "); } col=indent; continue; } if (col>75) { fprintf(f, "\n"); for (i=indent; i; i--) { fprintf(f, " "); } col=indent+1; } fprintf(f, "%c", *P); } return EXIT_SUCCESS; } /*---------------------------------------------------------------------- * ps_strncat Escapes brackets for printing in PostScript strings *----------------------------------------------------------------------*/ void ps_strncat(char *dest, const char *src, int n) { int i = 0, j = 0; char *dest2; dest2 = strchr(dest, '\0'); while (j < n) { if (src[i] == '\0') { dest2[j]='\0'; break; } if (strchr("()", src[i]) != NULL) { if(jtm_year%4 == 0) && !(((date->tm_year+1900)%100==0) && ((date->tm_year+1900)%400!=0))) { days_in_month[1]++; } return(days_in_month[date->tm_mon]); } /*---------------------------------------------------------------------- * print_months_appts Function to print the current month's * appointments. *----------------------------------------------------------------------*/ static const char *MonthNames[] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; int print_months_appts(struct tm *date_in, PaperSize paper_size) { CalendarEventList *ce_list; CalendarEventList *temp_cel; struct tm date; char desc[100]; time_t ltime; int dow; int ndim; int n; long fdow; int mask; #ifdef ENABLE_DATEBK int ret; int cat_bit; int db3_type; long use_db3_tags; struct db4_struct db4; #endif #ifdef HAVE_LOCALE_H char *current_locale; #endif /*------------------------------------------------------------------ * Set up the PostScript output file, and print the header to it. *------------------------------------------------------------------*/ mask=0; time(<ime); #ifdef ENABLE_DATEBK get_pref(PREF_USE_DB3, &use_db3_tags, NULL); #endif #ifdef HAVE_LOCALE_H current_locale = setlocale(LC_NUMERIC,"C"); #endif if (! (out = print_open())) return(EXIT_FAILURE); fprintf(out, "%%!PS-Adobe-2.0\n" "%%%%Creator: J-Pilot\n" "%%%%CreationDate: %s" "%%%%DocumentData: Clean7Bit\n" "%%%%Orientation: Landscape\n\n" "%%DocumentFonts: Times-Roman Times-Bold Courier Courier-Bold\n" "%%%%Magnification: 1.0000\n" "%%%%Pages: 1\n" "%%%%EndComments\n" "%%%%BeginProlog\n" ,ctime(<ime)); fprintf(out, "/PageSize (%s) def\n\n", PaperSizes[paper_size]); print_common_prolog(out); fprintf(out, "%%%%EndProlog\n" "%%%%BeginSetup\n"); print_common_setup(out); print_month_header(out); fprintf(out, "%%%%EndSetup\n" "%%%%Page: 1 1\n\n"); /*------------------------------------------------------------------ * Extract the appointments *------------------------------------------------------------------*/ ce_list = NULL; memcpy(&date, date_in, sizeof(struct tm)); /* Get all of the appointments */ get_days_calendar_events2(&ce_list, NULL, 2, 2, 2, CATEGORY_ALL, NULL); get_month_info(date.tm_mon, 1, date.tm_year, &dow, &ndim); weed_calendar_event_list(&ce_list, date.tm_mon, date.tm_year, 0, &mask); /*------------------------------------------------------------------ * Loop through the days in the month, printing appointments *------------------------------------------------------------------*/ date.tm_mday=1; date.tm_sec=0; date.tm_min=0; date.tm_hour=11; date.tm_isdst=-1; mktime(&date); get_pref(PREF_FDOW, &fdow, NULL); fprintf(out, "(%s %d) %d (%s) (%s version %s) %ld InitialisePage\n\n", MonthNames[date_in->tm_mon], date_in->tm_year + 1900, date.tm_wday, ctime(<ime), PN, VERSION, fdow); for (n=0, date.tm_mday=1; date.tm_mday<=ndim; date.tm_mday++, n++) { date.tm_sec=0; date.tm_min=0; date.tm_hour=11; date.tm_isdst=-1; date.tm_wday=0; date.tm_yday=1; mktime(&date); fprintf(out, "%%--------------------------------------------------\n" "%%Stuff for day %2d being printed\n", date.tm_mday); fprintf(out, "NextDay\n"); for (temp_cel = ce_list; temp_cel; temp_cel=temp_cel->next) { #ifdef ENABLE_DATEBK if (use_db3_tags) { ret = db3_parse_tag(temp_cel->mcale.cale.note, &db3_type, &db4); /* jp_logf(JP_LOG_DEBUG, "category = 0x%x\n", db4.category); */ cat_bit=1<mcale.cale), &date)) { char tmp[20]; char datef1[20]; char datef2[20]; tmp[0]='\0'; if ( ! temp_cel->mcale.cale.event) { get_pref_time_no_secs(datef1); g_snprintf(datef2, sizeof(datef2), "(%s )", datef1); strftime(tmp, sizeof(tmp), datef2, &(temp_cel->mcale.cale.begin)); tmp[19]='\0'; } desc[0]='\0'; if (temp_cel->mcale.cale.description) { ps_strncat(desc, temp_cel->mcale.cale.description, 100); desc[sizeof(desc)-1]='\0'; /* FIXME: Add location in parentheses (loc) as the Palm does. * We would need to check strlen, etc., before adding */ } remove_cr_lfs(desc); fprintf(out, "%s (%s) %simedItem\n", tmp, desc, (strlen(tmp) == 0) ? "Unt" : "T" ); } } } /*------------------------------------------------------------------*/ memcpy(&date, date_in, sizeof(struct tm)); date.tm_mday = 1; /* Go to the first of the month */ mktime(&date); sub_months_from_date(&date, 1); strftime(desc, sizeof(desc), "(%B %Y) %w ", &date); fprintf(out, "\n\n%%----------------------------------------\n" "%% Now generate the small months\n\n" "%s %d ", desc, days_in_mon(&date)); add_months_to_date(&date, 2); strftime(desc, sizeof(desc), "(%B %Y) %w ", &date); fprintf(out, "%s %d SmallMonths\n", desc, days_in_mon(&date)); /*------------------------------------------------------------------*/ free_CalendarEventList(&ce_list); fprintf(out, "grestore\n"); print_logo(out, 20, 30, 0.35); fprintf(out, "\nshowpage\n"); fprintf(out, "%%%%EOF\n"); print_close(out); #ifdef HAVE_LOCALE_H setlocale(LC_NUMERIC, current_locale); #endif return EXIT_SUCCESS; } /*---------------------------------------------------------------------- * reset_first_last Routine to reset max/min appointment times *----------------------------------------------------------------------*/ static void reset_first_last(void) { first_hour = 25; first_min = 61; last_hour = -1; last_min = -1; } /*---------------------------------------------------------------------- * check_first_last Routine to track max/min appointment times *----------------------------------------------------------------------*/ static void check_first_last(CalendarEventList *cel) { struct tm *ApptTime; ApptTime = &(cel->mcale.cale.begin); if (ApptTime->tm_hour == first_hour) { if (ApptTime->tm_min < first_min) first_min = ApptTime->tm_min; } else if (ApptTime->tm_hour < first_hour) { first_hour = ApptTime->tm_hour; first_min = ApptTime->tm_min; } ApptTime = &(cel->mcale.cale.end); if (ApptTime->tm_hour == last_hour) { if (ApptTime->tm_min > last_min) last_min = ApptTime->tm_min; } else if (ApptTime->tm_hour > last_hour) { last_hour = ApptTime->tm_hour; last_min = ApptTime->tm_min; } } /*---------------------------------------------------------------------- * print_weeks_appts Function to print a weeks appointments onto a * weekly plan. We assume that date_in is the chosen * first day of the week. *----------------------------------------------------------------------*/ int print_weeks_appts(struct tm *date_in, PaperSize paper_size) { CalendarEventList *ce_list, *temp_cel; struct tm date; struct tm *today_date; char desc[256], short_date[32]; int n; time_t ltime; #ifdef ENABLE_DATEBK int ret; int cat_bit; int db3_type; long use_db3_tags; struct db4_struct db4; #endif #ifdef HAVE_LOCALE_H char *current_locale; #endif #ifdef ENABLE_DATEBK get_pref(PREF_USE_DB3, &use_db3_tags, NULL); #endif #ifdef HAVE_LOCALE_H current_locale = setlocale(LC_NUMERIC,"C"); #endif /*------------------------------------------------------------------ * Set up the PostScript output file, and print the header to it. *------------------------------------------------------------------*/ if (! (out = print_open())) return(EXIT_FAILURE); time(<ime); fprintf(out, "%%!PS-Adobe-2.0\n" "%%%%Creator: J-Pilot\n" "%%%%CreationDate: %s" "%%%%DocumentData: Clean7Bit\n" "%%%%Orientation: Landscape\n" "%%DocumentFonts: Times-Roman Times-Bold Courier Courier-Bold\n" "%%%%Magnification: 1.0000\n" "%%%%Pages: 1\n" "%%%%EndComments\n" "%%%%BeginProlog\n" ,ctime(<ime)); /*------------------------------------------------------------------ * These are preferences for page size (passed in), first and last * hours on the plan (default; scales if earlier or later are present), * and whether to print dashes across the page. *------------------------------------------------------------------*/ fprintf(out, "/PageSize (%s) def\n\n", PaperSizes[paper_size]); fprintf(out, "/FirstHour 9 def\n" "/LastHour 22 def\n"); fprintf(out, "/Dashes true def\n"); print_common_prolog(out); fprintf(out, "%%%%EndProlog\n" "%%%%BeginSetup\n"); print_common_setup(out); print_week_header(out); fprintf(out, "%%%%EndSetup\n" "%%%%Page: 1 1\n\n"); /*------------------------------------------------------------------ * Run through the appointments, looking for earliest and latest *------------------------------------------------------------------*/ ce_list = NULL; get_days_calendar_events2(&ce_list, NULL, 2, 2, 2, CATEGORY_ALL, NULL); reset_first_last(); memcpy(&date, date_in, sizeof(struct tm)); for (n = 0; n < 7; n++, add_days_to_date(&date, 1)) { for (temp_cel = ce_list; temp_cel; temp_cel=temp_cel->next) { #ifdef ENABLE_DATEBK if (use_db3_tags) { ret = db3_parse_tag(temp_cel->mcale.cale.note, &db3_type, &db4); cat_bit=1<mcale.cale), &date)) if (! temp_cel->mcale.cale.event) check_first_last(temp_cel); } } if (last_min > 0) last_hour++; /*------------------------------------------------------------------ * Now put in the finishing touches to the header, and kick-start * the printing process *------------------------------------------------------------------*/ today_date = localtime(<ime); fprintf(out, "%%------------------------------------------------------------\n" "%% This is today's date, the date of printing, plus the hour\n" "%% before & after the first and last appointments, respectively\n" "%d %d %d %d %d startprinting\n\n", today_date->tm_mday, today_date->tm_mon + 1, today_date->tm_year + 1900, first_hour, last_hour); fprintf(out, "( by %s version %s) show\n", PN, VERSION); print_logo(out, 20, 30, 0.35); /*------------------------------------------------------------------ * Run through the appointments, printing them out *------------------------------------------------------------------*/ free_CalendarEventList(&ce_list); ce_list = NULL; /* Get all of the appointments */ get_days_calendar_events2(&ce_list, NULL, 2, 2, 2, CATEGORY_ALL, NULL); /* iterate through seven days */ memcpy(&date, date_in, sizeof(struct tm)); for (n = 0; n < 7; n++, add_days_to_date(&date, 1)) { strftime(short_date, sizeof(short_date), "%a, %d %b, %Y", &date); fprintf(out, "%d startday\n(%s) dateline\n", n, short_date); for (temp_cel = ce_list; temp_cel; temp_cel=temp_cel->next) { #ifdef ENABLE_DATEBK if (use_db3_tags) { ret = db3_parse_tag(temp_cel->mcale.cale.note, &db3_type, &db4); jp_logf(JP_LOG_DEBUG, "category = 0x%x\n", db4.category); cat_bit=1<mcale.cale), &date)) { memset(desc, 0, sizeof(desc)); memset(short_date, 0, sizeof(short_date)); if ( ! temp_cel->mcale.cale.event) { char t1[6], t2[6], ht[3], mt[3]; int j, m; strftime(ht, sizeof(ht), "%H", &(temp_cel->mcale.cale.begin)); strftime(mt, sizeof(mt), "%M", &(temp_cel->mcale.cale.begin)); m = atoi(mt); snprintf(t1, sizeof(t1), "%s.%02d", ht, (int)((m * 100.)/60)); strftime(ht, sizeof(ht), "%H", &(temp_cel->mcale.cale.end)); strftime(mt, sizeof(mt), "%M", &(temp_cel->mcale.cale.end)); m = atoi(mt); snprintf(t2, sizeof(t2), "%s.%02d", ht, (int)((m * 100.)/60)); sprintf(short_date, "%s %s ", t1, t2); for (j=0; j<30;j++) short_date[j] =tolower(short_date[j]); } if (temp_cel->mcale.cale.description) { ps_strncat(desc, temp_cel->mcale.cale.description, 250); /* FIXME: Add location in parentheses (loc) as the Palm does. * We would need to check strlen, etc., before adding */ remove_cr_lfs(desc); } fprintf(out, "%s (%s) itemline\n", short_date, desc); } } } free_CalendarEventList(&ce_list); fprintf(out, "\nfinishprinting\n"); fprintf(out, "%%%%EOF\n"); print_close(out); #ifdef HAVE_LOCALE_H setlocale(LC_ALL, current_locale); #endif return EXIT_SUCCESS; } /* * Address code */ static int print_address_header(void) { time_t ltime; struct tm *date; const char *svalue; char str[256]; time(<ime); date = localtime(<ime); get_pref(PREF_SHORTDATE, NULL, &svalue); strftime(str, sizeof(str), svalue, date); fprintf(out, "%%!PS-Adobe-2.0\n" "%%%%Creator: J-Pilot\n" "%%%%CreationDate: %s" "%%%%DocumentData: Clean7Bit\n" /* XXX Title */ "%%%%Orientation: Portrait\n" /* XXX BoundingBox */ "%%DocumentFonts: Times-Roman Times-Bold " "Courier Courier-Bold ZapfDingbats\n" "%%%%Magnification: 1.0000\n" "%%%%BoundingBox: 36 36 576 756\n" "%%%%EndComments\n", ctime(<ime)); fprintf(out, "%%%%BeginProlog\n" "%%%%BeginResource: procset\n" "/inch {72 mul} def\n" "/left {0.5 inch} def\n" "/bottom {1.0 inch} def\n" "/bottom_hline {2.0 inch} def\n" "/footer {0.9 inch} def\n" "/top {10.5 inch 14 sub} def\n" "/buffer 1024 string def\n" "/scratch 128 string def\n" "/printobject {\n" "dup 128 string cvs dup (--nostringval--) eq {\n" "pop type24 string cvs\n" "}{\n" "exch pop\n" "} ifelse\n" "} bind def\n"); /* Checkbox stuff */ fprintf(out, "/checkboxcheck {\n" "%%currentpoint 6 add moveto\n" "%%4 -5 rlineto\n" "%%6 12 rlineto\n" "/ZapfDingbats 14 selectfont (4) show\n" /* or 3 if you prefer */ "} bind def\n" "/checkboxbox {\n" "8 0 rlineto\n" "0 8 rlineto\n" "-8 0 rlineto\n" "0 -8 rlineto\n" "} bind def\n" "/checkbox {\n" "currentpoint\n" "gsave\n" "newpath\n" "moveto\n" "1 setlinewidth\n" "checkboxbox\n" "stroke\n" "grestore\n" "} bind def\n" "/checkedbox {\n" "currentpoint\n" "gsave\n" "newpath\n" "moveto\n" "1 setlinewidth\n" "checkboxbox\n" "checkboxcheck\n" "stroke\n" "grestore\n" "} bind def\n" ); /* Recode font function */ fprintf(out, "/Recode {\n" "exch\n" "findfont\n" "dup length dict\n" "begin\n" "{ def\n" "} forall\n" "/Encoding ISOLatin1Encoding def\n" "currentdict\n" "end\n" "definefont pop\n" "} bind def\n"); fprintf(out, "/Times-Roman /Times-Roman-ISOLatin1 Recode\n" "/Courier /Courier-ISOLatin1 Recode\n" "/Courier-Bold /Courier-Bold-ISOLatin1 Recode\n"); fprintf(out, "/hline {\n" "currentpoint 1 add currentpoint 1 add\n" "currentpoint 4 add currentpoint 4 add\n" "gsave\n" "newpath\n" "moveto\n" "exch\n" "1.0 inch add\n" "exch\n" "7 setlinewidth\n" "lineto\n" "stroke\n" "%%\n" "newpath\n" "moveto\n" "exch\n" "7.5 inch add\n" "exch\n" "1 setlinewidth\n" "lineto\n" "stroke\n" "grestore\n" "} bind def\n" "%%\n" "%%\n"); fprintf(out, "/setup\n" "{\n" "/Times-Roman-ISOLatin1 10 selectfont\n" "left footer moveto\n" "(%s) show\n" "7.5 inch footer moveto\n" "(J-Pilot) show\n" "%% This assumes that the prev page number is on the stack\n" "4.25 inch footer moveto\n" "1 add dup printobject show\n" "/Courier-ISOLatin1 12 selectfont\n" "left top moveto\n" "} bind def\n" "/printit\n" "{\n" "{ %%loop\n" "currentfile buffer readline { %%ifelse\n" "("Q_FLAG_CHAR"LINEFEED) search { %%if\n" "pop pop pop showpage setup ( )\n" "currentpoint 14 add moveto\n" "} if\n" "("Q_FLAG_CHAR"HLINE) search { %%if\n" "currentpoint exch pop bottom_hline le { %%if\n" "pop pop pop\n" "showpage setup\n" "0 0 0\n" "} if\n" "hline\n" "pop pop pop ( )\n" "} if\n" "("Q_FLAG_CHAR"END) search { %%if\n" " showpage stop\n" "} if\n" "("Q_FLAG_CHAR"C12) search {\n" "/Courier-ISOLatin1 12 selectfont\n" "currentpoint 14 add moveto\n" "pop pop pop ( )\n" "} if\n" "("Q_FLAG_CHAR"CB12) search {\n" "/Courier-Bold-ISOLatin1 12 selectfont\n" "currentpoint 14 add moveto\n" "pop pop pop ( )\n" "} if\n", str ); /* Check box */ fprintf(out, "("Q_FLAG_CHAR"CHECKBOX) search {\n" "currentpoint exch pop bottom_hline le {\n" "pop pop pop\n" "showpage setup\n" "0 0 0\n" "} if\n" "checkbox\n" "currentpoint 14 add moveto\n" "pop pop pop ( )\n" "} if\n" ); /* Check box */ fprintf(out, "("Q_FLAG_CHAR"CHECKEDBOX) search {\n" "currentpoint exch pop bottom_hline le {\n" "pop pop pop\n" "showpage setup\n" "0 0 0\n" "} if\n" "checkedbox\n" "currentpoint 14 add moveto\n" "pop pop pop ( )\n" "} if\n" ); fprintf(out, "%%%%EndResource\n" "%%%%EndProlog\n"); /* XXX not exactly sure about position */ fprintf(out, "gsave show grestore\n" "currentpoint 14 sub moveto\n" "currentpoint exch pop bottom le { %%if\n" "showpage setup\n" "} if\n" "}{ %%else\n" "showpage exit\n" "} ifelse\n" "} loop\n" "} bind def\n" "0 %%The page number minus 1\n" "setup printit\n" ); return EXIT_SUCCESS; } int print_contacts(ContactList *contact_list, struct ContactAppInfo *contact_app_info, address_schema_entry *schema, int schema_size) { long one_rec_per_page; long lines_between_recs; ContactList *temp_cl; MyContact *mcont; int show1, show2, show3; int i; int address_i, phone_i, IM_i; char str[100]; char spaces[24]; char birthday_str[255]; const char *pref_date; char *utf; long char_set; #ifdef HAVE_LOCALE_H char *current_locale; #endif out = print_open(); if (!out) { return EXIT_FAILURE; } #ifdef HAVE_LOCALE_H current_locale = setlocale(LC_NUMERIC,"C"); #endif memset(spaces, ' ', sizeof(spaces)); get_pref(PREF_CHAR_SET, &char_set, NULL); print_address_header(); switch (addr_sort_order) { case SORT_BY_LNAME: default: show1=contLastname; show2=contFirstname; show3=contCompany; break; case SORT_BY_FNAME: show1=contFirstname; show2=contLastname; show3=contCompany; break; case SORT_BY_COMPANY: show1=contCompany; show2=contLastname; show3=contFirstname; break; } get_pref(PREF_PRINT_ONE_PER_PAGE, &one_rec_per_page, NULL); get_pref(PREF_NUM_BLANK_LINES, &lines_between_recs, NULL); for (temp_cl = contact_list; temp_cl; temp_cl=temp_cl->next) { fprintf(out, "%cHLINE\n", FLAG_CHAR); str[0]='\0'; if (temp_cl->mcont.cont.entry[show1] || temp_cl->mcont.cont.entry[show2]) { if (temp_cl->mcont.cont.entry[show1] && temp_cl->mcont.cont.entry[show2]) { g_snprintf(str, sizeof(str), "%s, %s", temp_cl->mcont.cont.entry[show1], temp_cl->mcont.cont.entry[show2]); } if (temp_cl->mcont.cont.entry[show1] && ! temp_cl->mcont.cont.entry[show2]) { strncpy(str, temp_cl->mcont.cont.entry[show1], 48); } if (! temp_cl->mcont.cont.entry[show1] && temp_cl->mcont.cont.entry[show2]) { strncpy(str, temp_cl->mcont.cont.entry[show2], 48); } } else if (temp_cl->mcont.cont.entry[show3]) { strncpy(str, temp_cl->mcont.cont.entry[show3], 48); } else { strcpy(str, "-Unnamed-"); } courier_bold_12(); fprintf(out, "%s\n", str); courier_12(); mcont = &(temp_cl->mcont); address_i=phone_i=IM_i=0; for (i=0; icont.entry[schema[i].record_field]) { switch (schema[i].type) { case ADDRESS_GUI_IM_MENU_TEXT: g_snprintf(str, 18, "%s:%s", contact_app_info->IMLabels[mcont->cont.IMLabel[IM_i]], spaces); fprintf(out, "%s", str); IM_i++; break; case ADDRESS_GUI_DIAL_SHOW_PHONE_MENU_TEXT: g_snprintf(str, 18, "%s:%s", contact_app_info->phoneLabels[mcont->cont.phoneLabel[phone_i]], spaces); fprintf(out, "%s", str); phone_i++; break; case ADDRESS_GUI_ADDR_MENU_TEXT: g_snprintf(str, 18, "%s:%s", contact_app_info->addrLabels[mcont->cont.addressLabel[address_i]], spaces); fprintf(out, "%s", str); address_i++; break; default: if (contact_app_info->labels[schema[i].record_field]) { utf = charset_p2newj(contact_app_info->labels[schema[i].record_field], 16, char_set); g_snprintf(str, 18, "%s:%s", utf, spaces); fprintf(out, "%s", str); g_free(utf); } else { g_snprintf(str, 18, ":%s", spaces); fprintf(out, "%s", str); } } switch (schema[i].type) { case ADDRESS_GUI_LABEL_TEXT: case ADDRESS_GUI_DIAL_SHOW_PHONE_MENU_TEXT: case ADDRESS_GUI_IM_MENU_TEXT: case ADDRESS_GUI_ADDR_MENU_TEXT: case ADDRESS_GUI_WEBSITE_TEXT: f_indent_print(out, 17, mcont->cont.entry[schema[i].record_field]); fprintf(out, "\n"); break; case ADDRESS_GUI_BIRTHDAY: if (mcont->cont.birthdayFlag) { birthday_str[0]='\0'; get_pref(PREF_SHORTDATE, NULL, &pref_date); strftime(birthday_str, sizeof(birthday_str), pref_date, &(mcont->cont.birthday)); g_snprintf(str, 18, "%s:%s", contact_app_info->labels[schema[i].record_field] ? contact_app_info->labels[schema[i].record_field] : "", spaces); fprintf(out, "%s", str); f_indent_print(out, 17, birthday_str); fprintf(out, "\n"); } break; } } } if (one_rec_per_page) { fprintf(out, "%cLINEFEED\n", FLAG_CHAR); } else { for (i=lines_between_recs; i>0; i--) { fprintf(out, "\n"); } } } print_close(out); #ifdef HAVE_LOCALE_H setlocale(LC_ALL, current_locale); #endif return EXIT_SUCCESS; } /* * ToDo code */ int print_todos(ToDoList *todo_list, char *category_name) { long one_rec_per_page; long lines_between_recs; ToDoList *temp_l; struct ToDo *todo; int indent; const char *datef; char str[100]; time_t ltime; struct tm *now; #ifdef HAVE_LOCALE_H char *current_locale; #endif out = print_open(); if (!out) { return EXIT_FAILURE; } #ifdef HAVE_LOCALE_H current_locale = setlocale(LC_NUMERIC,"C"); #endif fprintf(out, "%%!PS-Adobe-2.0\n\n" "/PageSize (%s) def\n\n", PaperSizes[PAPER_Letter]); print_common_prolog(out); print_common_setup(out); fprintf(out, "/CategoryName (%s) def\n", category_name); print_todo_header(out); get_pref(PREF_PRINT_ONE_PER_PAGE, &one_rec_per_page, NULL); get_pref(PREF_NUM_BLANK_LINES, &lines_between_recs, NULL); get_pref(PREF_SHORTDATE, NULL, &datef); time(<ime); now = localtime(<ime); strftime(str, sizeof(str), datef, now); indent=strlen(str) + 8; for (temp_l = todo_list; temp_l; temp_l=temp_l->next) { todo = &(temp_l->mtodo.todo); fprintf(out, todo->complete ? "true " : "false "); fprintf(out, "%d ", todo->priority); if (todo->indefinite) { sprintf(str, "%s ", "No Due"); str[indent-8]='\0'; } else { strftime(str, sizeof(str), datef, &(todo->due)); } fprintf(out, "(%s) ", str); if (todo->description) { int len; char *buf; len = strlen(todo->description); buf = malloc(2 * len + 1); memset(buf, 0, 2 * len + 1); ps_strncat(buf, todo->description, 2 * len); fprintf(out, "(%s) ", buf); free(buf); } else { fprintf(out, "() "); } if ((todo->note) && todo->note[0]) { int len; char *buf; len = strlen(todo->note); buf = malloc(2 * len + 1); memset(buf, 0, 2 * len + 1); ps_strncat(buf, todo->note, 2 * len); fprintf(out, "(%s) ", buf); free(buf); } else { fprintf(out, "()"); } fprintf(out, " Todo\n"); if (one_rec_per_page) { fprintf(out, "NewPage\n"); } } fprintf(out, "showpage\n"); print_close(out); #ifdef HAVE_LOCALE_H setlocale(LC_ALL, current_locale); #endif return EXIT_SUCCESS; } /* * Memo code */ int print_memos(MemoList *memo_list) { long one_rec_per_page; long lines_between_recs; MemoList *temp_l; struct Memo *memo; int i; #ifdef HAVE_LOCALE_H char *current_locale; #endif out = print_open(); if (!out) { return EXIT_FAILURE; } #ifdef HAVE_LOCALE_H current_locale = setlocale(LC_NUMERIC,"C"); #endif print_address_header(); get_pref(PREF_PRINT_ONE_PER_PAGE, &one_rec_per_page, NULL); get_pref(PREF_NUM_BLANK_LINES, &lines_between_recs, NULL); courier_12(); for (temp_l = memo_list; temp_l; temp_l=temp_l->next) { memo = &(temp_l->mmemo.memo); if (memo->text) { fprintf(out, "%cHLINE\n", FLAG_CHAR); f_indent_print(out, 0, memo->text); fprintf(out, "\n"); } if (one_rec_per_page) { fprintf(out, "%cLINEFEED\n", FLAG_CHAR); } else { for (i=lines_between_recs; i>0; i--) { fprintf(out, "\n"); } } } fprintf(out, "%cEND\n", FLAG_CHAR); #ifdef HAVE_LOCALE_H setlocale(LC_ALL, current_locale); #endif print_close(out); return EXIT_SUCCESS; } jpilot-1.8.1.2/BUGS0000644000175000017500000000375011022756003010567 00000000000000============================================================================== The most recent list of bugs can be found at http://bugs.jpilot.org To report new bugs please use the reporting form on bugs.jpilot.org When reporting a bug, particularly if the bug is reproduceable, it may be helpful to run 'jpilot -d' to turn debug mode on. Perform the sequence of actions necessary to reproduce the error and then include the log file(~/.jpilot/jpilot.log) in the bug report. ============================================================================== These are some of the known bugs: * Priority High: * Priority Medium: - print system is not i18n compliant * Priority Low: - Kyocera QCP 6035 phone/palm combos don't close the address database, so it can't be sync'ed. It is a Kyocera problem, and there is no known solution. - Setting the time on Palm OS 3.3 in a conduit will crash the handheld. SyncTime will detect OS 3.3 and do nothing. The fix is to upgrade Palm OS. * Priority Who Cares?: * Quirks (not really bugs): - jpilot lets you enter in blank todo's, etc. The palm pilot will not allow this. - The palm pilot will only let you make appointments on 5 minute intervals. jpilot will allow 1 minute intervals. - The PalmOS datebook will alarm on private records even when they are hidden and they show up on the screen. Right, or wrong, who knows. Jpilot will do the same. * Palm OS bugs that have been found while creating J-Pilot - If you try to sync with a pilotrate of 0 then the palm pilot with get a fatal exception and reboot. (tested on 3.1) This is a PalmOS bug. - The Palm pilot will let you sync (add) an appointment that repeats weekly, but doesn't repeat on any day. It won't show up in the calendar, but if you search for it, it shows up. When you click on it in find, a Fatal Exception occurs and the Pilot reboots. This is a PalmOS bug if you ask me. - Empty appointments crash Palm OS 2.0 (Jpilot doesn't allow them anymore) jpilot-1.8.1.2/ltmain.sh0000644000175000017500000105202211702305111011714 00000000000000 # libtool (GNU libtool) 2.4.2 # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, # 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --no-quiet, --no-silent # print informational messages (default) # --no-warn don't display warning messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print more informational messages than default # --no-verbose don't print the extra informational messages # --version print version information # -h, --help, --help-all print short, long, or detailed help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. When passed as first option, # `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . # GNU libtool home page: . # General help using GNU software: . PROGRAM=libtool PACKAGE=libtool VERSION="2.4.2 Debian-2.4.2-1" TIMESTAMP="" package_revision=1.3337 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } # NLS nuisances: We save the old values to restore during execute mode. lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done LC_ALL=C LANGUAGE=C export LANGUAGE LC_ALL $lt_unset CDPATH # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" : ${CP="cp -f"} test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_dirname may be replaced by extended shell implementation # func_basename file func_basename () { func_basename_result=`$ECHO "${1}" | $SED "$basename"` } # func_basename may be replaced by extended shell implementation # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` } # func_dirname_and_basename may be replaced by extended shell implementation # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname may be replaced by extended shell implementation # These SED scripts presuppose an absolute path with a trailing slash. pathcar='s,^/\([^/]*\).*$,\1,' pathcdr='s,^/[^/]*,,' removedotparts=':dotsl s@/\./@/@g t dotsl s,/\.$,/,' collapseslashes='s@/\{1,\}@/@g' finalslash='s,/*$,/,' # func_normal_abspath PATH # Remove doubled-up and trailing slashes, "." path components, # and cancel out any ".." path components in PATH after making # it an absolute path. # value returned in "$func_normal_abspath_result" func_normal_abspath () { # Start from root dir and reassemble the path. func_normal_abspath_result= func_normal_abspath_tpath=$1 func_normal_abspath_altnamespace= case $func_normal_abspath_tpath in "") # Empty path, that just means $cwd. func_stripname '' '/' "`pwd`" func_normal_abspath_result=$func_stripname_result return ;; # The next three entries are used to spot a run of precisely # two leading slashes without using negated character classes; # we take advantage of case's first-match behaviour. ///*) # Unusual form of absolute path, do nothing. ;; //*) # Not necessarily an ordinary path; POSIX reserves leading '//' # and for example Cygwin uses it to access remote file shares # over CIFS/SMB, so we conserve a leading double slash if found. func_normal_abspath_altnamespace=/ ;; /*) # Absolute path, do nothing. ;; *) # Relative path, prepend $cwd. func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ;; esac # Cancel out all the simple stuff to save iterations. We also want # the path to end with a slash for ease of parsing, so make sure # there is one (and only one) here. func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` while :; do # Processed it all yet? if test "$func_normal_abspath_tpath" = / ; then # If we ascended to the root using ".." the result may be empty now. if test -z "$func_normal_abspath_result" ; then func_normal_abspath_result=/ fi break fi func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcar"` func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcdr"` # Figure out what to do with it case $func_normal_abspath_tcomponent in "") # Trailing empty path component, ignore it. ;; ..) # Parent dir; strip last assembled component from result. func_dirname "$func_normal_abspath_result" func_normal_abspath_result=$func_dirname_result ;; *) # Actual path component, append it. func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent ;; esac done # Restore leading double-slash if one was found on entry. func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } # func_relative_path SRCDIR DSTDIR # generates a relative path from SRCDIR to DSTDIR, with a trailing # slash if non-empty, suitable for immediately appending a filename # without needing to append a separator. # value returned in "$func_relative_path_result" func_relative_path () { func_relative_path_result= func_normal_abspath "$1" func_relative_path_tlibdir=$func_normal_abspath_result func_normal_abspath "$2" func_relative_path_tbindir=$func_normal_abspath_result # Ascend the tree starting from libdir while :; do # check if we have found a prefix of bindir case $func_relative_path_tbindir in $func_relative_path_tlibdir) # found an exact match func_relative_path_tcancelled= break ;; $func_relative_path_tlibdir*) # found a matching prefix func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" func_relative_path_tcancelled=$func_stripname_result if test -z "$func_relative_path_result"; then func_relative_path_result=. fi break ;; *) func_dirname $func_relative_path_tlibdir func_relative_path_tlibdir=${func_dirname_result} if test "x$func_relative_path_tlibdir" = x ; then # Have to descend all the way to the root! func_relative_path_result=../$func_relative_path_result func_relative_path_tcancelled=$func_relative_path_tbindir break fi func_relative_path_result=../$func_relative_path_result ;; esac done # Now calculate path; take care to avoid doubling-up slashes. func_stripname '' '/' "$func_relative_path_result" func_relative_path_result=$func_stripname_result func_stripname '/' '/' "$func_relative_path_tcancelled" if test "x$func_stripname_result" != x ; then func_relative_path_result=${func_relative_path_result}/${func_stripname_result} fi # Normalisation. If bindir is libdir, return empty string, # else relative path ending with a slash; either way, target # file name can be directly appended. if test ! -z "$func_relative_path_result"; then func_stripname './' '' "$func_relative_path_result/" func_relative_path_result=$func_stripname_result fi } # The name of this program: func_dirname_and_basename "$progpath" progname=$func_basename_result # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution that turns a string into a regex matching for the # string literally. sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' # Sed substitution that converts a w32 file name or path # which contains forward slashes, into one that contains # (escaped) backslashes. A very naive implementation. lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname: ${opt_mode+$opt_mode: }$*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` done my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "$my_tmpdir" } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "$1" | $SED \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_tr_sh # Turn $1 into a string suitable for a shell variable name. # Result is stored in $func_tr_sh_result. All characters # not in the set a-zA-Z0-9_ are replaced with '_'. Further, # if $1 begins with a digit, a '_' is prepended as well. func_tr_sh () { case $1 in [0-9]* | *[!a-zA-Z0-9_]*) func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` ;; * ) func_tr_sh_result=$1 ;; esac } # func_version # Echo version message to standard output and exit. func_version () { $opt_debug $SED -n '/(C)/!b go :more /\./!{ N s/\n# / / b more } :go /^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $opt_debug $SED -n '/^# Usage:/,/^# *.*--help/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" echo $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help [NOEXIT] # Echo long help message to standard output and exit, # unless 'noexit' is passed as argument. func_help () { $opt_debug $SED -n '/^# Usage:/,/# Report bugs to/ { :print s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ p d } /^# .* home page:/b print /^# General help using/b print ' < "$progpath" ret=$? if test -z "$1"; then exit $ret fi } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { $opt_debug func_error "missing argument for $1." exit_cmd=exit } # func_split_short_opt shortopt # Set func_split_short_opt_name and func_split_short_opt_arg shell # variables after splitting SHORTOPT after the 2nd character. func_split_short_opt () { my_sed_short_opt='1s/^\(..\).*$/\1/;q' my_sed_short_rest='1s/^..\(.*\)$/\1/;q' func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` } # func_split_short_opt may be replaced by extended shell implementation # func_split_long_opt longopt # Set func_split_long_opt_name and func_split_long_opt_arg shell # variables after splitting LONGOPT at the `=' sign. func_split_long_opt () { my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^--[^=]*=//' func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` } # func_split_long_opt may be replaced by extended shell implementation exit_cmd=: magic="%%%MAGIC variable%%%" magic_exe="%%%MAGIC EXE variable%%%" # Global variables. nonopt= preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" extracted_archives= extracted_serial=0 # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "${1}=\$${1}\${2}" } # func_append may be replaced by extended shell implementation # func_append_quoted var value # Quote VALUE and append to the end of shell variable VAR, separated # by a space. func_append_quoted () { func_quote_for_eval "${2}" eval "${1}=\$${1}\\ \$func_quote_for_eval_result" } # func_append_quoted may be replaced by extended shell implementation # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "${@}"` } # func_arith may be replaced by extended shell implementation # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` } # func_len may be replaced by extended shell implementation # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` } # func_lo2o may be replaced by extended shell implementation # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` } # func_xform may be replaced by extended shell implementation # func_fatal_configuration arg... # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { func_error ${1+"$@"} func_error "See the $PACKAGE documentation for more information." func_fatal_error "Fatal configuration error." } # func_config # Display the configuration for all the tags in this script. func_config () { re_begincf='^# ### BEGIN LIBTOOL' re_endcf='^# ### END LIBTOOL' # Default configuration. $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" # Now print the configurations for the tags. for tagname in $taglist; do $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done exit $? } # func_features # Display the features supported by this script. func_features () { echo "host: $host" if test "$build_libtool_libs" = yes; then echo "enable shared libraries" else echo "disable shared libraries" fi if test "$build_old_libs" = yes; then echo "enable static libraries" else echo "disable static libraries" fi exit $? } # func_enable_tag tagname # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { # Global variable: tagname="$1" re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" sed_extractcf="/$re_begincf/,/$re_endcf/p" # Validate tagname. case $tagname in *[!-_A-Za-z0-9,/]*) func_fatal_error "invalid tag name: $tagname" ;; esac # Don't test for the "default" C tag, as we know it's # there but not specially marked. case $tagname in CC) ;; *) if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Option defaults: opt_debug=: opt_dry_run=false opt_config=false opt_preserve_dup_deps=false opt_features=false opt_finish=false opt_help=false opt_help_all=false opt_silent=: opt_warning=: opt_verbose=: opt_silent=false opt_verbose=false # Parse options once, thoroughly. This comes as soon as possible in the # script to make things like `--version' happen as quickly as we can. { # this just eases exit handling while test $# -gt 0; do opt="$1" shift case $opt in --debug|-x) opt_debug='set -x' func_echo "enabling shell trace mode" $opt_debug ;; --dry-run|--dryrun|-n) opt_dry_run=: ;; --config) opt_config=: func_config ;; --dlopen|-dlopen) optarg="$1" opt_dlopen="${opt_dlopen+$opt_dlopen }$optarg" shift ;; --preserve-dup-deps) opt_preserve_dup_deps=: ;; --features) opt_features=: func_features ;; --finish) opt_finish=: set dummy --mode finish ${1+"$@"}; shift ;; --help) opt_help=: ;; --help-all) opt_help_all=: opt_help=': help-all' ;; --mode) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_mode="$optarg" case $optarg in # Valid mode arguments: clean|compile|execute|finish|install|link|relink|uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac shift ;; --no-silent|--no-quiet) opt_silent=false func_append preserve_args " $opt" ;; --no-warning|--no-warn) opt_warning=false func_append preserve_args " $opt" ;; --no-verbose) opt_verbose=false func_append preserve_args " $opt" ;; --silent|--quiet) opt_silent=: func_append preserve_args " $opt" opt_verbose=false ;; --verbose|-v) opt_verbose=: func_append preserve_args " $opt" opt_silent=false ;; --tag) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_tag="$optarg" func_append preserve_args " $opt $optarg" func_enable_tag "$optarg" shift ;; -\?|-h) func_usage ;; --help) func_help ;; --version) func_version ;; # Separate optargs to long options: --*=*) func_split_long_opt "$opt" set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} shift ;; # Separate non-argument short options: -\?*|-h*|-n*|-v*) func_split_short_opt "$opt" set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} shift ;; --) break ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) set dummy "$opt" ${1+"$@"}; shift; break ;; esac done # Validate options: # save first non-option argument if test "$#" -gt 0; then nonopt="$opt" shift fi # preserve --debug test "$opt_debug" = : || func_append preserve_args " --debug" case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ;; esac $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$opt_dlopen" && test "$opt_mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$opt_mode' for more information." } # Bail if the options were screwed $exit_cmd $EXIT_FAILURE } ## ----------- ## ## Main. ## ## ----------- ## # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_resolve_sysroot PATH # Replace a leading = in PATH with a sysroot. Store the result into # func_resolve_sysroot_result func_resolve_sysroot () { func_resolve_sysroot_result=$1 case $func_resolve_sysroot_result in =*) func_stripname '=' '' "$func_resolve_sysroot_result" func_resolve_sysroot_result=$lt_sysroot$func_stripname_result ;; esac } # func_replace_sysroot PATH # If PATH begins with the sysroot, replace it with = and # store the result into func_replace_sysroot_result. func_replace_sysroot () { case "$lt_sysroot:$1" in ?*:"$lt_sysroot"*) func_stripname "$lt_sysroot" '' "$1" func_replace_sysroot_result="=$func_stripname_result" ;; *) # Including no sysroot. func_replace_sysroot_result=$1 ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T </dev/null` if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | $SED -e "$lt_sed_naive_backslashify"` else func_convert_core_file_wine_to_w32_result= fi fi } # end: func_convert_core_file_wine_to_w32 # func_convert_core_path_wine_to_w32 ARG # Helper function used by path conversion functions when $build is *nix, and # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly # configured wine environment available, with the winepath program in $build's # $PATH. Assumes ARG has no leading or trailing path separator characters. # # ARG is path to be converted from $build format to win32. # Result is available in $func_convert_core_path_wine_to_w32_result. # Unconvertible file (directory) names in ARG are skipped; if no directory names # are convertible, then the result may be empty. func_convert_core_path_wine_to_w32 () { $opt_debug # unfortunately, winepath doesn't convert paths, only file names func_convert_core_path_wine_to_w32_result="" if test -n "$1"; then oldIFS=$IFS IFS=: for func_convert_core_path_wine_to_w32_f in $1; do IFS=$oldIFS func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" if test -n "$func_convert_core_file_wine_to_w32_result" ; then if test -z "$func_convert_core_path_wine_to_w32_result"; then func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" else func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" fi fi done IFS=$oldIFS fi } # end: func_convert_core_path_wine_to_w32 # func_cygpath ARGS... # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or # (2), returns the Cygwin file name or path in func_cygpath_result (input # file name or path is assumed to be in w32 format, as previously converted # from $build's *nix or MSYS format). In case (3), returns the w32 file name # or path in func_cygpath_result (input file name or path is assumed to be in # Cygwin format). Returns an empty string on error. # # ARGS are passed to cygpath, with the last one being the file name or path to # be converted. # # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH # environment variable; do not put it in $PATH. func_cygpath () { $opt_debug if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` if test "$?" -ne 0; then # on failure, ensure result is empty func_cygpath_result= fi else func_cygpath_result= func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" fi } #end: func_cygpath # func_convert_core_msys_to_w32 ARG # Convert file name or path ARG from MSYS format to w32 format. Return # result in func_convert_core_msys_to_w32_result. func_convert_core_msys_to_w32 () { $opt_debug # awkward: cmd appends spaces to result func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` } #end: func_convert_core_msys_to_w32 # func_convert_file_check ARG1 ARG2 # Verify that ARG1 (a file name in $build format) was converted to $host # format in ARG2. Otherwise, emit an error message, but continue (resetting # func_to_host_file_result to ARG1). func_convert_file_check () { $opt_debug if test -z "$2" && test -n "$1" ; then func_error "Could not determine host file name corresponding to" func_error " \`$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_file_result="$1" fi } # end func_convert_file_check # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH # Verify that FROM_PATH (a path in $build format) was converted to $host # format in TO_PATH. Otherwise, emit an error message, but continue, resetting # func_to_host_file_result to a simplistic fallback value (see below). func_convert_path_check () { $opt_debug if test -z "$4" && test -n "$3"; then func_error "Could not determine the host path corresponding to" func_error " \`$3'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This is a deliberately simplistic "conversion" and # should not be "improved". See libtool.info. if test "x$1" != "x$2"; then lt_replace_pathsep_chars="s|$1|$2|g" func_to_host_path_result=`echo "$3" | $SED -e "$lt_replace_pathsep_chars"` else func_to_host_path_result="$3" fi fi } # end func_convert_path_check # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT # and appending REPL if ORIG matches BACKPAT. func_convert_path_front_back_pathsep () { $opt_debug case $4 in $1 ) func_to_host_path_result="$3$func_to_host_path_result" ;; esac case $4 in $2 ) func_append func_to_host_path_result "$3" ;; esac } # end func_convert_path_front_back_pathsep ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## # invoked via `$to_host_file_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # Result will be available in $func_to_host_file_result. # func_to_host_file ARG # Converts the file name ARG from $build format to $host format. Return result # in func_to_host_file_result. func_to_host_file () { $opt_debug $to_host_file_cmd "$1" } # end func_to_host_file # func_to_tool_file ARG LAZY # converts the file name ARG from $build format to toolchain format. Return # result in func_to_tool_file_result. If the conversion in use is listed # in (the comma separated) LAZY, no conversion takes place. func_to_tool_file () { $opt_debug case ,$2, in *,"$to_tool_file_cmd",*) func_to_tool_file_result=$1 ;; *) $to_tool_file_cmd "$1" func_to_tool_file_result=$func_to_host_file_result ;; esac } # end func_to_tool_file # func_convert_file_noop ARG # Copy ARG to func_to_host_file_result. func_convert_file_noop () { func_to_host_file_result="$1" } # end func_convert_file_noop # func_convert_file_msys_to_w32 ARG # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_file_result. func_convert_file_msys_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_to_host_file_result="$func_convert_core_msys_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_w32 # func_convert_file_cygwin_to_w32 ARG # Convert file name ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_file_cygwin_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # because $build is cygwin, we call "the" cygpath in $PATH; no need to use # LT_CYGPATH in this case. func_to_host_file_result=`cygpath -m "$1"` fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_cygwin_to_w32 # func_convert_file_nix_to_w32 ARG # Convert file name ARG from *nix to w32 format. Requires a wine environment # and a working winepath. Returns result in func_to_host_file_result. func_convert_file_nix_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_file_wine_to_w32 "$1" func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_w32 # func_convert_file_msys_to_cygwin ARG # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_file_msys_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_cygpath -u "$func_convert_core_msys_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_cygwin # func_convert_file_nix_to_cygwin ARG # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed # in a wine environment, working winepath, and LT_CYGPATH set. Returns result # in func_to_host_file_result. func_convert_file_nix_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. func_convert_core_file_wine_to_w32 "$1" func_cygpath -u "$func_convert_core_file_wine_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_cygwin ############################################# # $build to $host PATH CONVERSION FUNCTIONS # ############################################# # invoked via `$to_host_path_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # The result will be available in $func_to_host_path_result. # # Path separators are also converted from $build format to $host format. If # ARG begins or ends with a path separator character, it is preserved (but # converted to $host format) on output. # # All path conversion functions are named using the following convention: # file name conversion function : func_convert_file_X_to_Y () # path conversion function : func_convert_path_X_to_Y () # where, for any given $build/$host combination the 'X_to_Y' value is the # same. If conversion functions are added for new $build/$host combinations, # the two new functions must follow this pattern, or func_init_to_host_path_cmd # will break. # func_init_to_host_path_cmd # Ensures that function "pointer" variable $to_host_path_cmd is set to the # appropriate value, based on the value of $to_host_file_cmd. to_host_path_cmd= func_init_to_host_path_cmd () { $opt_debug if test -z "$to_host_path_cmd"; then func_stripname 'func_convert_file_' '' "$to_host_file_cmd" to_host_path_cmd="func_convert_path_${func_stripname_result}" fi } # func_to_host_path ARG # Converts the path ARG from $build format to $host format. Return result # in func_to_host_path_result. func_to_host_path () { $opt_debug func_init_to_host_path_cmd $to_host_path_cmd "$1" } # end func_to_host_path # func_convert_path_noop ARG # Copy ARG to func_to_host_path_result. func_convert_path_noop () { func_to_host_path_result="$1" } # end func_convert_path_noop # func_convert_path_msys_to_w32 ARG # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_path_result. func_convert_path_msys_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from ARG. MSYS # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; # and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_msys_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_msys_to_w32 # func_convert_path_cygwin_to_w32 ARG # Convert path ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_path_cygwin_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_cygwin_to_w32 # func_convert_path_nix_to_w32 ARG # Convert path ARG from *nix to w32 format. Requires a wine environment and # a working winepath. Returns result in func_to_host_file_result. func_convert_path_nix_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_nix_to_w32 # func_convert_path_msys_to_cygwin ARG # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_path_msys_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_msys_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_msys_to_cygwin # func_convert_path_nix_to_cygwin ARG # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a # a wine environment, working winepath, and LT_CYGPATH set. Returns result in # func_to_host_file_result. func_convert_path_nix_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_nix_to_cygwin # func_mode_compile arg... func_mode_compile () { $opt_debug # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= pie_flag= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) test -n "$libobj" && \ func_fatal_error "you cannot specify \`-o' more than once" arg_mode=target continue ;; -pie | -fpie | -fPIE) func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) func_append later " $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" func_append_quoted lastarg "$arg" done IFS="$save_ifs" func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. func_append base_compile " $lastarg" continue ;; *) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in arg) func_fatal_error "you must specify an argument for -Xcompile" ;; target) func_fatal_error "you must specify a target with \`-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" libobj="$func_basename_result" } ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo case $libobj in *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; esac case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) func_fatal_error "cannot determine name of library object from \`$libobj'" ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no continue ;; -static) build_libtool_libs=no build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done func_quote_for_eval "$libobj" test "X$libobj" != "X$func_quote_for_eval_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist func_append removelist " $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir func_append command " -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. func_append command "$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$opt_mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $opt_mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to build PIC objects only -prefer-non-pic try to build non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking -Wc,FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$opt_mode'" ;; esac echo $ECHO "Try \`$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then if test "$opt_help" = :; then func_mode_help else { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do func_mode_help done } | sed -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do echo func_mode_help done } | sed '1d /^When reporting/,/^Report/{ H d } $x /information about other modes/d /more detailed .*MODE/d s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' fi exit $? fi # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $opt_dlopen; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_append_quoted args "$file" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" echo "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$opt_mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libs= libdirs= admincmds= for opt in "$nonopt" ${1+"$@"} do if test -d "$opt"; then func_append libdirs " $opt" elif test -f "$opt"; then if func_lalib_unsafe_p "$opt"; then func_append libs " $opt" else func_warning "\`$opt' is not a valid libtool archive" fi else func_fatal_error "invalid argument \`$opt'" fi done if test -n "$libs"; then if test -n "$lt_sysroot"; then sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" else sysroot_cmd= fi # Remove sysroot references if $opt_dry_run; then for lib in $libs; do echo "removing references to $lt_sysroot and \`=' prefixes from $lib" done else tmpdir=`func_mktempdir` for lib in $libs; do sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ > $tmpdir/tmp-la mv -f $tmpdir/tmp-la $lib done ${RM}r "$tmpdir" fi fi if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || func_append admincmds " $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then echo "----------------------------------------------------------------------" echo "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" echo "specify the full pathname of the library, or use the \`-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then echo " - add LIBDIR to the \`$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then echo " - add LIBDIR to the \`$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi echo echo "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" echo "pages." ;; *) echo "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac echo "----------------------------------------------------------------------" fi exit $EXIT_SUCCESS } test "$opt_mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. case $nonopt in *shtool*) :;; *) false;; esac; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" func_append install_prog "$func_quote_for_eval_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; *) install_cp=false ;; esac # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= no_mode=: for arg do arg2= if test -n "$dest"; then func_append files " $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) if $install_cp; then :; else prev=$arg fi ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then if test "x$prev" = x-m && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" func_append install_prog " $func_quote_for_eval_result" if test -n "$arg2"; then func_quote_for_eval "$arg2" fi func_append install_shared_prog " $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else func_quote_for_eval "$install_override_mode" func_append install_shared_prog " -m $func_quote_for_eval_result" fi fi if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. func_append staticlibs " $file" ;; *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" func_append dir "$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && func_append staticlibs " $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$opt_mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_to_tool_file "$progfile" func_convert_file_msys_to_w32 func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" case $host in *cygwin* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" eval "curr_lafile=\$libfile_$func_tr_sh_result" dlprefile_dlbasename="" if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then # Use subshell, to avoid clobbering current variable values dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` if test -n "$dlprefile_dlname" ; then func_basename "$dlprefile_dlname" dlprefile_dlbasename="$func_basename_result" else # no lafile. user explicitly requested -dlpreopen . $sharedlib_from_linklib_cmd "$dlprefile" dlprefile_dlbasename=$sharedlib_from_linklib_result fi fi $opt_dry_run || { if test -n "$dlprefile_dlbasename" ; then eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' else func_warning "Could not compute DLL name from $name" eval '$ECHO ": $name " >> "$nlist"' fi func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" } else # not an import lib $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } fi ;; *) $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } ;; esac done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; extern LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) func_append symtab_cflags " $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. # Despite the name, also deal with 64 bit binaries. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then func_to_tool_file "$1" func_convert_file_msys_to_w32 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_cygming_dll_for_implib ARG # # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib () { $opt_debug sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` } # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs # # The is the core of a fallback implementation of a # platform-specific function to extract the name of the # DLL associated with the specified import library LIBNAME. # # SECTION_NAME is either .idata$6 or .idata$7, depending # on the platform and compiler that created the implib. # # Echos the name of the DLL associated with the # specified import library. func_cygming_dll_for_implib_fallback_core () { $opt_debug match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` $OBJDUMP -s --section "$1" "$2" 2>/dev/null | $SED '/^Contents of section '"$match_literal"':/{ # Place marker at beginning of archive member dllname section s/.*/====MARK====/ p d } # These lines can sometimes be longer than 43 characters, but # are always uninteresting /:[ ]*file format pe[i]\{,1\}-/d /^In archive [^:]*:/d # Ensure marker is printed /^====MARK====/p # Remove all lines with less than 43 characters /^.\{43\}/!d # From remaining lines, remove first 43 characters s/^.\{43\}//' | $SED -n ' # Join marker and all lines until next marker into a single line /^====MARK====/ b para H $ b para b :para x s/\n//g # Remove the marker s/^====MARK====// # Remove trailing dots and whitespace s/[\. \t]*$// # Print /./p' | # we now have a list, one entry per line, of the stringified # contents of the appropriate section of all members of the # archive which possess that section. Heuristic: eliminate # all those which have a first or second character that is # a '.' (that is, objdump's representation of an unprintable # character.) This should work for all archives with less than # 0x302f exports -- but will fail for DLLs whose name actually # begins with a literal '.' or a single character followed by # a '.'. # # Of those that remain, print the first one. $SED -e '/^\./d;/^.\./d;q' } # func_cygming_gnu_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is a GNU/binutils-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_gnu_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` test -n "$func_cygming_gnu_implib_tmp" } # func_cygming_ms_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is an MS-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_ms_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` test -n "$func_cygming_ms_implib_tmp" } # func_cygming_dll_for_implib_fallback ARG # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # # This fallback implementation is for use when $DLLTOOL # does not support the --identify-strict option. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib_fallback () { $opt_debug if func_cygming_gnu_implib_p "$1" ; then # binutils import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` elif func_cygming_ms_implib_p "$1" ; then # ms-generated import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` else # unknown sharedlib_from_linklib_result="" fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" if test "$lock_old_archive_extraction" = yes; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' if test "$lock_old_archive_extraction" = yes; then $opt_dry_run || rm -f "$lockfile" fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` $ECHO "\ # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } ECHO=\"$qECHO\" fi # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper # /script/ and the wrapper /executable/ which is used only on # windows platforms, and (c) all begin with the string "--lt-" # (application programs are unlikely to have options which match # this pattern). # # There are only two supported options: --lt-debug and # --lt-dump-script. There is, deliberately, no --lt-help. # # The first argument to this parsing function should be the # script's $0 value, followed by "$@". lt_option_debug= func_parse_lt_options () { lt_script_arg0=\$0 shift for lt_opt do case \"\$lt_opt\" in --lt-debug) lt_option_debug=1 ;; --lt-dump-script) lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` cat \"\$lt_dump_D/\$lt_dump_F\" exit 0 ;; --lt-*) \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 exit 1 ;; esac done # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 fi } # Used when --lt-debug. Prints its arguments to stdout # (redirection is the responsibility of the caller) func_lt_dump_args () { lt_dump_args_N=1; for lt_arg do \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } # Core function for launching the target application func_exec_program_core () { " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 } # A function to encapsulate launching the target application # Strips options in the --lt-* namespace from \$@ and # launches target application with the remaining arguments. func_exec_program () { case \" \$* \" in *\\ --lt-*) for lt_wr_arg do case \$lt_wr_arg in --lt-*) ;; *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; esac shift done ;; esac func_exec_program_core \${1+\"\$@\"} } # Parse options func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # fixup the dll searchpath if we need to. # # Fix the DLL searchpath if we need to. Do this before prepending # to shlibpath, because on Windows, both are PATH and uninstalled # libraries must come first. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. func_exec_program \${1+\"\$@\"} fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include #else # include # include # ifdef __CYGWIN__ # include # endif #endif #include #include #include #include #include #include #include #include /* declarations of non-ANSI functions */ #if defined(__MINGW32__) # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif #elif defined(__CYGWIN__) # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif /* #elif defined (other platforms) ... */ #endif /* portability defines, excluding path handling macros */ #if defined(_MSC_VER) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC # ifndef _INTPTR_T_DEFINED # define _INTPTR_T_DEFINED # define intptr_t int # endif #elif defined(__MINGW32__) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv #elif defined(__CYGWIN__) # define HAVE_SETENV # define FOPEN_WB "wb" /* #elif defined (other platforms) ... */ #endif #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif /* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #if defined(LT_DEBUGWRAPPER) static int lt_debug = 1; #else static int lt_debug = 0; #endif const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_debugprintf (const char *file, int line, const char *fmt, ...); void lt_fatal (const char *file, int line, const char *message, ...); static const char *nonnull (const char *s); static const char *nonempty (const char *s); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); char **prepare_spawn (char **argv); void lt_dump_script (FILE *f); EOF cat <= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", nonempty (path)); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", nonempty (wrapper)); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { lt_debugprintf (__FILE__, __LINE__, "checking path component for symlinks: %s\n", tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { lt_fatal (__FILE__, __LINE__, "error accessing file \"%s\": %s", tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal (__FILE__, __LINE__, "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } void lt_debugprintf (const char *file, int line, const char *fmt, ...) { va_list args; if (lt_debug) { (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } } static void lt_error_core (int exit_status, const char *file, int line, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } static const char * nonnull (const char *s) { return s ? s : "(null)"; } static const char * nonempty (const char *s) { return (s && !*s) ? "(empty)" : nonnull (s); } void lt_setenv (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_setenv) setting '%s' to '%s'\n", nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } void lt_update_exe_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF case $host_os in mingw*) cat <<"EOF" /* Prepares an argument vector before calling spawn(). Note that spawn() does not by itself call the command interpreter (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&v); v.dwPlatformId == VER_PLATFORM_WIN32_NT; }) ? "cmd.exe" : "command.com"). Instead it simply concatenates the arguments, separated by ' ', and calls CreateProcess(). We must quote the arguments since Win32 CreateProcess() interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a special way: - Space and tab are interpreted as delimiters. They are not treated as delimiters if they are surrounded by double quotes: "...". - Unescaped double quotes are removed from the input. Their only effect is that within double quotes, space and tab are treated like normal characters. - Backslashes not followed by double quotes are not special. - But 2*n+1 backslashes followed by a double quote become n backslashes followed by a double quote (n >= 0): \" -> " \\\" -> \" \\\\\" -> \\" */ #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" char ** prepare_spawn (char **argv) { size_t argc; char **new_argv; size_t i; /* Count number of arguments. */ for (argc = 0; argv[argc] != NULL; argc++) ; /* Allocate new argument vector. */ new_argv = XMALLOC (char *, argc + 1); /* Put quoted arguments into the new argument vector. */ for (i = 0; i < argc; i++) { const char *string = argv[i]; if (string[0] == '\0') new_argv[i] = xstrdup ("\"\""); else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) { int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); size_t length; unsigned int backslashes; const char *s; char *quoted_string; char *p; length = 0; backslashes = 0; if (quote_around) length++; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') length += backslashes + 1; length++; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) length += backslashes + 1; quoted_string = XMALLOC (char, length + 1); p = quoted_string; backslashes = 0; if (quote_around) *p++ = '"'; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') { unsigned int j; for (j = backslashes + 1; j > 0; j--) *p++ = '\\'; } *p++ = c; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) { unsigned int j; for (j = backslashes; j > 0; j--) *p++ = '\\'; *p++ = '"'; } *p = '\0'; new_argv[i] = quoted_string; } else new_argv[i] = (char *) string; } new_argv[argc] = NULL; return new_argv; } EOF ;; esac cat <<"EOF" void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | $SED -n -e ' s/^\(.\{79\}\)\(..*\)/\1\ \2/ h s/\([\\"]\)/\\\1/g s/$/\\n/ s/\([^\n]*\).*/ fputs ("\1", f);/p g D' cat <<"EOF" } EOF } # end: func_emit_cwrapperexe_src # func_win32_import_lib_p ARG # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { $opt_debug case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no bindir= dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in bindir) bindir="$arg" prev= continue ;; dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then func_append dlfiles " $arg" else func_append dlprefiles " $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) func_append deplibs " $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # func_append moreargs " $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) func_append xrpath " $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) func_append weak_libs " $arg" prev= continue ;; xcclinker) func_append linker_flags " $qarg" func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) func_append linker_flags " $qarg" func_append compiler_flags " $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -bindir) prev=bindir continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname "-L" '' "$arg" if test -z "$func_stripname_result"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "* | *" $arg "*) # Will only happen for absolute or sysroot arguments ;; *) # Preserve sysroot, but never include relative directories case $dir in [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; *) func_append deplibs " -L$dir" ;; esac func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework func_append deplibs " System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi func_append deplibs " $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot|--sysroot) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) func_append new_inherited_linker_flags " $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; =*) func_stripname '=' '' "$dir" dir=$lt_sysroot$func_stripname_result ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" func_append arg " $func_quote_for_eval_result" func_append compiler_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" func_append arg " $wl$func_quote_for_eval_result" func_append compiler_flags " $wl$func_quote_for_eval_result" func_append linker_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # Flags to be passed through unchanged, with rationale: # -64, -mips[0-9] enable 64-bit mode for the SGI compiler # -r[0-9][0-9]* specify processor for the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler # +DA*, +DD* enable 64-bit mode for the HP compiler # -q* compiler args for the IBM compiler # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC # @file GCC response files # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-flto*|-fwhopr*|-fuse-linker-plugin) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. func_append objs " $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. func_append deplibs " $arg" func_append old_deplibs " $arg" continue ;; *.la) # A libtool-controlled library. func_resolve_sysroot "$arg" if test "$prev" = dlfiles; then # This library was specified with -dlopen. func_append dlfiles " $func_resolve_sysroot_result" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. func_append dlprefiles " $func_resolve_sysroot_result" prev= else func_append deplibs " $func_resolve_sysroot_result" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" func_to_tool_file "$output_objdir/" tool_output_objdir=$func_to_tool_file_result # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_preserve_dup_deps ; then case "$libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append libs " $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; esac func_append pre_post_deps " $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS%" test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= func_resolve_sysroot "$lib" case $lib in *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do func_basename "$deplib" deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; *) func_append deplibs " $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append compiler_flags " $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) func_resolve_sysroot "$deplib" lib=$func_resolve_sysroot_result ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because the file extensions .$libext of this argument makes me believe" echo "*** that it is just a static archive that I should not use here." else echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. func_append newdlprefiles " $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append newdlfiles " $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && func_append dlfiles " $dlopen" test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi continue fi # $pass = conv # Get the name of the library we link against. linklib= if test -n "$old_library" && { test "$prefer_static_libs" = yes || test "$prefer_static_libs,$installed" = "built,no"; }; then linklib=$old_library else for l in $old_library $library_names; do linklib="$l" done fi if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. func_append dlprefiles " $lib $dependency_libs" else func_append newdlfiles " $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$lt_sysroot$libdir" absdir="$lt_sysroot$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later func_append notinst_path " $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later func_append notinst_path " $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi case "$host" in # special handling for platforms with PE-DLLs. *cygwin* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both # static and shared are present. Therefore, ensure we extract # symbols from the import library if a shared library is present # (otherwise, the dlopen module name will be incorrect). We do # this by putting the import library name into $newdlprefiles. # We recover the dlopen module name by 'saving' the la file # name in a special purpose variable, and (later) extracting the # dlname from the la file. if test -n "$dlname"; then func_tr_sh "$dir/$linklib" eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" func_append newdlprefiles " $dir/$linklib" else func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" fi ;; * ) # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then func_append newdlprefiles " $dir/$dlname" else func_append newdlprefiles " $dir/$linklib" fi ;; esac fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then func_append newlib_search_path " $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) func_append temp_rpath "$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded func_append notinst_deplibs " $lib" need_relink=no ;; *) if test "$installed" = no; then func_append notinst_deplibs " $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then echo if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$opt_mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then echo echo "*** And there doesn't seem to be a static archive available" echo "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$absdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) func_append compile_shlibpath "$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$opt_mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. echo $ECHO "*** Warning: This system can not link to static lib archive $lib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then echo "*** But as you try to build a module library, libtool will still create " echo "*** a static module, that should work as long as the dlopening application" echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) func_append xrpath " $temp_xrpath";; esac;; *) func_append temp_deplibs " $libdir";; esac done dependency_libs="$temp_deplibs" fi func_append newlib_search_path " $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result";; *) func_resolve_sysroot "$deplib" ;; esac if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $func_resolve_sysroot_result "*) func_append specialdeplibs " $func_resolve_sysroot_result" ;; esac fi func_append tmp_libs " $func_resolve_sysroot_result" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path="$deplib" ;; *.la) func_resolve_sysroot "$deplib" deplib=$func_resolve_sysroot_result func_dirname "$deplib" "" "." dir=$func_dirname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) func_append lib_search_path " $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) func_append tmp_libs " $deplib" ;; esac ;; *) func_append tmp_libs " $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" func_append objs "$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" func_append libobjs " $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in # correct linux to gnu/linux during the next big refactor darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|qnx|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; *) func_fatal_configuration "$modename: unknown library version type \`$version_type'" ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. func_append verstring ":${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" func_append libobjs " $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$opt_mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi func_append removelist " $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do func_replace_sysroot "$libdir" func_append temp_xrpath " -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) func_append dlfiles " $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) func_append dlprefiles " $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework func_append deplibs " System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then func_append deplibs " -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` $nocaseglob else potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` fi for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` done fi case $tmp_deplibs in *[!\ \ ]*) echo if test "X$deplibs_check_method" = "Xnone"; then echo "*** Warning: inter-library dependencies are not supported in this platform." else echo "*** Warning: inter-library dependencies are not known to be supported." fi echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes ;; esac ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then echo echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" echo "*** a static module, that should work as long as the dlopening" echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else echo "*** The inter-library dependencies that have been dropped here will be" echo "*** automatically added whenever a program is linked with this library" echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then echo echo "*** Since this library must not contain undefined symbols," echo "*** because either the platform does not support them or" echo "*** it was explicitly requested with -no-undefined," echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then # Remove ${wl} instances when linking with ld. # FIXME: should test the right _cmds variable. case $archive_cmds in *\$LD\ *) wl= ;; esac if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$opt_mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then func_replace_sysroot "$libdir" libdir=$func_replace_sysroot_result if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append dep_rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do func_append linknames " $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" func_append delfiles " $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd1 in $cmds; do IFS="$save_ifs" # Take the normal branch if the nm_file_list_spec branch # doesn't work or if tool conversion is not needed. case $nm_file_list_spec~$to_tool_file_cmd in *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) try_normal_branch=yes eval cmd=\"$cmd1\" func_len " $cmd" len=$func_len_result ;; *) try_normal_branch=no ;; esac if test "$try_normal_branch" = yes \ && { test "$len" -lt "$max_cmd_len" \ || test "$max_cmd_len" -le -1; } then func_show_eval "$cmd" 'exit $?' skipped_export=false elif test -n "$nm_file_list_spec"; then func_basename "$output" output_la=$func_basename_result save_libobjs=$libobjs save_output=$output output=${output_objdir}/${output_la}.nm func_to_tool_file "$output" libobjs=$nm_file_list_spec$func_to_tool_file_result func_append delfiles " $output" func_verbose "creating $NM input file list: $output" for obj in $save_libobjs; do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > "$output" eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' output=$save_output libobjs=$save_libobjs skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) func_append tmp_deplibs " $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $convenience func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output func_basename "$output" output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" echo 'INPUT (' > $output for obj in $save_libobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done echo ')' >> $output func_append delfiles " $output" func_to_tool_file "$output" output=$func_to_tool_file_result elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done func_append delfiles " $output" func_to_tool_file "$output" output=$firstobj\"$file_list_spec$func_to_tool_file_result\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ reload_objs="$objlist $last_robj" eval concat_cmds=\"\${concat_cmds}$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi func_append delfiles " $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` else gentop="$output_objdir/${obj}x" func_append generated " $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # If we're not building shared, we need to use non_pic_objs test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) func_append compile_command " ${wl}-bind_at_load" func_append finalize_command " ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done compile_deplibs="$new_libs" func_append compile_command " $compile_deplibs" func_append finalize_command " $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) func_append dllsearchpath ":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) func_append finalize_perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=no ;; *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do func_append rpath "$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output_objdir/$outputname" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then func_append oldobjs " $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $addlibs func_append oldobjs " $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append oldobjs " $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else echo "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" func_append oldobjs " $gentop/$newobj" ;; *) func_append oldobjs " $obj" ;; esac done fi func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds elif test -n "$archiver_list_spec"; then func_verbose "using command file archive linking..." for obj in $oldobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > $output_objdir/$libname.libcmd func_to_tool_file "$output_objdir/$libname.libcmd" oldobjs=" $archiver_list_spec$func_to_tool_file_result" cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" func_resolve_sysroot "$deplib" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ;; -L*) func_stripname -L '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -L$func_replace_sysroot_result" ;; -R*) func_stripname -R '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -R$func_replace_sysroot_result" ;; *) func_append newdependency_libs " $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; *) func_append newdlfiles " $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlfiles " $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlprefiles " $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin # In fact, it would be nice if we could use this code for all target # systems that can't hard-code library paths into their executables # and that have no shared library path variable independent of PATH, # but it turns out we can't easily determine that from inspecting # libtool variables, so we have to hard-code the OSs to which it # applies here; at the moment, that means platforms that use the PE # object format with DLL files. See the long comment at the top of # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test "x$bindir" != x ; then func_relative_path "$install_libdir" "$bindir" tdlname=$func_relative_path_result$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname fi ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$opt_mode" = link || test "$opt_mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) func_append RM " $arg"; rmforce=yes ;; -*) func_append RM " $arg" ;; *) func_append files " $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then odir="$objdir" else odir="$dir/$objdir" fi func_basename "$file" name="$func_basename_result" test "$opt_mode" = uninstall && odir="$dir" # Remember odir for removal later, being careful to avoid duplicates if test "$opt_mode" = clean; then case " $rmdirs " in *" $odir "*) ;; *) func_append rmdirs " $odir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do func_append rmfiles " $odir/$n" done test -n "$old_library" && func_append rmfiles " $odir/$old_library" case "$opt_mode" in clean) case " $library_names " in *" $dlname "*) ;; *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; esac test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then func_append rmfiles " $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) if test "$opt_mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe func_append rmfiles " $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result func_append rmfiles " $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles func_append rmfiles " $odir/$name $odir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then func_append rmfiles " $odir/lt-$name" fi if test "X$noexename" != "X$name" ; then func_append rmfiles " $odir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$opt_mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 jpilot-1.8.1.2/install_gui.c0000644000175000017500000003247711524574422012604 00000000000000/* $Id: install_gui.c,v 1.31 2010-11-06 23:25:05 rikster5 Exp $ */ /******************************************************************************* * install_gui.c * A module of J-Pilot http://jpilot.org * * Copyright (C) 1999-2010 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /********************************* Includes ***********************************/ #include "config.h" #include #include #include #include #include #include #include "i18n.h" #include "utils.h" #include "prefs.h" #include "log.h" /********************************* Constants **********************************/ #define INST_SDCARD_COLUMN 0 #define INST_FNAME_COLUMN 1 /******************************* Global vars **********************************/ static GtkWidget *filew=NULL; static GtkWidget *clist; static int clist_row_selected; /****************************** Prototypes ************************************/ static int install_update_clist(void); /****************************** Main Code *************************************/ static int install_remove_line(int deleted_line_num) { FILE *in; FILE *out; char line[1002]; char *Pc; int r, line_count; in = jp_open_home_file(EPN".install", "r"); if (!in) { jp_logf(JP_LOG_DEBUG, "failed opening install_file\n"); return EXIT_FAILURE; } out = jp_open_home_file(EPN".install.tmp", "w"); if (!out) { fclose(in); jp_logf(JP_LOG_DEBUG, "failed opening install_file.tmp\n"); return EXIT_FAILURE; } /* Delete line by copying file and skipping over line to delete */ for (line_count=0; !feof(in); line_count++) { line[0]='\0'; Pc = fgets(line, 1000, in); if (!Pc) { break; } if (line_count == deleted_line_num) { continue; } r = fprintf(out, "%s", line); if (r==EOF) { break; } } fclose(in); fclose(out); rename_file(EPN".install.tmp", EPN".install"); return EXIT_SUCCESS; } int install_append_line(const char *line) { FILE *out; int r; out = jp_open_home_file(EPN".install", "a"); if (!out) { return EXIT_FAILURE; } r = fprintf(out, "%s\n", line); if (r==EOF) { fclose(out); return EXIT_FAILURE; } fclose(out); return EXIT_SUCCESS; } static int install_modify_line(int modified_line_num, const char *modified_line) { FILE *in; FILE *out; char line[1002]; char *Pc; int r, line_count; in = jp_open_home_file(EPN".install", "r"); if (!in) { jp_logf(JP_LOG_DEBUG, "failed opening install_file\n"); return EXIT_FAILURE; } out = jp_open_home_file(EPN".install.tmp", "w"); if (!out) { fclose(in); jp_logf(JP_LOG_DEBUG, "failed opening install_file.tmp\n"); return EXIT_FAILURE; } /* Delete line by copying file and skipping over line to delete */ for (line_count=0; !feof(in); line_count++) { line[0]='\0'; Pc = fgets(line, 1000, in); if (!Pc) { break; } if (line_count == modified_line_num) { r = fprintf(out, "%s\n", modified_line); } else { r = fprintf(out, "%s", line); } if (r==EOF) { break; } } fclose(in); fclose(out); rename_file(EPN".install.tmp", EPN".install"); return EXIT_SUCCESS; } static gboolean cb_destroy(GtkWidget *widget) { filew = NULL; gtk_main_quit(); return TRUE; } /* Save working directory for future installs */ static void cb_quit(GtkWidget *widget, gpointer data) { const char *sel; char dir[MAX_PREF_LEN+2]; struct stat statb; int i; jp_logf(JP_LOG_DEBUG, "Quit\n"); sel = gtk_file_selection_get_filename(GTK_FILE_SELECTION(data)); g_strlcpy(dir, sel, MAX_PREF_LEN); if (stat(sel, &statb)) { jp_logf(JP_LOG_WARN, "File selected was not stat-able\n"); } if (S_ISDIR(statb.st_mode)) { /* For directory, add '/' indicator to path */ i = strlen(dir); dir[i]='/', dir[i+1]='\0'; } else { /* Otherwise, strip off filename to find actual directory */ for (i=strlen(dir); i>=0; i--) { if (dir[i]=='/') { dir[i+1]='\0'; break; } } } set_pref(PREF_INSTALL_PATH, 0, dir, TRUE); filew = NULL; gtk_widget_destroy(data); } static void cb_add(GtkWidget *widget, gpointer data) { const char *sel; struct stat statb; jp_logf(JP_LOG_DEBUG, "install: cb_add\n"); sel = gtk_file_selection_get_filename(GTK_FILE_SELECTION(data)); jp_logf(JP_LOG_DEBUG, "file selected [%s]\n", sel); /* Check to see if its a regular file */ if (stat(sel, &statb)) { jp_logf(JP_LOG_DEBUG, "File selected was not stat-able\n"); return; } if (!S_ISREG(statb.st_mode)) { jp_logf(JP_LOG_DEBUG, "File selected was not a regular file\n"); return; } install_append_line(sel); install_update_clist(); } static void cb_remove(GtkWidget *widget, gpointer data) { if (clist_row_selected < 0) { return; } jp_logf(JP_LOG_DEBUG, "Remove line %d\n", clist_row_selected); install_remove_line(clist_row_selected); install_update_clist(); } static void cb_clist_selection(GtkWidget *clist, gint row, gint column, GdkEventButton *event, gpointer data) { char fname[1000]; char *gtk_str; clist_row_selected = row; if (column == INST_SDCARD_COLUMN) { /* Toggle display of SDCARD pixmap */ if (gtk_clist_get_text(GTK_CLIST(clist), row, column, NULL)) { GdkPixmap *pixmap; GdkBitmap *mask; get_pixmaps(clist, PIXMAP_SDCARD, &pixmap, &mask); gtk_clist_set_pixmap(GTK_CLIST(clist), row, column, pixmap, mask); gtk_clist_get_text(GTK_CLIST(clist), row, INST_FNAME_COLUMN, >k_str); fname[0] = '\001'; g_strlcpy(&fname[1], gtk_str, sizeof(fname)-1); install_modify_line(row, fname); } else { gtk_clist_set_text(GTK_CLIST(clist), row, column, ""); gtk_clist_get_text(GTK_CLIST(clist), row, INST_FNAME_COLUMN, >k_str); g_strlcpy(&fname[0], gtk_str, sizeof(fname)); install_modify_line(row, fname); } } return; } static int install_update_clist(void) { FILE *in; char line[1002]; char *Pc; char *new_line[3]; int last_row_selected; int count; int len; int sdcard_install; new_line[0]=""; new_line[1]=line; new_line[2]=NULL; last_row_selected = clist_row_selected; in = jp_open_home_file(EPN".install", "r"); if (!in) { return EXIT_FAILURE; } gtk_signal_disconnect_by_func(GTK_OBJECT(clist), GTK_SIGNAL_FUNC(cb_clist_selection), NULL); gtk_clist_freeze(GTK_CLIST(clist)); gtk_clist_clear(GTK_CLIST(clist)); #ifdef __APPLE__ gtk_clist_thaw(GTK_CLIST(clist)); gtk_widget_hide(clist); gtk_widget_show_all(clist); gtk_clist_freeze(GTK_CLIST(clist)); #endif for (count=0; !feof(in); count++) { line[0]='\0'; Pc = fgets(line, 1000, in); if (!Pc) { break; } /* Strip newline characters from end of string */ len=strlen(line); if ((line[len-1]=='\n') || (line[len-1]=='\r')) line[len-1]='\0'; if ((line[len-2]=='\n') || (line[len-2]=='\r')) line[len-2]='\0'; sdcard_install = (line[0] == '\001'); /* Strip char indicating SDCARD install from start of string */ if (sdcard_install) { new_line[1] = &line[1]; } else { new_line[1] = &line[0]; } gtk_clist_append(GTK_CLIST(clist), new_line); /* Add SDCARD icon for files to be installed on SDCARD */ if (sdcard_install) { GdkPixmap *pixmap; GdkBitmap *mask; get_pixmaps(clist, PIXMAP_SDCARD, &pixmap, &mask); gtk_clist_set_pixmap(GTK_CLIST(clist), count, INST_SDCARD_COLUMN, pixmap, mask); } } fclose(in); gtk_signal_connect(GTK_OBJECT(clist), "select_row", GTK_SIGNAL_FUNC(cb_clist_selection), NULL); if (last_row_selected > count-1) { last_row_selected = count - 1; } if (last_row_selected >= 0) { clist_select_row(GTK_CLIST(clist), last_row_selected, INST_FNAME_COLUMN); } gtk_clist_thaw(GTK_CLIST(clist)); return EXIT_SUCCESS; } int install_gui(GtkWidget *main_window, int w, int h, int x, int y) { GtkWidget *scrolled_window; GtkWidget *button; GtkWidget *label; GtkWidget *pixmapwid; GdkPixmap *pixmap; GdkBitmap *mask; char temp_str[256]; const char *svalue; gchar *titles[] = {"", _("Files to install")}; if (filew) { return EXIT_SUCCESS; } clist_row_selected = 0; g_snprintf(temp_str, sizeof(temp_str), "%s %s", PN, _("Install")); filew = gtk_widget_new(GTK_TYPE_FILE_SELECTION, "type", GTK_WINDOW_TOPLEVEL, "title", temp_str, NULL); gtk_window_set_default_size(GTK_WINDOW(filew), w, h); gtk_widget_set_uposition(filew, x, y); gtk_window_set_modal(GTK_WINDOW(filew), TRUE); gtk_window_set_transient_for(GTK_WINDOW(filew), GTK_WINDOW(main_window)); get_pref(PREF_INSTALL_PATH, NULL, &svalue); if (svalue && svalue[0]) { gtk_file_selection_set_filename(GTK_FILE_SELECTION(filew), svalue); } gtk_file_selection_hide_fileop_buttons((gpointer) filew); gtk_widget_hide((GTK_FILE_SELECTION(filew)->cancel_button)); gtk_signal_connect(GTK_OBJECT(filew), "destroy", GTK_SIGNAL_FUNC(cb_destroy), filew); /* Even though I hide the ok button I still want to connect its signal */ /* because a double click on the file name also calls this callback */ gtk_widget_hide(GTK_WIDGET(GTK_FILE_SELECTION(filew)->ok_button)); gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filew)->ok_button), "clicked", GTK_SIGNAL_FUNC(cb_add), filew); clist = gtk_clist_new_with_titles(2, titles); gtk_widget_set_usize(GTK_WIDGET(clist), 0, 166); gtk_clist_column_titles_passive(GTK_CLIST(clist)); gtk_clist_set_column_auto_resize(GTK_CLIST(clist), INST_SDCARD_COLUMN, TRUE); gtk_clist_set_selection_mode(GTK_CLIST(clist), GTK_SELECTION_BROWSE); get_pixmaps(clist, PIXMAP_SDCARD, &pixmap, &mask); #ifdef __APPLE__ mask = NULL; #endif pixmapwid = gtk_pixmap_new(pixmap, mask); gtk_clist_set_column_widget(GTK_CLIST(clist), INST_SDCARD_COLUMN, pixmapwid); gtk_clist_set_column_justification(GTK_CLIST(clist), INST_SDCARD_COLUMN, GTK_JUSTIFY_CENTER); gtk_signal_connect(GTK_OBJECT(clist), "select_row", GTK_SIGNAL_FUNC(cb_clist_selection), NULL); /* Scrolled Window for file list */ scrolled_window = gtk_scrolled_window_new(NULL, NULL); gtk_container_add(GTK_CONTAINER(scrolled_window), GTK_WIDGET(clist)); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_set_border_width(GTK_CONTAINER(scrolled_window), 5); gtk_box_pack_start(GTK_BOX(GTK_FILE_SELECTION(filew)->action_area), scrolled_window, TRUE, TRUE, 0); label = gtk_label_new(_("To change to a hidden directory type it below and hit TAB")); gtk_box_pack_start(GTK_BOX(GTK_FILE_SELECTION(filew)->main_vbox), label, FALSE, FALSE, 0); /* Add/Remove/Quit buttons */ button = gtk_button_new_from_stock(GTK_STOCK_ADD); gtk_box_pack_start(GTK_BOX(GTK_FILE_SELECTION(filew)->ok_button->parent), button, TRUE, TRUE, 0); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_add), filew); button = gtk_button_new_from_stock(GTK_STOCK_REMOVE); gtk_box_pack_start(GTK_BOX(GTK_FILE_SELECTION(filew)->ok_button->parent), button, TRUE, TRUE, 0); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_remove), filew); button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); gtk_box_pack_start(GTK_BOX(GTK_FILE_SELECTION(filew)->ok_button->parent), button, TRUE, TRUE, 0); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_quit), filew); /**********************************************************************/ gtk_widget_show_all(filew); /* Hide default buttons not used by Jpilot file selector */ gtk_widget_hide(GTK_FILE_SELECTION(filew)->cancel_button); gtk_widget_hide(GTK_FILE_SELECTION(filew)->ok_button); install_update_clist(); gtk_main(); return EXIT_SUCCESS; } jpilot-1.8.1.2/aclocal.m40000644000175000017500000014365111702305113011746 00000000000000# generated automatically by aclocal 1.11.1 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, [m4_warning([this file was generated for autoconf 2.68. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) # serial 40 IT_PROG_INTLTOOL AC_DEFUN([IT_PROG_INTLTOOL], [ AC_PREREQ([2.50])dnl AC_REQUIRE([AM_NLS])dnl case "$am__api_version" in 1.[01234]) AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) ;; *) ;; esac if test -n "$1"; then AC_MSG_CHECKING([for intltool >= $1]) INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` [INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` ] AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) fi AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) fi INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@' INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' _IT_SUBST(INTLTOOL_DESKTOP_RULE) _IT_SUBST(INTLTOOL_DIRECTORY_RULE) _IT_SUBST(INTLTOOL_KEYS_RULE) _IT_SUBST(INTLTOOL_PROP_RULE) _IT_SUBST(INTLTOOL_OAF_RULE) _IT_SUBST(INTLTOOL_PONG_RULE) _IT_SUBST(INTLTOOL_SERVER_RULE) _IT_SUBST(INTLTOOL_SHEET_RULE) _IT_SUBST(INTLTOOL_SOUNDLIST_RULE) _IT_SUBST(INTLTOOL_UI_RULE) _IT_SUBST(INTLTOOL_XAM_RULE) _IT_SUBST(INTLTOOL_KBD_RULE) _IT_SUBST(INTLTOOL_XML_RULE) _IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) _IT_SUBST(INTLTOOL_CAVES_RULE) _IT_SUBST(INTLTOOL_SCHEMAS_RULE) _IT_SUBST(INTLTOOL_THEME_RULE) _IT_SUBST(INTLTOOL_SERVICE_RULE) _IT_SUBST(INTLTOOL_POLICY_RULE) # Check the gettext tools to make sure they are GNU AC_PATH_PROG(XGETTEXT, xgettext) AC_PATH_PROG(MSGMERGE, msgmerge) AC_PATH_PROG(MSGFMT, msgfmt) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi AC_PATH_PROG(INTLTOOL_PERL, perl) if test -z "$INTLTOOL_PERL"; then AC_MSG_ERROR([perl not found]) fi AC_MSG_CHECKING([for perl >= 5.8.1]) $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then AC_MSG_ERROR([perl 5.8.1 is required for intltool]) else IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" AC_MSG_RESULT([$IT_PERL_VERSION]) fi if test "x$2" != "xno-xml"; then AC_MSG_CHECKING([for XML::Parser]) if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then AC_MSG_RESULT([ok]) else AC_MSG_ERROR([XML::Parser perl module is required for intltool]) fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile AC_SUBST(ALL_LINGUAS) # Set DATADIRNAME correctly if it is not set yet # (copied from glib-gettext.m4) if test -z "$DATADIRNAME"; then AC_LINK_IFELSE( [AC_LANG_PROGRAM([[]], [[extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr]])], [DATADIRNAME=share], [case $host in *-*-solaris*) dnl On Solaris, if bind_textdomain_codeset is in libc, dnl GNU format message catalog is always supported, dnl since both are added to the libc all together. dnl Hence, we'd like to go with DATADIRNAME=share dnl in this case. AC_CHECK_FUNC(bind_textdomain_codeset, [DATADIRNAME=share], [DATADIRNAME=lib]) ;; *) [DATADIRNAME=lib] ;; esac]) fi AC_SUBST(DATADIRNAME) IT_PO_SUBDIR([po]) ]) # IT_PO_SUBDIR(DIRNAME) # --------------------- # All po subdirs have to be declared with this macro; the subdir "po" is # declared by IT_PROG_INTLTOOL. # AC_DEFUN([IT_PO_SUBDIR], [AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. dnl dnl The following CONFIG_COMMANDS should be executed at the very end dnl of config.status. AC_CONFIG_COMMANDS_PRE([ AC_CONFIG_COMMANDS([$1/stamp-it], [ if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) fi rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" >"$1/stamp-it.tmp" [sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" ] [sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r $1/POTFILES } ' "$1/Makefile.in" >"$1/Makefile"] rm -f "$1/Makefile.tmp" mv "$1/stamp-it.tmp" "$1/stamp-it" ]) ])dnl ]) # _IT_SUBST(VARIABLE) # ------------------- # Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST # AC_DEFUN([_IT_SUBST], [ AC_SUBST([$1]) m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) ] ) # deprecated macros AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) # A hint is needed for aclocal from Automake <= 1.9.4: # AC_DEFUN([AC_PROG_INTLTOOL], ...) dnl Autoconf macros for libgcrypt dnl Copyright (C) 2002, 2004 Free Software Foundation, Inc. dnl dnl This file is free software; as a special exception the author gives dnl unlimited permission to copy and/or distribute it, with or without dnl modifications, as long as this notice is preserved. dnl dnl This file is distributed in the hope that it will be useful, but dnl WITHOUT ANY WARRANTY, to the extent permitted by law; without even the dnl implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. dnl AM_PATH_LIBGCRYPT([MINIMUM-VERSION, dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) dnl Test for libgcrypt and define LIBGCRYPT_CFLAGS and LIBGCRYPT_LIBS. dnl MINIMUN-VERSION is a string with the version number optionalliy prefixed dnl with the API version to also check the API compatibility. Example: dnl a MINIMUN-VERSION of 1:1.2.5 won't pass the test unless the installed dnl version of libgcrypt is at least 1.2.5 *and* the API number is 1. Using dnl this features allows to prevent build against newer versions of libgcrypt dnl with a changed API. dnl AC_DEFUN([AM_PATH_LIBGCRYPT], [ AC_ARG_WITH(libgcrypt-prefix, AC_HELP_STRING([--with-libgcrypt-prefix=PFX], [prefix where LIBGCRYPT is installed (optional)]), libgcrypt_config_prefix="$withval", libgcrypt_config_prefix="") if test x$libgcrypt_config_prefix != x ; then if test x${LIBGCRYPT_CONFIG+set} != xset ; then LIBGCRYPT_CONFIG=$libgcrypt_config_prefix/bin/libgcrypt-config fi fi AC_PATH_TOOL(LIBGCRYPT_CONFIG, libgcrypt-config, no) tmp=ifelse([$1], ,1:1.2.0,$1) if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then req_libgcrypt_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` min_libgcrypt_version=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\2/'` else req_libgcrypt_api=0 min_libgcrypt_version="$tmp" fi AC_MSG_CHECKING(for LIBGCRYPT - version >= $min_libgcrypt_version) ok=no if test "$LIBGCRYPT_CONFIG" != "no" ; then req_major=`echo $min_libgcrypt_version | \ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'` req_minor=`echo $min_libgcrypt_version | \ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'` req_micro=`echo $min_libgcrypt_version | \ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'` libgcrypt_config_version=`$LIBGCRYPT_CONFIG --version` major=`echo $libgcrypt_config_version | \ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'` minor=`echo $libgcrypt_config_version | \ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'` micro=`echo $libgcrypt_config_version | \ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'` if test "$major" -gt "$req_major"; then ok=yes else if test "$major" -eq "$req_major"; then if test "$minor" -gt "$req_minor"; then ok=yes else if test "$minor" -eq "$req_minor"; then if test "$micro" -ge "$req_micro"; then ok=yes fi fi fi fi fi fi if test $ok = yes; then AC_MSG_RESULT([yes ($libgcrypt_config_version)]) else AC_MSG_RESULT(no) fi if test $ok = yes; then # If we have a recent libgcrypt, we should also check that the # API is compatible if test "$req_libgcrypt_api" -gt 0 ; then tmp=`$LIBGCRYPT_CONFIG --api-version 2>/dev/null || echo 0` if test "$tmp" -gt 0 ; then AC_MSG_CHECKING([LIBGCRYPT API version]) if test "$req_libgcrypt_api" -eq "$tmp" ; then AC_MSG_RESULT([okay]) else ok=no AC_MSG_RESULT([does not match. want=$req_libgcrypt_api got=$tmp]) fi fi fi fi if test $ok = yes; then LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags` LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs` ifelse([$2], , :, [$2]) if test x"$host" != x ; then libgcrypt_config_host=`$LIBGCRYPT_CONFIG --host 2>/dev/null || echo none` if test x"$libgcrypt_config_host" != xnone ; then if test x"$libgcrypt_config_host" != x"$host" ; then AC_MSG_WARN([[ *** *** The config script $LIBGCRYPT_CONFIG was *** built for $libgcrypt_config_host and thus may not match the *** used host $host. *** You may want to use the configure option --with-libgcrypt-prefix *** to specify a matching config script. ***]]) fi fi fi else LIBGCRYPT_CFLAGS="" LIBGCRYPT_LIBS="" ifelse([$3], , :, [$3]) fi AC_SUBST(LIBGCRYPT_CFLAGS) AC_SUBST(LIBGCRYPT_LIBS) ]) # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.11.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 10 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], UPC, [depcc="$UPC" am_compiler_list=], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 8 # AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering # Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_MAINTAINER_MODE([DEFAULT-MODE]) # ---------------------------------- # Control maintainer-specific portions of Makefiles. # Default is to disable them, unless `enable' is passed literally. # For symmetry, `disable' may be passed as well. Anyway, the user # can override the default with the --enable/--disable switch. AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), [enable], [m4_define([am_maintainer_other], [disable])], [disable], [m4_define([am_maintainer_other], [enable])], [m4_define([am_maintainer_other], [enable]) m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles]) dnl maintainer-mode's default is 'disable' unless 'enable' is passed AC_ARG_ENABLE([maintainer-mode], [ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful (and sometimes confusing) to the casual installer], [USE_MAINTAINER_MODE=$enableval], [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE AC_SUBST([MAINT])dnl ] ) AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([m4/gettext.m4]) m4_include([m4/gtk-2.0.m4]) m4_include([m4/iconv.m4]) m4_include([m4/isc-posix.m4]) m4_include([m4/lib-ld.m4]) m4_include([m4/lib-link.m4]) m4_include([m4/lib-prefix.m4]) m4_include([m4/libtool.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) m4_include([m4/ltversion.m4]) m4_include([m4/lt~obsolete.m4]) m4_include([m4/nls.m4]) m4_include([m4/po.m4]) m4_include([m4/progtest.m4]) jpilot-1.8.1.2/ABOUT-NLS0000644000175000017500000023334011254114015011331 000000000000001 Notes on the Free Translation Project *************************************** Free software is going international! The Free Translation Project is a way to get maintainers of free software, translators, and users all together, so that free software will gradually become able to speak many languages. A few packages already provide translations for their messages. If you found this `ABOUT-NLS' file inside a distribution, you may assume that the distributed package does use GNU `gettext' internally, itself available at your nearest GNU archive site. But you do _not_ need to install GNU `gettext' prior to configuring, installing or using this package with messages translated. Installers will find here some useful hints. These notes also explain how users should proceed for getting the programs to use the available translations. They tell how people wanting to contribute and work on translations can contact the appropriate team. When reporting bugs in the `intl/' directory or bugs which may be related to internationalization, you should tell about the version of `gettext' which is used. The information can be found in the `intl/VERSION' file, in internationalized packages. 1.1 Quick configuration advice ============================== If you want to exploit the full power of internationalization, you should configure it using ./configure --with-included-gettext to force usage of internationalizing routines provided within this package, despite the existence of internationalizing capabilities in the operating system where this package is being installed. So far, only the `gettext' implementation in the GNU C library version 2 provides as many features (such as locale alias, message inheritance, automatic charset conversion or plural form handling) as the implementation here. It is also not possible to offer this additional functionality on top of a `catgets' implementation. Future versions of GNU `gettext' will very likely convey even more functionality. So it might be a good idea to change to GNU `gettext' as soon as possible. So you need _not_ provide this option if you are using GNU libc 2 or you have installed a recent copy of the GNU gettext package with the included `libintl'. 1.2 INSTALL Matters =================== Some packages are "localizable" when properly installed; the programs they contain can be made to speak your own native language. Most such packages use GNU `gettext'. Other packages have their own ways to internationalization, predating GNU `gettext'. By default, this package will be installed to allow translation of messages. It will automatically detect whether the system already provides the GNU `gettext' functions. If not, the included GNU `gettext' library will be used. This library is wholly contained within this package, usually in the `intl/' subdirectory, so prior installation of the GNU `gettext' package is _not_ required. Installers may use special options at configuration time for changing the default behaviour. The commands: ./configure --with-included-gettext ./configure --disable-nls will, respectively, bypass any pre-existing `gettext' to use the internationalizing routines provided within this package, or else, _totally_ disable translation of messages. When you already have GNU `gettext' installed on your system and run configure without an option for your new package, `configure' will probably detect the previously built and installed `libintl.a' file and will decide to use this. This might not be desirable. You should use the more recent version of the GNU `gettext' library. I.e. if the file `intl/VERSION' shows that the library which comes with this package is more recent, you should use ./configure --with-included-gettext to prevent auto-detection. The configuration process will not test for the `catgets' function and therefore it will not be used. The reason is that even an emulation of `gettext' on top of `catgets' could not provide all the extensions of the GNU `gettext' library. Internationalized packages usually have many `po/LL.po' files, where LL gives an ISO 639 two-letter code identifying the language. Unless translations have been forbidden at `configure' time by using the `--disable-nls' switch, all available translations are installed together with the package. However, the environment variable `LINGUAS' may be set, prior to configuration, to limit the installed set. `LINGUAS' should then contain a space separated list of two-letter codes, stating which languages are allowed. 1.3 Using This Package ====================== As a user, if your language has been installed for this package, you only have to set the `LANG' environment variable to the appropriate `LL_CC' combination. Here `LL' is an ISO 639 two-letter language code, and `CC' is an ISO 3166 two-letter country code. For example, let's suppose that you speak German and live in Germany. At the shell prompt, merely execute `setenv LANG de_DE' (in `csh'), `export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). This can be done from your `.login' or `.profile' file, once and for all. You might think that the country code specification is redundant. But in fact, some languages have dialects in different countries. For example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The country code serves to distinguish the dialects. The locale naming convention of `LL_CC', with `LL' denoting the language and `CC' denoting the country, is the one use on systems based on GNU libc. On other systems, some variations of this scheme are used, such as `LL' or `LL_CC.ENCODING'. You can get the list of locales supported by your system for your language by running the command `locale -a | grep '^LL''. Not all programs have translations for all languages. By default, an English message is shown in place of a nonexistent translation. If you understand other languages, you can set up a priority list of languages. This is done through a different environment variable, called `LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' for the purpose of message handling, but you still need to have `LANG' set to the primary language; this is required by other parts of the system libraries. For example, some Swedish users who would rather read translations in German than English for when Swedish is not available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. Special advice for Norwegian users: The language code for Norwegian bokma*l changed from `no' to `nb' recently (in 2003). During the transition period, while some message catalogs for this language are installed under `nb' and some older ones under `no', it's recommended for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and older translations are used. In the `LANGUAGE' environment variable, but not in the `LANG' environment variable, `LL_CC' combinations can be abbreviated as `LL' to denote the language's main dialect. For example, `de' is equivalent to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' (Portuguese as spoken in Portugal) in this context. 1.4 Translating Teams ===================== For the Free Translation Project to be a success, we need interested people who like their own language and write it well, and who are also able to synergize with other translators speaking the same language. Each translation team has its own mailing list. The up-to-date list of teams can be found at the Free Translation Project's homepage, `http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams" area. If you'd like to volunteer to _work_ at translating messages, you should become a member of the translating team for your own language. The subscribing address is _not_ the same as the list itself, it has `-request' appended. For example, speakers of Swedish can send a message to `sv-request@li.org', having this message body: subscribe Keep in mind that team members are expected to participate _actively_ in translations, or at solving translational difficulties, rather than merely lurking around. If your team does not exist yet and you want to start one, or if you are unsure about what to do or how to get started, please write to `translation@iro.umontreal.ca' to reach the coordinator for all translator teams. The English team is special. It works at improving and uniformizing the terminology in use. Proven linguistic skills are praised more than programming skills, here. 1.5 Available Packages ====================== Languages are not equally supported in all packages. The following matrix shows the current state of internationalization, as of October 2006. The matrix shows, in regard of each package, for which languages PO files have been submitted to translation coordination, with a translation percentage of at least 50%. Ready PO files af am ar az be bg bs ca cs cy da de el en en_GB eo +----------------------------------------------------+ GNUnet | [] | a2ps | [] [] [] [] [] | aegis | () | ant-phone | () | anubis | [] | ap-utils | | aspell | [] [] [] [] [] | bash | [] [] [] | batchelor | [] | bfd | | bibshelf | [] | binutils | [] | bison | [] [] | bison-runtime | | bluez-pin | [] [] [] [] [] | cflow | [] | clisp | [] [] | console-tools | [] [] | coreutils | [] [] [] | cpio | | cpplib | [] [] [] | cryptonit | [] | darkstat | [] () [] | dialog | [] [] [] [] [] [] | diffutils | [] [] [] [] [] [] | doodle | [] | e2fsprogs | [] [] | enscript | [] [] [] [] | error | [] [] [] [] | fetchmail | [] [] () [] | fileutils | [] [] | findutils | [] [] [] | flex | [] [] [] | fslint | [] | gas | | gawk | [] [] [] | gbiff | [] | gcal | [] | gcc | [] | gettext-examples | [] [] [] [] [] | gettext-runtime | [] [] [] [] [] | gettext-tools | [] [] | gimp-print | [] [] [] [] | gip | [] | gliv | [] | glunarclock | [] | gmult | [] [] | gnubiff | () | gnucash | () () [] | gnucash-glossary | [] () | gnuedu | | gnulib | [] [] [] [] [] [] | gnunet-gtk | | gnutls | | gpe-aerial | [] [] | gpe-beam | [] [] | gpe-calendar | | gpe-clock | [] [] | gpe-conf | [] [] | gpe-contacts | | gpe-edit | [] | gpe-filemanager | | gpe-go | [] | gpe-login | [] [] | gpe-ownerinfo | [] [] | gpe-package | | gpe-sketchbook | [] [] | gpe-su | [] [] | gpe-taskmanager | [] [] | gpe-timesheet | [] | gpe-today | [] [] | gpe-todo | | gphoto2 | [] [] [] [] | gprof | [] [] | gpsdrive | () () | gramadoir | [] [] | grep | [] [] [] [] [] [] | gretl | | gsasl | | gss | | gst-plugins | [] [] [] [] | gst-plugins-base | [] [] [] | gst-plugins-good | [] [] [] [] [] [] [] | gstreamer | [] [] [] [] [] [] [] | gtick | () | gtkam | [] [] [] | gtkorphan | [] [] | gtkspell | [] [] [] [] | gutenprint | [] | hello | [] [] [] [] [] | id-utils | [] [] | impost | | indent | [] [] [] | iso_3166 | [] [] | iso_3166_2 | | iso_4217 | [] | iso_639 | [] [] | jpilot | [] | jtag | | jwhois | | kbd | [] [] [] [] | keytouch | | keytouch-editor | | keytouch-keyboa... | | latrine | () | ld | [] | leafpad | [] [] [] [] [] | libc | [] [] [] [] [] | libexif | [] | libextractor | [] | libgpewidget | [] [] [] | libgpg-error | [] | libgphoto2 | [] [] | libgphoto2_port | [] [] | libgsasl | | libiconv | [] [] | libidn | [] [] | lifelines | [] () | lilypond | [] | lingoteach | | lynx | [] [] [] [] | m4 | [] [] [] [] | mailutils | [] | make | [] [] | man-db | [] () [] [] | minicom | [] [] [] | mysecretdiary | [] [] | nano | [] [] [] | nano_1_0 | [] () [] [] | opcodes | [] | parted | | pilot-qof | [] | psmisc | [] | pwdutils | | python | | qof | | radius | [] | recode | [] [] [] [] [] [] | rpm | [] [] | screem | | scrollkeeper | [] [] [] [] [] [] [] [] | sed | [] [] [] | sh-utils | [] [] | shared-mime-info | [] [] [] [] | sharutils | [] [] [] [] [] [] | shishi | | silky | | skencil | [] () | sketch | [] () | solfege | | soundtracker | [] [] | sp | [] | stardict | [] | system-tools-ba... | [] [] [] [] [] [] [] [] [] | tar | [] | texinfo | [] [] [] | textutils | [] [] [] | tin | () () | tp-robot | [] | tuxpaint | [] [] [] [] [] | unicode-han-tra... | | unicode-transla... | | util-linux | [] [] [] [] | vorbis-tools | [] [] [] [] | wastesedge | () | wdiff | [] [] [] [] | wget | [] [] | xchat | [] [] [] [] [] [] | xkeyboard-config | | xpad | [] [] | +----------------------------------------------------+ af am ar az be bg bs ca cs cy da de el en en_GB eo 10 0 1 2 9 22 1 42 41 2 60 95 16 1 17 16 es et eu fa fi fr ga gl gu he hi hr hu id is it +--------------------------------------------------+ GNUnet | | a2ps | [] [] [] () | aegis | | ant-phone | [] | anubis | [] | ap-utils | [] [] | aspell | [] [] [] | bash | [] [] [] | batchelor | [] [] | bfd | [] | bibshelf | [] [] [] | binutils | [] [] [] | bison | [] [] [] [] [] [] | bison-runtime | [] [] [] [] [] | bluez-pin | [] [] [] [] [] | cflow | [] | clisp | [] [] | console-tools | | coreutils | [] [] [] [] [] [] | cpio | [] [] [] | cpplib | [] [] | cryptonit | [] | darkstat | [] () [] [] [] | dialog | [] [] [] [] [] [] [] [] | diffutils | [] [] [] [] [] [] [] [] [] | doodle | [] [] | e2fsprogs | [] [] [] | enscript | [] [] [] | error | [] [] [] [] [] | fetchmail | [] | fileutils | [] [] [] [] [] [] | findutils | [] [] [] [] | flex | [] [] [] | fslint | [] | gas | [] [] | gawk | [] [] [] [] | gbiff | [] | gcal | [] [] | gcc | [] | gettext-examples | [] [] [] [] [] [] | gettext-runtime | [] [] [] [] [] [] | gettext-tools | [] [] [] | gimp-print | [] [] | gip | [] [] [] | gliv | () | glunarclock | [] [] [] | gmult | [] [] [] | gnubiff | () () | gnucash | () () () | gnucash-glossary | [] [] | gnuedu | [] | gnulib | [] [] [] [] [] [] [] [] | gnunet-gtk | | gnutls | | gpe-aerial | [] [] | gpe-beam | [] [] | gpe-calendar | | gpe-clock | [] [] [] [] | gpe-conf | [] | gpe-contacts | [] [] | gpe-edit | [] [] [] [] | gpe-filemanager | [] | gpe-go | [] [] [] | gpe-login | [] [] [] | gpe-ownerinfo | [] [] [] [] [] | gpe-package | [] | gpe-sketchbook | [] [] | gpe-su | [] [] [] [] | gpe-taskmanager | [] [] [] | gpe-timesheet | [] [] [] [] | gpe-today | [] [] [] [] | gpe-todo | [] | gphoto2 | [] [] [] [] [] | gprof | [] [] [] [] | gpsdrive | () () [] () | gramadoir | [] [] | grep | [] [] [] [] [] [] [] [] [] [] [] [] | gretl | [] [] [] | gsasl | [] [] | gss | [] | gst-plugins | [] [] [] | gst-plugins-base | [] [] | gst-plugins-good | [] [] [] | gstreamer | [] [] [] | gtick | [] | gtkam | [] [] [] [] | gtkorphan | [] [] | gtkspell | [] [] [] [] [] [] | gutenprint | [] | hello | [] [] [] [] [] [] [] [] [] [] [] [] [] | id-utils | [] [] [] [] [] | impost | [] [] | indent | [] [] [] [] [] [] [] [] [] [] | iso_3166 | [] [] [] | iso_3166_2 | [] | iso_4217 | [] [] [] [] | iso_639 | [] [] [] [] [] | jpilot | [] [] | jtag | [] | jwhois | [] [] [] [] [] | kbd | [] [] | keytouch | [] | keytouch-editor | [] | keytouch-keyboa... | [] | latrine | [] [] [] | ld | [] [] | leafpad | [] [] [] [] [] [] | libc | [] [] [] [] [] | libexif | [] | libextractor | [] | libgpewidget | [] [] [] [] [] | libgpg-error | | libgphoto2 | [] [] [] | libgphoto2_port | [] [] | libgsasl | [] [] | libiconv | [] [] | libidn | [] [] | lifelines | () | lilypond | [] | lingoteach | [] [] [] | lynx | [] [] [] | m4 | [] [] [] [] | mailutils | [] [] | make | [] [] [] [] [] [] [] [] | man-db | () | minicom | [] [] [] [] | mysecretdiary | [] [] [] | nano | [] [] [] [] [] [] | nano_1_0 | [] [] [] [] [] | opcodes | [] [] [] [] | parted | [] [] [] [] | pilot-qof | | psmisc | [] [] [] | pwdutils | | python | | qof | [] | radius | [] [] | recode | [] [] [] [] [] [] [] [] | rpm | [] [] | screem | | scrollkeeper | [] [] [] | sed | [] [] [] [] [] | sh-utils | [] [] [] [] [] [] [] | shared-mime-info | [] [] [] [] [] [] | sharutils | [] [] [] [] [] [] [] [] | shishi | | silky | [] | skencil | [] [] | sketch | [] [] | solfege | [] | soundtracker | [] [] [] | sp | [] | stardict | [] | system-tools-ba... | [] [] [] [] [] [] [] [] | tar | [] [] [] [] [] [] [] | texinfo | [] [] | textutils | [] [] [] [] [] | tin | [] () | tp-robot | [] [] [] [] | tuxpaint | [] [] | unicode-han-tra... | | unicode-transla... | [] [] | util-linux | [] [] [] [] [] [] [] | vorbis-tools | [] [] | wastesedge | () | wdiff | [] [] [] [] [] [] [] [] | wget | [] [] [] [] [] [] [] [] | xchat | [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] [] | xpad | [] [] [] | +--------------------------------------------------+ es et eu fa fi fr ga gl gu he hi hr hu id is it 88 22 14 2 40 115 61 14 1 8 1 6 59 31 0 52 ja ko ku ky lg lt lv mk mn ms mt nb ne nl nn no +-------------------------------------------------+ GNUnet | | a2ps | () [] [] () | aegis | () | ant-phone | [] | anubis | [] [] [] | ap-utils | [] | aspell | [] [] | bash | [] | batchelor | [] [] | bfd | | bibshelf | [] | binutils | | bison | [] [] [] | bison-runtime | [] [] [] | bluez-pin | [] [] [] | cflow | | clisp | [] | console-tools | | coreutils | [] | cpio | | cpplib | [] | cryptonit | [] | darkstat | [] [] | dialog | [] [] | diffutils | [] [] [] | doodle | | e2fsprogs | [] | enscript | [] | error | [] | fetchmail | [] [] | fileutils | [] [] | findutils | [] | flex | [] [] | fslint | [] [] | gas | | gawk | [] [] | gbiff | [] | gcal | | gcc | | gettext-examples | [] [] | gettext-runtime | [] [] [] | gettext-tools | [] [] | gimp-print | [] [] | gip | [] [] | gliv | [] | glunarclock | [] [] | gmult | [] [] | gnubiff | | gnucash | () () | gnucash-glossary | [] | gnuedu | | gnulib | [] [] [] [] | gnunet-gtk | | gnutls | | gpe-aerial | [] | gpe-beam | [] | gpe-calendar | [] | gpe-clock | [] [] [] | gpe-conf | [] [] | gpe-contacts | [] | gpe-edit | [] [] [] | gpe-filemanager | [] [] | gpe-go | [] [] [] | gpe-login | [] [] [] | gpe-ownerinfo | [] [] | gpe-package | [] [] | gpe-sketchbook | [] [] | gpe-su | [] [] [] | gpe-taskmanager | [] [] [] [] | gpe-timesheet | [] | gpe-today | [] [] | gpe-todo | [] | gphoto2 | [] [] | gprof | | gpsdrive | () () () | gramadoir | () | grep | [] [] [] [] | gretl | | gsasl | [] | gss | | gst-plugins | [] | gst-plugins-base | | gst-plugins-good | [] | gstreamer | [] | gtick | | gtkam | [] | gtkorphan | [] | gtkspell | [] [] | gutenprint | | hello | [] [] [] [] [] [] | id-utils | [] | impost | | indent | [] [] | iso_3166 | [] | iso_3166_2 | [] | iso_4217 | [] [] [] | iso_639 | [] [] | jpilot | () () () | jtag | | jwhois | [] | kbd | [] | keytouch | [] | keytouch-editor | | keytouch-keyboa... | | latrine | [] | ld | | leafpad | [] [] | libc | [] [] [] [] [] | libexif | | libextractor | | libgpewidget | [] | libgpg-error | | libgphoto2 | [] | libgphoto2_port | [] | libgsasl | [] | libiconv | | libidn | [] [] | lifelines | [] | lilypond | | lingoteach | [] | lynx | [] [] | m4 | [] [] | mailutils | | make | [] [] [] | man-db | () | minicom | [] | mysecretdiary | [] | nano | [] [] [] | nano_1_0 | [] [] [] | opcodes | [] | parted | [] [] | pilot-qof | | psmisc | [] [] [] | pwdutils | | python | | qof | | radius | | recode | [] | rpm | [] [] | screem | [] | scrollkeeper | [] [] [] [] | sed | [] [] | sh-utils | [] [] | shared-mime-info | [] [] [] [] [] | sharutils | [] [] | shishi | | silky | [] | skencil | | sketch | | solfege | | soundtracker | | sp | () | stardict | [] [] | system-tools-ba... | [] [] [] [] | tar | [] [] [] | texinfo | [] [] [] | textutils | [] [] [] | tin | | tp-robot | [] | tuxpaint | [] | unicode-han-tra... | | unicode-transla... | | util-linux | [] [] | vorbis-tools | [] | wastesedge | [] | wdiff | [] [] | wget | [] [] | xchat | [] [] [] [] | xkeyboard-config | [] | xpad | [] [] [] | +-------------------------------------------------+ ja ko ku ky lg lt lv mk mn ms mt nb ne nl nn no 52 24 2 2 1 3 0 2 3 21 0 15 1 97 5 1 nso or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta +------------------------------------------------------+ GNUnet | | a2ps | () [] [] [] [] [] [] | aegis | () () | ant-phone | [] [] | anubis | [] [] [] | ap-utils | () | aspell | [] [] | bash | [] [] [] | batchelor | [] [] | bfd | | bibshelf | [] | binutils | [] [] | bison | [] [] [] [] [] | bison-runtime | [] [] [] [] | bluez-pin | [] [] [] [] [] [] [] [] [] | cflow | [] | clisp | [] | console-tools | [] | coreutils | [] [] [] [] | cpio | [] [] [] | cpplib | [] | cryptonit | [] [] | darkstat | [] [] [] [] [] [] | dialog | [] [] [] [] [] [] [] [] [] | diffutils | [] [] [] [] [] [] | doodle | [] [] | e2fsprogs | [] [] | enscript | [] [] [] [] [] | error | [] [] [] [] | fetchmail | [] [] [] | fileutils | [] [] [] [] [] | findutils | [] [] [] [] [] [] | flex | [] [] [] [] [] | fslint | [] [] [] [] | gas | | gawk | [] [] [] [] | gbiff | [] | gcal | [] | gcc | [] | gettext-examples | [] [] [] [] [] [] [] [] | gettext-runtime | [] [] [] [] [] [] [] [] | gettext-tools | [] [] [] [] [] [] [] | gimp-print | [] [] | gip | [] [] [] [] | gliv | [] [] [] [] | glunarclock | [] [] [] [] [] [] | gmult | [] [] [] [] | gnubiff | () | gnucash | () [] | gnucash-glossary | [] [] [] | gnuedu | | gnulib | [] [] [] [] [] | gnunet-gtk | [] | gnutls | [] [] | gpe-aerial | [] [] [] [] [] [] [] | gpe-beam | [] [] [] [] [] [] [] | gpe-calendar | [] | gpe-clock | [] [] [] [] [] [] [] [] | gpe-conf | [] [] [] [] [] [] [] | gpe-contacts | [] [] [] [] [] | gpe-edit | [] [] [] [] [] [] [] [] | gpe-filemanager | [] [] | gpe-go | [] [] [] [] [] [] | gpe-login | [] [] [] [] [] [] [] [] | gpe-ownerinfo | [] [] [] [] [] [] [] [] | gpe-package | [] [] | gpe-sketchbook | [] [] [] [] [] [] [] [] | gpe-su | [] [] [] [] [] [] [] [] | gpe-taskmanager | [] [] [] [] [] [] [] [] | gpe-timesheet | [] [] [] [] [] [] [] [] | gpe-today | [] [] [] [] [] [] [] [] | gpe-todo | [] [] [] [] | gphoto2 | [] [] [] [] [] | gprof | [] [] [] | gpsdrive | [] [] [] | gramadoir | [] [] | grep | [] [] [] [] [] [] [] [] | gretl | [] | gsasl | [] [] [] | gss | [] [] [] | gst-plugins | [] [] [] [] | gst-plugins-base | [] | gst-plugins-good | [] [] [] [] | gstreamer | [] [] [] | gtick | [] | gtkam | [] [] [] [] | gtkorphan | [] | gtkspell | [] [] [] [] [] [] [] [] | gutenprint | [] | hello | [] [] [] [] [] [] [] [] | id-utils | [] [] [] [] | impost | [] | indent | [] [] [] [] [] [] | iso_3166 | [] [] [] [] [] [] | iso_3166_2 | | iso_4217 | [] [] [] [] | iso_639 | [] [] [] [] | jpilot | | jtag | [] | jwhois | [] [] [] [] | kbd | [] [] [] | keytouch | [] | keytouch-editor | [] | keytouch-keyboa... | [] | latrine | [] [] | ld | [] | leafpad | [] [] [] [] [] [] | libc | [] [] [] [] [] | libexif | [] | libextractor | [] [] | libgpewidget | [] [] [] [] [] [] [] | libgpg-error | [] [] | libgphoto2 | [] | libgphoto2_port | [] [] [] | libgsasl | [] [] [] [] | libiconv | [] [] | libidn | [] [] () | lifelines | [] [] | lilypond | | lingoteach | [] | lynx | [] [] [] | m4 | [] [] [] [] [] | mailutils | [] [] [] [] | make | [] [] [] [] | man-db | [] [] | minicom | [] [] [] [] [] | mysecretdiary | [] [] [] [] | nano | [] [] [] | nano_1_0 | [] [] [] [] | opcodes | [] [] | parted | [] | pilot-qof | [] | psmisc | [] [] | pwdutils | [] [] | python | | qof | [] [] | radius | [] [] | recode | [] [] [] [] [] [] [] | rpm | [] [] [] [] | screem | | scrollkeeper | [] [] [] [] [] [] [] | sed | [] [] [] [] [] [] [] [] [] | sh-utils | [] [] [] | shared-mime-info | [] [] [] [] [] | sharutils | [] [] [] [] | shishi | [] | silky | [] | skencil | [] [] [] | sketch | [] [] [] | solfege | [] | soundtracker | [] [] | sp | | stardict | [] [] [] | system-tools-ba... | [] [] [] [] [] [] [] [] [] | tar | [] [] [] [] [] | texinfo | [] [] [] [] | textutils | [] [] [] | tin | () | tp-robot | [] | tuxpaint | [] [] [] [] [] | unicode-han-tra... | | unicode-transla... | | util-linux | [] [] [] [] | vorbis-tools | [] [] | wastesedge | | wdiff | [] [] [] [] [] [] | wget | [] [] [] [] | xchat | [] [] [] [] [] [] [] | xkeyboard-config | [] [] | xpad | [] [] [] | +------------------------------------------------------+ nso or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta 0 2 3 58 30 54 5 73 72 4 40 46 11 50 128 2 tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu +---------------------------------------------------+ GNUnet | [] | 2 a2ps | [] [] [] | 19 aegis | | 0 ant-phone | [] [] | 6 anubis | [] [] [] | 11 ap-utils | () [] | 4 aspell | [] [] [] | 15 bash | [] | 11 batchelor | [] [] | 9 bfd | | 1 bibshelf | [] | 7 binutils | [] [] [] | 9 bison | [] [] [] | 19 bison-runtime | [] [] [] | 15 bluez-pin | [] [] [] [] [] [] | 28 cflow | [] [] | 5 clisp | | 6 console-tools | [] [] | 5 coreutils | [] [] | 16 cpio | [] [] [] | 9 cpplib | [] [] [] [] | 11 cryptonit | | 5 darkstat | [] () () | 15 dialog | [] [] [] [] [] | 30 diffutils | [] [] [] [] | 28 doodle | [] | 6 e2fsprogs | [] [] | 10 enscript | [] [] [] | 16 error | [] [] [] [] | 18 fetchmail | [] [] | 12 fileutils | [] [] [] | 18 findutils | [] [] [] | 17 flex | [] [] | 15 fslint | [] | 9 gas | [] | 3 gawk | [] [] | 15 gbiff | [] | 5 gcal | [] | 5 gcc | [] [] [] | 6 gettext-examples | [] [] [] [] [] [] | 27 gettext-runtime | [] [] [] [] [] [] | 28 gettext-tools | [] [] [] [] [] | 19 gimp-print | [] [] | 12 gip | [] [] | 12 gliv | [] [] | 8 glunarclock | [] [] [] | 15 gmult | [] [] [] [] | 15 gnubiff | [] | 1 gnucash | () | 2 gnucash-glossary | [] [] | 9 gnuedu | [] | 2 gnulib | [] [] [] [] [] | 28 gnunet-gtk | | 1 gnutls | | 2 gpe-aerial | [] [] | 14 gpe-beam | [] [] | 14 gpe-calendar | [] | 3 gpe-clock | [] [] [] [] | 21 gpe-conf | [] [] | 14 gpe-contacts | [] [] | 10 gpe-edit | [] [] [] [] | 20 gpe-filemanager | [] | 6 gpe-go | [] [] | 15 gpe-login | [] [] [] [] [] | 21 gpe-ownerinfo | [] [] [] [] | 21 gpe-package | [] | 6 gpe-sketchbook | [] [] | 16 gpe-su | [] [] [] | 20 gpe-taskmanager | [] [] [] | 20 gpe-timesheet | [] [] [] [] | 18 gpe-today | [] [] [] [] [] | 21 gpe-todo | [] | 7 gphoto2 | [] [] [] [] | 20 gprof | [] [] | 11 gpsdrive | | 4 gramadoir | [] | 7 grep | [] [] [] [] | 34 gretl | | 4 gsasl | [] [] | 8 gss | [] | 5 gst-plugins | [] [] [] | 15 gst-plugins-base | [] [] [] | 9 gst-plugins-good | [] [] [] [] [] | 20 gstreamer | [] [] [] | 17 gtick | [] | 3 gtkam | [] | 13 gtkorphan | [] | 7 gtkspell | [] [] [] [] [] [] | 26 gutenprint | | 3 hello | [] [] [] [] [] | 37 id-utils | [] [] | 14 impost | [] | 4 indent | [] [] [] [] | 25 iso_3166 | [] [] [] [] | 16 iso_3166_2 | | 2 iso_4217 | [] [] | 14 iso_639 | [] | 14 jpilot | [] [] [] [] | 7 jtag | [] | 3 jwhois | [] [] [] | 13 kbd | [] [] | 12 keytouch | [] | 4 keytouch-editor | | 2 keytouch-keyboa... | [] | 3 latrine | [] [] | 8 ld | [] [] [] [] | 8 leafpad | [] [] [] [] | 23 libc | [] [] [] | 23 libexif | [] | 4 libextractor | [] | 5 libgpewidget | [] [] [] | 19 libgpg-error | [] | 4 libgphoto2 | [] | 8 libgphoto2_port | [] [] [] | 11 libgsasl | [] | 8 libiconv | [] | 7 libidn | [] [] | 10 lifelines | | 4 lilypond | | 2 lingoteach | [] | 6 lynx | [] [] [] | 15 m4 | [] [] [] | 18 mailutils | [] | 8 make | [] [] [] | 20 man-db | [] | 6 minicom | [] | 14 mysecretdiary | [] [] | 12 nano | [] [] | 17 nano_1_0 | [] [] [] | 18 opcodes | [] [] | 10 parted | [] [] [] | 10 pilot-qof | [] | 3 psmisc | [] | 10 pwdutils | [] | 3 python | | 0 qof | [] | 4 radius | [] | 6 recode | [] [] [] | 25 rpm | [] [] [] [] | 14 screem | [] | 2 scrollkeeper | [] [] [] [] | 26 sed | [] [] [] | 22 sh-utils | [] | 15 shared-mime-info | [] [] [] [] | 24 sharutils | [] [] [] | 23 shishi | | 1 silky | [] | 4 skencil | [] | 7 sketch | | 6 solfege | | 2 soundtracker | [] [] | 9 sp | [] | 3 stardict | [] [] [] [] | 11 system-tools-ba... | [] [] [] [] [] [] [] | 37 tar | [] [] [] [] | 20 texinfo | [] [] [] | 15 textutils | [] [] [] | 17 tin | | 1 tp-robot | [] [] [] | 10 tuxpaint | [] [] [] | 16 unicode-han-tra... | | 0 unicode-transla... | | 2 util-linux | [] [] [] | 20 vorbis-tools | [] [] | 11 wastesedge | | 1 wdiff | [] [] | 22 wget | [] [] [] | 19 xchat | [] [] [] [] | 29 xkeyboard-config | [] [] [] [] | 11 xpad | [] [] [] | 14 +---------------------------------------------------+ 77 teams tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu 170 domains 0 1 1 77 39 0 136 10 1 48 5 54 0 2028 Some counters in the preceding matrix are higher than the number of visible blocks let us expect. This is because a few extra PO files are used for implementing regional variants of languages, or language dialects. For a PO file in the matrix above to be effective, the package to which it applies should also have been internationalized and distributed as such by its maintainer. There might be an observable lag between the mere existence a PO file and its wide availability in a distribution. If October 2006 seems to be old, you may fetch a more recent copy of this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date matrix with full percentage details can be found at `http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'. 1.6 Using `gettext' in new packages =================================== If you are writing a freely available program and want to internationalize it you are welcome to use GNU `gettext' in your package. Of course you have to respect the GNU Library General Public License which covers the use of the GNU `gettext' library. This means in particular that even non-free programs can use `libintl' as a shared library, whereas only free software can use `libintl' as a static library or use modified versions of `libintl'. Once the sources are changed appropriately and the setup can handle the use of `gettext' the only thing missing are the translations. The Free Translation Project is also available for packages which are not developed inside the GNU project. Therefore the information given above applies also for every other Free Software Project. Contact `translation@iro.umontreal.ca' to make the `.pot' files available to the translation teams. jpilot-1.8.1.2/pidfile.c0000644000175000017500000000522011365051716011667 00000000000000/* $Id: pidfile.c,v 1.6 2010-03-29 05:44:30 rikster5 Exp $ */ /******************************************************************************* * pidfile.c * A module of J-Pilot http://jpilot.org * * Copyright (C) 2005 by Jason Day * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /********************************* Includes ***********************************/ #include "config.h" #include #include #include #include #include #include #include #include #include #include "i18n.h" #include "log.h" #include "utils.h" #include "pidfile.h" /********************************* Constants **********************************/ #define JPILOT_PIDFILE "jpilot.pid" #ifndef O_SYNC # define O_SYNC 0 /* use it if we have it */ #endif /******************************* Global vars **********************************/ static char pidfile[FILENAME_MAX]; /****************************** Main Code *************************************/ void setup_pidfile(void) { memset(pidfile, 0, FILENAME_MAX); get_home_file_name(JPILOT_PIDFILE, pidfile, FILENAME_MAX); } pid_t check_for_jpilot(void) { FILE *pidfp; int pid; pid = 0; if ((pidfp = fopen(pidfile, "r")) != NULL) { fscanf(pidfp, "%d", &pid); if (kill (pid, 0) == -1) { jp_logf(JP_LOG_WARN, _("removing stale pidfile\n")); pid = 0; unlink(pidfile); } fclose(pidfp); } return pid; } void write_pid(void) { char tmp[20]; int fd; jp_logf(JP_LOG_DEBUG, "pidfile: %s\n", pidfile); if ((fd = open(pidfile, O_WRONLY|O_CREAT|O_EXCL|O_SYNC, S_IRUSR|S_IWUSR)) != -1) { g_snprintf(tmp, sizeof(tmp), "%d\n", getpid()); write(fd, tmp, strlen (tmp)); close(fd); } else { jp_logf(JP_LOG_FATAL,_("create pidfile failed: %s\n"), strerror(errno)); jp_logf(JP_LOG_WARN, _("Warning: hotplug syncing disabled.\n")); } } void cleanup_pidfile(void) { if (getpid() == check_for_jpilot()) unlink(pidfile); } jpilot-1.8.1.2/jp-contact.c0000644000175000017500000000476211365051716012327 00000000000000/* $Id: jp-contact.c,v 1.13 2010-03-29 05:44:29 rikster5 Exp $ */ /******************************************************************************* * contact.c: Translate Palm contact data formats * A module of J-Pilot http://jpilot.org * * Copyright (C) 2003-2006 by Judd Montgomery * * This code is NOT derived from contact.c from pilot-link * pilot-link's contact.c was based on this code. * This code was however based on address.c and was originally written to * be part of pilot-link, however licensing issues * prevent this code from being part of pilot-link. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /********************************* Includes ***********************************/ #include #include #include #include "pi-macros.h" #include "jp-pi-contact.h" #include "config.h" #include /****************************** Main Code *************************************/ void jp_free_Contact(struct Contact *c) { free_Contact(c); } int jp_unpack_Contact(struct Contact *c, pi_buffer_t *buf) { // Pilot-link doesn't do anything with the contactsType parameter yet return unpack_Contact(c, buf, contacts_v10); } int jp_pack_Contact(struct Contact *c, pi_buffer_t *buf) { // Pilot-link doesn't do anything with the contactsType parameter yet return pack_Contact(c, buf, contacts_v10); } int jp_Contact_add_blob(struct Contact *c, struct ContactBlob *blob) { return Contact_add_blob(c, blob); } int jp_Contact_add_picture(struct Contact *c, struct ContactPicture *p) { return Contact_add_picture(c, p); } int jp_unpack_ContactAppInfo(struct ContactAppInfo *ai, pi_buffer_t *buf) { return unpack_ContactAppInfo(ai, buf); } int jp_pack_ContactAppInfo(struct ContactAppInfo *ai, pi_buffer_t *buf) { return pack_ContactAppInfo(ai, buf); } jpilot-1.8.1.2/cp1250.h0000644000175000017500000000230211365051715011167 00000000000000/* $Id: cp1250.h,v 1.9 2010-03-29 05:44:28 rikster5 Exp $ */ /******************************************************************************* * cp1250.h * A module of J-Pilot http://jpilot.org * * Copyright (C) 2002 by Jiri Rubes * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /* * Czech, Polish (and other CP 1250 languages) library header * Convert charsets: Palm <-> Unix: * Palm : CP 1250 * Unix : ISO-8859-2 */ void Win2Lat(char *const buf, int buf_len); void Lat2Win(char *const buf, int buf_len); jpilot-1.8.1.2/config.rpath0000755000175000017500000003744411023666260012431 00000000000000#! /bin/sh # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # # Copyright 1996-2006 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit , 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # # The first argument passed to this file is the canonical host specification, # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld # should be set by the caller. # # The set of defined variables is at the end of this script. # Known limitations: # - On IRIX 6.5 with CC="cc", the run time search patch must not be longer # than 256 bytes, otherwise the compiler driver will dump core. The only # known workaround is to choose shorter directory names for the build # directory and/or the installation directory. # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a shrext=.so host="$1" host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # Code taken from libtool.m4's _LT_CC_BASENAME. for cc_temp in $CC""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` # Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC. wl= if test "$GCC" = yes; then wl='-Wl,' else case "$host_os" in aix*) wl='-Wl,' ;; darwin*) case $cc_basename in xlc*) wl='-Wl,' ;; esac ;; mingw* | pw32* | os2*) ;; hpux9* | hpux10* | hpux11*) wl='-Wl,' ;; irix5* | irix6* | nonstopux*) wl='-Wl,' ;; newsos6) ;; linux*) case $cc_basename in icc* | ecc*) wl='-Wl,' ;; pgcc | pgf77 | pgf90) wl='-Wl,' ;; ccc*) wl='-Wl,' ;; como) wl='-lopt=' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) wl='-Wl,' ;; esac ;; esac ;; osf3* | osf4* | osf5*) wl='-Wl,' ;; sco3.2v5*) ;; solaris*) wl='-Wl,' ;; sunos4*) wl='-Qoption ld ' ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) wl='-Wl,' ;; sysv4*MP*) ;; unicos*) wl='-Wl,' ;; uts4*) ;; esac fi # Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS. hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no case "$host_os" in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. # Unlike libtool, we use -rpath here, not --rpath, since the documented # option of GNU ld is called -rpath, not --rpath. hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' case "$host_os" in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no fi ;; amigaos*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we cannot use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; cygwin* | mingw* | pw32*) # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then : else ld_shlibs=no fi ;; interix3*) hardcode_direct=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; netbsd*) ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' else ld_shlibs=no fi ;; esac ;; sunos4*) hardcode_direct=yes ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then hardcode_libdir_flag_spec= fi else case "$host_os" in aix3*) # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac fi hardcode_direct=yes hardcode_libdir_separator=':' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct=yes else # We have old collect2 hardcode_direct=unsupported hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac fi # Begin _LT_AC_SYS_LIBPATH_AIX. echo 'int main () { return 0; }' > conftest.c ${CC} ${LDFLAGS} conftest.c -o conftest aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` fi if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib" fi rm -f conftest.c conftest # End _LT_AC_SYS_LIBPATH_AIX. if test "$aix_use_runtimelinking" = yes; then hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' else hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" fi fi ;; amigaos*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # see comment about different semantics on the GNU ld section ld_shlibs=no ;; bsdi[45]*) ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' libext=lib ;; darwin* | rhapsody*) hardcode_direct=no if test "$GCC" = yes ; then : else case $cc_basename in xlc*) ;; *) ld_shlibs=no ;; esac fi ;; dgux*) hardcode_libdir_flag_spec='-L$libdir' ;; freebsd1*) ld_shlibs=no ;; freebsd2.2*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; freebsd2*) hardcode_direct=yes hardcode_minus_L=yes ;; freebsd* | kfreebsd*-gnu | dragonfly*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; hpux9*) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; hpux10*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no ;; *) hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; netbsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; newsos6) hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; openbsd*) hardcode_direct=yes if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then hardcode_libdir_flag_spec='${wl}-rpath,$libdir' else case "$host_os" in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) hardcode_libdir_flag_spec='-R$libdir' ;; *) hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; osf3*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) if test "$GCC" = yes; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else # Both cc and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) hardcode_libdir_flag_spec='-R$libdir' ;; sunos4*) hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes ;; sysv4) case $host_vendor in sni) hardcode_direct=yes # is this really true??? ;; siemens) hardcode_direct=no ;; motorola) hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac ;; sysv4.3*) ;; sysv4*MP*) if test -d /usr/nec; then ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) ;; sysv5* | sco3.2v5* | sco5v6*) hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' ;; uts4*) hardcode_libdir_flag_spec='-L$libdir' ;; *) ld_shlibs=no ;; esac fi # Check dynamic linker characteristics # Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER. libname_spec='lib$name' case "$host_os" in aix3*) ;; aix4* | aix5*) ;; amigaos*) ;; beos*) ;; bsdi[45]*) ;; cygwin* | mingw* | pw32*) shrext=.dll ;; darwin* | rhapsody*) shrext=.dylib ;; dgux*) ;; freebsd1*) ;; kfreebsd*-gnu) ;; freebsd* | dragonfly*) ;; gnu*) ;; hpux9* | hpux10* | hpux11*) case $host_cpu in ia64*) shrext=.so ;; hppa*64*) shrext=.sl ;; *) shrext=.sl ;; esac ;; interix3*) ;; irix5* | irix6* | nonstopux*) case "$host_os" in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; *) libsuff= shlibsuff= ;; esac ;; esac ;; linux*oldld* | linux*aout* | linux*coff*) ;; linux*) ;; knetbsd*-gnu) ;; netbsd*) ;; newsos6) ;; nto-qnx*) ;; openbsd*) ;; os2*) libname_spec='$name' shrext=.dll ;; osf3* | osf4* | osf5*) ;; solaris*) ;; sunos4*) ;; sysv4 | sysv4.3*) ;; sysv4*MP*) ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) ;; uts4*) ;; esac sed_quote_subst='s/\(["`$\\]\)/\\\1/g' escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` shlibext=`echo "$shrext" | sed -e 's,^\.,,'` escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' < #include #include #include #include #include #include #include #include #include #include #include #ifdef HAVE_LOCALE_H # include #endif /* Pilot-link header files */ #include #include #include #include #include /* Jpilot header files */ #include "utils.h" #include "i18n.h" #include "otherconv.h" #include "libplugin.h" #include "sync.h" /******************************* Global vars **********************************/ /* Start Hack */ /* FIXME: The following is a hack. * The variables below are global variables in jpilot.c which are unused in * this code but must be instantiated for the code to compile. * The same is true of the functions which are only used in GUI mode. */ pid_t jpilot_master_pid = -1; GtkWidget *glob_dialog; GtkWidget *glob_date_label; gint glob_date_timer_tag; void output_to_pane(const char *str) {} int sync_once(struct my_sync_info *sync_info) { return EXIT_SUCCESS; } int jp_pack_Contact(struct Contact *c, pi_buffer_t *buf) { return 0; } int edit_cats(GtkWidget *widget, char *db_name, struct CategoryAppInfo *cai) { return 0; } /* End Hack */ /****************************** Main Code *************************************/ static int read_pc_recs(char *file_name, GList **records) { FILE *pc_in; int recs_returned; buf_rec *temp_br; int r; /* Get the records out of the PC database */ pc_in = fopen(file_name, "r"); if (pc_in==NULL) { fprintf(stderr, _("Unable to open file: %s\n"), file_name); return -1; } while(!feof(pc_in)) { temp_br = malloc(sizeof(buf_rec)); if (!temp_br) { fprintf(stderr, _("Out of memory")); recs_returned = -1; break; } r = pc_read_next_rec(pc_in, temp_br); if ((r==JPILOT_EOF) || (r<0)) { free(temp_br); break; } *records = g_list_prepend(*records, temp_br); recs_returned++; } fclose(pc_in); return 0; } static int merge_pdb_file(char *src_pdb_file, char *src_pc_file, char *dest_pdb_file) { struct pi_file *pf1, *pf2; struct DBInfo infop; void *app_info; void *sort_info; void *record; int r; int idx; size_t size; int attr; int cat; pi_uid_t uid; buf_rec *temp_br_pdb; buf_rec *temp_br_pc; GList *Ppdb_record = NULL; GList *Ppc_record = NULL; GList *pdb_records = NULL; GList *pc_records = NULL; int dont_add; unsigned int next_available_unique_id; // Statistics int pdb_count=0; int recs_added = 0; int recs_deleted = 0; int recs_modified = 0; int recs_written = 0; if (access(src_pdb_file, R_OK)) { fprintf(stderr, _("Unable to open file: %s\n"), src_pdb_file); return 1; } if (access(src_pc_file, R_OK)) { fprintf(stderr, _("Unable to open file: %s\n"), src_pc_file); return 1; } r = read_pc_recs(src_pc_file, &pc_records); if (r < 0) { fprintf(stderr, "read_pc_recs returned %d\n", r); exit(1); } pf1 = pi_file_open(src_pdb_file); if (!pf1) { fprintf(stderr, _("%s: Unable to open file:%s\n"), "pi_file_open", src_pdb_file); exit(1); } pi_file_get_info(pf1, &infop); pf2 = pi_file_create(dest_pdb_file, &infop); if (!pf2) { fprintf(stderr, _("%s: Unable to open file:%s\n"), "pi_file_open", dest_pdb_file); exit(1); } pi_file_get_app_info(pf1, &app_info, &size); pi_file_set_app_info(pf2, app_info, size); pi_file_get_sort_info(pf1, &sort_info, &size); pi_file_set_sort_info(pf2, sort_info, size); for(idx=0;;idx++) { r = pi_file_read_record(pf1, idx, &record, &size, &attr, &cat, &uid); //printf("attr=%d, cat=%d\n", attr, cat); if (r<0) break; pdb_count++; temp_br_pdb = malloc(sizeof(buf_rec)); temp_br_pdb->rt = PALM_REC; temp_br_pdb->unique_id = uid; temp_br_pdb->attrib = attr | cat; //temp_br_pdb->buf = record; temp_br_pdb->buf = malloc(size); memcpy(temp_br_pdb->buf, record, size); temp_br_pdb->size = size; dont_add=0; // Look through the pc record list for (Ppc_record=pc_records; Ppc_record; Ppc_record=Ppc_record->next) { temp_br_pc = (buf_rec *)Ppc_record->data; if ((temp_br_pc->rt==DELETED_PC_REC) || (temp_br_pc->rt==DELETED_DELETED_PALM_REC)) { continue; } if ((temp_br_pc->rt==DELETED_PALM_REC) || (temp_br_pc->rt==MODIFIED_PALM_REC)) { if (temp_br_pdb->unique_id == temp_br_pc->unique_id) { // Don't add it to the pdb list dont_add=1; if (temp_br_pc->rt==DELETED_PALM_REC) { recs_deleted++; } break; } } if ((temp_br_pc->rt==REPLACEMENT_PALM_REC)) { if (temp_br_pdb->unique_id == temp_br_pc->unique_id) { // Replace the record data in the pdb record with replacement record data //printf("REPLACEMENT\n"); dont_add=1; pdb_records = g_list_prepend(pdb_records, temp_br_pc); recs_modified++; //break; } } } if (! dont_add) { pdb_records = g_list_prepend(pdb_records, temp_br_pdb); } } // Find the next available unique ID next_available_unique_id = 0; for (Ppdb_record=pdb_records; Ppdb_record; Ppdb_record=Ppdb_record->next) { temp_br_pdb = (buf_rec *)Ppdb_record->data; if (temp_br_pdb->unique_id > next_available_unique_id) { next_available_unique_id = temp_br_pdb->unique_id + 1; } } // Add the NEW records to the list for (Ppc_record=pc_records; Ppc_record; Ppc_record=Ppc_record->next) { temp_br_pc = (buf_rec *)Ppc_record->data; if ((temp_br_pc->rt==NEW_PC_REC)) { temp_br_pc->unique_id = next_available_unique_id++; pdb_records = g_list_prepend(pdb_records, temp_br_pc); recs_added++; continue; } } pdb_records = g_list_reverse(pdb_records); for (Ppdb_record=pdb_records; Ppdb_record; Ppdb_record=Ppdb_record->next) { temp_br_pdb = (buf_rec *)Ppdb_record->data; //printf("rt=%d\n", temp_br_pdb->rt); //printf("unique_id=%d\n", temp_br_pdb->unique_id); //printf("attrib=%d\n", temp_br_pdb->attrib); //printf("buf=%ld\n", temp_br_pdb->buf); //printf("size=%d\n", temp_br_pdb->size); pi_file_append_record(pf2, temp_br_pdb->buf, temp_br_pdb->size, (temp_br_pdb->attrib)&0xF0, (temp_br_pdb->attrib)&0x0F, temp_br_pdb->unique_id); recs_written++; } pi_file_close(pf1); pi_file_close(pf2); printf(_("Records read from pdb = %d\n"), pdb_count); printf(_("Records added = %d\n"), recs_added); printf(_("Records deleted = %d\n"), recs_deleted); printf(_("Records modified = %d\n"), recs_modified); printf(_("Records written = %d\n"), recs_written); return 0; } int main(int argc, char *argv[]) { /* enable internationalization(i18n) before printing any output */ #if defined(ENABLE_NLS) # ifdef HAVE_LOCALE_H setlocale(LC_ALL, ""); # endif bindtextdomain(EPN, LOCALEDIR); textdomain(EPN); #endif if (argc != 3) { fprintf(stderr, _("Usage: %s {input pdb file} {input pc3 file} {output pdb file}\n"), argv[0]); fprintf(stderr, _(" This program will merge an unsynced records file (pc3)\n")); fprintf(stderr, _(" into the corresponding palm database (pdb) file.\n\n")); fprintf(stderr, _(" WARNING: Only run this utility if you understand the consequences!\n")); fprintf(stderr, _(" The merge will leave your databases in an unsync-able state.\n")); fprintf(stderr, _(" It is intended for cases where J-pilot is being used as a standalone PIM\n")); fprintf(stderr, _(" and where no syncing occurs to physical hardware.\n")); fprintf(stderr, _(" WARNING: Make a backup copy of your databases before proceeding.\n")); fprintf(stderr, _(" It is quite simple to destroy your databases by accidentally merging\n")); fprintf(stderr, _(" address records into datebook databases, etc.\n")); exit(EXIT_FAILURE); } char *in_pdb; char *in_pc; char *out_pdb; in_pdb = argv[1]; in_pc = argv[2]; out_pdb = argv[3]; merge_pdb_file(in_pdb, in_pc, out_pdb); return EXIT_SUCCESS; } jpilot-1.8.1.2/utils.c0000644000175000017500000031737311702307154011425 00000000000000/* $Id: utils.c,v 1.199 2012-01-08 12:39:08 rousseau Exp $ */ /******************************************************************************* * utils.c * A module of J-Pilot http://jpilot.org * * Copyright (C) 1999-2002 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #include "config.h" #include #include #include #include #include #include #include #ifdef USE_FLOCK # include #else # include #endif #include #include "utils.h" #include "i18n.h" #include "log.h" #include "prefs.h" #include "sync.h" #include "plugins.h" #include "otherconv.h" /********************************* Constants **********************************/ /* For versioning of files */ #define FILE_VERSION "version" #define FILE_VERSION2 "version2" #define FILE_VERSION2_CR "version2\n" #define NUM_CAT_ITEMS 16 #define DAY_IN_SECS 86400 /* RFC2445 line length is 75. This length does not include value field such as * "DESCRIPTION:" which brings line length to nearly 75. */ #define ICAL_LINE_LENGTH 58 /* RFCs require CRLF for newline */ #define CRLF "\x0D\x0A" #define CR '\x0D' #define LF '\x0A' #define min(a,b) (((a) < (b)) ? (a) : (b)) /* Uncomment for verbose debugging of the alarm code */ /* #define ALARMS_DEBUG */ /******************************* Global vars **********************************/ /* Stuff for the dialog window */ extern GtkWidget *glob_dialog; extern GtkWidget *glob_date_label; static int dialog_result; unsigned int glob_find_id; /* GTK_TIMEOUT timer identifer for "Today:" label */ extern gint glob_date_timer_tag; /****************************** Prototypes ************************************/ static gboolean cb_destroy(GtkWidget *widget); static void cb_quit(GtkWidget *widget, gpointer data); static void cb_today(GtkWidget *widget, gpointer data); static int write_to_next_id(unsigned int unique_id); static int write_to_next_id_open(FILE *pc_out, unsigned int unique_id); static int forward_backward_in_ce_time(const struct CalendarEvent *cale, struct tm *t, int forward_or_backward); static int str_to_iv_str(char *dest, int destsz, char *src, int isical); /****************************** Main Code *************************************/ /* * This is a slow algorithm, but its not used much */ int add_days_to_date(struct tm *date, int n) { int ndim; int fdom; int flag; int i; get_month_info(date->tm_mon, 1, date->tm_year, &fdom, &ndim); for (i=0; itm_mday) > ndim) { date->tm_mday=1; flag = 1; if (++(date->tm_mon) > 11) { date->tm_mon=0; flag = 1; if (++(date->tm_year)>137) { date->tm_year = 137; } } } if (flag) { get_month_info(date->tm_mon, 1, date->tm_year, &fdom, &ndim); } } date->tm_isdst=-1; mktime(date); return EXIT_SUCCESS; } /* * This function will increment the date by n number of months and * adjust the day to the last day of the month if it exceeds the number * of days in the new month */ int add_months_to_date(struct tm *date, int n) { int i; int days_in_month[]={31,28,31,30,31,30,31,31,30,31,30,31 }; for (i=0; itm_mon) > 11) { date->tm_mon=0; if (++(date->tm_year)>137) { date->tm_year = 137; } } } if ((date->tm_year%4 == 0) && !(((date->tm_year+1900)%100==0) && ((date->tm_year+1900)%400!=0))) { days_in_month[1]++; } if (date->tm_mday > days_in_month[date->tm_mon]) { date->tm_mday = days_in_month[date->tm_mon]; } date->tm_isdst=-1; mktime(date); return EXIT_SUCCESS; } /* * This function will increment the date by n number of years and * adjust feb 29th to feb 28th if its not a leap year */ static int add_or_sub_years_to_date(struct tm *date, int n) { date->tm_year += n; if (date->tm_year>137) { date->tm_year = 137; } if (date->tm_year<3) { date->tm_year = 3; } /* Leap day/year */ if ((date->tm_mon==1) && (date->tm_mday==29)) { if (!((date->tm_year%4 == 0) && !(((date->tm_year+1900)%100==0) && ((date->tm_year+1900)%400!=0)))) { /* Move it back one day */ date->tm_mday=28; } } return EXIT_SUCCESS; } int add_years_to_date(struct tm *date, int n) { return add_or_sub_years_to_date(date, n); } /* This function is passed a bounded event description before it appears * on the gui (read-only) views. It checks if the event is a yearly repeat * (i.e. an anniversary) and then if the last 4 characters look like a * year. If so then it appends a "number of years" to the description. * This is handy for viewing ages on birthdays etc. */ /* Either a or cale can be passed as NULL */ void append_anni_years(char *desc, int max, struct tm *date, struct Appointment *appt, struct CalendarEvent *cale) { int len; int year; /* Only append the years if this is a yearly repeating type (i.e. an * anniversary) */ if ((!appt) && (!cale)) { return; } if ((appt) && (appt->repeatType != repeatYearly)) return; if ((cale) && (cale->repeatType != repeatYearly)) return; /* Only display this if the user option is enabled */ if (!get_pref_int_default(PREF_DATEBOOK_ANNI_YEARS, FALSE)) return; len = strlen(desc); /* Make sure we have room to insert what we want */ if (len < 4 || len > (max - 7)) return; /* Get and check for a year */ year = strtoul(&desc[len - 4], NULL, 10); /* Only allow up to 3 digits to be added */ if (year < 1100 || year > 3000) return; /* Append the number of years */ sprintf(&desc[len], " (%d)", 1900 + date->tm_year - year); } static const char b64_dict[65] = { "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "abcdefghijklmnopqrstuvwxyz" "0123456789+/=" }; static void base64_out(FILE *f, unsigned char *str) { unsigned char *index, char1, char2, char3; int loop, pad; loop = strlen((char *)str)/3; // process groups of 3 chars at a time pad = strlen((char *)str) % 3; // must pad if str not multiple of 3 /* Convert 3 bytes at a time. Padding at end calculated separately */ for (index = str; loop>0; loop--, index+=3) { char1 = *index; char2 = *(index+1); char3 = *(index+2); fputc(b64_dict[char1>>2], f); fputc(b64_dict[(char1<<4 & 0x30) | (char2>>4)], f); fputc(b64_dict[(char2<<2 & 0x3c) | (char3>>6)], f); fputc(b64_dict[char3 & 0x3f], f); } /* Now deal with the trailing bytes */ if (pad) { char1 = *index; char2 = *(index+1); char3 = *(index+2); fputc(b64_dict[char1>>2], f); fputc(b64_dict[(char1<<4 & 0x30) | (pad==2 ? char2>>4 : 0)], f ); fputc(pad==1 ? '=' : b64_dict[(char2<<2 & 0x3c)], f ); fputc('=', f); } } static unsigned int bytes_to_bin(unsigned char *bytes, unsigned int num_bytes) { unsigned int i, n; n=0; for (i=0;iPcat[0]=='\0') { return 1; } if ((s2)->Pcat[0]=='\0') { return -1; } return strcmp((s1)->Pcat, (s2)->Pcat); } static gboolean cb_destroy(GtkWidget *widget) { gtk_main_quit(); return FALSE; } static gboolean cb_destroy_dialog(GtkWidget *widget) { glob_dialog = NULL; gtk_main_quit(); return FALSE; } static void cb_dialog_button(GtkWidget *widget, gpointer data) { dialog_result=GPOINTER_TO_INT(data); gtk_widget_destroy(glob_dialog); } static void cb_quit(GtkWidget *widget, gpointer data) { unsigned int y,m,d; unsigned int *Py,*Pm,*Pd; int *Preturn_code; GtkWidget *cal=NULL; GtkWidget *window; window = gtk_widget_get_toplevel(widget); Preturn_code = gtk_object_get_data(GTK_OBJECT(window), "return_code"); if (Preturn_code) *Preturn_code = GPOINTER_TO_INT(data); cal = gtk_object_get_data(GTK_OBJECT(window), "cal"); if (Preturn_code && *Preturn_code==CAL_DONE) { if (cal) { gtk_calendar_get_date(GTK_CALENDAR(cal),&y,&m,&d); Pm = gtk_object_get_data(GTK_OBJECT(window), "mon"); Pd = gtk_object_get_data(GTK_OBJECT(window), "day"); Py = gtk_object_get_data(GTK_OBJECT(window), "year"); if (Pm) *Pm=m; if (Pd) *Pd=d; if (Py) *Py=y; } } gtk_widget_destroy(window); } static void cb_today(GtkWidget *widget, gpointer data) { time_t ltime; struct tm *now; GtkWidget *cal; cal = data; time(<ime); now = localtime(<ime); gtk_calendar_select_month(GTK_CALENDAR(cal), now->tm_mon, now->tm_year+1900); gtk_calendar_select_day(GTK_CALENDAR(cal), now->tm_mday); } /* * JPA overwrite a host character set string by its * conversion to a Palm Pilot character string */ void charset_j2p(char *buf, int max_len, long char_set) { switch (char_set) { case CHAR_SET_JAPANESE: Euc2Sjis(buf, max_len); break; case CHAR_SET_LATIN1 : /* No conversion required */ break; case CHAR_SET_1250 : Lat2Win(buf,max_len); break; case CHAR_SET_1251 : koi8_to_win1251(buf, max_len); break; case CHAR_SET_1251_B : win1251_to_koi8(buf, max_len); break; default: UTF_to_other(buf, max_len); break; } } /* * JPA overwrite a Palm Pilot character string by its * conversion to host character set */ void charset_p2j(char *const buf, int max_len, int char_set) { char *newbuf; gchar *end; newbuf = charset_p2newj(buf, max_len, char_set); g_strlcpy(buf, newbuf, max_len); if (strlen(newbuf) >= max_len) { jp_logf(JP_LOG_WARN, "charset_p2j: buffer too small - original string before truncation [%s]\n", newbuf); if (char_set > CHAR_SET_UTF) { /* truncate the string on a UTF-8 character boundary */ if (!g_utf8_validate(buf, -1, (const gchar **)&end)) *end = 0; } } free(newbuf); } /* * JPA convert a Palm Pilot character string to host * equivalent without overwriting */ char *charset_p2newj(const char *buf, int max_len, int char_set) { char *newbuf = NULL; /* Allocate a longer buffer if not done in conversion routine. * Only old conversion routines don't assign a buffer */ switch (char_set) { case CHAR_SET_JAPANESE: if (max_len == -1) { max_len = 2*strlen(buf) + 1; newbuf = g_malloc(max_len); } else { newbuf = g_malloc(min(2*strlen(buf) + 1, max_len)); } if (newbuf) { /* be safe, though string should fit into buf */ g_strlcpy(newbuf, buf, max_len); } break; case CHAR_SET_LATIN1: case CHAR_SET_1250: case CHAR_SET_1251: case CHAR_SET_1251_B: if (max_len == -1) { max_len = strlen(buf) + 1; newbuf = g_malloc(max_len); } else { newbuf = g_malloc(min(strlen(buf) + 1, max_len)); } if (newbuf) { /* be safe, though string should fit into buf */ g_strlcpy(newbuf, buf, max_len); } break; default: /* All other encodings get a new buffer from other_to_UTF */ break; } /* Now convert character encoding */ switch (char_set) { case CHAR_SET_JAPANESE : Sjis2Euc(newbuf, max_len); break; case CHAR_SET_LATIN1 : /* No conversion required */ break; case CHAR_SET_1250 : Win2Lat(newbuf, max_len); break; case CHAR_SET_1251 : win1251_to_koi8(newbuf, max_len); break; case CHAR_SET_1251_B : koi8_to_win1251(newbuf, max_len); break; default: newbuf = other_to_UTF(buf, max_len); break; } return (newbuf); } /* This function will copy an empty DB file * from the share directory to the users JPILOT_HOME directory * if it doesn't exist already and its length is > 0 */ int check_copy_DBs_to_home(void) { FILE *in, *out; struct stat sbuf; int i, c, r; char destname[FILENAME_MAX]; char srcname[FILENAME_MAX]; struct utimbuf times; char dbname_pdb[][32]={ "DatebookDB.pdb", "CalendarDB-PDat.pdb", "AddressDB.pdb", "ContactsDB-PAdd.pdb", "ToDoDB.pdb", "TasksDB-PTod.pdb", "MaanaDB.pdb", "MemoDB.pdb", "MemosDB-PMem.pdb", "Memo32DB.pdb", "ExpenseDB.pdb", "" }; for (i=0; dbname_pdb[i][0]; i++) { get_home_file_name(dbname_pdb[i], destname, sizeof(destname)); r = stat(destname, &sbuf); if (((r)&&(errno==ENOENT)) || (sbuf.st_size==0)) { /* The file doesn't exist or is zero in size, copy an empty DB file */ if ((strlen(BASE_DIR) + strlen(EPN) + strlen(dbname_pdb[i])) > sizeof(srcname)) { jp_logf(JP_LOG_DEBUG, "copy_DB_to_home filename too long\n"); return EXIT_FAILURE; } g_snprintf(srcname, sizeof(srcname), "%s/%s/%s/%s", BASE_DIR, "share", EPN, dbname_pdb[i]); in = fopen(srcname, "r"); out = fopen(destname, "w"); if (!in) { jp_logf(JP_LOG_WARN, _("Couldn't find empty DB file %s: %s\n"), srcname, strerror(errno)); jp_logf(JP_LOG_WARN, EPN); jp_logf(JP_LOG_WARN, _(" may not be installed.\n")); return EXIT_FAILURE; } if (!out) { fclose(in); return EXIT_FAILURE; } while ( (c=fgetc(in)) != EOF ) { fputc(c, out); } fclose(in); fclose(out); /* Set the dates on the file to be old (not up to date) */ times.actime = 1; times.modtime = 1; utime(destname, ×); } } return EXIT_SUCCESS; } int check_hidden_dir(void) { struct stat statb; char hidden_dir[FILENAME_MAX]; get_home_file_name("", hidden_dir, sizeof(hidden_dir)); hidden_dir[strlen(hidden_dir)-1]='\0'; if (stat(hidden_dir, &statb)) { /* Directory isn't there, create it. * Only user is given permission to enter and change directory contents * which provides some primitive privacy protection. */ if (mkdir(hidden_dir, 0700)) { /* Can't create directory */ jp_logf(JP_LOG_WARN, _("Can't create directory %s\n"), hidden_dir); return EXIT_FAILURE; } if (stat(hidden_dir, &statb)) { jp_logf(JP_LOG_WARN, _("Can't create directory %s\n"), hidden_dir); return EXIT_FAILURE; } } /* Is it a directory? */ if (!S_ISDIR(statb.st_mode)) { jp_logf(JP_LOG_WARN, _("%s is not a directory\n"), hidden_dir); return EXIT_FAILURE; } /* Can we write in it? */ if (access(hidden_dir, W_OK) != 0) { jp_logf(JP_LOG_WARN, _("Unable to get write permission for directory %s\n"), hidden_dir); return EXIT_FAILURE; } return EXIT_SUCCESS; } /* This function removes extra slashes from a string */ void cleanup_path(char *path) { register int s, d; /* source and destination */ if (!path) return; for (s=d=0; path[s]!='\0'; s++,d++) { if ((path[s]=='/') && (path[s+1]=='/')) { d--; continue; } if (d!=s) { path[d]=path[s]; } } path[d]='\0'; } /* Compacts pc3 file by removing records which have been synced */ static int cleanup_pc_file(char *DB_name, unsigned int *max_id) { PC3RecordHeader header; char pc_filename[FILENAME_MAX]; char pc_filename2[FILENAME_MAX]; FILE *pc_file; FILE *pc_file2; char *record; int r; int ret; int num; int compact_it; int next_id; r=0; *max_id = 0; next_id = 1; record = NULL; pc_file = pc_file2 = NULL; g_snprintf(pc_filename, sizeof(pc_filename), "%s.pc3", DB_name); g_snprintf(pc_filename2, sizeof(pc_filename2), "%s.pct", DB_name); pc_file = jp_open_home_file(pc_filename , "r"); if (!pc_file) { return EXIT_FAILURE; } compact_it = 0; /* Scan through the file and see if it needs to be compacted */ while(!feof(pc_file)) { read_header(pc_file, &header); if (feof(pc_file)) { break; } if (header.rt & SPENT_PC_RECORD_BIT) { compact_it=1; break; } if ((header.unique_id > *max_id) && (header.rt != PALM_REC) && (header.rt != MODIFIED_PALM_REC) && (header.rt != DELETED_PALM_REC) && (header.rt != REPLACEMENT_PALM_REC) ){ *max_id = header.unique_id; } if (fseek(pc_file, header.rec_len, SEEK_CUR)) { jp_logf(JP_LOG_WARN, "fseek failed\n"); } } if (!compact_it) { jp_logf(JP_LOG_DEBUG, "No compacting needed\n"); jp_close_home_file(pc_file); return EXIT_SUCCESS; } fseek(pc_file, 0, SEEK_SET); pc_file2=jp_open_home_file(pc_filename2, "w"); if (!pc_file2) { jp_close_home_file(pc_file); return EXIT_FAILURE; } while(!feof(pc_file)) { read_header(pc_file, &header); if (feof(pc_file)) { break; } if (header.rt & SPENT_PC_RECORD_BIT) { r++; if (fseek(pc_file, header.rec_len, SEEK_CUR)) { jp_logf(JP_LOG_WARN, "fseek failed\n"); r = -1; break; } continue; } else { if (header.rt == NEW_PC_REC) { header.unique_id = next_id++; } if ((header.unique_id > *max_id) && (header.rt != PALM_REC) && (header.rt != MODIFIED_PALM_REC) && (header.rt != DELETED_PALM_REC) && (header.rt != REPLACEMENT_PALM_REC) ){ *max_id = header.unique_id; } record = malloc(header.rec_len); if (!record) { jp_logf(JP_LOG_WARN, "cleanup_pc_file(): %s\n", _("Out of memory")); r = -1; break; } num = fread(record, header.rec_len, 1, pc_file); if (num != 1) { if (ferror(pc_file)) { r = -1; break; } } ret = write_header(pc_file2, &header); /* if (ret != 1) { r = -1; break; }*/ ret = fwrite(record, header.rec_len, 1, pc_file2); if (ret != 1) { r = -1; break; } free(record); record = NULL; } } if (record) { free(record); } if (pc_file) { jp_close_home_file(pc_file); } if (pc_file2) { jp_close_home_file(pc_file2); } if (r>=0) { rename_file(pc_filename2, pc_filename); } else { unlink_file(pc_filename2); } return r; } /* Compact all pc3 files including plugins */ int cleanup_pc_files(void) { int ret; int fail_flag; unsigned int max_id, max_max_id; #ifdef ENABLE_PLUGINS GList *plugin_list, *temp_list; struct plugin_s *plugin; #endif int i; char dbname[][32]={ "DatebookDB", "AddressDB", "ToDoDB", "MemoDB", "" }; /* Convert to new database names depending on prefs */ rename_dbnames(dbname); fail_flag = 0; max_id = max_max_id = 0; for (i=0; dbname[i][0]; i++) { jp_logf(JP_LOG_DEBUG, "cleanup_pc_file for %s\n", dbname[i]); ret = cleanup_pc_file(dbname[i], &max_id); jp_logf(JP_LOG_DEBUG, "max_id was %d\n", max_id); if (ret<0) { fail_flag=1; } else if (max_id > max_max_id) { max_max_id = max_id; } } #ifdef ENABLE_PLUGINS plugin_list = get_plugin_list(); for (temp_list = plugin_list; temp_list; temp_list = temp_list->next) { plugin = (struct plugin_s *)temp_list->data; if ((plugin->db_name==NULL) || (plugin->db_name[0]=='\0')) { jp_logf(JP_LOG_DEBUG, "not calling cleanup_pc_file for: [%s]\n", plugin->db_name); continue; } jp_logf(JP_LOG_DEBUG, "cleanup_pc_file for [%s]\n", plugin->db_name); ret = cleanup_pc_file(plugin->db_name, &max_id); jp_logf(JP_LOG_DEBUG, "max_id was %d\n", max_id); if (ret<0) { fail_flag=1; } else if (max_id > max_max_id) { max_max_id = max_id; } } #endif if (!fail_flag) { write_to_next_id(max_max_id); } return EXIT_SUCCESS; } /* returns 0 if not found, 1 if found */ int clist_find_id(GtkWidget *clist, unsigned int unique_id, int *found_at) { int i, found; MyAddress *maddr; *found_at = 0; for (found = i = 0; irows; i++) { maddr = gtk_clist_get_row_data(GTK_CLIST(clist), i); if (maddr < (MyAddress *)CLIST_MIN_DATA) { break; } if (maddr->unique_id==unique_id) { found = TRUE; *found_at = i; break; } } return found; } /* Encapsulate GTK function to make it free all resources */ void clist_clear(GtkCList *clist) { GtkStyle *base_style, *row_style; int i; base_style = gtk_widget_get_style(GTK_WIDGET(clist)); for (i=0; irows ; i++) { row_style = gtk_clist_get_row_style(GTK_CLIST(clist), i); if (row_style && (row_style != base_style)) { g_object_unref(row_style); } } gtk_clist_clear(GTK_CLIST(clist)); } /* Encapsulate GTK tooltip function which no longer supports disabling as * of GTK 2.12 */ void set_tooltip(int show_tooltip, GtkTooltips *tooltips, GtkWidget *widget, const gchar *tip_text, const gchar *tip_private) { if (show_tooltip) gtk_tooltips_set_tip(tooltips, widget, tip_text, tip_private); } /* Encapsulate broken GTK function to make it work as documented */ void clist_select_row(GtkCList *clist, int row, int column) { clist->focus_row = row; gtk_clist_select_row(clist, row, column); } int dateToDays(struct tm *tm1) { time_t t1; struct tm *gmt; struct tm tm2; static time_t adj = -1; memcpy(&tm2, tm1, sizeof(struct tm)); tm2.tm_isdst = 0; tm2.tm_hour=12; t1 = mktime(&tm2); if (-1 == adj) { gmt = gmtime(&t1); adj = t1 - mktime(gmt); } return (t1+adj)/86400; /* There are 86400 secs in a day */ } /* * This deletes a record from the appropriate Datafile */ int delete_pc_record(AppType app_type, void *VP, int flag) { FILE *pc_in; PC3RecordHeader header; struct Appointment *appt; MyAppointment *mappt; struct CalendarEvent *cale; MyCalendarEvent *mcale; struct Address *addr; MyAddress *maddr; struct Contact *cont; MyContact *mcont; struct ToDo *todo; MyToDo *mtodo; struct Memo *memo; MyMemo *mmemo; char filename[FILENAME_MAX]; pi_buffer_t *RecordBuffer = NULL; PCRecType record_type; unsigned int unique_id; unsigned char attrib; #ifdef ENABLE_MANANA long ivalue; #endif long memo_version; long char_set; jp_logf(JP_LOG_DEBUG, "delete_pc_record(%d, %d)\n", app_type, flag); if (VP==NULL) { return EXIT_FAILURE; } get_pref(PREF_CHAR_SET, &char_set, NULL); /* to keep the compiler happy with -Wall*/ mappt=NULL; mcale=NULL; maddr=NULL; mcont=NULL; mtodo=NULL; mmemo=NULL; switch (app_type) { case DATEBOOK: mappt = (MyAppointment *) VP; record_type = mappt->rt; unique_id = mappt->unique_id; attrib = mappt->attrib; strcpy(filename, "DatebookDB.pc3"); break; case CALENDAR: mcale = (MyCalendarEvent *) VP; record_type = mcale->rt; unique_id = mcale->unique_id; attrib = mcale->attrib; strcpy(filename, "CalendarDB-PDat.pc3"); break; case ADDRESS: maddr = (MyAddress *) VP; record_type = maddr->rt; unique_id = maddr->unique_id; attrib = maddr->attrib; strcpy(filename, "AddressDB.pc3"); break; case CONTACTS: mcont = (MyContact *) VP; record_type = mcont->rt; unique_id = mcont->unique_id; attrib = mcont->attrib; strcpy(filename, "ContactsDB-PAdd.pc3"); break; case TODO: mtodo = (MyToDo *) VP; record_type = mtodo->rt; unique_id = mtodo->unique_id; attrib = mtodo->attrib; #ifdef ENABLE_MANANA get_pref(PREF_MANANA_MODE, &ivalue, NULL); if (ivalue) { strcpy(filename, "MaanaDB.pc3"); } else { strcpy(filename, "ToDoDB.pc3"); } #else strcpy(filename, "ToDoDB.pc3"); #endif break; case MEMO: mmemo = (MyMemo *) VP; record_type = mmemo->rt; unique_id = mmemo->unique_id; attrib = mmemo->attrib; get_pref(PREF_MEMO_VERSION, &memo_version, NULL); switch (memo_version) { case 0: default: strcpy(filename, "MemoDB.pc3"); break; case 1: strcpy(filename, "MemosDB-PMem.pc3"); break; case 2: strcpy(filename, "Memo32DB.pc3"); break; } break; default: return EXIT_SUCCESS; } if ((record_type==DELETED_PALM_REC) || (record_type==MODIFIED_PALM_REC)) { jp_logf(JP_LOG_INFO|JP_LOG_GUI, _("This record is already deleted.\n" "It is scheduled to be deleted from the Palm on the next sync.\n")); return EXIT_SUCCESS; } RecordBuffer = pi_buffer_new(0); switch (record_type) { case NEW_PC_REC: case REPLACEMENT_PALM_REC: pc_in=jp_open_home_file(filename, "r+"); if (pc_in==NULL) { jp_logf(JP_LOG_WARN, _("Unable to open PC records file\n")); pi_buffer_free(RecordBuffer); return EXIT_FAILURE; } while(!feof(pc_in)) { read_header(pc_in, &header); if (feof(pc_in)) { jp_logf(JP_LOG_WARN, _("Couldn't find record to delete\n")); pi_buffer_free(RecordBuffer); jp_close_home_file(pc_in); return EXIT_FAILURE; } /* Keep unique ID intact */ if (header.header_version==2) { if ((header.unique_id==unique_id) && ((header.rt==NEW_PC_REC)||(header.rt==REPLACEMENT_PALM_REC))) { if (fseek(pc_in, -header.header_len, SEEK_CUR)) { jp_logf(JP_LOG_WARN, "fseek failed\n"); } header.rt=DELETED_PC_REC; write_header(pc_in, &header); jp_logf(JP_LOG_DEBUG, "record deleted\n"); jp_close_home_file(pc_in); pi_buffer_free(RecordBuffer); return EXIT_SUCCESS; } } else { jp_logf(JP_LOG_WARN, _("Unknown header version %d\n"), header.header_version); } if (fseek(pc_in, header.rec_len, SEEK_CUR)) { jp_logf(JP_LOG_WARN, "fseek failed\n"); } } jp_close_home_file(pc_in); pi_buffer_free(RecordBuffer); return EXIT_FAILURE; case PALM_REC: jp_logf(JP_LOG_DEBUG, "Deleting Palm ID %d\n", unique_id); pc_in=jp_open_home_file(filename, "a"); if (pc_in==NULL) { jp_logf(JP_LOG_WARN, _("Unable to open PC records file\n")); pi_buffer_free(RecordBuffer); return EXIT_FAILURE; } header.unique_id=unique_id; if (flag==MODIFY_FLAG) { header.rt=MODIFIED_PALM_REC; } else { header.rt=DELETED_PALM_REC; } header.attrib=attrib; switch (app_type) { case DATEBOOK: appt=&mappt->appt; if (pack_Appointment(appt, RecordBuffer, datebook_v1) == -1) { PRINT_FILE_LINE; jp_logf(JP_LOG_WARN, "pack_Appointment %s\n", _("error")); } break; case CALENDAR: cale=&mcale->cale; if (pack_CalendarEvent(cale, RecordBuffer, calendar_v1) == -1) { PRINT_FILE_LINE; jp_logf(JP_LOG_WARN, "pack_CalendarEvent %s\n", _("error")); } break; case ADDRESS: addr=&maddr->addr; if (pack_Address(addr, RecordBuffer, address_v1) == -1) { PRINT_FILE_LINE; jp_logf(JP_LOG_WARN, "pack_Address %s\n", _("error")); } break; case CONTACTS: cont=&mcont->cont; if (jp_pack_Contact(cont, RecordBuffer) == -1) { PRINT_FILE_LINE; jp_logf(JP_LOG_WARN, "jp_pack_Contact %s\n", _("error")); } break; case TODO: todo=&mtodo->todo; if (pack_ToDo(todo, RecordBuffer, todo_v1) == -1) { PRINT_FILE_LINE; jp_logf(JP_LOG_WARN, "pack_ToDo %s\n", _("error")); } break; case MEMO: memo=&mmemo->memo; if (pack_Memo(memo, RecordBuffer, memo_v1) == -1) { PRINT_FILE_LINE; jp_logf(JP_LOG_WARN, "pack_Memo %s\n", _("error")); } break; default: jp_close_home_file(pc_in); pi_buffer_free(RecordBuffer); return EXIT_SUCCESS; } /* switch */ header.rec_len = RecordBuffer->used; jp_logf(JP_LOG_DEBUG, "writing header to pc file\n"); write_header(pc_in, &header); /* This record is used during sync to make sure that the palm record * hasn't changed before we delete it */ jp_logf(JP_LOG_DEBUG, "writing record to pc file, %d bytes\n", header.rec_len); fwrite(RecordBuffer->data, header.rec_len, 1, pc_in); jp_logf(JP_LOG_DEBUG, "record deleted\n"); jp_close_home_file(pc_in); pi_buffer_free(RecordBuffer); return EXIT_SUCCESS; break; default: break; } /* switch (record_type) */ if (RecordBuffer) pi_buffer_free(RecordBuffer); return EXIT_SUCCESS; } /* nob = number of buttons */ int dialog_generic(GtkWindow *main_window, char *title, int type, char *text, int nob, char *button_text[]) { GtkWidget *button, *label1; GtkWidget *hbox1, *vbox1, *vbox2; int i; GtkWidget *image; char *markup; /* This gdk function call is required in order to avoid a GTK * error which causes X and the mouse pointer to lock up. * The lockup is generated whenever a modal dialog is created * from the callback routine of a clist. */ gdk_pointer_ungrab(GDK_CURRENT_TIME); dialog_result=0; glob_dialog = gtk_widget_new(GTK_TYPE_WINDOW, "type", GTK_WINDOW_TOPLEVEL, "window_position", GTK_WIN_POS_MOUSE, NULL); gtk_window_set_title(GTK_WINDOW(glob_dialog), title); gtk_window_set_modal(GTK_WINDOW(glob_dialog), TRUE); if (main_window) { gtk_window_set_transient_for(GTK_WINDOW(glob_dialog), GTK_WINDOW(main_window)); } gtk_signal_connect(GTK_OBJECT(glob_dialog), "destroy", GTK_SIGNAL_FUNC(cb_destroy_dialog), glob_dialog); vbox1 = gtk_vbox_new(FALSE, 5); gtk_container_add(GTK_CONTAINER(glob_dialog), vbox1); hbox1 = gtk_hbox_new(FALSE, 2); gtk_container_add(GTK_CONTAINER(vbox1), hbox1); gtk_container_set_border_width(GTK_CONTAINER(hbox1), 12); switch (type) { case DIALOG_INFO: image = gtk_image_new_from_stock(GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DIALOG); break; case DIALOG_QUESTION: image = gtk_image_new_from_stock(GTK_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG); break; case DIALOG_ERROR: image = gtk_image_new_from_stock(GTK_STOCK_DIALOG_ERROR, GTK_ICON_SIZE_DIALOG); break; case DIALOG_WARNING: image = gtk_image_new_from_stock(GTK_STOCK_DIALOG_WARNING, GTK_ICON_SIZE_DIALOG); break; default: image = NULL; } if (image) gtk_box_pack_start(GTK_BOX(hbox1), image, FALSE, FALSE, 2); vbox2 = gtk_vbox_new(FALSE, 5); gtk_container_set_border_width(GTK_CONTAINER(vbox2), 5); gtk_box_pack_start(GTK_BOX(hbox1), vbox2, FALSE, FALSE, 2); /* Title and Information text */ label1 = gtk_label_new(NULL); markup = g_markup_printf_escaped("%s\n\n%s", title, text); gtk_label_set_markup(GTK_LABEL(label1), markup); g_free(markup); gtk_box_pack_start(GTK_BOX(vbox2), label1, FALSE, FALSE, 2); /* Create buttons */ hbox1 = gtk_hbutton_box_new(); gtk_container_set_border_width(GTK_CONTAINER(hbox1), 12); gtk_button_box_set_layout(GTK_BUTTON_BOX (hbox1), GTK_BUTTONBOX_END); gtk_button_box_set_spacing(GTK_BUTTON_BOX(hbox1), 6); gtk_box_pack_start(GTK_BOX(vbox1), hbox1, FALSE, FALSE, 2); for (i=0; i < nob; i++) { if (0 == strcmp("OK", button_text[i])) button = gtk_button_new_from_stock(GTK_STOCK_OK); else if (0 == strcmp("Cancel", button_text[i])) button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); else if (0 == strcmp("Yes", button_text[i])) button = gtk_button_new_from_stock(GTK_STOCK_YES); else if (0 == strcmp("No", button_text[i])) button = gtk_button_new_from_stock(GTK_STOCK_NO); else button = gtk_button_new_with_label(_(button_text[i])); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_dialog_button), GINT_TO_POINTER(DIALOG_SAID_1 + i)); gtk_box_pack_start(GTK_BOX(hbox1), button, TRUE, TRUE, 1); /* default button is the last one */ if (i == nob-1) { GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); gtk_widget_grab_default(button); gtk_widget_grab_focus(button); } } gtk_widget_show_all(glob_dialog); gtk_main(); return dialog_result; } int dialog_generic_ok(GtkWidget *widget, char *title, int type, char *text) { char *button_text[] = {N_("OK")}; if (widget) { return dialog_generic(GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(widget))), title, type, text, 1, button_text); } return dialog_generic(NULL, title, type, text, 1, button_text); } /* * Widget must be some widget used to get the main window from. * The main window passed in would be fastest. * changed is MODIFY_FLAG, or NEW_FLAG */ int dialog_save_changed_record(GtkWidget *widget, int changed) { int b=0; char *button_text[] = {N_("No"), N_("Yes")}; if ((changed!=MODIFY_FLAG) && (changed!=NEW_FLAG)) { return EXIT_SUCCESS; } if (changed==MODIFY_FLAG) { b=dialog_generic(GTK_WINDOW(gtk_widget_get_toplevel(widget)), _("Save Changed Record?"), DIALOG_QUESTION, _("Do you want to save the changes to this record?"), 2, button_text); } if (changed==NEW_FLAG) { b=dialog_generic(GTK_WINDOW(gtk_widget_get_toplevel(widget)), _("Save New Record?"), DIALOG_QUESTION, _("Do you want to save this new record?"), 2, button_text); } return b; } int dialog_save_changed_record_with_cancel(GtkWidget *widget, int changed) { int b=0; char *button_text[] = {N_("Cancel"), N_("No"), N_("Yes")}; if ((changed!=MODIFY_FLAG) && (changed!=NEW_FLAG)) { return EXIT_SUCCESS; } if (changed==MODIFY_FLAG) { b=dialog_generic(GTK_WINDOW(gtk_widget_get_toplevel(widget)), _("Save Changed Record?"), DIALOG_QUESTION, _("Do you want to save the changes to this record?"), 3, button_text); } if (changed==NEW_FLAG) { b=dialog_generic(GTK_WINDOW(gtk_widget_get_toplevel(widget)), _("Save New Record?"), DIALOG_QUESTION, _("Do you want to save this new record?"), 3, button_text); } return b; } void entry_set_multiline_truncate(GtkEntry *entry, gboolean value) { # if GTK_MINOR_VERSION >= 10 entry->truncate_multiline = value; # endif } /* returns 1 if found */ /* 0 if eof */ int find_next_offset(mem_rec_header *mem_rh, long fpos, unsigned int *next_offset, unsigned char *attrib, unsigned int *unique_id) { mem_rec_header *temp_mem_rh; unsigned char found = 0; unsigned long found_at; found_at=0xFFFFFF; for (temp_mem_rh=mem_rh; temp_mem_rh; temp_mem_rh = temp_mem_rh->next) { if ((temp_mem_rh->offset > fpos) && (temp_mem_rh->offset < found_at)) { found_at = temp_mem_rh->offset; } if ((temp_mem_rh->offset == fpos)) { found = 1; *attrib = temp_mem_rh->attrib; *unique_id = temp_mem_rh->unique_id; } } *next_offset = found_at; return found; } /* Finds next repeating event occurrence closest to srch_start_tm */ int find_next_rpt_event(struct CalendarEvent *cale, struct tm *srch_start_tm, struct tm *next_tm) { struct tm prev_tm; int prev_found, next_found; find_prev_next(cale, 0, srch_start_tm, srch_start_tm, &prev_tm, next_tm, &prev_found, &next_found); return next_found; } /* * Search forwards and backwards in time to find alarms which bracket * date1 and date2. * For non-repeating appointments no searching is necessary. * The appt is either in the range or it is not. * The algorithm for searching is time consuming. To improve performance * this subroutine seeks to seed the search with a close guess for the * correct time before launching the search. * * Math is explicitly done with integers so that divisions which might produce * a float as a result will instead produce a truncated result. * Alternatively the C math functions such as floor could be used but there * seems little point in invoking such overhead. */ int find_prev_next(struct CalendarEvent *cale, time_t adv, struct tm *date1, struct tm *date2, struct tm *tm_prev, struct tm *tm_next, int *prev_found, int *next_found) { struct tm t; time_t t1, t2; time_t t_begin, t_end; time_t t_alarm; time_t t_offset; time_t t_temp; int forward, backward; int offset; int freq; int date1_days, begin_days; int fdom, ndim; int found, count, i; int safety_counter; int found_exception; int kill_update_next; #ifdef ALARMS_DEBUG char str[100]; #endif #ifdef ALARMS_DEBUG printf("fpn: entered find_previous_next\n"); #endif *prev_found=*next_found=0; forward=backward=1; t1=mktime_dst_adj(date1); t2=mktime_dst_adj(date2); memset(tm_prev, 0, sizeof(*tm_prev)); memset(tm_next, 0, sizeof(*tm_next)); /* Initialize search time with cale start time */ memset(&t, 0, sizeof(t)); t.tm_year=cale->begin.tm_year; t.tm_mon=cale->begin.tm_mon; t.tm_mday=cale->begin.tm_mday; t.tm_hour=cale->begin.tm_hour; t.tm_min=cale->begin.tm_min; t.tm_isdst=-1; mktime(&t); #ifdef ALARMS_DEBUG strftime(str, sizeof(str), "%B %d, %Y %H:%M", &t); printf("fpn: appt_start=%s\n", str); #endif /* Handle non-repeating appointments */ if (cale->repeatType == repeatNone) { #ifdef ALARMS_DEBUG printf("fpn: repeatNone\n"); #endif t_alarm=mktime_dst_adj(&(cale->begin)) - adv; if ((t_alarm <= t2) && (t_alarm >= t1)) { memcpy(tm_prev, &(cale->begin), sizeof(struct tm)); *prev_found=1; #ifdef ALARMS_DEBUG printf("fpn: prev_found none\n"); #endif } else if (t_alarm > t2) { memcpy(tm_next, &(cale->begin), sizeof(struct tm)); *next_found=1; #ifdef ALARMS_DEBUG printf("fpn: next_found none\n"); #endif } return EXIT_SUCCESS; } /* Optimize initial start position of search */ switch (cale->repeatType) { case repeatNone: /* Already handled. Here only to shut up compiler warnings */ break; case repeatDaily: #ifdef ALARMS_DEBUG printf("fpn: repeatDaily\n"); #endif freq = cale->repeatFrequency; t_offset = freq * DAY_IN_SECS; t_alarm = mktime_dst_adj(&t); /* Jump to closest current date if appt. started in the past */ if (t1 - adv > t_alarm) { t_alarm = ((((t1+adv)-t_alarm) / t_offset) * t_offset) + t_alarm; memcpy(&t, localtime(&t_alarm), sizeof(struct tm)); #ifdef ALARMS_DEBUG strftime(str, sizeof(str), "%B %d, %Y %H:%M", &t); printf("fpn: initial daily=%s\n", str); #endif } break; case repeatWeekly: #ifdef ALARMS_DEBUG printf("fpn: repeatWeekly\n"); #endif freq = cale->repeatFrequency; begin_days = dateToDays(&(cale->begin)); date1_days = dateToDays(date1); /* Jump to closest current date if appt. started in the past */ if (date1_days > begin_days) { #ifdef ALARMS_DEBUG printf("fpn: begin_days %d date1_days %d\n", begin_days, date1_days); printf("fpn: date1->tm_wday %d appt->begin.tm_wday %d\n", date1->tm_wday, cale->begin.tm_wday); #endif /* Jump by appropriate number of weeks */ offset = date1_days - begin_days; offset = (offset/(freq*7))*(freq*7); #ifdef ALARMS_DEBUG printf("fpn: offset %d\n", offset); #endif add_days_to_date(&t, offset); } /* Within the week find which day is a repeat */ found=0; for (count=0, i=t.tm_wday; i>=0; i--, count++) { if (cale->repeatDays[i]) { sub_days_from_date(&t, count); found=1; break; } } if (!found) { for (count=0, i=t.tm_wday; i<7; i++, count++) { if (cale->repeatDays[i]) { add_days_to_date(&t, count); found=1; break; } } } #ifdef ALARMS_DEBUG strftime(str, sizeof(str), "%B %d, %Y %H:%M", &t); printf("fpn: initial weekly=%s\n", str); #endif break; case repeatMonthlyByDay: #ifdef ALARMS_DEBUG printf("fpn: repeatMonthlyByDay\n"); #endif /* Jump to closest current date if appt. started in the past */ if ((date1->tm_year > cale->begin.tm_year) || (date1->tm_mon > cale->begin.tm_mon)) { /* First, adjust month */ freq = cale->repeatFrequency; offset = ((date1->tm_year - cale->begin.tm_year)*12) - cale->begin.tm_mon + date1->tm_mon; offset = (offset/freq)*freq; add_months_to_date(&t, offset); /* Second, adjust to correct day in new month */ get_month_info(t.tm_mon, 1, t.tm_year, &fdom, &ndim); t.tm_mday=((cale->repeatDay+7-fdom)%7) - ((cale->repeatDay)%7) + cale->repeatDay + 1; #ifdef ALARMS_DEBUG printf("fpn: months offset = %d\n", offset); printf("fpn: %02d/01/%02d, fdom=%d\n", t.tm_mon+1, t.tm_year+1900, fdom); printf("fpn: mday = %d\n", t.tm_mday); #endif if (t.tm_mday > ndim-1) { t.tm_mday -= 7; } #ifdef ALARMS_DEBUG strftime(str, sizeof(str), "%B %d, %Y %H:%M", &t); printf("fpn: initial monthly by day=%s\n", str); #endif } break; case repeatMonthlyByDate: #ifdef ALARMS_DEBUG printf("fpn: repeatMonthlyByDate\n"); #endif /* Jump to closest current date if appt. started in the past */ if ((date1->tm_year > cale->begin.tm_year) || (date1->tm_mon > cale->begin.tm_mon)) { freq = cale->repeatFrequency; offset = ((date1->tm_year - cale->begin.tm_year)*12) - cale->begin.tm_mon + date1->tm_mon; offset = (offset/freq)*freq; #ifdef ALARMS_DEBUG printf("fpn: months offset = %d\n", offset); #endif add_months_to_date(&t, offset); } break; case repeatYearly: #ifdef ALARMS_DEBUG printf("fpn: repeatYearly\n"); #endif /* Jump to closest current date if appt. started in the past */ if (date1->tm_year > cale->begin.tm_year) { freq = cale->repeatFrequency; offset = ((date1->tm_year - cale->begin.tm_year)/freq)*freq; #ifdef ALARMS_DEBUG printf("fpn: (%d - %d)%%%d\n", date1->tm_year, cale->begin.tm_year, freq); printf("fpn: years offset = %d\n", offset); #endif add_years_to_date(&t, offset); } break; } /* end switch on repeatType */ /* Search forwards/backwards through time for alarms */ safety_counter=0; while (forward || backward) { safety_counter++; if (safety_counter > 3000) { jp_logf(JP_LOG_STDOUT|JP_LOG_FILE, "find_prev_next(): %s\n", _("infinite loop, breaking\n")); if (cale->description) { jp_logf(JP_LOG_STDOUT|JP_LOG_FILE, "desc=[%s]\n", cale->description); } break; } kill_update_next = 0; t_temp = mktime_dst_adj(&t); #ifdef ALARMS_DEBUG strftime(str, sizeof(str), "%B %d, %Y %H:%M", &t); printf("fpn: trying with=%s\n", str); #endif /* Check for exceptions in repeat appointments */ found_exception=0; for (i=0; iexceptions; i++) { if ((t.tm_mday==cale->exception[i].tm_mday) && (t.tm_mon==cale->exception[i].tm_mon) && (t.tm_year==cale->exception[i].tm_year) ) { found_exception=1; break; } } if (found_exception) { if (forward) { forward_backward_in_ce_time(cale, &t, 1); continue; } if (backward) { forward_backward_in_ce_time(cale, &t, -1); continue; } } /* Check that proposed alarm is not before the appt begin date */ t_begin = mktime_dst_adj(&(cale->begin)); if (t_temp < t_begin) { #ifdef ALARMS_DEBUG printf("fpn: before begin date\n"); #endif backward=0; kill_update_next = 1; } /* Check that proposed alarm is not past appt end date */ if (!(cale->repeatForever)) { t_end = mktime_dst_adj(&(cale->repeatEnd)); if (t_temp >= t_end) { #ifdef ALARMS_DEBUG printf("fpn: after end date\n"); #endif forward=0; } } /* Check if proposed alarm falls within the desired window [t1,t2] */ t_temp-=adv; if (t_temp >= t2) { if (!kill_update_next) { memcpy(tm_next, &t, sizeof(t)); *next_found=1; forward=0; #ifdef ALARMS_DEBUG printf("fpn: next found\n"); #endif } } else { memcpy(tm_prev, &t, sizeof(t)); *prev_found=1; backward=0; #ifdef ALARMS_DEBUG printf("fpn: prev_found\n"); #endif } /* Change &t to the next/previous occurrence of the appointment * and try search again */ if (forward) { forward_backward_in_ce_time(cale, &t, 1); continue; } if (backward) { forward_backward_in_ce_time(cale, &t, -1); continue; } } /* end of while loop going forward/backward */ return EXIT_SUCCESS; } /* * This routine takes time (t) and either advances t to the next * occurrence of a repeating appointment, or the previous occurrence * * appt is the appointment passed in * t is an in/out parameter * forward_or_backward should be 1 for forward or -1 for backward */ int forward_backward_in_ce_time(const struct CalendarEvent *cale, struct tm *t, int forward_or_backward) { int count, dow, freq, fdom, ndim; freq = cale->repeatFrequency; /* Go forward in time */ if (forward_or_backward==1) { switch (cale->repeatType) { case calendarRepeatNone: #ifdef ALARMS_DEBUG printf("fbiat: repeatNone encountered. This should never happen!\n"); #endif break; case calendarRepeatDaily: add_days_to_date(t, freq); break; case calendarRepeatWeekly: for (count=0, dow=t->tm_wday; count<14; count++) { add_days_to_date(t, 1); #ifdef ALARMS_DEBUG printf("fbiat: weekly forward t.tm_wday=%d, freq=%d\n", t->tm_wday, freq); #endif dow++; if (dow==7) { #ifdef ALARMS_DEBUG printf("fbiat: dow==7\n"); #endif add_days_to_date(t, (freq-1)*7); dow=0; } if (cale->repeatDays[dow]) { #ifdef ALARMS_DEBUG printf("fbiat: repeatDay[dow] dow=%d\n", dow); #endif break; } } break; case calendarRepeatMonthlyByDay: add_months_to_date(t, freq); get_month_info(t->tm_mon, 1, t->tm_year, &fdom, &ndim); t->tm_mday=((cale->repeatDay+7-fdom)%7) - ((cale->repeatDay)%7) + cale->repeatDay + 1; if (t->tm_mday > ndim-1) { t->tm_mday -= 7; } break; case calendarRepeatMonthlyByDate: t->tm_mday=cale->begin.tm_mday; add_months_to_date(t, freq); break; case calendarRepeatYearly: t->tm_mday=cale->begin.tm_mday; add_years_to_date(t, freq); break; } /* switch on repeatType */ return EXIT_SUCCESS; } /* Go back in time */ if (forward_or_backward==-1) { switch (cale->repeatType) { case calendarRepeatNone: #ifdef ALARMS_DEBUG printf("fbiat: repeatNone encountered. This should never happen!\n"); #endif break; case calendarRepeatDaily: sub_days_from_date(t, freq); break; case calendarRepeatWeekly: for (count=0, dow=t->tm_wday; count<14; count++) { sub_days_from_date(t, 1); #ifdef ALARMS_DEBUG printf("fbiat: weekly backward t.tm_wday=%d, freq=%d\n", t->tm_wday, freq); #endif dow--; if (dow==-1) { #ifdef ALARMS_DEBUG printf("fbiat: dow==-1\n"); #endif sub_days_from_date(t, (freq-1)*7); dow=6; } if (cale->repeatDays[dow]) { #ifdef ALARMS_DEBUG printf("fbiat: repeatDay[dow] dow=%d\n", dow); #endif break; } } break; case calendarRepeatMonthlyByDay: sub_months_from_date(t, freq); get_month_info(t->tm_mon, 1, t->tm_year, &fdom, &ndim); t->tm_mday=((cale->repeatDay+7-fdom)%7) - ((cale->repeatDay)%7) + cale->repeatDay + 1; if (t->tm_mday > ndim-1) { t->tm_mday -= 7; } break; case calendarRepeatMonthlyByDate: t->tm_mday=cale->begin.tm_mday; sub_months_from_date(t, freq); break; case calendarRepeatYearly: t->tm_mday=cale->begin.tm_mday; sub_years_from_date(t, freq); break; } /* switch on repeatType */ } return EXIT_SUCCESS; } /* Displays usage string on supplied file handle */ void fprint_usage_string(FILE *out) { fprintf(out, "%s [ -v || -h || [-d] [-p] [-a || -A] [-s] [-i] [-geometry] ]\n", EPN); fprintf(out, _(" -v display version and compile options\n")); fprintf(out, _(" -h display help text\n")); fprintf(out, _(" -d display debug info to stdout\n")); fprintf(out, _(" -p skip loading plugins\n")); fprintf(out, _(" -a ignore missed alarms since the last time program was run\n")); fprintf(out, _(" -A ignore all alarms past and future\n")); fprintf(out, _(" -s start sync using existing instance of GUI\n")); fprintf(out, _(" -i iconify program immediately after launch\n")); fprintf(out, _(" -geometry {X geometry} use specified geometry for main window\n\n")); fprintf(out, _(" The PILOTPORT and PILOTRATE environment variables specify\n")); fprintf(out, _(" which port to sync on, and at what speed.\n")); fprintf(out, _(" If PILOTPORT is not set then it defaults to /dev/pilot.\n")); } void free_mem_rec_header(mem_rec_header **mem_rh) { mem_rec_header *h, *next_h; for (h=*mem_rh; h; h=next_h) { next_h=h->next; free(h); } *mem_rh=NULL; } void free_search_record_list(struct search_record **sr) { struct search_record *temp_sr, *temp_sr_next; for (temp_sr = *sr; temp_sr; temp_sr=temp_sr_next) { temp_sr_next = temp_sr->next; free(temp_sr); } *sr = NULL; } /* Warning, this function will move the file pointer */ int get_app_info_size(FILE *in, int *size) { unsigned char raw_header[LEN_RAW_DB_HEADER]; DBHeader dbh; unsigned int offset; record_header rh; fseek(in, 0, SEEK_SET); fread(raw_header, LEN_RAW_DB_HEADER, 1, in); if (feof(in)) { jp_logf(JP_LOG_WARN, "get_app_info_size(): %s\n", _("Error reading file")); return EXIT_FAILURE; } unpack_db_header(&dbh, raw_header); if (dbh.app_info_offset==0) { *size=0; return EXIT_SUCCESS; } if (dbh.sort_info_offset!=0) { *size = dbh.sort_info_offset - dbh.app_info_offset; return EXIT_SUCCESS; } if (dbh.number_of_records==0) { fseek(in, 0, SEEK_END); *size=ftell(in) - dbh.app_info_offset; return EXIT_SUCCESS; } fread(&rh, sizeof(record_header), 1, in); offset = ((rh.Offset[0]*256+rh.Offset[1])*256+rh.Offset[2])*256+rh.Offset[3]; *size=offset - dbh.app_info_offset; return EXIT_SUCCESS; } void get_compile_options(char *string, int len) { g_snprintf(string, len, PN" version "VERSION"\n" " Copyright (C) 1999-2010 by Judd Montgomery\n" " judd@jpilot.org, http://jpilot.org\n" "\n" PN" comes with ABSOLUTELY NO WARRANTY; for details see the file\n" "COPYING included with the source code, or in /usr/share/docs/jpilot/.\n\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; version 2 of the License.\n\n" "%s %s %s\n" "%s\n" " %s - %s\n" " %s - %d.%d.%d\n" " %s - %s\n" " %s - %s\n" " %s - %s\n" " %s - %s\n" " %s - %s\n" " %s - %s\n" " %s - %s", _("Date compiled"), __DATE__, __TIME__, _("Compiled with these options:"), _("Installed Path"), BASE_DIR, _("pilot-link version"), PILOT_LINK_VERSION, PILOT_LINK_MAJOR, PILOT_LINK_MINOR, _("USB support"), _("yes"), _("Private record support"), #ifdef ENABLE_PRIVATE _("yes"), #else _("no"), #endif _("Datebk support"), #ifdef ENABLE_DATEBK _("yes"), #else _("no"), #endif _("Plugin support"), #ifdef ENABLE_PLUGINS _("yes"), #else _("no"), #endif _("Manana support"), #ifdef ENABLE_MANANA _("yes"), #else _("no"), #endif _("NLS support (foreign languages)"), #ifdef ENABLE_NLS _("yes"), #else _("no"), #endif _("GTK2 support"), _("yes") ); } /* Get today's date and work out day in month. This is used to highlight * today in the gui (read-only) views. Returns the day of month if today * is in the passed month else returns -1. */ int get_highlighted_today(struct tm *date) { time_t now; struct tm* now_tm; /* Quit immediately if the user option is not enabled */ if (!get_pref_int_default(PREF_DATEBOOK_HI_TODAY, FALSE)) return -1; /* Get now time */ now = time(NULL); now_tm = localtime(&now); /* Check if option is on and return today's day of month if the month * and year match was was passed in */ if (now_tm->tm_mon != date->tm_mon || now_tm->tm_year != date->tm_year) return -1; /* Today is within the passed month, return the day of month */ return now_tm->tm_mday; } /* creates the full path name of a file in the ~/.jpilot dir */ int get_home_file_name(const char *file, char *full_name, int max_size) { char *home, default_path[]="."; #ifdef ENABLE_PROMETHEON home = getenv("COPILOT_HOME"); #else home = getenv("JPILOT_HOME"); #endif if (!home) {/* No JPILOT_HOME var */ home = getenv("HOME"); if (!home) {/* No HOME var */ jp_logf(JP_LOG_WARN, _("Can't get HOME environment variable\n")); } } if (!home) { home = default_path; } if (strlen(home)>(max_size-strlen(file)-strlen("/."EPN"/")-2)) { jp_logf(JP_LOG_WARN, _("HOME environment variable is too long to process\n")); home=default_path; } sprintf(full_name, "%s/."EPN"/%s", home, file); return EXIT_SUCCESS; } /* * month = 0-11 * day = day of month 1-31 * returns: * dow = day of week for this date * ndim = number of days in month 28-31 */ void get_month_info(int month, int day, int year, int *dow, int *ndim) { time_t ltime; struct tm *now; struct tm new_time; int days_in_month[]={31,28,31,30,31,30,31,31,30,31,30,31 }; time(<ime); now = localtime(<ime); new_time.tm_sec=0; new_time.tm_min=0; new_time.tm_hour=11; new_time.tm_mday=day; /* day of month 1-31 */ new_time.tm_mon=month; new_time.tm_year=year; new_time.tm_isdst=now->tm_isdst; mktime(&new_time); *dow = new_time.tm_wday; /* leap year */ if (month == 1) { if ((year%4 == 0) && !(((year+1900)%100==0) && ((year+1900)%400!=0)) ) { days_in_month[1]++; } } *ndim = days_in_month[month]; } int get_next_unique_pc_id(unsigned int *next_unique_id) { FILE *pc_in_out; char file_name[FILENAME_MAX]; char str[256]; /* Check that file exists and is not empty. If not, * create it and start unique id numbering from 1 */ pc_in_out = jp_open_home_file(EPN".next_id", "a"); if (pc_in_out==NULL) { jp_logf(JP_LOG_WARN, _("Error opening file: %s\n"),file_name); return EXIT_FAILURE; } if (ftell(pc_in_out)==0) { /* The file is new. We have to write out the file header */ *next_unique_id=1; write_to_next_id_open(pc_in_out, *next_unique_id); } jp_close_home_file(pc_in_out); /* Now that file has been verified we can use it to find the next id */ pc_in_out = jp_open_home_file(EPN".next_id", "r+"); if (pc_in_out==NULL) { jp_logf(JP_LOG_WARN, _("Error opening file: %s\n"),file_name); return EXIT_FAILURE; } memset(str, '\0', sizeof(FILE_VERSION)+4); fread(str, 1, strlen(FILE_VERSION), pc_in_out); if (!strcmp(str, FILE_VERSION)) { /* Must be a versioned file */ fseek(pc_in_out, 0, SEEK_SET); fgets(str, 200, pc_in_out); fgets(str, 200, pc_in_out); str[200]='\0'; *next_unique_id = atoi(str); } else { fseek(pc_in_out, 0, SEEK_SET); fread(next_unique_id, sizeof(*next_unique_id), 1, pc_in_out); } (*next_unique_id)++; if (fseek(pc_in_out, 0, SEEK_SET)) { jp_logf(JP_LOG_WARN, "fseek failed\n"); } /* rewind(pc_in_out); */ /* todo - if > 16777216 then cleanup */ write_to_next_id_open(pc_in_out, *next_unique_id); jp_close_home_file(pc_in_out); return EXIT_SUCCESS; } int get_pixmaps(GtkWidget *widget, int which_pixmap, GdkPixmap **out_pixmap, GdkBitmap **out_mask) { /* Externally stored icon definitions */ #include "icons/clist_mini_icons.h" static int init_done=0; static GdkPixmap *pixmap_note; static GdkPixmap *pixmap_alarm; static GdkPixmap *pixmap_check; static GdkPixmap *pixmap_checked; static GdkPixmap *pixmap_float_check; static GdkPixmap *pixmap_float_checked; static GdkPixmap *pixmap_sdcard; static GdkBitmap *mask_note; static GdkBitmap *mask_alarm; static GdkBitmap *mask_check; static GdkBitmap *mask_checked; static GdkBitmap *mask_float_check; static GdkBitmap *mask_float_checked; static GdkBitmap *mask_sdcard; GtkStyle *style; /* Pixmaps are created only once when procedure is first called */ if (!init_done) { init_done = 1; /* Make the note pixmap */ style = gtk_widget_get_style(widget); pixmap_note = gdk_pixmap_create_from_xpm_d(widget->window, &mask_note, &style->bg[GTK_STATE_NORMAL], (gchar **)xpm_note); /* Make the alarm pixmap */ pixmap_alarm = gdk_pixmap_create_from_xpm_d(widget->window, &mask_alarm, &style->bg[GTK_STATE_NORMAL], (gchar **)xpm_alarm); /* Make the check pixmap */ pixmap_check = gdk_pixmap_create_from_xpm_d(widget->window, &mask_check, &style->bg[GTK_STATE_NORMAL], (gchar **)xpm_check); /* Make the checked pixmap */ pixmap_checked = gdk_pixmap_create_from_xpm_d (widget->window, &mask_checked, &style->bg[GTK_STATE_NORMAL], (gchar **)xpm_checked); /* Make the float_checked pixmap */ pixmap_float_check = gdk_pixmap_create_from_xpm_d (widget->window, &mask_float_check, &style->bg[GTK_STATE_NORMAL], (gchar **)xpm_float_check); /* Make the float_checked pixmap */ pixmap_float_checked = gdk_pixmap_create_from_xpm_d (widget->window, &mask_float_checked, &style->bg[GTK_STATE_NORMAL], (gchar **)xpm_float_checked); /* Make the sdcard pixmap */ pixmap_sdcard = gdk_pixmap_create_from_xpm_d(widget->window, &mask_sdcard, &style->bg[GTK_STATE_NORMAL], (gchar **)xpm_sdcard); } /* End initialization of pixmaps */ switch (which_pixmap) { case PIXMAP_NOTE: *out_pixmap = pixmap_note; *out_mask = mask_note; break; case PIXMAP_ALARM: *out_pixmap = pixmap_alarm; *out_mask = mask_alarm; break; case PIXMAP_BOX_CHECK: *out_pixmap = pixmap_check; *out_mask = mask_check; break; case PIXMAP_BOX_CHECKED: *out_pixmap = pixmap_checked; *out_mask = mask_checked; break; case PIXMAP_FLOAT_CHECK: *out_pixmap = pixmap_float_check; *out_mask = mask_float_check; break; case PIXMAP_FLOAT_CHECKED: *out_pixmap = pixmap_float_checked; *out_mask = mask_float_checked; break; case PIXMAP_SDCARD: *out_pixmap = pixmap_sdcard; *out_mask = mask_sdcard; break; default: *out_pixmap = NULL; *out_mask = NULL; } return EXIT_SUCCESS; } int get_timeout_interval(void) { const char *svalue; get_pref(PREF_TIME, NULL, &svalue); if (strstr(svalue,"%S")) return CLOCK_TICK; else return 60*CLOCK_TICK; } int jp_cal_dialog(GtkWindow *main_window, const char *title, int monday_is_fdow, int *mon, int *day, int *year) { return cal_dialog(main_window, title, monday_is_fdow, mon, day, year); } void jp_charset_j2p(char *const buf, int max_len) { long char_set; get_pref(PREF_CHAR_SET, &char_set, NULL); charset_j2p(buf, max_len, char_set); } void jp_charset_p2j(char *const buf, int max_len) { long char_set; get_pref(PREF_CHAR_SET, &char_set, NULL); if (char_set == CHAR_SET_JAPANESE) jp_Sjis2Euc(buf, max_len); else charset_p2j(buf, max_len, char_set); } char* jp_charset_p2newj(const char *buf, int max_len) { long char_set; get_pref(PREF_CHAR_SET, &char_set, NULL); return(charset_p2newj(buf, max_len, char_set)); } int jp_close_home_file(FILE *pc_in) { /* unlock access */ #ifndef USE_FLOCK struct flock lock; int r; lock.l_type = F_UNLCK; lock.l_start = 0; lock.l_whence = SEEK_SET; lock.l_len = 0; r = fcntl(fileno(pc_in), F_SETLK, &lock); if (r == -1) #else if (flock(fileno(pc_in), LOCK_UN) < 0) #endif jp_logf(JP_LOG_WARN, "unlocking failed: %s\n", strerror(errno)); return fclose(pc_in); } int jp_copy_file(char *src, char *dest) { FILE *in, *out; int r; struct stat statb; struct utimbuf times; unsigned char buf[10002]; if (!strcmp(src, dest)) { return EXIT_SUCCESS; } in = fopen(src, "r"); out = fopen(dest, "w"); if (!in) { return EXIT_FAILURE; } if (!out) { fclose(in); return EXIT_FAILURE; } while ((r = fread(buf, 1, sizeof(buf)-2, in))) { fwrite(buf, 1, r, out); } fclose(in); fclose(out); /* Set the create and modify times of new file to the same as the old */ stat(src, &statb); times.actime = statb.st_atime; times.modtime = statb.st_mtime; utime(dest, ×); return EXIT_SUCCESS; } FILE *jp_open_home_file(const char *filename, const char *mode) { char fullname[FILENAME_MAX]; FILE *pc_in; get_home_file_name(filename, fullname, sizeof(fullname)); pc_in = fopen(fullname, mode); if (pc_in == NULL) { pc_in = fopen(fullname, "w+"); if (pc_in) { fclose(pc_in); pc_in = fopen(fullname, mode); } } /* if the file exists */ if (pc_in) { /* lock access */ #ifndef USE_FLOCK struct flock lock; int r; if (*mode == 'r') lock.l_type = F_RDLCK; else lock.l_type = F_WRLCK; lock.l_start = 0; lock.l_whence = SEEK_SET; lock.l_len = 0; /* Lock to the end of file */ r = fcntl(fileno(pc_in), F_SETLK, &lock); if (r == -1) #else if (flock(fileno(pc_in), LOCK_EX) < 0) #endif { jp_logf(JP_LOG_WARN, "locking %s failed: %s\n", filename, strerror(errno)); if (ENOLCK != errno) { fclose(pc_in); return NULL; } else jp_logf(JP_LOG_WARN, "continue without locking\n"); } /* Enhance privacy by only allowing user to read & write files */ chmod(fullname, 0600); } return pc_in; } size_t jp_strftime(char *s, size_t max, const char *format, const struct tm *tm) { size_t ret; gchar *utf8_text; gchar *local_format; /* the format string is UTF-8 encoded since it comes from a .po file */ local_format = g_locale_from_utf8(format, -1, NULL, NULL, NULL); ret = strftime(s, max, local_format, tm); g_free(local_format); utf8_text = g_locale_to_utf8(s, -1, NULL, NULL, NULL); g_strlcpy(s, utf8_text, max); g_free(utf8_text); return ret; } /* RFC 2849 */ void ldif_out(FILE *f, const char *name, const char *fmt, ...) { va_list ap; unsigned char buf[8192]; char *p; int printable = 1; va_start(ap, fmt); vsnprintf((char *)buf, sizeof(buf), fmt, ap); if (buf[0] == ' ' || buf[0] == ':' || buf[0] == '<') /* SAFE-INIT-CHAR */ { printable = 0; } for (p = (char *)buf; *p && printable; p++) { if (*p < 32 || *p > 126) { /* SAFE-CHAR, excluding all control chars */ printable = 0; } if (*p == ' ' && *(p + 1) == '\0') { /* note 8 */ printable = 0; } } if (printable) { fprintf(f, "%s: %s\n", name, buf); } else { fprintf(f, "%s:: ", name); base64_out(f, buf); fprintf(f, "\n"); } } /* Parse the string and replace CR and LFs with spaces * a null is written if len is reached */ void lstrncpy_remove_cr_lfs(char *dest, char *src, int len) { int i; gchar* end; if ((!src) || (!dest)) { return; } dest[0]='\0'; for (i=0; src[i] && (i=0) && (*sizep>0) ) { *bufp=malloc(*sizep); if (*bufp) { memcpy(*bufp, temp_buf, *sizep); } } else { *bufp=NULL; } pi_file_close(pf1); return r; } int pdb_file_write_app_block(char *DB_name, void *bufp, size_t size_in) { char local_pdb_file[FILENAME_MAX]; char full_local_pdb_file[FILENAME_MAX]; char full_local_pdb_file2[FILENAME_MAX]; struct pi_file *pf1, *pf2; struct DBInfo infop; void *app_info; void *sort_info; void *record; int r; int idx; size_t size; int attr; int cat; pi_uid_t uid; struct stat statb; struct utimbuf times; jp_logf(JP_LOG_DEBUG, "pdb_file_write_app_block\n"); g_snprintf(local_pdb_file, sizeof(local_pdb_file), "%s.pdb", DB_name); get_home_file_name(local_pdb_file, full_local_pdb_file, sizeof(full_local_pdb_file)); strcpy(full_local_pdb_file2, full_local_pdb_file); strcat(full_local_pdb_file2, "2"); /* After we are finished, set the create and modify times of new file to the same as the old */ stat(full_local_pdb_file, &statb); times.actime = statb.st_atime; times.modtime = statb.st_mtime; pf1 = pi_file_open(full_local_pdb_file); if (!pf1) { jp_logf(JP_LOG_WARN, _("Unable to open file: %s\n"), full_local_pdb_file); return EXIT_FAILURE; } pi_file_get_info(pf1, &infop); pf2 = pi_file_create(full_local_pdb_file2, &infop); if (!pf2) { jp_logf(JP_LOG_WARN, _("Unable to open file: %s\n"), full_local_pdb_file2); return EXIT_FAILURE; } pi_file_get_app_info(pf1, &app_info, &size); pi_file_set_app_info(pf2, bufp, size_in); pi_file_get_sort_info(pf1, &sort_info, &size); pi_file_set_sort_info(pf2, sort_info, size); for(idx=0;;idx++) { r = pi_file_read_record(pf1, idx, &record, &size, &attr, &cat, &uid); if (r<0) break; pi_file_append_record(pf2, record, size, attr, cat, uid); } pi_file_close(pf1); pi_file_close(pf2); if (rename(full_local_pdb_file2, full_local_pdb_file) < 0) { jp_logf(JP_LOG_WARN, "pdb_file_write_app_block(): %s\n", _("rename failed")); } utime(full_local_pdb_file, ×); return EXIT_SUCCESS; } /* DB_name is filename with extention and path, i.e: "/tmp/Net Prefs.prc" */ int pdb_file_write_dbinfo(char *full_DB_name, struct DBInfo *Pinfo_in) { char full_local_pdb_file2[FILENAME_MAX]; struct pi_file *pf1, *pf2; struct DBInfo infop; void *app_info; void *sort_info; void *record; int r; int idx; size_t size; int attr; int cat; pi_uid_t uid; struct stat statb; struct utimbuf times; jp_logf(JP_LOG_DEBUG, "pdb_file_write_dbinfo\n"); g_snprintf(full_local_pdb_file2, sizeof(full_local_pdb_file2), "%s2", full_DB_name); /* After we are finished, set the create and modify times of new file to the same as the old */ stat(full_DB_name, &statb); times.actime = statb.st_atime; times.modtime = statb.st_mtime; pf1 = pi_file_open(full_DB_name); if (!pf1) { jp_logf(JP_LOG_WARN, _("Unable to open file: %s\n"), full_DB_name); return EXIT_FAILURE; } pi_file_get_info(pf1, &infop); /* Set the DBInfo to the one coming into the function */ pf2 = pi_file_create(full_local_pdb_file2, Pinfo_in); if (!pf2) { jp_logf(JP_LOG_WARN, _("Unable to open file: %s\n"), full_local_pdb_file2); return EXIT_FAILURE; } pi_file_get_app_info(pf1, &app_info, &size); pi_file_set_app_info(pf2, app_info, size); pi_file_get_sort_info(pf1, &sort_info, &size); pi_file_set_sort_info(pf2, sort_info, size); for(idx=0;;idx++) { r = pi_file_read_record(pf1, idx, &record, &size, &attr, &cat, &uid); if (r<0) break; pi_file_append_record(pf2, record, size, attr, cat, uid); } pi_file_close(pf1); pi_file_close(pf2); if (rename(full_local_pdb_file2, full_DB_name) < 0) { jp_logf(JP_LOG_WARN, "pdb_file_write_dbinfo(): %s\n", _("rename failed")); } utime(full_DB_name, ×); return EXIT_SUCCESS; } void print_string(char *str, int len) { unsigned char c; int i; for (i=0;i= 0x7f) jp_logf(JP_LOG_STDOUT, "%x", c); else jp_logf(JP_LOG_STDOUT, "%c", c); } jp_logf(JP_LOG_STDOUT, "\n"); } int read_gtkrc_file(void) { char filename[FILENAME_MAX]; char fullname[FILENAME_MAX]; struct stat buf; const char *svalue; get_pref(PREF_RCFILE, NULL, &svalue); if (svalue) { jp_logf(JP_LOG_DEBUG, "rc file from prefs is %s\n", svalue); } else { jp_logf(JP_LOG_DEBUG, "rc file from prefs is NULL\n"); } g_strlcpy(filename, svalue, sizeof(filename)); /* Try to read the file out of the home directory first */ get_home_file_name(filename, fullname, sizeof(fullname)); if (stat(fullname, &buf)==0) { jp_logf(JP_LOG_DEBUG, "parsing %s\n", fullname); gtk_rc_parse(fullname); return EXIT_SUCCESS; } g_snprintf(fullname, sizeof(fullname), "%s/%s/%s/%s", BASE_DIR, "share", EPN, filename); if (stat(fullname, &buf)==0) { jp_logf(JP_LOG_DEBUG, "parsing %s\n", fullname); gtk_rc_parse(fullname); return EXIT_SUCCESS; } return EXIT_FAILURE; } /* Parse the string and replace CR and LFs with spaces */ void remove_cr_lfs(char *str) { int i; if (!str) { return; } for (i=0; str[i]; i++) { if ((str[i]=='\r') || (str[i]=='\n')) { str[i]=' '; } } } void rename_dbnames(char dbname[][32]) { int i; long datebook_version, address_version, todo_version, memo_version; get_pref(PREF_DATEBOOK_VERSION, &datebook_version, NULL); get_pref(PREF_ADDRESS_VERSION, &address_version, NULL); get_pref(PREF_TODO_VERSION, &todo_version, NULL); get_pref(PREF_MEMO_VERSION, &memo_version, NULL); for (i=0; dbname[i] && dbname[i][0]; i++) { if (datebook_version==1) { if (!strcmp(dbname[i], "DatebookDB.pdb")) { strcpy(dbname[i], "CalendarDB-PDat.pdb"); } if (!strcmp(dbname[i], "DatebookDB.pc3")) { strcpy(dbname[i], "CalendarDB-PDat.pc3"); } if (!strcmp(dbname[i], "DatebookDB")) { strcpy(dbname[i], "CalendarDB-PDat"); } } if (address_version==1) { if (!strcmp(dbname[i], "AddressDB.pdb")) { strcpy(dbname[i], "ContactsDB-PAdd.pdb"); } if (!strcmp(dbname[i], "AddressDB.pc3")) { strcpy(dbname[i], "ContactsDB-PAdd.pc3"); } if (!strcmp(dbname[i], "AddressDB")) { strcpy(dbname[i], "ContactsDB-PAdd"); } } if (todo_version==1) { if (!strcmp(dbname[i], "ToDoDB.pdb")) { strcpy(dbname[i], "TasksDB-PTod.pdb"); } if (!strcmp(dbname[i], "ToDoDB.pc3")) { strcpy(dbname[i], "TasksDB-PTod.pc3"); } if (!strcmp(dbname[i], "ToDoDB")) { strcpy(dbname[i], "TasksDB-PTod"); } } if (memo_version==1) { if (!strcmp(dbname[i], "MemoDB.pdb")) { strcpy(dbname[i], "MemosDB-PMem.pdb"); } if (!strcmp(dbname[i], "MemoDB.pc3")) { strcpy(dbname[i], "MemosDB-PMem.pc3"); } if (!strcmp(dbname[i], "MemoDB")) { strcpy(dbname[i], "MemosDB-PMem"); } } if (memo_version==2) { if (!strcmp(dbname[i], "MemoDB.pdb")) { strcpy(dbname[i], "Memo32DB.pdb"); } if (!strcmp(dbname[i], "MemoDB.pc3")) { strcpy(dbname[i], "Memo32DB.pc3"); } if (!strcmp(dbname[i], "MemoDB")) { strcpy(dbname[i], "Memo32DB"); } } } } int rename_file(char *old_filename, char *new_filename) { char old_fullname[FILENAME_MAX]; char new_fullname[FILENAME_MAX]; get_home_file_name(old_filename, old_fullname, sizeof(old_fullname)); get_home_file_name(new_filename, new_fullname, sizeof(new_fullname)); return rename(old_fullname, new_fullname); } void set_bg_rgb_clist_row(GtkWidget *clist, int row, int r, int g, int b) { GtkStyle *old_style, *new_style; GdkColor color; if ((old_style = gtk_widget_get_style(clist))) { new_style = gtk_style_copy(old_style); } else { new_style = gtk_style_new(); } color.red=r; color.green=g; color.blue=b; color.pixel=0; new_style->base[GTK_STATE_NORMAL] = color; gtk_clist_set_row_style(GTK_CLIST(clist), row, new_style); } void set_fg_rgb_clist_cell(GtkWidget *clist, int row, int col, int r, int g, int b) { GtkStyle *old_style, *new_style; GdkColor fg_color; if ((old_style = gtk_clist_get_row_style(GTK_CLIST(clist), row)) || (old_style = gtk_widget_get_style(clist))) { new_style = gtk_style_copy(old_style); } else { new_style = gtk_style_new(); } fg_color.red=r; fg_color.green=g; fg_color.blue=b; fg_color.pixel=0; new_style->fg[GTK_STATE_NORMAL] = fg_color; new_style->fg[GTK_STATE_SELECTED] = fg_color; gtk_clist_set_cell_style(GTK_CLIST(clist), row, col, new_style); } int setup_sync(unsigned int flags) { long num_backups; const char *svalue; const char *port; int r; #ifndef HAVE_SETENV char str[80]; #endif struct my_sync_info sync_info; /* look in env for PILOTRATE first */ if (!(getenv("PILOTRATE"))) { get_pref(PREF_RATE, NULL, &svalue); jp_logf(JP_LOG_DEBUG, "setting PILOTRATE=[%s]\n", svalue); if (svalue) { #ifdef HAVE_SETENV setenv("PILOTRATE", svalue, TRUE); #else sprintf(str, "PILOTRATE=%s", svalue); putenv(str); #endif } } get_pref(PREF_PORT, NULL, &port); get_pref(PREF_NUM_BACKUPS, &num_backups, NULL); jp_logf(JP_LOG_DEBUG, "pref port=[%s]\n", port); jp_logf(JP_LOG_DEBUG, "num_backups=%d\n", num_backups); get_pref(PREF_USER, NULL, &svalue); g_strlcpy(sync_info.username, svalue, sizeof(sync_info.username)); get_pref(PREF_USER_ID, &(sync_info.userID), NULL); get_pref(PREF_PC_ID, &(sync_info.PC_ID), NULL); if (sync_info.PC_ID == 0) { srandom(time(NULL)); /* RAND_MAX is 32768 on Solaris machines for some reason. * If someone knows how to fix this, let me know. */ if (RAND_MAX==32768) { sync_info.PC_ID = 1+(2000000000.0*random()/(2147483647+1.0)); } else { sync_info.PC_ID = 1+(2000000000.0*random()/(RAND_MAX+1.0)); } jp_logf(JP_LOG_WARN, _("PC ID is 0.\n")); jp_logf(JP_LOG_WARN, _("Generated a new PC ID. It is %lu\n"), sync_info.PC_ID); set_pref(PREF_PC_ID, sync_info.PC_ID, NULL, TRUE); } sync_info.sync_over_ride = 0; g_strlcpy(sync_info.port, port, sizeof(sync_info.port)); sync_info.flags=flags; sync_info.num_backups=num_backups; r = sync_once(&sync_info); return r; } /* * Copy src string into dest while escaping quotes with double quotes. * dest could be as long as strlen(src)*2. * Return value is the number of chars written to dest. */ int str_to_csv_str(char *dest, char *src) { int s, d; if (dest) dest[0]='\0'; if ((!src) || (!dest)) { return EXIT_SUCCESS; } s=d=0; while (src[s]) { if (src[s]=='\"') { dest[d++]='\"'; } dest[d++]=src[s++]; } dest[d++]='\0'; return d; } /* * Quote a TEXT format string as specified by RFC 2445. * Wrap it at 60-ish characters. */ int str_to_ical_str(char *dest, int destsz, char *src) { return str_to_iv_str(dest, destsz, src, 1); } /* * Quote for iCalendar (RFC 2445) or vCard (RFC 2426). * The only difference is that iCalendar also quotes semicolons. * Wrap at 70-ish characters. */ static int str_to_iv_str(char *dest, int destsz, char *src, int isical) { int c, i; char *destend, *odest; if ((!src) || (!dest)) { return EXIT_SUCCESS; } odest = dest; destend = dest + destsz - 4; /* max 4 chars into dest per loop iteration */ c=0; while (*src) { if (dest >= destend) { break; } if (c>ICAL_LINE_LENGTH) { /* Assume UTF-8 coding and stop on a valid character boundary */ for (i=0; i<4; i++) { if ((*src & 0xC0) != 0x80) { if (*src) { *dest++= CR; *dest++= LF; *dest++=' '; } c=0; break; } *dest++=*src++; } if (c != 0) { jp_logf(JP_LOG_WARN,_("Invalid UTF-8 encoding in export string\n")); /* Force truncation of line anyways */ *dest++= CR; *dest++= LF; *dest++=' '; c=0; } continue; } if (*src=='\n') { *dest++='\\'; *dest++='n'; c+=2; src++; continue; } if (*src=='\\' || (isical && *src == ';') || *src == ',') { *dest++='\\'; c++; } *dest++=*src++; c++; } *dest++='\0'; return dest - odest; } /* * Quote a *TEXT-LIST-CHAR format string as specified by RFC 2426. * Wrap it at 60-ish characters. */ int str_to_vcard_str(char *dest, int destsz, char *src) { return str_to_iv_str(dest, destsz, src, 0); } /* * This is a slow algorithm, but its not used much */ int sub_days_from_date(struct tm *date, int n) { int ndim; int fdom; int flag; int reset_days; int i; get_month_info(date->tm_mon, 1, date->tm_year, &fdom, &ndim); for (i=0; itm_mday) < 1) { date->tm_mday=28; reset_days = 1; flag = 1; if (--(date->tm_mon) < 0) { date->tm_mon=11; flag = 1; if (--(date->tm_year)<3) { date->tm_year = 3; } } } if (flag) { get_month_info(date->tm_mon, 1, date->tm_year, &fdom, &ndim); } /* this assumes that flag is always set when reset_days is set */ if (reset_days) { date->tm_mday=ndim; } } date->tm_isdst=-1; mktime(date); return EXIT_SUCCESS; } /* * This function will decrement the date by n number of months and * adjust the day to the last day of the month if it exceeds the number * of days in the new month */ int sub_months_from_date(struct tm *date, int n) { int i; int days_in_month[]={31,28,31,30,31,30,31,31,30,31,30,31}; for (i=0; itm_mon) < 0) { date->tm_mon=11; if (--(date->tm_year)<3) { date->tm_year = 3; } } } if ((date->tm_year%4 == 0) && !(((date->tm_year+1900)%100==0) && ((date->tm_year+1900)%400!=0))) { days_in_month[1]++; } if (date->tm_mday > days_in_month[date->tm_mon]) { date->tm_mday = days_in_month[date->tm_mon]; } date->tm_isdst=-1; mktime(date); return EXIT_SUCCESS; } int sub_years_from_date(struct tm *date, int n) { return add_or_sub_years_to_date(date, -n); } gint timeout_sync_up(gpointer data) { time_t ltime; struct tm *now; int secs, diff_secs; int timeout_interval = get_timeout_interval(); if (timeout_interval == CLOCK_TICK) { glob_date_timer_tag = gtk_timeout_add(timeout_interval, timeout_date, NULL); } else { /* Interval is in minutes. Sync up with current time */ time(<ime); now = localtime(<ime); secs = now->tm_sec; if (secs < 2) { glob_date_timer_tag = gtk_timeout_add(timeout_interval, timeout_date, NULL); } else { diff_secs = (secs < 61) ? 60-secs : 59; // Account for leap seconds glob_date_timer_tag = gtk_timeout_add(diff_secs*CLOCK_TICK, timeout_sync_up, NULL); } } timeout_date(NULL); // Update label return FALSE; // Destroy this timeout } gint timeout_date(gpointer data) { char str[102]; char datef[102]; const char *svalue1, *svalue2; time_t ltime; struct tm *now; if (glob_date_label==NULL) { return FALSE; } time(<ime); now = localtime(<ime); /* Build a long date string */ get_pref(PREF_LONGDATE, NULL, &svalue1); get_pref(PREF_TIME, NULL, &svalue2); if ((svalue1==NULL)||(svalue2==NULL)) { strcpy(datef, _("Today is %A, %x %X")); } else { sprintf(datef, _("Today is %%A, %s %s"), svalue1, svalue2); } jp_strftime(str, 100, datef, now); str[100]='\0'; gtk_label_set_text(GTK_LABEL(glob_date_label), str); return TRUE; } /* * This undeletes a record from the appropriate Datafile */ int undelete_pc_record(AppType app_type, void *VP, int flag) { PC3RecordHeader header; MyAppointment *mappt; MyCalendarEvent *mcale; MyAddress *maddr; MyContact *mcont; MyToDo *mtodo; MyMemo *mmemo; unsigned int unique_id; char filename[FILENAME_MAX]; char filename2[FILENAME_MAX]; FILE *pc_file = NULL; FILE *pc_file2 = NULL; char *record; int found; int ret = -1; int num; #ifdef ENABLE_MANANA long ivalue; #endif char dbname[][32]={ "DatebookDB.pc3", "AddressDB.pc3", "ToDoDB.pc3", "MemoDB.pc3", "" }; if (VP==NULL) { return EXIT_FAILURE; } /* Convert to new database names if prefs set */ rename_dbnames(dbname); /* to keep the compiler happy with -Wall*/ mappt = NULL; mcale = NULL; maddr = NULL; mcont = NULL; mmemo = NULL; switch (app_type) { case DATEBOOK: mappt = (MyAppointment *) VP; unique_id = mappt->unique_id; strcpy(filename, dbname[0]); break; case CALENDAR: mcale = (MyCalendarEvent *) VP; unique_id = mcale->unique_id; strcpy(filename, dbname[0]); break; case ADDRESS: maddr = (MyAddress *) VP; unique_id = maddr->unique_id; strcpy(filename, dbname[1]); break; case CONTACTS: mcont = (MyContact *) VP; unique_id = mcont->unique_id; strcpy(filename, dbname[1]); break; case TODO: mtodo = (MyToDo *) VP; unique_id = mtodo->unique_id; #ifdef ENABLE_MANANA get_pref(PREF_MANANA_MODE, &ivalue, NULL); if (ivalue) { strcpy(filename, "MaanaDB.pc3"); } else { strcpy(filename, dbname[2]); } #else strcpy(filename, dbname[2]); #endif break; case MEMO: mmemo = (MyMemo *) VP; unique_id = mmemo->unique_id; strcpy(filename, dbname[3]); break; default: return EXIT_SUCCESS; } found = FALSE; record = NULL; g_snprintf(filename2, sizeof(filename2), "%s.pct", filename); pc_file = jp_open_home_file(filename , "r"); if (!pc_file) { return EXIT_FAILURE; } pc_file2=jp_open_home_file(filename2, "w"); if (!pc_file2) { jp_close_home_file(pc_file); return EXIT_FAILURE; } while(!feof(pc_file)) { read_header(pc_file, &header); if (feof(pc_file)) { break; } /* Skip copying DELETED_PALM_REC entry which undeletes it */ if (header.unique_id == unique_id && header.rt == DELETED_PALM_REC) { found = TRUE; if (fseek(pc_file, header.rec_len, SEEK_CUR)) { jp_logf(JP_LOG_WARN, "fseek failed\n"); ret = -1; break; } continue; } /* Change header on DELETED_PC_REC to undelete this type */ if ((header.unique_id == unique_id) && (header.rt == DELETED_PC_REC)) { found = TRUE; header.rt = NEW_PC_REC; } /* Otherwise, keep whatever is there by copying it to the new pc3 file */ record = malloc(header.rec_len); if (!record) { jp_logf(JP_LOG_WARN, "cleanup_pc_file(): Out of memory\n"); ret = -1; break; } num = fread(record, header.rec_len, 1, pc_file); if (num != 1) { if (ferror(pc_file)) { ret = -1; break; } } ret = write_header(pc_file2, &header); ret = fwrite(record, header.rec_len, 1, pc_file2); if (ret != 1) { ret = -1; break; } free(record); record = NULL; } if (record) { free(record); } if (pc_file) { jp_close_home_file(pc_file); } if (pc_file2) { jp_close_home_file(pc_file2); } if (found) { rename_file(filename2, filename); } else { unlink_file(filename2); } return ret; } int unlink_file(char *filename) { char fullname[FILENAME_MAX]; get_home_file_name(filename, fullname, sizeof(fullname)); return unlink(fullname); } int unpack_db_header(DBHeader *dbh, unsigned char *buffer) { unsigned long temp; g_strlcpy(dbh->db_name, (char *)buffer, 32); dbh->flags = bytes_to_bin(buffer + 32, 2); dbh->version = bytes_to_bin(buffer + 34, 2); temp = bytes_to_bin(buffer + 36, 4); dbh->creation_time = pilot_time_to_unix_time(temp); temp = bytes_to_bin(buffer + 40, 4); dbh->modification_time = pilot_time_to_unix_time(temp); temp = bytes_to_bin(buffer + 44, 4); dbh->backup_time = pilot_time_to_unix_time(temp); dbh->modification_number = bytes_to_bin(buffer + 48, 4); dbh->app_info_offset = bytes_to_bin(buffer + 52, 4); dbh->sort_info_offset = bytes_to_bin(buffer + 56, 4); g_strlcpy(dbh->type, (char *)(buffer + 60), 5); g_strlcpy(dbh->creator_id, (char *)(buffer + 64), 5); g_strlcpy(dbh->unique_id_seed, (char *)(buffer + 68), 5); dbh->next_record_list_id = bytes_to_bin(buffer + 72, 4); dbh->number_of_records = bytes_to_bin(buffer + 76, 2); return EXIT_SUCCESS; } /* Validate CSV header before import * Current test merely checks for the correct number of fields in the header * but does not check name, type, etc. More tests could also be added * to compare the jpilot version that produced the file with the jpilot * version that is importing the file. */ int verify_csv_header(const char *header, int num_fields, const char *file_name) { int i, comma_cnt; for (i=0, comma_cnt=0; i # Created: 1993-05-16 # Public domain. # # This file is maintained in Automake, please report # bugs to or send patches to # . nl=' ' IFS=" "" $nl" errstatus=0 dirmode= usage="\ Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... Create each directory DIR (with mode MODE, if specified), including all leading file name components. Report bugs to ." # process command line arguments while test $# -gt 0 ; do case $1 in -h | --help | --h*) # -h for help echo "$usage" exit $? ;; -m) # -m PERM arg shift test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } dirmode=$1 shift ;; --version) echo "$0 $scriptversion" exit $? ;; --) # stop option processing shift break ;; -*) # unknown option echo "$usage" 1>&2 exit 1 ;; *) # first non-opt arg break ;; esac done for file do if test -d "$file"; then shift else break fi done case $# in 0) exit 0 ;; esac # Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and # mkdir -p a/c at the same time, both will detect that a is missing, # one will create a, then the other will try to create a and die with # a "File exists" error. This is a problem when calling mkinstalldirs # from a parallel make. We use --version in the probe to restrict # ourselves to GNU mkdir, which is thread-safe. case $dirmode in '') if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then echo "mkdir -p -- $*" exec mkdir -p -- "$@" else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. test -d ./-p && rmdir ./-p test -d ./--version && rmdir ./--version fi ;; *) if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 && test ! -d ./--version; then echo "mkdir -m $dirmode -p -- $*" exec mkdir -m "$dirmode" -p -- "$@" else # Clean up after NextStep and OpenStep mkdir. for d in ./-m ./-p ./--version "./$dirmode"; do test -d $d && rmdir $d done fi ;; esac for file do case $file in /*) pathcomp=/ ;; *) pathcomp= ;; esac oIFS=$IFS IFS=/ set fnord $file shift IFS=$oIFS for d do test "x$d" = x && continue pathcomp=$pathcomp$d case $pathcomp in -*) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr else if test ! -z "$dirmode"; then echo "chmod $dirmode $pathcomp" lasterr= chmod "$dirmode" "$pathcomp" || lasterr=$? if test ! -z "$lasterr"; then errstatus=$lasterr fi fi fi fi pathcomp=$pathcomp/ done done exit $errstatus # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: jpilot-1.8.1.2/install-sh0000755000175000017500000003253711254114052012114 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2009-04-28.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: jpilot-1.8.1.2/config.h.in0000644000175000017500000001205511702305113012122 00000000000000/* config.h.in. Generated from configure.in by autoheader. */ /* ABILIB */ #undef ABILIB /* BASE_DIR */ #undef BASE_DIR /* Datebook description and note allowed in shell commands */ #undef ENABLE_ALARM_SHELL_DANGER /* DateBk support */ #undef ENABLE_DATEBK /* Manana support */ #undef ENABLE_MANANA /* Define to 1 if translation of program messages to the user's native language is requested. */ #undef ENABLE_NLS /* plugin support */ #undef ENABLE_PLUGINS /* Private record support */ #undef ENABLE_PRIVATE /* Prometheon support */ #undef ENABLE_PROMETHEON /* Use GTK2 stock buttons */ #undef ENABLE_STOCK_BUTTONS /* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework. */ #undef HAVE_CFLOCALECOPYCURRENT /* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework. */ #undef HAVE_CFPREFERENCESCOPYAPPVALUE /* Define if the GNU dcgettext() function is already present or preinstalled. */ #undef HAVE_DCGETTEXT /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the `dlopen' function. */ #undef HAVE_DLOPEN /* Define to 1 if you have the header file. */ #undef HAVE_FCNTL_H /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT /* Define if you have the iconv() function. */ #undef HAVE_ICONV /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_LANGINFO_H /* Use GNU libgcrypt instead of OpenSSL */ #undef HAVE_LIBGCRYPT /* Define to 1 if you have the `nsl' library (-lnsl). */ #undef HAVE_LIBNSL /* Define to 1 if you have the `socket' library (-lsocket). */ #undef HAVE_LIBSOCKET /* Define to 1 if you have the header file. */ #undef HAVE_LOCALE_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the header file. */ #undef HAVE_NETINET_IN_H /* Define to 1 if you have the header file. */ #undef HAVE_OPENSSL_DES_H /* Define to 1 if you have the header file. */ #undef HAVE_OPENSSL_MD5_H /* Define to 1 if you have the `setenv' function. */ #undef HAVE_SETENV /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `strcoll' function and it is properly defined. */ #undef HAVE_STRCOLL /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_FILE_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SOCKET_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TIME_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_WAIT_H /* Define to 1 if you have the header file. */ #undef HAVE_TERMIO_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the header file. */ #undef HAVE_UTIME_H /* Define if _NL_TIME_FIRST_WEEKDAY is available */ #undef HAVE__NL_TIME_FIRST_WEEKDAY /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* program name */ #undef PROGNAME /* Define as the return type of signal handlers (`int' or `void'). */ #undef RETSIGTYPE /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Define to 1 if you can safely include both and . */ #undef TIME_WITH_SYS_TIME /* Define to 1 if your declares `struct tm'. */ #undef TM_IN_SYS_TIME /* Using flock instead of fnctl */ #undef USE_FLOCK /* Version number of package */ #undef VERSION /* Define to `int' if doesn't define. */ #undef gid_t /* Define to `__inline__' or `__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus #undef inline #endif /* Define to `int' if does not define. */ #undef pid_t /* Define to `unsigned int' if does not define. */ #undef size_t /* Define to `int' if doesn't define. */ #undef uid_t jpilot-1.8.1.2/prefs_gui.h0000644000175000017500000000206411365051716012246 00000000000000/* $Id: prefs_gui.h,v 1.6 2010-03-29 05:44:30 rikster5 Exp $ */ /******************************************************************************* * prefs_gui.h * A module of J-Pilot http://jpilot.org * * Copyright (C) 1999-2002 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #include void cb_prefs_gui(GtkWidget *widget, gpointer data); jpilot-1.8.1.2/NEWS0000644000175000017500000000000007654363062010603 00000000000000jpilot-1.8.1.2/jp-pi-contact.h0000644000175000017500000000412511365051716012733 00000000000000/* $Id: jp-pi-contact.h,v 1.9 2010-04-21 09:40:05 rousseau Exp $ */ /******************************************************************************* * jp-pi-contact.h: Translate Palm contact data formats * A module of J-Pilot http://jpilot.org * * Copyright (C) 2003-2006 by Judd Montgomery * * This code is NOT derived from pi-contact.h from pilot-link. * pilot-link's pi-contact.h was based on this code. * This code was however based on pi-address.h and was originally written to * be part of pilot-link, however licensing issues * prevent this code from being part of pilot-link. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ #ifndef __JP_PI_CONTACT_H_ #define __JP_PI_CONTACT_H_ #include "config.h" #include #define NUM_CONTACT_FIELDS 40 #ifdef __cplusplus extern "C" { #endif extern void jp_free_Contact PI_ARGS((struct Contact *)); extern int jp_unpack_Contact PI_ARGS((struct Contact *, pi_buffer_t *)); extern int jp_pack_Contact PI_ARGS((struct Contact *, pi_buffer_t *)); extern int jp_unpack_ContactAppInfo PI_ARGS((struct ContactAppInfo *, pi_buffer_t *)); extern int jp_pack_ContactAppInfo PI_ARGS((struct ContactAppInfo *, pi_buffer_t *buf)); extern int jp_Contact_add_blob PI_ARGS((struct Contact *, struct ContactBlob *)); extern int jp_Contact_add_picture PI_ARGS((struct Contact *, struct ContactPicture *)); #ifdef __cplusplus } #endif #endif jpilot-1.8.1.2/empty/0000755000175000017500000000000011702310021011304 500000000000000jpilot-1.8.1.2/empty/CalendarDB-PDat.pdb0000644000175000017500000000057211247437611014507 00000000000000CalendarDB-PDat[[PDATAPDatUnfiledusinessersonaljpilot-1.8.1.2/empty/TasksDB-PTod.pdb0000644000175000017500000000057410714137630014077 00000000000000TasksDB-PTodU5URUQ PDATAPTodUnfiledBusinessPersonal jpilot-1.8.1.2/empty/MaanaDB.pdb0000644000175000017500000000055211234617731013543 00000000000000MaanaDBƘ*ƘEƘRPDATACYCLUnfiled1sonalsinessjpilot-1.8.1.2/empty/DatebookDB.pdb0000644000175000017500000000055010445274001013663 00000000000000DatebookDBdfPDATAdatejpilot-1.8.1.2/empty/AddressDB.pdb0000644000175000017500000000131611245244222013522 00000000000000AddressDB:OƑUƑUPDATAaddrUnfiledusinessersonaluickList?Last nameFirst nameCompanyWorkHomeFaxOtherE-mailAddressCityStateZip CodeCountryTitleCustom 1Custom 2Custom 3Custom 4NoteMainPagerMobilejpilot-1.8.1.2/empty/ExpenseDB.pdb0000644000175000017500000000073011245244222013543 00000000000000ExpenseDB>۷>PDATAexpsUnfiledew Yorkarisjpilot-1.8.1.2/empty/MemoDB.pdb0000644000175000017500000000055211245244222013033 00000000000000MemoDBuƑUƑUPDATAmemoUnfiledusinessersonaljpilot-1.8.1.2/empty/Makefile.am0000644000175000017500000000070411245244222013274 00000000000000# $Id: Makefile.am,v 1.5 2009/07/31 16:46:16 rikster5 Exp $ # install blank pdb files pdbdir = $(datadir)/$(PACKAGE) pdb_DATA = DatebookDB.pdb \ CalendarDB-PDat.pdb \ AddressDB.pdb \ ContactsDB-PAdd.pdb \ ToDoDB.pdb \ TasksDB-PTod.pdb \ MaanaDB.pdb \ MemoDB.pdb \ MemosDB-PMem.pdb \ Memo32DB.pdb \ ExpenseDB.pdb EXTRA_DIST = $(pdb_DATA) jpilot-1.8.1.2/empty/Makefile.in0000644000175000017500000003160011702305114013300 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # $Id: Makefile.am,v 1.5 2009/07/31 16:46:16 rikster5 Exp $ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = empty DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-2.0.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(pdbdir)" DATA = $(pdb_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ABILIB = @ABILIB@ ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CUT = @CUT@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@ LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@ LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENSSL_LIBS = @OPENSSL_LIBS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PILOT_FLAGS = @PILOT_FLAGS@ PILOT_LIBS = @PILOT_LIBS@ PKG_CONFIG = @PKG_CONFIG@ POSUB = @POSUB@ PROGNAME = @PROGNAME@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # install blank pdb files pdbdir = $(datadir)/$(PACKAGE) pdb_DATA = DatebookDB.pdb \ CalendarDB-PDat.pdb \ AddressDB.pdb \ ContactsDB-PAdd.pdb \ ToDoDB.pdb \ TasksDB-PTod.pdb \ MaanaDB.pdb \ MemoDB.pdb \ MemosDB-PMem.pdb \ Memo32DB.pdb \ ExpenseDB.pdb EXTRA_DIST = $(pdb_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign empty/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign empty/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-pdbDATA: $(pdb_DATA) @$(NORMAL_INSTALL) test -z "$(pdbdir)" || $(MKDIR_P) "$(DESTDIR)$(pdbdir)" @list='$(pdb_DATA)'; test -n "$(pdbdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pdbdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pdbdir)" || exit $$?; \ done uninstall-pdbDATA: @$(NORMAL_UNINSTALL) @list='$(pdb_DATA)'; test -n "$(pdbdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(pdbdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(pdbdir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(pdbdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-pdbDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-pdbDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdbDATA \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-pdbDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: jpilot-1.8.1.2/empty/ContactsDB-PAdd.pdb0000644000175000017500000000222411245244222014520 00000000000000ContactsDB-PAdd8PƑHƑH1PDATAPAddUnfiledusinessersonaluickList012345:Last nameFirst nameCompanyTitleWorkHomeFaxOtherE-mailMainPagerChat1Chat2Web siteCustom 1Custom 2Custom 3Custom 4Custom 5Custom 6Custom 7Custom 8Custom 9Addr(W)CityStateZip CodeCountryAddr(H)CityStateZip CodeCountryAddr(O)CityStateZip CodeCountryNoteBirthdayMobileIMAIMMSNYahooAOL ICQPhone/EmailIMAddressjpilot-1.8.1.2/empty/Memo32DB.pdb0000644000175000017500000000055211245244222013200 00000000000000Memo32DBҩ@PDATApn32Unfiledusinessersonaljpilot-1.8.1.2/empty/MemosDB-PMem.pdb0000644000175000017500000000057411245244222014056 00000000000000MemosDB-PMem8PƑHƑH7PDATAPMemUnfiledusinessersonaljpilot-1.8.1.2/empty/ToDoDB.pdb0000644000175000017500000000055211245244222013003 00000000000000ToDoDB1zƑUƑUPDATAtodoUnfiledusinessersonaljpilot-1.8.1.2/dialer.c0000644000175000017500000003152111524604625011516 00000000000000/* $Id: dialer.c,v 1.17 2011-02-09 21:26:43 rousseau Exp $ */ /******************************************************************************* * dialer.c * A module of J-Pilot http://jpilot.org * * Copyright (C) 1999-2002 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /********************************* Includes ***********************************/ #include "config.h" #include #include #include #include "i18n.h" #include "utils.h" #include "log.h" #include "prefs.h" /********************************* Constants **********************************/ #define CHOOSE_PHONE 1 #define CHOOSE_EXT 2 /****************************** Prototypes ************************************/ struct dialog_data { GtkWidget *entry_pre1; GtkWidget *entry_pre2; GtkWidget *entry_pre3; GtkWidget *check_pre1; GtkWidget *check_pre2; GtkWidget *check_pre3; GtkWidget *entry_phone; GtkWidget *entry_ext; GtkWidget *entry_command; GtkWidget *label_prefix; }; /****************************** Main Code *************************************/ static void cb_dialog_button(GtkWidget *widget, gpointer data) { GtkWidget *w; w = gtk_widget_get_toplevel(widget); gtk_object_get_data(GTK_OBJECT(w), "dialog_data"); gtk_widget_destroy(GTK_WIDGET(w)); } static gboolean cb_destroy_dialog(GtkWidget *widget) { struct dialog_data *Pdata; const gchar *txt; Pdata = gtk_object_get_data(GTK_OBJECT(widget), "dialog_data"); if (!Pdata) { return TRUE; } txt = gtk_entry_get_text(GTK_ENTRY(Pdata->entry_pre1)); set_pref(PREF_PHONE_PREFIX1, 0, txt, FALSE); txt = gtk_entry_get_text(GTK_ENTRY(Pdata->entry_pre2)); set_pref(PREF_PHONE_PREFIX2, 0, txt, FALSE); txt = gtk_entry_get_text(GTK_ENTRY(Pdata->entry_pre3)); set_pref(PREF_PHONE_PREFIX3, 0, txt, FALSE); txt = gtk_entry_get_text(GTK_ENTRY(Pdata->entry_command)); set_pref(PREF_DIAL_COMMAND, 0, txt, FALSE); set_pref(PREF_CHECK_PREFIX1, GTK_TOGGLE_BUTTON(Pdata->check_pre1)->active, NULL, FALSE); set_pref(PREF_CHECK_PREFIX2, GTK_TOGGLE_BUTTON(Pdata->check_pre2)->active, NULL, FALSE); set_pref(PREF_CHECK_PREFIX3, GTK_TOGGLE_BUTTON(Pdata->check_pre3)->active, NULL, TRUE); gtk_main_quit(); return TRUE; } static void set_prefix_label(struct dialog_data *Pdata) { char str[70]; g_snprintf(str, sizeof(str), "%s%s%s", GTK_TOGGLE_BUTTON(Pdata->check_pre1)->active ? gtk_entry_get_text(GTK_ENTRY(Pdata->entry_pre1)) : "", GTK_TOGGLE_BUTTON(Pdata->check_pre2)->active ? gtk_entry_get_text(GTK_ENTRY(Pdata->entry_pre2)) : "", GTK_TOGGLE_BUTTON(Pdata->check_pre3)->active ? gtk_entry_get_text(GTK_ENTRY(Pdata->entry_pre3)) : ""); gtk_label_set_text(GTK_LABEL(Pdata->label_prefix), str); } static void cb_prefix_change(GtkWidget *widget, gpointer data) { set_prefix_label(data); } static void dialer(gpointer data, int phone_or_ext) { struct dialog_data *Pdata; char str[70]; char null_str[]=""; const char *Pext; char command[1024]; const char *pref_command; char c1, c2; int i, len; Pdata=data; if (phone_or_ext==CHOOSE_PHONE) { g_snprintf(str, sizeof(str), "%s%s%s%s", GTK_TOGGLE_BUTTON(Pdata->check_pre1)->active ? gtk_entry_get_text(GTK_ENTRY(Pdata->entry_pre1)) : "", GTK_TOGGLE_BUTTON(Pdata->check_pre2)->active ? gtk_entry_get_text(GTK_ENTRY(Pdata->entry_pre2)) : "", GTK_TOGGLE_BUTTON(Pdata->check_pre3)->active ? gtk_entry_get_text(GTK_ENTRY(Pdata->entry_pre3)) : "", gtk_entry_get_text(GTK_ENTRY(Pdata->entry_phone))); } if (phone_or_ext==CHOOSE_EXT) { Pext=gtk_entry_get_text(GTK_ENTRY(Pdata->entry_ext)); if (!Pext) Pext=null_str; g_strlcpy(str, Pext, sizeof(str)); } pref_command = gtk_entry_get_text(GTK_ENTRY(Pdata->entry_command)); /* Make a system call command string */ memset(command, 0, sizeof(command)); for (i=0; ientry_pre1=entry; Pdata->check_pre1=checkbox1; /* Prefix 2 */ hbox1 = gtk_hbox_new(FALSE, 2); gtk_container_set_border_width(GTK_CONTAINER(hbox1), 5); gtk_box_pack_start(GTK_BOX(vbox1), hbox1, FALSE, FALSE, 2); get_pref(PREF_PHONE_PREFIX2, NULL, &prefix); get_pref(PREF_CHECK_PREFIX2, &use_prefix, NULL); checkbox2 = gtk_check_button_new(); gtk_box_pack_start(GTK_BOX(hbox1), checkbox2, FALSE, FALSE, 0); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbox2), use_prefix); label = gtk_label_new(_("Prefix 2")); gtk_box_pack_start(GTK_BOX(hbox1), label, FALSE, FALSE, 2); entry = gtk_entry_new_with_max_length(32); gtk_entry_set_text(GTK_ENTRY(entry), prefix); gtk_box_pack_start(GTK_BOX(hbox1), entry, TRUE, TRUE, 1); Pdata->entry_pre2=entry; Pdata->check_pre2=checkbox2; /* Prefix 3 */ hbox1 = gtk_hbox_new(FALSE, 2); gtk_container_set_border_width(GTK_CONTAINER(hbox1), 5); gtk_box_pack_start(GTK_BOX(vbox1), hbox1, FALSE, FALSE, 2); get_pref(PREF_PHONE_PREFIX3, NULL, &prefix); get_pref(PREF_CHECK_PREFIX3, &use_prefix, NULL); checkbox3 = gtk_check_button_new(); gtk_box_pack_start(GTK_BOX(hbox1), checkbox3, FALSE, FALSE, 0); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbox3), use_prefix); label = gtk_label_new(_("Prefix 3")); gtk_box_pack_start(GTK_BOX(hbox1), label, FALSE, FALSE, 2); entry = gtk_entry_new_with_max_length(32); gtk_entry_set_text(GTK_ENTRY(entry), prefix); gtk_box_pack_start(GTK_BOX(hbox1), entry, TRUE, TRUE, 1); Pdata->entry_pre3=entry; Pdata->check_pre3=checkbox3; /* Phone number entry */ hbox1 = gtk_hbox_new(FALSE, 2); gtk_container_set_border_width(GTK_CONTAINER(hbox1), 5); gtk_box_pack_start(GTK_BOX(vbox1), hbox1, FALSE, FALSE, 2); label = gtk_label_new(_("Phone number:")); gtk_box_pack_start(GTK_BOX(hbox1), label, FALSE, FALSE, 2); /* Prefix label */ label = gtk_label_new(""); gtk_box_pack_start(GTK_BOX(hbox1), label, FALSE, FALSE, 2); Pdata->label_prefix=label; set_prefix_label(Pdata); entry = gtk_entry_new_with_max_length(32); gtk_entry_set_text(GTK_ENTRY(entry), string); gtk_signal_connect(GTK_OBJECT(entry), "activate", GTK_SIGNAL_FUNC(cb_dial_ext), Pdata); gtk_box_pack_start(GTK_BOX(hbox1), entry, TRUE, TRUE, 1); Pdata->entry_phone=entry; /* Dial Phone Button */ button = gtk_button_new_with_label(_("Dial")); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_dial_phone), Pdata); gtk_box_pack_start(GTK_BOX(hbox1), button, TRUE, TRUE, 1); gtk_widget_grab_focus(GTK_WIDGET(button)); /* Extension */ hbox1 = gtk_hbox_new(FALSE, 2); gtk_container_set_border_width(GTK_CONTAINER(hbox1), 5); gtk_box_pack_start(GTK_BOX(vbox1), hbox1, FALSE, FALSE, 2); label = gtk_label_new(_("Extension")); gtk_box_pack_start(GTK_BOX(hbox1), label, FALSE, FALSE, 2); entry = gtk_entry_new_with_max_length(32); gtk_entry_set_text(GTK_ENTRY(entry), ext); gtk_signal_connect(GTK_OBJECT(entry), "activate", GTK_SIGNAL_FUNC(cb_dial_ext), Pdata); gtk_box_pack_start(GTK_BOX(hbox1), entry, TRUE, TRUE, 1); Pdata->entry_ext=entry; /* Dial Phone Button */ button = gtk_button_new_with_label(_("Dial")); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_dial_ext), Pdata); gtk_box_pack_start(GTK_BOX(hbox1), button, TRUE, TRUE, 1); /* Command Entry */ hbox1 = gtk_hbox_new(FALSE, 2); gtk_container_set_border_width(GTK_CONTAINER(hbox1), 5); gtk_box_pack_start(GTK_BOX(vbox1), hbox1, FALSE, FALSE, 2); label = gtk_label_new(_("Dial Command")); gtk_box_pack_start(GTK_BOX(hbox1), label, FALSE, FALSE, 2); entry = gtk_entry_new_with_max_length(100); gtk_entry_set_text(GTK_ENTRY(entry), ext); gtk_box_pack_start(GTK_BOX(hbox1), entry, TRUE, TRUE, 1); get_pref(PREF_DIAL_COMMAND, NULL, &dial_command); if (dial_command) { gtk_entry_set_text(GTK_ENTRY(entry), dial_command); } Pdata->entry_command=entry; /* Button Box */ hbox1 = gtk_hbutton_box_new(); gtk_container_set_border_width(GTK_CONTAINER(hbox1), 7); gtk_button_box_set_layout(GTK_BUTTON_BOX (hbox1), GTK_BUTTONBOX_END); gtk_box_pack_start(GTK_BOX(vbox1), hbox1, FALSE, FALSE, 2); /* Buttons */ button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cb_dialog_button), GINT_TO_POINTER(DIALOG_SAID_1)); gtk_box_pack_start(GTK_BOX(hbox1), button, TRUE, TRUE, 1); /* We do this down here because the Pdata structure wasn't complete earlier */ gtk_signal_connect(GTK_OBJECT(checkbox1), "clicked", GTK_SIGNAL_FUNC(cb_prefix_change), Pdata); gtk_signal_connect(GTK_OBJECT(checkbox2), "clicked", GTK_SIGNAL_FUNC(cb_prefix_change), Pdata); gtk_signal_connect(GTK_OBJECT(checkbox3), "clicked", GTK_SIGNAL_FUNC(cb_prefix_change), Pdata); gtk_signal_connect(GTK_OBJECT(Pdata->entry_pre1), "changed", GTK_SIGNAL_FUNC(cb_prefix_change), Pdata); gtk_signal_connect(GTK_OBJECT(Pdata->entry_pre2), "changed", GTK_SIGNAL_FUNC(cb_prefix_change), Pdata); gtk_signal_connect(GTK_OBJECT(Pdata->entry_pre3), "changed", GTK_SIGNAL_FUNC(cb_prefix_change), Pdata); gtk_widget_show_all(dialog); gtk_main(); free(Pdata); return EXIT_SUCCESS; } jpilot-1.8.1.2/SyncTime/0000755000175000017500000000000011702310021011701 500000000000000jpilot-1.8.1.2/SyncTime/Makefile.am0000644000175000017500000000052611245244222013673 00000000000000# $Id: Makefile.am,v 1.8 2009/08/11 20:13:42 rikster5 Exp $ libdir = @libdir@/@PACKAGE@/plugins if MAKE_SYNCTIME lib_LTLIBRARIES = libsynctime.la libsynctime_la_SOURCES = synctime.c libsynctime_la_CFLAGS = @PILOT_FLAGS@ @GTK_CFLAGS@ -I$(top_srcdir) libsynctime_la_LDFLAGS = -module -avoid-version libsynctime_la_LIBADD = @GTK_LIBS@ endif jpilot-1.8.1.2/SyncTime/Makefile.in0000644000175000017500000004560011702305114013702 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # $Id: Makefile.am,v 1.8 2009/08/11 20:13:42 rikster5 Exp $ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = SyncTime DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-2.0.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) libsynctime_la_DEPENDENCIES = am__libsynctime_la_SOURCES_DIST = synctime.c @MAKE_SYNCTIME_TRUE@am_libsynctime_la_OBJECTS = \ @MAKE_SYNCTIME_TRUE@ libsynctime_la-synctime.lo libsynctime_la_OBJECTS = $(am_libsynctime_la_OBJECTS) libsynctime_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libsynctime_la_CFLAGS) \ $(CFLAGS) $(libsynctime_la_LDFLAGS) $(LDFLAGS) -o $@ @MAKE_SYNCTIME_TRUE@am_libsynctime_la_rpath = -rpath $(libdir) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libsynctime_la_SOURCES) DIST_SOURCES = $(am__libsynctime_la_SOURCES_DIST) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ABILIB = @ABILIB@ ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CUT = @CUT@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@ LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@ LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENSSL_LIBS = @OPENSSL_LIBS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PILOT_FLAGS = @PILOT_FLAGS@ PILOT_LIBS = @PILOT_LIBS@ PKG_CONFIG = @PKG_CONFIG@ POSUB = @POSUB@ PROGNAME = @PROGNAME@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@/@PACKAGE@/plugins libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @MAKE_SYNCTIME_TRUE@lib_LTLIBRARIES = libsynctime.la @MAKE_SYNCTIME_TRUE@libsynctime_la_SOURCES = synctime.c @MAKE_SYNCTIME_TRUE@libsynctime_la_CFLAGS = @PILOT_FLAGS@ @GTK_CFLAGS@ -I$(top_srcdir) @MAKE_SYNCTIME_TRUE@libsynctime_la_LDFLAGS = -module -avoid-version @MAKE_SYNCTIME_TRUE@libsynctime_la_LIBADD = @GTK_LIBS@ all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign SyncTime/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign SyncTime/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libsynctime.la: $(libsynctime_la_OBJECTS) $(libsynctime_la_DEPENDENCIES) $(libsynctime_la_LINK) $(am_libsynctime_la_rpath) $(libsynctime_la_OBJECTS) $(libsynctime_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsynctime_la-synctime.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libsynctime_la-synctime.lo: synctime.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsynctime_la_CFLAGS) $(CFLAGS) -MT libsynctime_la-synctime.lo -MD -MP -MF $(DEPDIR)/libsynctime_la-synctime.Tpo -c -o libsynctime_la-synctime.lo `test -f 'synctime.c' || echo '$(srcdir)/'`synctime.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libsynctime_la-synctime.Tpo $(DEPDIR)/libsynctime_la-synctime.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='synctime.c' object='libsynctime_la-synctime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsynctime_la_CFLAGS) $(CFLAGS) -c -o libsynctime_la-synctime.lo `test -f 'synctime.c' || echo '$(srcdir)/'`synctime.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-libLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: jpilot-1.8.1.2/SyncTime/synctime.c0000644000175000017500000000702511524602776013653 00000000000000/* $Id: synctime.c,v 1.20 2011-02-09 20:41:46 rousseau Exp $ */ /******************************************************************************* * synctime.c * * This is a plugin for J-Pilot which sets the time on the handheld * to the current time of the desktop. * * Copyright (C) 1999 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /********************************* Includes ***********************************/ #include #include #include #include #include #include "libplugin.h" #include "i18n.h" /********************************* Constants **********************************/ #define PLUGIN_MAJOR 1 #define PLUGIN_MINOR 0 /****************************** Main Code *************************************/ void plugin_version(int *major_version, int *minor_version) { *major_version = PLUGIN_MAJOR; *minor_version = PLUGIN_MINOR; } static int static_plugin_get_name(char *name, int len) { snprintf(name, len, "SyncTime %d.%d", PLUGIN_MAJOR, PLUGIN_MINOR); return EXIT_SUCCESS; } int plugin_get_name(char *name, int len) { return static_plugin_get_name(name, len); } int plugin_get_help_name(char *name, int len) { g_snprintf(name, len, _("About %s"), _("SyncTime")); return EXIT_SUCCESS; } int plugin_help(char **text, int *width, int *height) { char plugin_name[200]; static_plugin_get_name(plugin_name, sizeof(plugin_name)); *text = g_strdup_printf( /*-------------------------------------------*/ _("%s\n" "\n" "SyncTime plugin for J-Pilot was written by\n" "Judd Montgomery (c) 1999.\n" "judd@jpilot.org, http://jpilot.org\n" "\n" "SyncTime WILL NOT work with PalmOS 3.3!" ), plugin_name ); *height = 0; *width = 0; return EXIT_SUCCESS; } int plugin_sync(int sd) { time_t ltime; unsigned long ROMversion, majorVersion, minorVersion; jp_init(); jp_logf(JP_LOG_DEBUG, "SyncTime: plugin_sync\n"); dlp_ReadFeature(sd, makelong("psys"), 1, &ROMversion); majorVersion = (((ROMversion >> 28) & 0xf) * 10)+ ((ROMversion >> 24) & 0xf); minorVersion = (((ROMversion >> 20) & 0xf) * 10)+ ((ROMversion >> 16) & 0xf); jp_logf(JP_LOG_GUI, "synctime: Palm OS version %d.%d\n", majorVersion, minorVersion); if (majorVersion==3) { if ((minorVersion==30) || (minorVersion==25)) { jp_logf(JP_LOG_GUI, _("synctime: Palm OS Version 3.25 and 3.30 do not support SyncTime\n")); jp_logf(JP_LOG_GUI, _("synctime: NOT setting the time on the pilot\n")); return EXIT_FAILURE; } } jp_logf(JP_LOG_GUI, _("synctime: Setting the time on the pilot... ")); time(<ime); dlp_SetSysDateTime(sd, ltime); jp_logf(JP_LOG_GUI, _("Done\n")); return EXIT_SUCCESS; } jpilot-1.8.1.2/SlackBuild0000755000175000017500000000762411702306405012055 00000000000000#!/bin/bash # # First build with # ./configure --prefix=/usr; make; make install # PACKAGE=jpilot VERSION=1.8.1.2 ARCH=i386 RELEASE=1 # STARTDIR=`pwd` TMPDIR=`mktemp -d -t slackware.XXXXXX` || exit 1 # echo Created $TMPDIR mkdir $TMPDIR/install cp description-pak $TMPDIR/install/slack-desc # cd / tar cf - \ usr/bin/jpilot \ usr/bin/jpilot-dump \ usr/bin/jpilot-dial \ usr/bin/jpilot-sync \ usr/lib/jpilot/plugins/libexpense.la \ usr/lib/jpilot/plugins/libexpense.so \ usr/lib/jpilot/plugins/libexpense.so.0 \ usr/lib/jpilot/plugins/libexpense.so.0.0.0 \ usr/lib/jpilot/plugins/libsynctime.la \ usr/lib/jpilot/plugins/libsynctime.so \ usr/lib/jpilot/plugins/libsynctime.so.0 \ usr/lib/jpilot/plugins/libsynctime.so.0.0.0 \ usr/lib/jpilot/plugins/libkeyring.la \ usr/lib/jpilot/plugins/libkeyring.so \ usr/lib/jpilot/plugins/libkeyring.so.0 \ usr/lib/jpilot/plugins/libkeyring.so.0.0.0 \ usr/man/man1/jpilot.1 \ usr/man/man1/jpilot-dial.1 \ usr/man/man1/jpilot-sync.1 \ usr/doc/$PACKAGE-$VERSION/AUTHORS \ usr/doc/$PACKAGE-$VERSION/BUGS \ usr/doc/$PACKAGE-$VERSION/COPYING \ usr/doc/$PACKAGE-$VERSION/ChangeLog \ usr/doc/$PACKAGE-$VERSION/INSTALL \ usr/doc/$PACKAGE-$VERSION/README \ usr/doc/$PACKAGE-$VERSION/TODO \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-address.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-datebook.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-expense.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-install.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-memo.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-prefs-1.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-prefs-2.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-prefs-3.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-prefs-4.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-prefs-5.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-prefs-6.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-prefs-7.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-prefs-8.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-print.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-search.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-todo.png \ usr/doc/$PACKAGE-$VERSION/manual/jpilot-toplogo.jpg \ usr/doc/$PACKAGE-$VERSION/manual/manual.html \ usr/doc/$PACKAGE-$VERSION/manual/plugin.html \ usr/doc/$PACKAGE-$VERSION/icons/README \ usr/doc/$PACKAGE-$VERSION/icons/jpilot-icon1.xpm \ usr/doc/$PACKAGE-$VERSION/icons/jpilot-icon2.xpm \ usr/doc/$PACKAGE-$VERSION/icons/jpilot-icon3.xpm \ usr/doc/$PACKAGE-$VERSION/icons/jpilot-icon4.xpm \ usr/share/$PACKAGE/AddressDB.pdb \ usr/share/$PACKAGE/DatebookDB.pdb \ usr/share/$PACKAGE/ExpenseDB.pdb \ usr/share/$PACKAGE/Memo32DB.pdb \ usr/share/$PACKAGE/MemoDB.pdb \ usr/share/$PACKAGE/ToDoDB.pdb \ usr/share/$PACKAGE/TasksDB-PTod.pdb \ usr/share/$PACKAGE/CalendarDB-PDat.pdb \ usr/share/$PACKAGE/ContactsDB-PAdd.pdb \ usr/share/$PACKAGE/MemosDB-PMem.pdb \ usr/share/$PACKAGE/jpilotrc.blue \ usr/share/$PACKAGE/jpilotrc.default \ usr/share/$PACKAGE/jpilotrc.green \ usr/share/$PACKAGE/jpilotrc.purple \ usr/share/$PACKAGE/jpilotrc.steel \ usr/share/locale/ca/LC_MESSAGES/jpilot.mo \ usr/share/locale/cs/LC_MESSAGES/jpilot.mo \ usr/share/locale/da/LC_MESSAGES/jpilot.mo \ usr/share/locale/de/LC_MESSAGES/jpilot.mo \ usr/share/locale/es/LC_MESSAGES/jpilot.mo \ usr/share/locale/fr/LC_MESSAGES/jpilot.mo \ usr/share/locale/it/LC_MESSAGES/jpilot.mo \ usr/share/locale/ja/LC_MESSAGES/jpilot.mo \ usr/share/locale/ko/LC_MESSAGES/jpilot.mo \ usr/share/locale/nl/LC_MESSAGES/jpilot.mo \ usr/share/locale/no/LC_MESSAGES/jpilot.mo \ usr/share/locale/ru/LC_MESSAGES/jpilot.mo \ usr/share/locale/rw/LC_MESSAGES/jpilot.mo \ usr/share/locale/sv/LC_MESSAGES/jpilot.mo \ usr/share/locale/tr/LC_MESSAGES/jpilot.mo \ usr/share/locale/uk/LC_MESSAGES/jpilot.mo \ usr/share/locale/vi/LC_MESSAGES/jpilot.mo \ usr/share/locale/zh_CN/LC_MESSAGES/jpilot.mo \ usr/share/locale/zh_TW/LC_MESSAGES/jpilot.mo \ | (cd $TMPDIR; tar xf -) # cd $TMPDIR makepkg -l n -c n $PACKAGE-$VERSION-$ARCH-$RELEASE.tgz cp $TMPDIR/*.tgz $STARTDIR/ rm -rf $TMPDIR jpilot-1.8.1.2/address.c0000644000175000017500000003627611524574422011720 00000000000000/* $Id: address.c,v 1.64 2010-10-15 16:42:13 rikster5 Exp $ */ /******************************************************************************* * address.c * A module of J-Pilot http://jpilot.org * * Copyright (C) 1999-2002 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /********************************* Includes ***********************************/ #include "config.h" #include #include #include #include #include #include #include #include #include "address.h" #include "i18n.h" #include "utils.h" #include "log.h" #include "prefs.h" #include "libplugin.h" #include "password.h" /********************************* Constants **********************************/ #define SORT_JAPANESE 8 #define SORT_JOS 16 /******************************* Global vars **********************************/ static int glob_sort_rule; int addr_sort_order; /****************************** Main Code *************************************/ static int address_compare(const void *v1, const void *v2) { AddressList **al1, **al2; struct Address *a1, *a2; char *str1 = NULL, *str2 = NULL; int last_cmp1, last_cmp2; int sort_idx[4]; int i, j, r; al1=(AddressList **)v1; al2=(AddressList **)v2; a1=&((*al1)->maddr.addr); a2=&((*al2)->maddr.addr); switch (glob_sort_rule & 0x7) { case SORT_BY_FNAME: sort_idx[1] = entryFirstname; sort_idx[2] = entryLastname; sort_idx[3] = entryCompany; break; case SORT_BY_LNAME: default: sort_idx[1] = entryLastname; sort_idx[2] = entryFirstname; sort_idx[3] = entryCompany; break; case SORT_BY_COMPANY: sort_idx[1] = entryCompany; sort_idx[2] = entryLastname; sort_idx[3] = entryFirstname; break; } last_cmp1=last_cmp2=0; if (!(glob_sort_rule & SORT_JAPANESE) || (glob_sort_rule & SORT_JOS)) { /* normal */ while (last_cmp1 < 3 && last_cmp2 < 3) { str1=str2=NULL; /* Find the next non-blank field to use for sorting */ for (i=last_cmp1+1; i<=3; i++) { if (a1->entry[sort_idx[i]]) { if ((str1 = malloc(strlen(a1->entry[sort_idx[i]])+1)) == NULL) { return 0; } strcpy(str1, a1->entry[sort_idx[i]]); /* Convert string to lower case for more accurate comparison */ for (j=strlen(str1)-1; j >= 0; j--) { str1[j] = tolower(str1[j]); } break; } } last_cmp1 = i; if (!str1) return -1; for (i=last_cmp2+1; i<=3; i++) { if (a2->entry[sort_idx[i]]) { if ((str2 = malloc(strlen(a2->entry[sort_idx[i]])+1)) == NULL) { return 0; } strcpy(str2, a2->entry[sort_idx[i]]); for (j=strlen(str2)-1; j >= 0; j--) { str2[j] = tolower(str2[j]); } break; } } last_cmp2 = i; if (!str2) { free(str1); return 1; } r = strcoll(str1, str2); if (str1) free(str1); if (str2) free(str2); if (r != 0) return r; /* Comparisons between unequal fields, such as last name and company * must assume that the other fields are blank. This matches * Palm sort ordering. */ if (last_cmp1 != last_cmp2) { return (last_cmp2 - last_cmp1); } } /* end of while loop to search over 3 fields */ /* Compared all search fields and no difference found */ return 0; } else if ((glob_sort_rule & SORT_JAPANESE) && !(glob_sort_rule & SORT_JOS)){ /* Japanese sorting has not been updated to fix Bug 1814 because no test * platform is available for Western programmers maintaining Jpilot. */ int sort1, sort2, sort3; char *tmp_p1, *tmp_p2, *tmp_p3; sort1 = sort_idx[1]; sort2 = sort_idx[2]; sort3 = sort_idx[3]; if (a1->entry[sort1] || a1->entry[sort2]) { if (a1->entry[sort1] && a1->entry[sort2]) { if (!(tmp_p1 = strchr(a1->entry[sort1],'\1'))) tmp_p1=a1->entry[sort1]+1; if (!(tmp_p2 = strchr(a1->entry[sort2],'\1'))) tmp_p2=a1->entry[sort2]+1; if ((str1 = malloc(strlen(tmp_p1)+strlen(tmp_p2)+1)) == NULL) { return 0; } strcpy(str1, tmp_p1); strcat(str1, tmp_p2); } if (a1->entry[sort1] && (!a1->entry[sort2])) { if (!(tmp_p1 = strchr(a1->entry[sort1],'\1'))) tmp_p1=a1->entry[sort1]+1; if ((str1 = malloc(strlen(tmp_p1)+1)) == NULL) { return 0; } strcpy(str1, tmp_p1); } if ((!a1->entry[sort1]) && a1->entry[sort2]) { if (!(tmp_p2 = strchr(a1->entry[sort2],'\1'))) tmp_p2=a1->entry[sort2]+1; if ((str1 = malloc(strlen(tmp_p2)+1)) == NULL) { return 0; } strcpy(str1, tmp_p2); } } else if (a1->entry[sort3]) { if (!(tmp_p3 = strchr(a1->entry[sort3],'\1'))) tmp_p3=a1->entry[sort3]+1; if ((str1 = malloc(strlen(tmp_p3)+1)) == NULL) { return 0; } strcpy(str1, tmp_p3); } else { return 1; } if (a2->entry[sort1] || a2->entry[sort2]) { if (a2->entry[sort1] && a2->entry[sort2]) { if (!(tmp_p1 = strchr(a2->entry[sort1],'\1'))) tmp_p1=a2->entry[sort1]+1; if (!(tmp_p2 = strchr(a2->entry[sort2],'\1'))) tmp_p2=a2->entry[sort2]+1; if ((str2 = malloc(strlen(tmp_p1)+strlen(tmp_p2)+1)) == NULL) { return 0; } strcpy(str2, tmp_p1); strcat(str2, tmp_p2); } if (a2->entry[sort1] && (!a2->entry[sort2])) { if (!(tmp_p1 = strchr(a2->entry[sort1],'\1'))) tmp_p1=a2->entry[sort1]+1; if ((str2 = malloc(strlen(tmp_p1)+1)) == NULL) { return 0; } strcpy(str2, tmp_p1); } if ((!a2->entry[sort1]) && a2->entry[sort2]) { if (!(tmp_p2 = strchr(a2->entry[sort2],'\1'))) tmp_p2=a2->entry[sort2]+1; if ((str2 = malloc(strlen(tmp_p2)+1)) == NULL) { return 0; } strcpy(str2, tmp_p2); } } else if (a2->entry[sort3]) { if (!(tmp_p3 = strchr(a2->entry[sort3],'\1'))) tmp_p3=a2->entry[sort3]+1; if ((str2 = malloc(strlen(tmp_p3)+1)) == NULL) { return 0; } strcpy(str2, tmp_p3); } else { free(str1); return -1; } /* lower case the strings for a better compare */ for (i=strlen(str1)-1; i >= 0; i--) { str1[i] = tolower(str1[i]); } for (i=strlen(str2)-1; i >= 0; i--) { str2[i] = tolower(str2[i]); } i = strcoll(str1, str2); if (str1) free(str1); if (str2) free(str2); return i; } /* Should never be reached. Assume records are unsortable if reached */ return 0; } /* sort_order: SORT_ASCENDING | SORT_DESCENDING */ static int address_sort(AddressList **al, int sort_order) { AddressList *temp_al; AddressList **sort_al; int count, i; long use_jos, char_set; /* Count the entries in the list */ for (count=0, temp_al=*al; temp_al; temp_al=temp_al->next, count++) {} if (count<2) { /* No need to sort 0 or 1 items */ return EXIT_SUCCESS; } glob_sort_rule = addr_sort_order; get_pref(PREF_CHAR_SET, &char_set, NULL); if (char_set == CHAR_SET_JAPANESE || char_set == CHAR_SET_SJIS_UTF) { glob_sort_rule = glob_sort_rule | SORT_JAPANESE; } else { glob_sort_rule = glob_sort_rule & (SORT_JAPANESE-1); } get_pref(PREF_USE_JOS, &use_jos, NULL); if (use_jos) { glob_sort_rule = glob_sort_rule | SORT_JOS; } else { glob_sort_rule = glob_sort_rule & (SORT_JOS-1); } /* Allocate an array to be qsorted */ sort_al = calloc(count, sizeof(AddressList *)); if (!sort_al) { jp_logf(JP_LOG_WARN, "address_sort(): %s\n", _("Out of memory")); return EXIT_FAILURE; } /* Set our array to be a list of pointers to the nodes in the linked list */ for (i=0, temp_al=*al; temp_al; temp_al=temp_al->next, i++) { sort_al[i] = temp_al; } qsort(sort_al, count, sizeof(AddressList *), address_compare); /* Put the linked list in the order of the array */ if (sort_order==SORT_ASCENDING) { sort_al[count-1]->next = NULL; for (i=count-1; i>0; i--) { sort_al[i-1]->next=sort_al[i]; } *al = sort_al[0]; } else { /* Descending order */ for (i=count-1; i>0; i--) { sort_al[i]->next=sort_al[i-1]; } sort_al[0]->next = NULL; *al = sort_al[count-1]; } free(sort_al); return EXIT_SUCCESS; } void free_AddressList(AddressList **al) { AddressList *temp_al, *temp_al_next; for (temp_al = *al; temp_al; temp_al=temp_al_next) { free_Address(&(temp_al->maddr.addr)); temp_al_next = temp_al->next; free(temp_al); } *al = NULL; } int get_address_app_info(struct AddressAppInfo *ai) { int num, r; int rec_size; unsigned char *buf; memset(ai, 0, sizeof(*ai)); /* Put at least one entry in there */ strcpy(ai->category.name[0], "Unfiled"); r = jp_get_app_info("AddressDB", &buf, &rec_size); if ((r != EXIT_SUCCESS) || (rec_size<=0)) { jp_logf(JP_LOG_WARN, _("%s:%d Error reading application info %s\n"), __FILE__, __LINE__, "AddressDB"); if (buf) { free(buf); } return EXIT_FAILURE; } num = unpack_AddressAppInfo(ai, buf, rec_size); if (buf) { free(buf); } if ((num<0) || (rec_size<=0)) { jp_logf(JP_LOG_WARN, _("Error reading file: %s\n"), "AddressDB.pdb"); return EXIT_FAILURE; } return EXIT_SUCCESS; } int get_addresses(AddressList **address_list, int sort_order) { return get_addresses2(address_list, sort_order, 1, 1, 1, CATEGORY_ALL); } /* * sort_order: SORT_ASCENDING | SORT_DESCENDING * modified, deleted and private, 0 for no, 1 for yes, 2 for use prefs */ int get_addresses2(AddressList **address_list, int sort_order, int modified, int deleted, int privates, int category) { GList *records; GList *temp_list; int recs_returned, i, num; struct Address addr; AddressList *temp_a_list; long keep_modified, keep_deleted; int keep_priv; long char_set; buf_rec *br; char *buf; pi_buffer_t *RecordBuffer; jp_logf(JP_LOG_DEBUG, "get_addresses2()\n"); if (modified==2) { get_pref(PREF_SHOW_MODIFIED, &keep_modified, NULL); } else { keep_modified = modified; } if (deleted==2) { get_pref(PREF_SHOW_DELETED, &keep_deleted, NULL); } else { keep_deleted = deleted; } if (privates==2) { keep_priv = show_privates(GET_PRIVATES); } else { keep_priv = privates; } get_pref(PREF_CHAR_SET, &char_set, NULL); *address_list=NULL; recs_returned = 0; num = jp_read_DB_files("AddressDB", &records); if (-1 == num) return 0; for (temp_list = records; temp_list; temp_list = temp_list->next) { if (temp_list->data) { br=temp_list->data; } else { continue; } if (!br->buf) { continue; } if ( ((br->rt==DELETED_PALM_REC) && (!keep_deleted)) || ((br->rt==DELETED_PC_REC) && (!keep_deleted)) || ((br->rt==MODIFIED_PALM_REC) && (!keep_modified)) ) { continue; } if ((keep_priv != SHOW_PRIVATES) && (br->attrib & dlpRecAttrSecret)) { continue; } RecordBuffer = pi_buffer_new(br->size); memcpy(RecordBuffer->data, br->buf, br->size); RecordBuffer->used = br->size; if (unpack_Address(&addr, RecordBuffer, address_v1) == -1) { pi_buffer_free(RecordBuffer); continue; } pi_buffer_free(RecordBuffer); if ( ((br->attrib & 0x0F) != category) && category != CATEGORY_ALL) { free_Address(&addr); continue; } buf = NULL; if (char_set != CHAR_SET_LATIN1) { for (i = 0; i < 19; i++) { if ((addr.entry[i] != NULL) && (addr.entry[i][0] != '\0')) { buf = charset_p2newj(addr.entry[i], -1, char_set); if (buf) { free(addr.entry[i]); addr.entry[i] = buf; } } } } temp_a_list = malloc(sizeof(AddressList)); if (!temp_a_list) { jp_logf(JP_LOG_WARN, "get_addresses2(): %s\n", _("Out of memory")); break; } memcpy(&(temp_a_list->maddr.addr), &addr, sizeof(struct Address)); temp_a_list->app_type = ADDRESS; temp_a_list->maddr.rt = br->rt; temp_a_list->maddr.attrib = br->attrib; temp_a_list->maddr.unique_id = br->unique_id; temp_a_list->next = *address_list; *address_list = temp_a_list; recs_returned++; } jp_free_DB_records(&records); #ifdef JPILOT_DEBUG print_address_list(address_list); #endif address_sort(address_list, sort_order); jp_logf(JP_LOG_DEBUG, "Leaving get_addresses2()\n"); return recs_returned; } int pc_address_write(struct Address *addr, PCRecType rt, unsigned char attrib, unsigned int *unique_id) { pi_buffer_t *RecordBuffer; int i; buf_rec br; long char_set; get_pref(PREF_CHAR_SET, &char_set, NULL); if (char_set != CHAR_SET_LATIN1) { for (i = 0; i < 19; i++) { if (addr->entry[i]) charset_j2p(addr->entry[i], strlen(addr->entry[i])+1, char_set); } } RecordBuffer = pi_buffer_new(0); if (pack_Address(addr, RecordBuffer, address_v1) == -1) { PRINT_FILE_LINE; jp_logf(JP_LOG_WARN, "pack_Address %s\n", _("error")); return EXIT_FAILURE; } br.rt=rt; br.attrib = attrib; br.buf = RecordBuffer->data; br.size = RecordBuffer->used; /* Keep unique ID intact */ if (unique_id) { br.unique_id = *unique_id; } else { br.unique_id = 0; } jp_pc_write("AddressDB", &br); if (unique_id) { *unique_id = br.unique_id; } pi_buffer_free(RecordBuffer); return EXIT_SUCCESS; } #ifdef JPILOT_DEBUG static void print_address_list(AddressList **al) { AddressList *temp_al, *prev_al; for (prev_al=NULL, temp_al=*al; temp_al; prev_al=temp_al, temp_al=temp_al->next) { jp_logf(JP_LOG_FILE | JP_LOG_STDOUT, "entry[0]=[%s]\n", temp_al->maddr.addr.entry[0]); } } #endif jpilot-1.8.1.2/plugins.c0000644000175000017500000003227411524574422011746 00000000000000/* $Id: plugins.c,v 1.29 2010-10-15 23:50:07 rikster5 Exp $ */ /******************************************************************************* * plugins.c * A module of J-Pilot http://jpilot.org * * Copyright (C) 1999-2002 by Judd Montgomery * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ /********************************* Includes ***********************************/ #include "config.h" #ifdef ENABLE_PLUGINS #include #include #include #include #include #include "utils.h" #include "log.h" #include "plugins.h" #include #include "i18n.h" /******************************* Global vars **********************************/ static GList *plugins = NULL; /****************************** Prototypes ************************************/ static int get_plugin_info(struct plugin_s *p, char *path); static int get_plugin_sync_bits(void); static gint plugin_sort(gconstpointer a, gconstpointer b); /****************************** Main Code *************************************/ /* Write out the jpilot.plugins file that tells which plugins to sync */ void write_plugin_sync_file(void) { FILE *out; GList *temp_list; struct plugin_s *Pplugin; out=jp_open_home_file(EPN".plugins", "w"); if (!out) { return; } fwrite("Version 1\n", strlen("Version 1\n"), 1, out); for (temp_list = plugins; temp_list; temp_list = temp_list->next) { Pplugin = temp_list->data; if (Pplugin) { if (Pplugin->sync_on) { fwrite("Y ", 2, 1, out); } else { fwrite("N ", 2, 1, out); } fwrite(Pplugin->full_path, strlen(Pplugin->full_path), 1, out); fwrite("\n", strlen("\n"), 1, out); } } fclose(out); } /* This is just a repeated subroutine to load_plugins not needing * a name of its own. * Assumes dir has already been checked */ static int load_plugins_sub1(DIR *dir, char *path, int *number, unsigned char user_only) { int i, r; int count; struct dirent *dirent; char full_name[FILENAME_MAX]; struct plugin_s temp_plugin, *new_plugin; GList *plugin_names = NULL; /* keep a list of plugins found so far */ GList *temp_list = NULL; count = 0; for (i=0; (dirent = readdir(dir)); i++) { if (i>1000) { jp_logf(JP_LOG_WARN, "load_plugins_sub1(): %s\n", _("infinite loop")); return 0; } /* If the filename has either of these extensions then plug it in */ if ((strcmp(&(dirent->d_name[strlen(dirent->d_name)-3]), ".so")) && (strcmp(&(dirent->d_name[strlen(dirent->d_name)-3]), ".sl")) && (strcmp(&(dirent->d_name[strlen(dirent->d_name)-6]), ".dylib"))) { continue; } else { jp_logf(JP_LOG_DEBUG, "found plugin %s\n", dirent->d_name); /* We know path has a trailing slash after it */ g_snprintf(full_name, sizeof(full_name), "%s%s", path, dirent->d_name); r = get_plugin_info(&temp_plugin, full_name); temp_plugin.number = *number; temp_plugin.user_only = user_only; if (r==0) { if (temp_plugin.name) { jp_logf(JP_LOG_DEBUG, "plugin name is [%s]\n", temp_plugin.name); } if (g_list_find_custom(plugin_names, temp_plugin.name, (GCompareFunc)strcmp) == NULL) { new_plugin = malloc(sizeof(struct plugin_s)); if (!new_plugin) { jp_logf(JP_LOG_WARN, "load plugins(): %s\n", _("Out of memory")); return count; } memcpy(new_plugin, &temp_plugin, sizeof(struct plugin_s)); plugins = g_list_prepend(plugins, new_plugin); plugin_names = g_list_prepend(plugin_names, g_strdup(temp_plugin.name)); count++; (*number)++; } } } } plugins = g_list_sort(plugins, plugin_sort); for (temp_list = plugin_names; temp_list; temp_list = temp_list->next) { if (temp_list->data) { g_free(temp_list->data); } } g_list_free(plugin_names); return count; } static gint plugin_sort(gconstpointer a, gconstpointer b) { const char *ca = ((struct plugin_s *)a)->menu_name; const char *cb = ((struct plugin_s *)b)->menu_name; /* menu_name is NULL for plugin without menu entry */ if (ca == NULL) ca = ((struct plugin_s *)a)->name; if (cb == NULL) cb = ((struct plugin_s *)b)->name; return strcasecmp(ca, cb); } int load_plugins(void) { DIR *dir; char path[FILENAME_MAX]; int count, number; count = 0; number = DATEBOOK + 100; /* I just made up this number */ plugins = NULL; /* ABILIB is for Irix, should normally be "lib" */ g_snprintf(path, sizeof(path), "%s/%s/%s/%s/", BASE_DIR, ABILIB, EPN, "plugins"); jp_logf(JP_LOG_DEBUG, "opening dir %s\n", path); cleanup_path(path); dir = opendir(path); if (dir) { count += load_plugins_sub1(dir, path, &number, 0); closedir(dir); } get_home_file_name("plugins/", path, sizeof(path)); cleanup_path(path); jp_logf(JP_LOG_DEBUG, "opening dir %s\n", path); dir = opendir(path); if (dir) { count += load_plugins_sub1(dir, path, &number, 1); closedir(dir); } get_plugin_sync_bits(); return count; } /* Now we need to look in the jpilot_plugins file to see which plugins * are enabled to sync and which are not */ static int get_plugin_sync_bits(void) { int i; GList *temp_list; struct plugin_s *Pplugin; char line[1024]; char *Pline; char *Pc; FILE *in; in=jp_open_home_file(EPN".plugins", "r"); if (!in) { return EXIT_SUCCESS; } for (i=0; (!feof(in)); i++) { if (i>MAX_NUM_PLUGINS) { jp_logf(JP_LOG_WARN, "load_plugins(): %s\n", _("infinite loop")); fclose(in); return EXIT_FAILURE; } line[0]='\0'; Pc = fgets(line, sizeof(line), in); if (!Pc) { break; } if (line[strlen(line)-1]=='\n') { line[strlen(line)-1]='\0'; } if ((!strncmp(line, "Version", 7)) && (strcmp(line, "Version 1"))) { jp_logf(JP_LOG_WARN, _("While reading %s%s line 1:[%s]\n"), EPN, ".plugins", line); jp_logf(JP_LOG_WARN, _("Wrong Version\n")); jp_logf(JP_LOG_WARN, _("Check preferences->conduits\n")); fclose(in); return EXIT_FAILURE; } if (i>0) { if (toupper(line[0])=='N') { Pline = line + 2; for (temp_list = plugins; temp_list; temp_list = temp_list->next) { Pplugin = temp_list->data; if (!strcmp(Pline, Pplugin->full_path)) { Pplugin->sync_on=0; } } } } } fclose(in); return EXIT_SUCCESS; } static int get_plugin_info(struct plugin_s *p, char *path) { void *h; const char *err; char name[52]; char db_name[52]; int version, major_version, minor_version; void (*plugin_versionM)(int *major_version, int *minor_version); p->full_path = NULL; p->handle = NULL; p->sync_on = 1; p->name = NULL; p->db_name = NULL; p->number = 0; p->plugin_get_name = NULL; p->plugin_get_menu_name = NULL; p->plugin_get_help_name = NULL; p->plugin_get_db_name = NULL; p->plugin_startup = NULL; p->plugin_gui = NULL; p->plugin_help = NULL; p->plugin_print = NULL; p->plugin_import = NULL; p->plugin_export = NULL; p->plugin_gui_cleanup = NULL; p->plugin_pre_sync_pre_connect = NULL; p->plugin_pre_sync = NULL; p->plugin_sync = NULL; p->plugin_post_sync = NULL; p->plugin_exit_cleanup = NULL; p->plugin_unpack_cai_from_ai = NULL; p->plugin_pack_cai_into_ai = NULL; h = dlopen(path, RTLD_LAZY); if (!h) { jp_logf(JP_LOG_WARN, _("Open failed on plugin [%s]\n error [%s]\n"), path, dlerror()); return EXIT_FAILURE; } jp_logf(JP_LOG_DEBUG, "opened plugin [%s]\n", path); p->handle=h; p->full_path = strdup(path); /* plugin_versionM */ #if defined __OpenBSD__ && !defined __ELF__ #define dlsym(x,y) dlsym(x, "_" y) #endif plugin_versionM = dlsym(h, "plugin_version"); if (plugin_versionM==NULL) { err = dlerror(); jp_logf(JP_LOG_WARN, "plugin_version: [%s]\n", err); jp_logf(JP_LOG_WARN, _(" plugin is invalid: [%s]\n"), path); dlclose(h); p->handle=NULL; return EXIT_FAILURE; } plugin_versionM(&major_version, &minor_version); version=major_version*1000+minor_version; if ((major_version <= 0) && (minor_version < 99)) { jp_logf(JP_LOG_WARN, _("Plugin:[%s]\n"), path); jp_logf(JP_LOG_WARN, _("This plugin is version (%d.%d).\n"), major_version, minor_version); jp_logf(JP_LOG_WARN, _("It is too old to work with this version of J-Pilot.\n")); dlclose(h); p->handle=NULL; return EXIT_FAILURE; } jp_logf(JP_LOG_DEBUG, "This plugin is version (%d.%d).\n", major_version, minor_version); /* plugin_get_name */ jp_logf(JP_LOG_DEBUG, "getting plugin_get_name\n"); p->plugin_get_name = dlsym(h, "plugin_get_name"); if (p->plugin_get_name==NULL) { err = dlerror(); jp_logf(JP_LOG_WARN, "plugin_get_name: [%s]\n", err); jp_logf(JP_LOG_WARN, _(" plugin is invalid: [%s]\n"), path); dlclose(h); p->handle=NULL; return EXIT_FAILURE; } if (p->plugin_get_name) { p->plugin_get_name(name, 50); name[50]='\0'; p->name = strdup(name); } else { p->name = NULL; } /* plugin_get_menu_name */ jp_logf(JP_LOG_DEBUG, "getting plugin_get_menu_name\n"); p->plugin_get_menu_name = dlsym(h, "plugin_get_menu_name"); if (p->plugin_get_menu_name) { p->plugin_get_menu_name(name, 50); name[50]='\0'; p->menu_name = strdup(name); } else { p->menu_name = NULL; } /* plugin_get_help_name */ jp_logf(JP_LOG_DEBUG, "getting plugin_get_help_name\n"); p->plugin_get_help_name = dlsym(h, "plugin_get_help_name"); if (p->plugin_get_help_name) { p->plugin_get_help_name(name, 50); name[50]='\0'; p->help_name = strdup(name); } else { p->help_name = NULL; } /* plugin_get_db_name */ jp_logf(JP_LOG_DEBUG, "getting plugin_get_db_name\n"); p->plugin_get_db_name = dlsym(h, "plugin_get_db_name"); if (p->plugin_get_db_name) { p->plugin_get_db_name(db_name, 50); db_name[50]='\0'; } else { db_name[0]='\0'; } p->db_name = strdup(db_name); /* plugin_gui */ p->plugin_gui = dlsym(h, "plugin_gui"); /* plugin_help */ p->plugin_help = dlsym(h, "plugin_help"); /* plugin_help */ p->plugin_print = dlsym(h, "plugin_print"); /* plugin_import */ p->plugin_import = dlsym(h, "plugin_import"); /* plugin_export */ p->plugin_export = dlsym(h, "plugin_export"); /* plugin_gui_cleanup */ p->plugin_gui_cleanup = dlsym(h, "plugin_gui_cleanup"); /* plugin_startup */ p->plugin_startup = dlsym(h, "plugin_startup"); /* plugin_pre_sync */ p->plugin_pre_sync = dlsym(h, "plugin_pre_sync"); /* plugin_pre_sync_pre_connect */ p->plugin_pre_sync_pre_connect = dlsym(h, "plugin_pre_sync_pre_connect"); /* plugin_sync */ p->plugin_sync = dlsym(h, "plugin_sync"); /* plugin_post_sync */ p->plugin_post_sync = dlsym(h, "plugin_post_sync"); /* plugin_search */ p->plugin_search = dlsym(h, "plugin_search"); /* plugin_exit_cleanup */ p->plugin_exit_cleanup = dlsym(h, "plugin_exit_cleanup"); p->plugin_unpack_cai_from_ai = dlsym(h, "plugin_unpack_cai_from_ai"); p->plugin_pack_cai_into_ai = dlsym(h, "plugin_pack_cai_into_ai"); return EXIT_SUCCESS; } /* This will always return the first plugin list entry */ GList *get_plugin_list(void) { return plugins; } void free_plugin_list(GList **plugin_list) { GList *temp_list; struct plugin_s *p; for (temp_list = *plugin_list; temp_list; temp_list = temp_list->next) { if (temp_list->data) { p=temp_list->data; if (p->full_path) free(p->full_path); if (p->name) free(p->name); if (p->menu_name) free(p->menu_name); if (p->help_name) free(p->help_name); if (p->db_name) free(p->db_name); free(p); } } g_list_free(*plugin_list); *plugin_list=NULL; } void free_search_result(struct search_result **sr) { struct search_result *temp_sr, *temp_sr_next; for (temp_sr = *sr; temp_sr; temp_sr=temp_sr_next) { if (temp_sr->line) { free(temp_sr->line); } temp_sr_next = temp_sr->next; free(temp_sr); } *sr = NULL; } #endif /* ENABLE_PLUGINS */ jpilot-1.8.1.2/jpilot.spec.in0000644000175000017500000001140411702304470012663 00000000000000%define version @VERSION@ Name: jpilot Summary: Desktop organizer software for the Palm Pilot Version: @VERSION@ Release: 1 License: GPL Group: Applications/Productivity Source: http://jpilot.org/jpilot-@VERSION@.tar.gz URL: http://www.jpilot.org Packager: Judd Montgomery Prefix: /usr BuildRoot: %{_tmppath}/%{name}-@VERSION@-root Requires: pilot-link >= 0.12.5 %description J-Pilot is a desktop organizer application for the palm pilot that runs under Linux and Unix using X-Windows and GTK+. It is similar in functionality to the one that 3Com distributes and has many features not found in the 3Com desktop. %define _prefix %{prefix} %define _mandir %{prefix}/share/man %define _infodir %{prefix}/share/info %define _libdir %{prefix}/lib %define _datadir %{prefix}/share %define _docdir %{prefix}/share/doc/%{name} %prep %setup -q %build if [ ! -f ./configure ]; then ./autogen.sh --prefix=%{prefix} --mandir=%{_mandir} else %configure --prefix=%{prefix} --mandir=%{_mandir} fi make %install rm -rf $RPM_BUILD_ROOT strip jpilot make DESTDIR=$RPM_BUILD_ROOT install %post %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root) %{_bindir}/jpilot %{_bindir}/jpilot-dial %{_bindir}/jpilot-dump %{_bindir}/jpilot-merge %{_bindir}/jpilot-sync %{_libdir}/jpilot/plugins/libexpense.la %{_libdir}/jpilot/plugins/libexpense.so %{_libdir}/jpilot/plugins/libkeyring.la %{_libdir}/jpilot/plugins/libkeyring.so %{_libdir}/jpilot/plugins/libsynctime.la %{_libdir}/jpilot/plugins/libsynctime.so %{_docdir}/AUTHORS %{_docdir}/BUGS %{_docdir}/ChangeLog %{_docdir}/COPYING %{_docdir}/INSTALL %{_docdir}/README %{_docdir}/TODO %{_docdir}/icons/README %{_docdir}/icons/jpilot-icon1.xpm %{_docdir}/icons/jpilot-icon2.xpm %{_docdir}/icons/jpilot-icon3.xpm %{_docdir}/icons/jpilot-icon4.xpm %{_docdir}/manual/jpilot-address.png %{_docdir}/manual/jpilot-datebook.png %{_docdir}/manual/jpilot-expense.png %{_docdir}/manual/jpilot-install.png %{_docdir}/manual/jpilot-memo.png %{_docdir}/manual/jpilot-prefs-1.png %{_docdir}/manual/jpilot-prefs-2.png %{_docdir}/manual/jpilot-prefs-3.png %{_docdir}/manual/jpilot-prefs-4.png %{_docdir}/manual/jpilot-prefs-5.png %{_docdir}/manual/jpilot-prefs-6.png %{_docdir}/manual/jpilot-prefs-7.png %{_docdir}/manual/jpilot-prefs-8.png %{_docdir}/manual/jpilot-print.png %{_docdir}/manual/jpilot-search.png %{_docdir}/manual/jpilot-todo.png %{_docdir}/manual/jpilot-toplogo.jpg %{_docdir}/manual/manual.html %{_docdir}/manual/plugin.html %{_datadir}/jpilot/AddressDB.pdb %{_datadir}/jpilot/CalendarDB-PDat.pdb %{_datadir}/jpilot/ContactsDB-PAdd.pdb %{_datadir}/jpilot/DatebookDB.pdb %{_datadir}/jpilot/ExpenseDB.pdb #%{_datadir}/jpilot/MañanaDB.pdb %{_datadir}/jpilot/Ma?anaDB.pdb %{_datadir}/jpilot/Memo32DB.pdb %{_datadir}/jpilot/MemoDB.pdb %{_datadir}/jpilot/MemosDB-PMem.pdb %{_datadir}/jpilot/TasksDB-PTod.pdb %{_datadir}/jpilot/ToDoDB.pdb %{_datadir}/jpilot/jpilotrc.blue %{_datadir}/jpilot/jpilotrc.default %{_datadir}/jpilot/jpilotrc.green %{_datadir}/jpilot/jpilotrc.purple %{_datadir}/jpilot/jpilotrc.steel %{_datadir}/locale/*/LC_MESSAGES/jpilot.mo %{_mandir}/man1/jpilot-dial.1.gz %{_mandir}/man1/jpilot-dump.1.gz %{_mandir}/man1/jpilot-merge.1.gz %{_mandir}/man1/jpilot-sync.1.gz %{_mandir}/man1/jpilot.1.gz %{_datadir}/applications/jpilot.desktop %changelog * Mon Apr 11 2011 rikster5 - Add jpilot-merge to distribution * Mon Mar 08 2010 rikster5 - Use autoconf to replace VERSION rather than %version which is RedHat specific * Mon Mar 08 2010 rikster5 - Use autoconf to replace VERSION rather than %version which is RedHat specific * Sun Mar 07 2010 rikster5 - Revamped to include all files from 1.8.0 release * Sat Feb 28 2010 rikster5 - Updated for 1.8.0 release * Sat Sep 24 2005 Judd Montgomery - Updated for SuSE 9.3 * Sat Feb 22 2003 Judd Montgomery - fixed jpilotrc.* and empty/* files not being included * Sat Feb 22 2003 Vladimir Bormotov - call autogen.sh if no configure found - installation improvements - Oct 8, 2002 updated for automake build * Tue Jun 5 2001 Christian W. Zuckschwerdt - moved jpilot.spec to jpilot.spec.in and autoconf'ed it. - fixed this spec file so we don't need superuser privileges. - changed the hardcoded path into rpm macros * Wed Nov 22 2000 Matthew Vanecek - deleted the calls to 'install' in the % install section since this is already done in the Makefile. - Deleted the %attr tags from the %files list and made the default attribute to -,root,root. - changed the /usr/ to % {prefix}/ - Added the % post section - Added the % clean section - Changed the description