diff options
author | Davy Defaud <davy.defaud@free.fr> | 2019-07-28 18:20:53 +0300 |
---|---|---|
committer | Davy Defaud <davy.defaud@free.fr> | 2019-07-28 18:20:53 +0300 |
commit | 0c62af664bc86583640e876546073603e2456ce9 (patch) | |
tree | 7a0099f5fcaa9206a986073571057800f0513822 /scripts | |
parent | 5c26f0d66edfdd1f1864312468494ee2b2e56bc4 (diff) |
Add a script to extract the last translators for each language
This generate a CSV file containing the name of the last translator of each language, with his e-mail address and the (ISO) date of his last translation.
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/gettranslator.sh | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/scripts/gettranslator.sh b/scripts/gettranslator.sh new file mode 100644 index 000000000..e36bbe928 --- /dev/null +++ b/scripts/gettranslator.sh @@ -0,0 +1,59 @@ +#!/bin/bash - +#=============================================================================== +# +# FILE: gettranslator.sh +# +# USAGE: ./gettranslator.sh [language] +# +# DESCRIPTION: Get last translator and last translation date for all languages +# or a given language specified as first argument +# +# OPTIONS: --- +# REQUIREMENTS: --- +# BUGS: --- +# NOTES: --- +# AUTHOR: Davy Defaud (DevDef), davy.defaud@free.fr +# ORGANIZATION: Remmina +# CREATED: 2019-06-23 +# LICENSE: GPLv2 +# REVISION: --- +#=============================================================================== + +PODIR="$( cd $(dirname "$0")/../po ; pwd -P )" + +last_translator_field="Last-Translator" +last_translation_field="PO-Revision-Date" + +function getFieldOfFile () { + fieldname="$1" + filename="$2" + regex="^\"$fieldname: (.*)\\\n\"\$" + field_line=$( grep -E "$regex" "$filename" ) + if [[ "$field_line" =~ $regex ]]; then + echo -n "${BASH_REMATCH[1]}" + fi +} + +if [ $# -eq 0 ]; then + languages=$(cat "$PODIR/LINGUAS") +else + languages="$1" +fi + +is_header=1 +for lang in $languages; do + if [ $is_header -eq 1 -a -f "$PODIR/$lang.po" ]; then + echo "language;last_translator;last_translator_email;last_translation" + is_header=0 + fi + last_translator=$( getFieldOfFile "$last_translator_field" "$PODIR/$lang.po" ) + last_translation=$( getFieldOfFile "$last_translation_field" "$PODIR/$lang.po" ) + + last_translator_email=${last_translator##*<} + last_translator_email=${last_translator_email%>*} + if [[ "$last_translator_email" =~ ^(EMAIL@ADDRESS|[^@]+)$ ]]; then + last_translator_email='' + fi + + echo "$lang;$last_translator;$last_translator_email;$last_translation" +done |