You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
1.8 KiB
84 lines
1.8 KiB
#! /usr/bin/perl
|
|
|
|
$inui = 0;
|
|
$tag = "";
|
|
$linenr = 0;
|
|
|
|
$incomdata = 0;
|
|
$aftername = 0;
|
|
$aftercomment = 0;
|
|
$commentvalue = "";
|
|
|
|
while ( <STDIN> )
|
|
{
|
|
$linenr = $linenr + 1;
|
|
|
|
# *LanguageVersion: Check for English
|
|
if (/^\*LanguageVersion:\s+([\w\-]+)\s*$/) {
|
|
last if ($1 ne "English");
|
|
}
|
|
|
|
# *OpenUI *InputSlot/Media Source: PickOne
|
|
if ($_ =~ "^*OpenUI") {
|
|
$inui = 1;
|
|
$_ =~ s/^\*OpenUI\s*//;
|
|
$tag = $_;
|
|
$tag =~ s%:.*$%%;
|
|
$tag =~ s%/.*%%;
|
|
chomp($tag);
|
|
$_ =~ s%\s*:.*$%%;
|
|
$_ =~ s%\s*\*%%;
|
|
$_ =~ s%^[^/]*/%%;
|
|
$_ =~ s%\"%\\\"%g;
|
|
chomp($_);
|
|
print "i18n(\"", $_, "\");\n";
|
|
next;
|
|
}
|
|
|
|
if ($_ =~ "^*CloseUI") {
|
|
$inui = 0;
|
|
$tag = "";
|
|
}
|
|
|
|
if ($inui) {
|
|
if (substr($_, 0, length($tag)) eq $tag) {
|
|
$_ =~ s%\s*:.*$%%;
|
|
$_ =~ s%\*\S*\s*%%;
|
|
$_ =~ s%^[^/]*/%%;
|
|
$_ =~ s%\"%\\\"%g;
|
|
chomp($_);
|
|
print "i18n(\"", $_, "\");\n";
|
|
}
|
|
}
|
|
|
|
# *% COMDATA #$VAR1 = {: Start looking for 'name','comment','type'
|
|
if (/^\*\% COMDATA \#\$VAR1/) {
|
|
$incomdata = 1;
|
|
}
|
|
|
|
# *% COMDATA # 'name': Continue looking for 'comment'
|
|
if ($incomdata && /^\*\% COMDATA \#\s*\'name\'/) {
|
|
$aftername = 1;
|
|
$aftercomment = 0;
|
|
}
|
|
|
|
# *% COMDATA # 'comment' => '*': Continue looking for 'type'
|
|
if ($aftername && /^\*\% COMDATA \#\s*\'comment\'\s*\=\>\s*\'(.*)\'/) {
|
|
$aftername = 0;
|
|
$aftercomment = 1;
|
|
$commentvalue = $1;
|
|
}
|
|
|
|
# *% COMDATA # 'type' => '*':
|
|
# Output comment if type is 'int', 'float' or 'string'
|
|
if ($aftercomment && /^\*\% COMDATA \#\s*\'type\'\s*\=\>\s*\'(.*)\'/) {
|
|
$aftername = 0;
|
|
$aftercomment = 0;
|
|
if ($1 eq "int" || $1 eq "float" || $1 eq "string") {
|
|
print "i18n(\"$commentvalue\");\n";
|
|
}
|
|
}
|
|
|
|
|
|
}
|