📄 merge_langs
字号:
#!/usr/bin/php -q<?php/**************************************************************************\* eGroupWare - API htmlarea translations (according to lang in user prefs) ** http: //www.eGroupWare.org ** Written by Ralf Becker <RalfBecker@outdoor-training.de> ** -------------------------------------------- ** This program is free software; you can redistribute it and/or modify it ** under the terms of the GNU General Public License as published by the ** Free Software Foundation; either version 2 of the License, or (at your ** option) any later version. *\**************************************************************************//* $Id: merge_langs,v 1.1.2.1 2004/08/29 00:49:25 ralfbecker Exp $ */$plugin_dir = realpath(dirname(__FILE__));$setup_dir = realpath(dirname(__FILE__).'/../../../setup');function load_langfile($lang){ global $setup_dir; $lang_file = $setup_dir.'/phpgw_'.$lang.'.lang'; $arr = array(); if (file_exists($lang_file)) { foreach(file($lang_file) as $line) { @list($phrase,$app,$lang,$trans) = split("[\t\n\r]",$line); $arr[$phrase] = array( 'app' => $app, 'trans' => $trans, ); } } return $arr;}function save_langfile($lang,$arr){ $content = ''; ksort($arr); foreach($arr as $phrase => $data) { $content .= "$phrase\t$data[app]\t$lang\t$data[trans]\n"; } global $setup_dir; $lang_file = $setup_dir.'/phpgw_'.$lang.'.lang'; if ($f = fopen($lang_file,'w')) { fwrite($f,$content); } fclose($f);}$d = opendir($plugin_dir);while ($plugin = readdir($d)){ if (!is_dir($plugin) || $plugin == 'CVS' || $plugin == 'CSS' || $plugin[0] == '.') continue; if (!@file_exists($lang_file = $plugin_dir.'/'.$plugin.'/lang/en.js')) continue; $lang_file = file_get_contents($lang_file); if (!preg_match_all('/"([^"]+)"[ \t:]+"([^"]+)"/',$lang_file,$matches)) continue; $token2en = array(); foreach($matches[1] as $n => $token) { $token2en[$token] = $matches[2][$n]; } $l = opendir($plugin_dir.'/'.$plugin.'/lang'); while ($lang_file = readdir($l)) { if (!preg_match('/.js$/',$lang_file)) continue; $lang = substr($lang_file,0,2); $lang_file = $plugin_dir.'/'.$plugin.'/lang/'.$lang_file; echo "\nprocessing: $lang_file\n"; $lang_file = file_get_contents($lang_file); if (preg_match_all('/"([^"]+)"[ \t:]+"([^"]+)"/',$lang_file,$matches)) { $arr = load_langfile($lang); $needs_save = false; foreach($matches[1] as $n => $token) { if (!isset($token2en[$token])) continue; $phrase = strtolower($token2en[$token]); if (!$phrase) continue; if (isset($arr[$phrase])) { if ($arr[$phrase]['app'] != 'common' && $arr[$phrase]['app'] != 'htmlarea-'.$plugin) { $arr[$phrase]['app'] = 'common'; } continue; } $arr[$phrase] = array( 'app' => 'htmlarea-'.$plugin, 'trans' => $matches[2][$n], ); echo "adding: $phrase = ".$matches[2][$n]."\n"; $needs_save = true; } if ($needs_save) save_langfile($lang,$arr); } }}closedir($d);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -