X-Git-Url: http://git.cyclocoop.org//%22javascript:ModifierStyle%28%27%22.%24id.%22%27%29/%22?a=blobdiff_plain;f=languages%2FConverterRule.php;h=4a330ad6acde781474f26678ce559978ecb27fe6;hb=ab4feff3ca31a11ee8d1fbcd49941c13c4d9ac31;hp=999d648c2190d4d3c7924a7067982f20d2cdd1c5;hpb=dea8f5344b1d77272de127ed717be9e9b00c1183;p=lhc%2Fweb%2Fwiklou.git diff --git a/languages/ConverterRule.php b/languages/ConverterRule.php index 999d648c21..4a330ad6ac 100644 --- a/languages/ConverterRule.php +++ b/languages/ConverterRule.php @@ -153,25 +153,27 @@ class ConverterRule { $to = trim( $v[1] ); $v = trim( $v[0] ); $u = explode( '=>', $v, 2 ); + $vv = $this->mConverter->validateVariant( $v ); // if $to is empty (which is also used as $from in bidtable), // strtr() could return a wrong result. - if ( count( $u ) == 1 && $to !== '' && in_array( $v, $variants ) ) { - $bidtable[$v] = $to; + if ( count( $u ) == 1 && $to !== '' && $vv ) { + $bidtable[$vv] = $to; } elseif ( count( $u ) == 2 ) { $from = trim( $u[0] ); $v = trim( $u[1] ); + $vv = $this->mConverter->validateVariant( $v ); // if $from is empty, strtr() could return a wrong result. - if ( array_key_exists( $v, $unidtable ) - && !is_array( $unidtable[$v] ) + if ( array_key_exists( $vv, $unidtable ) + && !is_array( $unidtable[$vv] ) && $from !== '' - && in_array( $v, $variants ) ) { - $unidtable[$v] = [ $from => $to ]; - } elseif ( $from !== '' && in_array( $v, $variants ) ) { - $unidtable[$v][$from] = $to; + && $vv ) { + $unidtable[$vv] = [ $from => $to ]; + } elseif ( $from !== '' && $vv ) { + $unidtable[$vv][$from] = $to; } } // syntax error, pass - if ( !isset( $this->mConverter->mVariantNames[$v] ) ) { + if ( !isset( $this->mConverter->mVariantNames[$vv] ) ) { $bidtable = []; $unidtable = []; break; @@ -399,11 +401,7 @@ class ConverterRule { case 'N': // process N flag: output current variant name $ruleVar = trim( $rules ); - if ( isset( $this->mConverter->mVariantNames[$ruleVar] ) ) { - $this->mRuleDisplay = $this->mConverter->mVariantNames[$ruleVar]; - } else { - $this->mRuleDisplay = ''; - } + $this->mRuleDisplay = $this->mConverter->mVariantNames[$ruleVar] ?? ''; break; case 'D': // process D flag: output rules description