1*b1cdbd2cSJim Jagielski:
2*b1cdbd2cSJim Jagielskieval 'exec perl -wS $0 ${1+"$@"}'
3*b1cdbd2cSJim Jagielski    if 0;
4*b1cdbd2cSJim Jagielski#**************************************************************
5*b1cdbd2cSJim Jagielski#
6*b1cdbd2cSJim Jagielski#  Licensed to the Apache Software Foundation (ASF) under one
7*b1cdbd2cSJim Jagielski#  or more contributor license agreements.  See the NOTICE file
8*b1cdbd2cSJim Jagielski#  distributed with this work for additional information
9*b1cdbd2cSJim Jagielski#  regarding copyright ownership.  The ASF licenses this file
10*b1cdbd2cSJim Jagielski#  to you under the Apache License, Version 2.0 (the
11*b1cdbd2cSJim Jagielski#  "License"); you may not use this file except in compliance
12*b1cdbd2cSJim Jagielski#  with the License.  You may obtain a copy of the License at
13*b1cdbd2cSJim Jagielski#
14*b1cdbd2cSJim Jagielski#    http://www.apache.org/licenses/LICENSE-2.0
15*b1cdbd2cSJim Jagielski#
16*b1cdbd2cSJim Jagielski#  Unless required by applicable law or agreed to in writing,
17*b1cdbd2cSJim Jagielski#  software distributed under the License is distributed on an
18*b1cdbd2cSJim Jagielski#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
19*b1cdbd2cSJim Jagielski#  KIND, either express or implied.  See the License for the
20*b1cdbd2cSJim Jagielski#  specific language governing permissions and limitations
21*b1cdbd2cSJim Jagielski#  under the License.
22*b1cdbd2cSJim Jagielski#
23*b1cdbd2cSJim Jagielski#**************************************************************
24*b1cdbd2cSJim Jagielski
25*b1cdbd2cSJim Jagielski
26*b1cdbd2cSJim Jagielski#### script id #####
27*b1cdbd2cSJim Jagielski
28*b1cdbd2cSJim Jagielski( $script_name = $0 ) =~ s/^.*\b(\w+)\.pl$/$1/;
29*b1cdbd2cSJim Jagielski
30*b1cdbd2cSJim Jagielski$id_str = ' $Revision: 1.4.108.1 $ ';
31*b1cdbd2cSJim Jagielski$id_str =~ /Revision:\s+(\S+)\s+\$/
32*b1cdbd2cSJim Jagielski  ? ($script_rev = $1) : ($script_rev = "-");
33*b1cdbd2cSJim Jagielski
34*b1cdbd2cSJim Jagielski#########################
35*b1cdbd2cSJim Jagielski#                       #
36*b1cdbd2cSJim Jagielski#   Globale Variablen   #
37*b1cdbd2cSJim Jagielski#                       #
38*b1cdbd2cSJim Jagielski#########################
39*b1cdbd2cSJim Jagielski
40*b1cdbd2cSJim Jagielskiuse Encode;
41*b1cdbd2cSJim Jagielskiuse Encode::Alias;
42*b1cdbd2cSJim Jagielski
43*b1cdbd2cSJim Jagielski
44*b1cdbd2cSJim Jagielskimy ($in_name, $ID, $new_ID);
45*b1cdbd2cSJim Jagielskimy ($help);
46*b1cdbd2cSJim Jagielski
47*b1cdbd2cSJim Jagielskiprint STDERR "$script_name -- Version: $script_rev\n" ;
48*b1cdbd2cSJim Jagielski
49*b1cdbd2cSJim Jagielski&get_options;
50*b1cdbd2cSJim Jagielski
51*b1cdbd2cSJim Jagielskiif ( $help ) {
52*b1cdbd2cSJim Jagielski    &usage();
53*b1cdbd2cSJim Jagielski    exit 0;
54*b1cdbd2cSJim Jagielski};
55*b1cdbd2cSJim Jagielski
56*b1cdbd2cSJim Jagielski
57*b1cdbd2cSJim Jagielskiopen IN, "<$in_name" or die "Could not open $in_name for reading $! $^E";
58*b1cdbd2cSJim Jagielski
59*b1cdbd2cSJim Jagielskiforeach $lang ( keys %files )
60*b1cdbd2cSJim Jagielski{
61*b1cdbd2cSJim Jagielski    open "F_$lang",">$files{$lang}" or die "Could not open $files{$lang} for writing $! $^E";
62*b1cdbd2cSJim Jagielski    binmode "F_$lang";
63*b1cdbd2cSJim Jagielski    $files{$lang} = "F_$lang";
64*b1cdbd2cSJim Jagielski}
65*b1cdbd2cSJim Jagielski
66*b1cdbd2cSJim Jagielski%transunit = ();
67*b1cdbd2cSJim Jagielski
68*b1cdbd2cSJim Jagielskiwhile ( <IN> )
69*b1cdbd2cSJim Jagielski{
70*b1cdbd2cSJim Jagielski    chomp;
71*b1cdbd2cSJim Jagielski    $line = $_;
72*b1cdbd2cSJim Jagielski    $line =~ s/\r$//;
73*b1cdbd2cSJim Jagielski    # [RID_RESXLS_COST_Print_Area]
74*b1cdbd2cSJim Jagielski    if ( $line =~ /^\[(.*)\]$/ )
75*b1cdbd2cSJim Jagielski    {
76*b1cdbd2cSJim Jagielski        $new_ID = $1;
77*b1cdbd2cSJim Jagielski
78*b1cdbd2cSJim Jagielski        write_transunit();
79*b1cdbd2cSJim Jagielski        $ID = $new_ID;
80*b1cdbd2cSJim Jagielski        %transunit = ();
81*b1cdbd2cSJim Jagielski    }
82*b1cdbd2cSJim Jagielski    # de = "Druckbereich"
83*b1cdbd2cSJim Jagielski    elsif ( $line =~ /^(\S*)\s*=\s*\"(.*)\"$/ )
84*b1cdbd2cSJim Jagielski    {
85*b1cdbd2cSJim Jagielski        $lang = $1;
86*b1cdbd2cSJim Jagielski        $string = $2;
87*b1cdbd2cSJim Jagielski        $transunit{ $lang } = $string;
88*b1cdbd2cSJim Jagielski    }
89*b1cdbd2cSJim Jagielski    elsif ( $line !~ /^\s*$/ )
90*b1cdbd2cSJim Jagielski    {
91*b1cdbd2cSJim Jagielski        die "unknown lineformat in $in_name: $line\n";
92*b1cdbd2cSJim Jagielski    }
93*b1cdbd2cSJim Jagielski}
94*b1cdbd2cSJim Jagielskiwrite_transunit();
95*b1cdbd2cSJim Jagielski
96*b1cdbd2cSJim Jagielski
97*b1cdbd2cSJim Jagielskisub write_transunit
98*b1cdbd2cSJim Jagielski{
99*b1cdbd2cSJim Jagielski    if ( ! $ID )
100*b1cdbd2cSJim Jagielski    {
101*b1cdbd2cSJim Jagielski        return;
102*b1cdbd2cSJim Jagielski    }
103*b1cdbd2cSJim Jagielski	foreach $lang ( keys %files )
104*b1cdbd2cSJim Jagielski	{
105*b1cdbd2cSJim Jagielski	    my $string;
106*b1cdbd2cSJim Jagielski	    if ( defined $transunit{ $lang } )
107*b1cdbd2cSJim Jagielski	    {
108*b1cdbd2cSJim Jagielski	        $string = $transunit{ $lang };
109*b1cdbd2cSJim Jagielski	    }
110*b1cdbd2cSJim Jagielski	    else
111*b1cdbd2cSJim Jagielski	    {
112*b1cdbd2cSJim Jagielski	        $string = $transunit{ "en-US" };
113*b1cdbd2cSJim Jagielski	    }
114*b1cdbd2cSJim Jagielski
115*b1cdbd2cSJim Jagielski        my $dat_line = "$ID=$string";
116*b1cdbd2cSJim Jagielski        Encode::from_to( $dat_line, "utf8", "UTF-16LE");
117*b1cdbd2cSJim Jagielski		print { $files{$lang} } "$dat_line\015\000\012\000";
118*b1cdbd2cSJim Jagielski	}
119*b1cdbd2cSJim Jagielski}
120*b1cdbd2cSJim Jagielski
121*b1cdbd2cSJim Jagielski
122*b1cdbd2cSJim Jagielskisub get_options {
123*b1cdbd2cSJim Jagielski	my ($arg,$lang);
124*b1cdbd2cSJim Jagielski
125*b1cdbd2cSJim Jagielski	while ($arg = shift @ARGV) {
126*b1cdbd2cSJim Jagielski		$arg =~ /^-i$/  and $in_name = shift @ARGV and next;
127*b1cdbd2cSJim Jagielski		$arg =~ /^-help$/  and $help = 1 and next; #show help
128*b1cdbd2cSJim Jagielski
129*b1cdbd2cSJim Jagielski		$arg =~ /.*[\/\\]([^\/\\]*)\.dat$/;
130*b1cdbd2cSJim Jagielski#		$arg =~ /.*[/\]([^/\]*)\.dat$/;
131*b1cdbd2cSJim Jagielski		$lang = $1;
132*b1cdbd2cSJim Jagielski		print "got $lang = $arg\n";
133*b1cdbd2cSJim Jagielski		$files{ $lang } = $arg;
134*b1cdbd2cSJim Jagielski	}
135*b1cdbd2cSJim Jagielski}
136*b1cdbd2cSJim Jagielski
137*b1cdbd2cSJim Jagielski
138*b1cdbd2cSJim Jagielski
139*b1cdbd2cSJim Jagielskisub usage {
140*b1cdbd2cSJim Jagielski	print STDERR "\n\n";
141*b1cdbd2cSJim Jagielski    print STDERR "Syntax:   $script_name [-help|-i <ulf-filename>] <dat-filename> ... \n";
142*b1cdbd2cSJim Jagielski    print STDERR "Example:  $script_name -i strings.ulf en-US.dat de.dat\n";
143*b1cdbd2cSJim Jagielski    print STDERR "Options:\n\n";
144*b1cdbd2cSJim Jagielski    print STDERR "    -i      input ulf file\n";
145*b1cdbd2cSJim Jagielski    print STDERR "    -help   print this help info\n\n";
146*b1cdbd2cSJim Jagielski};
147*b1cdbd2cSJim Jagielski
148