Index: trunk/extensions/Translate/groups/mediawiki-defines.txt |
— | — | @@ -742,7 +742,7 @@ |
743 | 743 | Tor Block |
744 | 744 | |
745 | 745 | Translate |
746 | | -optional = translate-page-paging-links |
| 746 | +optional = translate-page-paging-links, translate-languagestats-groups |
747 | 747 | |
748 | 748 | Trusted XFF |
749 | 749 | |
Index: trunk/extensions/Translate/Translate.php |
— | — | @@ -35,11 +35,13 @@ |
36 | 36 | $wgSpecialPages['Magic'] = 'SpecialMagic'; |
37 | 37 | $wgSpecialPages['TranslationChanges'] = 'SpecialTranslationChanges'; |
38 | 38 | $wgSpecialPages['TranslationStats'] = 'SpecialTranslationStats'; |
| 39 | +$wgSpecialPages['LanguageStats'] = 'SpecialLanguageStats'; |
39 | 40 | $wgSpecialPageGroups['Magic'] = 'wiki'; |
40 | 41 | $wgSpecialPageGroups['Translate'] = 'wiki'; |
41 | 42 | $wgSpecialPageGroups['Translations'] = 'pages'; |
42 | 43 | $wgSpecialPageGroups['TranslationChanges'] = 'changes'; |
43 | 44 | $wgSpecialPageGroups['TranslationStats'] = 'wiki'; |
| 45 | +$wgSpecialPageGroups['LanguageStats'] = 'wiki'; |
44 | 46 | |
45 | 47 | $wgHooks['EditPage::showEditForm:initial'][] = 'TranslateEditAddons::addTools'; |
46 | 48 | $wgHooks['OutputPageBeforeHTML'][] = 'TranslateEditAddons::addNavigation'; |
Index: trunk/extensions/Translate/SpecialLanguageStats.php |
— | — | @@ -0,0 +1,212 @@ |
| 2 | +<?php
|
| 3 | +if ( !defined( 'MEDIAWIKI' ) ) die();
|
| 4 | +/**
|
| 5 | + * Implements a special page which givens translation statistics for a given set
|
| 6 | + * of message groups. Message group names can be entered (pipe separated) into
|
| 7 | + * the form, or added as a parameter in the URL.
|
| 8 | + *
|
| 9 | + * Some of the code is based on the statistics code in phase3/maintenance/language
|
| 10 | + *
|
| 11 | + * @author Siebrand Mazeland
|
| 12 | + * @copyright Copyright © 2008 Siebrand Mazeland
|
| 13 | + * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
|
| 14 | + */
|
| 15 | +
|
| 16 | +#class SpecialLanguageStats extends IncludableSpecialPage {
|
| 17 | +class SpecialLanguageStats extends UnlistedSpecialPage {
|
| 18 | + function __construct() {
|
| 19 | + parent::__construct( 'LanguageStats' );
|
| 20 | + }
|
| 21 | +
|
| 22 | + function execute( $par ) {
|
| 23 | + global $wgRequest, $wgOut;
|
| 24 | +
|
| 25 | + wfLoadExtensionMessages( 'Translate' );
|
| 26 | +
|
| 27 | + $this->setHeaders();
|
| 28 | + $this->outputHeader();
|
| 29 | +
|
| 30 | + if( !$this->including() ) {
|
| 31 | + $wgOut->addHTML( $this->languageForm( $par ) );
|
| 32 | + }
|
| 33 | +
|
| 34 | + $out = '';
|
| 35 | +
|
| 36 | + #if( $this->including() ) {
|
| 37 | +# if( isset( Language::getLanguageNames( true ) ) ) {
|
| 38 | + if( 1 ) {
|
| 39 | + $out .= $this->getGroupStats( $par );
|
| 40 | + } else {
|
| 41 | + $wgOut->addWikiMsg( 'translate-page-no-such-language' );
|
| 42 | + }
|
| 43 | + #}
|
| 44 | + $wgOut->addHTML( $out );
|
| 45 | + }
|
| 46 | +
|
| 47 | + /**
|
| 48 | + * HTML for the top form
|
| 49 | + * @param integer $code A language code (default empty, example: 'en').
|
| 50 | + */
|
| 51 | + function languageForm( $code = '' ) {
|
| 52 | + global $wgScript;
|
| 53 | + $t = $this->getTitle();
|
| 54 | +
|
| 55 | + $out = Xml::openElement( 'div', array( 'class' => 'languagecode' ) );
|
| 56 | + $out .= Xml::openElement( 'form', array( 'method' => 'get', 'action' => $wgScript ) );
|
| 57 | + $out .= Xml::hidden( 'title', $t->getPrefixedText() );
|
| 58 | + $out .= Xml::openElement( 'fieldset' );
|
| 59 | + $out .= Xml::element( 'legend', null, wfMsg( 'translate-language-code' ) );
|
| 60 | + $out .= Xml::openElement( 'table', array( 'id' => 'langcodeselect', 'class' => 'allpages' ) );
|
| 61 | + $out .= "<tr>
|
| 62 | + <td class='mw-label'>" .
|
| 63 | + Xml::label( wfMsg( 'translate-language-code-field-name' ), 'code' ) .
|
| 64 | + "</td>
|
| 65 | + <td class='mw-input'>" .
|
| 66 | + Xml::input( 'code', 30, str_replace('_',' ',$code), array( 'id' => 'code' ) ) .
|
| 67 | + "</td>
|
| 68 | + <td class='mw-input'>" .
|
| 69 | + Xml::submitButton( wfMsg( 'allpagessubmit' ) ) .
|
| 70 | + "</td>
|
| 71 | + </tr>";
|
| 72 | + $out .= Xml::closeElement( 'table' );
|
| 73 | + $out .= Xml::closeElement( 'fieldset' );
|
| 74 | + $out .= Xml::closeElement( 'form' );
|
| 75 | + $out .= Xml::closeElement( 'div' );
|
| 76 | + return $out;
|
| 77 | + }
|
| 78 | +
|
| 79 | + # Statistics table heading
|
| 80 | + function heading() {
|
| 81 | + return '<table class="sortable wikitable" border="2" cellpadding="4" cellspacing="0" style="background-color: #F9F9F9; border: 1px #AAAAAA solid; border-collapse: collapse; clear:both;" width="100%">' . "\n";
|
| 82 | + }
|
| 83 | +
|
| 84 | + # Statistics table footer
|
| 85 | + function footer() {
|
| 86 | + return "</table>\n";
|
| 87 | + }
|
| 88 | +
|
| 89 | + # Statistics table row start
|
| 90 | + function blockstart() {
|
| 91 | + return "\t<tr>\n";
|
| 92 | + }
|
| 93 | +
|
| 94 | + # Statistics table row end
|
| 95 | + function blockend() {
|
| 96 | + return "\t</tr>\n";
|
| 97 | + }
|
| 98 | +
|
| 99 | + # Statistics table element (heading or regular cell)
|
| 100 | + function element( $in, $heading = false, $bgcolor = '' ) {
|
| 101 | + if( $heading ) {
|
| 102 | + $element = '<th>' . $in . '</th>';
|
| 103 | + } else if ( $bgcolor ) {
|
| 104 | + $element = '<td bgcolor="#' . $bgcolor . '">' . $in . '</td>';
|
| 105 | + } else {
|
| 106 | + $element = '<td>' . $in . '</td>';
|
| 107 | + }
|
| 108 | + return "\t\t" . $element . "\n";
|
| 109 | + }
|
| 110 | +
|
| 111 | + function getGroups() {
|
| 112 | + $groups = wfMsgForContent( 'translate-languagestats-groups' );
|
| 113 | +
|
| 114 | + if( $groups ) {
|
| 115 | + // Make the group names clean
|
| 116 | + // Should contain one valid group name per line
|
| 117 | + // All invalid group names should be ignored
|
| 118 | + // Return all group names if there are no valid group names at all
|
| 119 | + // FIXME: implement the above here
|
| 120 | + $cleanGroups = '';
|
| 121 | +
|
| 122 | + if( $cleanGroups ) {
|
| 123 | + return $cleanGroups;
|
| 124 | + }
|
| 125 | + }
|
| 126 | +
|
| 127 | + return MessageGroups::singleton()->getGroups();
|
| 128 | + }
|
| 129 | +
|
| 130 | + function getBackgroundColour( $subset, $total, $fuzzy = false ) {
|
| 131 | + $v = @round(255 * $subset / $total);
|
| 132 | +
|
| 133 | + if ( $fuzzy ) {
|
| 134 | + # weight fuzzy with factor 20
|
| 135 | + $v = $v * 20;
|
| 136 | + if( $v > 255 ) $v = 255;
|
| 137 | + $v = 255 - $v;
|
| 138 | + }
|
| 139 | +
|
| 140 | + if ( $v < 128 ) {
|
| 141 | + # Red to Yellow
|
| 142 | + $red = 'FF';
|
| 143 | + $green = sprintf( '%02X', 2 * $v );
|
| 144 | + } else {
|
| 145 | + # Yellow to Green
|
| 146 | + $red = sprintf('%02X', 2 * ( 255 - $v ) );
|
| 147 | + $green = 'FF';
|
| 148 | + }
|
| 149 | + $blue = '00';
|
| 150 | +
|
| 151 | + return $red . $green . $blue;
|
| 152 | + }
|
| 153 | +
|
| 154 | + // copied and adaped from groupStatistics.php by Nikerabbit
|
| 155 | + function getGroupStats( $code ) {
|
| 156 | + global $wgUser;
|
| 157 | +
|
| 158 | + $out = '';
|
| 159 | +
|
| 160 | + $out .= '<!-- ' . $code . " -->\n";
|
| 161 | + $out .= '<!-- ' . TranslateUtils::getLanguageName( $code, false ) . " -->\n";
|
| 162 | +
|
| 163 | + # Create header
|
| 164 | + $out .= $this->heading();
|
| 165 | + $out .= $this->blockstart();
|
| 166 | + $out .= $this->element( wfMsg( 'translate-page-group', true ) );
|
| 167 | + $out .= $this->element( wfMsg( 'translate-percentage-complete', true ) );
|
| 168 | + $out .= $this->element( wfMsg( 'translate-percentage-fuzzy', true ) );
|
| 169 | + $out .= $this->blockend();
|
| 170 | +
|
| 171 | + # fetch groups stats have to be displayed for
|
| 172 | + $groups = $this->getGroups();
|
| 173 | +
|
| 174 | + # Get statistics for the message groups
|
| 175 | + foreach ( $groups as $g ) {
|
| 176 | + $out .= $this->blockstart();
|
| 177 | +
|
| 178 | + $translateTitle = SpecialPage::getTitleFor( 'Translate' );
|
| 179 | + $pageParameters = "group=" . $g->getId() . "&language=" . $code;
|
| 180 | + $translateGroupLink = $wgUser->getSkin()->makeKnownLinkObj( $translateTitle, $g->getLabel(), $pageParameters );
|
| 181 | +
|
| 182 | + $out .= $this->element( $translateGroupLink );
|
| 183 | +
|
| 184 | + // Initialise messages
|
| 185 | + $collection = $g->initCollection( $code );
|
| 186 | + $collection->filter( 'optional' );
|
| 187 | + // Store the count of real messages for later calculation.
|
| 188 | + $total = count( $collection );
|
| 189 | +
|
| 190 | + // Fill translations in for counting
|
| 191 | + $g->fillCollection( $collection );
|
| 192 | +
|
| 193 | + // Count fuzzy first
|
| 194 | + $collection->filter( 'fuzzy' );
|
| 195 | + $fuzzy = $total - count( $collection );
|
| 196 | +
|
| 197 | + // Count the completion percent
|
| 198 | + $collection->filter( 'translated', false );
|
| 199 | + $translated = count( $collection );
|
| 200 | +
|
| 201 | + $translatedPercentage = @sprintf( '%.2f%%', 100 * $translated / $total );
|
| 202 | + $fuzzyPercentage = @sprintf( '%.2f%%', 100 * $fuzzy / $total );
|
| 203 | +
|
| 204 | + $out .= $this->element( $translatedPercentage, false, $this->getBackgroundColour( $translated, $total ) );
|
| 205 | + $out .= $this->element( $fuzzyPercentage, false, $this->getBackgroundColour( $fuzzy, $total, true ) );
|
| 206 | + $out .= $this->blockend();
|
| 207 | + }
|
| 208 | +
|
| 209 | + $out .= $this->footer();
|
| 210 | +
|
| 211 | + return $out;
|
| 212 | + }
|
| 213 | +}
|
Index: trunk/extensions/Translate/_autoload.php |
— | — | @@ -36,6 +36,7 @@ |
37 | 37 | $wgAutoloadClasses['SpecialTranslationChanges'] = $dir . 'SpecialTranslationChanges.php'; |
38 | 38 | $wgAutoloadClasses['SpecialTranslationStats'] = $dir . 'Stats.php'; |
39 | 39 | $wgAutoloadClasses['SpecialTranslations'] = $dir . 'SpecialTranslations.php'; |
| 40 | +$wgAutoloadClasses['SpecialLanguageStats'] = $dir . 'SpecialLanguageStats.php'; |
40 | 41 | |
41 | 42 | $wgAutoloadClasses['SimpleFormatReader'] = $dir . 'ffs/Simple.php'; |
42 | 43 | $wgAutoloadClasses['SimpleFormatWriter'] = $dir . 'ffs/Simple.php'; |
Index: trunk/extensions/Translate/README |
— | — | @@ -33,6 +33,7 @@ |
34 | 34 | </code> |
35 | 35 | |
36 | 36 | == Changes in version 10 == |
| 37 | +* 2008-11-30:1 added Special:LanguageStats for real-time translation statistics |
37 | 38 | * 2008-11-24:2 fallback messages in the edit screen now have an edit link |
38 | 39 | * 2008-11-24:1 added Special:Translations to show all translations of a message |
39 | 40 | * 2008-09-09:1 add message checks for Mantis |
Index: trunk/extensions/Translate/Translate.i18n.php |
— | — | @@ -175,6 +175,17 @@ |
176 | 176 | 'translate-translations-messagename' => 'Message:', |
177 | 177 | 'translate-translations-including-no-param' => 'Please specify a valid page name in the subpage parameter', |
178 | 178 | |
| 179 | + # Special:LanguageStats |
| 180 | + 'languagestats' => 'Language statistics', |
| 181 | + 'languagestats-summary' => 'This page shows translation statistics for all ([[MediaWiki:Translate-languagestats-groups|configured]]) message groups for a language.', |
| 182 | + 'translate-language-code' => 'Language code', |
| 183 | + 'translate-language-code-field-name' => 'Language code:', |
| 184 | + 'translate-language' => 'Language', |
| 185 | + 'translate-percentage-complete' => 'Completion', |
| 186 | + 'translate-percentage-fuzzy' => 'Outdated', |
| 187 | + 'translate-languagestats-groups' => ' # Add message group IDs, one per line to restrict the message groups that |
| 188 | + # are shown on Special:LanguageStats. Non-existing message group IDs will |
| 189 | + # be ignored.', # do not duplicate this message to other languages |
179 | 190 | ); |
180 | 191 | |
181 | 192 | /** Message documentation (Message documentation) |
— | — | @@ -1111,14 +1122,14 @@ |
1112 | 1123 | 'translate-magic-pagename' => 'Troidigezh Mediawiki astennet', |
1113 | 1124 | 'translate-magic-help' => "Gallout a rit treiñ aliasoù ar pajennoù dibar, ar gerioù burzhudus, anvioù an etrefasoù hag anvioù an esaouennoù anv. |
1114 | 1125 | |
1115 | | -Aliasoù ar pajennoù dibar hag ar gerioù burzhudus a c'hall kaout meur a droidigezh. |
1116 | | -Dispartiet eo an troidigezhioù dre skejoù (,). |
| 1126 | +Aliasoù ar pajennoù dibar hag ar gerioù burzhudus a c'hall kaout meur a droidigezh. |
| 1127 | +Dispartiet eo an troidigezhioù dre skejoù (,). |
1117 | 1128 | N'hall anvioù an etrefasoù ha re an esaouennoù anv nemet kaout un droidigezh hepken. |
1118 | 1129 | |
1119 | | -E troidigezhioù an esaouennoù anv eo dibar <tt>$1 talk</tt>. Erlec'hiet eo <tt>$1</tt> gant anv al lec'hienn (da skouer <tt>{{SITENAME}} talk</tt>). |
| 1130 | +E troidigezhioù an esaouennoù anv eo dibar <tt>$1 talk</tt>. Erlec'hiet eo <tt>$1</tt> gant anv al lec'hienn (da skouer <tt>{{SITENAME}} talk</tt>). |
1120 | 1131 | Ma n'haller ket sevel lavarennoù reizh en ho yezh hep kemmañ anv al lec'hienn, kit e darempred gant un diorroer. |
1121 | 1132 | |
1122 | | -Ret eo deoc'h bezañ ezel eus ur strollad troerien evit enrollañ ar c'hemmoù. |
| 1133 | +Ret eo deoc'h bezañ ezel eus ur strollad troerien evit enrollañ ar c'hemmoù. |
1123 | 1134 | Ne vo ket enrollet ar c'hemmoù e-keit ha ne vo ket bet pouezet war ar bouton dindan.", |
1124 | 1135 | 'translate-magic-module' => 'Modulenn :', |
1125 | 1136 | 'translate-magic-submit' => 'Mont', |
— | — | @@ -1988,7 +1999,7 @@ |
1989 | 2000 | En nomspacaj tradukoj <tt>$1 diskuto</tt> estas speciala. <tt>$1</tt> estas anstataŭigita de la nomo de la retejo (ekz-e <tt>{{SITENAME}} diskuto</tt>. |
1990 | 2001 | Se ne eblas en via lingvo formi validan esprimon sen ŝanĝi la nomon de la retejo, bonvolu kontakti programisto. |
1991 | 2002 | |
1992 | | -Vi devas esti en la grupo de tradukantoj por konservi ŝanĝojn. |
| 2003 | +Vi devas esti en la grupo de tradukantoj por konservi ŝanĝojn. |
1993 | 2004 | Ŝanĝoj ne estos konservataj, ĝis vi alklakis la jenan butonon Konservi.', |
1994 | 2005 | 'translate-magic-module' => 'Modjulo:', |
1995 | 2006 | 'translate-magic-submit' => 'Montri', |
— | — | @@ -2012,7 +2023,7 @@ |
2013 | 2024 | <strong><nowiki>$1</nowiki></strong>', |
2014 | 2025 | 'translate-checks-balance' => 'Estas nepara nombro de {{PLURAL:$2|krampo|krampoj}}: <strong>$1</strong>', |
2015 | 2026 | 'translate-checks-links' => '{{PLURAL:$2|Jenaj ligiloj estas problemaj|Jena ligilo estas problema}}: <strong>$1</strong>', |
2016 | | - 'translate-checks-xhtml' => 'Bonvolu anstataŭigi {{PLURAL:$2|jena etikedo|jenajn etikedojn}} per la korektaj: |
| 2027 | + 'translate-checks-xhtml' => 'Bonvolu anstataŭigi {{PLURAL:$2|jena etikedo|jenajn etikedojn}} per la korektaj: |
2017 | 2028 | <strong>$1</strong>', |
2018 | 2029 | 'translate-checks-plural' => 'Difino uzas <nowiki>{{PLURAL:}}</nowiki>, sed traduko ne.', |
2019 | 2030 | 'translate-checks-pagename' => 'Nomspaco ŝanĝita de difino', |
— | — | @@ -2112,7 +2123,7 @@ |
2113 | 2124 | 'translate-magic-pagename' => 'Traducción extendida de MediaWiki', |
2114 | 2125 | 'translate-magic-help' => 'Puedes traducir los nombres de las páginas especiales, las palabras mágicas, los nombres de pieles y los de los espacios de nombre |
2115 | 2126 | |
2116 | | -Los nombres de las páginas especiales y las palabras mágicas pueden tener varias traducciones, que se separan por comas (,). |
| 2127 | +Los nombres de las páginas especiales y las palabras mágicas pueden tener varias traducciones, que se separan por comas (,). |
2117 | 2128 | los nombres de pieles y espacios de nombre sólo pueden tener una traducción |
2118 | 2129 | |
2119 | 2130 | En las traducciones de espacios de nombre <tt>$1 talk</tt> es especial. <tt>$1</tt> se reemplaza por el nombre del sitio (por ejemplo <tt>{{SITENAME}} talk</tt>). Si en tu idioma no es posible formar una expresión válidad sin cambiar el nombre del sitio, contacta con un desarrollador, por favor. |
— | — | @@ -4564,14 +4575,14 @@ |
4565 | 4576 | 'translate-magic-help' => "អ្នកអាចប្រែសំរួលឈ្មោះផ្សេងៗទៀតនៃទំព័រពិសេស ពាក្យទិព្វ ឈ្មោះសំបក និងឈ្មោះនៃលំហឈ្មោះ។ |
4566 | 4577 | |
4567 | 4578 | |
4568 | | -ឈ្មោះផ្សេងៗទៀតនៃទំព័រពិសេសនិងពាក្យទិព្វអាចមានបទប្រែសំរួលច្រើន។ |
| 4579 | +ឈ្មោះផ្សេងៗទៀតនៃទំព័រពិសេសនិងពាក្យទិព្វអាចមានបទប្រែសំរួលច្រើន។ |
4569 | 4580 | |
4570 | 4581 | ការបកប្រែជាច្រើននោះត្រូវខ័ណ្ឌដោយសញ្ញាក្បៀស(,)។ |
4571 | 4582 | |
4572 | 4583 | ឈ្មោះសំបកនិងលំហឈ្មោះអាចមានត្រឹមតែមួយបទប្រែសំរួលប៉ុណ្ណោះ ។ |
4573 | 4584 | |
4574 | 4585 | |
4575 | | -ក្នុងការបកប្រែលំហឈ្មោះ <tt>ការពិភាក្សាអំពី$1</tt> ជាករណីពិសេស។ <tt>$1</tt> ត្រូវបានជំនួសដោយឈ្មោះវិបសាយ(ឧទាហរណ៍៖ <tt>ការពិភាក្សាអំពី{{SITENAME}}</tt>)។ |
| 4586 | +ក្នុងការបកប្រែលំហឈ្មោះ <tt>ការពិភាក្សាអំពី$1</tt> ជាករណីពិសេស។ <tt>$1</tt> ត្រូវបានជំនួសដោយឈ្មោះវិបសាយ(ឧទាហរណ៍៖ <tt>ការពិភាក្សាអំពី{{SITENAME}}</tt>)។ |
4576 | 4587 | |
4577 | 4588 | ប្រសិនបើភាសារបស់អ្នកមិនបានបង្ហាញត្រឹមត្រូវដោយមិនប្តូរឈ្មោះវិបសាយទេ សូមទាក់ទងអ្នកអភិវឌ្ឍន៍(អ្នករចនាវិបសាយ)។ |
4578 | 4589 | |
— | — | @@ -4594,16 +4605,16 @@ |
4595 | 4606 | 'translationchanges' => 'បំលាស់ប្តូរនៃការបកប្រែ', |
4596 | 4607 | 'translationchanges-export' => 'នាំចេញ', |
4597 | 4608 | 'translationchanges-change' => '$1:$2 ដោយ $3', |
4598 | | - 'translate-checks-parameters' => '{{PLURAL:$2|ប៉ារ៉ាម៉ែត្រ|ប៉ារ៉ាម៉ែត្រ}}ខាងក្រោមនេះមិនត្រូវបានគេប្រើទេ៖ |
| 4609 | + 'translate-checks-parameters' => '{{PLURAL:$2|ប៉ារ៉ាម៉ែត្រ|ប៉ារ៉ាម៉ែត្រ}}ខាងក្រោមនេះមិនត្រូវបានគេប្រើទេ៖ |
4599 | 4610 | |
4600 | 4611 | <strong><nowiki>$1</nowiki></strong>', |
4601 | 4612 | 'translate-checks-parameters-unknown' => 'ប៉ារ៉ាម៉ែត្រចំនួន$2ខាងក្រោមនេះមិនត្រូវបានស្គាល់ទេ៖ |
4602 | 4613 | <strong><nowiki>$1</nowiki></strong>', |
4603 | | - 'translate-checks-balance' => 'មាន{{PLURAL:$2|វង់ក្រចក|វង់ក្រចក}}ដែលមិនមានគូ៖ |
| 4614 | + 'translate-checks-balance' => 'មាន{{PLURAL:$2|វង់ក្រចក|វង់ក្រចក}}ដែលមិនមានគូ៖ |
4604 | 4615 | |
4605 | 4616 | <strong><nowiki>$1</nowiki></strong>', |
4606 | 4617 | 'translate-checks-links' => '{{PLURAL:$2|តំនភ្ជាប់|តំនភ្ជាប់}}ខាងក្រោមនេះមានបញ្ហា៖ <strong><nowiki>$1</nowiki></strong>', |
4607 | | - 'translate-checks-xhtml' => 'សូមជំនួស$2ប្លាកខាងក្រោមដោយប្លាកដែលត្រឹមត្រូវ៖ |
| 4618 | + 'translate-checks-xhtml' => 'សូមជំនួស$2ប្លាកខាងក្រោមដោយប្លាកដែលត្រឹមត្រូវ៖ |
4608 | 4619 | |
4609 | 4620 | <strong><nowiki>$1</nowiki></strong>', |
4610 | 4621 | 'translate-checks-plural' => 'និយមន័យប្រើប្រាស់ <nowiki>{{PLURAL:}}</nowiki> ប៉ុន្តែបទប្រែសំរួលមិនមាន ។', |
— | — | @@ -4810,7 +4821,7 @@ |
4811 | 4822 | 'translate-tag-fuzzy-comment' => 'Dä ojinaal-Tex wood fum „[[User:$1|$1]]“ verändert met de Version $2.', |
4812 | 4823 | 'translate-tag-fuzzy-reason' => "Dä ojinaal-Tex wood fum „[[User:$1|$1]]“ verändert met de Version $2 fum MediaWiki, met dämm Kommentaa: ''$3''", |
4813 | 4824 | 'translate-sidebar-alltrans' => 'Ander Övversäzunge', |
4814 | | - 'translate-tag-noedit' => 'Die Sigg es en Övversäzongß_Sigg, die automattejj_op der neuste Shtant jebraat weed. |
| 4825 | + 'translate-tag-noedit' => 'Die Sigg es en Övversäzongß_Sigg, die automattejj_op der neuste Shtant jebraat weed. |
4815 | 4826 | Do kanns de [$1 Ojinaal-Sigg ändere] ov de [$2 Övversäzong op der neuste Shtand bränge].', |
4816 | 4827 | ); |
4817 | 4828 | |
— | — | @@ -4916,7 +4927,7 @@ |
4917 | 4928 | <strong><nowiki>$1</nowiki></strong>', |
4918 | 4929 | 'translate-checks-balance' => 'Et gëtt eng ongerued Zuel vu {{PLURAL:$2|Klammere|Klammere}} benotzt: |
4919 | 4930 | <strong><nowiki>$1</nowiki></strong>', |
4920 | | - 'translate-checks-links' => '{{PLURAL:$2|Dëse Link ass|Dës Linke si}} problematesch: |
| 4931 | + 'translate-checks-links' => '{{PLURAL:$2|Dëse Link ass|Dës Linke si}} problematesch: |
4921 | 4932 | <strong><nowiki>$1</nowiki></strong>', |
4922 | 4933 | 'translate-checks-xhtml' => 'Ersetzt {{PLURAL:$2|dësen Tag|dës Tagen}} w.e.g. duerch déi korrekt: |
4923 | 4934 | <strong><nowiki>$1</nowiki></strong>', |
— | — | @@ -5044,7 +5055,7 @@ |
5045 | 5056 | |
5046 | 5057 | Specialiojo puslapio pavadinimo ir magiško žodžio vertimai gali būti keli. Vertimai yra skiriami kableliu (,). Apvalkalo ir vardų srities pavadinimas gali turėti tik vieną vertimą. |
5047 | 5058 | |
5048 | | -Vardų sričių vertimuose <tt>$1 aptarimas</tt> yra specialus. <tt>$1</tt> yra pakeičiamas svetainės pavadinimu (Pavyzdžiui <tt>{{SITENAME}} aptarimas</tt>). Jei nėra galimybės Jūsų kalboje suformuoti teisingos išraiškos su svetainės pavadinimo pakeitimu, prašome kreiptis į kūrėjus. |
| 5059 | +Vardų sričių vertimuose <tt>$1 aptarimas</tt> yra specialus. <tt>$1</tt> yra pakeičiamas svetainės pavadinimu (Pavyzdžiui <tt>{{SITENAME}} aptarimas</tt>). Jei nėra galimybės Jūsų kalboje suformuoti teisingos išraiškos su svetainės pavadinimo pakeitimu, prašome kreiptis į kūrėjus. |
5049 | 5060 | |
5050 | 5061 | Jūs turite priklausyti vertėjų grupei, kad galėtumėte išsaugoti pakeitimus. Pakeitimai nebus išsaugoti iki Jūs nuspausite išsaugojimo butoną apačioje.', |
5051 | 5062 | 'translate-magic-submit' => 'Išrinkti', |
— | — | @@ -5724,10 +5735,10 @@ |
5725 | 5736 | |
5726 | 5737 | Spesialsidenamn og magiske ord kan ha fleire omsetjingar. |
5727 | 5738 | Omsetjingane vert fråskilde med komma (,). |
5728 | | -Draktnamn og namnerom kan berre ha éi omsetjing. |
| 5739 | +Draktnamn og namnerom kan berre ha éi omsetjing. |
5729 | 5740 | |
5730 | 5741 | I namneromomsetjingane er <tt>$1 talk</tt> spesiell. <tt>$1</tt> vert erstatta med namnet på sida (til dømes <tt>{{SITENAME}}</tt>). |
5731 | | -Om det ikkje er mogeleg å få til eit gyldig uttrykk på ditt språk her utan å endre sidenamnet, kontakt ein utviklar. |
| 5742 | +Om det ikkje er mogeleg å få til eit gyldig uttrykk på ditt språk her utan å endre sidenamnet, kontakt ein utviklar. |
5732 | 5743 | |
5733 | 5744 | Du må vere i omsetjargruppar for å lagre endringar. |
5734 | 5745 | Endringar vert ikkje lagra før du klikker på lagre-knappen nedanfor.', |
— | — | @@ -6533,15 +6544,15 @@ |
6534 | 6545 | 'translate-magic-pagename' => 'Углублённый перевод MediaWiki', |
6535 | 6546 | 'translate-magic-help' => 'Вы можете переводить псевдонимы служебных страниц, магические слова, названия тем оформления и пространств имён. |
6536 | 6547 | |
6537 | | -При редактировании магических слов, желательно оставить английский вариант, иначе он не будет работать. |
| 6548 | +При редактировании магических слов, желательно оставить английский вариант, иначе он не будет работать. |
6538 | 6549 | Также стоит оставить первое значение (цифра 0 или 1) таким, какое оно есть. |
6539 | 6550 | |
6540 | | -Псевдонимы служебных страниц и магические слова могут иметь несколько вариантов перевода, они разделяются запятой (,). |
| 6551 | +Псевдонимы служебных страниц и магические слова могут иметь несколько вариантов перевода, они разделяются запятой (,). |
6541 | 6552 | Названия тем оформления и пространств имён могут иметь только один вариант перевода. |
6542 | 6553 | |
6543 | 6554 | В переводах пространств имён строка «Обсуждение $1» обрабатывается особо, «$1» будет заменено на имя сайта (например «Обсуждение {{SITENAME}}»). Свяжитесь с разработчиками, если подобная грамматическая конструкция неверна для вашего языка. |
6544 | 6555 | |
6545 | | -Чтобы сохранить изменения вы должны входить в группу переводчиков. |
| 6556 | +Чтобы сохранить изменения вы должны входить в группу переводчиков. |
6546 | 6557 | Изменения не будут сохранены, пока вы не нажмёте кнопку ниже.', |
6547 | 6558 | 'translate-magic-module' => 'Модуль:', |
6548 | 6559 | 'translate-magic-submit' => 'Вывести', |
— | — | @@ -6695,7 +6706,7 @@ |
6696 | 6707 | 'translate-checks-balance' => 'Nevyvážené počty {{PLURAL:$2|zátvoriek|zátvoriek}}: |
6697 | 6708 | <strong><nowiki>$1</nowiki></strong>', |
6698 | 6709 | 'translate-checks-links' => '{{PLURAL:$2|Nasledovný odkaz je problematický|Nasledovné odkazy sú problematické}}: <strong><nowiki>$1</nowiki></strong>', |
6699 | | - 'translate-checks-xhtml' => 'Prosím, nahraďte {{PLURAL:$2|nasledovnú značku správnou|nasledovné značky správnymi}}: |
| 6710 | + 'translate-checks-xhtml' => 'Prosím, nahraďte {{PLURAL:$2|nasledovnú značku správnou|nasledovné značky správnymi}}: |
6700 | 6711 | <strong><nowiki>$1</nowiki></strong>', |
6701 | 6712 | 'translate-checks-plural' => 'Definícia používa <nowiki>{{PLURAL:}}</nowiki>, ale preklad nie.', |
6702 | 6713 | 'translate-checks-pagename' => 'Oproti definícii sa zmenil menný priestor', |
— | — | @@ -7197,7 +7208,7 @@ |
7198 | 7209 | 'translate-ignored' => '(нодида гирифташуда)', |
7199 | 7210 | 'translate-edit-definition' => 'Таърифи пайғом', |
7200 | 7211 | 'translate-edit-contribute' => 'ҳиссагузорӣ', |
7201 | | - 'translate-edit-no-information' => "''Ин пайғом дорои тавзеҳот нест. |
| 7212 | + 'translate-edit-no-information' => "''Ин пайғом дорои тавзеҳот нест. |
7202 | 7213 | Агар шумо медонед ин пағом чигуна ё дар куҷо истифода мешавад, шумо метавонед бо изофа кардани тавзеҳот ба ин пайғом ба дигар тарҷумакунандагон кӯмак кунед.''", |
7203 | 7214 | 'translate-edit-information' => 'Иттилоот дар мавриди ин пайғом ($1)', |
7204 | 7215 | 'translate-edit-in-other-languages' => 'Ҳамин пайғом дар дигар забонҳо', |
— | — | @@ -7278,14 +7289,14 @@ |
7279 | 7290 | |
7280 | 7291 | ในตัวแปรพิเศษ กรุณาใส่คำแปลภาษาอังกฤษไปด้วยเช่นเดียวกัน มิฉะนั้นมันจะหยุดทำงาน กรุณาเว้นอันแรก (0 หรือ 1) อย่างที่มันเป็น |
7281 | 7292 | |
7282 | | -ชื่อหน้าพิเศษและตัวแปรพิเศษสามารถมีคำแปลได้หลายอย่าง |
7283 | | -คำแปลจะแยกโดยการใช้ จุลภาค (,) |
| 7293 | +ชื่อหน้าพิเศษและตัวแปรพิเศษสามารถมีคำแปลได้หลายอย่าง |
| 7294 | +คำแปลจะแยกโดยการใช้ จุลภาค (,) |
7284 | 7295 | ชื่อแบบหน้าตาและเนมสเปซสามารถมีคำแปลได้แค่คำเดียว |
7285 | 7296 | |
7286 | | -ในคำแปลชื่อเนมสเปซ <tt>คุยเรื่อง$1</tt> ต้องระวังเป็นพิเศษ <tt>$1</tt> จะถูกแทนที่โดยชื่อเว็บไซต์ (เช่น <tt>คุยเรื่อง{{SITENAME}}</tt>) |
| 7297 | +ในคำแปลชื่อเนมสเปซ <tt>คุยเรื่อง$1</tt> ต้องระวังเป็นพิเศษ <tt>$1</tt> จะถูกแทนที่โดยชื่อเว็บไซต์ (เช่น <tt>คุยเรื่อง{{SITENAME}}</tt>) |
7287 | 7298 | ถ้าไม่สามารถกระทำการดังกล่าวได้ในภาษาของคุณ, กรุณาติดต่อผู้ดูแลระบบขั้นสูง |
7288 | 7299 | |
7289 | | -คุณต้องอยู่ในกลุ่มคนแปลเพื่อที่จะบันทึกข้อมูลได้ |
| 7300 | +คุณต้องอยู่ในกลุ่มคนแปลเพื่อที่จะบันทึกข้อมูลได้ |
7290 | 7301 | ข้อมูลจะไม่ถูกบันทึกตราบใดที่คุณยังไม่กด "บันทึก"', |
7291 | 7302 | 'translate-magic-module' => 'โมดูล:', |
7292 | 7303 | 'translate-magic-submit' => 'ดึงข้อมูล', |
Index: trunk/extensions/Translate/Translate.alias.php |
— | — | @@ -16,6 +16,7 @@ |
17 | 17 | 'TranslationChanges' => array( 'TranslationChanges' ), |
18 | 18 | 'TranslationStats' => array( 'TranslationStats' ), |
19 | 19 | 'Translations' => array( 'Translations' ), |
| 20 | + 'LanguageStats' => array( 'LanguageStats' ), |
20 | 21 | ); |
21 | 22 | |
22 | 23 | /** Afrikaans (Afrikaans) */ |