|
|
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).'"> <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).'"> <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).'"> <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).'"> <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
|
Да, очень удобный. Я как раз его тут выкладывал неделю назад примерно.
|