52 lines
1.3 KiB
Perl
Executable File
52 lines
1.3 KiB
Perl
Executable File
# Utility for comparing language translation keys of BASE_LANG and a given language.
|
|
# Usage: perl translation-diff.pl $lang
|
|
# Will output a translation-diff.diff file that compares the lang keys of BASE_LANG to $lang.
|
|
|
|
use constant {
|
|
BASE_LANG => "en_US",
|
|
OUTPUT_FILE => "translation-diff.diff"
|
|
};
|
|
|
|
my $lang = $ARGV[0] or die("Missing language to diff with");
|
|
|
|
sub lang_file {
|
|
my ($lang) = @_;
|
|
my $filename = "src/main/resources/assets/refinedstorage/lang/" . $lang . ".lang";
|
|
open(my $fh, $filename) or die("Couldn't open $filename");
|
|
return $fh;
|
|
}
|
|
|
|
sub write_keys {
|
|
my ($lang, $lang_keys) = @_;
|
|
my $filename = $lang . ".tmp";
|
|
open(my $fh, '>', $filename) or die("Couldn't open temp file $filename for $lang for writing");
|
|
print $fh $lang_keys;
|
|
close $fh;
|
|
return $filename;
|
|
}
|
|
|
|
sub lang_keys {
|
|
my ($lang_file) = @_;
|
|
my $keys = "";
|
|
while (my $line = <$lang_file>) {
|
|
my @p = split("=", $line);
|
|
$keys .= $p[0] . "\n";
|
|
}
|
|
return $keys;
|
|
}
|
|
|
|
my $f1 = lang_file(BASE_LANG);
|
|
my $f2 = lang_file($lang);
|
|
|
|
my $base_keys = lang_keys($f1);
|
|
my $t1 = write_keys(BASE_LANG, $base_keys);
|
|
|
|
my $lang_keys = lang_keys($f2);
|
|
my $t2 = write_keys($lang, $lang_keys);
|
|
|
|
system("diff -s -y $t1 $t2 > " . OUTPUT_FILE);
|
|
|
|
unlink($t1, $t2);
|
|
|
|
close($f1, $f2);
|