Merge from official repo

This commit is contained in:
PeratX 2016-04-05 22:06:53 +08:00
commit 296d9b8327

View file

@ -86,7 +86,7 @@ class BaseLang{
*/
public function translateString($str, array $params = [], $onlyPrefix = null){
$baseText = $this->get($str);
$baseText = $this->parseTranslation( ($baseText !== null and ($onlyPrefix === null or strpos($str, $onlyPrefix) === 0)) ? $baseText : $str, $onlyPrefix);
$baseText = $this->parseTranslation(($baseText !== null and ($onlyPrefix === null or strpos($str, $onlyPrefix) === 0)) ? $baseText : $str, $onlyPrefix);
foreach($params as $i => $p){
$baseText = str_replace("{%$i}", $this->parseTranslation((string) $p), $baseText, $onlyPrefix);
@ -98,7 +98,7 @@ class BaseLang{
public function translate(TextContainer $c){
if($c instanceof TranslationContainer){
$baseText = $this->internalGet($c->getText());
$baseText = $this->parseTranslation( $baseText !== null ? $baseText : $c->getText());
$baseText = $this->parseTranslation($baseText !== null ? $baseText : $c->getText());
foreach($c->getParameters() as $i => $p){
$baseText = str_replace("{%$i}", $this->parseTranslation($p), $baseText);
@ -139,7 +139,13 @@ class BaseLang{
for($i = 0; $i < $len; ++$i){
$c = $text{$i};
if($replaceString !== null){
if((ord($c) >= 0x30 and ord($c) <= 0x39) or (ord($c) >= 0x41 and ord($c) <= 0x5a) or (ord($c) >= 0x61 and ord($c) <= 0x7a) or $c === "."){
$ord = ord($c);
if(
($ord >= 0x30 and $ord <= 0x39) // 0-9
or ($ord >= 0x41 and $ord <= 0x5a) // A-Z
or ($ord >= 0x61 and $ord <= 0x7a) or // a-z
$c === "." or $c === "-"
){
$replaceString .= $c;
}else{
if(($t = $this->internalGet(substr($replaceString, 1))) !== null and ($onlyPrefix === null or strpos($replaceString, $onlyPrefix) === 1)){