2016-07-22 5 views
0

私のプラグインでは、typo3関数pi_getLL()を使用して、locallang.xmlファイルからデータを読み込もうとしています。XMLデータを読み込もうとすると空の値

文字列(0) ""

:私はこのスクリプトを実行すると、私は常に空の文字列を取得

PHP

$this->pi_loadLL(); 
var_dump($this->pi_getLL('test')); 

XML

<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 
<T3locallang> 
    <meta type="array"> 
     <type>module</type> 
     <description>Language labels for plugin &quot;tx_fzswettbewerbsg_pi2&quot;</description> 
    </meta> 
    <data type="array"> 
     <languageKey index="default" type="array"> 
      <label index="test">German</label> 
     </languageKey> 
     <languageKey index="fr" type="array"> 
      <label index="test">France</label> 
     </languageKey> 
    </data> 
</T3locallang> 

var_dump()が私のXMLから値を返さないのはなぜですか?

+0

PHPは 'simplexml_load_string()'関数が組み込まれていたときに、なぜあなたは、このために、サードパーティの機能を使用していますか? – BeetleJuice

+0

@BeetleJuiceは実際には私に現在の言語の価値を与える翻訳関数なので、 – Reza

+0

TYPO3のどのバージョン? –

答えて

0

* TYPO3のために、以下のソリューションは

をv4.7xこれは、あなたの質問のように仕事でなければなりません:Reference

public function main($content, array $conf) { 
    $this->conf = $conf; 
    $this->pi_loadLL(); 

    $this->pi_getLL('label_index_name', 'alternative-text', 0); // 0 or 1 If TRUE, the output label is passed through htmlspecialchars() 
} 

次のようなグローバル変数を使用してラベルを取得することができます

public function main($content, array $conf) { 

    $GLOBALS['LANG']->sL('LLL:EXT:your_ext/locallang.xml:label_index_name'); 
    // OR 

    $LL = $this->includeLocalLang(); 
    $GLOBALS['LANG']->getLLL('label_index_name', $LL); 
} 

public function includeLocalLang() { 
    $llFile = t3lib_extMgm::extPath('your_ext') . 'locallang.xml'; 
    $version = class_exists('t3lib_utility_VersionNumber') 
      ? t3lib_utility_VersionNumber::convertVersionNumberToInteger(TYPO3_version) 
      : t3lib_div::int_from_ver(TYPO3_version); 
    if ($version < 4006000) { 
     $LOCAL_LANG = t3lib_div::readLLXMLfile($llFile, $GLOBALS['LANG']->lang); 
    } else { 
     /** @var $llxmlParser t3lib_l10n_parser_Llxml */ 
     $llxmlParser = t3lib_div::makeInstance('t3lib_l10n_parser_Llxml'); 
     $LOCAL_LANG = $llxmlParser->getParsedData($llFile, $GLOBALS['LANG']->lang); 
    } 

    return $LOCAL_LANG; 
} 

一つ別のトリック;)

Tx_Extbase_Utility_Localization::translate('label_index_name', $extensionName, $arguments=NULL); 
関連する問題