diff options
author | Florent Revest <revestflo@gmail.com> | 2017-03-04 18:00:57 +0100 |
---|---|---|
committer | Florent Revest <revestflo@gmail.com> | 2017-03-04 18:00:57 +0100 |
commit | 9713bddf71b3f400d2685fc279d853e59ff5e1d0 (patch) | |
tree | 182f2015c796f3afdee6bd65a2a09136d47e2c04 /i18n | |
parent | f6deeed2f9d4521ee4f5f812484f3a52c96b5d9e (diff) |
Makes .desktop file translatable
Diffstat (limited to 'i18n')
-rw-r--r-- | i18n/asteroid-stopwatch.de.ts | 12 | ||||
-rw-r--r-- | i18n/asteroid-stopwatch.desktop.h | 5 | ||||
-rw-r--r-- | i18n/asteroid-stopwatch.es.ts | 12 | ||||
-rw-r--r-- | i18n/asteroid-stopwatch.fa.ts | 12 | ||||
-rw-r--r-- | i18n/asteroid-stopwatch.fr.ts | 12 | ||||
-rw-r--r-- | i18n/asteroid-stopwatch.ko.ts | 12 | ||||
-rw-r--r-- | i18n/asteroid-stopwatch.nl.ts | 12 | ||||
-rw-r--r-- | i18n/asteroid-stopwatch.pl.ts | 12 | ||||
-rw-r--r-- | i18n/asteroid-stopwatch.pt_BR.ts | 12 | ||||
-rw-r--r-- | i18n/asteroid-stopwatch.ru.ts | 12 | ||||
-rw-r--r-- | i18n/asteroid-stopwatch.sv.ts | 12 | ||||
-rw-r--r-- | i18n/asteroid-stopwatch.uk.ts | 12 | ||||
-rwxr-xr-x | i18n/generate-desktop.sh | 61 |
13 files changed, 198 insertions, 0 deletions
diff --git a/i18n/asteroid-stopwatch.de.ts b/i18n/asteroid-stopwatch.de.ts new file mode 100644 index 0000000..d6bc113 --- /dev/null +++ b/i18n/asteroid-stopwatch.de.ts @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="de_DE"> +<context> + <name>QObject</name> + <message> + <location filename="asteroid-stopwatch.desktop.h" line="5"/> + <source>Stopwatch</source> + <translation>Stoppuhr</translation> + </message> +</context> +</TS> diff --git a/i18n/asteroid-stopwatch.desktop.h b/i18n/asteroid-stopwatch.desktop.h new file mode 100644 index 0000000..8f642d6 --- /dev/null +++ b/i18n/asteroid-stopwatch.desktop.h @@ -0,0 +1,5 @@ +/* This dummy header is just used to generate a translatable Qt string that + * will be integrated to i18n/.ts files, translated on Weblate and then merged + * back with the .desktop.template file into a single .desktop file. */ + +QObject::tr("Stopwatch"); diff --git a/i18n/asteroid-stopwatch.es.ts b/i18n/asteroid-stopwatch.es.ts new file mode 100644 index 0000000..d2aac15 --- /dev/null +++ b/i18n/asteroid-stopwatch.es.ts @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="es_ES"> +<context> + <name>QObject</name> + <message> + <location filename="asteroid-stopwatch.desktop.h" line="5"/> + <source>Stopwatch</source> + <translation>Cronometro</translation> + </message> +</context> +</TS> diff --git a/i18n/asteroid-stopwatch.fa.ts b/i18n/asteroid-stopwatch.fa.ts new file mode 100644 index 0000000..708781b --- /dev/null +++ b/i18n/asteroid-stopwatch.fa.ts @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="fa_IR"> +<context> + <name>QObject</name> + <message> + <location filename="asteroid-stopwatch.desktop.h" line="5"/> + <source>Stopwatch</source> + <translation>کﺭﻮﻧﻮﻤﺗﺭ</translation> + </message> +</context> +</TS> diff --git a/i18n/asteroid-stopwatch.fr.ts b/i18n/asteroid-stopwatch.fr.ts new file mode 100644 index 0000000..14ba06e --- /dev/null +++ b/i18n/asteroid-stopwatch.fr.ts @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="fr_FR"> +<context> + <name>QObject</name> + <message> + <location filename="asteroid-stopwatch.desktop.h" line="5"/> + <source>Stopwatch</source> + <translation>Chronomètre</translation> + </message> +</context> +</TS> diff --git a/i18n/asteroid-stopwatch.ko.ts b/i18n/asteroid-stopwatch.ko.ts new file mode 100644 index 0000000..2d682b9 --- /dev/null +++ b/i18n/asteroid-stopwatch.ko.ts @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="ko_KR"> +<context> + <name>QObject</name> + <message> + <location filename="asteroid-stopwatch.desktop.h" line="5"/> + <source>Stopwatch</source> + <translation>초시계</translation> + </message> +</context> +</TS> diff --git a/i18n/asteroid-stopwatch.nl.ts b/i18n/asteroid-stopwatch.nl.ts new file mode 100644 index 0000000..6a0379c --- /dev/null +++ b/i18n/asteroid-stopwatch.nl.ts @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="nl_NL"> +<context> + <name>QObject</name> + <message> + <location filename="asteroid-stopwatch.desktop.h" line="5"/> + <source>Stopwatch</source> + <translation>Stopwatch</translation> + </message> +</context> +</TS> diff --git a/i18n/asteroid-stopwatch.pl.ts b/i18n/asteroid-stopwatch.pl.ts new file mode 100644 index 0000000..5690963 --- /dev/null +++ b/i18n/asteroid-stopwatch.pl.ts @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="pl_PL"> +<context> + <name>QObject</name> + <message> + <location filename="asteroid-stopwatch.desktop.h" line="5"/> + <source>Stopwatch</source> + <translation>Stoper</translation> + </message> +</context> +</TS> diff --git a/i18n/asteroid-stopwatch.pt_BR.ts b/i18n/asteroid-stopwatch.pt_BR.ts new file mode 100644 index 0000000..3e38b75 --- /dev/null +++ b/i18n/asteroid-stopwatch.pt_BR.ts @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="pt_BR"> +<context> + <name>QObject</name> + <message> + <location filename="asteroid-stopwatch.desktop.h" line="5"/> + <source>Stopwatch</source> + <translation>Cronômetro</translation> + </message> +</context> +</TS> diff --git a/i18n/asteroid-stopwatch.ru.ts b/i18n/asteroid-stopwatch.ru.ts new file mode 100644 index 0000000..7025f1d --- /dev/null +++ b/i18n/asteroid-stopwatch.ru.ts @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="ru_RU"> +<context> + <name>QObject</name> + <message> + <location filename="asteroid-stopwatch.desktop.h" line="5"/> + <source>Stopwatch</source> + <translation>секундомер</translation> + </message> +</context> +</TS> diff --git a/i18n/asteroid-stopwatch.sv.ts b/i18n/asteroid-stopwatch.sv.ts new file mode 100644 index 0000000..787f727 --- /dev/null +++ b/i18n/asteroid-stopwatch.sv.ts @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="sv_SE"> +<context> + <name>QObject</name> + <message> + <location filename="asteroid-stopwatch.desktop.h" line="5"/> + <source>Stopwatch</source> + <translation>Tidtagarur</translation> + </message> +</context> +</TS> diff --git a/i18n/asteroid-stopwatch.uk.ts b/i18n/asteroid-stopwatch.uk.ts new file mode 100644 index 0000000..bffce44 --- /dev/null +++ b/i18n/asteroid-stopwatch.uk.ts @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="uk_UA"> +<context> + <name>QObject</name> + <message> + <location filename="asteroid-stopwatch.desktop.h" line="5"/> + <source>Stopwatch</source> + <translation>Секундомір</translation> + </message> +</context> +</TS> diff --git a/i18n/generate-desktop.sh b/i18n/generate-desktop.sh new file mode 100755 index 0000000..f4c8a3e --- /dev/null +++ b/i18n/generate-desktop.sh @@ -0,0 +1,61 @@ +#!/bin/bash + +# This script is used to extract the translated app names found inevery .ts file +# and gather those strings with the .desktop.template file in a single .desktop + +if [ "$#" -ne 2 ]; then + echo "usage: $0 src_directory output.desktop" + exit 1 +fi + +SRC_DIR=$1 +OUTPUT_DESKTOP_FILE=$2 +if [ ! -f "${SRC_DIR}/${OUTPUT_DESKTOP_FILE}.template" ]; then + echo "${SRC_DIR}/${OUTPUT_DESKTOP_FILE}.template not found" + exit 2 +fi +if [ ! -f "${SRC_DIR}/i18n/${OUTPUT_DESKTOP_FILE}.h" ]; then + echo "${SRC_DIR}/i18n/${OUTPUT_DESKTOP_FILE}.h not found" + exit 2 +fi + +DEFAULT_NAME=`grep -oP 'QObject::tr\("\K[^"]+(?="\);)' ${SRC_DIR}/i18n/${OUTPUT_DESKTOP_FILE}.h` +if [ -z "$DEFAULT_NAME" ]; then + echo "Default name can not be found in ${SRC_DIR}/i18n/${OUTPUT_DESKTOP_FILE}.h" + exit 3 +fi + +cat ${SRC_DIR}/${OUTPUT_DESKTOP_FILE}.template > ${OUTPUT_DESKTOP_FILE} +echo "Name=$DEFAULT_NAME" >> $OUTPUT_DESKTOP_FILE + +for FILE in ${SRC_DIR}/i18n/*.ts; do + echo "Processing $FILE..." + + PROCESSED_LANG=`grep -oP 'language="\K[^"]+(?=")' $FILE` + if [ -z "$PROCESSED_LANG" ]; then + echo "> Couldn't find a corresponding language id, aborting" + continue + fi + echo "> Language: $PROCESSED_LANG detected" + + TRANSLATION_LINE=`grep -A 2 '<location.*desktop\.h" ' $FILE | grep '<translation'` + if [ -z "$TRANSLATION_LINE" ]; then + echo "> Couldn't find a corresponding desktop.h translation, aborting" + continue + fi + + LINE_IS_UNFINISHED=`echo $TRANSLATION_LINE | grep unfinished` + if [ ! -z "$LINE_IS_UNFINISHED" ]; then + echo "> Translation line has been found but is marked as unfinished, aborting" + continue + fi + + TRANSLATED_NAME=`echo $TRANSLATION_LINE | grep -oP '>\K[^<]*(?=</translation>)'` + if [ -z "$TRANSLATED_NAME" ]; then + echo "> Translation is empty, aborting" + continue + fi + echo "> Translation '$TRANSLATED_NAME' found, filling $OUTPUT_DESKTOP_FILE" + + echo "Name[$PROCESSED_LANG]=$TRANSLATED_NAME" >> $OUTPUT_DESKTOP_FILE +done |