Index: branches/wmf/1.18wmf1/extensions/MobileFrontend/FooterTemplate.php |
— | — | @@ -1,11 +1,11 @@ |
2 | 2 | <?php |
3 | 3 | |
4 | | -if( !defined( 'MEDIAWIKI' ) ) { |
| 4 | +if ( !defined( 'MEDIAWIKI' ) ) { |
5 | 5 | die( -1 ); |
6 | 6 | } |
7 | 7 | |
8 | 8 | class FooterTemplate extends MobileFrontendTemplate { |
9 | | - |
| 9 | + |
10 | 10 | public function getHTML() { |
11 | 11 | |
12 | 12 | $regularSite = $this->data['messages']['mobile-frontend-regular-site']; |
Index: branches/wmf/1.18wmf1/extensions/MobileFrontend/LeaveFeedbackTemplate.php |
— | — | @@ -1,11 +1,11 @@ |
2 | 2 | <?php |
3 | 3 | |
4 | | -if( !defined( 'MEDIAWIKI' ) ) { |
| 4 | +if ( !defined( 'MEDIAWIKI' ) ) { |
5 | 5 | die( -1 ); |
6 | 6 | } |
7 | 7 | |
8 | 8 | class LeaveFeedbackTemplate extends MobileFrontendTemplate { |
9 | | - |
| 9 | + |
10 | 10 | public function getHTML() { |
11 | 11 | |
12 | 12 | $leaveFeedbackHtml = <<<HTML |
Index: branches/wmf/1.18wmf1/extensions/MobileFrontend/ApplicationTemplate.php |
— | — | @@ -1,6 +1,6 @@ |
2 | 2 | <?php |
3 | 3 | |
4 | | -if( !defined( 'MEDIAWIKI' ) ) { |
| 4 | +if ( !defined( 'MEDIAWIKI' ) ) { |
5 | 5 | die( -1 ); |
6 | 6 | } |
7 | 7 | |
— | — | @@ -13,9 +13,16 @@ |
14 | 14 | } else { |
15 | 15 | $appleTouchIconTag = ''; |
16 | 16 | } |
17 | | - |
| 17 | + |
18 | 18 | $zeroRatedBanner = ( isset( $this->data['zeroRatedBanner'] ) ) ? str_replace( 'style="display:none;"', '', $this->data['zeroRatedBanner'] ) : ''; |
19 | 19 | |
| 20 | + if ( $zeroRatedBanner ) { |
| 21 | + if ( strstr( $zeroRatedBanner, 'id="zero-rated-banner"><span' ) ) { |
| 22 | + $dismissNotification = ( isset( $this->data['dismissNotification'] )) ? $this->data['dismissNotification'] : ''; |
| 23 | + $zeroRatedBanner = str_replace( 'id="zero-rated-banner"><span', 'id="zero-rated-banner"><span class="notify-close"><a id="dismiss-notification" title="' . $dismissNotification . '">×</a></span><span', $zeroRatedBanner ); |
| 24 | + } |
| 25 | + } |
| 26 | + |
20 | 27 | $betaPrefix = ( $this->data['isBetaGroupMember'] ) ? 'beta_' : ''; |
21 | 28 | |
22 | 29 | $noticeHtml = ( isset( $this->data['noticeHtml'] ) ) ? $this->data['noticeHtml'] : ''; |
Index: branches/wmf/1.18wmf1/extensions/MobileFrontend/DisableTemplate.php |
— | — | @@ -1,6 +1,6 @@ |
2 | 2 | <?php |
3 | 3 | |
4 | | -if( !defined( 'MEDIAWIKI' ) ) { |
| 4 | +if ( !defined( 'MEDIAWIKI' ) ) { |
5 | 5 | die( -1 ); |
6 | 6 | } |
7 | 7 | |
Index: branches/wmf/1.18wmf1/extensions/MobileFrontend/SearchTemplate.php |
— | — | @@ -1,11 +1,11 @@ |
2 | 2 | <?php |
3 | 3 | |
4 | | -if( !defined( 'MEDIAWIKI' ) ) { |
| 4 | +if ( !defined( 'MEDIAWIKI' ) ) { |
5 | 5 | die( -1 ); |
6 | 6 | } |
7 | 7 | |
8 | 8 | class SearchTemplate extends MobileFrontendTemplate { |
9 | | - |
| 9 | + |
10 | 10 | public function getHTML() { |
11 | 11 | |
12 | 12 | $searchField = htmlspecialchars( $this->data['searchField'] ); |
Index: branches/wmf/1.18wmf1/extensions/MobileFrontend/MobileFrontendTemplate.php |
— | — | @@ -1,6 +1,6 @@ |
2 | 2 | <?php |
3 | 3 | |
4 | | -if( !defined( 'MEDIAWIKI' ) ) { |
| 4 | +if ( !defined( 'MEDIAWIKI' ) ) { |
5 | 5 | die( -1 ); |
6 | 6 | } |
7 | 7 | |
— | — | @@ -29,7 +29,7 @@ |
30 | 30 | * @param $value |
31 | 31 | */ |
32 | 32 | public function setByArray( $options ) { |
33 | | - foreach ($options as $name => $value ) { |
| 33 | + foreach ( $options as $name => $value ) { |
34 | 34 | $this->set( $name, $value ); |
35 | 35 | } |
36 | 36 | } |
Index: branches/wmf/1.18wmf1/extensions/MobileFrontend/javascripts/beta_application.js |
— | — | @@ -133,4 +133,54 @@ |
134 | 134 | e.style.display = e.style.display == 'block' ? 'none' : 'block'; |
135 | 135 | } |
136 | 136 | } |
| 137 | +} |
| 138 | + |
| 139 | +function writeCookie( name, value, days ) { |
| 140 | + if ( days ) { |
| 141 | + var date = new Date(); |
| 142 | + date.setTime( date.getTime() + ( days * 24 * 60 * 60 *1000 ) ); |
| 143 | + var expires = '; expires=' + date.toGMTString(); |
| 144 | + } else { |
| 145 | + var expires = ''; |
| 146 | + } |
| 147 | + document.cookie = name + '=' + value + expires + '; path=/'; |
| 148 | +} |
| 149 | + |
| 150 | +function readCookie( name ) { |
| 151 | + var nameVA = name + '='; |
| 152 | + var ca = document.cookie.split( ';' ); |
| 153 | + for( var i=0; i < ca.length; i++ ) { |
| 154 | + var c = ca[i]; |
| 155 | + while ( c.charAt(0) === ' ' ) { |
| 156 | + c = c.substring( 1, c.length ); |
| 157 | + } |
| 158 | + if ( c.indexOf( nameVA ) == 0 ) { |
| 159 | + return c.substring( nameVA.length, c.length ); |
| 160 | + } |
| 161 | + } |
| 162 | + return null; |
| 163 | +} |
| 164 | + |
| 165 | +function removeCookie( name ) { |
| 166 | + writeCookie( name, '', -1 ); |
| 167 | + return null; |
| 168 | +} |
| 169 | + |
| 170 | +var dismissNotification = document.getElementById( 'dismiss-notification' ); |
| 171 | + |
| 172 | +if ( dismissNotification ) { |
| 173 | + var cookieNameZeroVisibility = 'zeroRatedBannerVisibility'; |
| 174 | + var zeroRatedBanner = document.getElementById( 'zero-rated-banner' ); |
| 175 | + var zeroRatedBannerVisibility = readCookie( cookieNameZeroVisibility ); |
| 176 | + |
| 177 | + if ( zeroRatedBannerVisibility === 'off' ) { |
| 178 | + zeroRatedBanner.style.display = 'none'; |
| 179 | + } |
| 180 | + |
| 181 | + dismissNotification.onclick = function() { |
| 182 | + if ( zeroRatedBanner ) { |
| 183 | + zeroRatedBanner.style.display = 'none'; |
| 184 | + writeCookie( cookieNameZeroVisibility, 'off', 1 ); |
| 185 | + } |
| 186 | + }; |
137 | 187 | } |
\ No newline at end of file |
Index: branches/wmf/1.18wmf1/extensions/MobileFrontend/javascripts/application.js |
— | — | @@ -122,4 +122,54 @@ |
123 | 123 | e.style.display = e.style.display == 'block' ? 'none' : 'block'; |
124 | 124 | } |
125 | 125 | } |
| 126 | +} |
| 127 | + |
| 128 | +function writeCookie( name, value, days ) { |
| 129 | + if ( days ) { |
| 130 | + var date = new Date(); |
| 131 | + date.setTime( date.getTime() + ( days * 24 * 60 * 60 *1000 ) ); |
| 132 | + var expires = '; expires=' + date.toGMTString(); |
| 133 | + } else { |
| 134 | + var expires = ''; |
| 135 | + } |
| 136 | + document.cookie = name + '=' + value + expires + '; path=/'; |
| 137 | +} |
| 138 | + |
| 139 | +function readCookie( name ) { |
| 140 | + var nameVA = name + '='; |
| 141 | + var ca = document.cookie.split( ';' ); |
| 142 | + for( var i=0; i < ca.length; i++ ) { |
| 143 | + var c = ca[i]; |
| 144 | + while ( c.charAt(0) === ' ' ) { |
| 145 | + c = c.substring( 1, c.length ); |
| 146 | + } |
| 147 | + if ( c.indexOf( nameVA ) == 0 ) { |
| 148 | + return c.substring( nameVA.length, c.length ); |
| 149 | + } |
| 150 | + } |
| 151 | + return null; |
| 152 | +} |
| 153 | + |
| 154 | +function removeCookie( name ) { |
| 155 | + writeCookie( name, '', -1 ); |
| 156 | + return null; |
| 157 | +} |
| 158 | + |
| 159 | +var dismissNotification = document.getElementById( 'dismiss-notification' ); |
| 160 | + |
| 161 | +if ( dismissNotification ) { |
| 162 | + var cookieNameZeroVisibility = 'zeroRatedBannerVisibility'; |
| 163 | + var zeroRatedBanner = document.getElementById( 'zero-rated-banner' ); |
| 164 | + var zeroRatedBannerVisibility = readCookie( cookieNameZeroVisibility ); |
| 165 | + |
| 166 | + if ( zeroRatedBannerVisibility === 'off' ) { |
| 167 | + zeroRatedBanner.style.display = 'none'; |
| 168 | + } |
| 169 | + |
| 170 | + dismissNotification.onclick = function() { |
| 171 | + if ( zeroRatedBanner ) { |
| 172 | + zeroRatedBanner.style.display = 'none'; |
| 173 | + writeCookie( cookieNameZeroVisibility, 'off', 1 ); |
| 174 | + } |
| 175 | + }; |
126 | 176 | } |
\ No newline at end of file |
Index: branches/wmf/1.18wmf1/extensions/MobileFrontend/MobileFrontend.php |
— | — | @@ -199,6 +199,7 @@ |
200 | 200 | 'mobile-frontend-password', |
201 | 201 | 'mobile-frontend-login', |
202 | 202 | 'mobile-frontend-placeholder', |
| 203 | + 'mobile-frontend-dismiss-notification', |
203 | 204 | ); |
204 | 205 | |
205 | 206 | public $itemsToRemove = array( |
— | — | @@ -378,7 +379,7 @@ |
379 | 380 | 'lang' => $wgLanguageCode, |
380 | 381 | ); |
381 | 382 | |
382 | | - foreach( $wgOut->getLanguageLinks() as $l ) { |
| 383 | + foreach ( $wgOut->getLanguageLinks() as $l ) { |
383 | 384 | $tmp = explode( ':', $l, 2 ); |
384 | 385 | $class = 'interwiki-' . $tmp[0]; |
385 | 386 | $lang = $tmp[0]; |
— | — | @@ -424,7 +425,7 @@ |
425 | 426 | wfProfileOut( __METHOD__ ); |
426 | 427 | return true; |
427 | 428 | } |
428 | | - |
| 429 | + |
429 | 430 | /** |
430 | 431 | * @param $parsedUrl wfParseUrl Array |
431 | 432 | * @return string |
— | — | @@ -471,7 +472,7 @@ |
472 | 473 | |
473 | 474 | $redirect = $this->parsePageRedirect( $parsedUrl ); |
474 | 475 | } |
475 | | - } else if ($out->getTitle()->isSpecial( 'Randompage' ) ) { |
| 476 | + } else if ( $out->getTitle()->isSpecial( 'Randompage' ) ) { |
476 | 477 | $xDevice = isset( $_SERVER['HTTP_X_DEVICE'] ) ? $_SERVER['HTTP_X_DEVICE'] : ''; |
477 | 478 | if ( $xDevice ) { |
478 | 479 | $parsedUrl = wfParseUrl( $redirect ); |
— | — | @@ -740,7 +741,7 @@ |
741 | 742 | if ( !empty( $_SERVER['HTTP_APPLICATION_VERSION'] ) && |
742 | 743 | strpos( $_SERVER['HTTP_APPLICATION_VERSION'], 'Wikipedia Mobile' ) !== false ) { |
743 | 744 | self::$hideSearchBox = true; |
744 | | - if (strpos( $_SERVER['HTTP_APPLICATION_VERSION'], 'Android' ) !== false ) { |
| 745 | + if ( strpos( $_SERVER['HTTP_APPLICATION_VERSION'], 'Android' ) !== false ) { |
745 | 746 | self::$hideLogo = true; |
746 | 747 | } |
747 | 748 | } |
— | — | @@ -1238,7 +1239,7 @@ |
1239 | 1240 | |
1240 | 1241 | $content = $this->mainPage->createElement( 'div' ); |
1241 | 1242 | $content->setAttribute( 'id', 'content' ); |
1242 | | - |
| 1243 | + |
1243 | 1244 | if ( $zeroLandingPage ) { |
1244 | 1245 | $content->appendChild( $zeroLandingPage ); |
1245 | 1246 | } |
— | — | @@ -1301,7 +1302,7 @@ |
1302 | 1303 | 'id' => 'wpName1', |
1303 | 1304 | 'tabindex' => '1', |
1304 | 1305 | 'size' => '20', |
1305 | | - 'required') ) . |
| 1306 | + 'required' ) ) . |
1306 | 1307 | Html::closeElement( 'td' ) . |
1307 | 1308 | Html::closeElement( 'tr' ) . |
1308 | 1309 | Html::openElement( 'tr' ) . |
— | — | @@ -1318,7 +1319,7 @@ |
1319 | 1320 | array( 'class' => 'loginPassword', |
1320 | 1321 | 'id' => 'wpPassword1', |
1321 | 1322 | 'tabindex' => '2', |
1322 | | - 'size' => '20') ) . |
| 1323 | + 'size' => '20' ) ) . |
1323 | 1324 | Html::closeElement( 'td' ) . |
1324 | 1325 | Html::closeElement( 'tr' ) . |
1325 | 1326 | Html::openElement( 'tr' ) . |
— | — | @@ -1329,7 +1330,7 @@ |
1330 | 1331 | array( 'class' => 'mw-submit' ) ) . |
1331 | 1332 | Html::input( 'wpLoginAttempt', self::$messages['mobile-frontend-login'], 'submit', |
1332 | 1333 | array( 'id' => 'wpLoginAttempt', |
1333 | | - 'tabindex' => '3') ) . |
| 1334 | + 'tabindex' => '3' ) ) . |
1334 | 1335 | Html::closeElement( 'td' ) . |
1335 | 1336 | Html::closeElement( 'tr' ) . |
1336 | 1337 | Html::closeElement( 'tbody' ) . |
— | — | @@ -1354,7 +1355,7 @@ |
1355 | 1356 | $dom->preserveWhiteSpace = false; |
1356 | 1357 | $dom->strictErrorChecking = false; |
1357 | 1358 | $dom->encoding = 'UTF-8'; |
1358 | | - $node = $dom->getElementsByTagName( $tagName )->item(0); |
| 1359 | + $node = $dom->getElementsByTagName( $tagName )->item( 0 ); |
1359 | 1360 | wfProfileOut( __METHOD__ ); |
1360 | 1361 | return $node; |
1361 | 1362 | } |
— | — | @@ -1378,7 +1379,7 @@ |
1379 | 1380 | $itemToRemoveRecords = $this->parseItemsToRemove(); |
1380 | 1381 | |
1381 | 1382 | $zeroRatedBannerElement = $this->doc->getElementById( 'zero-rated-banner' ); |
1382 | | - |
| 1383 | + |
1383 | 1384 | if ( !$zeroRatedBannerElement ) { |
1384 | 1385 | $zeroRatedBannerElement = $this->doc->getElementById( 'zero-rated-banner-red' ); |
1385 | 1386 | } |
— | — | @@ -1395,7 +1396,7 @@ |
1396 | 1397 | self::$logoutHtml = $this->doc->saveXML( $ptLogoutLink, LIBXML_NOEMPTYTAG ); |
1397 | 1398 | } |
1398 | 1399 | $ptAnonLogin = $this->doc->getElementById( 'pt-anonlogin' ); |
1399 | | - |
| 1400 | + |
1400 | 1401 | if ( !$ptAnonLogin ) { |
1401 | 1402 | $ptAnonLogin = $this->doc->getElementById( 'pt-login' ); |
1402 | 1403 | } |
— | — | @@ -1448,7 +1449,7 @@ |
1449 | 1450 | $itemToRemoveRecords['CLASS'][] = "thumbcaption"; |
1450 | 1451 | $itemToRemoveRecords['CLASS'][] = "gallery"; |
1451 | 1452 | } |
1452 | | - |
| 1453 | + |
1453 | 1454 | $tagToRemoveNodeIdAttributeValues = array( 'zero-language-search' ); |
1454 | 1455 | |
1455 | 1456 | $domElemsToRemove = array(); |
— | — | @@ -1554,7 +1555,7 @@ |
1555 | 1556 | $contentHtml = preg_replace( '#</?' . $element . '[^>]*>#is', '', $contentHtml ); |
1556 | 1557 | } |
1557 | 1558 | |
1558 | | - //Wml for searching |
| 1559 | + // Wml for searching |
1559 | 1560 | $searchWml = '<p><input emptyok="true" format="*M" type="text" name="search" value="" size="16" />' . |
1560 | 1561 | '<do type="accept" label="' . self::$messages['mobile-frontend-search-submit'] . '">' . |
1561 | 1562 | '<go href="' . $wgScript . '?title=Special%3ASearch&search=$(search)"></go></do></p>'; |
— | — | @@ -1676,6 +1677,7 @@ |
1677 | 1678 | 'dir' => self::$dir, |
1678 | 1679 | 'code' => self::$code, |
1679 | 1680 | 'placeholder' => self::$messages['mobile-frontend-placeholder'], |
| 1681 | + 'dismissNotification' => self::$messages['mobile-frontend-dismiss-notification'], |
1680 | 1682 | 'wgAppleTouchIcon' => $wgAppleTouchIcon, |
1681 | 1683 | 'isBetaGroupMember' => self::$isBetaGroupMember, |
1682 | 1684 | 'device' => self::$device, |
— | — | @@ -1695,7 +1697,7 @@ |
1696 | 1698 | $output = Html::openElement( 'select', |
1697 | 1699 | array( 'id' => 'languageselection', |
1698 | 1700 | 'onchange' => 'javascript:navigateToLanguageSelection();' ) ); |
1699 | | - foreach (self::$languageUrls as $languageUrl) { |
| 1701 | + foreach ( self::$languageUrls as $languageUrl ) { |
1700 | 1702 | if ( $languageUrl['lang'] == $wgLanguageCode ) { |
1701 | 1703 | $output .= Html::element( 'option', |
1702 | 1704 | array( 'value' => $languageUrl['href'], 'selected' => 'selected' ), |
Index: branches/wmf/1.18wmf1/extensions/MobileFrontend/tests/DeviceDetectionTest.php |
— | — | @@ -4,7 +4,7 @@ |
5 | 5 | * @group MobileFrontend |
6 | 6 | */ |
7 | 7 | class DeviceDetectionTest extends MediaWikiTestCase { |
8 | | - |
| 8 | + |
9 | 9 | /** |
10 | 10 | * @dataProvider provideTestFormatName |
11 | 11 | */ |
Index: branches/wmf/1.18wmf1/extensions/MobileFrontend/ApplicationWmlTemplate.php |
— | — | @@ -1,11 +1,11 @@ |
2 | 2 | <?php |
3 | 3 | |
4 | | -if( !defined( 'MEDIAWIKI' ) ) { |
| 4 | +if ( !defined( 'MEDIAWIKI' ) ) { |
5 | 5 | die( -1 ); |
6 | 6 | } |
7 | 7 | |
8 | 8 | class ApplicationWmlTemplate extends MobileFrontendTemplate { |
9 | | - |
| 9 | + |
10 | 10 | public function getHTML() { |
11 | 11 | $mainPageUrl = $this->data['mainPageUrl']; |
12 | 12 | $randomPageUrl = $this->data['randomPageUrl']; |
— | — | @@ -14,7 +14,7 @@ |
15 | 15 | |
16 | 16 | $applicationHtml = <<<HTML |
17 | 17 | <?xml version='1.0' encoding='utf-8' ?> |
18 | | - <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN" |
| 18 | + <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN" |
19 | 19 | "http://www.wapforum.org/DTD/wml13.dtd"> |
20 | 20 | <wml xml:lang="{$code}" dir="{$dir}"> |
21 | 21 | <template> |
Index: branches/wmf/1.18wmf1/extensions/MobileFrontend/MobileFrontend.i18n.php |
— | — | @@ -73,6 +73,7 @@ |
74 | 74 | 'mobile-frontend-password' => 'Password:', |
75 | 75 | 'mobile-frontend-login' => 'Log in', |
76 | 76 | 'mobile-frontend-placeholder' => 'Type your search here...', |
| 77 | + 'mobile-frontend-dismiss-notification' => 'dismiss this notification', |
77 | 78 | ); |
78 | 79 | |
79 | 80 | /** Message documentation (Message documentation) |
— | — | @@ -107,6 +108,7 @@ |
108 | 109 | 'mobile-frontend-login' => 'Button text for login in Wikimedia mobile user interface. |
109 | 110 | {{Identical|Log in}}', |
110 | 111 | 'mobile-frontend-placeholder' => 'Phrase used to prompt user to use search interface for mobile full screen search', |
| 112 | + 'mobile-frontend-dismiss-notification' => 'Phrase used to dismiss the top banner notification', |
111 | 113 | ); |
112 | 114 | |
113 | 115 | /** Moroccan Spoken Arabic (Maġribi) */ |
— | — | @@ -3060,16 +3062,16 @@ |
3061 | 3063 | 'mobile-frontend-wml-continue' => '続行 ...', |
3062 | 3064 | 'mobile-frontend-wml-back' => '戻る ...', |
3063 | 3065 | 'mobile-frontend-view' => 'モバイルビュー', |
3064 | | - 'mobile-frontend-opt-in-message' => '新しい携帯機器フロントエンドのオプトイン試用に参加しますか?', |
| 3066 | + 'mobile-frontend-opt-in-message' => '携帯機器版ベータテストに参加しますか?', |
3065 | 3067 | 'mobile-frontend-opt-in-yes-button' => 'はい', |
3066 | 3068 | 'mobile-frontend-opt-in-no-button' => 'いいえ', |
3067 | | - 'mobile-frontend-opt-in-title' => '試用へのオプトイン', |
3068 | | - 'mobile-frontend-opt-in-explain' => 'これにより試用を始めることができます', |
3069 | | - 'mobile-frontend-opt-out-message' => '新しい携帯機器フロントエンドのオプトイン試用から離脱しますか?', |
| 3069 | + 'mobile-frontend-opt-in-title' => '携帯機器版ベータテストへのオプトイン', |
| 3070 | + 'mobile-frontend-opt-in-explain' => 'ベータテストへ参加することにより、実験的機能にアクセスすることができるようになります。ただし、バグや問題に遭遇する危険性が伴います。', |
| 3071 | + 'mobile-frontend-opt-out-message' => '携帯機器版ベータテストから離脱しますか?', |
3070 | 3072 | 'mobile-frontend-opt-out-yes-button' => 'はい', |
3071 | 3073 | 'mobile-frontend-opt-out-no-button' => 'いいえ', |
3072 | | - 'mobile-frontend-opt-out-title' => '試用からのオプトアウト', |
3073 | | - 'mobile-frontend-opt-out-explain' => 'これにより試用を止めることができます', |
| 3074 | + 'mobile-frontend-opt-out-title' => '携帯機器版ベータテストからのオプトアウト', |
| 3075 | + 'mobile-frontend-opt-out-explain' => '携帯機器版ベータテストから離脱することにより、実験的機能は無効化され、従来の携帯機器の画面に戻ります。', |
3074 | 3076 | 'mobile-frontend-disable-images' => '携帯機器ウェブサイトで画像を無効にする', |
3075 | 3077 | 'mobile-frontend-enable-images' => '携帯機器ウェブサイトで画像を有効にする', |
3076 | 3078 | 'mobile-frontend-news-items' => '新着情報', |
— | — | @@ -4056,6 +4058,7 @@ |
4057 | 4059 | * @author V.narsikar |
4058 | 4060 | */ |
4059 | 4061 | $messages['mr'] = array( |
| 4062 | + 'mobile-frontend-desc' => 'मोबाइल फ्रंटएंड', |
4060 | 4063 | 'mobile-frontend-search-submit' => 'चला', |
4061 | 4064 | 'mobile-frontend-search-results' => 'शोधनिकाल', |
4062 | 4065 | 'mobile-frontend-no-article-found' => 'लेख मिळाला नाही', |
— | — | @@ -4080,22 +4083,34 @@ |
4081 | 4084 | 'mobile-frontend-nav-history' => 'इतिहास', |
4082 | 4085 | 'mobile-frontend-search-text' => 'शोध', |
4083 | 4086 | 'mobile-frontend-contact-us' => 'कोणत्याही प्रश्न किंवा सुचनांसाठी mobile@wikipedia.org येथे विरोप (इमेल) पाठवा', |
4084 | | - 'mobile-frontend-author-link' => 'नेहमीच्या विकिपीडीयावर ही मीडिया संचिका पहा. लेखक, परवाने व आणखी विवरण तेथे मिळेल.', |
| 4087 | + 'mobile-frontend-author-link' => 'लेखक, परवाने व आणखी विवरण पहाण्याकरिता, ही मीडिया संचिका नियमीत {{SITENAME}}वर पहा.', |
4085 | 4088 | 'mobile-frontend-download-full-version' => 'पूर्ण आवृत्ती उतरवून घ्या', |
4086 | 4089 | 'mobile-frontend-file-namespace' => 'संचिका', |
4087 | 4090 | 'mobile-frontend-wml-continue' => 'सुरु ठेवा ...', |
4088 | 4091 | 'mobile-frontend-wml-back' => 'माघारी', |
4089 | 4092 | 'mobile-frontend-view' => 'लघु-दृश्य', |
| 4093 | + 'mobile-frontend-opt-in-message' => 'मोबाइल बीटात सामील व्हा', |
4090 | 4094 | 'mobile-frontend-opt-in-yes-button' => 'हो', |
4091 | 4095 | 'mobile-frontend-opt-in-no-button' => 'नाही', |
| 4096 | + 'mobile-frontend-opt-in-title' => 'मोबाइल बीटा स्विकार', |
4092 | 4097 | 'mobile-frontend-opt-in-explain' => 'बीटा जॉईन करून तुम्हाला एक्सपेरिमेंटल फिचर्सचा उपयोग करता येईल ,अर्थात बग्स आणी इतर अवघड स्थिती अनुभवण्याची मानसिक तयारी ठेवावी', |
| 4098 | + 'mobile-frontend-opt-out-message' => 'मोबाइल बीटातनं बाहेर पडायचे ?', |
4093 | 4099 | 'mobile-frontend-opt-out-yes-button' => 'हो', |
4094 | 4100 | 'mobile-frontend-opt-out-no-button' => 'नाही', |
| 4101 | + 'mobile-frontend-opt-out-title' => 'मोबाइल बीटातन बाहेर पडू', |
| 4102 | + 'mobile-frontend-opt-out-explain' => 'मोबाइल बीटा सोडल्यावर ,सारी प्रायोगिक वैष्ट्ये बंद होतील आणि तुम्ही क्लासिक मोबाईल एक्सपिरीअन्सला वापस पोहोचाल', |
| 4103 | + 'mobile-frontend-disable-images' => 'मोबाईल साईटवरील प्रतिमा अक्षम करा', |
| 4104 | + 'mobile-frontend-enable-images' => 'मोबाईल साईटवरील प्रतिमा सक्षम करा', |
4095 | 4105 | 'mobile-frontend-news-items' => 'बातम्यांमध्ये', |
| 4106 | + 'mobile-frontend-leave-feedback-title' => 'आपल्या मोबाइल साइट अनुभवा बद्दल प्रतिक्रिया नोंदवा.आपल्या प्रतिक्रीया भविष्यातील सुधारणात मदतकारक ठरते.', |
| 4107 | + 'mobile-frontend-leave-feedback-notice' => 'तुमचा प्रतिसाद मोबाईल संस्थळावरील तुमचा अनुभव सुधारण्याच्या दृष्टीने आम्हाला मदतकारक सिद्ध होतो.आपला प्रतिसाद आपल्या ब्राऊजर व्हर्शन आणि ऑपरेटींग सिस्टीम आणि आपल्या सदस्य नावा सोबत संबधीत पानावरील नोंद कुणीही वाचू शकेल अशा जाहीर स्वरूपाची असेल हे लक्षात घ्या."$1". .शक्यतो विषयनावाची ओळ माहितीपूर्ण स्वरूपात देण्याचा प्रयत्न करा जसे कि ,"Formatting issues with wide tables". |
| 4108 | +आपला प्रतिसाद आमच्या वापरण्याच्या अटींनी बाध्य असेल.', |
4096 | 4109 | 'mobile-frontend-leave-feedback-subject' => 'विषय', |
4097 | 4110 | 'mobile-frontend-leave-feedback-message' => 'संदेश', |
4098 | 4111 | 'mobile-frontend-leave-feedback-cancel' => 'रद्द करा', |
4099 | 4112 | 'mobile-frontend-leave-feedback-submit' => 'प्रतिक्रिया द्या', |
| 4113 | + 'mobile-frontend-leave-feedback-link-text' => 'मोबाइल फ्रंटएंड एक्सटेंनशन प्रतिक्रिया', |
| 4114 | + 'mobile-frontend-leave-feedback' => 'मोबाइल साइट प्रतिसाद', |
4100 | 4115 | 'mobile-frontend-leave-feedback-thanks' => 'आपल्या प्रतिक्रियेबद्दल आभार !', |
4101 | 4116 | 'mobile-frontend-language' => 'भाषा', |
4102 | 4117 | 'mobile-frontend-username' => 'सदस्य नाव:', |
Index: branches/wmf/1.18wmf1/extensions/MobileFrontend/OptInTemplate.php |
— | — | @@ -1,11 +1,11 @@ |
2 | 2 | <?php |
3 | 3 | |
4 | | -if( !defined( 'MEDIAWIKI' ) ) { |
| 4 | +if ( !defined( 'MEDIAWIKI' ) ) { |
5 | 5 | die( -1 ); |
6 | 6 | } |
7 | 7 | |
8 | 8 | class OptInTemplate extends MobileFrontendTemplate { |
9 | | - |
| 9 | + |
10 | 10 | public function getHTML() { |
11 | 11 | |
12 | 12 | $optInHtml = <<<HTML |
Index: branches/wmf/1.18wmf1/extensions/MobileFrontend/OptOutTemplate.php |
— | — | @@ -1,11 +1,11 @@ |
2 | 2 | <?php |
3 | 3 | |
4 | | -if( !defined( 'MEDIAWIKI' ) ) { |
| 4 | +if ( !defined( 'MEDIAWIKI' ) ) { |
5 | 5 | die( -1 ); |
6 | 6 | } |
7 | 7 | |
8 | 8 | class OptOutTemplate extends MobileFrontendTemplate { |
9 | | - |
| 9 | + |
10 | 10 | public function getHTML() { |
11 | 11 | $optOutHtml = <<<HTML |
12 | 12 | <h1> |
Index: branches/wmf/1.18wmf1/extensions/MobileFrontend/ThanksNoticeTemplate.php |
— | — | @@ -1,11 +1,11 @@ |
2 | 2 | <?php |
3 | 3 | |
4 | | -if( !defined( 'MEDIAWIKI' ) ) { |
| 4 | +if ( !defined( 'MEDIAWIKI' ) ) { |
5 | 5 | die( -1 ); |
6 | 6 | } |
7 | 7 | |
8 | 8 | class ThanksNoticeTemplate extends MobileFrontendTemplate { |
9 | | - |
| 9 | + |
10 | 10 | public function getHTML() { |
11 | 11 | |
12 | 12 | $thanks = $this->data['messages']['mobile-frontend-leave-feedback-thanks']; |
Index: branches/wmf/1.18wmf1/extensions/MobileFrontend/stylesheets/common.css |
— | — | @@ -20,12 +20,21 @@ |
21 | 21 | height: 20px; |
22 | 22 | width: 100%; |
23 | 23 | z-index: 99; |
24 | | - background: #EE8833; |
| 24 | + background: #F4A83D; |
25 | 25 | display: block; |
26 | | - border-bottom: 1px solid; |
27 | | - border-color: #000000; |
| 26 | + border-bottom: 1px solid #D6800C; |
| 27 | + padding: 7px 0; |
| 28 | + font-size: 130%; |
| 29 | + font-weight: bold; |
| 30 | + text-align: center; |
| 31 | + color: #735005; |
28 | 32 | } |
29 | 33 | |
| 34 | +#zero-rated-banner a { |
| 35 | + text-decoration: underline; |
| 36 | + color: #735005; |
| 37 | +} |
| 38 | + |
30 | 39 | #zero-rated-banner-red { |
31 | 40 | position: relative; |
32 | 41 | height: 20px; |
— | — | @@ -33,12 +42,51 @@ |
34 | 43 | z-index: 99; |
35 | 44 | background: #FF0000; |
36 | 45 | display: block; |
37 | | - border-bottom: 1px solid; |
38 | | - border-color: #000000; |
| 46 | + border-bottom: 1px solid #D6800C; |
| 47 | + padding: 7px 0; |
| 48 | + font-size: 130%; |
| 49 | + font-weight: bold; |
| 50 | + text-align: center; |
| 51 | + color: #735005; |
39 | 52 | } |
40 | 53 | |
| 54 | +#zero-rated-banner span.notify-close { |
| 55 | + background-color: #FAD163; |
| 56 | + float: right; |
| 57 | + margin-right: 20px; |
| 58 | + border: 2px solid #735005; |
| 59 | + padding-left: 4px; |
| 60 | + padding-right: 4px; |
| 61 | + text-decoration: none; |
| 62 | + display: block; |
| 63 | + cursor: pointer; |
| 64 | + height: 18px; |
| 65 | + display: table-cell; |
| 66 | + vertical-align: middle; |
| 67 | + text-align: center; |
| 68 | +} |
| 69 | + |
| 70 | +#zero-rated-banner span.notify-close a { |
| 71 | + text-decoration: none; |
| 72 | +} |
| 73 | + |
| 74 | +#zero-rated-banner-red #zero-rated-banner-text { |
| 75 | + margin: 0px; |
| 76 | + color: #ffffff; |
| 77 | + font-weight: bold; |
| 78 | + text-align: center; |
| 79 | +} |
| 80 | + |
| 81 | +#zero-rated-banner-red a { |
| 82 | + text-decoration: underline; |
| 83 | + color: #ffffff; |
| 84 | +} |
| 85 | + |
41 | 86 | #zero-rated-banner-text { |
42 | | - margin: 0px; |
| 87 | + margin: 0px; |
| 88 | + color: #735005; |
| 89 | + font-weight: bold; |
| 90 | + text-align: center; |
43 | 91 | } |
44 | 92 | |
45 | 93 | .suggestions-results { |
Index: branches/wmf/1.18wmf1/extensions/MobileFrontend/stylesheets/beta_common.css |
— | — | @@ -26,12 +26,21 @@ |
27 | 27 | height: 20px; |
28 | 28 | width: 100%; |
29 | 29 | z-index: 99; |
30 | | - background: #EE8833; |
| 30 | + background: #F4A83D; |
31 | 31 | display: block; |
32 | | - border-bottom: 1px solid; |
33 | | - border-color: #000000; |
| 32 | + border-bottom: 1px solid #D6800C; |
| 33 | + padding: 7px 0; |
| 34 | + font-size: 130%; |
| 35 | + font-weight: bold; |
| 36 | + text-align: center; |
| 37 | + color: #735005; |
34 | 38 | } |
35 | 39 | |
| 40 | +#zero-rated-banner a { |
| 41 | + text-decoration: underline; |
| 42 | + color: #735005; |
| 43 | +} |
| 44 | + |
36 | 45 | #zero-rated-banner-red { |
37 | 46 | position: relative; |
38 | 47 | height: 20px; |
— | — | @@ -43,8 +52,43 @@ |
44 | 53 | border-color: #000000; |
45 | 54 | } |
46 | 55 | |
| 56 | +#zero-rated-banner span.notify-close { |
| 57 | + background-color: #FAD163; |
| 58 | + float: right; |
| 59 | + margin-right: 20px; |
| 60 | + border: 2px solid #735005; |
| 61 | + padding-left: 4px; |
| 62 | + padding-right: 4px; |
| 63 | + text-decoration: none; |
| 64 | + display: block; |
| 65 | + cursor: pointer; |
| 66 | + height: 18px; |
| 67 | + display: table-cell; |
| 68 | + vertical-align: middle; |
| 69 | + text-align: center; |
| 70 | +} |
| 71 | + |
| 72 | +#zero-rated-banner span.notify-close a { |
| 73 | + text-decoration: none; |
| 74 | +} |
| 75 | + |
| 76 | +#zero-rated-banner-red #zero-rated-banner-text { |
| 77 | + margin: 0px; |
| 78 | + color: #ffffff; |
| 79 | + font-weight: bold; |
| 80 | + text-align: center; |
| 81 | +} |
| 82 | + |
| 83 | +#zero-rated-banner-red a { |
| 84 | + text-decoration: underline; |
| 85 | + color: #ffffff; |
| 86 | +} |
| 87 | + |
47 | 88 | #zero-rated-banner-text { |
48 | | - margin: 0px; |
| 89 | + margin: 0px; |
| 90 | + color: #735005; |
| 91 | + font-weight: bold; |
| 92 | + text-align: center; |
49 | 93 | } |
50 | 94 | |
51 | 95 | .suggestions-results { |