122 public function init(
$lang) {
125 $this->charSetArray = $this->csConvObj->charSetArray;
137 foreach (
$locales->getLocaleDependencies($this->lang) as $language) {
138 $this->languageDependencies[] = $language;
141 if (
$GLOBALS[
'TYPO3_CONF_VARS'][
'BE'][
'lang'][
'debug']) {
142 $this->debugKey = TRUE;
164 if (is_array($arr)) {
165 foreach ($arr as $k => $larr) {
166 if (!isset($this->moduleLabels[$k])) {
167 $this->moduleLabels[$k] = array();
169 if (is_array($larr)) {
170 foreach ($larr as $l => $v) {
171 $this->moduleLabels[$k][$prefix . $l] = $v;
192 return $this->csConvObj->utf8_to_entities($str);
211 $nArr = $this->csConvObj->utf8_to_numberarray($str);
212 return 'String.fromCharCode(' . implode(
',', $nArr) .
')';
222 return $this->debugKey ?
'[' . $value .
']' :
'';
233 public function getLL($index, $hsc = FALSE) {
235 if (isset(
$GLOBALS[
'LOCAL_LANG'][$this->lang][$index][0][
'target'])) {
238 $output =
$GLOBALS[
'LOCAL_LANG'][
'default'][$index][0][
'target'];
241 $output = htmlspecialchars($output);
243 return $output . $this->
debugLL($index);
255 public function getLLL($index, $localLanguage, $hsc = FALSE) {
258 $value = is_string($localLanguage[$this->lang][$index]) ?
262 if (trim($value) ===
'') {
263 $value = is_string($localLanguage[
'default'][$index]) ?
264 $localLanguage[
'default'][$index] :
265 $localLanguage[
'default'][$index][0][
'target'];
268 $value = htmlspecialchars($value);
270 return $value . $this->
debugLL($index);
284 public function sL($input, $hsc = FALSE) {
286 if (isset($this->LL_labels_cache[$this->lang][$identifier])) {
287 return $this->LL_labels_cache[
$this->lang][$identifier];
289 if (strpos($input,
'LLL:') === 0) {
290 $restStr = trim(substr($input, 4));
293 if (strpos($restStr,
'EXT:') === 0) {
294 $restStr = trim(substr($restStr, 4));
297 $parts = explode(
':', $restStr);
298 $parts[0] = $extPrfx . $parts[0];
300 if (!isset($this->LL_files_cache[$parts[0]])) {
301 $this->LL_files_cache[$parts[0]] = $this->
readLLfile($parts[0]);
304 if ($lFileRef && $this->LL_files_cache[$parts[0]][$this->lang] ===
'EXT') {
309 $output = $this->
getLLL($parts[1], $this->LL_files_cache[$parts[0]]);
315 $output = htmlspecialchars($output, ENT_COMPAT,
'UTF-8', FALSE);
317 $output .= $this->
debugLL($input);
318 $this->LL_labels_cache[
$this->lang][$identifier] = $output;
333 if (is_array(
$GLOBALS[
'TCA_DESCR'][$table]) && !isset(
$GLOBALS[
'TCA_DESCR'][$table][
'columns']) && is_array(
$GLOBALS[
'TCA_DESCR'][$table][
'refs'])) {
335 $GLOBALS[
'TCA_DESCR'][$table][
'columns'] = array();
337 foreach (
$GLOBALS[
'TCA_DESCR'][$table][
'refs'] as $llfile) {
340 if (is_array($localLanguage[
'default'])) {
341 foreach ($localLanguage[
'default'] as $lkey => $lVal) {
346 $keyParts = explode(
'.', $lkey);
347 $keyPartsCount = count($keyParts);
350 $specialInstruction = $keyParts[$keyPartsCount - 1] ===
'+';
351 if ($specialInstruction) {
352 array_pop($keyParts);
357 if ($keyPartsCount > 2) {
358 $type = array_pop($keyParts);
359 $fieldName = implode(
'.', $keyParts);
361 $fieldName = $keyParts[0];
362 $type = $keyParts[1];
365 if ($fieldName ===
'_') {
368 if ($fieldName !==
'' && $fieldName[0] ===
'_') {
369 $fieldName = substr($fieldName, 1);
372 $label = $lVal[0][
'target'] ? :
374 if ($specialInstruction) {
375 $GLOBALS[
'TCA_DESCR'][$table][
'columns'][$fieldName][$type] .= LF . $label;
378 $GLOBALS[
'TCA_DESCR'][$table][
'columns'][$fieldName][$type] = $label;
395 public function includeLLFile($fileRef, $setGlobal = TRUE, $mergeLocalOntoDefault = FALSE) {
396 $globalLanguage = array();
399 if (is_array($localLanguage) && !empty($localLanguage)) {
402 $globalLanguage = (array)
$GLOBALS[
'LOCAL_LANG'];
405 $globalLanguage = $localLanguage;
409 if ($lFileRef && (
string) $globalLanguage[$this->lang] ===
'EXT') {
410 $localLanguage = $this->
readLLfile($lFileRef);
414 if ($mergeLocalOntoDefault && $this->lang !==
'default' && is_array($globalLanguage[$this->lang]) && is_array($globalLanguage[
'default'])) {
417 $globalLanguage[
'default'] = array_merge($globalLanguage[
'default'], $globalLanguage[$this->lang]);
418 unset($globalLanguage[$this->lang]);
423 return $globalLanguage;
425 $GLOBALS[
'LOCAL_LANG'] = $globalLanguage;
437 if ($this->lang !==
'default') {
438 $languages = array_reverse($this->languageDependencies);
440 $languages = array(
'default');
442 $localLanguage = array();
443 foreach ($languages as $language) {
444 $tempLL = GeneralUtility::readLLfile($fileRef, $language, $this->charSet);
445 $localLanguage[
'default'] = $tempLL[
'default'];
446 if (!isset($localLanguage[$this->lang])) {
447 $localLanguage[
$this->lang] = $localLanguage[
'default'];
449 if ($this->lang !==
'default' && isset($tempLL[$language])) {
455 return $localLanguage;
465 if ($this->lang !==
'default' && substr($fileRef, -4) ===
'.php') {
466 return substr($fileRef, 0, -4) .
'.' . $this->lang .
'.php';
480 public function overrideLL($index, $value, $overrideDefault = TRUE) {
481 if (!isset(
$GLOBALS[
'LOCAL_LANG'])) {
485 if ($overrideDefault) {
486 $GLOBALS[
'LOCAL_LANG'][
'default'][$index][0][
'target'] = $value;
overrideLL($index, $value, $overrideDefault=TRUE)
static mergeRecursiveWithOverrule(array &$original, array $overrule, $addKeys=TRUE, $includeEmptyValues=TRUE, $enableUnsetFeature=TRUE)
includeLLFile($fileRef, $setGlobal=TRUE, $mergeLocalOntoDefault=FALSE)
addModuleLabels($arr, $prefix)
getLLL($index, $localLanguage, $hsc=FALSE)
localizedFileRef($fileRef)
static logDeprecatedFunction()
loadSingleTableDescription($table)
static makeInstance($className)
getLL($index, $hsc=FALSE)
if(!defined('TYPO3_MODE')) $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_userauth.php']['logoff_pre_processing'][]