mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-17 21:25:40 +00:00
137 lines
2.6 KiB
Perl
Executable File
137 lines
2.6 KiB
Perl
Executable File
#!/usr/bin/env perl
|
|
|
|
# This file is part of OpenTTD.
|
|
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
|
# OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
# See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
use utf8;
|
|
|
|
use File::Slurp;
|
|
|
|
my @langs = qw(
|
|
afrikaans.txt
|
|
arabic_egypt.txt
|
|
basque.txt
|
|
belarusian.txt
|
|
brazilian_portuguese.txt
|
|
bulgarian.txt
|
|
catalan.txt
|
|
chuvash.txt
|
|
croatian.txt
|
|
czech.txt
|
|
danish.txt
|
|
dutch.txt
|
|
english_AU.txt
|
|
english_US.txt
|
|
esperanto.txt
|
|
estonian.txt
|
|
faroese.txt
|
|
finnish.txt
|
|
french.txt
|
|
frisian.txt
|
|
gaelic.txt
|
|
galician.txt
|
|
german.txt
|
|
greek.txt
|
|
hebrew.txt
|
|
hindi.txt
|
|
hungarian.txt
|
|
icelandic.txt
|
|
ido.txt
|
|
indonesian.txt
|
|
irish.txt
|
|
italian.txt
|
|
japanese.txt
|
|
korean.txt
|
|
latin.txt
|
|
latvian.txt
|
|
lithuanian.txt
|
|
luxembourgish.txt
|
|
macedonian.txt
|
|
malay.txt
|
|
maltese.txt
|
|
marathi.txt
|
|
norwegian_bokmal.txt
|
|
norwegian_nynorsk.txt
|
|
persian.txt
|
|
polish.txt
|
|
portuguese.txt
|
|
romanian.txt
|
|
russian.txt
|
|
serbian.txt
|
|
simplified_chinese.txt
|
|
slovak.txt
|
|
slovenian.txt
|
|
spanish.txt
|
|
spanish_MX.txt
|
|
swedish.txt
|
|
tamil.txt
|
|
thai.txt
|
|
traditional_chinese.txt
|
|
turkish.txt
|
|
urdu.txt
|
|
ukrainian.txt
|
|
vietnamese.txt
|
|
welsh.txt
|
|
);
|
|
|
|
|
|
my @lang_lines;
|
|
|
|
my $override = 0;
|
|
my $no_translate = 0;
|
|
my @lines = read_file("extra/english.txt") or die("Can't read english.txt");
|
|
for (@lines) {
|
|
$override = 0 if /##override off/;
|
|
$override = 1 if /##override on/;
|
|
$no_translate = 0 if /##no-translate off/;
|
|
$no_translate = 1 if /##no-translate on/;
|
|
|
|
next if $override;
|
|
next if $no_translate;
|
|
|
|
next if /^##/;
|
|
|
|
push @lang_lines, $_;
|
|
}
|
|
|
|
|
|
for my $lang (@langs) {
|
|
my @in_lines = read_file($lang);
|
|
push @in_lines, read_file("extra/$lang");
|
|
|
|
my %strs;
|
|
for (@in_lines) {
|
|
chomp;
|
|
next if /^#/;
|
|
|
|
if (/^(\w+)\s*:/) {
|
|
$strs{$1} = $_;
|
|
}
|
|
}
|
|
|
|
my @lines;
|
|
my $suppress_whitespace = 1;
|
|
for (@lang_lines) {
|
|
if (/^(\w+)\s*:/) {
|
|
my $str = $strs{$1};
|
|
if ($str) {
|
|
$str =~ s/\{((?:\d:)?)STRING\d\}/{${1}STRING}/g;
|
|
$str =~ s/\{((?:\d:)?)RAW_STRING\}/{${1}STRING}/g;
|
|
push @lines, $str . "\n";
|
|
$suppress_whitespace = 0;
|
|
}
|
|
} else {
|
|
next if ($_ eq "\n") && $suppress_whitespace;
|
|
push @lines, $_;
|
|
$suppress_whitespace = ($_ eq "\n");
|
|
}
|
|
}
|
|
pop @lines if ($lines[-1] eq "\n");
|
|
write_file("extra/$lang", @lines);
|
|
}
|