Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #https://github.com/WayofTime/BloodMagic/blob/master/src/main/resources/assets/alchemicalwizardryBooks/lang/en_US.lang
- #!/usb/bin/perl
- use strict;
- use warnings;
- use Data::Dumper;
- open(F, '<en_US.lang') or die;
- #structure: {category => $category, entryName=> $entryName, ordinal => $entryNumber, text => $entryText, categoryStart => $categoryStart}
- my @entryList;
- my %translations;
- my %categories;
- my $printEveryLine = 0;
- my $printErrors = 0;
- while(<F>){
- chomp;
- my $line = $_;
- if ( $line eq "" ) {
- next;
- }
- if ($line =~ /^aw\.entries\.([a-zA-Z]*)\.([a-zA-Z0-9]*)(\.(\d*))?=(.*?)$/) {
- my ($category,$entryName,$entryNumber,$entryText) = ($1,$2,$4,$5);
- my $categoryStart = 0;
- $entryNumber = 0 if not $entryNumber;
- print "[$category][$entryName].[$entryNumber]=$entryText\n" if $printEveryLine;
- if (not $categories{$category}){
- $categoryStart = 1;
- $categories{$category} = 1;
- }
- push @entryList, {category => $category, entryName=> $entryName, ordinal => $entryNumber, text => $entryText, categoryStart => $categoryStart};
- } elsif ($line =~ /^guide\.BloodMagic\.entryName\.([a-zA-Z]*\.[a-zA-Z0-9]*)=(.*)/){
- my ($key,$value) = ($1,$2);
- $translations{$key} = $value;
- print "Translation: $key=$value\n" if $printEveryLine;
- } elsif ($line =~ /^guide\.BloodMagic\.category\.([a-zA-Z]*)=(.*)/){
- my ($categoryKey,$categoryValue) = ($1,$2);
- $categories{$categoryKey} = $categoryValue;
- print "Category: $categoryKey=$categoryValue\n" if $printEveryLine;
- }
- else{
- print "Not matched: $line\n" if $printErrors;
- }
- }
- close(F);
- my $categoryDelim = ("=" x 10);
- for my $entry (@entryList){
- if ($entry->{categoryStart}){
- my $categoryName = $categories{$entry->{category}};
- print ("\n\n\n$categoryDelim $categoryName $categoryDelim\n");
- }
- if (not ($entry->{category}) or not ($entry->{entryName})) {
- print Dumper($entry) if $printErrors;
- }
- my $entryKey = $entry->{category}.".".$entry->{entryName};
- print "\n\n$translations{$entryKey}\n\n" if ($entry->{ordinal} == 1 || $entry->{ordinal} == 0 );
- print "$entry->{text}\n";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement