http://www.mediawiki.org/wiki/Special:Code/MediaWiki/69054
Revision: 69054
Author: nikerabbit
Date: 2010-07-05 12:51:20 +0000 (Mon, 05 Jul 2010)
Log Message:
-----------
Made a syntax checker for Shapado
Modified Paths:
--------------
trunk/extensions/Translate/groups/Shapado/Shapado.yml
Added Paths:
-----------
trunk/extensions/Translate/groups/Shapado/Checker.php
Added: trunk/extensions/Translate/groups/Shapado/Checker.php
===================================================================
--- trunk/extensions/Translate/groups/Shapado/Checker.php
(rev 0)
+++ trunk/extensions/Translate/groups/Shapado/Checker.php 2010-07-05
12:51:20 UTC (rev 69054)
@@ -0,0 +1,51 @@
+<?php
+ /**
+ * @file
+ * @copyright Copyright © 2009-2010, Niklas Laxström
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License
2.0 or later
+ */
+class ShapadoMessageChecker extends MessageChecker {
+
+ /**
+ * Checks for missing and unknown variables in translations.
+ *
+ * @param $messages Iterable list of TMessages.
+ * @param $code Language code of the translations.
+ * @param $warnings Array where warnings are appended to.
+ */
+ protected function ShapadoVariablesCheck( $messages, $code, &$warnings
) {
+ foreach ( $messages as $message ) {
+ $key = $message->key();
+ $definition = $message->definition();
+ $translation = $message->translation();
+
+ $varPattern = '%{[a-zA-Z_]+}';
+ preg_match_all( "/$varPattern/U", $definition, $defVars
);
+ preg_match_all( "/$varPattern/U", $translation,
$transVars );
+
+ # Check for missing variables in the translation
+ $subcheck = 'missing';
+ $params = self::compareArrays( $defVars[0],
$transVars[0] );
+ if ( count( $params ) ) {
+ $warnings[$key][] = array(
+ array( 'variable', $subcheck, $key,
$code ),
+ 'translate-checks-parameters',
+ array( 'PARAMS', $params ),
+ array( 'COUNT', count( $params ) ),
+ );
+ }
+
+ # Check for unknown variables in the translation
+ $subcheck = 'unknown';
+ $params = self::compareArrays( $transVars[0],
$defVars[0] );
+ if ( count( $params ) ) {
+ $warnings[$key][] = array(
+ array( 'variable', $subcheck, $key,
$code ),
+ 'translate-checks-parameters-unknown',
+ array( 'PARAMS', $params ),
+ array( 'COUNT', count( $params ) ),
+ );
+ }
+ }
+ }
+}
\ No newline at end of file
Property changes on: trunk/extensions/Translate/groups/Shapado/Checker.php
___________________________________________________________________
Added: svn:eol-style
+ native
Modified: trunk/extensions/Translate/groups/Shapado/Shapado.yml
===================================================================
--- trunk/extensions/Translate/groups/Shapado/Shapado.yml 2010-07-05
12:49:36 UTC (rev 69053)
+++ trunk/extensions/Translate/groups/Shapado/Shapado.yml 2010-07-05
12:51:20 UTC (rev 69054)
@@ -22,6 +22,14 @@
patterns:
- "*"
+ CHECKER:
+ class: ShapadoMessageChecker
+ checks:
+ - ShapadoVariablesCheck
+
+ AUTOLOAD:
+ ShapadoMessageChecker: Checker.php
+
---
BASIC:
id: out-shapado-0-all
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs