| 28 |
case 'catalogs': |
case 'catalogs': |
| 29 |
default: |
default: |
| 30 |
$this->updatecatalog(); |
$this->updatecatalog(); |
| 31 |
|
#return $controller->forward('edit'); |
| 32 |
|
return $controller->redirect('index', 'catalogs'); |
| 33 |
break; |
break; |
| 34 |
} |
} |
| 35 |
} |
} |
| 36 |
|
|
| 37 |
function updatecatalog(){ |
function updatecatalog(){ |
| 38 |
dump($_POST); |
|
| 39 |
|
$compile = 1; |
| 40 |
|
$add_to_dictionary = 1; |
| 41 |
|
$domain = $_POST['domain']; |
| 42 |
|
$textdomain = $_POST['textdomain']; |
| 43 |
|
$lang = $_POST['lang']; |
| 44 |
|
$comments = trim($_POST['comments']); |
| 45 |
|
$headers = $_POST['headers']; |
| 46 |
|
|
| 47 |
|
|
| 48 |
|
foreach ($_POST as $key => $value) { |
| 49 |
|
if (preg_match('/^([a-z]+)[_]?([0-9]+)?_([0-9]+)$/', $key, $matches)) { |
| 50 |
|
switch ($matches[1]) |
| 51 |
|
{ |
| 52 |
|
case 'msgid': |
| 53 |
|
$msgid[$matches[3]] = $value; |
| 54 |
|
break; |
| 55 |
|
case 'msgstr': |
| 56 |
|
if ($matches[2] != '') { |
| 57 |
|
$msgstr[$matches[3]][$matches[2]] = stripslashes($value); |
| 58 |
|
} else { |
| 59 |
|
$msgstr[$matches[3]] = stripslashes($value); |
| 60 |
|
} |
| 61 |
|
break; |
| 62 |
|
case 'fuzzy': |
| 63 |
|
$is_fuzzy[$matches[3]] = $value; |
| 64 |
|
break; |
| 65 |
|
} |
| 66 |
|
} |
| 67 |
|
} |
| 68 |
|
|
| 69 |
|
$catalog = new PHPGettext_catalog($domain, $textdomain); |
| 70 |
|
$catalog->setproperty('mode', 'po'); |
| 71 |
|
$catalog->setproperty('lang', $lang); |
| 72 |
|
$catalog->load(); |
| 73 |
|
|
| 74 |
|
if (isset($comments)) { |
| 75 |
|
$comments = explode("\n", $comments); |
| 76 |
|
if (is_array($comments)) { |
| 77 |
|
foreach ($comments as $comment) { |
| 78 |
|
if (strpos($comment, '#') == 1) { |
| 79 |
|
$catalog->comments .= $comment."\n"; |
| 80 |
|
} |
| 81 |
} |
} |
| 82 |
|
} |
| 83 |
|
} |
| 84 |
|
|
| 85 |
|
foreach ($headers as $key => $value) { |
| 86 |
|
$catalog->headers[$key] = $value; |
| 87 |
|
} |
| 88 |
|
foreach ($msgstr as $index => $string) { |
| 89 |
|
$catalog->strings[$index]->setmsgstr($string); |
| 90 |
|
if (isset($is_fuzzy[$index])) { |
| 91 |
|
$catalog->strings[$index]->setfuzzy(true); |
| 92 |
|
} |
| 93 |
|
} |
| 94 |
|
$catalog->save(); |
| 95 |
|
if ($compile > 0) { |
| 96 |
|
$catalog->setproperty('mode', 'mo'); |
| 97 |
|
$catalog->save(); |
| 98 |
|
} |
| 99 |
|
|
| 100 |
|
if ($add_to_dictionary) { |
| 101 |
|
$admin = new PHPGettextAdmin(); |
| 102 |
|
if (!file_exists("$textdomain/$lang.po")) { |
| 103 |
|
set_time_limit(360); |
| 104 |
|
$cmd = "msgcat -o $textdomain/$lang.po $textdomain/$lang/$domain.po"; |
| 105 |
|
$admin->execute($cmd); |
| 106 |
|
} else { |
| 107 |
|
copy("$textdomain/$lang.po", "$textdomain/$lang.pot"); |
| 108 |
|
$cmd = "msgcat -o $textdomain/$lang.po $textdomain/$lang.pot $textdomain/$lang/$domain.po"; |
| 109 |
|
$admin->execute($cmd); |
| 110 |
|
unlink("$textdomain/$lang.pot"); |
| 111 |
|
} |
| 112 |
|
} |
| 113 |
|
$language = mamboLanguage::getInstance($lang); |
| 114 |
|
$language->save(); |
| 115 |
|
} |
| 116 |
|
|
| 117 |
function updatelanguage($iso639) { |
function updatelanguage($iso639) { |
| 118 |
|
|
| 119 |
$language =& mamboLanguage::getInstance($_POST['language']); |
$language =& mamboLanguage::getInstance($_POST['language']); |