Merge remote-tracking branch 'refs/remotes/KiCad/master'
This commit is contained in:
commit
1c0c94f6f3
|
@ -8,3 +8,5 @@ Makefile
|
||||||
CMakeFiles/*
|
CMakeFiles/*
|
||||||
*.pot
|
*.pot
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
i18n_status.svg
|
||||||
|
i18n_status.csv
|
||||||
|
|
1
POTDIRS
1
POTDIRS
|
@ -6,7 +6,6 @@ cvpcb
|
||||||
3d-viewer
|
3d-viewer
|
||||||
gerbview
|
gerbview
|
||||||
bitmap2component
|
bitmap2component
|
||||||
new
|
|
||||||
polygon
|
polygon
|
||||||
pcb_calculator
|
pcb_calculator
|
||||||
potrace
|
potrace
|
||||||
|
|
33998
ca/kicad.po
33998
ca/kicad.po
File diff suppressed because it is too large
Load Diff
6860
de/kicad.po
6860
de/kicad.po
File diff suppressed because it is too large
Load Diff
5765
fr/kicad.po
5765
fr/kicad.po
File diff suppressed because it is too large
Load Diff
4207
it/kicad.po
4207
it/kicad.po
File diff suppressed because it is too large
Load Diff
25065
ja/kicad.po
25065
ja/kicad.po
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,71 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
#####################################
|
||||||
|
#
|
||||||
|
# This program source code file is part of KiCad, a free EDA CAD application.
|
||||||
|
#
|
||||||
|
# Copyright (C) 2016 Nick Østergaard <oe.nick at gmail dot com>
|
||||||
|
# Copyright (C) 2016 KiCad Developers
|
||||||
|
#
|
||||||
|
# License GNU GPL Version 3 or any later version.
|
||||||
|
#
|
||||||
|
#####################################
|
||||||
|
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
import csv
|
||||||
|
import numpy as np
|
||||||
|
import time
|
||||||
|
|
||||||
|
# Initialize data structure variable
|
||||||
|
data = []
|
||||||
|
|
||||||
|
# Read CSV file
|
||||||
|
with open('i18n_status.csv', 'r') as csvfile:
|
||||||
|
spamreader = csv.reader(csvfile, delimiter=';')
|
||||||
|
for row in spamreader:
|
||||||
|
data.append(row)
|
||||||
|
|
||||||
|
# Replace empyt values with zero and convert numbers to int
|
||||||
|
for index,value in np.ndenumerate( data ):
|
||||||
|
if value=='':
|
||||||
|
data[index[0]][index[1]] = 0
|
||||||
|
try:
|
||||||
|
data[index[0]][index[1]] = int(data[index[0]][index[1]])
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
# Sort data after mostly translated
|
||||||
|
data[1:] = sorted(data[1:], key=lambda x: int(x[1]), reverse=True)
|
||||||
|
|
||||||
|
# Prepare some number for formatting the plot
|
||||||
|
N = len(data[1:]) # number of languages
|
||||||
|
width = 0.35 # the width of the bars
|
||||||
|
ind = np.arange(N)*width*5 # the x locations for the groups
|
||||||
|
|
||||||
|
# Plot the bars
|
||||||
|
fig, ax = plt.subplots()
|
||||||
|
rects1 = ax.bar(ind, list(zip(*data))[1][1:], width, color='b')
|
||||||
|
rects2 = ax.bar(ind+width, list(zip(*data))[2][1:], width, color='r')
|
||||||
|
rects3 = ax.bar(ind+2*width, list(zip(*data))[3][1:], width, color='y')
|
||||||
|
|
||||||
|
# Plot ceiling
|
||||||
|
max_nof_strings = sum(map(int, data[1][1:4]))
|
||||||
|
plt.plot([0,max(ind)+3*width],[max_nof_strings,max_nof_strings], color='k', linewidth='2')
|
||||||
|
ax.set_xlim([0,max(ind)+3*width])
|
||||||
|
|
||||||
|
# Add some text for labels, title and axes ticks
|
||||||
|
ax.set_ylabel('Number of strings')
|
||||||
|
ax.set_title('Translation status')
|
||||||
|
ax.set_xticks(ind+width*1.5)
|
||||||
|
ax.set_xticklabels(list(zip(*data))[0][1:])
|
||||||
|
ax.yaxis.grid(True, which='both') # horizontal lines
|
||||||
|
ax.legend((rects1[0], rects2[0], rects3[0]), ('TRANSLATED', 'FUZZY', 'UNTRANSLATED'), loc='upper center', bbox_to_anchor=(0.5, -0.05), fancybox=True, ncol=3)
|
||||||
|
plt.figtext(0.99, 0.96, time.strftime("%d/%m %Y"), horizontalalignment='right')
|
||||||
|
plt.subplots_adjust(left=0.07, right=0.99, top=0.95, bottom=0.12)
|
||||||
|
|
||||||
|
fig.set_size_inches(12, 8)
|
||||||
|
|
||||||
|
fig.savefig('i18n_status.svg')
|
||||||
|
|
||||||
|
# Show the magic to the user
|
||||||
|
plt.show()
|
4139
ru/kicad.po
4139
ru/kicad.po
File diff suppressed because it is too large
Load Diff
|
@ -1,33 +1,61 @@
|
||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
#####################################
|
#####################################
|
||||||
#
|
#
|
||||||
# This program source code file is part of KiCad, a free EDA CAD application.
|
# This program source code file is part of KiCad, a free EDA CAD application.
|
||||||
#
|
#
|
||||||
# Copyright (C) 2015 Marco Ciampa <ciampix@libero.it>
|
# Copyright (C) 2015 Marco Ciampa <ciampix@libero.it>
|
||||||
# Copyright (C) 2015 KiCAd Developers
|
# Copyright (C) 2015-2016 KiCad Developers
|
||||||
#
|
#
|
||||||
# License GNU GPL Version 3 or any later version.
|
# License GNU GPL Version 3 or any later version.
|
||||||
#
|
#
|
||||||
#####################################
|
#####################################
|
||||||
|
|
||||||
if [ "$1" = "--help" ] || [ "$1" = "-h" ] ; then
|
LANG=C
|
||||||
echo "Usage: $0 [-k] [locale]"
|
|
||||||
echo
|
|
||||||
echo "Where -k means keep pot template and not delete it"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$1" = "-k" ] ; then
|
display_help() {
|
||||||
|
echo "Usage: $0 [-k] [-p] [locale]"
|
||||||
|
echo " -k keep pot template and not delete it"
|
||||||
|
echo " -p plot the translation statistics [requires python with matplotlib]"
|
||||||
|
echo " -s=<path> path to kicad source code"
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
# Handle command line arguments
|
||||||
|
for i in "$@"; do
|
||||||
|
case $i in
|
||||||
|
-h|--help)
|
||||||
|
display_help
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-k)
|
||||||
KEEP=1
|
KEEP=1
|
||||||
shift
|
shift
|
||||||
|
;;
|
||||||
|
-p)
|
||||||
|
PLOT=1
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-s=*)
|
||||||
|
SOURCEDIR="${i#*=}"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
SINGLE_LANG=$i
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -z ${SOURCEDIR} ]; then
|
||||||
|
SOURCEDIR=../kicad-source-mirror
|
||||||
|
echo "Using default SOURCEDIR=${SOURCEDIR}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
SOURCEDIR=../kicad-source-mirror #Set this first!!!
|
|
||||||
|
|
||||||
#Autovars
|
#Autovars
|
||||||
|
cd $(dirname ${BASH_SOURCE[0]})
|
||||||
LOCALDIR=$PWD
|
LOCALDIR=$PWD
|
||||||
LINGUAS=`cat LINGUAS|grep -v '^#'|grep -v '^\s*$'` #Read file without comment and empty lines
|
CSVFILE=${PWD}/i18n_status.csv
|
||||||
POTDIRS=`cat POTDIRS|grep -v '^#'|grep -v '^\s*$'` #Read file without comment and empty lines
|
LINGUAS=`cat $LOCALDIR/LINGUAS|grep -v '^#'|grep -v '^\s*$'` #Read file without comment and empty lines
|
||||||
|
POTDIRS=`cat $LOCALDIR/POTDIRS|grep -v '^#'|grep -v '^\s*$'` #Read file without comment and empty lines
|
||||||
|
|
||||||
cd $SOURCEDIR
|
cd $SOURCEDIR
|
||||||
|
|
||||||
|
@ -47,23 +75,61 @@ rm $LOCALDIR/POTFILES
|
||||||
validate() { echo $LINGUAS | grep -F -q -w "$1"; }
|
validate() { echo $LINGUAS | grep -F -q -w "$1"; }
|
||||||
|
|
||||||
#If supplied, update only the specified locale
|
#If supplied, update only the specified locale
|
||||||
if [ ! "$1" = "" ] ; then
|
if [ ! "$SINGLE_LANG" = "" ] ; then
|
||||||
if ! validate "$1"; then
|
if ! validate "$SINGLE_LANG"; then
|
||||||
echo "Error!"
|
echo "Error!"
|
||||||
echo "Locale argument \"$1\" not present in current locale list:"
|
echo "Locale argument \"$1\" not present in current locale list:"
|
||||||
for i in $LINGUAS; do echo -n "$i " ; done
|
for i in $LINGUAS; do echo -n "$i "; done
|
||||||
|
echo # newline
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
LINGUAS="$1"
|
LINGUAS="$SINGLE_LANG"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
echo "Writing summary to ${CSVFILE}"
|
||||||
|
echo "LANG;TRANSLATED;FUZZY;UNTRANSLATED" > "${CSVFILE}"
|
||||||
|
|
||||||
for i in $LINGUAS
|
for i in $LINGUAS
|
||||||
do
|
do
|
||||||
msgmerge --force-po $LOCALDIR/$i/kicad.po $LOCALDIR/kicad.pot -o $LOCALDIR/$i/kicad.po 2>&1 # >> /dev/null
|
echo "## $i"
|
||||||
msgfmt --statistics $LOCALDIR/$i/kicad.po 2>&1 >>/dev/null
|
msgmerge --force-po $LOCALDIR/$i/kicad.po $LOCALDIR/kicad.pot -o $LOCALDIR/$i/kicad.po 2> /dev/null
|
||||||
|
msgfmt --statistics $LOCALDIR/$i/kicad.po 2>&1 >>/dev/null |
|
||||||
|
while IFS=",." read A B C D ; do
|
||||||
|
echo $A
|
||||||
|
echo $B
|
||||||
|
echo $C
|
||||||
|
echo $D
|
||||||
|
|
||||||
|
for STRING in "$A" "$B" "$C" "$D" ; do
|
||||||
|
STRING=${STRING# }
|
||||||
|
case "$STRING" in
|
||||||
|
*" translated message"* )
|
||||||
|
TRANSLATED=${STRING% translated message*}
|
||||||
|
;;
|
||||||
|
*" fuzzy translation"* )
|
||||||
|
FUZZY=${STRING% fuzzy translation*}
|
||||||
|
;;
|
||||||
|
*" untranslated message"* )
|
||||||
|
UNTRANSLATED=${STRING% untranslated message*}
|
||||||
|
;;
|
||||||
|
"" )
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
echo >&2 "$0: Unknown format of \"msgfmt --statistics $LOCALDIR/$i/kicad.po \": \"$STRING\""
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
echo "$i;${TRANSLATED};${FUZZY};${UNTRANSLATED}">>"${CSVFILE}"
|
||||||
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if [ "$PLOT" = "1" ]; then
|
||||||
|
cd $LOCALDIR
|
||||||
|
$LOCALDIR/plot_i18n_status.py
|
||||||
|
fi
|
||||||
|
|
||||||
if [ ! "$KEEP" = "1" ]; then
|
if [ ! "$KEEP" = "1" ]; then
|
||||||
rm $LOCALDIR/kicad.pot
|
rm $LOCALDIR/kicad.pot
|
||||||
fi
|
fi
|
||||||
|
|
38735
zh_CN/kicad.po
38735
zh_CN/kicad.po
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue