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