Un outil pour aider à la traduction - retour accueil
git clone git://bebou.netlib.re/tpt
Log | Files | Refs |
commit ca125d59455ab9eb5191bcc021397e24a197c9e3 Auterice: Arthur Pons <arthur.pons@unistra.fr> Date: Sat, 19 Oct 2024 22:46:58 +0200 Premier commit Pour un excel test.xlsx contenant les données sur la deuxième feuille faire make et ça devrait générer test.report au format tsv et test.html en html Limites : Gère mal si y'a plusieurs champs à mettre en forme en html (un max de trois pour le moment) Ne fonctionne que si c'est sur la seconde feuille de l'excel (codé en dur) Pas de tests (assez important ici) Diffstat:
A | .gitignore | | | 1 | + |
A | Arthur.html | | | 81 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
A | Arthur.report | | | 9 | +++++++++ |
A | Arthur.xlsx | | | 0 | |
A | Makefile | | | 9 | +++++++++ |
A | makelayout | | | 68 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
A | makereport | | | 47 | +++++++++++++++++++++++++++++++++++++++++++++++ |
A | tablelayout | | | 5 | +++++ |
8 files changed, 220 insertions(+), 0 deletions(-)
diff --git a/.gitignore b/.gitignore @@ -0,0 +1 @@ +.*.sw? diff --git a/Arthur.html b/Arthur.html @@ -0,0 +1,81 @@ +<style> +/* Format tables */ +table { + border-collapse: collapse; + margin: 1.5rem 0; +} + +figure > table { + width: max-content; +} + +td, +th { + border: 1px solid; + text-align: start; + padding: 0.5rem; +} + +th { + font-weight: bold; +} + +tr:nth-child(even) { + /* Set every other cell slightly darker. Improves readability. */ + background-color: #EEEEEE; +} + +table caption { + font-weight: bold; + margin-bottom: 0.5rem; +} +</style> +<table> + <thhead> + <tr> + <th>Source</th> + <th>Target</th> + <th>Result</th> + </tr> + </thead> +<tr> + <td>Source</td> + <td>Target</td> + <td></td> +</tr> +<tr> + <td>Vestibulum <mark class="red"> vestibulum </mark> placerat metus et vehicula </td> + <td>Η εταιρεία επενδύει σε <mark class="red"> αυτοκίνητα </mark> και φορτηγά </td> + <td>not ok</td> +</tr> +<tr> + <td>Vestibulum ante <mark class="red"> ipsum primis </mark> in faucibus orci luctus et ultrices posuere <mark class="red"> cubilia curae </mark> ; Fusce vel finibus justo </td> + <td>Μπροστά του, πρώτα απ 'όλα <mark class="red"> ipsum primis </mark> , στο λαιμό του νοσοκομείου, να στρώσει τα κρεβάτια της φροντίδας <mark class="red"> cubilia curae </mark> και της φροντίδας. Κλινικά ή απλώς τα όρια </td> + <td>ok</td> +</tr> +<tr> + <td>Sed mattis felis id <mark class="red"> dignissim </mark> viverra </td> + <td>Αλλά η αγορά ακινήτων είναι πραγματικό πλεονέκτημα <mark class="red"> dignissim </td> + <td>ok</td> +</tr> +<tr> + <td>Nulla non egestas elit</td> + <td>Δεν υπάρχει ανάγκη για προγραμματιστή</td> + <td></td> +</tr> +<tr> + <td>Nam convallis mi dui, et feugiat nunc interdum sed</td> + <td>Γιατί η κοιλάδα είναι το ντουί μου, και φευγιάτ που και που αλλά</td> + <td></td> +</tr> +<tr> + <td>Vestibulum <mark class="red"> vestibulum </mark> felis eu metus aliquam suscipit </td> + <td>Το γήπεδο ποδοσφαίρου φοβάται vestibulum</td> + <td></td> +</tr> +<tr> + <td>Praesent nec <mark class="red"> finibus felis </td> + <td>Δεν είναι <mark class="red"> finibus felis </mark> καν ένα έναυσμα </td> + <td>ok</td> +</tr> +</table> diff --git a/Arthur.report b/Arthur.report @@ -0,0 +1,9 @@ +source target result +Source Target +Vestibulum vestibulum placerat metus et vehicula Η εταιρεία επενδύει σε αυτοκίνητα και φορτηγά not ok +Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae ; Fusce vel finibus justo Μπροστά του, πρώτα απ 'όλα ipsum primis , στο λαιμό του νοσοκομείου, να στρώσει τα κρεβάτια της φροντίδας cubilia curae και της φροντίδας. Κλινικά ή απλώς τα όρια ok +Sed mattis felis id dignissim viverra Αλλά η αγορά ακινήτων είναι πραγματικό πλεονέκτημα dignissim ok +Nulla non egestas elit Δεν υπάρχει ανάγκη για προγραμματιστή +Nam convallis mi dui, et feugiat nunc interdum sed Γιατί η κοιλάδα είναι το ντουί μου, και φευγιάτ που και που αλλά +Vestibulum vestibulum felis eu metus aliquam suscipit Το γήπεδο ποδοσφαίρου φοβάται vestibulum +Praesent nec finibus felis Δεν είναι finibus felis καν ένα έναυσμα ok diff --git a/Arthur.xlsx b/Arthur.xlsx Binary files differ. diff --git a/Makefile b/Makefile @@ -0,0 +1,9 @@ +reports != find * -maxdepth 0 -type f -name '*.xlsx' | sed -E 's,\.[^.]+$$,.html,' + +all: ${reports} + +%.report : %.xlsx makereport + ./makereport $< > $@ + +%.html : %.report makelayout + ./makelayout $< > $@ diff --git a/makelayout b/makelayout @@ -0,0 +1,68 @@ +#! /bin/sh + +pl() { + tmpd=$(mktemp -d) + trap "rm -rf $tmpd" EXIT + + layout=$(< $1 sed -E 's/\$[a-zA-Z]+/%s/g') + nbargs=$(echo "$layout" | grep -o '%s' | wc -l) + maxargs=$(echo "4096/$nbargs*$nbargs" | bc) + + cat > $tmpd/in + + < $tmpd/in head -n1 | tr ' ' '\n' | nl -n ln -w1 > $tmpd/vars + + for var in $(< $1 grep -wEo '\$[a-zA-Z]+' | tr -d '$');do + grep "$var" $tmpd/vars + done | + cut -f1 | paste -s -d',' | + xargs -I{} awk -F'\t' -v col={} ' + BEGIN{getline;n=split(col,cols,",")} + { for (i=1;i<n+1;i++) { print $cols[i] } }' $tmpd/in | + xargs -d'\n' -n$maxargs printf "$layout\n" +} + +<<. cat +<style> +/* Format tables */ +table { + border-collapse: collapse; + margin: 1.5rem 0; +} + +figure > table { + width: max-content; +} + +td, +th { + border: 1px solid; + text-align: start; + padding: 0.5rem; +} + +th { + font-weight: bold; +} + +tr:nth-child(even) { + /* Set every other cell slightly darker. Improves readability. */ + background-color: #EEEEEE; +} + +table caption { + font-weight: bold; + margin-bottom: 0.5rem; +} +</style> +<table> + <thhead> + <tr> + <th>Source</th> + <th>Target</th> + <th>Result</th> + </tr> + </thead> +$(< $1 pl tablelayout | sed -E 's,,<mark class="red">,;s,,</mark>,' |sed -E 's,,<mark class="red">,;s,,</mark>,' | sed -E 's,,<mark class="red">,;s,,</mark>,' ) +</table> +. diff --git a/makereport b/makereport @@ -0,0 +1,47 @@ +#! /bin/sh + +tmpd=$(mktemp -d) +excelfile="$1" +foldername=$(basename $excelfile | sed -E 's,\.[^.]+$,,') +mkdir -p $tmpd/$foldername +cp "$excelfile" $tmpd/$foldername +cd $tmpd/$foldername +unzip -qq "$excelfile" 2> /dev/null + +xmllint --pretty 1 $tmpd/$foldername/xl/sharedStrings.xml | + awk ' + /<si>/ {getline;a=$0;next} + /<\/si>/ {print a;a="";next} + {a=a$0} + ' | + sed -E 's,<[^c][^>]*>,,g;s,^ +,,;s,<charset[^>]+>,,g' | + sed -E 's,<color[^>]+>,,g' | + sed -E 's,^ +,,g' | + tr -s ' ' | + nl -v0 -nln -w1 > strings + +echo "source target result" +cmp() { + xargs -n2 sh -c ' + #echo comparing line $1 with $2 + n1=$(grep "^$1 " strings | cut -f2) + n2=$(grep "^$2 " strings | cut -f2) + tocmp1=$(echo "$n1" | grep -Eo " [^]+ (|$)" | tr -d "") + tocmp2=$(echo "$n2" | grep -Eo " [^]+ (|$)" | tr -d "") + #echo "1 : $tocmp1" + #echo "2 : $tocmp2" + echo "$n2" | grep -q "$tocmp1" && res=ok || res="not ok" + [ "$tocmp1" = "$tocmp2" ] && res=ok || res="not ok" + echo "$n2" | grep -q "" || res="" + printf "%s %s %s\n" "$n1" "$n2" "$res" + ' -- +} + +xmllint --pretty 1 ./xl/worksheets/sheet2.xml | + grep '<v>' | paste - - | + sed -E 's,</?.?>,,g' | + tr -d ' ' | + cmp + +#rm -rf $tmpd +cd diff --git a/tablelayout b/tablelayout @@ -0,0 +1,5 @@ +<tr> + <td>$source</td> + <td>$target</td> + <td>$result</td> +</tr>