1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
|
<!-- <?xml version="1.0" ?>
<!DOCTYPE chapter PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd"
> -->
<!-- Uncomment the previous two lines to validate this document -->
<!-- standalone. Be sure to recomment them before attempting to -->
<!-- process index.docbook -->
<chapter id="using-kbabel">
<chapterinfo>
<!-- Fill in this section if this document has a different author -->
<authorgroup>
<author>
<personname
><firstname
></firstname
><surname
></surname
></personname>
</author>
</authorgroup>
<othercredit role="translator"
><firstname
>Marek</firstname
><surname
>Laane</surname
><affiliation
><address
><email
>[email protected]</email
></address
></affiliation
><contrib
>Tõlge eesti keelde</contrib
></othercredit
>
</chapterinfo>
<title
>&kbabel;i kasutamine</title>
<sect1 id="using-introduction">
<title
>Sissejuhatus</title>
<para
>Tavaliselt on rakenduse teated ja dokumentatsioon kirja pandud inglise keeles. Teatud tööriistate ja teekide raamistikku kasutades on võimalik aga panna oma lemmikrakendused kõnelema ka muus kui inglise keeles. Rakenduse kohandamist mingile keelele nimetatakse lokaliseerimiseks. Lokaliseerimine hõlmab rakenduse liidese ja dokumentatsiooni tõlkimist keeltesse, mida kasutajad soovivad pruukida, ning mõne maa või piirkonna puhul ka sisendi ja väljundi kohandamist teatud tavadele. &kbabel; on vahend, mis aitab sind lokaliseerimisel, et panna rakendused kõnelema kasutajaga just selles keeles, milles ta seda soovib.</para>
<para
>Iga internatsionaliseerimisteadlikuks muudetud rakendus pakub tõlkimiseks välja ühe või enam teadete kataloogi faili. Nende failide laiendiks on <literal role="extension"
>.pot</literal
>. <acronym
>POT</acronym
> on lühend, pikemalt <quote
>Portable Object Template</quote
> ehk <quote
>porditava objekti mall</quote
>.</para>
<para
>Tõlkijad asuvad <acronym
>POT</acronym
>-mallis täitma tühikuid, tõlkides iga teate vajalikku keelde. Tõlgitud teksti sisaldav fail on <acronym
>PO</acronym
> ehk <quote
>Portable Object</quote
> (eesti keeles <quote
>porditav objekt</quote
>) fail. </para>
<para
>Kui kõik teated on tõlgitud, saab <acronym
>PO</acronym
>-faili kompileerida masinale arusaadavasse binaarvormingusse, mida nimetatakse <acronym
>MO</acronym
> ehk masinobjekt (<quote
>Machine Object</quote
>) failiks. Need, laiendiga <literal role="extension"
>.mo</literal
> (või <literal role="extension"
>.gmo</literal
>, mis viitab sellele, et neid on töödelnud &GNU; gettext) failid kujutavad endast sisuliselt andmebaasi, mis vähendab aega, mis kulub rakendusel vajaliku tõlgitud teate leidmiseks. </para>
<para
>Ilmselt tekib küsimus: kui mul juba on &kbabel;, kas on veel mõtet huvi tunda, milline see <acronym
>PO</acronym
>-fail seesmiselt välja näeb. Vastus on kahtlemata <quote
>jah</quote
>! Vahel võib teadete kataloog viga saada ning seda tuleb käsitsi parandada. Enamasti juhtub see nii väga vihatavate <acronym
>CVS</acronym
>-i või <acronym
>SVN</acronym
>-i konfliktide tõttu, mis tekivad siis, kui tõlkeprotsessi koordineeritakse versioonikontrollisüsteemiga (näiteks <acronym
>CVS</acronym
> või Subversion ehk <acronym
>SVN</acronym
>). &kbabel; ei suuda sellistel puhkudel väga palju abiks olla, nii et sellisel juhul tuleb sageli kasutada tekstiredaktorit, mille puhul oleks vajalik veidi tunda ka <acronym
>PO</acronym
>-faili hingeelu. Vaatame siis <acronym
>PO</acronym
>-faili veidi lähemalt.</para>
<para
><acronym
>PO</acronym
>-failid koosnevad teadete paaridest — <emphasis
>msgid</emphasis
> ja <emphasis
>msgstr</emphasis
>. Msgid on ingliskeelne tekst, msgstr mingisse muude keelde tõlgitud tekst. Iga msgid-i ja msgstr-iga kaasnev tekst on ümbritsetud C-stiilis topeltjutumärkidega. Näiteks üks &noatun;i <acronym
>PO</acronym
>-failist võetu näeb välja nii: <literal
>msgid "Open a Playlist"</literal
> </para>
<!-- ### TODO: we would need an example of an entry -->
<para
>Tühje ridu ja neid, mille alguses seisab <literal
>#</literal
>, ignoreeritakse. Sümboliga # algavad read kujutavad endast kommentaare ning neist on kasu andmast märku, millises failis teadet kasutatakse või vajaduse korral tõlkijatele mõningate abistavate seletuste pakkumiseks. &kbabel; näitab kõigi teadete puhul selliseid kommentaariridu, kui need on olemas.</para>
<para
>Sageli on <acronym
>PO</acronym
>-faili esimene msgid-msgstr paar libakirje (tegelikult <acronym
>PO</acronym
>-faili päis), mis sisaldab mitmesugust infot tõlgitava <acronym
>PO</acronym
>-faili kohta: rakenduse nimi, tõlkimise kuupäev, tõlkija nimi ja nii edasi.</para>
<para
>Üks väga kasulik võimalus on niinimetatud <emphasis
>mitmuse vormid</emphasis
>. Inglise keeles kasutatakse nimisõnadel ainult üht ainsuse ja üht mitmuse vormi, ⪚ <quote
>1 file</quote
> ja <quote
>10 files</quote
>. See võib viia arendajad mõttele, et maailm on imelihtne ning võib luua selliseid teateid nagu <quote
>Do you want to delete %1 file(s)?</quote
>, kus <literal
>%1</literal
> tähistab kustutavate failide arvu. Kuid selline lähenemine on põhimõtteliselt vale. Näiteks slovakikeelses tõlkes tuleb antud juhul kasutada kolme erinevat tõlget. Selliste variantide arv erineb keeleti ja isegi kui see on sarnane (⪚ tšehhi keel kasutab antud juhul samuti kolme varianti), võivad reeglid, millal millist vormi kasutada, olla vägagi erinevad. </para>
<note
><para
>&kde; arendajatele ei meeldinud siiski mitmuse vormide teostamine <application
>&GNU; gettext</application
>is ning nad on juurutanud oma vormingu ja käsitlemisviisi. &GNU; gettexti mitmuse vorme peaks kasutusele võtma &kde; 4. </para
></note>
</sect1>
<sect1 id="using-editor">
<title
>Redaktor</title>
<para
>&kbabel;i pilt.</para>
<screenshot>
<screeninfo
>&kbabel;</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="snap1.png" format="PNG"/>
</imageobject>
<textobject
><phrase
>&kbabel;</phrase
></textobject>
</mediaobject>
</screenshot>
<para
>Kasutajate mugavuseks tarvitab &kbabel; tööriistaribasid, mis kiirendab paljude operatsioonide sooritamist, ning eriti hõivatud kasutajate tarbeks on ka hulganisti kiirklahve. Peaaken on jagatud neljaks osaks. </para>
<para
><emphasis
>Vasakul ülal</emphasis
> asuv redigeerimiskast on ainult lugemiseks ning sisaldab parajasti avatud PO-faili msgid välja ingliskeelse tekstiga.</para>
<para
><emphasis
>Vasakul all</emphasis
> asuv redigeerimiskast sisaldab näidatava msgid väljaga paaris käivat msgstr välja ning siin saab ka redigeerida tegelikku tõlget.</para>
<para
><emphasis
>Paremal ülal</emphasis
> asub kommentaaride aken, kus on näha parajasti redigeeritava kirje kommentaarid.</para>
<para
>Seda saab kasutada:</para>
<itemizedlist>
<listitem
><para
>arusaamiseks, kuidas rakendus käesolevat kirjet kohtleb (c vormingus või tavaline tekst) </para
></listitem>
<listitem
><para
>mõnel juhul nägemaks rakenduse arendaja lisatud kommentaare, mis on mõeldud tõlkijate tegevuse hõlbustamiseks — näiteks võivad seal leiduda tehnilised viited (mida väga edukalt kasutatakse projektis <application
>LyX</application
>) </para
></listitem>
<listitem
><para
>teadasaamiseks, millisest failist on käesolev teade pärit, kui soovid näiteks teada anda kirjaveast algupärases ingliskeelses stringis. </para
></listitem>
</itemizedlist>
<para
>Redaktoriaken paremal all on &kbabel;i peaakna kõige keerukam osa. Selle suurust saab muuta eraldusjoont selle ja kommentaariakna (paremal ülal) vahel lohistades. Redaktoriaknal on kaks kaarti — üks sisaldab otsinguinfot, teine kontekstiinfot. Kontekstiinfo kaardil on ka kerimisriba, mis näitab nelja eelmist ja järgmist kirjet — sisuliselt on tegemist tillukese tõmmisega PO-failist. Tõlkides on üsna tavaline, et mingi kirje on seotud nii eelneva kui järgneva kirjega, mistõttu kontekstikaardil saab ka endale selgeks teha, kuidas võiks olla kõige otstarbekam käesolevat kirjet tõlkida. Heaks näiteks on dialoogiliidese tõlge või siis näiteks elemendid koos nendega seonduva teksti ja "mis see on" teadetega. </para>
<sect2 id="more-kbabel-features">
<title
>&kbabel;i muud omadused</title>
<para
>Iga msgid kirje võib olla ühes kolmest olekust: </para>
<variablelist>
<varlistentry>
<term
>tõlkimata</term>
<listitem>
<para
>msgstr väljaga ei seostu tõlgitud teksti </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>kahtlane</term>
<listitem>
<para
><command
>msgmerge</command
> püüdis leida tõlgitavale kirjele vastet mujalt PO-failist. See ei pruugi olla täpne, mispärast tuleks selline tekst üle vaadata, et tõlge tõepoolest vastaks algupärasele ingliskeelsele tekstile. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>tõlgitud</term>
<listitem>
<para
>msgstr sisaldab endas lõplikult tõlgitud msgid-i teksti </para>
</listitem>
</varlistentry>
</variablelist>
<para
>Parajasti aktiivse kirje olekut näitab kaks <acronym
>LED</acronym
>-tulukest. Sõltuvalt seadistusest võivad need asuda olekuribal või <guilabel
>tõlkestring</guilabel
>i redigeerimiskasti kohal. Mõlema värv on muudetav (et see vastaks sinu maitsele või sobiks kokku nägemisomadustega). Kuidas neid seadistusi kohandada, saab täpsemalt teada osast <link linkend="preferences"
>Seadistused</link
>.</para>
</sect2>
</sect1>
<sect1 id="kbabel-features">
<title
>Tõlkimisest lähemalt</title>
<para
>Nüüd on sul olemas esialgne arusaam, kuidas PO-faili tõlkida. Käesolevas osas järgime tavapärast uue PO-faili tõlkimise rada, kasutades ära &kbabel;i võimsaid omadusi. Eeldame, et oled juba avanud POT-mallifaili ja salvestanud selle PO-failina. </para>
<sect2 id="kbabel-navigation">
<title
>Liikumine PO-failis</title>
<para
>&kbabel; võmaldab failis imelihtsalt liikuda, kasutades selleks ära tõlgete olekut. Tõlkimata ja kahtlasest olekust oli juba juttu. Teade võib olla märgitud ka vigaseks, selle põhjuseks võib olla <link linkend="kbabel-validation"
>sobivuse kontroll</link
> või sobivuse kontroll käsuga <command
>msgfmt</command
>. Ja mõistagi toetab &kbabel; külastatud teadete ajalugu käskudega <guilabel
>Edasi</guilabel
> ja <guilabel
>Tagasi</guilabel
>, mille kasutamine on samane vastavate käskude kasutamisega näiteks &konqueror;is.</para>
<para
>Kõik navigeerimiskäsud asuvad menüüs <menuchoice
><guimenu
>Liikumine</guimenu
></menuchoice
>. </para>
<informaltable>
<tgroup cols="2">
<tbody>
<row>
<entry
><para
><keycombo action="simul"
><keycap
>Page Up</keycap
></keycombo
></para
></entry>
<entry
><para
>Liigub eelmisele teatele </para
></entry>
</row>
<row>
<entry
><para
><keycombo action="simul"
><keycap
>Page Down</keycap
></keycombo
></para
></entry>
<entry
><para
>Liigub järgmisele teatele</para
></entry>
</row>
<row>
<entry
><para
><keycombo action="simul"
>&Ctrl;<keycap
>Page Up</keycap
></keycombo
></para
></entry>
<entry
><para
>Liigub eelmisele kahtlasele teatele</para
></entry>
</row>
<row>
<entry
><para
><keycombo action="simul"
>&Ctrl;<keycap
>Page Down</keycap
></keycombo
></para
></entry>
<entry
><para
>Liigub järgmisele kahtlasele teatele</para
></entry>
</row>
<row>
<entry
><para
><keycombo action="simul"
>&Alt;<keycap
>Page Up</keycap
></keycombo
></para
></entry>
<entry
><para
>Liigub eelmisele tõlkimata teatele</para
></entry>
</row>
<row>
<entry
><para
><keycombo action="simul"
>&Alt;<keycap
>Page Down</keycap
></keycombo
></para
></entry>
<entry
><para
>Liigub järgmisele tõlkimata teatele</para
></entry>
</row>
<row>
<entry
><para
><keycombo action="simul"
>&Shift;<keycap
>Page Up</keycap
></keycombo
></para
></entry>
<entry
><para
>Liigub eelmisele vigasele teatele</para
></entry>
</row>
<row>
<entry
><para
><keycombo action="simul"
>&Shift;<keycap
>Page Down</keycap
></keycombo
></para
></entry>
<entry
><para
>Liigub järgmisele vigasele teatele</para
></entry>
</row>
<row>
<entry
><para
><keycombo action="simul"
>&Ctrl;&Shift;<keycap
>Page Up</keycap
></keycombo
></para
></entry>
<entry
><para
>Liigub eelmisele kahtlasele või tõlkimata teatele</para
></entry>
</row>
<row>
<entry
><para
><keycombo action="simul"
>&Ctrl;&Shift;<keycap
>Page Down</keycap
></keycombo
></para
></entry>
<entry
><para
>Liigub järgmisele kahtlasele või tõlkimata teatele</para
></entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect2>
<sect2 id="kbabel-cleveredit">
<title
>Tark redigeerimine</title>
<para
><emphasis
>Tark redigeerimine</emphasis
> tähendab seda, et redaktor aitab tõlget redigeerides arvesse võtta PO-vormingu erinõudeid, parandades vajadusel korrektseks <quote
>paomärgid</quote
>.</para>
<para
>Samuti on toetatud enam kui üks rea lõpetamise viis. See on üsna kasulik kas või juba selle tõttu, kuidas käsitleb ridade lõppu gettext: see lihtsalt eirab neid. (Sisuliselt tähendab see seda, et kogu <acronym
>msgstr</acronym
> teksti võetakse ühe reana.) Kui soovid lisada <quote
>tegeliku</quote
> realõpu, tuleb lisada <userinput
>\n</userinput
>. Kuid tõlkijad unustavad pahatihti, et uus rida <acronym
>msgstr</acronym
>-is ei lisa tühikut ridade vahele. See tuleb käsitsi iga rea lõpu lisada, kuid nii kerge on seda unustada. Ning siin tuleb appi <quote
>tark redigeerimine</quote
>, mis lisab selle sinu eest. </para>
<para
>Järgnev tabel võtab kokku targa redigeerimise võimalused. </para>
<informaltable>
<tgroup cols="2">
<tbody>
<row>
<entry
><para
><keycombo action="simul"
><keycap
>TAB</keycap
></keycombo
></para
></entry>
<entry
><para
>Lisab <emphasis
>\t</emphasis
></para
></entry>
</row>
<row>
<entry
><para
><keycombo action="simul"
><keycap
>"</keycap
></keycombo
></para
></entry>
<entry
><para
>Lisab <emphasis
>\"</emphasis
></para
></entry>
</row>
<row>
<entry
><para
><keycombo action="simul"
><keycap
>Enter</keycap
></keycombo
></para
></entry>
<entry
><para
>Kui viimane märk enne kursorit ei ole tühikumärk, lisatakse üks tühikumärk ja seejärel alustatakse uut rida.</para
></entry>
</row
><row>
<entry
><para
><keycombo action="simul"
>&Ctrl;<keycap
>Enter</keycap
></keycombo
></para
></entry>
<entry
><para
>Alustab uut rida ilma omapoolse panuseta</para
></entry>
</row>
<row>
<entry
><para
><keycombo action="simul"
>&Shift;<keycap
>Enter</keycap
></keycombo
></para
></entry>
<entry
><para
>Lisab <emphasis
>\n</emphasis
> ja alustab uut rida</para
></entry>
</row>
</tbody>
</tgroup>
</informaltable>
<note>
<para
>Kui soovid tühimärke näha, võid seadistustedialoogis kaardi <guilabel
>Redaktor</guilabel
> alamkaardil <guilabel
>Välimus</guilabel
> sisse lülitada võimaluse <guibutton
>Värviline taust</guibutton
> ja/või <guibutton
>Tühimärke näidatakse punktidena</guibutton
>. </para>
</note>
</sect2>
<sect2 id="kbabel-roughtranslation">
<title
>Automaattõlge</title>
<para
>Esimese asjana uue tõlke käivitamisel võimaldab &kbabel; automaatselt tekitada tõlked vanemaid tõlkeid kasutades. Vali menüükäsk <menuchoice
><guimenu
>Tööriistad</guimenu
><guimenuitem
>Toores tõlge</guimenuitem
></menuchoice
> ning &kbabel; avab järgmise dialoogi: </para>
<para>
<screenshot>
<screeninfo
>Toore tõlkimise dialoog</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="roughtranslation.png" format="PNG"/>
</imageobject>
</mediaobject>
</screenshot>
</para>
<para
>Selles dialoogis saab määrata, mida tõlkida, samuti valida varasemate tõlgete allika. </para>
<para
>Ülal, sektsioonis <guilabel
>Tõlgitakse</guilabel
>, on kolm märkekasti (<guilabel
>Tõlkimata kirjed</guilabel
>, <guilabel
>Kahtlased kirjed</guilabel
>, <guilabel
>Tõlgitud kirjed</guilabel
>), mille abil saab määrata, millist laadi kirjeid tõlgitakse. Tõlkimata ja kahtlaste kirjete valimine on automaattõlke puhul ilmselt iseenesestmõistetav valik, kuid soovi korral võid nii muuta ka juba tõlgitud kirjeid. </para>
<para
>Toorel tõlkimisel kasutatakse niikuinii <acronym
>msgid</acronym
> täpset sobivust. Kuid siin saab kasutusele võtta ka mõningaid lisastrateegiaid, &ie; <guilabel
>Kahtlase tõlke lubamine (aeglane)</guilabel
> ja <guilabel
>Üksikute sõnade tõlkimine</guilabel
>. Neid valikuid peab toetama ka kasutatav allikas (vaata selle kohta lähemalt allpool). Pole võimalik üheselt seletada, mis tähendab <quote
>kahtlane tõlge</quote
>, kuid selle sisu ei tohiks ometi segaseks jääda. <quote
>Üksikute sõnade tõlkimine</quote
> on mõttekas ainult mõne keele puhul. &kbabel; püüab sellisel juhul tõlkida iga <acronym
>msgid</acronym
>-i sõna eraldi ja seab seejärel sõnad või laused <acronym
>msgstr</acronym
>is samasse järjekorda. </para>
<para
>Toore tõlkimise allikana saab kasutada suvalist olemasolevat sõnaraamatumoodulit. Dialoogi allosas on nimekirjad <guilabel
>Ei kasutata</guilabel
> ja <guilabel
>Kasutatakse</guilabel
>. Mooduleid kasutatakse selles järjekorras, nagu nad nimekirja <guilabel
>Kasutatakse</guilabel
> on lisatud. Kõigepealt võetakse ette esimene moodul, kui sellest midagi ei leita, siis teine ja nii edasi. Noolenuppudega saab mooduleid ühest nimekirjast teise liigutada. Kui soovid moodulite järjekorda muuta, kasuta nuppe <guibutton
>Üles</guibutton
> ja <guibutton
>Alla</guibutton
>. </para>
<para
>Tavaliselt märgib &kbabel; iga toorelt tõlgitud teate kahtlaseks, sest eeldab, et automaatselt tõlgitud teade vajab tõlkijapoolset kontrolli. Kui sa oled absoluutselt kindel, et automaattõlge tuleb veatu, või vaatad tõlked niikuinii üle, saad eemaldada märke kastist <guilabel
>Muudetud kirjed märgitakse kahtlaseks</guilabel
>, kuid selle puhul küsitakse sinu käest, kas sa seda tõesti soovid. </para>
<para
>Kui oled kõik vajalikud valikud langetanud, vajuta teadete automaattõlke alustamiseks nuppu <guibutton
>Käivita</guibutton
>. Selle kulgu saab jälgida edenemisribal ning vajaduse korral saab muidugi alati klõpsata ka nuppu <guibutton
>Stopp</guibutton
>. </para>
</sect2>
<sect2 id="kbabel-validation">
<title
>Tõlke kontrollimine</title>
<para
>Kõik võivad teha vigu. Seepärast toetab &kbabel; mitmeid tüüpiliste tõlkeprobleemide väljaselgitamise viise. Selliseid kontrolle (mitte küll süntaksi kontrolli) saab põhimõtteliselt läbi viia kahel moel.</para>
<para
>Kontrollimist võib rakendada igal tõlgitud teksti muutmise sammul. Seda nimetatakse <emphasis
>automaatseks kontrolliks</emphasis
>, mille saab sisse lülitada <link linkend="preferences-editor"
>&kbabel;i seadistustedialoogis</link
>. Automaatne süntaksi kontroll rakendub igal faili salvestamisel. </para>
<para
>Automaatne kontroll võib aeglustada &kbabel;i tööd. Kui sul on aeglasem arvuti, võid automaatse kontrollimise välja lülitada ning kasutada teist meetodit. Suvalise kontrolli saab käivitada menüüst <menuchoice
><guimenu
>Tööriistad</guimenu
><guisubmenu
>Sobivus</guisubmenu
></menuchoice
>. Siis kontrollitakse üle faili kõik teated ning vigased märgitakse ära. </para>
<variablelist>
<varlistentry>
<term
><guimenuitem
>Kontrolli süntaksit</guimenuitem
></term>
<listitem>
<para
>Käivitab <command
>msgfmt</command
> kontrollimaks PO-faili sobivust &GNU; gettexti silmade läbi. Näitab käsu tulemusi ja märgib ära vigased <acronym
>msgstr</acronym
> kirjed. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guimenuitem
>Kontrolli argumente</guimenuitem
></term>
<listitem>
<para
>Ebakorrektsed tõlked võivad kaasa tuua rakenduse krahhi. Kõige ohtlikum osa on selles mõttes argumendid, ⪚ printf-stiilis funktsioonid. See kontroll võrdleb argumentide arvu ja tüüpi <acronym
>msgid</acronym
> ja <acronym
>msgstr</acronym
> kirjetes, mis peavad teineteisele vastama. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guimenuitem
>Kontrolli kiirklahve</guimenuitem
></term>
<listitem>
<para
>&GUI; tekst sisaldab tavaliselt kiirklahvimärgiseid, &ie; tähti, mida saab kasutada &GUI; elementidele kiire ligipääsu võimaldamiseks klaviatuuri abil. Neid tähistatakse erisümboliga, ⪚ & &kde; puhul. Reeglina peab ka tõlgitud tekst sisaldama kiirklahvimärgiseid, kui need on olemas juba algupärandis. See kontroll annab teada, kui esineb mingeid probleeme. Kiirklahvimärgise saab määrata <guilabel
>seadistuste</guilabel
>dialoogi kaardil <guilabel
>Muud</guilabel
>. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guimenuitem
>Jälgi kontekstiinfot</guimenuitem
></term>
<listitem>
<para
>Seda läheb tõenäoliselt vaja ainult &kde; tõlkimisel. Mõnegi kirje sisu on üldlevinud sõna, mis erinevas kontekstis tuleb erinevalt tõlkida. &kde;s kirjeldab konteksti <acronym
>msgid</acronym
> alguses seisev erijada märkide <userinput
>:_</userinput
> järel. Mõned tõlkijad aga ei pruugi seda tähele panna või isegi mitte teada ning tõlgivad ära ka kontekstiinfo. Selle kontrolliga leitakse taolised <quote
>ülepingutamised</quote
>, mis tuleks seejärel eemaldada. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guimenuitem
>Kontrolli mitmuse vorme</guimenuitem
></term>
<listitem>
<para
>Kui <acronym
>msgid</acronym
> on määratletud <quote
>mitmuse vormina</quote
>, peab tõlge sisaldama korrektse arvu tõlkeid, mida eraldab <userinput
>\n</userinput
>. Korrektne arv sõltub tõlkekeelest ning see määratakse kindlaks <guilabel
>seadistuste</guilabel
>dialoogi kaardil <guilabel
>Isikuandmed</guilabel
>. Praegu on see teostatud ainult &kde; jaoks. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guimenuitem
>Kontrolli võrdusi</guimenuitem
></term>
<listitem>
<para
>Võrdused on <acronym
>msgid</acronym
>-i eriline vorming, mis tüüpiliselt on kasutusel <filename
>.desktop</filename
>-failides. Et tõlge liidetakse neisse failidesse tagasi, peab ka <acronym
>msgstr</acronym
> antud erivormingut kasutama. See tähendab, et tõlge peab algama (kuni esimese <literal
>=</literal
> esinemiseni) samamoodi algupärase teatega, ⪚ <userinput
>Name=</userinput
>. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="kbabel-spellcheck">
<title
>Tõlke õigekirja kontrollimine</title>
<para
>On iseenesestmõistetav, et enne tõlke kasutamist tuleb see üle vaadata ja kontrollida. Sel moel saab leida näpuvigu või ka mõningaid tõsisemaid puudujääke. &kbabel; kasutab &kde; tavapärast teeki õigekirja kontrollimiseks, selle standardseadistuse leiab <link linkend="preferences-project-spellcheck"
>projekti seadistustedialoogis</link
>. Õigekirja kontrollimise võimalused ise asuvad alammenüüs <menuchoice
><guimenu
>Tööriistad</guimenu
><guisubmenu
>Õigekirja kontroll</guisubmenu
></menuchoice
>. Õigekirja saab kontrollida mitmel moel: </para>
<variablelist>
<varlistentry>
<term
><guimenuitem
>Õigekirja kontroll...</guimenuitem
></term>
<listitem>
<para
>See on mõeldud dialoogi väljakutsumiseks, kus saab valida õigekirja kontrollimise viisi ning määrata vaikeviisi, mida hiljem saab välja kutsuda kiirklahviga <keycombo action="simul"
>&Ctrl;<keycap
>I</keycap
> </keycombo
>. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guimenuitem
>Kontrolli kõike...</guimenuitem
></term>
<listitem>
<para
>Kontrollib kogu faili õigekirja. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guimenuitem
>Kontrolli alates kursori asukohast...</guimenuitem
></term>
<listitem>
<para
>Käivitab õigekirja kontrollimise alates käesolevast teatest ja konrollib edasi faili lõpu poole. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guimenuitem
>Kontrolli aktiivset...</guimenuitem
></term>
<listitem>
<para
>Kontrollib ainult aktiivse teate õigekirja. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guimenuitem
>Kontrolli valitud teksti...</guimenuitem
></term>
<listitem>
<para
>Kui <acronym
>msgstr</acronym
> redaktoriaknas on mingi tekst valitud, saab selle võimalusega ainult selle õigekirja kontrollida. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="kbabel-tags">
<title
>&XML;-i, <acronym
>HTML</acronym
>-i jne. tõlkimine</title>
<para
>Märkekeelt kasutatakse &GUI; puhul üha enam. &kde; projekt tarvitab <acronym
>PO</acronym
>-faile ka DocBook dokumentatsioonifailide (mis on samuti märkekeel) tõlkimisel. &kbabel; toetab mitmeti sellist trendi. </para>
<note>
<para
>Siin kirjeldame vaid funktsioone, mis on seotud märkimiseks kasutatavate siltidega. Teine märkekeele kasutamisel tekkiv probleem on seotud pikemate tekstide tõlkimisega. Sellega tegeleb <emphasis
>võrdlemine</emphasis
>, mida tutvustab lähemalt <link linkend="kbabel-diff"
>järgmine osa</link
>. </para>
</note>
<para
>&kbabel;i praegune versioon suudab tuvastada, milliseid silte kasutab <acronym
>msgid</acronym
>, ja pakkuda neile kiiret juurdepääsu järgmiste menüüs <guimenu
>Redigeerimine</guimenu
> olevate käskudega: </para>
<variablelist>
<varlistentry>
<term>
<guimenuitem
>Lisa järgmine silt</guimenuitem>
</term>
<listitem>
<para>
<action
>Lisab järgmises msgid-is leitud sildi tõlkesse. &kbabel; tuvastab lisatava sildi siltide arvu alates tõlke algusest kokku lugedes. </action>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<menuchoice
><guimenu
>Redigeerimine</guimenu
> <guisubmenu
>Lisa silt</guisubmenu
> </menuchoice>
</term>
<listitem>
<para>
<action
>Selles alammenüüs on kirjas kõik märkekeele sildid, mida leiti algupärases ingliskeelses stringis. Neid mõne valimine lisab selle tõlgitud teksti kursori asukohta. </action>
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="kbabel-diff">
<title
>Erinevuse näitamine</title>
<para
>Mainisime juba, et mitmed kasutajasõbralikkusele rõhku panevad rakendused sisaldavad hulgaliselt pikemaid kirjeldavaid tekste, sealhulgas märkekeeles. Kui arendaja muudab osaliselt teksti, säilitab &GNU; gettext parimal juhul vana tõlke ja märgib selle kahtlaseks, halvemal juhul aga läheb - sõltuvalt tekstis tehtud muutuste ulatusest - kogu tõlge kaotsi. Sellest pole midagi, kui <acronym
>msgid</acronym
> on lühike, sest siis saab muutusi kiiresti tuvastada. Pikemate tekstide korral võib aga muutuste leidmine olla üsna vaevarikas (näiteks võib olla korrektor muutnud vaid artiklit või lisanud kirjavahemärgi). </para>
<para
>Sinu abistamiseks võib &kbabel; otsida üles algupärase <acronym
>msgid</acronym
>-i ja näidata erinevust. Muutusi näidatakse graafiliselt <guilabel
>algse stringi</guilabel
> redaktoriaknas. Täpsemalt saab seda määrata <link linkend="preferences-editor-appearance"
>&kbabel;i seadistustedialoogis</link
>. Menüükäsk <menuchoice
><guimenu
>Tööriistad</guimenu
> <guisubmenu
>Võrdlemine</guisubmenu
> <guimenuitem
>Näita võrdlust</guimenuitem
> </menuchoice
> näitab leitud erinevusi. Käesoleva teksti nägemiseks ilma algupärase tekstita kasuta menüükäsku <menuchoice
><guimenu
>Tööriistad</guimenu
> <guisubmenu
>Võrdlemine</guisubmenu
> <guimenuitem
>Näita algset teksti</guimenuitem
> </menuchoice
>. </para>
<para
>Automaatset erinevuste otsimist saab lülitada menüükäsuga <menuchoice
><guimenu
>Tööriistad</guimenu
> <guisubmenu
>Võrdlemine</guisubmenu
> <guimenuitem
>Võrdlemise režiim</guimenuitem
></menuchoice
>. Kui see on sisse lülitatud, hakatakse erinevusi otsima kohe, kui suundud uuele teatele. </para>
<para
>Nagu ikka, võid kasutada teksti varasema versiooni leidmiseks erinevaid allikaid, mida saab määrata <link linkend="preferences-diffmode"
>&kbabel;i seadistustedialoogis</link
>: </para>
<variablelist>
<varlistentry>
<term
>Tõlgete andmebaas</term>
<listitem>
<para
>Erinevuste otsimiseks võib kasutada tõlgete andmebaasi. Me soovitame tungivalt lülitada sisse uute tõlgete automaatse lisamise tõlgete andmebaasi, mida saab teha <link linkend="database-fill"
>tõlgete andmebaasi seadistustedialoogis</link
>. Selle režiimi saab sisse lülitada võimalusega <guilabel
>Kasutatakse tõlgete andmebaasi kirjeid</guilabel
>. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>Vanade failide puu</term>
<listitem>
<para
>Seda saab kasutada ainult siis, kui tõlgete andmebaasi kasutamine on välja lülitatud. Määrates <guilabel
>Diff-failide kataloog</guilabel
>i, saab &kbabel;is määrata, millist faili erinevuste leidmiseks kasutada. Pruugitakse avatud failide suhtelist otsinguteed, mida kasutatakse siin määratud kataloogis. Kui vastav fail on olemas, kasutatakse seda. Selle meetodi kasutamiseks peaks enne iga uuendamist tegema vanadest failidest varukoopia. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>Käsitsi valitud fail</term>
<listitem>
<para
>Kui eelmised võimalused päris hästi ei toimi, võid alati valida erinevuste leidmiseks vali ka käsitsi, kasutades menüükäsku <menuchoice
><guimenu
>Tööriistad</guimenu
><guisubmenu
>Võrdlemine</guisubmenu
><guimenuitem
>Ava fail võrdluseks</guimenuitem
></menuchoice
>. </para>
</listitem>
</varlistentry>
</variablelist>
<note>
<para
>Erinevuse otsing ei pruugi alati olla täpne, sest <acronym
>PO</acronym
>-fail ei sisalda mingit viidet algsele teatele. </para>
</note>
</sect2>
</sect1>
<sect1 id="kbabel-pluralforms">
<title
>Mitmuse vormid</title>
<para
>Kuivõrd mitmuse vormide teema on üpris keerukas, pühendame nende toetusele &kbabel;is omaette osa. </para>
<note
><para
>See osa käsitleb &kde; mitmuse vorme (veel täpsemalt &kde; 3 omi). Alates versioonis 1.11 (KDE 3.5) oskab &kbabel; lugeda, redigeerida ja salvestada ka &GNU; gettexti mitmuse vorme. </para
></note>
<para
>Iga keele puhul, millesse &kde; tõlgitakse, on vajalik määrata mitmuse vormide korrektne arv. Seda saab teha vastava kirjega failis <filename
>kdelibs.po</filename
>. Arv määratakse keele nime valides, mis kasutab õige mitmuse vormide arvu leidmiseks sama numbrit ja <emphasis
>reegleid</emphasis
>. Võimalike väärtuste uusima nimekirja leiab kdelibs lähtekoodis failis <filename
>kdecore/klocale.cpp</filename
>. </para>
<note
><para
>&GNU; gettext lubab määrata mitmuse vormide arvu ja tüübi teatud valemiga ning kasutada seda valemit iseseisvalt igas PO-failis eraldi. &kde; määrab mitmuse vormide arvu ja tüübi kindlaks ainult ühekordselt kogu KDE jaoks. </para
></note>
<para
>&kde; mitmuse vormid on tähistatud kommentaariga <userinput
>_n:</userinput
>, mis sisaldab argumenti <literal
>%n</literal
>. Seda argumenti kasutatakse siis teates endas ning see kontrollib, millist mitmuse vormi tuleks sinu keeles vastavalt keele reeglitele kasutada. </para>
<para
>Mitmuse vormide tõlkimisel tuleb kasutada spetsiaalset vormingut. Selles peab leiduma korrektne arv tõlkeid (üks iga vormi kohta), mida eraldab rea lõpus <literal
>\n</literal
>, aga sealjuures <emphasis
>ilma</emphasis
> originaalis leiduva tähiseta <userinput
>_n:</userinput
>. Toome näiteks kirje <quote
>_n: Selected 1 file\nSelected %n files</quote
> tõlke slovaki keelde: </para>
<programlisting
>Vybraný %n súbor\n
Vybrané %n súbory\n
Vybraných %n súborov
</programlisting>
<para
>Kontrollimaks, kas tõlge sisaldab korrektse arvu mitmuse vorme, kasuta menüükäsku <menuchoice
><guimenu
>Tööriistad</guimenu
> <guisubmenu
>Sobivus</guisubmenu
> <guimenuitem
>Kontrolli mitmuse vorme (ainult KDE)</guimenuitem
></menuchoice
>. </para>
</sect1>
</chapter>
<!--
Local Variables:
mode: xml
sgml-minimize-attributes:nil
sgml-general-insert-case:lower
sgml-indent-step:0
sgml-indent-data:nil
End:
vim:tabstop=2:shiftwidth=2:expandtab
-->
|