r84744 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r84743‎ | r84744 | r84745 >
Date:14:10, 25 March 2011
Author:mkroetzsch
Status:deferred
Tags:
Comment:
changed the way in which units of measurement are supported (see RELEASE-NOTES);
this change simplifies the data model for numbers since uints no longer need to be stored in DB
Modified paths:
  • /trunk/extensions/SemanticMediaWiki/RELEASE-NOTES (modified) (history)
  • /trunk/extensions/SemanticMediaWiki/includes/SMW_DataValue.php (modified) (history)
  • /trunk/extensions/SemanticMediaWiki/includes/datavalues/SMW_DV_Linear.php (modified) (history)
  • /trunk/extensions/SemanticMediaWiki/includes/datavalues/SMW_DV_Number.php (modified) (history)
  • /trunk/extensions/SemanticMediaWiki/includes/datavalues/SMW_DV_Temperature.php (modified) (history)
  • /trunk/extensions/SemanticMediaWiki/languages/SMW_Messages.php (modified) (history)

Diff [purge]

Index: trunk/extensions/SemanticMediaWiki/RELEASE-NOTES
@@ -3,6 +3,9 @@
44 == SMW 1.5.7 ==
55
66 * Added UNIX-style DSV (Delimiter-separated values) result format.
 7+* Changed the way in which units of measurement work. Type:Number now does not
 8+ accept any units, but units can be used with custom types as before. However
 9+ only units with a conversion factor on the custom type page are accepted.
710
811 == SMW 1.5.6 ==
912
Index: trunk/extensions/SemanticMediaWiki/includes/SMW_DataValue.php
@@ -795,18 +795,6 @@
796796 );
797797 }
798798 }
799 -
800 - /**
801 - * Return the unit in which the returned value is to be interpreted.
802 - * This string is a plain UTF-8 string without wiki or html markup.
803 - * Returns the empty string if no unit is given for the value.
804 - * Possibly overwritten by subclasses.
805 - *
806 - * @deprecated Use getDBkeys(). This function will vanish before SMW 1.6.
807 - */
808 - public function getUnit() {
809 - return ''; // empty unit
810 - }
811799
812800 /**
813801 * Returns if the data value holds info about a main object (page)
Index: trunk/extensions/SemanticMediaWiki/includes/datavalues/SMW_DV_Linear.php
@@ -15,122 +15,73 @@
1616 */
1717 class SMWLinearValue extends SMWNumberValue {
1818
19 - protected $m_unitfactors = false; // array mapping canonical unit strings to conversion factors
20 - protected $m_unitids = false; // array mapping (normalised) unit strings to canonical unit strings (ids)
21 - protected $m_displayunits = false; // array of units that should be displayed
22 - protected $m_mainunit = false; // main unit (recognised by the conversion factor 1)
 19+ /// Array with format (canonical unit ID string) => (conversion factor)
 20+ protected $m_unitfactors = false;
 21+ /// Array with format (normalised unit string) => (canonical unit ID string)
 22+ protected $m_unitids = false;
 23+ /// Ordered array of (normalized) units that should be displayed in tooltips, etc.
 24+ protected $m_displayunits = false;
 25+ /// Main unit in canonical form (recognised by the conversion factor 1)
 26+ protected $m_mainunit = false;
2327
24 - /**
25 - * Converts the current m_value and m_unit to the main unit, if possible.
26 - * This means, it changes the fileds m_value and m_unit accordingly, and
27 - * that it stores the ID of the originally given unit in $this->m_unitin.
28 - * This should obviously not be done more than once, so it is advisable to
29 - * first check if m_unitin is non-false. Also, it should be checked if the
30 - * value is valid before trying to calculate with its contents.
31 - */
32 - protected function convertToMainUnit() {
33 - if ( $this->m_unitin !== false ) return;
 28+ protected function convertToMainUnit( $number, $unit ) {
3429 $this->initConversionData();
35 - if ( !$this->isValid() ) { // give up, avoid calculations with non-numbers
36 - $this->m_unitin = $this->m_unit;
37 - return;
38 - }
39 -
40 - // Find ID for current unit
41 - if ( array_key_exists( $this->m_unit, $this->m_unitids ) ) {
42 - $this->m_unitin = $this->m_unitids[$this->m_unit];
43 - } else { // already unit id (possibly of an unknown unit)
44 - $this->m_unitin = $this->m_unit;
45 - }
46 -
47 - // Do conversion
48 - if ( ( array_key_exists( $this->m_unitin, $this->m_unitfactors ) ) && ( $this->m_mainunit !== false ) ) {
49 - $this->m_unit = $this->m_mainunit;
50 - $this->m_value = $this->m_value / $this->m_unitfactors[$this->m_unitin];
51 - } // else: unsupported unit, keep all as it is
 30+ if ( array_key_exists( $unit, $this->m_unitids ) ) {
 31+ $this->m_unitin = $this->m_unitids[$unit];
 32+ $this->m_value = $number / $this->m_unitfactors[$this->m_unitin];
 33+ return true;
 34+ } //else: unsupported unit
 35+ return false;
5236 }
5337
54 - /**
55 - * This method creates an array of unit-value-pairs that should be
56 - * printed. Units are the keys and should be canonical unit IDs.
57 - * The result is stored in $this->m_unitvalues. Again, any class that
58 - * requires effort for doing this should first check whether the array
59 - * is already set (i.e. not false) before doing any work.
60 - * Note that the values should be plain numbers. Output formatting is done
61 - * later when needed. Also, it should be checked if the value is valid
62 - * before trying to calculate with its contents.
63 - * This method also must call or implement convertToMainUnit().
64 - */
6538 protected function makeConversionValues() {
66 - if ( $this->m_unitvalues !== false ) return;
67 - $this->convertToMainUnit();
68 - if ( $this->m_unit !== $this->m_mainunit ) { // conversion failed, no choice for us
69 - $this->m_unitvalues = array( $this->m_unit => $this->m_value );
70 - return;
71 - }
72 - $this->initDisplayData();
73 -
 39+ if ( $this->m_unitvalues !== false ) return; // do this only once
7440 $this->m_unitvalues = array();
 41+ if ( !$this->isValid() ) return;
 42+ $this->initDisplayData();
7543 if ( count( $this->m_displayunits ) == 0 ) { // no display units, just show all
7644 foreach ( $this->m_unitfactors as $unit => $factor ) {
77 - $this->m_unitvalues[$unit] = $this->m_value * $factor;
 45+ if ( $unit != '' ) { // filter out the empty fallback unit that is always there
 46+ $this->m_unitvalues[$unit] = $this->m_value * $factor;
 47+ }
7848 }
7949 } else {
80 - foreach ( $this->m_displayunits as $unit ) { // do not use unit ids here (requires a small hack below, but allows to select representation of unit via displayunits)
81 - if ( array_key_exists( $this->m_unitids[$unit], $this->m_unitfactors ) ) {
82 - $this->m_unitvalues[$unit] = $this->m_value * $this->m_unitfactors[$this->m_unitids[$unit]];
83 - if ( $this->m_unitids[$unit] == $this->m_unitin ) { // use the display unit version of the input unit as id
84 - $this->m_unitin = $unit;
85 - }
86 - }
 50+ foreach ( $this->m_displayunits as $unit ) {
 51+ /// NOTE We keep non-ID units unless the input unit is used, so display units can be used to pick
 52+ /// the preferred form of a unit. Doing this requires us to recompute the conversion values whenever
 53+ /// the m_unitin changes.
 54+ $unitkey = ( $this->m_unitids[$unit] == $this->m_unitin ) ? $this->m_unitids[$unit] : $unit;
 55+ $this->m_unitvalues[$unitkey] = $this->m_value * $this->m_unitfactors[$this->m_unitids[$unit]];
8756 }
88 - if ( count( $this->m_unitvalues ) == 0 ) { // none of the desired units matches
89 - // display just the current one (so one can disable unit tooltips by setting a nonunit for display)
90 - $this->m_unitvalues = array( $this->m_unit => $this->m_value );
91 - }
9257 }
9358 }
9459
95 - /**
96 - * This method is used when no user input was given to find the best
97 - * values for m_wikivalue, m_unitin, and m_caption. After conversion,
98 - * these fields will look as if they were generated from user input,
99 - * and convertToMainUnit() will have been called (if not, it would be
100 - * blocked by the presence of m_unitin).
101 - */
10260 protected function makeUserValue() {
103 - $this->convertToMainUnit();
104 -
105 - $value = false;
106 - if ( $this->m_unit === $this->m_mainunit ) { // only try if conversion worked
107 - if ( ( $value === false ) && ( $this->m_outformat ) && ( $this->m_outformat != '-' ) ) { // first try given output unit
108 - $unit = $this->normalizeUnit( $this->m_outformat );
109 - $printunit = $unit;
110 - if ( array_key_exists( $unit, $this->m_unitids ) ) { // find id for output unit
111 - $unit = $this->m_unitids[$unit];
112 - if ( array_key_exists( $unit, $this->m_unitfactors ) ) { // find factor for this id
113 - $value = $this->m_value * $this->m_unitfactors[$unit];
114 - }
115 - }
 61+ $printunit = false; // the normalised string of a known unit to use for printouts
 62+ // Check if a known unit is given as outputformat:
 63+ if ( ( $this->m_outformat ) && ( $this->m_outformat != '-' ) &&
 64+ ( $this->m_outformat != '-n' ) && ( $this->m_outformat != '-u' )) { // first try given output unit
 65+ $wantedunit = SMWNumberValue::normalizeUnit( $this->m_outformat );
 66+ if ( array_key_exists( $wantedunit, $this->m_unitids ) ) {
 67+ $printunit = $wantedunit;
11668 }
117 - if ( $value === false ) { // next look for the first given display unit
118 - $this->initDisplayData();
119 - if ( count( $this->m_displayunits ) > 0 ) {
120 - $unit = $this->m_unitids[$this->m_displayunits[0]]; // was already verified to exist before
121 - if ( array_key_exists( $unit, $this->m_unitfactors ) ) { // find factor for this id
122 - $value = $this->m_value * $this->m_unitfactors[$unit];
123 - $printunit = $this->m_displayunits[0];
124 - }
125 - }
 69+ }
 70+ // Alternatively, try to use the main display unit as a default:
 71+ if ( $printunit === false ) {
 72+ $this->initDisplayData();
 73+ if ( count( $this->m_displayunits ) > 0 ) {
 74+ $printunit = reset( $this->m_displayunits );
12675 }
12776 }
128 -
129 - if ( $value === false ) { // finally fallback to current value
130 - $value = $this->m_value;
131 - $unit = $this->m_unit;
132 - $printunit = $unit;
 77+ // Finally, fall back to main unit:
 78+ if ( $printunit === false ) {
 79+ $printunit = $this->getUnit();
13380 }
13481
 82+ $this->m_unitin = $this->m_unitids[$printunit];
 83+ $this->m_unitvalues = false; // this array depends on m_unitin if displayunits were used, better invalidate it here
 84+ $value = $this->m_value * $this->m_unitfactors[$this->m_unitin];
 85+
13586 $this->m_caption = '';
13687 if ( $this->m_outformat != '-u' ) { // -u is the format for displaying the unit only
13788 $this->m_caption .= ( ( $this->m_outformat != '-' ) && ( $this->m_outformat != '-n' ) ? smwfNumberFormat( $value ) : $value );
@@ -141,58 +92,59 @@
14293 }
14394 $this->m_caption .= $printunit;
14495 }
145 - $this->m_wikivalue = $this->m_caption;
146 - $this->m_unitin = $unit;
14796 }
14897
149 - /**
150 - * Return an array of major unit strings (ids only recommended) supported by
151 - * this datavalue.
152 - */
15398 public function getUnitList() {
15499 $this->initConversionData();
155100 return array_keys( $this->m_unitfactors );
156101 }
157102
 103+ public function getUnit() {
 104+ $this->initConversionData();
 105+ return $this->m_mainunit;
 106+ }
 107+
158108 /// The remaining functions are relatively "private" but are kept protected since
159109 /// subclasses might exploit this to, e.g., "fake" conversion factors instead of
160110 /// getting them from the database. A cheap way of making built-in types.
161111
162112 /**
163 - * This method fills $m_unitfactors and $m_unitids with required values.
 113+ * This method initializes $m_unitfactors, $m_unitids, and $m_mainunit.
164114 */
165115 protected function initConversionData() {
166 - if ( $this->m_unitids !== false ) return;
 116+ if ( $this->m_unitids !== false ) return; // do the below only once
167117 $this->m_unitids = array();
168118 $this->m_unitfactors = array();
 119+ $this->m_mainunit = false;
169120
170121 $typepage = SMWWikiPageValue::makePage( $this->m_typeid, SMW_NS_TYPE );
171 - if ( !$typepage->isValid() ) return;
 122+ if ( !$typepage->isValid() ) {
 123+ smwfLoadExtensionMessages( 'SemanticMediaWiki' );
 124+ $this->addError( wfMsgForContent( 'smw_unknowntype', SMWDataValueFactory::findTypeLabel( $this->getTypeID() ) ) );
 125+ return;
 126+ }
172127 $factors = smwfGetStore()->getPropertyValues( $typepage, SMWPropertyValue::makeProperty( '_CONV' ) );
173128 if ( count( $factors ) == 0 ) { // no custom type
174 - // delete all previous errors, this is our real problem
175 - /// TODO: probably we should check for this earlier, but avoid unnecessary DB requests ...
176129 smwfLoadExtensionMessages( 'SemanticMediaWiki' );
177130 $this->addError( wfMsgForContent( 'smw_unknowntype', SMWDataValueFactory::findTypeLabel( $this->getTypeID() ) ) );
178131 return;
179132 }
180 - $numdv = SMWDataValueFactory::newTypeIDValue( '_num' ); // used for parsing the factors
 133+ $number = $unit = '';
181134 foreach ( $factors as $dv ) {
182 - $numdv->setUserValue( $dv->getWikiValue() );
183 - if ( !$numdv->isValid() || ( $numdv->getValueKey() === 0 ) ) {
 135+ if ( SMWNumberValue::parseNumberValue( $dv->getWikiValue(), $number, $unit ) != 0 ) {
184136 continue; // ignore problematic conversions
185137 }
186 - $unit_aliases = preg_split( '/\s*,\s*/u', $numdv->getUnit() );
 138+ $unit_aliases = preg_split( '/\s*,\s*/u', $unit );
187139 $first = true;
188140 foreach ( $unit_aliases as $unit ) {
189 - $unit = $this->normalizeUnit( $unit );
 141+ $unit = SMWNumberValue::normalizeUnit( $unit );
190142 if ( $first ) {
191143 $unitid = $unit;
192 - if ( $numdv->getValueKey() == 1 ) { // add main unit to front of array (displyed first)
 144+ if ( $number == 1 ) { // add main unit to front of array (displayed first)
193145 $this->m_mainunit = $unit;
194 - $this->m_unitfactors = array( $unit => $numdv->getValueKey() ) + $this->m_unitfactors;
195 - } else { // non-main units are not ordered -- they might come out in any way the DB likes (can be modified via display units)
196 - $this->m_unitfactors[$unit] = $numdv->getValueKey();
 146+ $this->m_unitfactors = array( $unit => 1 ) + $this->m_unitfactors;
 147+ } else { // non-main units are not ordered (can be modified via display units)
 148+ $this->m_unitfactors[$unit] = $number;
197149 }
198150 $first = false;
199151 }
@@ -200,13 +152,21 @@
201153 $this->m_unitids[$unit] = $unitid;
202154 }
203155 }
 156+ if ( $this->m_mainunit === false ) { // No unit with factor 1? Make empty string the main unit.
 157+ $this->m_mainunit = '';
 158+ }
 159+ // always add an extra empty unit; not as a synonym for the main unit but as a new unit with ID ''
 160+ // so if users do not give any unit, the conversion tooltip will still display the main unit for clarity
 161+ // (the empty unit is never displayed; we filter it when making conversion values)
 162+ $this->m_unitfactors = array( '' => 1 ) + $this->m_unitfactors;
 163+ $this->m_unitids[''] = '';
204164 }
205165
206166 /**
207 - * This method fills $m_displayunits.
 167+ * This method initializes $m_displayunits.
208168 */
209169 protected function initDisplayData() {
210 - if ( $this->m_displayunits !== false ) return;
 170+ if ( $this->m_displayunits !== false ) return; // do the below only once
211171 $this->initConversionData(); // needed to normalise unit strings
212172 $this->m_displayunits = array();
213173 if ( ( $this->m_property === null ) || ( $this->m_property->getWikiPageValue() === null ) ) return;
@@ -216,10 +176,10 @@
217177 $units = $units + preg_split( '/\s*,\s*/u', $value->getWikiValue() );
218178 }
219179 foreach ( $units as $unit ) {
220 - $unit = $this->normalizeUnit( $unit );
 180+ $unit = SMWNumberValue::normalizeUnit( $unit );
221181 if ( array_key_exists( $unit, $this->m_unitids ) ) {
222 - $this->m_displayunits[] = $unit; // avoid duplicates
223 - } // note: we ignore unsuppported units, as they are printed anyway for lack of alternatives
 182+ $this->m_displayunits[] = $unit; // do not avoid duplicates, users can handle this
 183+ } // note: we ignore unsuppported units -- no way to display them
224184 }
225185 }
226186
Index: trunk/extensions/SemanticMediaWiki/includes/datavalues/SMW_DV_Number.php
@@ -33,24 +33,33 @@
3434 *
3535 * @todo Wiki-HTML-conversion for unit strings must be revisited, as the current
3636 * solution might be unsafe.
37 - * @todo Respect desired output unit (relevant for queries).
3837 */
3938 class SMWNumberValue extends SMWDataValue {
4039
41 - protected $m_wikivalue = ''; // local language value, user input if given
42 - protected $m_value = ''; // numerical value, in $m_unit
43 - protected $m_unit = ''; // HTML-safe unit string, if any
44 - protected $m_unitin; // if set, specifies the originally given input unit in a standard writing
45 - protected $m_unitvalues; // array with entries unit=>value
 40+ /// The number that this datavalue represents. Must be set if valid.
 41+ protected $m_value = '';
 42+ /// Array with entries unit=>value, mapping a normalized unit to the converted value. Used for conversion tooltips.
 43+ protected $m_unitvalues;
 44+ /**
 45+ * Canonical identifier for the unit that the user gave as input. Used
 46+ * to avoid printing this in conversion tooltips again. If the
 47+ * outputformat was set to show another unit, then the values of
 48+ * $m_caption and $m_unitin will be updated as if the formatted string
 49+ * had been the original user input, i.e. the two values reflect what
 50+ * is currently printed.
 51+ */
 52+ protected $m_unitin;
4653
47 - protected function parseUserValue( $value ) {
48 - $this->m_wikivalue = $value;
49 - $this->m_unitin = false;
50 - $this->m_unitvalues = false;
51 -
 54+ /**
 55+ * Parse a string of the form "number unit" where unit is optional. The
 56+ * results are stored in the $number and $unit parameters. Returns an
 57+ * error code.
 58+ * @return integer 0 (no errors), 1 (no number found at all), 2 (number
 59+ * too large for this platform)
 60+ */
 61+ static protected function parseNumberValue( $value, &$number, &$unit ) {
 62+ // Parse to find $number and (possibly) $unit
5263 smwfLoadExtensionMessages( 'SemanticMediaWiki' );
53 -
54 - // Parse to find value and unit
5564 $decseparator = wfMsgForContent( 'smw_decseparator' );
5665 $kiloseparator = wfMsgForContent( 'smw_kiloseparator' );
5766
@@ -64,14 +73,32 @@
6574 if ( $decseparator != '.' ) {
6675 $numstring = str_replace( $decseparator, '.', $numstring );
6776 }
68 - list( $this->m_value ) = sscanf( $numstring, "%f" );
 77+ list( $number ) = sscanf( $numstring, "%f" );
 78+ if ( count( $parts ) >= 3 ) {
 79+ $unit = SMWNumberValue::normalizeUnit( $parts[2] );
 80+ }
6981 }
70 - if ( count( $parts ) >= 3 ) $this->m_unit = $this->normalizeUnit( $parts[2] );
7182
7283 if ( ( count( $parts ) == 1 ) || ( $numstring == '' ) ) { // no number found
 84+ return 1;
 85+ } elseif ( is_infinite( $number ) ) { // number is too large for this platform
 86+ return 2;
 87+ } else {
 88+ return 0;
 89+ }
 90+ }
 91+
 92+ protected function parseUserValue( $value ) {
 93+ $this->m_unitin = false;
 94+ $this->m_unitvalues = false;
 95+ $number = $unit = '';
 96+ $error = SMWNumberValue::parseNumberValue( $value, $number, $unit );
 97+ if ( $error == 1 ) { // no number found
7398 $this->addError( wfMsgForContent( 'smw_nofloat', $value ) );
74 - } elseif ( is_infinite( $this->m_value ) ) {
75 - wfMsgForContent( 'smw_infinite', $value );
 99+ } elseif ( $error == 2 ) { // number is too large for this platform
 100+ $this->addError( wfMsgForContent( 'smw_infinite', $value ) );
 101+ } elseif ( $this->convertToMainUnit( $number, $unit ) === false ) { // so far so good: now convert unit and check if it is allowed
 102+ $this->addError( wfMsgForContent( 'smw_unitnotallowed', $unit ) );
76103 }
77104
78105 // Set caption
@@ -83,7 +110,6 @@
84111
85112 protected function parseDBkeys( $args ) {
86113 $this->m_value = $args[0];
87 - $this->m_unit = array_key_exists( 2, $args ) ? $args[2]:'';
88114 $this->m_caption = false;
89115 $this->m_unitin = false;
90116 $this->makeUserValue();
@@ -91,11 +117,13 @@
92118 }
93119
94120 public function setOutputFormat( $formatstring ) {
95 - $oldformat = $this->m_outformat;
96 - $this->m_outformat = $formatstring;
97 - if ( ( $formatstring != $oldformat ) && $this->isValid() ) {
98 - // recompute conversion if outputformat is changed after initialisation
99 - $this->m_stubvalues = array( $this->m_value, $this->m_value, $this->m_unit );
 121+ if ( $formatstring != $this->m_outformat ) {
 122+ $this->m_outformat = $formatstring;
 123+ if ( $this->isValid() ) { // update caption/unitin for this format
 124+ $this->m_caption = false;
 125+ $this->m_unitin = false;
 126+ $this->makeUserValue();
 127+ }
100128 }
101129 }
102130
@@ -103,30 +131,31 @@
104132 $this->unstub();
105133 if ( ( $linked === null ) || ( $linked === false ) || ( $this->m_outformat == '-' ) || ( $this->m_outformat == '-u' ) || ( $this->m_outformat == '-n' ) ) {
106134 return $this->m_caption;
107 - }
108 - $this->makeConversionValues();
109 - $tooltip = '';
110 - $i = 0;
111 - $sep = '';
112 - foreach ( $this->m_unitvalues as $unit => $value ) {
113 - if ( $unit != $this->m_unitin ) {
114 - $tooltip .= $sep . smwfNumberFormat( $value );
115 - if ( $unit != '' ) {
116 - $tooltip .= ' ' . $unit;
 135+ } else {
 136+ $this->makeConversionValues();
 137+ $tooltip = '';
 138+ $i = 0;
 139+ $sep = '';
 140+ foreach ( $this->m_unitvalues as $unit => $value ) {
 141+ if ( $unit != $this->m_unitin ) {
 142+ $tooltip .= $sep . smwfNumberFormat( $value );
 143+ if ( $unit != '' ) {
 144+ $tooltip .= ' ' . $unit;
 145+ }
 146+ $sep = ' <br />';
 147+ $i++;
 148+ if ( $i >= 5 ) { // limit number of printouts in tooltip
 149+ break;
 150+ }
117151 }
118 - $sep = ' <br />';
119 - $i++;
120 - if ( $i >= 5 ) { // limit number of printouts in tooltip
121 - break;
122 - }
123152 }
 153+ if ( $tooltip != '' ) {
 154+ SMWOutputs::requireHeadItem( SMW_HEADER_TOOLTIP );
 155+ return '<span class="smwttinline">' . $this->m_caption . '<span class="smwttcontent">' . $tooltip . '</span></span>';
 156+ } else {
 157+ return $this->m_caption;
 158+ }
124159 }
125 - if ( $tooltip != '' ) {
126 - SMWOutputs::requireHeadItem( SMW_HEADER_TOOLTIP );
127 - return '<span class="smwttinline">' . $this->m_caption . '<span class="smwttcontent">' . $tooltip . '</span></span>';
128 - } else {
129 - return $this->m_caption;
130 - }
131160 }
132161
133162 public function getShortHTMLText( $linker = null ) {
@@ -147,7 +176,7 @@
148177 } elseif ( $i > 1 ) {
149178 $result .= ', ';
150179 }
151 - $result .= ( $this->m_outformat != '-' ? smwfNumberFormat( $value ):$value );
 180+ $result .= ( $this->m_outformat != '-' ? smwfNumberFormat( $value ) : $value );
152181 if ( $unit != '' ) {
153182 $result .= '&#160;' . $unit;
154183 }
@@ -169,12 +198,11 @@
170199
171200 public function getDBkeys() {
172201 $this->unstub();
173 - $this->convertToMainUnit();
174 - return array( $this->m_value, floatval( $this->m_value ), $this->m_unit );
 202+ return array( $this->m_value, floatval( $this->m_value ) );
175203 }
176204
177205 public function getSignature() {
178 - return 'tfu';
 206+ return 'tf';
179207 }
180208
181209 public function getValueIndex() {
@@ -187,22 +215,24 @@
188216
189217 public function getWikiValue() {
190218 $this->unstub();
191 - return $this->m_wikivalue;
 219+ $unit = $this->getUnit();
 220+ return strval( $this->m_value ) . ( $unit != '' ? ' ' . $unit : '' );
192221 }
193222
 223+ /**
 224+ * Return the unit in which the returned value is to be interpreted.
 225+ * This string is a plain UTF-8 string without wiki or html markup.
 226+ * The returned value is a canonical ID for the main unit.
 227+ * Returns the empty string if no unit is given for the value.
 228+ * Overwritten by subclasses that support units.
 229+ */
194230 public function getUnit() {
195 - $values = $this->getDBkeys();
196 - return $values[2];
 231+ return '';
197232 }
198233
199234 public function getHash() {
200235 $this->unstub();
201 - if ( $this->isValid() ) {
202 - $this->convertToMainUnit();
203 - return $this->m_value . $this->m_unit;
204 - } else {
205 - return implode( "\t", $this->getErrors() );
206 - }
 236+ return $this->isValid() ? $this->m_value : implode( "\t", $this->getErrors() );
207237 }
208238
209239 protected function getServiceLinkParams() {
@@ -212,7 +242,7 @@
213243 // $1: string of numerical value in English punctuation
214244 // $2: string of integer version of value, in English punctuation
215245 // $3: string of unit (if any)
216 - return array( (string)$this->m_value, (string)round( $this->m_value ), $this->m_unit );
 246+ return array( (string)$this->m_value, (string)round( $this->m_value ) );
217247 }
218248
219249 public function getExportData() {
@@ -230,7 +260,7 @@
231261 * so that, e.g., "km²" and "km<sup>2</sup>" do not need to be
232262 * distinguished.
233263 */
234 - protected function normalizeUnit( $unit ) {
 264+ static protected function normalizeUnit( $unit ) {
235265 $unit = str_replace( array( '[[', ']]' ), '', trim( $unit ) ); // allow simple links to be used inside annotations
236266 $unit = str_replace( array( '²', '<sup>2</sup>' ), '&sup2;', $unit );
237267 $unit = str_replace( array( '³', '<sup>3</sup>' ), '&sup3;', $unit );
@@ -238,17 +268,22 @@
239269 }
240270
241271 /**
242 - * Converts the current m_value and m_unit to the main unit, if possible.
243 - * This means, it changes the fileds m_value and m_unit accordingly, and
244 - * that it stores the ID of the originally given unit in $this->m_unitin.
245 - * This should obviously not be done more than once, so it is advisable to
246 - * first check if m_unitin is non-false. Also, it should be checked if the
247 - * value is valid before trying to calculate with its contents.
 272+ * Compute the value based on the given input number and unit string.
 273+ * If the unit is not supported, return false, otherwise return true.
 274+ * This is called when parsing user input, where the given unit value
 275+ * has already been normalized.
248276 *
249 - * Overwritten by subclasses that support units.
 277+ * This class does not support any (non-empty) units, but subclasses
 278+ * may overwrite this behavior.
250279 */
251 - protected function convertToMainUnit() {
252 - $this->m_unitin = $this->m_unit; // just use unit as ID (no check needed, we can do this as often as desired)
 280+ protected function convertToMainUnit( $number, $unit ) {
 281+ if ( $unit == '' ) {
 282+ $this->m_unitin = '';
 283+ $this->m_value = $number;
 284+ return true;
 285+ } else {
 286+ return false;
 287+ }
253288 }
254289
255290 /**
@@ -265,13 +300,12 @@
266301 * Overwritten by subclasses that support units.
267302 */
268303 protected function makeConversionValues() {
269 - $this->convertToMainUnit();
270 - $this->m_unitvalues = array( $this->m_unit => $this->m_value );
 304+ $this->m_unitvalues = array( '' => $this->m_value );
271305 }
272306
273307 /**
274308 * This method is used when no user input was given to find the best
275 - * values for m_wikivalue, m_unitin, and m_caption. After conversion,
 309+ * values for m_unitin and m_caption. After conversion,
276310 * these fields will look as if they were generated from user input,
277311 * and convertToMainUnit() will have been called (if not, it would be
278312 * blocked by the presence of m_unitin).
@@ -279,19 +313,12 @@
280314 * Overwritten by subclasses that support units.
281315 */
282316 protected function makeUserValue() {
283 - $this->convertToMainUnit();
284317 $this->m_caption = '';
285318 if ( $this->m_outformat != '-u' ) { // -u is the format for displaying the unit only
286319 $this->m_caption .= ( ( $this->m_outformat != '-' ) && ( $this->m_outformat != '-n' ) ? smwfNumberFormat( $this->m_value ) : $this->m_value );
287320 }
288 - if ( ( $this->m_unit != '' ) && ( $this->m_outformat != '-n' ) ) { // -n is the format for displaying the number only
289 - if ( $this->m_outformat != '-u' ) {
290 - $this->m_caption .= ( $this->m_outformat != '-' ? '&#160;' : ' ' );
291 - }
292 - $this->m_caption .= $this->m_unit;
293 - }
294 - $this->m_wikivalue = $this->m_caption;
295 - $this->m_unitin = $this->m_unit;
 321+ // no unit ever, so nothing to do about this
 322+ $this->m_unitin = '';
296323 }
297324
298325 /**
@@ -301,7 +328,7 @@
302329 * Overwritten by subclasses that support units.
303330 */
304331 public function getUnitList() {
305 - return array();
 332+ return array( '' );
306333 }
307334
308335 }
Index: trunk/extensions/SemanticMediaWiki/includes/datavalues/SMW_DV_Temperature.php
@@ -7,95 +7,59 @@
88 /**
99 * This datavalue implements unit support for measuring temperatures. This is
1010 * mostly an example implementation of how to realise custom unit types easily.
 11+ * The implementation lacks support for localization and for selecting
 12+ * "display units" on the property page as possible for the types with linear
 13+ * unit conversion.
1114 *
1215 * @author Markus Krötzsch
1316 * @ingroup SMWDataValues
1417 */
1518 class SMWTemperatureValue extends SMWNumberValue {
1619
17 - /**
18 - * Converts the current m_value and m_unit to the main unit, if possible.
19 - * This means, it changes the fileds m_value and m_unit accordingly, and
20 - * that it stores the ID of the originally given unit in $this->m_unitin.
21 - * This should obviously not be done more than once, so it is advisable to
22 - * first check if m_unitin is non-false. Also, it should be checked if the
23 - * value is valid before trying to calculate with its contents.
24 - */
25 - protected function convertToMainUnit() {
26 - if ( $this->m_unitin !== false ) return;
27 - if ( !$this->isValid() ) { // give up, avoid calculations with non-numbers
28 - $this->m_unitin = $this->m_unit;
29 - return;
30 - }
31 -
 20+ protected function convertToMainUnit( $number, $unit ) {
3221 // Find current ID and covert main values to Kelvin, if possible
3322 // Note: there is no error when unknown units are used.
34 - $this->m_unitin = $this->getUnitID( $this->m_unit );
 23+ $this->m_unitin = $this->getUnitID( $unit );
3524 switch ( $this->m_unitin ) {
3625 case 'K':
37 - $this->m_unit = 'K';
 26+ $this->m_value = $number;
3827 break;
3928 case '°C':
40 - $this->m_unit = 'K';
41 - $this->m_value = $this->m_value + 273.15;
 29+ $this->m_value = $number + 273.15;
4230 break;
4331 case '°F':
44 - $this->m_unit = 'K';
45 - $this->m_value = ( $this->m_value - 32 ) / 1.8 + 273.15;
 32+ $this->m_value = ( $number - 32 ) / 1.8 + 273.15;
4633 break;
4734 case '°R':
48 - $this->m_unit = 'K';
49 - $this->m_value = ( $this->m_value ) / 1.8;
 35+ $this->m_value = ( $number ) / 1.8;
5036 break;
51 - default: // unsupported unit
52 - // create error here, assuming that our temperature units should not be augmented by unknown units
53 - smwfLoadExtensionMessages( 'SemanticMediaWiki' );
54 - $this->addError( wfMsgForContent( 'smw_unsupportedunit', $this->m_unit ) );
55 - $this->m_unit = $this->m_unitin;
56 - break;
 37+ default: return false; // unsupported unit
5738 }
 39+ return true;
5840 }
5941
60 - /**
61 - * This method creates an array of unit-value-pairs that should be
62 - * printed. Units are the keys and should be canonical unit IDs.
63 - * The result is stored in $this->m_unitvalues. Again, any class that
64 - * requires effort for doing this should first check whether the array
65 - * is already set (i.e. not false) before doing any work.
66 - * Note that the values should be plain numbers. Output formatting is done
67 - * later when needed. Also, it should be checked if the value is valid
68 - * before trying to calculate with its contents.
69 - * This method also must call or implement convertToMainUnit().
70 - */
7142 protected function makeConversionValues() {
72 - if ( $this->m_unitvalues !== false ) return;
73 - $this->convertToMainUnit();
74 - $this->m_unitvalues = array( $this->m_unit => $this->m_value );
75 - if ( $this->isValid() && ( $this->m_unit == 'K' ) ) {
76 - $this->m_unitvalues['°C'] = $this->m_value - 273.15;
77 - $this->m_unitvalues['°F'] = ( $this->m_value - 273.15 ) * 1.8 + 32;
78 - $this->m_unitvalues['°R'] = ( $this->m_value ) * 1.8;
 43+ /// NOTE This class currently ignores display units.
 44+ if ( $this->m_unitvalues !== false ) return; // do this only once
 45+ if ( !$this->isValid() ) {
 46+ $this->m_unitvalues = array();
 47+ } else {
 48+ $this->m_unitvalues = array( 'K' => $this->m_value, '°C' => $this->m_value - 273.15,
 49+ '°F' => ( $this->m_value - 273.15 ) * 1.8 + 32,
 50+ '°R' => ( $this->m_value ) * 1.8 );
7951 }
8052 }
8153
82 - /**
83 - * This method is used when no user input was given to find the best
84 - * values for m_wikivalue, m_unitin, and m_caption. After conversion,
85 - * these fields will look as if they were generated from user input,
86 - * and convertToMainUnit() will have been called (if not, it would be
87 - * blocked by the presence of m_unitin).
88 - */
8954 protected function makeUserValue() {
90 - $this->convertToMainUnit();
91 -
9255 $value = false;
93 - if ( ( $this->m_unit === 'K' ) && $this->m_outformat && ( $this->m_outformat != '-' ) ) { // try given output unit (only if conversion worked)
94 - $unit = $this->getUnitID( $this->normalizeUnit( $this->m_outformat ) );
95 - $printunit = $this->m_outformat;
96 - switch ( $unit ) {
 56+ if ( ( $this->m_outformat ) && ( $this->m_outformat != '-' ) &&
 57+ ( $this->m_outformat != '-n' ) && ( $this->m_outformat != '-u' )) { // first try given output unit
 58+ $printunit = SMWNumberValue::normalizeUnit( $this->m_outformat );
 59+ $this->m_unitin = $this->getUnitID( $printunit );
 60+ switch ( $this->m_unitin ) {
9761 case 'K':
9862 $value = $this->m_value;
99 - break; // nothing to do
 63+ break;
10064 case '°C':
10165 $value = $this->m_value - 273.15;
10266 break;
@@ -108,53 +72,46 @@
10973 // default: unit not supported
11074 }
11175 }
112 - if ( $value === false ) { // finally fallback to current value
 76+ if ( $value === false ) { // no valid output unit requested
11377 $value = $this->m_value;
114 - $unit = $this->m_unit;
115 - $printunit = $unit;
 78+ $this->m_unitin = 'K';
 79+ $printunit = 'K';
11680 }
11781
118 - $this->m_caption = smwfNumberFormat( $value );
119 - if ( $printunit != '' ) {
120 - $this->m_caption .= '&#160;' . $printunit;
 82+ $this->m_caption = '';
 83+ if ( $this->m_outformat != '-u' ) { // -u is the format for displaying the unit only
 84+ $this->m_caption .= ( ( $this->m_outformat != '-' ) && ( $this->m_outformat != '-n' ) ? smwfNumberFormat( $value ) : $value );
12185 }
122 - $this->m_wikivalue = $this->m_caption;
123 - $this->m_unitin = $unit;
 86+ if ( ( $printunit != '' ) && ( $this->m_outformat != '-n' ) ) { // -n is the format for displaying the number only
 87+ if ( $this->m_outformat != '-u' ) {
 88+ $this->m_caption .= ( $this->m_outformat != '-' ? '&#160;' : ' ' );
 89+ }
 90+ $this->m_caption .= $printunit;
 91+ }
12492 }
12593
126 -
127 -
12894 /**
12995 * Helper method to find the main representation of a certain unit.
13096 */
13197 protected function getUnitID( $unit ) {
13298 /// TODO possibly localise some of those strings
13399 switch ( $unit ) {
134 - case '': case 'K': case 'Kelvin': case 'kelvin': case 'kelvins':
135 - return 'K';
 100+ case '': case 'K': case 'Kelvin': case 'kelvin': case 'kelvins': return 'K';
136101 // There's a dedicated Unicode character (℃, U+2103) for degrees C.
137102 // Your font may or may not display it; do not be alarmed.
138 - case '°C': case '℃': case 'Celsius': case 'centigrade':
139 - return '°C';
140 - break;
141 - case '°F': case 'Fahrenheit':
142 - return '°F';
143 - break;
144 - case '°R': case 'Rankine':
145 - return '°R';
146 - break;
147 - default: // unsupported unit
148 - return $unit;
149 - break;
 103+ case '°C': case '℃': case 'Celsius': case 'centigrade': return '°C';
 104+ case '°F': case 'Fahrenheit': return '°F';
 105+ case '°R': case 'Rankine': return '°R';
 106+ default: return false;
150107 }
151108 }
152109
153 - /**
154 - * Return an array of major unit strings (ids only recommended) supported by
155 - * this datavalue.
156 - */
157110 public function getUnitList() {
158111 return array( 'K', '°C', '°F', '°R' );
159112 }
160113
 114+ public function getUnit() {
 115+ return 'K';
 116+ }
 117+
161118 }
Index: trunk/extensions/SemanticMediaWiki/languages/SMW_Messages.php
@@ -118,12 +118,12 @@
119119 'smw_false_words' => 'false,f,no,n', // comma-separated synonyms for Boolean FALSE besides '0', primary value first
120120 'smw_nofloat' => '"$1" is not a number.',
121121 'smw_infinite' => 'Numbers as large as "$1" are not supported.',
 122+ 'smw_unitnotallowed'=> '"$1" is not declared as a valid unit of measurement for this property.',
122123 'smw_infinite_unit' => 'Conversion into unit "$1" resulted in a number that is too large.',
123124 'smw_novalues' => 'No values specified.',
124125
125126 // Currently unused, floats silently store units. 'smw_unexpectedunit' => 'this property supports no unit conversion',
126127 'smw_unsupportedprefix' => 'Prefixes for numbers ("$1") are not supported.',
127 - 'smw_unsupportedunit' => 'Unit conversion for unit "$1" not supported.',
128128
129129 // some links for online maps; can be translated to different language versions of services, but need not
130130 'smw_service_online_maps' => " Find&nbsp;online&nbsp;maps|http://tools.wikimedia.de/~magnus/geo/geohack.php?params=\$9_\$7_\$10_\$8\n Google&nbsp;maps|http://maps.google.com/maps?ll=\$11\$9,\$12\$10&spn=0.1,0.1&t=k\n Mapquest|http://www.mapquest.com/maps/map.adp?searchtype=address&formtype=latlong&latlongtype=degrees&latdeg=\$11\$1&latmin=\$3&latsec=\$5&longdeg=\$12\$2&longmin=\$4&longsec=\$6&zoom=6",
@@ -615,7 +615,6 @@
616616 'smw_infinite' => 'الأرقام الكبيرة مثل "$1" غير مدعومة.',
617617 'smw_infinite_unit' => 'التحويل إلى الوحدة "$1" نتج عنه رقم كبير جدا.',
618618 'smw_unsupportedprefix' => 'غير مدعوم ("$1") البادئات لأرقام.',
619 - 'smw_unsupportedunit' => 'غير مدعوم "$1" تحويل الوحدة للوحدة.',
620619 'smw_nodatetime' => 'التاريخ "$1" لم يتم فهمه.',
621620 'smw_toomanyclosing' => 'يبدو أنه هناك الكثير من "$1" في الاستعلام.',
622621 'smw_noclosingbrackets' => '"]]" في استعلامك لم تكن مغلقة باستخدام "<nowiki>[[</nowiki>" بعض استخدام',
@@ -880,7 +879,6 @@
881880 'smw_infinite' => 'الأرقام الكبيره مثل "$1" غير مدعومه.',
882881 'smw_infinite_unit' => 'التحويل إلى الوحده "$1" نتج عنه رقم كبير جدا.',
883882 'smw_unsupportedprefix' => 'غير مدعوم ("$1") البادئات لأرقام.',
884 - 'smw_unsupportedunit' => 'غير مدعوم "$1" تحويل الوحده للوحده.',
885883 'smw_nodatetime' => 'التاريخ "$1" لم يتم فهمه.',
886884 'smw_toomanyclosing' => 'يبدو أنه هناك الكثير من "$1" فى الاستعلام.',
887885 'smw_noclosingbrackets' => '"]]" فى استعلامك لم تكن مغلقه باستخدام "<nowiki>[[</nowiki>" بعض استخدام',
@@ -1137,7 +1135,6 @@
11381136 'smw_infinite_unit' => 'Пераўтварэньне ў адзінку «$1» стварыла лік, які зьяўляецца занадта вялікім.',
11391137 'smw_novalues' => 'Значэньні не пазначаныя',
11401138 'smw_unsupportedprefix' => 'Прэфіксы для лікаў («$1») не падтрымліваюцца.',
1141 - 'smw_unsupportedunit' => 'Пераўтварэньне адзінак для адзінкі «$1» не падтрымліваецца.',
11421139 'smw_nodatetime' => 'Дата «$1» не была распазнаная.',
11431140 'smw_toomanyclosing' => 'Зашмат уваходжаньняў «$1» у запыце.',
11441141 'smw_noclosingbrackets' => 'Выкарыстаныя дужкі «<nowiki>[[</nowiki>» у Вашым запыце не былі зачынены адпаведнымі дужкамі «]]».',
@@ -1429,7 +1426,6 @@
14301427 'smw_infinite_unit' => 'Kemmadur an unanenn "$1" en deus roet un niver re vras.',
14311428 'smw_novalues' => "N'eus bet diferet talvoudoù ebet.",
14321429 'smw_unsupportedprefix' => "Ar rakgerioù evit an niveroù ( « $1 » ) n'int ket skoret.",
1433 - 'smw_unsupportedunit' => 'N\'eo ket skoret kemmadur an unanenn "$1".',
14341430 'smw_nodatetime' => 'An deiziad « $1 » n’eo ket bet komprenet.',
14351431 'smw_toomanyclosing' => 'Re a reveziadennoù eus « $1 » zo er reked.',
14361432 'smw_noclosingbrackets' => 'Implijout \'zo eus "<nowiki>[[</nowiki>" en ho reked n\'int ket bet serret gant ar "]]" a glot.',
@@ -1671,7 +1667,6 @@
16721668 'smw_infinite_unit' => 'La conversió a la unitat «$1» ha donat un nombre massa llarg.',
16731669 'smw_novalues' => "No s'ha especificat cap valor.",
16741670 'smw_unsupportedprefix' => 'No es permet prefixos («$1») en els nombres.',
1675 - 'smw_unsupportedunit' => 'La conversió d\'unitats per la unitat "$1" no està suportada.',
16761671 'smw_nodatetime' => "No s'ha entès la data «$1».",
16771672 'smw_toomanyclosing' => 'Sembla ser que «$1» apareix massa vegades a la consulta.',
16781673 'smw_noclosingbrackets' => 'Algun ús de "<nowiki>[[</nowiki>" en la vostra consulta no es clou amb els "]]" corresponents.',
@@ -1893,7 +1888,6 @@
18941889 'smw_infinite' => 'Tak dlouhá čísla jako $1 nejsou podporována.',
18951890 'smw_infinite_unit' => 'Konverze na jednotky $1 dala jako výsledek číslo, které je příliš dlouhé.',
18961891 'smw_unsupportedprefix' => 'Předpony pro čísla („$1“) nejsou podporované.',
1897 - 'smw_unsupportedunit' => 'Konverze pro jednotku "$1" není podporována.',
18981892 'smw_nodatetime' => 'Datum "$1" nedává smysl.',
18991893 'smw_toomanyclosing' => 'Dotazovaný řetězec „$1“ má příliš mnoho výskytů.',
19001894 'smw_noclosingbrackets' => 'Některý výskyt „<nowiki>[[</nowiki>“ ve vašem dotazu nebyl ukončen odpovídajícím „]]“.',
@@ -2091,7 +2085,6 @@
20922086 'smw_infinite_unit' => 'Die Umrechnung in Einheit „$1“ ist nicht möglich: die Zahl ist zu lang.',
20932087 'smw_novalues' => 'Es wurden keine Werte angegeben.',
20942088 'smw_unsupportedprefix' => 'Vorangestellte Zeichen bei Dezimalzahlen („$1“) werden nicht unterstützt.',
2095 - 'smw_unsupportedunit' => 'Die Umrechnung der Einheit „$1“ wird nicht unterstützt.',
20962089 'smw_nodatetime' => 'Das Datum „$1“ wurde nicht verstanden.',
20972090 'smw_toomanyclosing' => 'In der Abfrage kommen zu viele „$1“ vor.',
20982091 'smw_noclosingbrackets' => 'Ein Vorkommen von „<nowiki>[[</nowiki>“ in der Abfrage wurde nicht durch ein entsprechendes „]]“ abgeschlossen.',
@@ -2329,7 +2322,6 @@
23302323 'smw_infinite_unit' => 'Konwertěrowanje do jadnotki "$1" jo pśinjasło licbu, kótaraž jo pśedłujka.',
23312324 'smw_novalues' => 'Žedne gódnoty pódane',
23322325 'smw_unsupportedprefix' => 'Prefikse za licby ("$1") se njepodpěraju.',
2333 - 'smw_unsupportedunit' => 'Konwertěrowanje jadnotki "$1" se njepódpěra.',
23342326 'smw_nodatetime' => 'Datum "$1" njejo se rozměł.',
23352327 'smw_toomanyclosing' => 'Zda se, až jo pśewjele wustupowanjow "$1" w napšašowanju.',
23362328 'smw_noclosingbrackets' => 'Jadne wustupowanje "<nowiki>[[</nowiki>" w twójom napšašanju njejo se pśez wótpowědnej "]]" wótzamknuło.',
@@ -2806,7 +2798,6 @@
28072799 'smw_infinite_unit' => 'La conversión en la unidad $1 resultó en un número que es demasiado largo.',
28082800 'smw_novalues' => 'No se ha especificado valores.',
28092801 'smw_unsupportedprefix' => 'prefijos ("$1") no esta soportados actualmente',
2810 - 'smw_unsupportedunit' => 'La conversión de la unidad "$1" no está soportada',
28112802 'smw_nodatetime' => 'La fecha «$1» no ha sido comprendida.',
28122803 'smw_toomanyclosing' => 'Parece haber demasiadas coincidencias de "$1" en la solicitud.',
28132804 'smw_noclosingbrackets' => 'Algún uso de "<nowiki>[[</nowiki>" en su consulta no está cerrado por "]]" coincidentes.',
@@ -3107,7 +3098,6 @@
31083099 'smw_infinite' => 'Numeron "$1" kokoisia arvoja ei tueta.',
31093100 'smw_infinite_unit' => 'Muuntaminen yksikköihin "$1" johti siihen, että numero kasvoi liian suureksi.',
31103101 'smw_unsupportedprefix' => 'Lukujen etuliitteitä (”$1”) ei tueta.',
3111 - 'smw_unsupportedunit' => 'Yksikön ”$1” yksikkömuunnosta ei tueta.',
31123102 'smw_nodatetime' => 'Päiväystä ”$1” ei tunnistettu.',
31133103 'smw_toomanyclosing' => 'Hakukyselyssä tuntuisi olevan liian monta esiintymää "$1" termistä.',
31143104 'smw_misplacedsymbol' => 'Symbolia "$1" käytettiin yhteydessä johon se ei soveltunut.',
@@ -3279,7 +3269,6 @@
32803270 'smw_infinite_unit' => 'La conversion en l’unité « $1 » a donné un nombre trop grand.',
32813271 'smw_novalues' => 'Aucune valeur spécifiée.',
32823272 'smw_unsupportedprefix' => 'Des préfixes (« $1 ») ne sont pas supportés actuellement.',
3283 - 'smw_unsupportedunit' => 'La conversion de l’unité « $1 » n’est pas supportée.',
32843273 'smw_nodatetime' => 'La date « $1 » n’a pas été comprise.',
32853274 'smw_toomanyclosing' => 'Il semble y avoir trop d’occurences de « $1 » dans la requête.',
32863275 'smw_noclosingbrackets' => 'Certains « <nowiki>[[</nowiki> » dans votre requête n’ont pas été clos par des « ]] » correspondants.',
@@ -3617,7 +3606,6 @@
36183607 'smw_infinite_unit' => 'A conversión na unidade "$1" deu como resultado un número que é demasiado grande.',
36193608 'smw_novalues' => 'Non se especificou ningún valor.',
36203609 'smw_unsupportedprefix' => 'Os prefixos para os números (“$1”) non están soportados.',
3621 - 'smw_unsupportedunit' => 'Non está soportada a unidade de conversión para a unidade “$1”.',
36223610 'smw_nodatetime' => 'A data “$1” non foi entendida.',
36233611 'smw_toomanyclosing' => 'Parece que hai demasiados acontecementos de “$1” na pregunta.',
36243612 'smw_noclosingbrackets' => 'Algún uso de “<nowiki>[[</nowiki>” na súa pregunta non foi pechado polo seu “]]” correspondente.',
@@ -3885,7 +3873,6 @@
38863874 'smw_infinite_unit' => 'D Umrächnig in d Eiheit „$1“ isch nit megli: d Zahl isch z lang.',
38873875 'smw_novalues' => 'Kei Wärt spezifiziert.',
38883876 'smw_unsupportedprefix' => 'Vornedra gstellti Zeiche bi Dezimalzahle („$1“) wäre nit unterstitzt.',
3889 - 'smw_unsupportedunit' => 'Umrächnig vu dr Eiheit „$1“ nit unterstitzt.',
38903877 'smw_nodatetime' => 'S Datum „$1“ isch nit verstande wore.',
38913878 'smw_toomanyclosing' => 'In dr Aafrog chemme z vyyl „$1“ vor.',
38923879 'smw_noclosingbrackets' => 'In dr Aafrog chunnt e „<nowiki>[[</nowiki>“ vor, isch aber nit mit eme „]]“ abgschlosse.',
@@ -4117,7 +4104,6 @@
41184105 'smw_infinite_unit' => 'תוצאת ההמרה ליחידה "$1" היא מספר גדול מדי.',
41194106 'smw_novalues' => 'לא צוינו ערכים.',
41204107 'smw_unsupportedprefix' => 'לא קיימת תמיכה בקידומות למספרים ("$1").',
4121 - 'smw_unsupportedunit' => 'אין תמיכה להמרת יחידות לטיפוס "$1"',
41224108 'smw_nodatetime' => 'התאריך "$1" אינו מובן.',
41234109 'smw_toomanyclosing' => 'נראה כי ישנם מופעים רבים מדי של "$1" בשאילתה.',
41244110 'smw_noclosingbrackets' => 'בכמה מהפעמים בהם השתמשתם ב־"<nowiki>[[</nowiki>" בשאילתה לא דאגתם להציב "]]" תואם לסגירה.',
@@ -4381,7 +4367,6 @@
43824368 'smw_infinite_unit' => 'Rezultat pretvorbe u jedinicu "$1" je prevelik broj.',
43834369 'smw_novalues' => 'Nisu naznačene vrijednosti.',
43844370 'smw_unsupportedprefix' => 'Prefiksi za brojeve ("$1") nisu podržani.',
4385 - 'smw_unsupportedunit' => 'Pretvorbe jedinica za "$1" nisu podržane.',
43864371 'smw_nodatetime' => 'Datum "$1" nije razumljiv.',
43874372 'smw_toomanyclosing' => 'Čini se da postoji previše pojava "$1" u upitu.',
43884373 'smw_noclosingbrackets' => 'Jedna od "<nowiki>[[</nowiki>" u Vašem upitu nije zatvorena odgovarajućom "]]".',
@@ -4624,7 +4609,6 @@
46254610 'smw_infinite_unit' => 'Konwertowanje do jednotki "$1" wjedźeše k ličbje, kotraž je předołha.',
46264611 'smw_novalues' => 'Žane hódnoty podate.',
46274612 'smw_unsupportedprefix' => 'Prefiksy za ličby ("$1") so njepodpěruja.',
4628 - 'smw_unsupportedunit' => 'Konwertowanje jednotki "$1" so njepodpěruje.',
46294613 'smw_nodatetime' => 'Datum "$1" njebu zrozumjeny.',
46304614 'smw_toomanyclosing' => 'Zda so, zo "$1" w tutym naprašowanju přehusto wustupuje.',
46314615 'smw_noclosingbrackets' => 'Wustupowanje pora róžkatych spinkow "<nowiki>[[</nowiki>" w twojim naprašowanju njeje přez wotpowědny "]]" wukónčene.',
@@ -4895,7 +4879,6 @@
48964880 'smw_infinite_unit' => 'A(z) „$1” egységre konvertálás eredménye túl nagy szám.',
48974881 'smw_novalues' => 'Nincsenek megadva értékek.',
48984882 'smw_unsupportedprefix' => 'Előtagok számokhoz („$1”) nem támogatottak.',
4899 - 'smw_unsupportedunit' => 'Egység konvertálás a(z) „$1” egységhez nem támogatott.',
49004883 'smw_nodatetime' => 'A(z) „$1” dátum nem értelmezhető.',
49014884 'smw_toomanyclosing' => 'A(z) „$1” túl sokszor fordul elő a lekérdezésben.',
49024885 'smw_noclosingbrackets' => 'A lekérdezésben szerepelnek nyitó szögletes zárójelek „(<nowiki>[[</nowiki>)” a lezáró párjuk („]]”) nélkül.',
@@ -5143,7 +5126,6 @@
51445127 'smw_infinite_unit' => 'Le conversion in unitate "$1" resultava in un numero troppo grande.',
51455128 'smw_novalues' => 'Nulle valor specificate.',
51465129 'smw_unsupportedprefix' => 'Le prefixos pro numeros ("$1") non es supportate.',
5147 - 'smw_unsupportedunit' => 'Le conversion del unitate "$1" non es supportate.',
51485130 'smw_nodatetime' => 'Le data "$1" non esseva comprendite.',
51495131 'smw_toomanyclosing' => 'Il pare haber troppo de occurrentias de "$1" in le consulta.',
51505132 'smw_noclosingbrackets' => 'Alcun uso de "<nowiki>[[</nowiki>" in tu consulta non esseva claudite per un correspondente "]]".',
@@ -5391,7 +5373,6 @@
53925374 'smw_infinite_unit' => 'Konversi menjadi unit "$1" menghasilkan suatu angka yang terlalu besar.',
53935375 'smw_novalues' => 'Tidak ada nilai yang disebutkan.',
53945376 'smw_unsupportedprefix' => 'Awalan untuk angka ("$1") tidak didukung.',
5395 - 'smw_unsupportedunit' => 'Konversi unit untuk unit "$1" tidak didukung.',
53965377 'smw_nodatetime' => 'Tanggal "$1" tidak dipahami.',
53975378 'smw_toomanyclosing' => 'Tampaknya ada terlalu banyak penyebutan "$1" pada query.',
53985379 'smw_noclosingbrackets' => 'Penggunaan beberapa "<nowiki>[[</nowiki>" pada query Anda tidak ditutup dengan pasangan "]]".',
@@ -5652,7 +5633,6 @@
56535634 'smw_infinite_unit' => 'La conversione nell\'unità di misura "$1" ha generato un numero che è troppo grande.',
56545635 'smw_novalues' => 'Nessun valore specificato',
56555636 'smw_unsupportedprefix' => 'I prefissi per i numeri (“$1”) non sono supportati.',
5656 - 'smw_unsupportedunit' => "La conversione per l'unit&agrave; di misura “$1” non &egrave; supportata.",
56575637 'smw_nodatetime' => 'Non &egrave; stato possibile comprendere la data “$1”.',
56585638 'smw_toomanyclosing' => "Sembrano esserci troppe ripetizioni di “$1” all'interno della query.",
56595639 'smw_noclosingbrackets' => 'Alcune "<nowiki>[[</nowiki>" all\'interno della query non sono state chiuse con le corrispondenti "]]".',
@@ -5885,7 +5865,6 @@
58865866 'smw_infinite_unit' => '単位「$1」への変換結果は数として大きすぎます。',
58875867 'smw_novalues' => '値が指定されていません。',
58885868 'smw_unsupportedprefix' => '数値のプレフィクス ($1) には対応しません。',
5889 - 'smw_unsupportedunit' => '単位「$1」への変換には対応しません。',
58905869 'smw_nodatetime' => '「$1」という日付は理解できませんでした。',
58915870 'smw_toomanyclosing' => 'クエリー中に含まれる「$1」の数が多すぎるようです。',
58925871 'smw_noclosingbrackets' => 'クエリー中の <nowiki>[[</nowiki> に、対応する ]] で閉じられていないものがありました。',
@@ -6061,7 +6040,6 @@
60626041 'smw_infinite' => 'Angka sing gedhéné nganti "$1" ora didhukung.',
60636042 'smw_infinite_unit' => 'Konvèrsi menyang unit "$1" ngasilaké angka sing kagedhèn.',
60646043 'smw_unsupportedprefix' => 'Préfiks kanggo angka-angka (“$1”) ora disengkuyung.',
6065 - 'smw_unsupportedunit' => 'Konvèrsi unit kanggo unit “$1” ora disengkuyung.',
60666044 'smw_nodatetime' => 'Tanggal “$1” ora dimangertèni.',
60676045 'smw_toomanyclosing' => 'Katoné ana kakèhan “$1” sajroning kwéri.',
60686046 'smw_noclosingbrackets' => 'Sawetara panrapan “<nowiki>[[</nowiki>” ing kwéri panjenengan ora ditutup déning “]]” sing cocog.',
@@ -6382,7 +6360,6 @@
63836361 'smw_infinite_unit' => 'Dat Ömräschne in de Einheit $1 es nit müjjelesch — di Zahl eß zo lang doför.',
63846362 'smw_novalues' => 'Et sinn_er kein Wääte aanjejovvwe.',
63856363 'smw_unsupportedprefix' => 'Vörsätz för Zahle („$1“) dom_mer nit ongershtöze.',
6386 - 'smw_unsupportedunit' => 'Et Ömrechne weed för de Einheit „$1“ nit müjjelesch sin.',
63876364 'smw_nodatetime' => 'Dat Dattum „$1“ künne mer nit vershtonn.',
63886365 'smw_toomanyclosing' => 'En dä Frooch es zoh öff „$1“ enthallde.',
63896366 'smw_noclosingbrackets' => 'En <code><nowiki>[[</nowiki></code> en Dinge Frooch woh nit zohjemaat, un hät kei <code>]]</code> wat drop paßße deiht.',
@@ -6600,7 +6577,6 @@
66016578 'smw_infinite' => 'Zuelen esou grouss wéi "$1" ginn net ënnerstëtzt.',
66026579 'smw_infinite_unit' => 'D\'Ëmrechnen an d\'Eenheet "$1" huet eng Zuel erginn géi ze grouss ass.',
66036580 'smw_novalues' => 'Keng Wäerter spezifizéiert.',
6604 - 'smw_unsupportedunit' => 'Umrechnung vun der Eenheet "$1" gëtt net ënnerstëtzt.',
66056581 'smw_nodatetime' => 'Den Datum "$1" gouf net verstan.',
66066582 'smw_noclosingbrackets' => 'Eng oder méi "<nowiki>[[</nowiki>" an Ärer Ufro war net zou duerch eng entspriechent "]]".',
66076583 'smw_misplacedsymbol' => 'D\'Symbol "$1" gouf op ener Plaz benotzt wou et net nëtzlech ass.',
@@ -6768,7 +6744,6 @@
67696745 'smw_infinite_unit' => 'Perskaičiavimo į vienetus "$1" rezultatas yra per didelis skaičius.',
67706746 'smw_novalues' => 'Nenurodyta reikšmė.',
67716747 'smw_unsupportedprefix' => 'Skaičiams priešdėlis ("$1") yra nepalaikomas.',
6772 - 'smw_unsupportedunit' => 'Vienetų konvertavimas elementui "$1" nėra palaikomas.',
67736748 'smw_nodatetime' => 'Data "$1" buvo neatpažinta.',
67746749 'smw_toomanyclosing' => 'Atrodo, kad yra per daug elementų "$1" užklausoje.',
67756750 'smw_noclosingbrackets' => 'Kažkuris panaudojimas "<nowiki>[[</nowiki>" jūsų užklausoje nebuvo uždaryta atitikimo "]]".',
@@ -6863,7 +6838,6 @@
68646839 'smw_infinite_unit' => 'Претворањето во единицата „$1“ доведе до преголем број.',
68656840 'smw_novalues' => 'Нема назначено вредности.',
68666841 'smw_unsupportedprefix' => 'Не се поддржани префикси за броеви („$1“).',
6867 - 'smw_unsupportedunit' => 'Претворањето не е поддржано за единицата „$1“.',
68686842 'smw_nodatetime' => 'Датумот „$1“ не е разбран.',
68696843 'smw_toomanyclosing' => 'Во барањето има премногу јавувања на „$1“.',
68706844 'smw_noclosingbrackets' => 'Во вашето барање беа искористени загради „<nowiki>[[</nowiki>“ на кои им недостатуваат соодветни затворачки загради „]]“.',
@@ -7044,7 +7018,6 @@
70457019 'smw_false_words' => 'തെറ്റ്,തെറ്റ്,അല്ല,അല്ല',
70467020 'smw_nofloat' => '“$1” ഒരു സംഖ്യയല്ല.',
70477021 'smw_infinite' => '“$1” എന്ന സംഖ്യയുടെയത്ര വലിപ്പമുള്ള സംഖ്യകൾ പിന്തുണയ്ക്കുന്നില്ല.',
7048 - 'smw_unsupportedunit' => '“$1” എന്ന ഏകകത്തിന്റെ ഏകകമാറ്റം പിൻ‌താങ്ങുന്നില്ല.',
70497022 'smw_misplacedsymbol' => '“$1” എന്ന ചിഹ്നം അതു ഉപയോഗിക്കാൻ പാടില്ലാത്ത ഒരു സ്ഥലത്ത് ഉപയോഗിച്ചിരിക്കുന്നു.',
70507023 'smw_badtitle' => 'ക്ഷമിക്കണം, “$1” എന്നതു സാധുവായൊരു തലക്കെട്ട് അല്ല.',
70517024 'exportrdf' => 'RDFലേക്ക് താളുകൾ എക്സ്‌പോർട്ട് ചെയ്യുക',
@@ -7107,7 +7080,6 @@
71087081 'smw_infinite' => '{{SITENAME}} वर “$1” एवढ्या मोठ्या संख्या वापरता येत नाहीत.',
71097082 'smw_infinite_unit' => '“$1” एककात बदल केल्यानंतर येणारी संख्या ही {{SITENAME}} वर वापरता येण्यासारख्या संख्यांपेक्षा खूप मोठी आहे.',
71107083 'smw_unsupportedprefix' => 'संख्या (“$1”) साठी उपपदे वापरता येत नाहीत.',
7111 - 'smw_unsupportedunit' => '“$1” हे एकक बदलता येत नाही.',
71127084 'smw_nodatetime' => '“$1” हा दिनांक समजला नाही.',
71137085 'smw_toomanyclosing' => 'या पृच्छेमध्ये “$1” खूप ठिकाणी आलेले आहे.',
71147086 'smw_noclosingbrackets' => 'तुमच्या पृच्छेत कुठेतरी वापरलेले “<nowiki>[[</nowiki>” हे योग्य अशा जुळणार्‍या “]]” ने बंद केलेले नाही.',
@@ -7316,7 +7288,6 @@
73177289 'smw_infinite_unit' => 'Conversie naar eenheid “$1” resulteerde in een getal dat te groot is.',
73187290 'smw_novalues' => 'Geen waarden opgegeven.',
73197291 'smw_unsupportedprefix' => 'Voorvoegsels voor getallen (“$1”) worden niet ondersteund.',
7320 - 'smw_unsupportedunit' => 'Eenheidconversie voor eenheid “$1” is niet ondersteund.',
73217292 'smw_nodatetime' => 'De datum “$1” kon niet verwerkt worden.',
73227293 'smw_toomanyclosing' => '“$1” lijkt te vaak voor te komen in de zoekopdracht.',
73237294 'smw_noclosingbrackets' => 'In uw zoekopdracht is het gebruik van “<nowiki>[[</nowiki>” niet gesloten door een bijbehorende “]]”.',
@@ -7530,7 +7501,6 @@
75317502 'smw_infinite' => 'Tal so store som «$1» er ikkje støtta.',
75327503 'smw_infinite_unit' => 'Konvertering til eininga «$1» resulterte i eit tal som er for stort.',
75337504 'smw_unsupportedprefix' => 'Prefiks for tal («$1») er ikkje støtta.',
7534 - 'smw_unsupportedunit' => 'Einingskonvertering for eininga «$1» er ikkje støtta.',
75357505 'smw_nodatetime' => 'Datoen «$1» vart ikkje forstått.',
75367506 'smw_toomanyclosing' => '«$1» finst for mange gonger i spørjinga.',
75377507 'smw_noclosingbrackets' => 'Nokre klammar i spørjinga di («<nowiki>[[</nowiki>») vart ikkje lukka påfølgjande klammar («]]»).',
@@ -7766,7 +7736,6 @@
77677737 'smw_infinite_unit' => 'Konvertering til enheten «$1» resulterte i et tall som er for stort.',
77687738 'smw_novalues' => 'Ingen verdier angitt.',
77697739 'smw_unsupportedprefix' => 'Prefiks for tall («$1») støttes ikke.',
7770 - 'smw_unsupportedunit' => 'Enhetskonvertering for enheten «$1» støttes ikke.',
77717740 'smw_nodatetime' => 'Datoen «$1» ble ikke forstått.',
77727741 'smw_toomanyclosing' => '«$1» opptrer for mange ganger i spørringen.',
77737742 'smw_noclosingbrackets' => 'Bruken av «<nowiki>[[</nowiki>» i spørringen din ble ikke stengt av «]]».',
@@ -7985,7 +7954,6 @@
79867955 'smw_infinite' => 'Los nombres tant grands coma « $1 » son pas suportats.',
79877956 'smw_infinite_unit' => "La conversion dins l'unitat « $1 » a balhat un nombre tròp grand.",
79887957 'smw_unsupportedprefix' => 'De prefixes ("$1") son pas suportats actualament',
7989 - 'smw_unsupportedunit' => 'La conversion de l\'unitat "$1" es pas suportada',
79907958 'smw_nodatetime' => 'La data "$1" es pas estada compresa.',
79917959 'smw_toomanyclosing' => "Sembla que i a tròp d'ocuréncias de “$1” dins la requèsta.",
79927960 'smw_noclosingbrackets' => "D'unes “<nowiki>[[</nowiki>” dins vòstra requèsta son pas estats clauses per de “]]” correspondents.",
@@ -8244,7 +8212,6 @@
82458213 'smw_infinite_unit' => 'Konwersja do jednostki „$1” zwróciła liczbę, która jest zbyt duża.',
82468214 'smw_novalues' => 'Nie określono wartości',
82478215 'smw_unsupportedprefix' => 'Przedrostki dla liczb („$1“) nie są obecnie obsługiwane.',
8248 - 'smw_unsupportedunit' => 'Konwersja dla jednostki „$1” nie jest obsługiwana.',
82498216 'smw_nodatetime' => 'Data „$1” nie została zrozumiana.',
82508217 'smw_toomanyclosing' => 'W zapytaniu jest zbyt wiele wystąpień „$1”.',
82518218 'smw_noclosingbrackets' => 'W zapytaniu któryś z podwójnych nawiasów „<nowiki>[[</nowiki>” nie został zamknięty nawiasem „]]”.',
@@ -8484,7 +8451,6 @@
84858452 'smw_infinite_unit' => "La conversion ant l'ùnità ''$1'' a dà com arzultà un nùmer che a l'é tròp gròss.",
84868453 'smw_novalues' => 'Pa gnun valor specificà.',
84878454 'smw_unsupportedprefix' => "Ij prefiss për nùmer (''$1'') a son pa mantnù.",
8488 - 'smw_unsupportedunit' => "La conversion dë mzura për l'unità ''$1'' a l'é pa mantnùa.",
84898455 'smw_nodatetime' => "La data ''$1'' a l'é pa stàita capìa.",
84908456 'smw_toomanyclosing' => "A smija ch'a-i sio tròpe ocorense ëd ''$1'' ant l'arcesta.",
84918457 'smw_noclosingbrackets' => 'Chèich usagi ëd "<nowiki>[[</nowiki>" an soa arcesta a son pa stàit sarà da un corëspondent "]]".',
@@ -8766,7 +8732,6 @@
87678733 'smw_infinite_unit' => 'A conversão para a unidade “$1” resultou num número demasiado grande.',
87688734 'smw_novalues' => 'Não foram especificados valores.',
87698735 'smw_unsupportedprefix' => 'Prefixos em números (“$1”) não são suportados.',
8770 - 'smw_unsupportedunit' => 'Conversão de unidade para unidade “$1” não suportada.',
87718736 'smw_nodatetime' => 'A data “$1” não foi compreendida.',
87728737 'smw_toomanyclosing' => 'Parece haver demasiadas ocorrências de "$1" na consulta.',
87738738 'smw_noclosingbrackets' => 'Um uso de "<nowiki>[[</nowiki>" na sua consulta não foi fechada por um "]]" correspondente.',
@@ -9012,7 +8977,6 @@
90138978 'smw_infinite_unit' => 'A conversão para a unidade "$1" resultou num número grande demais.',
90148979 'smw_novalues' => 'Não foram especificados valores.',
90158980 'smw_unsupportedprefix' => 'Prefixos em números ("$1") não são suportados.',
9016 - 'smw_unsupportedunit' => 'Conversão de unidade para unidade "$1" não suportada.',
90178981 'smw_nodatetime' => 'A data “$1” não foi compreendida.',
90188982 'smw_toomanyclosing' => 'Parece haver ocorrências demais de "$1" na consulta.',
90198983 'smw_noclosingbrackets' => 'Um uso de "<nowiki>[[</nowiki>" na sua consulta não foi fechada por um "]]" correspondente.',
@@ -9373,7 +9337,6 @@
93749338 'smw_infinite_unit' => 'Преобразование значения в единицы измерения «$1» привело к слишком длинному числу.',
93759339 'smw_novalues' => 'Не указаны значения.',
93769340 'smw_unsupportedprefix' => 'Префиксы для чисел ("$1") не поддерживаются в настоящее время.',
9377 - 'smw_unsupportedunit' => 'Преобразование единиц измерения для "$1" не поддерживается.',
93789341 'smw_nodatetime' => 'Дата «$1» не распознана.',
93799342 'smw_toomanyclosing' => 'Ошибка: Слишком много вхождений “$1” в данном запросе.',
93809343 'smw_noclosingbrackets' => 'Открывающаяся пара скобок «<nowiki>[[</nowiki>» не была закрыта парой соответствующих ей закрывающих скобок «]]» в данном запросе.',
@@ -9619,7 +9582,6 @@
96209583 'smw_infinite' => 'Čísla také veľké ako „$1“ nie sú podporované.',
96219584 'smw_infinite_unit' => 'Konverzia na jednotky „$1“ dala ako výsledok číslo, ktoré je príliš veľké.',
96229585 'smw_unsupportedprefix' => 'Predpony čísiel („$1“) nie sú podporované.',
9623 - 'smw_unsupportedunit' => 'konverzia jednotiek "$1" nie je podporované',
96249586 'smw_nodatetime' => 'Nevedel som interpretovať dátum "$1".',
96259587 'smw_toomanyclosing' => 'Zdá sa, že požiadavka obsahuje príliš mnoho výskytov „$1“.',
96269588 'smw_noclosingbrackets' => 'Niektoré použitie „<nowiki>[[</nowiki>” vo vašej požiadavke nebolo ukončené zodpovedajúcim „]]”.',
@@ -9848,7 +9810,6 @@
98499811 'smw_infinite_unit' => 'Конверзија у јединице "$1" је као резултат дала предугачак број.',
98509812 'smw_novalues' => 'Ниједна вредност није наведена.',
98519813 'smw_unsupportedprefix' => 'Префикси за бројеве ("$1") нису подржани.',
9852 - 'smw_unsupportedunit' => 'Конверзија јединица за јединицу "$1" није подржана.',
98539814 'smw_nodatetime' => 'Формат датума "$1" није разумљив.',
98549815 'smw_toomanyclosing' => 'Изгледа да је превише случајева типа "$1" у упиту.',
98559816 'smw_noclosingbrackets' => 'Неке угласте заграде "<nowiki>[[</nowiki>" у вашем упиту, нису затворене одговарајућим "]]".',
@@ -10084,7 +10045,6 @@
1008510046 'smw_infinite_unit' => 'Konverzija u jedinice "$1" je kao rezultat dala predugačak broj.',
1008610047 'smw_novalues' => 'Nijedna vrednost nije navedena.',
1008710048 'smw_unsupportedprefix' => 'Prefiksi za brojeve ("$1") nisu podržani.',
10088 - 'smw_unsupportedunit' => 'Konverzija jedinica za jedinicu "$1" nije podržana.',
1008910049 'smw_nodatetime' => 'Format datuma "$1" nije razumljiv.',
1009010050 'smw_toomanyclosing' => 'Izgleda da je previše slučajeva tipa "$1" u upitu.',
1009110051 'smw_noclosingbrackets' => 'Neke iskorišćene "<nowiki>[[</nowiki>" u vašem upitu nisu zatvorene odgovarajućim "]]".',
@@ -10312,7 +10272,6 @@
1031310273 'smw_infinite_unit' => 'Konvertering till enheten "$1" resulterade i ett tal som är för stort.',
1031410274 'smw_novalues' => 'Inga värden angivna.',
1031510275 'smw_unsupportedprefix' => 'Prefix för tal ("$1") stödjs inte.',
10316 - 'smw_unsupportedunit' => 'Enhetskonvertering för enheten "$1" stödjs inte.',
1031710276 'smw_nodatetime' => 'Datumet "$1" förstods inte.',
1031810277 'smw_toomanyclosing' => '"$1" uppträder för många gånger i efterfrågningen.',
1031910278 'smw_noclosingbrackets' => 'Användningen av "<nowiki>[[</nowiki>" i din efterfrågning stängdes inte av "]]".',
@@ -10647,7 +10606,6 @@
1064810607 'smw_infinite_unit' => 'Ang pagpapalit patungo sa yunit na "$1" ay nagresulta sa isang bilang na napakalaki.',
1064910608 'smw_novalues' => 'Walang tinukoy na mga halaga.',
1065010609 'smw_unsupportedprefix' => 'Hindi tinatangkilik ang mga unlapi para sa mga bilang ("$1").',
10651 - 'smw_unsupportedunit' => 'Hindi tinatangkilik ang pagpapalit ng yunit para sa bahaging "$1".',
1065210610 'smw_nodatetime' => 'Hindi naunawaan ang petsang "$1".',
1065310611 'smw_toomanyclosing' => 'Tila mayroong napakaraming mga kaganapan ng "$1" sa loob ng katanungan.',
1065410612 'smw_noclosingbrackets' => 'Ilang mga paggamit ng "<nowiki>[[</nowiki>" sa loob ng iyong katanungan ang hindi naisara sa pamamagitan ng isang tumutugmang "]]".',
@@ -11026,7 +10984,6 @@
1102710985 'smw_infinite_unit' => 'Конвертація в одиницю «$1» видала занадто довге число.',
1102810986 'smw_novalues' => 'Не вказано значень.',
1102910987 'smw_unsupportedprefix' => 'Префікси для чисел («$1») не підтримуються.',
11030 - 'smw_unsupportedunit' => 'Конвертація одиниці вимірювання «$1» не підтримується.',
1103110988 'smw_nodatetime' => 'Дата «$1» — незрозуміла.',
1103210989 'smw_toomanyclosing' => '«$1» зустрічається занадто багато разів.',
1103310990 'smw_noclosingbrackets' => 'Деякі з «<nowiki>[[</nowiki>» у запиті не було закрито відповідними «]]».',
@@ -11238,7 +11195,6 @@
1123911196 'smw_infinite' => 'Không hỗ trợ các số lớn như “$1”.',
1124011197 'smw_infinite_unit' => 'Chuyển đổi thành đơn vị “$1” đẫn tới một con số quá lớn.',
1124111198 'smw_unsupportedprefix' => 'Không hỗ trợ tiền tố cho các số (“$1”).',
11242 - 'smw_unsupportedunit' => 'Không hỗ trợ chuyển đổi đơn vị cho đơn vị “$1”.',
1124311199 'smw_nodatetime' => 'Không hiểu ngày “$1”.',
1124411200 'smw_toomanyclosing' => 'Dường có quá nhiều lần xuất hiện “$1” trong câu truy vấn.',
1124511201 'smw_noclosingbrackets' => 'Lần sử dụng “<nowiki>[[</nowiki>” nào đó trong câu truy vấn của bạn không được đóng bằng “]]”.',
@@ -11484,7 +11440,6 @@
1148511441 'smw_infinite' => '在此站内并不支持像是“$1"如此庞大的数目字。',
1148611442 'smw_infinite_unit' => '对此站而言转换“$1"单位所产生的数目字过于庞大。',
1148711443 'smw_unsupportedprefix' => '数字(“$1") 的字首目前尚未被支持',
11488 - 'smw_unsupportedunit' => '单位转换无法适用于“$1"此一单位',
1148911444 'smw_nodatetime' => '日期值“$1"无法被识别,对日期值的支持目前尚属实验性质。',
1149011445 'smw_toomanyclosing' => '在此查询中“$1"显然出现太多次了',
1149111446 'smw_noclosingbrackets' => '在您的查询中“[&#x005B;" 并未以对应的“]]"来予以封闭',
@@ -11638,7 +11593,6 @@
1163911594 'smw_infinite_unit' => '数字转换为单位"$1"后过大。',
1164011595 'smw_novalues' => '未设置数值。',
1164111596 'smw_unsupportedprefix' => '不支持数字("$1")前缀',
11642 - 'smw_unsupportedunit' => '不支持单位"$1"的转换',
1164311597 'smw_nodatetime' => '无法理解日期"$1"',
1164411598 'smw_toomanyclosing' => '查询中"$1"过多。',
1164511599 'smw_noclosingbrackets' => '你的查询中有未匹配"]]"的"<nowiki>[[</nowiki>"。',
@@ -11870,7 +11824,6 @@
1187111825 'smw_infinite_unit' => '數字轉換為單位「$1」後過大。',
1187211826 'smw_novalues' => '未設定數值。',
1187311827 'smw_unsupportedprefix' => '不支援數字(「$1」)前綴',
11874 - 'smw_unsupportedunit' => '不支援單位「$1」的轉換',
1187511828 'smw_nodatetime' => '無法理解日期「$1」',
1187611829 'smw_toomanyclosing' => '查詢中「$1」過多。',
1187711830 'smw_noclosingbrackets' => '你的查詢中有未匹配"]]"的"<nowiki>[[</nowiki>"。',
@@ -12068,7 +12021,6 @@
1206912022 'smw_infinite' => '在此站內並不支援像是“$1”如此龐大的數目字。',
1207012023 'smw_infinite_unit' => '對此站而言轉換“$1”單位所產生的數目字過於龐大。',
1207112024 'smw_unsupportedprefix' => '數字(“$1”) 的字首目前尚未被支援',
12072 - 'smw_unsupportedunit' => '單位轉換無法適用於“$1”此一單位',
1207312025 'smw_nodatetime' => '日期值“$1”無法被識別,對日期值的支援目前尚屬實驗性質。',
1207412026 'smw_toomanyclosing' => '在此查詢中“$1”顯然出現太多次了',
1207512027 'smw_noclosingbrackets' => '在您的查詢中“[&#x005B;” 並未以對應的“]]”來予以封閉',

Status & tagging log