--- /dev/null
+#!/usr/bin/php -f\r
+<?php\r
+/**\r
+ * This script creates a po file for for a new language.\r
+ * based on english.php\r
+ * Be aware that the variables in the 'Language and character set'\r
+ * section ($lang['app...']) are not for translation, but settings.\r
+ * \r
+ * $Id: php2po,v 1.1 2004/11/10 01:28:10 chriskl Exp $\r
+ */\r
+\r
+\r
+switch ($argc)\r
+{\r
+ case 2:\r
+ $slang = 'english';\r
+ $dlang = $argv[1];\r
+ break;\r
+ case 3:\r
+ $slang = $argv[1];\r
+ $dlang = $argv[2];\r
+ break;\r
+ default:\r
+ echo "\nUsage: $argv[0] [srclang] dstlang\n\n";\r
+ exit();\r
+}\r
+\r
+$scode = file ($slang.".php");\r
+\r
+// Parse source code\r
+for ($i = 0; $i < count($scode); $i++)\r
+{\r
+ $scode[$i] = trim($scode[$i]);\r
+ if (substr($scode[$i], 0, 2) == '//')\r
+ {\r
+ $group = substr($scode[$i], 2);\r
+ $src[$group] = array();\r
+ }\r
+ \r
+ preg_match("/.lang\['(.*?)'\] = '(.*?)';/", $scode[$i], $ret);\r
+ \r
+ if (count($ret))\r
+ {\r
+ $src[$group][$ret[1]] = $ret[2];\r
+ }\r
+}\r
+\r
+// Parse destination (if it exists)\r
+if (file_exists($dlang.".php"))\r
+{\r
+ $dcode = file ($dlang.".php");\r
+ \r
+ for ($i = 0; $i < count($dcode); $i++)\r
+ {\r
+ $dcode[$i] = trim($dcode[$i]);\r
+ \r
+ preg_match("/.lang\['(.*?)'\] = '(.*?)';/", $dcode[$i], $ret);\r
+ \r
+ if (count($ret))\r
+ {\r
+ $dst[$ret[1]] = $ret[2];\r
+ }\r
+ }\r
+}\r
+\r
+// Create po file\r
+if (! $fres = fopen($dlang.".po", "w"))\r
+{\r
+ echo "\nError: cannot open file ".$dlang.".po for writing\n\n";\r
+ exit();\r
+}\r
+\r
+fwrite($fres, "#\n#\n#\n#\n\n\n\n\n");\r
+fwrite($fres, "msgid \"\"\n");\r
+fwrite($fres, "msgstr \"\"\n\n\n\n");\r
+\r
+foreach ($src as $group => $strings)\r
+{\r
+ fwrite($fres, "\n");\r
+ fwrite($fres, "#. group $group\n");\r
+ \r
+ foreach($strings as $var => $string)\r
+ {\r
+ $string = str_replace('"', '\\"', $string);\r
+ fwrite($fres, "#. str $var\n");\r
+ fwrite($fres, "msgid \"$string\"\n");\r
+ fwrite($fres, "msgstr \"");\r
+ if ($dst[$var])\r
+ {\r
+ $tstring = str_replace('"', '\\"', $dst[$var]);\r
+ fwrite($fres, $tstring);\r
+ }\r
+ fwrite($fres, "\"\n\n");\r
+ }\r
+ \r
+}\r
+\r
+fclose($fres);\r
+\r
+?>
\ No newline at end of file
--- /dev/null
+#!/usr/bin/php -f\r
+<?php\r
+/**\r
+ * This script converts a po file generated from english.php by php2po\r
+ * into a new_language.php\r
+ * The resulted php file still needs some manual editing \r
+ * (header & $lang['app...'] variables)\r
+ * \r
+ * $Id: po2php,v 1.1 2004/11/10 01:28:10 chriskl Exp $\r
+ */\r
+\r
+switch ($argc)\r
+{\r
+ case 2:\r
+ $dlang = $argv[1];\r
+ break;\r
+ default:\r
+ echo "\nUsage: $argv[0] dstlang\n\n";\r
+ exit();\r
+}\r
+\r
+\r
+if (!file_exists($dlang.".po"))\r
+{\r
+ echo "\nError: file not found: $dlang.po\n\n";\r
+ exit();\r
+}\r
+\r
+if (file_exists($dlang.".php"))\r
+{\r
+ echo "\nError: file $dlang.php already exists\n\n";\r
+ exit();\r
+}\r
+\r
+$scode = file ($dlang.".po");\r
+\r
+// Create lang.php file\r
+if (! $fres = fopen($dlang.".php", "w"))\r
+{\r
+ echo "\nError: cannot open file ".$dlang.".php for writing\n\n";\r
+ exit();\r
+}\r
+\r
+fwrite($fres, "<?php\n\n\n");\r
+\r
+// Parse source code\r
+for ($i = 0; $i < count($scode); $i++)\r
+{\r
+ if (preg_match("/^#. group (.*)$/", $scode[$i], $ret))\r
+ {\r
+ fwrite($fres, "\n\t//".$ret[1]."\n");\r
+ }\r
+ elseif (preg_match("/^#. str (.*)$/", $scode[$i], $ret))\r
+ {\r
+ $langvar = $ret[1];\r
+ }\r
+ elseif (preg_match("/^msgid \"(.*)\"$/", $scode[$i], $ret))\r
+ {\r
+ $base = $ret[1];\r
+ }\r
+ elseif (preg_match("/^msgstr \"(.*)\"$/", $scode[$i], $ret))\r
+ {\r
+ if (! $ret[1])\r
+ $ret[1] = $base;\r
+ \r
+ fwrite($fres, "\t\$lang['".$langvar."'] = '".str_replace('\\"', '"', $ret[1])."';\n");\r
+ }\r
+}\r
+\r
+fwrite($fres, "\n\n\n?>\n");\r
+\r
+fclose($fres);\r
+\r
+?>
\ No newline at end of file