1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
<?php
/*-----8<--------------------------------------------------------------------
*
* BEdita - a semantic content management framework
*
* Copyright 2009 ChannelWeb Srl, Chialab Srl
*
* This file is part of BEdita: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* BEdita is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details.
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with BEdita (see LICENSE.LGPL).
* If not, see <http://gnu.org/licenses/lgpl-3.0.html>.
*
*------------------------------------------------------------------->8-----
*/
/**
* Translation helper class
*
* @version $Revision$
* @modifiedby $LastChangedBy$
* @lastmodified $LastChangedDate$
*
* $Id$
*/
/**
* i18n - translation helper
*
*/
class TrHelper extends AppHelper {
/**
* Included helpers.
*
* @var array
*/
var $helpers = array('Html');
/**
* map fields in db in form fields for any module
* @var array
*/
private $moduleFieldMap = array(
"commonFields" => array(
"title" => "title",
"description" => "description",
"nickname" => "unique name",
"start_date" => "scheduled from",
"end_date" => "to",
"abstract" => "short text",
"body" => "long text",
"creator" => "author",
"lang" => "main language",
"duration" => "duration in minutes",
"subject" => "subject"
),
"events" => array("creator" => "promoter"),
"areas" => array("creator" => "creator"),
"newsletter" => array(
"sender" => "sender email",
"reply_to" => "reply to",
"bounce_to" => "bounce to",
"privacy_disclaimer" => "privacy disclaimer",
"abstract" => "PLAIN TEXT version",
"body" => "HTML version"
)
);
/**
* translate a string
*
* @param string $s
* @param boolean $return
* @return string translation
*/
public function t($s, $return = false) {
return __($s, $return);
}
/**
* Translate string using domain (i.e. plugin name)
* @param string $d, domain to use
* @param string $s, text to translate
* @param boolean $return
*/
function td($d, $s, $return = false) {
return __d($d, $s, $return);
}
/**
* normal translation using i18n in cake php
*
* @param string $s
* @param boolean $return
* @return string translation
*/
public function translate($s, $return = false) {
return __($s, $return);
}
/**
* translate html->link url...
*
* @param string $s label
* @param string $u url
* @return string html link
*/
public function link($s, $u) {
$tr = __($s, true);
return $this->Html->link($tr, $u);
}
/**
* normal translation using i18n in cake php
*
* @param string $s Text to translate
* @param string $plural
* @param int $count
* @param boolean $return Set to true to return translated string, or false to echo
* @return mixed translated string if $return is false string will be echoed
*/
public function translatePlural($s, $plural, $count, $return = false) {
return __($s, $plural, $count, $return);
}
/**
* return the field used in the module corresponding to a database field
*
* @param string $moduleName
* @param string $dbFieldName
* @return string
*/
public function moduleField($moduleName, $dbFieldName) {
$fieldName = $dbFieldName;
if (array_key_exists($moduleName, $this->moduleFieldMap) && array_key_exists($dbFieldName, $this->moduleFieldMap[$moduleName])) {
$fieldName = $this->moduleFieldMap[$moduleName][$dbFieldName];
} elseif (array_key_exists($dbFieldName, $this->moduleFieldMap["commonFields"])) {
$fieldName = $this->moduleFieldMap["commonFields"][$dbFieldName];
}
return $this->output($fieldName);
}
}
?>