Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(devtools): fix the import_messages script #1673

Closed
wants to merge 4 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 9 additions & 6 deletions src/cordova/android/import_messages.action.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,21 +24,24 @@ set -eu
# Converts a Polymer locale to a native Android locale.
function get_native_android_locale() {
case "$1" in
"zh-CN" | "zh-TW" | "pt-BR" | "pt-PT") echo $1 | sed -e 's/-/-r/g';;
"zh-CN" | "zh-TW" | "pt-BR" | "pt-PT" | "en-GB") echo $1 | sed -e 's/-/-r/g';;
"es-419") echo 'es';;
"sr-Latn") echo 'b+sr+Latn';;
*) echo "$1";;
esac
}

TRANSLATIONS_DIR="$ROOT_DIR/www/messages"
for TRANSLATION_FILE in "$TRANSLATIONS_DIR/*"; do
OUTPUT_DIR="src/cordova/plugin/android/resources/strings"
rm -rf "$OUTPUT_DIR/"*
for TRANSLATION_FILE in "$TRANSLATIONS_DIR/"*; do
LANG=`basename $TRANSLATION_FILE .json`
echo "Importing ${LANG}"
LANG=$(get_native_android_locale $LANG)

NATIVE_DIR="src/cordova/plugin/android/resources/strings/values-$LANG"
OUTPUT_FILE="$NATIVE_DIR/strings.xml"
python3 "$ROOT_DIR/src/cordova/android/import_messages.py" $TRANSLATION_FILE $OUTPUT_FILE
OUTPUT_FILE="$OUTPUT_DIR/values-$LANG/strings.xml"
python3 "$ROOT_DIR/src/cordova/android/import_messages.py" $TRANSLATION_FILE $OUTPUT_FILE 2>&1 || {
echo " ERROR: Failed to import ${LANG}"
}
done

mkdir -p "$OUTPUT_DIR/values/" && cp -r "$OUTPUT_DIR/values-en/" "$OUTPUT_DIR/values/"
88 changes: 50 additions & 38 deletions src/cordova/android/import_messages.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,62 +15,74 @@

Generates localized string files for native Android usage based on the front-end translations.

Usage: python tools/l10n/import_native_android_strings.py $TRANSLATION_FILE $OUTPUT_FILE
Example: python tools/l10n/import_native_android_strings.py www/messages/en.json
cordova-plugin-outline/android/resources/strings/values-en/strings.xml
Usage:
python src/cordova/android/import_messages.py $TRANSLATION_FILE $OUTPUT_FILE

Example:
python src/cordova/android/import_messages.py \
www/messages/en.json \
src/cordova/plugin/android/resources/strings/values-en/strings.xml
"""

import json
import os
import sys

DEFAULT_MESSAGES = {
"app_name": "Outline",
"launcher_name": "@string/app_name",
"activity_name": "@string/launcher_name",
}
# Keys to import.
NATIVE_KEYS = [
"connected_server_state",
"reconnecting_server_state",
"server_default_name_outline"
"connected_server_state",
"reconnecting_server_state",
"server_default_name_outline",
]
XML_TEMPLATE = '''<?xml version='1.0' encoding='utf-8'?>
XML_TEMPLATE = """<?xml version='1.0' encoding='utf-8'?>
<resources>
\t<string name="app_name">Outline</string>
\t<string name="launcher_name">@string/app_name</string>
\t<string name="activity_name">@string/launcher_name</string>{0}
{0}
</resources>
'''
MESSAGE_TEMPLATE="\n\t<string name=\"{0}\">{1}</string>"
"""
MESSAGE_TEMPLATE = '\t<string name="{0}">{1}</string>'


def read_input(filename):
with open(filename) as f:
return json.loads(f.read())
with open(filename) as f:
return json.loads(f.read())


def format_messages(messages_dict):
""" Formats input messages in Polymer format to native Android format. This means replacing
hyphens with underscores in keys and escaping apostrophes in values. """
formatted_messages = {}
for k,v in messages_dict.items():
formatted_messages[k.replace("-", "_")] = v.replace("'", "\\'")
return formatted_messages
"""Formats input messages in Polymer format to native Android format. This means replacing
hyphens with underscores in keys and escaping apostrophes in values."""
for k, v in messages_dict.items():
yield k.replace("-", "_"), v.replace("'", "\\'")


def write_output(output, filename):
with open(filename, "w+") as f:
f.write(output)
directory = os.path.dirname(filename)
if not os.path.exists(directory):
os.mkdir(directory)
with open(filename, "w+") as f:
f.write(output)


def main(argv):
if len(argv) < 3:
raise RuntimeError("Too few command-line arguments.")
input_filename = argv[1]
output_filename = argv[2]
polymer_messages = read_input(input_filename)
messages = format_messages(polymer_messages)
xml_entry_template = ''
xml_messages = ''
for k, v in messages.items():
if k not in NATIVE_KEYS:
continue
xml_messages += MESSAGE_TEMPLATE.format(k.encode("utf-8"), v.encode("utf-8"))

xml = XML_TEMPLATE.format(xml_messages)
write_output(xml, output_filename)
if len(argv) < 3:
raise RuntimeError("Too few command-line arguments.")
input_filename = argv[1]
output_filename = argv[2]
polymer_messages = DEFAULT_MESSAGES.copy()
polymer_messages.update(read_input(input_filename))
keys_to_import = list(DEFAULT_MESSAGES.keys()) + NATIVE_KEYS
messages = [
MESSAGE_TEMPLATE.format(k, v)
for k, v in format_messages(polymer_messages)
if k in keys_to_import
]
xml = XML_TEMPLATE.format("\n".join(messages))
write_output(xml, output_filename)


if __name__ == "__main__":
main(sys.argv)
main(sys.argv)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we generate these at build time instead? That would ensure they are always in sync with the messages.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I was thinking about this as well. Will take a look at that in a follow-up - was going to make some adjustments incrementally.

Do we still want a copy of these files checked-in as well or completely remove them from the repo?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In that case we should remove the generated files from the repo.

I'll let @daniellacosse review this PR.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I pointed Sander to this old PR I never got around to finishing: #1508

The plan is to get this into node first, then I'll add it to the build and delete the files in a subsequent PR.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alright I'll abandon this in favor of #1674.

Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version='1.0' encoding='utf-8'?>
<resources>
<string name="app_name">Outline</string>
<string name="launcher_name">@string/app_name</string>
<string name="activity_name">@string/launcher_name</string>
<string name="connected_server_state">Gekoppel</string>
<string name="reconnecting_server_state">Herkoppel tans …</string>
<string name="server_default_name_outline">Outline-bediener</string>
</resources>
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version='1.0' encoding='utf-8'?>
<resources>
<string name="app_name">Outline</string>
<string name="launcher_name">@string/app_name</string>
<string name="activity_name">@string/launcher_name</string>
<string name="connected_server_state">ተገናኝቷል</string>
<string name="reconnecting_server_state">ዳግም በማገናኘት ላይ...</string>
<string name="server_default_name_outline">Outline (አውትላይን) አገልጋይ</string>
</resources>
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<string name="app_name">Outline</string>
<string name="launcher_name">@string/app_name</string>
<string name="activity_name">@string/launcher_name</string>
<string name="reconnecting_server_state">جارٍ إعادة الاتصال...</string>
<string name="connected_server_state">متصل</string>
<string name="reconnecting_server_state">جارٍ إعادة الاتصال...</string>
<string name="server_default_name_outline">خادم Outline</string>
</resources>
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version='1.0' encoding='utf-8'?>
<resources>
<string name="app_name">Outline</string>
<string name="launcher_name">@string/app_name</string>
<string name="activity_name">@string/launcher_name</string>
<string name="connected_server_state">Qoşuldu</string>
<string name="reconnecting_server_state">Yenidən qoşulur...</string>
<string name="server_default_name_outline">Outline Serveri</string>
</resources>
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<string name="app_name">Outline</string>
<string name="launcher_name">@string/app_name</string>
<string name="activity_name">@string/launcher_name</string>
<string name="reconnecting_server_state">Veza se ponovo uspostavlja...</string>
<string name="connected_server_state">Povezano je</string>
<string name="reconnecting_server_state">Veza se ponovo uspostavlja...</string>
<string name="server_default_name_outline">Outline server</string>
</resources>
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<string name="app_name">Outline</string>
<string name="launcher_name">@string/app_name</string>
<string name="activity_name">@string/launcher_name</string>
<string name="reconnecting_server_state">Извършва се повторно свързване...</string>
<string name="connected_server_state">Установена е връзка</string>
<string name="reconnecting_server_state">Извършва се повторно свързване...</string>
<string name="server_default_name_outline">Сървър на Outline</string>
</resources>
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version='1.0' encoding='utf-8'?>
<resources>
<string name="app_name">Outline</string>
<string name="launcher_name">@string/app_name</string>
<string name="activity_name">@string/launcher_name</string>
<string name="connected_server_state">কানেক্ট করা আছে</string>
<string name="reconnecting_server_state">আবার কানেক্ট করা হচ্ছে...</string>
<string name="server_default_name_outline">Outline সার্ভার</string>
</resources>
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version='1.0' encoding='utf-8'?>
<resources>
<string name="app_name">Outline</string>
<string name="launcher_name">@string/app_name</string>
<string name="activity_name">@string/launcher_name</string>
<string name="connected_server_state">Povezano</string>
<string name="reconnecting_server_state">Ponovno povezivanje...</string>
<string name="server_default_name_outline">Outline server</string>
</resources>
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<string name="app_name">Outline</string>
<string name="launcher_name">@string/app_name</string>
<string name="activity_name">@string/launcher_name</string>
<string name="reconnecting_server_state">S\'està tornant a connectar...</string>
<string name="connected_server_state">Connectat</string>
<string name="reconnecting_server_state">S\'està tornant a connectar...</string>
<string name="server_default_name_outline">Servidor d\'Outline</string>
</resources>
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<string name="app_name">Outline</string>
<string name="launcher_name">@string/app_name</string>
<string name="activity_name">@string/launcher_name</string>
<string name="reconnecting_server_state">Nové připojování...</string>
<string name="connected_server_state">Připojeno</string>
<string name="reconnecting_server_state">Nové připojování...</string>
<string name="server_default_name_outline">Server aplikace Outline</string>
</resources>
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<string name="app_name">Outline</string>
<string name="launcher_name">@string/app_name</string>
<string name="activity_name">@string/launcher_name</string>
<string name="reconnecting_server_state">Genopretter forbindelsen...</string>
<string name="connected_server_state">Tilsluttet</string>
<string name="reconnecting_server_state">Genopretter forbindelsen...</string>
<string name="server_default_name_outline">Outline-server</string>
</resources>
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<string name="app_name">Outline</string>
<string name="launcher_name">@string/app_name</string>
<string name="activity_name">@string/launcher_name</string>
<string name="reconnecting_server_state">Verbindung wird wiederhergestellt…</string>
<string name="connected_server_state">Verbunden</string>
<string name="reconnecting_server_state">Verbindung wird wiederhergestellt…</string>
<string name="server_default_name_outline">Outline-Server</string>
</resources>
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<string name="app_name">Outline</string>
<string name="launcher_name">@string/app_name</string>
<string name="activity_name">@string/launcher_name</string>
<string name="reconnecting_server_state">Επανασύνδεση…</string>
<string name="connected_server_state">Συνδεδεμένος</string>
<string name="reconnecting_server_state">Επανασύνδεση…</string>
<string name="server_default_name_outline">Διακομιστής Outline</string>
</resources>
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version='1.0' encoding='utf-8'?>
<resources>
<string name="app_name">Outline</string>
<string name="launcher_name">@string/app_name</string>
<string name="activity_name">@string/launcher_name</string>
<string name="connected_server_state">Connected</string>
<string name="reconnecting_server_state">Reconnecting…</string>
<string name="server_default_name_outline">Outline server</string>
</resources>
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<string name="app_name">Outline</string>
<string name="launcher_name">@string/app_name</string>
<string name="activity_name">@string/launcher_name</string>
<string name="reconnecting_server_state">Reconnecting...</string>
<string name="connected_server_state">Connected</string>
<string name="reconnecting_server_state">Reconnecting...</string>
<string name="server_default_name_outline">Outline Server</string>
</resources>
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<string name="app_name">Outline</string>
<string name="launcher_name">@string/app_name</string>
<string name="activity_name">@string/launcher_name</string>
<string name="reconnecting_server_state">Volviendo a conectar…</string>
<string name="connected_server_state">Conectado</string>
<string name="reconnecting_server_state">Volviendo a conectar...</string>
<string name="server_default_name_outline">Servidor de Outline</string>
</resources>
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version='1.0' encoding='utf-8'?>
<resources>
<string name="app_name">Outline</string>
<string name="launcher_name">@string/app_name</string>
<string name="activity_name">@string/launcher_name</string>
<string name="connected_server_state">Ühendatud</string>
<string name="reconnecting_server_state">Uuesti ühendamine …...</string>
<string name="server_default_name_outline">Outline\'i server</string>
</resources>
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<string name="app_name">Outline</string>
<string name="launcher_name">@string/app_name</string>
<string name="activity_name">@string/launcher_name</string>
<string name="reconnecting_server_state">درحال اتصال مجدد...</string>
<string name="connected_server_state">وصل شدید</string>
<string name="reconnecting_server_state">درحال اتصال مجدد...</string>
<string name="server_default_name_outline">سرور Outline</string>
</resources>
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<string name="app_name">Outline</string>
<string name="launcher_name">@string/app_name</string>
<string name="activity_name">@string/launcher_name</string>
<string name="reconnecting_server_state">Yhdistetään uudelleen…</string>
<string name="connected_server_state">Yhdistetty</string>
<string name="reconnecting_server_state">Yhdistetään uudelleen…</string>
<string name="server_default_name_outline">Outline-palvelin</string>
</resources>
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<string name="app_name">Outline</string>
<string name="launcher_name">@string/app_name</string>
<string name="activity_name">@string/launcher_name</string>
<string name="reconnecting_server_state">Muling ikinokonekta...</string>
<string name="connected_server_state">Nakakonekta na</string>
<string name="reconnecting_server_state">Muling ikinokonekta...</string>
<string name="server_default_name_outline">Server ng Outline</string>
</resources>
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<string name="app_name">Outline</string>
<string name="launcher_name">@string/app_name</string>
<string name="activity_name">@string/launcher_name</string>
<string name="reconnecting_server_state">Reconnexion…</string>
<string name="connected_server_state">Connecté</string>
<string name="reconnecting_server_state">Reconnexion…</string>
<string name="server_default_name_outline">Serveur Outline</string>
</resources>
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<string name="app_name">Outline</string>
<string name="launcher_name">@string/app_name</string>
<string name="activity_name">@string/launcher_name</string>
<string name="reconnecting_server_state">החיבור מחדש מתבצע...</string>
<string name="connected_server_state">מחובר</string>
<string name="reconnecting_server_state">החיבור מחדש מתבצע...</string>
<string name="server_default_name_outline">שרת Outline</string>
</resources>
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<string name="app_name">Outline</string>
<string name="launcher_name">@string/app_name</string>
<string name="activity_name">@string/launcher_name</string>
<string name="reconnecting_server_state">फिर से कनेक्ट किया जा रहा है...</string>
<string name="connected_server_state">कनेक्ट किया गया</string>
<string name="reconnecting_server_state">फिर से कनेक्ट किया जा रहा है...</string>
<string name="server_default_name_outline">Outline सर्वर</string>
</resources>
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<string name="app_name">Outline</string>
<string name="launcher_name">@string/app_name</string>
<string name="activity_name">@string/launcher_name</string>
<string name="reconnecting_server_state">Ponovno povezivanje...</string>
<string name="connected_server_state">Povezano</string>
<string name="reconnecting_server_state">Ponovno povezivanje...</string>
<string name="server_default_name_outline">Poslužitelj za Outline</string>
</resources>
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<string name="app_name">Outline</string>
<string name="launcher_name">@string/app_name</string>
<string name="activity_name">@string/launcher_name</string>
<string name="reconnecting_server_state">Újracsatlakozás...</string>
<string name="connected_server_state">Csatlakoztatva</string>
<string name="reconnecting_server_state">Újracsatlakozás...</string>
<string name="server_default_name_outline">Outline-szerver</string>
</resources>
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version='1.0' encoding='utf-8'?>
<resources>
<string name="app_name">Outline</string>
<string name="launcher_name">@string/app_name</string>
<string name="activity_name">@string/launcher_name</string>
<string name="connected_server_state">Միացված է</string>
<string name="reconnecting_server_state">Կապի վերահաստատում…</string>
<string name="server_default_name_outline">Outline-ի սերվեր</string>
</resources>
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<string name="app_name">Outline</string>
<string name="launcher_name">@string/app_name</string>
<string name="activity_name">@string/launcher_name</string>
<string name="reconnecting_server_state">Menyambung kembali...</string>
<string name="connected_server_state">Tersambung</string>
<string name="connected_server_state">Terhubung</string>
<string name="reconnecting_server_state">Menghubungkan kembali...</string>
<string name="server_default_name_outline">Server Outline</string>
</resources>
Loading
Loading