← Back to team overview

widelands-dev team mailing list archive

[Merge] lp:~gunchleoc/widelands/translation_validation_folder_structure into lp:widelands

 

GunChleoc has proposed merging lp:~gunchleoc/widelands/translation_validation_folder_structure into lp:widelands.

Commit message:
Copy translation validation results into maintainers' and translators' views to make them easier for translators to navigate.

Requested reviews:
  Widelands Developers (widelands-dev)

For more details, see:
https://code.launchpad.net/~gunchleoc/widelands/translation_validation_folder_structure/+merge/355599
-- 
Your team Widelands Developers is requested to review the proposed merge of lp:~gunchleoc/widelands/translation_validation_folder_structure into lp:widelands.
=== modified file 'utils/glossary_checks.py'
--- utils/glossary_checks.py	2017-08-17 14:06:54 +0000
+++ utils/glossary_checks.py	2018-09-25 13:26:19 +0000
@@ -512,8 +512,8 @@
                     hit.term, hit.translation, hit.source, hit.target, hit.po_file, hit.location)
                 locale_result = locale_result + row
                 counter = counter + 1
-        dest_filepath = output_path + '/glossary_check_' + locale + '.csv'
-        with open(dest_filepath, 'wt') as dest_file:
+        dest_filepath = make_path(output_path + '/' + locale)
+        with open(dest_filepath + '/glossary_check.csv', 'wt') as dest_file:
             dest_file.write(locale_result)
         # Uncomment this line to print a statistic of the number of hits for each locale
         # print("%s\t%d"%(locale, counter))
@@ -547,7 +547,7 @@
 
         input_path = os.path.abspath(os.path.join(
             os.path.dirname(__file__), '../po'))
-        output_path = make_path(os.path.dirname(__file__), '../po_validation')
+        output_path = make_path(os.path.dirname(__file__), '../po_validation/translators')
         result = check_translations_with_glossary(
             input_path, output_path, glossary_file, locale)
         print('Current time: %s' % time.ctime())

=== modified file 'utils/validate_translations.sh'
--- utils/validate_translations.sh	2018-09-10 07:00:08 +0000
+++ utils/validate_translations.sh	2018-09-25 13:26:19 +0000
@@ -18,36 +18,46 @@
   exit 1;
 fi
 
-# Make sure that the output directory is there
+# Make sure that the output directories are there and empty
+echo "Creating directories in 'po_validation'"
 if [ ! -d "po_validation" ]; then
-  echo "Creating directory 'po_validation'"
   mkdir po_validation
 fi
+if [ ! -d "po_validation/maintainers" ]; then
+  mkdir po_validation/maintainers
+else
+  rm -rf po_validation/maintainers/*
+fi
+if [ ! -d "po_validation/translators" ]; then
+  mkdir po_validation/translators
+else
+  rm -rf po_validation/translators/*
+fi
 
 echo "Running i18nspector. This can take a while."
 
 # We want a log of all errors.
 i18nspector po/*/*.po \
   | grep "E:" \
-  > po_validation/i18nspector-errors.log
+  > po_validation/maintainers/i18nspector-errors.log
 
 # We don't care about all warnings, so we filter some out.
 i18nspector po/*/*.po \
   | grep "W:" \
   | grep -v "invalid-last-translator" \
   | grep -v boilerplate \
-  > po_validation/i18nspector-warnings.log
+  > po_validation/maintainers/i18nspector-warnings.log
 
 
 # Takes type of check as an argument.
 # Makes a subdirectory for the argument if necessary,
 # then runs pofilter with the check.
 function run_pofilter() {
-  if [ ! -d "po_validation/$1/" ]; then
-    mkdir po_validation/$1/
+  if [ ! -d "po_validation/maintainers/$1/" ]; then
+    mkdir po_validation/maintainers/$1/
   fi
   echo "Running pofilter for '$1'"
-  pofilter -t $1 -i po/ -o po_validation/$1/
+  pofilter -t $1 -i po/ -o po_validation/maintainers/$1/
 }
 
 # These checks are critical
@@ -72,30 +82,44 @@
 run_pofilter "numbers"
 
 # We only run the options check on the command line help
-if [ ! -d "po_validation/options/" ]; then
+if [ ! -d "po_validation/maintainers/options/" ]; then
   echo "Creating directory 'options'"
-  mkdir po_validation/options/
+  mkdir po_validation/maintainers/options/
 fi
 echo "Running pofilter for 'options'"
-pofilter -t options -i po/widelands_console/ -o po_validation/options/
+pofilter -t options -i po/widelands_console/ -o po_validation/maintainers/options/
 
-echo "Cleaning up empty directories"
-for dir in po_validation/*/
+echo "Processing directories"
+for dir in po_validation/maintainers/*/
 do
   dir=${dir%*/}
-  echo "- Cleaning up ${dir##*/}"
-    if [ ! "$(find po_validation/${dir##*/}/ -mindepth 1 -maxdepth 1 -type d -printf . | wc -c)" -eq 0 ]; then
-    for subdir in po_validation/${dir##*/}/*/
+  echo "- ${dir##*/}"
+    if [ ! "$(find po_validation/maintainers/${dir##*/}/ -mindepth 1 -maxdepth 1 -type d -printf . | wc -c)" -eq 0 ]; then
+    for subdir in po_validation/maintainers/${dir##*/}/*/
     do
       subdir=${subdir%*/}
-      if [ ! "$(ls -A po_validation/${dir##*/}/${subdir##*/})" ]; then
-        rmdir po_validation/${dir##*/}/${subdir##*/}
+      if [ ! "$(ls -A po_validation/maintainers/${dir##*/}/${subdir##*/})" ]; then
+        # Delete empty directories
+        rmdir po_validation/maintainers/${dir##*/}/${subdir##*/}
+      else
+        # Copy files to translators' view
+        category=$(basename "$dir")
+        textdomain=$(basename "$subdir")
+        for localepath in $(find $subdir -maxdepth 2 -type f)
+        do
+          locale=$(basename "${localepath%.*}")
+          targetpath="po_validation/translators/$locale/$textdomain/$category.po"
+          if [ ! -d "po_validation/translators/$locale/" ]; then
+              mkdir po_validation/translators/$locale/
+          fi
+          if [ ! -d "po_validation/translators/$locale/$textdomain/" ]; then
+              mkdir po_validation/translators/$locale/$textdomain/
+          fi
+          cp $localepath $targetpath
+        done
       fi
     done
   fi
-  if [ ! "$(ls -A po_validation/${dir##*/})" ]; then
-    rmdir po_validation/${dir##*/}
-  fi
 done
 
 echo "Done"


Follow ups