summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSolomon Peachy <pizza@shaftnet.org>2021-12-15 19:02:54 -0500
committerSolomon Peachy <pizza@shaftnet.org>2021-12-15 19:19:44 -0500
commitb53d2bc4329b13069ca10f7cca980b5c94319bf5 (patch)
tree7101dd2f2ffe9bed2f4c18d8b5d864efb435561e
parent651853f5df0935d717336da06c742f34bc8b0bfc (diff)
downloadrockbox-b53d2bc432.tar.gz
rockbox-b53d2bc432.zip
languages: Fix RTL language file generation
The 'rtl' flags for Arabic and Hebrew was inadvertantly deleted in 7ff3c94e1 (over a year ago, in November 2020!) but it's actually been broken since the introduction of 'updatelang', in 2305966d (July 2020) The fix here is to change the 'RTL' flag from an <options> section in the language file to a comment in the header. It's not as pure in a design sense but it makes for a much cleaner implementation. I may further revamp this by making the 'RTL' flag into an explicit LANG_xxx string Change-Id: I48f394adfadc0aa804fd67690c87cc28f04fccdc
-rw-r--r--apps/lang/arabic.lang2
-rw-r--r--apps/lang/hebrew.lang2
-rwxr-xr-xtools/genlang10
3 files changed, 8 insertions, 6 deletions
diff --git a/apps/lang/arabic.lang b/apps/lang/arabic.lang
index a7961cfefc..e94bd19cef 100644
--- a/apps/lang/arabic.lang
+++ b/apps/lang/arabic.lang
@@ -14,6 +14,8 @@
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
# KIND, either express or implied.
#
+# LANGUAGE_IS_RTL
+#
# Arabic language file, translated by:
# - Mohamed Tarek
# - Raafat Akkad
diff --git a/apps/lang/hebrew.lang b/apps/lang/hebrew.lang
index 89475017ba..f7f03a562b 100644
--- a/apps/lang/hebrew.lang
+++ b/apps/lang/hebrew.lang
@@ -14,6 +14,8 @@
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
# KIND, either express or implied.
#
+# LANGUAGE_IS_RTL
+#
# Hebrew language file, translated by:
# - Ariel Saghiv
# - Liberman Shachar
diff --git a/tools/genlang b/tools/genlang
index 893badb57e..4f7386890d 100755
--- a/tools/genlang
+++ b/tools/genlang
@@ -369,6 +369,10 @@ while(<LANG>) {
if($_ =~ /^( *\#|[ \t\n\r]*\z)/) {
# comment or empty line - output it if it's part of the header
+ if ($_ =~ /LANGUAGE_IS_RTL/) {
+ $langoptions |= $LANGUAGE_FLAG_RTL;
+ }
+
if ($header and $sortfile) {
print($_);
}
@@ -485,12 +489,6 @@ while(<LANG>) {
}
undef @phrase;
} # end of </phrase>
- elsif($part eq "/options") {
- # closing the options
- if ($options{'rtl'}) {
- $langoptions |= $LANGUAGE_FLAG_RTL;
- }
- } # end of </options>
# starts with a slash, this _ends_ this section
$m = pop @m; # get back old value, the previous level's tag