Index: trunk/extensions/AbuseFilter/AbuseFilter.parser.php
===================================================================
--- trunk/extensions/AbuseFilter/AbuseFilter.parser.php (revision 49398)
+++ trunk/extensions/AbuseFilter/AbuseFilter.parser.php (revision 49399)
@@ -365,6 +365,7 @@
'bool' => 'castBool',
'norm' => 'funcNorm',
'ccnorm' => 'funcCCNorm',
+ 'convert' => 'funcConvert',
'specialratio' => 'funcSpecialRatio',
'rmspecials' => 'funcRMSpecials',
'rmdoubles' => 'funcRMDoubles',
@@ -1254,6 +1255,16 @@
return new AFPData( AFPData::DString, $wgContLang->lc( $s ) );
}
+ protected function funcConvert( $args ) {
+ global $wgContLang;
+ if( count( $args ) < 2 )
+ throw new AFPUserVisibleException( 'notenoughargs', $this->mCur->pos,
+ array( 'lang_convert', 2, count($args) ) );
+ $v = $args[0]->toString();
+ $s = $args[1]->toString();
+ return new AFPData( AFPData::DString, $wgContLang->convert( $s, false, $v ) );
+ }
+
protected function funcLen( $args ) {
if( count( $args ) < 1 )
throw new AFPUserVisibleException( 'notenoughargs', $this->mCur->pos,
Index: trunk/extensions/AbuseFilter/AbuseFilter.class.php
===================================================================
--- trunk/extensions/AbuseFilter/AbuseFilter.class.php (revision 49398)
+++ trunk/extensions/AbuseFilter/AbuseFilter.class.php (revision 49399)
@@ -57,6 +57,7 @@
'length(string)' => 'length',
'lcase(string)' => 'lcase',
'ccnorm(string)' => 'ccnorm',
+ 'convert("vairant", string)' => 'convert',
'rmdoubles(string)' => 'rmdoubles',
'specialratio(string)' => 'specialratio',
'norm(string)' => 'norm',
Index: trunk/extensions/AbuseFilter/AbuseFilter.i18n.php
===================================================================
--- trunk/extensions/AbuseFilter/AbuseFilter.i18n.php (revision 49398)
+++ trunk/extensions/AbuseFilter/AbuseFilter.i18n.php (revision 49399)
@@ -243,6 +243,7 @@
'abusefilter-edit-builder-funcs-length' => 'String length (length)',
'abusefilter-edit-builder-funcs-lcase' => 'To lower case (lcase)',
'abusefilter-edit-builder-funcs-ccnorm' => 'Normalise confusable characters (ccnorm)',
+ 'abusefilter-edit-builder-funcs-convert' => 'Convert string to specified variant (convert)',
'abusefilter-edit-builder-funcs-rmdoubles' => 'Remove double-characters (rmdoubles)',
'abusefilter-edit-builder-funcs-specialratio' => 'Special characters / total characters (specialratio)',
'abusefilter-edit-builder-funcs-norm' => 'Normalise (norm)',
@@ -15939,6 +15940,7 @@
'abusefilter-edit-builder-funcs-length' => '字符串长度(length)',
'abusefilter-edit-builder-funcs-lcase' => '字母小写化(lcase)',
'abusefilter-edit-builder-funcs-ccnorm' => '规范化易混淆字符(ccnorm)',
+ 'abusefilter-edit-builder-funcs-convert' => '转换字符串到指定语言(convert)',
'abusefilter-edit-builder-funcs-rmdoubles' => '去除双字节字符(rmdoubles)',
'abusefilter-edit-builder-funcs-specialratio' => '特殊字符比(specialratio)',
'abusefilter-edit-builder-funcs-norm' => '规范化(norm)',
@@ -16299,13 +16301,14 @@
'abusefilter-edit-builder-misc-cond' => '條件式(if X then Y else Z)',
'abusefilter-edit-builder-group-funcs' => '函數',
'abusefilter-edit-builder-funcs-length' => '字串長度(length)',
- 'abusefilter-edit-builder-funcs-lcase' => '改為小寫(lcase)',
- 'abusefilter-edit-builder-funcs-ccnorm' => '修正混淆字符(ccnorm)',
- 'abusefilter-edit-builder-funcs-rmdoubles' => '去除雙字元(rmdoubles)',
- 'abusefilter-edit-builder-funcs-specialratio' => '特殊字元數與整體字元數比(specialratio)',
+ 'abusefilter-edit-builder-funcs-lcase' => '改為小寫(lcase)',
+ 'abusefilter-edit-builder-funcs-ccnorm' => '修正混淆字符(ccnorm)',
+ 'abusefilter-edit-builder-funcs-convert' => '轉換字串到指定語言(convert)',
+ 'abusefilter-edit-builder-funcs-rmdoubles' => '去除雙字元(rmdoubles)',
+ 'abusefilter-edit-builder-funcs-specialratio' => '特殊字元數與整體字元數比(specialratio)',
'abusefilter-edit-builder-funcs-norm' => '正常化(norm)',
- 'abusefilter-edit-builder-funcs-count' => '字串 X 在字串 Y 裡出現的次數(count)',
- 'abusefilter-edit-builder-funcs-rcount' => '正則表示式 X 出現在字串 Y 的次數(rcount)',
+ 'abusefilter-edit-builder-funcs-count' => '字串 X 在字串 Y 裡出現的次數(count)',
+ 'abusefilter-edit-builder-funcs-rcount' => '正則表示式 X 出現在字串 Y 的次數(rcount)',
'abusefilter-edit-builder-funcs-rmwhitespace' => '去除空白字元(rmwhitespace)',
'abusefilter-edit-builder-funcs-rmspecials' => '去除特殊字元(rmspecials)',
'abusefilter-edit-builder-funcs-ip_in_range' => 'IP是否在範圍內?(ip_in_range)',