Paul Vriens : transl: Sort the languages by translations and locale name.

Alexandre Julliard julliard at winehq.org
Fri Jul 17 09:16:34 CDT 2009


Module: tools
Branch: master
Commit: eb71250f257a58d30abe88d7df7d0fb3bdff485f
URL:    http://source.winehq.org/git/tools.git/?a=commit;h=eb71250f257a58d30abe88d7df7d0fb3bdff485f

Author: Paul Vriens <Paul.Vriens.Wine at gmail.com>
Date:   Fri Jul 17 09:44:52 2009 +0200

transl: Sort the languages by translations and locale name.

---

 transl/php/index.php |   45 +++++++++++++++++++++++++++++----------------
 1 files changed, 29 insertions(+), 16 deletions(-)

diff --git a/transl/php/index.php b/transl/php/index.php
index 94ee569..a000d70 100644
--- a/transl/php/index.php
+++ b/transl/php/index.php
@@ -3,6 +3,8 @@ include_once("config.php");
 include_once("lib.php");
 
 $summary = fopen("$DATAROOT/langs/summary", "r");
+$transl = array();
+$sum = 0;
 while ($line = fgets($summary, 1024))
 {
     if (!preg_match("/LANG ([0-9a-f]+:[0-9a-f]+) ([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+)/", $line, $m))
@@ -13,10 +15,9 @@ while ($line = fgets($summary, 1024))
     if ($m[3] == 0)
         continue;
     
-    $sum = $m[2]+0;
-    $transl[$m[1]] = $m[3];
-    $missing[$m[1]] = $m[4];
-    $errors[$m[1]] = $m[5];    
+    $sum = $m[2];
+    $transl[] = array('langid' => $m[1], 'name' => get_locale_name($m[1]), 'translated' => $m[3],
+                      'missing' => $m[4], 'errors' => $m[5]);
 }
 ?>
 <html>
@@ -59,36 +60,48 @@ function draw_bar($tr, $err, $sum)
     echo "</td></tr>";
 }
 
-arsort($transl, SORT_NUMERIC);
+function nicesort($a, $b)
+{
+    if ($a['translated'] != $b['translated'])
+        return ($a['translated'] < $b['translated']);
+
+    // English (Unites States) always on top
+    if ($a['langid'] == "009:01")
+        return 0;
+    if ($b['langid'] == "009:01")
+        return 1;
+    return strcasecmp($a['name'], $b['name']);
+}
+
+usort($transl, 'nicesort');
 $nr = 1;
 $missing_sum = 0;
 $errors_sum = 0;
 $transl_sum = 0;
 $serial = 0;
-$transl_keys = array_keys($transl);
 for ($i = 0; $i < count($transl); $i++)
 {
-    $langid = $transl_keys[$i];
-    $value = $transl[$langid];
+    extract($transl[$i]);
+
     echo "<tr>";
     if ($serial == 0)
     {
         for ($j = $i; $j < count($transl); $j++)
-            if ($transl[$langid] != $transl[$transl_keys[$j]])
+            if ($translated != $transl[$j]['translated'])
                 break;
         $serial = $j - $i;
         echo "<td rowspan=\"$serial\" style=\"text-align: center\">$nr";
         echo "</td>";
     }
-    echo "<td>".gen_lang_a($langid).get_lang_name($langid)."</a></td>";
-    printf("<td>%d (%.1f%%)</td>", $value, ($value*100)/$sum);
-    echo "<td>".$missing[$langid]."</td><td>".$errors[$langid]."</td>\n";
-    draw_bar($value, $errors[$langid], $sum);
+    echo "<td>".gen_lang_a($langid).$name."</a></td>";
+    printf("<td>%d (%.1f%%)</td>", $translated, ($translated*100)/$sum);
+    echo "<td>".$missing."</td><td>".$errors."</td>\n";
+    draw_bar($translated, $errors, $sum);
     
     $nr++;
-    $missing_sum += $missing[$langid];
-    $errors_sum += $errors[$langid];
-    $transl_sum += $value;
+    $transl_sum += $translated;
+    $missing_sum += $missing;
+    $errors_sum += $errors;
     $serial--;
 }
 ?>




More information about the wine-cvs mailing list