From: philipp Date: Thu, 26 Jun 2014 21:43:18 +0000 (+0000) Subject: Now using i18n and translation. X-Git-Url: https://git.toastfreeware.priv.at/philipp/winterrodeln/mediawiki_extensions/wrmap.git/commitdiff_plain/91a67f6f1ccedf5cc333817a893970b1f7b2ed7f Now using i18n and translation. git-svn-id: http://www.winterrodeln.org/svn/servermediawiki/mediawiki_extensions/wrmap/trunk@2019 7aebc617-e5e2-0310-91dc-80fb5f6d2477 --- diff --git a/i18n/de-formal.json b/i18n/de-formal.json new file mode 100644 index 0000000..d973c0e --- /dev/null +++ b/i18n/de-formal.json @@ -0,0 +1,5 @@ +{ + "@metadata": { + "authors": [] + } +} diff --git a/i18n/de.json b/i18n/de.json new file mode 100644 index 0000000..afa6bf4 --- /dev/null +++ b/i18n/de.json @@ -0,0 +1,13 @@ +{ + "@metadata": { + "authors": [] + }, + "wrmap-loading": "Die Landkarte wird geladen...", + "wrmap-error-invalid-text": "Die Landkarte enthält folgenden ungültigen Text: '$1'.", + "wrmap-error-invalid-element": "Unbekanntes Element <$1>. Erlaubt sind: $2.", + "wrmap-error-invalid-attribute": "Das Attribut '$1' ist nicht erlaubt bei <$2>. Erlaubt sind: $3.", + "wrmap-error-coordinate-format": "Falsches Koordinatenformat: $1", + "wrmap-error-coordinate-count": "Das Element <$1> muss genau ein Koordinatenpaar haben.", + "wrmap-error-line-color": "Die Farbangabe der Linie hat ein falsches Format. Sie muss z.B. so aussehen: #a200b7.", + "wrmap-error-line-width": "Die Angabe der Liniendicke hat ein falsches Format. Sie muss eine ganze Zahl wie z.B. 6 sein." +} diff --git a/i18n/en.json b/i18n/en.json new file mode 100644 index 0000000..552741b --- /dev/null +++ b/i18n/en.json @@ -0,0 +1,13 @@ +{ + "@metadata": { + "authors": [] + }, + "wrmap-loading": "Loading the map...", + "wrmap-error-invalid-text": "The text '$1' is not allowed in the map.", + "wrmap-error-invalid-element": "Unknown element <$1>. Allowed elements: $2.", + "wrmap-error-invalid-attribute": "Attribute '$1' is not allowed in <$2>. Allowed attributes: $3.", + "wrmap-error-coordinate-format": "Wrong cordinate format: $1", + "wrmap-error-coordinate-count": "Element <$1> has to have exactly one coordinate pair.", + "wrmap-error-line-color": "Color specification of line has a wrong format. The format has to be like #a200b7.", + "wrmap-error-line-width": "Line width specification has a wrong format. It has to be an integer, e.g. 6." +} diff --git a/i18n/qqq.json b/i18n/qqq.json new file mode 100644 index 0000000..35cb4ce --- /dev/null +++ b/i18n/qqq.json @@ -0,0 +1,13 @@ +{ + "@metadata": { + "authors": [] + }, + "wrmap-loading": "Text.", + "wrmap-error-invalid-text": "Text", + "wrmap-error-invalid-element": "Text", + "wrmap-error-invalid-attribute": "Text", + "wrmap-error-coordinate-format": "Text", + "wrmap-error-coordinate-count": "Text", + "wrmap-error-line-color": "Text", + "wrmap-error-line-width": "Text" +} diff --git a/wrmap.body.php b/wrmap.body.php index d591cbf..d5afd97 100644 --- a/wrmap.body.php +++ b/wrmap.body.php @@ -67,7 +67,7 @@ class WrBaseMap { for ($i=0; $i!=$num_matches; ++$i) { $result[] = array(floatval($matches[2][$i]), floatval($matches[1][$i])); } - if (implode($matches[0]) != $input) throw new Exception('Falsches Koordinatenformat: ' . $input); + if (implode($matches[0]) != $input) throw new Exception(wfMessage('wrmap-error-coordinate-format', $input)->text()); return $result; } @@ -150,7 +150,7 @@ class WrBaseMap { $xml = new SimpleXMLElement($input); // input $whitespace = (string) $xml; // everything between and that's not a sub-element if (strlen($whitespace) > 0 && !ctype_space($whitespace)) { // there must not be anythin except sub-elements or whitespace - throw new Exception('Die Landkarte enthält folgenden ungültigen Text: "' . trim($xml) . '".'); + throw new Exception(wfMessage('wrmap-error-invalid-text', trim($xml))->text()); } $json_features = array(); // output $point_types = array('gasthaus', 'haltestelle', 'parkplatz', 'achtung', 'foto', 'verleih', 'punkt'); @@ -163,7 +163,7 @@ class WrBaseMap { $is_point = in_array($feature->getName(), $point_types); $is_line = in_array($feature->getName(), $line_types); if (!$is_point && !$is_line) { - throw new Exception('Unbekanntes Element <' . $feature->getName() . '>. Erlaubt sind: <' . implode('>, <', array_merge($point_types, $line_types)) . '>.'); + throw new Exception(wfMessage('wrmap-error-invalid-element', $feature->getName(), '<' . implode('>, <', array_merge($point_types, $line_types)) . '>')->text()); } // point @@ -171,7 +171,7 @@ class WrBaseMap { $properties = array('type' => $feature->getName()); $allowed_properties = array('name', 'wiki'); $wrong_properties = array_diff($given_properties, $allowed_properties); - if (count($wrong_properties) > 0) throw new Exception("Das Attribut '" . reset($wrong_properties) . "' ist nicht erlaubt bei <" . $feature->getName() . ">. Erlaubt sind: '" . implode("', '", $allowed_properties) . "'."); + if (count($wrong_properties) > 0) throw new Exception(wfMessage('wrmap-error-invalid-attribute', reset($wrong_properties), $feature->getName(), "'" . implode("', '", $allowed_properties) . "'")->text()); foreach ($given_properties as $property) { $propval = (string) $feature[$property]; if ($property == 'wiki') { @@ -183,7 +183,7 @@ class WrBaseMap { $properties[$property] = $propval; } $coordinates = WrBaseMap::geo_to_coordinates($feature); - if (count($coordinates) != 1) throw new Exception('Das Element <' . $feature->getName() . '> muss genau ein Koordinatenpaar haben.'); + if (count($coordinates) != 1) throw new Exception(wfMessage('wrmap-error-coordinate-count', $feature->getName())->text()); $json_feature = array( 'type' => 'feature', 'geometry' => array( @@ -199,17 +199,17 @@ class WrBaseMap { $properties = array('type' => $feature->getName()); $allowed_properties = array('farbe', 'dicke'); $wrong_properties = array_diff($given_properties, $allowed_properties); - if (count($wrong_properties) > 0) throw new Exception("Das Attribut '" . reset($wrong_properties) . "' ist nicht erlaubt bei <" . $feature->getName() . ">. Erlaubt sind: '" . implode("', '", $allowed_properties) . "'."); + if (count($wrong_properties) > 0) throw new Exception(wfMessage('wrmap-error-invalid-attribute', reset($wrong_properties), $feature->getName(), "'" . implode("', '", $allowed_properties) . "'")->text()); if (isset($feature['farbe'])) { $color = (string) $feature['farbe']; // e.g. #a200b7 if (preg_match('/^#[0-9a-f]{6}$/i', $color) != 1) - throw new Exception('Die Farbangabe der Linie hat ein falsches Format. Sie muss z.B. so aussehen: #a200b7.'); + throw new Exception(wfMessage('wrmap-error-line-color')->text()); $properties['strokeColor'] = $color; } if (isset($feature['dicke'])) { $stroke_width = (int) $feature['dicke']; // e.g. 6 if (((string) $stroke_width) !== (string) $feature['dicke']) - throw new Exception('Die Angabe der Liniendicke hat ein falsches Format. Sie muss eine ganze Zahl wie z.B. 6 sein.'); + throw new Exception(wfMessage('wrmap-error-line-width')->text()); $properties['strokeWidth'] = $stroke_width; } $json_feature = array( @@ -281,7 +281,7 @@ class WrBaseMap { $doc = new WrMapDOMDocument(); $div = $doc->appendElement('div', array('class' => 'wrmap', 'style' => 'border-style:none;', 'data-ext-path' => "$wgExtensionAssetsPath/wrmap")); // progress message - $div->appendElement('div', array())->appendText('Die Landkarte wird geladen...'); + $div->appendElement('div', array())->appendText(wfMessage('wrmap-loading')->text()); // data $div->appendElement('div', array('style' => 'height: 0px; display:none;'))->appendText($json_string); return array($doc->saveHTML($div), 'markerType' => 'nowiki'); diff --git a/wrmap.php b/wrmap.php index 66f8974..29da3e1 100644 --- a/wrmap.php +++ b/wrmap.php @@ -197,8 +197,7 @@ $wgResourceModules['ext.wrmap'] = array( $wgAutoloadClasses['WrMap'] = dirname(__FILE__) . '/wrmap.body.php'; $wgAutoloadClasses['WrGMap'] = $wgAutoloadClasses['WrMap']; - - +$wgMessagesDirs['wrmap'] = __DIR__ . '/i18n'; $wgHooks['ParserFirstCallInit'][] = 'wrMapParserFirstCallInit';