02.02.2006
Вот нашел на sugar translation tool на php. Кладется в основную директорию vtiger, после чего из браузера вызывается по имени. Штука прикольная и полезная. ----------------------------- <?php // Configuration area start // Please config the following settings before translation besides Traditional Chinese :) // Notice : // 1. Give rights to web server for writing all language files if you are not use M$ OS // ex. /language/ and /modules/*/language/ // 2. Please put this script to the root path of your SugarCRM installation $bk = chr(10); // The sign of line break $qo = ' '; // The sign for quote $lang = 'ru_ru'; // Your language code in ISO-XXX $encode = 'UTF-8'; // The encode you want to use // Configuration area end ?> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="<?php echo $lang; ?>"> <head> <meta http-equiv="Content-Type" content="text/html; charset=<?php echo $encode; ?>" /> <style type="text/css"> body{ font-size: 10pt; } input{ height: 17pt; border: 1px solid black; background-color: #A5A5A5; color: #FFFFFF; } div{ line-height: 20pt; } </style> </head> <body> <form method="get"> Modules :<select name="kfolder"> <?php $dir = "modules"; if ($dh = opendir($dir)) { while (($folder = readdir($dh)) !== false) { if(is_dir($dir.'/'.$folder)&&$folder!='..'&&$folder!='.') { echo '<option'; if($folder == $_GET['kfolder']) echo ' selected'; echo '>'.$folder.'</option>'; } } closedir($dh); } ?> </select><input type="submit"></form> <form method="get"> MessageBoard files: <select name="mfile"> <?php $dir = $dir . '/MessageBoard/language/lang_english'; if ($dh1 = opendir($dir)) { while (($mfile = readdir($dh1)) !== false) { if(is_file($dir.'/'.$mfile)&&$mfile!='..'&&$mfile!='.'&&preg_match('/php/i', $mfile)) { echo '<option'; if($mfile == $_GET['mfile']) echo ' selected'; echo '>'.$mfile.'</option>'; } } closedir($dh1); } ?> </select><input type="submit"> </form> <br> <?php if($_GET['kfolder']){ echo '<form method="post">'; if($_POST['go']){ $string = ''; @unlink('modules/'.$_GET['kfolder'].'/language/'.$lang.'.lang.php_old'); @copy('modules/'.$_GET['kfolder'].'/language/'.$lang.'.lang.php', 'modules/'.$_GET['kfolder'].'/language/'.$lang.'.lang.php_old'); $fd = fopen('modules/'.$_GET['kfolder'].'/language/'.$lang.'.lang.php', 'w'); fwrite($fd, '<?php'.$bk.'$mod_strings = array ('.$bk); //$string .= 'app_list_strings = array ('.$bk; foreach($_POST['mod_strings'] as $key1 => $arr){ if(is_array($arr)){ $string .= $qo.'\''.$key1.'\' =>'.$bk.$qo.'array ('.$bk; foreach($arr as $key2 => $string1){ $string .= $qo.$qo.'\''.$key2.'\' => \''.$string1.'\','.$bk; } $string .= $qo.'),'.$bk; } else { $string .= $qo.'\''.$key1.'\' => \''.$arr.'\','.$bk; } } fwrite($fd, $string); $string = ''; if(sizeof($_POST['mod_list_strings']) > 0){ fwrite($fd, $bk.');'.$bk.'$mod_list_strings = array ('.$bk); foreach($_POST['mod_list_strings'] as $key1 => $arr){ if(is_array($arr)){ $string .= $qo.'\''.$key1.'\' =>'.$bk.$qo.'array ('.$bk; foreach($arr as $key2 => $string1){ $string .= $qo.$qo.'\''.$key2.'\' => \''.$string1.'\','.$bk; } $string .= $qo.'),'.$bk; } else { $string .= $qo.'\''.$key1.'\' => \''.$arr.'\','.$bk; } } fwrite($fd, $string); } fwrite($fd, $bk.');'.$bk.'?>'); } include 'modules/'.$_GET['kfolder'].'/language/en_us.lang.php'; $en_mod_strings = $mod_strings; $en_mod_strings2 = $en_mod_strings; $en_mod_list_strings = $mod_list_strings; $en_mod_list_strings2 = $mod_list_strings; if(file_exists('modules/'.$_GET['kfolder'].'/language/'.$lang.'.lang.php')) include 'modules/'.$_GET['kfolder'].'/language/'.$lang.'.lang.php'; $result1 = array_merge($en_mod_strings, $mod_strings); $result2 = array_merge($en_mod_list_strings, $mod_list_strings); $cidx = 0; function div_color($idx){ if($idx % 2 == 0) return '#C0C0C0'; else return '#848484'; } foreach($result1 as $key => $arr){ if(is_array($arr)){ foreach($arr as $key2 => $string){ echo '<div style="background-color:'.div_color($cidx).'">&nbsp;&nbsp;<input type="text" name="mod_strings['.$key.']['.$key2.']" value="'.$string.'" size="80">'; echo $en_mod_strings2[$key][$key2]; echo '</div>'; $cidx++; } } else { echo '<div style="background-color:'.div_color($cidx).'">&nbsp;&nbsp;<input type="text" name="mod_strings['.$key.']" value="'.$arr.'" size="80">'; echo $en_mod_strings2[$key]; echo '</div>'; $cidx++; } } if($result2){ foreach($result2 as $key => $arr){ if(is_array($arr)){ foreach($arr as $key2 => $string){ echo '<div style="background-color:'.div_color($cidx).'">&nbsp;&nbsp;<input type="text" name="mod_list_strings['.$key.']['.$key2.']" value="'.$string.'" size="80">'; echo $en_mod_list_strings2[$key][$key2]; echo '</div>'; } } else { echo '<div style="background-color:'.div_color($cidx).'">&nbsp;&nbsp;<input type="text" name="mod_list_strings['.$key.']" value="'.$arr.'" size="80"><br>'; echo $en_mod_list_strings2[$key]; echo '</div>'; } } } echo '<input type="submit" name="go" value="go">'; echo '</form>'; } else if($_GET['mfile']) { if($_POST['mgo']) { } echo '<form method="post">'; echo '<input type="submit" name="mgo" value="go">'; echo '</form>'; } ?> </body> </html>
02.02.2006
Обязательно посмотрю сегодня вечером. Слушай, а ты ни с кем из Sugar rus не общался? Может их позвать, пусть посмотрят? Может что посоветуют.. Как думаешь?
02.02.2006
Нет, не общался. Но посмотрел на информацию, которую они сообщили о себе в sugar и разрешили просматривать. Советую тоже посмотреть.)
02.02.2006
Ты имеешь в виду обращение [b]Dr.[/b]? :) Больше ничего не заметил.. Кстати, не заработала translation tool ( Выдаёт ошибку компиляции.. А у тебя?
03.02.2006
Теперь заработала. Там перепутались одинарные кавычки и двойные - все стали одинарными.. Реально интересная штучка. Что-то подобное (только с редактированием он-лайн) было у eGroupWare (сейчас они кажется phpGroupWare, или наоборот), можно наверное посмотреть и есть вероятность, что получится адаптировать. А у самих Sugar видел Translation Suit? Насколько я понял, даже со словарём терминов. Жаль только, что под Sugar заточен довольно плотно. Да и лицензию я не читал ещё, может и не дадут использовать.. [file name=tt.zip size=1657]http://www.vtiger.ru/components/com_joomlaboard/uploaded/files/tt.zip[/file]
03.02.2006
Кстати, реально [b]не рекомендую запускать[/b] на рабочей базе! Хорошо ещё, что она автоматом резервную копию делает.. Наверное не все кавычки я правильно расставил.. :whistle:

Сообщение отредактировано: justoff, в: 2006/02/03 19:27
05.02.2006
[b]justoff писал(а):[/b] [quote]Кстати, реально [b]не рекомендую запускать[/b] на рабочей базе! Хорошо ещё, что она автоматом резервную копию делает.. Наверное не все кавычки я правильно расставил.. :whistle:<br><br>Сообщение отредактировано: justoff, в: 2006/02/03 19:27[/quote] А как выложить присоединенный файл? Я бы выложил, то, что я использую...
06.02.2006
[b]kostigoff писал(а):[/b] [quote] А как выложить присоединенный файл? Я бы выложил, то, что я использую...[/quote] Ты имеешь в виду в форуме? Насколько я понял - любой может приложить файл к своему сообщению, разве нет? Если речь идёт о файловом архиве - то пока руки не доходят сделать доступ на заливку фалов. P.S. Хотя я тебе уже сделал уровень "Автор" и новости ты написать можешь.
06.02.2006
Все, что надо - заменить язык на русский. Тогда будет работать. Я использую translation_m.php. Только один недостаток - в моем браузере надо обновлять страницу, выбирая utf-8. А так всё работает. vtiger установлен на Fedora Core 3, браузер - Firefox на win2k. [file name=translation_tool.zip size=3126]http://www.vtiger.ru/components/com_joomlaboard/uploaded/files/translation_tool.zip[/file]
02.03.2006
На [url]www.sugarcrm.com.ua[/url] есть топик от [b]alex[/b] [url]http://www.sugarcrm.com.ua/viewtopic.php?t=46[/url] . Удобный инструмент для перевода модулей и приложений в SugarCRM. После первода сохраняет читсый файл не содержащий мусора и текстов из старых версий перевода. Как минимум можно добавить все пропущенные переводы на английском. Оригинальынй [url]http://www.sugarforge.org/projects/translationtool/[/url] Немного переделаный под последнюю версию и русский язык [url]http://uaport.net/files/translationtool-0.1.401.tgz[/url][url][/url]
02.03.2006
Да, очень удобный. Я как раз его тут выкладывал неделю назад примерно.
Текст сообщения: