浏览代码

Merge branch 'master' of https://github.com/thingles/foreground

Tom Hutchison 9 年之前
父节点
当前提交
585856caa4

+ 1 - 0
CHANGELOG.md

@@ -10,3 +10,4 @@
 * [feature] i18n json update/create shim, i18n.php file for localization deprecated in MW 1.23 and being removed in MW 1.24, and shim is backwards compatable to MW 1.17
 * Added CONTRIBUTING.md file
 * Update to README.md
+* Added COPYING file

+ 25 - 0
COPYING

@@ -0,0 +1,25 @@
+Copyright (c) 2013, Garrick Van Buren, Jamie Thingelstad All rights
+reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+1) Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+
+2) Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+ 30 - 66
Foreground.i18n.php

@@ -1,71 +1,35 @@
 <?php
-
 /**
- * Internationalization file for skin Foreground.
+ * This is a backwards-compatibility shim, generated by:
+ * https://git.wikimedia.org/blob/mediawiki%2Fcore.git/HEAD/maintenance%2FgenerateJsonI18n.php
+ *
+ * Beginning with MediaWiki 1.23, translation strings are stored in json files,
+ * and the EXTENSION.i18n.php file only exists to provide compatibility with
+ * older releases of MediaWiki. For more information about this migration, see:
+ * https://www.mediawiki.org/wiki/Requests_for_comment/Localisation_format
  *
- * @file
- * @ingroup Skins
+ * This shim maintains compatibility back to MediaWiki 1.17.
  */
-
 $messages = array();
-
-/** English
- * @author Garrick Van Buren
- */
-$messages['en'] = array(
-	'skinname-foreground' => 'Foreground',
-	'foreground-desc' => 'Provides a skin that focuses on putting your content in the foreground',
-	'foreground-browsermsg' => 'may not look as expected in this version of Internet Explorer. We recommend you upgrade to a newer version of Internet Explorer or switch to a browser like Firefox or Chrome.',
-	'foreground-menutitle' => 'Menu'
-);
-
-/** German (Deutsch)
- * @author Kghbln
- */
-$messages['de'] = array(
-	'skinname-foreground' => 'Foreground',
-	'foreground-desc' => 'Stellt eine Benutzeroberfläche bereit, die die Inhalte des Wikis betont',
-	'foreground-browsermsg' => 'sieht in dieser Version des Internet Explorers nicht wie gewünscht aus. Es wird ein Upgrade des Internet Explorers oder der Umstieg auf einen Browser wie Firefox oder Chrome empfohlen.',
-	'foreground-menutitle' => 'Menü'
-);
-
-/** Spanish (español)
- * @author Manuel Rubio 
- */
-$messages['es'] = array(
-	'skinname-foreground' => 'Foreground',
-	'foreground-desc' => 'Provee una plantilla que se centra en resaltar en primer plano el contenido.',
-	'foreground-browsermsg' => 'puede verse diferente a lo esperado en esta versión de Internet Explorer le recomendamos que se actualice a una versión más reciente, o cambie a un navegador como Firefox o Chrome.',
-	'foreground-menutitle' => 'Menu'
-);
-
-/** Dutch (nederlands)
- * @author Marijke Stuivenberg
- */
-$messages['nl'] = array(
-		'skinname-foreground' => 'Foreground',
-		'foreground-desc' => 'Biedt een uiterlijk dat er voor zorgt dat de inhoud op de voorgrond wordt weergegeven',
-		'foreground-browsermsg' => 'wordt mogelijk niet goed weergegeven in deze versie van Internet Explorer. Aanbevolen wordt te upgraden naar een nieuwere versie van Internet Explorer of om te schakelen naar een browser zoals Firefox of Chrome.',
-		'foreground-menutitle' => 'Menu'
-);
-
-/** Arabic
- * @author النعيمي باشا
- */
-$messages['ar'] = array(
-	'skinname-foreground' => 'Foreground',
-	'foreground-desc' => 'نوفر مظهر يركز على وضع محتواك في المقدمة',
-	'foreground-browsermsg' => 'ربما يظهر بشكل غير مقبول في هذه النسخة من انترنت اكسبلورر. ننصحك بالترقية إلى إصدار أحدث لانترنت اكسبلورر أو التغير إلى متصفح مثل فايرفوكس أو كروم.',
-	'foreground-menutitle' => 'قائمة'
-);
-
-/** Russian
- *  @author HiRolla
- */
-$messages['ru'] = array(
-	'skinname-foreground' => 'Foreground',
-	'foreground-desc' => 'Оформление, которое выводит на передний план именно содержимое страниц, минимизируя интерфейс сайта',
-	'foreground-browsermsg' => 'Возможны непредвиденные изменения вида в Internet Explorer. Рекомендуем обновить Internet Explorer или пользоваться такими браузерами, как Firefox или Chrome.',
-	'foreground-menutitle' => 'Меню'
-);
-
+if ( !function_exists( 'wfJsonI18nSkinForeground' ) ) {
+	function wfJsonI18nSkinForeground( $cache, $code, &$cachedData ) {
+		$codeSequence = array_merge( array( $code ), $cachedData['fallbackSequence'] );
+		foreach ( $codeSequence as $csCode ) {
+			$fileName = dirname( __FILE__ ) . "/i18n/$csCode.json";
+			if ( is_readable( $fileName ) ) {
+				$data = FormatJson::decode( file_get_contents( $fileName ), true );
+				foreach ( array_keys( $data ) as $key ) {
+					if ( $key === '' || $key[0] === '@' ) {
+						unset( $data[$key] );
+					}
+				}
+				$cachedData['messages'] = array_merge( $data, $cachedData['messages'] );
+			}
+
+			$cachedData['deps'][] = new FileDependency( $fileName );
+		}
+		return true;
+	}
+
+	$GLOBALS['wgHooks']['LocalisationCacheRecache'][] = 'wfJsonI18nSkinForeground';
+}

+ 9 - 8
Foreground.skin.php

@@ -69,19 +69,20 @@ class foregroundTemplate extends BaseTemplate {
 				echo "<div id='navwrapper' class='". $wgForegroundFeatures['NavWrapperType']. "'>";
 				break;
 		}
+		// Set default variables for footer and switch them if 'showFooterIcons' => true
+		$footerLeftClass = 'small-8 large-centered columns text-center';
+		$footerRightClass = 'large-12 small-12 columns';
+		$poweredbyType = "nocopyright";
+		$poweredbyMakeType = 'withoutImage';
 		switch ($wgForegroundFeatures['showFooterIcons']) {
-			case '0':
-				$footerLeftClass = 'small-8 large-centered columns text-center';
-				$footerRightClass = 'large-12 small-12 columns';
-				$poweredbyType = "nocopyright";
-				$poweredbyMakeType = 'withoutImage';
-				break;	
-			case '1':
+			case true:
 				$footerLeftClass = 'large-8 small-12 columns';
 				$footerRightClass = 'large-4 small-12 columns';
 				$poweredbyType = "icononly";
 				$poweredbyMakeType = 'withImage';
 				break;
+			default:
+				break;	
 		}
 ?>
 <!-- START FOREGROUNDTEMPLATE -->
@@ -171,7 +172,7 @@ class foregroundTemplate extends BaseTemplate {
 				<div id="siteNotice" class="sitenotice panel radius"><?php echo $this->text('sitename') . ' '. wfMessage( 'foreground-browsermsg' )->text(); ?></div>
 				<![endif]-->
 
-				<?php if ( $this->data['sitenotice'] ) { ?><div id="siteNotice" class="sitenotice panel radius"><?php $this->html( 'sitenotice' ); ?></div><?php } ?>
+				<?php if ( $this->data['sitenotice'] ) { ?><div id="siteNotice" class="sitenotice"><?php $this->html( 'sitenotice' ); ?></div><?php } ?>
 				<?php if ( $this->data['newtalk'] ) { ?><div id="usermessage" class="newtalk panel radius"><?php $this->html( 'newtalk' ); ?></div><?php } ?>
 				</div>
 		</div>

+ 1 - 1
README.md

@@ -6,7 +6,7 @@
 
 First, copy the Foreground source files into your MediaWiki skins directory (see [skinning](https://www.mediawiki.org/wiki/Manual:Skinning) for general information on MediaWiki skins). You can either download the files and extract them from:
 
-    https://github.com/thingles/foreground/archive/master.zip
+    https://github.com/thingles/foreground/archive/develop.zip
 
 You should extract that into a folder named `foreground` in your `skins` directory.
 

二进制
assets/fonts/FontAwesome.otf


二进制
assets/fonts/fontawesome-webfont.eot


文件差异内容过多而无法显示
+ 22 - 21
assets/fonts/fontawesome-webfont.svg


二进制
assets/fonts/fontawesome-webfont.ttf


二进制
assets/fonts/fontawesome-webfont.woff


+ 2 - 2
assets/scripts/foreground.js

@@ -19,7 +19,7 @@ jQuery(document).ready(function() {
   jQuery('li#ca-edit a').prepend('<div class="drop-icon"><i class="fa fa-pencil-square-o fa-fw"></i></div>')
   jQuery('li#ca-viewsource a').prepend('<div class="drop-icon"><i class="fa fa-book fa-fw"></i></div>')
   jQuery('li#ca-form_edit a').prepend('<div class="drop-icon"><i class="fa fa-pencil-square fa-fw"></i></div>')
-  jQuery('li#ca-history a').prepend('<div class="drop-icon"><i class="fa fa-archive fa-fw"></i></div>')
+  jQuery('li#ca-history a').prepend('<div class="drop-icon"><i class="fa fa-history fa-fw"></i></div>')
   jQuery('li#ca-delete a').prepend('<div class="drop-icon"><i class="fa fa-trash-o fa-fw"></i></div>')
   jQuery('li#ca-move a').prepend('<div class="drop-icon"><i class="fa fa-truck fa-fw"></i></div>')
   jQuery('li#ca-protect a').prepend('<div class="drop-icon"><i class="fa fa-shield fa-fw"></i></div>')
@@ -34,7 +34,7 @@ if ( jQuery( '#ca-addsection' ).length ) {
   jQuery('li#ca-addsection a').html('<div class="drop-icon"><i class="fa fa-plus fa-fw"></i></div>' + jQuery('li#ca-addsection a').attr('title').replace(/\[.+/g,""))
 }
 
-  jQuery('li#pt-uls a').prepend('<div class="drop-icon"><i class="fa fa-book fa-fw"></i></div>')
+  jQuery('li#pt-uls a').prepend('<div class="drop-icon"><i class="fa fa-language fa-fw"></i></div>')
   jQuery('li#pt-userpage a').prepend('<div class="drop-icon"><i class="fa fa-user fa-fw"></i></div>')
   jQuery('li#pt-mytalk a').prepend('<div class="drop-icon"><i class="fa fa-comments fa-fw"></i></div>')
   jQuery('li#pt-adminlinks a').prepend('<div class="drop-icon"><i class="fa fa-bolt fa-fw"></i></div>')

+ 394 - 60
assets/stylesheets/font-awesome.css

@@ -1,28 +1,27 @@
 /*!
- *  Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome
+ *  Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
  *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
  */
 /* FONT PATH
  * -------------------------- */
 @font-face {
   font-family: 'FontAwesome';
-  src: url('../fonts/fontawesome-webfont.eot?v=4.0.3');
-  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.0.3') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff?v=4.0.3') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.0.3') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.0.3#fontawesomeregular') format('svg');
+  src: url('../fonts/fontawesome-webfont.eot?v=4.2.0');
+  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');
   font-weight: normal;
   font-style: normal;
 }
 .fa {
   display: inline-block;
-  font-family: FontAwesome;
-  font-style: normal;
-  font-weight: normal;
-  line-height: 1;
+  font: normal normal normal 14px/1 FontAwesome;
+  font-size: inherit;
+  text-rendering: auto;
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
 }
 /* makes the font 33% larger relative to the icon container */
 .fa-lg {
-  font-size: 1.3333333333333333em;
+  font-size: 1.33333333em;
   line-height: 0.75em;
   vertical-align: -15%;
 }
@@ -39,12 +38,12 @@
   font-size: 5em;
 }
 .fa-fw {
-  width: 1.2857142857142858em;
+  width: 1.28571429em;
   text-align: center;
 }
 .fa-ul {
   padding-left: 0;
-  margin-left: 2.142857142857143em;
+  margin-left: 2.14285714em;
   list-style-type: none;
 }
 .fa-ul > li {
@@ -52,13 +51,13 @@
 }
 .fa-li {
   position: absolute;
-  left: -2.142857142857143em;
-  width: 2.142857142857143em;
-  top: 0.14285714285714285em;
+  left: -2.14285714em;
+  width: 2.14285714em;
+  top: 0.14285714em;
   text-align: center;
 }
 .fa-li.fa-lg {
-  left: -1.8571428571428572em;
+  left: -1.85714286em;
 }
 .fa-border {
   padding: .2em .25em .15em;
@@ -78,91 +77,66 @@
   margin-left: .3em;
 }
 .fa-spin {
-  -webkit-animation: spin 2s infinite linear;
-  -moz-animation: spin 2s infinite linear;
-  -o-animation: spin 2s infinite linear;
-  animation: spin 2s infinite linear;
+  -webkit-animation: fa-spin 2s infinite linear;
+  animation: fa-spin 2s infinite linear;
 }
-@-moz-keyframes spin {
-  0% {
-    -moz-transform: rotate(0deg);
-  }
-  100% {
-    -moz-transform: rotate(359deg);
-  }
-}
-@-webkit-keyframes spin {
+@-webkit-keyframes fa-spin {
   0% {
     -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
   }
   100% {
     -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
   }
 }
-@-o-keyframes spin {
-  0% {
-    -o-transform: rotate(0deg);
-  }
-  100% {
-    -o-transform: rotate(359deg);
-  }
-}
-@-ms-keyframes spin {
-  0% {
-    -ms-transform: rotate(0deg);
-  }
-  100% {
-    -ms-transform: rotate(359deg);
-  }
-}
-@keyframes spin {
+@keyframes fa-spin {
   0% {
+    -webkit-transform: rotate(0deg);
     transform: rotate(0deg);
   }
   100% {
+    -webkit-transform: rotate(359deg);
     transform: rotate(359deg);
   }
 }
 .fa-rotate-90 {
   filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
   -webkit-transform: rotate(90deg);
-  -moz-transform: rotate(90deg);
   -ms-transform: rotate(90deg);
-  -o-transform: rotate(90deg);
   transform: rotate(90deg);
 }
 .fa-rotate-180 {
   filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
   -webkit-transform: rotate(180deg);
-  -moz-transform: rotate(180deg);
   -ms-transform: rotate(180deg);
-  -o-transform: rotate(180deg);
   transform: rotate(180deg);
 }
 .fa-rotate-270 {
   filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
   -webkit-transform: rotate(270deg);
-  -moz-transform: rotate(270deg);
   -ms-transform: rotate(270deg);
-  -o-transform: rotate(270deg);
   transform: rotate(270deg);
 }
 .fa-flip-horizontal {
   filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
   -webkit-transform: scale(-1, 1);
-  -moz-transform: scale(-1, 1);
   -ms-transform: scale(-1, 1);
-  -o-transform: scale(-1, 1);
   transform: scale(-1, 1);
 }
 .fa-flip-vertical {
   filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
   -webkit-transform: scale(1, -1);
-  -moz-transform: scale(1, -1);
   -ms-transform: scale(1, -1);
-  -o-transform: scale(1, -1);
   transform: scale(1, -1);
 }
+:root .fa-rotate-90,
+:root .fa-rotate-180,
+:root .fa-rotate-270,
+:root .fa-flip-horizontal,
+:root .fa-flip-vertical {
+  filter: none;
+}
 .fa-stack {
   position: relative;
   display: inline-block;
@@ -228,6 +202,8 @@
 .fa-check:before {
   content: "\f00c";
 }
+.fa-remove:before,
+.fa-close:before,
 .fa-times:before {
   content: "\f00d";
 }
@@ -369,6 +345,8 @@
 .fa-video-camera:before {
   content: "\f03d";
 }
+.fa-photo:before,
+.fa-image:before,
 .fa-picture-o:before {
   content: "\f03e";
 }
@@ -555,7 +533,8 @@
 .fa-arrows-h:before {
   content: "\f07e";
 }
-.fa-bar-chart-o:before {
+.fa-bar-chart-o:before,
+.fa-bar-chart:before {
   content: "\f080";
 }
 .fa-twitter-square:before {
@@ -732,6 +711,8 @@
 .fa-square:before {
   content: "\f0c8";
 }
+.fa-navicon:before,
+.fa-reorder:before,
 .fa-bars:before {
   content: "\f0c9";
 }
@@ -791,11 +772,11 @@
   content: "\f0dc";
 }
 .fa-sort-down:before,
-.fa-sort-asc:before {
+.fa-sort-desc:before {
   content: "\f0dd";
 }
 .fa-sort-up:before,
-.fa-sort-desc:before {
+.fa-sort-asc:before {
   content: "\f0de";
 }
 .fa-envelope:before {
@@ -985,12 +966,10 @@
 .fa-code:before {
   content: "\f121";
 }
+.fa-mail-reply-all:before,
 .fa-reply-all:before {
   content: "\f122";
 }
-.fa-mail-reply-all:before {
-  content: "\f122";
-}
 .fa-star-half-empty:before,
 .fa-star-half-full:before,
 .fa-star-half-o:before {
@@ -1336,3 +1315,358 @@
 .fa-plus-square-o:before {
   content: "\f196";
 }
+.fa-space-shuttle:before {
+  content: "\f197";
+}
+.fa-slack:before {
+  content: "\f198";
+}
+.fa-envelope-square:before {
+  content: "\f199";
+}
+.fa-wordpress:before {
+  content: "\f19a";
+}
+.fa-openid:before {
+  content: "\f19b";
+}
+.fa-institution:before,
+.fa-bank:before,
+.fa-university:before {
+  content: "\f19c";
+}
+.fa-mortar-board:before,
+.fa-graduation-cap:before {
+  content: "\f19d";
+}
+.fa-yahoo:before {
+  content: "\f19e";
+}
+.fa-google:before {
+  content: "\f1a0";
+}
+.fa-reddit:before {
+  content: "\f1a1";
+}
+.fa-reddit-square:before {
+  content: "\f1a2";
+}
+.fa-stumbleupon-circle:before {
+  content: "\f1a3";
+}
+.fa-stumbleupon:before {
+  content: "\f1a4";
+}
+.fa-delicious:before {
+  content: "\f1a5";
+}
+.fa-digg:before {
+  content: "\f1a6";
+}
+.fa-pied-piper:before {
+  content: "\f1a7";
+}
+.fa-pied-piper-alt:before {
+  content: "\f1a8";
+}
+.fa-drupal:before {
+  content: "\f1a9";
+}
+.fa-joomla:before {
+  content: "\f1aa";
+}
+.fa-language:before {
+  content: "\f1ab";
+}
+.fa-fax:before {
+  content: "\f1ac";
+}
+.fa-building:before {
+  content: "\f1ad";
+}
+.fa-child:before {
+  content: "\f1ae";
+}
+.fa-paw:before {
+  content: "\f1b0";
+}
+.fa-spoon:before {
+  content: "\f1b1";
+}
+.fa-cube:before {
+  content: "\f1b2";
+}
+.fa-cubes:before {
+  content: "\f1b3";
+}
+.fa-behance:before {
+  content: "\f1b4";
+}
+.fa-behance-square:before {
+  content: "\f1b5";
+}
+.fa-steam:before {
+  content: "\f1b6";
+}
+.fa-steam-square:before {
+  content: "\f1b7";
+}
+.fa-recycle:before {
+  content: "\f1b8";
+}
+.fa-automobile:before,
+.fa-car:before {
+  content: "\f1b9";
+}
+.fa-cab:before,
+.fa-taxi:before {
+  content: "\f1ba";
+}
+.fa-tree:before {
+  content: "\f1bb";
+}
+.fa-spotify:before {
+  content: "\f1bc";
+}
+.fa-deviantart:before {
+  content: "\f1bd";
+}
+.fa-soundcloud:before {
+  content: "\f1be";
+}
+.fa-database:before {
+  content: "\f1c0";
+}
+.fa-file-pdf-o:before {
+  content: "\f1c1";
+}
+.fa-file-word-o:before {
+  content: "\f1c2";
+}
+.fa-file-excel-o:before {
+  content: "\f1c3";
+}
+.fa-file-powerpoint-o:before {
+  content: "\f1c4";
+}
+.fa-file-photo-o:before,
+.fa-file-picture-o:before,
+.fa-file-image-o:before {
+  content: "\f1c5";
+}
+.fa-file-zip-o:before,
+.fa-file-archive-o:before {
+  content: "\f1c6";
+}
+.fa-file-sound-o:before,
+.fa-file-audio-o:before {
+  content: "\f1c7";
+}
+.fa-file-movie-o:before,
+.fa-file-video-o:before {
+  content: "\f1c8";
+}
+.fa-file-code-o:before {
+  content: "\f1c9";
+}
+.fa-vine:before {
+  content: "\f1ca";
+}
+.fa-codepen:before {
+  content: "\f1cb";
+}
+.fa-jsfiddle:before {
+  content: "\f1cc";
+}
+.fa-life-bouy:before,
+.fa-life-buoy:before,
+.fa-life-saver:before,
+.fa-support:before,
+.fa-life-ring:before {
+  content: "\f1cd";
+}
+.fa-circle-o-notch:before {
+  content: "\f1ce";
+}
+.fa-ra:before,
+.fa-rebel:before {
+  content: "\f1d0";
+}
+.fa-ge:before,
+.fa-empire:before {
+  content: "\f1d1";
+}
+.fa-git-square:before {
+  content: "\f1d2";
+}
+.fa-git:before {
+  content: "\f1d3";
+}
+.fa-hacker-news:before {
+  content: "\f1d4";
+}
+.fa-tencent-weibo:before {
+  content: "\f1d5";
+}
+.fa-qq:before {
+  content: "\f1d6";
+}
+.fa-wechat:before,
+.fa-weixin:before {
+  content: "\f1d7";
+}
+.fa-send:before,
+.fa-paper-plane:before {
+  content: "\f1d8";
+}
+.fa-send-o:before,
+.fa-paper-plane-o:before {
+  content: "\f1d9";
+}
+.fa-history:before {
+  content: "\f1da";
+}
+.fa-circle-thin:before {
+  content: "\f1db";
+}
+.fa-header:before {
+  content: "\f1dc";
+}
+.fa-paragraph:before {
+  content: "\f1dd";
+}
+.fa-sliders:before {
+  content: "\f1de";
+}
+.fa-share-alt:before {
+  content: "\f1e0";
+}
+.fa-share-alt-square:before {
+  content: "\f1e1";
+}
+.fa-bomb:before {
+  content: "\f1e2";
+}
+.fa-soccer-ball-o:before,
+.fa-futbol-o:before {
+  content: "\f1e3";
+}
+.fa-tty:before {
+  content: "\f1e4";
+}
+.fa-binoculars:before {
+  content: "\f1e5";
+}
+.fa-plug:before {
+  content: "\f1e6";
+}
+.fa-slideshare:before {
+  content: "\f1e7";
+}
+.fa-twitch:before {
+  content: "\f1e8";
+}
+.fa-yelp:before {
+  content: "\f1e9";
+}
+.fa-newspaper-o:before {
+  content: "\f1ea";
+}
+.fa-wifi:before {
+  content: "\f1eb";
+}
+.fa-calculator:before {
+  content: "\f1ec";
+}
+.fa-paypal:before {
+  content: "\f1ed";
+}
+.fa-google-wallet:before {
+  content: "\f1ee";
+}
+.fa-cc-visa:before {
+  content: "\f1f0";
+}
+.fa-cc-mastercard:before {
+  content: "\f1f1";
+}
+.fa-cc-discover:before {
+  content: "\f1f2";
+}
+.fa-cc-amex:before {
+  content: "\f1f3";
+}
+.fa-cc-paypal:before {
+  content: "\f1f4";
+}
+.fa-cc-stripe:before {
+  content: "\f1f5";
+}
+.fa-bell-slash:before {
+  content: "\f1f6";
+}
+.fa-bell-slash-o:before {
+  content: "\f1f7";
+}
+.fa-trash:before {
+  content: "\f1f8";
+}
+.fa-copyright:before {
+  content: "\f1f9";
+}
+.fa-at:before {
+  content: "\f1fa";
+}
+.fa-eyedropper:before {
+  content: "\f1fb";
+}
+.fa-paint-brush:before {
+  content: "\f1fc";
+}
+.fa-birthday-cake:before {
+  content: "\f1fd";
+}
+.fa-area-chart:before {
+  content: "\f1fe";
+}
+.fa-pie-chart:before {
+  content: "\f200";
+}
+.fa-line-chart:before {
+  content: "\f201";
+}
+.fa-lastfm:before {
+  content: "\f202";
+}
+.fa-lastfm-square:before {
+  content: "\f203";
+}
+.fa-toggle-off:before {
+  content: "\f204";
+}
+.fa-toggle-on:before {
+  content: "\f205";
+}
+.fa-bicycle:before {
+  content: "\f206";
+}
+.fa-bus:before {
+  content: "\f207";
+}
+.fa-ioxhost:before {
+  content: "\f208";
+}
+.fa-angellist:before {
+  content: "\f209";
+}
+.fa-cc:before {
+  content: "\f20a";
+}
+.fa-shekel:before,
+.fa-sheqel:before,
+.fa-ils:before {
+  content: "\f20b";
+}
+.fa-meanpath:before {
+  content: "\f20c";
+}

+ 5 - 0
assets/stylesheets/foreground.css

@@ -813,3 +813,8 @@ body.mw-special-Userlogin h2.title {
 #echo-notifications #mw-echo-overlay-pref-link { padding: 10px 0 10px 30px; }
 #echo-notifications #mw-echo-overlay-link { border-right: 1px solid #DDDDDD; margin-right: 2em; }
 }
+
+/*Fix ULS CSS */
+#pt-uls a.uls-trigger {
+  padding-left:15px !important;
+}

+ 32 - 32
foreground.php

@@ -9,17 +9,15 @@
  * @license 2-clause BSD
  */
 
-if( ! defined( 'MEDIAWIKI' ))
-{
-	die("Wiki Wonders What You're Doing");
+if( !defined( 'MEDIAWIKI' ) ) {
+   die( 'This is a skin to the MediaWiki package and cannot be run standalone.' );
 }
 
-
 $wgExtensionCredits['skin'][] = array(
 	'path'		 => __FILE__,
 	'name'		 => 'Foreground',
 	'url'		 => 'http://foreground.thingelstad.com/',
-	'version'	 => 1.1,
+	'version'	 => '1.2-alpha',
 	'author'	 => array(
 		'Garrick Van Buren',
 		'Jamie Thingelstad',
@@ -31,35 +29,37 @@ $wgExtensionCredits['skin'][] = array(
 
 $wgValidSkinNames['foreground'] = 'Foreground';
 
-$wgAutoloadClasses['SkinForeground'] = __DIR__.'/Foreground.skin.php';
+$wgAutoloadClasses['SkinForeground'] = __DIR__ . '/Foreground.skin.php';
 
-$wgExtensionMessagesFiles['SkinForeground'] = __DIR__.'/Foreground.i18n.php';
+$wgMessagesDirs['SkinForeground'] = __DIR__ . '/i18n';
+$wgExtensionMessagesFiles['SkinForeground'] = __DIR__ . '/Foreground.i18n.php';
 
 $wgResourceModules['skins.foreground'] = array(
 	'styles'         => array(
-    	'foreground/assets/stylesheets/normalize.css',
-        'foreground/assets/stylesheets/font-awesome.css',
-    	'foreground/assets/stylesheets/foundation.css',
-    	'foreground/assets/stylesheets/foreground.css',
-        'foreground/assets/stylesheets/foreground-print.css',
-    	'foreground/assets/stylesheets/jquery.autocomplete.css',
-    	'foreground/assets/stylesheets/responsive-tables.css'
-    ),
-    'scripts'        => array(
-        'foreground/assets/scripts/vendor/custom.modernizr.js',
-        'foreground/assets/scripts/vendor/fastclick.js',
-        'foreground/assets/scripts/vendor/responsive-tables.js',
-        'foreground/assets/scripts/foundation/foundation.js',
-        'foreground/assets/scripts/foundation/foundation.topbar.js',
-        'foreground/assets/scripts/foundation/foundation.dropdown.js',
-        'foreground/assets/scripts/foundation/foundation.section.js',
-        'foreground/assets/scripts/foundation/foundation.clearing.js',
-        'foreground/assets/scripts/foundation/foundation.cookie.js',
-        'foreground/assets/scripts/foundation/foundation.placeholder.js',
-        'foreground/assets/scripts/foundation/foundation.forms.js',
-        'foreground/assets/scripts/foundation/foundation.alerts.js',
-        'foreground/assets/scripts/foreground.js'
-    ),
-    'remoteBasePath' => &$GLOBALS['wgStylePath'],
-    'localBasePath'  => &$GLOBALS['wgStyleDirectory']
+		'foreground/assets/stylesheets/normalize.css',
+		'foreground/assets/stylesheets/font-awesome.css',
+		'foreground/assets/stylesheets/foundation.css',
+		'foreground/assets/stylesheets/foreground.css',
+		'foreground/assets/stylesheets/foreground-print.css',
+		'foreground/assets/stylesheets/jquery.autocomplete.css',
+		'foreground/assets/stylesheets/responsive-tables.css'
+	),
+	'scripts'        => array(
+		'foreground/assets/scripts/vendor/custom.modernizr.js',
+		'foreground/assets/scripts/vendor/fastclick.js',
+		'foreground/assets/scripts/vendor/responsive-tables.js',
+		'foreground/assets/scripts/foundation/foundation.js',
+		'foreground/assets/scripts/foundation/foundation.topbar.js',
+		'foreground/assets/scripts/foundation/foundation.dropdown.js',
+		'foreground/assets/scripts/foundation/foundation.section.js',
+		'foreground/assets/scripts/foundation/foundation.clearing.js',
+		'foreground/assets/scripts/foundation/foundation.cookie.js',
+		'foreground/assets/scripts/foundation/foundation.placeholder.js',
+		'foreground/assets/scripts/foundation/foundation.forms.js',
+		'foreground/assets/scripts/foundation/foundation.alerts.js',
+		'foreground/assets/scripts/foreground.js'
+	),
+	'remoteBasePath' => &$GLOBALS['wgStylePath'],
+	'localBasePath'  => &$GLOBALS['wgStyleDirectory'],
+	'position'       => 'bottom'
 );

+ 11 - 0
i18n/ar.json

@@ -0,0 +1,11 @@
+{
+	"@metadata": {
+		"authors": [
+			"النعيمي باشا"
+		]
+	},
+	"skinname-foreground": "Foreground",
+	"foreground-desc": "نوفر مظهر يركز على وضع محتواك في المقدمة",
+	"foreground-browsermsg": "ربما يظهر بشكل غير مقبول في هذه النسخة من انترنت اكسبلورر. ننصحك بالترقية إلى إصدار أحدث لانترنت اكسبلورر أو التغير إلى متصفح مثل فايرفوكس أو كروم.",
+	"foreground-menutitle": "قائمة"
+}

+ 11 - 0
i18n/de.json

@@ -0,0 +1,11 @@
+{
+	"@metadata": {
+		"authors": [
+			"Kghbln"
+		]
+	},
+	"skinname-foreground": "Foreground",
+	"foreground-desc": "Stellt eine Benutzeroberfläche bereit, die die Inhalte des Wikis betont",
+	"foreground-browsermsg": "sieht in dieser Version des Internet Explorers nicht wie gewünscht aus. Es wird eine Aktualisierung des Internet Explorers oder der Umstieg auf einen Browser wie bspw. Firefox oder Chrome empfohlen.",
+	"foreground-menutitle": "Menü"
+}

+ 11 - 0
i18n/en.json

@@ -0,0 +1,11 @@
+{
+	"@metadata": {
+		"authors": [
+			"Garrick Van Buren"
+		]
+	},
+	"skinname-foreground": "Foreground",
+	"foreground-desc": "Provides a skin that focuses on putting your content in the foreground",
+	"foreground-browsermsg": "may not look as expected in this version of Internet Explorer. We recommend you upgrade to a newer version of Internet Explorer or switch to a browser like Firefox or Chrome.",
+	"foreground-menutitle": "Menu"
+}

+ 11 - 0
i18n/es.json

@@ -0,0 +1,11 @@
+{
+	"@metadata": {
+		"authors": [
+			"Manuel Rubio "
+		]
+	},
+	"skinname-foreground": "Foreground",
+	"foreground-desc": "Provee una plantilla que se centra en resaltar en primer plano el contenido.",
+	"foreground-browsermsg": "puede verse diferente a lo esperado en esta versión de Internet Explorer le recomendamos que se actualice a una versión más reciente, o cambie a un navegador como Firefox o Chrome.",
+	"foreground-menutitle": "Menu"
+}

+ 11 - 0
i18n/nl.json

@@ -0,0 +1,11 @@
+{
+	"@metadata": {
+		"authors": [
+			"Marijke Stuivenberg"
+		]
+	},
+	"skinname-foreground": "Foreground",
+	"foreground-desc": "Biedt een uiterlijk dat er voor zorgt dat de inhoud op de voorgrond wordt weergegeven",
+	"foreground-browsermsg": "wordt mogelijk niet goed weergegeven in deze versie van Internet Explorer. Aanbevolen wordt te upgraden naar een nieuwere versie van Internet Explorer of om te schakelen naar een browser zoals Firefox of Chrome.",
+	"foreground-menutitle": "Menu"
+}

+ 11 - 0
i18n/ru.json

@@ -0,0 +1,11 @@
+{
+	"@metadata": {
+		"authors": [
+			"HiRolla"
+		]
+	},
+	"skinname-foreground": "Foreground",
+	"foreground-desc": "Оформление, которое выводит на передний план именно содержимое страниц, минимизируя интерфейс сайта",
+	"foreground-browsermsg": "Возможны непредвиденные изменения вида в Internet Explorer. Рекомендуем обновить Internet Explorer или пользоваться такими браузерами, как Firefox или Chrome.",
+	"foreground-menutitle": "Меню"
+}

部分文件因为文件数量过多而无法显示