2017-08-31 4 views
0

翻訳に問題があります。翻訳がない場合は、prestashopはキーではなく空の文字列をreturiningしています。 コントローラーで使用されている 'l'メソッドの場所を知っている人はいますか?Prestashop 1.6 lのメソッド

$this->l('string', 'mod'); //This will output '' if string is not translated. 

メソッドを修正し、値が空の場合はキーを返すようにしたいが、見つからない。

答えて

1

AdminControllerは、その機能を使用する唯一のAdminControllerであると仮定します。これは、関数を使用しています。

protected function l($string, $class = null, $addslashes = false, $htmlentities = true) 
{ 
    if ($class === null || $class == 'AdminTab') { 
     $class = substr(get_class($this), 0, -10); 
    } elseif (strtolower(substr($class, -10)) == 'controller') { 
     /* classname has changed, from AdminXXX to AdminXXXController, so we remove 10 characters and we keep same keys */ 
     $class = substr($class, 0, -10); 
    } 
    return Translate::getAdminTranslation($string, $class, $addslashes, $htmlentities); 
} 

あなたのケースでは、翻訳呼ぶだろう:: getAdminTranslation( '文字列'、 'MOD'、偽、真)

では、翻訳:: getAdminTranslation 我々は持っている:

[。$クラス$キー]それは$ _LANGADMを持っていないので
... 
$string = preg_replace("/\\\*'/", "\'", $string); 
$key = md5($string); 
if (isset($_LANGADM[$class.$key])) { 
    $str = $_LANGADM[$class.$key]; 
} else { 
    $str = Translate::getGenericAdminTranslation($string, $key, $_LANGADM); 
} 
... 

、それが呼び出されます:

$str = Translate::getGenericAdminTranslation($string, $key, $_LANGADM); 

あなたの場合$ str = Translate :: getGenericAdminTranslation( 'string'、md5( 'string')、$ _LANGADM);そこで

我々は持っている:

... 
if (isset($lang_array['AdminController'.$key])) { 
    $str = $lang_array['AdminController'.$key]; 
} elseif (isset($lang_array['Helper'.$key])) { 
    $str = $lang_array['Helper'.$key]; 
} elseif (isset($lang_array['AdminTab'.$key])) { 
    $str = $lang_array['AdminTab'.$key]; 
} else { 
    // note in 1.5, some translations has moved from AdminXX to helper/*.tpl 
    $str = $string; 
} 
return $str; 

キーが見つからない場合、翻訳することを試みている同じ文字列が返され、デフォルトでは。したがって、機能を変更する必要はありません。

一方、文字列が空の文字列に変換されていることを確認してください。これらの関数をデバッグして、クラスが正しいことを確認し、対応する変換を格納しているファイルにそれらの文字列の空の変換がないようにすることもできます。

+0

ファイルの場所のみを追加できます:classes/Translate.php – nikksan

+0

もう1つ質問があります。キーを再帰的に処理するのではなく、翻訳が失われている場合は、空の文字列を返すのはとても奇妙なことではありませんか? – nikksan

+0

最初のコメントは分かりませんでした。しかし、それは私に空の文字列に起こった。 langファイルは、何とか翻訳が空のフィールドに変換されて保存されていました。例:$ _LANG ['404_d0fbda9855d118740f1105334305c126'] = ''; – sadlyblue

関連する問題