Chameleon

Chameleon Commit Details

Date:2014-06-25 18:34:40 (5 years 1 month ago)
Author:ErmaC
Commit:2380
Parents: 2379
Message:Update languages (es & ru) and po staff.
Changes:
M/trunk/package/bin/po4a/lib/Locale/Po4a/Text.pm
M/trunk/package/po/es.po
M/trunk/package/bin/po4a/lib/Locale/Po4a/TransTractor.pm
M/trunk/package/bin/po4a/lib/Locale/Po4a/Common.pm
M/trunk/package/bin/po4a/po4a-gettextize
M/trunk/package/bin/po4a/lib/Locale/Po4a/Man.pm
M/trunk/package/bin/po4a/lib/Locale/Po4a/Po.pm
M/trunk/package/bin/po4a/po4a-normalize
M/trunk/package/bin/po4a/po4a-updatepo
M/trunk/package/bin/po4a/lib/Locale/Po4a/TeX.pm
M/trunk/package/bin/po4a/lib/Locale/Po4a/Chooser.pm
M/trunk/package/po/ru.po

File differences

trunk/package/bin/po4a/po4a-normalize
178178
179179
180180
181
$parser->writepo('po4a-normalize.po');
__END__
trunk/package/bin/po4a/po4a-updatepo
103103
104104
105105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
106121
107122
108123
Output some debugging information.
=item B<porefs> I<type>[,B<wrap>|B<nowrap>]
Specify the reference format. Argument I<type> can be one of B<none> to not
produce any reference, B<noline> to not specify the line number (more
accurately all line numbers are replaced by 1), B<counter> to replace line
number by an increasing counter, and B<full> to include complete
references.
Argument can be followed by a comma and either B<wrap> or B<nowrap> keyword.
References are written by default on a single line. The B<wrap> option wraps
references on several lines, to mimic B<gettext> tools (B<xgettext> and
B<msgmerge>). This option will become the default in a future release, because
it is more sensible. The B<nowrap> option is available so that users who want
to keep the old behavior can do so.
=item B<--msgid-bugs-address> I<email@address>
Set the report address for msgid bugs. By default, the created POT files
trunk/package/bin/po4a/lib/Locale/Po4a/Man.pm
24072407
24082408
24092409
2410
2411
24102412
24112413
24122414
......
24272429
24282430
24292431
2432
2433
24302434
24312435
24322436
......
24402444
24412445
24422446
2443
2444
2447
2448
24452449
24462450
24472451
$macro{'Ss'}=\&translate_mdoc;
# .Pp Paragraph Break. Vertical space (one line).
$macro{'Pp'}=\&noarg;
# .Lp Same as .Pp
$macro{'Lp'}=\&noarg;
# .D1 (D-one) Display-one Indent and display one text line.
$macro{'D1'}=\&translate_mdoc;
# .Dl (D-ell) Display-one literal.
# FIXME: Maybe we could extract other modifiers
# as in .It Fl l Ar num
$macro{'It'}=\&translate_mdoc;
# .Lk html link
$macro{'Lk'}=\&untranslated;
# Manual Domain Macros
# ====================
# General Text Domain
# ===================
foreach (qw(%A %B %C %D %J %N %O %P %R %T %V
Ac Ao Ap Aq At Bc Bf Bo Bq Bx Db Dc Do Dq Ec Ef Em Eo Fx No Ns
foreach (qw(%A %B %C %D %I %J %N %O %P %Q %R %T %U %V
Ac Ao Ap Aq At Bc Bf Bo Bq Brc Bro Brq Bx Db Dc Do Dq Ec Ef Em Eo Eq Fx No Ns
Pc Pf Po Pq Qc Ql Qo Qq Re Rs Rv Sc So Sq Sm Sx Sy Tn Ux Xc Xo)) {
$inline{$_} = 1;
}
trunk/package/bin/po4a/lib/Locale/Po4a/Po.pm
5151
5252
5353
54
54
5555
56
57
58
56
57
58
59
60
5961
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
6087
6188
6289
......
150177
151178
152179
153
180
154181
155182
156183
......
163190
164191
165192
166
193
167194
168195
169196
170
197
171198
199
200
201
172202
173203
174204
......
429459
430460
431461
432
433
434
462
463
464
465
466
467
468
469
470
435471
436472
437473
......
12211257
12221258
12231259
1224
1260
12251261
1226
1227
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
12281277
12291278
12301279
......
12751324
12761325
12771326
1278
1327
12791328
12801329
12811330
=over 4
=item B<porefs>
=item B<porefs> I<type>[,B<wrap>|B<nowrap>]
This specifies the reference format. It can be one of B<none> to not produce
any reference, B<noline> to not specify the line number, and B<full> to
include complete references.
Specify the reference format. Argument I<type> can be one of B<none> to not
produce any reference, B<noline> to not specify the line number (more
accurately all line numbers are replaced by 1), B<counter> to replace line
number by an increasing counter, and B<full> to include complete
references.
Argument can be followed by a comma and either B<wrap> or B<nowrap> keyword.
References are written by default on a single line. The B<wrap> option wraps
references on several lines, to mimic B<gettext> tools (B<xgettext> and
B<msgmerge>). This option will become the default in a future release, because
it is more sensible. The B<nowrap> option is available so that users who want
to keep the old behavior can do so.
=item B<--msgid-bugs-address> I<email@address>
Set the report address for msgid bugs. By default, the created POT files
have no Report-Msgid-Bugs-To fields.
=item B<--copyright-holder> I<string>
Set the copyright holder in the POT header. The default value is
"Free Software Foundation, Inc."
=item B<--package-name> I<string>
Set the package name for the POT header. The default is "PACKAGE".
=item B<--package-version> I<string>
Set the package version for the POT header. The default is "VERSION".
=back
=cut
chomp $date;
# $options = ref($options) || $options;
$self->{options}{'porefs'}= 'full';
$self->{options}{'porefs'}= 'full,nowrap';
$self->{options}{'msgid-bugs-address'}= undef;
$self->{options}{'copyright-holder'}= "Free Software Foundation, Inc.";
$self->{options}{'package-name'}= "PACKAGE";
$self->{options}{$opt} = $options->{$opt};
}
}
$self->{options}{'porefs'} =~ /^(full|noline|none)$/ ||
$self->{options}{'porefs'} =~ /^(full|counter|noline|none)(,(no)?wrap)?$/ ||
die wrap_mod("po4a::po",
dgettext ("po4a",
"Invalid value for option 'porefs' ('%s' is ".
"not one of 'full', 'noline' or 'none')"),
"not one of 'full', 'counter', 'noline' or 'none')"),
$self->{options}{'porefs'});
if ($self->{options}{'porefs'} =~ m/^counter/) {
$self->{counter} = {};
}
$self->{po}=();
$self->{count}=0; # number of msgids in the PO
$output .= format_comment($self->{po}{$msgid}{'type'},". type: ")
if defined($self->{po}{$msgid}{'type'})
&& length ($self->{po}{$msgid}{'type'});
$output .= format_comment($self->{po}{$msgid}{'reference'},": ")
if defined($self->{po}{$msgid}{'reference'})
&& length ($self->{po}{$msgid}{'reference'});
if ( defined($self->{po}{$msgid}{'reference'})
&& length ($self->{po}{$msgid}{'reference'})) {
my $output_ref = $self->{po}{$msgid}{'reference'};
if ($self->{options}{'porefs'} =~ m/,wrap$/) {
$output_ref = wrap($output_ref);
$output_ref =~ s/\s+$//mg;
}
$output .= format_comment($output_ref,": ");
}
$output .= "#, ". join(", ", sort split(/\s+/,$self->{po}{$msgid}{'flags'}))."\n"
if defined($self->{po}{$msgid}{'flags'})
&& length ($self->{po}{$msgid}{'flags'});
return;
}
if ($self->{options}{'porefs'} eq "none") {
if ($self->{options}{'porefs'} =~ m/^none/) {
$reference = "";
} elsif ($self->{options}{'porefs'} eq "noline") {
$reference =~ s/:[0-9]*/:1/g;
} elsif ($self->{options}{'porefs'} =~ m/^counter/) {
if ($reference =~ m/^(.+?)(?=\S+:\d+)/g) {
my $new_ref = $1;
1 while $reference =~ s{ # x modifier is added to add formatting and improve readability
\G(\s*)(\S+):\d+ # \G is the last match in m//g (see also the (?=) syntax above)
# $2 is the file name
}{
$self->{counter}{$2} ||= 0, # each file has its own counter
++$self->{counter}{$2}, # increment it
$new_ref .= "$1$2:".$self->{counter}{$2} # replace line number by this counter
}gex && pos($reference);
$reference = $new_ref;
}
} elsif ($self->{options}{'porefs'} =~ m/^noline/) {
$reference =~ s/:\d+/:1/g;
}
if (defined($self->{po}{$msgid})) {
if (defined $transref) {
$self->{po}{$msgid}{'transref'} = $transref;
}
if (defined $reference) {
if (defined($reference) && length($reference)) {
if (defined $self->{po}{$msgid}{'reference'}) {
$self->{po}{$msgid}{'reference'} .= " ".$reference;
} else {
trunk/package/bin/po4a/lib/Locale/Po4a/Text.pm
150150
151151
152152
153
154
155
156
153157
154158
155159
......
189193
190194
191195
192
196
193197
194198
195199
196
200
197201
198202
199203
204
200205
201206
202207
203208
209
204210
205211
206212
207213
214
208215
209216
210217
......
215222
216223
217224
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
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
236264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
237279
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
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
277390
278
391
392
393
394
279395
280
281
282
283
284
396
397
398
399
400
401
402
403
404
405
406
407
285408
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
409
410
411
412
413
414
357415
358
359
360
361
362
363
364
365
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
366469
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385470
386471
387472
......
395480
396481
397482
398
483
399484
400485
401486
......
421506
422507
423508
424
509
425510
426511
427512
428513
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
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
517696
518
519
520
521
522
523
524
525
526
527
528
529
697
698
699
530700
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
576701
577702
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
703
704
705
706
707
708
709
597710
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
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
632792
633
634793
635
636
637
638
639
640794
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
795
712796
797
798
799
800
713801
714802
715803
......
811899
812900
813901
902
814903
904
815905
816906
817907
my %control = ();
my $parse_func = \&parse_fallback;
my @comments = ();
=back
=cut
}
if (defined $options{'debianchangelog'}) {
$debianchangelog=1;
$parse_func = \&parse_debianchangelog;
}
if (defined $options{'fortunes'}) {
$fortunes=1;
$parse_func = \&parse_fortunes;
}
if (defined $options{'markdown'}) {
$parse_func = \&parse_markdown;
$markdown=1;
}
if (defined $options{'asciidoc'}) {
$parse_func = \&parse_asciidoc;
$asciidoc=1;
}
if (defined $options{'control'}) {
$parse_func = \&parse_control;
if ($options{'control'} eq "1") {
$control{''}=1;
} else {
}
}
sub parse {
my $self = shift;
my ($line,$ref);
my $paragraph="";
my $wrapped_mode = 1;
my $expect_header = 1;
my $end_of_paragraph = 0;
($line,$ref)=$self->shiftline();
my $file = $ref;
$file =~ s/:[0-9]+$// if defined($line);
while (defined($line)) {
$ref =~ m/^(.*):[0-9]+$/;
if ($1 ne $file) {
$file = $1;
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
$wrapped_mode = 1;
$expect_header = 1;
sub parse_fallback {
my ($self,$line,$ref,$paragraph,$wrapped_mode,$expect_header,$end_of_paragraph) = @_;
if ( ($line =~ /^\s*$/)
or ( defined $breaks
and $line =~ m/^$breaks$/)) {
# Break paragraphs on lines containing only spaces
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
$wrapped_mode = 1 unless defined($self->{verbatim});
$self->pushline($line."\n");
undef $self->{controlkey};
} elsif ($line =~ /^-- $/) {
# Break paragraphs on email signature hint
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
$wrapped_mode = 1;
$self->pushline($line."\n");
} elsif ( $line =~ /^=+$/
or $line =~ /^_+$/
or $line =~ /^-+$/) {
$wrapped_mode = 0;
$paragraph .= $line."\n";
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
$wrapped_mode = 1;
} elsif ($tabs eq "split" and $line =~ m/\t/ and $paragraph !~ m/\t/s) {
$wrapped_mode = 0;
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph = "$line\n";
$wrapped_mode = 0;
} elsif ($tabs eq "split" and $line !~ m/\t/ and $paragraph =~ m/\t/s) {
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph = "$line\n";
$wrapped_mode = 1;
} else {
if ($line =~ /^\s/) {
# A line starting by a space indicates a non-wrap
# paragraph
$wrapped_mode = 0;
}
if ($markdown and
( $line =~ /\S $/ # explicit newline
or $line =~ /"""$/)) { # """ textblock inside macro begin
# Markdown markup needing separation _after_ this line
$end_of_paragraph = 1;
} else {
undef $self->{bullet};
undef $self->{indent};
}
# TODO: comments
$paragraph .= $line."\n";
}
return ($paragraph,$wrapped_mode,$expect_header,$end_of_paragraph);
}
chomp($line);
$self->{ref}="$ref";
if ($debianchangelog and
$expect_header and
$line =~ /^(\w[-+0-9a-z.]*)\ \(([^\(\) \t]+)\) # src, version
\s+([-+0-9a-z.]+); # distribution
\s*urgency\s*\=\s*(.*\S)\s*$/ix) { #
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
$self->pushline("$line\n");
$expect_header=0;
} elsif ($debianchangelog and
$line =~ m/^ \-\- (.*) <(.*)> ((\w+\,\s*)?\d{1,2}\s+\w+\s+\d{4}\s+\d{1,2}:\d\d:\d\d\s+[-+]\d{4}(\s+\([^\\\(\)]\))?)$/) {
# Found trailer
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
$self->pushline("$line\n");
$expect_header=1;
} elsif ($fortunes and
$line =~ m/^%%?\s*$/) {
# Found end of fortune
do_paragraph($self,$paragraph,$wrapped_mode);
$self->pushline("\n") unless ( $wrapped_mode == 0
or $paragraph eq "");
$paragraph="";
$wrapped_mode = 1;
$self->pushline("$line\n");
} elsif ( $line =~ m/^([^ :]*): *(.*)$/
and %control) {
warn "Unrecognized section: '$paragraph'\n"
unless $paragraph eq "";
my $tag = $1;
my $val = $2;
my $t;
if ($control{''} or $control{$tag}) {
$t = $self->translate($val,
$self->{ref},
$tag.(defined $self->{controlkey}?", ".$self->{controlkey}:""),
"wrap" => 0);
sub parse_debianchangelog {
my ($self,$line,$ref,$paragraph,$wrapped_mode,$expect_header,$end_of_paragraph) = @_;
if ($expect_header and
$line =~ /^(\w[-+0-9a-z.]*)\ \(([^\(\) \t]+)\) # src, version
\s+([-+0-9a-z.]+); # distribution
\s*urgency\s*\=\s*(.*\S)\s*$/ix) { #
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
$self->pushline("$line\n");
$expect_header=0;
} elsif ($line =~ m/^ \-\- (.*) <(.*)> ((\w+\,\s*)?\d{1,2}\s+\w+\s+\d{4}\s+\d{1,2}:\d\d:\d\d\s+[-+]\d{4}(\s+\([^\\\(\)]\))?)$/) {
# Found trailer
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
$self->pushline("$line\n");
$expect_header=1;
} else {
return parse_fallback($self,$line,$ref,$paragraph,$wrapped_mode,$expect_header,$end_of_paragraph);
}
return ($paragraph,$wrapped_mode,$expect_header,$end_of_paragraph);
}
sub parse_fortunes {
my ($self,$line,$ref,$paragraph,$wrapped_mode,$expect_header,$end_of_paragraph) = @_;
if ($line =~ m/^%%?\s*$/) {
# Found end of fortune
do_paragraph($self,$paragraph,$wrapped_mode);
$self->pushline("\n") unless ( $wrapped_mode == 0
or $paragraph eq "");
$paragraph="";
$wrapped_mode = 1;
$self->pushline("$line\n");
} else {
$line =~ s/%%(.*)$//;
}
return ($paragraph,$wrapped_mode,$expect_header,$end_of_paragraph);
}
sub parse_control {
my ($self,$line,$ref,$paragraph,$wrapped_mode,$expect_header,$end_of_paragraph) = @_;
if ($line =~ m/^([^ :]*): *(.*)$/) {
warn "Unrecognized section: '$paragraph'\n"
unless $paragraph eq "";
my $tag = $1;
my $val = $2;
my $t;
if ($control{''} or $control{$tag}) {
$t = $self->translate($val,
$self->{ref},
$tag.(defined $self->{controlkey}?", ".$self->{controlkey}:""),
"wrap" => 0);
} else {
$t = $val;
}
if (not defined $self->{controlkey}) {
$self->{controlkey} = "$tag: $val";
}
$self->pushline("$tag: $t\n");
$paragraph="";
$wrapped_mode = 1;
$self->{bullet} = "";
$self->{indent} = " ";
} elsif ($line eq " .") {
do_paragraph($self,$paragraph,$wrapped_mode,
"Long Description".(defined $self->{controlkey}?", ".$self->{controlkey}:""));
$paragraph="";
$self->pushline($line."\n");
$self->{bullet} = "";
$self->{indent} = " ";
} elsif ($line =~ m/^ Link: +(.*)$/) {
do_paragraph($self,$paragraph,$wrapped_mode,
"Long Description".(defined $self->{controlkey}?", ".$self->{controlkey}:""));
my $link=$1;
my $t1 = $self->translate("Link: ",
$self->{ref},
"Link",
"wrap" => 0);
my $t2 = $self->translate($link,
$self->{ref},
"Link".(defined $self->{controlkey}?", ".$self->{controlkey}:""),
"wrap" => 0);
$self->pushline(" $t1$t2\n");
$paragraph="";
} elsif (defined $self->{indent} and
$line =~ m/^$self->{indent}\S/) {
$paragraph .= $line."\n";
$self->{type} = "Long Description".(defined $self->{controlkey}?", ".$self->{controlkey}:"");
} else {
return parse_fallback($self,$line,$ref,$paragraph,$wrapped_mode,$expect_header,$end_of_paragraph);
}
return ($paragraph,$wrapped_mode,$expect_header,$end_of_paragraph);
}
my $asciidoc_RE_SECTION_TEMPLATES = "sect1|sect2|sect3|sect4|preface|colophon|dedication|synopsis|index";
my $asciidoc_RE_STYLE_ADMONITION = "TIP|NOTE|IMPORTANT|WARNING|CAUTION";
my $asciidoc_RE_STYLE_PARAGRAPH = "normal|literal|verse|quote|listing|abstract|partintro|comment|example|sidebar|source|music|latex|graphviz";
my $asciidoc_RE_STYLE_NUMBERING = "arabic|loweralpha|upperalpha|lowerroman|upperroman";
my $asciidoc_RE_STYLE_LIST = "appendix|horizontal|qanda|glossary|bibliography";
my $asciidoc_RE_STYLES = "$asciidoc_RE_SECTION_TEMPLATES|$asciidoc_RE_STYLE_ADMONITION|$asciidoc_RE_STYLE_PARAGRAPH|$asciidoc_RE_STYLE_NUMBERING|$asciidoc_RE_STYLE_LIST|float";
BEGIN {
my $UnicodeGCString_available = 0;
$UnicodeGCString_available = 1 if (eval { require Unicode::GCString });
eval {
sub columns($$$) {
my $text = shift;
my $encoder = shift;
$text = $encoder->decode($text) if (defined($encoder) && $encoder->name ne "ascii");
if ($UnicodeGCString_available) {
return Unicode::GCString->new($text)->columns();
} else {
$t = $val;
$text =~ s/\n$//s;
return length($text) if !(defined($encoder) && $encoder->name ne "ascii");
die wrap_mod("po4a::text",
dgettext("po4a", "Detection of two line titles failed at %s\nInstall the Unicode::GCString module!"), shift)
}
if (not defined $self->{controlkey}) {
$self->{controlkey} = "$tag: $val";
}
$self->pushline("$tag: $t\n");
$paragraph="";
}
};
}
sub parse_asciidoc {
my ($self,$line,$ref,$paragraph,$wrapped_mode,$expect_header,$end_of_paragraph) = @_;
if ((defined $self->{verbatim}) and ($self->{verbatim} == 3)) {
# Untranslated blocks
$self->pushline($line."\n");
if ($line =~ m/^~{4,}$/) {
undef $self->{verbatim};
undef $self->{type};
$wrapped_mode = 1;
$self->{bullet} = "";
$self->{indent} = " ";
} elsif (%control and
$line eq " .") {
do_paragraph($self,$paragraph,$wrapped_mode,
"Long Description".(defined $self->{controlkey}?", ".$self->{controlkey}:""));
$paragraph="";
$self->pushline($line."\n");
$self->{bullet} = "";
$self->{indent} = " ";
} elsif (%control and
$line =~ m/^ Link: +(.*)$/) {
do_paragraph($self,$paragraph,$wrapped_mode,
"Long Description".(defined $self->{controlkey}?", ".$self->{controlkey}:""));
my $link=$1;
my $t1 = $self->translate("Link: ",
$self->{ref},
"Link",
"wrap" => 0);
my $t2 = $self->translate($link,
$self->{ref},
"Link".(defined $self->{controlkey}?", ".$self->{controlkey}:""),
"wrap" => 0);
$self->pushline(" $t1$t2\n");
$paragraph="";
} elsif (%control and
defined $self->{indent} and
$line =~ m/^$self->{indent}\S/) {
$paragraph .= $line."\n";
$self->{type} = "Long Description".(defined $self->{controlkey}?", ".$self->{controlkey}:"");
} elsif ( (defined $self->{verbatim})
and ($self->{verbatim} == 2)) {
# Untranslated blocks
$self->pushline($line."\n");
if ($asciidoc and
($line =~ m/^(\/{4,}|~{4,})$/)) {
undef $self->{verbatim};
undef $self->{type};
$wrapped_mode = 1;
}
} elsif ( ($line =~ /^\s*$/)
or ( defined $breaks
and $line =~ m/^$breaks$/)) {
# Break paragraphs on lines containing only spaces
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
$wrapped_mode = 1 unless defined($self->{verbatim});
$self->pushline($line."\n");
undef $self->{controlkey};
} elsif ($asciidoc and (not defined($self->{verbatim})) and
($line =~ m/^(\+|--)$/)) {
# List Item Continuation or List Block
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
$self->pushline($line."\n");
} elsif ($asciidoc and (not defined($self->{verbatim})) and
($line =~ m/^(={4,}|-{4,}|~{4,}|\^{4,}|\+{4,})$/) and
(defined($paragraph) )and
($paragraph =~ m/^[^\n]*\n$/s) and
(length($paragraph) == (length($line)+1))) {
# Found title
$wrapped_mode = 0;
my $level = $line;
$level =~ s/^(.).*$/$1/;
$paragraph =~ s/\n$//s;
my $t = $self->translate($paragraph,
$self->{ref},
"Title $level",
"wrap" => 0);
$self->pushline($t."\n");
$paragraph="";
}
} elsif ((defined $self->{verbatim}) and ($self->{verbatim} == 2)) {
# CommentBlock
if ($line =~ m/^\/{4,}$/) {
undef $self->{verbatim};
undef $self->{type};
$wrapped_mode = 1;
$self->pushline(($level x (length($t)))."\n");
} elsif ($asciidoc and
($line =~ m/^(={1,5})( +)(.*?)( +\1)?$/)) {
my $titlelevel1 = $1;
my $titlespaces = $2;
my $title = $3;
my $titlelevel2 = $4||"";
# Found one line title
} else {
push @comments, $line;
}
} elsif ((not defined($self->{verbatim})) and ($line =~ m/^(\+|--)$/)) {
# List Item Continuation or List Block
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
$self->pushline($line."\n");
} elsif ((not defined($self->{verbatim})) and
($line =~ m/^(={2,}|-{2,}|~{2,}|\^{2,}|\+{2,})$/) and
(defined($paragraph) )and
($paragraph =~ m/^[^\n]*\n$/s) and
(columns($paragraph, $self->{TT}{po_in}{encoder}, $ref) == (length($line)))) {
# Found title
$wrapped_mode = 0;
my $level = $line;
$level =~ s/^(.).*$/$1/;
$paragraph =~ s/\n$//s;
my $t = $self->translate($paragraph,
$self->{ref},
"Title $level",
"comment" => join("\n", @comments),
"wrap" => 0);
$self->pushline($t."\n");
$paragraph="";
@comments=();
$wrapped_mode = 1;
$self->pushline(($level x (columns($t, $self->{TT}{po_in}{encoder}, $ref)))."\n");
} elsif ($line =~ m/^(={1,5})( +)(.*?)( +\1)?$/) {
my $titlelevel1 = $1;
my $titlespaces = $2;
my $title = $3;
my $titlelevel2 = $4||"";
# Found one line title
do_paragraph($self,$paragraph,$wrapped_mode);
$wrapped_mode = 0;
$paragraph="";
my $t = $self->translate($title,
$self->{ref},
"Title $titlelevel1",
"comment" => join("\n", @comments),
"wrap" => 0);
$self->pushline($titlelevel1.$titlespaces.$t.$titlelevel2."\n");
@comments=();
$wrapped_mode = 1;
} elsif ($line =~ m/^(\/{4,}|\+{4,}|-{4,}|\.{4,}|\*{4,}|_{4,}|={4,}|~{4,}|\|={4,})$/) {
# Found one delimited block
my $t = $line;
$t =~ s/^(.).*$/$1/;
my $type = "delimited block $t";
if (defined $self->{verbatim} and ($self->{type} ne $type)) {
$paragraph .= "$line\n";
} else {
do_paragraph($self,$paragraph,$wrapped_mode);
$wrapped_mode = 0;
$paragraph="";
my $t = $self->translate($title,
$self->{ref},
"Title $titlelevel1",
"wrap" => 0);
$self->pushline($titlelevel1.$titlespaces.$t.$titlelevel2."\n");
$wrapped_mode = 1;
} elsif ($asciidoc and
($line =~ m/^(\/{4,}|\+{4,}|-{4,}|\.{4,}|\*{4,}|_{4,}|={4,}|~{4,})$/)) {
# Found one delimited block
my $t = $line;
$t =~ s/^(.).*$/$1/;
my $type = "delimited block $t";
if (defined $self->{verbatim} and ($self->{type} ne $type)) {
$paragraph .= "$line\n";
} else {
do_paragraph($self,$paragraph,$wrapped_mode);
if ( (defined $self->{type})
and ($self->{type} eq $type)) {
undef $self->{type};
# PassthroughBlock
$wrapped_mode = 0;
$self->{verbatim} = 1;
} elsif ($t eq "-") {
} elsif ($t eq "-" or $t eq "|") {
# ListingBlock
$wrapped_mode = 0;
$self->{verbatim} = 1;
} elsif ($t eq "~") {
# Filter blocks, TBC: not translated
$wrapped_mode = 0;
$self->{verbatim} = 2;
$self->{verbatim} = 3;
}
$self->{type} = $type;
}
$paragraph="";
$self->pushline($line."\n");
}
} elsif ($asciidoc and not defined $self->{verbatim} and
($line =~ m/^\[\[([^\]]*)\]\]$/)) {
# Found BlockId
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
$wrapped_mode = 1;
$self->pushline($line."\n");
undef $self->{bullet};
undef $self->{indent};
} elsif ($asciidoc and not defined $self->{verbatim} and
($paragraph eq "") and
($line =~ m/^((?:NOTE|TIP|IMPORTANT|WARNING|CAUTION):\s+)(.*)$/)) {
my $type = $1;
my $text = $2;
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph=$text."\n";
$wrapped_mode = 1;
$self->pushline($type);
undef $self->{bullet};
undef $self->{indent};
} elsif ($asciidoc and not defined $self->{verbatim} and
($line =~ m/^\[(NOTE|TIP|IMPORTANT|WARNING|CAUTION|verse|quote)\]$/)) {
my $type = $1;
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
$wrapped_mode = 1;
$self->pushline($line."\n");
if ($type eq "verse") {
$wrapped_mode = 0;
}
undef $self->{bullet};
undef $self->{indent};
} elsif ($asciidoc and not defined $self->{verbatim} and
($line =~ m/^\[(verse|quote), +(.*)\]$/)) {
my $type = $1;
my $arg = $2;
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
my $t = $self->translate($arg,
$self->{ref},
"$type",
"wrap" => 0);
$self->pushline("[$type, $t]\n");
$wrapped_mode = 1;
if ($type eq "verse") {
$wrapped_mode = 0;
}
$self->{type} = $type;
undef $self->{bullet};
undef $self->{indent};
} elsif ($asciidoc and not defined $self->{verbatim} and
($line =~ m/^\[icon="(.*)"\]$/)) {
my $arg = $1;
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
my $t = $self->translate($arg,
$self->{ref},
"icon",
"wrap" => 0);
$self->pushline("[icon=\"$t\"]\n");
$wrapped_mode = 1;
undef $self->{bullet};
undef $self->{indent};
} elsif ($asciidoc and not defined $self->{verbatim} and
($line =~ m/^\[icons=None, +caption="(.*)"\]$/)) {
my $arg = $1;
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
my $t = $self->translate($arg,
$self->{ref},
"caption",
"wrap" => 0);
$self->pushline("[icons=None, caption=\"$t\"]\n");
$wrapped_mode = 1;
undef $self->{bullet};
undef $self->{indent};
} elsif ($asciidoc and not defined $self->{verbatim} and
($line =~ m/^(\s*)([*_+`'#[:alnum:]].*)((?:::|;;|\?\?|:-)(?: *\\)?)$/)) {
my $indent = $1;
my $label = $2;
my $labelend = $3;
# Found labeled list
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
$wrapped_mode = 1;
$self->{bullet} = "";
$self->pushline($line."\n") unless defined($self->{verbatim}) && $self->{verbatim} == 2;
}
} elsif ((not defined($self->{verbatim})) and ($line =~ m/^\/\/(.*)/)) {
# Comment line
push @comments, $1;
} elsif (not defined $self->{verbatim} and
($line =~ m/^\[\[([^\]]*)\]\]$/)) {
# Found BlockId
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
$wrapped_mode = 1;
$self->pushline($line."\n");
undef $self->{bullet};
undef $self->{indent};
} elsif (not defined $self->{verbatim} and
($paragraph eq "") and
($line =~ m/^((?:$asciidoc_RE_STYLE_ADMONITION):\s+)(.*)$/)) {
my $type = $1;
my $text = $2;
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph=$text."\n";
$wrapped_mode = 1;
$self->pushline($type);
undef $self->{bullet};
undef $self->{indent};
} elsif (not defined $self->{verbatim} and
($line =~ m/^\[($asciidoc_RE_STYLES)\]$/)) {
my $type = $1;
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
$wrapped_mode = 1;
$self->pushline($line."\n");
if ($type eq "verse") {
$wrapped_mode = 0;
}
undef $self->{bullet};
undef $self->{indent};
} elsif (not defined $self->{verbatim} and
($line =~ m/^\[(['"]?)(verse|quote)\1, +(.*)\]$/)) {
my $quote = $1 || '';
my $type = $2;
my $arg = $3;
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
my $t = $self->translate($arg,
$self->{ref},
"$type",
"comment" => join("\n", @comments),
"wrap" => 0);
$self->pushline("[$quote$type$quote, $t]\n");
@comments=();
$wrapped_mode = 1;
if ($type eq "verse") {
$wrapped_mode = 0;
}
$self->{type} = $type;
undef $self->{bullet};
undef $self->{indent};
} elsif (not defined $self->{verbatim} and
($line =~ m/^\[icon="(.*)"\]$/)) {
my $arg = $1;
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
my $t = $self->translate($arg,
$self->{ref},
"icon",
"comment" => join("\n", @comments),
"wrap" => 0);
$self->pushline("[icon=\"$t\"]\n");
@comments=();
$wrapped_mode = 1;
undef $self->{bullet};
undef $self->{indent};
} elsif (not defined $self->{verbatim} and
($line =~ m/^\[icons=None, +caption="(.*)"\]$/)) {
my $arg = $1;
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
my $t = $self->translate($arg,
$self->{ref},
"caption",
"comment" => join("\n", @comments),
"wrap" => 0);
$self->pushline("[icons=None, caption=\"$t\"]\n");
@comments=();
$wrapped_mode = 1;
undef $self->{bullet};
undef $self->{indent};
} elsif (not defined $self->{verbatim} and
($line =~ m/^(\s*)([*_+`'#[:alnum:]].*)((?:::|;;|\?\?|:-)(?: *\\)?)$/)) {
my $indent = $1;
my $label = $2;
my $labelend = $3;
# Found labeled list
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
$wrapped_mode = 1;
$self->{bullet} = "";
$self->{indent} = $indent;
my $t = $self->translate($label,
$self->{ref},
"Labeled list",
"comment" => join("\n", @comments),
"wrap" => 0);
$self->pushline("$indent$t$labelend\n");
@comments=();
} elsif (not defined $self->{verbatim} and
($line =~ m/^(\s*)(\S.*)((?:::|;;)\s+)(.*)$/)) {
my $indent = $1;
my $label = $2;
my $labelend = $3;
my $labeltext = $4;
# Found Horizontal Labeled Lists
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph=$labeltext."\n";
$wrapped_mode = 1;
$self->{bullet} = "";
$self->{indent} = $indent;
my $t = $self->translate($label,
$self->{ref},
"Labeled list",
"comment" => join("\n", @comments),
"wrap" => 0);
$self->pushline("$indent$t$labelend");
@comments=();
} elsif (not defined $self->{verbatim} and
($line =~ m/^\:(\S.*?)(:\s*)(.*)$/)) {
my $attrname = $1;
my $attrsep = $2;
my $attrvalue = $3;
# Found a Attribute entry
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
$wrapped_mode = 1;
undef $self->{bullet};
undef $self->{indent};
my $t = $self->translate($attrvalue,
$self->{ref},
"Attribute :$attrname:",
"comment" => join("\n", @comments),
"wrap" => 0);
$self->pushline(":$attrname$attrsep$t\n");
@comments=();
} elsif (not defined $self->{verbatim} and
($line !~ m/^\.\./) and ($line =~ m/^\.(\S.*)$/)) {
my $title = $1;
# Found block title
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
$wrapped_mode = 1;
undef $self->{bullet};
undef $self->{indent};
my $t = $self->translate($title,
$self->{ref},
"Block title",
"comment" => join("\n", @comments),
"wrap" => 0);
$self->pushline(".$t\n");
@comments=();
} elsif (not defined $self->{verbatim} and
($line =~ m/^(\s*)((?:[-*o+]|(?:[0-9]+[.\)])|(?:[a-z][.\)])|\([0-9]+\)|\.|\.\.)\s+)(.*)$/)) {
my $indent = $1||"";
my $bullet = $2;
my $text = $3;
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph = $text."\n";
$self->{indent} = $indent;
$self->{bullet} = $bullet;
} elsif (not defined $self->{verbatim} and
($line =~ m/^((?:<?[0-9]+)?> +)(.*)$/)) {
my $bullet = $1;
my $text = $2;
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph = $text."\n";
$self->{indent} = "";
$self->{bullet} = $bullet;
} elsif (not defined $self->{verbatim} and
(defined $self->{bullet} and $line =~ m/^(\s+)(.*)$/)) {
my $indent = $1;
my $text = $2;
if (not defined $self->{indent}) {
$paragraph .= $text."\n";
$self->{indent} = $indent;
my $t = $self->translate($label,
$self->{ref},
"Labeled list",
"wrap" => 0);
$self->pushline("$indent$t$labelend\n");
} elsif ($asciidoc and not defined $self->{verbatim} and
($line =~ m/^(\s*)(\S.*)((?:::|;;)\s+)(.*)$/)) {
my $indent = $1;
my $label = $2;
my $labelend = $3;
my $labeltext = $4;
# Found Horizontal Labeled Lists
} elsif (length($paragraph) and (length($self->{bullet}) + length($self->{indent}) == length($indent))) {
$paragraph .= $text."\n";
} else {
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph=$labeltext."\n";
$wrapped_mode = 1;
$self->{bullet} = "";
$self->{indent} = $indent;
my $t = $self->translate($label,
$self->{ref},
"Labeled list",
"wrap" => 0);
$self->pushline("$indent$t$labelend");
} elsif ($asciidoc and not defined $self->{verbatim} and
($line =~ m/^\:(\S.*?)(:\s*)(.*)$/)) {
my $attrname = $1;
my $attrsep = $2;
my $attrvalue = $3;
# Found a Attribute entry
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
$wrapped_mode = 1;
undef $self->{bullet};
undef $self->{indent};
my $t = $self->translate($attrvalue,
$self->{ref},
"Attribute :$attrname:",
"wrap" => 0);
$self->pushline(":$attrname$attrsep$t\n");
} elsif ($asciidoc and not defined $self->{verbatim} and
($line !~ m/^\.\./) and ($line =~ m/^\.(\S.*)$/)) {
my $title = $1;
# Found block title
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
$wrapped_mode = 1;
undef $self->{bullet};
undef $self->{indent};
my $t = $self->translate($title,
$self->{ref},
"Block title",
"wrap" => 0);
$self->pushline(".$t\n");
} elsif ($asciidoc and not defined $self->{verbatim} and
($line =~ m/^(\s*)((?:[-*o+]|(?:[0-9]+[.\)])|(?:[a-z][.\)])|\([0-9]+\)|\.|\.\.)\s+)(.*)$/)) {
my $indent = $1||"";
my $bullet = $2;
my $text = $3;
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph = $text."\n";
$self->{indent} = $indent;
$self->{bullet} = $bullet;
} elsif ($asciidoc and not defined $self->{verbatim} and
($line =~ m/^((?:<?[0-9]+)?> +)(.*)$/)) {
my $bullet = $1;
my $text = $2;
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph = $text."\n";
$self->{indent} = "";
$self->{bullet} = $bullet;
} elsif ($asciidoc and not defined $self->{verbatim} and
(defined $self->{bullet} and $line =~ m/^(\s+)(.*)$/)) {
my $indent = $1;
my $text = $2;
if (not defined $self->{indent}) {
$paragraph .= $text."\n";
$self->{indent} = $indent;
} elsif (length($paragraph) and (length($self->{bullet}) + length($self->{indent}) == length($indent))) {
$paragraph .= $text."\n";
} else {
$self->{bullet} = "";
}
} else {
return parse_fallback($self,$line,$ref,$paragraph,$wrapped_mode,$expect_header,$end_of_paragraph);
}
return ($paragraph,$wrapped_mode,$expect_header,$end_of_paragraph);
}
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph = $text."\n";
$self->{indent} = $indent;
$self->{bullet} = "";
}
} elsif ($markdown and
(not defined($self->{verbatim})) and
($line =~ m/^(={4,}|-{4,})$/) and
(defined($paragraph) )and
($paragraph =~ m/^[^\n]*\n$/s) and
(length($paragraph) == (length($line)+1))) {
# XXX: There can be any number of underlining according
# to the documentation. This detection, which avoid
# translating the formatting, is only supported if
# the underlining has the same size as the header text.
# Found title
$wrapped_mode = 0;
my $level = $line;
$level =~ s/^(.).*$/$1/;
my $t = $self->translate($paragraph,
$self->{ref},
"Title $level",
"wrap" => 0);
$self->pushline($t);
$paragraph="";
$wrapped_mode = 1;
$self->pushline(($level x (length($t)-1))."\n");
} elsif ($markdown and
($line =~ m/^(#{1,6})( +)(.*?)( +\1)?$/)) {
my $titlelevel1 = $1;
my $titlespaces = $2;
my $title = $3;
my $titlelevel2 = $4||"";
# Found one line title
sub parse_markdown {
my ($self,$line,$ref,$paragraph,$wrapped_mode,$expect_header,$end_of_paragraph) = @_;
if (($line =~ m/^(={4,}|-{4,})$/) and
(defined($paragraph) ) and
($paragraph =~ m/^[^\n]*\n$/s) and
(length($paragraph) == (length($line)+1))) {
# XXX: There can be any number of underlining according
# to the documentation. This detection, which avoid
# translating the formatting, is only supported if
# the underlining has the same size as the header text.
# Found title
$wrapped_mode = 0;
my $level = $line;
$level =~ s/^(.).*$/$1/;
my $t = $self->translate($paragraph,
$self->{ref},
"Title $level",
"wrap" => 0);
$self->pushline($t);
$paragraph="";
$wrapped_mode = 1;
$self->pushline(($level x (length($t)-1))."\n");
} elsif ($line =~ m/^(#{1,6})( +)(.*?)( +\1)?$/) {
my $titlelevel1 = $1;
my $titlespaces = $2;
my $title = $3;
my $titlelevel2 = $4||"";
# Found one line title
do_paragraph($self,$paragraph,$wrapped_mode);
$wrapped_mode = 0;
$paragraph="";
my $t = $self->translate($title,
$self->{ref},
"Title $titlelevel1",
"wrap" => 0);
$self->pushline($titlelevel1.$titlespaces.$t.$titlelevel2."\n");
$wrapped_mode = 1;
} elsif (($paragraph eq "") and
($line =~ /^((\*\s*){3,}|(-\s*){3,}|(_\s*){3,})$/)) {
# Horizontal rule
$wrapped_mode = 1;
$self->pushline($line."\n");
} elsif ( $line =~ /^\s*\[\[\!\S+\s*$/ # macro begin
or $line =~ /^\s*"""\s*\]\]\s*$/) { # """ textblock inside macro end
# Avoid translating Markdown lines containing only markup
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
$wrapped_mode = 1;
$self->pushline("$line\n");
} elsif ( $line =~ /^#/ # headline
or $line =~ /^\s*\[\[\!\S[^\]]*\]\]\s*$/) { # sole macro
# Preserve some Markdown markup as a single line
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="$line\n";
$wrapped_mode = 0;
$end_of_paragraph = 1;
} elsif ($line =~ /^"""/) { # """ textblock inside macro end
# Markdown markup needing separation _before_ this line
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="$line\n";
$wrapped_mode = 1;
} else {
return parse_fallback($self,$line,$ref,$paragraph,$wrapped_mode,$expect_header,$end_of_paragraph);
}
return ($paragraph,$wrapped_mode,$expect_header,$end_of_paragraph);
}
sub parse {
my $self = shift;
my ($line,$ref);
my $paragraph="";
my $wrapped_mode = 1;
my $expect_header = 1;
my $end_of_paragraph = 0;
($line,$ref)=$self->shiftline();
my $file = $ref;
$file =~ s/:[0-9]+$// if defined($line);
while (defined($line)) {
$ref =~ m/^(.*):[0-9]+$/;
if ($1 ne $file) {
$file = $1;
do_paragraph($self,$paragraph,$wrapped_mode);
$wrapped_mode = 0;
$paragraph="";
my $t = $self->translate($title,
$self->{ref},
"Title $titlelevel1",
"wrap" => 0);
$self->pushline($titlelevel1.$titlespaces.$t.$titlelevel2."\n");
$wrapped_mode = 1;
} elsif ($markdown and
($paragraph eq "") and
($line =~ /^((\*\s*){3,}|(-\s*){3,}|(_\s*){3,})$/)) {
# Horizontal rule
$wrapped_mode = 1;
$self->pushline($line."\n");
} elsif ($line =~ /^-- $/) {
# Break paragraphs on email signature hint
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
$wrapped_mode = 1;
$self->pushline($line."\n");
} elsif ( $line =~ /^=+$/
or $line =~ /^_+$/
or $line =~ /^-+$/) {
$wrapped_mode = 0;
$paragraph .= $line."\n";
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
$wrapped_mode = 1;
} elsif ($markdown and
( $line =~ /^\s*\[\[\!\S+\s*$/ # macro begin
or $line =~ /^\s*"""\s*\]\]\s*$/)) { # """ textblock inside macro end
# Avoid translating Markdown lines containing only markup
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
$wrapped_mode = 1;
$self->pushline("$line\n");
} elsif ($markdown and
( $line =~ /^#/ # headline
or $line =~ /^\s*\[\[\!\S[^\]]*\]\]\s*$/)) { # sole macro
# Preserve some Markdown markup as a single line
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="$line\n";
$wrapped_mode = 0;
$end_of_paragraph = 1;
} elsif ($markdown and
( $line =~ /^"""/)) { # """ textblock inside macro end
# Markdown markup needing separation _before_ this line
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="$line\n";
$wrapped_mode = 1;
} elsif ($tabs eq "split" and $line =~ m/\t/ and $paragraph !~ m/\t/s) {
$wrapped_mode = 0;
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph = "$line\n";
$wrapped_mode = 0;
} elsif ($tabs eq "split" and $line !~ m/\t/ and $paragraph =~ m/\t/s) {
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph = "$line\n";
$wrapped_mode = 1;
} else {
if ($line =~ /^\s/) {
# A line starting by a space indicates a non-wrap
# paragraph
$wrapped_mode = 0;
}
if ($markdown and
( $line =~ /\S $/ # explicit newline
or $line =~ /"""$/)) { # """ textblock inside macro begin
# Markdown markup needing separation _after_ this line
$end_of_paragraph = 1;
} else {
undef $self->{bullet};
undef $self->{indent};
}
if ($fortunes) {
$line =~ s/%%(.*)$//;
}
# TODO: comments
$paragraph .= $line."\n";
$expect_header = 1;
}
chomp($line);
$self->{ref}="$ref";
($paragraph,$wrapped_mode,$expect_header,$end_of_paragraph) = &$parse_func($self,$line,$ref,$paragraph,$wrapped_mode,$expect_header,$end_of_paragraph);
# paragraphs starting by a bullet, or numbered
# or paragraphs with a line containing many consecutive spaces
# (more than 3)
my $t = $self->translate($paragraph,
$self->{ref},
$type,
"comment" => join("\n", @comments),
"wrap" => $wrap);
@comments = ();
if (defined $self->{bullet}) {
my $bullet = $self->{bullet};
my $indent1 = $self->{indent};
trunk/package/bin/po4a/lib/Locale/Po4a/TransTractor.pm
1111
1212
1313
14
14
1515
1616
1717
......
131131
132132
133133
134
135
136
137
138
134
135
136
137
138
139139
140
141
142
140
141
142
143143
144
145
146
144
145
146
147147
148148
149149
150
151
152
153
154
155
150
151
152
153
154
155
156156
157157
158158
......
275275
276276
277277
278
279
280
281
282
283
284
285
286
278
279
280
281
282
283
284
285
286
287287
288288
289289
290290
291291
292
293
292
293
294294
295295
296296
297297
298
298
299299
300
301
302
300
301
302
303303
304304
305
306
307
305
306
307
308308
309309
310310
311311
312312
313
314
315
313
314
315
316316
317317
318
318
319319
320
321
322
323
320
321
322
323
324324
325325
326
326
327327
328
329
330
331
328
329
330
331
332332
333333
334
334
335335
336336
337337
......
372372
373373
374374
375
375
376376
377377
378
378
379379
380380
381381
......
383383
384384
385385
386
387386
388387
389388
......
407406
408407
409408
410
409
411410
412411
413412
414
413
415414
416
417
418
419
420
415
416
417
418
419
421420
422
423
424
425
426
427
428
429
430
431
432
433
421
422
423
424
425
426
427
428
429
430
431
432
434433
435434
436
435
437436
438437
439438
......
446445
447446
448447
449
448
450449
451450
452451
453
452
454453
455
456
457
458
454
455
456
457
459458
460
461
462
463
464
459
460
461
462
463
465464
466465
467466
468467
469468
470469
471
470
472471
473472
474473
......
541540
542541
543542
544
543
545544
546545
547
548
546
547
549548
550549
551550
552
553
551
552
554553
555554
556555
557
558
556
557
559558
560559
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
579580
580581
581582
582
583
583
584
584585
585586
586
587
587
588
588589
589590
590591
591
592
592
593
593594
594595
595
596
596
597
597598
598599
599600
600
601
601602
602603
603604
......
617618
618619
619620
620
621
622
621
622
623
623624
624625
625626
626627
627628
628
629
629630
630631
631632
......
635636
636637
637638
638
639
639
640
640641
641642
642643
643644
644
645
646
645
646
647
647648
648649
649
650
651
650
651
652
652653
653654
654655
655
656
657
658
659
656
657
658
659
660
660661
661662
662
663
663664
664
665
666
667
668
669
665
666
667
668
669
670
670671
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
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
700701
701702
702703
......
739740
740741
741742
742
743
743744
744745
745746
746
747
747
748
748749
749750
750751
......
782783
783784
784785
785
786
786787
787788
788789
......
838839
839840
840841
841
842
842
843
843844
844845
845846
846847
847
848
848849
849
850
851
852
853
854
855
856
857
850
851
852
853
854
855
856
857
858
858859
859860
860861
861
862
863
862
863
864
864865
865866
866867
......
868869
869870
870871
871
872
872
873
873874
874875
875
876
877
878
879
880
881
876
877
878
879
880
881
882
882883
883884
884885
885886
886887
887888
888
889
889890
890
891
892
893
894
895
896
897
898
899
900
901
902
891
892
893
894
895
896
897
898
899
900
901
902
903
903904
904905
905906
906907
907
908
909
910
911
908
909
910
911
912
912913
913914
914
915
915
916
916917
917918
918919
......
938939
939940
940941
941
942
942943
943
944
944945
945946
946947
......
980981
981982
982983
983
984
984985
985986
986987
......
10031004
10041005
10051006
1006
1007
1007
1008
10081009
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
10201021
10211022
10221023
......
10341035
10351036
10361037
1037
1038
1039
1040
1041
1042
1043
1044
1038
1039
1040
1041
1042
1043
1044
1045
10451046
10461047
10471048
......
11041105
11051106
11061107
1107
1108
1108
1109
11091110
11101111
11111112
use subs qw(makespace);
use vars qw($VERSION @ISA @EXPORT);
$VERSION="0.41.1";
$VERSION="0.44";
@ISA = qw(DynaLoader);
@EXPORT = qw(new process translate
read write readpo writepo
my $first=1;
my ($line,$lref)=$self->shiftline();
while (defined($line)) {
if ($line =~ m/<p>/ && !$first--; ) {
# Not the first time we see <p>.
# Reput the current line in input,
# and put the built paragraph to output
$self->unshiftline($line,$lref);
if ($line =~ m/<p>/ && !$first--; ) {
# Not the first time we see <p>.
# Reput the current line in input,
# and put the built paragraph to output
$self->unshiftline($line,$lref);
# Now that the document is formed, translate it:
# - Remove the leading tag
$paragraph =~ s/^<p>//s;
# Now that the document is formed, translate it:
# - Remove the leading tag
$paragraph =~ s/^<p>//s;
# - push to output the leading tag (untranslated) and the
# rest of the paragraph (translated)
$self->pushline( "<p>"
# - push to output the leading tag (untranslated) and the
# rest of the paragraph (translated)
$self->pushline( "<p>"
. $document->translate($paragraph,$pararef)
);
next PARAGRAPH;
} else {
# Append to the paragraph
$paragraph .= $line;
$pararef = $lref unless(length($pararef));
}
next PARAGRAPH;
} else {
# Append to the paragraph
$paragraph .= $line;
$pararef = $lref unless(length($pararef));
}
# Reinit the loop
($line,$lref)=$self->shiftline();
# Build the args for new()
my %newparams = ();
foreach (keys %params) {
next if ($_ eq 'po_in_name' ||
$_ eq 'po_out_name' ||
$_ eq 'file_in_name' ||
$_ eq 'file_in_charset' ||
$_ eq 'file_out_name' ||
$_ eq 'file_out_charset' ||
$_ eq 'addendum' ||
$_ eq 'addendum_charset');
$newparams{$_}=$params{$_};
next if ($_ eq 'po_in_name' ||
$_ eq 'po_out_name' ||
$_ eq 'file_in_name' ||
$_ eq 'file_in_charset' ||
$_ eq 'file_out_name' ||
$_ eq 'file_out_charset' ||
$_ eq 'addendum' ||
$_ eq 'addendum_charset');
$newparams{$_}=$params{$_};
}
$self->detected_charset($params{'file_in_charset'});
$self->{TT}{'file_out_charset'}=$params{'file_out_charset'};
if (defined($self->{TT}{'file_out_charset'}) and
length($self->{TT}{'file_out_charset'})) {
$self->{TT}{'file_out_encoder'} = find_encoding($self->{TT}{'file_out_charset'});
length($self->{TT}{'file_out_charset'})) {
$self->{TT}{'file_out_encoder'} = find_encoding($self->{TT}{'file_out_charset'});
}
$self->{TT}{'addendum_charset'}=$params{'addendum_charset'};
chdir $params{'srcdir'}
if (defined $params{'srcdir'});
if (defined $params{'srcdir'});
foreach my $file (@{$params{'po_in_name'}}) {
print STDERR "readpo($file)... " if $self->debug();
$self->readpo($file);
print STDERR "done.\n" if $self->debug()
print STDERR "readpo($file)... " if $self->debug();
$self->readpo($file);
print STDERR "done.\n" if $self->debug()
}
foreach my $file (@{$params{'file_in_name'}}) {
print STDERR "read($file)..." if $self->debug();
$self->read($file);
print STDERR "done.\n" if $self->debug();
print STDERR "read($file)..." if $self->debug();
$self->read($file);
print STDERR "done.\n" if $self->debug();
}
print STDERR "parse..." if $self->debug();
$self->parse();
print STDERR "done.\n" if $self->debug();
foreach my $file (@{$params{'addendum'}}) {
print STDERR "addendum($file)..." if $self->debug();
$self->addendum($file) || die "An addendum failed\n";
print STDERR "done.\n" if $self->debug();
print STDERR "addendum($file)..." if $self->debug();
$self->addendum($file) || die "An addendum failed\n";
print STDERR "done.\n" if $self->debug();
}
chdir $params{'destdir'}
if (defined $params{'destdir'});
if (defined $params{'destdir'});
if (defined $params{'file_out_name'}) {
print STDERR "write(".$params{'file_out_name'}.")... "
if $self->debug();
$self->write($params{'file_out_name'});
print STDERR "done.\n" if $self->debug();
print STDERR "write(".$params{'file_out_name'}.")... "
if $self->debug();
$self->write($params{'file_out_name'});
print STDERR "done.\n" if $self->debug();
}
chdir $params{'srcdir'}
if (defined $params{'srcdir'});
if (defined $params{'srcdir'});
if (defined $params{'po_out_name'}) {
print STDERR "writepo(".$params{'po_out_name'}.")... "
if $self->debug();
$self->writepo($params{'po_out_name'});
print STDERR "done.\n" if $self->debug();
print STDERR "writepo(".$params{'po_out_name'}.")... "
if $self->debug();
$self->writepo($params{'po_out_name'});
print STDERR "done.\n" if $self->debug();
}
chdir $params{'calldir'}
if (defined $params{'calldir'});
if (defined $params{'calldir'});
return $self;
}
$self->{TT}{doc_in}=();
$self->{TT}{doc_out}=();
if (defined $options{'verbose'}) {
$self->{TT}{verbose} = $options{'verbose'};
$self->{TT}{verbose} = $options{'verbose'};
}
if (defined $options{'debug'}) {
$self->{TT}{debug} = $options{'debug'};
$self->{TT}{debug} = $options{'debug'};
}
# Input document is in ascii until we prove the opposite (in read())
$self->{TT}{ascii_input}=1;
# document isn't in ascii)
$self->{TT}{utf_mode}=0;
return $self;
}
sub read() {
my $self=shift;
my $filename=shift
or croak wrap_msg(dgettext("po4a", "Can't read from file without having a filename"));
or croak wrap_msg(dgettext("po4a", "Can't read from file without having a filename"));
my $linenum=0;
open INPUT,"<$filename"
or croak wrap_msg(dgettext("po4a", "Can't read from %s: %s"), $filename, $!);
or croak wrap_msg(dgettext("po4a", "Can't read from %s: %s"), $filename, $!);
while (defined (my $textline = <INPUT>)) {
$linenum++;
my $ref="$filename:$linenum";
$textline =~ s/\r$//;
my @entry=($textline,$ref);
push @{$self->{TT}{doc_in}}, @entry;
$linenum++;
my $ref="$filename:$linenum";
$textline =~ s/\r$//;
my @entry=($textline,$ref);
push @{$self->{TT}{doc_in}}, @entry;
if (!defined($self->{TT}{'file_in_charset'})) {
# Detect if this file has non-ascii characters
if($self->{TT}{ascii_input}) {
my $decoder = guess_encoding($textline);
if (!ref($decoder) or $decoder !~ /Encode::XS=/) {
# We have detected a non-ascii line
$self->{TT}{ascii_input} = 0;
# Save the reference for future error message
$self->{TT}{non_ascii_ref} ||= $ref;
}
}
}
if (!defined($self->{TT}{'file_in_charset'})) {
# Detect if this file has non-ascii characters
if($self->{TT}{ascii_input}) {
my $decoder = guess_encoding($textline);
if (!ref($decoder) or $decoder !~ /Encode::XS=/) {
# We have detected a non-ascii line
$self->{TT}{ascii_input} = 0;
# Save the reference for future error message
$self->{TT}{non_ascii_ref} ||= $ref;
}
}
}
}
close INPUT
or croak wrap_msg(dgettext("po4a", "Can't close %s after reading: %s"), $filename, $!);
or croak wrap_msg(dgettext("po4a", "Can't close %s after reading: %s"), $filename, $!);
}
sub write {
my $self=shift;
my $filename=shift
or croak wrap_msg(dgettext("po4a", "Can't write to a file without filename"));
or croak wrap_msg(dgettext("po4a", "Can't write to a file without filename"));
my $fh;
if ($filename eq '-') {
$fh=\*STDOUT;
$fh=\*STDOUT;
} else {
# make sure the directory in which we should write the localized file exists
my $dir = $filename;
if ($dir =~ m|/|) {
$dir =~ s|/[^/]*$||;
# make sure the directory in which we should write the localized file exists
my $dir = $filename;
if ($dir =~ m|/|) {
$dir =~ s|/[^/]*$||;
File::Path::mkpath($dir, 0, 0755) # Croaks on error
if (length ($dir) && ! -e $dir);
}
open $fh,">$filename"
or croak wrap_msg(dgettext("po4a", "Can't write to %s: %s"), $filename, $!);
File::Path::mkpath($dir, 0, 0755) # Croaks on error
if (length ($dir) && ! -e $dir);
}
open $fh,">$filename"
or croak wrap_msg(dgettext("po4a", "Can't write to %s: %s"), $filename, $!);
}
map { print $fh $_ } $self->docheader();
map { print $fh $_ } @{$self->{TT}{doc_out}};
if ($filename ne '-') {
close $fh or croak wrap_msg(dgettext("po4a", "Can't close %s after writing: %s"), $filename, $!);
close $fh or croak wrap_msg(dgettext("po4a", "Can't close %s after writing: %s"), $filename, $!);
}
}
my ($filename,$header)=shift;
my ($errcode,$mode,$position,$boundary,$bmode,$content)=
(1,"","","","","");
(1,"","","","","");
unless (open (INS, "<$filename")) {
warn wrap_msg(dgettext("po4a", "Can't read from %s: %s"), $filename, $!);
goto END_PARSE_ADDFILE;
warn wrap_msg(dgettext("po4a", "Can't read from %s: %s"), $filename, $!);
goto END_PARSE_ADDFILE;
}
unless (defined ($header=<INS>) && $header) {
warn wrap_msg(dgettext("po4a", "Can't read po4a header from %s."), $filename);
goto END_PARSE_ADDFILE;
warn wrap_msg(dgettext("po4a", "Can't read po4a header from %s."), $filename);
goto END_PARSE_ADDFILE;
}
unless ($header =~ s/PO4A-HEADER://i) {
warn wrap_msg(dgettext("po4a", "First line of %s does not look like a po4a header."), $filename);
goto END_PARSE_ADDFILE;
warn wrap_msg(dgettext("po4a", "First line of %s does not look like a po4a header."), $filename);
goto END_PARSE_ADDFILE;
}
foreach my $part (split(/;/,$header)) {
unless ($part =~ m/^\s*([^=]*)=(.*)$/) {
warn wrap_msg(dgettext("po4a", "Syntax error in po4a header of %s, near \"%s\""), $filename, $part);
goto END_PARSE_ADDFILE;
}
my ($key,$value)=($1,$2);
$key=lc($key);
if ($key eq 'mode') { $mode=lc($value);
} elsif ($key eq 'position') { $position=$value;
} elsif ($key eq 'endboundary') {
$boundary=$value;
$bmode='after';
} elsif ($key eq 'beginboundary') {
$boundary=$value;
$bmode='before';
} else {
warn wrap_msg(dgettext("po4a", "Invalid argument in the po4a header of %s: %s"), $filename, $key);
goto END_PARSE_ADDFILE;
}
unless ($part =~ m/^\s*([^=]*)=(.*)$/) {
warn wrap_msg(dgettext("po4a", "Syntax error in po4a header of %s, near \"%s\""), $filename, $part);
goto END_PARSE_ADDFILE;
}
my ($key,$value)=($1,$2);
$key=lc($key);
if ($key eq 'mode') {
$mode=lc($value);
} elsif ($key eq 'position') {
$position=$value;
} elsif ($key eq 'endboundary') {
$boundary=$value;
$bmode='after';
} elsif ($key eq 'beginboundary') {
$boundary=$value;
$bmode='before';
} else {
warn wrap_msg(dgettext("po4a", "Invalid argument in the po4a header of %s: %s"), $filename, $key);
goto END_PARSE_ADDFILE;
}
}
unless (length($mode)) {
warn wrap_msg(dgettext("po4a", "The po4a header of %s does not define the mode."), $filename);
goto END_PARSE_ADDFILE;
warn wrap_msg(dgettext("po4a", "The po4a header of %s does not define the mode."), $filename);
goto END_PARSE_ADDFILE;
}
unless ($mode eq "before" || $mode eq "after") {
warn wrap_msg(dgettext("po4a", "Mode invalid in the po4a header of %s: should be 'before' or 'after' not %s."), $filename, $mode);
goto END_PARSE_ADDFILE;
warn wrap_msg(dgettext("po4a", "Mode invalid in the po4a header of %s: should be 'before' or 'after' not %s."), $filename, $mode);
goto END_PARSE_ADDFILE;
}
unless (length($position)) {
warn wrap_msg(dgettext("po4a", "The po4a header of %s does not define the position."), $filename);
goto END_PARSE_ADDFILE;
warn wrap_msg(dgettext("po4a", "The po4a header of %s does not define the position."), $filename);
goto END_PARSE_ADDFILE;
}
unless ($mode eq "before" || length($boundary)) {
warn wrap_msg(dgettext("po4a", "No ending boundary given in the po4a header, but mode=after."));
goto END_PARSE_ADDFILE;
warn wrap_msg(dgettext("po4a", "No ending boundary given in the po4a header, but mode=after."));
goto END_PARSE_ADDFILE;
}
while (defined(my $line = <INS>)) {
$content .= $line;
$content .= $line;
}
close INS;
print STDERR "Apply addendum $filename..." if $self->debug();
unless ($filename) {
warn wrap_msg(dgettext("po4a",
"Can't apply addendum when not given the filename"));
return 0;
warn wrap_msg(dgettext("po4a",
"Can't apply addendum when not given the filename"));
return 0;
}
die wrap_msg(dgettext("po4a", "Addendum %s does not exist."), $filename)
unless -e $filename;
my ($errcode,$mode,$position,$boundary,$bmode,$content)=
addendum_parse($filename);
addendum_parse($filename);
return 0 if ($errcode);
print STDERR "mode=$mode;pos=$position;bound=$boundary;bmode=$bmode;ctn=$content\n"
# suppose it's already in the output document's charset
if (defined($self->{TT}{'addendum_charset'}) &&
length($self->{TT}{'addendum_charset'})) {
Encode::from_to($content,$self->{TT}{'addendum_charset'},
$self->get_out_charset);
Encode::from_to($content,$self->{TT}{'addendum_charset'},
$self->get_out_charset);
}
my $found = scalar grep { /$position/ } @{$self->{TT}{doc_out}};
if ($found == 0) {
warn wrap_msg(dgettext("po4a",
"No candidate position for the addendum %s."), $filename);
return 0;
warn wrap_msg(dgettext("po4a",
"No candidate position for the addendum %s."), $filename);
return 0;
}
if ($found > 1) {
warn wrap_msg(dgettext("po4a",
"More than one candidate position found for the addendum %s."), $filename);
return 0;
warn wrap_msg(dgettext("po4a",
"More than one candidate position found for the addendum %s."), $filename);
return 0;
}
if ($mode eq "before") {
if ($self->verbose() > 1 || $self->debug() ) {
map { print STDERR wrap_msg(dgettext("po4a", "Addendum '%s' applied before this line: %s"), $filename, $_) if (/$position/);
} @{$self->{TT}{doc_out}};
}
@{$self->{TT}{doc_out}} = map { /$position/ ? ($content,$_) : $_
if ($self->verbose() > 1 || $self->debug() ) {
map { print STDERR wrap_msg(dgettext("po4a", "Addendum '%s' applied before this line: %s"), $filename, $_) if (/$position/);
} @{$self->{TT}{doc_out}};
}
@{$self->{TT}{doc_out}} = map { /$position/ ? ($content,$_) : $_
} @{$self->{TT}{doc_out}};
} else {
my @newres=();
my @newres=();
do {
# make sure it doesn't whine on empty document
my $line = scalar @{$self->{TT}{doc_out}} ? shift @{$self->{TT}{doc_out}} : "";
push @newres,$line;
my $outline=mychomp($line);
$outline =~ s/^[ \t]*//;
do {
# make sure it doesn't whine on empty document
my $line = scalar @{$self->{TT}{doc_out}} ? shift @{$self->{TT}{doc_out}} : "";
push @newres,$line;
my $outline=mychomp($line);
$outline =~ s/^[ \t]*//;
if ($line =~ m/$position/) {
while ($line=shift @{$self->{TT}{doc_out}}) {
last if ($line=~/$boundary/);
push @newres,$line;
}
if (defined $line) {
if ($bmode eq 'before') {
print wrap_msg(dgettext("po4a",
"Addendum '%s' applied before this line: %s"),
$filename, $outline)
if ($self->verbose() > 1 || $self->debug());
push @newres,$content;
push @newres,$line;
} else {
print wrap_msg(dgettext("po4a",
"Addendum '%s' applied after the line: %s."),
$filename, $outline)
if ($self->verbose() > 1 || $self->debug());
push @newres,$line;
push @newres,$content;
}
} else {
print wrap_msg(dgettext("po4a", "Addendum '%s' applied at the end of the file."), $filename)
if ($self->verbose() > 1 || $self->debug());
push @newres,$content;
}
}
} while (scalar @{$self->{TT}{doc_out}});
@{$self->{TT}{doc_out}} = @newres;
if ($line =~ m/$position/) {
while ($line=shift @{$self->{TT}{doc_out}}) {
last if ($line=~/$boundary/);
push @newres,$line;
}
if (defined $line) {
if ($bmode eq 'before') {
print wrap_msg(dgettext("po4a",
"Addendum '%s' applied before this line: %s"),
$filename, $outline)
if ($self->verbose() > 1 || $self->debug());
push @newres,$content;
push @newres,$line;
} else {
print wrap_msg(dgettext("po4a",
"Addendum '%s' applied after the line: %s."),
$filename, $outline)
if ($self->verbose() > 1 || $self->debug());
push @newres,$line;
push @newres,$content;
}
} else {
print wrap_msg(dgettext("po4a", "Addendum '%s' applied at the end of the file."), $filename)
if ($self->verbose() > 1 || $self->debug());
push @newres,$content;
}
}
} while (scalar @{$self->{TT}{doc_out}});
@{$self->{TT}{doc_out}} = @newres;
}
print STDERR "done.\n" if $self->debug();
return 1;
sub shiftline {
my ($line,$ref)=(shift @{$_[0]->{TT}{doc_in}},
shift @{$_[0]->{TT}{doc_in}});
shift @{$_[0]->{TT}{doc_in}});
return ($line,$ref);
}
sub unshiftline {
my $self = shift;
unshift @{$self->{TT}{doc_in}},@_;
my $self = shift;
unshift @{$self->{TT}{doc_in}},@_;
}
sub pushline { push @{$_[0]->{TT}{doc_out}}, $_[1] if defined $_[1]; }
a hash. For example:
$self->translate("string","ref","type",
'wrap' => 1);
'wrap' => 1);
=over
# map { $validoption{$_}=1 } (split(/ /,$validoption));
# foreach (keys %options) {
#Carp::confess "internal error: translate() called with unknown arg $_. Valid options: $validoption"
# unless $validoption{$_};
# Carp::confess "internal error: translate() called with unknown arg $_. Valid options: $validoption"
# unless $validoption{$_};
# }
my $in_charset;
if ($self->{TT}{ascii_input}) {
$in_charset = "ascii";
$in_charset = "ascii";
} else {
if (defined($self->{TT}{'file_in_charset'}) and
length($self->{TT}{'file_in_charset'}) and
$self->{TT}{'file_in_charset'} !~ m/ascii/i) {
$in_charset=$self->{TT}{'file_in_charset'};
} else {
# FYI, the document charset have to be determined *before* we see the first
# string to recode.
die wrap_mod("po4a", dgettext("po4a", "Couldn't determine the input document's charset. Please specify it on the command line. (non-ASCII char at %s)"), $self->{TT}{non_ascii_ref})
}
if (defined($self->{TT}{'file_in_charset'}) and
length($self->{TT}{'file_in_charset'}) and
$self->{TT}{'file_in_charset'} !~ m/ascii/i) {
$in_charset=$self->{TT}{'file_in_charset'};
} else {
# FYI, the document charset have to be determined *before* we see the first
# string to recode.
die wrap_mod("po4a", dgettext("po4a", "Couldn't determine the input document's charset. Please specify it on the command line. (non-ASCII char at %s)"), $self->{TT}{non_ascii_ref})
}
}
if ($self->{TT}{po_in}->get_charset ne "CHARSET") {
$string = encode_from_to($string,
$self->{TT}{'file_in_encoder'},
$self->{TT}{po_in}{encoder});
$string = encode_from_to($string,
$self->{TT}{'file_in_encoder'},
$self->{TT}{po_in}{encoder});
}
if (defined $options{'wrapcol'} && $options{'wrapcol'} < 0) {
$options{'wrapcol'} = 76 + $options{'wrapcol'};
}
my $transstring = $self->{TT}{po_in}->gettext($string,
'wrap' => $options{'wrap'}||0,
'wrapcol' => $options{'wrapcol'});
'wrap' => $options{'wrap'}||0,
'wrapcol' => $options{'wrapcol'});
if ($self->{TT}{po_in}->get_charset ne "CHARSET") {
my $out_encoder = $self->{TT}{'file_out_encoder'};
unless (defined $out_encoder) {
$out_encoder = find_encoding($self->get_out_charset)
}
$transstring = encode_from_to($transstring,
$self->{TT}{po_in}{encoder},
$out_encoder);
my $out_encoder = $self->{TT}{'file_out_encoder'};
unless (defined $out_encoder) {
$out_encoder = find_encoding($self->get_out_charset)
}
$transstring = encode_from_to($transstring,
$self->{TT}{po_in}{encoder},
$out_encoder);
}
# If the input document isn't completely in ascii, we should see what to
# do with the current string
unless ($self->{TT}{ascii_input}) {
my $out_charset = $self->{TT}{po_out}->get_charset;
# We set the output po charset
# We set the output po charset
if ($out_charset eq "CHARSET") {
if ($self->{TT}{utf_mode}) {
$out_charset="UTF-8";
} else {
$out_charset=$in_charset;
}
$self->{TT}{po_out}->set_charset($out_charset);
}
if ( $in_charset !~ /^$out_charset$/i ) {
Encode::from_to($string,$in_charset,$out_charset);
if (defined($options{'comment'}) and length($options{'comment'})) {
Encode::from_to($options{'comment'},$in_charset,$out_charset);
}
}
if ($self->{TT}{utf_mode}) {
$out_charset="UTF-8";
} else {
$out_charset=$in_charset;
}
$self->{TT}{po_out}->set_charset($out_charset);
}
if ( $in_charset !~ /^$out_charset$/i ) {
Encode::from_to($string,$in_charset,$out_charset);
if (defined($options{'comment'}) and length($options{'comment'})) {
Encode::from_to($options{'comment'},$in_charset,$out_charset);
}
}
}
# the comments provided by the modules are automatic comments from the PO point of view
$self->{TT}{po_out}->push('msgid' => $string,
'reference' => $ref,
'type' => $type,
'automatic' => $options{'comment'},
'wrap' => $options{'wrap'}||0,
'wrapcol' => $options{'wrapcol'});
'reference' => $ref,
'type' => $type,
'automatic' => $options{'comment'},
'wrap' => $options{'wrap'}||0,
'wrapcol' => $options{'wrapcol'});
# if ($self->{TT}{po_in}->get_charset ne "CHARSET") {
#Encode::from_to($transstring,$self->{TT}{po_in}->get_charset,
# $self->get_out_charset);
# Encode::from_to($transstring,$self->{TT}{po_in}->get_charset,
# $self->get_out_charset);
# }
if ($options{'wrap'}||0) {
sub verbose {
if (defined $_[1]) {
$_[0]->{TT}{verbose} = $_[1];
$_[0]->{TT}{verbose} = $_[1];
} else {
return $_[0]->{TT}{verbose} || 0; # undef and 0 have the same meaning, but one generates warnings
return $_[0]->{TT}{verbose} || 0; # undef and 0 have the same meaning, but one generates warnings
}
}
if (defined $self->{TT}{'file_in_charset'} and
length $self->{TT}{'file_in_charset'} and
$self->{TT}{'file_in_charset'} !~ m/ascii/i) {
$self->{TT}{ascii_input}=0;
$self->{TT}{ascii_input}=0;
}
}
# Use the value specified at the command line
if (defined($self->{TT}{'file_out_charset'}) and
length($self->{TT}{'file_out_charset'})) {
$charset=$self->{TT}{'file_out_charset'};
length($self->{TT}{'file_out_charset'})) {
$charset=$self->{TT}{'file_out_charset'};
} else {
if ($self->{TT}{utf_mode} && $self->{TT}{ascii_input}) {
$charset="UTF-8";
} else {
$charset=$self->{TT}{po_in}->get_charset;
$charset=$self->{TT}{'file_in_charset'}
if $charset eq "CHARSET" and
defined($self->{TT}{'file_in_charset'}) and
length($self->{TT}{'file_in_charset'});
$charset="ascii"
if $charset eq "CHARSET";
}
if ($self->{TT}{utf_mode} && $self->{TT}{ascii_input}) {
$charset="UTF-8";
} else {
$charset=$self->{TT}{po_in}->get_charset;
$charset=$self->{TT}{'file_in_charset'}
if $charset eq "CHARSET" and
defined($self->{TT}{'file_in_charset'}) and
length($self->{TT}{'file_in_charset'});
$charset="ascii"
if $charset eq "CHARSET";
}
}
return $charset;
}
sub recode_skipped_text {
my ($self,$text)=(shift,shift);
unless ($self->{TT}{'ascii_input'}) {
if(defined($self->{TT}{'file_in_charset'}) and
length($self->{TT}{'file_in_charset'}) ) {
$text = encode_from_to($text,
$self->{TT}{'file_in_encoder'},
find_encoding($self->get_out_charset));
} else {
die wrap_mod("po4a", dgettext("po4a", "Couldn't determine the input document's charset. Please specify it on the command line. (non-ASCII char at %s)"), $self->{TT}{non_ascii_ref})
}
if(defined($self->{TT}{'file_in_charset'}) and
length($self->{TT}{'file_in_charset'}) ) {
$text = encode_from_to($text,
$self->{TT}{'file_in_encoder'},
find_encoding($self->get_out_charset));
} else {
die wrap_mod("po4a", dgettext("po4a", "Couldn't determine the input document's charset. Please specify it on the command line. (non-ASCII char at %s)"), $self->{TT}{non_ascii_ref})
}
}
return $text;
}
all language, using a map-like syntax:
$self->pushline_all({ "Description[".$langcode."]=".
$self->translate($line,$ref,$langcode)
});
$self->translate($line,$ref,$langcode)
});
=back
trunk/package/bin/po4a/lib/Locale/Po4a/Common.pm
7676
7777
7878
79
8079
8180
8281
......
105104
106105
107106
108
109
110
111
112
113
114
107
108
109
110
111
112
113
115114
116115
117116
......
165164
166165
167166
168
169
167
168
170169
171
172
173
174
170
171
172
173
175174
176175
177176
eval ' sub wrapi18n($$$) { Text::WrapI18N::wrap($_[0],$_[1],$_[2]) } '
} else {
# If we cannot wrap, well, that's too bad. Survive anyway.
eval ' sub wrapi18n($$$) { $_[0].$_[2] } '
}
my $name = shift;
print sprintf(gettext(
"%s version %s.\n".
"written by Martin Quinson and Denis Barbier.\n\n".
"Copyright (C) 2002, 2003, 2004 Software in the Public Interest, Inc.\n".
"This is free software; see source code for copying\n".
"conditions. There is NO warranty; not even for\n".
"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
), $name, $Locale::Po4a::TransTractor::VERSION)."\n";
"%s version %s.\n".
"written by Martin Quinson and Denis Barbier.\n\n".
"Copyright (C) 2002, 2003, 2004 Software in the Public Interest, Inc.\n".
"This is free software; see source code for copying\n".
"conditions. There is NO warranty; not even for\n".
"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
), $name, $Locale::Po4a::TransTractor::VERSION)."\n";
}
=item
my @args = @_;
if (!$mod) {
# If we don't get a module name, show the message like wrap_mod does
return wrap_mod($ref, $msg, @args);
# If we don't get a module name, show the message like wrap_mod does
return wrap_mod($ref, $msg, @args);
} else {
$ref .= ": ";
my $spaces = " " x min(length($ref), 15);
$msg = "$ref($mod)\n$msg";
return wrapi18n("", $spaces, sprintf($msg, @args))."\n";
$ref .= ": ";
my $spaces = " " x min(length($ref), 15);
$msg = "$ref($mod)\n$msg";
return wrapi18n("", $spaces, sprintf($msg, @args))."\n";
}
}
trunk/package/bin/po4a/lib/Locale/Po4a/TeX.pm
730730
731731
732732
733
734733
735734
736735
$buffer =~ s/($RE_PRE_COMMENT)$RE_COMMENT([^\n]*)(\n[ \t]*)/$1$end/s;
}
# translate leading commands.
do {
# keep the leading space to put them back after the translation of
trunk/package/bin/po4a/lib/Locale/Po4a/Chooser.pm
4545
4646
4747
48
49
50
48
49
50
5151
5252
5353
if ($@) {
my $error=$@;
warn wrap_msg(gettext("Unknown format type: %s."), $module);
warn wrap_mod("po4a::chooser",
gettext("Module loading error: %s"), $error)
if defined $options{'verbose'} && $options{'verbose'} > 0;
warn wrap_mod("po4a::chooser",
gettext("Module loading error: %s"), $error)
if defined $options{'verbose'} && $options{'verbose'} > 0;
list(1);
}
}
trunk/package/bin/po4a/po4a-gettextize
186186
187187
188188
189
189
190190
191191
192192
......
238238
239239
240240
241
241
242
243
244
245
246
242247
243248
244249
......
253258
254259
255260
256
261
262
257263
258264
259265
my ($pofile)=('-');
my (@masterfile,@locfile,$help_fmt,$help,$type,@options);
my ($mastchar,$locchar);
my ($mastchar,$locchar)=('ascii');
Getopt::Long::config('bundling', 'no_getopt_compat', 'no_auto_abbrev');
GetOptions(
'help|h' => \$help,
$mastertt->read($file);
}
$mastertt->{TT}{utf_mode} = 1;
$mastertt->{TT}{file_in_charset} = $mastchar;
if ($mastertt->{TT}{ascii_input}) {
$mastertt->detected_charset('ascii');
} else {
$mastertt->detected_charset($mastchar);
$mastertt->{TT}{po_in}->set_charset($mastchar);
}
$mastertt->parse;
}
# We force the conversion to utf if the master document wasn't in ascii
$transtt->{TT}{utf_mode} = !$mastertt->{TT}{ascii_input};
$transtt->{TT}{file_in_charset} = $locchar;
$transtt->detected_charset($locchar);
$transtt->{TT}{po_in}->set_charset($locchar);
$transtt->parse;
my $mergedpo = Locale::Po4a::Po->gettextize($mastertt->getpoout(),
trunk/package/po/es.po
88
99
1010
11
12
11
12
1313
1414
1515
......
1717
1818
1919
20
20
2121
2222
2323
......
453453
454454
455455
456
457
458
459
460
461
456462
457463
458464
......
467473
468474
469475
476
477
470478
471479
472480
......
481489
482490
483491
492
493
484494
485495
486496
......
495505
496506
497507
508
509
498510
499511
500512
......
509521
510522
511523
524
525
512526
513527
514528
......
688702
689703
690704
691
705
692706
693707
694708
......
832846
833847
834848
835
849
836850
837851
838852
......
17321746
17331747
17341748
1735
1749
17361750
17371751
17381752
......
17441758
17451759
17461760
1747
1761
17481762
17491763
17501764
......
17561770
17571771
17581772
1759
1773
17601774
17611775
17621776
......
17681782
17691783
17701784
1771
1785
17721786
17731787
17741788
......
17801794
17811795
17821796
1783
1797
17841798
17851799
17861800
......
17921806
17931807
17941808
1795
1809
17961810
17971811
17981812
......
18041818
18051819
18061820
1807
1821
18081822
18091823
18101824
......
18161830
18171831
18181832
1819
1833
18201834
18211835
18221836
......
18281842
18291843
18301844
1831
1845
18321846
18331847
18341848
......
18401854
18411855
18421856
1843
1857
18441858
18451859
18461860
......
18521866
18531867
18541868
1855
1869
18561870
18571871
18581872
......
18641878
18651879
18661880
1867
1881
18681882
18691883
18701884
......
18761890
18771891
18781892
1879
1893
18801894
18811895
18821896
......
18881902
18891903
18901904
1891
1905
18921906
18931907
18941908
......
19001914
19011915
19021916
1903
1917
19041918
19051919
19061920
......
19121926
19131927
19141928
1915
1929
19161930
19171931
19181932
......
19241938
19251939
19261940
1927
1941
19281942
19291943
19301944
......
19361950
19371951
19381952
1939
1953
19401954
19411955
19421956
......
19481962
19491963
19501964
1951
1965
19521966
19531967
19541968
......
19601974
19611975
19621976
1963
1977
19641978
19651979
19661980
......
19721986
19731987
19741988
1975
1989
19761990
19771991
19781992
......
19841998
19851999
19862000
1987
2001
19882002
19892003
19902004
......
19962010
19972011
19982012
1999
2013
20002014
20012015
20022016
......
20082022
20092023
20102024
2011
2025
20122026
20132027
20142028
......
20202034
20212035
20222036
2023
2037
20242038
20252039
20262040
......
20322046
20332047
20342048
2035
2049
20362050
20372051
20382052
......
20442058
20452059
20462060
2047
2061
20482062
20492063
20502064
......
20562070
20572071
20582072
2059
2073
20602074
20612075
20622076
......
22002214
22012215
22022216
2203
2217
22042218
22052219
22062220
......
22122226
22132227
22142228
2215
2229
22162230
22172231
22182232
......
22242238
22252239
22262240
2227
2241
22282242
22292243
22302244
......
22362250
22372251
22382252
2239
2253
22402254
22412255
22422256
......
22482262
22492263
22502264
2251
2265
22522266
22532267
22542268
......
23242338
23252339
23262340
2341
2342
2343
23272344
23282345
23292346
......
23522369
23532370
23542371
2372
2373
2374
2375
23552376
23562377
23572378
......
23662387
23672388
23682389
2390
2391
23692392
23702393
23712394
......
25572580
25582581
25592582
2560
2583
25612584
25622585
25632586
......
25932616
25942617
25952618
2596
2619
25972620
25982621
25992622
......
26052628
26062629
26072630
2608
2631
26092632
26102633
26112634
"Project-Id-Version: Chameleon 2.2\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-12-27 13:32+0000\n"
"PO-Revision-Date: 2013-12-29 12:07+0000\n"
"Last-Translator: Maniac <emafrias@gmail.com>\n"
"PO-Revision-Date: 2014-05-19 21:55+0000\n"
"Last-Translator: Yllelder <yllelder@gmail.com>\n"
"Language-Team: es <es@li.org>\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Pootle 2.5.0-rc1\n"
"X-POOTLE-MTIME: 1388318845.0\n"
"X-POOTLE-MTIME: 1400536515.0\n"
#. type: Content of: <html><body><div><p>
#: Resources/templates/Welcome.html:22
"*Removes a panic in commpage_stuff_routine\n"
"Dependencies: none"
msgstr ""
"El módulo KernelPatcher proporciona parches para lo siguiente:\n"
"*Habilita el uso del kernelcache con /Extra/Extensions y /Extra/Extensions.mkext\n"
"*Elimina el chequeo de CPUID\n"
"*Elimina un LAPIC panic\n"
"*Elimina un panic en commpage_stuff_routine\n"
"Dependencias: ninguna"
#. type: "KextPatcher_title"
#: Resources/templates/Localizable.strings:79
"The KextPatcher module provides patches for the following:\n"
"Dependencies: none"
msgstr ""
"El módulo KextPatcher proporciona parches para lo siguiente:\n"
"Dependencias: ninguna"
#. type: "NVIDIAGraphicsEnabler_title"
#: Resources/templates/Localizable.strings:83
"The GraphicsEnabler nVidia code ported to a module.\n"
"Dependencies: none"
msgstr ""
"El código de GraphicsEnabler nVidia ha sido portado a un módulo.\n"
"Dependencias: ninguna"
#. type: "AMDGraphicsEnabler_title"
#: Resources/templates/Localizable.strings:87
"The GraphicsEnabler AMD/ATi code ported to a module.\n"
"Dependencies: none"
msgstr ""
"El código de GraphicsEnabler AMD/ATi ha sido portado a un módulo.\n"
"Dependencias: ninguna"
#. type: "IntelGraphicsEnabler_title"
#: Resources/templates/Localizable.strings:91
"The GraphicsEnabler gma(Intel) code ported to a module.\n"
"Dependencies: none"
msgstr ""
"El código de GraphicsEnabler gma(Intel) ha sido portado a un módulo.\n"
"Dependencias: ninguna"
#. type: "Options_title"
#: Resources/templates/Localizable.strings:100
#: Resources/templates/Localizable.strings:145
#, no-wrap
msgid "Force SMBIOS Table 17 to be 27 bytes long."
msgstr ""
msgstr "Fuerza a SMBIOS Table 17 a ser de 27 bytes de largo."
#. type: "RestartFix_title"
#: Resources/templates/Localizable.strings:147
#: Resources/templates/Localizable.strings:183
#, no-wrap
msgid "Discard the motherboard's built-in DMAR table, this key action resolve the problem with VT-d panics."
msgstr ""
msgstr "Descarta la tabla DMAR integrada en la placa base, esta acción clave resuelve el problema con VT-d panics."
#. type: "EnableC2State_title"
#: Resources/templates/Localizable.strings:185
#: Resources/templates/Localizable.strings:446
#, no-wrap
msgid "Set 01660000 for Intel HD4000 (Mobile) AAPL,ig-platform-id ."
msgstr ""
msgstr "Establece 01660000 para Intel HD4000 (Mobile) AAPL,ig-platform-id ."
#. type: "IntelCaprix01_title"
#: Resources/templates/Localizable.strings:448
#: Resources/templates/Localizable.strings:449
#, no-wrap
msgid "Set 01660001 for Intel HD4000 (Mobile) AAPL,ig-platform-id ."
msgstr ""
msgstr "Establece 01660001 para Intel HD4000 (Mobile) AAPL,ig-platform-id ."
#. type: "IntelCaprix02_title"
#: Resources/templates/Localizable.strings:451
#: Resources/templates/Localizable.strings:452
#, no-wrap
msgid "Set 01660002 for Intel HD4000 (Mobile) AAPL,ig-platform-id ."
msgstr ""
msgstr "Establece 01660002 para Intel HD4000 (Mobile) AAPL,ig-platform-id ."
#. type: "IntelCaprix03_title"
#: Resources/templates/Localizable.strings:454
#: Resources/templates/Localizable.strings:455
#, no-wrap
msgid "Set 01660003 for Intel HD4000 (Mobile) AAPL,ig-platform-id ."
msgstr ""
msgstr "Establece 01660003 para Intel HD4000 (Mobile) AAPL,ig-platform-id ."
#. type: "IntelCaprix04_title"
#: Resources/templates/Localizable.strings:457
#: Resources/templates/Localizable.strings:458
#, no-wrap
msgid "Set 01660004 for Intel HD4000 (Mobile) AAPL,ig-platform-id ."
msgstr ""
msgstr "Establece 01660004 para Intel HD4000 (Mobile) AAPL,ig-platform-id ."
#. type: "IntelCaprix05_title"
#: Resources/templates/Localizable.strings:460
#: Resources/templates/Localizable.strings:461
#, no-wrap
msgid "Set 01620005 for Intel HD4000 (Desktop) AAPL,ig-platform-id ."
msgstr ""
msgstr "Establece 01620005 para Intel HD4000 (Desktop) AAPL,ig-platform-id ."
#. type: "IntelCaprix06_title"
#: Resources/templates/Localizable.strings:463
#: Resources/templates/Localizable.strings:464
#, no-wrap
msgid "Set 01620006 for Intel HD4000 (Desktop) AAPL,ig-platform-id ."
msgstr ""
msgstr "Establece 01620006 para Intel HD4000 (Desktop) AAPL,ig-platform-id ."
#. type: "IntelCaprix07_title"
#: Resources/templates/Localizable.strings:466
#: Resources/templates/Localizable.strings:467
#, no-wrap
msgid "Set 01620007 for Intel HD4000 (Desktop) AAPL,ig-platform-id ."
msgstr ""
msgstr "Establece 01620007 para Intel HD4000 (Desktop) AAPL,ig-platform-id ."
#. type: "IntelCaprix08_title"
#: Resources/templates/Localizable.strings:469
#: Resources/templates/Localizable.strings:470
#, no-wrap
msgid "Set 01660008 for Intel HD4000 (Mobile) AAPL,ig-platform-id ."
msgstr ""
msgstr "Establece 01660008 para Intel HD4000 (Mobile) AAPL,ig-platform-id ."
#. type: "IntelCaprix09_title"
#: Resources/templates/Localizable.strings:472
#: Resources/templates/Localizable.strings:473
#, no-wrap
msgid "Set 01660009 for Intel HD4000 (Mobile) AAPL,ig-platform-id ."
msgstr ""
msgstr "Establece 01660009 para Intel HD4000 (Mobile) AAPL,ig-platform-id ."
#. type: "IntelCaprix10_title"
#: Resources/templates/Localizable.strings:475
#: Resources/templates/Localizable.strings:476
#, no-wrap
msgid "Set 0166000a for Intel HD4000 (Mobile) AAPL,ig-platform-id ."
msgstr ""
msgstr "Establece 0166000a para Intel HD4000 (Mobile) AAPL,ig-platform-id ."
#. type: "IntelCaprix11_title"
#: Resources/templates/Localizable.strings:478
#: Resources/templates/Localizable.strings:479
#, no-wrap
msgid "Set 0166000b for Intel HD4000 (Mobile) AAPL,ig-platform-id ."
msgstr ""
msgstr "Establece 0166000b para Intel HD4000 (Mobile) AAPL,ig-platform-id ."
#. type: "IntelAzulx00_title"
#: Resources/templates/Localizable.strings:483
#: Resources/templates/Localizable.strings:484
#, no-wrap
msgid "Set 00000604 for Intel HD5000 (Mobile) AAPL,ig-platform-id."
msgstr ""
msgstr "Establece 00000604 para Intel Haswell (Mobile) AAPL,ig-platform-id."
#. type: "IntelAzulx01_title"
#: Resources/templates/Localizable.strings:486
#: Resources/templates/Localizable.strings:487
#, no-wrap
msgid "Set 0000060c for Intel HD5000 (Mobile) AAPL,ig-platform-id."
msgstr ""
msgstr "Establece 0000060c para Intel Haswell (Mobile) AAPL,ig-platform-id."
#. type: "IntelAzulx02_title"
#: Resources/templates/Localizable.strings:489
#: Resources/templates/Localizable.strings:490
#, no-wrap
msgid "Set 00001604 for Intel HD5000 (Mobile) AAPL,ig-platform-id."
msgstr ""
msgstr "Establece 00001604 para Intel Haswell (Mobile) AAPL,ig-platform-id."
#. type: "IntelAzulx03_title"
#: Resources/templates/Localizable.strings:492
#: Resources/templates/Localizable.strings:493
#, no-wrap
msgid "Set 0000160a for Intel HD5000 (Mobile) AAPL,ig-platform-id."
msgstr ""
msgstr "Establece 0000160a para Intel Haswell (Mobile) AAPL,ig-platform-id."
#. type: "IntelAzulx04_title"
#: Resources/templates/Localizable.strings:495
#: Resources/templates/Localizable.strings:496
#, no-wrap
msgid "Set 0000160c for Intel HD5000 (Mobile) AAPL,ig-platform-id."
msgstr ""
msgstr "Establece 0000160c para Intel Haswell (Mobile) AAPL,ig-platform-id."
#. type: "IntelAzulx05_title"
#: Resources/templates/Localizable.strings:498
#: Resources/templates/Localizable.strings:499
#, no-wrap
msgid "Set 00002604 for Intel HD5000 (Mobile) AAPL,ig-platform-id."
msgstr ""
msgstr "Establece 00002604 para Intel Haswell (Mobile) AAPL,ig-platform-id."
#. type: "IntelAzulx06_title"
#: Resources/templates/Localizable.strings:501
#: Resources/templates/Localizable.strings:502
#, no-wrap
msgid "Set 0000260a for Intel HD5000 (Mobile) AAPL,ig-platform-id."
msgstr ""
msgstr "Establece 0000260a para Intel Haswell (Mobile) AAPL,ig-platform-id."
#. type: "IntelAzulx07_title"
#: Resources/templates/Localizable.strings:504
#: Resources/templates/Localizable.strings:505
#, no-wrap
msgid "Set 0600260c for Intel HD5000 (Mobile) AAPL,ig-platform-id."
msgstr ""
msgstr "Establece 0600260c para Intel Haswell (Mobile) AAPL,ig-platform-id."
#. type: "IntelAzulx08_title"
#: Resources/templates/Localizable.strings:507
#: Resources/templates/Localizable.strings:508
#, no-wrap
msgid "Set 0000260d for Intel HD5000 (Mobile) AAPL,ig-platform-id."
msgstr ""
msgstr "Establece 0000260d para Intel Haswell (Mobile) AAPL,ig-platform-id."
#. type: "IntelAzulx09_title"
#: Resources/templates/Localizable.strings:510
#: Resources/templates/Localizable.strings:511
#, no-wrap
msgid "Set 02001604 for Intel HD5000 (Mobile) AAPL,ig-platform-id."
msgstr ""
msgstr "Establece 02001604 para Intel Haswell (Mobile) AAPL,ig-platform-id."
#. type: "IntelAzulx10_title"
#: Resources/templates/Localizable.strings:513
#: Resources/templates/Localizable.strings:514
#, no-wrap
msgid "Set 0300220d for Intel HD5000 (Desktop) AAPL,ig-platform-id."
msgstr ""
msgstr "Establece 0300220d para Intel Haswell (Desktop) AAPL,ig-platform-id."
#. type: "IntelAzulx11_title"
#: Resources/templates/Localizable.strings:516
#: Resources/templates/Localizable.strings:517
#, no-wrap
msgid "Set 0500260a for Intel HD5000 (Mobile) AAPL,ig-platform-id."
msgstr ""
msgstr "Establece 0500260a para Intel Haswell (Mobile) AAPL,ig-platform-id."
#. type: "IntelAzulx12_title"
#: Resources/templates/Localizable.strings:519
#: Resources/templates/Localizable.strings:520
#, no-wrap
msgid "Set 0600260a for Intel HD5000 (Mobile) AAPL,ig-platform-id."
msgstr ""
msgstr "Establece 0600260a para Intel Haswell (Mobile) AAPL,ig-platform-id."
#. type: "IntelAzulx13_title"
#: Resources/templates/Localizable.strings:522
#: Resources/templates/Localizable.strings:523
#, no-wrap
msgid "Set 0700260d for Intel HD5000 (Mobile) AAPL,ig-platform-id."
msgstr ""
msgstr "Establece 0700260d para Intel Haswell (Mobile) AAPL,ig-platform-id."
#. type: "IntelAzulx14_title"
#: Resources/templates/Localizable.strings:525
#: Resources/templates/Localizable.strings:526
#, no-wrap
msgid "Set 0800260a for Intel HD5000 (Mobile) AAPL,ig-platform-id."
msgstr ""
msgstr "Establece 0800260a para Intel Haswell (Mobile) AAPL,ig-platform-id."
#. type: "IntelAzulx15_title"
#: Resources/templates/Localizable.strings:528
#: Resources/templates/Localizable.strings:529
#, no-wrap
msgid "Set 08002e0a for Intel HD5000 (Mobile) AAPL,ig-platform-id."
msgstr ""
msgstr "Establece 08002e0a para Intel Haswell (Mobile) AAPL,ig-platform-id."
#. type: "AD2000B_PinConf_title"
#: Resources/templates/Localizable.strings:533
#: Resources/templates/Localizable.strings:569
#, no-wrap
msgid "Skip the GraphicsEnbaler autodetect for Intel based GPUs."
msgstr ""
msgstr "Saltar la detección automática de GraphicsEnabler para GPUs basados ​​en Intel."
#. type: "SkipNvidiaGfx_title"
#: Resources/templates/Localizable.strings:571
#: Resources/templates/Localizable.strings:572
#, no-wrap
msgid "Skip the GraphicsEnbaler autodetect for NVIDIA based GPUs."
msgstr ""
msgstr "Saltar la detección automática de GraphicsEnabler para GPUs basados ​​en nVIDIA."
#. type: "SkipAtiGfx_title"
#: Resources/templates/Localizable.strings:574
#: Resources/templates/Localizable.strings:575
#, no-wrap
msgid "Skip the GraphicsEnbaler autodetect for AMD/ATI based GPUs."
msgstr ""
msgstr "Saltar la detección automática de GraphicsEnabler para GPUs basados ​​en AMD/ATI."
#. type: "EnableBacklight_title"
#: Resources/templates/Localizable.strings:577
#: Resources/templates/Localizable.strings:578
#, no-wrap
msgid "Enables Backlight options for laptop with nVidia cards."
msgstr ""
msgstr "Habilita la iluminación de fondo para portátiles con tarjetas nVIDIA."
#. type: "EnableDualLink_title"
#: Resources/templates/Localizable.strings:580
#: Resources/templates/Localizable.strings:581
#, no-wrap
msgid "Enables DualLink options for nVidia and ATi cards."
msgstr ""
msgstr "Habilitar las opciones de DualLink para tarjetas nVIDIA y ATi."
#. type: "Verbose_title"
#: Resources/templates/Localizable.strings:587
"http://www.insanelymac.com/forum/topic/280062-waiting-for-root-device-when-kernel-cache-used-only-with-some-disks-fix/\n"
"Findings credits to bcc9."
msgstr ""
"Info aquí: Waiting for root device when kernel cache used only with some disks +CORREGIDO\n"
"http://www.insanelymac.com/forum/topic/280062-waiting-for-root-device-when-kernel-cache-used-only-with-some-disks-fix/\n"
"Agradecimientos a bcc9."
#. type: "Darkwake_title"
#: Resources/templates/Localizable.strings:607
"http://www.insanelymac.com/forum/topic/288582-new-nvidia-retail-driver-install-solution/\n"
"Findings credits to meklort and Rampage Dev."
msgstr ""
"Introduce un nuevo Panel de Preferencias en Preferencias del Sistema que permite habilitar el Nvidia Web Driver.\n"
"Info aquí: New Nvidia Retail Driver Install Solution\n"
"http://www.insanelymac.com/forum/topic/288582-new-nvidia-retail-driver-install-solution/\n"
"Agradecimientos a meklort y a Rampage Dev."
#. type: "Dart0_title"
#: Resources/templates/Localizable.strings:616
"Avoiding the DMAR processing causing by VT-d function in Osx (Virtualization).\n"
"More information by bcc9 here: http://www.insanelymac.com/forum/topic/282989-vtd0-fault-after-1082-google-hasnt-heard-of-it-any-help/#entry1867000"
msgstr ""
"Evitar el procesamiento de DMAR causado por VT-d function en Osx (Virtualization).\n"
"Más información por bcc9 aquí: http://www.insanelymac.com/forum/topic/282989-vtd0-fault-after-1082-google-hasnt-heard-of-it-any-help/#entry1867000"
#. type: "mac-de_title"
#: Resources/templates/Localizable.strings:624
#: Resources/templates/Localizable.strings:691
#, no-wrap
msgid "Set one HDEF Layout ID to use for your HDA controller."
msgstr ""
msgstr "Establece un HDEF Layout ID a usar por tu controlador HDA."
#. type: "HDAULayout_title"
#: Resources/templates/Localizable.strings:694
#: Resources/templates/Localizable.strings:703
#, no-wrap
msgid "Set one AAPL,ig-platform-id to use for your Intel HD5000."
msgstr ""
msgstr "Establecer un AAPL,ig-platform-id a usar por tu Intel Haswell."
#. type: "HDEFPinConfiguration_title"
#: Resources/templates/Localizable.strings:706
#: Resources/templates/Localizable.strings:707
#, no-wrap
msgid "Set one HDEF PinConfiguration to use."
msgstr ""
msgstr "Establecer un HDEF PinConfiguration a usar."
#. type: "Video_title"
#: Resources/templates/Localizable.strings:710
trunk/package/po/ru.po
77
88
99
10
10
1111
1212
1313
......
671671
672672
673673
674
675
674
676675
677
676
678677
679678
680679
681680
682681
683
682
684683
685684
686685
......
11851184
11861185
11871186
1187
1188
11881189
11891190
11901191
......
11991200
12001201
12011202
1202
1203
12031204
12041205
12051206
......
12141215
12151216
12161217
1217
1218
12181219
12191220
12201221
......
12291230
12301231
12311232
1232
1233
12331234
12341235
12351236
......
12441245
12451246
12461247
1247
1248
12481249
12491250
12501251
......
12591260
12601261
12611262
1262
1263
12631264
12641265
12651266
......
12741275
12751276
12761277
1277
1278
12781279
12791280
12801281
......
12891290
12901291
12911292
1292
1293
12931294
12941295
12951296
......
13041305
13051306
13061307
1307
1308
13081309
13091310
13101311
......
13191320
13201321
13211322
1322
1323
13231324
13241325
13251326
......
13341335
13351336
13361337
1337
1338
13381339
13391340
13401341
......
13491350
13501351
13511352
1352
1353
13531354
13541355
13551356
......
13641365
13651366
13661367
1367
1368
13681369
13691370
13701371
......
13791380
13801381
13811382
1382
1383
13831384
13841385
13851386
......
13941395
13951396
13961397
1397
1398
13981399
13991400
14001401
......
14091410
14101411
14111412
1412
1413
14131414
14141415
14151416
......
15041505
15051506
15061507
1507
1508
15081509
15091510
15101511
......
15121513
15131514
15141515
1515
1516
15161517
15171518
15181519
......
15201521
15211522
15221523
1523
1524
15241525
15251526
15261527
......
15281529
15291530
15301531
1531
1532
15321533
15331534
15341535
......
15361537
15371538
15381539
1539
1540
15401541
15411542
15421543
......
15441545
15451546
15461547
1547
1548
15481549
15491550
15501551
......
15521553
15531554
15541555
1555
1556
15561557
15571558
15581559
......
15601561
15611562
15621563
1563
1564
15641565
15651566
15661567
......
15681569
15691570
15701571
1571
1572
15721573
15731574
15741575
......
16641665
16651666
16661667
1667
1668
16681669
16691670
16701671
......
16761677
16771678
16781679
1679
1680
16801681
16811682
16821683
......
16881689
16891690
16901691
1691
1692
16921693
16931694
16941695
......
17001701
17011702
17021703
1703
1704
17041705
17051706
17061707
......
17121713
17131714
17141715
1715
1716
17161717
17171718
17181719
......
17241725
17251726
17261727
1727
1728
17281729
17291730
17301731
......
17361737
17371738
17381739
1739
1740
17401741
17411742
17421743
......
17481749
17491750
17501751
1751
1752
17521753
17531754
17541755
......
17601761
17611762
17621763
1763
1764
17641765
17651766
17661767
......
18251826
18261827
18271828
1828
1829
18291830
18301831
18311832
1832
1833
1833
18341834
1835
1835
18361836
18371837
18381838
18391839
18401840
1841
1841
18421842
18431843
18441844
1845
1846
1845
18471846
1848
1847
18491848
18501849
18511850
18521851
18531852
1854
1853
18551854
18561855
18571856
1858
1859
1857
18601858
1861
1859
18621860
18631861
18641862
18651863
18661864
1867
1865
18681866
18691867
18701868
1871
1872
1869
18731870
1874
1871
18751872
18761873
18771874
18781875
18791876
1880
1877
18811878
18821879
18831880
......
19371934
19381935
19391936
1940
1937
19411938
19421939
19431940
......
19491946
19501947
19511948
1952
1949
19531950
19541951
19551952
......
19611958
19621959
19631960
1964
1961
19651962
19661963
19671964
......
19731970
19741971
19751972
1976
1973
19771974
19781975
19791976
......
19851982
19861983
19871984
1988
1985
19891986
19901987
19911988
......
19971994
19981995
19991996
2000
1997
20011998
20021999
20032000
......
20092006
20102007
20112008
2012
2009
20132010
20142011
20152012
......
20212018
20222019
20232020
2024
2021
20252022
20262023
20272024
......
20332030
20342031
20352032
2036
2033
20372034
20382035
20392036
......
25002497
25012498
25022499
2503
2504
2500
25052501
25062502
25072503
msgstr ""
"Project-Id-Version: Chameleon 2.2\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-12-27 13:32+0000\n"
"POT-Creation-Date: 2013-12-27 14:14+0000\n"
"PO-Revision-Date: 2013-06-27 21:13+0000\n"
"Last-Translator: ltodoto <ltodoto@live.ru>\n"
"Language-Team: ru <ru@li.org>\n"
#. type: "ForceFullMemInfo_title"
#: Resources/templates/Localizable.strings:144
#, fuzzy, no-wrap
#| msgid "ForceWake=Yes"
#, no-wrap
msgid "ForceFullMemInfo=Yes"
msgstr "ForceWake=Yes"
msgstr "ForceFullMemInfo=Yes"
#. type: "ForceFullMemInfo_description"
#: Resources/templates/Localizable.strings:145
#, no-wrap
msgid "Force SMBIOS Table 17 to be 27 bytes long."
msgstr ""
msgstr "Принудительно установить размер 17-й таблицы SMBIOS равным 27 байтам."
#. type: "RestartFix_title"
#: Resources/templates/Localizable.strings:147
"Set HDEF layout-it to 99:\n"
"063 (0x63, 0x00, 0x00, 0x00)."
msgstr ""
"Установить значение HDEF layout-it равным 99:\n"
"063 (0x63, 0x00, 0x00, 0x00)."
#. type: "HDAULayoutIDx269_title"
#: Resources/templates/Localizable.strings:281
msgid ""
"Set HDEF layout-it to 269:\n"
"10D (0x0D, 0x01, 0x00, 0x00)."
msgstr ""
msgstr "Установить значение HDEF layout-it равным 269"
#. type: "HDAULayoutIDx387_title"
#: Resources/templates/Localizable.strings:285
msgid ""
"Set HDEF layout-it to 387:\n"
"183 (0x83, 0x01, 0x00, 0x00)."
msgstr ""
msgstr "Установить значение HDEF layout-it равным 387"
#. type: "HDAULayoutIDx388_title"
#: Resources/templates/Localizable.strings:289
msgid ""
"Set HDEF layout-it to 388:\n"
"184 (0x84, 0x01, 0x00, 0x00)."
msgstr ""
msgstr "Установить значение HDEF layout-it равным 388"
#. type: "HDAULayoutIDx389_title"
#: Resources/templates/Localizable.strings:293
msgid ""
"Set HDEF layout-it to 389:\n"
"185 (0x85, 0x01, 0x00, 0x00)."
msgstr ""
msgstr "Установить значение HDEF layout-it равным 389"
#. type: "HDAULayoutIDx392_title"
#: Resources/templates/Localizable.strings:297
msgid ""
"Set HDEF layout-it to 392:\n"
"188 (0x88, 0x01, 0x00, 0x00)."
msgstr ""
msgstr "Установить значение HDEF layout-it равным 392"
#. type: "HDAULayoutIDx398_title"
#: Resources/templates/Localizable.strings:301
msgid ""
"Set HDEF layout-it to 398:\n"
"18E (0x8E, 0x01, 0x00, 0x00)."
msgstr ""
msgstr "Установить значение HDEF layout-it равным 398"
#. type: "HDAULayoutIDx662_title"
#: Resources/templates/Localizable.strings:305
msgid ""
"Set HDEF layout-it to 662:\n"
"296 (0x96, 0x02, 0x00, 0x00)."
msgstr ""
msgstr "Установить значение HDEF layout-it равным 662"
#. type: "HDAULayoutIDx663_title"
#: Resources/templates/Localizable.strings:309
msgid ""
"Set HDEF layout-it to 663:\n"
"297 (0x97, 0x02, 0x00, 0x00)."
msgstr ""
msgstr "Установить значение HDEF layout-it равным 663"
#. type: "HDAULayoutIDx664_title"
#: Resources/templates/Localizable.strings:313
msgid ""
"Set HDEF layout-it to 664:\n"
"298 (0x98, 0x02, 0x00, 0x00)."
msgstr ""
msgstr "Установить значение HDEF layout-it равным 664"
#. type: "HDAULayoutIDx885_title"
#: Resources/templates/Localizable.strings:317
msgid ""
"Set HDEF layout-it to 885:\n"
"375 (0x75, 0x03, 0x00, 0x00)."
msgstr ""
msgstr "Установить значение HDEF layout-it равным 885"
#. type: "HDAULayoutIDx887_title"
#: Resources/templates/Localizable.strings:321
msgid ""
"Set HDEF layout-it to 887:\n"
"377 (0x77, 0x03, 0x00, 0x00)."
msgstr ""
msgstr "Установить значение HDEF layout-it равным 887"
#. type: "HDAULayoutIDx888_title"
#: Resources/templates/Localizable.strings:325
msgid ""
"Set HDEF layout-it to 888:\n"
"378 (0x78, 0x03, 0x00, 0x00)."
msgstr ""
msgstr "Установить значение HDEF layout-it равным 888"
#. type: "HDAULayoutIDx889_title"
#: Resources/templates/Localizable.strings:329
msgid ""
"Set HDEF layout-it to 889:\n"
"379 (0x79, 0x03, 0x00, 0x00)."
msgstr ""
msgstr "Установить значение HDEF layout-it равным 889"
#. type: "HDAULayoutIDx892_title"
#: Resources/templates/Localizable.strings:333
msgid ""
"Set HDEF layout-it to 892:\n"
"37C (0x7C, 0x03, 0x00, 0x00)."
msgstr ""
msgstr "Установить значение HDEF layout-it равным 892"
#. type: "HDAULayoutIDx898_title"
#: Resources/templates/Localizable.strings:337
msgid ""
"Set HDEF layout-it to 898:\n"
"382 (0x82, 0x03, 0x00, 0x00)."
msgstr ""
msgstr "Установить значение HDEF layout-it равным 898"
#. type: "HDAULayoutIDxBD7_title"
#: Resources/templates/Localizable.strings:341
msgid ""
"Set HDAU layout-it to 387:\n"
"183 (0x83, 0x01, 0x00, 0x00)."
msgstr ""
msgstr "Установить значение HDAU layout-it равным 387"
#. type: "HDAULayoutIDx388_description"
#: Resources/templates/Localizable.strings:388
msgid ""
"Set HDAU layout-it to 388:\n"
"184 (0x84, 0x01, 0x00, 0x00)."
msgstr ""
msgstr "Установить значение HDAU layout-it равным 388"
#. type: "HDAULayoutIDx389_description"
#: Resources/templates/Localizable.strings:392
msgid ""
"Set HDAU layout-it to 389:\n"
"185 (0x85, 0x01, 0x00, 0x00)."
msgstr ""
msgstr "Установить значение HDAU layout-it равным 389"
#. type: "HDAULayoutIDx392_description"
#: Resources/templates/Localizable.strings:396
msgid ""
"Set HDAU layout-it to 392:\n"
"188 (0x88, 0x01, 0x00, 0x00)."
msgstr ""
msgstr "Установить значение HDAU layout-it равным 392"
#. type: "HDAULayoutIDx398_description"
#: Resources/templates/Localizable.strings:400
msgid ""
"Set HDAU layout-it to 398:\n"
"18E (0x8E, 0x01, 0x00, 0x00)."
msgstr ""
msgstr "Установить значение HDAU layout-it равным 398"
#. type: "HDAULayoutIDx662_description"
#: Resources/templates/Localizable.strings:404
msgid ""
"Set HDAU layout-it to 662:\n"
"296 (0x96, 0x02, 0x00, 0x00)."
msgstr ""
msgstr "Установить значение HDAU layout-it равным 662"
#. type: "HDAULayoutIDx663_description"
#: Resources/templates/Localizable.strings:408
msgid ""
"Set HDAU layout-it to 663:\n"
"297 (0x97, 0x02, 0x00, 0x00)."
msgstr ""
msgstr "Установить значение HDAU layout-it равным 663"
#. type: "HDAULayoutIDx664_description"
#: Resources/templates/Localizable.strings:412
msgid ""
"Set HDAU layout-it to 664:\n"
"298 (0x98, 0x02, 0x00, 0x00)."
msgstr ""
msgstr "Установить значение HDAU layout-it равным 664"
#. type: "HDAULayoutIDx885_description"
#: Resources/templates/Localizable.strings:416
msgid ""
"Set HDAU layout-it to 885:\n"
"375 (0x75, 0x03, 0x00, 0x00)."
msgstr ""
msgstr "Установить значение HDAU layout-it равным 885"
#. type: "HDAULayoutIDx887_description"
#: Resources/templates/Localizable.strings:420
#: Resources/templates/Localizable.strings:455
#, no-wrap
msgid "Set 01660003 for Intel HD4000 (Mobile) AAPL,ig-platform-id ."
msgstr ""
msgstr "Установить 01660003 в качестве Intel HD4000 (Mobile) AAPL,ig-platform-id."
#. type: "IntelCaprix04_title"
#: Resources/templates/Localizable.strings:457
#: Resources/templates/Localizable.strings:458
#, no-wrap
msgid "Set 01660004 for Intel HD4000 (Mobile) AAPL,ig-platform-id ."
msgstr ""
msgstr "Установить 01660004 в качестве Intel HD4000 (Mobile) AAPL,ig-platform-id."
#. type: "IntelCaprix05_title"
#: Resources/templates/Localizable.strings:460
#: Resources/templates/Localizable.strings:461
#, no-wrap
msgid "Set 01620005 for Intel HD4000 (Desktop) AAPL,ig-platform-id ."
msgstr ""
msgstr "Установить 01620005 в качестве Intel HD4000 (Mobile) AAPL,ig-platform-id."
#. type: "IntelCaprix06_title"
#: Resources/templates/Localizable.strings:463
#: Resources/templates/Localizable.strings:464
#, no-wrap
msgid "Set 01620006 for Intel HD4000 (Desktop) AAPL,ig-platform-id ."
msgstr ""
msgstr "Установить 01620006 в качестве Intel HD4000 (Mobile) AAPL,ig-platform-id."
#. type: "IntelCaprix07_title"
#: Resources/templates/Localizable.strings:466
#: Resources/templates/Localizable.strings:467
#, no-wrap
msgid "Set 01620007 for Intel HD4000 (Desktop) AAPL,ig-platform-id ."
msgstr ""
msgstr "Установить 01620007 в качестве Intel HD4000 (Mobile) AAPL,ig-platform-id."
#. type: "IntelCaprix08_title"
#: Resources/templates/Localizable.strings:469
#: Resources/templates/Localizable.strings:470
#, no-wrap
msgid "Set 01660008 for Intel HD4000 (Mobile) AAPL,ig-platform-id ."
msgstr ""
msgstr "Установить 01660008 в качестве Intel HD4000 (Mobile) AAPL,ig-platform-id."
#. type: "IntelCaprix09_title"
#: Resources/templates/Localizable.strings:472
#: Resources/templates/Localizable.strings:473
#, no-wrap
msgid "Set 01660009 for Intel HD4000 (Mobile) AAPL,ig-platform-id ."
msgstr ""
msgstr "Установить 01660009 в качестве Intel HD4000 (Mobile) AAPL,ig-platform-id."
#. type: "IntelCaprix10_title"
#: Resources/templates/Localizable.strings:475
#: Resources/templates/Localizable.strings:476
#, no-wrap
msgid "Set 0166000a for Intel HD4000 (Mobile) AAPL,ig-platform-id ."
msgstr ""
msgstr "Установить 0166000a в качестве Intel HD4000 (Mobile) AAPL,ig-platform-id."
#. type: "IntelCaprix11_title"
#: Resources/templates/Localizable.strings:478
#: Resources/templates/Localizable.strings:479
#, no-wrap
msgid "Set 0166000b for Intel HD4000 (Mobile) AAPL,ig-platform-id ."
msgstr ""
msgstr "Установить 0166000b в качестве Intel HD4000 (Mobile) AAPL,ig-platform-id."
#. type: "IntelAzulx00_title"
#: Resources/templates/Localizable.strings:483
#: Resources/templates/Localizable.strings:496
#, no-wrap
msgid "Set 0000160c for Intel HD5000 (Mobile) AAPL,ig-platform-id."
msgstr ""
msgstr "Установить 0166000c в качестве Intel HD5000 (Mobile) AAPL,ig-platform-id."
#. type: "IntelAzulx05_title"
#: Resources/templates/Localizable.strings:498
#, fuzzy, no-wrap
#| msgid "01660000"
#, no-wrap
msgid "00002604"
msgstr "01660000"
msgstr "00002604"
#. type: "IntelAzulx05_description"
#: Resources/templates/Localizable.strings:499
#, no-wrap
msgid "Set 00002604 for Intel HD5000 (Mobile) AAPL,ig-platform-id."
msgstr ""
msgstr "Установить 00002604 в качестве Intel HD5000 (Mobile) AAPL,ig-platform-id."
#. type: "IntelAzulx06_title"
#: Resources/templates/Localizable.strings:501
#, fuzzy, no-wrap
#| msgid "01660000"
#, no-wrap
msgid "0000260a"
msgstr "01660000"
msgstr "0000260a"
#. type: "IntelAzulx06_description"
#: Resources/templates/Localizable.strings:502
#, no-wrap
msgid "Set 0000260a for Intel HD5000 (Mobile) AAPL,ig-platform-id."
msgstr ""
msgstr "Установить 0000260a в качестве Intel HD5000 (Mobile) AAPL,ig-platform-id."
#. type: "IntelAzulx07_title"
#: Resources/templates/Localizable.strings:504
#, fuzzy, no-wrap
#| msgid "01660000"
#, no-wrap
msgid "0000260c"
msgstr "01660000"
msgstr "0000260c"
#. type: "IntelAzulx07_description"
#: Resources/templates/Localizable.strings:505
#, no-wrap
msgid "Set 0600260c for Intel HD5000 (Mobile) AAPL,ig-platform-id."
msgstr ""
msgstr "Установить 0000260c в качестве Intel HD5000 (Mobile) AAPL,ig-platform-id."
#. type: "IntelAzulx08_title"
#: Resources/templates/Localizable.strings:507
#, fuzzy, no-wrap
#| msgid "01660000"
#, no-wrap
msgid "0000260d"
msgstr "01660000"
msgstr "0000260d"
#. type: "IntelAzulx08_description"
#: Resources/templates/Localizable.strings:508
#, no-wrap
msgid "Set 0000260d for Intel HD5000 (Mobile) AAPL,ig-platform-id."
msgstr ""
msgstr "Установить 0000260d в качестве Intel HD5000 (Mobile) AAPL,ig-platform-id."
#. type: "IntelAzulx09_title"
#: Resources/templates/Localizable.strings:510
#: Resources/templates/Localizable.strings:523
#, no-wrap
msgid "Set 0700260d for Intel HD5000 (Mobile) AAPL,ig-platform-id."
msgstr ""
msgstr "Установить 0000260d в качестве Intel HD5000 (Mobile) AAPL,ig-platform-id."
#. type: "IntelAzulx14_title"
#: Resources/templates/Localizable.strings:525
#: Resources/templates/Localizable.strings:526
#, no-wrap
msgid "Set 0800260a for Intel HD5000 (Mobile) AAPL,ig-platform-id."
msgstr ""
msgstr "Установить 0000260a в качестве Intel HD5000 (Mobile) AAPL,ig-platform-id."
#. type: "IntelAzulx15_title"
#: Resources/templates/Localizable.strings:528
#: Resources/templates/Localizable.strings:529
#, no-wrap
msgid "Set 08002e0a for Intel HD5000 (Mobile) AAPL,ig-platform-id."
msgstr ""
msgstr "Установить 00002e0a в качестве Intel HD5000 (Mobile) AAPL,ig-platform-id."
#. type: "AD2000B_PinConf_title"
#: Resources/templates/Localizable.strings:533
#: Resources/templates/Localizable.strings:534
#, no-wrap
msgid "Set HDEF PinConfiguration for Analog Devices AD2000b."
msgstr ""
msgstr "Установить HDEF PinConfiguration для Analog Devices AD2000b."
#. type: "AD1981HD_PinConf_title"
#: Resources/templates/Localizable.strings:536
#: Resources/templates/Localizable.strings:537
#, no-wrap
msgid "Set HDEF PinConfiguration for Analog Devices AD1981HD."
msgstr ""
msgstr "Установить HDEF PinConfiguration для Analog Devices AD1981HD."
#. type: "AD1988B_PinConf_title"
#: Resources/templates/Localizable.strings:539
#: Resources/templates/Localizable.strings:540
#, no-wrap
msgid "Set HDEF PinConfiguration for Analog Devices AD1988b."
msgstr ""
msgstr "Установить HDEF PinConfiguration для Analog Devices AD198b."
#. type: "ALC888_PinConf_title"
#: Resources/templates/Localizable.strings:542
#: Resources/templates/Localizable.strings:543
#, no-wrap
msgid "Set HDEF PinConfiguration for Realtek ALC888."
msgstr ""
msgstr "Установить HDEF PinConfiguration для Realtek ALC888."
#. type: "ALC1200_PinConf_title"
#: Resources/templates/Localizable.strings:545
#: Resources/templates/Localizable.strings:546
#, no-wrap
msgid "Set HDEF PinConfiguration for Realtek ALC1200."
msgstr ""
msgstr "Установить HDEF PinConfiguration для Realtek ALC1200."
#. type: "00_PinConf_title"
#: Resources/templates/Localizable.strings:548
#: Resources/templates/Localizable.strings:549
#, no-wrap
msgid "Set HDEF PinConfiguration for ???."
msgstr ""
msgstr "Установить HDEF PinConfiguration для ???."
#. type: "GraphicsEnabler_title"
#: Resources/templates/Localizable.strings:553
#. type: "IntelAzul_description"
#: Resources/templates/Localizable.strings:703
#, fuzzy, no-wrap
#| msgid "Set one AAPL,ig-platform-id to use for your Intel HD4000."
#, no-wrap
msgid "Set one AAPL,ig-platform-id to use for your Intel HD5000."
msgstr "Выберите значение AAPL,ig-platform-id, используемое по умолчанию для графического процессора Intel HD4000."

Archive Download the corresponding diff file

Revision: 2380