Added conv-lang.pl & moved to utils folder

pull/492/head
pvillaverde 1 year ago
parent 1c3ad3d248
commit eb6a5bddeb

@ -1,11 +1,13 @@
#!/bin/bash
git_top_level=$(git rev-parse --show-toplevel)
if [ $# -eq 0 ]; then
echo "Please specify a language file to update"
echo "Please specify a language to update"
exit 1
fi
language_file="$1"
language_file="$git_top_level/src/lang/extra/$1.txt"
# Check that the specified file exists
if [ ! -f "$language_file" ]; then
@ -38,4 +40,6 @@ while read -r line; do
echo "$line" >>"$language_file"
echo "Added missing line to $language_file: $line"
fi
done <"english.txt"
done <"$git_top_level/src/lang/extra/english.txt"
cd $git_top_level/src/lang/
perl $git_top_level/utils/conv-lang.pl

@ -0,0 +1,123 @@
#!/usr/bin/env perl
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 $start = 0;
my @lines = read_file("extra/english.txt") or die("Can't read english.txt");
for (@lines) {
$start = 1 if /##override off/;
next unless $start;
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*:/) {
if ($strs{$1}) {
push @lines, $strs{$1} . "\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);
}
Loading…
Cancel
Save