]> git.mxchange.org Git - friendica.git/blob - util/string_translator.php
IT string update
[friendica.git] / util / string_translator.php
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
4 <style>
5         textarea { width: 100% }
6         .no { background: #ffdddd; }
7 </style>
8 </head>
9 <body>  
10 <?php
11
12 $FRIENDIKA_PATH = dirname(dirname(__FILE__));
13
14 /* find languages */
15 $LANGS=array();
16 $d = dir($FRIENDIKA_PATH."/view");
17 while (false !== ($entry = $d->read())) {
18         if (is_file($d->path."/".$entry."/strings.php")){
19                 $LANGS[] = $entry;
20         }
21
22 }
23 $d->close();
24
25
26 class A{
27         var $strings = Array();
28 }
29
30 function loadstrings($lang = NULL){
31         global $FRIENDIKA_PATH;
32         if (is_null($lang)) {
33                 $path = $FRIENDIKA_PATH."/util/strings.php";
34         } else {
35                 $path = $FRIENDIKA_PATH."/view/$lang/strings.php";
36         }
37         $a = new A();
38         include_once($path);
39         return $a->strings;
40 }
41
42
43 function savestrings($lang, $strings){
44         global $FRIENDIKA_PATH;
45         $path = $FRIENDIKA_PATH."/view/$lang/strings.php";
46         $f = fopen($path,"w");
47         fwrite($f, "<"); fwrite($f, "?php\n");
48         foreach($strings as $k=>$v){
49              $k=str_replace("'","\'", $k);
50              $k=str_replace("\\\\'","\'", $k);
51              $k=str_replace("\n","\\n", $k);
52              $k=str_replace("\r","\\r", $k);
53              $v=str_replace("'","\'", $v);
54              $v=str_replace("\\\\'","\'", $v);
55          $v=str_replace("\n","\\n", $v);
56              $v=str_replace("\r","\\r", $v);
57
58                  fwrite( $f, '$a->strings[\''.$k.'\'] = \''. $v .'\';'."\n" );
59                  #echo '$a->strings[\''.$k.'\'] = \''. $v .'\''."\n" ;
60         }
61     fwrite($f, "?"); fwrite($f, ">\n");
62         fclose($f);
63 }
64
65
66
67 function hexstr($hexstr) {
68   $hexstr = str_replace(' ', '', $hexstr);
69   $hexstr = str_replace('\x', '', $hexstr);
70   $retstr = pack('H*', $hexstr);
71   return $retstr;
72 }
73
74 function strhex($string) {
75   $hexstr = unpack('H*', $string);
76   return array_shift($hexstr);
77 }
78
79
80 echo "<h1>Translator</h1>";
81 echo "<p>Utility to translate <code>string.php</code> file.";
82 echo " Need write permission to language file you want to modify</p>";
83 echo "<p>Installed languages:";
84 echo "<ul>";
85 foreach($LANGS as $l){
86         echo "<li><a href='?lang=$l'>$l</a></li>";
87 }
88 echo "</ul></p>";
89
90
91 $strings['en'] = loadstrings();
92
93 if (isset($_GET['lang'])){
94
95         $lang = $_GET['lang'];
96         $strings[$lang] = loadstrings($lang);
97         
98         $n1 = count($strings['en']);
99         $n2 = count($strings[$lang]);
100         
101         echo "<pre>";
102         echo "Tranlsate en to $lang<br>";
103         //echo "Translated $n2 over $n1 strings<br>";
104         echo "</pre><hr/>";
105
106
107
108         if (isset($_POST['save'])){
109                 echo "saving...";
110                 foreach ($_POST as $k=>$v){
111                         if ($k!="save" && $k!="from"){
112                             $k=hexstr($k);
113                                 $strings[$lang][$k] = $v;
114                         }
115                 }
116                 savestrings($lang, $strings[$lang]);
117                 echo "ok.<br>";
118         }
119
120
121
122
123
124         if (!isset($_POST['from'])){
125                 $from=0;
126         } else {
127                 $from = $_POST['from'];
128                 if ($_POST['save']=="Next")
129                         $from += 10;
130                 if ($_POST['save']=="Prev")
131                         $from -= 10;
132         }
133         $count = count($strings['en']);
134         $len = 10;
135         if ($from+$len>$count) $len=$count-$from;
136         $thestrings = array_slice($strings['en'], $from, $len, true);
137         
138
139         
140         echo "<form method='POST'>";
141         
142         if ($from>0)
143     echo "<input type='submit' name='save' id='save' value='Prev'/>";
144   echo "<input type='submit' name='reload' id='reload' value='Reload'/>";   
145   if ($from+$len<$count)
146     echo "<input type='submit' name='save' id='save' value='Next'/>";
147         
148         foreach($thestrings as $k=>$v){
149                 $id = strhex($k);
150                 $translation = $strings[$lang][$k];
151                 
152                 $v=str_replace("\n","\\n", $v);
153             $v=str_replace("\r","\\r", $v);
154                 $translation=str_replace("\n","\\n", $translation);
155             $translation=str_replace("\r","\\r", $translation);
156                 
157                 $istranslate = $translation != '' ? 'yes':'no';
158                 echo "<dl class='$istranslate'>";
159                 echo "<dt><label for='$id'>".htmlspecialchars($v)."</label></dt>";
160                 echo "<dd><textarea id='$id' name='$id'>$translation</textarea></dd>";
161                 echo "</dl>";
162         }
163         
164         
165         echo "<input type='hidden' name='from' value='$from'/>";        
166
167         if ($from>0)
168                 echo "<input type='submit' name='save' id='save' value='Prev'/>";
169         echo "<input type='submit' name='reload' id='reload' value='Reload'/>";         
170         if ($from+$len<$count)
171                 echo "<input type='submit' name='save' id='save' value='Next'/>";
172
173         echo "</form>";
174         
175         
176 }
177 ?>
178 </body>
179 </html>
180