summaryrefslogtreecommitdiffstats
path: root/perl-install/lang.pm
blob: 6bf5bb83d8a23b6df4e4563aa4619c10b3c442b5 (plain)
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
package lang; # $Id$

use diagnostics;
use strict;

#-######################################################################################
#- misc imports
#-######################################################################################
use common;
use log;

#-######################################################################################
#- Globals
#-######################################################################################
#- key (to be used in $LC_ALL), [0] = english name, [1] = charset encoding,
#- [2] = value for $LANG used by DrakX, [3] = value for LANGUAGE (a list of
#- possible languages, carefully choosen)
#-
#- when adding a new language here, also add a line in keyboards list

#
# NOTE: we cheat for a lot of locales (in particular UTF-8, in DrakX they are
# the 8bit ones); it's easier like that now. Of course, on the installed
# system a real UTF-8 locale will be used
#

my %languages = my @languages = (
'en_US' => [ 'English|United States',	'C', 'en', 'en_US:en' ],
'en_GB' => [ 'English|United Kingdom',	'iso-8859-15', 'en', 'en_GB:en' ],
'en_IE' => [ 'English|Ireland',		'iso-8859-15','en', 'en_IE:en_GB:en' ],
'en_US.UTF-8'=> [ 'English|UTF-8',	'utf_15',     'en', 'en_US:en' ],
  'af'  => [ 'Afrikaans',		'iso-8859-1', 'af', 'af:en_ZA' ],
  'ar'  => [ 'Arabic',			'iso-8859-6', 'ar', 'ar' ],
#'az_AZ.ISO-8859-9E'=> [ 'Azeri (Latin)','iso-8859-9e','az', 'az:tr' ],
'az_AZ.UTF-8'=> [ 'Azeri (Latin)',	'utf_az',     'az', 'az:tr' ],
  'be'  => [ 'Belarussian (CP1251)',	'cp1251',     'be', 'be:be_BY.CP1251:ru_RU.CP1251' ],
'be_BY.UTF-8'  => [ 'Belarussian (UTF-8)','utf_1251',   'be', 'be:be_BY.CP1251:ru_RU.CP1251' ],
#- provide aliases for some not very standard names used in po files...
  'bg'  => [ 'Bulgarian (CP1251)',	'cp1251',     'bg', 'bg:bg.CP1251:bg_BG.CP1251:bg_BG' ],
'bg_BG.UTF-8'=> [ 'Bulgarian (UTF-8)',	'utf_1251',   'bg', 'bg:bg.CP1251:bg_BG.CP1251:bg_BG' ],
  'br'  => [ 'Brezhoneg',		'iso-8859-15','br', 'br:fr_FR:fr' ],
  'bs'  => [ 'Bosnian',			'iso-8859-2', 'bs', 'bs:hr:sr' ],
'ca_ES' => [ 'Catalan',		'iso-8859-15','ca', 'ca:es_ES:es:fr_FR:fr' ],
  'cs'  => [ 'Czech',			'iso-8859-2', 'cs', 'cs' ],
  'cy'  => [ 'Cymraeg (Welsh)','iso-8859-14','cy', 'cy:en_GB:en' ],
'cy_GB.UTF-8'=> [ 'Cymraeg (Welsh) (UTF-8)','utf_14',   'cy', 'cy:en_GB:en' ],
  'da'  => [ 'Danish',			'iso-8859-15', 'da', 'da' ],		
'de_AT' => [ 'German|Austria',		'iso-8859-15','de', 'de_AT:de' ],
'de_BE' => [ 'German|Belgium',		'iso-8859-15','de', 'de_BE:de' ],
'de_CH' => [ 'German|Switzerland',	'iso-8859-15', 'de', 'de_CH:de' ],
'de_DE' => [ 'German|Germany',		'iso-8859-15','de', 'de_DE:de' ],
  'el'  => [ 'Greek',        'iso-8859-7', 'el', 'el' ],
'el_GR.UTF-8'=> [ 'Greek (UTF-8)',        'utf_el',     'el', 'el' ],
  'eo'  => [ 'Esperanto (UTF-8)',		'iso-8859-3', 'eo', 'eo' ],
'eo_XX.UTF-8'=> [ 'Esperanto (UTF-8)',	'utf_3',      'eo', 'eo' ],
'es_AR' => [ 'Spanish|Argentina',	'iso-8859-1', 'es', 'es_AR:es_UY:es:es_ES' ],
'es_ES' => [ 'Spanish|Spain (modern sorting)',	'iso-8859-15', 'es', 'es_ES:es' ],
'es@tradicional' => [ 'Spanish|Spain (traditional sorting)', 'iso-8859-15', 'es', 'es' ],
'es_ES.UTF-8'=> [ 'Spanish|Spain (UTF-8)','utf_15', 'es', 'es_ES:es' ],
'es_MX' => [ 'Spanish|Mexico',	'iso-8859-1', 'es', 'es_MX:es:es_ES' ],
  'et'  => [ 'Estonian',		'iso-8859-15','et', 'et' ],
'eu_ES' => [ 'Euskara (Basque)','iso-8859-15', 'eu', 'eu:es_ES:fr_FR:es:fr' ],
#-'fa'  => [ 'Farsi (Iranian)',		'isiri-3342', 'fa', 'fa' ],
'fi_FI' => [ 'Finnish (Suomi)',	'iso-8859-15','fi', 'fi' ],
#-'fo'  => [ 'Faroese',			'iso-8859-1', 'fo', 'fo' ],
'fr_BE' => [ 'French|Belgium',	'iso-8859-15','fr', 'fr_BE:fr' ],
'fr_CA' => [ 'French|Canada',		'iso-8859-15','fr', 'fr_CA:fr' ],
'fr_CH' => [ 'French|Switzerland',	'iso-8859-15', 'fr', 'fr_CH:fr' ],
'fr_FR' => [ 'French|France',	'iso-8859-15','fr', 'fr_FR:fr' ],
'fr_FR.UTF-8'=> [ 'French|France (UTF-8)','utf_15','fr', 'fr_FR:fr' ],
'ga_IE' => [ 'Gaeilge (Irish)',	'iso-8859-15','ga', 'ga:en_IE:en' ],
#-'gd'  => [ 'Scottish gaelic',		'iso-8859-14','gd', 'gd:en_GB:en' ],
'gl_ES' => [ 'Galego (Galician)','iso-8859-15','gl', 'gl:es_ES:pt_PT:pt_BR:es:pt' ],
#-'gv'	=> [ 'Manx gaelic',		'iso-8859-14','gv', 'gv:en_GB:en' ],
#- 'iw' was the old code for hebrew language
  'he'  => [ 'Hebrew',	'iso-8859-8', 'he', 'he:iw_IL' ],
'he_IL.UTF-8'=> [ 'Hebrew (UTF-8)',	'utf_he',     'he', 'he:iw_IL' ],
  'hr'  => [ 'Croatian',		'iso-8859-2', 'hr', 'hr' ],
  'hu'  => [ 'Hungarian', 		'iso-8859-2', 'hu', 'hu' ],
#'hy_AM.ARMSCII-8'=> [ 'Armenian|ARMSCII-8','armscii-8','hy','hy' ],
'hy_AM.UTF-8'=> [ 'Armenian',     'utf_hy',     'hy', 'hy' ],
#- 'in' was the old code for indonesian language; by putting LANGUAGE=id:in_ID
#- we catch the few catalog files still using the wrong code
  'id'  => [ 'Indonesian',		'iso-8859-1', 'id', 'id:in_ID' ],
  'is'  => [ 'Icelandic', 		'iso-8859-1', 'is', 'is' ],
'it_CH' => [ 'Italian|Switzerland',	'iso-8859-15', 'it', 'it_IT:it' ],
'it_IT' => [ 'Italian|Italy','iso-8859-15','it', 'it_IT:it' ],
#-'iu'  => [ 'Inuktitut', 		'unicodeIU',  'iu', 'iu' ],
  'ja'  => [ 'Japanese',		'jisx0208',   'ja', 'ja_JP.ujis:ja' ],
'ja_JP.UTF-8'=> [ 'Japanese (UTF-8)',	'utf_ja',     'ja', 'ja_JP.ujis:ja' ],
'ka_GE.UTF-8'=> [ 'Georgian',  		'utf_ka',     'ka', 'ka' ],
#-'kl'  => [ 'Greenlandic (inuit)',	'iso-8859-1', 'kl', 'kl' ],
  'ko'  => [ 'Korean',           'ksc5601',    'ko', 'ko' ],
'ko_KR.UTF-8'=> [ 'Korean (UTF-8)',       'utf_ko',     'ko', 'ko' ],
#-'kw'	=> [ 'Cornish gaelic',		'iso-8859-14','kw', 'kw:en_GB:en' ],
#-'lo'  => [ 'Laotian',			'mulelao-1',  'lo', 'lo' ],
  'lt'  => [ 'Lithuanian',		'iso-8859-13','lt', 'lt' ],
  'lv'  => [ 'Latvian',			'iso-8859-13','lv', 'lv' ],   
  'mi'	=> [ 'Maori',			'iso-8859-13','mi', 'mi' ],
  'mk'  => [ 'Macedonian (Cyrillic)','iso-8859-5', 'mk', 'mk' ],
'mk_MK.UTF-8'=> [ 'Macedonian (Cyrillic) (UTF-8)','utf_1251',   'mk', 'mk' ],
  'ms'  => [ 'Malay',			'iso-8859-1', 'ms', 'ms' ],
# 'mt'  => [ 'Maltese|ISO-8859-3',	'iso-8859-3', 'mt', 'mt' ],
'mt_MT.UTF-8'=> [ 'Maltese',	'utf_3',      'mt', 'mt' ],
'nl_BE' => [ 'Dutch|Belgium',	'iso-8859-15', 'nl', 'nl_BE:nl' ],
'nl_NL' => [ 'Dutch|Netherlands','iso-8859-15', 'nl', 'nl_NL:nl' ],
# 'nb' is the new locale name in glibc 2.2
  'no'  => [ 'Norwegian|Bokmaal',	'iso-8859-1', 'no', 'no:nb:nn:no@nynorsk:no_NY' ],
# no_NY is used by KDE (but not standard); 'nn' is the new locale in glibc 2.2
  'nn'	=> [ 'Norwegian|Nynorsk',	'iso-8859-1', 'no', 'nn:no@nynorsk:no_NY:no:nb' ],
#-'oc'  => [ 'Occitan',			'iso-8859-1', 'oc', 'oc:fr_FR' ],
#-'pd'	=> [ 'Plauttdietsch',		'iso-8859-1', 'pd', 'pd' ],
#-'ph'  => [ 'Pilipino',		'iso-8859-1', 'ph', 'ph:tl' ],
  'pl'  => [ 'Polish',			'iso-8859-2', 'pl', 'pl' ],
#-'pp'	=> [ 'Papiamento',		'iso-8859-1', 'pp', 'pp' ],
'pt_BR' => [ 'Portuguese|Brazil',	'iso-8859-1', 'pt_BR', 'pt_BR:pt_PT:pt' ],
'pt_PT' => [ 'Portuguese|Portugal','iso-8859-15','pt', 'pt_PT:pt:pt_BR' ],
  'ro'  => [ 'Romanian',  		'iso-8859-2', 'ro', 'ro' ],
'ru_RU.KOI8-R' => [ 'Russian|KOI8-R',	'koi8-r',     'ru', 'ru_RU:ru' ],
'ru_RU.CP1251' => [ 'Russian|CP1251',	'cp1251',     'ru', 'ru_RU:ru' ],
'ru_RU.UTF-8' => [ 'Russian|UTF-8',	'utf_1251',   'ru', 'ru_RU:ru' ],
  'sk'  => [ 'Slovak',    		'iso-8859-2', 'sk', 'sk' ],
  'sl'  => [ 'Slovenian',		'iso-8859-2', 'sl', 'sl' ],
  'sp'  => [ 'Serbian|Cyrillic (ISO-8859-5)','iso-8859-5', 'sp', 'sp:sr' ],
'sp_YU.CP1251'=> [ 'Serbian|Cyrillic (CP1251)','cp1251',    'sp', 'sp:sr' ],
'sp_YU.UTF-8'=> [ 'Serbian|Cyrillic (UTF-8)','utf_1251',   'sp', 'sp:sr' ],
  'sr'  => [ 'Serbian|Latin (ISO-8859-2)','iso-8859-2','sr', 'sr' ],
'sr_YU.UTF-8'=> [ 'Serbian|Latin (UTF-8)',	'utf_2',      'sr', 'sr' ],
  'sv'  => [ 'Swedish',			'iso-8859-1', 'sv', 'sv' ],
# there is no tamil font curently; so set DrakX encoding to utf_1
'ta_IN.UTF-8'=> [ 'Tamil',		'utf_1',      'ta', 'ta' ],
'tg_TJ.UTF-8'=> [ 'Tajik',		'utf_koi',    'tg', 'tg' ],
  'th'  => [ 'Thai|TIS-620',            'tis620',     'th', 'th' ],
'th_TH.UTF-8'=> [ 'Thai (UTF-8)',         'utf_th',     'th', 'th' ],
  'tr'  => [ 'Turkish',	 		'iso-8859-9', 'tr', 'tr' ],
#-'tt_RU.UTF-8'=> [ 'Tatar',		'koi8-k',  'tt', 'tt' ],
#-'ur'	=> [ 'Urdu',			'cp1256',     'ur', 'ur' ],  
'uk_UA' => [ 'Ukrainian|KOI8-U', 	'koi8-u',     'uk', 'uk_UA:uk' ],
'uk_UA.CP1251'=> [ 'Ukrainian|CP1251',	'cp1251',     'uk', 'uk_UA:uk' ],
'uk_UA.UTF-8'=> [ 'Ukrainian|UTF-8',	'utf_1251',   'uk', 'uk_UA:uk' ],
  'uz'  => [ 'Uzbek',			'iso-8859-1', 'uz', 'uz' ],
'vi_VN.TCVN'  => [ 'Vietnamese|TCVN',   'tcvn',     'vi', 'vi' ],
'vi_VN.VISCII' => [ 'Vietnamese|VISCII','viscii',   'vi', 'vi' ],
'vi_VN.UTF-8' => [ 'Vietnamese|UTF-8',  'utf_vi',   'vi', 'vi' ],
  'wa'  => [ 'Walon',     		'iso-8859-15', 'wa', 'wa:fr_BE:fr' ],
#-'yi'	=> [ 'Yiddish',			'cp1255',     'yi', 'yi' ],
# NOTE: 'zh' must be in the LANGUAGE list, it is not used for translations
# themselves but is needed for our selection of locales-xx packages
# and the language dependent packages resolution
#'zh_HK.Big5' => [ 'Chinese|Traditional|Hong Kong|Big5', 'Big5', 'zh_TW.Big5', 'zh_TW.Big5:zh_TW:zh_HK:zh' ],
#'zh_HK.UTF-8' => [ 'Chinese|Traditional|Hong Kong|UTF-8','utf_tw','zh_HK', 'zh_HK:zh_TW.Big5:zh_TW:zh' ],
'zh_TW.Big5' => [ 'Chinese|Traditional|Big5', 'Big5', 'zh_TW.Big5', 'zh_TW.Big5:zh_TW:zh_HK:zh' ],
'zh_TW.UTF-8' => [ 'Chinese|Traditional|UTF-8','utf_tw','zh_TW','zh_TW.Big5:zh_TW.big5:zh_TW:zh_HK:zh' ],
'zh_CN.GB2312' => [ 'Chinese|Simplified|GB2312', 'gb2312', 'zh_CN.GB2312', 'zh_CN.GB2312:zh_CN:zh' ],
'zh_CN.UTF-8' => [ 'Chinese|Simplified|UTF-8','utf_cn','zh_CN', 'zh_CN.GB2312:zh_CN:zh' ],
# does this one works? 
#'zh_CN.GB18030' => [ 'Chinese|Simplified|GB18030','gb2312','zh_CN', 'zh_CN.GB2312:zh_CN:zh' ],
);
@languages = map { $_->[0] } group_by2(@languages);

my %xim = (
# 'zh_TW.Big5' => { 
#	ENC => 'big5',
#	XIM => 'xcin',
#	XIM_PROGRAM => 'xcin',
#	XMODIFIERS => '"@im=xcin"',
#	CONSOLE_NOT_LOCALIZED => 'yes',
# },
  'zh_TW.Big5' => {
	ENC => 'big5',
	XIM => 'Chinput',
	XIM_PROGRAM => 'chinput',
	XMODIFIERS => '"@im=Chinput"',
	CONSOLE_NOT_LOCALIZED => 'yes',
  },
  'zh_TW.UTF-8' => {
	ENC => 'utf8',
	XIM => 'Chinput',
	XIM_PROGRAM => 'chinput',
	XMODIFIERS => '"@im=Chinput"',
	CONSOLE_NOT_LOCALIZED => 'yes',
  },
  'zh_CN.GB2312' => {
	ENC => 'gb',
	XIM => 'Chinput',
	XIM_PROGRAM => 'chinput',
	XMODIFIERS => '"@im=Chinput"',
	CONSOLE_NOT_LOCALIZED => 'yes',
  },
  'zh_CN.UTF-8' => {
	ENC => 'utf8',
	XIM => 'Chinput',
	XIM_PROGRAM => 'chinput',
	XMODIFIERS => '"@im=Chinput"',
	CONSOLE_NOT_LOCALIZED => 'yes',
  },
  'ko' => {
	ENC => 'kr',
	XIM => 'Ami',
	# NOTE: there are several possible versions of ami, for the different
	# desktops (kde, gnome, etc). So XIM_PROGRAM isn't defined; it will
	# be the xinitrc script, XIM section, that will choose the right one 
	# XIM_PROGRAM => 'ami',
	XMODIFIERS => '"@im=Ami"',
	CONSOLE_NOT_LOCALIZED => 'yes',
  },
  'ko_KR.UTF-8' => {
	ENC => 'utf8',
	XIM => 'Ami',
	# NOTE: there are several possible versions of ami, for the different
	# desktops (kde, gnome, etc). So XIM_PROGRAM isn't defined; it will
	# be the xinitrc script, XIM section, that will choose the right one 
	# XIM_PROGRAM => 'ami',
	XMODIFIERS => '"@im=Ami"',
	CONSOLE_NOT_LOCALIZED => 'yes',
  },
  'ja' => {
	ENC => 'eucj',
	XIM => 'kinput2',
	XIM_PROGRAM => 'kinput2',
	XMODIFIERS => '"@im=kinput2"',
  },
  'ja_JP.UTF-8' => {
	ENC => 'utf8',
	XIM => 'kinput2',
	XIM_PROGRAM => 'kinput2',
	XMODIFIERS => '"@im=kinput2"',
  },
  # XFree86 has an internal XIM for Thai that enables syntax checking etc.
  # 'Passthroug' is no check at all, 'BasicCheck' accepts bad sequences
  # and convert them to right ones, 'Strict' refuses bad sequences
  'th' => {
	XIM_PROGRAM => '/bin/true', # it's an internal module
	XMODIFIERS => '"@im=BasicCheck"',
  },
  # xvnkb is not an XIM input method; but an input method of another
  # kind, only XIM_PROGRAM needs to be defined
  'vi' => {
	XIM_PROGRAM => 'xvnkb',
  },
  'vi_VN.TCVN' => {
	XIM_PROGRAM => 'xvnkb',
  },
  'vi_VN.VISCII' => {
	XIM_PROGRAM => 'xvnkb',
  },
## xvnkb don't work in utf-8
# 'vi_VN.UTF-8' => {
#	XIM_PROGRAM => 'xvnkb',
# },
  # right to left languages only work properly on console
  'ar' => {
	X11_NOT_LOCALIZED => "yes",
  },
  'fa' => {
	X11_NOT_LOCALIZED => "yes",
  },
# KDE has some "mirrored" translations
#  'he' => {
#	X11_NOT_LOCALIZED => "yes",
#  },
  'ur' => {
	X11_NOT_LOCALIZED => "yes",
  },
  'yi' => {
	X11_NOT_LOCALIZED => "yes",
  },
);

sub std2 { "-*-*-medium-r-normal-*-$_[1]-*-*-*-*-*-$_[0]" }
sub std_ { std2($_[0], 10), std2($_[0], 10) }
sub std  { std2($_[0], $_[1] || 10), std2($_[0],  8) }

#- [0]: console font name; [1]: unicode map for console font
#- [2]: acm file for console font;
#- [3]: iocharset param for mount; [4]: codepage parameter for mount
#- [5]: X11 fontset (for DrakX)
my %charsets = (
  "armscii-8"  => [ "arm8",		"armscii8.uni",	"trivial.trans",
    undef,	undef, std_("armscii-8") ],
  "utf_hy"     => [ "arm8",		"armscii8.uni",	"trivial.trans",
    "utf8",	undef, std_("armscii-8") ],
#- chinese needs special console driver for text mode
  "Big5"       => [ undef,		undef,		undef,
	"big5", "950", "-*-*-*-*-*-*-*-*-*-*-*-*-big5-0" ],
  "utf_tw"     => [ undef,		undef,		undef,
	"utf8", undef, "-*-*-*-*-*-*-*-*-*-*-*-*-big5-0" ],
  "gb2312"     => [ undef,		undef,		undef,
	"gb2312", "936", "-*-*-*-*-*-*-*-*-*-*-*-*-gb2312.1980-0" ],
  "utf_cn"     => [ undef,		undef,		undef,
	"utf8", undef, "-*-*-*-*-*-*-*-*-*-*-*-*-gb2312.1980-0" ],
  "utf_ka"      => [ "t_geors",		"geors.uni",	"geors_to_geops.trans",
	"utf8",  undef, "-*-*-*-*-*-*-*-*-*-*-*-*-georgian-academy" ],
  "C" => [ "lat0-sun16",	undef,		"iso15",
	"iso8859-1", "850", sub { std("iso8859-1", @_) } ],
  "iso-8859-1" => [ "lat0-sun16",	undef,		"iso15",
	"iso8859-1", "850", sub { std("iso8859-15", @_) } ],
  "utf_1"      => [ "lat0-sun16",	undef,		"iso15",
	"utf8", undef, sub { std("iso8859-15", @_) } ],
  "iso-8859-2" => [ "lat2-sun16",	undef,		"iso02",
	"iso8859-2", "852", sub { std("iso8859-2", @_) } ],
  "utf_2"      => [ "lat2-sun16",	undef,		"iso02",
	"utf8", undef, sub { std("iso8859-2", @_) } ],
  "iso-8859-3" => [ "iso03.f16",	undef,		"iso03",
	"iso8859-3", undef, std_("iso8859-3") ],
  "utf_3" => [ "iso03.f16",	undef,		"iso03",
	"utf8", undef, std_("iso8859-3") ],
#  "iso-8859-4" => [ "lat4u-16",		undef,		"iso04",
#	"iso8859-4", "775", std_("iso8859-4") ],
  "iso-8859-5" => [ "iso05.f16",	"iso05",	"trivial.trans",
  	"iso8859-5", "855", sub { std("microsoft-cp1251", @_) } ],
#-#- arabic needs special console driver for text mode [acon]
#-#- (and gtk support isn't done yet)
  "iso-8859-6" => [ "iso06.f16",	"iso06",	"trivial.trans",
    "iso8859-6", "864", std_("iso8859-6") ],
  "iso-8859-7" => [ "iso07.f16",	"iso07",	"trivial.trans",
	"iso8859-7", "869", std_("iso8859-7") ],
  "utf_el" => [ "iso07.f16",	"iso07",	"trivial.trans",
	"utf8", "869", std_("iso8859-7") ],
#-#- hebrew needs special console driver for text mode [acon]
#-#- (and gtk support isn't done yet)
   "iso-8859-8" => [ "iso08.f16",	"iso08",	"trivial.trans",
#	std_("iso8859-8") ],
	"iso8859-8", "862", std_("microsoft-cp1255") ],
  "iso-8859-9" => [ "iso09.f16",	"iso09",	"trivial.trans",
	"iso8859-9", "857", sub { std("iso8859-9", @_) } ],
  "iso-8859-13" => [ "tlat7",		"iso13",	"trivial.trans",
	"iso8859-13", "775", std_("iso8859-13") ],
  "utf_13" => [ "tlat7",		"iso13",	"trivial.trans",
	"utf8", "775", std_("iso8859-13") ],
  "iso-8859-14" => [ "tlat8",		"iso14",	"trivial.trans",
	"iso8859-14", "850", std_("iso8859-14") ],
  "utf_14" => [ "tlat8",		"iso14",	"trivial.trans",
	"utf8", undef, std_("iso8859-14") ],
  "iso-8859-15" => [ "lat0-sun16",	undef,		"iso15",
	"iso8859-15", "850", sub { std("iso8859-15", @_) } ],
  "utf_15" => [ "lat0-sun16",	undef,		"iso15",
	"utf8", undef, sub { std("iso8859-15", @_) } ],
  "utf_az"      => [ "tiso09e",		"iso09",	"trivial.trans",
	"utf8", undef, std2("iso8859-9e",10) ],
#- japanese needs special console driver for text mode [kon2]
  "jisx0208"   => [ undef,		undef,		"trivial.trans",
	"euc-jp", "932", "-*-*-*-*-*-*-*-*-*-*-*-*-jisx*.*-0" ],
  "utf_ja"   => [ undef,		undef,		"trivial.trans",
	"utf8", undef, "-*-*-*-*-*-*-*-*-*-*-*-*-jisx*.*-0" ],
  "koi8-r"     => [ "UniCyr_8x16",	undef,		"koi8-r",
	"koi8-r", "866", sub { std("microsoft-cp1251", @_) } ],
  "koi8-u"     => [ "UniCyr_8x16",	undef,		"koi8-u",
	"koi8-u", "866", sub { std("microsoft-cp1251", @_) } ],
  "utf_koi"     => [ "koi8-k",		"iso01",	"trivial.trans",
	"utf8", undef, std("koi8-k") ],
  "cp1251"     => [ "UniCyr_8x16",	undef,		"cp1251",
	"cp1251", "866", sub { std("microsoft-cp1251", @_) } ],
  "utf_1251"   => [ "UniCyr_8x16",	undef,		"cp1251",
	"utf8", undef, sub { std("microsoft-cp1251", @_) } ],
#- Yiddish needs special console driver for text mode [acon]
#- (and gtk support isn't done yet)
#  "cp1255"     => [ "iso08.f16",        "iso08",        "trivial.trans",
#	"cp1255", "862", std_("microsoft-cp1255") ],
  "utf_he"     => [ "iso08.f16",        "iso08",        "trivial.trans",
	"utf8", "862", std_("microsoft-cp1255") ],
#- Urdu needs special console driver for text mode [acon]
#- (and gtk support isn't done yet)
#  "cp1256"     => [ undef,              undef,          "trivial.trans",
#	undef, "864", std_("microsoft-cp1255") ],
#- korean needs special console driver for text mode
  "ksc5601"    => [ undef,		undef,		undef,
	"euc-kr", "949", "-*-*-*-*-*-*-*-*-*-*-*-*-ksc5601.1987-*" ],
  "utf_ko"    => [ undef,		undef,		undef,
	"utf8", undef, "-*-*-*-*-*-*-*-*-*-*-*-*-ksc5601.1987-*" ],
#- I have no console font for Thai...
  "tis620"     => [ undef,		undef,		"trivial.trans",
	"tis-620", "874", std2("tis620.2533-1",12) ],
  "utf_th"     => [ undef,		undef,		"trivial.trans",
	"utf8", "874", std2("tis620.2533-1",12) ],
  "tcvn"       => [ "tcvn8x16",		"tcvn",		"trivial.trans",
	undef, undef, std2("tcvn-5712", 13), std2("tcvn-5712", 10) ],
  "viscii"     => [ "viscii10-8x16",	"viscii.uni",	"viscii1.0_to_viscii1.1.trans",
#-	"-*-*-*-*-*-*-*-*-*-*-*-*-viscii1.1-1" ],
	undef, undef, std2("tcvn-5712", 13), std2("tcvn-5712", 10) ],
  "utf_vi"     => [ "tcvn8x16",		"tcvn",		"trivial.trans",
	"utf8", undef, std2("tcvn-5712", 13), std2("tcvn-5712", 10) ],
#- Farsi (iranian) needs special console driver for text mode [acon]
#- (and gtk support isn't done yet)
#  "isiri-3342" => [ undef,		undef,		"trivial.trans",
#	undef, undef, "-*-*-*-*-*-*-*-*-*-*-*-*-isiri-3342" ],
#  "tscii-0" => [ "tamil",		undef,		"trivial.trans",
#	undef, undef, "-*-*-*-*-*-*-*-*-*-*-*-*-tscii-0" ],
  "unicode" => [ undef,			undef,		"trivial.trans",
	"utf8", undef, "-*-*-*-*-*-*-*-*-*-*-*-*-iso10646-1" ],
);

my %bigfonts = (
    Big5     => 'taipei16.pcf.gz',
    gb2312   => 'gb16fs.pcf.gz',
    jisx0208 => 'k14.pcf.gz',
    ksc5601  => 'baekmuk_gulim_h_14.pcf.gz',
    unicode  => 'cu12.pcf.gz',
);

#- for special cases not handled magically
my %charset2kde_charset = (
    gb2312 => 'gb2312.1980-0',
    jisx0208 => 'jisx0208.1983-0',
    ksc5601 => 'ksc5601.1987-0',
    Big5 => 'big5-0',
    cp1251 => 'microsoft-cp1251',
    utf8 => 'iso10646-1',
    tis620 => 'tis620-0',
);

#- for special cases not handled magically
my %lang2country = (
  ar => 'eg',
  be => 'by',
  bs => 'bh',
  cs => 'cz',
  da => 'dk',
  el => 'gr',
  et => 'ee',
  ko => 'kr',
  mi => 'nz',
  ms => 'my',
  nn => 'no',
  sl => 'si',
  sp => 'sr',
  sv => 'se',
);

#-######################################################################################
#- Functions
#-######################################################################################

sub list { 
    my (%options) = @_;
    my @l = @languages;
    if ($options{exclude_non_necessary_utf8}) {
	my %LANGs_non_utf8 = map { lang2LANG($_) => 1 } grep { !/UTF-8/ } @languages;
	@l = grep { !/UTF-8/ || !$LANGs_non_utf8{lang2LANG($_)} } @l;
    }
    if ($options{exclude_non_installed_langs}) {
	@l = grep { -e "/usr/share/locale/" . lang2LANG($_) . "/LC_CTYPE" } @l;
    }
    @l;
}
sub lang2text     { exists $languages{$_[0]} && $languages{$_[0]}[0] }
sub lang2charset  { exists $languages{$_[0]} && $languages{$_[0]}[1] }
sub lang2LANG     { exists $languages{$_[0]} && $languages{$_[0]}[2] }
sub lang2LANGUAGE { exists $languages{$_[0]} && $languages{$_[0]}[3] }
sub getxim { $xim{$_[0]} }

sub lang2country {
    my ($lang, $prefix) = @_;

    my $dir = "$prefix/usr/share/locale/l10n";
    my @countries = grep { -d "$dir/$_" } all($dir);
    my %countries; @countries{@countries} = ();

    my $valid_country = sub {
	my ($country) = @_;
	#- fast & dirty solution to ensure bad entries do not happen
	exists $countries{$country} && $country;
    };

    my $country;
    if ($country ||= $lang2country{$lang}) {
	return $valid_country->($country) ? $country : 'C';
    }
    $country ||= $valid_country->(lc($1)) if $lang =~ /([A-Z]+)/;
    $country ||= $valid_country->(lc($1)) if lang2LANGUAGE($lang) =~ /([A-Z]+)/;
    $country ||= $valid_country->(substr($lang, 0, 2));
    $country ||= first(grep { $valid_country->($_) } map { substr($_, 0, 2) } split(':', lang2LANGUAGE($lang)));
    $country || 'C';
}


sub country2lang {
    my ($country, $default) = @_;

    my $uc_country = uc $country;
    my %country2lang = reverse %lang2country;
    
    my ($lang1, $lang2);
    $lang1 ||= $country2lang{$country};
    $lang1 ||= first(grep { /^$country/    } list());
    $lang1 ||= first(grep { /_$uc_country/ } list());
    $lang2 ||= first(grep { int grep { /^$country/    } split(':', lang2LANGUAGE($_)) } list());
    $lang2 ||= first(grep { int grep { /_$uc_country/ } split(':', lang2LANGUAGE($_)) } list());
    ($lang1 =~ /UTF-8/ && $lang2 !~ /UTF-8/ ? $lang2 || $lang1 : $lang1 || $lang2) || $default || 'en_US';
}

sub lang2kde_lang {
    my ($lang, $default) = @_;

    #- get it using 
    #- echo C $(rpm -qp --qf "%{name}\n" /RPMS/kde-i18n-*  | sed 's/kde-i18n-//')
    my @valid_kde_langs = qw(C af az bg ca cs da de el en_GB eo es et fi fr he hu is it ja ko lt lv mt nl no no_NY pl pt pt_BR ro ru sl sk sr sv ta th tr uk xh zh_CN.GB2312 zh_TW.Big5);
    my %valid_kde_langs; @valid_kde_langs{@valid_kde_langs} = ();

    my $valid_lang = sub {
	my ($lang) = @_;
	#- fast & dirty solution to ensure bad entries do not happen
	$lang eq 'en' ? 'C' :
	  exists $valid_kde_langs{$lang} ? $lang :
	  exists $valid_kde_langs{substr($lang, 0, 2)} ? substr($lang, 0, 2) : '';
    };

    my $r;
    $r ||= $valid_lang->(lang2LANG($lang));
    $r ||= first(grep { $valid_lang->($_) } split(':', lang2LANGUAGE($lang)));
    $r || $default || 'C';
}

sub kde_lang2lang {
    my ($klang, $default) = @_;
    first(grep { /^$klang/ } list()) || $default || 'en_US';
}

sub kde_lang_country2lang {
    my ($klang, $country, $default) = @_;
    my $uc_country = uc $country;
    # country is used to precise the lang
    my @choices = grep { /^$klang/ } list();
    my @sorted = 
      @choices == 2 && length $choices[0] !~ /[._]/ && $choices[1] =~ /UTF-8/ ? @choices :
      map { $_->[0] } sort { $b->[1] <=> $a->[1] } map { [ $_ => /_$uc_country/ ] } @choices;
    
    $sorted[0] || $default || 'en_US';
}

sub charset2kde_charset {
    my ($charset, $default) = @_;
    my $iocharset = ($charsets{$charset} || [])->[3];

    my @valid_kde_charsets = qw(big5-0 gb2312.1980-0 iso10646-1 iso8859-1 iso8859-4 iso8859-6 iso8859-8 iso8859-13 iso8859-14 iso8859-15 iso8859-2 iso8859-3 iso8859-5 iso8859-7 iso8859-9 koi8-r koi8-u ksc5601.1987-0 jisx0208.1983-0 microsoft-cp1251 tis620-0);
    my %valid_kde_charsets; @valid_kde_charsets{@valid_kde_charsets} = ();

    my $valid_charset = sub {
	my ($charset) = @_;
	#- fast & dirty solution to ensure bad entries do not happen
	exists $valid_kde_charsets{$charset} && $charset;
    };

    my $r;
    $r ||= $valid_charset->($charset2kde_charset{$charset});
    $r ||= $valid_charset->($charset2kde_charset{$iocharset});
    $r ||= $valid_charset->($iocharset);
    $r || $default || 'iso10646-1';
}

#- font+size for different charsets; the field [0] is the default,
#- others are overrridens for fixed(1), toolbar(2), menu(3) and taskbar(4)
my %charset2kde_font = (
  'C' => [ "adobe-helvetica,12", "courier,10", "adobe-helvetica,11" ],
  'iso-8859-1'  => [ "adobe-helvetica,12", "courier,10", "adobe-helvetica,11" ],
  'iso-8859-2'  => [ "adobe-helvetica,12", "courier,10", "adobe-helvetica,11" ],
  'iso-8859-9'  => [ "adobe-helvetica,12", "courier,10", "adobe-helvetica,11" ],
  'iso-8859-15' => [ "adobe-helvetica,12", "courier,10", "adobe-helvetica,11" ],
  'utf_1'       => [ "adobe-helvetica,12", "courier,10", "adobe-helvetica,11" ],
  'utf_2'       => [ "adobe-helvetica,12", "courier,10", "adobe-helvetica,11" ],
  'utf_15'      => [ "adobe-helvetica,12", "courier,10", "adobe-helvetica,11" ],
  'gb2312' => [ "default-ming,16" ],
  'jisx0208' => [ "misc-fixed,14", "wadalab-gothic,13" ],
  'ksc5601' => [ "daewoo-gothic,16" ],
  'Big5'   => [ "taipei-fixed,16" ],
  'utf_hy' => [ "clearlyu,17" ],
  'utf_ka' => [ "clearlyu,17" ],
  'utf_vi' => [ "misc-fixed,13", "misc-fixed,13", "misc-fixed,10", ],
  'default' => [ "misc-fixed,13", "misc-fixed,13", "misc-fixed,10", ],
);

sub charset2kde_font {
    my ($charset, $type) = @_;
    my $kdecharset = charset2kde_charset($charset);
    
    my $font = $charset2kde_font{$charset} || $charset2kde_font{default};
    my $r = $font->[$type] || $font->[0];

    #- the format is "font-name,size,5,kdecharset,0,0" I have no idea of the
    #- meaning of that "5"...
    "$r,5,$kdecharset,0,0";
}

sub set { 
    my ($lang, $translate_for_console) = @_;

    if ($lang && !exists $languages{$lang}) {
	#- try to find the best lang
	my ($lang2) = grep { /^\Q$lang/ } list(); #- $lang is not precise enough, choose the first complete
	my ($lang3) = grep { $lang =~ /^\Q$_/ } list(); #- $lang is too precise, choose the first substring matching
	log::l("lang::set: fixing $lang with ", $lang2 || $lang3);
	$lang = $lang2 || $lang3;
    }

    if ($lang && exists $languages{$lang}) {
	#- use "packdrake -x" that follow symlinks and expand directory.
	#- it is necessary as there is a lot of symlinks inside locale.cz2,
	#- using a compressed cpio archive is nighmare to extract all files.
	#- reset locale environment variable to avoid any warnings by perl,
	#- so installation of new locale is done with empty locale ...
	if (!-e "$ENV{SHARE_PATH}/locale/$lang" && common::usingRamdisk()) {
	    @ENV{qw(LANG LC_ALL LANGUAGE LINGUAS)} = ();

	    eval { rm_rf("$ENV{SHARE_PATH}/locale") };
	    eval {
		require packdrake;
		my $packer = new packdrake("$ENV{SHARE_PATH}/locale.cz2", quiet => 1);
		$packer->extract_archive("$ENV{SHARE_PATH}/locale", lang2LANG($lang));

		#- LC_COLLATE and LC_CTYPE are getFile'd (cuz they are big, causing the .cz2 to be *big*)
		my ($dir) = glob_("$ENV{SHARE_PATH}/locale/*");
		install_any::getAndSaveFile ("$dir/$_") foreach 'LC_COLLATE', 'LC_CTYPE';
	    };
	}

#- set all LC_* variables to a unique locale ("C"), and only redefine
#- LC_CTYPE (for X11 choosing the fontset) and LANGUAGE (for the po files)
	$ENV{LC_NUMERIC}		= "C";
	$ENV{LC_TIME}			= "C";
	$ENV{LC_COLLATE}		= "C";
	$ENV{LC_MONETARY}		= "C";
	$ENV{LC_PAPER}			= "C";
	$ENV{LC_NAME}			= "C";
	$ENV{LC_ADDRESS}		= "C";
	$ENV{LC_TELEPHONE}		= "C";
	$ENV{LC_MEASUREMENT}	= "C";
	$ENV{LC_IDENTIFICATION}	= "C";

#- use lang2LANG() to define LC_CTYPE, so DrakX will use a same encoding
#- for all variations of a same language, eg both 'ru_RU.KOI8-R' and
#- 'ru_RU.UTF-8' will be handled the same (as 'ru') by DrakX.
#- that way DrakX only needs a reduced set of locale and fonts support.
#- of course on the installed system they will be different.
	$ENV{LC_CTYPE}  = lang2LANG($lang);
	$ENV{LC_MESSAGES} = lang2LANG($lang);
	$ENV{LANG}      = lang2LANG($lang);

	if ($translate_for_console && $lang =~ /^(ko|ja|zh|th)/) {
	    log::l("not translating in console");
	    $ENV{LANGUAGE}  = 'C';
	} else {
	    $ENV{LANGUAGE}  = lang2LANGUAGE($lang);
	}
	load_mo();
    } else {
	# stick with the default (English) */
	delete $ENV{LANG};
	delete $ENV{LC_ALL};
	delete $ENV{LANGUAGE};
	delete $ENV{LINGUAS};
    }
    $lang;
}

sub langs {
    my ($l) = @_;
    grep { $l->{$_} } keys %$l;
}

sub langsLANGUAGE {
    my ($l) = @_;
    my @l = $l->{all} ? list() : langs($l);
    uniq(map { split ':', lang2LANGUAGE($_) } @l);
}

sub pack_langs { 
    my ($l) = @_; 
    my $s = $l->{all} ? 'all' : join ':', uniq(map { lang2LANGUAGE($_) } langs($l));
    $ENV{RPM_INSTALL_LANG} = $s;
    $s;
}

sub unpack_langs {
    my ($s) = @_;
    my @l = uniq(map { split ':', lang2LANGUAGE($_) } split(':', $s));
    my @l2 = intersection(\@l, [ keys %languages ]);
    +{ map { $_ => 1 } @l2 };
}

sub read {
    my ($prefix, $user_only) = @_;
    my ($f1, $f2) = ("$prefix$ENV{HOME}/.i18n", "$prefix/etc/sysconfig/i18n");
    my %h = getVarsFromSh($user_only && -e $f1 ? $f1 : $f2);
    my $lang = $h{LC_MESSAGES} || 'en_US';
    $lang = bestMatchSentence($lang, list()) if !exists $languages{$lang};
    my $langs = $user_only ? () :
      cat_("$prefix/etc/rpm/macros") =~ /%_install_langs (.*)/ ? unpack_langs($1) : { $lang => 1 };
    $lang, $langs;
}

sub write_langs {
    my ($prefix, $langs) = @_;
    my $s = pack_langs($langs);
    symlink "$prefix/etc/rpm", "/etc/rpm" if $prefix;
    substInFile { s/%_install_langs.*//; $_ .= "%_install_langs $s\n" if eof && $s } "$prefix/etc/rpm/macros";
}

sub write { 
    my ($prefix, $lang, $user_only, $dont_touch_kde_files) = @_;

    $lang or return;

    my $h = {};
    $h->{$_} = $lang foreach qw(LC_COLLATE LC_CTYPE LC_MESSAGES LC_NUMERIC LC_MONETARY LC_TIME);
    if ($lang && exists $languages{$lang}) {
## note: KDE is unable to use the keyboard if LC_* and LANG values differ...
#	add2hash $h, { LANG => lang2LANG($lang), LANGUAGE => lang2LANGUAGE($lang) };
	add2hash $h, { LANG => $lang, LANGUAGE => lang2LANGUAGE($lang) };

	my $c = $charsets{lang2charset($lang) || ''};
	if ($c && !$user_only) {
	    my $p = "$prefix/usr/lib/kbd";
	    if ($c->[0]) {
		eval {
		    cp_af("$p/consolefonts/$c->[0].psf.gz", "$prefix/etc/sysconfig/console/consolefonts");
		    add2hash $h, { SYSFONT => $c->[0] };
		};
		$@ and log::l("missing console font $c->[0]");
	    }
	    if ($c->[1]) {
		eval {
		    cp_af(glob_("$p/consoletrans/$c->[1]*"), "$prefix/etc/sysconfig/console/consoletrans");
		    add2hash $h, { UNIMAP => $c->[1] };
		};
		$@ and log::l("missing console unimap file $c->[1]");
	    }
	    if ($c->[2]) {
		eval {
		    cp_af(glob_("$p/consoletrans/$c->[2]*"), "$prefix/etc/sysconfig/console/consoletrans");
		    add2hash $h, { SYSFONTACM => $c->[2] };
		};
		$@ and log::l("missing console acm file $c->[2]");
	    }

	}
	add2hash $h, $xim{$lang};
    }
    setVarsInSh($prefix . ($user_only ? "$ENV{HOME}/.i18n" : '/etc/sysconfig/i18n'), $h);

    eval {
	my $charset = lang2charset($lang);
	my $confdir = $prefix . ($user_only ? "$ENV{HOME}/.kde" : '/usr') . '/share/config';
	my ($prev_kde_charset) = cat_("$confdir/kdeglobals") =~ /^Charset=(.*)/mi;

	mkdir_p($confdir);

	update_gnomekderc("$confdir/kdeglobals", Locale => (
			      Charset => charset2kde_charset($charset),
			      Country => lang2country($lang, $prefix),
			      Language => lang2kde_lang($lang),
			  ));

        if ($prev_kde_charset ne charset2kde_charset($charset)) {
	    update_gnomekderc("$confdir/kdeglobals", WM => (
	    		      activeFont => charset2kde_font($charset,0),
	    		  ));
	    update_gnomekderc("$confdir/kdeglobals", General => (
	    		      fixed => charset2kde_font($charset, 1),
	    		      font => charset2kde_font($charset, 0),
	    		      menuFont => charset2kde_font($charset, 3),
	    		      taskbarFont => charset2kde_font($charset, 4),
	    		      toolBarFont => charset2kde_font($charset, 2),
	    	          ));
	    update_gnomekderc("$confdir/konquerorrc", FMSettings => (
	    		      StandardFont => charset2kde_font($charset, 0),
	    		  ));
	    update_gnomekderc("$confdir/kdesktoprc", FMSettings => (
	    		      StandardFont => charset2kde_font($charset, 0),
	    		  ));
	}
    } if !$dont_touch_kde_files;
}

sub bindtextdomain() {
    my $localedir = "$ENV{SHARE_PATH}/locale";
    $localedir .= "_special" if $::isInstall;

    c::setlocale();
    c::bindtextdomain('libDrakX', $localedir);

    $localedir;
}

sub load_mo {
    my ($lang) = @_;

    my $localedir = bindtextdomain();
    my $suffix = 'LC_MESSAGES/libDrakX.mo';

    $lang ||= $ENV{LANGUAGE} || $ENV{LC_ALL} || $ENV{LC_MESSAGES} || $ENV{LANG};

    foreach (split ':', $lang) {
	my $f = "$localedir/$_/$suffix";
	-s $f and return $_;

	if ($::isInstall && common::usingRamdisk()) {
	    # cleanup
	    eval { rm_rf($localedir) };
	    eval { mkdir_p(dirname("$localedir/$_/$suffix")) };
	    install_any::getAndSaveFile ("$localedir/$_/$suffix");

	    -s $f and return $_;
	}
    }
    '';
}



sub console_font_files {
    map { -e $_ ? $_ : "$_.gz" }
      (map { "/usr/lib/kbd/consolefonts/$_.psf" } uniq grep {$_} map { $_->[0] } values %charsets),
      (map { -e $_ ? $_ : "$_.sfm" } map { "/usr/lib/kbd/consoletrans/$_" } uniq grep {$_} map { $_->[1] } values %charsets),
      (map { -e $_ ? $_ : "$_.acm" } map { "/usr/lib/kbd/consoletrans/$_" } uniq grep {$_} map { $_->[2] } values %charsets),
}

sub load_console_font {
    my ($lang) = @_;
    my ($f, $u, $m) = @{$charsets{lang2charset($lang)} || []};

    require run_program;
    run_program::run(if_($ENV{LD_LOADER}, $ENV{LD_LOADER}), 
		     'consolechars', '-v', '-f', $f || 'lat0-sun16',
		     if_($u, '-u', $u), if_($m, '-m', $m));
}

#-sub load_font {
#-    my ($charset) = @_;
#-    my $fontFile = "lat0-sun16";
#-
#-    if (my $c = $charsets{$charset}) {
#-	   log::l("loading $charset font");
#-	   $fontFile = $c->[0];
#-    }
#-
#-    # text mode font
#-    log::l("loading font $ENV{SHARE_PATH}/consolefonts/$fontFile");
#-    #c::loadFont("/tmp/$fontFile") or log::l("error in loadFont: one of PIO_FONT PIO_UNIMAPCLR PIO_UNIMAP PIO_UNISCRNMAP failed: $!");
#-    #print STDERR "\033(K";
#-
#-}

sub get_x_fontset {
    my ($lang, $size) = @_;

    my $charset = lang2charset($lang) or return;
    my $c = $charsets{$charset} or return;
    if (my $f = $bigfonts{$charset}) {
	my $dir = "/usr/X11R6/lib/X11/fonts";
	if (! -e "$dir/$f" && $::isInstall && common::usingRamdisk()) {
	    unlink "$dir/$_" foreach values %bigfonts;
	    install_any::remove_bigseldom_used ();
	    install_any::getAndSaveFile ("$dir/$f");
	}
    }
    my ($big, $small) = @$c[5..6];
    ($big, $small) = $big->($size) if ref $big;
    ($big, $small);
}

sub fs_options {
    my ($lang) = @_;
    my $charset = lang2charset($lang) or return;
    my $c = $charsets{$charset} or return;
    my ($iocharset, $codepage) = @$c[3..4];
    $iocharset, $codepage;
}

sub charset {
    my ($lang, $prefix) = @_;
    my $l = lang2LANG($lang);
    foreach (cat_("$prefix/usr/X11R6/lib/X11/locale/locale.alias")) {
	/$l:\s+.*\.(\S+)/ and return $1;
    }
    $l =~ /.*\.(\S+)/ and return $1;
}


sub check {
    $^W = 0;
    my $ok = 1;
    my $warn = sub {
	print STDERR "$_[0]\n";
    };
    my $err = sub {
	&$warn;
	$ok = 0;
    };
    
    my @wanted_charsets = uniq map { lang2charset($_) } list();
    $err->("invalid charset $_ ($_ does not exist in \%charsets)") foreach difference2(\@wanted_charsets, [ keys %charsets ]);
    $err->("invalid charset $_ in \%charset2kde_font ($_ does not exist in \%charsets)") foreach difference2([ keys %charset2kde_font ], [ 'default', keys %charsets ]);
    $warn->("unused charset $_ (given in \%charsets, but not used in \%languages)") foreach difference2([ keys %charsets ], \@wanted_charsets);

    $warn->("unused entry $_ in \%xim") foreach difference2([ keys %xim ], [ list() ]);

    # consolefonts are checked during build via console_font_files()

    if (my @l = difference2([ 'default', keys %charsets ], [ keys %charset2kde_font ])) {
	$warn->("no kde font for charset " . join(" ", @l));
    }

    if (my @l = grep { lang2country($_) eq 'C' } list()) {
	$warn->("no country for langs " . join(" ", @l));
    }
    if (my @l = grep { lang2kde_lang($_, 'err') eq 'err' } list()) {
	$warn->("no KDE lang for langs " . join(" ", @l));
    }
    if (my @l = grep { charset2kde_charset($_, 'err') eq 'err' } keys %charsets) {
	$warn->("no KDE charset for charsets " . join(" ", @l));
    }
    exit($ok ? 0 : 1);
}

#-######################################################################################
#- Wonderful perl :(
#-######################################################################################
1;
">\n" "\n" "\n" "The '<span weight=\"bold\">Security Administrator</span>' is the one who " "will receive security alerts if the\n" "'<span weight=\"bold\">Security Alerts</span>' option is set. It can be a " "username or an email.\n" "\n" "\n" "The '<span weight=\"bold\">Security Level</span>' menu allows you to select " "one of the six preconfigured security levels\n" "provided with msec. These levels range from '<span weight=\"bold\">poor</" "span>' security and ease of use, to\n" "'<span weight=\"bold\">paranoid</span>' config, suitable for very sensitive " "server applications:\n" "\n" "\n" "<span foreground=\"royalblue3\">Poor</span>: This is a totally unsafe but " "very\n" "easy to use security level. It should only be used for machines not " "connected to\n" "any network and that are not accessible to everybody.\n" "\n" "\n" "<span foreground=\"royalblue3\">Standard</span>: This is the standard " "security\n" "recommended for a computer that will be used to connect to the Internet as " "a\n" "client.\n" "\n" "\n" "<span foreground=\"royalblue3\">High</span>: There are already some\n" "restrictions, and more automatic checks are run every night.\n" "\n" "\n" "<span foreground=\"royalblue3\">Higher</span>: The security is now high " "enough\n" "to use the system as a server which can accept connections from many " "clients. If\n" "your machine is only a client on the Internet, you should choose a lower " "level.\n" "\n" "\n" "<span foreground=\"royalblue3\">Paranoid</span>: This is similar to the " "previous\n" "level, but the system is entirely closed and security features are at their\n" "maximum" msgstr "" "Aqui pode configurar o nivel de seguridade e o administrador da súa " "máquina.\n" "\n" "\n" "O '<span weight=\"bold\">Administrador de Seguridade</span>' é o que " "recibirá as alertas de\n" "seguridade se está configurada a opción '<span weight=\"bold\">Alertas de " "Seguridade</span>'.\n" "Pode ser un nome de usuario ou un enderezo de correo-e.\n" "\n" "\n" "O menú '<span weight=\"bold\">Nivel de Seguridade</span>' permítelle " "seleccionar un dos seis niveis de seguridade\n" "preconfigurados proporcionados con msec. Estes niveis van dende a seguridade " "'<span weight=\"bold\">pobre</span>'\n" "e a facilidade de uso, ata a configuración '<span weight=\"bold\">paranoica</" "span>', axeitada para\n" "aplicacións de servidor moi sensibles:\n" "\n" "\n" "<span foreground=\"royalblue3\">Pobre</span>: Este é un nivel de seguridade\n" "sen ningunha seguridade pero fácil de usar. Só se debe usar en máquinas non\n" "conectadas a ningunha rede e ás que non poidan acceder todos.\n" "\n" "\n" "<span foreground=\"royalblue3\">Estándar</span>: Este é o nivel de " "seguridade\n" "estándar recomendado para un ordenador que se vai usar para conectar á " "Internet\n" "coma cliente.\n" "\n" "\n" "<span foreground=\"royalblue3\">Alto</span>: Xa hai algunhas restriccións,\n" "e e execútanse máis comprobacións automáticas tódalas noites.\n" "\n" "\n" "<span foreground=\"royalblue3\">Moi Alto</span>: A seguridade é agora alta\n" "dabondo para usar o sistema coma un servidor que poida aceptar conexións de\n" "varios clientes. Se a súa máquina só un cliente da Internet, debería " "escoller un\n" "nivel inferior.\n" "\n" "\n" "<span foreground=\"royalblue3\">Paranoico</span>: Este é semellante ó nivel " "anterior,\n" "pero o sistema está totalmente pechado e as funcionalidades de seguridade " "están ó máximo" #: draksec:147 harddrake2:213 #, c-format msgid "" "Description of the fields:\n" "\n" msgstr "" "Descrición dos campos:\n" "\n" #: draksec:161 #, c-format msgid "(default value: %s)" msgstr "(valor por defecto: %s)" #: draksec:166 #, fuzzy, c-format msgid "Security Level and Checks" msgstr "Nivel de Seguridade:" #: draksec:203 #, c-format msgid "Security Level:" msgstr "Nivel de Seguridade:" #: draksec:206 #, c-format msgid "Security Alerts:" msgstr "Alertas de Seguridade:" #: draksec:210 #, c-format msgid "Security Administrator:" msgstr "Administrador de Seguridade:" #: draksec:212 #, c-format msgid "Basic options" msgstr "Opcións básicas" #: draksec:226 #, c-format msgid "Network Options" msgstr "Opcións de Rede" #: draksec:226 #, c-format msgid "System Options" msgstr "Opcións do Sistema" #: draksec:261 #, c-format msgid "Periodic Checks" msgstr "Comprobacións Periódicas" #: draksec:282 #, c-format msgid "No password" msgstr "Sen contrasinal" #: draksec:283 #, c-format msgid "Root password" msgstr "" #: draksec:284 #, c-format msgid "User password" msgstr "" #: draksec:314 draksec:363 #, c-format msgid "Software Management" msgstr "Xestión do Software" #: draksec:315 #, fuzzy, c-format msgid "Mandriva Update" msgstr "Mandriva Online" #: draksec:316 #, c-format msgid "Software Media Manager" msgstr "Xestor de Soportes de Software" #: draksec:317 #, c-format msgid "Configure 3D Desktop effects" msgstr "Configurar os efectos 3D do Escritorio" #: draksec:318 #, fuzzy, c-format msgid "Graphical Server Configuration" msgstr "Configuración de alertas de correo" #: draksec:319 #, fuzzy, c-format msgid "Mouse Configuration" msgstr "Configuración manual" #: draksec:320 #, fuzzy, c-format msgid "Keyboard Configuration" msgstr "Configuración do Hardware" #: draksec:321 #, fuzzy, c-format msgid "UPS Configuration" msgstr "Configuración do driver SAI" #: draksec:322 #, fuzzy, c-format msgid "Network Configuration" msgstr "Configuración de alertas" #: draksec:323 #, c-format msgid "Hosts definitions" msgstr "Definicións de máquinas" #: draksec:324 #, fuzzy, c-format msgid "Network Center" msgstr "Rede e Internet" #: draksec:325 #, c-format msgid "VPN" msgstr "" #: draksec:326 #, c-format msgid "Proxy Configuration" msgstr "Configuración do Proxy" #: draksec:327 #, fuzzy, c-format msgid "Connection Sharing" msgstr "Conexión" #: draksec:329 #, c-format msgid "Backups" msgstr "Copias de seguridade" #: draksec:331 logdrake:52 #, c-format msgid "Logs" msgstr "Logs" #: draksec:332 #, c-format msgid "Services" msgstr "Servizos" #: draksec:333 #, fuzzy, c-format msgid "Users" msgstr "Usuario" #: draksec:335 #, fuzzy, c-format msgid "Boot Configuratoin" msgstr "Configuración de alertas" #: draksec:364 #, c-format msgid "Hardware" msgstr "Hardware" #: draksec:365 #, fuzzy, c-format msgid "Network" msgstr "Opcións de Rede" #: draksec:366 #, c-format msgid "System" msgstr "Sistema" #: draksec:367 #, c-format msgid "Boot" msgstr "Arrinque" #: draksec:391 #, c-format msgid "Please wait, setting security level..." msgstr "Agarde, establecendo o nivel de seguridade..." #: draksec:397 #, c-format msgid "Please wait, setting security options..." msgstr "Agarde, establecendo as opcións de seguridade..." #: draksound:48 #, c-format msgid "No Sound Card detected!" msgstr "¡Non se detectou ningunha Tarxeta de Son!" #. -PO: keep the double empty lines between sections, this is formatted a la LaTeX #: draksound:51 #, c-format msgid "" "No Sound Card has been detected on your machine. Please verify that a Linux-" "supported Sound Card is correctly plugged in.\n" "\n" "\n" "You can visit our hardware database at:\n" "\n" "\n" "http://www.mandrivalinux.com/en/hardware.php3" msgstr "" "Non se detectou ningunha Tarxeta de Son na máquina. Verifique que hai " "unhaTarxeta de Son soportada por Linux conectada correctamente.\n" "\n" "\n" "Pode visita-la nosa base de datos de hardware en:\n" "\n" "\n" "http://www.mandrivalinux.com/en/hardware.php3" #: draksound:58 #, c-format msgid "" "\n" "\n" "\n" "Note: if you've an ISA PnP sound card, you'll have to use the alsaconf or " "the sndconfig program. Just type \"alsaconf\" or \"sndconfig\" in a console." msgstr "" "\n" "\n" "\n" "Nota: se ten unha tarxeta de son ISA PnP, terá que usar os programas " "alsaconf ou sndconfig. Simplemente escriba \"alsaconf\" ou \"sndconfig\" " "nunha consola." #: draksplash:32 #, c-format msgid "X coordinate of text box" msgstr "Coordenada x da caixa de texto" #: draksplash:33 #, c-format msgid "Y coordinate of text box" msgstr "Coordenada y da caixa de texto" #: draksplash:34 #, c-format msgid "Text box width" msgstr "Ancho da caixa de texto" #: draksplash:35 #, c-format msgid "Text box height" msgstr "Altura da caixa de texto" #: draksplash:36 #, c-format msgid "" "The progress bar X coordinate\n" "of its upper left corner" msgstr "" "A coordenada x da esquina\n" "superior esquerda da barra\n" "de progreso" #: draksplash:37 #, c-format msgid "" "The progress bar Y coordinate\n" "of its upper left corner" msgstr "" "A coordenada y da esquina\n" "superior esquerda da barra\n" "de progreso" #: draksplash:38 #, c-format msgid "The width of the progress bar" msgstr "O ancho da barra de progreso" #: draksplash:39 #, c-format msgid "The height of the progress bar" msgstr "A altura da barra de progreso" #: draksplash:40 #, c-format msgid "X coordinate of the text" msgstr "Coordenada x do texto" #: draksplash:41 #, c-format msgid "Y coordinate of the text" msgstr "Coordenada y do texto" #: draksplash:42 #, c-format msgid "Text box transparency" msgstr "Transparencia da caixa de texto" #: draksplash:43 #, c-format msgid "Progress box transparency" msgstr "Transparencia da barra de progreso" #: draksplash:44 #, c-format msgid "Text size" msgstr "Tamaño do texto" #: draksplash:61 #, c-format msgid "Choose progress bar color 1" msgstr "Escolla a cor 1 da barra de progreso" #: draksplash:62 #, c-format msgid "Choose progress bar color 2" msgstr "Escolla a cor 2 da barra de progreso" #: draksplash:63 #, c-format msgid "Choose progress bar background" msgstr "Elixa o fondo da barra de progreso" #: draksplash:64 #, c-format msgid "Gradient type" msgstr "Tipo de gradiente" #: draksplash:65 #, c-format msgid "Choose text color" msgstr "Elixa a cor do texto" #: draksplash:67 draksplash:74 #, c-format msgid "Choose picture" msgstr "Elixa a imaxe" #: draksplash:68 #, c-format msgid "Silent bootsplash" msgstr "bootsplash silencioso" #: draksplash:71 #, c-format msgid "Choose text zone color" msgstr "Escolla a cor da zona de texto" #: draksplash:72 #, c-format msgid "Text color" msgstr "Cor do texto" #: draksplash:73 #, c-format msgid "Background color" msgstr "Cor do fondo" #: draksplash:75 #, c-format msgid "Verbose bootsplash" msgstr "bootsplash detallado" #: draksplash:81 #, c-format msgid "Theme name" msgstr "Nome do tema" #: draksplash:84 #, c-format msgid "Final resolution" msgstr "Resolución final" #: draksplash:87 #, c-format msgid "Display logo on Console" msgstr "Amosa-lo logo na Consola" #: draksplash:92 #, c-format msgid "Save theme" msgstr "Garda-lo tema" #: draksplash:154 #, c-format msgid "Please enter a theme name" msgstr "Introduza un nome de tema" #: draksplash:157 #, fuzzy, c-format msgid "Please select a splash image" msgstr "Seleccione o modelo do seu SAI." #: draksplash:160 #, c-format msgid "saving Bootsplash theme..." msgstr "gardando o tema de Bootsplash..." #: draksplash:169 #, c-format msgid "Unable to load image file %s" msgstr "Non foi posible cargar o ficheiro de imaxes %s" #: draksplash:180 #, c-format msgid "choose image" msgstr "Escolle-la imaxe" #: draksplash:195 #, c-format msgid "Color selection" msgstr "Selección de cores" #: drakups:71 #, c-format msgid "Connected through a serial port or an usb cable" msgstr "Conectado a través dun porto serie ou un cable usb" #: drakups:72 #, c-format msgid "Manual configuration" msgstr "Configuración manual" #: drakups:78 #, c-format msgid "Add an UPS device" msgstr "Engadir un dispositivo SAI" #: drakups:81 #, c-format msgid "" "Welcome to the UPS configuration utility.\n" "\n" "Here, you'll add a new UPS to your system.\n" msgstr "" "Benvid@ á utilidade de configuración de SAI.\n" "\n" "Aqui poderá engadir un novo SAI ó seu sistema.\n" #: drakups:88 #, c-format msgid "" "We're going to add an UPS device.\n" "\n" "Do you want to autodetect UPS devices connected to this machine or to " "manually select them?" msgstr "" "Imos engadir un dispositivo SAI.\n" "\n" "Prefire detectar automáticamente os dispositivos SAI conectados a esta " "máquina ou desexa seleccionalos a man?" #: drakups:91 #, c-format msgid "Autodetection" msgstr "Detección automática" #: drakups:99 harddrake2:369 #, c-format msgid "Detection in progress" msgstr "Detectando" #: drakups:118 drakups:157 logdrake:457 logdrake:463 #, c-format msgid "Congratulations" msgstr "Noraboa" #: drakups:119 #, c-format msgid "The wizard successfully added the following UPS devices:" msgstr "O asistente engadiu con éxito os seguintes dispositivos SAI:" #: drakups:121 #, c-format msgid "No new UPS devices was found" msgstr "Non se atoparon novos dispositivos SAI" #: drakups:126 drakups:138 #, c-format msgid "UPS driver configuration" msgstr "Configuración do driver SAI" #: drakups:126 #, c-format msgid "Please select your UPS model." msgstr "Seleccione o modelo do seu SAI." #: drakups:127 #, c-format msgid "Manufacturer / Model:" msgstr "Fabricante / Modelo:" #: drakups:138 #, c-format msgid "" "We are configuring the \"%s\" UPS from \"%s\".\n" "Please fill in its name, its driver and its port." msgstr "" "Estamos configurando o SAI \"%s\" dende \"%s\".\n" "Introduza o seu nome, o seu controlador e o seu porto." #: drakups:143 #, c-format msgid "Name:" msgstr "Nome:" #: drakups:143 #, c-format msgid "The name of your ups" msgstr "O nome do seu SAI" #: drakups:144 #, c-format msgid "Driver:" msgstr "Driver:" #: drakups:144 #, c-format msgid "The driver that manages your ups" msgstr "O driver que xestiona o seu SAI" #: drakups:145 #, c-format msgid "Port:" msgstr "Porto:" #: drakups:147 #, c-format msgid "The port on which is connected your ups" msgstr "O porto ó que está conectado o seu SAI" #: drakups:157 #, c-format msgid "The wizard successfully configured the new \"%s\" UPS device." msgstr "O asistente configurou con éxito o novo dispositivo SAI \"%s\"." #: drakups:248 #, c-format msgid "UPS devices" msgstr "Dispositivos SAI" #: drakups:249 drakups:268 drakups:284 harddrake2:87 harddrake2:113 #: harddrake2:120 #, c-format msgid "Name" msgstr "Nome" #: drakups:249 harddrake2:135 #, c-format msgid "Driver" msgstr "Controlador" #: drakups:249 harddrake2:53 #, c-format msgid "Port" msgstr "Porto" #: drakups:267 #, c-format msgid "UPS users" msgstr "Usuarios SAI" #: drakups:283 #, c-format msgid "Access Control Lists" msgstr "Listas de Control de Acceso" #: drakups:284 #, c-format msgid "IP address" msgstr "Enderezo IP" #: drakups:284 #, c-format msgid "IP mask" msgstr "Máscara IP" #: drakups:296 #, c-format msgid "Rules" msgstr "Regras" #: drakups:297 #, c-format msgid "Action" msgstr "Acción" #: drakups:297 harddrake2:84 #, c-format msgid "Level" msgstr "Nivel" #: drakups:297 #, c-format msgid "ACL name" msgstr "Nome da ACL" #: drakups:297 finish-install:116 #, c-format msgid "Password" msgstr "Contrasinal" #: drakups:329 #, c-format msgid "UPS Management" msgstr "Xestión de SAIs" #: drakups:333 drakups:342 #, c-format msgid "DrakUPS" msgstr "DrakUPS" #: drakups:339 #, c-format msgid "Welcome to the UPS configuration tools" msgstr "Benvid@ ás ferramentas de configuración de SAI" #: drakxtv:67 #, c-format msgid "No TV Card detected!" msgstr "¡Non se detectou ningunha Tarxeta de TV!" #. -PO: keep the double empty lines between sections, this is formatted a la LaTeX #: drakxtv:69 #, c-format msgid "" "No TV Card has been detected on your machine. Please verify that a Linux-" "supported Video/TV Card is correctly plugged in.\n" "\n" "\n" "You can visit our hardware database at:\n" "\n" "\n" "http://www.mandrivalinux.com/en/hardware.php3" msgstr "" "Non se detectou ningunha Tarxeta de TV na súa máquina. Verifique que hai " "unha Tarxeta de Video/TV soportada por Linux conectada correctamente.\n" "\n" "\n" "Pode visita-la nosa base de datos de hardware en:\n" "\n" "\n" "http://www.mandrivalinux.com/en/hardware.php3" #: finish-install:43 #, c-format msgid "Keyboard" msgstr "Teclado" #: finish-install:44 #, c-format msgid "Please, choose your keyboard layout." msgstr "Escolla a disposición do seu teclado." #: finish-install:114 finish-install:132 finish-install:144 #, c-format msgid "Encrypted home partition" msgstr "" #: finish-install:114 #, c-format msgid "Please enter a password for the %s user" msgstr "" #: finish-install:117 #, c-format msgid "Password (again)" msgstr "Contrasinal (de novo)" #: finish-install:132 #, c-format msgid "Creating encrypted home partition" msgstr "" #: finish-install:144 #, c-format msgid "Formatting encrypted home partition" msgstr "" #: harddrake2:27 #, c-format msgid "Alternative drivers" msgstr "Controladores alternativos" #: harddrake2:28 #, c-format msgid "the list of alternative drivers for this sound card" msgstr "a lista de controladores altenativos para esta tarxeta de son" #: harddrake2:30 harddrake2:122 #, c-format msgid "Bus" msgstr "Bus" #: harddrake2:31 #, c-format msgid "" "this is the physical bus on which the device is plugged (eg: PCI, USB, ...)" msgstr "" "isto é o bus físico onde está conectado o dispositivo (p.ex.: PCI, USB, ...)" #: harddrake2:33 harddrake2:148 #, c-format msgid "Bus identification" msgstr "Identificación do bus" #: harddrake2:34 #, c-format msgid "" "- PCI and USB devices: this lists the vendor, device, subvendor and " "subdevice PCI/USB ids" msgstr "" #: harddrake2:36 #, c-format msgid "Location on the bus" msgstr "Localización no bus" #: harddrake2:37 #, c-format msgid "" "- pci devices: this gives the PCI slot, device and function of this card\n" "- eide devices: the device is either a slave or a master device\n" "- scsi devices: the scsi bus and the scsi device ids" msgstr "" "- dispositivos pci: isto da a rañura PCI, o dispositivo e a función desta " "tarxeta\n" "- dispositivos eide: o dispositivo é un dispositivo mestre ou escravo\n" "- dispositivos scsi: os ids do bus scsi e o dispositivo scsi" #: harddrake2:40 #, c-format msgid "Drive capacity" msgstr "Capacidade da unidade" #: harddrake2:40 #, c-format msgid "special capacities of the driver (burning ability and or DVD support)" msgstr "" "capacidades especiais do driver (capacidade de gravación e ou soporte de DVD)" #: harddrake2:41 #, c-format msgid "Description" msgstr "Descrición" #: harddrake2:41 #, c-format msgid "this field describes the device" msgstr "este campo describe o dispositivo" #: harddrake2:42 #, c-format msgid "Old device file" msgstr "Ficheiro de dispositivo antigo" #: harddrake2:43 #, c-format msgid "old static device name used in dev package" msgstr "antigo nome de dispositivo estático usado no paquete dev" #. -PO: here "module" is the "jargon term" for a kernel driver #: harddrake2:46 #, c-format msgid "Module" msgstr "Módulo" #: harddrake2:46 #, c-format msgid "the module of the GNU/Linux kernel that handles the device" msgstr "o módulo do kernel GNU/Linux que xestiona o dispositivo" #: harddrake2:47 #, c-format msgid "Extended partitions" msgstr "Particións extendidas" #: harddrake2:47 #, c-format msgid "the number of extended partitions" msgstr "o número de particións extendidas" #: harddrake2:48 #, c-format msgid "Geometry" msgstr "Xeometría" #: harddrake2:48 #, c-format msgid "Cylinder/head/sectors geometry of the disk" msgstr "Xeometría Cilindros/Cabezas/Sectores do disco" #: harddrake2:49 #, c-format msgid "Disk controller" msgstr "Controlador de disco" #: harddrake2:49 #, c-format msgid "the disk controller on the host side" msgstr "" #: harddrake2:50 #, fuzzy, c-format msgid "Identifier" msgstr "Identificador de disco" #: harddrake2:50 #, fuzzy, c-format msgid "usually the device serial number" msgstr "normalmente o número de serie do disco" #: harddrake2:51 #, c-format msgid "Media class" msgstr "Clase de soporte" #: harddrake2:51 #, c-format msgid "class of hardware device" msgstr "clase de dispositivo hardware" #: harddrake2:52 harddrake2:85 #, c-format msgid "Model" msgstr "Modelo" #: harddrake2:52 #, c-format msgid "hard disk model" msgstr "Modelo do disco duro" #: harddrake2:53 #, c-format msgid "network printer port" msgstr "porto da impresora de rede" #: harddrake2:54 #, c-format msgid "Primary partitions" msgstr "Particións primarias" #: harddrake2:54 #, c-format msgid "the number of the primary partitions" msgstr "o número de particións primarias" #: harddrake2:55 harddrake2:90 #, c-format msgid "Vendor" msgstr "Vendedor" #: harddrake2:55 #, c-format msgid "the vendor name of the device" msgstr "o nome do vendedor do dispositivo" #: harddrake2:56 #, c-format msgid "PCI domain" msgstr "" #: harddrake2:56 #, fuzzy, c-format msgid "the PCI domain of the device" msgstr "o nome do vendedor do dispositivo" #: harddrake2:57 #, c-format msgid "Bus PCI #" msgstr "Bus PCI #" #: harddrake2:57 #, c-format msgid "the PCI bus on which the device is plugged" msgstr "o bus PCI onde está conectado o dispositivo" #: harddrake2:58 #, c-format msgid "PCI device #" msgstr "Dispositivo PCI #" #: harddrake2:58 #, c-format msgid "PCI device number" msgstr "Dispositivo PCI número" #: harddrake2:59 #, c-format msgid "PCI function #" msgstr "Función PCI #" #: harddrake2:59 #, c-format msgid "PCI function number" msgstr "Función PCI número" #: harddrake2:60 #, c-format msgid "Vendor ID" msgstr "ID do vendedor" #: harddrake2:60 #, c-format msgid "this is the standard numerical identifier of the vendor" msgstr "isto é o identificador numérico estándar do vendedor" #: harddrake2:61 #, c-format msgid "Device ID" msgstr "ID do dispositivo " #: harddrake2:61 #, c-format msgid "this is the numerical identifier of the device" msgstr "isto é identificador numérico do dispositivo" #: harddrake2:62 #, c-format msgid "Sub vendor ID" msgstr "ID de subvendedor" #: harddrake2:62 #, c-format msgid "this is the minor numerical identifier of the vendor" msgstr "" #: harddrake2:63 #, fuzzy, c-format msgid "Sub device ID" msgstr "Dispositivos UPS" #: harddrake2:63 #, c-format msgid "this is the minor numerical identifier of the device" msgstr "este é o identificador numérico menor do dispositivo" #: harddrake2:64 #, c-format msgid "Device USB ID" msgstr "ID do dispositivo USB " #: harddrake2:64 #, c-format msgid ".." msgstr ".." #: harddrake2:68 #, c-format msgid "Bogomips" msgstr "Bogomips" #: harddrake2:68 #, fuzzy, c-format msgid "" "the GNU/Linux kernel needs to run a calculation loop at boot time to " "initialize a timer counter. Its result is stored as bogomips as a way to " "\"benchmark\" the cpu." msgstr "" "o kernel Linux precisa executar un bucle de cálculo ó iniciar o sistema para " "inicializar un contador. O seu resultado almacénase coma bogomips dunha " "forma para \"benchmark\" a cpu." #: harddrake2:69 #, c-format msgid "Cache size" msgstr "Tamaño da caché" #: harddrake2:69 #, c-format msgid "size of the (second level) cpu cache" msgstr "tamaño da caché segundo nivel da cpu (L2)" #. -PO: here "comas" is the medical coma, not the lexical coma!! #: harddrake2:72 #, c-format msgid "Coma bug" msgstr "Erro da coma" #: harddrake2:72 #, c-format msgid "whether this cpu has the Cyrix 6x86 Coma bug" msgstr "se esta cpu ten o erro da Coma de Cyrix 6x86" #: harddrake2:73 #, c-format msgid "Cpuid family" msgstr "" #: harddrake2:73 #, c-format msgid "family of the cpu (eg: 6 for i686 class)" msgstr "familia da cpu (p.ex.: 6 para a clase i686)" #: harddrake2:74 #, c-format msgid "Cpuid level" msgstr "Nivel de cpuid" #: harddrake2:74 #, c-format msgid "information level that can be obtained through the cpuid instruction" msgstr "nivel de información que se pode obter a través da instrucción cpuid" #: harddrake2:75 #, c-format msgid "Frequency (MHz)" msgstr "Frecuencia (MHz)" #: harddrake2:75 #, c-format msgid "" "the CPU frequency in MHz (Megahertz which in first approximation may be " "coarsely assimilated to number of instructions the cpu is able to execute " "per second)" msgstr "" "a frecuencia da CPU en MHz (Megahertzio é máis ou menos o número de " "instruccións que pode executa-la cpu por segundo)" #: harddrake2:76 #, c-format msgid "Flags" msgstr "Opcións" #: harddrake2:76 #, c-format msgid "CPU flags reported by the kernel" msgstr "" #: harddrake2:77 #, c-format msgid "Fdiv bug" msgstr "Erro fdiv" #: harddrake2:78 #, c-format msgid "" "Early Intel Pentium chips manufactured have a bug in their floating point " "processor which did not achieve the required precision when performing a " "Floating point DIVision (FDIV)" msgstr "" "Os primeiros chips Pentium de Intel que se fabricaron teñen un erro no seu " "procesador de coma flotante que non lles permite acadar a precisión " "necesaria ó realizar divisións de coma flotante (FDIV)" #: harddrake2:79 #, c-format msgid "Is FPU present" msgstr "Ten FPU" #: harddrake2:79 #, c-format msgid "yes means the processor has an arithmetic coprocessor" msgstr "si significa que o procesador ten un coprocesador aritmético" #: harddrake2:80 #, c-format msgid "Whether the FPU has an irq vector" msgstr "" #: harddrake2:80 #, c-format msgid "yes means the arithmetic coprocessor has an exception vector attached" msgstr "" #: harddrake2:81 #, c-format msgid "F00f bug" msgstr "Erro f00f" #: harddrake2:81 #, c-format msgid "early pentiums were buggy and freezed when decoding the F00F bytecode" msgstr "" #: harddrake2:82 #, c-format msgid "Halt bug" msgstr "Erro de apagado" #: harddrake2:83 #, c-format msgid "" "Some of the early i486DX-100 chips cannot reliably return to operating mode " "after the \"halt\" instruction is used" msgstr "" "Algúns dos primeiros chips i486DX-100 non poden volver ó modo operativo con " "seguridade despois de usar a instrucción \"halt\"" #: harddrake2:84 #, c-format msgid "sub generation of the cpu" msgstr "subxeración da cpu" #: harddrake2:85 #, c-format msgid "generation of the cpu (eg: 8 for Pentium III, ...)" msgstr "xeración da cpu (p.ex: 8 para Pentium III, ...)" #: harddrake2:86 #, c-format msgid "Model name" msgstr "Nome do modelo" #: harddrake2:86 #, c-format msgid "official vendor name of the cpu" msgstr "nome do vendedor oficial da cpu" #: harddrake2:87 #, c-format msgid "the name of the CPU" msgstr "o nome da CPU" #: harddrake2:88 #, c-format msgid "Processor ID" msgstr "ID do procesador" #: harddrake2:88 #, c-format msgid "the number of the processor" msgstr "o número do procesador" #: harddrake2:89 #, fuzzy, c-format msgid "Model stepping" msgstr "Formatando" #: harddrake2:89 #, c-format msgid "stepping of the cpu (sub model (generation) number)" msgstr "" #: harddrake2:90 #, c-format msgid "the vendor name of the processor" msgstr "o nome do vendedor do procesador" #: harddrake2:91 #, c-format msgid "Write protection" msgstr "Protección contra a escritura" #: harddrake2:91 #, c-format msgid "" "the WP flag in the CR0 register of the cpu enforce write protection at the " "memory page level, thus enabling the processor to prevent unchecked kernel " "accesses to user memory (aka this is a bug guard)" msgstr "" #: harddrake2:95 #, c-format msgid "Floppy format" msgstr "Formatao dos disquetes" #: harddrake2:95 #, c-format msgid "format of floppies supported by the drive" msgstr "formatos dos disquetes soportados pola unidade" #: harddrake2:99 #, c-format msgid "Channel" msgstr "Canle" #: harddrake2:99 #, c-format msgid "EIDE/SCSI channel" msgstr "Canle EIDE/SCSI" #: harddrake2:100 #, c-format msgid "Disk identifier" msgstr "Identificador de disco" #: harddrake2:100 #, c-format msgid "usually the disk serial number" msgstr "normalmente o número de serie do disco" #: harddrake2:101 #, c-format msgid "Logical unit number" msgstr "Número de unidade lóxica" #: harddrake2:101 #, c-format msgid "" "the SCSI target number (LUN). SCSI devices connected to a host are uniquely " "identified by a\n" "channel number, a target id and a logical unit number" msgstr "" #. -PO: here, "size" is the size of the ram chip (eg: 128Mo, 256Mo, ...) #: harddrake2:108 #, c-format msgid "Installed size" msgstr "Tamaño instalado" #: harddrake2:108 #, c-format msgid "Installed size of the memory bank" msgstr "Tamaño instalado do banco de memoria" #: harddrake2:109 #, c-format msgid "Enabled Size" msgstr "Tamaño Dispoñible" #: harddrake2:109 #, c-format msgid "Enabled size of the memory bank" msgstr "Tamaño dispoñible no banco de memoria" #: harddrake2:110 harddrake2:119 #, c-format msgid "Type" msgstr "Tipo" #: harddrake2:110 #, c-format msgid "type of the memory device" msgstr "tipo do dispositivo de memoria" #: harddrake2:111 #, c-format msgid "Speed" msgstr "Velocidade" #: harddrake2:111 #, c-format msgid "Speed of the memory bank" msgstr "Velocidade do banco de memoria" #: harddrake2:112 #, c-format msgid "Bank connections" msgstr "Conexións do banco" #: harddrake2:113 #, c-format msgid "Socket designation of the memory bank" msgstr "Designación do socket do banco de memoria" #: harddrake2:117 #, c-format msgid "Device file" msgstr "Ficheiro de dispositivo" #: harddrake2:117 #, c-format msgid "" "the device file used to communicate with the kernel driver for the mouse" msgstr "" "o ficheiro de dispositivo que se usa para comunicar co driver do kernel para " "o rato" #: harddrake2:118 #, c-format msgid "Emulated wheel" msgstr "Roda emulada" #: harddrake2:118 #, c-format msgid "whether the wheel is emulated or not" msgstr "con emulación da roda" #: harddrake2:119 #, c-format msgid "the type of the mouse" msgstr "o tipo de rato" #: harddrake2:120 #, c-format msgid "the name of the mouse" msgstr "o nome do rato" #: harddrake2:121 #, c-format msgid "Number of buttons" msgstr "Número de botóns" #: harddrake2:121 #, c-format msgid "the number of buttons the mouse has" msgstr "o número de botóns que ten o rato" #: harddrake2:122 #, c-format msgid "the type of bus on which the mouse is connected" msgstr "o tipo de bus ó que está conectado o rato" #: harddrake2:123 #, c-format msgid "Mouse protocol used by X11" msgstr "Protocolo de rato que usa X11" #: harddrake2:123 #, c-format msgid "the protocol that the graphical desktop use with the mouse" msgstr "o protocolo que o escritorio gráfico usa co rato" #: harddrake2:130 harddrake2:139 harddrake2:146 harddrake2:154 harddrake2:334 #, c-format msgid "Identification" msgstr "Identificación" #: harddrake2:131 harddrake2:147 #, c-format msgid "Connection" msgstr "Conexión" #: harddrake2:140 #, fuzzy, c-format msgid "Performances" msgstr "Preferencias" #: harddrake2:141 #, c-format msgid "Bugs" msgstr "Erros" #: harddrake2:142 #, c-format msgid "FPU" msgstr "FPU" #: harddrake2:149 #, c-format msgid "Device" msgstr "Dispositivo" #: harddrake2:150 #, c-format msgid "Partitions" msgstr "Particións" #: harddrake2:155 #, c-format msgid "Features" msgstr "Funcionalidades" #. -PO: please keep all "/" characters !!! #: harddrake2:178 logdrake:78 #, c-format msgid "/_Options" msgstr "/_Opcións" #: harddrake2:179 harddrake2:208 logdrake:80 #, c-format msgid "/_Help" msgstr "/A_xuda" #: harddrake2:183 #, c-format msgid "/Autodetect _printers" msgstr "/Detectar automáticamente as im_presoras" #: harddrake2:184 #, c-format msgid "/Autodetect _modems" msgstr "/Detectar automáticamente os _módems" #: harddrake2:185 #, c-format msgid "/Autodetect _jaz drives" msgstr "/Detectar automáticamente as unidades _jazz" #: harddrake2:186 #, c-format msgid "/Autodetect parallel _zip drives" msgstr "" #: harddrake2:190 #, c-format msgid "Hardware Configuration" msgstr "Configuración do Hardware" #: harddrake2:197 #, c-format msgid "/_Quit" msgstr "/S_aír" #: harddrake2:210 #, c-format msgid "/_Fields description" msgstr "/Descrición _dos campos" #: harddrake2:212 #, c-format msgid "Harddrake help" msgstr "Axuda do Harddrake" #: harddrake2:221 #, c-format msgid "Select a device!" msgstr "¡Seleccione un dispositivo!" #: harddrake2:221 #, c-format msgid "" "Once you've selected a device, you'll be able to see the device information " "in fields displayed on the right frame (\"Information\")" msgstr "" "Cando seleccione un dispositivo, poderá ve-la información do dispositivo nos " "campos do marco (\"Información\") da dereita" #: harddrake2:227 #, c-format msgid "/_Report Bug" msgstr "/_Comunicar Erro" #: harddrake2:229 #, c-format msgid "/_About..." msgstr "/_Acerca de..." #: harddrake2:232 #, c-format msgid "Harddrake" msgstr "Harddrake" #: harddrake2:234 #, c-format msgid "Copyright (C) %s by Mandriva" msgstr "Copyright (C) %s de Mandriva" #: harddrake2:236 #, c-format msgid "This is HardDrake, a %s hardware configuration tool." msgstr "Isto é HardDrake, unha ferramenta de configuración de hardware de %s." #: harddrake2:269 #, c-format msgid "Detected hardware" msgstr "Hardware detectado" #: harddrake2:272 scannerdrake:286 #, c-format msgid "Information" msgstr "Información" #: harddrake2:274 #, c-format msgid "Set current driver options" msgstr "Establecer as opcións actuais do driver" #: harddrake2:281 #, c-format msgid "Run config tool" msgstr "Executa-la ferramenta de configuración" #: harddrake2:301 #, c-format msgid "" "Click on a device in the left tree in order to display its information here." msgstr "" "Clique nun dispositivo na árbore da esquerda para amosa-la súa información " "aquí." #: harddrake2:321 #, c-format msgid "unknown" msgstr "descoñecido" #: harddrake2:322 #, c-format msgid "Unknown" msgstr "Descoñecido" #: harddrake2:342 #, c-format msgid "Misc" msgstr "Miscelánea" #: harddrake2:417 #, c-format msgid "secondary" msgstr "secundario" #: harddrake2:417 #, c-format msgid "primary" msgstr "primario" #: harddrake2:421 #, c-format msgid "burner" msgstr "gravadora" #: harddrake2:421 #, c-format msgid "DVD" msgstr "DVD" #: harddrake2:473 #, c-format msgid "Unknown/Others" msgstr "Descoñecidos/Outros" #: harddrake2:515 #, c-format msgid "The following packages need to be installed:\n" msgstr "Cómpre instala-los seguintes paquetes:\n" #: localedrake:38 #, c-format msgid "LocaleDrake" msgstr "LocaleDrake" #: localedrake:44 #, c-format msgid "You should install the following packages: %s" msgstr "Debe instalar os seguintes paquetes: %s" #. -PO: the following is used to combine packages names. eg: "initscripts, harddrake, yudit" #: localedrake:47 #, c-format msgid ", " msgstr ", " #: localedrake:55 #, c-format msgid "The change is done, but to be effective you must logout" msgstr "Xa se fixo o cambio, pero para que sexa efectivo debe saír do sistema" #: logdrake:51 #, c-format msgid "Mandriva Linux Tools Logs" msgstr "Ferramentas de Logs de Mandriva Linux" #: logdrake:65 #, c-format msgid "Show only for the selected day" msgstr "Amosar só do día seleccionado" #: logdrake:72 #, c-format msgid "/File/_New" msgstr "/Ficheiro/_Novo" #: logdrake:72 #, c-format msgid "<control>N" msgstr "<control>N" #: logdrake:73 #, c-format msgid "/File/_Open" msgstr "/Ficheiro/_Abrir" #: logdrake:73 #, c-format msgid "<control>O" msgstr "<control>A" #: logdrake:74 #, c-format msgid "/File/_Save" msgstr "/Ficheiro/_Gardar" #: logdrake:74 #, c-format msgid "<control>S" msgstr "<control>G" #: logdrake:75 #, c-format msgid "/File/Save _As" msgstr "/Ficheiro/Gardar _Coma" #: logdrake:76 #, c-format msgid "/File/-" msgstr "/Ficheiro/-" #: logdrake:79 #, c-format msgid "/Options/Test" msgstr "/Opcións/Proba" #: logdrake:81 #, c-format msgid "/Help/_About..." msgstr "/Axuda/_Acerca de..." #: logdrake:110 #, c-format msgid "" "_:this is the auth.log log file\n" "Authentication" msgstr "Autenticación" #: logdrake:111 #, c-format msgid "" "_:this is the user.log log file\n" "User" msgstr "Usuario" #: logdrake:112 #, c-format msgid "" "_:this is the /var/log/messages log file\n" "Messages" msgstr "Mensaxes" #: logdrake:113 #, c-format msgid "" "_:this is the /var/log/syslog log file\n" "Syslog" msgstr "Syslog" #: logdrake:117 #, c-format msgid "search" msgstr "buscar" #: logdrake:129 #, c-format msgid "A tool to monitor your logs" msgstr "Unha ferramenta para monitoriza-los seus logs" #: logdrake:131 #, c-format msgid "Settings" msgstr "Opcións" #: logdrake:134 #, c-format msgid "Matching" msgstr "Coincide" #: logdrake:135 #, c-format msgid "but not matching" msgstr "pero non coincide" #: logdrake:138 #, c-format msgid "Choose file" msgstr "Seleccionar ficheiro" #: logdrake:150 #, c-format msgid "Calendar" msgstr "Calendario" #: logdrake:159 #, c-format msgid "Content of the file" msgstr "Contido do ficheiro" #: logdrake:163 logdrake:407 #, c-format msgid "Mail alert" msgstr "Alerta de correo" #: logdrake:170 #, c-format msgid "The alert wizard has failed unexpectedly:" msgstr "O asistente de alertas fallou inesperadamente:" #: logdrake:174 #, c-format msgid "Save" msgstr "Gardar" #: logdrake:222 #, c-format msgid "please wait, parsing file: %s" msgstr "agarde, analisando o ficheiro: %s" #: logdrake:244 #, c-format msgid "Sorry, log file isn't available!" msgstr "" #: logdrake:292 #, c-format msgid "Error while opening \"%s\" log file: %s\n" msgstr "" #: logdrake:385 #, c-format msgid "Apache World Wide Web Server" msgstr "Servidor World Wide Web Apache" #: logdrake:386 #, c-format msgid "Domain Name Resolver" msgstr "Resolvedor de Nomes de Dominio" #: logdrake:387 #, c-format msgid "Ftp Server" msgstr "Servidor FTP" #: logdrake:388 #, c-format msgid "Postfix Mail Server" msgstr "Servidor de Correo Postfix" #: logdrake:389 #, c-format msgid "Samba Server" msgstr "Servidor Samba" #: logdrake:390 #, c-format msgid "SSH Server" msgstr "Servidor SSH" #: logdrake:391 #, c-format msgid "Webmin Service" msgstr "Servicio Webmin" #: logdrake:392 #, c-format msgid "Xinetd Service" msgstr "Servicio Xinetd" #: logdrake:401 #, c-format msgid "Configure the mail alert system" msgstr "Configura-lo sistema de alertas de correo" #: logdrake:402 #, c-format msgid "Stop the mail alert system" msgstr "Para-lo sistema de alertas de correo" #: logdrake:410 #, c-format msgid "Mail alert configuration" msgstr "Configuración de alertas de correo" #: logdrake:411 #, c-format msgid "" "Welcome to the mail configuration utility.\n" "\n" "Here, you'll be able to set up the alert system.\n" msgstr "" "Benvid@ á utilidade de configuración de correo.\n" "\n" "Aquí, poderá configura-lo sistema de alertas.\n" #: logdrake:414 #, c-format msgid "What do you want to do?" msgstr "¿Que desexa facer?" #: logdrake:421 #, c-format msgid "Services settings" msgstr "Configuración dos servicios" #: logdrake:422 #, c-format msgid "" "You will receive an alert if one of the selected services is no longer " "running" msgstr "" "Recibirá unha alerta se un dos servicios seleccionados non se está executando" #: logdrake:429 #, c-format msgid "Load setting" msgstr "Cargar opción" #: logdrake:430 #, c-format msgid "You will receive an alert if the load is higher than this value" msgstr "Recibirá unha alerta se a carga é maior ca este valor" #: logdrake:431 #, c-format msgid "" "_: load here is a noun, the load of the system\n" "Load" msgstr "Carga" #: logdrake:436 #, c-format msgid "Alert configuration" msgstr "Configuración de alertas" #: logdrake:437 #, c-format msgid "Please enter your email address below " msgstr "Introduza o seu enderezo de correo-e embaixo " #: logdrake:438 #, c-format msgid "and enter the name (or the IP) of the SMTP server you wish to use" msgstr "e introduza o nome (ou o IP) do servidor SMTP que desexa usar" #: logdrake:445 #, c-format msgid "\"%s\" neither is a valid email nor is an existing local user!" msgstr "¡\"%s\" non é un nome de usuario local ou enderezo de correo-e válido!" #: logdrake:450 #, c-format msgid "" "\"%s\" is a local user, but you did not select a local smtp, so you must use " "a complete email address!" msgstr "" "¡\"%s\" é un usuario local, pero non seleccionou un SMTP local, asi que debe " "usar un enderezo de correo-e completo!" #: logdrake:457 #, c-format msgid "The wizard successfully configured the mail alert." msgstr "O asistente configurou con éxito a alerta de correo." #: logdrake:463 #, c-format msgid "The wizard successfully disabled the mail alert." msgstr "O asistente desactivou con é a alerta de correo." #: logdrake:522 #, c-format msgid "Save as.." msgstr "Gardar coma..." #: scannerdrake:51 #, c-format msgid "" "SANE packages need to be installed to use scanners.\n" "\n" "Do you want to install the SANE packages?" msgstr "" "Cómpre instala-los paquetes SANE para poder usar escáners.\n" "\n" "Desexa instala-los paquetes SANE?" #: scannerdrake:55 #, c-format msgid "Aborting Scannerdrake." msgstr "Abortando Scannerdrake." #: scannerdrake:60 #, c-format msgid "" "Could not install the packages needed to set up a scanner with Scannerdrake." msgstr "" "Non se puideron instalar os paquetes necesarios para configurar un escáner " "con Scannerdrake." #: scannerdrake:61 #, c-format msgid "Scannerdrake will not be started now." msgstr "Non se vai iniciar Scannerdrake agora." #: scannerdrake:67 scannerdrake:506 #, c-format msgid "Searching for configured scanners..." msgstr "Buscando escáners configurados..." #: scannerdrake:71 scannerdrake:510 #, c-format msgid "Searching for new scanners..." msgstr "Buscando novos escáners..." #: scannerdrake:79 scannerdrake:532 #, c-format msgid "Re-generating list of configured scanners..." msgstr "Volvendo a xerar a lista de escáners configurados..." #: scannerdrake:101 #, c-format msgid "The %s is not supported by this version of %s." msgstr "O %s non está soportado por esta versión de %s." #: scannerdrake:104 scannerdrake:115 #, c-format msgid "Confirmation" msgstr "Confirmación" #: scannerdrake:104 #, c-format msgid "%s found on %s, configure it automatically?" msgstr "atopouse %s en %s, ¿desexa configuralo automáticamente?" #: scannerdrake:116 #, c-format msgid "%s is not in the scanner database, configure it manually?" msgstr "%s non está na base de datos de escáners, ¿desexa configuralo a man?" #: scannerdrake:130 #, c-format msgid "Scanner configuration" msgstr "Configuración de escáners" #: scannerdrake:131 #, c-format msgid "Select a scanner model (Detected model: %s, Port: %s)" msgstr "Seleccione un modelo de escáner (Modelo detectado: %s, Porto: %s)" #: scannerdrake:133 #, c-format msgid "Select a scanner model (Detected model: %s)" msgstr "Seleccione un modelo de escáner (Modelo detectado: %s)" #: scannerdrake:134 #, c-format msgid "Select a scanner model (Port: %s)" msgstr "Seleccione un modelo de escáner (Porto: %s)" #: scannerdrake:136 scannerdrake:139 #, c-format msgid " (UNSUPPORTED)" msgstr "(NON SOPORTADO)" #: scannerdrake:142 #, c-format msgid "The %s is not supported under Linux." msgstr "O %s non está soportado en Linux." #: scannerdrake:169 scannerdrake:183 #, c-format msgid "Do not install firmware file" msgstr "Non instala-lo ficheiro de firmware" #: scannerdrake:172 scannerdrake:222 #, c-format msgid "Scanner Firmware" msgstr "Firmware de Escáner" #: scannerdrake:173 scannerdrake:225 #, c-format msgid "" "It is possible that your %s needs its firmware to be uploaded everytime when " "it is turned on." msgstr "" "É posible que o seu %s necesite que se cargue o seu firmware cada vez que se " "prenda." #: scannerdrake:174 scannerdrake:226 #, c-format msgid "If this is the case, you can make this be done automatically." msgstr "Se este é o caso, pode facer que isto se faga automáticamente." #: scannerdrake:175 scannerdrake:229 #, c-format msgid "" "To do so, you need to supply the firmware file for your scanner so that it " "can be installed." msgstr "" "Para facelo terá que proporcionar o ficheiro de firmware do seu escáner para " "que se poida instalalo." #: scannerdrake:176 scannerdrake:230 #, c-format msgid "" "You find the file on the CD or floppy coming with the scanner, on the " "manufacturer's home page, or on your Windows partition." msgstr "" "Pode atopar o ficheiro no CD ou no disquete que viña co escáner, na páxina " "do fabricante, ou na partición de Windows." #: scannerdrake:178 scannerdrake:237 #, c-format msgid "Install firmware file from" msgstr "Instala-lo ficheiro de firmware dende" #: scannerdrake:180 scannerdrake:188 scannerdrake:239 scannerdrake:246 #, c-format msgid "CD-ROM" msgstr "CD-ROM" #: scannerdrake:181 scannerdrake:190 scannerdrake:240 scannerdrake:248 #, c-format msgid "Floppy Disk" msgstr "Disquete" #: scannerdrake:182 scannerdrake:192 scannerdrake:241 scannerdrake:250 #, c-format msgid "Other place" msgstr "Outro sitio" #: scannerdrake:198 #, c-format msgid "Select firmware file" msgstr "Seleccione o ficheiro de firmware" #: scannerdrake:201 scannerdrake:260 #, c-format msgid "The firmware file %s does not exist or is unreadable!" msgstr "¡O ficheiro de firmware %s non existe ou non se pode ler!" #: scannerdrake:224 #, c-format msgid "" "It is possible that your scanners need their firmware to be uploaded " "everytime when they are turned on." msgstr "" "É posible que os seus escáners necesiten o seu firmware cada vez que se " "prendan." #: scannerdrake:228 #, c-format msgid "" "To do so, you need to supply the firmware files for your scanners so that it " "can be installed." msgstr "" "Para facelo terá que proporcionar os ficheiros de firmware dos seus escáners " "para que se poida instalalos." #: scannerdrake:231 #, c-format msgid "" "If you have already installed your scanner's firmware you can update the " "firmware here by supplying the new firmware file." msgstr "" "Se xa instalou o firmware do seu escáner pode actualizar o firmware aquí " "proporcionando o novo ficheiro de firmware." #: scannerdrake:233 #, c-format msgid "Install firmware for the" msgstr "Instalar firmware para" #: scannerdrake:256 #, c-format msgid "Select firmware file for the %s" msgstr "Seleccione o ficheiro de firmware para %s" #: scannerdrake:274 #, c-format msgid "Could not install the firmware file for the %s!" msgstr "Non se puido instalar o ficheiro de firmware para o %s!" #: scannerdrake:287 #, c-format msgid "The firmware file for your %s was successfully installed." msgstr "O ficheiro de firmware para %s instalouse con éxito." #: scannerdrake:297 #, c-format msgid "The %s is unsupported" msgstr "%s non está soportado" #: scannerdrake:302 #, c-format msgid "" "The %s must be configured by printerdrake.\n" "You can launch printerdrake from the %s Control Center in Hardware section." msgstr "" "%s debe configurarse dende printerdrake.\n" "Pode executar printerdrake dende a sección Hardware do Centro de Control de %" "s." #: scannerdrake:320 #, c-format msgid "Setting up kernel modules..." msgstr "Configurando os módulos do kernel..." #: scannerdrake:330 scannerdrake:337 scannerdrake:367 #, c-format msgid "Auto-detect available ports" msgstr "Detectar automáticamente os portos dispoñibles" #: scannerdrake:331 scannerdrake:377 #, c-format msgid "Device choice" msgstr "Elección de dispositivo" #: scannerdrake:332 scannerdrake:378 #, c-format msgid "Please select the device where your %s is attached" msgstr "Seleccione o dispositivo onde está conectado o seu %s" #: scannerdrake:333 #, c-format msgid "(Note: Parallel ports cannot be auto-detected)" msgstr "(Nota: Os portos paralelos non se poden detectar automáticamente)" #: scannerdrake:335 scannerdrake:380 #, c-format msgid "choose device" msgstr "escoller dispositivo" #: scannerdrake:369 #, c-format msgid "Searching for scanners..." msgstr "Buscando escáners..." #: scannerdrake:405 scannerdrake:412 #, c-format msgid "Attention!" msgstr "Atención!" #: scannerdrake:406 #, c-format msgid "" "Your %s cannot be configured fully automatically.\n" "\n" "Manual adjustments are required. Please edit the configuration file /etc/" "sane.d/%s.conf. " msgstr "" "Non se puido configurar %s de maneira totalmente automática.\n" "\n" "Cómpre facer axustes a man. Por favor, edite o ficheiro de configuración /" "etc/sane.d/%s.conf. " #: scannerdrake:407 scannerdrake:416 #, c-format msgid "" "More info in the driver's manual page. Run the command \"man sane-%s\" to " "read it." msgstr "" "Máis información na páxina do manual do driver. Execute o comando \"man sane-" "%s\" para lela." #: scannerdrake:409 scannerdrake:418 #, c-format msgid "" "After that you may scan documents using \"XSane\" or \"Kooka\" from " "Multimedia/Graphics in the applications menu." msgstr "" "Despois disto poderá dixitalizar documentos usando \"XSane\" ou \"Kooka\" " "dende Multimedia/Gráficos no menú de aplicacións." #: scannerdrake:413 #, c-format msgid "" "Your %s has been configured, but it is possible that additional manual " "adjustments are needed to get it to work. " msgstr "" "Configurouse o seu %s, pero é posible que sexan necesarios axustes manuais " "adicionais para que funcione." #: scannerdrake:414 #, c-format msgid "" "If it does not appear in the list of configured scanners in the main window " "of Scannerdrake or if it does not work correctly, " msgstr "" "Se non aparece na lista de escáners configurados na ventá principal de " "Scannerdrake ou se non funciona correctamente, " #: scannerdrake:415 #, c-format msgid "edit the configuration file /etc/sane.d/%s.conf. " msgstr "editar o ficheiro de configuración /etc/sane.d/%s.conf. " #: scannerdrake:420 #, c-format msgid "Congratulations!" msgstr "Noraboa!" #: scannerdrake:421 #, c-format msgid "" "Your %s has been configured.\n" "You may now scan documents using \"XSane\" or \"Kooka\" from Multimedia/" "Graphics in the applications menu." msgstr "" "%s xa está configurado.\n" "Agora pode dixitalizar documentos usando \"XSane\" ou \"Kooka\" dende o menú " "Multimedia/Gráficos do menú de aplicacións." #: scannerdrake:446 #, c-format msgid "" "The following scanners\n" "\n" "%s\n" "are available on your system.\n" msgstr "" "Os seguintes escáners\n" "\n" "%s\n" "están dispoñibles no seu sistema.\n" #: scannerdrake:447 #, c-format msgid "" "The following scanner\n" "\n" "%s\n" "is available on your system.\n" msgstr "" "O seguinte escáner\n" "\n" "%s\n" "está dispoñible no seu sistema.\n" #: scannerdrake:450 scannerdrake:453 #, c-format msgid "There are no scanners found which are available on your system.\n" msgstr "Non se atoparon escáners que estean dispoñibles no teu sistema.\n" #: scannerdrake:461 #, c-format msgid "Scanner Management" msgstr "Xestión de Escáners" #: scannerdrake:467 #, c-format msgid "Search for new scanners" msgstr "Buscando novos escáners" #: scannerdrake:473 #, c-format msgid "Add a scanner manually" msgstr "Engadir un escáner manualmente" #: scannerdrake:480 #, c-format msgid "Install/Update firmware files" msgstr "Instalar/Actualiza-los ficheiros de firmware" #: scannerdrake:486 #, c-format msgid "Scanner sharing" msgstr "Compartimento de escáners" #: scannerdrake:545 scannerdrake:710 #, c-format msgid "All remote machines" msgstr "Tódalas máquinas remotas" #: scannerdrake:557 scannerdrake:860 #, c-format msgid "This machine" msgstr "Esta máquina" #: scannerdrake:596 #, c-format msgid "Scanner Sharing" msgstr "Compartición de escáners" #: scannerdrake:597 #, c-format msgid "" "Here you can choose whether the scanners connected to this machine should be " "accessible by remote machines and by which remote machines." msgstr "" "Aquí pode escoller se os escáners conectados a esta máquina deben ser " "accesibles para as máquina remotas e para cales máquina remotas." #: scannerdrake:598 #, c-format msgid "" "You can also decide here whether scanners on remote machines should be made " "available on this machine." msgstr "" "Tamén pode decidir aquí se os escáners das máquinas remotas deben estar " "dispoñibles neste ordenador." #: scannerdrake:601 #, c-format msgid "The scanners on this machine are available to other computers" msgstr "Os escáners desta máquina están dispoñibles para outros ordenadores" #: scannerdrake:603 #, c-format msgid "Scanner sharing to hosts: " msgstr "Compartimento de escáners para as máquinas:" #: scannerdrake:608 scannerdrake:625 #, c-format msgid "No remote machines" msgstr "Non hai máquinas remotas" #: scannerdrake:617 #, c-format msgid "Use scanners on remote computers" msgstr "Usar escáners de ordenadores remotos" #: scannerdrake:620 #, c-format msgid "Use the scanners on hosts: " msgstr "Usar os escáners nas máquinas:" #: scannerdrake:647 scannerdrake:719 scannerdrake:869 #, c-format msgid "Sharing of local scanners" msgstr "Compartimento de escáners locais" #: scannerdrake:648 #, c-format msgid "" "These are the machines on which the locally connected scanner(s) should be " "available:" msgstr "" "Estas son as máquinas nas que os escáners conectados de maneira local " "deberían estar dispoñibles:" #: scannerdrake:659 scannerdrake:809 #, c-format msgid "Add host" msgstr "Engadir máquina" #: scannerdrake:665 scannerdrake:815 #, c-format msgid "Edit selected host" msgstr "Editar a máquina seleccionada" #: scannerdrake:674 scannerdrake:824 #, c-format msgid "Remove selected host" msgstr "Eliminar a máquina seleccionada" #: scannerdrake:683 scannerdrake:833 #, c-format msgid "Done" msgstr "Feito" #: scannerdrake:698 scannerdrake:706 scannerdrake:711 scannerdrake:757 #: scannerdrake:848 scannerdrake:856 scannerdrake:861 scannerdrake:907 #, c-format msgid "Name/IP address of host:" msgstr "Nome/enderezo IP da máquina:" #: scannerdrake:720 scannerdrake:870 #, c-format msgid "Choose the host on which the local scanners should be made available:" msgstr "" "Escolla a máquina na cal hai que facer que estean dispoñibles os escáners " "locais:" #: scannerdrake:731 scannerdrake:881 #, c-format msgid "You must enter a host name or an IP address.\n" msgstr "Debe introducir un nome de máquina ou un enderezo IP.\n" #: scannerdrake:742 scannerdrake:892 #, c-format msgid "This host is already in the list, it cannot be added again.\n" msgstr "Esta máquina xa está na lista, e non se pode volver engadir,\n" #: scannerdrake:797 #, c-format msgid "Usage of remote scanners" msgstr "Uso de escáners remotos" #: scannerdrake:798 #, c-format msgid "These are the machines from which the scanners should be used:" msgstr "Estas son máquinas das que se deberían usar os escáners:" #: scannerdrake:955 #, c-format msgid "" "saned needs to be installed to share the local scanner(s).\n" "\n" "Do you want to install the saned package?" msgstr "" "Cómpre instalar saned para compartir os escáners locais.\n" "\n" "Desexa instalar o paquete saned?" #: scannerdrake:959 scannerdrake:963 #, c-format msgid "Your scanner(s) will not be available on the network." msgstr "Os seus escáners non estarán dispoñibles na rede." #: scannerdrake:962 #, c-format msgid "Could not install the packages needed to share your scanner(s)." msgstr "" "Non se puideron instalar os paquetes necesarios para compartir os seus " "escáners." #: service_harddrake:124 #, c-format msgid "Some devices in the \"%s\" hardware class were removed:\n" msgstr "Elimináronse algúns dispositivos na clase de hardware \"%s\":\n" #: service_harddrake:125 #, c-format msgid "- %s was removed\n" msgstr "- eliminouse %s\n" #: service_harddrake:128 #, c-format msgid "Some devices were added: %s\n" msgstr "Engadíronse algúns dispositivos: %s\n" #: service_harddrake:129 #, c-format msgid "- %s was added\n" msgstr "- engadiuse %s\n" #: service_harddrake:252 #, c-format msgid "Hardware probing in progress" msgstr "Probando o hardware" #: service_harddrake_confirm:7 #, c-format msgid "Hardware changes in \"%s\" class (%s seconds to answer)" msgstr "Cambios de hardware na clase \"%s\" (%s segundos para responder)" #: service_harddrake_confirm:8 #, c-format msgid "Do you want to run the appropriate config tool?" msgstr "Desexa executar a ferramenta de configuración axeitada?" #: ../menu/localedrake-system.desktop.in.h:1 #, fuzzy msgid "System Regional Settings" msgstr "Configuración do sistema" #: ../menu/localedrake-system.desktop.in.h:2 msgid "System wide language & country configurator" msgstr "" #: ../menu/harddrake.desktop.in.h:1 msgid "HardDrake" msgstr "HardDrake" #: ../menu/harddrake.desktop.in.h:2 #, fuzzy msgid "Hardware Central Configuration/information tool" msgstr "Configuración do Hardware" #: ../menu/localedrake-user.desktop.in.h:1 #, fuzzy msgid "Language & country configuration" msgstr "Configuración manual" #: ../menu/localedrake-user.desktop.in.h:2 #, fuzzy msgid "Regional Settings" msgstr "Opcións" #~ msgid "Error!" #~ msgstr "¡Erro!" #~ msgid "I can not find needed image file `%s'." #~ msgstr "Non se pode atopa-lo ficheiro de imaxe `%s'." #~ msgid "Auto Install Configurator" #~ msgstr "Configurador da Instalación Automática" #~ msgid "" #~ "You are about to configure an Auto Install floppy. This feature is " #~ "somewhat dangerous and must be used circumspectly.\n" #~ "\n" #~ "With that feature, you will be able to replay the installation you've " #~ "performed on this computer, being interactively prompted for some steps, " #~ "in order to change their values.\n" #~ "\n" #~ "For maximum safety, the partitioning and formatting will never be " #~ "performed automatically, whatever you chose during the install of this " #~ "computer.\n" #~ "\n" #~ "Press ok to continue." #~ msgstr "" #~ "Está a piques de configurar un disquete de Instalación Automática. Esta " #~ "funcionalidade é algo perigosa e debe usarse con tino.\n" #~ "\n" #~ "Con esta funcionalidade, poderá reproducir a instalación que levou a cabo " #~ "neste ordenador, e preguntaráselle de maneira interactiva nalgúns pasos, " #~ "para poder cambiar os seus valores.\n" #~ "\n" #~ "Para maior seguridade, o particionamento e o formatado nunca se farán de " #~ "xeito automático, sen ter en conta os que escollera durante a instalación " #~ "deste ordenador.\n" #~ "\n" #~ "Prema Aceptar para continuar." #~ msgid "replay" #~ msgstr "reproducir" #~ msgid "manual" #~ msgstr "manual" #~ msgid "Automatic Steps Configuration" #~ msgstr "Configuración dos Pasos Automáticos" #~ msgid "" #~ "Please choose for each step whether it will replay like your install, or " #~ "it will be manual" #~ msgstr "" #~ "Elixa en cada paso se se debe reproducir coma na súa instalación, ou se " #~ "debe ser manual" #~ msgid "Insert a blank floppy in drive %s" #~ msgstr "Insira un disquete baleiro na unidade %s" #~ msgid "Creating auto install floppy" #~ msgstr "Creando un disquete de instalación automática" #~ msgid "Insert another blank floppy in drive %s (for drivers disk)" #~ msgstr "Insira outro disquete baleiro na unidade %s (disco para os drivers)" #~ msgid "Creating auto install floppy (drivers disk)" #~ msgstr "Creando un disquete de instalación automática (disco dos drivers)" #~ msgid "" #~ "\n" #~ "Welcome.\n" #~ "\n" #~ "The parameters of the auto-install are available in the sections on the " #~ "left" #~ msgstr "" #~ "\n" #~ "Benvido.\n" #~ "\n" #~ "Os parámetros da instalación automática están dispoñibles nas seccións da " #~ "esquerda" #~ msgid "" #~ "The floppy has been successfully generated.\n" #~ "You may now replay your installation." #~ msgstr "" #~ "O disquete xerouse con éxito.\n" #~ "Agora poderá reproducir a instalación." #~ msgid "Auto Install" #~ msgstr "Instalación Automática" #~ msgid "Add an item" #~ msgstr "Engadir un elemento" #~ msgid "Remove the last item" #~ msgstr "Elimina-lo último elemento" #~ msgid "Menudrake" #~ msgstr "Menudrake" #~ msgid "Msec" #~ msgstr "Msec" #~ msgid "Urpmi" #~ msgstr "Urpmi" #~ msgid "Userdrake" #~ msgstr "Userdrake"