#1096 redesign language menu and drop jquery.uls
Merged 2 years ago by darknao. Opened 2 years ago by darknao.
darknao/fedora-websites lang_sel  into  staging

@@ -10,11 +10,6 @@ 

      <link rel='stylesheet' media="screen" href='https://fonts.googleapis.com/css?family=Montserrat' />

      <link rel="stylesheet" type="text/css" href="${path}/static/css/font-awesome.css" />

  

-     <!-- language selector -->

-     <link rel="stylesheet" type="text/css" href="${path}/static/css/jquery.uls.css" />

-     <link rel="stylesheet" type="text/css" href="${path}/static/css/jquery.uls.grid.css" />

-     <link rel="stylesheet" type="text/css" href="${path}/static/css/jquery.uls.lcd.css" />

- 

      <!-- use RTL css for specific languages -->

      <link py:if="lang in ('ar', 'bal', 'fa', 'he')" rel="stylesheet" type="text/css" media="all" href="${path}/static/css/bootstrap-rtl.css" />

  

@@ -91,14 +91,7 @@ 

                      </div>

                      <div class="col-md-3">

                          <div class="widget-body">

-                             <div class="pull-left language-header">

-                               <span class="active uls-trigger lang-dropdown">${_('Change Language')}</span>

-                                 <form action="" method="GET" style="visibility:hidden" id="langSelect" class="lang-dropdown">

-                                   <input type="hidden" name="lang" id="selectedLang" value="" />

-                         <!-- Allow uls script to change language through legacy system -->

-                                   <input type="submit" value="${_('OK')}" />

-                                 </form>

-                               </div>

+                             <xi:include href="../templates/translations.html" />

                          </div>

                      </div>

                  </div> <!-- /row of widgets -->

@@ -14,14 +14,6 @@ 

      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

      <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>

  

-     <script type="text/javascript" src="${path}/static/js/jquery.uls.data.js"></script>

- 	  <script type="text/javascript" src="${path}/static/js/jquery.uls.data.utils.js"></script>

- 	  <script type="text/javascript" src="${path}/static/js/jquery.uls.lcd.js"></script>

- 	  <script type="text/javascript" src="${path}/static/js/jquery.uls.languagefilter.js"></script>

- 	  <script type="text/javascript" src="${path}/static/js/jquery.uls.regionfilter.js"></script>

- 	  <script type="text/javascript" src="${path}/static/js/jquery.uls.core.js"></script>

-     <xi:include href="../templates/translations.html" />

- 

      <!--[if lt IE 9]>

      <script type="text/javascript" src="${path}/static/js/html5shiv.js"></script>

      <script type="text/javascript" src="${path}/static/js/respond.min.js"></script>

@@ -763,8 +763,31 @@ 

    padding-left: 2px;

  }

  .language-header {

-   margin-top: 43px;

+   margin-top: 29px;

  }

+ .language-menu ul {

+   column-count: 3;

+   column-gap: 3em;

+   margin: 1.5em;

+ }

+ 

+ @media (min-width:992px) {

+   .language-menu {

+     width: 97rem;

+   }

+   .language-menu ul {

+     column-count: 5;

+   }

+ }

+ @media (min-width:1200px) {

+   .language-menu {

+     width: 117rem;

+   }

+   .language-menu ul {

+     column-count: 5;

+   }

+ }

+ 

  .btn-topmargin {

    margin-top: 10px;

  }

@@ -1,75 +0,0 @@ 

- .uls-compact .uls-icon-close,

- .uls-compact .uls-title-region,

- .uls-compact .uls-map-block,

- .uls-compact #uls-settings-block {

- 	display: none !important;

- }

- 

- .uls-compact.uls-menu {

- 	border-radius: 0;

- }

- 

- .uls-compact .uls-search {

- 	background: white;

- 	border-top: none;

- 	padding: 0.8em 0;

- 	border-bottom-width: 1px;

- 	border-bottom-style: solid;

- 	border-bottom-color: #DDD;

- }

- 

- .uls-compact .uls-filterinput,

- .uls-compact .uls-filterinput:focus {

- 	background-color: transparent;

- 	border: none;

- 	box-shadow: none;

- 	outline: none;

- 	font-size: 18px;

- 	left: 0;

- }

- 

- .uls-compact .uls-language-list {

- 	background: #FCFCFC;

- 	height: 20em;

- }

- 

- .uls-compact .uls-search-label {

- 	background-size: 25px;

- 	height: 26px;

- 	width: 26px;

- 	float: right;

- 	opacity: 0.8;

- }

- 

- .uls-compact .uls-languagefilter-clear {

- 	margin-left: 0;

- }

- 

- .uls-compact .uls-title-region a {

- 	color: #777;

- 	display: inline-block;

- 	margin: 15px 0 5px 19px;

- 	cursor: pointer;

- 	padding: 6px;

- 	text-decoration: none;

- 	font-size: 14px;

- 	border: 1px solid transparent;

- }

- 

- .uls-compact .uls-title-region a:hover {

- 	color: #252525;

- 	background: #F0F0F0;

- 	border: 1px solid #DDD;

- 	border-radius: 3px;

- }

- 

- .uls-compact .uls-title-region a:before {

- 	display: inline-block;

- 	width: 0;

- 	height: 0;

- 	border-right: 4px solid #777;

- 	border-top: 4px solid transparent;

- 	border-bottom: 4px solid transparent;

- 	content: "";

- 	margin: 0 6px 0 0;

- }

@@ -1,260 +0,0 @@ 

- .uls-trigger {

- 	/* @embed */

- 	background: transparent url('/static/images/icon-language.png') no-repeat scroll left center;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/icon-language.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/icon-language.svg');

- 	padding-left: 30px;

- }

- 

- .uls-menu {

- 	position: absolute;

- 	z-index: 1000;

- 	display: none;

- 	margin-top: 1px;

- 	/* Styling */

- 	background-color: #ffffff;

- 	border: 1px solid #ccc;

- 	border: 1px solid rgba(0, 0, 0, 0.2);

- 	border-radius: 5px;

- 	-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);

- 	-moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);

- 	box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);

- 	-webkit-background-clip: padding-box;

- 	-moz-background-clip: padding;

- 	background-clip: padding-box;

- }

- 

- .uls-wide {

- 	min-width: 715px;

- 	width: 45%;

- }

- 

- .uls-title-region a {

- 	padding-left: 15px;

- }

- 

- .uls-menu .uls-title {

- 	font-weight: normal;

- 	border: none;

- 	padding-top: 1.25em;

- 	padding-left: 15px;

- 	padding-bottom: 3px;

- 	font-size: 18pt;

- 	line-height: 1.25em;

- 	color: #555;

- }

- 

- .uls-menu .uls-no-results-found-title {

- 	font-size: 16pt;

- 	font-weight: bold;

- 	line-height: 1.5em;

- 	padding-left: 6px;

- 	padding-top: 10px;

- 	margin-top: 0;

- 	margin-bottom: 15px;

- 	border-bottom: none;

- 	color: #555;

- }

- 

- .uls-menu .uls-lcd-region-section .uls-lcd-region-title {

- 	color: #777;

- 	font-size: 14pt;

- 	font-weight: lighter;

- 	line-height: 1.5em;

- 	padding-left: 0;

- 	margin-top: 0;

- 	margin-bottom: 10px;

- 	border-bottom: none;

- }

- 

- .uls-worldmap {

- 	/* @embed */

- 	background: transparent url('/static/images/world_map.png') no-repeat scroll right top;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/world_map.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/world_map.svg');

- 	background-size: 100%;

- }

- 

- div.uls-region {

- 	cursor: pointer;

- 	padding: 0;

- 	margin: 0;

- 	height: 120px;

- 	border-bottom-color: transparent;

- 	border-bottom-style: solid;

- 	border-bottom-width: 2px;

- }

- 

- .uls-worldmap .uls-region { /* The map doesn't flip */

- 	/* @noflip */

- 	float: left;

- }

- 

- .uls-region a {

- 	bottom: 2px;

- 	left: 2px;

- 	padding: 0;

- 	position: absolute;

- 	font-size: 13px;

- 	line-height: 1.2em;

- 	text-decoration: none;

- 	overflow: hidden;

- 	text-overflow: ellipsis;

- 	width: 99%;

- }

- 

- .uls-region:hover {

- 	/*Cross-browser background transparency*/

- 	background: #3366bb;

- 	background: rgba(51, 102, 187, 0.1);

- 	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#253366bb, endColorstr=#253366bb );

- 	-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#253366bb, endColorstr=#253366bb)";

- }

- 

- .uls-map-block .active {

- 	border-bottom-color: #3366bb;

- 	border-bottom-style: solid;

- }

- 

- .uls-menu .row .uls-map-block {

- 	top: 1px;

- 	margin-right: 0;

- 	padding-right: 0;

- 	float: right;

- 	overflow: hidden;

- 	opacity: 0.7;

- 	-moz-transition: opacity 0.2s linear;

- 	-o-transition: opacity 0.2s linear;

- 	-webkit-transition: opacity 0.2s linear;

- 	transition: opacity 0.2s linear;

- }

- 

- .uls-map-block a {

- 	color: #333;

- 	opacity: 0;

- 	-moz-transition: opacity 0.15s linear;

- 	-o-transition: opacity 0.15s linear;

- 	-webkit-transition: opacity 0.15s linear;

- 	transition: opacity 0.15s linear;

- }

- 

- .uls-menu .uls-map-block:hover,

- .uls-menu .uls-map-block:hover a {

- 	opacity: 1;

- 	color: #333;

- }

- 

- .uls-map-block .uls-region-1 {

- 	border-color: transparent;

- }

- 

- .uls-map-block:hover .active {

- 	border-color: #3366bb;

- }

- 

- .uls-map-block .active a {

- 	font-weight: bold;

- }

- 

- .uls-icon-close {

- 	/* @embed */

- 	background: transparent url('/static/images/close.png') no-repeat scroll center center;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/close.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/close.svg');

- 	float: right;

- 	padding: 15px;

- 	cursor: pointer;

- }

- 

- .uls-menu .uls-languagefilter {

- 	background-color: transparent;

- 	border: 1px solid #c9c9c9;

- 	border-radius: 2px 2px 2px 2px;

- 	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) inset;

- 	color: #333;

- 	display: block;

- 	padding: 6px;

- 	-moz-transition: border 0.15s linear 0s;

- 	-o-transition: border 0.15s linear 0s;

- 	-webkit-transition: border 0.15s linear 0s;

- 	transition: border 0.15s linear 0s;

- }

- 

- .uls-menu .uls-languagefilter:focus {

- 	border: 1px solid #3366bb;

- }

- 

- .uls-menu .uls-search {

- 	position: relative;

- 	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F0F0F0', endColorstr='#FBFBFB');

- 	background: #f8f8f8;

- 	background: -webkit-gradient(linear, left top, left bottom, from(#F0F0F0), to(#FBFBFB));

- 	background: -webkit-linear-gradient(top, #F0F0F0, #FBFBFB);

- 	background: -moz-linear-gradient(top, #F0F0F0, #FBFBFB);

- 	background: -o-linear-gradient(top, #F0F0F0, #FBFBFB);

- 	background: linear-gradient(#F0F0F0, #FBFBFB);

- 	border-top-color: #AAA;

- 	border-top-style: solid;

- 	border-top-width: 1px;

- 	padding: 0.8em 0;

- 	border-bottom-width: 1px;

- 	border-bottom-style: solid;

- 	border-bottom-color: #DDD;

- }

- 

- .uls-menu .uls-search-label {

- 	/* @embed */

- 	background: transparent url('/static/images/search.png') no-repeat scroll right center;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/search.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/search.svg');

- 	background-size: 30px;

- 	height: 32px;

- 	width: 32px;

- 	float: right;

- }

- 

- .uls-menu .uls-languagefilter-clear {

- 	/* @embed */

- 	background: transparent url('/static/images/clear.png') no-repeat scroll left center;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/clear.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/clear.svg');

- 	cursor: pointer;

- 	height: 32px;

- 	position: absolute;

- 	width: 32px;

- 	margin-left: -32px;

- }

- 

- .uls-menu .uls-filterinput {

- 	position: absolute;

- 	top: 0;

- 	left: 0;

- 	font-size: 14px;

- 	height: 32px;

- 	width: 100%;

- 	text-align: left;

- }

- 

- .uls-menu .uls-filtersuggestion {

- 	padding: 6px;

- 	background-color: white;

- 	color: #888;

- 	border: 1px transparent;

- 	border-radius: 2px 2px 2px 2px;

- 	box-shadow: 0 1px 2px transparent inset;

- 	left: 1px;

- }

- 

- .uls-menu .uls-search-input-block {

- 	position: relative;

- }

@@ -1,315 +0,0 @@ 

- /* Generated using Foundation http://foundation.zurb.com/docs/grid.php */

- /* Global Reset & Standards ---------------------- */

- .grid * {

- 	-webkit-box-sizing: border-box;

- 	-moz-box-sizing: border-box;

- 	box-sizing: border-box;

- }

- 

- /* Misc ---------------------- */

- .grid .left {

- 	float: left;

- }

- 

- .grid .right {

- 	float: right;

- }

- 

- .grid .text-left {

- 	text-align: left;

- }

- 

- .grid .text-right {

- 	text-align: right;

- }

- 

- .grid .text-center {

- 	text-align: center;

- }

- 

- .grid .hide {

- 	display: none;

- }

- 

- .grid .highlight {

- 	background: #ffff99;

- }

- 

- /* The Grid ---------------------- */

- .grid .row {

- 	width: 100%;

- 	max-width: none;

- 	min-width: 600px;

- 	margin: 0 auto;

- }

- 

- .grid .row .row {

- 	width: auto;

- 	max-width: none;

- 	min-width: 0;

- 	margin: 0 -5px;

- }

- 

- .grid .row.collapse .column,

- .grid .row.collapse .columns {

- 	padding: 0;

- }

- 

- .grid .row .row {

- 	width: auto;

- 	max-width: none;

- 	min-width: 0;

- 	margin: 0 -5px;

- }

- 

- .grid .row .row.collapse {

- 	margin: 0;

- }

- 

- .grid .column, .grid .columns {

- 	float: left;

- 	min-height: 1px;

- 	padding: 0 5px;

- 	position: relative;

- }

- 

- .grid .column.centered, .grid .columns.centered {

- 	float: none;

- 	margin: 0 auto;

- }

- 

- .grid .row .one {

- 	width: 8.333%;

- }

- 

- .grid .row .two {

- 	width: 16.667%;

- }

- 

- .grid .row .three {

- 	width: 25%;

- }

- 

- .grid .row .four {

- 	width: 33.333%;

- }

- 

- .grid .row .five {

- 	width: 41.667%;

- }

- 

- .grid .row .six {

- 	width: 50%;

- }

- 

- .grid .row .seven {

- 	width: 58.333%;

- }

- 

- .grid .row .eight {

- 	width: 66.667%;

- }

- 

- .grid .row .nine {

- 	width: 75%;

- }

- 

- .grid .row .ten {

- 	width: 83.333%;

- }

- 

- .grid .row .eleven {

- 	width: 91.667%;

- }

- 

- .grid .row .twelve {

- 	width: 100%;

- }

- 

- .grid .row .offset-by-one {

- 	margin-left: 8.333%;

- }

- 

- .grid .row .offset-by-two {

- 	margin-left: 16.667%;

- }

- 

- .grid .row .offset-by-three {

- 	margin-left: 25%;

- }

- 

- .grid .row .offset-by-four {

- 	margin-left: 33.333%;

- }

- 

- .grid .row .offset-by-five {

- 	margin-left: 41.667%;

- }

- 

- .grid .row .offset-by-six {

- 	margin-left: 50%;

- }

- 

- .grid .row .offset-by-seven {

- 	margin-left: 58.333%;

- }

- 

- .grid .row .offset-by-eight {

- 	margin-left: 66.667%;

- }

- 

- .grid .row .offset-by-nine {

- 	margin-left: 75%;

- }

- 

- .grid .row .offset-by-ten {

- 	margin-left: 83.333%;

- }

- 

- .grid .push-two {

- 	left: 16.667%;

- }

- 

- .grid .pull-two {

- 	right: 16.667%;

- }

- 

- .grid .push-three {

- 	left: 25%;

- }

- 

- .grid .pull-three {

- 	right: 25%;

- }

- 

- .grid .push-four {

- 	left: 33.333%;

- }

- 

- .grid .pull-four {

- 	right: 33.333%;

- }

- 

- .grid .push-five {

- 	left: 41.667%;

- }

- 

- .grid .pull-five {

- 	right: 41.667%;

- }

- 

- .grid .push-six {

- 	left: 50%;

- }

- 

- .grid .pull-six {

- 	right: 50%;

- }

- 

- .grid .push-seven {

- 	left: 58.333%;

- }

- 

- .grid .pull-seven {

- 	right: 58.333%;

- }

- 

- .grid .push-eight {

- 	left: 66.667%;

- }

- 

- .grid .pull-eight {

- 	right: 66.667%;

- }

- 

- .grid .push-nine {

- 	left: 75%;

- }

- 

- .grid .pull-nine {

- 	right: 75%;

- }

- 

- .grid .push-ten {

- 	left: 83.333%;

- }

- 

- .grid .pull-ten {

- 	right: 83.333%;

- }

- 

- /* Nicolas Gallagher's micro clearfix */

- .grid .row {

- 	*zoom: 1;

- }

- 

- .grid .row:before, .grid .row:after {

- 	content: "";

- 	display: table;

- }

- 

- .grid .row:after {

- 	clear: both;

- }

- 

- /* Block Grids ---------------------- */

- /* These are 2-up, 3-up, 4-up and 5-up ULs, suited

-  for repeating blocks of content. Add 'mobile' to

-  them to switch them just like the layout grid

-  (one item per line) on phones

- 

-  For IE7/8 compatibility block-grid items need to be

-  the same height. You can optionally uncomment the

-  lines below to support arbitrary height, but know

-  that IE7/8 do not support :nth-child.

-  -------------------------------------------------- */

- .grid .block-grid {

- 	display: block;

- 	overflow: hidden;

- 	padding: 0;

- }

- 

- .grid .block-grid > li {

- 	display: block;

- 	height: auto;

- 	float: left;

- }

- 

- .grid .block-grid.two-up {

- 	margin: 0 -15px;

- }

- 

- .grid .block-grid.two-up > li {

- 	width: 50%;

- 	padding: 0 15px 15px;

- }

- 

- /* .block-grid.two-up>li:nth-child(2n+1) {clear: left;} */

- .grid .block-grid.three-up {

- 	margin: 0 -12px;

- }

- 

- .grid .block-grid.three-up > li {

- 	width: 33.33%;

- 	padding: 0 12px 12px;

- }

- 

- /* .block-grid.three-up>li:nth-child(3n+1) {clear: left;} */

- .grid .block-grid.four-up {

- 	margin: 0 -10px;

- }

- 

- .grid .block-grid.four-up > li {

- 	width: 25%;

- 	padding: 0 10px 10px;

- }

- 

- /* .block-grid.four-up>li:nth-child(4n+1) {clear: left;} */

- .grid .block-grid.five-up {

- 	margin: 0 -8px;

- }

- 

- .grid .block-grid.five-up > li {

- 	width: 20%;

- 	padding: 0 8px 8px;

- }

@@ -1,86 +0,0 @@ 

- .uls-lcd-region-section ul li:hover {

- 	background-color: #eaeff7;

- }

- 

- .uls-lcd-region-section {

- 	margin-top: 10px;

- }

- 

- /* Language list */

- .uls-language-list {

- 	height: 17em;

- 	overflow: auto;

- 	width: auto;

- }

- 

- .uls-language-block ul {

- 	margin: 0 0 1.5em;

- }

- 

- .uls-language-list ul li {

- 	cursor: pointer;

- 	font-weight: normal;

- 	overflow: hidden;

- 	white-space: nowrap;

- 

- 	/*

- 	 * Some languages have long names for various reasons and we still want

- 	 * them to appear on one line.

- 	 * To make it work correctly, the directionality must be set correctly

- 	 * on the item level.

- 	 */

- 	text-overflow: ellipsis;

- 

- 	/*

- 	 * The directionality (ltr/rtl) for each list item is set dynamically

- 	 * as HTML attributes in JavaScript. Setting directionality also applies

- 	 * alignment, but a list with mixed alignment is hard to read.

- 	 * All items are therefore explicitly aligned to the left, including names

- 	 * of right-to-left languages in left-to-right environment and vice versa.

- 	 * As long as the directionality of the item is set correctly, the text

- 	 * is readable.

- 	 */

- 	text-align: left;

- 

- 	/*

- 	 * We don't want any visible bullets in this list.

- 	 */

- 	list-style-image: none;

- 	list-style-type: none;

- }

- 

- .uls-language-list strong {

- 	text-decoration: underline;

- }

- 

- .uls-language-list a {

- 	font-weight: normal;

- 	text-decoration: none;

- 	color: #3366bb;

- 	font-size: 14px;

- 	line-height: 1.6em;

- }

- 

- .uls-language-block {

- 	width: 100%;

- }

- 

- .uls-no-results-view {

- 	color: #555;

- 	height: 100%;

- }

- 

- .uls-no-found-more {

- 	font-size: 0.9em;

- 	background: #F8F8F8;

- 	width: 100%;

- 	margin-top: 1.6em;

- 	line-height: 1.6em;

- 	position: absolute;

- 	bottom: 0;

- 	left: 0;

- }

- 

- .uls-no-found-more a {

- 	cursor: pointer;

- }

@@ -1,319 +0,0 @@ 

- @media only screen and (max-width: 767px) {

- 

- 	.uls-mobile.uls-menu {

- 		width: 95%;

- 		left: 2.5%;

- 	}

- 

- 	.uls-mobile .uls-language-list {

- 		-webkit-overflow-scrolling: touch;

- 	}

- 

- 	.uls-mobile .uls-language-block {

- 		padding-left: 15px !important;

- 	}

- 

- 	.uls-mobile .uls-language-block ul {

- 		min-height: 14em;

- 	}

- 

- 	.uls-mobile .uls-language-block a {

- 		font-size: 16px;

- 		line-height: 1.7em;

- 	}

- 

- 	.uls-mobile div.uls-region {

- 		width: 33% !important;

- 		float: left !important;

- 	}

- 

- 	.uls-mobile .uls-map-block a,

- 	.uls-mobile .uls-map-block {

- 		opacity: 1 !important;

- 	}

- 

- 	.uls-mobile .row {

- 		width: auto;

- 		min-width: 0;

- 		margin-left: 0;

- 		margin-right: 0;

- 	}

- 

- 	.uls-mobile .column,

- 	.uls-mobile .columns {

- 		width: auto !important;

- 		float: none;

- 	}

- 

- 	.uls-mobile .column:last-child,

- 	.uls-mobile .columns:last-child {

- 		float: none;

- 	}

- 

- 	.uls-mobile [class*="column"] + [class*="column"]:last-child {

- 		float: none;

- 	}

- 

- 	.uls-mobile .column:before,

- 	.uls-mobile .uls-mobile .columns:before,

- 	.uls-mobile .column:after,

- 	.columns:after {

- 		content: "";

- 		display: table;

- 	}

- 

- 	.uls-mobile .column:after,

- 	.uls-mobile .columns:after {

- 		clear: both;

- 	}

- 

- 	.uls-mobile .offset-by-one,

- 	.uls-mobile .offset-by-two,

- 	.uls-mobile .offset-by-three,

- 	.uls-mobile .offset-by-four,

- 	.uls-mobile .offset-by-five,

- 	.uls-mobile .offset-by-six,

- 	.uls-mobile .offset-by-seven,

- 	.uls-mobile .offset-by-eight,

- 	.uls-mobile .offset-by-nine,

- 	.uls-mobile .offset-by-ten {

- 		margin-left: 0 !important;

- 	}

- 

- 	.uls-mobile .push-two,

- 	.uls-mobile .push-three,

- 	.uls-mobile .push-four,

- 	.uls-mobile .push-five,

- 	.uls-mobile .push-six,

- 	.uls-mobile .push-seven,

- 	.uls-mobile .push-eight,

- 	.uls-mobile .push-nine,

- 	.uls-mobile .push-ten {

- 		left: auto;

- 	}

- 

- 	.uls-mobile .pull-two,

- 	.uls-mobile .pull-three,

- 	.uls-mobile .pull-four,

- 	.uls-mobile .pull-five,

- 	.uls-mobile .pull-six,

- 	.uls-mobile .pull-seven,

- 	.uls-mobile .pull-eight,

- 	.uls-mobile .pull-nine,

- 	.uls-mobile .pull-ten {

- 		right: auto;

- 	}

- 

- 	/* Mobile 4-column Grid */

- 	.uls-mobile .row .mobile-one {

- 		width: 25% !important;

- 		float: left;

- 		padding: 0 4px;

- 	}

- 

- 	.uls-mobile .row .mobile-one:last-child {

- 		float: right;

- 	}

- 

- 	.uls-mobile .row.collapse .mobile-one {

- 		padding: 0;

- 	}

- 

- 	.uls-mobile .row .mobile-two {

- 		width: 50% !important;

- 		float: left;

- 		padding: 0 4px;

- 	}

- 

- 	.uls-mobile .row .mobile-two:last-child {

- 		float: right;

- 	}

- 

- 	.uls-mobile .row.collapse .mobile-two {

- 		padding: 0;

- 	}

- 

- 	.uls-mobile .row .mobile-three {

- 		width: 75% !important;

- 		float: left;

- 		padding: 0 4px;

- 	}

- 

- 	.uls-mobile .row .mobile-three:last-child {

- 		float: right;

- 	}

- 

- 	.uls-mobile .row.collapse .mobile-three {

- 		padding: 0;

- 	}

- 

- 	.uls-mobile .row .mobile-four {

- 		width: 100% !important;

- 		float: left;

- 		padding: 0 4px;

- 	}

- 

- 	.uls-mobile .row .mobile-four:last-child {

- 		float: right;

- 	}

- 

- 	.uls-mobile .row.collapse .mobile-four {

- 		padding: 0;

- 	}

- 

- 	.uls-mobile .push-one-mobile {

- 		left: 25%;

- 	}

- 

- 	.uls-mobile .pull-one-mobile {

- 		right: 25%;

- 	}

- 

- 	.uls-mobile .push-two-mobile {

- 		left: 50%;

- 	}

- 

- 	.uls-mobile .pull-two-mobile {

- 		right: 50%;

- 	}

- 

- 	.uls-mobile .push-three-mobile {

- 		left: 75%;

- 	}

- 

- 	.uls-mobile .pull-three-mobile {

- 		right: 75%;

- 	}

- }

- 

- /* Visibility Classes ---------------------- */

- /* Standard (large) display targeting */

- .uls-mobile .show-for-small,

- .uls-mobile .show-for-medium,

- .uls-mobile .show-for-medium-down,

- .uls-mobile .hide-for-large,

- .uls-mobile .hide-for-large-up,

- .uls-mobile .show-for-xlarge {

- 	display: none !important;

- }

- 

- .uls-mobile .hide-for-xlarge,

- .uls-mobile .show-for-large,

- .uls-mobile .show-for-large-up,

- .uls-mobile .hide-for-small,

- .uls-mobile .hide-for-medium,

- .uls-mobile .hide-for-medium-down {

- 	display: block !important;

- }

- 

- /* Very large display targeting */

- @media only screen and (min-width: 1441px) {

- 

- 	.uls-mobile .hide-for-small,

- 	.uls-mobile .hide-for-medium,

- 	.uls-mobile .hide-for-medium-down,

- 	.hide-for-large, .show-for-large-up,

- 	.show-for-xlarge {

- 		display: block !important;

- 	}

- 

- 	.show-for-small,

- 	.uls-mobile .show-for-medium,

- 	.uls-mobile .show-for-medium-down,

- 	.uls-mobile .show-for-large,

- 	.uls-mobile .hide-for-large-up,

- 	.uls-mobile .hide-for-xlarge {

- 		display: none !important;

- 	}

- }

- /* Medium display targeting */

- @media only screen and (max-width: 1279px) and (min-width: 768px) {

- 

- 	.uls-mobile .hide-for-small,

- 	.uls-mobile .show-for-medium,

- 	.uls-mobile .show-for-medium-down,

- 	.uls-mobile .hide-for-large,

- 	.uls-mobile .hide-for-large-up,

- 	.uls-mobile .hide-for-xlarge {

- 		display: block !important;

- 	}

- 

- 	.uls-mobile .show-for-small,

- 	.uls-mobile .hide-for-medium,

- 	.uls-mobile .hide-for-medium-down,

- 	.uls-mobile .show-for-large,

- 	.uls-mobile .show-for-large-up,

- 	.uls-mobile .show-for-xlarge {

- 		display: none !important;

- 	}

- }

- /* Small display targeting */

- @media only screen and (max-width: 767px) {

- 

- 	.uls-mobile .show-for-small,

- 	.uls-mobile .hide-for-medium,

- 	.uls-mobile .show-for-medium-down,

- 	.uls-mobile .hide-for-large,

- 	.uls-mobile .hide-for-large-up,

- 	.uls-mobile .hide-for-xlarge {

- 		display: block !important;

- 	}

- 	.uls-mobile .hide-for-small,

- 	.uls-mobile .show-for-medium,

- 	.uls-mobile .hide-for-medium-down,

- 	.uls-mobile .show-for-large,

- 	.uls-mobile .show-for-large-up,

- 	.uls-mobile .show-for-xlarge {

- 		display: none !important;

- 	}

- }

- 

- /* Orientation targeting */

- .uls-mobile .show-for-landscape,

- .uls-mobile .hide-for-portrait {

- 	display: block !important;

- }

- 

- .uls-mobile .hide-for-landscape,

- .uls-mobile .show-for-portrait {

- 	display: none !important;

- }

- 

- @media screen and (orientation: landscape) {

- 	.uls-mobile .show-for-landscape,

- 	.uls-mobile .hide-for-portrait {

- 		display: block !important;

- 	}

- 	.uls-mobile .hide-for-landscape,

- 	.uls-mobile .show-for-portrait {

- 		display: none !important;

- 	}

- }

- 

- @media screen and (orientation: portrait) {

- 	.uls-mobile .show-for-portrait,

- 	.uls-mobile .hide-for-landscape {

- 		display: block !important;

- 	}

- 	.uls-mobile .hide-for-portrait,

- 	.uls-mobile .show-for-landscape {

- 		display: none !important;

- 	}

- }

- 

- /* Touch-enabled device targeting */

- .uls-mobile .show-for-touch {

- 	display: none !important;

- }

- 

- .uls-mobile .hide-for-touch {

- 	display: block !important;

- }

- 

- .uls-mobile .touch .show-for-touch {

- 	display: block !important;

- }

- 

- .uls-mobile .touch .hide-for-touch {

- 	display: none !important;

- }

@@ -1,444 +0,0 @@ 

- /**

-  * Universal Language Selector

-  * ULS core component.

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- ( function ( $ ) {

- 	'use strict';

- 

- 	var template, ULS;

- 

- 	// Region numbers in id attributes also appear in the langdb.

- 	/*jshint multistr:true */

- 	template = '<div class="grid uls-menu uls-wide"> \

- 			<div class="row"> \

- 				<span id="uls-close" class="uls-icon-close"></span> \

- 			</div> \

- 			<div class="row"> \

- 				<div class="uls-title-region seven columns">\

- 					<h1 data-i18n="uls-select-language" class="uls-title">Select Language</h1>\

- 				</div>\

- 				<div class="five columns uls-map-block" id="uls-map-block">\

- 					<div class="row">\

- 						<div data-regiongroup="1" id="uls-region-1" class="three columns uls-region uls-region-1">\

- 							<a data-i18n="uls-region-WW">Worldwide</a>\

- 						</div>\

- 						<div class="nine columns">\

- 							<div class="row uls-worldmap">\

- 								<div data-regiongroup="2" id="uls-region-2" class="four columns uls-region">\

- 									<a data-i18n="uls-region-AM">America</a>\

- 								</div>\

- 								<div data-regiongroup="3" id="uls-region-3" class="four columns uls-region">\

- 									<a><span data-i18n="uls-region-EU">Europe</span><br>\

- 									<span data-i18n="uls-region-ME">Middle East</span><br>\

- 									<span data-i18n="uls-region-AF">Africa</span></a>\

- 								</div>\

- 								<div data-regiongroup="4" id="uls-region-4" class="four columns uls-region">\

- 									<a><span data-i18n="uls-region-AS">Asia</span><br>\

- 									<span data-i18n="uls-region-PA">Pacific</span></a>\

- 								</div>\

- 							</div>\

- 						</div>\

- 					</div>\

- 				</div>\

- 			</div>\

- 			<div id="search" class="row uls-search"> \

- 				<div class="one column">\

- 					<span class="uls-search-label"></span>\

- 				</div>\

- 				<div class="ten columns">\

- 					<div id="uls-search-input-block" class="uls-search-input-block">\

- 						<input type="text" class="uls-filterinput uls-filtersuggestion" id="uls-filtersuggestion" disabled="true"\

- 							autocomplete="off" /> <input type="text" class="uls-filterinput uls-languagefilter" id="uls-languagefilter"\

- 							data-clear="uls-languagefilter-clear" data-suggestion="uls-filtersuggestion"\

- 							placeholder="Language search" autocomplete="off" />\

- 					</div>\

- 				</div>\

- 				<div class="one column">\

- 					<span id="uls-languagefilter-clear" class="uls-languagefilter-clear"></span>\

- 				</div>\

- 			</div>\

- 			<div class="row uls-language-list"></div>\

- 			<div class="row" id="uls-settings-block"></div>\

- 		</div>';

- 	/*jshint multistr:false */

- 

- 	/**

- 	 * ULS Public class definition

- 	 */

- 	ULS = function ( element, options ) {

- 		this.$element = $( element );

- 		this.options = $.extend( {}, $.fn.uls.defaults, options );

- 		this.$menu = $( template );

- 		this.languages = this.options.languages;

- 

- 		for ( var code in this.languages ) {

- 			if ( $.uls.data.languages[code] === undefined ) {

- 				// Language is unknown to ULS.

- 				delete this.languages[code];

- 			}

- 		}

- 

- 		this.left = this.options.left;

- 		this.top = this.options.top;

- 		this.shown = false;

- 		this.initialized = false;

- 

- 		this.$languageFilter = this.$menu.find( '#uls-languagefilter' );

- 		this.$regionFilters = this.$menu.find( '.uls-region' );

- 		this.$resultsView = this.$menu.find( 'div.uls-language-list' );

- 

- 		this.render();

- 		this.listen();

- 		this.ready();

- 	};

- 

- 	ULS.prototype = {

- 		constructor: ULS,

- 

- 		/**

- 		 * A "hook" that runs after the ULS constructor.

- 		 * At this point it is not guaranteed that the ULS has its dimensions

- 		 * and that the languages lists are initialized.

- 		 *

- 		 * To use it, pass a function as the onReady parameter

- 		 * in the options when initializing ULS.

- 		 */

- 		ready: function () {

- 			if ( this.options.onReady ) {

- 				this.options.onReady.call( this );

- 			}

- 		},

- 

- 		/**

- 		 * A "hook" that runs after the ULS panel becomes visible

- 		 * by using the show method.

- 		 *

- 		 * To use it, pass a function as the onVisible parameter

- 		 * in the options when initializing ULS.

- 		 */

- 		visible: function () {

- 			if ( this.options.onVisible ) {

- 				this.options.onVisible.call( this );

- 			}

- 		},

- 

- 		/**

- 		 * Calculate the position of ULS

- 		 * Returns an object with top and left properties.

- 		 * @returns {Object}

- 		 * position is set by setting also window height and margin

- 		 */

- 		position: function () {

- 			var pos = $.extend( {}, this.$element.offset(), {

- 				height: this.$element[0].offsetHeight

- 			} );

- 			return {

- 				top: this.top !== undefined ? this.top : pos.top - (447+10),

- 				left: this.left !== undefined ? this.left : '25%'

- 			};

- 		},

- 

- 		/**

- 		 * Show the ULS window

- 		 */

- 		show: function () {

- 			this.$menu.css( this.position() );

- 

- 			if ( this.options.compact ) {

- 				this.$menu.addClass( 'uls-compact' );

- 			}

- 

- 			if ( !this.initialized ) {

- 				$( 'body' ).prepend( this.$menu );

- 				this.i18n();

- 

- 				// Initialize with a full search.

- 				// This happens on first time click of uls trigger.

- 				this.defaultSearch();

- 

- 				this.initialized = true;

- 			}

- 

- 			// hide any other visible ULS

- 			$( '.uls-menu' ).hide();

- 

- 			this.$menu.show();

- 			this.$menu.scrollIntoView();

- 			this.shown = true;

- 

- 			if ( !this.isMobile() ) {

- 				this.$languageFilter.focus();

- 			}

- 

- 			this.visible();

- 		},

- 

- 		i18n: function () {

- 			if ( $.i18n ) {

- 				this.$menu.find( '[data-i18n]' ).i18n();

- 				this.$languageFilter.prop( 'placeholder', $.i18n( 'uls-search-placeholder' ) );

- 			}

- 		},

- 

- 		defaultSearch: function () {

- 			this.$resultsView.lcd( 'empty' );

- 

- 			this.$regionFilters.regionselector( 'show' );

- 		},

- 

- 		/**

- 		 * Hide the ULS window

- 		 */

- 		hide: function () {

- 			this.$menu.hide();

- 			this.shown = false;

- 		},

- 

- 		/**

- 		 * Render the UI elements.

- 		 * Does nothing by default. Can be used for customization.

- 		 */

- 		render: function () {

- 			// Rendering stuff here

- 		},

- 

- 		/**

- 		 * Callback for no results found context.

- 		 */

- 		noresults: function () {

- 			$( '.regionselector' ).removeClass( 'active' );

- 			this.$resultsView.lcd( 'noResults' );

- 		},

- 

- 		/**

- 		 * callback for results found context.

- 		 */

- 		success: function () {

- 			$( '.regionselector' ).removeClass( 'active' );

- 			this.$resultsView.show();

- 		},

- 

- 		/**

- 		 * Bind the UI elements with their event listeners

- 		 */

- 		listen: function () {

- 			var lcd,

- 				uls = this;

- 

- 			// Register all event listeners to the ULS here.

- 			this.$element.on( 'click', $.proxy( this.click, this ) );

- 

- 			this.$languageFilter.on( 'searchclear.uls', $.proxy( this.defaultSearch, this ) );

- 			this.$languageFilter.on( 'noresults.uls', $.proxy( this.noresults, this ) );

- 			this.$languageFilter.on( 'resultsfound.uls', $.proxy( this.success, this ) );

- 

- 			// Close when clicking on the close button

- 			this.$menu.find( '#uls-close' ).on( 'click', $.proxy( this.cancel, this ) );

- 			// Don't do anything if pressing on empty space in the ULS

- 			this.$menu.on( 'click', function ( e ) {

- 				e.stopPropagation();

- 			} );

- 

- 			// Handle key press events on the menu

- 			this.$menu.on( 'keypress', $.proxy( this.keypress, this ) )

- 				.on( 'keyup', $.proxy( this.keyup, this ) );

- 

- 			if ( this.eventSupported( 'keydown' ) ) {

- 				this.$menu.on( 'keydown', $.proxy( this.keypress, this ) );

- 			}

- 

- 			lcd = this.$resultsView.lcd( {

- 				languages: this.languages,

- 				quickList: this.options.quickList,

- 				clickhandler: $.proxy( this.select, this ),

- 				source: this.$languageFilter,

- 				showRegions: this.options.showRegions,

- 				languageDecorator: this.options.languageDecorator

- 			} ).data( 'lcd' );

- 

- 			this.$languageFilter.languagefilter( {

- 				$target: lcd,

- 				languages: this.languages,

- 				searchAPI: this.options.searchAPI,

- 				onSelect: $.proxy( this.select, this )

- 			} );

- 

- 			// Create region selectors, one per region

- 			this.$menu.find( '.uls-region, .uls-region-link' ).regionselector( {

- 				$target: lcd,

- 				languages: this.languages,

- 				success: function ( regionfilter ) {

- 					// Deactivate search filtering

- 					uls.$languageFilter.languagefilter( 'deactivate' );

- 

- 					// If it is the WW region, show the quicklist

- 					if ( regionfilter.regionGroup === 1 ) {

- 						lcd.quicklist();

- 					}

- 

- 					// Show 'results view' if we are in no results mode

- 					uls.success();

- 				},

- 				noresults: function () {

- 					uls.$languageFilter.languagefilter( 'clear' );

- 				}

- 			} );

- 

- 			$( 'html' ).click( $.proxy( this.cancel, this ) );

- 		},

- 

- 		/**

- 		 * On select handler for search results

- 		 * @param langCode

- 		 */

- 		select: function ( langCode ) {

- 			this.hide();

- 			this.$languageFilter.trigger( 'searchclear' );

- 			if ( this.options.onSelect ) {

- 				this.options.onSelect.call( this, langCode );

- 			}

- 		},

- 

- 		/**

- 		 * On cancel handler for the uls menu

- 		 */

- 		cancel: function () {

- 			this.hide();

- 

- 			if ( this.options.onCancel ) {

- 				this.options.onCancel.call( this );

- 			}

- 		},

- 

- 		keyup: function ( e ) {

- 			if ( !this.shown ) {

- 				return;

- 			}

- 

- 			if ( e.keyCode === 27 ) { // escape

- 				this.cancel();

- 				e.preventDefault();

- 				e.stopPropagation();

- 			}

- 		},

- 

- 		keypress: function ( e ) {

- 			if ( !this.shown ) {

- 				return;

- 			}

- 

- 			if ( e.keyCode === 27 ) { // escape

- 				this.cancel();

- 				e.preventDefault();

- 				e.stopPropagation();

- 			}

- 		},

- 

- 		click: function ( e ) {

- 			e.stopPropagation();

- 			e.preventDefault();

- 

- 			if ( this.shown ) {

- 				this.hide();

- 			} else {

- 				this.show();

- 			}

- 		},

- 

- 		eventSupported: function ( eventName ) {

- 			var isSupported = eventName in this.$menu;

- 

- 			if ( !isSupported ) {

- 				this.$element.setAttribute( eventName, 'return;' );

- 				isSupported = typeof this.$element[eventName] === 'function';

- 			}

- 

- 			return isSupported;

- 		},

- 

- 		isMobile: function () {

- 			return navigator.userAgent.match( /(iPhone|iPod|iPad|Android|BlackBerry)/ );

- 		}

- 	};

- 

- 	/* ULS PLUGIN DEFINITION

- 	 * =========================== */

- 

- 	$.fn.uls = function ( option ) {

- 		return this.each( function () {

- 			var $this = $( this ),

- 				data = $this.data( 'uls' ),

- 				options = typeof option === 'object' && option;

- 

- 			if ( !data ) {

- 				$this.data( 'uls', ( data = new ULS( this, options ) ) );

- 			}

- 

- 			if ( typeof option === 'string' ) {

- 				data[option]();

- 			}

- 		} );

- 	};

- 

- 	$.fn.uls.defaults = {

- 		onSelect: null, // Callback function to be called when a language is selected

- 		searchAPI: null, // Language search API

- 		languages: $.uls.data.getAutonyms(), // Languages to be used for ULS, default is all languages

- 		quickList: null, // Array of language codes or function that returns such

- 		compact: false, // Show ULS in compact mode

- 		showRegions: [ 'WW', 'AM', 'EU', 'ME', 'AF', 'AS', 'PA' ],

- 		languageDecorator: null // Callback function to be called when a language link is prepared - for custom decoration.

- 	};

- 

- 	// Define a dummy i18n function, if jquery.i18n not integrated.

- 	if ( !$.fn.i18n ) {

- 		$.fn.i18n = function () {};

- 	}

- 

- 	/*

- 	 * Simple scrollIntoView plugin.

- 	 * Scrolls the element to the viewport smoothly if it is not already.

- 	 */

- 	$.fn.scrollIntoView = function () {

- 		return this.each( function () {

- 			var scrollPosition,

- 				$window = $( window ),

- 				windowHeight = $window.height(),

- 				windowTop = $window.scrollTop(),

- 				windowBottom = windowTop + windowHeight,

- 				$element = $( this ),

- 				panelHeight = $element.height(),

- 				panelTop = $element.offset().top,

- 				panelBottom = panelTop + panelHeight;

- 

- 			if ( ( panelTop < windowTop ) || ( panelBottom > windowBottom ) ) {

- 				if ( windowTop > panelTop ) {

- 					scrollPosition = panelTop;

- 				} else {

- 					scrollPosition = panelBottom - windowHeight;

- 				}

- 				$( 'html, body' ).stop().animate( {

- 					scrollTop: scrollPosition

- 				}, 500 );

- 			}

- 		} );

- 	};

- 

- 	$.fn.uls.Constructor = ULS;

- }( jQuery ) );

@@ -1,7 +0,0 @@ 

- // Please do not edit. This file is generated from data/langdb.yaml by ulsdata2json.php

- ( function ( $ ) {

- 	'use strict';

- 	$.uls = $.uls || {};

- 	//noinspection JSHint

- 	$.uls.data = {"languages":{"aa":["Latn",["AF"],"Qafár af"],"ab":["Cyrl",["EU"],"Аҧсшәа"],"ace":["Latn",["AS","PA"],"Acèh"],"ady":["Cyrl",["EU","ME"],"Адыгэбзэ"],"ady-cyrl":["ady"],"ady-latn":["Latn",["EU","ME"],"Adygabze"],"aeb":["Arab",["AF"],"زَوُن"],"af":["Latn",["AF"],"Afrikaans"],"ahr":["Deva",["AS"],"अहिराणी"],"ak":["Latn",["AF"],"Akan"],"akz":["Latn",["AM"],"Albaamo innaaɬiilka"],"aln":["Latn",["EU"],"Gegë"],"am":["Ethi",["AF"],"አማርኛ"],"an":["Latn",["EU"],"aragonés"],"ang":["Latn",["EU"],"Ænglisc"],"anp":["Deva",["AS"],"अङ्गिका"],"ar":["Arab",["ME"],"العربية"],"arc":["Syrc",["ME"],"ܐܪܡܝܐ"],"arn":["Latn",["AM"],"mapudungun"],"aro":["Latn",["AM"],"Araona"],"arq":["Arab",["AF"],"جازايرية"],"ary":["Latn",["ME"],"Maġribi"],"arz":["Arab",["ME"],"مصرى"],"as":["Beng",["AS"],"অসমীয়া"],"ase":["Sgnw",["AM"],"American sign language"],"ast":["Latn",["EU"],"asturianu"],"av":["Cyrl",["EU"],"авар"],"avk":["Latn",["WW"],"Kotava"],"ay":["Latn",["AM"],"Aymar aru"],"az":["az-latn"],"az-latn":["Latn",["EU","ME"],"azərbaycanca"],"az-arab":["Arab",["EU","ME"],"آذربايجانجا"],"az-cyrl":["Latn",["EU","ME"],"азәрбајҹанҹа"],"azb":["az-arab"],"ba":["Cyrl",["EU"],"башҡортса"],"bar":["Latn",["EU"],"Boarisch"],"bat-smg":["sgs"],"bbc-latn":["Latn",["AS"],"Batak Toba"],"bbc-batk":["Batk",["AS"],"Batak Toba"],"bbc":["Latn",["AS"],"Batak Toba"],"bcc":["Arab",["AS","ME"],"بلوچی مکرانی"],"bcl":["Latn",["AS"],"Bikol Central"],"be-tarask":["Cyrl",["EU"],"беларуская (тарашкевіца)"],"be-x-old":["be-tarask"],"be":["Cyrl",["EU"],"беларуская"],"bew":["Latn",["AS"],"Bahasa Betawi"],"bfq":["Taml",["AS"],"படகா"],"bg":["Cyrl",["EU"],"български"],"bh":["Deva",["AS"],"भोजपुरी"],"bho":["Deva",["AS"],"भोजपुरी"],"bi":["Latn",["PA"],"Bislama"],"bjn":["Latn",["AS"],"Bahasa Banjar"],"bm":["Latn",["AF"],"bamanankan"],"bn":["Beng",["AS"],"বাংলা"],"bo":["Tibt",["AS"],"བོད་ཡིག"],"bpy":["Beng",["AS"],"বিষ্ণুপ্রিয়া মণিপুরী"],"bqi":["Arab",["ME"],"بختياري"],"br":["Latn",["EU"],"brezhoneg"],"brh":["Latn",["ME","AS"],"Bráhuí"],"brx":["Deva",["AS"],"बड़ो"],"bs":["Latn",["EU"],"bosanski"],"bto":["Latn",["AS"],"Iriga Bicolano"],"bug":["Bugi",["AS"],"ᨅᨔ ᨕᨘᨁᨗ"],"bxr":["Cyrl",["AS"],"буряад"],"ca":["Latn",["EU"],"català"],"cbk-zam":["Latn",["AS"],"Chavacano de Zamboanga"],"cdo":["Latn",["AS"],"Mìng-dĕ̤ng-ngṳ̄"],"ce":["Cyrl",["EU"],"нохчийн"],"ceb":["Latn",["AS"],"Cebuano"],"ch":["Latn",["PA"],"Chamoru"],"cho":["Latn",["AM"],"Choctaw"],"chr":["Cher",["AM"],"ᏣᎳᎩ"],"chy":["Latn",["AM"],"Tsetsêhestâhese"],"ckb":["Arab",["ME"],"کوردی"],"co":["Latn",["EU"],"corsu"],"cps":["Latn",["AS"],"Capiceño"],"cr":["Cans",["AM"],"ᓀᐦᐃᔭᐍᐏᐣ"],"cr-cans":["cr"],"cr-latn":["Latn",["AM"],"Nēhiyawēwin"],"crh":["Latn",["EU"],"qırımtatarca"],"crh-cyrl":["Cyrl",["EU"],"къырымтатарджа"],"crh-latn":["crh"],"cs":["Latn",["EU"],"česky"],"csb":["Latn",["EU"],"kaszëbsczi"],"cu":["Cyrl",["EU"],"словѣньскъ \/ ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ"],"cv":["Cyrl",["EU"],"Чӑвашла"],"cy":["Latn",["EU"],"Cymraeg"],"da":["Latn",["EU"],"dansk"],"de-at":["Latn",["EU"],"Österreichisches Deutsch"],"de-ch":["Latn",["EU"],"Schweizer Hochdeutsch"],"de-formal":["Latn",["EU"],"Deutsch (Sie-Form)"],"de":["Latn",["EU"],"Deutsch"],"diq":["Latn",["EU","AS"],"Zazaki"],"dsb":["Latn",["EU"],"dolnoserbski"],"dtp":["Latn",["AS"],"Dusun Bundu-liwan"],"dv":["Thaa",["AS"],"ދިވެހިބަސް"],"dz":["Tibt",["AS"],"ཇོང་ཁ"],"ee":["Latn",["AF"],"eʋegbe"],"egl":["Latn",["EU"],"Emiliàn"],"el":["Grek",["EU"],"Ελληνικά"],"eml":["Latn",["EU"],"emiliàn e rumagnòl"],"en-ca":["Latn",["AM"],"Canadian English"],"en-gb":["Latn",["EU","AS","PA"],"British English"],"en":["Latn",["EU","AM","AF","ME","AS","PA","WW"],"English"],"eo":["Latn",["WW"],"Esperanto"],"es-419":["Latn",["AM"],"español de America Latina"],"es-formal":["Latn",["EU","AM","AF","WW"],"español (formal)"],"es":["Latn",["EU","AM","AF","WW"],"español"],"esu":["Latn",["AM"],"Yup'ik"],"et":["Latn",["EU"],"eesti"],"eu":["Latn",["EU"],"euskara"],"ext":["Latn",["EU"],"estremeñu"],"fa":["Arab",["ME"],"فارسی"],"ff":["Latn",["AF"],"Fulfulde"],"fi":["Latn",["EU"],"suomi"],"fil":["tl"],"fit":["Latn",["EU"],"meänkieli"],"fiu-vro":["vro"],"fj":["Latn",["PA"],"Na Vosa Vakaviti"],"fo":["Latn",["EU"],"føroyskt"],"fr":["Latn",["EU","AM","WW"],"français"],"frc":["Latn",["AM"],"français cadien"],"frp":["Latn",["EU"],"arpetan"],"frr":["Latn",["EU"],"Nordfriisk"],"fur":["Latn",["EU"],"furlan"],"fy":["Latn",["EU"],"Frysk"],"ga":["Latn",["EU"],"Gaeilge"],"gag":["Latn",["EU"],"Gagauz"],"gah":["Latn",["AS"],"Alekano"],"gan-hans":["Hans",["AS"],"赣语(简体)"],"gan-hant":["gan"],"gan":["Hant",["AS"],"贛語"],"gbz":["Latn",["AS"],"Dari"],"gcf":["Latn",["AM"],"Guadeloupean Creole French"],"gd":["Latn",["EU"],"Gàidhlig"],"gl":["Latn",["EU"],"galego"],"glk":["Arab",["ME"],"گیلکی"],"gn":["Latn",["AM"],"Avañe'ẽ"],"gom":["Deva",["AS"],"कोंकणी"],"gom-deva":["gom"],"gom-latn":["Latn",["AS"],"Konknni"],"got":["Goth",["EU"],"𐌲𐌿𐍄𐌹𐍃𐌺"],"grc":["Grek",["EU"],"Ἀρχαία ἑλληνικὴ"],"gsw":["Latn",["EU"],"Alemannisch"],"gu":["Gujr",["AS"],"ગુજરાતી"],"guc":["Latn",["AM"],"Wayúu"],"gur":["Latn",["AF"],"Gurenɛ"],"gv":["Latn",["EU"],"Gaelg"],"ha-arab":["Arab",["AF"],"هَوُسَ"],"ha-latn":["Latn",["AF"],"Hausa"],"ha":["ha-latn"],"hak":["Latn",["AS"],"Hak-kâ-fa"],"haw":["Latn",["AM","PA"],"Hawai`i"],"he":["Hebr",["ME"],"עברית"],"hi":["Deva",["AS"],"हिन्दी"],"hif":["Latn",["PA","AS"],"Fiji Hindi"],"hif-deva":["Deva",["AS"],"फ़ीजी हिन्दी"],"hif-latn":["hif"],"hil":["Latn",["AS"],"Ilonggo"],"hne":["Deva",["AS"],"छत्तीसगढ़ी"],"ho":["Latn",["PA"],"Hiri Motu"],"hr":["Latn",["EU"],"hrvatski"],"hsb":["Latn",["EU"],"hornjoserbsce"],"hsn":["Hans",["AS"],"湘语"],"ht":["Latn",["AM"],"Kreyòl ayisyen"],"hu-formal":["Latn",["EU"],"Magyar (magázó)"],"hu":["Latn",["EU"],"magyar"],"hy":["Armn",["EU","ME"],"Հայերեն"],"hz":["Latn",["AF"],"Otsiherero"],"ia":["Latn",["WW"],"interlingua"],"id":["Latn",["AS"],"Bahasa Indonesia"],"ie":["Latn",["WW"],"Interlingue"],"ig":["Latn",["AF"],"Igbo"],"ii":["Yiii",["AS"],"ꆇꉙ"],"ik":["Latn",["AM"],"Iñupiak"],"ike-cans":["Cans",["AM"],"ᐃᓄᒃᑎᑐᑦ"],"ike-latn":["Latn",["AM"],"inuktitut"],"ilo":["Latn",["AS"],"Ilokano"],"inh":["Cyrl",["EU"],"ГӀалгӀай"],"io":["Latn",["WW"],"Ido"],"is":["Latn",["EU"],"íslenska"],"it":["Latn",["EU"],"italiano"],"iu":["Cans",["AM"],"ᐃᓄᒃᑎᑐᑦ"],"ja":["Jpan",["AS"],"日本語"],"jam":["Latn",["AM"],"Patois"],"jbo":["Latn",["WW"],"lojban"],"jut":["Latn",["EU"],"jysk"],"jv":["Latn",["AS","PA"],"Basa Jawa"],"jv-java":["Java",["AS","PA"],"ꦧꦱꦗꦮ"],"ka":["Geor",["EU"],"ქართული"],"kaa":["Latn",["AS"],"Qaraqalpaqsha"],"kab":["Latn",["AF","EU"],"Taqbaylit"],"kbd-cyrl":["kbd"],"kbd-latn":["Latn",["EU"],"Qabardjajəbza"],"kbd":["Cyrl",["EU","ME"],"Адыгэбзэ"],"kea":["Latn",["AF"],"Kabuverdianu"],"kg":["Latn",["AF"],"Kongo"],"kgp":["Latn",["AM"],"Kaingáng"],"khw":["Arab",["ME","AS"],"کھوار"],"ki":["Latn",["AF"],"Gĩkũyũ"],"kiu":["Latn",["EU","ME"],"Kırmancki"],"kj":["Latn",["AF"],"Kwanyama"],"kjh":["Cyrl",["AS"],"хакас"],"kk":["kk-cyrl"],"kk-arab":["Arab",["EU","AS"],"قازاقشا (تٶتە)"],"kk-cn":["kk-arab"],"kk-cyrl":["Cyrl",["EU","AS"],"қазақша"],"kk-kz":["kk-cyrl"],"kk-latn":["Latn",["EU","AS","ME"],"qazaqşa"],"kk-tr":["kk-latn"],"kl":["Latn",["AM","EU"],"kalaallisut"],"km":["Khmr",["AS"],"ភាសាខ្មែរ"],"kn":["Knda",["AS"],"ಕನ್ನಡ"],"ko-kp":["Kore",["AS"],"한국어 (조선)"],"ko":["Kore",["AS"],"한국어"],"koi":["Cyrl",["EU"],"Перем Коми"],"kr":["Latn",["AF"],"Kanuri"],"krc":["Cyrl",["EU"],"къарачай-малкъар"],"kri":["Latn",["AF"],"Krio"],"krj":["Latn",["ME","EU"],"Kinaray-a"],"krl":["Latn",["EU"],"Karjala"],"ks-arab":["Arab",["AS"],"کٲشُر"],"ks-deva":["Deva",["AS"],"कॉशुर"],"ks":["Arab",["AS"],"کٲشُر"],"ksf":["Latn",["AF"],"Bafia"],"ksh":["Latn",["EU"],"Ripoarisch"],"ku":["ku-latn"],"ku-arab":["Arab",["EU","ME"],"كوردي"],"ku-latn":["Latn",["EU","ME"],"Kurdî"],"kv":["Cyrl",["EU"],"коми"],"kw":["Latn",["EU"],"kernowek"],"ky":["Cyrl",["AS"],"Кыргызча"],"la":["Latn",["EU"],"Latina"],"lad":["lad-latn"],"lad-latn":["Latn",["ME","EU","AM"],"Ladino"],"lad-hebr":["Hebr",["ME","EU","AM"],"לאדינו"],"lb":["Latn",["EU"],"Lëtzebuergesch"],"lbe":["Cyrl",["EU"],"лакку"],"lez":["Cyrl",["EU"],"лезги"],"lfn":["Latn",["WW"],"Lingua Franca Nova"],"lg":["Latn",["AF"],"Luganda"],"li":["Latn",["EU"],"Limburgs"],"lij":["Latn",["EU"],"Ligure"],"liv":["Latn",["EU"],"Līvõ kēļ"],"lld":["Latn",["EU"],"Ladin"],"lmo":["Latn",["EU"],"lumbaart"],"ln":["Latn",["AF"],"lingála"],"lo":["Laoo",["AS"],"ລາວ"],"loz":["Latn",["AF"],"Silozi"],"lt":["Latn",["EU"],"lietuvių"],"lrc":["Arab",["AS"],"لوری"],"ltg":["Latn",["EU"],"latgaļu"],"lud":["Latn",["EU"],"lüüdi"],"lus":["Latn",["AS"],"Mizo ţawng"],"lut":["Latn",["AM"],"dxʷləšucid"],"lv":["Latn",["EU"],"latviešu"],"lzh":["Hant",["AS"],"文言"],"lzz":["Latn",["EU","ME"],"Lazuri"],"mai":["Deva",["AS"],"मैथिली"],"map-bms":["Latn",["AS"],"Basa Banyumasan"],"mdf":["Cyrl",["EU"],"мокшень"],"mfe":["Latn",["AM"],"Morisyen"],"mg":["Latn",["AF"],"Malagasy"],"mh":["Latn",["PA"],"Ebon"],"mhr":["Cyrl",["EU"],"олык марий"],"mi":["Latn",["PA"],"Māori"],"mic":["Latn",["AM"],"Mi'kmaq"],"min":["Latn",["AS"],"Baso Minangkabau"],"mk":["Cyrl",["EU"],"македонски"],"ml":["Mlym",["AS","ME"],"മലയാളം"],"mn":["Cyrl",["AS"],"монгол"],"mnc":["Mong",["AS"],"ᠮᠠᠨᠵᡠ ᡤᡳᠰᡠᠨ"],"mni":["Beng",["AS"],"মেইতেই লোন্"],"mnw":["Mymr",["AS"],"ဘာသာ မန်"],"mo":["Cyrl",["EU"],"молдовеняскэ"],"mr":["Deva",["AS","ME"],"मराठी"],"mrj":["Cyrl",["EU"],"кырык мары"],"ms":["Latn",["AS"],"Bahasa Melayu"],"mt":["Latn",["EU"],"Malti"],"mui":["Latn",["AS"],"Musi"],"mus":["Latn",["AM"],"Mvskoke"],"mwl":["Latn",["EU"],"Mirandés"],"mwv":["Latn",["AS"],"Behase Mentawei"],"my":["Mymr",["AS"],"မြန်မာဘာသာ"],"myv":["Cyrl",["EU"],"эрзянь"],"mzn":["Arab",["ME","AS"],"مازِرونی"],"na":["Latn",["PA"],"Dorerin Naoero"],"nah":["Latn",["AM"],"Nāhuatl"],"nan":["Latn",["AS"],"Bân-lâm-gú"],"nap":["Latn",["EU"],"Nnapulitano"],"nb":["Latn",["EU"],"norsk (bokmål)"],"nds-nl":["Latn",["EU"],"Nedersaksisch"],"nds":["Latn",["EU"],"Plattdüütsch"],"ne":["Deva",["AS"],"नेपाली"],"new":["Deva",["AS"],"नेपाल भाषा"],"ng":["Latn",["AF"],"Oshiwambo"],"niu":["Latn",["PA"],"ko e vagahau Niuē"],"njo":["Latn",["AS"],"Ao"],"nl-informal":["Latn",["EU","AM"],"Nederlands (informeel)"],"nl":["Latn",["EU","AM"],"Nederlands"],"nn":["Latn",["EU"],"norsk (nynorsk)"],"no":["Latn",["EU"],"norsk"],"nov":["Latn",["WW"],"Novial"],"nqo":["Nkoo",["AF"],"ߒߞߏ"],"nrm":["Latn",["EU"],"Nouormand"],"nso":["Latn",["AF"],"Sesotho sa Leboa"],"nv":["Latn",["AM"],"Diné bizaad"],"ny":["Latn",["AF"],"Chi-Chewa"],"oc":["Latn",["EU"],"occitan"],"om":["Latn",["AF"],"Oromoo"],"or":["Orya",["AS"],"ଓଡ଼ିଆ"],"os":["Cyrl",["EU"],"Ирон"],"ota":["Arab",["AS","EU"],"لسان عثمانى"],"pa":["pa-guru"],"pa-guru":["Guru",["AS"],"ਪੰਜਾਬੀ"],"pag":["Latn",["AS"],"Pangasinan"],"pam":["Latn",["AS"],"Kapampangan"],"pap":["Latn",["AM"],"Papiamentu"],"pcd":["Latn",["EU"],"Picard"],"pdc":["Latn",["EU","AM"],"Deitsch"],"pdt":["Latn",["EU","AM"],"Plautdietsch"],"pfl":["Latn",["EU"],"Pälzisch"],"pi":["Deva",["AS"],"पालि"],"pih":["Latn",["PA"],"Norfuk \/ Pitkern"],"pis":["Latn",["PA"],"Pijin"],"pko":["Latn",["AF"],"Pökoot"],"pl":["Latn",["EU"],"polski"],"pms":["Latn",["EU"],"Piemontèis"],"pnb":["Arab",["AS","ME"],"پنجابی"],"pnt":["Grek",["EU"],"Ποντιακά"],"ppl":["Latn",["AM"],"Nawat"],"prg":["Latn",["EU"],"Prūsiskan"],"ps":["Arab",["AS","ME"],"پښتو"],"pt-br":["Latn",["AM"],"português do Brasil"],"pt":["Latn",["EU","AM","AS","PA","AF","WW"],"português"],"qu":["Latn",["AM"],"Runa Simi"],"qug":["Latn",["AM"],"Runa shimi"],"rap":["Latn",["AM"],"arero rapa nui"],"rgn":["Latn",["EU"],"Rumagnôl"],"rif":["Latn",["AF"],"Tarifit"],"rki":["Mymr",["AS"],"ရခိုင်"],"rm":["Latn",["EU"],"rumantsch"],"rmf":["Latn",["EU"],"kaalengo tšimb"],"rmy":["Latn",["EU"],"Romani"],"rn":["Latn",["AF"],"Kirundi"],"ro":["Latn",["EU"],"română"],"roa-rup":["rup"],"roa-tara":["Latn",["EU"],"tarandíne"],"rtm":["Latn",["PA"],"Faeag Rotuma"],"ru":["Cyrl",["EU","AS","ME"],"русский"],"rue":["Cyrl",["EU"],"русиньскый"],"rup":["Latn",["EU"],"Armãneashce"],"ruq":["Cyrl",["EU"],"Влахесте"],"ruq-cyrl":["ruq"],"ruq-grek":["Grek",["EU"],"Megleno-Romanian (Greek script)"],"ruq-latn":["Latn",["EU"],"Vlăheşte"],"rut":["Cyrl",["EU"],"мыхаӀбишды"],"rw":["Latn",["AF"],"Kinyarwanda"],"rwr":["Deva",["AS"],"मारवाड़ी"],"ryu":["Kana",["AS"],"ʔucināguci"],"sa":["Deva",["AS"],"संस्कृतम्"],"sah":["Cyrl",["EU","AS"],"саха тыла"],"sat":["Latn",["AS"],"Santali"],"saz":["Saur",["AS"],"ꢱꣃꢬꢵꢯ꣄ꢡ꣄ꢬꢵ"],"sc":["Latn",["EU"],"sardu"],"scn":["Latn",["EU"],"sicilianu"],"sco":["Latn",["EU"],"Scots"],"sd":["Arab",["AS"],"سنڌي"],"sdc":["Latn",["EU"],"Sassaresu"],"se":["Latn",["EU"],"sámegiella"],"ses":["Latn",["AF"],"Koyraboro Senni"],"sei":["Latn",["AM"],"Cmique Itom"],"sg":["Latn",["AF"],"Sängö"],"sgs":["Latn",["EU"],"žemaitėška"],"sh":["Latn",["EU"],"srpskohrvatski"],"shi-latn":["Latn",["AF"],"Tašlḥiyt"],"shi-tfng":["Tfng",["AF"],"ⵜⴰⵛⵍⵃⵉⵜ"],"shi":["shi-latn"],"shn":["Mymr",["AS"],"လိၵ်ႈတႆး"],"si":["Sinh",["AS"],"සිංහල"],"simple":["Latn",["WW"],"Simple English"],"sk":["Latn",["EU"],"slovenčina"],"sl":["Latn",["EU"],"slovenščina"],"sli":["Latn",["EU"],"Schläsch"],"slr":["Latn",["AS"],"Salırça"],"sly":["Latn",["AS"],"Bahasa Selayar"],"syc":["Syrc",["ME"],"ܣܘܪܝܝܐ"],"sm":["Latn",["PA"],"Gagana Samoa"],"sma":["Latn",["EU"],"åarjelsaemien"],"smj":["Latn",["EU"],"julevsámegiella"],"smn":["Latn",["EU"],"anarâškielâ"],"sms":["Latn",["EU"],"sää´mǩiõll"],"sn":["Latn",["AF"],"chiShona"],"so":["Latn",["AF"],"Soomaaliga"],"sq":["Latn",["EU"],"shqip"],"sr":["Cyrl",["EU"],"српски"],"sr-ec":["sr-cyrl"],"sr-cyrl":["Cyrl",["EU"],"српски"],"sr-el":["sr-latn"],"sr-latn":["Latn",["EU"],"srpski"],"srn":["Latn",["AM","EU"],"Sranantongo"],"ss":["Latn",["AF"],"SiSwati"],"st":["Latn",["AF"],"Sesotho"],"stq":["Latn",["EU"],"Seeltersk"],"su":["Latn",["AS"],"Basa Sunda"],"sv":["Latn",["EU"],"svenska"],"sw":["Latn",["AF"],"Kiswahili"],"swb":["Latn",["AF"],"Shikomoro"],"sxu":["Latn",["EU"],"Säggssch"],"szl":["Latn",["EU"],"ślůnski"],"ta":["Taml",["AS"],"தமிழ்"],"tcy":["Knda",["AS"],"ತುಳು"],"te":["Telu",["AS"],"తెలుగు"],"tet":["Latn",["AS","PA"],"tetun"],"tg-cyrl":["Cyrl",["AS"],"тоҷикӣ"],"tg-latn":["Latn",["AS"],"tojikī"],"tg":["Cyrl",["AS"],"тоҷикӣ"],"th":["Thai",["AS"],"ไทย"],"ti":["Ethi",["AF"],"ትግርኛ"],"tk":["Latn",["AS"],"Türkmençe"],"tkr":["Cyrl",["AS"],"ЦӀаьхна миз"],"tl":["Latn",["AS"],"Tagalog"],"tly":["Cyrl",["EU","AS","ME"],"толышә зывон"],"tn":["Latn",["AF"],"Setswana"],"to":["Latn",["PA"],"lea faka-Tonga"],"tokipona":["Latn",["WW"],"Toki Pona"],"tpi":["Latn",["PA","AS"],"Tok Pisin"],"tr":["Latn",["EU","ME"],"Türkçe"],"trp":["Latn",["AS"],"Kokborok (Tripuri)"],"tru":["Latn",["AS"],"Ṫuroyo"],"ts":["Latn",["AF"],"Xitsonga"],"tsd":["Grek",["EU"],"Τσακωνικά"],"tt":["Cyrl",["EU"],"татарча"],"tt-cyrl":["tt"],"tt-latn":["Latn",["EU"],"tatarça"],"ttt":["Cyrl",["AS"],"Tati"],"tum":["Latn",["AF"],"chiTumbuka"],"tw":["Latn",["AF"],"Twi"],"twd":["Latn",["EU"],"Tweants"],"ty":["Latn",["PA"],"Reo Mā`ohi"],"tyv":["Cyrl",["AS"],"тыва дыл"],"tzm":["Tfng",["AF"],"ⵜⴰⵎⴰⵣⵉⵖⵜ"],"udm":["Cyrl",["EU"],"удмурт"],"ug":["ug-arab"],"ug-arab":["Arab",["AS"],"ئۇيغۇرچە"],"ug-latn":["Latn",["AS"],"uyghurche"],"ug-cyrl":["Cyrl",["AS"],"уйғурчә"],"uk":["Cyrl",["EU"],"українська"],"ur":["Arab",["AS","ME"],"اردو"],"uz":["Latn",["AS"],"oʻzbekcha"],"ve":["Latn",["AF"],"Tshivenda"],"vec":["Latn",["EU"],"vèneto"],"vep":["Latn",["EU"],"vepsän kel’"],"vi":["Latn",["AS"],"Tiếng Việt"],"vls":["Latn",["EU"],"West-Vlams"],"vmf":["Latn",["EU"],"Mainfränkisch"],"vo":["Latn",["WW"],"Volapük"],"vot":["Latn",["EU"],"Vaďďa"],"vro":["Latn",["EU"],"Võro"],"wa":["Latn",["EU"],"walon"],"war":["Latn",["AS"],"Winaray"],"wls":["Latn",["PA"],"Faka'uvea"],"wo":["Latn",["AF"],"Wolof"],"wuu":["Hans",["AS"],"吴语"],"xal":["Cyrl",["EU"],"хальмг"],"xh":["Latn",["AF"],"isiXhosa"],"xmf":["Geor",["EU"],"მარგალური"],"ydd":["Hebr",["AS","EU"],"Eastern Yiddish"],"yi":["Hebr",["ME","EU","AM"],"ייִדיש"],"yo":["Latn",["AF"],"Yorùbá"],"yrk":["Cyrl",["AS"],"Ненэцяʼ вада"],"yrl":["Latn",["AM"],"ñe'engatú"],"yua":["Latn",["AM"],"Maaya T'aan"],"yue":["Hant",["AS"],"粵語"],"za":["Latn",["AS"],"Vahcuengh"],"zea":["Latn",["EU"],"Zeêuws"],"zh":["Hans",["AS"],"中文"],"zh-classical":["Hant",["AS"],"文言"],"zh_CN":["Hans",["AS"],"中文(中国大陆)"],"zh-hans":["Hans",["AS"],"中文(简体)"],"zh-hant":["Hant",["AS"],"中文(繁體)"],"zh-hk":["Hant",["AS"],"中文(香港)"],"zh-min-nan":["nan"],"zh-mo":["Hant",["AS"],"中文(澳門)"],"zh-my":["Hans",["AS"],"中文(马来西亚)"],"zh-sg":["Hans",["AS"],"中文(新加坡)"],"zh_TW":["Hant",["AS"],"中文(台灣)"],"zh-yue":["yue"],"zu":["Latn",["AF"],"isiZulu"]},"scriptgroups":{"Latin":["Latn","Goth"],"Greek":["Grek"],"WestCaucasian":["Armn","Geor"],"Arabic":["Arab"],"MiddleEastern":["Hebr","Syrc"],"African":["Ethi","Nkoo","Tfng"],"SouthAsian":["Beng","Deva","Gujr","Guru","Knda","Mlym","Orya","Saur","Sinh","Taml","Telu","Tibt","Thaa"],"Cyrillic":["Cyrl"],"CJK":["Hans","Hant","Kana","Kore","Jpan","Yiii"],"SouthEastAsian":["Batk","Bugi","Java","Khmr","Laoo","Mymr","Thai"],"Mongolian":["Mong"],"SignWriting":["Sgnw"],"NativeAmerican":["Cher","Cans"],"Special":["Zyyy"]},"rtlscripts":["Arab","Hebr","Syrc","Nkoo","Thaa"],"regiongroups":{"WW":1,"SP":1,"AM":2,"EU":3,"ME":3,"AF":3,"AS":4,"PA":4},"territories":{"AC":["en"],"AD":["ca","es","fr"],"AE":["ar","ml","ps","bal","fa"],"AF":["fa","ps","haz","uz-arab","tk-latn","prd","bal","ug-arab","kk-arab"],"AG":["en","pt"],"AI":["en"],"AL":["sq","el","mk"],"AM":["hy","ku-latn","az-latn"],"AO":["pt","umb","kmb","ln"],"AQ":["und"],"AR":["es","cy","gn"],"AS":["sm","en"],"AT":["de","bar","hr","sl","hu"],"AU":["en","zh-hant","it"],"AW":["nl","pap","en"],"AX":["sv"],"AZ":["az-latn","az-cyrl","tly-latn","ku-latn","ttt-latn","tkr-latn"],"BA":["bs-cyrl","bs-latn","hr","sr-cyrl","sr-latn"],"BB":["en"],"BD":["bn","rkt","syl","ccp","my","grt","mni"],"BE":["nl","en","fr","vls","wa","de"],"BF":["mos","dyu","fr"],"BG":["bg","tr"],"BH":["ar","ml"],"BI":["rn","fr","sw"],"BJ":["fr","fon","yo"],"BL":["fr"],"BM":["en"],"BN":["ms-latn","zh-hant","ms-arab","en"],"BO":["es","qu","ay","gn","aro"],"BQ":["pap","nl"],"BR":["pt","de","it","ja","ko","kgp","gub","yrl","xav"],"BS":["en"],"BT":["dz","ne","tsj","lep"],"BV":["und"],"BW":["en","tn","af"],"BY":["be","ru"],"BZ":["en","es"],"CA":["en","fr","it","de","pdt","cr-cans","crk","yi","iu-cans","iu-latn","moe","crj","atj","crl","csw","crm","ikt","moh","dgr","den","scs","nsk","chp","gwi"],"CC":["ms-arab","en"],"CD":["sw","lua","swc","fr","ln","lu","kg","lol","rw"],"CF":["fr","sg","ln"],"CG":["fr","ln"],"CH":["de","fr","gsw","it","lmo","rm","rmo","wae"],"CI":["fr","bci","sef","dnj","kfo","bqv"],"CK":["en"],"CL":["es","arn"],"CM":["fr","en","bum","ff","ewo","ybb","bbj","nnh","bkm","bas","bax","byv","mua","maf","bfd","bss","kkj","dua","mgo","ar","jgo","ksf","agq","ha-arab","nmg","yav"],"CN":["zh-hans","wuu","hsn","hak","nan","gan","ii","ug-arab","za","mn-mong","bo","ko","kk-arab","lis","ky-arab","nxq","khb","tdd","lcp","en","ru","vi","uz-cyrl","lzh"],"CO":["es","guc"],"CP":["und"],"CR":["es"],"CU":["es"],"CV":["kea","pt"],"CW":["pap","nl","es"],"CX":["en"],"CY":["el","tr","hy","ar"],"CZ":["cs","de","pl"],"DE":["de","en","nds","vmf","tr","hr","it","ku-latn","ru","el","ksh","pl","es","nl","da","hsb","frr","dsb","frs","stq","pfl"],"DG":["en"],"DJ":["aa","so","ar","fr"],"DK":["da","de","kl","jut"],"DM":["en"],"DO":["es","en"],"DZ":["arq","ar","fr","kab"],"EA":["es"],"EC":["es","qu","qug"],"EE":["et","ru","vro"],"EG":["ar","arz","el"],"EH":["ar"],"ER":["ti","en","tig","ar","aa","ssy","byn"],"ES":["es","en","ca","gl","eu","ast","ext"],"ET":["en","am","om","so","ti","sid","wal","aa"],"FI":["fi","sv","ru","en","et","rmf","se","smn","sms"],"FJ":["en","hi","hif-deva","fj","rtm"],"FK":["en"],"FM":["chk","pon","kos","yap","en","uli"],"FO":["fo"],"FR":["fr","en","oc","it","pt","pcd","gsw","br","co","ca","nl","eu","frp","ia"],"GA":["fr","puu"],"GB":["en","sco","pa-guru","cy","bn","zh-hant","syl","el","it","ks-arab","gd","yi","ml","ga","fr","kw"],"GD":["en"],"GE":["ka","xmf","ru","hy","ab","os","ku-latn"],"GF":["fr","gcr","zh-hant"],"GG":["en"],"GH":["ak","en","ee","abr","gur","gaa","ha-latn","saf"],"GI":["en"],"GL":["kl","da"],"GM":["en","man-latn"],"GN":["fr","ff","man-nkoo","sus","nqo","kpe"],"GP":["fr"],"GQ":["es","fan","fr","bvb"],"GR":["el","pnt-grek","mk","tr","bg","sq","tsd"],"GS":["und"],"GT":["es","quc"],"GU":["en","ch"],"GW":["pt"],"GY":["en"],"HK":["zh-hant","en","zh-hans"],"HM":["und"],"HN":["es","en"],"HR":["hr","it"],"HT":["ht","fr"],"HU":["hu","de","ro","hr","sk","sl"],"IC":["es"],"ID":["id","jv","su","mad","ms-arab","min","bew","ban","bug","bjn","ace","sas","bbc","zh-hant","mak","ljp","rej","gor","nij","kge","aoz","kvr","lbw","rob","mdr","sxn","sly","mwv"],"IE":["en","ga"],"IL":["he","ar","ru","ro","yi","en","pl","lad","hu","am","ti","ml"],"IM":["en","gv"],"IN":["hi","en","bn","te","mr","ta","ur","gu","kn","ml","or","pa-guru","bho","awa","as","bgc","mag","mwr","mai","hne","dcc","bjj","ne","sat","wtm","rkt","ks-arab","kok","gom","swv","gbm","lmn","sd-arab","gon-telu","kfy","doi","kru","sck","wbq","xnr","tcy","wbr","khn","brx","noe","bhb","mni","raj","hoc","mtr","unr-beng","bhi","hoj","kha","kfr","grt","unx-beng","bfy","srx","saz","ccp","sd-deva","bfq","njo","ria","bo","bpy","bft","bra","lep","btv","lif-deva","lah","sa","kht","dv","dz"],"IO":["en"],"IQ":["ar","ckb","fa","syr"],"IR":["fa","az-arab","azb","mzn","glk","ckb","tk-latn","lrc","ar","bal","rmt","bqi","luz","lki","prd","hy","ps","ka","gbz","kk-arab"],"IS":["is","da"],"IT":["it","en","fr","lmo","pms","sc","de","vec","nap","lij","scn","sl","sdc","fur","egl","ca","el","hr","rgn"],"JE":["en"],"JM":["en","jam"],"JO":["ar"],"JP":["ja","ryu","ko"],"KE":["en","sw","ki","luy","luo","kam","kln","guz","mer","mas","ebu","so","dav","teo","pko","om","saq","ar","pa-guru","gu"],"KG":["ky-cyrl","ru"],"KH":["km","cja","kdt"],"KI":["en","gil"],"KM":["ar","fr","zdj"],"KN":["en"],"KP":["ko"],"KR":["ko"],"KW":["ar"],"KY":["en"],"KZ":["ru","kk-cyrl","de","ug-cyrl"],"LA":["lo","kjg","kdt"],"LB":["ar","hy","ku-arab","fr","en"],"LC":["en"],"LI":["de","gsw","wae"],"LK":["si","ta","en"],"LR":["en","kpe","vai-vaii","men","vai-latn"],"LS":["st","zu","ss","en","xh"],"LT":["lt","ru","sgs"],"LU":["fr","lb","de"],"LV":["lv","ru","ltg"],"LY":["ar"],"MA":["ary","ar","zgh","fr","tzm-latn","shi-latn","shi-tfng","rif-latn","rif-tfng","es"],"MC":["fr"],"MD":["ro","uk","bg","gag","ru"],"ME":["sr-latn","sq","sr-cyrl"],"MF":["fr"],"MG":["mg","fr","en"],"MH":["en","mh"],"MK":["mk","sq","tr"],"ML":["bm-latn","fr","ffm","snk","mwk","ses","tmh","bm-nkoo","khq","dtm","kao","ar","bmq","bze"],"MM":["my","shn","mnw","kht"],"MN":["mn-cyrl","kk-arab","zh-hans","ru","ug-cyrl"],"MO":["zh-hant","pt","zh-hans","en"],"MP":["en","ch"],"MQ":["fr"],"MR":["ar","fr","ff","wo"],"MS":["en"],"MT":["mt","en"],"MU":["mfe","en","bho","ur","fr","ta"],"MV":["dv"],"MW":["en","ny","tum","zu"],"MX":["es","yua","nhe","nhw","maz","nch","sei"],"MY":["ms-latn","en","zh-hant","ta","jv","zmi","dtp","ml","bug","bjn"],"MZ":["pt","vmw","ndc","ts","ngl","seh","mgh","rng","ny","yao","sw","zu"],"NA":["af","kj","ng","naq","en","de","tn"],"NC":["fr"],"NE":["ha-latn","fr","dje","fuq","tmh","ar","twq"],"NF":["en"],"NG":["en","pcm","ha-latn","ig","yo","fuv","tiv","efi","ibb","ha-arab","bin","kaj","kcg","ar","cch","amo"],"NI":["es"],"NL":["nl","en","li","fy","gos","id","zea","rif-latn","tr"],"NO":["nb","nn","se"],"NP":["ne","mai","bho","new","jml","taj","awa","thl","bap","tdg","thr","mgp","lif-deva","thq","mrd","bfy","xsr","rjs","tsf","hi","ggn","gvr","bo","tkt","tdh","bn","unr-deva","lep"],"NR":["en","na"],"NU":["en","niu"],"NZ":["en","mi"],"OM":["ar","bal","fa"],"PA":["es","en","zh-hant"],"PE":["es","qu","ay"],"PF":["fr","ty","zh-hant"],"PG":["tpi","en","ho"],"PH":["en","fil","es","ceb","ilo","hil","bik","war","bhk","pam","pag","mdh","tsg","zh-hant","cps","krj","bto","hnn","tbw","bku"],"PK":["ur","pa-arab","en","lah","ps","sd-arab","skr","bal","brh","hno","fa","hnd","tg-arab","gju","bft","kvx","khw","mvy","kxp","gjk","ks-arab","btv"],"PL":["pl","szl","be","uk","csb","de","sli","lt"],"PM":["fr","en"],"PN":["en"],"PR":["es","en"],"PS":["ar"],"PT":["pt","gl"],"PW":["pau","en"],"PY":["gn","es","de"],"QA":["ar","fa","ml"],"RE":["fr","rcf","ta"],"RO":["ro","hu","de","tr","sr-latn","bg","el","pl"],"RS":["sr-cyrl","sr-latn","sq","hu","ro","hr","sk","uk"],"RU":["ru","tt","ba","cv","hy","ce","av","udm","chm","sah","os","kbd","myv","dar","bua","mdf","kum","kv","lez","krc","inh","tyv","az-cyrl","ady","krl","lbe","koi","mrj","alt","fi","sr-latn","vep","mn-cyrl","izh","cu"],"RW":["rw","fr","en"],"SA":["ar"],"SB":["en","rug"],"SC":["crs","fr","en"],"SD":["ar","en","nus","ha-arab"],"SE":["sv","fi","fit","se","rmu","yi","smj","sma","ia"],"SG":["en","zh-hans","ms-latn","ta","ml","pa-guru"],"SH":["en"],"SI":["sl","hu","it"],"SJ":["nb","ru"],"SK":["sk","hu","uk","pl","de"],"SL":["kri","en","men","tem"],"SM":["it","eo"],"SN":["wo","fr","ff","srr","dyo"],"SO":["so","ar","sw","om"],"SR":["nl","srn","zh-hant"],"SS":["ar","en"],"ST":["pt"],"SV":["es"],"SX":["en","es","vic","nl"],"SY":["ar","ku-latn","fr","hy","syr"],"SZ":["en","ss","zu","ts"],"TA":["en"],"TC":["en"],"TD":["fr","ar"],"TF":["fr"],"TG":["fr","ee"],"TH":["th","tts","nod","sou","mfa","zh-hant","kxm","kdt","mnw","shn","lcp","lwl"],"TJ":["tg-cyrl","ru","fa","ar"],"TK":["en","tkl"],"TL":["pt","tet"],"TM":["tk-latn","ru","uz-latn","ku-latn"],"TN":["aeb","ar","fr"],"TO":["to","en"],"TR":["tr","ku-latn","zza","kbd","az-latn","ar","bgx","bg","ady","kiu","hy","ka","sr-latn","lzz-latn","sq","ab","el","tru","uz-latn","ky-latn","kk-cyrl"],"TT":["en","es"],"TV":["tvl","en"],"TW":["zh-hant","trv"],"TZ":["sw","en","suk","nym","kde","bez","ksb","mas","mgy","asa","lag","jmc","rof","vun","rwk","sbp"],"UA":["uk","ru","pl","yi","rue","be","ro","bg","tr","hu","el"],"UG":["sw","lg","nyn","cgg","xog","en","teo","laj","ach","myx","rw","ttj","hi"],"UM":["en"],"US":["en","es","zh-hant","fr","de","fil","it","vi","ko","ru","nv","yi","pdc","haw","frc","chr","esu","lkt","ik"],"UY":["es"],"UZ":["uz-latn","uz-cyrl","ru","kaa","tr"],"VA":["it","la"],"VC":["en"],"VE":["es"],"VG":["en"],"VI":["en"],"VN":["vi","zh-hant","cjm"],"VU":["bi","en","fr"],"WF":["wls","fr","fud"],"WS":["sm","en"],"XK":["sq","aln","sr-cyrl","sr-latn"],"YE":["ar"],"YT":["swb","fr","buc","sw"],"ZA":["en","zu","xh","af","nso","tn","st","ts","ss","ve","hi","nr","sw"],"ZM":["en","bem","ny","loz"],"ZW":["en","sn","nd","mxc","ndc","kck","ny","ve","tn"],"ZZ":[]}};

- } ( jQuery ) );

@@ -1,465 +0,0 @@ 

- /**

-  * Utility functions for querying language data.

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- ( function ( $ ) {

- 	'use strict';

- 

- 	/**

- 	 * Is this language a redirect to another language?

- 	 * @param language string Language code

- 	 * @return Target language code if it's a redirect or false if it's not

- 	 */

- 	$.uls.data.isRedirect = function ( language ) {

- 		return ( $.uls.data.languages[language] !== undefined &&

- 			$.uls.data.languages[language].length === 1 ) ? $.uls.data.languages[language][0] : false;

- 	};

- 

- 	/**

- 	 * Returns the script of the language.

- 	 * @param language string Language code

- 	 * @return string

- 	 */

- 	$.uls.data.getScript = function ( language ) {

- 		var target = $.uls.data.isRedirect( language );

- 

- 		if ( target ) {

- 			return $.uls.data.getScript( target );

- 		}

- 

- 		if ( !$.uls.data.languages[language] ) {

- 			// Undetermined

- 			return 'Zyyy';

- 		}

- 

- 		return $.uls.data.languages[language][0];

- 	};

- 

- 	/**

- 	 * Returns the regions in which a language is spoken.

- 	 * @param language string Language code

- 	 * @return array|string 'UNKNOWN'

- 	 */

- 	$.uls.data.getRegions = function ( language ) {

- 		var target = $.uls.data.isRedirect( language );

- 

- 		if ( target ) {

- 			return $.uls.data.getRegions( target );

- 		}

- 

- 		return ( $.uls.data.languages[language] && $.uls.data.languages[language][1] ) || 'UNKNOWN';

- 	};

- 

- 	/**

- 	 * Returns the autonym of the language.

- 	 * @param language string Language code

- 	 * @return string

- 	 */

- 	$.uls.data.getAutonym = function ( language ) {

- 		var target = $.uls.data.isRedirect( language );

- 

- 		if ( target ) {

- 			return $.uls.data.getAutonym( target );

- 		}

- 

- 		return ( $.uls.data.languages[language] && $.uls.data.languages[language][2] ) || language;

- 	};

- 

- 	/**

- 	 * Returns all language codes and corresponding autonyms

- 	 * @return array

- 	 */

- 	$.uls.data.getAutonyms = function () {

- 		var language,

- 			autonymsByCode = {};

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			autonymsByCode[language] = $.uls.data.getAutonym( language );

- 		}

- 

- 		return autonymsByCode;

- 	};

- 

- 	/**

- 	 * Returns an array of all region codes.

- 	 * @return array

- 	 */

- 	$.uls.data.getAllRegions = function () {

- 		var region,

- 			allRegions = [];

- 

- 		for ( region in $.uls.data.regiongroups ) {

- 			allRegions.push( region );

- 		}

- 

- 		return allRegions;

- 	};

- 

- 	/**

- 	 * Returns all languages written in script.

- 	 * @param script string

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInScript = function ( script ) {

- 		return $.uls.data.getLanguagesInScripts( [ script ] );

- 	};

- 

- 	/**

- 	 * Returns all languages written in the given scripts.

- 	 * @param scripts array of strings

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInScripts = function ( scripts ) {

- 		var language, i,

- 			languagesInScripts = [];

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			for ( i = 0; i < scripts.length; i++ ) {

- 				if ( scripts[i] === $.uls.data.getScript( language ) ) {

- 					languagesInScripts.push( language );

- 					break;

- 				}

- 			}

- 		}

- 

- 		return languagesInScripts;

- 	};

- 

- 	/**

- 	 * Returns all languages in a given region.

- 	 * @param region string

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInRegion = function ( region ) {

- 		return $.uls.data.getLanguagesInRegions( [ region ] );

- 	};

- 

- 	/**

- 	 * Returns all languages in given regions.

- 	 * @param regions array of strings.

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInRegions = function ( regions ) {

- 		var language, i,

- 			languagesInRegions = [];

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			for ( i = 0; i < regions.length; i++ ) {

- 				if ( $.inArray( regions[i], $.uls.data.getRegions( language ) ) !== -1 ) {

- 					languagesInRegions.push( language );

- 					break;

- 				}

- 			}

- 		}

- 

- 		return languagesInRegions;

- 	};

- 

- 	/**

- 	 * Returns all languages in a region group.

- 	 * @param groupNum number.

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInRegionGroup = function ( groupNum ) {

- 		return $.uls.data.getLanguagesInRegions( $.uls.data.getRegionsInGroup( groupNum ) );

- 	};

- 

- 	/**

- 	 * Returns an associative array of languages in a region,

- 	 * grouped by script.

- 	 * @param region string Region code

- 	 * @return associative array

- 	 */

- 	$.uls.data.getLanguagesByScriptInRegion = function ( region ) {

- 		var language, script,

- 			languagesByScriptInRegion = {};

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			if ( $.inArray( region, $.uls.data.getRegions( language ) ) !== -1 ) {

- 				script = $.uls.data.getScript( language );

- 

- 				if ( languagesByScriptInRegion[script] === undefined ) {

- 					languagesByScriptInRegion[script] = [];

- 				}

- 				languagesByScriptInRegion[script].push( language );

- 			}

- 		}

- 

- 		return languagesByScriptInRegion;

- 	};

- 

- 	/**

- 	 * Returns an associative array of languages in a region,

- 	 * grouped by script group.

- 	 * @param region string Region code

- 	 * @return associative array

- 	 */

- 	$.uls.data.getLanguagesByScriptGroupInRegion = function ( region ) {

- 		return $.uls.data.getLanguagesByScriptGroupInRegions( [ region ] );

- 	};

- 

- 	/**

- 	 * Returns an associative array of all languages,

- 	 * grouped by script group.

- 	 * @return associative array

- 	 */

- 	$.uls.data.getAllLanguagesByScriptGroup = function () {

- 		return $.uls.data.getLanguagesByScriptGroupInRegions( $.uls.data.getAllRegions() );

- 	};

- 

- 	/**

- 	 * Get the given list of languages grouped by script.

- 	 * @param languages Array of language codes

- 	 * @return {Object} Array of languages indexed by script codes

- 	 */

- 	$.uls.data.getLanguagesByScriptGroup = function ( languages ) {

- 		var languagesByScriptGroup = {},

- 			language, codeToAdd, langScriptGroup;

- 

- 		for ( language in languages ) {

- 			codeToAdd = $.uls.data.isRedirect( language ) || language;

- 

- 			langScriptGroup = $.uls.data.getScriptGroupOfLanguage( codeToAdd );

- 

- 			if ( !languagesByScriptGroup[langScriptGroup] ) {

- 				languagesByScriptGroup[langScriptGroup] = [];

- 			}

- 

- 			// Prevent duplicate adding of redirects

- 			if ( $.inArray( codeToAdd, languagesByScriptGroup[langScriptGroup] ) === -1 ) {

- 				languagesByScriptGroup[langScriptGroup].push( codeToAdd );

- 			}

- 		}

- 

- 		return languagesByScriptGroup;

- 	};

- 

- 	/**

- 	 * Returns an associative array of languages in several regions,

- 	 * grouped by script group.

- 	 * @param regions array of strings - region codes

- 	 * @return associative array

- 	 */

- 	$.uls.data.getLanguagesByScriptGroupInRegions = function ( regions ) {

- 		var language, i, scriptGroup,

- 			languagesByScriptGroupInRegions = {};

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			for ( i = 0; i < regions.length; i++ ) {

- 				if ( $.inArray( regions[i], $.uls.data.getRegions( language ) ) !== -1 ) {

- 					scriptGroup = $.uls.data.getScriptGroupOfLanguage( language );

- 

- 					if ( languagesByScriptGroupInRegions[scriptGroup] === undefined ) {

- 						languagesByScriptGroupInRegions[scriptGroup] = [];

- 					}

- 

- 					languagesByScriptGroupInRegions[scriptGroup].push( language );

- 					break;

- 				}

- 			}

- 		}

- 

- 		return languagesByScriptGroupInRegions;

- 	};

- 

- 	/**

- 	 * Returns an array of languages grouped by region group,

- 	 * region, script group and script.

- 	 * @return associative array

- 	 */

- 	$.uls.data.getAllLanguagesByRegionAndScript = function () {

- 		var region, regionGroup, language,

- 			script, scriptGroup, regions, regionNum,

- 			allLanguagesByRegionAndScript = {};

- 

- 		for ( region in $.uls.data.regiongroups ) {

- 			regionGroup = $.uls.data.regiongroups[region];

- 

- 			if ( allLanguagesByRegionAndScript[regionGroup] === undefined ) {

- 				allLanguagesByRegionAndScript[regionGroup] = {};

- 			}

- 

- 			allLanguagesByRegionAndScript[regionGroup][region] = {};

- 		}

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			script = $.uls.data.getScript( language );

- 			scriptGroup = $.uls.data.getGroupOfScript( script );

- 			regions = $.uls.data.getRegions( language );

- 

- 			for ( regionNum = 0; regionNum < regions.length; regionNum++ ) {

- 				region = regions[regionNum];

- 				regionGroup = $.uls.data.regiongroups[region];

- 

- 				if ( allLanguagesByRegionAndScript[regionGroup][region][scriptGroup] === undefined ) {

- 					allLanguagesByRegionAndScript[regionGroup][region][scriptGroup] = {};

- 				}

- 

- 				if ( allLanguagesByRegionAndScript[regionGroup][region][scriptGroup][script] === undefined ) {

- 					allLanguagesByRegionAndScript[regionGroup][region][scriptGroup][script] = [];

- 				}

- 

- 				allLanguagesByRegionAndScript[regionGroup][region][scriptGroup][script].push( language );

- 			}

- 		}

- 

- 		return allLanguagesByRegionAndScript;

- 	};

- 

- 	/**

- 	 * Returns all regions in a region group.

- 	 * @param groupNum int

- 	 * @return array of strings

- 	 */

- 	$.uls.data.getRegionsInGroup = function ( groupNum ) {

- 		var region,

- 			regionsInGroup = [];

- 

- 		for ( region in $.uls.data.regiongroups ) {

- 			if ( $.uls.data.regiongroups[region] === groupNum ) {

- 				regionsInGroup.push( region );

- 			}

- 		}

- 

- 		return regionsInGroup;

- 	};

- 

- 	/**

- 	 * Returns the script group of a script or 'Other' if it doesn't

- 	 * belong to any group.

- 	 * @param script string Script code

- 	 * @return string script group name

- 	 */

- 	$.uls.data.getGroupOfScript = function ( script ) {

- 		var scriptGroup;

- 

- 		for ( scriptGroup in $.uls.data.scriptgroups ) {

- 			if ( $.inArray( script, $.uls.data.scriptgroups[scriptGroup] ) !== -1 ) {

- 				return scriptGroup;

- 			}

- 		}

- 

- 		return 'Other';

- 	};

- 

- 	/**

- 	 * Returns the script group of a language.

- 	 * @param language string Language code

- 	 * @return string script group name

- 	 */

- 	$.uls.data.getScriptGroupOfLanguage = function ( language ) {

- 		return $.uls.data.getGroupOfScript( $.uls.data.getScript( language ) );

- 	};

- 

- 	/**

- 	 * A callback for sorting languages by autonym.

- 	 * Can be used as an argument to a sort function.

- 	 * @param a string Language code

- 	 * @param b string Language code

- 	 */

- 	$.uls.data.sortByAutonym = function ( a, b ) {

- 		var autonymA = $.uls.data.getAutonym( a ) || a,

- 			autonymB = $.uls.data.getAutonym( b ) || b;

- 

- 		return ( autonymA.toLowerCase() < autonymB.toLowerCase() ) ? -1 : 1;

- 	};

- 

- 	/**

- 	 * Check if a language is right-to-left.

- 	 * @param language string Language code

- 	 * @return boolean

- 	 */

- 	$.uls.data.isRtl = function ( language ) {

- 		return $.inArray( $.uls.data.getScript( language ), $.uls.data.rtlscripts ) !== -1;

- 	};

- 

- 	/**

- 	 * Return the direction of the language

- 	 * @param language string Language code

- 	 * @return string

- 	 */

- 	$.uls.data.getDir = function ( language ) {

- 		return $.uls.data.isRtl( language ) ? 'rtl' : 'ltr';

- 	};

- 

- 	/**

- 	 * Returns the languages spoken in a territory.

- 	 * @param territory string Territory code

- 	 * @return list of language codes

- 	 */

- 	$.uls.data.getLanguagesInTerritory = function ( territory ) {

- 		return $.uls.data.territories[territory];

- 	};

- 

- 	/**

- 	 * Adds a language in run time and sets its options as provided.

- 	 * If the target option is provided, the language is defined as a redirect.

- 	 * Other possible options are script, regions and autonym.

- 	 *

- 	 * @param code string New language code.

- 	 * @param options Object Language properties.

- 	 * @return list of language codes

- 	 */

- 	$.uls.data.addLanguage = function( code, options ) {

- 		if ( options.target ) {

- 			$.uls.data.languages[code] = [options.target];

- 		} else {

- 			$.uls.data.languages[code] = [options.script, options.regions, options.autonym];

- 		}

- 	};

- 

- 	/**

- 	 * Removes a language from the langdb in run time.

- 	 *

- 	 * @param code string Language code to delete.

- 	 * @return true if the language was removed, false otherwise.

- 	 */

- 	$.uls.data.deleteLanguage = function( code ) {

- 		if ( $.uls.data.languages[code] ) {

- 			delete $.uls.data.languages[code];

- 

- 			return true;

- 		}

- 

- 		return false;

- 	};

- } ( jQuery ) );

@@ -1,360 +0,0 @@ 

- /**

-  * jQuery language filter plugin.

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- /**

-  * Usage: $( 'inputbox' ).languagefilter();

-  * The values for autocompletion is from the options.languages.

-  * The data is in the format of languagecode:languagename.

-  */

- (function ( $ ) {

- 	'use strict';

- 

- 	var LanguageFilter, delay;

- 

- 	LanguageFilter = function( element, options ) {

- 		this.$element = $( element );

- 		this.options = $.extend( {}, $.fn.regionselector.defaults, options );

- 		this.$element.addClass( 'languagefilter' );

- 		this.resultCount = 0;

- 		this.$suggestion = this.$element.parents().find( '#' + this.$element.data( 'suggestion' ) );

- 		this.$clear = this.$element.parents().find( '#' + this.$element.data( 'clear' ) );

- 		this.selectedLanguage = null;

- 

- 		this.listen();

- 	};

- 

- 	delay = ( function() {

- 		var timer = 0;

- 

- 		return function( callback, milliseconds ) {

- 			clearTimeout( timer );

- 			timer = setTimeout( callback, milliseconds );

- 		};

- 	} () );

- 

- 	LanguageFilter.prototype = {

- 		listen: function() {

- 			this.$element.on( 'keypress', $.proxy( this.keyup, this ) )

- 				.on( 'keyup', $.proxy( this.keyup, this ) );

- 

- 			if ( this.eventSupported( 'keydown' ) ) {

- 				this.$element.on( 'keydown', $.proxy( this.keyup, this ) );

- 			}

- 

- 			if ( this.$clear.length ) {

- 				this.$clear.on( 'click' , $.proxy( this.clear, this ) );

- 			}

- 

- 			this.toggleClear();

- 		},

- 

- 		keyup: function( e ) {

- 			var suggestion, query, languageFilter;

- 

- 			switch( e.keyCode ) {

- 				case 9: // Tab -> Autocomplete

- 					suggestion = this.$suggestion.val();

- 

- 					if ( suggestion && suggestion !== this.$element.val() ) {

- 						this.$element.val( suggestion );

- 						e.preventDefault();

- 						e.stopPropagation();

- 					}

- 					break;

- 				case 13: // Enter

- 					if ( !this.options.onSelect ) {

- 						break;

- 					}

- 

- 					// Avoid bubbling this 'enter' to background page elements

- 					e.preventDefault();

- 					e.stopPropagation();

- 

- 					query = $.trim( this.$element.val() ).toLowerCase();

- 

- 					if ( this.selectedLanguage ) {

- 						// this.selectLanguage will be populated from a matching search

- 						this.options.onSelect( this.selectedLanguage );

- 					} else if ( this.options.languages[query] ) {

- 						// Search is yet to happen (in timeout delay),

- 						// but we have a matching language code.

- 						this.options.onSelect( query );

- 					}

- 

- 					break;

- 				default:

- 					languageFilter = this;

- 

- 					if ( e.which < 32 &&

- 						e.which !== 8 // Backspace

- 					) {

- 						// ignore any ASCII control characters

- 						break;

- 					}

- 

- 					this.selectedLanguage = null;

- 

- 					delay( function() {

- 						if ( !languageFilter.$element.val() ) {

- 							languageFilter.clear();

- 						} else {

- 							languageFilter.options.$target.empty();

- 							languageFilter.search();

- 						}

- 					}, 300 );

- 

- 					this.toggleClear();

- 			}

- 		},

- 

- 		/**

- 		 * Clears the current search removing

- 		 * clear buttons and suggestions.

- 		 */

- 		deactivate: function() {

- 			this.$element.val( '' );

- 

- 			if ( !$.fn.uls.Constructor.prototype.isMobile() ) {

- 				this.$element.focus();

- 			}

- 

- 			this.toggleClear();

- 			this.autofill();

- 		},

- 

- 		/**

- 		 * Clears the search and shows all languages

- 		 */

- 		clear: function() {

- 			this.deactivate();

- 			this.$element.trigger( 'searchclear.uls' );

- 		},

- 

- 		/**

- 		 * Toggles the visibility of clear icon depending

- 		 * on whether there is anything to clear.

- 		 */

- 		toggleClear: function() {

- 			if ( !this.$clear.length ) {

- 				return;

- 			}

- 

- 			if ( this.$element.val() ) {

- 				this.$clear.show();

- 			} else {

- 				this.$clear.hide();

- 			}

- 		},

- 

- 		search: function() {

- 			var languagesInScript,

- 				query = $.trim( this.$element.val() ),

- 				languages = $.uls.data.getLanguagesByScriptGroup( this.options.languages ),

- 				scriptGroup, langNum, langCode;

- 

- 			this.resultCount = 0;

- 

- 			for ( scriptGroup in languages ) {

- 				languagesInScript = languages[scriptGroup];

- 

- 				languagesInScript.sort( $.uls.data.sortByAutonym );

- 

- 				for ( langNum = 0; langNum < languagesInScript.length; langNum++ ) {

- 					langCode = languagesInScript[langNum];

- 

- 					if ( query === '' || this.filter( langCode, query ) ) {

- 						if ( this.resultCount === 0 ) {

- 							// Autofill the first result.

- 							this.autofill( langCode );

- 						}

- 

- 						if ( query.toLowerCase() === langCode ) {

- 							this.selectedLanguage = langCode;

- 						}

- 

- 						if ( this.render( langCode ) ) {

- 							this.resultCount++;

- 						}

- 					}

- 				}

- 			}

- 

- 			// Also do a search by search API

- 			if( !this.resultCount && this.options.searchAPI && query ) {

- 				this.searchAPI( query );

- 			} else {

- 				this.resultHandler( query );

- 			}

- 		},

- 

- 		searchAPI: function( query ) {

- 			var languageFilter = this;

- 

- 			$.get( languageFilter.options.searchAPI, { search: query }, function( result ) {

- 				$.each( result.languagesearch, function( code, name ) {

- 					if ( languageFilter.resultCount === 0 ) {

- 						// Autofill the first result.

- 						languageFilter.autofill( code, name );

- 					}

- 

- 					if ( languageFilter.render( code ) ) {

- 						languageFilter.resultCount++;

- 					}

- 				} );

- 

- 				languageFilter.resultHandler( query );

- 			} );

- 		},

- 

- 		/**

- 		 * Handler method to be called once search is over.

- 		 * Based on search result triggers resultsfound or noresults events

- 		 * @param query string

- 		 */

- 		resultHandler: function( query ) {

- 			if ( this.resultCount === 0 ) {

- 				this.$suggestion.val( '' );

- 				this.$element.trigger( 'noresults.uls', query );

- 			} else {

- 				this.$element.trigger( 'resultsfound.uls', [query, this.resultCount] );

- 			}

- 		},

- 

- 		autofill: function( langCode, languageName ) {

- 			if ( !this.$suggestion.length ) {

- 				return;

- 			}

- 

- 			if ( !this.$element.val() ) {

- 				this.$suggestion.val( '' );

- 				return;

- 			}

- 

- 			this.selectedLanguage = langCode;

- 			languageName = languageName || this.options.languages[langCode];

- 

- 			if ( !languageName ) {

- 				return;

- 			}

- 

- 			var autonym,

- 				userInput = this.$element.val(),

- 				suggestion = userInput + languageName.substring( userInput.length, languageName.length );

- 

- 			if ( suggestion.toLowerCase() !== languageName.toLowerCase() ) {

- 				// see if it was autonym match

- 				autonym = $.uls.data.getAutonym( langCode ) || '';

- 				suggestion = userInput + autonym.substring( userInput.length, autonym.length );

- 

- 				if ( suggestion !== autonym ) {

- 					// Give up. It may be an ISO/script code match.

- 					suggestion = '';

- 				}

- 			}

- 

- 			// Make sure that it is a visual prefix.

- 			if ( !isVisualPrefix( userInput, suggestion ) ) {

- 				suggestion = '';

- 			}

- 

- 			this.$suggestion.val( suggestion );

- 		},

- 

- 		render: function( langCode ) {

- 			var $target = this.options.$target;

- 

- 			if ( !$target ) {

- 				return false;

- 			}

- 

- 			return $target.append( langCode );

- 		},

- 

- 		escapeRegex: function( value ) {

- 			return value.replace( /[\-\[\]{}()*+?.,\\\^$\|#\s]/g, '\\$&' );

- 		},

- 

- 		/**

- 		 * A search match happens if any of the following passes:

- 		 * a) Language name in current user interface language

- 		 * 'starts with' search string.

- 		 * b) Language autonym 'starts with' search string.

- 		 * c) ISO 639 code match with search string.

- 		 * d) ISO 15924 code for the script match the search string.

- 		 */

- 		filter: function( langCode, searchTerm ) {

- 			// FIXME script is ISO 15924 code. We might need actual name of script.

- 			var matcher = new RegExp( '^' + this.escapeRegex( searchTerm ), 'i' ),

- 				languageName = this.options.languages[langCode];

- 

- 			return matcher.test( languageName ) ||

- 				matcher.test( $.uls.data.getAutonym( langCode ) ) ||

- 				matcher.test( langCode ) ||

- 				matcher.test( $.uls.data.getScript( langCode ) );

- 		},

- 

- 		eventSupported: function ( eventName ) {

- 			var isSupported = eventName in this.$element;

- 

- 			if ( !isSupported ) {

- 				this.$element.setAttribute( eventName, 'return;' );

- 				isSupported = typeof this.$element[eventName] === 'function';

- 			}

- 

- 			return isSupported;

- 		}

- 	};

- 

- 	$.fn.languagefilter = function( option ) {

- 		return this.each( function() {

- 			var $this = $( this ),

- 				data = $this.data( 'languagefilter' ),

- 				options = typeof option === 'object' && option;

- 

- 			if ( !data ) {

- 				$this.data( 'languagefilter', ( data = new LanguageFilter( this, options ) ) );

- 			}

- 

- 			if ( typeof option === 'string' ) {

- 				data[option]();

- 			}

- 		} );

- 	};

- 

- 	$.fn.languagefilter.defaults = {

- 		$target: null, // Where to append the results

- 		searchAPI: null,

- 		languages: null, // Languages as code:name format.

- 		onSelect: null // Language select handler - like enter in filter textbox.

- 	};

- 

- 	$.fn.languagefilter.Constructor = LanguageFilter;

- 

- 	/**

- 	 * Check if a prefix is visually prefix of a string

- 	 * @param prefix string

- 	 * @param string string

- 	 */

- 	function isVisualPrefix( prefix, string ) {

- 		// Pre-base vowel signs of Indic languages. A vowel sign is called pre-base if

- 		// consonant + vowel becomes [vowel][consonant] when rendered. Eg: ക + െ => കെ

- 		var prebases = 'െേൈൊോൌெேைொோௌେୈୋୌિਿिিেৈোৌෙේෛොෝෞ';

- 		return prebases.indexOf( string[prefix.length] ) <= 0;

- 	}

- } ( jQuery ) );

@@ -1,396 +0,0 @@ 

- /**

-  * Universal Language Selector

-  * Language category display component - Used for showing the search results,

-  * grouped by regions, scripts

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- ( function ( $ ) {

- 	'use strict';

- 

- 	var noResultsTemplate, LanguageCategoryDisplay;

- 

- 	/*jshint multistr:true */

- 	noResultsTemplate = '<div class="twelve columns uls-no-results-view hide">\

- 		<h2 data-i18n="uls-no-results-found" class="eleven columns offset-by-one uls-no-results-found-title">\

- 		No results found\

- 		</h2>\

- 		<div id="uls-no-found-more" class="uls-no-found-more">\

- 			<div class="ten columns offset-by-one">\

- 				<p>\

- 					<span data-i18n="uls-search-help">You can search by language name, \

- 					script name, ISO code of language or \

- 					you can browse by region:</span>\

- 					<a class="uls-region-link" data-i18n="uls-region-AM" data-region="AM">America</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-EU" data-region="EU">Europe</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-ME" data-region="ME">Middle East</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-AF" data-region="AF">Africa</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-AS" data-region="AS">Asia</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-PA" data-region="PA">Pacific</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-WW" data-region="WW">Worldwide</a>.\

- 				</p>\

- 			</div>\

- 		</div>\

- 	</div>';

- 	/*jshint multistr:false */

- 

- 	LanguageCategoryDisplay = function ( element, options ) {

- 		this.$element = $( element );

- 		this.options = $.extend( {}, $.fn.lcd.defaults, options );

- 		this.$element.addClass( 'lcd' );

- 		this.regionLanguages = {};

- 		this.renderTimeout = null;

- 		this.cachedQuicklist = null;

- 

- 		this.$element.append( $( noResultsTemplate ) );

- 		this.$noResults = this.$element.children( '.uls-no-results-view' );

- 

- 		this.render();

- 		this.listen();

- 	};

- 

- 	LanguageCategoryDisplay.prototype = {

- 		constructor: LanguageCategoryDisplay,

- 

- 		/**

- 		 * Adds language to the language list.

- 		 * @param {string} langCode

- 		 * @param {string} [regionCode]

- 		 * @return {bool} Whether the language was added.

- 		 */

- 		append: function ( langCode, regionCode ) {

- 			var lcd = this, i, regions;

- 

- 			if ( !this.options.languages[langCode] ) {

- 				// Language is unknown or not in the list of languages for this context.

- 				return false;

- 			}

- 

- 			if ( regionCode ) {

- 				regions = [regionCode];

- 			} else {

- 				regions = $.uls.data.getRegions( langCode );

- 			}

- 

- 			// Worldwides only displayed once

- 			if ( $.inArray( 'WW', regions ) > -1 ) {

- 				regions = ['WW'];

- 			}

- 

- 			for ( i = 0; i < regions.length; i++ ) {

- 				this.regionLanguages[regions[i]].push( langCode );

- 			}

- 

- 			// Work around the bad interface, delay rendering until we have got

- 			// all the languages to speed up performance.

- 			window.clearTimeout( this.renderTimeout );

- 			this.renderTimeout = window.setTimeout( function () {

- 				lcd.renderRegions();

- 			}, 50 );

- 

- 			return true;

- 		},

- 

- 		render: function () {

- 			var $section,

- 				lcd = this,

- 				regions = [],

- 				regionNames = {

- 					// These are fallback text when i18n library not present

- 					WW: 'Worldwide',

- 					SP: 'Special',

- 					AM: 'America',

- 					EU: 'Europe',

- 					ME: 'Middle East',

- 					AS: 'Asia',

- 					AF: 'Africa',

- 					PA: 'Pacific'

- 				};

- 

- 			regions.push( this.buildQuicklist() );

- 

- 			$.each( $.uls.data.regiongroups, function ( regionCode ) {

- 				lcd.regionLanguages[regionCode] = [];

- 				// Don't show the region unless it was enabled

- 				if ( $.inArray( regionCode, lcd.options.showRegions ) === -1 ) {

- 					return;

- 				}

- 

- 				$section = $( '<div>' )

- 					.addClass( 'eleven columns offset-by-one uls-lcd-region-section hide' )

- 					.attr( 'id', regionCode )

- 					.append(

- 						$( '<h3>' )

- 						.attr( 'data-i18n', 'uls-region-' + regionCode )

- 						.addClass( 'eleven columns uls-lcd-region-title' )

- 						.text( regionNames[regionCode] )

- 					);

- 

- 				regions.push( $section );

- 			} );

- 

- 			lcd.$element.append( regions );

- 

- 			this.i18n();

- 		},

- 

- 		/**

- 		 * Renders a region and displays it if it has content.

- 		 */

- 		renderRegions: function () {

- 			var lcd = this, languages,

- 				items = lcd.options.itemsPerColumn,

- 				columns = 4;

- 

- 			this.$noResults.addClass( 'hide' );

- 			this.$element.find( '.uls-lcd-region-section' ).each( function () {

- 				var $region = $( this ),

- 					regionCode = $region.attr( 'id' );

- 

- 				if ( $region.is( '#uls-lcd-quicklist' ) ) {

- 					return;

- 				}

- 

- 				$region.children( '.uls-language-block' ).remove();

- 

- 				languages = lcd.regionLanguages[regionCode];

- 				if ( !languages || languages.length === 0 ) {

- 					$region.addClass( 'hide' );

- 					return;

- 				}

- 

- 				lcd.renderRegion( $region, languages, items, columns );

- 				$region.removeClass( 'hide' );

- 

- 				lcd.regionLanguages[regionCode] = [];

- 			} );

- 

- 		},

- 

- 		/**

- 		 * Adds given languages sorted into rows and columns into given element.

- 		 * @param {jQuery} $region Element to add language list.

- 		 * @param {array} languages List of language codes.

- 		 * @param {number} itemsPerColumn How many languages fit in a column.

- 		 * @param {number} columnsPerRow How many columns fit in a row.

- 		 */

- 		renderRegion: function( $region, languages, itemsPerColumn, columnsPerRow ) {

- 			var i, lastItem, currentScript, nextScript, force,

- 				len = languages.length,

- 				items = [],

- 				columns = [],

- 				rows = [];

- 

- 			for ( i = 0; i < len; i++ ) {

- 				force = false;

- 				nextScript = $.uls.data.getScriptGroupOfLanguage( languages[i+1] );

- 

- 				lastItem = len - i === 1;

- 				// Force column break if script changes and column has more than one row already

- 				if ( i === 0 ) {

- 					currentScript = $.uls.data.getScriptGroupOfLanguage( languages[i] );

- 				} else if ( currentScript !== nextScript && items.length > 1 ) {

- 					force = true;

- 				}

- 				currentScript = nextScript;

- 

- 				items.push( this.renderItem( languages[i] ) );

- 

- 				if ( items.length >= itemsPerColumn || lastItem || force ) {

- 					columns.push( $( '<ul>' ).addClass( 'three columns' ).append( items ) );

- 					items = [];

- 					if ( columns.length >= columnsPerRow || lastItem ) {

- 						rows.push( $( '<div>' ).addClass( 'row uls-language-block' ).append( columns ) );

- 						columns = [];

- 					}

- 				}

- 			}

- 

- 			$region.append( rows );

- 		},

- 

- 		/**

- 		 * Creates dom node representing one item in language list.

- 		 * @param {string} code Language code

- 		 * @return {Element}

- 		 */

- 		renderItem: function( code ) {

- 			var a, name, autonym, li;

- 

- 			name = this.options.languages[code];

- 			autonym = $.uls.data.getAutonym( code ) || name || code;

- 

- 			// Not using jQuery as this is performance hotspot

- 			li = document.createElement( 'li' );

- 			li.title = name;

- 			li.lang = code;

- 			li.dir = $.uls.data.getDir( code );

- 			li.setAttribute( 'data-code', code );

- 

- 			a = document.createElement( 'a' );

- 			a.appendChild( document.createTextNode( autonym ) );

- 			a.className = 'autonym';

- 

- 			li.appendChild( a );

- 			if ( this.options.languageDecorator ) {

- 				this.options.languageDecorator( $( a ), code );

- 			}

- 			return li;

- 		},

- 

- 		i18n: function ( ) {

- 			this.$element.find( '[data-i18n]' ).i18n();

- 		},

- 

- 		/**

- 		 * Adds quicklist as a region.

- 		 */

- 		quicklist: function () {

- 			this.$element.find( '#uls-lcd-quicklist' ).removeClass( 'hide' );

- 		},

- 

- 		buildQuicklist: function () {

- 			var quickList, $quickListSection, $quickListSectionTitle;

- 

- 			if ( this.cachedQuicklist !== null ) {

- 				return this.cachedQuicklist;

- 			}

- 

- 			if ( $.isFunction( this.options.quickList ) ) {

- 				this.options.quickList = this.options.quickList();

- 			}

- 

- 			if ( !this.options.quickList ) {

- 				this.cachedQuicklist = $( [] );

- 				return this.cachedQuicklist;

- 			}

- 

- 			// Pick only the first elements, because we don't have room for more

- 			quickList = this.options.quickList;

- 			quickList = quickList.slice( 0, 16 );

- 			quickList.sort( $.uls.data.sortByAutonym );

- 

- 			$quickListSection = $( '<div>' )

- 				.addClass( 'eleven columns offset-by-one uls-lcd-region-section' )

- 				.attr( 'id', 'uls-lcd-quicklist' );

- 

- 			$quickListSectionTitle = $( '<h3>' )

- 				.attr( 'data-i18n', 'uls-common-languages' )

- 				.addClass( 'eleven columns uls-lcd-region-title' )

- 				.text( 'Common languages' ); // This is placeholder text if jquery.i18n not present

- 			$quickListSection.append( $quickListSectionTitle );

- 

- 			this.renderRegion( $quickListSection, quickList, 4, 4 );

- 

- 			$quickListSectionTitle.i18n();

- 

- 			this.cachedQuicklist = $quickListSection;

- 			return this.cachedQuicklist;

- 		},

- 

- 		show: function () {

- 			if ( !this.regionDivs ) {

- 				this.render();

- 			}

- 		},

- 

- 		empty: function () {

- 			this.$element.find( '#uls-lcd-quicklist' ).addClass( 'hide' );

- 		},

- 

- 		focus: function () {

- 			this.$element.focus();

- 		},

- 

- 		noResults: function () {

- 			this.$noResults.removeClass( 'hide' );

- 			if ( this.$noResults.find( '.uls-lcd-region-title' ).length ) {

- 				return;

- 			}

- 

- 			var $suggestions = this.buildQuicklist().clone();

- 			$suggestions.find( 'h3' )

- 				.data( 'i18n', 'uls-no-results-suggestion-title' )

- 				.text( 'You may be interested in:' )

- 				.i18n();

- 			this.$noResults.find( 'h2' ).after( $suggestions );

- 		},

- 

- 		listen: function () {

- 			var lcd = this;

- 

- 			if ( this.options.clickhandler ) {

- 				this.$element.on( 'click', '.row li', function () {

- 					lcd.options.clickhandler.call( this, $( this ).data( 'code' ) );

- 				} );

- 			}

- 

- 			// The region section need to be in sync with the map filter.

- 			lcd.$element.scroll( function () {

- 				var inview, inviewRegion,

- 					$ulsLanguageList = $( this ),

- 					scrollTop = $ulsLanguageList.position().top,

- 					scrollBottom = $ulsLanguageList.height();

- 

- 				// The region section need to be in sync with the map filter.

- 				inviewRegion = 'WW';

- 				lcd.$element.find( '.uls-lcd-region-section' ).each( function () {

- 					var $lcdRegionSection = $( this ),

- 						top = $lcdRegionSection.position().top,

- 						height = $lcdRegionSection.height(),

- 						padding = 10;

- 

- 					if ( top - padding <= scrollTop && height > scrollBottom ) {

- 						inviewRegion = $lcdRegionSection.attr( 'id' );

- 					}

- 				} );

- 

- 				// highlight the region visible while scrolling in the map.

- 				inview = $.uls.data.regiongroups[inviewRegion];

- 				if ( !$( '#uls-region-' + inview ).hasClass( 'active' ) ) {

- 					$( '.regionselector' ).removeClass( 'active' );

- 					$( '#uls-region-' + inview ).addClass( 'active' );

- 				}

- 			} );

- 		}

- 	};

- 

- 	$.fn.lcd = function ( option ) {

- 		return this.each( function () {

- 			var $this = $( this ),

- 				data = $this.data( 'lcd' ),

- 				options = typeof option === 'object' && option;

- 

- 			if ( !data ) {

- 				$this.data( 'lcd', ( data = new LanguageCategoryDisplay( this, options ) ) );

- 			}

- 

- 			if ( typeof option === 'string') {

- 				data[option]();

- 			}

- 		} );

- 	};

- 

- 	$.fn.lcd.defaults = {

- 		languages: null,

- 		showRegions: ['WW', 'AM', 'EU', 'ME', 'AF', 'AS', 'PA'],

- 		itemsPerColumn: 8,

- 		languageDecorator: null

- 	};

- 

- 	$.fn.lcd.Constructor = LanguageCategoryDisplay;

- } ( jQuery ) );

@@ -1,1 +0,0 @@ 

- (function(e){"use strict";var t,n;t='<div class="grid uls-menu uls-wide"> 			<div class="row"> 				<span id="uls-close" class="uls-icon-close"></span> 			</div> 			<div class="row"> 				<div class="uls-title-region seven columns">					<h1 data-i18n="uls-select-language" class="uls-title">Select Language</h1>				</div>				<div class="five columns uls-map-block" id="uls-map-block">					<div class="row">						<div data-regiongroup="1" id="uls-region-1" class="three columns uls-region uls-region-1">							<a data-i18n="uls-region-WW">Worldwide</a>						</div>						<div class="nine columns">							<div class="row uls-worldmap">								<div data-regiongroup="2" id="uls-region-2" class="four columns uls-region">									<a data-i18n="uls-region-AM">America</a>								</div>								<div data-regiongroup="3" id="uls-region-3" class="four columns uls-region">									<a><span data-i18n="uls-region-EU">Europe</span><br>									<span data-i18n="uls-region-ME">Middle East</span><br>									<span data-i18n="uls-region-AF">Africa</span></a>								</div>								<div data-regiongroup="4" id="uls-region-4" class="four columns uls-region">									<a><span data-i18n="uls-region-AS">Asia</span><br>									<span data-i18n="uls-region-PA">Pacific</span></a>								</div>							</div>						</div>					</div>				</div>			</div>			<div id="search" class="row uls-search"> 				<div class="one column">					<span class="uls-search-label"></span>				</div>				<div class="ten columns">					<div id="uls-search-input-block" class="uls-search-input-block">						<input type="text" class="uls-filterinput uls-filtersuggestion" id="uls-filtersuggestion" disabled="true"							autocomplete="off" /> <input type="text" class="uls-filterinput uls-languagefilter" id="uls-languagefilter"							data-clear="uls-languagefilter-clear" data-suggestion="uls-filtersuggestion"							placeholder="Language search" autocomplete="off" />					</div>				</div>				<div class="one column">					<span id="uls-languagefilter-clear" class="uls-languagefilter-clear"></span>				</div>			</div>			<div class="row uls-language-list"></div>			<div class="row" id="uls-settings-block"></div>		</div>';n=function(n,r){this.$element=e(n);this.options=e.extend({},e.fn.uls.defaults,r);this.$menu=e(t);this.languages=this.options.languages;for(var i in this.languages){if(e.uls.data.languages[i]===undefined){delete this.languages[i]}}this.left=this.options.left;this.top=this.options.top;this.shown=false;this.initialized=false;this.$languageFilter=this.$menu.find("#uls-languagefilter");this.$regionFilters=this.$menu.find(".uls-region");this.$resultsView=this.$menu.find("div.uls-language-list");this.render();this.listen();this.ready()};n.prototype={constructor:n,ready:function(){if(this.options.onReady){this.options.onReady.call(this)}},visible:function(){if(this.options.onVisible){this.options.onVisible.call(this)}},position:function(){var t=e.extend({},this.$element.offset(),{height:this.$element[0].offsetHeight});return{top:this.top!==undefined?this.top:t.top+t.height,left:this.left!==undefined?this.left:"25%"}},show:function(){this.$menu.css(this.position());if(this.options.compact){this.$menu.addClass("uls-compact")}if(!this.initialized){e("body").prepend(this.$menu);this.i18n();this.defaultSearch();this.initialized=true}e(".uls-menu").hide();this.$menu.show();this.$menu.scrollIntoView();this.shown=true;if(!this.isMobile()){this.$languageFilter.focus()}this.visible()},i18n:function(){if(e.i18n){this.$menu.find("[data-i18n]").i18n();this.$languageFilter.prop("placeholder",e.i18n("uls-search-placeholder"))}},defaultSearch:function(){this.$resultsView.lcd("empty");this.$regionFilters.regionselector("show")},hide:function(){this.$menu.hide();this.shown=false},render:function(){},noresults:function(){e(".regionselector").removeClass("active");this.$resultsView.lcd("noResults")},success:function(){e(".regionselector").removeClass("active");this.$resultsView.show()},listen:function(){var t,n=this;this.$element.on("click",e.proxy(this.click,this));this.$languageFilter.on("searchclear.uls",e.proxy(this.defaultSearch,this));this.$languageFilter.on("noresults.uls",e.proxy(this.noresults,this));this.$languageFilter.on("resultsfound.uls",e.proxy(this.success,this));this.$menu.find("#uls-close").on("click",e.proxy(this.cancel,this));this.$menu.on("click",function(e){e.stopPropagation()});this.$menu.on("keypress",e.proxy(this.keypress,this)).on("keyup",e.proxy(this.keyup,this));if(this.eventSupported("keydown")){this.$menu.on("keydown",e.proxy(this.keypress,this))}t=this.$resultsView.lcd({languages:this.languages,quickList:this.options.quickList,clickhandler:e.proxy(this.select,this),source:this.$languageFilter,showRegions:this.options.showRegions,languageDecorator:this.options.languageDecorator}).data("lcd");this.$languageFilter.languagefilter({$target:t,languages:this.languages,searchAPI:this.options.searchAPI,onSelect:e.proxy(this.select,this)});this.$menu.find(".uls-region, .uls-region-link").regionselector({$target:t,languages:this.languages,success:function(e){n.$languageFilter.languagefilter("deactivate");if(e.regionGroup===1){t.quicklist()}n.success()},noresults:function(){n.$languageFilter.languagefilter("clear")}});e("html").click(e.proxy(this.cancel,this))},select:function(e){this.hide();this.$languageFilter.trigger("searchclear");if(this.options.onSelect){this.options.onSelect.call(this,e)}},cancel:function(){this.hide();if(this.options.onCancel){this.options.onCancel.call(this)}},keyup:function(e){if(!this.shown){return}if(e.keyCode===27){this.cancel();e.preventDefault();e.stopPropagation()}},keypress:function(e){if(!this.shown){return}if(e.keyCode===27){this.cancel();e.preventDefault();e.stopPropagation()}},click:function(e){e.stopPropagation();e.preventDefault();if(this.shown){this.hide()}else{this.show()}},eventSupported:function(e){var t=e in this.$menu;if(!t){this.$element.setAttribute(e,"return;");t=typeof this.$element[e]==="function"}return t},isMobile:function(){return navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry)/)}};e.fn.uls=function(t){return this.each(function(){var r=e(this),i=r.data("uls"),s=typeof t==="object"&&t;if(!i){r.data("uls",i=new n(this,s))}if(typeof t==="string"){i[t]()}})};e.fn.uls.defaults={onSelect:null,searchAPI:null,languages:e.uls.data.getAutonyms(),quickList:null,compact:false,showRegions:["WW","AM","EU","ME","AF","AS","PA"],languageDecorator:null};if(!e.fn.i18n){e.fn.i18n=function(){}}e.fn.scrollIntoView=function(){return this.each(function(){var t,n=e(window),r=n.height(),i=n.scrollTop(),s=i+r,o=e(this),u=o.height(),a=o.offset().top,f=a+u;if(a<i||f>s){if(i>a){t=a}else{t=f-r}e("html, body").stop().animate({scrollTop:t},500)}})};e.fn.uls.Constructor=n})(jQuery);(function(e){"use strict";e.uls=e.uls||{};e.uls.data={languages:{aa:["Latn",["AF"],"Qafár af"],ab:["Cyrl",["EU"],"Аҧсшәа"],ace:["Latn",["AS","PA"],"Acèh"],ady:["Cyrl",["EU","ME"],"Адыгэбзэ"],"ady-cyrl":["ady"],"ady-latn":["Latn",["EU","ME"],"Adygabze"],aeb:["Arab",["AF"],"زَوُن"],af:["Latn",["AF"],"Afrikaans"],ahr:["Deva",["AS"],"अहिराणी"],ak:["Latn",["AF"],"Akan"],akz:["Latn",["AM"],"Albaamo innaaɬiilka"],aln:["Latn",["EU"],"Gegë"],am:["Ethi",["AF"],"አማርኛ"],an:["Latn",["EU"],"aragonés"],ang:["Latn",["EU"],"Ænglisc"],anp:["Deva",["AS"],"अङ्गिका"],ar:["Arab",["ME"],"العربية"],arc:["Syrc",["ME"],"ܐܪܡܝܐ"],arn:["Latn",["AM"],"mapudungun"],aro:["Latn",["AM"],"Araona"],arq:["Arab",["AF"],"جازايرية"],ary:["Latn",["ME"],"Maġribi"],arz:["Arab",["ME"],"مصرى"],as:["Beng",["AS"],"অসমীয়া"],ase:["Sgnw",["AM"],"American sign language"],ast:["Latn",["EU"],"asturianu"],av:["Cyrl",["EU"],"авар"],avk:["Latn",["WW"],"Kotava"],ay:["Latn",["AM"],"Aymar aru"],az:["az-latn"],"az-latn":["Latn",["EU","ME"],"azərbaycanca"],"az-arab":["Arab",["EU","ME"],"آذربايجانجا"],"az-cyrl":["Latn",["EU","ME"],"азәрбајҹанҹа"],azb:["az-arab"],ba:["Cyrl",["EU"],"башҡортса"],bar:["Latn",["EU"],"Boarisch"],"bat-smg":["sgs"],"bbc-latn":["Latn",["AS"],"Batak Toba"],"bbc-batk":["Batk",["AS"],"Batak Toba"],bbc:["Latn",["AS"],"Batak Toba"],bcc:["Arab",["AS","ME"],"بلوچی مکرانی"],bcl:["Latn",["AS"],"Bikol Central"],"be-tarask":["Cyrl",["EU"],"беларуская (тарашкевіца)"],"be-x-old":["be-tarask"],be:["Cyrl",["EU"],"беларуская"],bew:["Latn",["AS"],"Bahasa Betawi"],bfq:["Taml",["AS"],"படகா"],bg:["Cyrl",["EU"],"български"],bh:["Deva",["AS"],"भोजपुरी"],bho:["Deva",["AS"],"भोजपुरी"],bi:["Latn",["PA"],"Bislama"],bjn:["Latn",["AS"],"Bahasa Banjar"],bm:["Latn",["AF"],"bamanankan"],bn:["Beng",["AS"],"বাংলা"],bo:["Tibt",["AS"],"བོད་ཡིག"],bpy:["Beng",["AS"],"বিষ্ণুপ্রিয়া মণিপুরী"],bqi:["Arab",["ME"],"بختياري"],br:["Latn",["EU"],"brezhoneg"],brh:["Latn",["ME","AS"],"Bráhuí"],brx:["Deva",["AS"],"बड़ो"],bs:["Latn",["EU"],"bosanski"],bto:["Latn",["AS"],"Iriga Bicolano"],bug:["Bugi",["AS"],"ᨅᨔ ᨕᨘᨁᨗ"],bxr:["Cyrl",["AS"],"буряад"],ca:["Latn",["EU"],"català"],"cbk-zam":["Latn",["AS"],"Chavacano de Zamboanga"],cdo:["Latn",["AS"],"Mìng-dĕ̤ng-ngṳ̄"],ce:["Cyrl",["EU"],"нохчийн"],ceb:["Latn",["AS"],"Cebuano"],ch:["Latn",["PA"],"Chamoru"],cho:["Latn",["AM"],"Choctaw"],chr:["Cher",["AM"],"ᏣᎳᎩ"],chy:["Latn",["AM"],"Tsetsêhestâhese"],ckb:["Arab",["ME"],"کوردی"],co:["Latn",["EU"],"corsu"],cps:["Latn",["AS"],"Capiceño"],cr:["Cans",["AM"],"ᓀᐦᐃᔭᐍᐏᐣ"],"cr-cans":["cr"],"cr-latn":["Latn",["AM"],"Nēhiyawēwin"],crh:["Latn",["EU"],"qırımtatarca"],"crh-cyrl":["Cyrl",["EU"],"къырымтатарджа"],"crh-latn":["crh"],cs:["Latn",["EU"],"česky"],csb:["Latn",["EU"],"kaszëbsczi"],cu:["Cyrl",["EU"],"словѣньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ"],cv:["Cyrl",["EU"],"Чӑвашла"],cy:["Latn",["EU"],"Cymraeg"],da:["Latn",["EU"],"dansk"],"de-at":["Latn",["EU"],"Österreichisches Deutsch"],"de-ch":["Latn",["EU"],"Schweizer Hochdeutsch"],"de-formal":["Latn",["EU"],"Deutsch (Sie-Form)"],de:["Latn",["EU"],"Deutsch"],diq:["Latn",["EU","AS"],"Zazaki"],dsb:["Latn",["EU"],"dolnoserbski"],dtp:["Latn",["AS"],"Dusun Bundu-liwan"],dv:["Thaa",["AS"],"ދިވެހިބަސް"],dz:["Tibt",["AS"],"ཇོང་ཁ"],ee:["Latn",["AF"],"eʋegbe"],egl:["Latn",["EU"],"Emiliàn"],el:["Grek",["EU"],"Ελληνικά"],eml:["Latn",["EU"],"emiliàn e rumagnòl"],"en-ca":["Latn",["AM"],"Canadian English"],"en-gb":["Latn",["EU","AS","PA"],"British English"],en:["Latn",["EU","AM","AF","ME","AS","PA","WW"],"English"],eo:["Latn",["WW"],"Esperanto"],"es-419":["Latn",["AM"],"español de America Latina"],"es-formal":["Latn",["EU","AM","AF","WW"],"español (formal)"],es:["Latn",["EU","AM","AF","WW"],"español"],esu:["Latn",["AM"],"Yup'ik"],et:["Latn",["EU"],"eesti"],eu:["Latn",["EU"],"euskara"],ext:["Latn",["EU"],"estremeñu"],fa:["Arab",["ME"],"فارسی"],ff:["Latn",["AF"],"Fulfulde"],fi:["Latn",["EU"],"suomi"],fil:["tl"],fit:["Latn",["EU"],"meänkieli"],"fiu-vro":["vro"],fj:["Latn",["PA"],"Na Vosa Vakaviti"],fo:["Latn",["EU"],"føroyskt"],fr:["Latn",["EU","AM","WW"],"français"],frc:["Latn",["AM"],"français cadien"],frp:["Latn",["EU"],"arpetan"],frr:["Latn",["EU"],"Nordfriisk"],fur:["Latn",["EU"],"furlan"],fy:["Latn",["EU"],"Frysk"],ga:["Latn",["EU"],"Gaeilge"],gag:["Latn",["EU"],"Gagauz"],gah:["Latn",["AS"],"Alekano"],"gan-hans":["Hans",["AS"],"赣语(简体)"],"gan-hant":["gan"],gan:["Hant",["AS"],"贛語"],gbz:["Latn",["AS"],"Dari"],gcf:["Latn",["AM"],"Guadeloupean Creole French"],gd:["Latn",["EU"],"Gàidhlig"],gl:["Latn",["EU"],"galego"],glk:["Arab",["ME"],"گیلکی"],gn:["Latn",["AM"],"Avañe'ẽ"],gom:["Deva",["AS"],"कोंकणी"],"gom-deva":["gom"],"gom-latn":["Latn",["AS"],"Konknni"],got:["Goth",["EU"],"𐌲𐌿𐍄𐌹𐍃𐌺"],grc:["Grek",["EU"],"Ἀρχαία ἑλληνικὴ"],gsw:["Latn",["EU"],"Alemannisch"],gu:["Gujr",["AS"],"ગુજરાતી"],guc:["Latn",["AM"],"Wayúu"],gur:["Latn",["AF"],"Gurenɛ"],gv:["Latn",["EU"],"Gaelg"],"ha-arab":["Arab",["AF"],"هَوُسَ"],"ha-latn":["Latn",["AF"],"Hausa"],ha:["ha-latn"],hak:["Latn",["AS"],"Hak-kâ-fa"],haw:["Latn",["AM","PA"],"Hawai`i"],he:["Hebr",["ME"],"עברית"],hi:["Deva",["AS"],"हिन्दी"],hif:["Latn",["PA","AS"],"Fiji Hindi"],"hif-deva":["Deva",["AS"],"फ़ीजी हिन्दी"],"hif-latn":["hif"],hil:["Latn",["AS"],"Ilonggo"],hne:["Deva",["AS"],"छत्तीसगढ़ी"],ho:["Latn",["PA"],"Hiri Motu"],hr:["Latn",["EU"],"hrvatski"],hsb:["Latn",["EU"],"hornjoserbsce"],hsn:["Hans",["AS"],"湘语"],ht:["Latn",["AM"],"Kreyòl ayisyen"],"hu-formal":["Latn",["EU"],"Magyar (magázó)"],hu:["Latn",["EU"],"magyar"],hy:["Armn",["EU","ME"],"Հայերեն"],hz:["Latn",["AF"],"Otsiherero"],ia:["Latn",["WW"],"interlingua"],id:["Latn",["AS"],"Bahasa Indonesia"],ie:["Latn",["WW"],"Interlingue"],ig:["Latn",["AF"],"Igbo"],ii:["Yiii",["AS"],"ꆇꉙ"],ik:["Latn",["AM"],"Iñupiak"],"ike-cans":["Cans",["AM"],"ᐃᓄᒃᑎᑐᑦ"],"ike-latn":["Latn",["AM"],"inuktitut"],ilo:["Latn",["AS"],"Ilokano"],inh:["Cyrl",["EU"],"ГӀалгӀай"],io:["Latn",["WW"],"Ido"],is:["Latn",["EU"],"íslenska"],it:["Latn",["EU"],"italiano"],iu:["Cans",["AM"],"ᐃᓄᒃᑎᑐᑦ"],ja:["Jpan",["AS"],"日本語"],jam:["Latn",["AM"],"Patois"],jbo:["Latn",["WW"],"lojban"],jut:["Latn",["EU"],"jysk"],jv:["Latn",["AS","PA"],"Basa Jawa"],"jv-java":["Java",["AS","PA"],"ꦧꦱꦗꦮ"],ka:["Geor",["EU"],"ქართული"],kaa:["Latn",["AS"],"Qaraqalpaqsha"],kab:["Latn",["AF","EU"],"Taqbaylit"],"kbd-cyrl":["kbd"],"kbd-latn":["Latn",["EU"],"Qabardjajəbza"],kbd:["Cyrl",["EU","ME"],"Адыгэбзэ"],kea:["Latn",["AF"],"Kabuverdianu"],kg:["Latn",["AF"],"Kongo"],kgp:["Latn",["AM"],"Kaingáng"],khw:["Arab",["ME","AS"],"کھوار"],ki:["Latn",["AF"],"Gĩkũyũ"],kiu:["Latn",["EU","ME"],"Kırmancki"],kj:["Latn",["AF"],"Kwanyama"],kjh:["Cyrl",["AS"],"хакас"],kk:["kk-cyrl"],"kk-arab":["Arab",["EU","AS"],"قازاقشا (تٶتە)"],"kk-cn":["kk-arab"],"kk-cyrl":["Cyrl",["EU","AS"],"қазақша"],"kk-kz":["kk-cyrl"],"kk-latn":["Latn",["EU","AS","ME"],"qazaqşa"],"kk-tr":["kk-latn"],kl:["Latn",["AM","EU"],"kalaallisut"],km:["Khmr",["AS"],"ភាសាខ្មែរ"],kn:["Knda",["AS"],"ಕನ್ನಡ"],"ko-kp":["Kore",["AS"],"한국어 (조선)"],ko:["Kore",["AS"],"한국어"],koi:["Cyrl",["EU"],"Перем Коми"],kr:["Latn",["AF"],"Kanuri"],krc:["Cyrl",["EU"],"къарачай-малкъар"],kri:["Latn",["AF"],"Krio"],krj:["Latn",["ME","EU"],"Kinaray-a"],krl:["Latn",["EU"],"Karjala"],"ks-arab":["Arab",["AS"],"کٲشُر"],"ks-deva":["Deva",["AS"],"कॉशुर"],ks:["Arab",["AS"],"کٲشُر"],ksf:["Latn",["AF"],"Bafia"],ksh:["Latn",["EU"],"Ripoarisch"],ku:["ku-latn"],"ku-arab":["Arab",["EU","ME"],"كوردي"],"ku-latn":["Latn",["EU","ME"],"Kurdî"],kv:["Cyrl",["EU"],"коми"],kw:["Latn",["EU"],"kernowek"],ky:["Cyrl",["AS"],"Кыргызча"],la:["Latn",["EU"],"Latina"],lad:["lad-latn"],"lad-latn":["Latn",["ME","EU","AM"],"Ladino"],"lad-hebr":["Hebr",["ME","EU","AM"],"לאדינו"],lb:["Latn",["EU"],"Lëtzebuergesch"],lbe:["Cyrl",["EU"],"лакку"],lez:["Cyrl",["EU"],"лезги"],lfn:["Latn",["WW"],"Lingua Franca Nova"],lg:["Latn",["AF"],"Luganda"],li:["Latn",["EU"],"Limburgs"],lij:["Latn",["EU"],"Ligure"],liv:["Latn",["EU"],"Līvõ kēļ"],lld:["Latn",["EU"],"Ladin"],lmo:["Latn",["EU"],"lumbaart"],ln:["Latn",["AF"],"lingála"],lo:["Laoo",["AS"],"ລາວ"],loz:["Latn",["AF"],"Silozi"],lt:["Latn",["EU"],"lietuvių"],lrc:["Arab",["AS"],"لوری"],ltg:["Latn",["EU"],"latgaļu"],lud:["Latn",["EU"],"lüüdi"],lus:["Latn",["AS"],"Mizo ţawng"],lut:["Latn",["AM"],"dxʷləšucid"],lv:["Latn",["EU"],"latviešu"],lzh:["Hant",["AS"],"文言"],lzz:["Latn",["EU","ME"],"Lazuri"],mai:["Deva",["AS"],"मैथिली"],"map-bms":["Latn",["AS"],"Basa Banyumasan"],mdf:["Cyrl",["EU"],"мокшень"],mfe:["Latn",["AM"],"Morisyen"],mg:["Latn",["AF"],"Malagasy"],mh:["Latn",["PA"],"Ebon"],mhr:["Cyrl",["EU"],"олык марий"],mi:["Latn",["PA"],"Māori"],mic:["Latn",["AM"],"Mi'kmaq"],min:["Latn",["AS"],"Baso Minangkabau"],mk:["Cyrl",["EU"],"македонски"],ml:["Mlym",["AS","ME"],"മലയാളം"],mn:["Cyrl",["AS"],"монгол"],mnc:["Mong",["AS"],"ᠮᠠᠨᠵᡠ ᡤᡳᠰᡠᠨ"],mni:["Beng",["AS"],"মেইতেই লোন্"],mnw:["Mymr",["AS"],"ဘာသာ မန်"],mo:["Cyrl",["EU"],"молдовеняскэ"],mr:["Deva",["AS","ME"],"मराठी"],mrj:["Cyrl",["EU"],"кырык мары"],ms:["Latn",["AS"],"Bahasa Melayu"],mt:["Latn",["EU"],"Malti"],mui:["Latn",["AS"],"Musi"],mus:["Latn",["AM"],"Mvskoke"],mwl:["Latn",["EU"],"Mirandés"],mwv:["Latn",["AS"],"Behase Mentawei"],my:["Mymr",["AS"],"မြန်မာဘာသာ"],myv:["Cyrl",["EU"],"эрзянь"],mzn:["Arab",["ME","AS"],"مازِرونی"],na:["Latn",["PA"],"Dorerin Naoero"],nah:["Latn",["AM"],"Nāhuatl"],nan:["Latn",["AS"],"Bân-lâm-gú"],nap:["Latn",["EU"],"Nnapulitano"],nb:["Latn",["EU"],"norsk (bokmål)"],"nds-nl":["Latn",["EU"],"Nedersaksisch"],nds:["Latn",["EU"],"Plattdüütsch"],ne:["Deva",["AS"],"नेपाली"],"new":["Deva",["AS"],"नेपाल भाषा"],ng:["Latn",["AF"],"Oshiwambo"],niu:["Latn",["PA"],"ko e vagahau Niuē"],njo:["Latn",["AS"],"Ao"],"nl-informal":["Latn",["EU","AM"],"Nederlands (informeel)"],nl:["Latn",["EU","AM"],"Nederlands"],nn:["Latn",["EU"],"norsk (nynorsk)"],no:["Latn",["EU"],"norsk"],nov:["Latn",["WW"],"Novial"],nqo:["Nkoo",["AF"],"ߒߞߏ"],nrm:["Latn",["EU"],"Nouormand"],nso:["Latn",["AF"],"Sesotho sa Leboa"],nv:["Latn",["AM"],"Diné bizaad"],ny:["Latn",["AF"],"Chi-Chewa"],oc:["Latn",["EU"],"occitan"],om:["Latn",["AF"],"Oromoo"],or:["Orya",["AS"],"ଓଡ଼ିଆ"],os:["Cyrl",["EU"],"Ирон"],ota:["Arab",["AS","EU"],"لسان عثمانى"],pa:["pa-guru"],"pa-guru":["Guru",["AS"],"ਪੰਜਾਬੀ"],pag:["Latn",["AS"],"Pangasinan"],pam:["Latn",["AS"],"Kapampangan"],pap:["Latn",["AM"],"Papiamentu"],pcd:["Latn",["EU"],"Picard"],pdc:["Latn",["EU","AM"],"Deitsch"],pdt:["Latn",["EU","AM"],"Plautdietsch"],pfl:["Latn",["EU"],"Pälzisch"],pi:["Deva",["AS"],"पालि"],pih:["Latn",["PA"],"Norfuk / Pitkern"],pis:["Latn",["PA"],"Pijin"],pko:["Latn",["AF"],"Pökoot"],pl:["Latn",["EU"],"polski"],pms:["Latn",["EU"],"Piemontèis"],pnb:["Arab",["AS","ME"],"پنجابی"],pnt:["Grek",["EU"],"Ποντιακά"],ppl:["Latn",["AM"],"Nawat"],prg:["Latn",["EU"],"Prūsiskan"],ps:["Arab",["AS","ME"],"پښتو"],"pt-br":["Latn",["AM"],"português do Brasil"],pt:["Latn",["EU","AM","AS","PA","AF","WW"],"português"],qu:["Latn",["AM"],"Runa Simi"],qug:["Latn",["AM"],"Runa shimi"],rap:["Latn",["AM"],"arero rapa nui"],rgn:["Latn",["EU"],"Rumagnôl"],rif:["Latn",["AF"],"Tarifit"],rki:["Mymr",["AS"],"ရခိုင်"],rm:["Latn",["EU"],"rumantsch"],rmf:["Latn",["EU"],"kaalengo tšimb"],rmy:["Latn",["EU"],"Romani"],rn:["Latn",["AF"],"Kirundi"],ro:["Latn",["EU"],"română"],"roa-rup":["rup"],"roa-tara":["Latn",["EU"],"tarandíne"],rtm:["Latn",["PA"],"Faeag Rotuma"],ru:["Cyrl",["EU","AS","ME"],"русский"],rue:["Cyrl",["EU"],"русиньскый"],rup:["Latn",["EU"],"Armãneashce"],ruq:["Cyrl",["EU"],"Влахесте"],"ruq-cyrl":["ruq"],"ruq-grek":["Grek",["EU"],"Megleno-Romanian (Greek script)"],"ruq-latn":["Latn",["EU"],"Vlăheşte"],rut:["Cyrl",["EU"],"мыхаӀбишды"],rw:["Latn",["AF"],"Kinyarwanda"],rwr:["Deva",["AS"],"मारवाड़ी"],ryu:["Kana",["AS"],"ʔucināguci"],sa:["Deva",["AS"],"संस्कृतम्"],sah:["Cyrl",["EU","AS"],"саха тыла"],sat:["Latn",["AS"],"Santali"],saz:["Saur",["AS"],"ꢱꣃꢬꢵꢯ꣄ꢡ꣄ꢬꢵ"],sc:["Latn",["EU"],"sardu"],scn:["Latn",["EU"],"sicilianu"],sco:["Latn",["EU"],"Scots"],sd:["Arab",["AS"],"سنڌي"],sdc:["Latn",["EU"],"Sassaresu"],se:["Latn",["EU"],"sámegiella"],ses:["Latn",["AF"],"Koyraboro Senni"],sei:["Latn",["AM"],"Cmique Itom"],sg:["Latn",["AF"],"Sängö"],sgs:["Latn",["EU"],"žemaitėška"],sh:["Latn",["EU"],"srpskohrvatski"],"shi-latn":["Latn",["AF"],"Tašlḥiyt"],"shi-tfng":["Tfng",["AF"],"ⵜⴰⵛⵍⵃⵉⵜ"],shi:["shi-latn"],shn:["Mymr",["AS"],"လိၵ်ႈတႆး"],si:["Sinh",["AS"],"සිංහල"],simple:["Latn",["WW"],"Simple English"],sk:["Latn",["EU"],"slovenčina"],sl:["Latn",["EU"],"slovenščina"],sli:["Latn",["EU"],"Schläsch"],slr:["Latn",["AS"],"Salırça"],sly:["Latn",["AS"],"Bahasa Selayar"],syc:["Syrc",["ME"],"ܣܘܪܝܝܐ"],sm:["Latn",["PA"],"Gagana Samoa"],sma:["Latn",["EU"],"åarjelsaemien"],smj:["Latn",["EU"],"julevsámegiella"],smn:["Latn",["EU"],"anarâškielâ"],sms:["Latn",["EU"],"sää´mǩiõll"],sn:["Latn",["AF"],"chiShona"],so:["Latn",["AF"],"Soomaaliga"],sq:["Latn",["EU"],"shqip"],sr:["sr-cyrl"],"sr-ec":["sr-cyrl"],"sr-cyrl":["Cyrl",["EU"],"српски"],"sr-el":["sr-latn"],"sr-latn":["Latn",["EU"],"srpski"],srn:["Latn",["AM","EU"],"Sranantongo"],ss:["Latn",["AF"],"SiSwati"],st:["Latn",["AF"],"Sesotho"],stq:["Latn",["EU"],"Seeltersk"],su:["Latn",["AS"],"Basa Sunda"],sv:["Latn",["EU"],"svenska"],sw:["Latn",["AF"],"Kiswahili"],swb:["Latn",["AF"],"Shikomoro"],sxu:["Latn",["EU"],"Säggssch"],szl:["Latn",["EU"],"ślůnski"],ta:["Taml",["AS"],"தமிழ்"],tcy:["Knda",["AS"],"ತುಳು"],te:["Telu",["AS"],"తెలుగు"],tet:["Latn",["AS","PA"],"tetun"],"tg-cyrl":["Cyrl",["AS"],"тоҷикӣ"],"tg-latn":["Latn",["AS"],"tojikī"],tg:["Cyrl",["AS"],"тоҷикӣ"],th:["Thai",["AS"],"ไทย"],ti:["Ethi",["AF"],"ትግርኛ"],tk:["Latn",["AS"],"Türkmençe"],tkr:["Cyrl",["AS"],"ЦӀаьхна миз"],tl:["Latn",["AS"],"Tagalog"],tly:["Cyrl",["EU","AS","ME"],"толышә зывон"],tn:["Latn",["AF"],"Setswana"],to:["Latn",["PA"],"lea faka-Tonga"],tokipona:["Latn",["WW"],"Toki Pona"],tpi:["Latn",["PA","AS"],"Tok Pisin"],tr:["Latn",["EU","ME"],"Türkçe"],trp:["Latn",["AS"],"Kokborok (Tripuri)"],tru:["Latn",["AS"],"Ṫuroyo"],ts:["Latn",["AF"],"Xitsonga"],tsd:["Grek",["EU"],"Τσακωνικά"],tt:["Cyrl",["EU"],"татарча"],"tt-cyrl":["tt"],"tt-latn":["Latn",["EU"],"tatarça"],ttt:["Cyrl",["AS"],"Tati"],tum:["Latn",["AF"],"chiTumbuka"],tw:["Latn",["AF"],"Twi"],twd:["Latn",["EU"],"Tweants"],ty:["Latn",["PA"],"Reo Mā`ohi"],tyv:["Cyrl",["AS"],"тыва дыл"],tzm:["Tfng",["AF"],"ⵜⴰⵎⴰⵣⵉⵖⵜ"],udm:["Cyrl",["EU"],"удмурт"],ug:["ug-arab"],"ug-arab":["Arab",["AS"],"ئۇيغۇرچە"],"ug-latn":["Latn",["AS"],"uyghurche"],"ug-cyrl":["Cyrl",["AS"],"уйғурчә"],uk:["Cyrl",["EU"],"українська"],ur:["Arab",["AS","ME"],"اردو"],uz:["Latn",["AS"],"oʻzbekcha"],ve:["Latn",["AF"],"Tshivenda"],vec:["Latn",["EU"],"vèneto"],vep:["Latn",["EU"],"vepsän kel’"],vi:["Latn",["AS"],"Tiếng Việt"],vls:["Latn",["EU"],"West-Vlams"],vmf:["Latn",["EU"],"Mainfränkisch"],vo:["Latn",["WW"],"Volapük"],vot:["Latn",["EU"],"Vaďďa"],vro:["Latn",["EU"],"Võro"],wa:["Latn",["EU"],"walon"],war:["Latn",["AS"],"Winaray"],wls:["Latn",["PA"],"Faka'uvea"],wo:["Latn",["AF"],"Wolof"],wuu:["Hans",["AS"],"吴语"],xal:["Cyrl",["EU"],"хальмг"],xh:["Latn",["AF"],"isiXhosa"],xmf:["Geor",["EU"],"მარგალური"],ydd:["Hebr",["AS","EU"],"Eastern Yiddish"],yi:["Hebr",["ME","EU","AM"],"ייִדיש"],yo:["Latn",["AF"],"Yorùbá"],yrk:["Cyrl",["AS"],"Ненэцяʼ вада"],yrl:["Latn",["AM"],"ñe'engatú"],yua:["Latn",["AM"],"Maaya T'aan"],yue:["Hant",["AS"],"粵語"],za:["Latn",["AS"],"Vahcuengh"],zea:["Latn",["EU"],"Zeêuws"],zh:["Hans",["AS"],"中文"],"zh-classical":["Hant",["AS"],"文言"],"zh-cn":["Hans",["AS"],"中文(中国大陆)"],"zh-hans":["Hans",["AS"],"中文(简体)"],"zh-hant":["Hant",["AS"],"中文(繁體)"],"zh-hk":["Hant",["AS"],"中文(香港)"],"zh-min-nan":["nan"],"zh-mo":["Hant",["AS"],"中文(澳門)"],"zh-my":["Hans",["AS"],"中文(马来西亚)"],"zh-sg":["Hans",["AS"],"中文(新加坡)"],"zh-tw":["Hant",["AS"],"中文(台灣)"],"zh-yue":["yue"],zu:["Latn",["AF"],"isiZulu"]},scriptgroups:{Latin:["Latn","Goth"],Greek:["Grek"],WestCaucasian:["Armn","Geor"],Arabic:["Arab"],MiddleEastern:["Hebr","Syrc"],African:["Ethi","Nkoo","Tfng"],SouthAsian:["Beng","Deva","Gujr","Guru","Knda","Mlym","Orya","Saur","Sinh","Taml","Telu","Tibt","Thaa"],Cyrillic:["Cyrl"],CJK:["Hans","Hant","Kana","Kore","Jpan","Yiii"],SouthEastAsian:["Batk","Bugi","Java","Khmr","Laoo","Mymr","Thai"],Mongolian:["Mong"],SignWriting:["Sgnw"],NativeAmerican:["Cher","Cans"],Special:["Zyyy"]},rtlscripts:["Arab","Hebr","Syrc","Nkoo","Thaa"],regiongroups:{WW:1,SP:1,AM:2,EU:3,ME:3,AF:3,AS:4,PA:4},territories:{AC:["en"],AD:["ca","es","fr"],AE:["ar","ml","ps","bal","fa"],AF:["fa","ps","haz","uz-arab","tk-latn","prd","bal","ug-arab","kk-arab"],AG:["en","pt"],AI:["en"],AL:["sq","el","mk"],AM:["hy","ku-latn","az-latn"],AO:["pt","umb","kmb","ln"],AQ:["und"],AR:["es","cy","gn"],AS:["sm","en"],AT:["de","bar","hr","sl","hu"],AU:["en","zh-hant","it"],AW:["nl","pap","en"],AX:["sv"],AZ:["az-latn","az-cyrl","tly-latn","ku-latn","ttt-latn","tkr-latn"],BA:["bs-cyrl","bs-latn","hr","sr-cyrl","sr-latn"],BB:["en"],BD:["bn","rkt","syl","ccp","my","grt","mni"],BE:["nl","en","fr","vls","wa","de"],BF:["mos","dyu","fr"],BG:["bg","tr"],BH:["ar","ml"],BI:["rn","fr","sw"],BJ:["fr","fon","yo"],BL:["fr"],BM:["en"],BN:["ms-latn","zh-hant","ms-arab","en"],BO:["es","qu","ay","gn","aro"],BQ:["pap","nl"],BR:["pt","de","it","ja","ko","kgp","gub","yrl","xav"],BS:["en"],BT:["dz","ne","tsj","lep"],BV:["und"],BW:["en","tn","af"],BY:["be","ru"],BZ:["en","es"],CA:["en","fr","it","de","pdt","cr-cans","crk","yi","iu-cans","iu-latn","moe","crj","atj","crl","csw","crm","ikt","moh","dgr","den","scs","nsk","chp","gwi"],CC:["ms-arab","en"],CD:["sw","lua","swc","fr","ln","lu","kg","lol","rw"],CF:["fr","sg","ln"],CG:["fr","ln"],CH:["de","fr","gsw","it","lmo","rm","rmo","wae"],CI:["fr","bci","sef","dnj","kfo","bqv"],CK:["en"],CL:["es","arn"],CM:["fr","en","bum","ff","ewo","ybb","bbj","nnh","bkm","bas","bax","byv","mua","maf","bfd","bss","kkj","dua","mgo","ar","jgo","ksf","agq","ha-arab","nmg","yav"],CN:["zh-hans","wuu","hsn","hak","nan","gan","ii","ug-arab","za","mn-mong","bo","ko","kk-arab","lis","ky-arab","nxq","khb","tdd","lcp","en","ru","vi","uz-cyrl","lzh"],CO:["es","guc"],CP:["und"],CR:["es"],CU:["es"],CV:["kea","pt"],CW:["pap","nl","es"],CX:["en"],CY:["el","tr","hy","ar"],CZ:["cs","de","pl"],DE:["de","en","nds","vmf","tr","hr","it","ku-latn","ru","el","ksh","pl","es","nl","da","hsb","frr","dsb","frs","stq","pfl"],DG:["en"],DJ:["aa","so","ar","fr"],DK:["da","de","kl","jut"],DM:["en"],DO:["es","en"],DZ:["arq","ar","fr","kab"],EA:["es"],EC:["es","qu","qug"],EE:["et","ru","vro"],EG:["ar","arz","el"],EH:["ar"],ER:["ti","en","tig","ar","aa","ssy","byn"],ES:["es","en","ca","gl","eu","ast","ext"],ET:["en","am","om","so","ti","sid","wal","aa"],FI:["fi","sv","ru","en","et","rmf","se","smn","sms"],FJ:["en","hi","hif-deva","fj","rtm"],FK:["en"],FM:["chk","pon","kos","yap","en","uli"],FO:["fo"],FR:["fr","en","oc","it","pt","pcd","gsw","br","co","ca","nl","eu","frp","ia"],GA:["fr","puu"],GB:["en","sco","pa-guru","cy","bn","zh-hant","syl","el","it","ks-arab","gd","yi","ml","ga","fr","kw"],GD:["en"],GE:["ka","xmf","ru","hy","ab","os","ku-latn"],GF:["fr","gcr","zh-hant"],GG:["en"],GH:["ak","en","ee","abr","gur","gaa","ha-latn","saf"],GI:["en"],GL:["kl","da"],GM:["en","man-latn"],GN:["fr","ff","man-nkoo","sus","nqo","kpe"],GP:["fr"],GQ:["es","fan","fr","bvb"],GR:["el","pnt-grek","mk","tr","bg","sq","tsd"],GS:["und"],GT:["es","quc"],GU:["en","ch"],GW:["pt"],GY:["en"],HK:["zh-hant","en","zh-hans"],HM:["und"],HN:["es","en"],HR:["hr","it"],HT:["ht","fr"],HU:["hu","de","ro","hr","sk","sl"],IC:["es"],ID:["id","jv","su","mad","ms-arab","min","bew","ban","bug","bjn","ace","sas","bbc","zh-hant","mak","ljp","rej","gor","nij","kge","aoz","kvr","lbw","rob","mdr","sxn","sly","mwv"],IE:["en","ga"],IL:["he","ar","ru","ro","yi","en","pl","lad","hu","am","ti","ml"],IM:["en","gv"],IN:["hi","en","bn","te","mr","ta","ur","gu","kn","ml","or","pa-guru","bho","awa","as","bgc","mag","mwr","mai","hne","dcc","bjj","ne","sat","wtm","rkt","ks-arab","kok","gom","swv","gbm","lmn","sd-arab","gon-telu","kfy","doi","kru","sck","wbq","xnr","tcy","wbr","khn","brx","noe","bhb","mni","raj","hoc","mtr","unr-beng","bhi","hoj","kha","kfr","grt","unx-beng","bfy","srx","saz","ccp","sd-deva","bfq","njo","ria","bo","bpy","bft","bra","lep","btv","lif-deva","lah","sa","kht","dv","dz"],IO:["en"],IQ:["ar","ckb","fa","syr"],IR:["fa","az-arab","azb","mzn","glk","ckb","tk-latn","lrc","ar","bal","rmt","bqi","luz","lki","prd","hy","ps","ka","gbz","kk-arab"],IS:["is","da"],IT:["it","en","fr","lmo","pms","sc","de","vec","nap","lij","scn","sl","sdc","fur","egl","ca","el","hr","rgn"],JE:["en"],JM:["en","jam"],JO:["ar"],JP:["ja","ryu","ko"],KE:["en","sw","ki","luy","luo","kam","kln","guz","mer","mas","ebu","so","dav","teo","pko","om","saq","ar","pa-guru","gu"],KG:["ky-cyrl","ru"],KH:["km","cja","kdt"],KI:["en","gil"],KM:["ar","fr","zdj"],KN:["en"],KP:["ko"],KR:["ko"],KW:["ar"],KY:["en"],KZ:["ru","kk-cyrl","de","ug-cyrl"],LA:["lo","kjg","kdt"],LB:["ar","hy","ku-arab","fr","en"],LC:["en"],LI:["de","gsw","wae"],LK:["si","ta","en"],LR:["en","kpe","vai-vaii","men","vai-latn"],LS:["st","zu","ss","en","xh"],LT:["lt","ru","sgs"],LU:["fr","lb","de"],LV:["lv","ru","ltg"],LY:["ar"],MA:["ary","ar","zgh","fr","tzm-latn","shi-latn","shi-tfng","rif-latn","rif-tfng","es"],MC:["fr"],MD:["ro","uk","bg","gag","ru"],ME:["sr-latn","sq","sr-cyrl"],MF:["fr"],MG:["mg","fr","en"],MH:["en","mh"],MK:["mk","sq","tr"],ML:["bm-latn","fr","ffm","snk","mwk","ses","tmh","bm-nkoo","khq","dtm","kao","ar","bmq","bze"],MM:["my","shn","mnw","kht"],MN:["mn-cyrl","kk-arab","zh-hans","ru","ug-cyrl"],MO:["zh-hant","pt","zh-hans","en"],MP:["en","ch"],MQ:["fr"],MR:["ar","fr","ff","wo"],MS:["en"],MT:["mt","en"],MU:["mfe","en","bho","ur","fr","ta"],MV:["dv"],MW:["en","ny","tum","zu"],MX:["es","yua","nhe","nhw","maz","nch","sei"],MY:["ms-latn","en","zh-hant","ta","jv","zmi","dtp","ml","bug","bjn"],MZ:["pt","vmw","ndc","ts","ngl","seh","mgh","rng","ny","yao","sw","zu"],NA:["af","kj","ng","naq","en","de","tn"],NC:["fr"],NE:["ha-latn","fr","dje","fuq","tmh","ar","twq"],NF:["en"],NG:["en","pcm","ha-latn","ig","yo","fuv","tiv","efi","ibb","ha-arab","bin","kaj","kcg","ar","cch","amo"],NI:["es"],NL:["nl","en","li","fy","gos","id","zea","rif-latn","tr"],NO:["nb","nn","se"],NP:["ne","mai","bho","new","jml","taj","awa","thl","bap","tdg","thr","mgp","lif-deva","thq","mrd","bfy","xsr","rjs","tsf","hi","ggn","gvr","bo","tkt","tdh","bn","unr-deva","lep"],NR:["en","na"],NU:["en","niu"],NZ:["en","mi"],OM:["ar","bal","fa"],PA:["es","en","zh-hant"],PE:["es","qu","ay"],PF:["fr","ty","zh-hant"],PG:["tpi","en","ho"],PH:["en","fil","es","ceb","ilo","hil","bik","war","bhk","pam","pag","mdh","tsg","zh-hant","cps","krj","bto","hnn","tbw","bku"],PK:["ur","pa-arab","en","lah","ps","sd-arab","skr","bal","brh","hno","fa","hnd","tg-arab","gju","bft","kvx","khw","mvy","kxp","gjk","ks-arab","btv"],PL:["pl","szl","be","uk","csb","de","sli","lt"],PM:["fr","en"],PN:["en"],PR:["es","en"],PS:["ar"],PT:["pt","gl"],PW:["pau","en"],PY:["gn","es","de"],QA:["ar","fa","ml"],RE:["fr","rcf","ta"],RO:["ro","hu","de","tr","sr-latn","bg","el","pl"],RS:["sr-cyrl","sr-latn","sq","hu","ro","hr","sk","uk"],RU:["ru","tt","ba","cv","hy","ce","av","udm","chm","sah","os","kbd","myv","dar","bua","mdf","kum","kv","lez","krc","inh","tyv","az-cyrl","ady","krl","lbe","koi","mrj","alt","fi","sr-latn","vep","mn-cyrl","izh","cu"],RW:["rw","fr","en"],SA:["ar"],SB:["en","rug"],SC:["crs","fr","en"],SD:["ar","en","nus","ha-arab"],SE:["sv","fi","fit","se","rmu","yi","smj","sma","ia"],SG:["en","zh-hans","ms-latn","ta","ml","pa-guru"],SH:["en"],SI:["sl","hu","it"],SJ:["nb","ru"],SK:["sk","hu","uk","pl","de"],SL:["kri","en","men","tem"],SM:["it","eo"],SN:["wo","fr","ff","srr","dyo"],SO:["so","ar","sw","om"],SR:["nl","srn","zh-hant"],SS:["ar","en"],ST:["pt"],SV:["es"],SX:["en","es","vic","nl"],SY:["ar","ku-latn","fr","hy","syr"],SZ:["en","ss","zu","ts"],TA:["en"],TC:["en"],TD:["fr","ar"],TF:["fr"],TG:["fr","ee"],TH:["th","tts","nod","sou","mfa","zh-hant","kxm","kdt","mnw","shn","lcp","lwl"],TJ:["tg-cyrl","ru","fa","ar"],TK:["en","tkl"],TL:["pt","tet"],TM:["tk-latn","ru","uz-latn","ku-latn"],TN:["aeb","ar","fr"],TO:["to","en"],TR:["tr","ku-latn","zza","kbd","az-latn","ar","bgx","bg","ady","kiu","hy","ka","sr-latn","lzz-latn","sq","ab","el","tru","uz-latn","ky-latn","kk-cyrl"],TT:["en","es"],TV:["tvl","en"],TW:["zh-hant","trv"],TZ:["sw","en","suk","nym","kde","bez","ksb","mas","mgy","asa","lag","jmc","rof","vun","rwk","sbp"],UA:["uk","ru","pl","yi","rue","be","ro","bg","tr","hu","el"],UG:["sw","lg","nyn","cgg","xog","en","teo","laj","ach","myx","rw","ttj","hi"],UM:["en"],US:["en","es","zh-hant","fr","de","fil","it","vi","ko","ru","nv","yi","pdc","haw","frc","chr","esu","lkt","ik"],UY:["es"],UZ:["uz-latn","uz-cyrl","ru","kaa","tr"],VA:["it","la"],VC:["en"],VE:["es"],VG:["en"],VI:["en"],VN:["vi","zh-hant","cjm"],VU:["bi","en","fr"],WF:["wls","fr","fud"],WS:["sm","en"],XK:["sq","aln","sr-cyrl","sr-latn"],YE:["ar"],YT:["swb","fr","buc","sw"],ZA:["en","zu","xh","af","nso","tn","st","ts","ss","ve","hi","nr","sw"],ZM:["en","bem","ny","loz"],ZW:["en","sn","nd","mxc","ndc","kck","ny","ve","tn"],ZZ:[]}}})(jQuery);(function(e){"use strict";e.uls.data.isRedirect=function(t){return e.uls.data.languages[t]!==undefined&&e.uls.data.languages[t].length===1?e.uls.data.languages[t][0]:false};e.uls.data.getScript=function(t){var n=e.uls.data.isRedirect(t);if(n){return e.uls.data.getScript(n)}if(!e.uls.data.languages[t]){return"Zyyy"}return e.uls.data.languages[t][0]};e.uls.data.getRegions=function(t){var n=e.uls.data.isRedirect(t);if(n){return e.uls.data.getRegions(n)}return e.uls.data.languages[t]&&e.uls.data.languages[t][1]||"UNKNOWN"};e.uls.data.getAutonym=function(t){var n=e.uls.data.isRedirect(t);if(n){return e.uls.data.getAutonym(n)}return e.uls.data.languages[t]&&e.uls.data.languages[t][2]||t};e.uls.data.getAutonyms=function(){var t,n={};for(t in e.uls.data.languages){if(e.uls.data.isRedirect(t)){continue}n[t]=e.uls.data.getAutonym(t)}return n};e.uls.data.getAllRegions=function(){var t,n=[];for(t in e.uls.data.regiongroups){n.push(t)}return n};e.uls.data.getLanguagesInScript=function(t){return e.uls.data.getLanguagesInScripts([t])};e.uls.data.getLanguagesInScripts=function(t){var n,r,i=[];for(n in e.uls.data.languages){if(e.uls.data.isRedirect(n)){continue}for(r=0;r<t.length;r++){if(t[r]===e.uls.data.getScript(n)){i.push(n);break}}}return i};e.uls.data.getLanguagesInRegion=function(t){return e.uls.data.getLanguagesInRegions([t])};e.uls.data.getLanguagesInRegions=function(t){var n,r,i=[];for(n in e.uls.data.languages){if(e.uls.data.isRedirect(n)){continue}for(r=0;r<t.length;r++){if(e.inArray(t[r],e.uls.data.getRegions(n))!==-1){i.push(n);break}}}return i};e.uls.data.getLanguagesInRegionGroup=function(t){return e.uls.data.getLanguagesInRegions(e.uls.data.getRegionsInGroup(t))};e.uls.data.getLanguagesByScriptInRegion=function(t){var n,r,i={};for(n in e.uls.data.languages){if(e.uls.data.isRedirect(n)){continue}if(e.inArray(t,e.uls.data.getRegions(n))!==-1){r=e.uls.data.getScript(n);if(i[r]===undefined){i[r]=[]}i[r].push(n)}}return i};e.uls.data.getLanguagesByScriptGroupInRegion=function(t){return e.uls.data.getLanguagesByScriptGroupInRegions([t])};e.uls.data.getAllLanguagesByScriptGroup=function(){return e.uls.data.getLanguagesByScriptGroupInRegions(e.uls.data.getAllRegions())};e.uls.data.getLanguagesByScriptGroup=function(t){var n={},r,i,s;for(r in t){i=e.uls.data.isRedirect(r)||r;s=e.uls.data.getScriptGroupOfLanguage(i);if(!n[s]){n[s]=[]}if(e.inArray(i,n[s])===-1){n[s].push(i)}}return n};e.uls.data.getLanguagesByScriptGroupInRegions=function(t){var n,r,i,s={};for(n in e.uls.data.languages){if(e.uls.data.isRedirect(n)){continue}for(r=0;r<t.length;r++){if(e.inArray(t[r],e.uls.data.getRegions(n))!==-1){i=e.uls.data.getScriptGroupOfLanguage(n);if(s[i]===undefined){s[i]=[]}s[i].push(n);break}}}return s};e.uls.data.getAllLanguagesByRegionAndScript=function(){var t,n,r,i,s,o,u,a={};for(t in e.uls.data.regiongroups){n=e.uls.data.regiongroups[t];if(a[n]===undefined){a[n]={}}a[n][t]={}}for(r in e.uls.data.languages){if(e.uls.data.isRedirect(r)){continue}i=e.uls.data.getScript(r);s=e.uls.data.getGroupOfScript(i);o=e.uls.data.getRegions(r);for(u=0;u<o.length;u++){t=o[u];n=e.uls.data.regiongroups[t];if(a[n][t][s]===undefined){a[n][t][s]={}}if(a[n][t][s][i]===undefined){a[n][t][s][i]=[]}a[n][t][s][i].push(r)}}return a};e.uls.data.getRegionsInGroup=function(t){var n,r=[];for(n in e.uls.data.regiongroups){if(e.uls.data.regiongroups[n]===t){r.push(n)}}return r};e.uls.data.getGroupOfScript=function(t){var n;for(n in e.uls.data.scriptgroups){if(e.inArray(t,e.uls.data.scriptgroups[n])!==-1){return n}}return"Other"};e.uls.data.getScriptGroupOfLanguage=function(t){return e.uls.data.getGroupOfScript(e.uls.data.getScript(t))};e.uls.data.sortByAutonym=function(t,n){var r=e.uls.data.getAutonym(t)||t,i=e.uls.data.getAutonym(n)||n;return r.toLowerCase()<i.toLowerCase()?-1:1};e.uls.data.isRtl=function(t){return e.inArray(e.uls.data.getScript(t),e.uls.data.rtlscripts)!==-1};e.uls.data.getDir=function(t){return e.uls.data.isRtl(t)?"rtl":"ltr"};e.uls.data.getLanguagesInTerritory=function(t){return e.uls.data.territories[t]};e.uls.data.addLanguage=function(t,n){if(n.target){e.uls.data.languages[t]=[n.target]}else{e.uls.data.languages[t]=[n.script,n.regions,n.autonym]}};e.uls.data.deleteLanguage=function(t){if(e.uls.data.languages[t]){delete e.uls.data.languages[t];return true}return false}})(jQuery);(function(e){"use strict";function r(e,t){var n="െേൈൊോൌெேைொோௌେୈୋୌિਿिিেৈোৌෙේෛොෝෞ";return n.indexOf(t[e.length])<=0}var t,n;t=function(t,n){this.$element=e(t);this.options=e.extend({},e.fn.regionselector.defaults,n);this.$element.addClass("languagefilter");this.resultCount=0;this.$suggestion=this.$element.parents().find("#"+this.$element.data("suggestion"));this.$clear=this.$element.parents().find("#"+this.$element.data("clear"));this.selectedLanguage=null;this.listen()};n=function(){var e=0;return function(t,n){clearTimeout(e);e=setTimeout(t,n)}}();t.prototype={listen:function(){this.$element.on("keypress",e.proxy(this.keyup,this)).on("keyup",e.proxy(this.keyup,this));if(this.eventSupported("keydown")){this.$element.on("keydown",e.proxy(this.keyup,this))}if(this.$clear.length){this.$clear.on("click",e.proxy(this.clear,this))}this.toggleClear()},keyup:function(t){var r,i,s;switch(t.keyCode){case 9:r=this.$suggestion.val();if(r&&r!==this.$element.val()){this.$element.val(r);t.preventDefault();t.stopPropagation()}break;case 13:if(!this.options.onSelect){break}t.preventDefault();t.stopPropagation();i=e.trim(this.$element.val()).toLowerCase();if(this.selectedLanguage){this.options.onSelect(this.selectedLanguage)}else if(this.options.languages[i]){this.options.onSelect(i)}break;default:s=this;if(t.which<32&&t.which!==8){break}this.selectedLanguage=null;n(function(){if(!s.$element.val()){s.clear()}else{s.options.$target.empty();s.search()}},300);this.toggleClear()}},deactivate:function(){this.$element.val("");if(!e.fn.uls.Constructor.prototype.isMobile()){this.$element.focus()}this.toggleClear();this.autofill()},clear:function(){this.deactivate();this.$element.trigger("searchclear.uls")},toggleClear:function(){if(!this.$clear.length){return}if(this.$element.val()){this.$clear.show()}else{this.$clear.hide()}},search:function(){var t,n=e.trim(this.$element.val()),r=e.uls.data.getLanguagesByScriptGroup(this.options.languages),i,s,o;this.resultCount=0;for(i in r){t=r[i];t.sort(e.uls.data.sortByAutonym);for(s=0;s<t.length;s++){o=t[s];if(n===""||this.filter(o,n)){if(this.resultCount===0){this.autofill(o)}if(n.toLowerCase()===o){this.selectedLanguage=o}if(this.render(o)){this.resultCount++}}}}if(!this.resultCount&&this.options.searchAPI&&n){this.searchAPI(n)}else{this.resultHandler(n)}},searchAPI:function(t){var n=this;e.get(n.options.searchAPI,{search:t},function(r){e.each(r.languagesearch,function(e,t){if(n.resultCount===0){n.autofill(e,t)}if(n.render(e)){n.resultCount++}});n.resultHandler(t)})},resultHandler:function(e){if(this.resultCount===0){this.$suggestion.val("");this.$element.trigger("noresults.uls",e)}else{this.$element.trigger("resultsfound.uls",[e,this.resultCount])}},autofill:function(t,n){if(!this.$suggestion.length){return}if(!this.$element.val()){this.$suggestion.val("");return}this.selectedLanguage=t;n=n||this.options.languages[t];if(!n){return}var i,s=this.$element.val(),o=s+n.substring(s.length,n.length);if(o.toLowerCase()!==n.toLowerCase()){i=e.uls.data.getAutonym(t)||"";o=s+i.substring(s.length,i.length);if(o!==i){o=""}}if(!r(s,o)){o=""}this.$suggestion.val(o)},render:function(e){var t=this.options.$target;if(!t){return false}return t.append(e)},escapeRegex:function(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$\|#\s]/g,"\\$&")},filter:function(t,n){var r=new RegExp("^"+this.escapeRegex(n),"i"),i=this.options.languages[t];return r.test(i)||r.test(e.uls.data.getAutonym(t))||r.test(t)||r.test(e.uls.data.getScript(t))},eventSupported:function(e){var t=e in this.$element;if(!t){this.$element.setAttribute(e,"return;");t=typeof this.$element[e]==="function"}return t}};e.fn.languagefilter=function(n){return this.each(function(){var r=e(this),i=r.data("languagefilter"),s=typeof n==="object"&&n;if(!i){r.data("languagefilter",i=new t(this,s))}if(typeof n==="string"){i[n]()}})};e.fn.languagefilter.defaults={$target:null,searchAPI:null,languages:null,onSelect:null};e.fn.languagefilter.Constructor=t})(jQuery);(function(e){"use strict";var t,n;t='<div class="twelve columns uls-no-results-view hide">		<h2 data-i18n="uls-no-results-found" class="eleven columns offset-by-one uls-no-results-found-title">		No results found		</h2>		<div id="uls-no-found-more" class="uls-no-found-more">			<div class="ten columns offset-by-one">				<p>					<span data-i18n="uls-search-help">You can search by language name, 					script name, ISO code of language or 					you can browse by region:</span>					<a class="uls-region-link" data-i18n="uls-region-AM" data-region="AM">America</a>, 					<a class="uls-region-link" data-i18n="uls-region-EU" data-region="EU">Europe</a>, 					<a class="uls-region-link" data-i18n="uls-region-ME" data-region="ME">Middle East</a>, 					<a class="uls-region-link" data-i18n="uls-region-AF" data-region="AF">Africa</a>, 					<a class="uls-region-link" data-i18n="uls-region-AS" data-region="AS">Asia</a>, 					<a class="uls-region-link" data-i18n="uls-region-PA" data-region="PA">Pacific</a>, 					<a class="uls-region-link" data-i18n="uls-region-WW" data-region="WW">Worldwide</a>.				</p>			</div>		</div>	</div>';n=function(n,r){this.$element=e(n);this.options=e.extend({},e.fn.lcd.defaults,r);this.$element.addClass("lcd");this.regionLanguages={};this.renderTimeout=null;this.cachedQuicklist=null;this.$element.append(e(t));this.$noResults=this.$element.children(".uls-no-results-view");this.render();this.listen()};n.prototype={constructor:n,append:function(t,n){var r=this,i,s;if(!this.options.languages[t]){return false}if(n){s=[n]}else{s=e.uls.data.getRegions(t)}if(e.inArray("WW",s)>-1){s=["WW"]}for(i=0;i<s.length;i++){this.regionLanguages[s[i]].push(t)}window.clearTimeout(this.renderTimeout);this.renderTimeout=window.setTimeout(function(){r.renderRegions()},50);return true},render:function(){var t,n=this,r=[],i={WW:"Worldwide",SP:"Special",AM:"America",EU:"Europe",ME:"Middle East",AS:"Asia",AF:"Africa",PA:"Pacific"};r.push(this.buildQuicklist());e.each(e.uls.data.regiongroups,function(s){n.regionLanguages[s]=[];if(e.inArray(s,n.options.showRegions)===-1){return}t=e("<div>").addClass("eleven columns offset-by-one uls-lcd-region-section hide").attr("id",s).append(e("<h3>").attr("data-i18n","uls-region-"+s).addClass("eleven columns uls-lcd-region-title").text(i[s]));r.push(t)});n.$element.append(r);this.i18n()},renderRegions:function(){var t=this,n,r=t.options.itemsPerColumn,i=4;this.$noResults.addClass("hide");this.$element.find(".uls-lcd-region-section").each(function(){var s=e(this),o=s.attr("id");if(s.is("#uls-lcd-quicklist")){return}s.children(".uls-language-block").remove();n=t.regionLanguages[o];if(!n||n.length===0){s.addClass("hide");return}t.renderRegion(s,n,r,i);s.removeClass("hide");t.regionLanguages[o]=[]})},renderRegion:function(t,n,r,i){var s,o,u,a,f,l=n.length,c=[],h=[],p=[];for(s=0;s<l;s++){f=false;a=e.uls.data.getScriptGroupOfLanguage(n[s+1]);o=l-s===1;if(s===0){u=e.uls.data.getScriptGroupOfLanguage(n[s])}else if(u!==a&&c.length>1){f=true}u=a;c.push(this.renderItem(n[s]));if(c.length>=r||o||f){h.push(e("<ul>").addClass("three columns").append(c));c=[];if(h.length>=i||o){p.push(e("<div>").addClass("row uls-language-block").append(h));h=[]}}}t.append(p)},renderItem:function(t){var n,r,i,s;r=this.options.languages[t];i=e.uls.data.getAutonym(t)||r||t;s=document.createElement("li");s.title=r;s.lang=t;s.dir=e.uls.data.getDir(t);s.setAttribute("data-code",t);n=document.createElement("a");n.appendChild(document.createTextNode(i));n.className="autonym";s.appendChild(n);if(this.options.languageDecorator){this.options.languageDecorator(e(n),t)}return s},i18n:function(){this.$element.find("[data-i18n]").i18n()},quicklist:function(){this.$element.find("#uls-lcd-quicklist").removeClass("hide")},buildQuicklist:function(){var t,n,r;if(this.cachedQuicklist!==null){return this.cachedQuicklist}if(e.isFunction(this.options.quickList)){this.options.quickList=this.options.quickList()}if(!this.options.quickList){this.cachedQuicklist=e([]);return this.cachedQuicklist}t=this.options.quickList;t=t.slice(0,16);t.sort(e.uls.data.sortByAutonym);n=e("<div>").addClass("eleven columns offset-by-one uls-lcd-region-section").attr("id","uls-lcd-quicklist");r=e("<h3>").attr("data-i18n","uls-common-languages").addClass("eleven columns uls-lcd-region-title").text("Common languages");n.append(r);this.renderRegion(n,t,4,4);r.i18n();this.cachedQuicklist=n;return this.cachedQuicklist},show:function(){if(!this.regionDivs){this.render()}},empty:function(){this.$element.find("#uls-lcd-quicklist").addClass("hide")},focus:function(){this.$element.focus()},noResults:function(){this.$noResults.removeClass("hide");if(this.$noResults.find(".uls-lcd-region-title").length){return}var e=this.buildQuicklist().clone();e.find("h3").data("i18n","uls-no-results-suggestion-title").text("You may be interested in:").i18n();this.$noResults.find("h2").after(e)},listen:function(){var t=this;if(this.options.clickhandler){this.$element.on("click",".row li",function(){t.options.clickhandler.call(this,e(this).data("code"))})}t.$element.scroll(function(){var n,r,i=e(this),s=i.position().top,o=i.height();r="WW";t.$element.find(".uls-lcd-region-section").each(function(){var t=e(this),n=t.position().top,i=t.height(),u=10;if(n-u<=s&&i>o){r=t.attr("id")}});n=e.uls.data.regiongroups[r];if(!e("#uls-region-"+n).hasClass("active")){e(".regionselector").removeClass("active");e("#uls-region-"+n).addClass("active")}})}};e.fn.lcd=function(t){return this.each(function(){var r=e(this),i=r.data("lcd"),s=typeof t==="object"&&t;if(!i){r.data("lcd",i=new n(this,s))}if(typeof t==="string"){i[t]()}})};e.fn.lcd.defaults={languages:null,showRegions:["WW","AM","EU","ME","AF","AS","PA"],itemsPerColumn:8,languageDecorator:null};e.fn.lcd.Constructor=n})(jQuery);(function(e){"use strict";var t;t=function(t,n){this.$element=e(t);this.options=e.extend({},e.fn.regionselector.defaults,n);this.$element.addClass("regionselector");this.regions=[];this.cache=null;this.regionGroup=this.$element.data("regiongroup");this.init();this.listen()};t.prototype={constructor:t,init:function(){var t=this.$element.data("region");this.regions=e.uls.data.getRegionsInGroup(this.regionGroup);if(t){this.regions.push(t)}},test:function(t){var n,r,i=e.uls.data.getRegions(t);for(r=0;r<this.regions.length;r++){n=this.regions[r];if(e.inArray(n,i)>=0){this.render(t,n);this.cache[t]=n;return}}},show:function(){var t,n,r,i,s,o=this.options.$target&&this.options.$target.$element,u=o&&o.parent(),a=o&&o.prev();if(o&&u){o.detach()}if(this.cache){t=null;for(t in this.cache){this.render(t,this.cache[t])}}else{this.cache={};n=e.uls.data.getLanguagesByScriptGroup(this.options.languages);for(r in e.uls.data.scriptgroups){i=n[r];if(!i){continue}i.sort(e.uls.data.sortByAutonym);for(s=0;s<i.length;s++){this.test(i[s])}}}if(o&&u){if(a){a.after(o)}else{u.append(o)}}if(this.options.success){this.options.success(this)}},render:function(e,t){var n=this.options.$target;if(!n){return}n.append(e,t)},listen:function(){this.$element.on("click",e.proxy(this.click,this))},click:function(){var t,n;if(this.$element.hasClass("active")){return}t=this.options.$target.$element;n=t.find("#"+this.regions[0]);t.scrollTop(n.offset().top-t.offset().top+t.scrollTop());e(".regionselector").removeClass("active");if(this.regionGroup){this.$element.addClass("active")}}};e.fn.regionselector=function(n){return this.each(function(){var r=e(this),i=r.data("regionselector"),s=typeof n==="object"&&n;if(!i){r.data("regionselector",i=new t(this,s))}if(typeof n==="string"){i[n]()}})};e.fn.regionselector.defaults={$target:null,success:null,noresults:null,languages:null};e.fn.regionselector.Constructor=t})(jQuery)

@@ -1,198 +0,0 @@ 

- /**

-  * jQuery region filter plugin.

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- ( function ( $ ) {

- 	'use strict';

- 

- 	/* RegionSelector plugin definition */

- 

- 	var RegionSelector;

- 

- 	/**

- 	 * Region selector is a language selector based on regions.

- 	 * Usage: $( 'jqueryselector' ).regionselector( options );

- 	 * The attached element should have data-regiongroup attribute

- 	 * that defines the regiongroup for the selector.

- 	 */

- 	RegionSelector = function ( element, options ) {

- 		this.$element = $( element );

- 		this.options = $.extend( {}, $.fn.regionselector.defaults, options );

- 		this.$element.addClass( 'regionselector' );

- 		this.regions = [];

- 		this.cache = null;

- 		this.regionGroup = this.$element.data( 'regiongroup' );

- 		this.init();

- 		this.listen();

- 	};

- 

- 	RegionSelector.prototype = {

- 		constructor: RegionSelector,

- 

- 		init: function () {

- 			var region = this.$element.data( 'region' );

- 			this.regions = $.uls.data.getRegionsInGroup( this.regionGroup );

- 

- 			if ( region ) {

- 				this.regions.push( region );

- 			}

- 		},

- 

- 		test: function ( langCode ) {

- 			var region, i,

- 				langRegions = $.uls.data.getRegions( langCode );

- 

- 			for ( i = 0; i < this.regions.length; i++ ) {

- 				region = this.regions[i];

- 

- 				if ( $.inArray( region, langRegions ) >= 0 ) {

- 					this.render( langCode, region );

- 					this.cache[langCode] = region;

- 

- 					return;

- 				}

- 			}

- 		},

- 

- 		show: function () {

- 			var result, languagesByScriptGroup, scriptGroup, languages, i,

- 				$element = this.options.$target && this.options.$target.$element,

- 				$parent = $element && $element.parent(),

- 				$prev = $element && $element.prev();

- 

- 			if ( $element && $parent ) {

- 				// Avoid reflows while adding new elements to the list

- 				// Use .detach() to keep jQuery events and data associated with elements

- 				$element.detach();

- 			}

- 

- 			if ( this.cache ) {

- 				// If the result cache is present, render the results from there.

- 				//noinspection JSUnusedAssignment

- 				result = null;

- 

- 				for ( result in this.cache ) {

- 					this.render( result, this.cache[result] );

- 				}

- 			} else {

- 				this.cache = {};

- 				// Get the languages grouped by script group

- 				languagesByScriptGroup = $.uls.data.getLanguagesByScriptGroup( this.options.languages );

- 

- 				// Make sure that we go by the original order

- 				// of script groups

- 				for ( scriptGroup in $.uls.data.scriptgroups ) {

- 					// Get the languages for the script group

- 					languages = languagesByScriptGroup[scriptGroup];

- 

- 					// It's possible that some script groups are missing

- 					if ( !languages ) {

- 						continue;

- 					}

- 

- 					// Sort it based on autonym

- 					languages.sort( $.uls.data.sortByAutonym );

- 

- 					for ( i = 0; i < languages.length; i++ ) {

- 						// Check whether it belongs to the region

- 						this.test( languages[i] );

- 					}

- 				}

- 			}

- 

- 			if ( $element && $parent ) {

- 				// Restore the element to where we removed it from

- 				if ( $prev ) {

- 					$prev.after( $element );

- 				} else {

- 					$parent.append( $element );

- 				}

- 			}

- 

- 			if ( this.options.success ) {

- 				this.options.success( this );

- 			}

- 		},

- 

- 		render: function ( langCode, region ) {

- 			var $target = this.options.$target;

- 

- 			if ( !$target ) {

- 				return;

- 			}

- 

- 			$target.append( langCode, region );

- 		},

- 

- 		listen: function () {

- 			this.$element.on( 'click', $.proxy( this.click, this ) );

- 		},

- 

- 		click: function () {

- 			var $list, $firstTargetRegion;

- 

- 			// Don't do anything if a region is selected already

- 			if ( this.$element.hasClass( 'active' ) ) {

- 				return;

- 			}

- 

- 			$list = this.options.$target.$element;

- 			$firstTargetRegion = $list.find( '#' + this.regions[0] );

- 

- 			// Scroll to appropriate area

- 			$list.scrollTop(

- 				$firstTargetRegion.offset().top - $list.offset().top + $list.scrollTop()

- 			);

- 

- 			// Make the selected region (and it only) active

- 			$( '.regionselector' ).removeClass( 'active' );

- 

- 			if ( this.regionGroup ) {

- 				// if there is a region group, make it active.

- 				this.$element.addClass( 'active' );

- 			}

- 		}

- 	};

- 

- 	/* RegionSelector plugin definition */

- 

- 	$.fn.regionselector = function ( option ) {

- 		return this.each( function () {

- 			var $this = $( this ),

- 				data = $this.data( 'regionselector' ),

- 				options = typeof option === 'object' && option;

- 

- 			if ( !data ) {

- 				$this.data( 'regionselector', ( data = new RegionSelector( this, options ) ) );

- 			}

- 

- 			if ( typeof option === 'string' ) {

- 				data[option]();

- 			}

- 		} );

- 	};

- 

- 	$.fn.regionselector.defaults = {

- 		$target: null, // Where to render the results

- 		success: null, // callback if any results found.

- 		noresults: null, // callback when no results to show

- 		languages: null

- 	};

- 

- 	$.fn.regionselector.Constructor = RegionSelector;

- } ( jQuery ) );

@@ -10,11 +10,6 @@ 

      <link rel="stylesheet" media="screen" href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700&amp;subset=latin,latin-ext" />

      <link rel='stylesheet' media="screen" href='https://fonts.googleapis.com/css?family=Montserrat' />

  

-     <!-- language selector -->

-     <link rel="stylesheet" type="text/css" href="${path}/static/css/jquery.uls.css" />

-     <link rel="stylesheet" type="text/css" href="${path}/static/css/jquery.uls.grid.css" />

-     <link rel="stylesheet" type="text/css" href="${path}/static/css/jquery.uls.lcd.css" />

- 

      <!-- use RTL css for specific languages -->

      <link py:if="lang in ('ar', 'bal', 'fa', 'he')" rel="stylesheet" type="text/css" media="all" href="${path}/static/css/bootstrap-rtl.css" />

  

@@ -92,14 +92,7 @@ 

                      </div>

                      <div class="col-md-3">

                          <div class="widget-body">

-                             <div class="pull-left language-header">

-                               <span class="active uls-trigger lang-dropdown">${_('Change Language')}</span>

-                                 <form action="" method="GET" style="visibility:hidden" id="langSelect" class="lang-dropdown">

-                                   <input type="hidden" name="lang" id="selectedLang" value="" />

-                         <!-- Allow uls script to change language through legacy system -->

-                                   <input type="submit" value="${_('OK')}" />

-                                 </form>

-                               </div>

+                             <xi:include href="../templates/translations.html" />

                          </div>

                      </div>

                  </div> <!-- /row of widgets -->

@@ -14,14 +14,6 @@ 

      <script type="text/javascript" src="${path}/static/js/checksum.js"></script>

      <script type="text/javascript" src="${path}/static/js/bootstrap.min.js"></script>

  

-     <script type="text/javascript" src="${path}/static/js/jquery.uls.data.js"></script>

- 	  <script type="text/javascript" src="${path}/static/js/jquery.uls.data.utils.js"></script>

- 	  <script type="text/javascript" src="${path}/static/js/jquery.uls.lcd.js"></script>

- 	  <script type="text/javascript" src="${path}/static/js/jquery.uls.languagefilter.js"></script>

- 	  <script type="text/javascript" src="${path}/static/js/jquery.uls.regionfilter.js"></script>

- 	  <script type="text/javascript" src="${path}/static/js/jquery.uls.core.js"></script>

-     <xi:include href="../templates/translations.html" />

- 

      <!--[if lt IE 9]>

      <script type="text/javascript" src="${path}/static/js/html5shiv.js"></script>

      <script type="text/javascript" src="${path}/static/js/respond.min.js"></script>

@@ -598,8 +598,31 @@ 

    padding-left: 2px;

  }

  .language-header {

-   margin-top: 43px;

+   margin-top: 29px;

  }

+ .language-menu ul {

+   column-count: 3;

+   column-gap: 3em;

+   margin: 1.5em;

+ }

+ 

+ @media (min-width:992px) {

+   .language-menu {

+     width: 97rem;

+   }

+   .language-menu ul {

+     column-count: 5;

+   }

+ }

+ @media (min-width:1200px) {

+   .language-menu {

+     width: 117rem;

+   }

+   .language-menu ul {

+     column-count: 5;

+   }

+ }

+ 

  .btn-topmargin {

    margin-top: 10px;

  }

@@ -1,75 +0,0 @@ 

- .uls-compact .uls-icon-close,

- .uls-compact .uls-title-region,

- .uls-compact .uls-map-block,

- .uls-compact #uls-settings-block {

- 	display: none !important;

- }

- 

- .uls-compact.uls-menu {

- 	border-radius: 0;

- }

- 

- .uls-compact .uls-search {

- 	background: white;

- 	border-top: none;

- 	padding: 0.8em 0;

- 	border-bottom-width: 1px;

- 	border-bottom-style: solid;

- 	border-bottom-color: #DDD;

- }

- 

- .uls-compact .uls-filterinput,

- .uls-compact .uls-filterinput:focus {

- 	background-color: transparent;

- 	border: none;

- 	box-shadow: none;

- 	outline: none;

- 	font-size: 18px;

- 	left: 0;

- }

- 

- .uls-compact .uls-language-list {

- 	background: #FCFCFC;

- 	height: 20em;

- }

- 

- .uls-compact .uls-search-label {

- 	background-size: 25px;

- 	height: 26px;

- 	width: 26px;

- 	float: right;

- 	opacity: 0.8;

- }

- 

- .uls-compact .uls-languagefilter-clear {

- 	margin-left: 0;

- }

- 

- .uls-compact .uls-title-region a {

- 	color: #777;

- 	display: inline-block;

- 	margin: 15px 0 5px 19px;

- 	cursor: pointer;

- 	padding: 6px;

- 	text-decoration: none;

- 	font-size: 14px;

- 	border: 1px solid transparent;

- }

- 

- .uls-compact .uls-title-region a:hover {

- 	color: #252525;

- 	background: #F0F0F0;

- 	border: 1px solid #DDD;

- 	border-radius: 3px;

- }

- 

- .uls-compact .uls-title-region a:before {

- 	display: inline-block;

- 	width: 0;

- 	height: 0;

- 	border-right: 4px solid #777;

- 	border-top: 4px solid transparent;

- 	border-bottom: 4px solid transparent;

- 	content: "";

- 	margin: 0 6px 0 0;

- }

@@ -1,260 +0,0 @@ 

- .uls-trigger {

- 	/* @embed */

- 	background: transparent url('/static/images/icon-language.png') no-repeat scroll left center;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/icon-language.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/icon-language.svg');

- 	padding-left: 30px;

- }

- 

- .uls-menu {

- 	position: absolute;

- 	z-index: 1000;

- 	display: none;

- 	margin-top: 1px;

- 	/* Styling */

- 	background-color: #ffffff;

- 	border: 1px solid #ccc;

- 	border: 1px solid rgba(0, 0, 0, 0.2);

- 	border-radius: 5px;

- 	-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);

- 	-moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);

- 	box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);

- 	-webkit-background-clip: padding-box;

- 	-moz-background-clip: padding;

- 	background-clip: padding-box;

- }

- 

- .uls-wide {

- 	min-width: 715px;

- 	width: 45%;

- }

- 

- .uls-title-region a {

- 	padding-left: 15px;

- }

- 

- .uls-menu .uls-title {

- 	font-weight: normal;

- 	border: none;

- 	padding-top: 1.25em;

- 	padding-left: 15px;

- 	padding-bottom: 3px;

- 	font-size: 18pt;

- 	line-height: 1.25em;

- 	color: #555;

- }

- 

- .uls-menu .uls-no-results-found-title {

- 	font-size: 16pt;

- 	font-weight: bold;

- 	line-height: 1.5em;

- 	padding-left: 6px;

- 	padding-top: 10px;

- 	margin-top: 0;

- 	margin-bottom: 15px;

- 	border-bottom: none;

- 	color: #555;

- }

- 

- .uls-menu .uls-lcd-region-section .uls-lcd-region-title {

- 	color: #777;

- 	font-size: 14pt;

- 	font-weight: lighter;

- 	line-height: 1.5em;

- 	padding-left: 0;

- 	margin-top: 0;

- 	margin-bottom: 10px;

- 	border-bottom: none;

- }

- 

- .uls-worldmap {

- 	/* @embed */

- 	background: transparent url('/static/images/world_map.png') no-repeat scroll right top;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/world_map.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/world_map.svg');

- 	background-size: 100%;

- }

- 

- div.uls-region {

- 	cursor: pointer;

- 	padding: 0;

- 	margin: 0;

- 	height: 120px;

- 	border-bottom-color: transparent;

- 	border-bottom-style: solid;

- 	border-bottom-width: 2px;

- }

- 

- .uls-worldmap .uls-region { /* The map doesn't flip */

- 	/* @noflip */

- 	float: left;

- }

- 

- .uls-region a {

- 	bottom: 2px;

- 	left: 2px;

- 	padding: 0;

- 	position: absolute;

- 	font-size: 13px;

- 	line-height: 1.2em;

- 	text-decoration: none;

- 	overflow: hidden;

- 	text-overflow: ellipsis;

- 	width: 99%;

- }

- 

- .uls-region:hover {

- 	/*Cross-browser background transparency*/

- 	background: #3366bb;

- 	background: rgba(51, 102, 187, 0.1);

- 	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#253366bb, endColorstr=#253366bb );

- 	-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#253366bb, endColorstr=#253366bb)";

- }

- 

- .uls-map-block .active {

- 	border-bottom-color: #3366bb;

- 	border-bottom-style: solid;

- }

- 

- .uls-menu .row .uls-map-block {

- 	top: 1px;

- 	margin-right: 0;

- 	padding-right: 0;

- 	float: right;

- 	overflow: hidden;

- 	opacity: 0.7;

- 	-moz-transition: opacity 0.2s linear;

- 	-o-transition: opacity 0.2s linear;

- 	-webkit-transition: opacity 0.2s linear;

- 	transition: opacity 0.2s linear;

- }

- 

- .uls-map-block a {

- 	color: #333;

- 	opacity: 0;

- 	-moz-transition: opacity 0.15s linear;

- 	-o-transition: opacity 0.15s linear;

- 	-webkit-transition: opacity 0.15s linear;

- 	transition: opacity 0.15s linear;

- }

- 

- .uls-menu .uls-map-block:hover,

- .uls-menu .uls-map-block:hover a {

- 	opacity: 1;

- 	color: #333;

- }

- 

- .uls-map-block .uls-region-1 {

- 	border-color: transparent;

- }

- 

- .uls-map-block:hover .active {

- 	border-color: #3366bb;

- }

- 

- .uls-map-block .active a {

- 	font-weight: bold;

- }

- 

- .uls-icon-close {

- 	/* @embed */

- 	background: transparent url('/static/images/close.png') no-repeat scroll center center;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/close.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/close.svg');

- 	float: right;

- 	padding: 15px;

- 	cursor: pointer;

- }

- 

- .uls-menu .uls-languagefilter {

- 	background-color: transparent;

- 	border: 1px solid #c9c9c9;

- 	border-radius: 2px 2px 2px 2px;

- 	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) inset;

- 	color: #333;

- 	display: block;

- 	padding: 6px;

- 	-moz-transition: border 0.15s linear 0s;

- 	-o-transition: border 0.15s linear 0s;

- 	-webkit-transition: border 0.15s linear 0s;

- 	transition: border 0.15s linear 0s;

- }

- 

- .uls-menu .uls-languagefilter:focus {

- 	border: 1px solid #3366bb;

- }

- 

- .uls-menu .uls-search {

- 	position: relative;

- 	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F0F0F0', endColorstr='#FBFBFB');

- 	background: #f8f8f8;

- 	background: -webkit-gradient(linear, left top, left bottom, from(#F0F0F0), to(#FBFBFB));

- 	background: -webkit-linear-gradient(top, #F0F0F0, #FBFBFB);

- 	background: -moz-linear-gradient(top, #F0F0F0, #FBFBFB);

- 	background: -o-linear-gradient(top, #F0F0F0, #FBFBFB);

- 	background: linear-gradient(#F0F0F0, #FBFBFB);

- 	border-top-color: #AAA;

- 	border-top-style: solid;

- 	border-top-width: 1px;

- 	padding: 0.8em 0;

- 	border-bottom-width: 1px;

- 	border-bottom-style: solid;

- 	border-bottom-color: #DDD;

- }

- 

- .uls-menu .uls-search-label {

- 	/* @embed */

- 	background: transparent url('/static/images/search.png') no-repeat scroll right center;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/search.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/search.svg');

- 	background-size: 30px;

- 	height: 32px;

- 	width: 32px;

- 	float: right;

- }

- 

- .uls-menu .uls-languagefilter-clear {

- 	/* @embed */

- 	background: transparent url('/static/images/clear.png') no-repeat scroll left center;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/clear.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/clear.svg');

- 	cursor: pointer;

- 	height: 32px;

- 	position: absolute;

- 	width: 32px;

- 	margin-left: -32px;

- }

- 

- .uls-menu .uls-filterinput {

- 	position: absolute;

- 	top: 0;

- 	left: 0;

- 	font-size: 14px;

- 	height: 32px;

- 	width: 100%;

- 	text-align: left;

- }

- 

- .uls-menu .uls-filtersuggestion {

- 	padding: 6px;

- 	background-color: white;

- 	color: #888;

- 	border: 1px transparent;

- 	border-radius: 2px 2px 2px 2px;

- 	box-shadow: 0 1px 2px transparent inset;

- 	left: 1px;

- }

- 

- .uls-menu .uls-search-input-block {

- 	position: relative;

- }

@@ -1,315 +0,0 @@ 

- /* Generated using Foundation http://foundation.zurb.com/docs/grid.php */

- /* Global Reset & Standards ---------------------- */

- .grid * {

- 	-webkit-box-sizing: border-box;

- 	-moz-box-sizing: border-box;

- 	box-sizing: border-box;

- }

- 

- /* Misc ---------------------- */

- .grid .left {

- 	float: left;

- }

- 

- .grid .right {

- 	float: right;

- }

- 

- .grid .text-left {

- 	text-align: left;

- }

- 

- .grid .text-right {

- 	text-align: right;

- }

- 

- .grid .text-center {

- 	text-align: center;

- }

- 

- .grid .hide {

- 	display: none;

- }

- 

- .grid .highlight {

- 	background: #ffff99;

- }

- 

- /* The Grid ---------------------- */

- .grid .row {

- 	width: 100%;

- 	max-width: none;

- 	min-width: 600px;

- 	margin: 0 auto;

- }

- 

- .grid .row .row {

- 	width: auto;

- 	max-width: none;

- 	min-width: 0;

- 	margin: 0 -5px;

- }

- 

- .grid .row.collapse .column,

- .grid .row.collapse .columns {

- 	padding: 0;

- }

- 

- .grid .row .row {

- 	width: auto;

- 	max-width: none;

- 	min-width: 0;

- 	margin: 0 -5px;

- }

- 

- .grid .row .row.collapse {

- 	margin: 0;

- }

- 

- .grid .column, .grid .columns {

- 	float: left;

- 	min-height: 1px;

- 	padding: 0 5px;

- 	position: relative;

- }

- 

- .grid .column.centered, .grid .columns.centered {

- 	float: none;

- 	margin: 0 auto;

- }

- 

- .grid .row .one {

- 	width: 8.333%;

- }

- 

- .grid .row .two {

- 	width: 16.667%;

- }

- 

- .grid .row .three {

- 	width: 25%;

- }

- 

- .grid .row .four {

- 	width: 33.333%;

- }

- 

- .grid .row .five {

- 	width: 41.667%;

- }

- 

- .grid .row .six {

- 	width: 50%;

- }

- 

- .grid .row .seven {

- 	width: 58.333%;

- }

- 

- .grid .row .eight {

- 	width: 66.667%;

- }

- 

- .grid .row .nine {

- 	width: 75%;

- }

- 

- .grid .row .ten {

- 	width: 83.333%;

- }

- 

- .grid .row .eleven {

- 	width: 91.667%;

- }

- 

- .grid .row .twelve {

- 	width: 100%;

- }

- 

- .grid .row .offset-by-one {

- 	margin-left: 8.333%;

- }

- 

- .grid .row .offset-by-two {

- 	margin-left: 16.667%;

- }

- 

- .grid .row .offset-by-three {

- 	margin-left: 25%;

- }

- 

- .grid .row .offset-by-four {

- 	margin-left: 33.333%;

- }

- 

- .grid .row .offset-by-five {

- 	margin-left: 41.667%;

- }

- 

- .grid .row .offset-by-six {

- 	margin-left: 50%;

- }

- 

- .grid .row .offset-by-seven {

- 	margin-left: 58.333%;

- }

- 

- .grid .row .offset-by-eight {

- 	margin-left: 66.667%;

- }

- 

- .grid .row .offset-by-nine {

- 	margin-left: 75%;

- }

- 

- .grid .row .offset-by-ten {

- 	margin-left: 83.333%;

- }

- 

- .grid .push-two {

- 	left: 16.667%;

- }

- 

- .grid .pull-two {

- 	right: 16.667%;

- }

- 

- .grid .push-three {

- 	left: 25%;

- }

- 

- .grid .pull-three {

- 	right: 25%;

- }

- 

- .grid .push-four {

- 	left: 33.333%;

- }

- 

- .grid .pull-four {

- 	right: 33.333%;

- }

- 

- .grid .push-five {

- 	left: 41.667%;

- }

- 

- .grid .pull-five {

- 	right: 41.667%;

- }

- 

- .grid .push-six {

- 	left: 50%;

- }

- 

- .grid .pull-six {

- 	right: 50%;

- }

- 

- .grid .push-seven {

- 	left: 58.333%;

- }

- 

- .grid .pull-seven {

- 	right: 58.333%;

- }

- 

- .grid .push-eight {

- 	left: 66.667%;

- }

- 

- .grid .pull-eight {

- 	right: 66.667%;

- }

- 

- .grid .push-nine {

- 	left: 75%;

- }

- 

- .grid .pull-nine {

- 	right: 75%;

- }

- 

- .grid .push-ten {

- 	left: 83.333%;

- }

- 

- .grid .pull-ten {

- 	right: 83.333%;

- }

- 

- /* Nicolas Gallagher's micro clearfix */

- .grid .row {

- 	*zoom: 1;

- }

- 

- .grid .row:before, .grid .row:after {

- 	content: "";

- 	display: table;

- }

- 

- .grid .row:after {

- 	clear: both;

- }

- 

- /* Block Grids ---------------------- */

- /* These are 2-up, 3-up, 4-up and 5-up ULs, suited

-  for repeating blocks of content. Add 'mobile' to

-  them to switch them just like the layout grid

-  (one item per line) on phones

- 

-  For IE7/8 compatibility block-grid items need to be

-  the same height. You can optionally uncomment the

-  lines below to support arbitrary height, but know

-  that IE7/8 do not support :nth-child.

-  -------------------------------------------------- */

- .grid .block-grid {

- 	display: block;

- 	overflow: hidden;

- 	padding: 0;

- }

- 

- .grid .block-grid > li {

- 	display: block;

- 	height: auto;

- 	float: left;

- }

- 

- .grid .block-grid.two-up {

- 	margin: 0 -15px;

- }

- 

- .grid .block-grid.two-up > li {

- 	width: 50%;

- 	padding: 0 15px 15px;

- }

- 

- /* .block-grid.two-up>li:nth-child(2n+1) {clear: left;} */

- .grid .block-grid.three-up {

- 	margin: 0 -12px;

- }

- 

- .grid .block-grid.three-up > li {

- 	width: 33.33%;

- 	padding: 0 12px 12px;

- }

- 

- /* .block-grid.three-up>li:nth-child(3n+1) {clear: left;} */

- .grid .block-grid.four-up {

- 	margin: 0 -10px;

- }

- 

- .grid .block-grid.four-up > li {

- 	width: 25%;

- 	padding: 0 10px 10px;

- }

- 

- /* .block-grid.four-up>li:nth-child(4n+1) {clear: left;} */

- .grid .block-grid.five-up {

- 	margin: 0 -8px;

- }

- 

- .grid .block-grid.five-up > li {

- 	width: 20%;

- 	padding: 0 8px 8px;

- }

@@ -1,86 +0,0 @@ 

- .uls-lcd-region-section ul li:hover {

- 	background-color: #eaeff7;

- }

- 

- .uls-lcd-region-section {

- 	margin-top: 10px;

- }

- 

- /* Language list */

- .uls-language-list {

- 	height: 17em;

- 	overflow: auto;

- 	width: auto;

- }

- 

- .uls-language-block ul {

- 	margin: 0 0 1.5em;

- }

- 

- .uls-language-list ul li {

- 	cursor: pointer;

- 	font-weight: normal;

- 	overflow: hidden;

- 	white-space: nowrap;

- 

- 	/*

- 	 * Some languages have long names for various reasons and we still want

- 	 * them to appear on one line.

- 	 * To make it work correctly, the directionality must be set correctly

- 	 * on the item level.

- 	 */

- 	text-overflow: ellipsis;

- 

- 	/*

- 	 * The directionality (ltr/rtl) for each list item is set dynamically

- 	 * as HTML attributes in JavaScript. Setting directionality also applies

- 	 * alignment, but a list with mixed alignment is hard to read.

- 	 * All items are therefore explicitly aligned to the left, including names

- 	 * of right-to-left languages in left-to-right environment and vice versa.

- 	 * As long as the directionality of the item is set correctly, the text

- 	 * is readable.

- 	 */

- 	text-align: left;

- 

- 	/*

- 	 * We don't want any visible bullets in this list.

- 	 */

- 	list-style-image: none;

- 	list-style-type: none;

- }

- 

- .uls-language-list strong {

- 	text-decoration: underline;

- }

- 

- .uls-language-list a {

- 	font-weight: normal;

- 	text-decoration: none;

- 	color: #3366bb;

- 	font-size: 14px;

- 	line-height: 1.6em;

- }

- 

- .uls-language-block {

- 	width: 100%;

- }

- 

- .uls-no-results-view {

- 	color: #555;

- 	height: 100%;

- }

- 

- .uls-no-found-more {

- 	font-size: 0.9em;

- 	background: #F8F8F8;

- 	width: 100%;

- 	margin-top: 1.6em;

- 	line-height: 1.6em;

- 	position: absolute;

- 	bottom: 0;

- 	left: 0;

- }

- 

- .uls-no-found-more a {

- 	cursor: pointer;

- }

@@ -1,319 +0,0 @@ 

- @media only screen and (max-width: 767px) {

- 

- 	.uls-mobile.uls-menu {

- 		width: 95%;

- 		left: 2.5%;

- 	}

- 

- 	.uls-mobile .uls-language-list {

- 		-webkit-overflow-scrolling: touch;

- 	}

- 

- 	.uls-mobile .uls-language-block {

- 		padding-left: 15px !important;

- 	}

- 

- 	.uls-mobile .uls-language-block ul {

- 		min-height: 14em;

- 	}

- 

- 	.uls-mobile .uls-language-block a {

- 		font-size: 16px;

- 		line-height: 1.7em;

- 	}

- 

- 	.uls-mobile div.uls-region {

- 		width: 33% !important;

- 		float: left !important;

- 	}

- 

- 	.uls-mobile .uls-map-block a,

- 	.uls-mobile .uls-map-block {

- 		opacity: 1 !important;

- 	}

- 

- 	.uls-mobile .row {

- 		width: auto;

- 		min-width: 0;

- 		margin-left: 0;

- 		margin-right: 0;

- 	}

- 

- 	.uls-mobile .column,

- 	.uls-mobile .columns {

- 		width: auto !important;

- 		float: none;

- 	}

- 

- 	.uls-mobile .column:last-child,

- 	.uls-mobile .columns:last-child {

- 		float: none;

- 	}

- 

- 	.uls-mobile [class*="column"] + [class*="column"]:last-child {

- 		float: none;

- 	}

- 

- 	.uls-mobile .column:before,

- 	.uls-mobile .uls-mobile .columns:before,

- 	.uls-mobile .column:after,

- 	.columns:after {

- 		content: "";

- 		display: table;

- 	}

- 

- 	.uls-mobile .column:after,

- 	.uls-mobile .columns:after {

- 		clear: both;

- 	}

- 

- 	.uls-mobile .offset-by-one,

- 	.uls-mobile .offset-by-two,

- 	.uls-mobile .offset-by-three,

- 	.uls-mobile .offset-by-four,

- 	.uls-mobile .offset-by-five,

- 	.uls-mobile .offset-by-six,

- 	.uls-mobile .offset-by-seven,

- 	.uls-mobile .offset-by-eight,

- 	.uls-mobile .offset-by-nine,

- 	.uls-mobile .offset-by-ten {

- 		margin-left: 0 !important;

- 	}

- 

- 	.uls-mobile .push-two,

- 	.uls-mobile .push-three,

- 	.uls-mobile .push-four,

- 	.uls-mobile .push-five,

- 	.uls-mobile .push-six,

- 	.uls-mobile .push-seven,

- 	.uls-mobile .push-eight,

- 	.uls-mobile .push-nine,

- 	.uls-mobile .push-ten {

- 		left: auto;

- 	}

- 

- 	.uls-mobile .pull-two,

- 	.uls-mobile .pull-three,

- 	.uls-mobile .pull-four,

- 	.uls-mobile .pull-five,

- 	.uls-mobile .pull-six,

- 	.uls-mobile .pull-seven,

- 	.uls-mobile .pull-eight,

- 	.uls-mobile .pull-nine,

- 	.uls-mobile .pull-ten {

- 		right: auto;

- 	}

- 

- 	/* Mobile 4-column Grid */

- 	.uls-mobile .row .mobile-one {

- 		width: 25% !important;

- 		float: left;

- 		padding: 0 4px;

- 	}

- 

- 	.uls-mobile .row .mobile-one:last-child {

- 		float: right;

- 	}

- 

- 	.uls-mobile .row.collapse .mobile-one {

- 		padding: 0;

- 	}

- 

- 	.uls-mobile .row .mobile-two {

- 		width: 50% !important;

- 		float: left;

- 		padding: 0 4px;

- 	}

- 

- 	.uls-mobile .row .mobile-two:last-child {

- 		float: right;

- 	}

- 

- 	.uls-mobile .row.collapse .mobile-two {

- 		padding: 0;

- 	}

- 

- 	.uls-mobile .row .mobile-three {

- 		width: 75% !important;

- 		float: left;

- 		padding: 0 4px;

- 	}

- 

- 	.uls-mobile .row .mobile-three:last-child {

- 		float: right;

- 	}

- 

- 	.uls-mobile .row.collapse .mobile-three {

- 		padding: 0;

- 	}

- 

- 	.uls-mobile .row .mobile-four {

- 		width: 100% !important;

- 		float: left;

- 		padding: 0 4px;

- 	}

- 

- 	.uls-mobile .row .mobile-four:last-child {

- 		float: right;

- 	}

- 

- 	.uls-mobile .row.collapse .mobile-four {

- 		padding: 0;

- 	}

- 

- 	.uls-mobile .push-one-mobile {

- 		left: 25%;

- 	}

- 

- 	.uls-mobile .pull-one-mobile {

- 		right: 25%;

- 	}

- 

- 	.uls-mobile .push-two-mobile {

- 		left: 50%;

- 	}

- 

- 	.uls-mobile .pull-two-mobile {

- 		right: 50%;

- 	}

- 

- 	.uls-mobile .push-three-mobile {

- 		left: 75%;

- 	}

- 

- 	.uls-mobile .pull-three-mobile {

- 		right: 75%;

- 	}

- }

- 

- /* Visibility Classes ---------------------- */

- /* Standard (large) display targeting */

- .uls-mobile .show-for-small,

- .uls-mobile .show-for-medium,

- .uls-mobile .show-for-medium-down,

- .uls-mobile .hide-for-large,

- .uls-mobile .hide-for-large-up,

- .uls-mobile .show-for-xlarge {

- 	display: none !important;

- }

- 

- .uls-mobile .hide-for-xlarge,

- .uls-mobile .show-for-large,

- .uls-mobile .show-for-large-up,

- .uls-mobile .hide-for-small,

- .uls-mobile .hide-for-medium,

- .uls-mobile .hide-for-medium-down {

- 	display: block !important;

- }

- 

- /* Very large display targeting */

- @media only screen and (min-width: 1441px) {

- 

- 	.uls-mobile .hide-for-small,

- 	.uls-mobile .hide-for-medium,

- 	.uls-mobile .hide-for-medium-down,

- 	.hide-for-large, .show-for-large-up,

- 	.show-for-xlarge {

- 		display: block !important;

- 	}

- 

- 	.show-for-small,

- 	.uls-mobile .show-for-medium,

- 	.uls-mobile .show-for-medium-down,

- 	.uls-mobile .show-for-large,

- 	.uls-mobile .hide-for-large-up,

- 	.uls-mobile .hide-for-xlarge {

- 		display: none !important;

- 	}

- }

- /* Medium display targeting */

- @media only screen and (max-width: 1279px) and (min-width: 768px) {

- 

- 	.uls-mobile .hide-for-small,

- 	.uls-mobile .show-for-medium,

- 	.uls-mobile .show-for-medium-down,

- 	.uls-mobile .hide-for-large,

- 	.uls-mobile .hide-for-large-up,

- 	.uls-mobile .hide-for-xlarge {

- 		display: block !important;

- 	}

- 

- 	.uls-mobile .show-for-small,

- 	.uls-mobile .hide-for-medium,

- 	.uls-mobile .hide-for-medium-down,

- 	.uls-mobile .show-for-large,

- 	.uls-mobile .show-for-large-up,

- 	.uls-mobile .show-for-xlarge {

- 		display: none !important;

- 	}

- }

- /* Small display targeting */

- @media only screen and (max-width: 767px) {

- 

- 	.uls-mobile .show-for-small,

- 	.uls-mobile .hide-for-medium,

- 	.uls-mobile .show-for-medium-down,

- 	.uls-mobile .hide-for-large,

- 	.uls-mobile .hide-for-large-up,

- 	.uls-mobile .hide-for-xlarge {

- 		display: block !important;

- 	}

- 	.uls-mobile .hide-for-small,

- 	.uls-mobile .show-for-medium,

- 	.uls-mobile .hide-for-medium-down,

- 	.uls-mobile .show-for-large,

- 	.uls-mobile .show-for-large-up,

- 	.uls-mobile .show-for-xlarge {

- 		display: none !important;

- 	}

- }

- 

- /* Orientation targeting */

- .uls-mobile .show-for-landscape,

- .uls-mobile .hide-for-portrait {

- 	display: block !important;

- }

- 

- .uls-mobile .hide-for-landscape,

- .uls-mobile .show-for-portrait {

- 	display: none !important;

- }

- 

- @media screen and (orientation: landscape) {

- 	.uls-mobile .show-for-landscape,

- 	.uls-mobile .hide-for-portrait {

- 		display: block !important;

- 	}

- 	.uls-mobile .hide-for-landscape,

- 	.uls-mobile .show-for-portrait {

- 		display: none !important;

- 	}

- }

- 

- @media screen and (orientation: portrait) {

- 	.uls-mobile .show-for-portrait,

- 	.uls-mobile .hide-for-landscape {

- 		display: block !important;

- 	}

- 	.uls-mobile .hide-for-portrait,

- 	.uls-mobile .show-for-landscape {

- 		display: none !important;

- 	}

- }

- 

- /* Touch-enabled device targeting */

- .uls-mobile .show-for-touch {

- 	display: none !important;

- }

- 

- .uls-mobile .hide-for-touch {

- 	display: block !important;

- }

- 

- .uls-mobile .touch .show-for-touch {

- 	display: block !important;

- }

- 

- .uls-mobile .touch .hide-for-touch {

- 	display: none !important;

- }

@@ -1,444 +0,0 @@ 

- /**

-  * Universal Language Selector

-  * ULS core component.

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- ( function ( $ ) {

- 	'use strict';

- 

- 	var template, ULS;

- 

- 	// Region numbers in id attributes also appear in the langdb.

- 	/*jshint multistr:true */

- 	template = '<div class="grid uls-menu uls-wide"> \

- 			<div class="row"> \

- 				<span id="uls-close" class="uls-icon-close"></span> \

- 			</div> \

- 			<div class="row"> \

- 				<div class="uls-title-region seven columns">\

- 					<h1 data-i18n="uls-select-language" class="uls-title">Select Language</h1>\

- 				</div>\

- 				<div class="five columns uls-map-block" id="uls-map-block">\

- 					<div class="row">\

- 						<div data-regiongroup="1" id="uls-region-1" class="three columns uls-region uls-region-1">\

- 							<a data-i18n="uls-region-WW">Worldwide</a>\

- 						</div>\

- 						<div class="nine columns">\

- 							<div class="row uls-worldmap">\

- 								<div data-regiongroup="2" id="uls-region-2" class="four columns uls-region">\

- 									<a data-i18n="uls-region-AM">America</a>\

- 								</div>\

- 								<div data-regiongroup="3" id="uls-region-3" class="four columns uls-region">\

- 									<a><span data-i18n="uls-region-EU">Europe</span><br>\

- 									<span data-i18n="uls-region-ME">Middle East</span><br>\

- 									<span data-i18n="uls-region-AF">Africa</span></a>\

- 								</div>\

- 								<div data-regiongroup="4" id="uls-region-4" class="four columns uls-region">\

- 									<a><span data-i18n="uls-region-AS">Asia</span><br>\

- 									<span data-i18n="uls-region-PA">Pacific</span></a>\

- 								</div>\

- 							</div>\

- 						</div>\

- 					</div>\

- 				</div>\

- 			</div>\

- 			<div id="search" class="row uls-search"> \

- 				<div class="one column">\

- 					<span class="uls-search-label"></span>\

- 				</div>\

- 				<div class="ten columns">\

- 					<div id="uls-search-input-block" class="uls-search-input-block">\

- 						<input type="text" class="uls-filterinput uls-filtersuggestion" id="uls-filtersuggestion" disabled="true"\

- 							autocomplete="off" /> <input type="text" class="uls-filterinput uls-languagefilter" id="uls-languagefilter"\

- 							data-clear="uls-languagefilter-clear" data-suggestion="uls-filtersuggestion"\

- 							placeholder="Language search" autocomplete="off" />\

- 					</div>\

- 				</div>\

- 				<div class="one column">\

- 					<span id="uls-languagefilter-clear" class="uls-languagefilter-clear"></span>\

- 				</div>\

- 			</div>\

- 			<div class="row uls-language-list"></div>\

- 			<div class="row" id="uls-settings-block"></div>\

- 		</div>';

- 	/*jshint multistr:false */

- 

- 	/**

- 	 * ULS Public class definition

- 	 */

- 	ULS = function ( element, options ) {

- 		this.$element = $( element );

- 		this.options = $.extend( {}, $.fn.uls.defaults, options );

- 		this.$menu = $( template );

- 		this.languages = this.options.languages;

- 

- 		for ( var code in this.languages ) {

- 			if ( $.uls.data.languages[code] === undefined ) {

- 				// Language is unknown to ULS.

- 				delete this.languages[code];

- 			}

- 		}

- 

- 		this.left = this.options.left;

- 		this.top = this.options.top;

- 		this.shown = false;

- 		this.initialized = false;

- 

- 		this.$languageFilter = this.$menu.find( '#uls-languagefilter' );

- 		this.$regionFilters = this.$menu.find( '.uls-region' );

- 		this.$resultsView = this.$menu.find( 'div.uls-language-list' );

- 

- 		this.render();

- 		this.listen();

- 		this.ready();

- 	};

- 

- 	ULS.prototype = {

- 		constructor: ULS,

- 

- 		/**

- 		 * A "hook" that runs after the ULS constructor.

- 		 * At this point it is not guaranteed that the ULS has its dimensions

- 		 * and that the languages lists are initialized.

- 		 *

- 		 * To use it, pass a function as the onReady parameter

- 		 * in the options when initializing ULS.

- 		 */

- 		ready: function () {

- 			if ( this.options.onReady ) {

- 				this.options.onReady.call( this );

- 			}

- 		},

- 

- 		/**

- 		 * A "hook" that runs after the ULS panel becomes visible

- 		 * by using the show method.

- 		 *

- 		 * To use it, pass a function as the onVisible parameter

- 		 * in the options when initializing ULS.

- 		 */

- 		visible: function () {

- 			if ( this.options.onVisible ) {

- 				this.options.onVisible.call( this );

- 			}

- 		},

- 

- 		/**

- 		 * Calculate the position of ULS

- 		 * Returns an object with top and left properties.

- 		 * @returns {Object}

- 		 * position is set by setting also window height and margin

- 		 */

- 		position: function () {

- 			var pos = $.extend( {}, this.$element.offset(), {

- 				height: this.$element[0].offsetHeight

- 			} );

- 			return {

- 				top: this.top !== undefined ? this.top : pos.top - (447+10),

- 				left: this.left !== undefined ? this.left : '25%'

- 			};

- 		},

- 

- 		/**

- 		 * Show the ULS window

- 		 */

- 		show: function () {

- 			this.$menu.css( this.position() );

- 

- 			if ( this.options.compact ) {

- 				this.$menu.addClass( 'uls-compact' );

- 			}

- 

- 			if ( !this.initialized ) {

- 				$( 'body' ).prepend( this.$menu );

- 				this.i18n();

- 

- 				// Initialize with a full search.

- 				// This happens on first time click of uls trigger.

- 				this.defaultSearch();

- 

- 				this.initialized = true;

- 			}

- 

- 			// hide any other visible ULS

- 			$( '.uls-menu' ).hide();

- 

- 			this.$menu.show();

- 			this.$menu.scrollIntoView();

- 			this.shown = true;

- 

- 			if ( !this.isMobile() ) {

- 				this.$languageFilter.focus();

- 			}

- 

- 			this.visible();

- 		},

- 

- 		i18n: function () {

- 			if ( $.i18n ) {

- 				this.$menu.find( '[data-i18n]' ).i18n();

- 				this.$languageFilter.prop( 'placeholder', $.i18n( 'uls-search-placeholder' ) );

- 			}

- 		},

- 

- 		defaultSearch: function () {

- 			this.$resultsView.lcd( 'empty' );

- 

- 			this.$regionFilters.regionselector( 'show' );

- 		},

- 

- 		/**

- 		 * Hide the ULS window

- 		 */

- 		hide: function () {

- 			this.$menu.hide();

- 			this.shown = false;

- 		},

- 

- 		/**

- 		 * Render the UI elements.

- 		 * Does nothing by default. Can be used for customization.

- 		 */

- 		render: function () {

- 			// Rendering stuff here

- 		},

- 

- 		/**

- 		 * Callback for no results found context.

- 		 */

- 		noresults: function () {

- 			$( '.regionselector' ).removeClass( 'active' );

- 			this.$resultsView.lcd( 'noResults' );

- 		},

- 

- 		/**

- 		 * callback for results found context.

- 		 */

- 		success: function () {

- 			$( '.regionselector' ).removeClass( 'active' );

- 			this.$resultsView.show();

- 		},

- 

- 		/**

- 		 * Bind the UI elements with their event listeners

- 		 */

- 		listen: function () {

- 			var lcd,

- 				uls = this;

- 

- 			// Register all event listeners to the ULS here.

- 			this.$element.on( 'click', $.proxy( this.click, this ) );

- 

- 			this.$languageFilter.on( 'searchclear.uls', $.proxy( this.defaultSearch, this ) );

- 			this.$languageFilter.on( 'noresults.uls', $.proxy( this.noresults, this ) );

- 			this.$languageFilter.on( 'resultsfound.uls', $.proxy( this.success, this ) );

- 

- 			// Close when clicking on the close button

- 			this.$menu.find( '#uls-close' ).on( 'click', $.proxy( this.cancel, this ) );

- 			// Don't do anything if pressing on empty space in the ULS

- 			this.$menu.on( 'click', function ( e ) {

- 				e.stopPropagation();

- 			} );

- 

- 			// Handle key press events on the menu

- 			this.$menu.on( 'keypress', $.proxy( this.keypress, this ) )

- 				.on( 'keyup', $.proxy( this.keyup, this ) );

- 

- 			if ( this.eventSupported( 'keydown' ) ) {

- 				this.$menu.on( 'keydown', $.proxy( this.keypress, this ) );

- 			}

- 

- 			lcd = this.$resultsView.lcd( {

- 				languages: this.languages,

- 				quickList: this.options.quickList,

- 				clickhandler: $.proxy( this.select, this ),

- 				source: this.$languageFilter,

- 				showRegions: this.options.showRegions,

- 				languageDecorator: this.options.languageDecorator

- 			} ).data( 'lcd' );

- 

- 			this.$languageFilter.languagefilter( {

- 				$target: lcd,

- 				languages: this.languages,

- 				searchAPI: this.options.searchAPI,

- 				onSelect: $.proxy( this.select, this )

- 			} );

- 

- 			// Create region selectors, one per region

- 			this.$menu.find( '.uls-region, .uls-region-link' ).regionselector( {

- 				$target: lcd,

- 				languages: this.languages,

- 				success: function ( regionfilter ) {

- 					// Deactivate search filtering

- 					uls.$languageFilter.languagefilter( 'deactivate' );

- 

- 					// If it is the WW region, show the quicklist

- 					if ( regionfilter.regionGroup === 1 ) {

- 						lcd.quicklist();

- 					}

- 

- 					// Show 'results view' if we are in no results mode

- 					uls.success();

- 				},

- 				noresults: function () {

- 					uls.$languageFilter.languagefilter( 'clear' );

- 				}

- 			} );

- 

- 			$( 'html' ).click( $.proxy( this.cancel, this ) );

- 		},

- 

- 		/**

- 		 * On select handler for search results

- 		 * @param langCode

- 		 */

- 		select: function ( langCode ) {

- 			this.hide();

- 			this.$languageFilter.trigger( 'searchclear' );

- 			if ( this.options.onSelect ) {

- 				this.options.onSelect.call( this, langCode );

- 			}

- 		},

- 

- 		/**

- 		 * On cancel handler for the uls menu

- 		 */

- 		cancel: function () {

- 			this.hide();

- 

- 			if ( this.options.onCancel ) {

- 				this.options.onCancel.call( this );

- 			}

- 		},

- 

- 		keyup: function ( e ) {

- 			if ( !this.shown ) {

- 				return;

- 			}

- 

- 			if ( e.keyCode === 27 ) { // escape

- 				this.cancel();

- 				e.preventDefault();

- 				e.stopPropagation();

- 			}

- 		},

- 

- 		keypress: function ( e ) {

- 			if ( !this.shown ) {

- 				return;

- 			}

- 

- 			if ( e.keyCode === 27 ) { // escape

- 				this.cancel();

- 				e.preventDefault();

- 				e.stopPropagation();

- 			}

- 		},

- 

- 		click: function ( e ) {

- 			e.stopPropagation();

- 			e.preventDefault();

- 

- 			if ( this.shown ) {

- 				this.hide();

- 			} else {

- 				this.show();

- 			}

- 		},

- 

- 		eventSupported: function ( eventName ) {

- 			var isSupported = eventName in this.$menu;

- 

- 			if ( !isSupported ) {

- 				this.$element.setAttribute( eventName, 'return;' );

- 				isSupported = typeof this.$element[eventName] === 'function';

- 			}

- 

- 			return isSupported;

- 		},

- 

- 		isMobile: function () {

- 			return navigator.userAgent.match( /(iPhone|iPod|iPad|Android|BlackBerry)/ );

- 		}

- 	};

- 

- 	/* ULS PLUGIN DEFINITION

- 	 * =========================== */

- 

- 	$.fn.uls = function ( option ) {

- 		return this.each( function () {

- 			var $this = $( this ),

- 				data = $this.data( 'uls' ),

- 				options = typeof option === 'object' && option;

- 

- 			if ( !data ) {

- 				$this.data( 'uls', ( data = new ULS( this, options ) ) );

- 			}

- 

- 			if ( typeof option === 'string' ) {

- 				data[option]();

- 			}

- 		} );

- 	};

- 

- 	$.fn.uls.defaults = {

- 		onSelect: null, // Callback function to be called when a language is selected

- 		searchAPI: null, // Language search API

- 		languages: $.uls.data.getAutonyms(), // Languages to be used for ULS, default is all languages

- 		quickList: null, // Array of language codes or function that returns such

- 		compact: false, // Show ULS in compact mode

- 		showRegions: [ 'WW', 'AM', 'EU', 'ME', 'AF', 'AS', 'PA' ],

- 		languageDecorator: null // Callback function to be called when a language link is prepared - for custom decoration.

- 	};

- 

- 	// Define a dummy i18n function, if jquery.i18n not integrated.

- 	if ( !$.fn.i18n ) {

- 		$.fn.i18n = function () {};

- 	}

- 

- 	/*

- 	 * Simple scrollIntoView plugin.

- 	 * Scrolls the element to the viewport smoothly if it is not already.

- 	 */

- 	$.fn.scrollIntoView = function () {

- 		return this.each( function () {

- 			var scrollPosition,

- 				$window = $( window ),

- 				windowHeight = $window.height(),

- 				windowTop = $window.scrollTop(),

- 				windowBottom = windowTop + windowHeight,

- 				$element = $( this ),

- 				panelHeight = $element.height(),

- 				panelTop = $element.offset().top,

- 				panelBottom = panelTop + panelHeight;

- 

- 			if ( ( panelTop < windowTop ) || ( panelBottom > windowBottom ) ) {

- 				if ( windowTop > panelTop ) {

- 					scrollPosition = panelTop;

- 				} else {

- 					scrollPosition = panelBottom - windowHeight;

- 				}

- 				$( 'html, body' ).stop().animate( {

- 					scrollTop: scrollPosition

- 				}, 500 );

- 			}

- 		} );

- 	};

- 

- 	$.fn.uls.Constructor = ULS;

- }( jQuery ) );

@@ -1,7 +0,0 @@ 

- // Please do not edit. This file is generated from data/langdb.yaml by ulsdata2json.php

- ( function ( $ ) {

- 	'use strict';

- 	$.uls = $.uls || {};

- 	//noinspection JSHint

- 	$.uls.data = {"languages":{"aa":["Latn",["AF"],"Qafár af"],"ab":["Cyrl",["EU"],"Аҧсшәа"],"ace":["Latn",["AS","PA"],"Acèh"],"ady":["Cyrl",["EU","ME"],"Адыгэбзэ"],"ady-cyrl":["ady"],"ady-latn":["Latn",["EU","ME"],"Adygabze"],"aeb":["Arab",["AF"],"زَوُن"],"af":["Latn",["AF"],"Afrikaans"],"ahr":["Deva",["AS"],"अहिराणी"],"ak":["Latn",["AF"],"Akan"],"akz":["Latn",["AM"],"Albaamo innaaɬiilka"],"aln":["Latn",["EU"],"Gegë"],"am":["Ethi",["AF"],"አማርኛ"],"an":["Latn",["EU"],"aragonés"],"ang":["Latn",["EU"],"Ænglisc"],"anp":["Deva",["AS"],"अङ्गिका"],"ar":["Arab",["ME"],"العربية"],"arc":["Syrc",["ME"],"ܐܪܡܝܐ"],"arn":["Latn",["AM"],"mapudungun"],"aro":["Latn",["AM"],"Araona"],"arq":["Arab",["AF"],"جازايرية"],"ary":["Latn",["ME"],"Maġribi"],"arz":["Arab",["ME"],"مصرى"],"as":["Beng",["AS"],"অসমীয়া"],"ase":["Sgnw",["AM"],"American sign language"],"ast":["Latn",["EU"],"asturianu"],"av":["Cyrl",["EU"],"авар"],"avk":["Latn",["WW"],"Kotava"],"ay":["Latn",["AM"],"Aymar aru"],"az":["az-latn"],"az-latn":["Latn",["EU","ME"],"azərbaycanca"],"az-arab":["Arab",["EU","ME"],"آذربايجانجا"],"az-cyrl":["Latn",["EU","ME"],"азәрбајҹанҹа"],"azb":["az-arab"],"ba":["Cyrl",["EU"],"башҡортса"],"bar":["Latn",["EU"],"Boarisch"],"bat-smg":["sgs"],"bbc-latn":["Latn",["AS"],"Batak Toba"],"bbc-batk":["Batk",["AS"],"Batak Toba"],"bbc":["Latn",["AS"],"Batak Toba"],"bcc":["Arab",["AS","ME"],"بلوچی مکرانی"],"bcl":["Latn",["AS"],"Bikol Central"],"be-tarask":["Cyrl",["EU"],"беларуская (тарашкевіца)"],"be-x-old":["be-tarask"],"be":["Cyrl",["EU"],"беларуская"],"bew":["Latn",["AS"],"Bahasa Betawi"],"bfq":["Taml",["AS"],"படகா"],"bg":["Cyrl",["EU"],"български"],"bh":["Deva",["AS"],"भोजपुरी"],"bho":["Deva",["AS"],"भोजपुरी"],"bi":["Latn",["PA"],"Bislama"],"bjn":["Latn",["AS"],"Bahasa Banjar"],"bm":["Latn",["AF"],"bamanankan"],"bn":["Beng",["AS"],"বাংলা"],"bo":["Tibt",["AS"],"བོད་ཡིག"],"bpy":["Beng",["AS"],"বিষ্ণুপ্রিয়া মণিপুরী"],"bqi":["Arab",["ME"],"بختياري"],"br":["Latn",["EU"],"brezhoneg"],"brh":["Latn",["ME","AS"],"Bráhuí"],"brx":["Deva",["AS"],"बड़ो"],"bs":["Latn",["EU"],"bosanski"],"bto":["Latn",["AS"],"Iriga Bicolano"],"bug":["Bugi",["AS"],"ᨅᨔ ᨕᨘᨁᨗ"],"bxr":["Cyrl",["AS"],"буряад"],"ca":["Latn",["EU"],"català"],"cbk-zam":["Latn",["AS"],"Chavacano de Zamboanga"],"cdo":["Latn",["AS"],"Mìng-dĕ̤ng-ngṳ̄"],"ce":["Cyrl",["EU"],"нохчийн"],"ceb":["Latn",["AS"],"Cebuano"],"ch":["Latn",["PA"],"Chamoru"],"cho":["Latn",["AM"],"Choctaw"],"chr":["Cher",["AM"],"ᏣᎳᎩ"],"chy":["Latn",["AM"],"Tsetsêhestâhese"],"ckb":["Arab",["ME"],"کوردی"],"co":["Latn",["EU"],"corsu"],"cps":["Latn",["AS"],"Capiceño"],"cr":["Cans",["AM"],"ᓀᐦᐃᔭᐍᐏᐣ"],"cr-cans":["cr"],"cr-latn":["Latn",["AM"],"Nēhiyawēwin"],"crh":["Latn",["EU"],"qırımtatarca"],"crh-cyrl":["Cyrl",["EU"],"къырымтатарджа"],"crh-latn":["crh"],"cs":["Latn",["EU"],"česky"],"csb":["Latn",["EU"],"kaszëbsczi"],"cu":["Cyrl",["EU"],"словѣньскъ \/ ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ"],"cv":["Cyrl",["EU"],"Чӑвашла"],"cy":["Latn",["EU"],"Cymraeg"],"da":["Latn",["EU"],"dansk"],"de-at":["Latn",["EU"],"Österreichisches Deutsch"],"de-ch":["Latn",["EU"],"Schweizer Hochdeutsch"],"de-formal":["Latn",["EU"],"Deutsch (Sie-Form)"],"de":["Latn",["EU"],"Deutsch"],"diq":["Latn",["EU","AS"],"Zazaki"],"dsb":["Latn",["EU"],"dolnoserbski"],"dtp":["Latn",["AS"],"Dusun Bundu-liwan"],"dv":["Thaa",["AS"],"ދިވެހިބަސް"],"dz":["Tibt",["AS"],"ཇོང་ཁ"],"ee":["Latn",["AF"],"eʋegbe"],"egl":["Latn",["EU"],"Emiliàn"],"el":["Grek",["EU"],"Ελληνικά"],"eml":["Latn",["EU"],"emiliàn e rumagnòl"],"en-ca":["Latn",["AM"],"Canadian English"],"en-gb":["Latn",["EU","AS","PA"],"British English"],"en":["Latn",["EU","AM","AF","ME","AS","PA","WW"],"English"],"eo":["Latn",["WW"],"Esperanto"],"es-419":["Latn",["AM"],"español de America Latina"],"es-formal":["Latn",["EU","AM","AF","WW"],"español (formal)"],"es":["Latn",["EU","AM","AF","WW"],"español"],"esu":["Latn",["AM"],"Yup'ik"],"et":["Latn",["EU"],"eesti"],"eu":["Latn",["EU"],"euskara"],"ext":["Latn",["EU"],"estremeñu"],"fa":["Arab",["ME"],"فارسی"],"ff":["Latn",["AF"],"Fulfulde"],"fi":["Latn",["EU"],"suomi"],"fil":["tl"],"fit":["Latn",["EU"],"meänkieli"],"fiu-vro":["vro"],"fj":["Latn",["PA"],"Na Vosa Vakaviti"],"fo":["Latn",["EU"],"føroyskt"],"fr":["Latn",["EU","AM","WW"],"français"],"frc":["Latn",["AM"],"français cadien"],"frp":["Latn",["EU"],"arpetan"],"frr":["Latn",["EU"],"Nordfriisk"],"fur":["Latn",["EU"],"furlan"],"fy":["Latn",["EU"],"Frysk"],"ga":["Latn",["EU"],"Gaeilge"],"gag":["Latn",["EU"],"Gagauz"],"gah":["Latn",["AS"],"Alekano"],"gan-hans":["Hans",["AS"],"赣语(简体)"],"gan-hant":["gan"],"gan":["Hant",["AS"],"贛語"],"gbz":["Latn",["AS"],"Dari"],"gcf":["Latn",["AM"],"Guadeloupean Creole French"],"gd":["Latn",["EU"],"Gàidhlig"],"gl":["Latn",["EU"],"galego"],"glk":["Arab",["ME"],"گیلکی"],"gn":["Latn",["AM"],"Avañe'ẽ"],"gom":["Deva",["AS"],"कोंकणी"],"gom-deva":["gom"],"gom-latn":["Latn",["AS"],"Konknni"],"got":["Goth",["EU"],"𐌲𐌿𐍄𐌹𐍃𐌺"],"grc":["Grek",["EU"],"Ἀρχαία ἑλληνικὴ"],"gsw":["Latn",["EU"],"Alemannisch"],"gu":["Gujr",["AS"],"ગુજરાતી"],"guc":["Latn",["AM"],"Wayúu"],"gur":["Latn",["AF"],"Gurenɛ"],"gv":["Latn",["EU"],"Gaelg"],"ha-arab":["Arab",["AF"],"هَوُسَ"],"ha-latn":["Latn",["AF"],"Hausa"],"ha":["ha-latn"],"hak":["Latn",["AS"],"Hak-kâ-fa"],"haw":["Latn",["AM","PA"],"Hawai`i"],"he":["Hebr",["ME"],"עברית"],"hi":["Deva",["AS"],"हिन्दी"],"hif":["Latn",["PA","AS"],"Fiji Hindi"],"hif-deva":["Deva",["AS"],"फ़ीजी हिन्दी"],"hif-latn":["hif"],"hil":["Latn",["AS"],"Ilonggo"],"hne":["Deva",["AS"],"छत्तीसगढ़ी"],"ho":["Latn",["PA"],"Hiri Motu"],"hr":["Latn",["EU"],"hrvatski"],"hsb":["Latn",["EU"],"hornjoserbsce"],"hsn":["Hans",["AS"],"湘语"],"ht":["Latn",["AM"],"Kreyòl ayisyen"],"hu-formal":["Latn",["EU"],"Magyar (magázó)"],"hu":["Latn",["EU"],"magyar"],"hy":["Armn",["EU","ME"],"Հայերեն"],"hz":["Latn",["AF"],"Otsiherero"],"ia":["Latn",["WW"],"interlingua"],"id":["Latn",["AS"],"Bahasa Indonesia"],"ie":["Latn",["WW"],"Interlingue"],"ig":["Latn",["AF"],"Igbo"],"ii":["Yiii",["AS"],"ꆇꉙ"],"ik":["Latn",["AM"],"Iñupiak"],"ike-cans":["Cans",["AM"],"ᐃᓄᒃᑎᑐᑦ"],"ike-latn":["Latn",["AM"],"inuktitut"],"ilo":["Latn",["AS"],"Ilokano"],"inh":["Cyrl",["EU"],"ГӀалгӀай"],"io":["Latn",["WW"],"Ido"],"is":["Latn",["EU"],"íslenska"],"it":["Latn",["EU"],"italiano"],"iu":["Cans",["AM"],"ᐃᓄᒃᑎᑐᑦ"],"ja":["Jpan",["AS"],"日本語"],"jam":["Latn",["AM"],"Patois"],"jbo":["Latn",["WW"],"lojban"],"jut":["Latn",["EU"],"jysk"],"jv":["Latn",["AS","PA"],"Basa Jawa"],"jv-java":["Java",["AS","PA"],"ꦧꦱꦗꦮ"],"ka":["Geor",["EU"],"ქართული"],"kaa":["Latn",["AS"],"Qaraqalpaqsha"],"kab":["Latn",["AF","EU"],"Taqbaylit"],"kbd-cyrl":["kbd"],"kbd-latn":["Latn",["EU"],"Qabardjajəbza"],"kbd":["Cyrl",["EU","ME"],"Адыгэбзэ"],"kea":["Latn",["AF"],"Kabuverdianu"],"kg":["Latn",["AF"],"Kongo"],"kgp":["Latn",["AM"],"Kaingáng"],"khw":["Arab",["ME","AS"],"کھوار"],"ki":["Latn",["AF"],"Gĩkũyũ"],"kiu":["Latn",["EU","ME"],"Kırmancki"],"kj":["Latn",["AF"],"Kwanyama"],"kjh":["Cyrl",["AS"],"хакас"],"kk":["kk-cyrl"],"kk-arab":["Arab",["EU","AS"],"قازاقشا (تٶتە)"],"kk-cn":["kk-arab"],"kk-cyrl":["Cyrl",["EU","AS"],"қазақша"],"kk-kz":["kk-cyrl"],"kk-latn":["Latn",["EU","AS","ME"],"qazaqşa"],"kk-tr":["kk-latn"],"kl":["Latn",["AM","EU"],"kalaallisut"],"km":["Khmr",["AS"],"ភាសាខ្មែរ"],"kn":["Knda",["AS"],"ಕನ್ನಡ"],"ko-kp":["Kore",["AS"],"한국어 (조선)"],"ko":["Kore",["AS"],"한국어"],"koi":["Cyrl",["EU"],"Перем Коми"],"kr":["Latn",["AF"],"Kanuri"],"krc":["Cyrl",["EU"],"къарачай-малкъар"],"kri":["Latn",["AF"],"Krio"],"krj":["Latn",["ME","EU"],"Kinaray-a"],"krl":["Latn",["EU"],"Karjala"],"ks-arab":["Arab",["AS"],"کٲشُر"],"ks-deva":["Deva",["AS"],"कॉशुर"],"ks":["Arab",["AS"],"کٲشُر"],"ksf":["Latn",["AF"],"Bafia"],"ksh":["Latn",["EU"],"Ripoarisch"],"ku":["ku-latn"],"ku-arab":["Arab",["EU","ME"],"كوردي"],"ku-latn":["Latn",["EU","ME"],"Kurdî"],"kv":["Cyrl",["EU"],"коми"],"kw":["Latn",["EU"],"kernowek"],"ky":["Cyrl",["AS"],"Кыргызча"],"la":["Latn",["EU"],"Latina"],"lad":["lad-latn"],"lad-latn":["Latn",["ME","EU","AM"],"Ladino"],"lad-hebr":["Hebr",["ME","EU","AM"],"לאדינו"],"lb":["Latn",["EU"],"Lëtzebuergesch"],"lbe":["Cyrl",["EU"],"лакку"],"lez":["Cyrl",["EU"],"лезги"],"lfn":["Latn",["WW"],"Lingua Franca Nova"],"lg":["Latn",["AF"],"Luganda"],"li":["Latn",["EU"],"Limburgs"],"lij":["Latn",["EU"],"Ligure"],"liv":["Latn",["EU"],"Līvõ kēļ"],"lld":["Latn",["EU"],"Ladin"],"lmo":["Latn",["EU"],"lumbaart"],"ln":["Latn",["AF"],"lingála"],"lo":["Laoo",["AS"],"ລາວ"],"loz":["Latn",["AF"],"Silozi"],"lt":["Latn",["EU"],"lietuvių"],"lrc":["Arab",["AS"],"لوری"],"ltg":["Latn",["EU"],"latgaļu"],"lud":["Latn",["EU"],"lüüdi"],"lus":["Latn",["AS"],"Mizo ţawng"],"lut":["Latn",["AM"],"dxʷləšucid"],"lv":["Latn",["EU"],"latviešu"],"lzh":["Hant",["AS"],"文言"],"lzz":["Latn",["EU","ME"],"Lazuri"],"mai":["Deva",["AS"],"मैथिली"],"map-bms":["Latn",["AS"],"Basa Banyumasan"],"mdf":["Cyrl",["EU"],"мокшень"],"mfe":["Latn",["AM"],"Morisyen"],"mg":["Latn",["AF"],"Malagasy"],"mh":["Latn",["PA"],"Ebon"],"mhr":["Cyrl",["EU"],"олык марий"],"mi":["Latn",["PA"],"Māori"],"mic":["Latn",["AM"],"Mi'kmaq"],"min":["Latn",["AS"],"Baso Minangkabau"],"mk":["Cyrl",["EU"],"македонски"],"ml":["Mlym",["AS","ME"],"മലയാളം"],"mn":["Cyrl",["AS"],"монгол"],"mnc":["Mong",["AS"],"ᠮᠠᠨᠵᡠ ᡤᡳᠰᡠᠨ"],"mni":["Beng",["AS"],"মেইতেই লোন্"],"mnw":["Mymr",["AS"],"ဘာသာ မန်"],"mo":["Cyrl",["EU"],"молдовеняскэ"],"mr":["Deva",["AS","ME"],"मराठी"],"mrj":["Cyrl",["EU"],"кырык мары"],"ms":["Latn",["AS"],"Bahasa Melayu"],"mt":["Latn",["EU"],"Malti"],"mui":["Latn",["AS"],"Musi"],"mus":["Latn",["AM"],"Mvskoke"],"mwl":["Latn",["EU"],"Mirandés"],"mwv":["Latn",["AS"],"Behase Mentawei"],"my":["Mymr",["AS"],"မြန်မာဘာသာ"],"myv":["Cyrl",["EU"],"эрзянь"],"mzn":["Arab",["ME","AS"],"مازِرونی"],"na":["Latn",["PA"],"Dorerin Naoero"],"nah":["Latn",["AM"],"Nāhuatl"],"nan":["Latn",["AS"],"Bân-lâm-gú"],"nap":["Latn",["EU"],"Nnapulitano"],"nb":["Latn",["EU"],"norsk (bokmål)"],"nds-nl":["Latn",["EU"],"Nedersaksisch"],"nds":["Latn",["EU"],"Plattdüütsch"],"ne":["Deva",["AS"],"नेपाली"],"new":["Deva",["AS"],"नेपाल भाषा"],"ng":["Latn",["AF"],"Oshiwambo"],"niu":["Latn",["PA"],"ko e vagahau Niuē"],"njo":["Latn",["AS"],"Ao"],"nl-informal":["Latn",["EU","AM"],"Nederlands (informeel)"],"nl":["Latn",["EU","AM"],"Nederlands"],"nn":["Latn",["EU"],"norsk (nynorsk)"],"no":["Latn",["EU"],"norsk"],"nov":["Latn",["WW"],"Novial"],"nqo":["Nkoo",["AF"],"ߒߞߏ"],"nrm":["Latn",["EU"],"Nouormand"],"nso":["Latn",["AF"],"Sesotho sa Leboa"],"nv":["Latn",["AM"],"Diné bizaad"],"ny":["Latn",["AF"],"Chi-Chewa"],"oc":["Latn",["EU"],"occitan"],"om":["Latn",["AF"],"Oromoo"],"or":["Orya",["AS"],"ଓଡ଼ିଆ"],"os":["Cyrl",["EU"],"Ирон"],"ota":["Arab",["AS","EU"],"لسان عثمانى"],"pa":["pa-guru"],"pa-guru":["Guru",["AS"],"ਪੰਜਾਬੀ"],"pag":["Latn",["AS"],"Pangasinan"],"pam":["Latn",["AS"],"Kapampangan"],"pap":["Latn",["AM"],"Papiamentu"],"pcd":["Latn",["EU"],"Picard"],"pdc":["Latn",["EU","AM"],"Deitsch"],"pdt":["Latn",["EU","AM"],"Plautdietsch"],"pfl":["Latn",["EU"],"Pälzisch"],"pi":["Deva",["AS"],"पालि"],"pih":["Latn",["PA"],"Norfuk \/ Pitkern"],"pis":["Latn",["PA"],"Pijin"],"pko":["Latn",["AF"],"Pökoot"],"pl":["Latn",["EU"],"polski"],"pms":["Latn",["EU"],"Piemontèis"],"pnb":["Arab",["AS","ME"],"پنجابی"],"pnt":["Grek",["EU"],"Ποντιακά"],"ppl":["Latn",["AM"],"Nawat"],"prg":["Latn",["EU"],"Prūsiskan"],"ps":["Arab",["AS","ME"],"پښتو"],"pt_BR":["Latn",["AM"],"português do Brasil"],"pt":["Latn",["EU","AS","PA","AF","WW"],"português"],"qu":["Latn",["AM"],"Runa Simi"],"qug":["Latn",["AM"],"Runa shimi"],"rap":["Latn",["AM"],"arero rapa nui"],"rgn":["Latn",["EU"],"Rumagnôl"],"rif":["Latn",["AF"],"Tarifit"],"rki":["Mymr",["AS"],"ရခိုင်"],"rm":["Latn",["EU"],"rumantsch"],"rmf":["Latn",["EU"],"kaalengo tšimb"],"rmy":["Latn",["EU"],"Romani"],"rn":["Latn",["AF"],"Kirundi"],"ro":["Latn",["EU"],"română"],"roa-rup":["rup"],"roa-tara":["Latn",["EU"],"tarandíne"],"rtm":["Latn",["PA"],"Faeag Rotuma"],"ru":["Cyrl",["EU","AS","ME"],"русский"],"rue":["Cyrl",["EU"],"русиньскый"],"rup":["Latn",["EU"],"Armãneashce"],"ruq":["Cyrl",["EU"],"Влахесте"],"ruq-cyrl":["ruq"],"ruq-grek":["Grek",["EU"],"Megleno-Romanian (Greek script)"],"ruq-latn":["Latn",["EU"],"Vlăheşte"],"rut":["Cyrl",["EU"],"мыхаӀбишды"],"rw":["Latn",["AF"],"Kinyarwanda"],"rwr":["Deva",["AS"],"मारवाड़ी"],"ryu":["Kana",["AS"],"ʔucināguci"],"sa":["Deva",["AS"],"संस्कृतम्"],"sah":["Cyrl",["EU","AS"],"саха тыла"],"sat":["Latn",["AS"],"Santali"],"saz":["Saur",["AS"],"ꢱꣃꢬꢵꢯ꣄ꢡ꣄ꢬꢵ"],"sc":["Latn",["EU"],"sardu"],"scn":["Latn",["EU"],"sicilianu"],"sco":["Latn",["EU"],"Scots"],"sd":["Arab",["AS"],"سنڌي"],"sdc":["Latn",["EU"],"Sassaresu"],"se":["Latn",["EU"],"sámegiella"],"ses":["Latn",["AF"],"Koyraboro Senni"],"sei":["Latn",["AM"],"Cmique Itom"],"sg":["Latn",["AF"],"Sängö"],"sgs":["Latn",["EU"],"žemaitėška"],"sh":["Latn",["EU"],"srpskohrvatski"],"shi-latn":["Latn",["AF"],"Tašlḥiyt"],"shi-tfng":["Tfng",["AF"],"ⵜⴰⵛⵍⵃⵉⵜ"],"shi":["shi-latn"],"shn":["Mymr",["AS"],"လိၵ်ႈတႆး"],"si":["Sinh",["AS"],"සිංහල"],"simple":["Latn",["WW"],"Simple English"],"sk":["Latn",["EU"],"slovenčina"],"sl":["Latn",["EU"],"slovenščina"],"sli":["Latn",["EU"],"Schläsch"],"slr":["Latn",["AS"],"Salırça"],"sly":["Latn",["AS"],"Bahasa Selayar"],"syc":["Syrc",["ME"],"ܣܘܪܝܝܐ"],"sm":["Latn",["PA"],"Gagana Samoa"],"sma":["Latn",["EU"],"åarjelsaemien"],"smj":["Latn",["EU"],"julevsámegiella"],"smn":["Latn",["EU"],"anarâškielâ"],"sms":["Latn",["EU"],"sää´mǩiõll"],"sn":["Latn",["AF"],"chiShona"],"so":["Latn",["AF"],"Soomaaliga"],"sq":["Latn",["EU"],"shqip"],"sr":["Cyrl",["EU"],"српски"],"sr-ec":["sr-cyrl"],"sr-cyrl":["Cyrl",["EU"],"српски"],"sr-el":["sr-latn"],"sr-latn":["Latn",["EU"],"srpski"],"srn":["Latn",["AM","EU"],"Sranantongo"],"ss":["Latn",["AF"],"SiSwati"],"st":["Latn",["AF"],"Sesotho"],"stq":["Latn",["EU"],"Seeltersk"],"su":["Latn",["AS"],"Basa Sunda"],"sv":["Latn",["EU"],"svenska"],"sw":["Latn",["AF"],"Kiswahili"],"swb":["Latn",["AF"],"Shikomoro"],"sxu":["Latn",["EU"],"Säggssch"],"szl":["Latn",["EU"],"ślůnski"],"ta":["Taml",["AS"],"தமிழ்"],"tcy":["Knda",["AS"],"ತುಳು"],"te":["Telu",["AS"],"తెలుగు"],"tet":["Latn",["AS","PA"],"tetun"],"tg-cyrl":["Cyrl",["AS"],"тоҷикӣ"],"tg-latn":["Latn",["AS"],"tojikī"],"tg":["Cyrl",["AS"],"тоҷикӣ"],"th":["Thai",["AS"],"ไทย"],"ti":["Ethi",["AF"],"ትግርኛ"],"tk":["Latn",["AS"],"Türkmençe"],"tkr":["Cyrl",["AS"],"ЦӀаьхна миз"],"tl":["Latn",["AS"],"Tagalog"],"tly":["Cyrl",["EU","AS","ME"],"толышә зывон"],"tn":["Latn",["AF"],"Setswana"],"to":["Latn",["PA"],"lea faka-Tonga"],"tokipona":["Latn",["WW"],"Toki Pona"],"tpi":["Latn",["PA","AS"],"Tok Pisin"],"tr":["Latn",["EU","ME"],"Türkçe"],"trp":["Latn",["AS"],"Kokborok (Tripuri)"],"tru":["Latn",["AS"],"Ṫuroyo"],"ts":["Latn",["AF"],"Xitsonga"],"tsd":["Grek",["EU"],"Τσακωνικά"],"tt":["Cyrl",["EU"],"татарча"],"tt-cyrl":["tt"],"tt-latn":["Latn",["EU"],"tatarça"],"ttt":["Cyrl",["AS"],"Tati"],"tum":["Latn",["AF"],"chiTumbuka"],"tw":["Latn",["AF"],"Twi"],"twd":["Latn",["EU"],"Tweants"],"ty":["Latn",["PA"],"Reo Mā`ohi"],"tyv":["Cyrl",["AS"],"тыва дыл"],"tzm":["Tfng",["AF"],"ⵜⴰⵎⴰⵣⵉⵖⵜ"],"udm":["Cyrl",["EU"],"удмурт"],"ug":["ug-arab"],"ug-arab":["Arab",["AS"],"ئۇيغۇرچە"],"ug-latn":["Latn",["AS"],"uyghurche"],"ug-cyrl":["Cyrl",["AS"],"уйғурчә"],"uk":["Cyrl",["EU"],"українська"],"ur":["Arab",["AS","ME"],"اردو"],"uz":["Latn",["AS"],"oʻzbekcha"],"ve":["Latn",["AF"],"Tshivenda"],"vec":["Latn",["EU"],"vèneto"],"vep":["Latn",["EU"],"vepsän kel’"],"vi":["Latn",["AS"],"Tiếng Việt"],"vls":["Latn",["EU"],"West-Vlams"],"vmf":["Latn",["EU"],"Mainfränkisch"],"vo":["Latn",["WW"],"Volapük"],"vot":["Latn",["EU"],"Vaďďa"],"vro":["Latn",["EU"],"Võro"],"wa":["Latn",["EU"],"walon"],"war":["Latn",["AS"],"Winaray"],"wls":["Latn",["PA"],"Faka'uvea"],"wo":["Latn",["AF"],"Wolof"],"wuu":["Hans",["AS"],"吴语"],"xal":["Cyrl",["EU"],"хальмг"],"xh":["Latn",["AF"],"isiXhosa"],"xmf":["Geor",["EU"],"მარგალური"],"ydd":["Hebr",["AS","EU"],"Eastern Yiddish"],"yi":["Hebr",["ME","EU","AM"],"ייִדיש"],"yo":["Latn",["AF"],"Yorùbá"],"yrk":["Cyrl",["AS"],"Ненэцяʼ вада"],"yrl":["Latn",["AM"],"ñe'engatú"],"yua":["Latn",["AM"],"Maaya T'aan"],"yue":["Hant",["AS"],"粵語"],"za":["Latn",["AS"],"Vahcuengh"],"zea":["Latn",["EU"],"Zeêuws"],"zh":["Hans",["AS"],"中文"],"zh-classical":["Hant",["AS"],"文言"],"zh_CN":["Hans",["AS"],"中文(中国大陆)"],"zh-hans":["Hans",["AS"],"中文(简体)"],"zh-hant":["Hant",["AS"],"中文(繁體)"],"zh-hk":["Hant",["AS"],"中文(香港)"],"zh-min-nan":["nan"],"zh-mo":["Hant",["AS"],"中文(澳門)"],"zh-my":["Hans",["AS"],"中文(马来西亚)"],"zh-sg":["Hans",["AS"],"中文(新加坡)"],"zh_TW":["Hant",["AS"],"中文(台灣)"],"zh-yue":["yue"],"zu":["Latn",["AF"],"isiZulu"]},"scriptgroups":{"Latin":["Latn","Goth"],"Greek":["Grek"],"WestCaucasian":["Armn","Geor"],"Arabic":["Arab"],"MiddleEastern":["Hebr","Syrc"],"African":["Ethi","Nkoo","Tfng"],"SouthAsian":["Beng","Deva","Gujr","Guru","Knda","Mlym","Orya","Saur","Sinh","Taml","Telu","Tibt","Thaa"],"Cyrillic":["Cyrl"],"CJK":["Hans","Hant","Kana","Kore","Jpan","Yiii"],"SouthEastAsian":["Batk","Bugi","Java","Khmr","Laoo","Mymr","Thai"],"Mongolian":["Mong"],"SignWriting":["Sgnw"],"NativeAmerican":["Cher","Cans"],"Special":["Zyyy"]},"rtlscripts":["Arab","Hebr","Syrc","Nkoo","Thaa"],"regiongroups":{"WW":1,"SP":1,"AM":2,"EU":3,"ME":3,"AF":3,"AS":4,"PA":4},"territories":{"AC":["en"],"AD":["ca","es","fr"],"AE":["ar","ml","ps","bal","fa"],"AF":["fa","ps","haz","uz-arab","tk-latn","prd","bal","ug-arab","kk-arab"],"AG":["en","pt"],"AI":["en"],"AL":["sq","el","mk"],"AM":["hy","ku-latn","az-latn"],"AO":["pt","umb","kmb","ln"],"AQ":["und"],"AR":["es","cy","gn"],"AS":["sm","en"],"AT":["de","bar","hr","sl","hu"],"AU":["en","zh-hant","it"],"AW":["nl","pap","en"],"AX":["sv"],"AZ":["az-latn","az-cyrl","tly-latn","ku-latn","ttt-latn","tkr-latn"],"BA":["bs-cyrl","bs-latn","hr","sr-cyrl","sr-latn"],"BB":["en"],"BD":["bn","rkt","syl","ccp","my","grt","mni"],"BE":["nl","en","fr","vls","wa","de"],"BF":["mos","dyu","fr"],"BG":["bg","tr"],"BH":["ar","ml"],"BI":["rn","fr","sw"],"BJ":["fr","fon","yo"],"BL":["fr"],"BM":["en"],"BN":["ms-latn","zh-hant","ms-arab","en"],"BO":["es","qu","ay","gn","aro"],"BQ":["pap","nl"],"BR":["pt","de","it","ja","ko","kgp","gub","yrl","xav"],"BS":["en"],"BT":["dz","ne","tsj","lep"],"BV":["und"],"BW":["en","tn","af"],"BY":["be","ru"],"BZ":["en","es"],"CA":["en","fr","it","de","pdt","cr-cans","crk","yi","iu-cans","iu-latn","moe","crj","atj","crl","csw","crm","ikt","moh","dgr","den","scs","nsk","chp","gwi"],"CC":["ms-arab","en"],"CD":["sw","lua","swc","fr","ln","lu","kg","lol","rw"],"CF":["fr","sg","ln"],"CG":["fr","ln"],"CH":["de","fr","gsw","it","lmo","rm","rmo","wae"],"CI":["fr","bci","sef","dnj","kfo","bqv"],"CK":["en"],"CL":["es","arn"],"CM":["fr","en","bum","ff","ewo","ybb","bbj","nnh","bkm","bas","bax","byv","mua","maf","bfd","bss","kkj","dua","mgo","ar","jgo","ksf","agq","ha-arab","nmg","yav"],"CN":["zh-hans","wuu","hsn","hak","nan","gan","ii","ug-arab","za","mn-mong","bo","ko","kk-arab","lis","ky-arab","nxq","khb","tdd","lcp","en","ru","vi","uz-cyrl","lzh"],"CO":["es","guc"],"CP":["und"],"CR":["es"],"CU":["es"],"CV":["kea","pt"],"CW":["pap","nl","es"],"CX":["en"],"CY":["el","tr","hy","ar"],"CZ":["cs","de","pl"],"DE":["de","en","nds","vmf","tr","hr","it","ku-latn","ru","el","ksh","pl","es","nl","da","hsb","frr","dsb","frs","stq","pfl"],"DG":["en"],"DJ":["aa","so","ar","fr"],"DK":["da","de","kl","jut"],"DM":["en"],"DO":["es","en"],"DZ":["arq","ar","fr","kab"],"EA":["es"],"EC":["es","qu","qug"],"EE":["et","ru","vro"],"EG":["ar","arz","el"],"EH":["ar"],"ER":["ti","en","tig","ar","aa","ssy","byn"],"ES":["es","en","ca","gl","eu","ast","ext"],"ET":["en","am","om","so","ti","sid","wal","aa"],"FI":["fi","sv","ru","en","et","rmf","se","smn","sms"],"FJ":["en","hi","hif-deva","fj","rtm"],"FK":["en"],"FM":["chk","pon","kos","yap","en","uli"],"FO":["fo"],"FR":["fr","en","oc","it","pt","pcd","gsw","br","co","ca","nl","eu","frp","ia"],"GA":["fr","puu"],"GB":["en","sco","pa-guru","cy","bn","zh-hant","syl","el","it","ks-arab","gd","yi","ml","ga","fr","kw"],"GD":["en"],"GE":["ka","xmf","ru","hy","ab","os","ku-latn"],"GF":["fr","gcr","zh-hant"],"GG":["en"],"GH":["ak","en","ee","abr","gur","gaa","ha-latn","saf"],"GI":["en"],"GL":["kl","da"],"GM":["en","man-latn"],"GN":["fr","ff","man-nkoo","sus","nqo","kpe"],"GP":["fr"],"GQ":["es","fan","fr","bvb"],"GR":["el","pnt-grek","mk","tr","bg","sq","tsd"],"GS":["und"],"GT":["es","quc"],"GU":["en","ch"],"GW":["pt"],"GY":["en"],"HK":["zh-hant","en","zh-hans"],"HM":["und"],"HN":["es","en"],"HR":["hr","it"],"HT":["ht","fr"],"HU":["hu","de","ro","hr","sk","sl"],"IC":["es"],"ID":["id","jv","su","mad","ms-arab","min","bew","ban","bug","bjn","ace","sas","bbc","zh-hant","mak","ljp","rej","gor","nij","kge","aoz","kvr","lbw","rob","mdr","sxn","sly","mwv"],"IE":["en","ga"],"IL":["he","ar","ru","ro","yi","en","pl","lad","hu","am","ti","ml"],"IM":["en","gv"],"IN":["hi","en","bn","te","mr","ta","ur","gu","kn","ml","or","pa-guru","bho","awa","as","bgc","mag","mwr","mai","hne","dcc","bjj","ne","sat","wtm","rkt","ks-arab","kok","gom","swv","gbm","lmn","sd-arab","gon-telu","kfy","doi","kru","sck","wbq","xnr","tcy","wbr","khn","brx","noe","bhb","mni","raj","hoc","mtr","unr-beng","bhi","hoj","kha","kfr","grt","unx-beng","bfy","srx","saz","ccp","sd-deva","bfq","njo","ria","bo","bpy","bft","bra","lep","btv","lif-deva","lah","sa","kht","dv","dz"],"IO":["en"],"IQ":["ar","ckb","fa","syr"],"IR":["fa","az-arab","azb","mzn","glk","ckb","tk-latn","lrc","ar","bal","rmt","bqi","luz","lki","prd","hy","ps","ka","gbz","kk-arab"],"IS":["is","da"],"IT":["it","en","fr","lmo","pms","sc","de","vec","nap","lij","scn","sl","sdc","fur","egl","ca","el","hr","rgn"],"JE":["en"],"JM":["en","jam"],"JO":["ar"],"JP":["ja","ryu","ko"],"KE":["en","sw","ki","luy","luo","kam","kln","guz","mer","mas","ebu","so","dav","teo","pko","om","saq","ar","pa-guru","gu"],"KG":["ky-cyrl","ru"],"KH":["km","cja","kdt"],"KI":["en","gil"],"KM":["ar","fr","zdj"],"KN":["en"],"KP":["ko"],"KR":["ko"],"KW":["ar"],"KY":["en"],"KZ":["ru","kk-cyrl","de","ug-cyrl"],"LA":["lo","kjg","kdt"],"LB":["ar","hy","ku-arab","fr","en"],"LC":["en"],"LI":["de","gsw","wae"],"LK":["si","ta","en"],"LR":["en","kpe","vai-vaii","men","vai-latn"],"LS":["st","zu","ss","en","xh"],"LT":["lt","ru","sgs"],"LU":["fr","lb","de"],"LV":["lv","ru","ltg"],"LY":["ar"],"MA":["ary","ar","zgh","fr","tzm-latn","shi-latn","shi-tfng","rif-latn","rif-tfng","es"],"MC":["fr"],"MD":["ro","uk","bg","gag","ru"],"ME":["sr-latn","sq","sr-cyrl"],"MF":["fr"],"MG":["mg","fr","en"],"MH":["en","mh"],"MK":["mk","sq","tr"],"ML":["bm-latn","fr","ffm","snk","mwk","ses","tmh","bm-nkoo","khq","dtm","kao","ar","bmq","bze"],"MM":["my","shn","mnw","kht"],"MN":["mn-cyrl","kk-arab","zh-hans","ru","ug-cyrl"],"MO":["zh-hant","pt","zh-hans","en"],"MP":["en","ch"],"MQ":["fr"],"MR":["ar","fr","ff","wo"],"MS":["en"],"MT":["mt","en"],"MU":["mfe","en","bho","ur","fr","ta"],"MV":["dv"],"MW":["en","ny","tum","zu"],"MX":["es","yua","nhe","nhw","maz","nch","sei"],"MY":["ms-latn","en","zh-hant","ta","jv","zmi","dtp","ml","bug","bjn"],"MZ":["pt","vmw","ndc","ts","ngl","seh","mgh","rng","ny","yao","sw","zu"],"NA":["af","kj","ng","naq","en","de","tn"],"NC":["fr"],"NE":["ha-latn","fr","dje","fuq","tmh","ar","twq"],"NF":["en"],"NG":["en","pcm","ha-latn","ig","yo","fuv","tiv","efi","ibb","ha-arab","bin","kaj","kcg","ar","cch","amo"],"NI":["es"],"NL":["nl","en","li","fy","gos","id","zea","rif-latn","tr"],"NO":["nb","nn","se"],"NP":["ne","mai","bho","new","jml","taj","awa","thl","bap","tdg","thr","mgp","lif-deva","thq","mrd","bfy","xsr","rjs","tsf","hi","ggn","gvr","bo","tkt","tdh","bn","unr-deva","lep"],"NR":["en","na"],"NU":["en","niu"],"NZ":["en","mi"],"OM":["ar","bal","fa"],"PA":["es","en","zh-hant"],"PE":["es","qu","ay"],"PF":["fr","ty","zh-hant"],"PG":["tpi","en","ho"],"PH":["en","fil","es","ceb","ilo","hil","bik","war","bhk","pam","pag","mdh","tsg","zh-hant","cps","krj","bto","hnn","tbw","bku"],"PK":["ur","pa-arab","en","lah","ps","sd-arab","skr","bal","brh","hno","fa","hnd","tg-arab","gju","bft","kvx","khw","mvy","kxp","gjk","ks-arab","btv"],"PL":["pl","szl","be","uk","csb","de","sli","lt"],"PM":["fr","en"],"PN":["en"],"PR":["es","en"],"PS":["ar"],"PT":["pt","gl"],"PW":["pau","en"],"PY":["gn","es","de"],"QA":["ar","fa","ml"],"RE":["fr","rcf","ta"],"RO":["ro","hu","de","tr","sr-latn","bg","el","pl"],"RS":["sr-cyrl","sr-latn","sq","hu","ro","hr","sk","uk"],"RU":["ru","tt","ba","cv","hy","ce","av","udm","chm","sah","os","kbd","myv","dar","bua","mdf","kum","kv","lez","krc","inh","tyv","az-cyrl","ady","krl","lbe","koi","mrj","alt","fi","sr-latn","vep","mn-cyrl","izh","cu"],"RW":["rw","fr","en"],"SA":["ar"],"SB":["en","rug"],"SC":["crs","fr","en"],"SD":["ar","en","nus","ha-arab"],"SE":["sv","fi","fit","se","rmu","yi","smj","sma","ia"],"SG":["en","zh-hans","ms-latn","ta","ml","pa-guru"],"SH":["en"],"SI":["sl","hu","it"],"SJ":["nb","ru"],"SK":["sk","hu","uk","pl","de"],"SL":["kri","en","men","tem"],"SM":["it","eo"],"SN":["wo","fr","ff","srr","dyo"],"SO":["so","ar","sw","om"],"SR":["nl","srn","zh-hant"],"SS":["ar","en"],"ST":["pt"],"SV":["es"],"SX":["en","es","vic","nl"],"SY":["ar","ku-latn","fr","hy","syr"],"SZ":["en","ss","zu","ts"],"TA":["en"],"TC":["en"],"TD":["fr","ar"],"TF":["fr"],"TG":["fr","ee"],"TH":["th","tts","nod","sou","mfa","zh-hant","kxm","kdt","mnw","shn","lcp","lwl"],"TJ":["tg-cyrl","ru","fa","ar"],"TK":["en","tkl"],"TL":["pt","tet"],"TM":["tk-latn","ru","uz-latn","ku-latn"],"TN":["aeb","ar","fr"],"TO":["to","en"],"TR":["tr","ku-latn","zza","kbd","az-latn","ar","bgx","bg","ady","kiu","hy","ka","sr-latn","lzz-latn","sq","ab","el","tru","uz-latn","ky-latn","kk-cyrl"],"TT":["en","es"],"TV":["tvl","en"],"TW":["zh-hant","trv"],"TZ":["sw","en","suk","nym","kde","bez","ksb","mas","mgy","asa","lag","jmc","rof","vun","rwk","sbp"],"UA":["uk","ru","pl","yi","rue","be","ro","bg","tr","hu","el"],"UG":["sw","lg","nyn","cgg","xog","en","teo","laj","ach","myx","rw","ttj","hi"],"UM":["en"],"US":["en","es","zh-hant","fr","de","fil","it","vi","ko","ru","nv","yi","pdc","haw","frc","chr","esu","lkt","ik"],"UY":["es"],"UZ":["uz-latn","uz-cyrl","ru","kaa","tr"],"VA":["it","la"],"VC":["en"],"VE":["es"],"VG":["en"],"VI":["en"],"VN":["vi","zh-hant","cjm"],"VU":["bi","en","fr"],"WF":["wls","fr","fud"],"WS":["sm","en"],"XK":["sq","aln","sr-cyrl","sr-latn"],"YE":["ar"],"YT":["swb","fr","buc","sw"],"ZA":["en","zu","xh","af","nso","tn","st","ts","ss","ve","hi","nr","sw"],"ZM":["en","bem","ny","loz"],"ZW":["en","sn","nd","mxc","ndc","kck","ny","ve","tn"],"ZZ":[]}};

- } ( jQuery ) );

@@ -1,465 +0,0 @@ 

- /**

-  * Utility functions for querying language data.

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- ( function ( $ ) {

- 	'use strict';

- 

- 	/**

- 	 * Is this language a redirect to another language?

- 	 * @param language string Language code

- 	 * @return Target language code if it's a redirect or false if it's not

- 	 */

- 	$.uls.data.isRedirect = function ( language ) {

- 		return ( $.uls.data.languages[language] !== undefined &&

- 			$.uls.data.languages[language].length === 1 ) ? $.uls.data.languages[language][0] : false;

- 	};

- 

- 	/**

- 	 * Returns the script of the language.

- 	 * @param language string Language code

- 	 * @return string

- 	 */

- 	$.uls.data.getScript = function ( language ) {

- 		var target = $.uls.data.isRedirect( language );

- 

- 		if ( target ) {

- 			return $.uls.data.getScript( target );

- 		}

- 

- 		if ( !$.uls.data.languages[language] ) {

- 			// Undetermined

- 			return 'Zyyy';

- 		}

- 

- 		return $.uls.data.languages[language][0];

- 	};

- 

- 	/**

- 	 * Returns the regions in which a language is spoken.

- 	 * @param language string Language code

- 	 * @return array|string 'UNKNOWN'

- 	 */

- 	$.uls.data.getRegions = function ( language ) {

- 		var target = $.uls.data.isRedirect( language );

- 

- 		if ( target ) {

- 			return $.uls.data.getRegions( target );

- 		}

- 

- 		return ( $.uls.data.languages[language] && $.uls.data.languages[language][1] ) || 'UNKNOWN';

- 	};

- 

- 	/**

- 	 * Returns the autonym of the language.

- 	 * @param language string Language code

- 	 * @return string

- 	 */

- 	$.uls.data.getAutonym = function ( language ) {

- 		var target = $.uls.data.isRedirect( language );

- 

- 		if ( target ) {

- 			return $.uls.data.getAutonym( target );

- 		}

- 

- 		return ( $.uls.data.languages[language] && $.uls.data.languages[language][2] ) || language;

- 	};

- 

- 	/**

- 	 * Returns all language codes and corresponding autonyms

- 	 * @return array

- 	 */

- 	$.uls.data.getAutonyms = function () {

- 		var language,

- 			autonymsByCode = {};

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			autonymsByCode[language] = $.uls.data.getAutonym( language );

- 		}

- 

- 		return autonymsByCode;

- 	};

- 

- 	/**

- 	 * Returns an array of all region codes.

- 	 * @return array

- 	 */

- 	$.uls.data.getAllRegions = function () {

- 		var region,

- 			allRegions = [];

- 

- 		for ( region in $.uls.data.regiongroups ) {

- 			allRegions.push( region );

- 		}

- 

- 		return allRegions;

- 	};

- 

- 	/**

- 	 * Returns all languages written in script.

- 	 * @param script string

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInScript = function ( script ) {

- 		return $.uls.data.getLanguagesInScripts( [ script ] );

- 	};

- 

- 	/**

- 	 * Returns all languages written in the given scripts.

- 	 * @param scripts array of strings

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInScripts = function ( scripts ) {

- 		var language, i,

- 			languagesInScripts = [];

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			for ( i = 0; i < scripts.length; i++ ) {

- 				if ( scripts[i] === $.uls.data.getScript( language ) ) {

- 					languagesInScripts.push( language );

- 					break;

- 				}

- 			}

- 		}

- 

- 		return languagesInScripts;

- 	};

- 

- 	/**

- 	 * Returns all languages in a given region.

- 	 * @param region string

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInRegion = function ( region ) {

- 		return $.uls.data.getLanguagesInRegions( [ region ] );

- 	};

- 

- 	/**

- 	 * Returns all languages in given regions.

- 	 * @param regions array of strings.

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInRegions = function ( regions ) {

- 		var language, i,

- 			languagesInRegions = [];

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			for ( i = 0; i < regions.length; i++ ) {

- 				if ( $.inArray( regions[i], $.uls.data.getRegions( language ) ) !== -1 ) {

- 					languagesInRegions.push( language );

- 					break;

- 				}

- 			}

- 		}

- 

- 		return languagesInRegions;

- 	};

- 

- 	/**

- 	 * Returns all languages in a region group.

- 	 * @param groupNum number.

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInRegionGroup = function ( groupNum ) {

- 		return $.uls.data.getLanguagesInRegions( $.uls.data.getRegionsInGroup( groupNum ) );

- 	};

- 

- 	/**

- 	 * Returns an associative array of languages in a region,

- 	 * grouped by script.

- 	 * @param region string Region code

- 	 * @return associative array

- 	 */

- 	$.uls.data.getLanguagesByScriptInRegion = function ( region ) {

- 		var language, script,

- 			languagesByScriptInRegion = {};

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			if ( $.inArray( region, $.uls.data.getRegions( language ) ) !== -1 ) {

- 				script = $.uls.data.getScript( language );

- 

- 				if ( languagesByScriptInRegion[script] === undefined ) {

- 					languagesByScriptInRegion[script] = [];

- 				}

- 				languagesByScriptInRegion[script].push( language );

- 			}

- 		}

- 

- 		return languagesByScriptInRegion;

- 	};

- 

- 	/**

- 	 * Returns an associative array of languages in a region,

- 	 * grouped by script group.

- 	 * @param region string Region code

- 	 * @return associative array

- 	 */

- 	$.uls.data.getLanguagesByScriptGroupInRegion = function ( region ) {

- 		return $.uls.data.getLanguagesByScriptGroupInRegions( [ region ] );

- 	};

- 

- 	/**

- 	 * Returns an associative array of all languages,

- 	 * grouped by script group.

- 	 * @return associative array

- 	 */

- 	$.uls.data.getAllLanguagesByScriptGroup = function () {

- 		return $.uls.data.getLanguagesByScriptGroupInRegions( $.uls.data.getAllRegions() );

- 	};

- 

- 	/**

- 	 * Get the given list of languages grouped by script.

- 	 * @param languages Array of language codes

- 	 * @return {Object} Array of languages indexed by script codes

- 	 */

- 	$.uls.data.getLanguagesByScriptGroup = function ( languages ) {

- 		var languagesByScriptGroup = {},

- 			language, codeToAdd, langScriptGroup;

- 

- 		for ( language in languages ) {

- 			codeToAdd = $.uls.data.isRedirect( language ) || language;

- 

- 			langScriptGroup = $.uls.data.getScriptGroupOfLanguage( codeToAdd );

- 

- 			if ( !languagesByScriptGroup[langScriptGroup] ) {

- 				languagesByScriptGroup[langScriptGroup] = [];

- 			}

- 

- 			// Prevent duplicate adding of redirects

- 			if ( $.inArray( codeToAdd, languagesByScriptGroup[langScriptGroup] ) === -1 ) {

- 				languagesByScriptGroup[langScriptGroup].push( codeToAdd );

- 			}

- 		}

- 

- 		return languagesByScriptGroup;

- 	};

- 

- 	/**

- 	 * Returns an associative array of languages in several regions,

- 	 * grouped by script group.

- 	 * @param regions array of strings - region codes

- 	 * @return associative array

- 	 */

- 	$.uls.data.getLanguagesByScriptGroupInRegions = function ( regions ) {

- 		var language, i, scriptGroup,

- 			languagesByScriptGroupInRegions = {};

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			for ( i = 0; i < regions.length; i++ ) {

- 				if ( $.inArray( regions[i], $.uls.data.getRegions( language ) ) !== -1 ) {

- 					scriptGroup = $.uls.data.getScriptGroupOfLanguage( language );

- 

- 					if ( languagesByScriptGroupInRegions[scriptGroup] === undefined ) {

- 						languagesByScriptGroupInRegions[scriptGroup] = [];

- 					}

- 

- 					languagesByScriptGroupInRegions[scriptGroup].push( language );

- 					break;

- 				}

- 			}

- 		}

- 

- 		return languagesByScriptGroupInRegions;

- 	};

- 

- 	/**

- 	 * Returns an array of languages grouped by region group,

- 	 * region, script group and script.

- 	 * @return associative array

- 	 */

- 	$.uls.data.getAllLanguagesByRegionAndScript = function () {

- 		var region, regionGroup, language,

- 			script, scriptGroup, regions, regionNum,

- 			allLanguagesByRegionAndScript = {};

- 

- 		for ( region in $.uls.data.regiongroups ) {

- 			regionGroup = $.uls.data.regiongroups[region];

- 

- 			if ( allLanguagesByRegionAndScript[regionGroup] === undefined ) {

- 				allLanguagesByRegionAndScript[regionGroup] = {};

- 			}

- 

- 			allLanguagesByRegionAndScript[regionGroup][region] = {};

- 		}

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			script = $.uls.data.getScript( language );

- 			scriptGroup = $.uls.data.getGroupOfScript( script );

- 			regions = $.uls.data.getRegions( language );

- 

- 			for ( regionNum = 0; regionNum < regions.length; regionNum++ ) {

- 				region = regions[regionNum];

- 				regionGroup = $.uls.data.regiongroups[region];

- 

- 				if ( allLanguagesByRegionAndScript[regionGroup][region][scriptGroup] === undefined ) {

- 					allLanguagesByRegionAndScript[regionGroup][region][scriptGroup] = {};

- 				}

- 

- 				if ( allLanguagesByRegionAndScript[regionGroup][region][scriptGroup][script] === undefined ) {

- 					allLanguagesByRegionAndScript[regionGroup][region][scriptGroup][script] = [];

- 				}

- 

- 				allLanguagesByRegionAndScript[regionGroup][region][scriptGroup][script].push( language );

- 			}

- 		}

- 

- 		return allLanguagesByRegionAndScript;

- 	};

- 

- 	/**

- 	 * Returns all regions in a region group.

- 	 * @param groupNum int

- 	 * @return array of strings

- 	 */

- 	$.uls.data.getRegionsInGroup = function ( groupNum ) {

- 		var region,

- 			regionsInGroup = [];

- 

- 		for ( region in $.uls.data.regiongroups ) {

- 			if ( $.uls.data.regiongroups[region] === groupNum ) {

- 				regionsInGroup.push( region );

- 			}

- 		}

- 

- 		return regionsInGroup;

- 	};

- 

- 	/**

- 	 * Returns the script group of a script or 'Other' if it doesn't

- 	 * belong to any group.

- 	 * @param script string Script code

- 	 * @return string script group name

- 	 */

- 	$.uls.data.getGroupOfScript = function ( script ) {

- 		var scriptGroup;

- 

- 		for ( scriptGroup in $.uls.data.scriptgroups ) {

- 			if ( $.inArray( script, $.uls.data.scriptgroups[scriptGroup] ) !== -1 ) {

- 				return scriptGroup;

- 			}

- 		}

- 

- 		return 'Other';

- 	};

- 

- 	/**

- 	 * Returns the script group of a language.

- 	 * @param language string Language code

- 	 * @return string script group name

- 	 */

- 	$.uls.data.getScriptGroupOfLanguage = function ( language ) {

- 		return $.uls.data.getGroupOfScript( $.uls.data.getScript( language ) );

- 	};

- 

- 	/**

- 	 * A callback for sorting languages by autonym.

- 	 * Can be used as an argument to a sort function.

- 	 * @param a string Language code

- 	 * @param b string Language code

- 	 */

- 	$.uls.data.sortByAutonym = function ( a, b ) {

- 		var autonymA = $.uls.data.getAutonym( a ) || a,

- 			autonymB = $.uls.data.getAutonym( b ) || b;

- 

- 		return ( autonymA.toLowerCase() < autonymB.toLowerCase() ) ? -1 : 1;

- 	};

- 

- 	/**

- 	 * Check if a language is right-to-left.

- 	 * @param language string Language code

- 	 * @return boolean

- 	 */

- 	$.uls.data.isRtl = function ( language ) {

- 		return $.inArray( $.uls.data.getScript( language ), $.uls.data.rtlscripts ) !== -1;

- 	};

- 

- 	/**

- 	 * Return the direction of the language

- 	 * @param language string Language code

- 	 * @return string

- 	 */

- 	$.uls.data.getDir = function ( language ) {

- 		return $.uls.data.isRtl( language ) ? 'rtl' : 'ltr';

- 	};

- 

- 	/**

- 	 * Returns the languages spoken in a territory.

- 	 * @param territory string Territory code

- 	 * @return list of language codes

- 	 */

- 	$.uls.data.getLanguagesInTerritory = function ( territory ) {

- 		return $.uls.data.territories[territory];

- 	};

- 

- 	/**

- 	 * Adds a language in run time and sets its options as provided.

- 	 * If the target option is provided, the language is defined as a redirect.

- 	 * Other possible options are script, regions and autonym.

- 	 *

- 	 * @param code string New language code.

- 	 * @param options Object Language properties.

- 	 * @return list of language codes

- 	 */

- 	$.uls.data.addLanguage = function( code, options ) {

- 		if ( options.target ) {

- 			$.uls.data.languages[code] = [options.target];

- 		} else {

- 			$.uls.data.languages[code] = [options.script, options.regions, options.autonym];

- 		}

- 	};

- 

- 	/**

- 	 * Removes a language from the langdb in run time.

- 	 *

- 	 * @param code string Language code to delete.

- 	 * @return true if the language was removed, false otherwise.

- 	 */

- 	$.uls.data.deleteLanguage = function( code ) {

- 		if ( $.uls.data.languages[code] ) {

- 			delete $.uls.data.languages[code];

- 

- 			return true;

- 		}

- 

- 		return false;

- 	};

- } ( jQuery ) );

@@ -1,360 +0,0 @@ 

- /**

-  * jQuery language filter plugin.

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- /**

-  * Usage: $( 'inputbox' ).languagefilter();

-  * The values for autocompletion is from the options.languages.

-  * The data is in the format of languagecode:languagename.

-  */

- (function ( $ ) {

- 	'use strict';

- 

- 	var LanguageFilter, delay;

- 

- 	LanguageFilter = function( element, options ) {

- 		this.$element = $( element );

- 		this.options = $.extend( {}, $.fn.regionselector.defaults, options );

- 		this.$element.addClass( 'languagefilter' );

- 		this.resultCount = 0;

- 		this.$suggestion = this.$element.parents().find( '#' + this.$element.data( 'suggestion' ) );

- 		this.$clear = this.$element.parents().find( '#' + this.$element.data( 'clear' ) );

- 		this.selectedLanguage = null;

- 

- 		this.listen();

- 	};

- 

- 	delay = ( function() {

- 		var timer = 0;

- 

- 		return function( callback, milliseconds ) {

- 			clearTimeout( timer );

- 			timer = setTimeout( callback, milliseconds );

- 		};

- 	} () );

- 

- 	LanguageFilter.prototype = {

- 		listen: function() {

- 			this.$element.on( 'keypress', $.proxy( this.keyup, this ) )

- 				.on( 'keyup', $.proxy( this.keyup, this ) );

- 

- 			if ( this.eventSupported( 'keydown' ) ) {

- 				this.$element.on( 'keydown', $.proxy( this.keyup, this ) );

- 			}

- 

- 			if ( this.$clear.length ) {

- 				this.$clear.on( 'click' , $.proxy( this.clear, this ) );

- 			}

- 

- 			this.toggleClear();

- 		},

- 

- 		keyup: function( e ) {

- 			var suggestion, query, languageFilter;

- 

- 			switch( e.keyCode ) {

- 				case 9: // Tab -> Autocomplete

- 					suggestion = this.$suggestion.val();

- 

- 					if ( suggestion && suggestion !== this.$element.val() ) {

- 						this.$element.val( suggestion );

- 						e.preventDefault();

- 						e.stopPropagation();

- 					}

- 					break;

- 				case 13: // Enter

- 					if ( !this.options.onSelect ) {

- 						break;

- 					}

- 

- 					// Avoid bubbling this 'enter' to background page elements

- 					e.preventDefault();

- 					e.stopPropagation();

- 

- 					query = $.trim( this.$element.val() ).toLowerCase();

- 

- 					if ( this.selectedLanguage ) {

- 						// this.selectLanguage will be populated from a matching search

- 						this.options.onSelect( this.selectedLanguage );

- 					} else if ( this.options.languages[query] ) {

- 						// Search is yet to happen (in timeout delay),

- 						// but we have a matching language code.

- 						this.options.onSelect( query );

- 					}

- 

- 					break;

- 				default:

- 					languageFilter = this;

- 

- 					if ( e.which < 32 &&

- 						e.which !== 8 // Backspace

- 					) {

- 						// ignore any ASCII control characters

- 						break;

- 					}

- 

- 					this.selectedLanguage = null;

- 

- 					delay( function() {

- 						if ( !languageFilter.$element.val() ) {

- 							languageFilter.clear();

- 						} else {

- 							languageFilter.options.$target.empty();

- 							languageFilter.search();

- 						}

- 					}, 300 );

- 

- 					this.toggleClear();

- 			}

- 		},

- 

- 		/**

- 		 * Clears the current search removing

- 		 * clear buttons and suggestions.

- 		 */

- 		deactivate: function() {

- 			this.$element.val( '' );

- 

- 			if ( !$.fn.uls.Constructor.prototype.isMobile() ) {

- 				this.$element.focus();

- 			}

- 

- 			this.toggleClear();

- 			this.autofill();

- 		},

- 

- 		/**

- 		 * Clears the search and shows all languages

- 		 */

- 		clear: function() {

- 			this.deactivate();

- 			this.$element.trigger( 'searchclear.uls' );

- 		},

- 

- 		/**

- 		 * Toggles the visibility of clear icon depending

- 		 * on whether there is anything to clear.

- 		 */

- 		toggleClear: function() {

- 			if ( !this.$clear.length ) {

- 				return;

- 			}

- 

- 			if ( this.$element.val() ) {

- 				this.$clear.show();

- 			} else {

- 				this.$clear.hide();

- 			}

- 		},

- 

- 		search: function() {

- 			var languagesInScript,

- 				query = $.trim( this.$element.val() ),

- 				languages = $.uls.data.getLanguagesByScriptGroup( this.options.languages ),

- 				scriptGroup, langNum, langCode;

- 

- 			this.resultCount = 0;

- 

- 			for ( scriptGroup in languages ) {

- 				languagesInScript = languages[scriptGroup];

- 

- 				languagesInScript.sort( $.uls.data.sortByAutonym );

- 

- 				for ( langNum = 0; langNum < languagesInScript.length; langNum++ ) {

- 					langCode = languagesInScript[langNum];

- 

- 					if ( query === '' || this.filter( langCode, query ) ) {

- 						if ( this.resultCount === 0 ) {

- 							// Autofill the first result.

- 							this.autofill( langCode );

- 						}

- 

- 						if ( query.toLowerCase() === langCode ) {

- 							this.selectedLanguage = langCode;

- 						}

- 

- 						if ( this.render( langCode ) ) {

- 							this.resultCount++;

- 						}

- 					}

- 				}

- 			}

- 

- 			// Also do a search by search API

- 			if( !this.resultCount && this.options.searchAPI && query ) {

- 				this.searchAPI( query );

- 			} else {

- 				this.resultHandler( query );

- 			}

- 		},

- 

- 		searchAPI: function( query ) {

- 			var languageFilter = this;

- 

- 			$.get( languageFilter.options.searchAPI, { search: query }, function( result ) {

- 				$.each( result.languagesearch, function( code, name ) {

- 					if ( languageFilter.resultCount === 0 ) {

- 						// Autofill the first result.

- 						languageFilter.autofill( code, name );

- 					}

- 

- 					if ( languageFilter.render( code ) ) {

- 						languageFilter.resultCount++;

- 					}

- 				} );

- 

- 				languageFilter.resultHandler( query );

- 			} );

- 		},

- 

- 		/**

- 		 * Handler method to be called once search is over.

- 		 * Based on search result triggers resultsfound or noresults events

- 		 * @param query string

- 		 */

- 		resultHandler: function( query ) {

- 			if ( this.resultCount === 0 ) {

- 				this.$suggestion.val( '' );

- 				this.$element.trigger( 'noresults.uls', query );

- 			} else {

- 				this.$element.trigger( 'resultsfound.uls', [query, this.resultCount] );

- 			}

- 		},

- 

- 		autofill: function( langCode, languageName ) {

- 			if ( !this.$suggestion.length ) {

- 				return;

- 			}

- 

- 			if ( !this.$element.val() ) {

- 				this.$suggestion.val( '' );

- 				return;

- 			}

- 

- 			this.selectedLanguage = langCode;

- 			languageName = languageName || this.options.languages[langCode];

- 

- 			if ( !languageName ) {

- 				return;

- 			}

- 

- 			var autonym,

- 				userInput = this.$element.val(),

- 				suggestion = userInput + languageName.substring( userInput.length, languageName.length );

- 

- 			if ( suggestion.toLowerCase() !== languageName.toLowerCase() ) {

- 				// see if it was autonym match

- 				autonym = $.uls.data.getAutonym( langCode ) || '';

- 				suggestion = userInput + autonym.substring( userInput.length, autonym.length );

- 

- 				if ( suggestion !== autonym ) {

- 					// Give up. It may be an ISO/script code match.

- 					suggestion = '';

- 				}

- 			}

- 

- 			// Make sure that it is a visual prefix.

- 			if ( !isVisualPrefix( userInput, suggestion ) ) {

- 				suggestion = '';

- 			}

- 

- 			this.$suggestion.val( suggestion );

- 		},

- 

- 		render: function( langCode ) {

- 			var $target = this.options.$target;

- 

- 			if ( !$target ) {

- 				return false;

- 			}

- 

- 			return $target.append( langCode );

- 		},

- 

- 		escapeRegex: function( value ) {

- 			return value.replace( /[\-\[\]{}()*+?.,\\\^$\|#\s]/g, '\\$&' );

- 		},

- 

- 		/**

- 		 * A search match happens if any of the following passes:

- 		 * a) Language name in current user interface language

- 		 * 'starts with' search string.

- 		 * b) Language autonym 'starts with' search string.

- 		 * c) ISO 639 code match with search string.

- 		 * d) ISO 15924 code for the script match the search string.

- 		 */

- 		filter: function( langCode, searchTerm ) {

- 			// FIXME script is ISO 15924 code. We might need actual name of script.

- 			var matcher = new RegExp( '^' + this.escapeRegex( searchTerm ), 'i' ),

- 				languageName = this.options.languages[langCode];

- 

- 			return matcher.test( languageName ) ||

- 				matcher.test( $.uls.data.getAutonym( langCode ) ) ||

- 				matcher.test( langCode ) ||

- 				matcher.test( $.uls.data.getScript( langCode ) );

- 		},

- 

- 		eventSupported: function ( eventName ) {

- 			var isSupported = eventName in this.$element;

- 

- 			if ( !isSupported ) {

- 				this.$element.setAttribute( eventName, 'return;' );

- 				isSupported = typeof this.$element[eventName] === 'function';

- 			}

- 

- 			return isSupported;

- 		}

- 	};

- 

- 	$.fn.languagefilter = function( option ) {

- 		return this.each( function() {

- 			var $this = $( this ),

- 				data = $this.data( 'languagefilter' ),

- 				options = typeof option === 'object' && option;

- 

- 			if ( !data ) {

- 				$this.data( 'languagefilter', ( data = new LanguageFilter( this, options ) ) );

- 			}

- 

- 			if ( typeof option === 'string' ) {

- 				data[option]();

- 			}

- 		} );

- 	};

- 

- 	$.fn.languagefilter.defaults = {

- 		$target: null, // Where to append the results

- 		searchAPI: null,

- 		languages: null, // Languages as code:name format.

- 		onSelect: null // Language select handler - like enter in filter textbox.

- 	};

- 

- 	$.fn.languagefilter.Constructor = LanguageFilter;

- 

- 	/**

- 	 * Check if a prefix is visually prefix of a string

- 	 * @param prefix string

- 	 * @param string string

- 	 */

- 	function isVisualPrefix( prefix, string ) {

- 		// Pre-base vowel signs of Indic languages. A vowel sign is called pre-base if

- 		// consonant + vowel becomes [vowel][consonant] when rendered. Eg: ക + െ => കെ

- 		var prebases = 'െേൈൊോൌெேைொோௌେୈୋୌિਿिিেৈোৌෙේෛොෝෞ';

- 		return prebases.indexOf( string[prefix.length] ) <= 0;

- 	}

- } ( jQuery ) );

@@ -1,396 +0,0 @@ 

- /**

-  * Universal Language Selector

-  * Language category display component - Used for showing the search results,

-  * grouped by regions, scripts

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- ( function ( $ ) {

- 	'use strict';

- 

- 	var noResultsTemplate, LanguageCategoryDisplay;

- 

- 	/*jshint multistr:true */

- 	noResultsTemplate = '<div class="twelve columns uls-no-results-view hide">\

- 		<h2 data-i18n="uls-no-results-found" class="eleven columns offset-by-one uls-no-results-found-title">\

- 		No results found\

- 		</h2>\

- 		<div id="uls-no-found-more" class="uls-no-found-more">\

- 			<div class="ten columns offset-by-one">\

- 				<p>\

- 					<span data-i18n="uls-search-help">You can search by language name, \

- 					script name, ISO code of language or \

- 					you can browse by region:</span>\

- 					<a class="uls-region-link" data-i18n="uls-region-AM" data-region="AM">America</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-EU" data-region="EU">Europe</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-ME" data-region="ME">Middle East</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-AF" data-region="AF">Africa</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-AS" data-region="AS">Asia</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-PA" data-region="PA">Pacific</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-WW" data-region="WW">Worldwide</a>.\

- 				</p>\

- 			</div>\

- 		</div>\

- 	</div>';

- 	/*jshint multistr:false */

- 

- 	LanguageCategoryDisplay = function ( element, options ) {

- 		this.$element = $( element );

- 		this.options = $.extend( {}, $.fn.lcd.defaults, options );

- 		this.$element.addClass( 'lcd' );

- 		this.regionLanguages = {};

- 		this.renderTimeout = null;

- 		this.cachedQuicklist = null;

- 

- 		this.$element.append( $( noResultsTemplate ) );

- 		this.$noResults = this.$element.children( '.uls-no-results-view' );

- 

- 		this.render();

- 		this.listen();

- 	};

- 

- 	LanguageCategoryDisplay.prototype = {

- 		constructor: LanguageCategoryDisplay,

- 

- 		/**

- 		 * Adds language to the language list.

- 		 * @param {string} langCode

- 		 * @param {string} [regionCode]

- 		 * @return {bool} Whether the language was added.

- 		 */

- 		append: function ( langCode, regionCode ) {

- 			var lcd = this, i, regions;

- 

- 			if ( !this.options.languages[langCode] ) {

- 				// Language is unknown or not in the list of languages for this context.

- 				return false;

- 			}

- 

- 			if ( regionCode ) {

- 				regions = [regionCode];

- 			} else {

- 				regions = $.uls.data.getRegions( langCode );

- 			}

- 

- 			// Worldwides only displayed once

- 			if ( $.inArray( 'WW', regions ) > -1 ) {

- 				regions = ['WW'];

- 			}

- 

- 			for ( i = 0; i < regions.length; i++ ) {

- 				this.regionLanguages[regions[i]].push( langCode );

- 			}

- 

- 			// Work around the bad interface, delay rendering until we have got

- 			// all the languages to speed up performance.

- 			window.clearTimeout( this.renderTimeout );

- 			this.renderTimeout = window.setTimeout( function () {

- 				lcd.renderRegions();

- 			}, 50 );

- 

- 			return true;

- 		},

- 

- 		render: function () {

- 			var $section,

- 				lcd = this,

- 				regions = [],

- 				regionNames = {

- 					// These are fallback text when i18n library not present

- 					WW: 'Worldwide',

- 					SP: 'Special',

- 					AM: 'America',

- 					EU: 'Europe',

- 					ME: 'Middle East',

- 					AS: 'Asia',

- 					AF: 'Africa',

- 					PA: 'Pacific'

- 				};

- 

- 			regions.push( this.buildQuicklist() );

- 

- 			$.each( $.uls.data.regiongroups, function ( regionCode ) {

- 				lcd.regionLanguages[regionCode] = [];

- 				// Don't show the region unless it was enabled

- 				if ( $.inArray( regionCode, lcd.options.showRegions ) === -1 ) {

- 					return;

- 				}

- 

- 				$section = $( '<div>' )

- 					.addClass( 'eleven columns offset-by-one uls-lcd-region-section hide' )

- 					.attr( 'id', regionCode )

- 					.append(

- 						$( '<h3>' )

- 						.attr( 'data-i18n', 'uls-region-' + regionCode )

- 						.addClass( 'eleven columns uls-lcd-region-title' )

- 						.text( regionNames[regionCode] )

- 					);

- 

- 				regions.push( $section );

- 			} );

- 

- 			lcd.$element.append( regions );

- 

- 			this.i18n();

- 		},

- 

- 		/**

- 		 * Renders a region and displays it if it has content.

- 		 */

- 		renderRegions: function () {

- 			var lcd = this, languages,

- 				items = lcd.options.itemsPerColumn,

- 				columns = 4;

- 

- 			this.$noResults.addClass( 'hide' );

- 			this.$element.find( '.uls-lcd-region-section' ).each( function () {

- 				var $region = $( this ),

- 					regionCode = $region.attr( 'id' );

- 

- 				if ( $region.is( '#uls-lcd-quicklist' ) ) {

- 					return;

- 				}

- 

- 				$region.children( '.uls-language-block' ).remove();

- 

- 				languages = lcd.regionLanguages[regionCode];

- 				if ( !languages || languages.length === 0 ) {

- 					$region.addClass( 'hide' );

- 					return;

- 				}

- 

- 				lcd.renderRegion( $region, languages, items, columns );

- 				$region.removeClass( 'hide' );

- 

- 				lcd.regionLanguages[regionCode] = [];

- 			} );

- 

- 		},

- 

- 		/**

- 		 * Adds given languages sorted into rows and columns into given element.

- 		 * @param {jQuery} $region Element to add language list.

- 		 * @param {array} languages List of language codes.

- 		 * @param {number} itemsPerColumn How many languages fit in a column.

- 		 * @param {number} columnsPerRow How many columns fit in a row.

- 		 */

- 		renderRegion: function( $region, languages, itemsPerColumn, columnsPerRow ) {

- 			var i, lastItem, currentScript, nextScript, force,

- 				len = languages.length,

- 				items = [],

- 				columns = [],

- 				rows = [];

- 

- 			for ( i = 0; i < len; i++ ) {

- 				force = false;

- 				nextScript = $.uls.data.getScriptGroupOfLanguage( languages[i+1] );

- 

- 				lastItem = len - i === 1;

- 				// Force column break if script changes and column has more than one row already

- 				if ( i === 0 ) {

- 					currentScript = $.uls.data.getScriptGroupOfLanguage( languages[i] );

- 				} else if ( currentScript !== nextScript && items.length > 1 ) {

- 					force = true;

- 				}

- 				currentScript = nextScript;

- 

- 				items.push( this.renderItem( languages[i] ) );

- 

- 				if ( items.length >= itemsPerColumn || lastItem || force ) {

- 					columns.push( $( '<ul>' ).addClass( 'three columns' ).append( items ) );

- 					items = [];

- 					if ( columns.length >= columnsPerRow || lastItem ) {

- 						rows.push( $( '<div>' ).addClass( 'row uls-language-block' ).append( columns ) );

- 						columns = [];

- 					}

- 				}

- 			}

- 

- 			$region.append( rows );

- 		},

- 

- 		/**

- 		 * Creates dom node representing one item in language list.

- 		 * @param {string} code Language code

- 		 * @return {Element}

- 		 */

- 		renderItem: function( code ) {

- 			var a, name, autonym, li;

- 

- 			name = this.options.languages[code];

- 			autonym = $.uls.data.getAutonym( code ) || name || code;

- 

- 			// Not using jQuery as this is performance hotspot

- 			li = document.createElement( 'li' );

- 			li.title = name;

- 			li.lang = code;

- 			li.dir = $.uls.data.getDir( code );

- 			li.setAttribute( 'data-code', code );

- 

- 			a = document.createElement( 'a' );

- 			a.appendChild( document.createTextNode( autonym ) );

- 			a.className = 'autonym';

- 

- 			li.appendChild( a );

- 			if ( this.options.languageDecorator ) {

- 				this.options.languageDecorator( $( a ), code );

- 			}

- 			return li;

- 		},

- 

- 		i18n: function ( ) {

- 			this.$element.find( '[data-i18n]' ).i18n();

- 		},

- 

- 		/**

- 		 * Adds quicklist as a region.

- 		 */

- 		quicklist: function () {

- 			this.$element.find( '#uls-lcd-quicklist' ).removeClass( 'hide' );

- 		},

- 

- 		buildQuicklist: function () {

- 			var quickList, $quickListSection, $quickListSectionTitle;

- 

- 			if ( this.cachedQuicklist !== null ) {

- 				return this.cachedQuicklist;

- 			}

- 

- 			if ( $.isFunction( this.options.quickList ) ) {

- 				this.options.quickList = this.options.quickList();

- 			}

- 

- 			if ( !this.options.quickList ) {

- 				this.cachedQuicklist = $( [] );

- 				return this.cachedQuicklist;

- 			}

- 

- 			// Pick only the first elements, because we don't have room for more

- 			quickList = this.options.quickList;

- 			quickList = quickList.slice( 0, 16 );

- 			quickList.sort( $.uls.data.sortByAutonym );

- 

- 			$quickListSection = $( '<div>' )

- 				.addClass( 'eleven columns offset-by-one uls-lcd-region-section' )

- 				.attr( 'id', 'uls-lcd-quicklist' );

- 

- 			$quickListSectionTitle = $( '<h3>' )

- 				.attr( 'data-i18n', 'uls-common-languages' )

- 				.addClass( 'eleven columns uls-lcd-region-title' )

- 				.text( 'Common languages' ); // This is placeholder text if jquery.i18n not present

- 			$quickListSection.append( $quickListSectionTitle );

- 

- 			this.renderRegion( $quickListSection, quickList, 4, 4 );

- 

- 			$quickListSectionTitle.i18n();

- 

- 			this.cachedQuicklist = $quickListSection;

- 			return this.cachedQuicklist;

- 		},

- 

- 		show: function () {

- 			if ( !this.regionDivs ) {

- 				this.render();

- 			}

- 		},

- 

- 		empty: function () {

- 			this.$element.find( '#uls-lcd-quicklist' ).addClass( 'hide' );

- 		},

- 

- 		focus: function () {

- 			this.$element.focus();

- 		},

- 

- 		noResults: function () {

- 			this.$noResults.removeClass( 'hide' );

- 			if ( this.$noResults.find( '.uls-lcd-region-title' ).length ) {

- 				return;

- 			}

- 

- 			var $suggestions = this.buildQuicklist().clone();

- 			$suggestions.find( 'h3' )

- 				.data( 'i18n', 'uls-no-results-suggestion-title' )

- 				.text( 'You may be interested in:' )

- 				.i18n();

- 			this.$noResults.find( 'h2' ).after( $suggestions );

- 		},

- 

- 		listen: function () {

- 			var lcd = this;

- 

- 			if ( this.options.clickhandler ) {

- 				this.$element.on( 'click', '.row li', function () {

- 					lcd.options.clickhandler.call( this, $( this ).data( 'code' ) );

- 				} );

- 			}

- 

- 			// The region section need to be in sync with the map filter.

- 			lcd.$element.scroll( function () {

- 				var inview, inviewRegion,

- 					$ulsLanguageList = $( this ),

- 					scrollTop = $ulsLanguageList.position().top,

- 					scrollBottom = $ulsLanguageList.height();

- 

- 				// The region section need to be in sync with the map filter.

- 				inviewRegion = 'WW';

- 				lcd.$element.find( '.uls-lcd-region-section' ).each( function () {

- 					var $lcdRegionSection = $( this ),

- 						top = $lcdRegionSection.position().top,

- 						height = $lcdRegionSection.height(),

- 						padding = 10;

- 

- 					if ( top - padding <= scrollTop && height > scrollBottom ) {

- 						inviewRegion = $lcdRegionSection.attr( 'id' );

- 					}

- 				} );

- 

- 				// highlight the region visible while scrolling in the map.

- 				inview = $.uls.data.regiongroups[inviewRegion];

- 				if ( !$( '#uls-region-' + inview ).hasClass( 'active' ) ) {

- 					$( '.regionselector' ).removeClass( 'active' );

- 					$( '#uls-region-' + inview ).addClass( 'active' );

- 				}

- 			} );

- 		}

- 	};

- 

- 	$.fn.lcd = function ( option ) {

- 		return this.each( function () {

- 			var $this = $( this ),

- 				data = $this.data( 'lcd' ),

- 				options = typeof option === 'object' && option;

- 

- 			if ( !data ) {

- 				$this.data( 'lcd', ( data = new LanguageCategoryDisplay( this, options ) ) );

- 			}

- 

- 			if ( typeof option === 'string') {

- 				data[option]();

- 			}

- 		} );

- 	};

- 

- 	$.fn.lcd.defaults = {

- 		languages: null,

- 		showRegions: ['WW', 'AM', 'EU', 'ME', 'AF', 'AS', 'PA'],

- 		itemsPerColumn: 8,

- 		languageDecorator: null

- 	};

- 

- 	$.fn.lcd.Constructor = LanguageCategoryDisplay;

- } ( jQuery ) );

@@ -1,1 +0,0 @@ 

- (function(e){"use strict";var t,n;t='<div class="grid uls-menu uls-wide"> 			<div class="row"> 				<span id="uls-close" class="uls-icon-close"></span> 			</div> 			<div class="row"> 				<div class="uls-title-region seven columns">					<h1 data-i18n="uls-select-language" class="uls-title">Select Language</h1>				</div>				<div class="five columns uls-map-block" id="uls-map-block">					<div class="row">						<div data-regiongroup="1" id="uls-region-1" class="three columns uls-region uls-region-1">							<a data-i18n="uls-region-WW">Worldwide</a>						</div>						<div class="nine columns">							<div class="row uls-worldmap">								<div data-regiongroup="2" id="uls-region-2" class="four columns uls-region">									<a data-i18n="uls-region-AM">America</a>								</div>								<div data-regiongroup="3" id="uls-region-3" class="four columns uls-region">									<a><span data-i18n="uls-region-EU">Europe</span><br>									<span data-i18n="uls-region-ME">Middle East</span><br>									<span data-i18n="uls-region-AF">Africa</span></a>								</div>								<div data-regiongroup="4" id="uls-region-4" class="four columns uls-region">									<a><span data-i18n="uls-region-AS">Asia</span><br>									<span data-i18n="uls-region-PA">Pacific</span></a>								</div>							</div>						</div>					</div>				</div>			</div>			<div id="search" class="row uls-search"> 				<div class="one column">					<span class="uls-search-label"></span>				</div>				<div class="ten columns">					<div id="uls-search-input-block" class="uls-search-input-block">						<input type="text" class="uls-filterinput uls-filtersuggestion" id="uls-filtersuggestion" disabled="true"							autocomplete="off" /> <input type="text" class="uls-filterinput uls-languagefilter" id="uls-languagefilter"							data-clear="uls-languagefilter-clear" data-suggestion="uls-filtersuggestion"							placeholder="Language search" autocomplete="off" />					</div>				</div>				<div class="one column">					<span id="uls-languagefilter-clear" class="uls-languagefilter-clear"></span>				</div>			</div>			<div class="row uls-language-list"></div>			<div class="row" id="uls-settings-block"></div>		</div>';n=function(n,r){this.$element=e(n);this.options=e.extend({},e.fn.uls.defaults,r);this.$menu=e(t);this.languages=this.options.languages;for(var i in this.languages){if(e.uls.data.languages[i]===undefined){delete this.languages[i]}}this.left=this.options.left;this.top=this.options.top;this.shown=false;this.initialized=false;this.$languageFilter=this.$menu.find("#uls-languagefilter");this.$regionFilters=this.$menu.find(".uls-region");this.$resultsView=this.$menu.find("div.uls-language-list");this.render();this.listen();this.ready()};n.prototype={constructor:n,ready:function(){if(this.options.onReady){this.options.onReady.call(this)}},visible:function(){if(this.options.onVisible){this.options.onVisible.call(this)}},position:function(){var t=e.extend({},this.$element.offset(),{height:this.$element[0].offsetHeight});return{top:this.top!==undefined?this.top:t.top+t.height,left:this.left!==undefined?this.left:"25%"}},show:function(){this.$menu.css(this.position());if(this.options.compact){this.$menu.addClass("uls-compact")}if(!this.initialized){e("body").prepend(this.$menu);this.i18n();this.defaultSearch();this.initialized=true}e(".uls-menu").hide();this.$menu.show();this.$menu.scrollIntoView();this.shown=true;if(!this.isMobile()){this.$languageFilter.focus()}this.visible()},i18n:function(){if(e.i18n){this.$menu.find("[data-i18n]").i18n();this.$languageFilter.prop("placeholder",e.i18n("uls-search-placeholder"))}},defaultSearch:function(){this.$resultsView.lcd("empty");this.$regionFilters.regionselector("show")},hide:function(){this.$menu.hide();this.shown=false},render:function(){},noresults:function(){e(".regionselector").removeClass("active");this.$resultsView.lcd("noResults")},success:function(){e(".regionselector").removeClass("active");this.$resultsView.show()},listen:function(){var t,n=this;this.$element.on("click",e.proxy(this.click,this));this.$languageFilter.on("searchclear.uls",e.proxy(this.defaultSearch,this));this.$languageFilter.on("noresults.uls",e.proxy(this.noresults,this));this.$languageFilter.on("resultsfound.uls",e.proxy(this.success,this));this.$menu.find("#uls-close").on("click",e.proxy(this.cancel,this));this.$menu.on("click",function(e){e.stopPropagation()});this.$menu.on("keypress",e.proxy(this.keypress,this)).on("keyup",e.proxy(this.keyup,this));if(this.eventSupported("keydown")){this.$menu.on("keydown",e.proxy(this.keypress,this))}t=this.$resultsView.lcd({languages:this.languages,quickList:this.options.quickList,clickhandler:e.proxy(this.select,this),source:this.$languageFilter,showRegions:this.options.showRegions,languageDecorator:this.options.languageDecorator}).data("lcd");this.$languageFilter.languagefilter({$target:t,languages:this.languages,searchAPI:this.options.searchAPI,onSelect:e.proxy(this.select,this)});this.$menu.find(".uls-region, .uls-region-link").regionselector({$target:t,languages:this.languages,success:function(e){n.$languageFilter.languagefilter("deactivate");if(e.regionGroup===1){t.quicklist()}n.success()},noresults:function(){n.$languageFilter.languagefilter("clear")}});e("html").click(e.proxy(this.cancel,this))},select:function(e){this.hide();this.$languageFilter.trigger("searchclear");if(this.options.onSelect){this.options.onSelect.call(this,e)}},cancel:function(){this.hide();if(this.options.onCancel){this.options.onCancel.call(this)}},keyup:function(e){if(!this.shown){return}if(e.keyCode===27){this.cancel();e.preventDefault();e.stopPropagation()}},keypress:function(e){if(!this.shown){return}if(e.keyCode===27){this.cancel();e.preventDefault();e.stopPropagation()}},click:function(e){e.stopPropagation();e.preventDefault();if(this.shown){this.hide()}else{this.show()}},eventSupported:function(e){var t=e in this.$menu;if(!t){this.$element.setAttribute(e,"return;");t=typeof this.$element[e]==="function"}return t},isMobile:function(){return navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry)/)}};e.fn.uls=function(t){return this.each(function(){var r=e(this),i=r.data("uls"),s=typeof t==="object"&&t;if(!i){r.data("uls",i=new n(this,s))}if(typeof t==="string"){i[t]()}})};e.fn.uls.defaults={onSelect:null,searchAPI:null,languages:e.uls.data.getAutonyms(),quickList:null,compact:false,showRegions:["WW","AM","EU","ME","AF","AS","PA"],languageDecorator:null};if(!e.fn.i18n){e.fn.i18n=function(){}}e.fn.scrollIntoView=function(){return this.each(function(){var t,n=e(window),r=n.height(),i=n.scrollTop(),s=i+r,o=e(this),u=o.height(),a=o.offset().top,f=a+u;if(a<i||f>s){if(i>a){t=a}else{t=f-r}e("html, body").stop().animate({scrollTop:t},500)}})};e.fn.uls.Constructor=n})(jQuery);(function(e){"use strict";e.uls=e.uls||{};e.uls.data={languages:{aa:["Latn",["AF"],"Qafár af"],ab:["Cyrl",["EU"],"Аҧсшәа"],ace:["Latn",["AS","PA"],"Acèh"],ady:["Cyrl",["EU","ME"],"Адыгэбзэ"],"ady-cyrl":["ady"],"ady-latn":["Latn",["EU","ME"],"Adygabze"],aeb:["Arab",["AF"],"زَوُن"],af:["Latn",["AF"],"Afrikaans"],ahr:["Deva",["AS"],"अहिराणी"],ak:["Latn",["AF"],"Akan"],akz:["Latn",["AM"],"Albaamo innaaɬiilka"],aln:["Latn",["EU"],"Gegë"],am:["Ethi",["AF"],"አማርኛ"],an:["Latn",["EU"],"aragonés"],ang:["Latn",["EU"],"Ænglisc"],anp:["Deva",["AS"],"अङ्गिका"],ar:["Arab",["ME"],"العربية"],arc:["Syrc",["ME"],"ܐܪܡܝܐ"],arn:["Latn",["AM"],"mapudungun"],aro:["Latn",["AM"],"Araona"],arq:["Arab",["AF"],"جازايرية"],ary:["Latn",["ME"],"Maġribi"],arz:["Arab",["ME"],"مصرى"],as:["Beng",["AS"],"অসমীয়া"],ase:["Sgnw",["AM"],"American sign language"],ast:["Latn",["EU"],"asturianu"],av:["Cyrl",["EU"],"авар"],avk:["Latn",["WW"],"Kotava"],ay:["Latn",["AM"],"Aymar aru"],az:["az-latn"],"az-latn":["Latn",["EU","ME"],"azərbaycanca"],"az-arab":["Arab",["EU","ME"],"آذربايجانجا"],"az-cyrl":["Latn",["EU","ME"],"азәрбајҹанҹа"],azb:["az-arab"],ba:["Cyrl",["EU"],"башҡортса"],bar:["Latn",["EU"],"Boarisch"],"bat-smg":["sgs"],"bbc-latn":["Latn",["AS"],"Batak Toba"],"bbc-batk":["Batk",["AS"],"Batak Toba"],bbc:["Latn",["AS"],"Batak Toba"],bcc:["Arab",["AS","ME"],"بلوچی مکرانی"],bcl:["Latn",["AS"],"Bikol Central"],"be-tarask":["Cyrl",["EU"],"беларуская (тарашкевіца)"],"be-x-old":["be-tarask"],be:["Cyrl",["EU"],"беларуская"],bew:["Latn",["AS"],"Bahasa Betawi"],bfq:["Taml",["AS"],"படகா"],bg:["Cyrl",["EU"],"български"],bh:["Deva",["AS"],"भोजपुरी"],bho:["Deva",["AS"],"भोजपुरी"],bi:["Latn",["PA"],"Bislama"],bjn:["Latn",["AS"],"Bahasa Banjar"],bm:["Latn",["AF"],"bamanankan"],bn:["Beng",["AS"],"বাংলা"],bo:["Tibt",["AS"],"བོད་ཡིག"],bpy:["Beng",["AS"],"বিষ্ণুপ্রিয়া মণিপুরী"],bqi:["Arab",["ME"],"بختياري"],br:["Latn",["EU"],"brezhoneg"],brh:["Latn",["ME","AS"],"Bráhuí"],brx:["Deva",["AS"],"बड़ो"],bs:["Latn",["EU"],"bosanski"],bto:["Latn",["AS"],"Iriga Bicolano"],bug:["Bugi",["AS"],"ᨅᨔ ᨕᨘᨁᨗ"],bxr:["Cyrl",["AS"],"буряад"],ca:["Latn",["EU"],"català"],"cbk-zam":["Latn",["AS"],"Chavacano de Zamboanga"],cdo:["Latn",["AS"],"Mìng-dĕ̤ng-ngṳ̄"],ce:["Cyrl",["EU"],"нохчийн"],ceb:["Latn",["AS"],"Cebuano"],ch:["Latn",["PA"],"Chamoru"],cho:["Latn",["AM"],"Choctaw"],chr:["Cher",["AM"],"ᏣᎳᎩ"],chy:["Latn",["AM"],"Tsetsêhestâhese"],ckb:["Arab",["ME"],"کوردی"],co:["Latn",["EU"],"corsu"],cps:["Latn",["AS"],"Capiceño"],cr:["Cans",["AM"],"ᓀᐦᐃᔭᐍᐏᐣ"],"cr-cans":["cr"],"cr-latn":["Latn",["AM"],"Nēhiyawēwin"],crh:["Latn",["EU"],"qırımtatarca"],"crh-cyrl":["Cyrl",["EU"],"къырымтатарджа"],"crh-latn":["crh"],cs:["Latn",["EU"],"česky"],csb:["Latn",["EU"],"kaszëbsczi"],cu:["Cyrl",["EU"],"словѣньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ"],cv:["Cyrl",["EU"],"Чӑвашла"],cy:["Latn",["EU"],"Cymraeg"],da:["Latn",["EU"],"dansk"],"de-at":["Latn",["EU"],"Österreichisches Deutsch"],"de-ch":["Latn",["EU"],"Schweizer Hochdeutsch"],"de-formal":["Latn",["EU"],"Deutsch (Sie-Form)"],de:["Latn",["EU"],"Deutsch"],diq:["Latn",["EU","AS"],"Zazaki"],dsb:["Latn",["EU"],"dolnoserbski"],dtp:["Latn",["AS"],"Dusun Bundu-liwan"],dv:["Thaa",["AS"],"ދިވެހިބަސް"],dz:["Tibt",["AS"],"ཇོང་ཁ"],ee:["Latn",["AF"],"eʋegbe"],egl:["Latn",["EU"],"Emiliàn"],el:["Grek",["EU"],"Ελληνικά"],eml:["Latn",["EU"],"emiliàn e rumagnòl"],"en-ca":["Latn",["AM"],"Canadian English"],"en-gb":["Latn",["EU","AS","PA"],"British English"],en:["Latn",["EU","AM","AF","ME","AS","PA","WW"],"English"],eo:["Latn",["WW"],"Esperanto"],"es-419":["Latn",["AM"],"español de America Latina"],"es-formal":["Latn",["EU","AM","AF","WW"],"español (formal)"],es:["Latn",["EU","AM","AF","WW"],"español"],esu:["Latn",["AM"],"Yup'ik"],et:["Latn",["EU"],"eesti"],eu:["Latn",["EU"],"euskara"],ext:["Latn",["EU"],"estremeñu"],fa:["Arab",["ME"],"فارسی"],ff:["Latn",["AF"],"Fulfulde"],fi:["Latn",["EU"],"suomi"],fil:["tl"],fit:["Latn",["EU"],"meänkieli"],"fiu-vro":["vro"],fj:["Latn",["PA"],"Na Vosa Vakaviti"],fo:["Latn",["EU"],"føroyskt"],fr:["Latn",["EU","AM","WW"],"français"],frc:["Latn",["AM"],"français cadien"],frp:["Latn",["EU"],"arpetan"],frr:["Latn",["EU"],"Nordfriisk"],fur:["Latn",["EU"],"furlan"],fy:["Latn",["EU"],"Frysk"],ga:["Latn",["EU"],"Gaeilge"],gag:["Latn",["EU"],"Gagauz"],gah:["Latn",["AS"],"Alekano"],"gan-hans":["Hans",["AS"],"赣语(简体)"],"gan-hant":["gan"],gan:["Hant",["AS"],"贛語"],gbz:["Latn",["AS"],"Dari"],gcf:["Latn",["AM"],"Guadeloupean Creole French"],gd:["Latn",["EU"],"Gàidhlig"],gl:["Latn",["EU"],"galego"],glk:["Arab",["ME"],"گیلکی"],gn:["Latn",["AM"],"Avañe'ẽ"],gom:["Deva",["AS"],"कोंकणी"],"gom-deva":["gom"],"gom-latn":["Latn",["AS"],"Konknni"],got:["Goth",["EU"],"𐌲𐌿𐍄𐌹𐍃𐌺"],grc:["Grek",["EU"],"Ἀρχαία ἑλληνικὴ"],gsw:["Latn",["EU"],"Alemannisch"],gu:["Gujr",["AS"],"ગુજરાતી"],guc:["Latn",["AM"],"Wayúu"],gur:["Latn",["AF"],"Gurenɛ"],gv:["Latn",["EU"],"Gaelg"],"ha-arab":["Arab",["AF"],"هَوُسَ"],"ha-latn":["Latn",["AF"],"Hausa"],ha:["ha-latn"],hak:["Latn",["AS"],"Hak-kâ-fa"],haw:["Latn",["AM","PA"],"Hawai`i"],he:["Hebr",["ME"],"עברית"],hi:["Deva",["AS"],"हिन्दी"],hif:["Latn",["PA","AS"],"Fiji Hindi"],"hif-deva":["Deva",["AS"],"फ़ीजी हिन्दी"],"hif-latn":["hif"],hil:["Latn",["AS"],"Ilonggo"],hne:["Deva",["AS"],"छत्तीसगढ़ी"],ho:["Latn",["PA"],"Hiri Motu"],hr:["Latn",["EU"],"hrvatski"],hsb:["Latn",["EU"],"hornjoserbsce"],hsn:["Hans",["AS"],"湘语"],ht:["Latn",["AM"],"Kreyòl ayisyen"],"hu-formal":["Latn",["EU"],"Magyar (magázó)"],hu:["Latn",["EU"],"magyar"],hy:["Armn",["EU","ME"],"Հայերեն"],hz:["Latn",["AF"],"Otsiherero"],ia:["Latn",["WW"],"interlingua"],id:["Latn",["AS"],"Bahasa Indonesia"],ie:["Latn",["WW"],"Interlingue"],ig:["Latn",["AF"],"Igbo"],ii:["Yiii",["AS"],"ꆇꉙ"],ik:["Latn",["AM"],"Iñupiak"],"ike-cans":["Cans",["AM"],"ᐃᓄᒃᑎᑐᑦ"],"ike-latn":["Latn",["AM"],"inuktitut"],ilo:["Latn",["AS"],"Ilokano"],inh:["Cyrl",["EU"],"ГӀалгӀай"],io:["Latn",["WW"],"Ido"],is:["Latn",["EU"],"íslenska"],it:["Latn",["EU"],"italiano"],iu:["Cans",["AM"],"ᐃᓄᒃᑎᑐᑦ"],ja:["Jpan",["AS"],"日本語"],jam:["Latn",["AM"],"Patois"],jbo:["Latn",["WW"],"lojban"],jut:["Latn",["EU"],"jysk"],jv:["Latn",["AS","PA"],"Basa Jawa"],"jv-java":["Java",["AS","PA"],"ꦧꦱꦗꦮ"],ka:["Geor",["EU"],"ქართული"],kaa:["Latn",["AS"],"Qaraqalpaqsha"],kab:["Latn",["AF","EU"],"Taqbaylit"],"kbd-cyrl":["kbd"],"kbd-latn":["Latn",["EU"],"Qabardjajəbza"],kbd:["Cyrl",["EU","ME"],"Адыгэбзэ"],kea:["Latn",["AF"],"Kabuverdianu"],kg:["Latn",["AF"],"Kongo"],kgp:["Latn",["AM"],"Kaingáng"],khw:["Arab",["ME","AS"],"کھوار"],ki:["Latn",["AF"],"Gĩkũyũ"],kiu:["Latn",["EU","ME"],"Kırmancki"],kj:["Latn",["AF"],"Kwanyama"],kjh:["Cyrl",["AS"],"хакас"],kk:["kk-cyrl"],"kk-arab":["Arab",["EU","AS"],"قازاقشا (تٶتە)"],"kk-cn":["kk-arab"],"kk-cyrl":["Cyrl",["EU","AS"],"қазақша"],"kk-kz":["kk-cyrl"],"kk-latn":["Latn",["EU","AS","ME"],"qazaqşa"],"kk-tr":["kk-latn"],kl:["Latn",["AM","EU"],"kalaallisut"],km:["Khmr",["AS"],"ភាសាខ្មែរ"],kn:["Knda",["AS"],"ಕನ್ನಡ"],"ko-kp":["Kore",["AS"],"한국어 (조선)"],ko:["Kore",["AS"],"한국어"],koi:["Cyrl",["EU"],"Перем Коми"],kr:["Latn",["AF"],"Kanuri"],krc:["Cyrl",["EU"],"къарачай-малкъар"],kri:["Latn",["AF"],"Krio"],krj:["Latn",["ME","EU"],"Kinaray-a"],krl:["Latn",["EU"],"Karjala"],"ks-arab":["Arab",["AS"],"کٲشُر"],"ks-deva":["Deva",["AS"],"कॉशुर"],ks:["Arab",["AS"],"کٲشُر"],ksf:["Latn",["AF"],"Bafia"],ksh:["Latn",["EU"],"Ripoarisch"],ku:["ku-latn"],"ku-arab":["Arab",["EU","ME"],"كوردي"],"ku-latn":["Latn",["EU","ME"],"Kurdî"],kv:["Cyrl",["EU"],"коми"],kw:["Latn",["EU"],"kernowek"],ky:["Cyrl",["AS"],"Кыргызча"],la:["Latn",["EU"],"Latina"],lad:["lad-latn"],"lad-latn":["Latn",["ME","EU","AM"],"Ladino"],"lad-hebr":["Hebr",["ME","EU","AM"],"לאדינו"],lb:["Latn",["EU"],"Lëtzebuergesch"],lbe:["Cyrl",["EU"],"лакку"],lez:["Cyrl",["EU"],"лезги"],lfn:["Latn",["WW"],"Lingua Franca Nova"],lg:["Latn",["AF"],"Luganda"],li:["Latn",["EU"],"Limburgs"],lij:["Latn",["EU"],"Ligure"],liv:["Latn",["EU"],"Līvõ kēļ"],lld:["Latn",["EU"],"Ladin"],lmo:["Latn",["EU"],"lumbaart"],ln:["Latn",["AF"],"lingála"],lo:["Laoo",["AS"],"ລາວ"],loz:["Latn",["AF"],"Silozi"],lt:["Latn",["EU"],"lietuvių"],lrc:["Arab",["AS"],"لوری"],ltg:["Latn",["EU"],"latgaļu"],lud:["Latn",["EU"],"lüüdi"],lus:["Latn",["AS"],"Mizo ţawng"],lut:["Latn",["AM"],"dxʷləšucid"],lv:["Latn",["EU"],"latviešu"],lzh:["Hant",["AS"],"文言"],lzz:["Latn",["EU","ME"],"Lazuri"],mai:["Deva",["AS"],"मैथिली"],"map-bms":["Latn",["AS"],"Basa Banyumasan"],mdf:["Cyrl",["EU"],"мокшень"],mfe:["Latn",["AM"],"Morisyen"],mg:["Latn",["AF"],"Malagasy"],mh:["Latn",["PA"],"Ebon"],mhr:["Cyrl",["EU"],"олык марий"],mi:["Latn",["PA"],"Māori"],mic:["Latn",["AM"],"Mi'kmaq"],min:["Latn",["AS"],"Baso Minangkabau"],mk:["Cyrl",["EU"],"македонски"],ml:["Mlym",["AS","ME"],"മലയാളം"],mn:["Cyrl",["AS"],"монгол"],mnc:["Mong",["AS"],"ᠮᠠᠨᠵᡠ ᡤᡳᠰᡠᠨ"],mni:["Beng",["AS"],"মেইতেই লোন্"],mnw:["Mymr",["AS"],"ဘာသာ မန်"],mo:["Cyrl",["EU"],"молдовеняскэ"],mr:["Deva",["AS","ME"],"मराठी"],mrj:["Cyrl",["EU"],"кырык мары"],ms:["Latn",["AS"],"Bahasa Melayu"],mt:["Latn",["EU"],"Malti"],mui:["Latn",["AS"],"Musi"],mus:["Latn",["AM"],"Mvskoke"],mwl:["Latn",["EU"],"Mirandés"],mwv:["Latn",["AS"],"Behase Mentawei"],my:["Mymr",["AS"],"မြန်မာဘာသာ"],myv:["Cyrl",["EU"],"эрзянь"],mzn:["Arab",["ME","AS"],"مازِرونی"],na:["Latn",["PA"],"Dorerin Naoero"],nah:["Latn",["AM"],"Nāhuatl"],nan:["Latn",["AS"],"Bân-lâm-gú"],nap:["Latn",["EU"],"Nnapulitano"],nb:["Latn",["EU"],"norsk (bokmål)"],"nds-nl":["Latn",["EU"],"Nedersaksisch"],nds:["Latn",["EU"],"Plattdüütsch"],ne:["Deva",["AS"],"नेपाली"],"new":["Deva",["AS"],"नेपाल भाषा"],ng:["Latn",["AF"],"Oshiwambo"],niu:["Latn",["PA"],"ko e vagahau Niuē"],njo:["Latn",["AS"],"Ao"],"nl-informal":["Latn",["EU","AM"],"Nederlands (informeel)"],nl:["Latn",["EU","AM"],"Nederlands"],nn:["Latn",["EU"],"norsk (nynorsk)"],no:["Latn",["EU"],"norsk"],nov:["Latn",["WW"],"Novial"],nqo:["Nkoo",["AF"],"ߒߞߏ"],nrm:["Latn",["EU"],"Nouormand"],nso:["Latn",["AF"],"Sesotho sa Leboa"],nv:["Latn",["AM"],"Diné bizaad"],ny:["Latn",["AF"],"Chi-Chewa"],oc:["Latn",["EU"],"occitan"],om:["Latn",["AF"],"Oromoo"],or:["Orya",["AS"],"ଓଡ଼ିଆ"],os:["Cyrl",["EU"],"Ирон"],ota:["Arab",["AS","EU"],"لسان عثمانى"],pa:["pa-guru"],"pa-guru":["Guru",["AS"],"ਪੰਜਾਬੀ"],pag:["Latn",["AS"],"Pangasinan"],pam:["Latn",["AS"],"Kapampangan"],pap:["Latn",["AM"],"Papiamentu"],pcd:["Latn",["EU"],"Picard"],pdc:["Latn",["EU","AM"],"Deitsch"],pdt:["Latn",["EU","AM"],"Plautdietsch"],pfl:["Latn",["EU"],"Pälzisch"],pi:["Deva",["AS"],"पालि"],pih:["Latn",["PA"],"Norfuk / Pitkern"],pis:["Latn",["PA"],"Pijin"],pko:["Latn",["AF"],"Pökoot"],pl:["Latn",["EU"],"polski"],pms:["Latn",["EU"],"Piemontèis"],pnb:["Arab",["AS","ME"],"پنجابی"],pnt:["Grek",["EU"],"Ποντιακά"],ppl:["Latn",["AM"],"Nawat"],prg:["Latn",["EU"],"Prūsiskan"],ps:["Arab",["AS","ME"],"پښتو"],"pt-br":["Latn",["AM"],"português do Brasil"],pt:["Latn",["EU","AM","AS","PA","AF","WW"],"português"],qu:["Latn",["AM"],"Runa Simi"],qug:["Latn",["AM"],"Runa shimi"],rap:["Latn",["AM"],"arero rapa nui"],rgn:["Latn",["EU"],"Rumagnôl"],rif:["Latn",["AF"],"Tarifit"],rki:["Mymr",["AS"],"ရခိုင်"],rm:["Latn",["EU"],"rumantsch"],rmf:["Latn",["EU"],"kaalengo tšimb"],rmy:["Latn",["EU"],"Romani"],rn:["Latn",["AF"],"Kirundi"],ro:["Latn",["EU"],"română"],"roa-rup":["rup"],"roa-tara":["Latn",["EU"],"tarandíne"],rtm:["Latn",["PA"],"Faeag Rotuma"],ru:["Cyrl",["EU","AS","ME"],"русский"],rue:["Cyrl",["EU"],"русиньскый"],rup:["Latn",["EU"],"Armãneashce"],ruq:["Cyrl",["EU"],"Влахесте"],"ruq-cyrl":["ruq"],"ruq-grek":["Grek",["EU"],"Megleno-Romanian (Greek script)"],"ruq-latn":["Latn",["EU"],"Vlăheşte"],rut:["Cyrl",["EU"],"мыхаӀбишды"],rw:["Latn",["AF"],"Kinyarwanda"],rwr:["Deva",["AS"],"मारवाड़ी"],ryu:["Kana",["AS"],"ʔucināguci"],sa:["Deva",["AS"],"संस्कृतम्"],sah:["Cyrl",["EU","AS"],"саха тыла"],sat:["Latn",["AS"],"Santali"],saz:["Saur",["AS"],"ꢱꣃꢬꢵꢯ꣄ꢡ꣄ꢬꢵ"],sc:["Latn",["EU"],"sardu"],scn:["Latn",["EU"],"sicilianu"],sco:["Latn",["EU"],"Scots"],sd:["Arab",["AS"],"سنڌي"],sdc:["Latn",["EU"],"Sassaresu"],se:["Latn",["EU"],"sámegiella"],ses:["Latn",["AF"],"Koyraboro Senni"],sei:["Latn",["AM"],"Cmique Itom"],sg:["Latn",["AF"],"Sängö"],sgs:["Latn",["EU"],"žemaitėška"],sh:["Latn",["EU"],"srpskohrvatski"],"shi-latn":["Latn",["AF"],"Tašlḥiyt"],"shi-tfng":["Tfng",["AF"],"ⵜⴰⵛⵍⵃⵉⵜ"],shi:["shi-latn"],shn:["Mymr",["AS"],"လိၵ်ႈတႆး"],si:["Sinh",["AS"],"සිංහල"],simple:["Latn",["WW"],"Simple English"],sk:["Latn",["EU"],"slovenčina"],sl:["Latn",["EU"],"slovenščina"],sli:["Latn",["EU"],"Schläsch"],slr:["Latn",["AS"],"Salırça"],sly:["Latn",["AS"],"Bahasa Selayar"],syc:["Syrc",["ME"],"ܣܘܪܝܝܐ"],sm:["Latn",["PA"],"Gagana Samoa"],sma:["Latn",["EU"],"åarjelsaemien"],smj:["Latn",["EU"],"julevsámegiella"],smn:["Latn",["EU"],"anarâškielâ"],sms:["Latn",["EU"],"sää´mǩiõll"],sn:["Latn",["AF"],"chiShona"],so:["Latn",["AF"],"Soomaaliga"],sq:["Latn",["EU"],"shqip"],sr:["sr-cyrl"],"sr-ec":["sr-cyrl"],"sr-cyrl":["Cyrl",["EU"],"српски"],"sr-el":["sr-latn"],"sr-latn":["Latn",["EU"],"srpski"],srn:["Latn",["AM","EU"],"Sranantongo"],ss:["Latn",["AF"],"SiSwati"],st:["Latn",["AF"],"Sesotho"],stq:["Latn",["EU"],"Seeltersk"],su:["Latn",["AS"],"Basa Sunda"],sv:["Latn",["EU"],"svenska"],sw:["Latn",["AF"],"Kiswahili"],swb:["Latn",["AF"],"Shikomoro"],sxu:["Latn",["EU"],"Säggssch"],szl:["Latn",["EU"],"ślůnski"],ta:["Taml",["AS"],"தமிழ்"],tcy:["Knda",["AS"],"ತುಳು"],te:["Telu",["AS"],"తెలుగు"],tet:["Latn",["AS","PA"],"tetun"],"tg-cyrl":["Cyrl",["AS"],"тоҷикӣ"],"tg-latn":["Latn",["AS"],"tojikī"],tg:["Cyrl",["AS"],"тоҷикӣ"],th:["Thai",["AS"],"ไทย"],ti:["Ethi",["AF"],"ትግርኛ"],tk:["Latn",["AS"],"Türkmençe"],tkr:["Cyrl",["AS"],"ЦӀаьхна миз"],tl:["Latn",["AS"],"Tagalog"],tly:["Cyrl",["EU","AS","ME"],"толышә зывон"],tn:["Latn",["AF"],"Setswana"],to:["Latn",["PA"],"lea faka-Tonga"],tokipona:["Latn",["WW"],"Toki Pona"],tpi:["Latn",["PA","AS"],"Tok Pisin"],tr:["Latn",["EU","ME"],"Türkçe"],trp:["Latn",["AS"],"Kokborok (Tripuri)"],tru:["Latn",["AS"],"Ṫuroyo"],ts:["Latn",["AF"],"Xitsonga"],tsd:["Grek",["EU"],"Τσακωνικά"],tt:["Cyrl",["EU"],"татарча"],"tt-cyrl":["tt"],"tt-latn":["Latn",["EU"],"tatarça"],ttt:["Cyrl",["AS"],"Tati"],tum:["Latn",["AF"],"chiTumbuka"],tw:["Latn",["AF"],"Twi"],twd:["Latn",["EU"],"Tweants"],ty:["Latn",["PA"],"Reo Mā`ohi"],tyv:["Cyrl",["AS"],"тыва дыл"],tzm:["Tfng",["AF"],"ⵜⴰⵎⴰⵣⵉⵖⵜ"],udm:["Cyrl",["EU"],"удмурт"],ug:["ug-arab"],"ug-arab":["Arab",["AS"],"ئۇيغۇرچە"],"ug-latn":["Latn",["AS"],"uyghurche"],"ug-cyrl":["Cyrl",["AS"],"уйғурчә"],uk:["Cyrl",["EU"],"українська"],ur:["Arab",["AS","ME"],"اردو"],uz:["Latn",["AS"],"oʻzbekcha"],ve:["Latn",["AF"],"Tshivenda"],vec:["Latn",["EU"],"vèneto"],vep:["Latn",["EU"],"vepsän kel’"],vi:["Latn",["AS"],"Tiếng Việt"],vls:["Latn",["EU"],"West-Vlams"],vmf:["Latn",["EU"],"Mainfränkisch"],vo:["Latn",["WW"],"Volapük"],vot:["Latn",["EU"],"Vaďďa"],vro:["Latn",["EU"],"Võro"],wa:["Latn",["EU"],"walon"],war:["Latn",["AS"],"Winaray"],wls:["Latn",["PA"],"Faka'uvea"],wo:["Latn",["AF"],"Wolof"],wuu:["Hans",["AS"],"吴语"],xal:["Cyrl",["EU"],"хальмг"],xh:["Latn",["AF"],"isiXhosa"],xmf:["Geor",["EU"],"მარგალური"],ydd:["Hebr",["AS","EU"],"Eastern Yiddish"],yi:["Hebr",["ME","EU","AM"],"ייִדיש"],yo:["Latn",["AF"],"Yorùbá"],yrk:["Cyrl",["AS"],"Ненэцяʼ вада"],yrl:["Latn",["AM"],"ñe'engatú"],yua:["Latn",["AM"],"Maaya T'aan"],yue:["Hant",["AS"],"粵語"],za:["Latn",["AS"],"Vahcuengh"],zea:["Latn",["EU"],"Zeêuws"],zh:["Hans",["AS"],"中文"],"zh-classical":["Hant",["AS"],"文言"],"zh-cn":["Hans",["AS"],"中文(中国大陆)"],"zh-hans":["Hans",["AS"],"中文(简体)"],"zh-hant":["Hant",["AS"],"中文(繁體)"],"zh-hk":["Hant",["AS"],"中文(香港)"],"zh-min-nan":["nan"],"zh-mo":["Hant",["AS"],"中文(澳門)"],"zh-my":["Hans",["AS"],"中文(马来西亚)"],"zh-sg":["Hans",["AS"],"中文(新加坡)"],"zh-tw":["Hant",["AS"],"中文(台灣)"],"zh-yue":["yue"],zu:["Latn",["AF"],"isiZulu"]},scriptgroups:{Latin:["Latn","Goth"],Greek:["Grek"],WestCaucasian:["Armn","Geor"],Arabic:["Arab"],MiddleEastern:["Hebr","Syrc"],African:["Ethi","Nkoo","Tfng"],SouthAsian:["Beng","Deva","Gujr","Guru","Knda","Mlym","Orya","Saur","Sinh","Taml","Telu","Tibt","Thaa"],Cyrillic:["Cyrl"],CJK:["Hans","Hant","Kana","Kore","Jpan","Yiii"],SouthEastAsian:["Batk","Bugi","Java","Khmr","Laoo","Mymr","Thai"],Mongolian:["Mong"],SignWriting:["Sgnw"],NativeAmerican:["Cher","Cans"],Special:["Zyyy"]},rtlscripts:["Arab","Hebr","Syrc","Nkoo","Thaa"],regiongroups:{WW:1,SP:1,AM:2,EU:3,ME:3,AF:3,AS:4,PA:4},territories:{AC:["en"],AD:["ca","es","fr"],AE:["ar","ml","ps","bal","fa"],AF:["fa","ps","haz","uz-arab","tk-latn","prd","bal","ug-arab","kk-arab"],AG:["en","pt"],AI:["en"],AL:["sq","el","mk"],AM:["hy","ku-latn","az-latn"],AO:["pt","umb","kmb","ln"],AQ:["und"],AR:["es","cy","gn"],AS:["sm","en"],AT:["de","bar","hr","sl","hu"],AU:["en","zh-hant","it"],AW:["nl","pap","en"],AX:["sv"],AZ:["az-latn","az-cyrl","tly-latn","ku-latn","ttt-latn","tkr-latn"],BA:["bs-cyrl","bs-latn","hr","sr-cyrl","sr-latn"],BB:["en"],BD:["bn","rkt","syl","ccp","my","grt","mni"],BE:["nl","en","fr","vls","wa","de"],BF:["mos","dyu","fr"],BG:["bg","tr"],BH:["ar","ml"],BI:["rn","fr","sw"],BJ:["fr","fon","yo"],BL:["fr"],BM:["en"],BN:["ms-latn","zh-hant","ms-arab","en"],BO:["es","qu","ay","gn","aro"],BQ:["pap","nl"],BR:["pt","de","it","ja","ko","kgp","gub","yrl","xav"],BS:["en"],BT:["dz","ne","tsj","lep"],BV:["und"],BW:["en","tn","af"],BY:["be","ru"],BZ:["en","es"],CA:["en","fr","it","de","pdt","cr-cans","crk","yi","iu-cans","iu-latn","moe","crj","atj","crl","csw","crm","ikt","moh","dgr","den","scs","nsk","chp","gwi"],CC:["ms-arab","en"],CD:["sw","lua","swc","fr","ln","lu","kg","lol","rw"],CF:["fr","sg","ln"],CG:["fr","ln"],CH:["de","fr","gsw","it","lmo","rm","rmo","wae"],CI:["fr","bci","sef","dnj","kfo","bqv"],CK:["en"],CL:["es","arn"],CM:["fr","en","bum","ff","ewo","ybb","bbj","nnh","bkm","bas","bax","byv","mua","maf","bfd","bss","kkj","dua","mgo","ar","jgo","ksf","agq","ha-arab","nmg","yav"],CN:["zh-hans","wuu","hsn","hak","nan","gan","ii","ug-arab","za","mn-mong","bo","ko","kk-arab","lis","ky-arab","nxq","khb","tdd","lcp","en","ru","vi","uz-cyrl","lzh"],CO:["es","guc"],CP:["und"],CR:["es"],CU:["es"],CV:["kea","pt"],CW:["pap","nl","es"],CX:["en"],CY:["el","tr","hy","ar"],CZ:["cs","de","pl"],DE:["de","en","nds","vmf","tr","hr","it","ku-latn","ru","el","ksh","pl","es","nl","da","hsb","frr","dsb","frs","stq","pfl"],DG:["en"],DJ:["aa","so","ar","fr"],DK:["da","de","kl","jut"],DM:["en"],DO:["es","en"],DZ:["arq","ar","fr","kab"],EA:["es"],EC:["es","qu","qug"],EE:["et","ru","vro"],EG:["ar","arz","el"],EH:["ar"],ER:["ti","en","tig","ar","aa","ssy","byn"],ES:["es","en","ca","gl","eu","ast","ext"],ET:["en","am","om","so","ti","sid","wal","aa"],FI:["fi","sv","ru","en","et","rmf","se","smn","sms"],FJ:["en","hi","hif-deva","fj","rtm"],FK:["en"],FM:["chk","pon","kos","yap","en","uli"],FO:["fo"],FR:["fr","en","oc","it","pt","pcd","gsw","br","co","ca","nl","eu","frp","ia"],GA:["fr","puu"],GB:["en","sco","pa-guru","cy","bn","zh-hant","syl","el","it","ks-arab","gd","yi","ml","ga","fr","kw"],GD:["en"],GE:["ka","xmf","ru","hy","ab","os","ku-latn"],GF:["fr","gcr","zh-hant"],GG:["en"],GH:["ak","en","ee","abr","gur","gaa","ha-latn","saf"],GI:["en"],GL:["kl","da"],GM:["en","man-latn"],GN:["fr","ff","man-nkoo","sus","nqo","kpe"],GP:["fr"],GQ:["es","fan","fr","bvb"],GR:["el","pnt-grek","mk","tr","bg","sq","tsd"],GS:["und"],GT:["es","quc"],GU:["en","ch"],GW:["pt"],GY:["en"],HK:["zh-hant","en","zh-hans"],HM:["und"],HN:["es","en"],HR:["hr","it"],HT:["ht","fr"],HU:["hu","de","ro","hr","sk","sl"],IC:["es"],ID:["id","jv","su","mad","ms-arab","min","bew","ban","bug","bjn","ace","sas","bbc","zh-hant","mak","ljp","rej","gor","nij","kge","aoz","kvr","lbw","rob","mdr","sxn","sly","mwv"],IE:["en","ga"],IL:["he","ar","ru","ro","yi","en","pl","lad","hu","am","ti","ml"],IM:["en","gv"],IN:["hi","en","bn","te","mr","ta","ur","gu","kn","ml","or","pa-guru","bho","awa","as","bgc","mag","mwr","mai","hne","dcc","bjj","ne","sat","wtm","rkt","ks-arab","kok","gom","swv","gbm","lmn","sd-arab","gon-telu","kfy","doi","kru","sck","wbq","xnr","tcy","wbr","khn","brx","noe","bhb","mni","raj","hoc","mtr","unr-beng","bhi","hoj","kha","kfr","grt","unx-beng","bfy","srx","saz","ccp","sd-deva","bfq","njo","ria","bo","bpy","bft","bra","lep","btv","lif-deva","lah","sa","kht","dv","dz"],IO:["en"],IQ:["ar","ckb","fa","syr"],IR:["fa","az-arab","azb","mzn","glk","ckb","tk-latn","lrc","ar","bal","rmt","bqi","luz","lki","prd","hy","ps","ka","gbz","kk-arab"],IS:["is","da"],IT:["it","en","fr","lmo","pms","sc","de","vec","nap","lij","scn","sl","sdc","fur","egl","ca","el","hr","rgn"],JE:["en"],JM:["en","jam"],JO:["ar"],JP:["ja","ryu","ko"],KE:["en","sw","ki","luy","luo","kam","kln","guz","mer","mas","ebu","so","dav","teo","pko","om","saq","ar","pa-guru","gu"],KG:["ky-cyrl","ru"],KH:["km","cja","kdt"],KI:["en","gil"],KM:["ar","fr","zdj"],KN:["en"],KP:["ko"],KR:["ko"],KW:["ar"],KY:["en"],KZ:["ru","kk-cyrl","de","ug-cyrl"],LA:["lo","kjg","kdt"],LB:["ar","hy","ku-arab","fr","en"],LC:["en"],LI:["de","gsw","wae"],LK:["si","ta","en"],LR:["en","kpe","vai-vaii","men","vai-latn"],LS:["st","zu","ss","en","xh"],LT:["lt","ru","sgs"],LU:["fr","lb","de"],LV:["lv","ru","ltg"],LY:["ar"],MA:["ary","ar","zgh","fr","tzm-latn","shi-latn","shi-tfng","rif-latn","rif-tfng","es"],MC:["fr"],MD:["ro","uk","bg","gag","ru"],ME:["sr-latn","sq","sr-cyrl"],MF:["fr"],MG:["mg","fr","en"],MH:["en","mh"],MK:["mk","sq","tr"],ML:["bm-latn","fr","ffm","snk","mwk","ses","tmh","bm-nkoo","khq","dtm","kao","ar","bmq","bze"],MM:["my","shn","mnw","kht"],MN:["mn-cyrl","kk-arab","zh-hans","ru","ug-cyrl"],MO:["zh-hant","pt","zh-hans","en"],MP:["en","ch"],MQ:["fr"],MR:["ar","fr","ff","wo"],MS:["en"],MT:["mt","en"],MU:["mfe","en","bho","ur","fr","ta"],MV:["dv"],MW:["en","ny","tum","zu"],MX:["es","yua","nhe","nhw","maz","nch","sei"],MY:["ms-latn","en","zh-hant","ta","jv","zmi","dtp","ml","bug","bjn"],MZ:["pt","vmw","ndc","ts","ngl","seh","mgh","rng","ny","yao","sw","zu"],NA:["af","kj","ng","naq","en","de","tn"],NC:["fr"],NE:["ha-latn","fr","dje","fuq","tmh","ar","twq"],NF:["en"],NG:["en","pcm","ha-latn","ig","yo","fuv","tiv","efi","ibb","ha-arab","bin","kaj","kcg","ar","cch","amo"],NI:["es"],NL:["nl","en","li","fy","gos","id","zea","rif-latn","tr"],NO:["nb","nn","se"],NP:["ne","mai","bho","new","jml","taj","awa","thl","bap","tdg","thr","mgp","lif-deva","thq","mrd","bfy","xsr","rjs","tsf","hi","ggn","gvr","bo","tkt","tdh","bn","unr-deva","lep"],NR:["en","na"],NU:["en","niu"],NZ:["en","mi"],OM:["ar","bal","fa"],PA:["es","en","zh-hant"],PE:["es","qu","ay"],PF:["fr","ty","zh-hant"],PG:["tpi","en","ho"],PH:["en","fil","es","ceb","ilo","hil","bik","war","bhk","pam","pag","mdh","tsg","zh-hant","cps","krj","bto","hnn","tbw","bku"],PK:["ur","pa-arab","en","lah","ps","sd-arab","skr","bal","brh","hno","fa","hnd","tg-arab","gju","bft","kvx","khw","mvy","kxp","gjk","ks-arab","btv"],PL:["pl","szl","be","uk","csb","de","sli","lt"],PM:["fr","en"],PN:["en"],PR:["es","en"],PS:["ar"],PT:["pt","gl"],PW:["pau","en"],PY:["gn","es","de"],QA:["ar","fa","ml"],RE:["fr","rcf","ta"],RO:["ro","hu","de","tr","sr-latn","bg","el","pl"],RS:["sr-cyrl","sr-latn","sq","hu","ro","hr","sk","uk"],RU:["ru","tt","ba","cv","hy","ce","av","udm","chm","sah","os","kbd","myv","dar","bua","mdf","kum","kv","lez","krc","inh","tyv","az-cyrl","ady","krl","lbe","koi","mrj","alt","fi","sr-latn","vep","mn-cyrl","izh","cu"],RW:["rw","fr","en"],SA:["ar"],SB:["en","rug"],SC:["crs","fr","en"],SD:["ar","en","nus","ha-arab"],SE:["sv","fi","fit","se","rmu","yi","smj","sma","ia"],SG:["en","zh-hans","ms-latn","ta","ml","pa-guru"],SH:["en"],SI:["sl","hu","it"],SJ:["nb","ru"],SK:["sk","hu","uk","pl","de"],SL:["kri","en","men","tem"],SM:["it","eo"],SN:["wo","fr","ff","srr","dyo"],SO:["so","ar","sw","om"],SR:["nl","srn","zh-hant"],SS:["ar","en"],ST:["pt"],SV:["es"],SX:["en","es","vic","nl"],SY:["ar","ku-latn","fr","hy","syr"],SZ:["en","ss","zu","ts"],TA:["en"],TC:["en"],TD:["fr","ar"],TF:["fr"],TG:["fr","ee"],TH:["th","tts","nod","sou","mfa","zh-hant","kxm","kdt","mnw","shn","lcp","lwl"],TJ:["tg-cyrl","ru","fa","ar"],TK:["en","tkl"],TL:["pt","tet"],TM:["tk-latn","ru","uz-latn","ku-latn"],TN:["aeb","ar","fr"],TO:["to","en"],TR:["tr","ku-latn","zza","kbd","az-latn","ar","bgx","bg","ady","kiu","hy","ka","sr-latn","lzz-latn","sq","ab","el","tru","uz-latn","ky-latn","kk-cyrl"],TT:["en","es"],TV:["tvl","en"],TW:["zh-hant","trv"],TZ:["sw","en","suk","nym","kde","bez","ksb","mas","mgy","asa","lag","jmc","rof","vun","rwk","sbp"],UA:["uk","ru","pl","yi","rue","be","ro","bg","tr","hu","el"],UG:["sw","lg","nyn","cgg","xog","en","teo","laj","ach","myx","rw","ttj","hi"],UM:["en"],US:["en","es","zh-hant","fr","de","fil","it","vi","ko","ru","nv","yi","pdc","haw","frc","chr","esu","lkt","ik"],UY:["es"],UZ:["uz-latn","uz-cyrl","ru","kaa","tr"],VA:["it","la"],VC:["en"],VE:["es"],VG:["en"],VI:["en"],VN:["vi","zh-hant","cjm"],VU:["bi","en","fr"],WF:["wls","fr","fud"],WS:["sm","en"],XK:["sq","aln","sr-cyrl","sr-latn"],YE:["ar"],YT:["swb","fr","buc","sw"],ZA:["en","zu","xh","af","nso","tn","st","ts","ss","ve","hi","nr","sw"],ZM:["en","bem","ny","loz"],ZW:["en","sn","nd","mxc","ndc","kck","ny","ve","tn"],ZZ:[]}}})(jQuery);(function(e){"use strict";e.uls.data.isRedirect=function(t){return e.uls.data.languages[t]!==undefined&&e.uls.data.languages[t].length===1?e.uls.data.languages[t][0]:false};e.uls.data.getScript=function(t){var n=e.uls.data.isRedirect(t);if(n){return e.uls.data.getScript(n)}if(!e.uls.data.languages[t]){return"Zyyy"}return e.uls.data.languages[t][0]};e.uls.data.getRegions=function(t){var n=e.uls.data.isRedirect(t);if(n){return e.uls.data.getRegions(n)}return e.uls.data.languages[t]&&e.uls.data.languages[t][1]||"UNKNOWN"};e.uls.data.getAutonym=function(t){var n=e.uls.data.isRedirect(t);if(n){return e.uls.data.getAutonym(n)}return e.uls.data.languages[t]&&e.uls.data.languages[t][2]||t};e.uls.data.getAutonyms=function(){var t,n={};for(t in e.uls.data.languages){if(e.uls.data.isRedirect(t)){continue}n[t]=e.uls.data.getAutonym(t)}return n};e.uls.data.getAllRegions=function(){var t,n=[];for(t in e.uls.data.regiongroups){n.push(t)}return n};e.uls.data.getLanguagesInScript=function(t){return e.uls.data.getLanguagesInScripts([t])};e.uls.data.getLanguagesInScripts=function(t){var n,r,i=[];for(n in e.uls.data.languages){if(e.uls.data.isRedirect(n)){continue}for(r=0;r<t.length;r++){if(t[r]===e.uls.data.getScript(n)){i.push(n);break}}}return i};e.uls.data.getLanguagesInRegion=function(t){return e.uls.data.getLanguagesInRegions([t])};e.uls.data.getLanguagesInRegions=function(t){var n,r,i=[];for(n in e.uls.data.languages){if(e.uls.data.isRedirect(n)){continue}for(r=0;r<t.length;r++){if(e.inArray(t[r],e.uls.data.getRegions(n))!==-1){i.push(n);break}}}return i};e.uls.data.getLanguagesInRegionGroup=function(t){return e.uls.data.getLanguagesInRegions(e.uls.data.getRegionsInGroup(t))};e.uls.data.getLanguagesByScriptInRegion=function(t){var n,r,i={};for(n in e.uls.data.languages){if(e.uls.data.isRedirect(n)){continue}if(e.inArray(t,e.uls.data.getRegions(n))!==-1){r=e.uls.data.getScript(n);if(i[r]===undefined){i[r]=[]}i[r].push(n)}}return i};e.uls.data.getLanguagesByScriptGroupInRegion=function(t){return e.uls.data.getLanguagesByScriptGroupInRegions([t])};e.uls.data.getAllLanguagesByScriptGroup=function(){return e.uls.data.getLanguagesByScriptGroupInRegions(e.uls.data.getAllRegions())};e.uls.data.getLanguagesByScriptGroup=function(t){var n={},r,i,s;for(r in t){i=e.uls.data.isRedirect(r)||r;s=e.uls.data.getScriptGroupOfLanguage(i);if(!n[s]){n[s]=[]}if(e.inArray(i,n[s])===-1){n[s].push(i)}}return n};e.uls.data.getLanguagesByScriptGroupInRegions=function(t){var n,r,i,s={};for(n in e.uls.data.languages){if(e.uls.data.isRedirect(n)){continue}for(r=0;r<t.length;r++){if(e.inArray(t[r],e.uls.data.getRegions(n))!==-1){i=e.uls.data.getScriptGroupOfLanguage(n);if(s[i]===undefined){s[i]=[]}s[i].push(n);break}}}return s};e.uls.data.getAllLanguagesByRegionAndScript=function(){var t,n,r,i,s,o,u,a={};for(t in e.uls.data.regiongroups){n=e.uls.data.regiongroups[t];if(a[n]===undefined){a[n]={}}a[n][t]={}}for(r in e.uls.data.languages){if(e.uls.data.isRedirect(r)){continue}i=e.uls.data.getScript(r);s=e.uls.data.getGroupOfScript(i);o=e.uls.data.getRegions(r);for(u=0;u<o.length;u++){t=o[u];n=e.uls.data.regiongroups[t];if(a[n][t][s]===undefined){a[n][t][s]={}}if(a[n][t][s][i]===undefined){a[n][t][s][i]=[]}a[n][t][s][i].push(r)}}return a};e.uls.data.getRegionsInGroup=function(t){var n,r=[];for(n in e.uls.data.regiongroups){if(e.uls.data.regiongroups[n]===t){r.push(n)}}return r};e.uls.data.getGroupOfScript=function(t){var n;for(n in e.uls.data.scriptgroups){if(e.inArray(t,e.uls.data.scriptgroups[n])!==-1){return n}}return"Other"};e.uls.data.getScriptGroupOfLanguage=function(t){return e.uls.data.getGroupOfScript(e.uls.data.getScript(t))};e.uls.data.sortByAutonym=function(t,n){var r=e.uls.data.getAutonym(t)||t,i=e.uls.data.getAutonym(n)||n;return r.toLowerCase()<i.toLowerCase()?-1:1};e.uls.data.isRtl=function(t){return e.inArray(e.uls.data.getScript(t),e.uls.data.rtlscripts)!==-1};e.uls.data.getDir=function(t){return e.uls.data.isRtl(t)?"rtl":"ltr"};e.uls.data.getLanguagesInTerritory=function(t){return e.uls.data.territories[t]};e.uls.data.addLanguage=function(t,n){if(n.target){e.uls.data.languages[t]=[n.target]}else{e.uls.data.languages[t]=[n.script,n.regions,n.autonym]}};e.uls.data.deleteLanguage=function(t){if(e.uls.data.languages[t]){delete e.uls.data.languages[t];return true}return false}})(jQuery);(function(e){"use strict";function r(e,t){var n="െേൈൊോൌெேைொோௌେୈୋୌિਿिিেৈোৌෙේෛොෝෞ";return n.indexOf(t[e.length])<=0}var t,n;t=function(t,n){this.$element=e(t);this.options=e.extend({},e.fn.regionselector.defaults,n);this.$element.addClass("languagefilter");this.resultCount=0;this.$suggestion=this.$element.parents().find("#"+this.$element.data("suggestion"));this.$clear=this.$element.parents().find("#"+this.$element.data("clear"));this.selectedLanguage=null;this.listen()};n=function(){var e=0;return function(t,n){clearTimeout(e);e=setTimeout(t,n)}}();t.prototype={listen:function(){this.$element.on("keypress",e.proxy(this.keyup,this)).on("keyup",e.proxy(this.keyup,this));if(this.eventSupported("keydown")){this.$element.on("keydown",e.proxy(this.keyup,this))}if(this.$clear.length){this.$clear.on("click",e.proxy(this.clear,this))}this.toggleClear()},keyup:function(t){var r,i,s;switch(t.keyCode){case 9:r=this.$suggestion.val();if(r&&r!==this.$element.val()){this.$element.val(r);t.preventDefault();t.stopPropagation()}break;case 13:if(!this.options.onSelect){break}t.preventDefault();t.stopPropagation();i=e.trim(this.$element.val()).toLowerCase();if(this.selectedLanguage){this.options.onSelect(this.selectedLanguage)}else if(this.options.languages[i]){this.options.onSelect(i)}break;default:s=this;if(t.which<32&&t.which!==8){break}this.selectedLanguage=null;n(function(){if(!s.$element.val()){s.clear()}else{s.options.$target.empty();s.search()}},300);this.toggleClear()}},deactivate:function(){this.$element.val("");if(!e.fn.uls.Constructor.prototype.isMobile()){this.$element.focus()}this.toggleClear();this.autofill()},clear:function(){this.deactivate();this.$element.trigger("searchclear.uls")},toggleClear:function(){if(!this.$clear.length){return}if(this.$element.val()){this.$clear.show()}else{this.$clear.hide()}},search:function(){var t,n=e.trim(this.$element.val()),r=e.uls.data.getLanguagesByScriptGroup(this.options.languages),i,s,o;this.resultCount=0;for(i in r){t=r[i];t.sort(e.uls.data.sortByAutonym);for(s=0;s<t.length;s++){o=t[s];if(n===""||this.filter(o,n)){if(this.resultCount===0){this.autofill(o)}if(n.toLowerCase()===o){this.selectedLanguage=o}if(this.render(o)){this.resultCount++}}}}if(!this.resultCount&&this.options.searchAPI&&n){this.searchAPI(n)}else{this.resultHandler(n)}},searchAPI:function(t){var n=this;e.get(n.options.searchAPI,{search:t},function(r){e.each(r.languagesearch,function(e,t){if(n.resultCount===0){n.autofill(e,t)}if(n.render(e)){n.resultCount++}});n.resultHandler(t)})},resultHandler:function(e){if(this.resultCount===0){this.$suggestion.val("");this.$element.trigger("noresults.uls",e)}else{this.$element.trigger("resultsfound.uls",[e,this.resultCount])}},autofill:function(t,n){if(!this.$suggestion.length){return}if(!this.$element.val()){this.$suggestion.val("");return}this.selectedLanguage=t;n=n||this.options.languages[t];if(!n){return}var i,s=this.$element.val(),o=s+n.substring(s.length,n.length);if(o.toLowerCase()!==n.toLowerCase()){i=e.uls.data.getAutonym(t)||"";o=s+i.substring(s.length,i.length);if(o!==i){o=""}}if(!r(s,o)){o=""}this.$suggestion.val(o)},render:function(e){var t=this.options.$target;if(!t){return false}return t.append(e)},escapeRegex:function(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$\|#\s]/g,"\\$&")},filter:function(t,n){var r=new RegExp("^"+this.escapeRegex(n),"i"),i=this.options.languages[t];return r.test(i)||r.test(e.uls.data.getAutonym(t))||r.test(t)||r.test(e.uls.data.getScript(t))},eventSupported:function(e){var t=e in this.$element;if(!t){this.$element.setAttribute(e,"return;");t=typeof this.$element[e]==="function"}return t}};e.fn.languagefilter=function(n){return this.each(function(){var r=e(this),i=r.data("languagefilter"),s=typeof n==="object"&&n;if(!i){r.data("languagefilter",i=new t(this,s))}if(typeof n==="string"){i[n]()}})};e.fn.languagefilter.defaults={$target:null,searchAPI:null,languages:null,onSelect:null};e.fn.languagefilter.Constructor=t})(jQuery);(function(e){"use strict";var t,n;t='<div class="twelve columns uls-no-results-view hide">		<h2 data-i18n="uls-no-results-found" class="eleven columns offset-by-one uls-no-results-found-title">		No results found		</h2>		<div id="uls-no-found-more" class="uls-no-found-more">			<div class="ten columns offset-by-one">				<p>					<span data-i18n="uls-search-help">You can search by language name, 					script name, ISO code of language or 					you can browse by region:</span>					<a class="uls-region-link" data-i18n="uls-region-AM" data-region="AM">America</a>, 					<a class="uls-region-link" data-i18n="uls-region-EU" data-region="EU">Europe</a>, 					<a class="uls-region-link" data-i18n="uls-region-ME" data-region="ME">Middle East</a>, 					<a class="uls-region-link" data-i18n="uls-region-AF" data-region="AF">Africa</a>, 					<a class="uls-region-link" data-i18n="uls-region-AS" data-region="AS">Asia</a>, 					<a class="uls-region-link" data-i18n="uls-region-PA" data-region="PA">Pacific</a>, 					<a class="uls-region-link" data-i18n="uls-region-WW" data-region="WW">Worldwide</a>.				</p>			</div>		</div>	</div>';n=function(n,r){this.$element=e(n);this.options=e.extend({},e.fn.lcd.defaults,r);this.$element.addClass("lcd");this.regionLanguages={};this.renderTimeout=null;this.cachedQuicklist=null;this.$element.append(e(t));this.$noResults=this.$element.children(".uls-no-results-view");this.render();this.listen()};n.prototype={constructor:n,append:function(t,n){var r=this,i,s;if(!this.options.languages[t]){return false}if(n){s=[n]}else{s=e.uls.data.getRegions(t)}if(e.inArray("WW",s)>-1){s=["WW"]}for(i=0;i<s.length;i++){this.regionLanguages[s[i]].push(t)}window.clearTimeout(this.renderTimeout);this.renderTimeout=window.setTimeout(function(){r.renderRegions()},50);return true},render:function(){var t,n=this,r=[],i={WW:"Worldwide",SP:"Special",AM:"America",EU:"Europe",ME:"Middle East",AS:"Asia",AF:"Africa",PA:"Pacific"};r.push(this.buildQuicklist());e.each(e.uls.data.regiongroups,function(s){n.regionLanguages[s]=[];if(e.inArray(s,n.options.showRegions)===-1){return}t=e("<div>").addClass("eleven columns offset-by-one uls-lcd-region-section hide").attr("id",s).append(e("<h3>").attr("data-i18n","uls-region-"+s).addClass("eleven columns uls-lcd-region-title").text(i[s]));r.push(t)});n.$element.append(r);this.i18n()},renderRegions:function(){var t=this,n,r=t.options.itemsPerColumn,i=4;this.$noResults.addClass("hide");this.$element.find(".uls-lcd-region-section").each(function(){var s=e(this),o=s.attr("id");if(s.is("#uls-lcd-quicklist")){return}s.children(".uls-language-block").remove();n=t.regionLanguages[o];if(!n||n.length===0){s.addClass("hide");return}t.renderRegion(s,n,r,i);s.removeClass("hide");t.regionLanguages[o]=[]})},renderRegion:function(t,n,r,i){var s,o,u,a,f,l=n.length,c=[],h=[],p=[];for(s=0;s<l;s++){f=false;a=e.uls.data.getScriptGroupOfLanguage(n[s+1]);o=l-s===1;if(s===0){u=e.uls.data.getScriptGroupOfLanguage(n[s])}else if(u!==a&&c.length>1){f=true}u=a;c.push(this.renderItem(n[s]));if(c.length>=r||o||f){h.push(e("<ul>").addClass("three columns").append(c));c=[];if(h.length>=i||o){p.push(e("<div>").addClass("row uls-language-block").append(h));h=[]}}}t.append(p)},renderItem:function(t){var n,r,i,s;r=this.options.languages[t];i=e.uls.data.getAutonym(t)||r||t;s=document.createElement("li");s.title=r;s.lang=t;s.dir=e.uls.data.getDir(t);s.setAttribute("data-code",t);n=document.createElement("a");n.appendChild(document.createTextNode(i));n.className="autonym";s.appendChild(n);if(this.options.languageDecorator){this.options.languageDecorator(e(n),t)}return s},i18n:function(){this.$element.find("[data-i18n]").i18n()},quicklist:function(){this.$element.find("#uls-lcd-quicklist").removeClass("hide")},buildQuicklist:function(){var t,n,r;if(this.cachedQuicklist!==null){return this.cachedQuicklist}if(e.isFunction(this.options.quickList)){this.options.quickList=this.options.quickList()}if(!this.options.quickList){this.cachedQuicklist=e([]);return this.cachedQuicklist}t=this.options.quickList;t=t.slice(0,16);t.sort(e.uls.data.sortByAutonym);n=e("<div>").addClass("eleven columns offset-by-one uls-lcd-region-section").attr("id","uls-lcd-quicklist");r=e("<h3>").attr("data-i18n","uls-common-languages").addClass("eleven columns uls-lcd-region-title").text("Common languages");n.append(r);this.renderRegion(n,t,4,4);r.i18n();this.cachedQuicklist=n;return this.cachedQuicklist},show:function(){if(!this.regionDivs){this.render()}},empty:function(){this.$element.find("#uls-lcd-quicklist").addClass("hide")},focus:function(){this.$element.focus()},noResults:function(){this.$noResults.removeClass("hide");if(this.$noResults.find(".uls-lcd-region-title").length){return}var e=this.buildQuicklist().clone();e.find("h3").data("i18n","uls-no-results-suggestion-title").text("You may be interested in:").i18n();this.$noResults.find("h2").after(e)},listen:function(){var t=this;if(this.options.clickhandler){this.$element.on("click",".row li",function(){t.options.clickhandler.call(this,e(this).data("code"))})}t.$element.scroll(function(){var n,r,i=e(this),s=i.position().top,o=i.height();r="WW";t.$element.find(".uls-lcd-region-section").each(function(){var t=e(this),n=t.position().top,i=t.height(),u=10;if(n-u<=s&&i>o){r=t.attr("id")}});n=e.uls.data.regiongroups[r];if(!e("#uls-region-"+n).hasClass("active")){e(".regionselector").removeClass("active");e("#uls-region-"+n).addClass("active")}})}};e.fn.lcd=function(t){return this.each(function(){var r=e(this),i=r.data("lcd"),s=typeof t==="object"&&t;if(!i){r.data("lcd",i=new n(this,s))}if(typeof t==="string"){i[t]()}})};e.fn.lcd.defaults={languages:null,showRegions:["WW","AM","EU","ME","AF","AS","PA"],itemsPerColumn:8,languageDecorator:null};e.fn.lcd.Constructor=n})(jQuery);(function(e){"use strict";var t;t=function(t,n){this.$element=e(t);this.options=e.extend({},e.fn.regionselector.defaults,n);this.$element.addClass("regionselector");this.regions=[];this.cache=null;this.regionGroup=this.$element.data("regiongroup");this.init();this.listen()};t.prototype={constructor:t,init:function(){var t=this.$element.data("region");this.regions=e.uls.data.getRegionsInGroup(this.regionGroup);if(t){this.regions.push(t)}},test:function(t){var n,r,i=e.uls.data.getRegions(t);for(r=0;r<this.regions.length;r++){n=this.regions[r];if(e.inArray(n,i)>=0){this.render(t,n);this.cache[t]=n;return}}},show:function(){var t,n,r,i,s,o=this.options.$target&&this.options.$target.$element,u=o&&o.parent(),a=o&&o.prev();if(o&&u){o.detach()}if(this.cache){t=null;for(t in this.cache){this.render(t,this.cache[t])}}else{this.cache={};n=e.uls.data.getLanguagesByScriptGroup(this.options.languages);for(r in e.uls.data.scriptgroups){i=n[r];if(!i){continue}i.sort(e.uls.data.sortByAutonym);for(s=0;s<i.length;s++){this.test(i[s])}}}if(o&&u){if(a){a.after(o)}else{u.append(o)}}if(this.options.success){this.options.success(this)}},render:function(e,t){var n=this.options.$target;if(!n){return}n.append(e,t)},listen:function(){this.$element.on("click",e.proxy(this.click,this))},click:function(){var t,n;if(this.$element.hasClass("active")){return}t=this.options.$target.$element;n=t.find("#"+this.regions[0]);t.scrollTop(n.offset().top-t.offset().top+t.scrollTop());e(".regionselector").removeClass("active");if(this.regionGroup){this.$element.addClass("active")}}};e.fn.regionselector=function(n){return this.each(function(){var r=e(this),i=r.data("regionselector"),s=typeof n==="object"&&n;if(!i){r.data("regionselector",i=new t(this,s))}if(typeof n==="string"){i[n]()}})};e.fn.regionselector.defaults={$target:null,success:null,noresults:null,languages:null};e.fn.regionselector.Constructor=t})(jQuery)

@@ -1,198 +0,0 @@ 

- /**

-  * jQuery region filter plugin.

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- ( function ( $ ) {

- 	'use strict';

- 

- 	/* RegionSelector plugin definition */

- 

- 	var RegionSelector;

- 

- 	/**

- 	 * Region selector is a language selector based on regions.

- 	 * Usage: $( 'jqueryselector' ).regionselector( options );

- 	 * The attached element should have data-regiongroup attribute

- 	 * that defines the regiongroup for the selector.

- 	 */

- 	RegionSelector = function ( element, options ) {

- 		this.$element = $( element );

- 		this.options = $.extend( {}, $.fn.regionselector.defaults, options );

- 		this.$element.addClass( 'regionselector' );

- 		this.regions = [];

- 		this.cache = null;

- 		this.regionGroup = this.$element.data( 'regiongroup' );

- 		this.init();

- 		this.listen();

- 	};

- 

- 	RegionSelector.prototype = {

- 		constructor: RegionSelector,

- 

- 		init: function () {

- 			var region = this.$element.data( 'region' );

- 			this.regions = $.uls.data.getRegionsInGroup( this.regionGroup );

- 

- 			if ( region ) {

- 				this.regions.push( region );

- 			}

- 		},

- 

- 		test: function ( langCode ) {

- 			var region, i,

- 				langRegions = $.uls.data.getRegions( langCode );

- 

- 			for ( i = 0; i < this.regions.length; i++ ) {

- 				region = this.regions[i];

- 

- 				if ( $.inArray( region, langRegions ) >= 0 ) {

- 					this.render( langCode, region );

- 					this.cache[langCode] = region;

- 

- 					return;

- 				}

- 			}

- 		},

- 

- 		show: function () {

- 			var result, languagesByScriptGroup, scriptGroup, languages, i,

- 				$element = this.options.$target && this.options.$target.$element,

- 				$parent = $element && $element.parent(),

- 				$prev = $element && $element.prev();

- 

- 			if ( $element && $parent ) {

- 				// Avoid reflows while adding new elements to the list

- 				// Use .detach() to keep jQuery events and data associated with elements

- 				$element.detach();

- 			}

- 

- 			if ( this.cache ) {

- 				// If the result cache is present, render the results from there.

- 				//noinspection JSUnusedAssignment

- 				result = null;

- 

- 				for ( result in this.cache ) {

- 					this.render( result, this.cache[result] );

- 				}

- 			} else {

- 				this.cache = {};

- 				// Get the languages grouped by script group

- 				languagesByScriptGroup = $.uls.data.getLanguagesByScriptGroup( this.options.languages );

- 

- 				// Make sure that we go by the original order

- 				// of script groups

- 				for ( scriptGroup in $.uls.data.scriptgroups ) {

- 					// Get the languages for the script group

- 					languages = languagesByScriptGroup[scriptGroup];

- 

- 					// It's possible that some script groups are missing

- 					if ( !languages ) {

- 						continue;

- 					}

- 

- 					// Sort it based on autonym

- 					languages.sort( $.uls.data.sortByAutonym );

- 

- 					for ( i = 0; i < languages.length; i++ ) {

- 						// Check whether it belongs to the region

- 						this.test( languages[i] );

- 					}

- 				}

- 			}

- 

- 			if ( $element && $parent ) {

- 				// Restore the element to where we removed it from

- 				if ( $prev ) {

- 					$prev.after( $element );

- 				} else {

- 					$parent.append( $element );

- 				}

- 			}

- 

- 			if ( this.options.success ) {

- 				this.options.success( this );

- 			}

- 		},

- 

- 		render: function ( langCode, region ) {

- 			var $target = this.options.$target;

- 

- 			if ( !$target ) {

- 				return;

- 			}

- 

- 			$target.append( langCode, region );

- 		},

- 

- 		listen: function () {

- 			this.$element.on( 'click', $.proxy( this.click, this ) );

- 		},

- 

- 		click: function () {

- 			var $list, $firstTargetRegion;

- 

- 			// Don't do anything if a region is selected already

- 			if ( this.$element.hasClass( 'active' ) ) {

- 				return;

- 			}

- 

- 			$list = this.options.$target.$element;

- 			$firstTargetRegion = $list.find( '#' + this.regions[0] );

- 

- 			// Scroll to appropriate area

- 			$list.scrollTop(

- 				$firstTargetRegion.offset().top - $list.offset().top + $list.scrollTop()

- 			);

- 

- 			// Make the selected region (and it only) active

- 			$( '.regionselector' ).removeClass( 'active' );

- 

- 			if ( this.regionGroup ) {

- 				// if there is a region group, make it active.

- 				this.$element.addClass( 'active' );

- 			}

- 		}

- 	};

- 

- 	/* RegionSelector plugin definition */

- 

- 	$.fn.regionselector = function ( option ) {

- 		return this.each( function () {

- 			var $this = $( this ),

- 				data = $this.data( 'regionselector' ),

- 				options = typeof option === 'object' && option;

- 

- 			if ( !data ) {

- 				$this.data( 'regionselector', ( data = new RegionSelector( this, options ) ) );

- 			}

- 

- 			if ( typeof option === 'string' ) {

- 				data[option]();

- 			}

- 		} );

- 	};

- 

- 	$.fn.regionselector.defaults = {

- 		$target: null, // Where to render the results

- 		success: null, // callback if any results found.

- 		noresults: null, // callback when no results to show

- 		languages: null

- 	};

- 

- 	$.fn.regionselector.Constructor = RegionSelector;

- } ( jQuery ) );

@@ -10,11 +10,6 @@ 

      <link rel="stylesheet" media="screen" href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700&amp;subset=latin,latin-ext" />

      <link rel='stylesheet' media="screen" href='https://fonts.googleapis.com/css?family=Montserrat' />

  

-     <!-- language selector -->

-     <link rel="stylesheet" type="text/css" href="${path}/static/css/jquery.uls.css" />

-     <link rel="stylesheet" type="text/css" href="${path}/static/css/jquery.uls.grid.css" />

-     <link rel="stylesheet" type="text/css" href="${path}/static/css/jquery.uls.lcd.css" />

- 

      <!-- use RTL css for specific languages -->

      <link py:if="lang in ('ar', 'bal', 'fa', 'he')" rel="stylesheet" type="text/css" media="all" href="${path}/static/css/bootstrap-rtl.css" />

  

@@ -91,14 +91,7 @@ 

                      </div>

                      <div class="col-md-3">

                          <div class="widget-body">

-                             <div class="pull-left language-header">

-                               <span class="active uls-trigger lang-dropdown">${_('Change Language')}</span>

-                                 <form action="" method="GET" style="visibility:hidden" id="langSelect" class="lang-dropdown">

-                                   <input type="hidden" name="lang" id="selectedLang" value="" />

-                         <!-- Allow uls script to change language through legacy system -->

-                                   <input type="submit" value="${_('OK')}" />

-                                 </form>

-                               </div>

+                             <xi:include href="../templates/translations.html" />

                          </div>

                      </div>

                  </div> <!-- /row of widgets -->

@@ -14,14 +14,6 @@ 

      <script type="text/javascript" src="${path}/static/js/checksum.js"></script>

      <script type="text/javascript" src="${path}/static/js/bootstrap.min.js"></script>

  

-     <script type="text/javascript" src="${path}/static/js/jquery.uls.data.js"></script>

- 	  <script type="text/javascript" src="${path}/static/js/jquery.uls.data.utils.js"></script>

- 	  <script type="text/javascript" src="${path}/static/js/jquery.uls.lcd.js"></script>

- 	  <script type="text/javascript" src="${path}/static/js/jquery.uls.languagefilter.js"></script>

- 	  <script type="text/javascript" src="${path}/static/js/jquery.uls.regionfilter.js"></script>

- 	  <script type="text/javascript" src="${path}/static/js/jquery.uls.core.js"></script>

-     <xi:include href="../templates/translations.html" />

- 

      <!--[if lt IE 9]>

      <script type="text/javascript" src="${path}/static/js/html5shiv.js"></script>

      <script type="text/javascript" src="${path}/static/js/respond.min.js"></script>

@@ -605,7 +605,29 @@ 

    padding-left: 2px;

  }

  .language-header {

-   margin-top: 43px;

+   margin-top: 29px;

+ }

+ .language-menu ul {

+   column-count: 3;

+   column-gap: 3em;

+   margin: 1.5em;

+ }

+ 

+ @media (min-width:992px) {

+   .language-menu {

+     width: 97rem;

+   }

+   .language-menu ul {

+     column-count: 5;

+   }

+ }

+ @media (min-width:1200px) {

+   .language-menu {

+     width: 117rem;

+   }

+   .language-menu ul {

+     column-count: 5;

+   }

  }

  .btn-topmargin {

    margin-top: 10px;

@@ -1,75 +0,0 @@ 

- .uls-compact .uls-icon-close,

- .uls-compact .uls-title-region,

- .uls-compact .uls-map-block,

- .uls-compact #uls-settings-block {

- 	display: none !important;

- }

- 

- .uls-compact.uls-menu {

- 	border-radius: 0;

- }

- 

- .uls-compact .uls-search {

- 	background: white;

- 	border-top: none;

- 	padding: 0.8em 0;

- 	border-bottom-width: 1px;

- 	border-bottom-style: solid;

- 	border-bottom-color: #DDD;

- }

- 

- .uls-compact .uls-filterinput,

- .uls-compact .uls-filterinput:focus {

- 	background-color: transparent;

- 	border: none;

- 	box-shadow: none;

- 	outline: none;

- 	font-size: 18px;

- 	left: 0;

- }

- 

- .uls-compact .uls-language-list {

- 	background: #FCFCFC;

- 	height: 20em;

- }

- 

- .uls-compact .uls-search-label {

- 	background-size: 25px;

- 	height: 26px;

- 	width: 26px;

- 	float: right;

- 	opacity: 0.8;

- }

- 

- .uls-compact .uls-languagefilter-clear {

- 	margin-left: 0;

- }

- 

- .uls-compact .uls-title-region a {

- 	color: #777;

- 	display: inline-block;

- 	margin: 15px 0 5px 19px;

- 	cursor: pointer;

- 	padding: 6px;

- 	text-decoration: none;

- 	font-size: 14px;

- 	border: 1px solid transparent;

- }

- 

- .uls-compact .uls-title-region a:hover {

- 	color: #252525;

- 	background: #F0F0F0;

- 	border: 1px solid #DDD;

- 	border-radius: 3px;

- }

- 

- .uls-compact .uls-title-region a:before {

- 	display: inline-block;

- 	width: 0;

- 	height: 0;

- 	border-right: 4px solid #777;

- 	border-top: 4px solid transparent;

- 	border-bottom: 4px solid transparent;

- 	content: "";

- 	margin: 0 6px 0 0;

- }

@@ -1,260 +0,0 @@ 

- .uls-trigger {

- 	/* @embed */

- 	background: transparent url('/static/images/icon-language.png') no-repeat scroll left center;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/icon-language.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/icon-language.svg');

- 	padding-left: 30px;

- }

- 

- .uls-menu {

- 	position: absolute;

- 	z-index: 1000;

- 	display: none;

- 	margin-top: 1px;

- 	/* Styling */

- 	background-color: #ffffff;

- 	border: 1px solid #ccc;

- 	border: 1px solid rgba(0, 0, 0, 0.2);

- 	border-radius: 5px;

- 	-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);

- 	-moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);

- 	box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);

- 	-webkit-background-clip: padding-box;

- 	-moz-background-clip: padding;

- 	background-clip: padding-box;

- }

- 

- .uls-wide {

- 	min-width: 715px;

- 	width: 45%;

- }

- 

- .uls-title-region a {

- 	padding-left: 15px;

- }

- 

- .uls-menu .uls-title {

- 	font-weight: normal;

- 	border: none;

- 	padding-top: 1.25em;

- 	padding-left: 15px;

- 	padding-bottom: 3px;

- 	font-size: 18pt;

- 	line-height: 1.25em;

- 	color: #555;

- }

- 

- .uls-menu .uls-no-results-found-title {

- 	font-size: 16pt;

- 	font-weight: bold;

- 	line-height: 1.5em;

- 	padding-left: 6px;

- 	padding-top: 10px;

- 	margin-top: 0;

- 	margin-bottom: 15px;

- 	border-bottom: none;

- 	color: #555;

- }

- 

- .uls-menu .uls-lcd-region-section .uls-lcd-region-title {

- 	color: #777;

- 	font-size: 14pt;

- 	font-weight: lighter;

- 	line-height: 1.5em;

- 	padding-left: 0;

- 	margin-top: 0;

- 	margin-bottom: 10px;

- 	border-bottom: none;

- }

- 

- .uls-worldmap {

- 	/* @embed */

- 	background: transparent url('/static/images/world_map.png') no-repeat scroll right top;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/world_map.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/world_map.svg');

- 	background-size: 100%;

- }

- 

- div.uls-region {

- 	cursor: pointer;

- 	padding: 0;

- 	margin: 0;

- 	height: 120px;

- 	border-bottom-color: transparent;

- 	border-bottom-style: solid;

- 	border-bottom-width: 2px;

- }

- 

- .uls-worldmap .uls-region { /* The map doesn't flip */

- 	/* @noflip */

- 	float: left;

- }

- 

- .uls-region a {

- 	bottom: 2px;

- 	left: 2px;

- 	padding: 0;

- 	position: absolute;

- 	font-size: 13px;

- 	line-height: 1.2em;

- 	text-decoration: none;

- 	overflow: hidden;

- 	text-overflow: ellipsis;

- 	width: 99%;

- }

- 

- .uls-region:hover {

- 	/*Cross-browser background transparency*/

- 	background: #3366bb;

- 	background: rgba(51, 102, 187, 0.1);

- 	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#253366bb, endColorstr=#253366bb );

- 	-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#253366bb, endColorstr=#253366bb)";

- }

- 

- .uls-map-block .active {

- 	border-bottom-color: #3366bb;

- 	border-bottom-style: solid;

- }

- 

- .uls-menu .row .uls-map-block {

- 	top: 1px;

- 	margin-right: 0;

- 	padding-right: 0;

- 	float: right;

- 	overflow: hidden;

- 	opacity: 0.7;

- 	-moz-transition: opacity 0.2s linear;

- 	-o-transition: opacity 0.2s linear;

- 	-webkit-transition: opacity 0.2s linear;

- 	transition: opacity 0.2s linear;

- }

- 

- .uls-map-block a {

- 	color: #333;

- 	opacity: 0;

- 	-moz-transition: opacity 0.15s linear;

- 	-o-transition: opacity 0.15s linear;

- 	-webkit-transition: opacity 0.15s linear;

- 	transition: opacity 0.15s linear;

- }

- 

- .uls-menu .uls-map-block:hover,

- .uls-menu .uls-map-block:hover a {

- 	opacity: 1;

- 	color: #333;

- }

- 

- .uls-map-block .uls-region-1 {

- 	border-color: transparent;

- }

- 

- .uls-map-block:hover .active {

- 	border-color: #3366bb;

- }

- 

- .uls-map-block .active a {

- 	font-weight: bold;

- }

- 

- .uls-icon-close {

- 	/* @embed */

- 	background: transparent url('/static/images/close.png') no-repeat scroll center center;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/close.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/close.svg');

- 	float: right;

- 	padding: 15px;

- 	cursor: pointer;

- }

- 

- .uls-menu .uls-languagefilter {

- 	background-color: transparent;

- 	border: 1px solid #c9c9c9;

- 	border-radius: 2px 2px 2px 2px;

- 	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) inset;

- 	color: #333;

- 	display: block;

- 	padding: 6px;

- 	-moz-transition: border 0.15s linear 0s;

- 	-o-transition: border 0.15s linear 0s;

- 	-webkit-transition: border 0.15s linear 0s;

- 	transition: border 0.15s linear 0s;

- }

- 

- .uls-menu .uls-languagefilter:focus {

- 	border: 1px solid #3366bb;

- }

- 

- .uls-menu .uls-search {

- 	position: relative;

- 	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F0F0F0', endColorstr='#FBFBFB');

- 	background: #f8f8f8;

- 	background: -webkit-gradient(linear, left top, left bottom, from(#F0F0F0), to(#FBFBFB));

- 	background: -webkit-linear-gradient(top, #F0F0F0, #FBFBFB);

- 	background: -moz-linear-gradient(top, #F0F0F0, #FBFBFB);

- 	background: -o-linear-gradient(top, #F0F0F0, #FBFBFB);

- 	background: linear-gradient(#F0F0F0, #FBFBFB);

- 	border-top-color: #AAA;

- 	border-top-style: solid;

- 	border-top-width: 1px;

- 	padding: 0.8em 0;

- 	border-bottom-width: 1px;

- 	border-bottom-style: solid;

- 	border-bottom-color: #DDD;

- }

- 

- .uls-menu .uls-search-label {

- 	/* @embed */

- 	background: transparent url('/static/images/search.png') no-repeat scroll right center;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/search.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/search.svg');

- 	background-size: 30px;

- 	height: 32px;

- 	width: 32px;

- 	float: right;

- }

- 

- .uls-menu .uls-languagefilter-clear {

- 	/* @embed */

- 	background: transparent url('/static/images/clear.png') no-repeat scroll left center;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/clear.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/clear.svg');

- 	cursor: pointer;

- 	height: 32px;

- 	position: absolute;

- 	width: 32px;

- 	margin-left: -32px;

- }

- 

- .uls-menu .uls-filterinput {

- 	position: absolute;

- 	top: 0;

- 	left: 0;

- 	font-size: 14px;

- 	height: 32px;

- 	width: 100%;

- 	text-align: left;

- }

- 

- .uls-menu .uls-filtersuggestion {

- 	padding: 6px;

- 	background-color: white;

- 	color: #888;

- 	border: 1px transparent;

- 	border-radius: 2px 2px 2px 2px;

- 	box-shadow: 0 1px 2px transparent inset;

- 	left: 1px;

- }

- 

- .uls-menu .uls-search-input-block {

- 	position: relative;

- }

@@ -1,315 +0,0 @@ 

- /* Generated using Foundation http://foundation.zurb.com/docs/grid.php */

- /* Global Reset & Standards ---------------------- */

- .grid * {

- 	-webkit-box-sizing: border-box;

- 	-moz-box-sizing: border-box;

- 	box-sizing: border-box;

- }

- 

- /* Misc ---------------------- */

- .grid .left {

- 	float: left;

- }

- 

- .grid .right {

- 	float: right;

- }

- 

- .grid .text-left {

- 	text-align: left;

- }

- 

- .grid .text-right {

- 	text-align: right;

- }

- 

- .grid .text-center {

- 	text-align: center;

- }

- 

- .grid .hide {

- 	display: none;

- }

- 

- .grid .highlight {

- 	background: #ffff99;

- }

- 

- /* The Grid ---------------------- */

- .grid .row {

- 	width: 100%;

- 	max-width: none;

- 	min-width: 600px;

- 	margin: 0 auto;

- }

- 

- .grid .row .row {

- 	width: auto;

- 	max-width: none;

- 	min-width: 0;

- 	margin: 0 -5px;

- }

- 

- .grid .row.collapse .column,

- .grid .row.collapse .columns {

- 	padding: 0;

- }

- 

- .grid .row .row {

- 	width: auto;

- 	max-width: none;

- 	min-width: 0;

- 	margin: 0 -5px;

- }

- 

- .grid .row .row.collapse {

- 	margin: 0;

- }

- 

- .grid .column, .grid .columns {

- 	float: left;

- 	min-height: 1px;

- 	padding: 0 5px;

- 	position: relative;

- }

- 

- .grid .column.centered, .grid .columns.centered {

- 	float: none;

- 	margin: 0 auto;

- }

- 

- .grid .row .one {

- 	width: 8.333%;

- }

- 

- .grid .row .two {

- 	width: 16.667%;

- }

- 

- .grid .row .three {

- 	width: 25%;

- }

- 

- .grid .row .four {

- 	width: 33.333%;

- }

- 

- .grid .row .five {

- 	width: 41.667%;

- }

- 

- .grid .row .six {

- 	width: 50%;

- }

- 

- .grid .row .seven {

- 	width: 58.333%;

- }

- 

- .grid .row .eight {

- 	width: 66.667%;

- }

- 

- .grid .row .nine {

- 	width: 75%;

- }

- 

- .grid .row .ten {

- 	width: 83.333%;

- }

- 

- .grid .row .eleven {

- 	width: 91.667%;

- }

- 

- .grid .row .twelve {

- 	width: 100%;

- }

- 

- .grid .row .offset-by-one {

- 	margin-left: 8.333%;

- }

- 

- .grid .row .offset-by-two {

- 	margin-left: 16.667%;

- }

- 

- .grid .row .offset-by-three {

- 	margin-left: 25%;

- }

- 

- .grid .row .offset-by-four {

- 	margin-left: 33.333%;

- }

- 

- .grid .row .offset-by-five {

- 	margin-left: 41.667%;

- }

- 

- .grid .row .offset-by-six {

- 	margin-left: 50%;

- }

- 

- .grid .row .offset-by-seven {

- 	margin-left: 58.333%;

- }

- 

- .grid .row .offset-by-eight {

- 	margin-left: 66.667%;

- }

- 

- .grid .row .offset-by-nine {

- 	margin-left: 75%;

- }

- 

- .grid .row .offset-by-ten {

- 	margin-left: 83.333%;

- }

- 

- .grid .push-two {

- 	left: 16.667%;

- }

- 

- .grid .pull-two {

- 	right: 16.667%;

- }

- 

- .grid .push-three {

- 	left: 25%;

- }

- 

- .grid .pull-three {

- 	right: 25%;

- }

- 

- .grid .push-four {

- 	left: 33.333%;

- }

- 

- .grid .pull-four {

- 	right: 33.333%;

- }

- 

- .grid .push-five {

- 	left: 41.667%;

- }

- 

- .grid .pull-five {

- 	right: 41.667%;

- }

- 

- .grid .push-six {

- 	left: 50%;

- }

- 

- .grid .pull-six {

- 	right: 50%;

- }

- 

- .grid .push-seven {

- 	left: 58.333%;

- }

- 

- .grid .pull-seven {

- 	right: 58.333%;

- }

- 

- .grid .push-eight {

- 	left: 66.667%;

- }

- 

- .grid .pull-eight {

- 	right: 66.667%;

- }

- 

- .grid .push-nine {

- 	left: 75%;

- }

- 

- .grid .pull-nine {

- 	right: 75%;

- }

- 

- .grid .push-ten {

- 	left: 83.333%;

- }

- 

- .grid .pull-ten {

- 	right: 83.333%;

- }

- 

- /* Nicolas Gallagher's micro clearfix */

- .grid .row {

- 	*zoom: 1;

- }

- 

- .grid .row:before, .grid .row:after {

- 	content: "";

- 	display: table;

- }

- 

- .grid .row:after {

- 	clear: both;

- }

- 

- /* Block Grids ---------------------- */

- /* These are 2-up, 3-up, 4-up and 5-up ULs, suited

-  for repeating blocks of content. Add 'mobile' to

-  them to switch them just like the layout grid

-  (one item per line) on phones

- 

-  For IE7/8 compatibility block-grid items need to be

-  the same height. You can optionally uncomment the

-  lines below to support arbitrary height, but know

-  that IE7/8 do not support :nth-child.

-  -------------------------------------------------- */

- .grid .block-grid {

- 	display: block;

- 	overflow: hidden;

- 	padding: 0;

- }

- 

- .grid .block-grid > li {

- 	display: block;

- 	height: auto;

- 	float: left;

- }

- 

- .grid .block-grid.two-up {

- 	margin: 0 -15px;

- }

- 

- .grid .block-grid.two-up > li {

- 	width: 50%;

- 	padding: 0 15px 15px;

- }

- 

- /* .block-grid.two-up>li:nth-child(2n+1) {clear: left;} */

- .grid .block-grid.three-up {

- 	margin: 0 -12px;

- }

- 

- .grid .block-grid.three-up > li {

- 	width: 33.33%;

- 	padding: 0 12px 12px;

- }

- 

- /* .block-grid.three-up>li:nth-child(3n+1) {clear: left;} */

- .grid .block-grid.four-up {

- 	margin: 0 -10px;

- }

- 

- .grid .block-grid.four-up > li {

- 	width: 25%;

- 	padding: 0 10px 10px;

- }

- 

- /* .block-grid.four-up>li:nth-child(4n+1) {clear: left;} */

- .grid .block-grid.five-up {

- 	margin: 0 -8px;

- }

- 

- .grid .block-grid.five-up > li {

- 	width: 20%;

- 	padding: 0 8px 8px;

- }

@@ -1,86 +0,0 @@ 

- .uls-lcd-region-section ul li:hover {

- 	background-color: #eaeff7;

- }

- 

- .uls-lcd-region-section {

- 	margin-top: 10px;

- }

- 

- /* Language list */

- .uls-language-list {

- 	height: 17em;

- 	overflow: auto;

- 	width: auto;

- }

- 

- .uls-language-block ul {

- 	margin: 0 0 1.5em;

- }

- 

- .uls-language-list ul li {

- 	cursor: pointer;

- 	font-weight: normal;

- 	overflow: hidden;

- 	white-space: nowrap;

- 

- 	/*

- 	 * Some languages have long names for various reasons and we still want

- 	 * them to appear on one line.

- 	 * To make it work correctly, the directionality must be set correctly

- 	 * on the item level.

- 	 */

- 	text-overflow: ellipsis;

- 

- 	/*

- 	 * The directionality (ltr/rtl) for each list item is set dynamically

- 	 * as HTML attributes in JavaScript. Setting directionality also applies

- 	 * alignment, but a list with mixed alignment is hard to read.

- 	 * All items are therefore explicitly aligned to the left, including names

- 	 * of right-to-left languages in left-to-right environment and vice versa.

- 	 * As long as the directionality of the item is set correctly, the text

- 	 * is readable.

- 	 */

- 	text-align: left;

- 

- 	/*

- 	 * We don't want any visible bullets in this list.

- 	 */

- 	list-style-image: none;

- 	list-style-type: none;

- }

- 

- .uls-language-list strong {

- 	text-decoration: underline;

- }

- 

- .uls-language-list a {

- 	font-weight: normal;

- 	text-decoration: none;

- 	color: #3366bb;

- 	font-size: 14px;

- 	line-height: 1.6em;

- }

- 

- .uls-language-block {

- 	width: 100%;

- }

- 

- .uls-no-results-view {

- 	color: #555;

- 	height: 100%;

- }

- 

- .uls-no-found-more {

- 	font-size: 0.9em;

- 	background: #F8F8F8;

- 	width: 100%;

- 	margin-top: 1.6em;

- 	line-height: 1.6em;

- 	position: absolute;

- 	bottom: 0;

- 	left: 0;

- }

- 

- .uls-no-found-more a {

- 	cursor: pointer;

- }

@@ -1,319 +0,0 @@ 

- @media only screen and (max-width: 767px) {

- 

- 	.uls-mobile.uls-menu {

- 		width: 95%;

- 		left: 2.5%;

- 	}

- 

- 	.uls-mobile .uls-language-list {

- 		-webkit-overflow-scrolling: touch;

- 	}

- 

- 	.uls-mobile .uls-language-block {

- 		padding-left: 15px !important;

- 	}

- 

- 	.uls-mobile .uls-language-block ul {

- 		min-height: 14em;

- 	}

- 

- 	.uls-mobile .uls-language-block a {

- 		font-size: 16px;

- 		line-height: 1.7em;

- 	}

- 

- 	.uls-mobile div.uls-region {

- 		width: 33% !important;

- 		float: left !important;

- 	}

- 

- 	.uls-mobile .uls-map-block a,

- 	.uls-mobile .uls-map-block {

- 		opacity: 1 !important;

- 	}

- 

- 	.uls-mobile .row {

- 		width: auto;

- 		min-width: 0;

- 		margin-left: 0;

- 		margin-right: 0;

- 	}

- 

- 	.uls-mobile .column,

- 	.uls-mobile .columns {

- 		width: auto !important;

- 		float: none;

- 	}

- 

- 	.uls-mobile .column:last-child,

- 	.uls-mobile .columns:last-child {

- 		float: none;

- 	}

- 

- 	.uls-mobile [class*="column"] + [class*="column"]:last-child {

- 		float: none;

- 	}

- 

- 	.uls-mobile .column:before,

- 	.uls-mobile .uls-mobile .columns:before,

- 	.uls-mobile .column:after,

- 	.columns:after {

- 		content: "";

- 		display: table;

- 	}

- 

- 	.uls-mobile .column:after,

- 	.uls-mobile .columns:after {

- 		clear: both;

- 	}

- 

- 	.uls-mobile .offset-by-one,

- 	.uls-mobile .offset-by-two,

- 	.uls-mobile .offset-by-three,

- 	.uls-mobile .offset-by-four,

- 	.uls-mobile .offset-by-five,

- 	.uls-mobile .offset-by-six,

- 	.uls-mobile .offset-by-seven,

- 	.uls-mobile .offset-by-eight,

- 	.uls-mobile .offset-by-nine,

- 	.uls-mobile .offset-by-ten {

- 		margin-left: 0 !important;

- 	}

- 

- 	.uls-mobile .push-two,

- 	.uls-mobile .push-three,

- 	.uls-mobile .push-four,

- 	.uls-mobile .push-five,

- 	.uls-mobile .push-six,

- 	.uls-mobile .push-seven,

- 	.uls-mobile .push-eight,

- 	.uls-mobile .push-nine,

- 	.uls-mobile .push-ten {

- 		left: auto;

- 	}

- 

- 	.uls-mobile .pull-two,

- 	.uls-mobile .pull-three,

- 	.uls-mobile .pull-four,

- 	.uls-mobile .pull-five,

- 	.uls-mobile .pull-six,

- 	.uls-mobile .pull-seven,

- 	.uls-mobile .pull-eight,

- 	.uls-mobile .pull-nine,

- 	.uls-mobile .pull-ten {

- 		right: auto;

- 	}

- 

- 	/* Mobile 4-column Grid */

- 	.uls-mobile .row .mobile-one {

- 		width: 25% !important;

- 		float: left;

- 		padding: 0 4px;

- 	}

- 

- 	.uls-mobile .row .mobile-one:last-child {

- 		float: right;

- 	}

- 

- 	.uls-mobile .row.collapse .mobile-one {

- 		padding: 0;

- 	}

- 

- 	.uls-mobile .row .mobile-two {

- 		width: 50% !important;

- 		float: left;

- 		padding: 0 4px;

- 	}

- 

- 	.uls-mobile .row .mobile-two:last-child {

- 		float: right;

- 	}

- 

- 	.uls-mobile .row.collapse .mobile-two {

- 		padding: 0;

- 	}

- 

- 	.uls-mobile .row .mobile-three {

- 		width: 75% !important;

- 		float: left;

- 		padding: 0 4px;

- 	}

- 

- 	.uls-mobile .row .mobile-three:last-child {

- 		float: right;

- 	}

- 

- 	.uls-mobile .row.collapse .mobile-three {

- 		padding: 0;

- 	}

- 

- 	.uls-mobile .row .mobile-four {

- 		width: 100% !important;

- 		float: left;

- 		padding: 0 4px;

- 	}

- 

- 	.uls-mobile .row .mobile-four:last-child {

- 		float: right;

- 	}

- 

- 	.uls-mobile .row.collapse .mobile-four {

- 		padding: 0;

- 	}

- 

- 	.uls-mobile .push-one-mobile {

- 		left: 25%;

- 	}

- 

- 	.uls-mobile .pull-one-mobile {

- 		right: 25%;

- 	}

- 

- 	.uls-mobile .push-two-mobile {

- 		left: 50%;

- 	}

- 

- 	.uls-mobile .pull-two-mobile {

- 		right: 50%;

- 	}

- 

- 	.uls-mobile .push-three-mobile {

- 		left: 75%;

- 	}

- 

- 	.uls-mobile .pull-three-mobile {

- 		right: 75%;

- 	}

- }

- 

- /* Visibility Classes ---------------------- */

- /* Standard (large) display targeting */

- .uls-mobile .show-for-small,

- .uls-mobile .show-for-medium,

- .uls-mobile .show-for-medium-down,

- .uls-mobile .hide-for-large,

- .uls-mobile .hide-for-large-up,

- .uls-mobile .show-for-xlarge {

- 	display: none !important;

- }

- 

- .uls-mobile .hide-for-xlarge,

- .uls-mobile .show-for-large,

- .uls-mobile .show-for-large-up,

- .uls-mobile .hide-for-small,

- .uls-mobile .hide-for-medium,

- .uls-mobile .hide-for-medium-down {

- 	display: block !important;

- }

- 

- /* Very large display targeting */

- @media only screen and (min-width: 1441px) {

- 

- 	.uls-mobile .hide-for-small,

- 	.uls-mobile .hide-for-medium,

- 	.uls-mobile .hide-for-medium-down,

- 	.hide-for-large, .show-for-large-up,

- 	.show-for-xlarge {

- 		display: block !important;

- 	}

- 

- 	.show-for-small,

- 	.uls-mobile .show-for-medium,

- 	.uls-mobile .show-for-medium-down,

- 	.uls-mobile .show-for-large,

- 	.uls-mobile .hide-for-large-up,

- 	.uls-mobile .hide-for-xlarge {

- 		display: none !important;

- 	}

- }

- /* Medium display targeting */

- @media only screen and (max-width: 1279px) and (min-width: 768px) {

- 

- 	.uls-mobile .hide-for-small,

- 	.uls-mobile .show-for-medium,

- 	.uls-mobile .show-for-medium-down,

- 	.uls-mobile .hide-for-large,

- 	.uls-mobile .hide-for-large-up,

- 	.uls-mobile .hide-for-xlarge {

- 		display: block !important;

- 	}

- 

- 	.uls-mobile .show-for-small,

- 	.uls-mobile .hide-for-medium,

- 	.uls-mobile .hide-for-medium-down,

- 	.uls-mobile .show-for-large,

- 	.uls-mobile .show-for-large-up,

- 	.uls-mobile .show-for-xlarge {

- 		display: none !important;

- 	}

- }

- /* Small display targeting */

- @media only screen and (max-width: 767px) {

- 

- 	.uls-mobile .show-for-small,

- 	.uls-mobile .hide-for-medium,

- 	.uls-mobile .show-for-medium-down,

- 	.uls-mobile .hide-for-large,

- 	.uls-mobile .hide-for-large-up,

- 	.uls-mobile .hide-for-xlarge {

- 		display: block !important;

- 	}

- 	.uls-mobile .hide-for-small,

- 	.uls-mobile .show-for-medium,

- 	.uls-mobile .hide-for-medium-down,

- 	.uls-mobile .show-for-large,

- 	.uls-mobile .show-for-large-up,

- 	.uls-mobile .show-for-xlarge {

- 		display: none !important;

- 	}

- }

- 

- /* Orientation targeting */

- .uls-mobile .show-for-landscape,

- .uls-mobile .hide-for-portrait {

- 	display: block !important;

- }

- 

- .uls-mobile .hide-for-landscape,

- .uls-mobile .show-for-portrait {

- 	display: none !important;

- }

- 

- @media screen and (orientation: landscape) {

- 	.uls-mobile .show-for-landscape,

- 	.uls-mobile .hide-for-portrait {

- 		display: block !important;

- 	}

- 	.uls-mobile .hide-for-landscape,

- 	.uls-mobile .show-for-portrait {

- 		display: none !important;

- 	}

- }

- 

- @media screen and (orientation: portrait) {

- 	.uls-mobile .show-for-portrait,

- 	.uls-mobile .hide-for-landscape {

- 		display: block !important;

- 	}

- 	.uls-mobile .hide-for-portrait,

- 	.uls-mobile .show-for-landscape {

- 		display: none !important;

- 	}

- }

- 

- /* Touch-enabled device targeting */

- .uls-mobile .show-for-touch {

- 	display: none !important;

- }

- 

- .uls-mobile .hide-for-touch {

- 	display: block !important;

- }

- 

- .uls-mobile .touch .show-for-touch {

- 	display: block !important;

- }

- 

- .uls-mobile .touch .hide-for-touch {

- 	display: none !important;

- }

@@ -1,444 +0,0 @@ 

- /**

-  * Universal Language Selector

-  * ULS core component.

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- ( function ( $ ) {

- 	'use strict';

- 

- 	var template, ULS;

- 

- 	// Region numbers in id attributes also appear in the langdb.

- 	/*jshint multistr:true */

- 	template = '<div class="grid uls-menu uls-wide"> \

- 			<div class="row"> \

- 				<span id="uls-close" class="uls-icon-close"></span> \

- 			</div> \

- 			<div class="row"> \

- 				<div class="uls-title-region seven columns">\

- 					<h1 data-i18n="uls-select-language" class="uls-title">Select Language</h1>\

- 				</div>\

- 				<div class="five columns uls-map-block" id="uls-map-block">\

- 					<div class="row">\

- 						<div data-regiongroup="1" id="uls-region-1" class="three columns uls-region uls-region-1">\

- 							<a data-i18n="uls-region-WW">Worldwide</a>\

- 						</div>\

- 						<div class="nine columns">\

- 							<div class="row uls-worldmap">\

- 								<div data-regiongroup="2" id="uls-region-2" class="four columns uls-region">\

- 									<a data-i18n="uls-region-AM">America</a>\

- 								</div>\

- 								<div data-regiongroup="3" id="uls-region-3" class="four columns uls-region">\

- 									<a><span data-i18n="uls-region-EU">Europe</span><br>\

- 									<span data-i18n="uls-region-ME">Middle East</span><br>\

- 									<span data-i18n="uls-region-AF">Africa</span></a>\

- 								</div>\

- 								<div data-regiongroup="4" id="uls-region-4" class="four columns uls-region">\

- 									<a><span data-i18n="uls-region-AS">Asia</span><br>\

- 									<span data-i18n="uls-region-PA">Pacific</span></a>\

- 								</div>\

- 							</div>\

- 						</div>\

- 					</div>\

- 				</div>\

- 			</div>\

- 			<div id="search" class="row uls-search"> \

- 				<div class="one column">\

- 					<span class="uls-search-label"></span>\

- 				</div>\

- 				<div class="ten columns">\

- 					<div id="uls-search-input-block" class="uls-search-input-block">\

- 						<input type="text" class="uls-filterinput uls-filtersuggestion" id="uls-filtersuggestion" disabled="true"\

- 							autocomplete="off" /> <input type="text" class="uls-filterinput uls-languagefilter" id="uls-languagefilter"\

- 							data-clear="uls-languagefilter-clear" data-suggestion="uls-filtersuggestion"\

- 							placeholder="Language search" autocomplete="off" />\

- 					</div>\

- 				</div>\

- 				<div class="one column">\

- 					<span id="uls-languagefilter-clear" class="uls-languagefilter-clear"></span>\

- 				</div>\

- 			</div>\

- 			<div class="row uls-language-list"></div>\

- 			<div class="row" id="uls-settings-block"></div>\

- 		</div>';

- 	/*jshint multistr:false */

- 

- 	/**

- 	 * ULS Public class definition

- 	 */

- 	ULS = function ( element, options ) {

- 		this.$element = $( element );

- 		this.options = $.extend( {}, $.fn.uls.defaults, options );

- 		this.$menu = $( template );

- 		this.languages = this.options.languages;

- 

- 		for ( var code in this.languages ) {

- 			if ( $.uls.data.languages[code] === undefined ) {

- 				// Language is unknown to ULS.

- 				delete this.languages[code];

- 			}

- 		}

- 

- 		this.left = this.options.left;

- 		this.top = this.options.top;

- 		this.shown = false;

- 		this.initialized = false;

- 

- 		this.$languageFilter = this.$menu.find( '#uls-languagefilter' );

- 		this.$regionFilters = this.$menu.find( '.uls-region' );

- 		this.$resultsView = this.$menu.find( 'div.uls-language-list' );

- 

- 		this.render();

- 		this.listen();

- 		this.ready();

- 	};

- 

- 	ULS.prototype = {

- 		constructor: ULS,

- 

- 		/**

- 		 * A "hook" that runs after the ULS constructor.

- 		 * At this point it is not guaranteed that the ULS has its dimensions

- 		 * and that the languages lists are initialized.

- 		 *

- 		 * To use it, pass a function as the onReady parameter

- 		 * in the options when initializing ULS.

- 		 */

- 		ready: function () {

- 			if ( this.options.onReady ) {

- 				this.options.onReady.call( this );

- 			}

- 		},

- 

- 		/**

- 		 * A "hook" that runs after the ULS panel becomes visible

- 		 * by using the show method.

- 		 *

- 		 * To use it, pass a function as the onVisible parameter

- 		 * in the options when initializing ULS.

- 		 */

- 		visible: function () {

- 			if ( this.options.onVisible ) {

- 				this.options.onVisible.call( this );

- 			}

- 		},

- 

- 		/**

- 		 * Calculate the position of ULS

- 		 * Returns an object with top and left properties.

- 		 * @returns {Object}

- 		 * position is set by setting also window height and margin

- 		 */

- 		position: function () {

- 			var pos = $.extend( {}, this.$element.offset(), {

- 				height: this.$element[0].offsetHeight

- 			} );

- 			return {

- 				top: this.top !== undefined ? this.top : pos.top - (447+10),

- 				left: this.left !== undefined ? this.left : '25%'

- 			};

- 		},

- 

- 		/**

- 		 * Show the ULS window

- 		 */

- 		show: function () {

- 			this.$menu.css( this.position() );

- 

- 			if ( this.options.compact ) {

- 				this.$menu.addClass( 'uls-compact' );

- 			}

- 

- 			if ( !this.initialized ) {

- 				$( 'body' ).prepend( this.$menu );

- 				this.i18n();

- 

- 				// Initialize with a full search.

- 				// This happens on first time click of uls trigger.

- 				this.defaultSearch();

- 

- 				this.initialized = true;

- 			}

- 

- 			// hide any other visible ULS

- 			$( '.uls-menu' ).hide();

- 

- 			this.$menu.show();

- 			this.$menu.scrollIntoView();

- 			this.shown = true;

- 

- 			if ( !this.isMobile() ) {

- 				this.$languageFilter.focus();

- 			}

- 

- 			this.visible();

- 		},

- 

- 		i18n: function () {

- 			if ( $.i18n ) {

- 				this.$menu.find( '[data-i18n]' ).i18n();

- 				this.$languageFilter.prop( 'placeholder', $.i18n( 'uls-search-placeholder' ) );

- 			}

- 		},

- 

- 		defaultSearch: function () {

- 			this.$resultsView.lcd( 'empty' );

- 

- 			this.$regionFilters.regionselector( 'show' );

- 		},

- 

- 		/**

- 		 * Hide the ULS window

- 		 */

- 		hide: function () {

- 			this.$menu.hide();

- 			this.shown = false;

- 		},

- 

- 		/**

- 		 * Render the UI elements.

- 		 * Does nothing by default. Can be used for customization.

- 		 */

- 		render: function () {

- 			// Rendering stuff here

- 		},

- 

- 		/**

- 		 * Callback for no results found context.

- 		 */

- 		noresults: function () {

- 			$( '.regionselector' ).removeClass( 'active' );

- 			this.$resultsView.lcd( 'noResults' );

- 		},

- 

- 		/**

- 		 * callback for results found context.

- 		 */

- 		success: function () {

- 			$( '.regionselector' ).removeClass( 'active' );

- 			this.$resultsView.show();

- 		},

- 

- 		/**

- 		 * Bind the UI elements with their event listeners

- 		 */

- 		listen: function () {

- 			var lcd,

- 				uls = this;

- 

- 			// Register all event listeners to the ULS here.

- 			this.$element.on( 'click', $.proxy( this.click, this ) );

- 

- 			this.$languageFilter.on( 'searchclear.uls', $.proxy( this.defaultSearch, this ) );

- 			this.$languageFilter.on( 'noresults.uls', $.proxy( this.noresults, this ) );

- 			this.$languageFilter.on( 'resultsfound.uls', $.proxy( this.success, this ) );

- 

- 			// Close when clicking on the close button

- 			this.$menu.find( '#uls-close' ).on( 'click', $.proxy( this.cancel, this ) );

- 			// Don't do anything if pressing on empty space in the ULS

- 			this.$menu.on( 'click', function ( e ) {

- 				e.stopPropagation();

- 			} );

- 

- 			// Handle key press events on the menu

- 			this.$menu.on( 'keypress', $.proxy( this.keypress, this ) )

- 				.on( 'keyup', $.proxy( this.keyup, this ) );

- 

- 			if ( this.eventSupported( 'keydown' ) ) {

- 				this.$menu.on( 'keydown', $.proxy( this.keypress, this ) );

- 			}

- 

- 			lcd = this.$resultsView.lcd( {

- 				languages: this.languages,

- 				quickList: this.options.quickList,

- 				clickhandler: $.proxy( this.select, this ),

- 				source: this.$languageFilter,

- 				showRegions: this.options.showRegions,

- 				languageDecorator: this.options.languageDecorator

- 			} ).data( 'lcd' );

- 

- 			this.$languageFilter.languagefilter( {

- 				$target: lcd,

- 				languages: this.languages,

- 				searchAPI: this.options.searchAPI,

- 				onSelect: $.proxy( this.select, this )

- 			} );

- 

- 			// Create region selectors, one per region

- 			this.$menu.find( '.uls-region, .uls-region-link' ).regionselector( {

- 				$target: lcd,

- 				languages: this.languages,

- 				success: function ( regionfilter ) {

- 					// Deactivate search filtering

- 					uls.$languageFilter.languagefilter( 'deactivate' );

- 

- 					// If it is the WW region, show the quicklist

- 					if ( regionfilter.regionGroup === 1 ) {

- 						lcd.quicklist();

- 					}

- 

- 					// Show 'results view' if we are in no results mode

- 					uls.success();

- 				},

- 				noresults: function () {

- 					uls.$languageFilter.languagefilter( 'clear' );

- 				}

- 			} );

- 

- 			$( 'html' ).click( $.proxy( this.cancel, this ) );

- 		},

- 

- 		/**

- 		 * On select handler for search results

- 		 * @param langCode

- 		 */

- 		select: function ( langCode ) {

- 			this.hide();

- 			this.$languageFilter.trigger( 'searchclear' );

- 			if ( this.options.onSelect ) {

- 				this.options.onSelect.call( this, langCode );

- 			}

- 		},

- 

- 		/**

- 		 * On cancel handler for the uls menu

- 		 */

- 		cancel: function () {

- 			this.hide();

- 

- 			if ( this.options.onCancel ) {

- 				this.options.onCancel.call( this );

- 			}

- 		},

- 

- 		keyup: function ( e ) {

- 			if ( !this.shown ) {

- 				return;

- 			}

- 

- 			if ( e.keyCode === 27 ) { // escape

- 				this.cancel();

- 				e.preventDefault();

- 				e.stopPropagation();

- 			}

- 		},

- 

- 		keypress: function ( e ) {

- 			if ( !this.shown ) {

- 				return;

- 			}

- 

- 			if ( e.keyCode === 27 ) { // escape

- 				this.cancel();

- 				e.preventDefault();

- 				e.stopPropagation();

- 			}

- 		},

- 

- 		click: function ( e ) {

- 			e.stopPropagation();

- 			e.preventDefault();

- 

- 			if ( this.shown ) {

- 				this.hide();

- 			} else {

- 				this.show();

- 			}

- 		},

- 

- 		eventSupported: function ( eventName ) {

- 			var isSupported = eventName in this.$menu;

- 

- 			if ( !isSupported ) {

- 				this.$element.setAttribute( eventName, 'return;' );

- 				isSupported = typeof this.$element[eventName] === 'function';

- 			}

- 

- 			return isSupported;

- 		},

- 

- 		isMobile: function () {

- 			return navigator.userAgent.match( /(iPhone|iPod|iPad|Android|BlackBerry)/ );

- 		}

- 	};

- 

- 	/* ULS PLUGIN DEFINITION

- 	 * =========================== */

- 

- 	$.fn.uls = function ( option ) {

- 		return this.each( function () {

- 			var $this = $( this ),

- 				data = $this.data( 'uls' ),

- 				options = typeof option === 'object' && option;

- 

- 			if ( !data ) {

- 				$this.data( 'uls', ( data = new ULS( this, options ) ) );

- 			}

- 

- 			if ( typeof option === 'string' ) {

- 				data[option]();

- 			}

- 		} );

- 	};

- 

- 	$.fn.uls.defaults = {

- 		onSelect: null, // Callback function to be called when a language is selected

- 		searchAPI: null, // Language search API

- 		languages: $.uls.data.getAutonyms(), // Languages to be used for ULS, default is all languages

- 		quickList: null, // Array of language codes or function that returns such

- 		compact: false, // Show ULS in compact mode

- 		showRegions: [ 'WW', 'AM', 'EU', 'ME', 'AF', 'AS', 'PA' ],

- 		languageDecorator: null // Callback function to be called when a language link is prepared - for custom decoration.

- 	};

- 

- 	// Define a dummy i18n function, if jquery.i18n not integrated.

- 	if ( !$.fn.i18n ) {

- 		$.fn.i18n = function () {};

- 	}

- 

- 	/*

- 	 * Simple scrollIntoView plugin.

- 	 * Scrolls the element to the viewport smoothly if it is not already.

- 	 */

- 	$.fn.scrollIntoView = function () {

- 		return this.each( function () {

- 			var scrollPosition,

- 				$window = $( window ),

- 				windowHeight = $window.height(),

- 				windowTop = $window.scrollTop(),

- 				windowBottom = windowTop + windowHeight,

- 				$element = $( this ),

- 				panelHeight = $element.height(),

- 				panelTop = $element.offset().top,

- 				panelBottom = panelTop + panelHeight;

- 

- 			if ( ( panelTop < windowTop ) || ( panelBottom > windowBottom ) ) {

- 				if ( windowTop > panelTop ) {

- 					scrollPosition = panelTop;

- 				} else {

- 					scrollPosition = panelBottom - windowHeight;

- 				}

- 				$( 'html, body' ).stop().animate( {

- 					scrollTop: scrollPosition

- 				}, 500 );

- 			}

- 		} );

- 	};

- 

- 	$.fn.uls.Constructor = ULS;

- }( jQuery ) );

@@ -1,7 +0,0 @@ 

- // Please do not edit. This file is generated from data/langdb.yaml by ulsdata2json.php

- ( function ( $ ) {

- 	'use strict';

- 	$.uls = $.uls || {};

- 	//noinspection JSHint

- 	$.uls.data = {"languages":{"aa":["Latn",["AF"],"Qafár af"],"ab":["Cyrl",["EU"],"Аҧсшәа"],"ace":["Latn",["AS","PA"],"Acèh"],"ady":["Cyrl",["EU","ME"],"Адыгэбзэ"],"ady-cyrl":["ady"],"ady-latn":["Latn",["EU","ME"],"Adygabze"],"aeb":["Arab",["AF"],"زَوُن"],"af":["Latn",["AF"],"Afrikaans"],"ahr":["Deva",["AS"],"अहिराणी"],"ak":["Latn",["AF"],"Akan"],"akz":["Latn",["AM"],"Albaamo innaaɬiilka"],"aln":["Latn",["EU"],"Gegë"],"am":["Ethi",["AF"],"አማርኛ"],"an":["Latn",["EU"],"aragonés"],"ang":["Latn",["EU"],"Ænglisc"],"anp":["Deva",["AS"],"अङ्गिका"],"ar":["Arab",["ME"],"العربية"],"arc":["Syrc",["ME"],"ܐܪܡܝܐ"],"arn":["Latn",["AM"],"mapudungun"],"aro":["Latn",["AM"],"Araona"],"arq":["Arab",["AF"],"جازايرية"],"ary":["Latn",["ME"],"Maġribi"],"arz":["Arab",["ME"],"مصرى"],"as":["Beng",["AS"],"অসমীয়া"],"ase":["Sgnw",["AM"],"American sign language"],"ast":["Latn",["EU"],"asturianu"],"av":["Cyrl",["EU"],"авар"],"avk":["Latn",["WW"],"Kotava"],"ay":["Latn",["AM"],"Aymar aru"],"az":["az-latn"],"az-latn":["Latn",["EU","ME"],"azərbaycanca"],"az-arab":["Arab",["EU","ME"],"آذربايجانجا"],"az-cyrl":["Latn",["EU","ME"],"азәрбајҹанҹа"],"azb":["az-arab"],"ba":["Cyrl",["EU"],"башҡортса"],"bar":["Latn",["EU"],"Boarisch"],"bat-smg":["sgs"],"bbc-latn":["Latn",["AS"],"Batak Toba"],"bbc-batk":["Batk",["AS"],"Batak Toba"],"bbc":["Latn",["AS"],"Batak Toba"],"bcc":["Arab",["AS","ME"],"بلوچی مکرانی"],"bcl":["Latn",["AS"],"Bikol Central"],"be-tarask":["Cyrl",["EU"],"беларуская (тарашкевіца)"],"be-x-old":["be-tarask"],"be":["Cyrl",["EU"],"беларуская"],"bew":["Latn",["AS"],"Bahasa Betawi"],"bfq":["Taml",["AS"],"படகா"],"bg":["Cyrl",["EU"],"български"],"bh":["Deva",["AS"],"भोजपुरी"],"bho":["Deva",["AS"],"भोजपुरी"],"bi":["Latn",["PA"],"Bislama"],"bjn":["Latn",["AS"],"Bahasa Banjar"],"bm":["Latn",["AF"],"bamanankan"],"bn":["Beng",["AS"],"বাংলা"],"bo":["Tibt",["AS"],"བོད་ཡིག"],"bpy":["Beng",["AS"],"বিষ্ণুপ্রিয়া মণিপুরী"],"bqi":["Arab",["ME"],"بختياري"],"br":["Latn",["EU"],"brezhoneg"],"brh":["Latn",["ME","AS"],"Bráhuí"],"brx":["Deva",["AS"],"बड़ो"],"bs":["Latn",["EU"],"bosanski"],"bto":["Latn",["AS"],"Iriga Bicolano"],"bug":["Bugi",["AS"],"ᨅᨔ ᨕᨘᨁᨗ"],"bxr":["Cyrl",["AS"],"буряад"],"ca":["Latn",["EU"],"català"],"cbk-zam":["Latn",["AS"],"Chavacano de Zamboanga"],"cdo":["Latn",["AS"],"Mìng-dĕ̤ng-ngṳ̄"],"ce":["Cyrl",["EU"],"нохчийн"],"ceb":["Latn",["AS"],"Cebuano"],"ch":["Latn",["PA"],"Chamoru"],"cho":["Latn",["AM"],"Choctaw"],"chr":["Cher",["AM"],"ᏣᎳᎩ"],"chy":["Latn",["AM"],"Tsetsêhestâhese"],"ckb":["Arab",["ME"],"کوردی"],"co":["Latn",["EU"],"corsu"],"cps":["Latn",["AS"],"Capiceño"],"cr":["Cans",["AM"],"ᓀᐦᐃᔭᐍᐏᐣ"],"cr-cans":["cr"],"cr-latn":["Latn",["AM"],"Nēhiyawēwin"],"crh":["Latn",["EU"],"qırımtatarca"],"crh-cyrl":["Cyrl",["EU"],"къырымтатарджа"],"crh-latn":["crh"],"cs":["Latn",["EU"],"česky"],"csb":["Latn",["EU"],"kaszëbsczi"],"cu":["Cyrl",["EU"],"словѣньскъ \/ ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ"],"cv":["Cyrl",["EU"],"Чӑвашла"],"cy":["Latn",["EU"],"Cymraeg"],"da":["Latn",["EU"],"dansk"],"de-at":["Latn",["EU"],"Österreichisches Deutsch"],"de-ch":["Latn",["EU"],"Schweizer Hochdeutsch"],"de-formal":["Latn",["EU"],"Deutsch (Sie-Form)"],"de":["Latn",["EU"],"Deutsch"],"diq":["Latn",["EU","AS"],"Zazaki"],"dsb":["Latn",["EU"],"dolnoserbski"],"dtp":["Latn",["AS"],"Dusun Bundu-liwan"],"dv":["Thaa",["AS"],"ދިވެހިބަސް"],"dz":["Tibt",["AS"],"ཇོང་ཁ"],"ee":["Latn",["AF"],"eʋegbe"],"egl":["Latn",["EU"],"Emiliàn"],"el":["Grek",["EU"],"Ελληνικά"],"eml":["Latn",["EU"],"emiliàn e rumagnòl"],"en-ca":["Latn",["AM"],"Canadian English"],"en-gb":["Latn",["EU","AS","PA"],"British English"],"en":["Latn",["EU","AM","AF","ME","AS","PA","WW"],"English"],"eo":["Latn",["WW"],"Esperanto"],"es-419":["Latn",["AM"],"español de America Latina"],"es-formal":["Latn",["EU","AM","AF","WW"],"español (formal)"],"es":["Latn",["EU","AM","AF","WW"],"español"],"esu":["Latn",["AM"],"Yup'ik"],"et":["Latn",["EU"],"eesti"],"eu":["Latn",["EU"],"euskara"],"ext":["Latn",["EU"],"estremeñu"],"fa":["Arab",["ME"],"فارسی"],"ff":["Latn",["AF"],"Fulfulde"],"fi":["Latn",["EU"],"suomi"],"fil":["tl"],"fit":["Latn",["EU"],"meänkieli"],"fiu-vro":["vro"],"fj":["Latn",["PA"],"Na Vosa Vakaviti"],"fo":["Latn",["EU"],"føroyskt"],"fr":["Latn",["EU","AM","WW"],"français"],"frc":["Latn",["AM"],"français cadien"],"frp":["Latn",["EU"],"arpetan"],"frr":["Latn",["EU"],"Nordfriisk"],"fur":["Latn",["EU"],"furlan"],"fy":["Latn",["EU"],"Frysk"],"ga":["Latn",["EU"],"Gaeilge"],"gag":["Latn",["EU"],"Gagauz"],"gah":["Latn",["AS"],"Alekano"],"gan-hans":["Hans",["AS"],"赣语(简体)"],"gan-hant":["gan"],"gan":["Hant",["AS"],"贛語"],"gbz":["Latn",["AS"],"Dari"],"gcf":["Latn",["AM"],"Guadeloupean Creole French"],"gd":["Latn",["EU"],"Gàidhlig"],"gl":["Latn",["EU"],"galego"],"glk":["Arab",["ME"],"گیلکی"],"gn":["Latn",["AM"],"Avañe'ẽ"],"gom":["Deva",["AS"],"कोंकणी"],"gom-deva":["gom"],"gom-latn":["Latn",["AS"],"Konknni"],"got":["Goth",["EU"],"𐌲𐌿𐍄𐌹𐍃𐌺"],"grc":["Grek",["EU"],"Ἀρχαία ἑλληνικὴ"],"gsw":["Latn",["EU"],"Alemannisch"],"gu":["Gujr",["AS"],"ગુજરાતી"],"guc":["Latn",["AM"],"Wayúu"],"gur":["Latn",["AF"],"Gurenɛ"],"gv":["Latn",["EU"],"Gaelg"],"ha-arab":["Arab",["AF"],"هَوُسَ"],"ha-latn":["Latn",["AF"],"Hausa"],"ha":["ha-latn"],"hak":["Latn",["AS"],"Hak-kâ-fa"],"haw":["Latn",["AM","PA"],"Hawai`i"],"he":["Hebr",["ME"],"עברית"],"hi":["Deva",["AS"],"हिन्दी"],"hif":["Latn",["PA","AS"],"Fiji Hindi"],"hif-deva":["Deva",["AS"],"फ़ीजी हिन्दी"],"hif-latn":["hif"],"hil":["Latn",["AS"],"Ilonggo"],"hne":["Deva",["AS"],"छत्तीसगढ़ी"],"ho":["Latn",["PA"],"Hiri Motu"],"hr":["Latn",["EU"],"hrvatski"],"hsb":["Latn",["EU"],"hornjoserbsce"],"hsn":["Hans",["AS"],"湘语"],"ht":["Latn",["AM"],"Kreyòl ayisyen"],"hu-formal":["Latn",["EU"],"Magyar (magázó)"],"hu":["Latn",["EU"],"magyar"],"hy":["Armn",["EU","ME"],"Հայերեն"],"hz":["Latn",["AF"],"Otsiherero"],"ia":["Latn",["WW"],"interlingua"],"id":["Latn",["AS"],"Bahasa Indonesia"],"ie":["Latn",["WW"],"Interlingue"],"ig":["Latn",["AF"],"Igbo"],"ii":["Yiii",["AS"],"ꆇꉙ"],"ik":["Latn",["AM"],"Iñupiak"],"ike-cans":["Cans",["AM"],"ᐃᓄᒃᑎᑐᑦ"],"ike-latn":["Latn",["AM"],"inuktitut"],"ilo":["Latn",["AS"],"Ilokano"],"inh":["Cyrl",["EU"],"ГӀалгӀай"],"io":["Latn",["WW"],"Ido"],"is":["Latn",["EU"],"íslenska"],"it":["Latn",["EU"],"italiano"],"iu":["Cans",["AM"],"ᐃᓄᒃᑎᑐᑦ"],"ja":["Jpan",["AS"],"日本語"],"jam":["Latn",["AM"],"Patois"],"jbo":["Latn",["WW"],"lojban"],"jut":["Latn",["EU"],"jysk"],"jv":["Latn",["AS","PA"],"Basa Jawa"],"jv-java":["Java",["AS","PA"],"ꦧꦱꦗꦮ"],"ka":["Geor",["EU"],"ქართული"],"kaa":["Latn",["AS"],"Qaraqalpaqsha"],"kab":["Latn",["AF","EU"],"Taqbaylit"],"kbd-cyrl":["kbd"],"kbd-latn":["Latn",["EU"],"Qabardjajəbza"],"kbd":["Cyrl",["EU","ME"],"Адыгэбзэ"],"kea":["Latn",["AF"],"Kabuverdianu"],"kg":["Latn",["AF"],"Kongo"],"kgp":["Latn",["AM"],"Kaingáng"],"khw":["Arab",["ME","AS"],"کھوار"],"ki":["Latn",["AF"],"Gĩkũyũ"],"kiu":["Latn",["EU","ME"],"Kırmancki"],"kj":["Latn",["AF"],"Kwanyama"],"kjh":["Cyrl",["AS"],"хакас"],"kk":["kk-cyrl"],"kk-arab":["Arab",["EU","AS"],"قازاقشا (تٶتە)"],"kk-cn":["kk-arab"],"kk-cyrl":["Cyrl",["EU","AS"],"қазақша"],"kk-kz":["kk-cyrl"],"kk-latn":["Latn",["EU","AS","ME"],"qazaqşa"],"kk-tr":["kk-latn"],"kl":["Latn",["AM","EU"],"kalaallisut"],"km":["Khmr",["AS"],"ភាសាខ្មែរ"],"kn":["Knda",["AS"],"ಕನ್ನಡ"],"ko-kp":["Kore",["AS"],"한국어 (조선)"],"ko":["Kore",["AS"],"한국어"],"koi":["Cyrl",["EU"],"Перем Коми"],"kr":["Latn",["AF"],"Kanuri"],"krc":["Cyrl",["EU"],"къарачай-малкъар"],"kri":["Latn",["AF"],"Krio"],"krj":["Latn",["ME","EU"],"Kinaray-a"],"krl":["Latn",["EU"],"Karjala"],"ks-arab":["Arab",["AS"],"کٲشُر"],"ks-deva":["Deva",["AS"],"कॉशुर"],"ks":["Arab",["AS"],"کٲشُر"],"ksf":["Latn",["AF"],"Bafia"],"ksh":["Latn",["EU"],"Ripoarisch"],"ku":["ku-latn"],"ku-arab":["Arab",["EU","ME"],"كوردي"],"ku-latn":["Latn",["EU","ME"],"Kurdî"],"kv":["Cyrl",["EU"],"коми"],"kw":["Latn",["EU"],"kernowek"],"ky":["Cyrl",["AS"],"Кыргызча"],"la":["Latn",["EU"],"Latina"],"lad":["lad-latn"],"lad-latn":["Latn",["ME","EU","AM"],"Ladino"],"lad-hebr":["Hebr",["ME","EU","AM"],"לאדינו"],"lb":["Latn",["EU"],"Lëtzebuergesch"],"lbe":["Cyrl",["EU"],"лакку"],"lez":["Cyrl",["EU"],"лезги"],"lfn":["Latn",["WW"],"Lingua Franca Nova"],"lg":["Latn",["AF"],"Luganda"],"li":["Latn",["EU"],"Limburgs"],"lij":["Latn",["EU"],"Ligure"],"liv":["Latn",["EU"],"Līvõ kēļ"],"lld":["Latn",["EU"],"Ladin"],"lmo":["Latn",["EU"],"lumbaart"],"ln":["Latn",["AF"],"lingála"],"lo":["Laoo",["AS"],"ລາວ"],"loz":["Latn",["AF"],"Silozi"],"lt":["Latn",["EU"],"lietuvių"],"lrc":["Arab",["AS"],"لوری"],"ltg":["Latn",["EU"],"latgaļu"],"lud":["Latn",["EU"],"lüüdi"],"lus":["Latn",["AS"],"Mizo ţawng"],"lut":["Latn",["AM"],"dxʷləšucid"],"lv":["Latn",["EU"],"latviešu"],"lzh":["Hant",["AS"],"文言"],"lzz":["Latn",["EU","ME"],"Lazuri"],"mai":["Deva",["AS"],"मैथिली"],"map-bms":["Latn",["AS"],"Basa Banyumasan"],"mdf":["Cyrl",["EU"],"мокшень"],"mfe":["Latn",["AM"],"Morisyen"],"mg":["Latn",["AF"],"Malagasy"],"mh":["Latn",["PA"],"Ebon"],"mhr":["Cyrl",["EU"],"олык марий"],"mi":["Latn",["PA"],"Māori"],"mic":["Latn",["AM"],"Mi'kmaq"],"min":["Latn",["AS"],"Baso Minangkabau"],"mk":["Cyrl",["EU"],"македонски"],"ml":["Mlym",["AS","ME"],"മലയാളം"],"mn":["Cyrl",["AS"],"монгол"],"mnc":["Mong",["AS"],"ᠮᠠᠨᠵᡠ ᡤᡳᠰᡠᠨ"],"mni":["Beng",["AS"],"মেইতেই লোন্"],"mnw":["Mymr",["AS"],"ဘာသာ မန်"],"mo":["Cyrl",["EU"],"молдовеняскэ"],"mr":["Deva",["AS","ME"],"मराठी"],"mrj":["Cyrl",["EU"],"кырык мары"],"ms":["Latn",["AS"],"Bahasa Melayu"],"mt":["Latn",["EU"],"Malti"],"mui":["Latn",["AS"],"Musi"],"mus":["Latn",["AM"],"Mvskoke"],"mwl":["Latn",["EU"],"Mirandés"],"mwv":["Latn",["AS"],"Behase Mentawei"],"my":["Mymr",["AS"],"မြန်မာဘာသာ"],"myv":["Cyrl",["EU"],"эрзянь"],"mzn":["Arab",["ME","AS"],"مازِرونی"],"na":["Latn",["PA"],"Dorerin Naoero"],"nah":["Latn",["AM"],"Nāhuatl"],"nan":["Latn",["AS"],"Bân-lâm-gú"],"nap":["Latn",["EU"],"Nnapulitano"],"nb":["Latn",["EU"],"norsk (bokmål)"],"nds-nl":["Latn",["EU"],"Nedersaksisch"],"nds":["Latn",["EU"],"Plattdüütsch"],"ne":["Deva",["AS"],"नेपाली"],"new":["Deva",["AS"],"नेपाल भाषा"],"ng":["Latn",["AF"],"Oshiwambo"],"niu":["Latn",["PA"],"ko e vagahau Niuē"],"njo":["Latn",["AS"],"Ao"],"nl-informal":["Latn",["EU","AM"],"Nederlands (informeel)"],"nl":["Latn",["EU","AM"],"Nederlands"],"nn":["Latn",["EU"],"norsk (nynorsk)"],"no":["Latn",["EU"],"norsk"],"nov":["Latn",["WW"],"Novial"],"nqo":["Nkoo",["AF"],"ߒߞߏ"],"nrm":["Latn",["EU"],"Nouormand"],"nso":["Latn",["AF"],"Sesotho sa Leboa"],"nv":["Latn",["AM"],"Diné bizaad"],"ny":["Latn",["AF"],"Chi-Chewa"],"oc":["Latn",["EU"],"occitan"],"om":["Latn",["AF"],"Oromoo"],"or":["Orya",["AS"],"ଓଡ଼ିଆ"],"os":["Cyrl",["EU"],"Ирон"],"ota":["Arab",["AS","EU"],"لسان عثمانى"],"pa":["pa-guru"],"pa-guru":["Guru",["AS"],"ਪੰਜਾਬੀ"],"pag":["Latn",["AS"],"Pangasinan"],"pam":["Latn",["AS"],"Kapampangan"],"pap":["Latn",["AM"],"Papiamentu"],"pcd":["Latn",["EU"],"Picard"],"pdc":["Latn",["EU","AM"],"Deitsch"],"pdt":["Latn",["EU","AM"],"Plautdietsch"],"pfl":["Latn",["EU"],"Pälzisch"],"pi":["Deva",["AS"],"पालि"],"pih":["Latn",["PA"],"Norfuk \/ Pitkern"],"pis":["Latn",["PA"],"Pijin"],"pko":["Latn",["AF"],"Pökoot"],"pl":["Latn",["EU"],"polski"],"pms":["Latn",["EU"],"Piemontèis"],"pnb":["Arab",["AS","ME"],"پنجابی"],"pnt":["Grek",["EU"],"Ποντιακά"],"ppl":["Latn",["AM"],"Nawat"],"prg":["Latn",["EU"],"Prūsiskan"],"ps":["Arab",["AS","ME"],"پښتو"],"pt_BR":["Latn",["AM"],"português do Brasil"],"pt":["Latn",["EU","AS","PA","AF","WW"],"português"],"qu":["Latn",["AM"],"Runa Simi"],"qug":["Latn",["AM"],"Runa shimi"],"rap":["Latn",["AM"],"arero rapa nui"],"rgn":["Latn",["EU"],"Rumagnôl"],"rif":["Latn",["AF"],"Tarifit"],"rki":["Mymr",["AS"],"ရခိုင်"],"rm":["Latn",["EU"],"rumantsch"],"rmf":["Latn",["EU"],"kaalengo tšimb"],"rmy":["Latn",["EU"],"Romani"],"rn":["Latn",["AF"],"Kirundi"],"ro":["Latn",["EU"],"română"],"roa-rup":["rup"],"roa-tara":["Latn",["EU"],"tarandíne"],"rtm":["Latn",["PA"],"Faeag Rotuma"],"ru":["Cyrl",["EU","AS","ME"],"русский"],"rue":["Cyrl",["EU"],"русиньскый"],"rup":["Latn",["EU"],"Armãneashce"],"ruq":["Cyrl",["EU"],"Влахесте"],"ruq-cyrl":["ruq"],"ruq-grek":["Grek",["EU"],"Megleno-Romanian (Greek script)"],"ruq-latn":["Latn",["EU"],"Vlăheşte"],"rut":["Cyrl",["EU"],"мыхаӀбишды"],"rw":["Latn",["AF"],"Kinyarwanda"],"rwr":["Deva",["AS"],"मारवाड़ी"],"ryu":["Kana",["AS"],"ʔucināguci"],"sa":["Deva",["AS"],"संस्कृतम्"],"sah":["Cyrl",["EU","AS"],"саха тыла"],"sat":["Latn",["AS"],"Santali"],"saz":["Saur",["AS"],"ꢱꣃꢬꢵꢯ꣄ꢡ꣄ꢬꢵ"],"sc":["Latn",["EU"],"sardu"],"scn":["Latn",["EU"],"sicilianu"],"sco":["Latn",["EU"],"Scots"],"sd":["Arab",["AS"],"سنڌي"],"sdc":["Latn",["EU"],"Sassaresu"],"se":["Latn",["EU"],"sámegiella"],"ses":["Latn",["AF"],"Koyraboro Senni"],"sei":["Latn",["AM"],"Cmique Itom"],"sg":["Latn",["AF"],"Sängö"],"sgs":["Latn",["EU"],"žemaitėška"],"sh":["Latn",["EU"],"srpskohrvatski"],"shi-latn":["Latn",["AF"],"Tašlḥiyt"],"shi-tfng":["Tfng",["AF"],"ⵜⴰⵛⵍⵃⵉⵜ"],"shi":["shi-latn"],"shn":["Mymr",["AS"],"လိၵ်ႈတႆး"],"si":["Sinh",["AS"],"සිංහල"],"simple":["Latn",["WW"],"Simple English"],"sk":["Latn",["EU"],"slovenčina"],"sl":["Latn",["EU"],"slovenščina"],"sli":["Latn",["EU"],"Schläsch"],"slr":["Latn",["AS"],"Salırça"],"sly":["Latn",["AS"],"Bahasa Selayar"],"syc":["Syrc",["ME"],"ܣܘܪܝܝܐ"],"sm":["Latn",["PA"],"Gagana Samoa"],"sma":["Latn",["EU"],"åarjelsaemien"],"smj":["Latn",["EU"],"julevsámegiella"],"smn":["Latn",["EU"],"anarâškielâ"],"sms":["Latn",["EU"],"sää´mǩiõll"],"sn":["Latn",["AF"],"chiShona"],"so":["Latn",["AF"],"Soomaaliga"],"sq":["Latn",["EU"],"shqip"],"sr":["Cyrl",["EU"],"српски"],"sr-ec":["sr-cyrl"],"sr-cyrl":["Cyrl",["EU"],"српски"],"sr-el":["sr-latn"],"sr-latn":["Latn",["EU"],"srpski"],"srn":["Latn",["AM","EU"],"Sranantongo"],"ss":["Latn",["AF"],"SiSwati"],"st":["Latn",["AF"],"Sesotho"],"stq":["Latn",["EU"],"Seeltersk"],"su":["Latn",["AS"],"Basa Sunda"],"sv":["Latn",["EU"],"svenska"],"sw":["Latn",["AF"],"Kiswahili"],"swb":["Latn",["AF"],"Shikomoro"],"sxu":["Latn",["EU"],"Säggssch"],"szl":["Latn",["EU"],"ślůnski"],"ta":["Taml",["AS"],"தமிழ்"],"tcy":["Knda",["AS"],"ತುಳು"],"te":["Telu",["AS"],"తెలుగు"],"tet":["Latn",["AS","PA"],"tetun"],"tg-cyrl":["Cyrl",["AS"],"тоҷикӣ"],"tg-latn":["Latn",["AS"],"tojikī"],"tg":["Cyrl",["AS"],"тоҷикӣ"],"th":["Thai",["AS"],"ไทย"],"ti":["Ethi",["AF"],"ትግርኛ"],"tk":["Latn",["AS"],"Türkmençe"],"tkr":["Cyrl",["AS"],"ЦӀаьхна миз"],"tl":["Latn",["AS"],"Tagalog"],"tly":["Cyrl",["EU","AS","ME"],"толышә зывон"],"tn":["Latn",["AF"],"Setswana"],"to":["Latn",["PA"],"lea faka-Tonga"],"tokipona":["Latn",["WW"],"Toki Pona"],"tpi":["Latn",["PA","AS"],"Tok Pisin"],"tr":["Latn",["EU","ME"],"Türkçe"],"trp":["Latn",["AS"],"Kokborok (Tripuri)"],"tru":["Latn",["AS"],"Ṫuroyo"],"ts":["Latn",["AF"],"Xitsonga"],"tsd":["Grek",["EU"],"Τσακωνικά"],"tt":["Cyrl",["EU"],"татарча"],"tt-cyrl":["tt"],"tt-latn":["Latn",["EU"],"tatarça"],"ttt":["Cyrl",["AS"],"Tati"],"tum":["Latn",["AF"],"chiTumbuka"],"tw":["Latn",["AF"],"Twi"],"twd":["Latn",["EU"],"Tweants"],"ty":["Latn",["PA"],"Reo Mā`ohi"],"tyv":["Cyrl",["AS"],"тыва дыл"],"tzm":["Tfng",["AF"],"ⵜⴰⵎⴰⵣⵉⵖⵜ"],"udm":["Cyrl",["EU"],"удмурт"],"ug":["ug-arab"],"ug-arab":["Arab",["AS"],"ئۇيغۇرچە"],"ug-latn":["Latn",["AS"],"uyghurche"],"ug-cyrl":["Cyrl",["AS"],"уйғурчә"],"uk":["Cyrl",["EU"],"українська"],"ur":["Arab",["AS","ME"],"اردو"],"uz":["Latn",["AS"],"oʻzbekcha"],"ve":["Latn",["AF"],"Tshivenda"],"vec":["Latn",["EU"],"vèneto"],"vep":["Latn",["EU"],"vepsän kel’"],"vi":["Latn",["AS"],"Tiếng Việt"],"vls":["Latn",["EU"],"West-Vlams"],"vmf":["Latn",["EU"],"Mainfränkisch"],"vo":["Latn",["WW"],"Volapük"],"vot":["Latn",["EU"],"Vaďďa"],"vro":["Latn",["EU"],"Võro"],"wa":["Latn",["EU"],"walon"],"war":["Latn",["AS"],"Winaray"],"wls":["Latn",["PA"],"Faka'uvea"],"wo":["Latn",["AF"],"Wolof"],"wuu":["Hans",["AS"],"吴语"],"xal":["Cyrl",["EU"],"хальмг"],"xh":["Latn",["AF"],"isiXhosa"],"xmf":["Geor",["EU"],"მარგალური"],"ydd":["Hebr",["AS","EU"],"Eastern Yiddish"],"yi":["Hebr",["ME","EU","AM"],"ייִדיש"],"yo":["Latn",["AF"],"Yorùbá"],"yrk":["Cyrl",["AS"],"Ненэцяʼ вада"],"yrl":["Latn",["AM"],"ñe'engatú"],"yua":["Latn",["AM"],"Maaya T'aan"],"yue":["Hant",["AS"],"粵語"],"za":["Latn",["AS"],"Vahcuengh"],"zea":["Latn",["EU"],"Zeêuws"],"zh":["Hans",["AS"],"中文"],"zh-classical":["Hant",["AS"],"文言"],"zh_CN":["Hans",["AS"],"中文(中国大陆)"],"zh-hans":["Hans",["AS"],"中文(简体)"],"zh-hant":["Hant",["AS"],"中文(繁體)"],"zh-hk":["Hant",["AS"],"中文(香港)"],"zh-min-nan":["nan"],"zh-mo":["Hant",["AS"],"中文(澳門)"],"zh-my":["Hans",["AS"],"中文(马来西亚)"],"zh-sg":["Hans",["AS"],"中文(新加坡)"],"zh_TW":["Hant",["AS"],"中文(台灣)"],"zh-yue":["yue"],"zu":["Latn",["AF"],"isiZulu"]},"scriptgroups":{"Latin":["Latn","Goth"],"Greek":["Grek"],"WestCaucasian":["Armn","Geor"],"Arabic":["Arab"],"MiddleEastern":["Hebr","Syrc"],"African":["Ethi","Nkoo","Tfng"],"SouthAsian":["Beng","Deva","Gujr","Guru","Knda","Mlym","Orya","Saur","Sinh","Taml","Telu","Tibt","Thaa"],"Cyrillic":["Cyrl"],"CJK":["Hans","Hant","Kana","Kore","Jpan","Yiii"],"SouthEastAsian":["Batk","Bugi","Java","Khmr","Laoo","Mymr","Thai"],"Mongolian":["Mong"],"SignWriting":["Sgnw"],"NativeAmerican":["Cher","Cans"],"Special":["Zyyy"]},"rtlscripts":["Arab","Hebr","Syrc","Nkoo","Thaa"],"regiongroups":{"WW":1,"SP":1,"AM":2,"EU":3,"ME":3,"AF":3,"AS":4,"PA":4},"territories":{"AC":["en"],"AD":["ca","es","fr"],"AE":["ar","ml","ps","bal","fa"],"AF":["fa","ps","haz","uz-arab","tk-latn","prd","bal","ug-arab","kk-arab"],"AG":["en","pt"],"AI":["en"],"AL":["sq","el","mk"],"AM":["hy","ku-latn","az-latn"],"AO":["pt","umb","kmb","ln"],"AQ":["und"],"AR":["es","cy","gn"],"AS":["sm","en"],"AT":["de","bar","hr","sl","hu"],"AU":["en","zh-hant","it"],"AW":["nl","pap","en"],"AX":["sv"],"AZ":["az-latn","az-cyrl","tly-latn","ku-latn","ttt-latn","tkr-latn"],"BA":["bs-cyrl","bs-latn","hr","sr-cyrl","sr-latn"],"BB":["en"],"BD":["bn","rkt","syl","ccp","my","grt","mni"],"BE":["nl","en","fr","vls","wa","de"],"BF":["mos","dyu","fr"],"BG":["bg","tr"],"BH":["ar","ml"],"BI":["rn","fr","sw"],"BJ":["fr","fon","yo"],"BL":["fr"],"BM":["en"],"BN":["ms-latn","zh-hant","ms-arab","en"],"BO":["es","qu","ay","gn","aro"],"BQ":["pap","nl"],"BR":["pt","de","it","ja","ko","kgp","gub","yrl","xav"],"BS":["en"],"BT":["dz","ne","tsj","lep"],"BV":["und"],"BW":["en","tn","af"],"BY":["be","ru"],"BZ":["en","es"],"CA":["en","fr","it","de","pdt","cr-cans","crk","yi","iu-cans","iu-latn","moe","crj","atj","crl","csw","crm","ikt","moh","dgr","den","scs","nsk","chp","gwi"],"CC":["ms-arab","en"],"CD":["sw","lua","swc","fr","ln","lu","kg","lol","rw"],"CF":["fr","sg","ln"],"CG":["fr","ln"],"CH":["de","fr","gsw","it","lmo","rm","rmo","wae"],"CI":["fr","bci","sef","dnj","kfo","bqv"],"CK":["en"],"CL":["es","arn"],"CM":["fr","en","bum","ff","ewo","ybb","bbj","nnh","bkm","bas","bax","byv","mua","maf","bfd","bss","kkj","dua","mgo","ar","jgo","ksf","agq","ha-arab","nmg","yav"],"CN":["zh-hans","wuu","hsn","hak","nan","gan","ii","ug-arab","za","mn-mong","bo","ko","kk-arab","lis","ky-arab","nxq","khb","tdd","lcp","en","ru","vi","uz-cyrl","lzh"],"CO":["es","guc"],"CP":["und"],"CR":["es"],"CU":["es"],"CV":["kea","pt"],"CW":["pap","nl","es"],"CX":["en"],"CY":["el","tr","hy","ar"],"CZ":["cs","de","pl"],"DE":["de","en","nds","vmf","tr","hr","it","ku-latn","ru","el","ksh","pl","es","nl","da","hsb","frr","dsb","frs","stq","pfl"],"DG":["en"],"DJ":["aa","so","ar","fr"],"DK":["da","de","kl","jut"],"DM":["en"],"DO":["es","en"],"DZ":["arq","ar","fr","kab"],"EA":["es"],"EC":["es","qu","qug"],"EE":["et","ru","vro"],"EG":["ar","arz","el"],"EH":["ar"],"ER":["ti","en","tig","ar","aa","ssy","byn"],"ES":["es","en","ca","gl","eu","ast","ext"],"ET":["en","am","om","so","ti","sid","wal","aa"],"FI":["fi","sv","ru","en","et","rmf","se","smn","sms"],"FJ":["en","hi","hif-deva","fj","rtm"],"FK":["en"],"FM":["chk","pon","kos","yap","en","uli"],"FO":["fo"],"FR":["fr","en","oc","it","pt","pcd","gsw","br","co","ca","nl","eu","frp","ia"],"GA":["fr","puu"],"GB":["en","sco","pa-guru","cy","bn","zh-hant","syl","el","it","ks-arab","gd","yi","ml","ga","fr","kw"],"GD":["en"],"GE":["ka","xmf","ru","hy","ab","os","ku-latn"],"GF":["fr","gcr","zh-hant"],"GG":["en"],"GH":["ak","en","ee","abr","gur","gaa","ha-latn","saf"],"GI":["en"],"GL":["kl","da"],"GM":["en","man-latn"],"GN":["fr","ff","man-nkoo","sus","nqo","kpe"],"GP":["fr"],"GQ":["es","fan","fr","bvb"],"GR":["el","pnt-grek","mk","tr","bg","sq","tsd"],"GS":["und"],"GT":["es","quc"],"GU":["en","ch"],"GW":["pt"],"GY":["en"],"HK":["zh-hant","en","zh-hans"],"HM":["und"],"HN":["es","en"],"HR":["hr","it"],"HT":["ht","fr"],"HU":["hu","de","ro","hr","sk","sl"],"IC":["es"],"ID":["id","jv","su","mad","ms-arab","min","bew","ban","bug","bjn","ace","sas","bbc","zh-hant","mak","ljp","rej","gor","nij","kge","aoz","kvr","lbw","rob","mdr","sxn","sly","mwv"],"IE":["en","ga"],"IL":["he","ar","ru","ro","yi","en","pl","lad","hu","am","ti","ml"],"IM":["en","gv"],"IN":["hi","en","bn","te","mr","ta","ur","gu","kn","ml","or","pa-guru","bho","awa","as","bgc","mag","mwr","mai","hne","dcc","bjj","ne","sat","wtm","rkt","ks-arab","kok","gom","swv","gbm","lmn","sd-arab","gon-telu","kfy","doi","kru","sck","wbq","xnr","tcy","wbr","khn","brx","noe","bhb","mni","raj","hoc","mtr","unr-beng","bhi","hoj","kha","kfr","grt","unx-beng","bfy","srx","saz","ccp","sd-deva","bfq","njo","ria","bo","bpy","bft","bra","lep","btv","lif-deva","lah","sa","kht","dv","dz"],"IO":["en"],"IQ":["ar","ckb","fa","syr"],"IR":["fa","az-arab","azb","mzn","glk","ckb","tk-latn","lrc","ar","bal","rmt","bqi","luz","lki","prd","hy","ps","ka","gbz","kk-arab"],"IS":["is","da"],"IT":["it","en","fr","lmo","pms","sc","de","vec","nap","lij","scn","sl","sdc","fur","egl","ca","el","hr","rgn"],"JE":["en"],"JM":["en","jam"],"JO":["ar"],"JP":["ja","ryu","ko"],"KE":["en","sw","ki","luy","luo","kam","kln","guz","mer","mas","ebu","so","dav","teo","pko","om","saq","ar","pa-guru","gu"],"KG":["ky-cyrl","ru"],"KH":["km","cja","kdt"],"KI":["en","gil"],"KM":["ar","fr","zdj"],"KN":["en"],"KP":["ko"],"KR":["ko"],"KW":["ar"],"KY":["en"],"KZ":["ru","kk-cyrl","de","ug-cyrl"],"LA":["lo","kjg","kdt"],"LB":["ar","hy","ku-arab","fr","en"],"LC":["en"],"LI":["de","gsw","wae"],"LK":["si","ta","en"],"LR":["en","kpe","vai-vaii","men","vai-latn"],"LS":["st","zu","ss","en","xh"],"LT":["lt","ru","sgs"],"LU":["fr","lb","de"],"LV":["lv","ru","ltg"],"LY":["ar"],"MA":["ary","ar","zgh","fr","tzm-latn","shi-latn","shi-tfng","rif-latn","rif-tfng","es"],"MC":["fr"],"MD":["ro","uk","bg","gag","ru"],"ME":["sr-latn","sq","sr-cyrl"],"MF":["fr"],"MG":["mg","fr","en"],"MH":["en","mh"],"MK":["mk","sq","tr"],"ML":["bm-latn","fr","ffm","snk","mwk","ses","tmh","bm-nkoo","khq","dtm","kao","ar","bmq","bze"],"MM":["my","shn","mnw","kht"],"MN":["mn-cyrl","kk-arab","zh-hans","ru","ug-cyrl"],"MO":["zh-hant","pt","zh-hans","en"],"MP":["en","ch"],"MQ":["fr"],"MR":["ar","fr","ff","wo"],"MS":["en"],"MT":["mt","en"],"MU":["mfe","en","bho","ur","fr","ta"],"MV":["dv"],"MW":["en","ny","tum","zu"],"MX":["es","yua","nhe","nhw","maz","nch","sei"],"MY":["ms-latn","en","zh-hant","ta","jv","zmi","dtp","ml","bug","bjn"],"MZ":["pt","vmw","ndc","ts","ngl","seh","mgh","rng","ny","yao","sw","zu"],"NA":["af","kj","ng","naq","en","de","tn"],"NC":["fr"],"NE":["ha-latn","fr","dje","fuq","tmh","ar","twq"],"NF":["en"],"NG":["en","pcm","ha-latn","ig","yo","fuv","tiv","efi","ibb","ha-arab","bin","kaj","kcg","ar","cch","amo"],"NI":["es"],"NL":["nl","en","li","fy","gos","id","zea","rif-latn","tr"],"NO":["nb","nn","se"],"NP":["ne","mai","bho","new","jml","taj","awa","thl","bap","tdg","thr","mgp","lif-deva","thq","mrd","bfy","xsr","rjs","tsf","hi","ggn","gvr","bo","tkt","tdh","bn","unr-deva","lep"],"NR":["en","na"],"NU":["en","niu"],"NZ":["en","mi"],"OM":["ar","bal","fa"],"PA":["es","en","zh-hant"],"PE":["es","qu","ay"],"PF":["fr","ty","zh-hant"],"PG":["tpi","en","ho"],"PH":["en","fil","es","ceb","ilo","hil","bik","war","bhk","pam","pag","mdh","tsg","zh-hant","cps","krj","bto","hnn","tbw","bku"],"PK":["ur","pa-arab","en","lah","ps","sd-arab","skr","bal","brh","hno","fa","hnd","tg-arab","gju","bft","kvx","khw","mvy","kxp","gjk","ks-arab","btv"],"PL":["pl","szl","be","uk","csb","de","sli","lt"],"PM":["fr","en"],"PN":["en"],"PR":["es","en"],"PS":["ar"],"PT":["pt","gl"],"PW":["pau","en"],"PY":["gn","es","de"],"QA":["ar","fa","ml"],"RE":["fr","rcf","ta"],"RO":["ro","hu","de","tr","sr-latn","bg","el","pl"],"RS":["sr-cyrl","sr-latn","sq","hu","ro","hr","sk","uk"],"RU":["ru","tt","ba","cv","hy","ce","av","udm","chm","sah","os","kbd","myv","dar","bua","mdf","kum","kv","lez","krc","inh","tyv","az-cyrl","ady","krl","lbe","koi","mrj","alt","fi","sr-latn","vep","mn-cyrl","izh","cu"],"RW":["rw","fr","en"],"SA":["ar"],"SB":["en","rug"],"SC":["crs","fr","en"],"SD":["ar","en","nus","ha-arab"],"SE":["sv","fi","fit","se","rmu","yi","smj","sma","ia"],"SG":["en","zh-hans","ms-latn","ta","ml","pa-guru"],"SH":["en"],"SI":["sl","hu","it"],"SJ":["nb","ru"],"SK":["sk","hu","uk","pl","de"],"SL":["kri","en","men","tem"],"SM":["it","eo"],"SN":["wo","fr","ff","srr","dyo"],"SO":["so","ar","sw","om"],"SR":["nl","srn","zh-hant"],"SS":["ar","en"],"ST":["pt"],"SV":["es"],"SX":["en","es","vic","nl"],"SY":["ar","ku-latn","fr","hy","syr"],"SZ":["en","ss","zu","ts"],"TA":["en"],"TC":["en"],"TD":["fr","ar"],"TF":["fr"],"TG":["fr","ee"],"TH":["th","tts","nod","sou","mfa","zh-hant","kxm","kdt","mnw","shn","lcp","lwl"],"TJ":["tg-cyrl","ru","fa","ar"],"TK":["en","tkl"],"TL":["pt","tet"],"TM":["tk-latn","ru","uz-latn","ku-latn"],"TN":["aeb","ar","fr"],"TO":["to","en"],"TR":["tr","ku-latn","zza","kbd","az-latn","ar","bgx","bg","ady","kiu","hy","ka","sr-latn","lzz-latn","sq","ab","el","tru","uz-latn","ky-latn","kk-cyrl"],"TT":["en","es"],"TV":["tvl","en"],"TW":["zh-hant","trv"],"TZ":["sw","en","suk","nym","kde","bez","ksb","mas","mgy","asa","lag","jmc","rof","vun","rwk","sbp"],"UA":["uk","ru","pl","yi","rue","be","ro","bg","tr","hu","el"],"UG":["sw","lg","nyn","cgg","xog","en","teo","laj","ach","myx","rw","ttj","hi"],"UM":["en"],"US":["en","es","zh-hant","fr","de","fil","it","vi","ko","ru","nv","yi","pdc","haw","frc","chr","esu","lkt","ik"],"UY":["es"],"UZ":["uz-latn","uz-cyrl","ru","kaa","tr"],"VA":["it","la"],"VC":["en"],"VE":["es"],"VG":["en"],"VI":["en"],"VN":["vi","zh-hant","cjm"],"VU":["bi","en","fr"],"WF":["wls","fr","fud"],"WS":["sm","en"],"XK":["sq","aln","sr-cyrl","sr-latn"],"YE":["ar"],"YT":["swb","fr","buc","sw"],"ZA":["en","zu","xh","af","nso","tn","st","ts","ss","ve","hi","nr","sw"],"ZM":["en","bem","ny","loz"],"ZW":["en","sn","nd","mxc","ndc","kck","ny","ve","tn"],"ZZ":[]}};

- } ( jQuery ) );

@@ -1,465 +0,0 @@ 

- /**

-  * Utility functions for querying language data.

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- ( function ( $ ) {

- 	'use strict';

- 

- 	/**

- 	 * Is this language a redirect to another language?

- 	 * @param language string Language code

- 	 * @return Target language code if it's a redirect or false if it's not

- 	 */

- 	$.uls.data.isRedirect = function ( language ) {

- 		return ( $.uls.data.languages[language] !== undefined &&

- 			$.uls.data.languages[language].length === 1 ) ? $.uls.data.languages[language][0] : false;

- 	};

- 

- 	/**

- 	 * Returns the script of the language.

- 	 * @param language string Language code

- 	 * @return string

- 	 */

- 	$.uls.data.getScript = function ( language ) {

- 		var target = $.uls.data.isRedirect( language );

- 

- 		if ( target ) {

- 			return $.uls.data.getScript( target );

- 		}

- 

- 		if ( !$.uls.data.languages[language] ) {

- 			// Undetermined

- 			return 'Zyyy';

- 		}

- 

- 		return $.uls.data.languages[language][0];

- 	};

- 

- 	/**

- 	 * Returns the regions in which a language is spoken.

- 	 * @param language string Language code

- 	 * @return array|string 'UNKNOWN'

- 	 */

- 	$.uls.data.getRegions = function ( language ) {

- 		var target = $.uls.data.isRedirect( language );

- 

- 		if ( target ) {

- 			return $.uls.data.getRegions( target );

- 		}

- 

- 		return ( $.uls.data.languages[language] && $.uls.data.languages[language][1] ) || 'UNKNOWN';

- 	};

- 

- 	/**

- 	 * Returns the autonym of the language.

- 	 * @param language string Language code

- 	 * @return string

- 	 */

- 	$.uls.data.getAutonym = function ( language ) {

- 		var target = $.uls.data.isRedirect( language );

- 

- 		if ( target ) {

- 			return $.uls.data.getAutonym( target );

- 		}

- 

- 		return ( $.uls.data.languages[language] && $.uls.data.languages[language][2] ) || language;

- 	};

- 

- 	/**

- 	 * Returns all language codes and corresponding autonyms

- 	 * @return array

- 	 */

- 	$.uls.data.getAutonyms = function () {

- 		var language,

- 			autonymsByCode = {};

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			autonymsByCode[language] = $.uls.data.getAutonym( language );

- 		}

- 

- 		return autonymsByCode;

- 	};

- 

- 	/**

- 	 * Returns an array of all region codes.

- 	 * @return array

- 	 */

- 	$.uls.data.getAllRegions = function () {

- 		var region,

- 			allRegions = [];

- 

- 		for ( region in $.uls.data.regiongroups ) {

- 			allRegions.push( region );

- 		}

- 

- 		return allRegions;

- 	};

- 

- 	/**

- 	 * Returns all languages written in script.

- 	 * @param script string

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInScript = function ( script ) {

- 		return $.uls.data.getLanguagesInScripts( [ script ] );

- 	};

- 

- 	/**

- 	 * Returns all languages written in the given scripts.

- 	 * @param scripts array of strings

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInScripts = function ( scripts ) {

- 		var language, i,

- 			languagesInScripts = [];

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			for ( i = 0; i < scripts.length; i++ ) {

- 				if ( scripts[i] === $.uls.data.getScript( language ) ) {

- 					languagesInScripts.push( language );

- 					break;

- 				}

- 			}

- 		}

- 

- 		return languagesInScripts;

- 	};

- 

- 	/**

- 	 * Returns all languages in a given region.

- 	 * @param region string

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInRegion = function ( region ) {

- 		return $.uls.data.getLanguagesInRegions( [ region ] );

- 	};

- 

- 	/**

- 	 * Returns all languages in given regions.

- 	 * @param regions array of strings.

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInRegions = function ( regions ) {

- 		var language, i,

- 			languagesInRegions = [];

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			for ( i = 0; i < regions.length; i++ ) {

- 				if ( $.inArray( regions[i], $.uls.data.getRegions( language ) ) !== -1 ) {

- 					languagesInRegions.push( language );

- 					break;

- 				}

- 			}

- 		}

- 

- 		return languagesInRegions;

- 	};

- 

- 	/**

- 	 * Returns all languages in a region group.

- 	 * @param groupNum number.

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInRegionGroup = function ( groupNum ) {

- 		return $.uls.data.getLanguagesInRegions( $.uls.data.getRegionsInGroup( groupNum ) );

- 	};

- 

- 	/**

- 	 * Returns an associative array of languages in a region,

- 	 * grouped by script.

- 	 * @param region string Region code

- 	 * @return associative array

- 	 */

- 	$.uls.data.getLanguagesByScriptInRegion = function ( region ) {

- 		var language, script,

- 			languagesByScriptInRegion = {};

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			if ( $.inArray( region, $.uls.data.getRegions( language ) ) !== -1 ) {

- 				script = $.uls.data.getScript( language );

- 

- 				if ( languagesByScriptInRegion[script] === undefined ) {

- 					languagesByScriptInRegion[script] = [];

- 				}

- 				languagesByScriptInRegion[script].push( language );

- 			}

- 		}

- 

- 		return languagesByScriptInRegion;

- 	};

- 

- 	/**

- 	 * Returns an associative array of languages in a region,

- 	 * grouped by script group.

- 	 * @param region string Region code

- 	 * @return associative array

- 	 */

- 	$.uls.data.getLanguagesByScriptGroupInRegion = function ( region ) {

- 		return $.uls.data.getLanguagesByScriptGroupInRegions( [ region ] );

- 	};

- 

- 	/**

- 	 * Returns an associative array of all languages,

- 	 * grouped by script group.

- 	 * @return associative array

- 	 */

- 	$.uls.data.getAllLanguagesByScriptGroup = function () {

- 		return $.uls.data.getLanguagesByScriptGroupInRegions( $.uls.data.getAllRegions() );

- 	};

- 

- 	/**

- 	 * Get the given list of languages grouped by script.

- 	 * @param languages Array of language codes

- 	 * @return {Object} Array of languages indexed by script codes

- 	 */

- 	$.uls.data.getLanguagesByScriptGroup = function ( languages ) {

- 		var languagesByScriptGroup = {},

- 			language, codeToAdd, langScriptGroup;

- 

- 		for ( language in languages ) {

- 			codeToAdd = $.uls.data.isRedirect( language ) || language;

- 

- 			langScriptGroup = $.uls.data.getScriptGroupOfLanguage( codeToAdd );

- 

- 			if ( !languagesByScriptGroup[langScriptGroup] ) {

- 				languagesByScriptGroup[langScriptGroup] = [];

- 			}

- 

- 			// Prevent duplicate adding of redirects

- 			if ( $.inArray( codeToAdd, languagesByScriptGroup[langScriptGroup] ) === -1 ) {

- 				languagesByScriptGroup[langScriptGroup].push( codeToAdd );

- 			}

- 		}

- 

- 		return languagesByScriptGroup;

- 	};

- 

- 	/**

- 	 * Returns an associative array of languages in several regions,

- 	 * grouped by script group.

- 	 * @param regions array of strings - region codes

- 	 * @return associative array

- 	 */

- 	$.uls.data.getLanguagesByScriptGroupInRegions = function ( regions ) {

- 		var language, i, scriptGroup,

- 			languagesByScriptGroupInRegions = {};

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			for ( i = 0; i < regions.length; i++ ) {

- 				if ( $.inArray( regions[i], $.uls.data.getRegions( language ) ) !== -1 ) {

- 					scriptGroup = $.uls.data.getScriptGroupOfLanguage( language );

- 

- 					if ( languagesByScriptGroupInRegions[scriptGroup] === undefined ) {

- 						languagesByScriptGroupInRegions[scriptGroup] = [];

- 					}

- 

- 					languagesByScriptGroupInRegions[scriptGroup].push( language );

- 					break;

- 				}

- 			}

- 		}

- 

- 		return languagesByScriptGroupInRegions;

- 	};

- 

- 	/**

- 	 * Returns an array of languages grouped by region group,

- 	 * region, script group and script.

- 	 * @return associative array

- 	 */

- 	$.uls.data.getAllLanguagesByRegionAndScript = function () {

- 		var region, regionGroup, language,

- 			script, scriptGroup, regions, regionNum,

- 			allLanguagesByRegionAndScript = {};

- 

- 		for ( region in $.uls.data.regiongroups ) {

- 			regionGroup = $.uls.data.regiongroups[region];

- 

- 			if ( allLanguagesByRegionAndScript[regionGroup] === undefined ) {

- 				allLanguagesByRegionAndScript[regionGroup] = {};

- 			}

- 

- 			allLanguagesByRegionAndScript[regionGroup][region] = {};

- 		}

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			script = $.uls.data.getScript( language );

- 			scriptGroup = $.uls.data.getGroupOfScript( script );

- 			regions = $.uls.data.getRegions( language );

- 

- 			for ( regionNum = 0; regionNum < regions.length; regionNum++ ) {

- 				region = regions[regionNum];

- 				regionGroup = $.uls.data.regiongroups[region];

- 

- 				if ( allLanguagesByRegionAndScript[regionGroup][region][scriptGroup] === undefined ) {

- 					allLanguagesByRegionAndScript[regionGroup][region][scriptGroup] = {};

- 				}

- 

- 				if ( allLanguagesByRegionAndScript[regionGroup][region][scriptGroup][script] === undefined ) {

- 					allLanguagesByRegionAndScript[regionGroup][region][scriptGroup][script] = [];

- 				}

- 

- 				allLanguagesByRegionAndScript[regionGroup][region][scriptGroup][script].push( language );

- 			}

- 		}

- 

- 		return allLanguagesByRegionAndScript;

- 	};

- 

- 	/**

- 	 * Returns all regions in a region group.

- 	 * @param groupNum int

- 	 * @return array of strings

- 	 */

- 	$.uls.data.getRegionsInGroup = function ( groupNum ) {

- 		var region,

- 			regionsInGroup = [];

- 

- 		for ( region in $.uls.data.regiongroups ) {

- 			if ( $.uls.data.regiongroups[region] === groupNum ) {

- 				regionsInGroup.push( region );

- 			}

- 		}

- 

- 		return regionsInGroup;

- 	};

- 

- 	/**

- 	 * Returns the script group of a script or 'Other' if it doesn't

- 	 * belong to any group.

- 	 * @param script string Script code

- 	 * @return string script group name

- 	 */

- 	$.uls.data.getGroupOfScript = function ( script ) {

- 		var scriptGroup;

- 

- 		for ( scriptGroup in $.uls.data.scriptgroups ) {

- 			if ( $.inArray( script, $.uls.data.scriptgroups[scriptGroup] ) !== -1 ) {

- 				return scriptGroup;

- 			}

- 		}

- 

- 		return 'Other';

- 	};

- 

- 	/**

- 	 * Returns the script group of a language.

- 	 * @param language string Language code

- 	 * @return string script group name

- 	 */

- 	$.uls.data.getScriptGroupOfLanguage = function ( language ) {

- 		return $.uls.data.getGroupOfScript( $.uls.data.getScript( language ) );

- 	};

- 

- 	/**

- 	 * A callback for sorting languages by autonym.

- 	 * Can be used as an argument to a sort function.

- 	 * @param a string Language code

- 	 * @param b string Language code

- 	 */

- 	$.uls.data.sortByAutonym = function ( a, b ) {

- 		var autonymA = $.uls.data.getAutonym( a ) || a,

- 			autonymB = $.uls.data.getAutonym( b ) || b;

- 

- 		return ( autonymA.toLowerCase() < autonymB.toLowerCase() ) ? -1 : 1;

- 	};

- 

- 	/**

- 	 * Check if a language is right-to-left.

- 	 * @param language string Language code

- 	 * @return boolean

- 	 */

- 	$.uls.data.isRtl = function ( language ) {

- 		return $.inArray( $.uls.data.getScript( language ), $.uls.data.rtlscripts ) !== -1;

- 	};

- 

- 	/**

- 	 * Return the direction of the language

- 	 * @param language string Language code

- 	 * @return string

- 	 */

- 	$.uls.data.getDir = function ( language ) {

- 		return $.uls.data.isRtl( language ) ? 'rtl' : 'ltr';

- 	};

- 

- 	/**

- 	 * Returns the languages spoken in a territory.

- 	 * @param territory string Territory code

- 	 * @return list of language codes

- 	 */

- 	$.uls.data.getLanguagesInTerritory = function ( territory ) {

- 		return $.uls.data.territories[territory];

- 	};

- 

- 	/**

- 	 * Adds a language in run time and sets its options as provided.

- 	 * If the target option is provided, the language is defined as a redirect.

- 	 * Other possible options are script, regions and autonym.

- 	 *

- 	 * @param code string New language code.

- 	 * @param options Object Language properties.

- 	 * @return list of language codes

- 	 */

- 	$.uls.data.addLanguage = function( code, options ) {

- 		if ( options.target ) {

- 			$.uls.data.languages[code] = [options.target];

- 		} else {

- 			$.uls.data.languages[code] = [options.script, options.regions, options.autonym];

- 		}

- 	};

- 

- 	/**

- 	 * Removes a language from the langdb in run time.

- 	 *

- 	 * @param code string Language code to delete.

- 	 * @return true if the language was removed, false otherwise.

- 	 */

- 	$.uls.data.deleteLanguage = function( code ) {

- 		if ( $.uls.data.languages[code] ) {

- 			delete $.uls.data.languages[code];

- 

- 			return true;

- 		}

- 

- 		return false;

- 	};

- } ( jQuery ) );

@@ -1,360 +0,0 @@ 

- /**

-  * jQuery language filter plugin.

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- /**

-  * Usage: $( 'inputbox' ).languagefilter();

-  * The values for autocompletion is from the options.languages.

-  * The data is in the format of languagecode:languagename.

-  */

- (function ( $ ) {

- 	'use strict';

- 

- 	var LanguageFilter, delay;

- 

- 	LanguageFilter = function( element, options ) {

- 		this.$element = $( element );

- 		this.options = $.extend( {}, $.fn.regionselector.defaults, options );

- 		this.$element.addClass( 'languagefilter' );

- 		this.resultCount = 0;

- 		this.$suggestion = this.$element.parents().find( '#' + this.$element.data( 'suggestion' ) );

- 		this.$clear = this.$element.parents().find( '#' + this.$element.data( 'clear' ) );

- 		this.selectedLanguage = null;

- 

- 		this.listen();

- 	};

- 

- 	delay = ( function() {

- 		var timer = 0;

- 

- 		return function( callback, milliseconds ) {

- 			clearTimeout( timer );

- 			timer = setTimeout( callback, milliseconds );

- 		};

- 	} () );

- 

- 	LanguageFilter.prototype = {

- 		listen: function() {

- 			this.$element.on( 'keypress', $.proxy( this.keyup, this ) )

- 				.on( 'keyup', $.proxy( this.keyup, this ) );

- 

- 			if ( this.eventSupported( 'keydown' ) ) {

- 				this.$element.on( 'keydown', $.proxy( this.keyup, this ) );

- 			}

- 

- 			if ( this.$clear.length ) {

- 				this.$clear.on( 'click' , $.proxy( this.clear, this ) );

- 			}

- 

- 			this.toggleClear();

- 		},

- 

- 		keyup: function( e ) {

- 			var suggestion, query, languageFilter;

- 

- 			switch( e.keyCode ) {

- 				case 9: // Tab -> Autocomplete

- 					suggestion = this.$suggestion.val();

- 

- 					if ( suggestion && suggestion !== this.$element.val() ) {

- 						this.$element.val( suggestion );

- 						e.preventDefault();

- 						e.stopPropagation();

- 					}

- 					break;

- 				case 13: // Enter

- 					if ( !this.options.onSelect ) {

- 						break;

- 					}

- 

- 					// Avoid bubbling this 'enter' to background page elements

- 					e.preventDefault();

- 					e.stopPropagation();

- 

- 					query = $.trim( this.$element.val() ).toLowerCase();

- 

- 					if ( this.selectedLanguage ) {

- 						// this.selectLanguage will be populated from a matching search

- 						this.options.onSelect( this.selectedLanguage );

- 					} else if ( this.options.languages[query] ) {

- 						// Search is yet to happen (in timeout delay),

- 						// but we have a matching language code.

- 						this.options.onSelect( query );

- 					}

- 

- 					break;

- 				default:

- 					languageFilter = this;

- 

- 					if ( e.which < 32 &&

- 						e.which !== 8 // Backspace

- 					) {

- 						// ignore any ASCII control characters

- 						break;

- 					}

- 

- 					this.selectedLanguage = null;

- 

- 					delay( function() {

- 						if ( !languageFilter.$element.val() ) {

- 							languageFilter.clear();

- 						} else {

- 							languageFilter.options.$target.empty();

- 							languageFilter.search();

- 						}

- 					}, 300 );

- 

- 					this.toggleClear();

- 			}

- 		},

- 

- 		/**

- 		 * Clears the current search removing

- 		 * clear buttons and suggestions.

- 		 */

- 		deactivate: function() {

- 			this.$element.val( '' );

- 

- 			if ( !$.fn.uls.Constructor.prototype.isMobile() ) {

- 				this.$element.focus();

- 			}

- 

- 			this.toggleClear();

- 			this.autofill();

- 		},

- 

- 		/**

- 		 * Clears the search and shows all languages

- 		 */

- 		clear: function() {

- 			this.deactivate();

- 			this.$element.trigger( 'searchclear.uls' );

- 		},

- 

- 		/**

- 		 * Toggles the visibility of clear icon depending

- 		 * on whether there is anything to clear.

- 		 */

- 		toggleClear: function() {

- 			if ( !this.$clear.length ) {

- 				return;

- 			}

- 

- 			if ( this.$element.val() ) {

- 				this.$clear.show();

- 			} else {

- 				this.$clear.hide();

- 			}

- 		},

- 

- 		search: function() {

- 			var languagesInScript,

- 				query = $.trim( this.$element.val() ),

- 				languages = $.uls.data.getLanguagesByScriptGroup( this.options.languages ),

- 				scriptGroup, langNum, langCode;

- 

- 			this.resultCount = 0;

- 

- 			for ( scriptGroup in languages ) {

- 				languagesInScript = languages[scriptGroup];

- 

- 				languagesInScript.sort( $.uls.data.sortByAutonym );

- 

- 				for ( langNum = 0; langNum < languagesInScript.length; langNum++ ) {

- 					langCode = languagesInScript[langNum];

- 

- 					if ( query === '' || this.filter( langCode, query ) ) {

- 						if ( this.resultCount === 0 ) {

- 							// Autofill the first result.

- 							this.autofill( langCode );

- 						}

- 

- 						if ( query.toLowerCase() === langCode ) {

- 							this.selectedLanguage = langCode;

- 						}

- 

- 						if ( this.render( langCode ) ) {

- 							this.resultCount++;

- 						}

- 					}

- 				}

- 			}

- 

- 			// Also do a search by search API

- 			if( !this.resultCount && this.options.searchAPI && query ) {

- 				this.searchAPI( query );

- 			} else {

- 				this.resultHandler( query );

- 			}

- 		},

- 

- 		searchAPI: function( query ) {

- 			var languageFilter = this;

- 

- 			$.get( languageFilter.options.searchAPI, { search: query }, function( result ) {

- 				$.each( result.languagesearch, function( code, name ) {

- 					if ( languageFilter.resultCount === 0 ) {

- 						// Autofill the first result.

- 						languageFilter.autofill( code, name );

- 					}

- 

- 					if ( languageFilter.render( code ) ) {

- 						languageFilter.resultCount++;

- 					}

- 				} );

- 

- 				languageFilter.resultHandler( query );

- 			} );

- 		},

- 

- 		/**

- 		 * Handler method to be called once search is over.

- 		 * Based on search result triggers resultsfound or noresults events

- 		 * @param query string

- 		 */

- 		resultHandler: function( query ) {

- 			if ( this.resultCount === 0 ) {

- 				this.$suggestion.val( '' );

- 				this.$element.trigger( 'noresults.uls', query );

- 			} else {

- 				this.$element.trigger( 'resultsfound.uls', [query, this.resultCount] );

- 			}

- 		},

- 

- 		autofill: function( langCode, languageName ) {

- 			if ( !this.$suggestion.length ) {

- 				return;

- 			}

- 

- 			if ( !this.$element.val() ) {

- 				this.$suggestion.val( '' );

- 				return;

- 			}

- 

- 			this.selectedLanguage = langCode;

- 			languageName = languageName || this.options.languages[langCode];

- 

- 			if ( !languageName ) {

- 				return;

- 			}

- 

- 			var autonym,

- 				userInput = this.$element.val(),

- 				suggestion = userInput + languageName.substring( userInput.length, languageName.length );

- 

- 			if ( suggestion.toLowerCase() !== languageName.toLowerCase() ) {

- 				// see if it was autonym match

- 				autonym = $.uls.data.getAutonym( langCode ) || '';

- 				suggestion = userInput + autonym.substring( userInput.length, autonym.length );

- 

- 				if ( suggestion !== autonym ) {

- 					// Give up. It may be an ISO/script code match.

- 					suggestion = '';

- 				}

- 			}

- 

- 			// Make sure that it is a visual prefix.

- 			if ( !isVisualPrefix( userInput, suggestion ) ) {

- 				suggestion = '';

- 			}

- 

- 			this.$suggestion.val( suggestion );

- 		},

- 

- 		render: function( langCode ) {

- 			var $target = this.options.$target;

- 

- 			if ( !$target ) {

- 				return false;

- 			}

- 

- 			return $target.append( langCode );

- 		},

- 

- 		escapeRegex: function( value ) {

- 			return value.replace( /[\-\[\]{}()*+?.,\\\^$\|#\s]/g, '\\$&' );

- 		},

- 

- 		/**

- 		 * A search match happens if any of the following passes:

- 		 * a) Language name in current user interface language

- 		 * 'starts with' search string.

- 		 * b) Language autonym 'starts with' search string.

- 		 * c) ISO 639 code match with search string.

- 		 * d) ISO 15924 code for the script match the search string.

- 		 */

- 		filter: function( langCode, searchTerm ) {

- 			// FIXME script is ISO 15924 code. We might need actual name of script.

- 			var matcher = new RegExp( '^' + this.escapeRegex( searchTerm ), 'i' ),

- 				languageName = this.options.languages[langCode];

- 

- 			return matcher.test( languageName ) ||

- 				matcher.test( $.uls.data.getAutonym( langCode ) ) ||

- 				matcher.test( langCode ) ||

- 				matcher.test( $.uls.data.getScript( langCode ) );

- 		},

- 

- 		eventSupported: function ( eventName ) {

- 			var isSupported = eventName in this.$element;

- 

- 			if ( !isSupported ) {

- 				this.$element.setAttribute( eventName, 'return;' );

- 				isSupported = typeof this.$element[eventName] === 'function';

- 			}

- 

- 			return isSupported;

- 		}

- 	};

- 

- 	$.fn.languagefilter = function( option ) {

- 		return this.each( function() {

- 			var $this = $( this ),

- 				data = $this.data( 'languagefilter' ),

- 				options = typeof option === 'object' && option;

- 

- 			if ( !data ) {

- 				$this.data( 'languagefilter', ( data = new LanguageFilter( this, options ) ) );

- 			}

- 

- 			if ( typeof option === 'string' ) {

- 				data[option]();

- 			}

- 		} );

- 	};

- 

- 	$.fn.languagefilter.defaults = {

- 		$target: null, // Where to append the results

- 		searchAPI: null,

- 		languages: null, // Languages as code:name format.

- 		onSelect: null // Language select handler - like enter in filter textbox.

- 	};

- 

- 	$.fn.languagefilter.Constructor = LanguageFilter;

- 

- 	/**

- 	 * Check if a prefix is visually prefix of a string

- 	 * @param prefix string

- 	 * @param string string

- 	 */

- 	function isVisualPrefix( prefix, string ) {

- 		// Pre-base vowel signs of Indic languages. A vowel sign is called pre-base if

- 		// consonant + vowel becomes [vowel][consonant] when rendered. Eg: ക + െ => കെ

- 		var prebases = 'െേൈൊോൌெேைொோௌେୈୋୌિਿिিেৈোৌෙේෛොෝෞ';

- 		return prebases.indexOf( string[prefix.length] ) <= 0;

- 	}

- } ( jQuery ) );

@@ -1,396 +0,0 @@ 

- /**

-  * Universal Language Selector

-  * Language category display component - Used for showing the search results,

-  * grouped by regions, scripts

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- ( function ( $ ) {

- 	'use strict';

- 

- 	var noResultsTemplate, LanguageCategoryDisplay;

- 

- 	/*jshint multistr:true */

- 	noResultsTemplate = '<div class="twelve columns uls-no-results-view hide">\

- 		<h2 data-i18n="uls-no-results-found" class="eleven columns offset-by-one uls-no-results-found-title">\

- 		No results found\

- 		</h2>\

- 		<div id="uls-no-found-more" class="uls-no-found-more">\

- 			<div class="ten columns offset-by-one">\

- 				<p>\

- 					<span data-i18n="uls-search-help">You can search by language name, \

- 					script name, ISO code of language or \

- 					you can browse by region:</span>\

- 					<a class="uls-region-link" data-i18n="uls-region-AM" data-region="AM">America</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-EU" data-region="EU">Europe</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-ME" data-region="ME">Middle East</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-AF" data-region="AF">Africa</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-AS" data-region="AS">Asia</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-PA" data-region="PA">Pacific</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-WW" data-region="WW">Worldwide</a>.\

- 				</p>\

- 			</div>\

- 		</div>\

- 	</div>';

- 	/*jshint multistr:false */

- 

- 	LanguageCategoryDisplay = function ( element, options ) {

- 		this.$element = $( element );

- 		this.options = $.extend( {}, $.fn.lcd.defaults, options );

- 		this.$element.addClass( 'lcd' );

- 		this.regionLanguages = {};

- 		this.renderTimeout = null;

- 		this.cachedQuicklist = null;

- 

- 		this.$element.append( $( noResultsTemplate ) );

- 		this.$noResults = this.$element.children( '.uls-no-results-view' );

- 

- 		this.render();

- 		this.listen();

- 	};

- 

- 	LanguageCategoryDisplay.prototype = {

- 		constructor: LanguageCategoryDisplay,

- 

- 		/**

- 		 * Adds language to the language list.

- 		 * @param {string} langCode

- 		 * @param {string} [regionCode]

- 		 * @return {bool} Whether the language was added.

- 		 */

- 		append: function ( langCode, regionCode ) {

- 			var lcd = this, i, regions;

- 

- 			if ( !this.options.languages[langCode] ) {

- 				// Language is unknown or not in the list of languages for this context.

- 				return false;

- 			}

- 

- 			if ( regionCode ) {

- 				regions = [regionCode];

- 			} else {

- 				regions = $.uls.data.getRegions( langCode );

- 			}

- 

- 			// Worldwides only displayed once

- 			if ( $.inArray( 'WW', regions ) > -1 ) {

- 				regions = ['WW'];

- 			}

- 

- 			for ( i = 0; i < regions.length; i++ ) {

- 				this.regionLanguages[regions[i]].push( langCode );

- 			}

- 

- 			// Work around the bad interface, delay rendering until we have got

- 			// all the languages to speed up performance.

- 			window.clearTimeout( this.renderTimeout );

- 			this.renderTimeout = window.setTimeout( function () {

- 				lcd.renderRegions();

- 			}, 50 );

- 

- 			return true;

- 		},

- 

- 		render: function () {

- 			var $section,

- 				lcd = this,

- 				regions = [],

- 				regionNames = {

- 					// These are fallback text when i18n library not present

- 					WW: 'Worldwide',

- 					SP: 'Special',

- 					AM: 'America',

- 					EU: 'Europe',

- 					ME: 'Middle East',

- 					AS: 'Asia',

- 					AF: 'Africa',

- 					PA: 'Pacific'

- 				};

- 

- 			regions.push( this.buildQuicklist() );

- 

- 			$.each( $.uls.data.regiongroups, function ( regionCode ) {

- 				lcd.regionLanguages[regionCode] = [];

- 				// Don't show the region unless it was enabled

- 				if ( $.inArray( regionCode, lcd.options.showRegions ) === -1 ) {

- 					return;

- 				}

- 

- 				$section = $( '<div>' )

- 					.addClass( 'eleven columns offset-by-one uls-lcd-region-section hide' )

- 					.attr( 'id', regionCode )

- 					.append(

- 						$( '<h3>' )

- 						.attr( 'data-i18n', 'uls-region-' + regionCode )

- 						.addClass( 'eleven columns uls-lcd-region-title' )

- 						.text( regionNames[regionCode] )

- 					);

- 

- 				regions.push( $section );

- 			} );

- 

- 			lcd.$element.append( regions );

- 

- 			this.i18n();

- 		},

- 

- 		/**

- 		 * Renders a region and displays it if it has content.

- 		 */

- 		renderRegions: function () {

- 			var lcd = this, languages,

- 				items = lcd.options.itemsPerColumn,

- 				columns = 4;

- 

- 			this.$noResults.addClass( 'hide' );

- 			this.$element.find( '.uls-lcd-region-section' ).each( function () {

- 				var $region = $( this ),

- 					regionCode = $region.attr( 'id' );

- 

- 				if ( $region.is( '#uls-lcd-quicklist' ) ) {

- 					return;

- 				}

- 

- 				$region.children( '.uls-language-block' ).remove();

- 

- 				languages = lcd.regionLanguages[regionCode];

- 				if ( !languages || languages.length === 0 ) {

- 					$region.addClass( 'hide' );

- 					return;

- 				}

- 

- 				lcd.renderRegion( $region, languages, items, columns );

- 				$region.removeClass( 'hide' );

- 

- 				lcd.regionLanguages[regionCode] = [];

- 			} );

- 

- 		},

- 

- 		/**

- 		 * Adds given languages sorted into rows and columns into given element.

- 		 * @param {jQuery} $region Element to add language list.

- 		 * @param {array} languages List of language codes.

- 		 * @param {number} itemsPerColumn How many languages fit in a column.

- 		 * @param {number} columnsPerRow How many columns fit in a row.

- 		 */

- 		renderRegion: function( $region, languages, itemsPerColumn, columnsPerRow ) {

- 			var i, lastItem, currentScript, nextScript, force,

- 				len = languages.length,

- 				items = [],

- 				columns = [],

- 				rows = [];

- 

- 			for ( i = 0; i < len; i++ ) {

- 				force = false;

- 				nextScript = $.uls.data.getScriptGroupOfLanguage( languages[i+1] );

- 

- 				lastItem = len - i === 1;

- 				// Force column break if script changes and column has more than one row already

- 				if ( i === 0 ) {

- 					currentScript = $.uls.data.getScriptGroupOfLanguage( languages[i] );

- 				} else if ( currentScript !== nextScript && items.length > 1 ) {

- 					force = true;

- 				}

- 				currentScript = nextScript;

- 

- 				items.push( this.renderItem( languages[i] ) );

- 

- 				if ( items.length >= itemsPerColumn || lastItem || force ) {

- 					columns.push( $( '<ul>' ).addClass( 'three columns' ).append( items ) );

- 					items = [];

- 					if ( columns.length >= columnsPerRow || lastItem ) {

- 						rows.push( $( '<div>' ).addClass( 'row uls-language-block' ).append( columns ) );

- 						columns = [];

- 					}

- 				}

- 			}

- 

- 			$region.append( rows );

- 		},

- 

- 		/**

- 		 * Creates dom node representing one item in language list.

- 		 * @param {string} code Language code

- 		 * @return {Element}

- 		 */

- 		renderItem: function( code ) {

- 			var a, name, autonym, li;

- 

- 			name = this.options.languages[code];

- 			autonym = $.uls.data.getAutonym( code ) || name || code;

- 

- 			// Not using jQuery as this is performance hotspot

- 			li = document.createElement( 'li' );

- 			li.title = name;

- 			li.lang = code;

- 			li.dir = $.uls.data.getDir( code );

- 			li.setAttribute( 'data-code', code );

- 

- 			a = document.createElement( 'a' );

- 			a.appendChild( document.createTextNode( autonym ) );

- 			a.className = 'autonym';

- 

- 			li.appendChild( a );

- 			if ( this.options.languageDecorator ) {

- 				this.options.languageDecorator( $( a ), code );

- 			}

- 			return li;

- 		},

- 

- 		i18n: function ( ) {

- 			this.$element.find( '[data-i18n]' ).i18n();

- 		},

- 

- 		/**

- 		 * Adds quicklist as a region.

- 		 */

- 		quicklist: function () {

- 			this.$element.find( '#uls-lcd-quicklist' ).removeClass( 'hide' );

- 		},

- 

- 		buildQuicklist: function () {

- 			var quickList, $quickListSection, $quickListSectionTitle;

- 

- 			if ( this.cachedQuicklist !== null ) {

- 				return this.cachedQuicklist;

- 			}

- 

- 			if ( $.isFunction( this.options.quickList ) ) {

- 				this.options.quickList = this.options.quickList();

- 			}

- 

- 			if ( !this.options.quickList ) {

- 				this.cachedQuicklist = $( [] );

- 				return this.cachedQuicklist;

- 			}

- 

- 			// Pick only the first elements, because we don't have room for more

- 			quickList = this.options.quickList;

- 			quickList = quickList.slice( 0, 16 );

- 			quickList.sort( $.uls.data.sortByAutonym );

- 

- 			$quickListSection = $( '<div>' )

- 				.addClass( 'eleven columns offset-by-one uls-lcd-region-section' )

- 				.attr( 'id', 'uls-lcd-quicklist' );

- 

- 			$quickListSectionTitle = $( '<h3>' )

- 				.attr( 'data-i18n', 'uls-common-languages' )

- 				.addClass( 'eleven columns uls-lcd-region-title' )

- 				.text( 'Common languages' ); // This is placeholder text if jquery.i18n not present

- 			$quickListSection.append( $quickListSectionTitle );

- 

- 			this.renderRegion( $quickListSection, quickList, 4, 4 );

- 

- 			$quickListSectionTitle.i18n();

- 

- 			this.cachedQuicklist = $quickListSection;

- 			return this.cachedQuicklist;

- 		},

- 

- 		show: function () {

- 			if ( !this.regionDivs ) {

- 				this.render();

- 			}

- 		},

- 

- 		empty: function () {

- 			this.$element.find( '#uls-lcd-quicklist' ).addClass( 'hide' );

- 		},

- 

- 		focus: function () {

- 			this.$element.focus();

- 		},

- 

- 		noResults: function () {

- 			this.$noResults.removeClass( 'hide' );

- 			if ( this.$noResults.find( '.uls-lcd-region-title' ).length ) {

- 				return;

- 			}

- 

- 			var $suggestions = this.buildQuicklist().clone();

- 			$suggestions.find( 'h3' )

- 				.data( 'i18n', 'uls-no-results-suggestion-title' )

- 				.text( 'You may be interested in:' )

- 				.i18n();

- 			this.$noResults.find( 'h2' ).after( $suggestions );

- 		},

- 

- 		listen: function () {

- 			var lcd = this;

- 

- 			if ( this.options.clickhandler ) {

- 				this.$element.on( 'click', '.row li', function () {

- 					lcd.options.clickhandler.call( this, $( this ).data( 'code' ) );

- 				} );

- 			}

- 

- 			// The region section need to be in sync with the map filter.

- 			lcd.$element.scroll( function () {

- 				var inview, inviewRegion,

- 					$ulsLanguageList = $( this ),

- 					scrollTop = $ulsLanguageList.position().top,

- 					scrollBottom = $ulsLanguageList.height();

- 

- 				// The region section need to be in sync with the map filter.

- 				inviewRegion = 'WW';

- 				lcd.$element.find( '.uls-lcd-region-section' ).each( function () {

- 					var $lcdRegionSection = $( this ),

- 						top = $lcdRegionSection.position().top,

- 						height = $lcdRegionSection.height(),

- 						padding = 10;

- 

- 					if ( top - padding <= scrollTop && height > scrollBottom ) {

- 						inviewRegion = $lcdRegionSection.attr( 'id' );

- 					}

- 				} );

- 

- 				// highlight the region visible while scrolling in the map.

- 				inview = $.uls.data.regiongroups[inviewRegion];

- 				if ( !$( '#uls-region-' + inview ).hasClass( 'active' ) ) {

- 					$( '.regionselector' ).removeClass( 'active' );

- 					$( '#uls-region-' + inview ).addClass( 'active' );

- 				}

- 			} );

- 		}

- 	};

- 

- 	$.fn.lcd = function ( option ) {

- 		return this.each( function () {

- 			var $this = $( this ),

- 				data = $this.data( 'lcd' ),

- 				options = typeof option === 'object' && option;

- 

- 			if ( !data ) {

- 				$this.data( 'lcd', ( data = new LanguageCategoryDisplay( this, options ) ) );

- 			}

- 

- 			if ( typeof option === 'string') {

- 				data[option]();

- 			}

- 		} );

- 	};

- 

- 	$.fn.lcd.defaults = {

- 		languages: null,

- 		showRegions: ['WW', 'AM', 'EU', 'ME', 'AF', 'AS', 'PA'],

- 		itemsPerColumn: 8,

- 		languageDecorator: null

- 	};

- 

- 	$.fn.lcd.Constructor = LanguageCategoryDisplay;

- } ( jQuery ) );

@@ -1,1 +0,0 @@ 

- (function(e){"use strict";var t,n;t='<div class="grid uls-menu uls-wide"> 			<div class="row"> 				<span id="uls-close" class="uls-icon-close"></span> 			</div> 			<div class="row"> 				<div class="uls-title-region seven columns">					<h1 data-i18n="uls-select-language" class="uls-title">Select Language</h1>				</div>				<div class="five columns uls-map-block" id="uls-map-block">					<div class="row">						<div data-regiongroup="1" id="uls-region-1" class="three columns uls-region uls-region-1">							<a data-i18n="uls-region-WW">Worldwide</a>						</div>						<div class="nine columns">							<div class="row uls-worldmap">								<div data-regiongroup="2" id="uls-region-2" class="four columns uls-region">									<a data-i18n="uls-region-AM">America</a>								</div>								<div data-regiongroup="3" id="uls-region-3" class="four columns uls-region">									<a><span data-i18n="uls-region-EU">Europe</span><br>									<span data-i18n="uls-region-ME">Middle East</span><br>									<span data-i18n="uls-region-AF">Africa</span></a>								</div>								<div data-regiongroup="4" id="uls-region-4" class="four columns uls-region">									<a><span data-i18n="uls-region-AS">Asia</span><br>									<span data-i18n="uls-region-PA">Pacific</span></a>								</div>							</div>						</div>					</div>				</div>			</div>			<div id="search" class="row uls-search"> 				<div class="one column">					<span class="uls-search-label"></span>				</div>				<div class="ten columns">					<div id="uls-search-input-block" class="uls-search-input-block">						<input type="text" class="uls-filterinput uls-filtersuggestion" id="uls-filtersuggestion" disabled="true"							autocomplete="off" /> <input type="text" class="uls-filterinput uls-languagefilter" id="uls-languagefilter"							data-clear="uls-languagefilter-clear" data-suggestion="uls-filtersuggestion"							placeholder="Language search" autocomplete="off" />					</div>				</div>				<div class="one column">					<span id="uls-languagefilter-clear" class="uls-languagefilter-clear"></span>				</div>			</div>			<div class="row uls-language-list"></div>			<div class="row" id="uls-settings-block"></div>		</div>';n=function(n,r){this.$element=e(n);this.options=e.extend({},e.fn.uls.defaults,r);this.$menu=e(t);this.languages=this.options.languages;for(var i in this.languages){if(e.uls.data.languages[i]===undefined){delete this.languages[i]}}this.left=this.options.left;this.top=this.options.top;this.shown=false;this.initialized=false;this.$languageFilter=this.$menu.find("#uls-languagefilter");this.$regionFilters=this.$menu.find(".uls-region");this.$resultsView=this.$menu.find("div.uls-language-list");this.render();this.listen();this.ready()};n.prototype={constructor:n,ready:function(){if(this.options.onReady){this.options.onReady.call(this)}},visible:function(){if(this.options.onVisible){this.options.onVisible.call(this)}},position:function(){var t=e.extend({},this.$element.offset(),{height:this.$element[0].offsetHeight});return{top:this.top!==undefined?this.top:t.top+t.height,left:this.left!==undefined?this.left:"25%"}},show:function(){this.$menu.css(this.position());if(this.options.compact){this.$menu.addClass("uls-compact")}if(!this.initialized){e("body").prepend(this.$menu);this.i18n();this.defaultSearch();this.initialized=true}e(".uls-menu").hide();this.$menu.show();this.$menu.scrollIntoView();this.shown=true;if(!this.isMobile()){this.$languageFilter.focus()}this.visible()},i18n:function(){if(e.i18n){this.$menu.find("[data-i18n]").i18n();this.$languageFilter.prop("placeholder",e.i18n("uls-search-placeholder"))}},defaultSearch:function(){this.$resultsView.lcd("empty");this.$regionFilters.regionselector("show")},hide:function(){this.$menu.hide();this.shown=false},render:function(){},noresults:function(){e(".regionselector").removeClass("active");this.$resultsView.lcd("noResults")},success:function(){e(".regionselector").removeClass("active");this.$resultsView.show()},listen:function(){var t,n=this;this.$element.on("click",e.proxy(this.click,this));this.$languageFilter.on("searchclear.uls",e.proxy(this.defaultSearch,this));this.$languageFilter.on("noresults.uls",e.proxy(this.noresults,this));this.$languageFilter.on("resultsfound.uls",e.proxy(this.success,this));this.$menu.find("#uls-close").on("click",e.proxy(this.cancel,this));this.$menu.on("click",function(e){e.stopPropagation()});this.$menu.on("keypress",e.proxy(this.keypress,this)).on("keyup",e.proxy(this.keyup,this));if(this.eventSupported("keydown")){this.$menu.on("keydown",e.proxy(this.keypress,this))}t=this.$resultsView.lcd({languages:this.languages,quickList:this.options.quickList,clickhandler:e.proxy(this.select,this),source:this.$languageFilter,showRegions:this.options.showRegions,languageDecorator:this.options.languageDecorator}).data("lcd");this.$languageFilter.languagefilter({$target:t,languages:this.languages,searchAPI:this.options.searchAPI,onSelect:e.proxy(this.select,this)});this.$menu.find(".uls-region, .uls-region-link").regionselector({$target:t,languages:this.languages,success:function(e){n.$languageFilter.languagefilter("deactivate");if(e.regionGroup===1){t.quicklist()}n.success()},noresults:function(){n.$languageFilter.languagefilter("clear")}});e("html").click(e.proxy(this.cancel,this))},select:function(e){this.hide();this.$languageFilter.trigger("searchclear");if(this.options.onSelect){this.options.onSelect.call(this,e)}},cancel:function(){this.hide();if(this.options.onCancel){this.options.onCancel.call(this)}},keyup:function(e){if(!this.shown){return}if(e.keyCode===27){this.cancel();e.preventDefault();e.stopPropagation()}},keypress:function(e){if(!this.shown){return}if(e.keyCode===27){this.cancel();e.preventDefault();e.stopPropagation()}},click:function(e){e.stopPropagation();e.preventDefault();if(this.shown){this.hide()}else{this.show()}},eventSupported:function(e){var t=e in this.$menu;if(!t){this.$element.setAttribute(e,"return;");t=typeof this.$element[e]==="function"}return t},isMobile:function(){return navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry)/)}};e.fn.uls=function(t){return this.each(function(){var r=e(this),i=r.data("uls"),s=typeof t==="object"&&t;if(!i){r.data("uls",i=new n(this,s))}if(typeof t==="string"){i[t]()}})};e.fn.uls.defaults={onSelect:null,searchAPI:null,languages:e.uls.data.getAutonyms(),quickList:null,compact:false,showRegions:["WW","AM","EU","ME","AF","AS","PA"],languageDecorator:null};if(!e.fn.i18n){e.fn.i18n=function(){}}e.fn.scrollIntoView=function(){return this.each(function(){var t,n=e(window),r=n.height(),i=n.scrollTop(),s=i+r,o=e(this),u=o.height(),a=o.offset().top,f=a+u;if(a<i||f>s){if(i>a){t=a}else{t=f-r}e("html, body").stop().animate({scrollTop:t},500)}})};e.fn.uls.Constructor=n})(jQuery);(function(e){"use strict";e.uls=e.uls||{};e.uls.data={languages:{aa:["Latn",["AF"],"Qafár af"],ab:["Cyrl",["EU"],"Аҧсшәа"],ace:["Latn",["AS","PA"],"Acèh"],ady:["Cyrl",["EU","ME"],"Адыгэбзэ"],"ady-cyrl":["ady"],"ady-latn":["Latn",["EU","ME"],"Adygabze"],aeb:["Arab",["AF"],"زَوُن"],af:["Latn",["AF"],"Afrikaans"],ahr:["Deva",["AS"],"अहिराणी"],ak:["Latn",["AF"],"Akan"],akz:["Latn",["AM"],"Albaamo innaaɬiilka"],aln:["Latn",["EU"],"Gegë"],am:["Ethi",["AF"],"አማርኛ"],an:["Latn",["EU"],"aragonés"],ang:["Latn",["EU"],"Ænglisc"],anp:["Deva",["AS"],"अङ्गिका"],ar:["Arab",["ME"],"العربية"],arc:["Syrc",["ME"],"ܐܪܡܝܐ"],arn:["Latn",["AM"],"mapudungun"],aro:["Latn",["AM"],"Araona"],arq:["Arab",["AF"],"جازايرية"],ary:["Latn",["ME"],"Maġribi"],arz:["Arab",["ME"],"مصرى"],as:["Beng",["AS"],"অসমীয়া"],ase:["Sgnw",["AM"],"American sign language"],ast:["Latn",["EU"],"asturianu"],av:["Cyrl",["EU"],"авар"],avk:["Latn",["WW"],"Kotava"],ay:["Latn",["AM"],"Aymar aru"],az:["az-latn"],"az-latn":["Latn",["EU","ME"],"azərbaycanca"],"az-arab":["Arab",["EU","ME"],"آذربايجانجا"],"az-cyrl":["Latn",["EU","ME"],"азәрбајҹанҹа"],azb:["az-arab"],ba:["Cyrl",["EU"],"башҡортса"],bar:["Latn",["EU"],"Boarisch"],"bat-smg":["sgs"],"bbc-latn":["Latn",["AS"],"Batak Toba"],"bbc-batk":["Batk",["AS"],"Batak Toba"],bbc:["Latn",["AS"],"Batak Toba"],bcc:["Arab",["AS","ME"],"بلوچی مکرانی"],bcl:["Latn",["AS"],"Bikol Central"],"be-tarask":["Cyrl",["EU"],"беларуская (тарашкевіца)"],"be-x-old":["be-tarask"],be:["Cyrl",["EU"],"беларуская"],bew:["Latn",["AS"],"Bahasa Betawi"],bfq:["Taml",["AS"],"படகா"],bg:["Cyrl",["EU"],"български"],bh:["Deva",["AS"],"भोजपुरी"],bho:["Deva",["AS"],"भोजपुरी"],bi:["Latn",["PA"],"Bislama"],bjn:["Latn",["AS"],"Bahasa Banjar"],bm:["Latn",["AF"],"bamanankan"],bn:["Beng",["AS"],"বাংলা"],bo:["Tibt",["AS"],"བོད་ཡིག"],bpy:["Beng",["AS"],"বিষ্ণুপ্রিয়া মণিপুরী"],bqi:["Arab",["ME"],"بختياري"],br:["Latn",["EU"],"brezhoneg"],brh:["Latn",["ME","AS"],"Bráhuí"],brx:["Deva",["AS"],"बड़ो"],bs:["Latn",["EU"],"bosanski"],bto:["Latn",["AS"],"Iriga Bicolano"],bug:["Bugi",["AS"],"ᨅᨔ ᨕᨘᨁᨗ"],bxr:["Cyrl",["AS"],"буряад"],ca:["Latn",["EU"],"català"],"cbk-zam":["Latn",["AS"],"Chavacano de Zamboanga"],cdo:["Latn",["AS"],"Mìng-dĕ̤ng-ngṳ̄"],ce:["Cyrl",["EU"],"нохчийн"],ceb:["Latn",["AS"],"Cebuano"],ch:["Latn",["PA"],"Chamoru"],cho:["Latn",["AM"],"Choctaw"],chr:["Cher",["AM"],"ᏣᎳᎩ"],chy:["Latn",["AM"],"Tsetsêhestâhese"],ckb:["Arab",["ME"],"کوردی"],co:["Latn",["EU"],"corsu"],cps:["Latn",["AS"],"Capiceño"],cr:["Cans",["AM"],"ᓀᐦᐃᔭᐍᐏᐣ"],"cr-cans":["cr"],"cr-latn":["Latn",["AM"],"Nēhiyawēwin"],crh:["Latn",["EU"],"qırımtatarca"],"crh-cyrl":["Cyrl",["EU"],"къырымтатарджа"],"crh-latn":["crh"],cs:["Latn",["EU"],"česky"],csb:["Latn",["EU"],"kaszëbsczi"],cu:["Cyrl",["EU"],"словѣньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ"],cv:["Cyrl",["EU"],"Чӑвашла"],cy:["Latn",["EU"],"Cymraeg"],da:["Latn",["EU"],"dansk"],"de-at":["Latn",["EU"],"Österreichisches Deutsch"],"de-ch":["Latn",["EU"],"Schweizer Hochdeutsch"],"de-formal":["Latn",["EU"],"Deutsch (Sie-Form)"],de:["Latn",["EU"],"Deutsch"],diq:["Latn",["EU","AS"],"Zazaki"],dsb:["Latn",["EU"],"dolnoserbski"],dtp:["Latn",["AS"],"Dusun Bundu-liwan"],dv:["Thaa",["AS"],"ދިވެހިބަސް"],dz:["Tibt",["AS"],"ཇོང་ཁ"],ee:["Latn",["AF"],"eʋegbe"],egl:["Latn",["EU"],"Emiliàn"],el:["Grek",["EU"],"Ελληνικά"],eml:["Latn",["EU"],"emiliàn e rumagnòl"],"en-ca":["Latn",["AM"],"Canadian English"],"en-gb":["Latn",["EU","AS","PA"],"British English"],en:["Latn",["EU","AM","AF","ME","AS","PA","WW"],"English"],eo:["Latn",["WW"],"Esperanto"],"es-419":["Latn",["AM"],"español de America Latina"],"es-formal":["Latn",["EU","AM","AF","WW"],"español (formal)"],es:["Latn",["EU","AM","AF","WW"],"español"],esu:["Latn",["AM"],"Yup'ik"],et:["Latn",["EU"],"eesti"],eu:["Latn",["EU"],"euskara"],ext:["Latn",["EU"],"estremeñu"],fa:["Arab",["ME"],"فارسی"],ff:["Latn",["AF"],"Fulfulde"],fi:["Latn",["EU"],"suomi"],fil:["tl"],fit:["Latn",["EU"],"meänkieli"],"fiu-vro":["vro"],fj:["Latn",["PA"],"Na Vosa Vakaviti"],fo:["Latn",["EU"],"føroyskt"],fr:["Latn",["EU","AM","WW"],"français"],frc:["Latn",["AM"],"français cadien"],frp:["Latn",["EU"],"arpetan"],frr:["Latn",["EU"],"Nordfriisk"],fur:["Latn",["EU"],"furlan"],fy:["Latn",["EU"],"Frysk"],ga:["Latn",["EU"],"Gaeilge"],gag:["Latn",["EU"],"Gagauz"],gah:["Latn",["AS"],"Alekano"],"gan-hans":["Hans",["AS"],"赣语(简体)"],"gan-hant":["gan"],gan:["Hant",["AS"],"贛語"],gbz:["Latn",["AS"],"Dari"],gcf:["Latn",["AM"],"Guadeloupean Creole French"],gd:["Latn",["EU"],"Gàidhlig"],gl:["Latn",["EU"],"galego"],glk:["Arab",["ME"],"گیلکی"],gn:["Latn",["AM"],"Avañe'ẽ"],gom:["Deva",["AS"],"कोंकणी"],"gom-deva":["gom"],"gom-latn":["Latn",["AS"],"Konknni"],got:["Goth",["EU"],"𐌲𐌿𐍄𐌹𐍃𐌺"],grc:["Grek",["EU"],"Ἀρχαία ἑλληνικὴ"],gsw:["Latn",["EU"],"Alemannisch"],gu:["Gujr",["AS"],"ગુજરાતી"],guc:["Latn",["AM"],"Wayúu"],gur:["Latn",["AF"],"Gurenɛ"],gv:["Latn",["EU"],"Gaelg"],"ha-arab":["Arab",["AF"],"هَوُسَ"],"ha-latn":["Latn",["AF"],"Hausa"],ha:["ha-latn"],hak:["Latn",["AS"],"Hak-kâ-fa"],haw:["Latn",["AM","PA"],"Hawai`i"],he:["Hebr",["ME"],"עברית"],hi:["Deva",["AS"],"हिन्दी"],hif:["Latn",["PA","AS"],"Fiji Hindi"],"hif-deva":["Deva",["AS"],"फ़ीजी हिन्दी"],"hif-latn":["hif"],hil:["Latn",["AS"],"Ilonggo"],hne:["Deva",["AS"],"छत्तीसगढ़ी"],ho:["Latn",["PA"],"Hiri Motu"],hr:["Latn",["EU"],"hrvatski"],hsb:["Latn",["EU"],"hornjoserbsce"],hsn:["Hans",["AS"],"湘语"],ht:["Latn",["AM"],"Kreyòl ayisyen"],"hu-formal":["Latn",["EU"],"Magyar (magázó)"],hu:["Latn",["EU"],"magyar"],hy:["Armn",["EU","ME"],"Հայերեն"],hz:["Latn",["AF"],"Otsiherero"],ia:["Latn",["WW"],"interlingua"],id:["Latn",["AS"],"Bahasa Indonesia"],ie:["Latn",["WW"],"Interlingue"],ig:["Latn",["AF"],"Igbo"],ii:["Yiii",["AS"],"ꆇꉙ"],ik:["Latn",["AM"],"Iñupiak"],"ike-cans":["Cans",["AM"],"ᐃᓄᒃᑎᑐᑦ"],"ike-latn":["Latn",["AM"],"inuktitut"],ilo:["Latn",["AS"],"Ilokano"],inh:["Cyrl",["EU"],"ГӀалгӀай"],io:["Latn",["WW"],"Ido"],is:["Latn",["EU"],"íslenska"],it:["Latn",["EU"],"italiano"],iu:["Cans",["AM"],"ᐃᓄᒃᑎᑐᑦ"],ja:["Jpan",["AS"],"日本語"],jam:["Latn",["AM"],"Patois"],jbo:["Latn",["WW"],"lojban"],jut:["Latn",["EU"],"jysk"],jv:["Latn",["AS","PA"],"Basa Jawa"],"jv-java":["Java",["AS","PA"],"ꦧꦱꦗꦮ"],ka:["Geor",["EU"],"ქართული"],kaa:["Latn",["AS"],"Qaraqalpaqsha"],kab:["Latn",["AF","EU"],"Taqbaylit"],"kbd-cyrl":["kbd"],"kbd-latn":["Latn",["EU"],"Qabardjajəbza"],kbd:["Cyrl",["EU","ME"],"Адыгэбзэ"],kea:["Latn",["AF"],"Kabuverdianu"],kg:["Latn",["AF"],"Kongo"],kgp:["Latn",["AM"],"Kaingáng"],khw:["Arab",["ME","AS"],"کھوار"],ki:["Latn",["AF"],"Gĩkũyũ"],kiu:["Latn",["EU","ME"],"Kırmancki"],kj:["Latn",["AF"],"Kwanyama"],kjh:["Cyrl",["AS"],"хакас"],kk:["kk-cyrl"],"kk-arab":["Arab",["EU","AS"],"قازاقشا (تٶتە)"],"kk-cn":["kk-arab"],"kk-cyrl":["Cyrl",["EU","AS"],"қазақша"],"kk-kz":["kk-cyrl"],"kk-latn":["Latn",["EU","AS","ME"],"qazaqşa"],"kk-tr":["kk-latn"],kl:["Latn",["AM","EU"],"kalaallisut"],km:["Khmr",["AS"],"ភាសាខ្មែរ"],kn:["Knda",["AS"],"ಕನ್ನಡ"],"ko-kp":["Kore",["AS"],"한국어 (조선)"],ko:["Kore",["AS"],"한국어"],koi:["Cyrl",["EU"],"Перем Коми"],kr:["Latn",["AF"],"Kanuri"],krc:["Cyrl",["EU"],"къарачай-малкъар"],kri:["Latn",["AF"],"Krio"],krj:["Latn",["ME","EU"],"Kinaray-a"],krl:["Latn",["EU"],"Karjala"],"ks-arab":["Arab",["AS"],"کٲشُر"],"ks-deva":["Deva",["AS"],"कॉशुर"],ks:["Arab",["AS"],"کٲشُر"],ksf:["Latn",["AF"],"Bafia"],ksh:["Latn",["EU"],"Ripoarisch"],ku:["ku-latn"],"ku-arab":["Arab",["EU","ME"],"كوردي"],"ku-latn":["Latn",["EU","ME"],"Kurdî"],kv:["Cyrl",["EU"],"коми"],kw:["Latn",["EU"],"kernowek"],ky:["Cyrl",["AS"],"Кыргызча"],la:["Latn",["EU"],"Latina"],lad:["lad-latn"],"lad-latn":["Latn",["ME","EU","AM"],"Ladino"],"lad-hebr":["Hebr",["ME","EU","AM"],"לאדינו"],lb:["Latn",["EU"],"Lëtzebuergesch"],lbe:["Cyrl",["EU"],"лакку"],lez:["Cyrl",["EU"],"лезги"],lfn:["Latn",["WW"],"Lingua Franca Nova"],lg:["Latn",["AF"],"Luganda"],li:["Latn",["EU"],"Limburgs"],lij:["Latn",["EU"],"Ligure"],liv:["Latn",["EU"],"Līvõ kēļ"],lld:["Latn",["EU"],"Ladin"],lmo:["Latn",["EU"],"lumbaart"],ln:["Latn",["AF"],"lingála"],lo:["Laoo",["AS"],"ລາວ"],loz:["Latn",["AF"],"Silozi"],lt:["Latn",["EU"],"lietuvių"],lrc:["Arab",["AS"],"لوری"],ltg:["Latn",["EU"],"latgaļu"],lud:["Latn",["EU"],"lüüdi"],lus:["Latn",["AS"],"Mizo ţawng"],lut:["Latn",["AM"],"dxʷləšucid"],lv:["Latn",["EU"],"latviešu"],lzh:["Hant",["AS"],"文言"],lzz:["Latn",["EU","ME"],"Lazuri"],mai:["Deva",["AS"],"मैथिली"],"map-bms":["Latn",["AS"],"Basa Banyumasan"],mdf:["Cyrl",["EU"],"мокшень"],mfe:["Latn",["AM"],"Morisyen"],mg:["Latn",["AF"],"Malagasy"],mh:["Latn",["PA"],"Ebon"],mhr:["Cyrl",["EU"],"олык марий"],mi:["Latn",["PA"],"Māori"],mic:["Latn",["AM"],"Mi'kmaq"],min:["Latn",["AS"],"Baso Minangkabau"],mk:["Cyrl",["EU"],"македонски"],ml:["Mlym",["AS","ME"],"മലയാളം"],mn:["Cyrl",["AS"],"монгол"],mnc:["Mong",["AS"],"ᠮᠠᠨᠵᡠ ᡤᡳᠰᡠᠨ"],mni:["Beng",["AS"],"মেইতেই লোন্"],mnw:["Mymr",["AS"],"ဘာသာ မန်"],mo:["Cyrl",["EU"],"молдовеняскэ"],mr:["Deva",["AS","ME"],"मराठी"],mrj:["Cyrl",["EU"],"кырык мары"],ms:["Latn",["AS"],"Bahasa Melayu"],mt:["Latn",["EU"],"Malti"],mui:["Latn",["AS"],"Musi"],mus:["Latn",["AM"],"Mvskoke"],mwl:["Latn",["EU"],"Mirandés"],mwv:["Latn",["AS"],"Behase Mentawei"],my:["Mymr",["AS"],"မြန်မာဘာသာ"],myv:["Cyrl",["EU"],"эрзянь"],mzn:["Arab",["ME","AS"],"مازِرونی"],na:["Latn",["PA"],"Dorerin Naoero"],nah:["Latn",["AM"],"Nāhuatl"],nan:["Latn",["AS"],"Bân-lâm-gú"],nap:["Latn",["EU"],"Nnapulitano"],nb:["Latn",["EU"],"norsk (bokmål)"],"nds-nl":["Latn",["EU"],"Nedersaksisch"],nds:["Latn",["EU"],"Plattdüütsch"],ne:["Deva",["AS"],"नेपाली"],"new":["Deva",["AS"],"नेपाल भाषा"],ng:["Latn",["AF"],"Oshiwambo"],niu:["Latn",["PA"],"ko e vagahau Niuē"],njo:["Latn",["AS"],"Ao"],"nl-informal":["Latn",["EU","AM"],"Nederlands (informeel)"],nl:["Latn",["EU","AM"],"Nederlands"],nn:["Latn",["EU"],"norsk (nynorsk)"],no:["Latn",["EU"],"norsk"],nov:["Latn",["WW"],"Novial"],nqo:["Nkoo",["AF"],"ߒߞߏ"],nrm:["Latn",["EU"],"Nouormand"],nso:["Latn",["AF"],"Sesotho sa Leboa"],nv:["Latn",["AM"],"Diné bizaad"],ny:["Latn",["AF"],"Chi-Chewa"],oc:["Latn",["EU"],"occitan"],om:["Latn",["AF"],"Oromoo"],or:["Orya",["AS"],"ଓଡ଼ିଆ"],os:["Cyrl",["EU"],"Ирон"],ota:["Arab",["AS","EU"],"لسان عثمانى"],pa:["pa-guru"],"pa-guru":["Guru",["AS"],"ਪੰਜਾਬੀ"],pag:["Latn",["AS"],"Pangasinan"],pam:["Latn",["AS"],"Kapampangan"],pap:["Latn",["AM"],"Papiamentu"],pcd:["Latn",["EU"],"Picard"],pdc:["Latn",["EU","AM"],"Deitsch"],pdt:["Latn",["EU","AM"],"Plautdietsch"],pfl:["Latn",["EU"],"Pälzisch"],pi:["Deva",["AS"],"पालि"],pih:["Latn",["PA"],"Norfuk / Pitkern"],pis:["Latn",["PA"],"Pijin"],pko:["Latn",["AF"],"Pökoot"],pl:["Latn",["EU"],"polski"],pms:["Latn",["EU"],"Piemontèis"],pnb:["Arab",["AS","ME"],"پنجابی"],pnt:["Grek",["EU"],"Ποντιακά"],ppl:["Latn",["AM"],"Nawat"],prg:["Latn",["EU"],"Prūsiskan"],ps:["Arab",["AS","ME"],"پښتو"],"pt-br":["Latn",["AM"],"português do Brasil"],pt:["Latn",["EU","AM","AS","PA","AF","WW"],"português"],qu:["Latn",["AM"],"Runa Simi"],qug:["Latn",["AM"],"Runa shimi"],rap:["Latn",["AM"],"arero rapa nui"],rgn:["Latn",["EU"],"Rumagnôl"],rif:["Latn",["AF"],"Tarifit"],rki:["Mymr",["AS"],"ရခိုင်"],rm:["Latn",["EU"],"rumantsch"],rmf:["Latn",["EU"],"kaalengo tšimb"],rmy:["Latn",["EU"],"Romani"],rn:["Latn",["AF"],"Kirundi"],ro:["Latn",["EU"],"română"],"roa-rup":["rup"],"roa-tara":["Latn",["EU"],"tarandíne"],rtm:["Latn",["PA"],"Faeag Rotuma"],ru:["Cyrl",["EU","AS","ME"],"русский"],rue:["Cyrl",["EU"],"русиньскый"],rup:["Latn",["EU"],"Armãneashce"],ruq:["Cyrl",["EU"],"Влахесте"],"ruq-cyrl":["ruq"],"ruq-grek":["Grek",["EU"],"Megleno-Romanian (Greek script)"],"ruq-latn":["Latn",["EU"],"Vlăheşte"],rut:["Cyrl",["EU"],"мыхаӀбишды"],rw:["Latn",["AF"],"Kinyarwanda"],rwr:["Deva",["AS"],"मारवाड़ी"],ryu:["Kana",["AS"],"ʔucināguci"],sa:["Deva",["AS"],"संस्कृतम्"],sah:["Cyrl",["EU","AS"],"саха тыла"],sat:["Latn",["AS"],"Santali"],saz:["Saur",["AS"],"ꢱꣃꢬꢵꢯ꣄ꢡ꣄ꢬꢵ"],sc:["Latn",["EU"],"sardu"],scn:["Latn",["EU"],"sicilianu"],sco:["Latn",["EU"],"Scots"],sd:["Arab",["AS"],"سنڌي"],sdc:["Latn",["EU"],"Sassaresu"],se:["Latn",["EU"],"sámegiella"],ses:["Latn",["AF"],"Koyraboro Senni"],sei:["Latn",["AM"],"Cmique Itom"],sg:["Latn",["AF"],"Sängö"],sgs:["Latn",["EU"],"žemaitėška"],sh:["Latn",["EU"],"srpskohrvatski"],"shi-latn":["Latn",["AF"],"Tašlḥiyt"],"shi-tfng":["Tfng",["AF"],"ⵜⴰⵛⵍⵃⵉⵜ"],shi:["shi-latn"],shn:["Mymr",["AS"],"လိၵ်ႈတႆး"],si:["Sinh",["AS"],"සිංහල"],simple:["Latn",["WW"],"Simple English"],sk:["Latn",["EU"],"slovenčina"],sl:["Latn",["EU"],"slovenščina"],sli:["Latn",["EU"],"Schläsch"],slr:["Latn",["AS"],"Salırça"],sly:["Latn",["AS"],"Bahasa Selayar"],syc:["Syrc",["ME"],"ܣܘܪܝܝܐ"],sm:["Latn",["PA"],"Gagana Samoa"],sma:["Latn",["EU"],"åarjelsaemien"],smj:["Latn",["EU"],"julevsámegiella"],smn:["Latn",["EU"],"anarâškielâ"],sms:["Latn",["EU"],"sää´mǩiõll"],sn:["Latn",["AF"],"chiShona"],so:["Latn",["AF"],"Soomaaliga"],sq:["Latn",["EU"],"shqip"],sr:["sr-cyrl"],"sr-ec":["sr-cyrl"],"sr-cyrl":["Cyrl",["EU"],"српски"],"sr-el":["sr-latn"],"sr-latn":["Latn",["EU"],"srpski"],srn:["Latn",["AM","EU"],"Sranantongo"],ss:["Latn",["AF"],"SiSwati"],st:["Latn",["AF"],"Sesotho"],stq:["Latn",["EU"],"Seeltersk"],su:["Latn",["AS"],"Basa Sunda"],sv:["Latn",["EU"],"svenska"],sw:["Latn",["AF"],"Kiswahili"],swb:["Latn",["AF"],"Shikomoro"],sxu:["Latn",["EU"],"Säggssch"],szl:["Latn",["EU"],"ślůnski"],ta:["Taml",["AS"],"தமிழ்"],tcy:["Knda",["AS"],"ತುಳು"],te:["Telu",["AS"],"తెలుగు"],tet:["Latn",["AS","PA"],"tetun"],"tg-cyrl":["Cyrl",["AS"],"тоҷикӣ"],"tg-latn":["Latn",["AS"],"tojikī"],tg:["Cyrl",["AS"],"тоҷикӣ"],th:["Thai",["AS"],"ไทย"],ti:["Ethi",["AF"],"ትግርኛ"],tk:["Latn",["AS"],"Türkmençe"],tkr:["Cyrl",["AS"],"ЦӀаьхна миз"],tl:["Latn",["AS"],"Tagalog"],tly:["Cyrl",["EU","AS","ME"],"толышә зывон"],tn:["Latn",["AF"],"Setswana"],to:["Latn",["PA"],"lea faka-Tonga"],tokipona:["Latn",["WW"],"Toki Pona"],tpi:["Latn",["PA","AS"],"Tok Pisin"],tr:["Latn",["EU","ME"],"Türkçe"],trp:["Latn",["AS"],"Kokborok (Tripuri)"],tru:["Latn",["AS"],"Ṫuroyo"],ts:["Latn",["AF"],"Xitsonga"],tsd:["Grek",["EU"],"Τσακωνικά"],tt:["Cyrl",["EU"],"татарча"],"tt-cyrl":["tt"],"tt-latn":["Latn",["EU"],"tatarça"],ttt:["Cyrl",["AS"],"Tati"],tum:["Latn",["AF"],"chiTumbuka"],tw:["Latn",["AF"],"Twi"],twd:["Latn",["EU"],"Tweants"],ty:["Latn",["PA"],"Reo Mā`ohi"],tyv:["Cyrl",["AS"],"тыва дыл"],tzm:["Tfng",["AF"],"ⵜⴰⵎⴰⵣⵉⵖⵜ"],udm:["Cyrl",["EU"],"удмурт"],ug:["ug-arab"],"ug-arab":["Arab",["AS"],"ئۇيغۇرچە"],"ug-latn":["Latn",["AS"],"uyghurche"],"ug-cyrl":["Cyrl",["AS"],"уйғурчә"],uk:["Cyrl",["EU"],"українська"],ur:["Arab",["AS","ME"],"اردو"],uz:["Latn",["AS"],"oʻzbekcha"],ve:["Latn",["AF"],"Tshivenda"],vec:["Latn",["EU"],"vèneto"],vep:["Latn",["EU"],"vepsän kel’"],vi:["Latn",["AS"],"Tiếng Việt"],vls:["Latn",["EU"],"West-Vlams"],vmf:["Latn",["EU"],"Mainfränkisch"],vo:["Latn",["WW"],"Volapük"],vot:["Latn",["EU"],"Vaďďa"],vro:["Latn",["EU"],"Võro"],wa:["Latn",["EU"],"walon"],war:["Latn",["AS"],"Winaray"],wls:["Latn",["PA"],"Faka'uvea"],wo:["Latn",["AF"],"Wolof"],wuu:["Hans",["AS"],"吴语"],xal:["Cyrl",["EU"],"хальмг"],xh:["Latn",["AF"],"isiXhosa"],xmf:["Geor",["EU"],"მარგალური"],ydd:["Hebr",["AS","EU"],"Eastern Yiddish"],yi:["Hebr",["ME","EU","AM"],"ייִדיש"],yo:["Latn",["AF"],"Yorùbá"],yrk:["Cyrl",["AS"],"Ненэцяʼ вада"],yrl:["Latn",["AM"],"ñe'engatú"],yua:["Latn",["AM"],"Maaya T'aan"],yue:["Hant",["AS"],"粵語"],za:["Latn",["AS"],"Vahcuengh"],zea:["Latn",["EU"],"Zeêuws"],zh:["Hans",["AS"],"中文"],"zh-classical":["Hant",["AS"],"文言"],"zh-cn":["Hans",["AS"],"中文(中国大陆)"],"zh-hans":["Hans",["AS"],"中文(简体)"],"zh-hant":["Hant",["AS"],"中文(繁體)"],"zh-hk":["Hant",["AS"],"中文(香港)"],"zh-min-nan":["nan"],"zh-mo":["Hant",["AS"],"中文(澳門)"],"zh-my":["Hans",["AS"],"中文(马来西亚)"],"zh-sg":["Hans",["AS"],"中文(新加坡)"],"zh-tw":["Hant",["AS"],"中文(台灣)"],"zh-yue":["yue"],zu:["Latn",["AF"],"isiZulu"]},scriptgroups:{Latin:["Latn","Goth"],Greek:["Grek"],WestCaucasian:["Armn","Geor"],Arabic:["Arab"],MiddleEastern:["Hebr","Syrc"],African:["Ethi","Nkoo","Tfng"],SouthAsian:["Beng","Deva","Gujr","Guru","Knda","Mlym","Orya","Saur","Sinh","Taml","Telu","Tibt","Thaa"],Cyrillic:["Cyrl"],CJK:["Hans","Hant","Kana","Kore","Jpan","Yiii"],SouthEastAsian:["Batk","Bugi","Java","Khmr","Laoo","Mymr","Thai"],Mongolian:["Mong"],SignWriting:["Sgnw"],NativeAmerican:["Cher","Cans"],Special:["Zyyy"]},rtlscripts:["Arab","Hebr","Syrc","Nkoo","Thaa"],regiongroups:{WW:1,SP:1,AM:2,EU:3,ME:3,AF:3,AS:4,PA:4},territories:{AC:["en"],AD:["ca","es","fr"],AE:["ar","ml","ps","bal","fa"],AF:["fa","ps","haz","uz-arab","tk-latn","prd","bal","ug-arab","kk-arab"],AG:["en","pt"],AI:["en"],AL:["sq","el","mk"],AM:["hy","ku-latn","az-latn"],AO:["pt","umb","kmb","ln"],AQ:["und"],AR:["es","cy","gn"],AS:["sm","en"],AT:["de","bar","hr","sl","hu"],AU:["en","zh-hant","it"],AW:["nl","pap","en"],AX:["sv"],AZ:["az-latn","az-cyrl","tly-latn","ku-latn","ttt-latn","tkr-latn"],BA:["bs-cyrl","bs-latn","hr","sr-cyrl","sr-latn"],BB:["en"],BD:["bn","rkt","syl","ccp","my","grt","mni"],BE:["nl","en","fr","vls","wa","de"],BF:["mos","dyu","fr"],BG:["bg","tr"],BH:["ar","ml"],BI:["rn","fr","sw"],BJ:["fr","fon","yo"],BL:["fr"],BM:["en"],BN:["ms-latn","zh-hant","ms-arab","en"],BO:["es","qu","ay","gn","aro"],BQ:["pap","nl"],BR:["pt","de","it","ja","ko","kgp","gub","yrl","xav"],BS:["en"],BT:["dz","ne","tsj","lep"],BV:["und"],BW:["en","tn","af"],BY:["be","ru"],BZ:["en","es"],CA:["en","fr","it","de","pdt","cr-cans","crk","yi","iu-cans","iu-latn","moe","crj","atj","crl","csw","crm","ikt","moh","dgr","den","scs","nsk","chp","gwi"],CC:["ms-arab","en"],CD:["sw","lua","swc","fr","ln","lu","kg","lol","rw"],CF:["fr","sg","ln"],CG:["fr","ln"],CH:["de","fr","gsw","it","lmo","rm","rmo","wae"],CI:["fr","bci","sef","dnj","kfo","bqv"],CK:["en"],CL:["es","arn"],CM:["fr","en","bum","ff","ewo","ybb","bbj","nnh","bkm","bas","bax","byv","mua","maf","bfd","bss","kkj","dua","mgo","ar","jgo","ksf","agq","ha-arab","nmg","yav"],CN:["zh-hans","wuu","hsn","hak","nan","gan","ii","ug-arab","za","mn-mong","bo","ko","kk-arab","lis","ky-arab","nxq","khb","tdd","lcp","en","ru","vi","uz-cyrl","lzh"],CO:["es","guc"],CP:["und"],CR:["es"],CU:["es"],CV:["kea","pt"],CW:["pap","nl","es"],CX:["en"],CY:["el","tr","hy","ar"],CZ:["cs","de","pl"],DE:["de","en","nds","vmf","tr","hr","it","ku-latn","ru","el","ksh","pl","es","nl","da","hsb","frr","dsb","frs","stq","pfl"],DG:["en"],DJ:["aa","so","ar","fr"],DK:["da","de","kl","jut"],DM:["en"],DO:["es","en"],DZ:["arq","ar","fr","kab"],EA:["es"],EC:["es","qu","qug"],EE:["et","ru","vro"],EG:["ar","arz","el"],EH:["ar"],ER:["ti","en","tig","ar","aa","ssy","byn"],ES:["es","en","ca","gl","eu","ast","ext"],ET:["en","am","om","so","ti","sid","wal","aa"],FI:["fi","sv","ru","en","et","rmf","se","smn","sms"],FJ:["en","hi","hif-deva","fj","rtm"],FK:["en"],FM:["chk","pon","kos","yap","en","uli"],FO:["fo"],FR:["fr","en","oc","it","pt","pcd","gsw","br","co","ca","nl","eu","frp","ia"],GA:["fr","puu"],GB:["en","sco","pa-guru","cy","bn","zh-hant","syl","el","it","ks-arab","gd","yi","ml","ga","fr","kw"],GD:["en"],GE:["ka","xmf","ru","hy","ab","os","ku-latn"],GF:["fr","gcr","zh-hant"],GG:["en"],GH:["ak","en","ee","abr","gur","gaa","ha-latn","saf"],GI:["en"],GL:["kl","da"],GM:["en","man-latn"],GN:["fr","ff","man-nkoo","sus","nqo","kpe"],GP:["fr"],GQ:["es","fan","fr","bvb"],GR:["el","pnt-grek","mk","tr","bg","sq","tsd"],GS:["und"],GT:["es","quc"],GU:["en","ch"],GW:["pt"],GY:["en"],HK:["zh-hant","en","zh-hans"],HM:["und"],HN:["es","en"],HR:["hr","it"],HT:["ht","fr"],HU:["hu","de","ro","hr","sk","sl"],IC:["es"],ID:["id","jv","su","mad","ms-arab","min","bew","ban","bug","bjn","ace","sas","bbc","zh-hant","mak","ljp","rej","gor","nij","kge","aoz","kvr","lbw","rob","mdr","sxn","sly","mwv"],IE:["en","ga"],IL:["he","ar","ru","ro","yi","en","pl","lad","hu","am","ti","ml"],IM:["en","gv"],IN:["hi","en","bn","te","mr","ta","ur","gu","kn","ml","or","pa-guru","bho","awa","as","bgc","mag","mwr","mai","hne","dcc","bjj","ne","sat","wtm","rkt","ks-arab","kok","gom","swv","gbm","lmn","sd-arab","gon-telu","kfy","doi","kru","sck","wbq","xnr","tcy","wbr","khn","brx","noe","bhb","mni","raj","hoc","mtr","unr-beng","bhi","hoj","kha","kfr","grt","unx-beng","bfy","srx","saz","ccp","sd-deva","bfq","njo","ria","bo","bpy","bft","bra","lep","btv","lif-deva","lah","sa","kht","dv","dz"],IO:["en"],IQ:["ar","ckb","fa","syr"],IR:["fa","az-arab","azb","mzn","glk","ckb","tk-latn","lrc","ar","bal","rmt","bqi","luz","lki","prd","hy","ps","ka","gbz","kk-arab"],IS:["is","da"],IT:["it","en","fr","lmo","pms","sc","de","vec","nap","lij","scn","sl","sdc","fur","egl","ca","el","hr","rgn"],JE:["en"],JM:["en","jam"],JO:["ar"],JP:["ja","ryu","ko"],KE:["en","sw","ki","luy","luo","kam","kln","guz","mer","mas","ebu","so","dav","teo","pko","om","saq","ar","pa-guru","gu"],KG:["ky-cyrl","ru"],KH:["km","cja","kdt"],KI:["en","gil"],KM:["ar","fr","zdj"],KN:["en"],KP:["ko"],KR:["ko"],KW:["ar"],KY:["en"],KZ:["ru","kk-cyrl","de","ug-cyrl"],LA:["lo","kjg","kdt"],LB:["ar","hy","ku-arab","fr","en"],LC:["en"],LI:["de","gsw","wae"],LK:["si","ta","en"],LR:["en","kpe","vai-vaii","men","vai-latn"],LS:["st","zu","ss","en","xh"],LT:["lt","ru","sgs"],LU:["fr","lb","de"],LV:["lv","ru","ltg"],LY:["ar"],MA:["ary","ar","zgh","fr","tzm-latn","shi-latn","shi-tfng","rif-latn","rif-tfng","es"],MC:["fr"],MD:["ro","uk","bg","gag","ru"],ME:["sr-latn","sq","sr-cyrl"],MF:["fr"],MG:["mg","fr","en"],MH:["en","mh"],MK:["mk","sq","tr"],ML:["bm-latn","fr","ffm","snk","mwk","ses","tmh","bm-nkoo","khq","dtm","kao","ar","bmq","bze"],MM:["my","shn","mnw","kht"],MN:["mn-cyrl","kk-arab","zh-hans","ru","ug-cyrl"],MO:["zh-hant","pt","zh-hans","en"],MP:["en","ch"],MQ:["fr"],MR:["ar","fr","ff","wo"],MS:["en"],MT:["mt","en"],MU:["mfe","en","bho","ur","fr","ta"],MV:["dv"],MW:["en","ny","tum","zu"],MX:["es","yua","nhe","nhw","maz","nch","sei"],MY:["ms-latn","en","zh-hant","ta","jv","zmi","dtp","ml","bug","bjn"],MZ:["pt","vmw","ndc","ts","ngl","seh","mgh","rng","ny","yao","sw","zu"],NA:["af","kj","ng","naq","en","de","tn"],NC:["fr"],NE:["ha-latn","fr","dje","fuq","tmh","ar","twq"],NF:["en"],NG:["en","pcm","ha-latn","ig","yo","fuv","tiv","efi","ibb","ha-arab","bin","kaj","kcg","ar","cch","amo"],NI:["es"],NL:["nl","en","li","fy","gos","id","zea","rif-latn","tr"],NO:["nb","nn","se"],NP:["ne","mai","bho","new","jml","taj","awa","thl","bap","tdg","thr","mgp","lif-deva","thq","mrd","bfy","xsr","rjs","tsf","hi","ggn","gvr","bo","tkt","tdh","bn","unr-deva","lep"],NR:["en","na"],NU:["en","niu"],NZ:["en","mi"],OM:["ar","bal","fa"],PA:["es","en","zh-hant"],PE:["es","qu","ay"],PF:["fr","ty","zh-hant"],PG:["tpi","en","ho"],PH:["en","fil","es","ceb","ilo","hil","bik","war","bhk","pam","pag","mdh","tsg","zh-hant","cps","krj","bto","hnn","tbw","bku"],PK:["ur","pa-arab","en","lah","ps","sd-arab","skr","bal","brh","hno","fa","hnd","tg-arab","gju","bft","kvx","khw","mvy","kxp","gjk","ks-arab","btv"],PL:["pl","szl","be","uk","csb","de","sli","lt"],PM:["fr","en"],PN:["en"],PR:["es","en"],PS:["ar"],PT:["pt","gl"],PW:["pau","en"],PY:["gn","es","de"],QA:["ar","fa","ml"],RE:["fr","rcf","ta"],RO:["ro","hu","de","tr","sr-latn","bg","el","pl"],RS:["sr-cyrl","sr-latn","sq","hu","ro","hr","sk","uk"],RU:["ru","tt","ba","cv","hy","ce","av","udm","chm","sah","os","kbd","myv","dar","bua","mdf","kum","kv","lez","krc","inh","tyv","az-cyrl","ady","krl","lbe","koi","mrj","alt","fi","sr-latn","vep","mn-cyrl","izh","cu"],RW:["rw","fr","en"],SA:["ar"],SB:["en","rug"],SC:["crs","fr","en"],SD:["ar","en","nus","ha-arab"],SE:["sv","fi","fit","se","rmu","yi","smj","sma","ia"],SG:["en","zh-hans","ms-latn","ta","ml","pa-guru"],SH:["en"],SI:["sl","hu","it"],SJ:["nb","ru"],SK:["sk","hu","uk","pl","de"],SL:["kri","en","men","tem"],SM:["it","eo"],SN:["wo","fr","ff","srr","dyo"],SO:["so","ar","sw","om"],SR:["nl","srn","zh-hant"],SS:["ar","en"],ST:["pt"],SV:["es"],SX:["en","es","vic","nl"],SY:["ar","ku-latn","fr","hy","syr"],SZ:["en","ss","zu","ts"],TA:["en"],TC:["en"],TD:["fr","ar"],TF:["fr"],TG:["fr","ee"],TH:["th","tts","nod","sou","mfa","zh-hant","kxm","kdt","mnw","shn","lcp","lwl"],TJ:["tg-cyrl","ru","fa","ar"],TK:["en","tkl"],TL:["pt","tet"],TM:["tk-latn","ru","uz-latn","ku-latn"],TN:["aeb","ar","fr"],TO:["to","en"],TR:["tr","ku-latn","zza","kbd","az-latn","ar","bgx","bg","ady","kiu","hy","ka","sr-latn","lzz-latn","sq","ab","el","tru","uz-latn","ky-latn","kk-cyrl"],TT:["en","es"],TV:["tvl","en"],TW:["zh-hant","trv"],TZ:["sw","en","suk","nym","kde","bez","ksb","mas","mgy","asa","lag","jmc","rof","vun","rwk","sbp"],UA:["uk","ru","pl","yi","rue","be","ro","bg","tr","hu","el"],UG:["sw","lg","nyn","cgg","xog","en","teo","laj","ach","myx","rw","ttj","hi"],UM:["en"],US:["en","es","zh-hant","fr","de","fil","it","vi","ko","ru","nv","yi","pdc","haw","frc","chr","esu","lkt","ik"],UY:["es"],UZ:["uz-latn","uz-cyrl","ru","kaa","tr"],VA:["it","la"],VC:["en"],VE:["es"],VG:["en"],VI:["en"],VN:["vi","zh-hant","cjm"],VU:["bi","en","fr"],WF:["wls","fr","fud"],WS:["sm","en"],XK:["sq","aln","sr-cyrl","sr-latn"],YE:["ar"],YT:["swb","fr","buc","sw"],ZA:["en","zu","xh","af","nso","tn","st","ts","ss","ve","hi","nr","sw"],ZM:["en","bem","ny","loz"],ZW:["en","sn","nd","mxc","ndc","kck","ny","ve","tn"],ZZ:[]}}})(jQuery);(function(e){"use strict";e.uls.data.isRedirect=function(t){return e.uls.data.languages[t]!==undefined&&e.uls.data.languages[t].length===1?e.uls.data.languages[t][0]:false};e.uls.data.getScript=function(t){var n=e.uls.data.isRedirect(t);if(n){return e.uls.data.getScript(n)}if(!e.uls.data.languages[t]){return"Zyyy"}return e.uls.data.languages[t][0]};e.uls.data.getRegions=function(t){var n=e.uls.data.isRedirect(t);if(n){return e.uls.data.getRegions(n)}return e.uls.data.languages[t]&&e.uls.data.languages[t][1]||"UNKNOWN"};e.uls.data.getAutonym=function(t){var n=e.uls.data.isRedirect(t);if(n){return e.uls.data.getAutonym(n)}return e.uls.data.languages[t]&&e.uls.data.languages[t][2]||t};e.uls.data.getAutonyms=function(){var t,n={};for(t in e.uls.data.languages){if(e.uls.data.isRedirect(t)){continue}n[t]=e.uls.data.getAutonym(t)}return n};e.uls.data.getAllRegions=function(){var t,n=[];for(t in e.uls.data.regiongroups){n.push(t)}return n};e.uls.data.getLanguagesInScript=function(t){return e.uls.data.getLanguagesInScripts([t])};e.uls.data.getLanguagesInScripts=function(t){var n,r,i=[];for(n in e.uls.data.languages){if(e.uls.data.isRedirect(n)){continue}for(r=0;r<t.length;r++){if(t[r]===e.uls.data.getScript(n)){i.push(n);break}}}return i};e.uls.data.getLanguagesInRegion=function(t){return e.uls.data.getLanguagesInRegions([t])};e.uls.data.getLanguagesInRegions=function(t){var n,r,i=[];for(n in e.uls.data.languages){if(e.uls.data.isRedirect(n)){continue}for(r=0;r<t.length;r++){if(e.inArray(t[r],e.uls.data.getRegions(n))!==-1){i.push(n);break}}}return i};e.uls.data.getLanguagesInRegionGroup=function(t){return e.uls.data.getLanguagesInRegions(e.uls.data.getRegionsInGroup(t))};e.uls.data.getLanguagesByScriptInRegion=function(t){var n,r,i={};for(n in e.uls.data.languages){if(e.uls.data.isRedirect(n)){continue}if(e.inArray(t,e.uls.data.getRegions(n))!==-1){r=e.uls.data.getScript(n);if(i[r]===undefined){i[r]=[]}i[r].push(n)}}return i};e.uls.data.getLanguagesByScriptGroupInRegion=function(t){return e.uls.data.getLanguagesByScriptGroupInRegions([t])};e.uls.data.getAllLanguagesByScriptGroup=function(){return e.uls.data.getLanguagesByScriptGroupInRegions(e.uls.data.getAllRegions())};e.uls.data.getLanguagesByScriptGroup=function(t){var n={},r,i,s;for(r in t){i=e.uls.data.isRedirect(r)||r;s=e.uls.data.getScriptGroupOfLanguage(i);if(!n[s]){n[s]=[]}if(e.inArray(i,n[s])===-1){n[s].push(i)}}return n};e.uls.data.getLanguagesByScriptGroupInRegions=function(t){var n,r,i,s={};for(n in e.uls.data.languages){if(e.uls.data.isRedirect(n)){continue}for(r=0;r<t.length;r++){if(e.inArray(t[r],e.uls.data.getRegions(n))!==-1){i=e.uls.data.getScriptGroupOfLanguage(n);if(s[i]===undefined){s[i]=[]}s[i].push(n);break}}}return s};e.uls.data.getAllLanguagesByRegionAndScript=function(){var t,n,r,i,s,o,u,a={};for(t in e.uls.data.regiongroups){n=e.uls.data.regiongroups[t];if(a[n]===undefined){a[n]={}}a[n][t]={}}for(r in e.uls.data.languages){if(e.uls.data.isRedirect(r)){continue}i=e.uls.data.getScript(r);s=e.uls.data.getGroupOfScript(i);o=e.uls.data.getRegions(r);for(u=0;u<o.length;u++){t=o[u];n=e.uls.data.regiongroups[t];if(a[n][t][s]===undefined){a[n][t][s]={}}if(a[n][t][s][i]===undefined){a[n][t][s][i]=[]}a[n][t][s][i].push(r)}}return a};e.uls.data.getRegionsInGroup=function(t){var n,r=[];for(n in e.uls.data.regiongroups){if(e.uls.data.regiongroups[n]===t){r.push(n)}}return r};e.uls.data.getGroupOfScript=function(t){var n;for(n in e.uls.data.scriptgroups){if(e.inArray(t,e.uls.data.scriptgroups[n])!==-1){return n}}return"Other"};e.uls.data.getScriptGroupOfLanguage=function(t){return e.uls.data.getGroupOfScript(e.uls.data.getScript(t))};e.uls.data.sortByAutonym=function(t,n){var r=e.uls.data.getAutonym(t)||t,i=e.uls.data.getAutonym(n)||n;return r.toLowerCase()<i.toLowerCase()?-1:1};e.uls.data.isRtl=function(t){return e.inArray(e.uls.data.getScript(t),e.uls.data.rtlscripts)!==-1};e.uls.data.getDir=function(t){return e.uls.data.isRtl(t)?"rtl":"ltr"};e.uls.data.getLanguagesInTerritory=function(t){return e.uls.data.territories[t]};e.uls.data.addLanguage=function(t,n){if(n.target){e.uls.data.languages[t]=[n.target]}else{e.uls.data.languages[t]=[n.script,n.regions,n.autonym]}};e.uls.data.deleteLanguage=function(t){if(e.uls.data.languages[t]){delete e.uls.data.languages[t];return true}return false}})(jQuery);(function(e){"use strict";function r(e,t){var n="െേൈൊോൌெேைொோௌେୈୋୌિਿिিেৈোৌෙේෛොෝෞ";return n.indexOf(t[e.length])<=0}var t,n;t=function(t,n){this.$element=e(t);this.options=e.extend({},e.fn.regionselector.defaults,n);this.$element.addClass("languagefilter");this.resultCount=0;this.$suggestion=this.$element.parents().find("#"+this.$element.data("suggestion"));this.$clear=this.$element.parents().find("#"+this.$element.data("clear"));this.selectedLanguage=null;this.listen()};n=function(){var e=0;return function(t,n){clearTimeout(e);e=setTimeout(t,n)}}();t.prototype={listen:function(){this.$element.on("keypress",e.proxy(this.keyup,this)).on("keyup",e.proxy(this.keyup,this));if(this.eventSupported("keydown")){this.$element.on("keydown",e.proxy(this.keyup,this))}if(this.$clear.length){this.$clear.on("click",e.proxy(this.clear,this))}this.toggleClear()},keyup:function(t){var r,i,s;switch(t.keyCode){case 9:r=this.$suggestion.val();if(r&&r!==this.$element.val()){this.$element.val(r);t.preventDefault();t.stopPropagation()}break;case 13:if(!this.options.onSelect){break}t.preventDefault();t.stopPropagation();i=e.trim(this.$element.val()).toLowerCase();if(this.selectedLanguage){this.options.onSelect(this.selectedLanguage)}else if(this.options.languages[i]){this.options.onSelect(i)}break;default:s=this;if(t.which<32&&t.which!==8){break}this.selectedLanguage=null;n(function(){if(!s.$element.val()){s.clear()}else{s.options.$target.empty();s.search()}},300);this.toggleClear()}},deactivate:function(){this.$element.val("");if(!e.fn.uls.Constructor.prototype.isMobile()){this.$element.focus()}this.toggleClear();this.autofill()},clear:function(){this.deactivate();this.$element.trigger("searchclear.uls")},toggleClear:function(){if(!this.$clear.length){return}if(this.$element.val()){this.$clear.show()}else{this.$clear.hide()}},search:function(){var t,n=e.trim(this.$element.val()),r=e.uls.data.getLanguagesByScriptGroup(this.options.languages),i,s,o;this.resultCount=0;for(i in r){t=r[i];t.sort(e.uls.data.sortByAutonym);for(s=0;s<t.length;s++){o=t[s];if(n===""||this.filter(o,n)){if(this.resultCount===0){this.autofill(o)}if(n.toLowerCase()===o){this.selectedLanguage=o}if(this.render(o)){this.resultCount++}}}}if(!this.resultCount&&this.options.searchAPI&&n){this.searchAPI(n)}else{this.resultHandler(n)}},searchAPI:function(t){var n=this;e.get(n.options.searchAPI,{search:t},function(r){e.each(r.languagesearch,function(e,t){if(n.resultCount===0){n.autofill(e,t)}if(n.render(e)){n.resultCount++}});n.resultHandler(t)})},resultHandler:function(e){if(this.resultCount===0){this.$suggestion.val("");this.$element.trigger("noresults.uls",e)}else{this.$element.trigger("resultsfound.uls",[e,this.resultCount])}},autofill:function(t,n){if(!this.$suggestion.length){return}if(!this.$element.val()){this.$suggestion.val("");return}this.selectedLanguage=t;n=n||this.options.languages[t];if(!n){return}var i,s=this.$element.val(),o=s+n.substring(s.length,n.length);if(o.toLowerCase()!==n.toLowerCase()){i=e.uls.data.getAutonym(t)||"";o=s+i.substring(s.length,i.length);if(o!==i){o=""}}if(!r(s,o)){o=""}this.$suggestion.val(o)},render:function(e){var t=this.options.$target;if(!t){return false}return t.append(e)},escapeRegex:function(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$\|#\s]/g,"\\$&")},filter:function(t,n){var r=new RegExp("^"+this.escapeRegex(n),"i"),i=this.options.languages[t];return r.test(i)||r.test(e.uls.data.getAutonym(t))||r.test(t)||r.test(e.uls.data.getScript(t))},eventSupported:function(e){var t=e in this.$element;if(!t){this.$element.setAttribute(e,"return;");t=typeof this.$element[e]==="function"}return t}};e.fn.languagefilter=function(n){return this.each(function(){var r=e(this),i=r.data("languagefilter"),s=typeof n==="object"&&n;if(!i){r.data("languagefilter",i=new t(this,s))}if(typeof n==="string"){i[n]()}})};e.fn.languagefilter.defaults={$target:null,searchAPI:null,languages:null,onSelect:null};e.fn.languagefilter.Constructor=t})(jQuery);(function(e){"use strict";var t,n;t='<div class="twelve columns uls-no-results-view hide">		<h2 data-i18n="uls-no-results-found" class="eleven columns offset-by-one uls-no-results-found-title">		No results found		</h2>		<div id="uls-no-found-more" class="uls-no-found-more">			<div class="ten columns offset-by-one">				<p>					<span data-i18n="uls-search-help">You can search by language name, 					script name, ISO code of language or 					you can browse by region:</span>					<a class="uls-region-link" data-i18n="uls-region-AM" data-region="AM">America</a>, 					<a class="uls-region-link" data-i18n="uls-region-EU" data-region="EU">Europe</a>, 					<a class="uls-region-link" data-i18n="uls-region-ME" data-region="ME">Middle East</a>, 					<a class="uls-region-link" data-i18n="uls-region-AF" data-region="AF">Africa</a>, 					<a class="uls-region-link" data-i18n="uls-region-AS" data-region="AS">Asia</a>, 					<a class="uls-region-link" data-i18n="uls-region-PA" data-region="PA">Pacific</a>, 					<a class="uls-region-link" data-i18n="uls-region-WW" data-region="WW">Worldwide</a>.				</p>			</div>		</div>	</div>';n=function(n,r){this.$element=e(n);this.options=e.extend({},e.fn.lcd.defaults,r);this.$element.addClass("lcd");this.regionLanguages={};this.renderTimeout=null;this.cachedQuicklist=null;this.$element.append(e(t));this.$noResults=this.$element.children(".uls-no-results-view");this.render();this.listen()};n.prototype={constructor:n,append:function(t,n){var r=this,i,s;if(!this.options.languages[t]){return false}if(n){s=[n]}else{s=e.uls.data.getRegions(t)}if(e.inArray("WW",s)>-1){s=["WW"]}for(i=0;i<s.length;i++){this.regionLanguages[s[i]].push(t)}window.clearTimeout(this.renderTimeout);this.renderTimeout=window.setTimeout(function(){r.renderRegions()},50);return true},render:function(){var t,n=this,r=[],i={WW:"Worldwide",SP:"Special",AM:"America",EU:"Europe",ME:"Middle East",AS:"Asia",AF:"Africa",PA:"Pacific"};r.push(this.buildQuicklist());e.each(e.uls.data.regiongroups,function(s){n.regionLanguages[s]=[];if(e.inArray(s,n.options.showRegions)===-1){return}t=e("<div>").addClass("eleven columns offset-by-one uls-lcd-region-section hide").attr("id",s).append(e("<h3>").attr("data-i18n","uls-region-"+s).addClass("eleven columns uls-lcd-region-title").text(i[s]));r.push(t)});n.$element.append(r);this.i18n()},renderRegions:function(){var t=this,n,r=t.options.itemsPerColumn,i=4;this.$noResults.addClass("hide");this.$element.find(".uls-lcd-region-section").each(function(){var s=e(this),o=s.attr("id");if(s.is("#uls-lcd-quicklist")){return}s.children(".uls-language-block").remove();n=t.regionLanguages[o];if(!n||n.length===0){s.addClass("hide");return}t.renderRegion(s,n,r,i);s.removeClass("hide");t.regionLanguages[o]=[]})},renderRegion:function(t,n,r,i){var s,o,u,a,f,l=n.length,c=[],h=[],p=[];for(s=0;s<l;s++){f=false;a=e.uls.data.getScriptGroupOfLanguage(n[s+1]);o=l-s===1;if(s===0){u=e.uls.data.getScriptGroupOfLanguage(n[s])}else if(u!==a&&c.length>1){f=true}u=a;c.push(this.renderItem(n[s]));if(c.length>=r||o||f){h.push(e("<ul>").addClass("three columns").append(c));c=[];if(h.length>=i||o){p.push(e("<div>").addClass("row uls-language-block").append(h));h=[]}}}t.append(p)},renderItem:function(t){var n,r,i,s;r=this.options.languages[t];i=e.uls.data.getAutonym(t)||r||t;s=document.createElement("li");s.title=r;s.lang=t;s.dir=e.uls.data.getDir(t);s.setAttribute("data-code",t);n=document.createElement("a");n.appendChild(document.createTextNode(i));n.className="autonym";s.appendChild(n);if(this.options.languageDecorator){this.options.languageDecorator(e(n),t)}return s},i18n:function(){this.$element.find("[data-i18n]").i18n()},quicklist:function(){this.$element.find("#uls-lcd-quicklist").removeClass("hide")},buildQuicklist:function(){var t,n,r;if(this.cachedQuicklist!==null){return this.cachedQuicklist}if(e.isFunction(this.options.quickList)){this.options.quickList=this.options.quickList()}if(!this.options.quickList){this.cachedQuicklist=e([]);return this.cachedQuicklist}t=this.options.quickList;t=t.slice(0,16);t.sort(e.uls.data.sortByAutonym);n=e("<div>").addClass("eleven columns offset-by-one uls-lcd-region-section").attr("id","uls-lcd-quicklist");r=e("<h3>").attr("data-i18n","uls-common-languages").addClass("eleven columns uls-lcd-region-title").text("Common languages");n.append(r);this.renderRegion(n,t,4,4);r.i18n();this.cachedQuicklist=n;return this.cachedQuicklist},show:function(){if(!this.regionDivs){this.render()}},empty:function(){this.$element.find("#uls-lcd-quicklist").addClass("hide")},focus:function(){this.$element.focus()},noResults:function(){this.$noResults.removeClass("hide");if(this.$noResults.find(".uls-lcd-region-title").length){return}var e=this.buildQuicklist().clone();e.find("h3").data("i18n","uls-no-results-suggestion-title").text("You may be interested in:").i18n();this.$noResults.find("h2").after(e)},listen:function(){var t=this;if(this.options.clickhandler){this.$element.on("click",".row li",function(){t.options.clickhandler.call(this,e(this).data("code"))})}t.$element.scroll(function(){var n,r,i=e(this),s=i.position().top,o=i.height();r="WW";t.$element.find(".uls-lcd-region-section").each(function(){var t=e(this),n=t.position().top,i=t.height(),u=10;if(n-u<=s&&i>o){r=t.attr("id")}});n=e.uls.data.regiongroups[r];if(!e("#uls-region-"+n).hasClass("active")){e(".regionselector").removeClass("active");e("#uls-region-"+n).addClass("active")}})}};e.fn.lcd=function(t){return this.each(function(){var r=e(this),i=r.data("lcd"),s=typeof t==="object"&&t;if(!i){r.data("lcd",i=new n(this,s))}if(typeof t==="string"){i[t]()}})};e.fn.lcd.defaults={languages:null,showRegions:["WW","AM","EU","ME","AF","AS","PA"],itemsPerColumn:8,languageDecorator:null};e.fn.lcd.Constructor=n})(jQuery);(function(e){"use strict";var t;t=function(t,n){this.$element=e(t);this.options=e.extend({},e.fn.regionselector.defaults,n);this.$element.addClass("regionselector");this.regions=[];this.cache=null;this.regionGroup=this.$element.data("regiongroup");this.init();this.listen()};t.prototype={constructor:t,init:function(){var t=this.$element.data("region");this.regions=e.uls.data.getRegionsInGroup(this.regionGroup);if(t){this.regions.push(t)}},test:function(t){var n,r,i=e.uls.data.getRegions(t);for(r=0;r<this.regions.length;r++){n=this.regions[r];if(e.inArray(n,i)>=0){this.render(t,n);this.cache[t]=n;return}}},show:function(){var t,n,r,i,s,o=this.options.$target&&this.options.$target.$element,u=o&&o.parent(),a=o&&o.prev();if(o&&u){o.detach()}if(this.cache){t=null;for(t in this.cache){this.render(t,this.cache[t])}}else{this.cache={};n=e.uls.data.getLanguagesByScriptGroup(this.options.languages);for(r in e.uls.data.scriptgroups){i=n[r];if(!i){continue}i.sort(e.uls.data.sortByAutonym);for(s=0;s<i.length;s++){this.test(i[s])}}}if(o&&u){if(a){a.after(o)}else{u.append(o)}}if(this.options.success){this.options.success(this)}},render:function(e,t){var n=this.options.$target;if(!n){return}n.append(e,t)},listen:function(){this.$element.on("click",e.proxy(this.click,this))},click:function(){var t,n;if(this.$element.hasClass("active")){return}t=this.options.$target.$element;n=t.find("#"+this.regions[0]);t.scrollTop(n.offset().top-t.offset().top+t.scrollTop());e(".regionselector").removeClass("active");if(this.regionGroup){this.$element.addClass("active")}}};e.fn.regionselector=function(n){return this.each(function(){var r=e(this),i=r.data("regionselector"),s=typeof n==="object"&&n;if(!i){r.data("regionselector",i=new t(this,s))}if(typeof n==="string"){i[n]()}})};e.fn.regionselector.defaults={$target:null,success:null,noresults:null,languages:null};e.fn.regionselector.Constructor=t})(jQuery)

@@ -1,198 +0,0 @@ 

- /**

-  * jQuery region filter plugin.

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- ( function ( $ ) {

- 	'use strict';

- 

- 	/* RegionSelector plugin definition */

- 

- 	var RegionSelector;

- 

- 	/**

- 	 * Region selector is a language selector based on regions.

- 	 * Usage: $( 'jqueryselector' ).regionselector( options );

- 	 * The attached element should have data-regiongroup attribute

- 	 * that defines the regiongroup for the selector.

- 	 */

- 	RegionSelector = function ( element, options ) {

- 		this.$element = $( element );

- 		this.options = $.extend( {}, $.fn.regionselector.defaults, options );

- 		this.$element.addClass( 'regionselector' );

- 		this.regions = [];

- 		this.cache = null;

- 		this.regionGroup = this.$element.data( 'regiongroup' );

- 		this.init();

- 		this.listen();

- 	};

- 

- 	RegionSelector.prototype = {

- 		constructor: RegionSelector,

- 

- 		init: function () {

- 			var region = this.$element.data( 'region' );

- 			this.regions = $.uls.data.getRegionsInGroup( this.regionGroup );

- 

- 			if ( region ) {

- 				this.regions.push( region );

- 			}

- 		},

- 

- 		test: function ( langCode ) {

- 			var region, i,

- 				langRegions = $.uls.data.getRegions( langCode );

- 

- 			for ( i = 0; i < this.regions.length; i++ ) {

- 				region = this.regions[i];

- 

- 				if ( $.inArray( region, langRegions ) >= 0 ) {

- 					this.render( langCode, region );

- 					this.cache[langCode] = region;

- 

- 					return;

- 				}

- 			}

- 		},

- 

- 		show: function () {

- 			var result, languagesByScriptGroup, scriptGroup, languages, i,

- 				$element = this.options.$target && this.options.$target.$element,

- 				$parent = $element && $element.parent(),

- 				$prev = $element && $element.prev();

- 

- 			if ( $element && $parent ) {

- 				// Avoid reflows while adding new elements to the list

- 				// Use .detach() to keep jQuery events and data associated with elements

- 				$element.detach();

- 			}

- 

- 			if ( this.cache ) {

- 				// If the result cache is present, render the results from there.

- 				//noinspection JSUnusedAssignment

- 				result = null;

- 

- 				for ( result in this.cache ) {

- 					this.render( result, this.cache[result] );

- 				}

- 			} else {

- 				this.cache = {};

- 				// Get the languages grouped by script group

- 				languagesByScriptGroup = $.uls.data.getLanguagesByScriptGroup( this.options.languages );

- 

- 				// Make sure that we go by the original order

- 				// of script groups

- 				for ( scriptGroup in $.uls.data.scriptgroups ) {

- 					// Get the languages for the script group

- 					languages = languagesByScriptGroup[scriptGroup];

- 

- 					// It's possible that some script groups are missing

- 					if ( !languages ) {

- 						continue;

- 					}

- 

- 					// Sort it based on autonym

- 					languages.sort( $.uls.data.sortByAutonym );

- 

- 					for ( i = 0; i < languages.length; i++ ) {

- 						// Check whether it belongs to the region

- 						this.test( languages[i] );

- 					}

- 				}

- 			}

- 

- 			if ( $element && $parent ) {

- 				// Restore the element to where we removed it from

- 				if ( $prev ) {

- 					$prev.after( $element );

- 				} else {

- 					$parent.append( $element );

- 				}

- 			}

- 

- 			if ( this.options.success ) {

- 				this.options.success( this );

- 			}

- 		},

- 

- 		render: function ( langCode, region ) {

- 			var $target = this.options.$target;

- 

- 			if ( !$target ) {

- 				return;

- 			}

- 

- 			$target.append( langCode, region );

- 		},

- 

- 		listen: function () {

- 			this.$element.on( 'click', $.proxy( this.click, this ) );

- 		},

- 

- 		click: function () {

- 			var $list, $firstTargetRegion;

- 

- 			// Don't do anything if a region is selected already

- 			if ( this.$element.hasClass( 'active' ) ) {

- 				return;

- 			}

- 

- 			$list = this.options.$target.$element;

- 			$firstTargetRegion = $list.find( '#' + this.regions[0] );

- 

- 			// Scroll to appropriate area

- 			$list.scrollTop(

- 				$firstTargetRegion.offset().top - $list.offset().top + $list.scrollTop()

- 			);

- 

- 			// Make the selected region (and it only) active

- 			$( '.regionselector' ).removeClass( 'active' );

- 

- 			if ( this.regionGroup ) {

- 				// if there is a region group, make it active.

- 				this.$element.addClass( 'active' );

- 			}

- 		}

- 	};

- 

- 	/* RegionSelector plugin definition */

- 

- 	$.fn.regionselector = function ( option ) {

- 		return this.each( function () {

- 			var $this = $( this ),

- 				data = $this.data( 'regionselector' ),

- 				options = typeof option === 'object' && option;

- 

- 			if ( !data ) {

- 				$this.data( 'regionselector', ( data = new RegionSelector( this, options ) ) );

- 			}

- 

- 			if ( typeof option === 'string' ) {

- 				data[option]();

- 			}

- 		} );

- 	};

- 

- 	$.fn.regionselector.defaults = {

- 		$target: null, // Where to render the results

- 		success: null, // callback if any results found.

- 		noresults: null, // callback when no results to show

- 		languages: null

- 	};

- 

- 	$.fn.regionselector.Constructor = RegionSelector;

- } ( jQuery ) );

@@ -13,41 +13,41 @@ 

  

  banned = language_map.get('Banned', 'lang_code')

  

+ languages = [('en', 'English')]

  with open(sys.argv[2], 'r') as linguas: # Linguas is where available languages are stored

-     with open(sys.argv[3], 'w') as output: # Output is a genshi template

-         output.write('''<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

- 		<html xmlns="http://www.w3.org/1999/xhtml"

- 		  xmlns:py="http://genshi.edgewall.org/"

- 		  xmlns:xi="http://www.w3.org/2001/XInclude"

- 		  py:strip="">

- 

- 		<!-- This file is generated, don't edit here -->

- 

- 		''')

-         output.write('''

- 		<script type="text/javascript">

- 		/* This list is generated, don't edit here */

- 		$(function() {

- 			$( '.uls-trigger' ).uls( {

- 				onSelect : function( language ) {

- 					var languageName = $.uls.data.getAutonym( language );

- 					$( '.uls-trigger' ).text( languageName );

-                     $('#selectedLang').val(language);

-                     $('#langSelect').trigger('submit');

- 				},

- 				languages: { 'en' : 'English' ''')

-         try:

-             for lang in linguas:

-                 lang = lang.strip()

-                 if lang and not lang.startswith('#') and not lang in banned:

-                     #output.write('    <option value="' + lang + '" py:attrs="{\'selected\': lang == \'' + lang + '\' and \'selected\' or None}">' + language_map.get('Languages',lang) + '</option>\n')

-                     #output.write(", '"+lang+"': '"+language_map.get('Languages',lang)+"'")

-                     output.write(", '"+lang+"': '"+langtable.language_name(languageId=lang).encode('utf-8')+"'")

-         finally:

-             linguas.close()

-         output.write("""}

- 			} );

- 		} );

- 		</script>

- 		""")

-         output.write('</html>')

+     for lang in linguas:

+         lang = lang.strip()

+         if lang and not lang.startswith('#') and not lang in banned:

+             languages.append((lang, langtable.language_name(languageId=lang).encode('utf-8')))

+ languages = sorted(languages)

+ 

+ with open(sys.argv[3], 'w') as output: # Output is a genshi template

+     output.write('''<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

+ 	<html xmlns="http://www.w3.org/1999/xhtml"

+ 	  xmlns:py="http://genshi.edgewall.org/"

+ 	  xmlns:xi="http://www.w3.org/2001/XInclude"

+ 	  py:strip="">

+ 

+ 	<!-- This file is generated, don't edit here -->

+ 

+ 	''')

+ 

+     output.write('''

+     <div class="dropup language-header">

+       <span class="fa fa-language fa-lg"></span>

+       <a class="dropdown-toggle" href="#" role="button" id="langSelect" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">

+         Change Language

+       </a>

+       <div class="dropdown-menu dropdown-menu-right language-menu" aria-labelledby="langSelect">

+         <ul class="list-unstyled text-center" id="languagelist">

+     ''')

+ 

+     for l_code, l_name in languages:

+         output.write('<li><a href="/'+ l_code +'/">'+ l_name +'</a></li>')

+ 

+     output.write("""

+         </ul>

+       </div>

+     </div>

+ 	""")

+     output.write('</html>')

@@ -10,11 +10,6 @@ 

      <link rel="stylesheet" media="screen" href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700&amp;subset=latin,latin-ext" />

      <link rel='stylesheet' media="screen" href='https://fonts.googleapis.com/css?family=Montserrat' />

  

-     <!-- language selector -->

-     <link rel="stylesheet" type="text/css" href="${path}/static/css/jquery.uls.css" />

-     <link rel="stylesheet" type="text/css" href="${path}/static/css/jquery.uls.grid.css" />

-     <link rel="stylesheet" type="text/css" href="${path}/static/css/jquery.uls.lcd.css" />

- 

      <!-- use RTL css for specific languages -->

      <link py:if="lang in ('ar', 'bal', 'fa', 'he')" rel="stylesheet" type="text/css" media="all" href="${path}/static/css/bootstrap-rtl.css" />

  

@@ -92,17 +92,7 @@ 

                      </div>

                      <div class="col-md-3">

                          <div class="widget-body">

-                             <div class="pull-left language-header">

- <!--

-                               <span class="active uls-trigger lang-dropdown">${_('Change Language')}</span>

-                                 <form action="" method="GET" style="visibility:hidden" id="langSelect" class="lang-dropdown">

-                                   <input type="hidden" name="lang" id="selectedLang" value="" />

- 				  -->

- <!-- Allow uls script to change language through legacy system -->

- <!--                                  <input type="submit" value="${_('OK')}" />

-                                 </form>

- -->

-                             </div>

+ <!--                      <xi:include href="../templates/translations.html" />   -->

                          </div>

                      </div>

                  </div> <!-- /row of widgets -->

@@ -12,14 +12,6 @@ 

      <script type="text/javascript" src="${path}/static/js/init.js"></script>

      <script type="text/javascript" src="${path}/static/js/bootstrap.min.js"></script>

  

-     <script type="text/javascript" src="${path}/static/js/jquery.uls.data.js"></script>

- 	  <script type="text/javascript" src="${path}/static/js/jquery.uls.data.utils.js"></script>

- 	  <script type="text/javascript" src="${path}/static/js/jquery.uls.lcd.js"></script>

- 	  <script type="text/javascript" src="${path}/static/js/jquery.uls.languagefilter.js"></script>

- 	  <script type="text/javascript" src="${path}/static/js/jquery.uls.regionfilter.js"></script>

- 	  <script type="text/javascript" src="${path}/static/js/jquery.uls.core.js"></script>

-     <xi:include href="../templates/translations.html" />

- 

      <!--[if lt IE 9]>

      <script type="text/javascript" src="${path}/static/js/html5shiv.js"></script>

      <script type="text/javascript" src="${path}/static/js/respond.min.js"></script>

@@ -570,7 +570,29 @@ 

    padding-left: 2px;

  }

  .language-header {

-   margin-top: 43px;

+   margin-top: 29px;

+ }

+ .language-menu ul {

+   column-count: 3;

+   column-gap: 3em;

+   margin: 1.5em;

+ }

+ 

+ @media (min-width:992px) {

+   .language-menu {

+     width: 97rem;

+   }

+   .language-menu ul {

+     column-count: 5;

+   }

+ }

+ @media (min-width:1200px) {

+   .language-menu {

+     width: 117rem;

+   }

+   .language-menu ul {

+     column-count: 5;

+   }

  }

  .btn-topmargin {

    margin-top: 10px;

@@ -1,75 +0,0 @@ 

- .uls-compact .uls-icon-close,

- .uls-compact .uls-title-region,

- .uls-compact .uls-map-block,

- .uls-compact #uls-settings-block {

- 	display: none !important;

- }

- 

- .uls-compact.uls-menu {

- 	border-radius: 0;

- }

- 

- .uls-compact .uls-search {

- 	background: white;

- 	border-top: none;

- 	padding: 0.8em 0;

- 	border-bottom-width: 1px;

- 	border-bottom-style: solid;

- 	border-bottom-color: #DDD;

- }

- 

- .uls-compact .uls-filterinput,

- .uls-compact .uls-filterinput:focus {

- 	background-color: transparent;

- 	border: none;

- 	box-shadow: none;

- 	outline: none;

- 	font-size: 18px;

- 	left: 0;

- }

- 

- .uls-compact .uls-language-list {

- 	background: #FCFCFC;

- 	height: 20em;

- }

- 

- .uls-compact .uls-search-label {

- 	background-size: 25px;

- 	height: 26px;

- 	width: 26px;

- 	float: right;

- 	opacity: 0.8;

- }

- 

- .uls-compact .uls-languagefilter-clear {

- 	margin-left: 0;

- }

- 

- .uls-compact .uls-title-region a {

- 	color: #777;

- 	display: inline-block;

- 	margin: 15px 0 5px 19px;

- 	cursor: pointer;

- 	padding: 6px;

- 	text-decoration: none;

- 	font-size: 14px;

- 	border: 1px solid transparent;

- }

- 

- .uls-compact .uls-title-region a:hover {

- 	color: #252525;

- 	background: #F0F0F0;

- 	border: 1px solid #DDD;

- 	border-radius: 3px;

- }

- 

- .uls-compact .uls-title-region a:before {

- 	display: inline-block;

- 	width: 0;

- 	height: 0;

- 	border-right: 4px solid #777;

- 	border-top: 4px solid transparent;

- 	border-bottom: 4px solid transparent;

- 	content: "";

- 	margin: 0 6px 0 0;

- }

@@ -1,260 +0,0 @@ 

- .uls-trigger {

- 	/* @embed */

- 	background: transparent url('/static/images/icon-language.png') no-repeat scroll left center;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/icon-language.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/icon-language.svg');

- 	padding-left: 30px;

- }

- 

- .uls-menu {

- 	position: absolute;

- 	z-index: 1000;

- 	display: none;

- 	margin-top: 1px;

- 	/* Styling */

- 	background-color: #ffffff;

- 	border: 1px solid #ccc;

- 	border: 1px solid rgba(0, 0, 0, 0.2);

- 	border-radius: 5px;

- 	-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);

- 	-moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);

- 	box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);

- 	-webkit-background-clip: padding-box;

- 	-moz-background-clip: padding;

- 	background-clip: padding-box;

- }

- 

- .uls-wide {

- 	min-width: 715px;

- 	width: 45%;

- }

- 

- .uls-title-region a {

- 	padding-left: 15px;

- }

- 

- .uls-menu .uls-title {

- 	font-weight: normal;

- 	border: none;

- 	padding-top: 1.25em;

- 	padding-left: 15px;

- 	padding-bottom: 3px;

- 	font-size: 18pt;

- 	line-height: 1.25em;

- 	color: #555;

- }

- 

- .uls-menu .uls-no-results-found-title {

- 	font-size: 16pt;

- 	font-weight: bold;

- 	line-height: 1.5em;

- 	padding-left: 6px;

- 	padding-top: 10px;

- 	margin-top: 0;

- 	margin-bottom: 15px;

- 	border-bottom: none;

- 	color: #555;

- }

- 

- .uls-menu .uls-lcd-region-section .uls-lcd-region-title {

- 	color: #777;

- 	font-size: 14pt;

- 	font-weight: lighter;

- 	line-height: 1.5em;

- 	padding-left: 0;

- 	margin-top: 0;

- 	margin-bottom: 10px;

- 	border-bottom: none;

- }

- 

- .uls-worldmap {

- 	/* @embed */

- 	background: transparent url('/static/images/world_map.png') no-repeat scroll right top;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/world_map.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/world_map.svg');

- 	background-size: 100%;

- }

- 

- div.uls-region {

- 	cursor: pointer;

- 	padding: 0;

- 	margin: 0;

- 	height: 120px;

- 	border-bottom-color: transparent;

- 	border-bottom-style: solid;

- 	border-bottom-width: 2px;

- }

- 

- .uls-worldmap .uls-region { /* The map doesn't flip */

- 	/* @noflip */

- 	float: left;

- }

- 

- .uls-region a {

- 	bottom: 2px;

- 	left: 2px;

- 	padding: 0;

- 	position: absolute;

- 	font-size: 13px;

- 	line-height: 1.2em;

- 	text-decoration: none;

- 	overflow: hidden;

- 	text-overflow: ellipsis;

- 	width: 99%;

- }

- 

- .uls-region:hover {

- 	/*Cross-browser background transparency*/

- 	background: #3366bb;

- 	background: rgba(51, 102, 187, 0.1);

- 	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#253366bb, endColorstr=#253366bb );

- 	-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#253366bb, endColorstr=#253366bb)";

- }

- 

- .uls-map-block .active {

- 	border-bottom-color: #3366bb;

- 	border-bottom-style: solid;

- }

- 

- .uls-menu .row .uls-map-block {

- 	top: 1px;

- 	margin-right: 0;

- 	padding-right: 0;

- 	float: right;

- 	overflow: hidden;

- 	opacity: 0.7;

- 	-moz-transition: opacity 0.2s linear;

- 	-o-transition: opacity 0.2s linear;

- 	-webkit-transition: opacity 0.2s linear;

- 	transition: opacity 0.2s linear;

- }

- 

- .uls-map-block a {

- 	color: #333;

- 	opacity: 0;

- 	-moz-transition: opacity 0.15s linear;

- 	-o-transition: opacity 0.15s linear;

- 	-webkit-transition: opacity 0.15s linear;

- 	transition: opacity 0.15s linear;

- }

- 

- .uls-menu .uls-map-block:hover,

- .uls-menu .uls-map-block:hover a {

- 	opacity: 1;

- 	color: #333;

- }

- 

- .uls-map-block .uls-region-1 {

- 	border-color: transparent;

- }

- 

- .uls-map-block:hover .active {

- 	border-color: #3366bb;

- }

- 

- .uls-map-block .active a {

- 	font-weight: bold;

- }

- 

- .uls-icon-close {

- 	/* @embed */

- 	background: transparent url('/static/images/close.png') no-repeat scroll center center;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/close.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/close.svg');

- 	float: right;

- 	padding: 15px;

- 	cursor: pointer;

- }

- 

- .uls-menu .uls-languagefilter {

- 	background-color: transparent;

- 	border: 1px solid #c9c9c9;

- 	border-radius: 2px 2px 2px 2px;

- 	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) inset;

- 	color: #333;

- 	display: block;

- 	padding: 6px;

- 	-moz-transition: border 0.15s linear 0s;

- 	-o-transition: border 0.15s linear 0s;

- 	-webkit-transition: border 0.15s linear 0s;

- 	transition: border 0.15s linear 0s;

- }

- 

- .uls-menu .uls-languagefilter:focus {

- 	border: 1px solid #3366bb;

- }

- 

- .uls-menu .uls-search {

- 	position: relative;

- 	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F0F0F0', endColorstr='#FBFBFB');

- 	background: #f8f8f8;

- 	background: -webkit-gradient(linear, left top, left bottom, from(#F0F0F0), to(#FBFBFB));

- 	background: -webkit-linear-gradient(top, #F0F0F0, #FBFBFB);

- 	background: -moz-linear-gradient(top, #F0F0F0, #FBFBFB);

- 	background: -o-linear-gradient(top, #F0F0F0, #FBFBFB);

- 	background: linear-gradient(#F0F0F0, #FBFBFB);

- 	border-top-color: #AAA;

- 	border-top-style: solid;

- 	border-top-width: 1px;

- 	padding: 0.8em 0;

- 	border-bottom-width: 1px;

- 	border-bottom-style: solid;

- 	border-bottom-color: #DDD;

- }

- 

- .uls-menu .uls-search-label {

- 	/* @embed */

- 	background: transparent url('/static/images/search.png') no-repeat scroll right center;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/search.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/search.svg');

- 	background-size: 30px;

- 	height: 32px;

- 	width: 32px;

- 	float: right;

- }

- 

- .uls-menu .uls-languagefilter-clear {

- 	/* @embed */

- 	background: transparent url('/static/images/clear.png') no-repeat scroll left center;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/clear.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/clear.svg');

- 	cursor: pointer;

- 	height: 32px;

- 	position: absolute;

- 	width: 32px;

- 	margin-left: -32px;

- }

- 

- .uls-menu .uls-filterinput {

- 	position: absolute;

- 	top: 0;

- 	left: 0;

- 	font-size: 14px;

- 	height: 32px;

- 	width: 100%;

- 	text-align: left;

- }

- 

- .uls-menu .uls-filtersuggestion {

- 	padding: 6px;

- 	background-color: white;

- 	color: #888;

- 	border: 1px transparent;

- 	border-radius: 2px 2px 2px 2px;

- 	box-shadow: 0 1px 2px transparent inset;

- 	left: 1px;

- }

- 

- .uls-menu .uls-search-input-block {

- 	position: relative;

- }

@@ -1,315 +0,0 @@ 

- /* Generated using Foundation http://foundation.zurb.com/docs/grid.php */

- /* Global Reset & Standards ---------------------- */

- .grid * {

- 	-webkit-box-sizing: border-box;

- 	-moz-box-sizing: border-box;

- 	box-sizing: border-box;

- }

- 

- /* Misc ---------------------- */

- .grid .left {

- 	float: left;

- }

- 

- .grid .right {

- 	float: right;

- }

- 

- .grid .text-left {

- 	text-align: left;

- }

- 

- .grid .text-right {

- 	text-align: right;

- }

- 

- .grid .text-center {

- 	text-align: center;

- }

- 

- .grid .hide {

- 	display: none;

- }

- 

- .grid .highlight {

- 	background: #ffff99;

- }

- 

- /* The Grid ---------------------- */

- .grid .row {

- 	width: 100%;

- 	max-width: none;

- 	min-width: 600px;

- 	margin: 0 auto;

- }

- 

- .grid .row .row {

- 	width: auto;

- 	max-width: none;

- 	min-width: 0;

- 	margin: 0 -5px;

- }

- 

- .grid .row.collapse .column,

- .grid .row.collapse .columns {

- 	padding: 0;

- }

- 

- .grid .row .row {

- 	width: auto;

- 	max-width: none;

- 	min-width: 0;

- 	margin: 0 -5px;

- }

- 

- .grid .row .row.collapse {

- 	margin: 0;

- }

- 

- .grid .column, .grid .columns {

- 	float: left;

- 	min-height: 1px;

- 	padding: 0 5px;

- 	position: relative;

- }

- 

- .grid .column.centered, .grid .columns.centered {

- 	float: none;

- 	margin: 0 auto;

- }

- 

- .grid .row .one {

- 	width: 8.333%;

- }

- 

- .grid .row .two {

- 	width: 16.667%;

- }

- 

- .grid .row .three {

- 	width: 25%;

- }

- 

- .grid .row .four {

- 	width: 33.333%;

- }

- 

- .grid .row .five {

- 	width: 41.667%;

- }

- 

- .grid .row .six {

- 	width: 50%;

- }

- 

- .grid .row .seven {

- 	width: 58.333%;

- }

- 

- .grid .row .eight {

- 	width: 66.667%;

- }

- 

- .grid .row .nine {

- 	width: 75%;

- }

- 

- .grid .row .ten {

- 	width: 83.333%;

- }

- 

- .grid .row .eleven {

- 	width: 91.667%;

- }

- 

- .grid .row .twelve {

- 	width: 100%;

- }

- 

- .grid .row .offset-by-one {

- 	margin-left: 8.333%;

- }

- 

- .grid .row .offset-by-two {

- 	margin-left: 16.667%;

- }

- 

- .grid .row .offset-by-three {

- 	margin-left: 25%;

- }

- 

- .grid .row .offset-by-four {

- 	margin-left: 33.333%;

- }

- 

- .grid .row .offset-by-five {

- 	margin-left: 41.667%;

- }

- 

- .grid .row .offset-by-six {

- 	margin-left: 50%;

- }

- 

- .grid .row .offset-by-seven {

- 	margin-left: 58.333%;

- }

- 

- .grid .row .offset-by-eight {

- 	margin-left: 66.667%;

- }

- 

- .grid .row .offset-by-nine {

- 	margin-left: 75%;

- }

- 

- .grid .row .offset-by-ten {

- 	margin-left: 83.333%;

- }

- 

- .grid .push-two {

- 	left: 16.667%;

- }

- 

- .grid .pull-two {

- 	right: 16.667%;

- }

- 

- .grid .push-three {

- 	left: 25%;

- }

- 

- .grid .pull-three {

- 	right: 25%;

- }

- 

- .grid .push-four {

- 	left: 33.333%;

- }

- 

- .grid .pull-four {

- 	right: 33.333%;

- }

- 

- .grid .push-five {

- 	left: 41.667%;

- }

- 

- .grid .pull-five {

- 	right: 41.667%;

- }

- 

- .grid .push-six {

- 	left: 50%;

- }

- 

- .grid .pull-six {

- 	right: 50%;

- }

- 

- .grid .push-seven {

- 	left: 58.333%;

- }

- 

- .grid .pull-seven {

- 	right: 58.333%;

- }

- 

- .grid .push-eight {

- 	left: 66.667%;

- }

- 

- .grid .pull-eight {

- 	right: 66.667%;

- }

- 

- .grid .push-nine {

- 	left: 75%;

- }

- 

- .grid .pull-nine {

- 	right: 75%;

- }

- 

- .grid .push-ten {

- 	left: 83.333%;

- }

- 

- .grid .pull-ten {

- 	right: 83.333%;

- }

- 

- /* Nicolas Gallagher's micro clearfix */

- .grid .row {

- 	*zoom: 1;

- }

- 

- .grid .row:before, .grid .row:after {

- 	content: "";

- 	display: table;

- }

- 

- .grid .row:after {

- 	clear: both;

- }

- 

- /* Block Grids ---------------------- */

- /* These are 2-up, 3-up, 4-up and 5-up ULs, suited

-  for repeating blocks of content. Add 'mobile' to

-  them to switch them just like the layout grid

-  (one item per line) on phones

- 

-  For IE7/8 compatibility block-grid items need to be

-  the same height. You can optionally uncomment the

-  lines below to support arbitrary height, but know

-  that IE7/8 do not support :nth-child.

-  -------------------------------------------------- */

- .grid .block-grid {

- 	display: block;

- 	overflow: hidden;

- 	padding: 0;

- }

- 

- .grid .block-grid > li {

- 	display: block;

- 	height: auto;

- 	float: left;

- }

- 

- .grid .block-grid.two-up {

- 	margin: 0 -15px;

- }

- 

- .grid .block-grid.two-up > li {

- 	width: 50%;

- 	padding: 0 15px 15px;

- }

- 

- /* .block-grid.two-up>li:nth-child(2n+1) {clear: left;} */

- .grid .block-grid.three-up {

- 	margin: 0 -12px;

- }

- 

- .grid .block-grid.three-up > li {

- 	width: 33.33%;

- 	padding: 0 12px 12px;

- }

- 

- /* .block-grid.three-up>li:nth-child(3n+1) {clear: left;} */

- .grid .block-grid.four-up {

- 	margin: 0 -10px;

- }

- 

- .grid .block-grid.four-up > li {

- 	width: 25%;

- 	padding: 0 10px 10px;

- }

- 

- /* .block-grid.four-up>li:nth-child(4n+1) {clear: left;} */

- .grid .block-grid.five-up {

- 	margin: 0 -8px;

- }

- 

- .grid .block-grid.five-up > li {

- 	width: 20%;

- 	padding: 0 8px 8px;

- }

@@ -1,86 +0,0 @@ 

- .uls-lcd-region-section ul li:hover {

- 	background-color: #eaeff7;

- }

- 

- .uls-lcd-region-section {

- 	margin-top: 10px;

- }

- 

- /* Language list */

- .uls-language-list {

- 	height: 17em;

- 	overflow: auto;

- 	width: auto;

- }

- 

- .uls-language-block ul {

- 	margin: 0 0 1.5em;

- }

- 

- .uls-language-list ul li {

- 	cursor: pointer;

- 	font-weight: normal;

- 	overflow: hidden;

- 	white-space: nowrap;

- 

- 	/*

- 	 * Some languages have long names for various reasons and we still want

- 	 * them to appear on one line.

- 	 * To make it work correctly, the directionality must be set correctly

- 	 * on the item level.

- 	 */

- 	text-overflow: ellipsis;

- 

- 	/*

- 	 * The directionality (ltr/rtl) for each list item is set dynamically

- 	 * as HTML attributes in JavaScript. Setting directionality also applies

- 	 * alignment, but a list with mixed alignment is hard to read.

- 	 * All items are therefore explicitly aligned to the left, including names

- 	 * of right-to-left languages in left-to-right environment and vice versa.

- 	 * As long as the directionality of the item is set correctly, the text

- 	 * is readable.

- 	 */

- 	text-align: left;

- 

- 	/*

- 	 * We don't want any visible bullets in this list.

- 	 */

- 	list-style-image: none;

- 	list-style-type: none;

- }

- 

- .uls-language-list strong {

- 	text-decoration: underline;

- }

- 

- .uls-language-list a {

- 	font-weight: normal;

- 	text-decoration: none;

- 	color: #3366bb;

- 	font-size: 14px;

- 	line-height: 1.6em;

- }

- 

- .uls-language-block {

- 	width: 100%;

- }

- 

- .uls-no-results-view {

- 	color: #555;

- 	height: 100%;

- }

- 

- .uls-no-found-more {

- 	font-size: 0.9em;

- 	background: #F8F8F8;

- 	width: 100%;

- 	margin-top: 1.6em;

- 	line-height: 1.6em;

- 	position: absolute;

- 	bottom: 0;

- 	left: 0;

- }

- 

- .uls-no-found-more a {

- 	cursor: pointer;

- }

@@ -1,319 +0,0 @@ 

- @media only screen and (max-width: 767px) {

- 

- 	.uls-mobile.uls-menu {

- 		width: 95%;

- 		left: 2.5%;

- 	}

- 

- 	.uls-mobile .uls-language-list {

- 		-webkit-overflow-scrolling: touch;

- 	}

- 

- 	.uls-mobile .uls-language-block {

- 		padding-left: 15px !important;

- 	}

- 

- 	.uls-mobile .uls-language-block ul {

- 		min-height: 14em;

- 	}

- 

- 	.uls-mobile .uls-language-block a {

- 		font-size: 16px;

- 		line-height: 1.7em;

- 	}

- 

- 	.uls-mobile div.uls-region {

- 		width: 33% !important;

- 		float: left !important;

- 	}

- 

- 	.uls-mobile .uls-map-block a,

- 	.uls-mobile .uls-map-block {

- 		opacity: 1 !important;

- 	}

- 

- 	.uls-mobile .row {

- 		width: auto;

- 		min-width: 0;

- 		margin-left: 0;

- 		margin-right: 0;

- 	}

- 

- 	.uls-mobile .column,

- 	.uls-mobile .columns {

- 		width: auto !important;

- 		float: none;

- 	}

- 

- 	.uls-mobile .column:last-child,

- 	.uls-mobile .columns:last-child {

- 		float: none;

- 	}

- 

- 	.uls-mobile [class*="column"] + [class*="column"]:last-child {

- 		float: none;

- 	}

- 

- 	.uls-mobile .column:before,

- 	.uls-mobile .uls-mobile .columns:before,

- 	.uls-mobile .column:after,

- 	.columns:after {

- 		content: "";

- 		display: table;

- 	}

- 

- 	.uls-mobile .column:after,

- 	.uls-mobile .columns:after {

- 		clear: both;

- 	}

- 

- 	.uls-mobile .offset-by-one,

- 	.uls-mobile .offset-by-two,

- 	.uls-mobile .offset-by-three,

- 	.uls-mobile .offset-by-four,

- 	.uls-mobile .offset-by-five,

- 	.uls-mobile .offset-by-six,

- 	.uls-mobile .offset-by-seven,

- 	.uls-mobile .offset-by-eight,

- 	.uls-mobile .offset-by-nine,

- 	.uls-mobile .offset-by-ten {

- 		margin-left: 0 !important;

- 	}

- 

- 	.uls-mobile .push-two,

- 	.uls-mobile .push-three,

- 	.uls-mobile .push-four,

- 	.uls-mobile .push-five,

- 	.uls-mobile .push-six,

- 	.uls-mobile .push-seven,

- 	.uls-mobile .push-eight,

- 	.uls-mobile .push-nine,

- 	.uls-mobile .push-ten {

- 		left: auto;

- 	}

- 

- 	.uls-mobile .pull-two,

- 	.uls-mobile .pull-three,

- 	.uls-mobile .pull-four,

- 	.uls-mobile .pull-five,

- 	.uls-mobile .pull-six,

- 	.uls-mobile .pull-seven,

- 	.uls-mobile .pull-eight,

- 	.uls-mobile .pull-nine,

- 	.uls-mobile .pull-ten {

- 		right: auto;

- 	}

- 

- 	/* Mobile 4-column Grid */

- 	.uls-mobile .row .mobile-one {

- 		width: 25% !important;

- 		float: left;

- 		padding: 0 4px;

- 	}

- 

- 	.uls-mobile .row .mobile-one:last-child {

- 		float: right;

- 	}

- 

- 	.uls-mobile .row.collapse .mobile-one {

- 		padding: 0;

- 	}

- 

- 	.uls-mobile .row .mobile-two {

- 		width: 50% !important;

- 		float: left;

- 		padding: 0 4px;

- 	}

- 

- 	.uls-mobile .row .mobile-two:last-child {

- 		float: right;

- 	}

- 

- 	.uls-mobile .row.collapse .mobile-two {

- 		padding: 0;

- 	}

- 

- 	.uls-mobile .row .mobile-three {

- 		width: 75% !important;

- 		float: left;

- 		padding: 0 4px;

- 	}

- 

- 	.uls-mobile .row .mobile-three:last-child {

- 		float: right;

- 	}

- 

- 	.uls-mobile .row.collapse .mobile-three {

- 		padding: 0;

- 	}

- 

- 	.uls-mobile .row .mobile-four {

- 		width: 100% !important;

- 		float: left;

- 		padding: 0 4px;

- 	}

- 

- 	.uls-mobile .row .mobile-four:last-child {

- 		float: right;

- 	}

- 

- 	.uls-mobile .row.collapse .mobile-four {

- 		padding: 0;

- 	}

- 

- 	.uls-mobile .push-one-mobile {

- 		left: 25%;

- 	}

- 

- 	.uls-mobile .pull-one-mobile {

- 		right: 25%;

- 	}

- 

- 	.uls-mobile .push-two-mobile {

- 		left: 50%;

- 	}

- 

- 	.uls-mobile .pull-two-mobile {

- 		right: 50%;

- 	}

- 

- 	.uls-mobile .push-three-mobile {

- 		left: 75%;

- 	}

- 

- 	.uls-mobile .pull-three-mobile {

- 		right: 75%;

- 	}

- }

- 

- /* Visibility Classes ---------------------- */

- /* Standard (large) display targeting */

- .uls-mobile .show-for-small,

- .uls-mobile .show-for-medium,

- .uls-mobile .show-for-medium-down,

- .uls-mobile .hide-for-large,

- .uls-mobile .hide-for-large-up,

- .uls-mobile .show-for-xlarge {

- 	display: none !important;

- }

- 

- .uls-mobile .hide-for-xlarge,

- .uls-mobile .show-for-large,

- .uls-mobile .show-for-large-up,

- .uls-mobile .hide-for-small,

- .uls-mobile .hide-for-medium,

- .uls-mobile .hide-for-medium-down {

- 	display: block !important;

- }

- 

- /* Very large display targeting */

- @media only screen and (min-width: 1441px) {

- 

- 	.uls-mobile .hide-for-small,

- 	.uls-mobile .hide-for-medium,

- 	.uls-mobile .hide-for-medium-down,

- 	.hide-for-large, .show-for-large-up,

- 	.show-for-xlarge {

- 		display: block !important;

- 	}

- 

- 	.show-for-small,

- 	.uls-mobile .show-for-medium,

- 	.uls-mobile .show-for-medium-down,

- 	.uls-mobile .show-for-large,

- 	.uls-mobile .hide-for-large-up,

- 	.uls-mobile .hide-for-xlarge {

- 		display: none !important;

- 	}

- }

- /* Medium display targeting */

- @media only screen and (max-width: 1279px) and (min-width: 768px) {

- 

- 	.uls-mobile .hide-for-small,

- 	.uls-mobile .show-for-medium,

- 	.uls-mobile .show-for-medium-down,

- 	.uls-mobile .hide-for-large,

- 	.uls-mobile .hide-for-large-up,

- 	.uls-mobile .hide-for-xlarge {

- 		display: block !important;

- 	}

- 

- 	.uls-mobile .show-for-small,

- 	.uls-mobile .hide-for-medium,

- 	.uls-mobile .hide-for-medium-down,

- 	.uls-mobile .show-for-large,

- 	.uls-mobile .show-for-large-up,

- 	.uls-mobile .show-for-xlarge {

- 		display: none !important;

- 	}

- }

- /* Small display targeting */

- @media only screen and (max-width: 767px) {

- 

- 	.uls-mobile .show-for-small,

- 	.uls-mobile .hide-for-medium,

- 	.uls-mobile .show-for-medium-down,

- 	.uls-mobile .hide-for-large,

- 	.uls-mobile .hide-for-large-up,

- 	.uls-mobile .hide-for-xlarge {

- 		display: block !important;

- 	}

- 	.uls-mobile .hide-for-small,

- 	.uls-mobile .show-for-medium,

- 	.uls-mobile .hide-for-medium-down,

- 	.uls-mobile .show-for-large,

- 	.uls-mobile .show-for-large-up,

- 	.uls-mobile .show-for-xlarge {

- 		display: none !important;

- 	}

- }

- 

- /* Orientation targeting */

- .uls-mobile .show-for-landscape,

- .uls-mobile .hide-for-portrait {

- 	display: block !important;

- }

- 

- .uls-mobile .hide-for-landscape,

- .uls-mobile .show-for-portrait {

- 	display: none !important;

- }

- 

- @media screen and (orientation: landscape) {

- 	.uls-mobile .show-for-landscape,

- 	.uls-mobile .hide-for-portrait {

- 		display: block !important;

- 	}

- 	.uls-mobile .hide-for-landscape,

- 	.uls-mobile .show-for-portrait {

- 		display: none !important;

- 	}

- }

- 

- @media screen and (orientation: portrait) {

- 	.uls-mobile .show-for-portrait,

- 	.uls-mobile .hide-for-landscape {

- 		display: block !important;

- 	}

- 	.uls-mobile .hide-for-portrait,

- 	.uls-mobile .show-for-landscape {

- 		display: none !important;

- 	}

- }

- 

- /* Touch-enabled device targeting */

- .uls-mobile .show-for-touch {

- 	display: none !important;

- }

- 

- .uls-mobile .hide-for-touch {

- 	display: block !important;

- }

- 

- .uls-mobile .touch .show-for-touch {

- 	display: block !important;

- }

- 

- .uls-mobile .touch .hide-for-touch {

- 	display: none !important;

- }

@@ -1,444 +0,0 @@ 

- /**

-  * Universal Language Selector

-  * ULS core component.

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- ( function ( $ ) {

- 	'use strict';

- 

- 	var template, ULS;

- 

- 	// Region numbers in id attributes also appear in the langdb.

- 	/*jshint multistr:true */

- 	template = '<div class="grid uls-menu uls-wide"> \

- 			<div class="row"> \

- 				<span id="uls-close" class="uls-icon-close"></span> \

- 			</div> \

- 			<div class="row"> \

- 				<div class="uls-title-region seven columns">\

- 					<h1 data-i18n="uls-select-language" class="uls-title">Select Language</h1>\

- 				</div>\

- 				<div class="five columns uls-map-block" id="uls-map-block">\

- 					<div class="row">\

- 						<div data-regiongroup="1" id="uls-region-1" class="three columns uls-region uls-region-1">\

- 							<a data-i18n="uls-region-WW">Worldwide</a>\

- 						</div>\

- 						<div class="nine columns">\

- 							<div class="row uls-worldmap">\

- 								<div data-regiongroup="2" id="uls-region-2" class="four columns uls-region">\

- 									<a data-i18n="uls-region-AM">America</a>\

- 								</div>\

- 								<div data-regiongroup="3" id="uls-region-3" class="four columns uls-region">\

- 									<a><span data-i18n="uls-region-EU">Europe</span><br>\

- 									<span data-i18n="uls-region-ME">Middle East</span><br>\

- 									<span data-i18n="uls-region-AF">Africa</span></a>\

- 								</div>\

- 								<div data-regiongroup="4" id="uls-region-4" class="four columns uls-region">\

- 									<a><span data-i18n="uls-region-AS">Asia</span><br>\

- 									<span data-i18n="uls-region-PA">Pacific</span></a>\

- 								</div>\

- 							</div>\

- 						</div>\

- 					</div>\

- 				</div>\

- 			</div>\

- 			<div id="search" class="row uls-search"> \

- 				<div class="one column">\

- 					<span class="uls-search-label"></span>\

- 				</div>\

- 				<div class="ten columns">\

- 					<div id="uls-search-input-block" class="uls-search-input-block">\

- 						<input type="text" class="uls-filterinput uls-filtersuggestion" id="uls-filtersuggestion" disabled="true"\

- 							autocomplete="off" /> <input type="text" class="uls-filterinput uls-languagefilter" id="uls-languagefilter"\

- 							data-clear="uls-languagefilter-clear" data-suggestion="uls-filtersuggestion"\

- 							placeholder="Language search" autocomplete="off" />\

- 					</div>\

- 				</div>\

- 				<div class="one column">\

- 					<span id="uls-languagefilter-clear" class="uls-languagefilter-clear"></span>\

- 				</div>\

- 			</div>\

- 			<div class="row uls-language-list"></div>\

- 			<div class="row" id="uls-settings-block"></div>\

- 		</div>';

- 	/*jshint multistr:false */

- 

- 	/**

- 	 * ULS Public class definition

- 	 */

- 	ULS = function ( element, options ) {

- 		this.$element = $( element );

- 		this.options = $.extend( {}, $.fn.uls.defaults, options );

- 		this.$menu = $( template );

- 		this.languages = this.options.languages;

- 

- 		for ( var code in this.languages ) {

- 			if ( $.uls.data.languages[code] === undefined ) {

- 				// Language is unknown to ULS.

- 				delete this.languages[code];

- 			}

- 		}

- 

- 		this.left = this.options.left;

- 		this.top = this.options.top;

- 		this.shown = false;

- 		this.initialized = false;

- 

- 		this.$languageFilter = this.$menu.find( '#uls-languagefilter' );

- 		this.$regionFilters = this.$menu.find( '.uls-region' );

- 		this.$resultsView = this.$menu.find( 'div.uls-language-list' );

- 

- 		this.render();

- 		this.listen();

- 		this.ready();

- 	};

- 

- 	ULS.prototype = {

- 		constructor: ULS,

- 

- 		/**

- 		 * A "hook" that runs after the ULS constructor.

- 		 * At this point it is not guaranteed that the ULS has its dimensions

- 		 * and that the languages lists are initialized.

- 		 *

- 		 * To use it, pass a function as the onReady parameter

- 		 * in the options when initializing ULS.

- 		 */

- 		ready: function () {

- 			if ( this.options.onReady ) {

- 				this.options.onReady.call( this );

- 			}

- 		},

- 

- 		/**

- 		 * A "hook" that runs after the ULS panel becomes visible

- 		 * by using the show method.

- 		 *

- 		 * To use it, pass a function as the onVisible parameter

- 		 * in the options when initializing ULS.

- 		 */

- 		visible: function () {

- 			if ( this.options.onVisible ) {

- 				this.options.onVisible.call( this );

- 			}

- 		},

- 

- 		/**

- 		 * Calculate the position of ULS

- 		 * Returns an object with top and left properties.

- 		 * @returns {Object}

- 		 * position is set by setting also window height and margin

- 		 */

- 		position: function () {

- 			var pos = $.extend( {}, this.$element.offset(), {

- 				height: this.$element[0].offsetHeight

- 			} );

- 			return {

- 				top: this.top !== undefined ? this.top : pos.top - (447+10),

- 				left: this.left !== undefined ? this.left : '25%'

- 			};

- 		},

- 

- 		/**

- 		 * Show the ULS window

- 		 */

- 		show: function () {

- 			this.$menu.css( this.position() );

- 

- 			if ( this.options.compact ) {

- 				this.$menu.addClass( 'uls-compact' );

- 			}

- 

- 			if ( !this.initialized ) {

- 				$( 'body' ).prepend( this.$menu );

- 				this.i18n();

- 

- 				// Initialize with a full search.

- 				// This happens on first time click of uls trigger.

- 				this.defaultSearch();

- 

- 				this.initialized = true;

- 			}

- 

- 			// hide any other visible ULS

- 			$( '.uls-menu' ).hide();

- 

- 			this.$menu.show();

- 			this.$menu.scrollIntoView();

- 			this.shown = true;

- 

- 			if ( !this.isMobile() ) {

- 				this.$languageFilter.focus();

- 			}

- 

- 			this.visible();

- 		},

- 

- 		i18n: function () {

- 			if ( $.i18n ) {

- 				this.$menu.find( '[data-i18n]' ).i18n();

- 				this.$languageFilter.prop( 'placeholder', $.i18n( 'uls-search-placeholder' ) );

- 			}

- 		},

- 

- 		defaultSearch: function () {

- 			this.$resultsView.lcd( 'empty' );

- 

- 			this.$regionFilters.regionselector( 'show' );

- 		},

- 

- 		/**

- 		 * Hide the ULS window

- 		 */

- 		hide: function () {

- 			this.$menu.hide();

- 			this.shown = false;

- 		},

- 

- 		/**

- 		 * Render the UI elements.

- 		 * Does nothing by default. Can be used for customization.

- 		 */

- 		render: function () {

- 			// Rendering stuff here

- 		},

- 

- 		/**

- 		 * Callback for no results found context.

- 		 */

- 		noresults: function () {

- 			$( '.regionselector' ).removeClass( 'active' );

- 			this.$resultsView.lcd( 'noResults' );

- 		},

- 

- 		/**

- 		 * callback for results found context.

- 		 */

- 		success: function () {

- 			$( '.regionselector' ).removeClass( 'active' );

- 			this.$resultsView.show();

- 		},

- 

- 		/**

- 		 * Bind the UI elements with their event listeners

- 		 */

- 		listen: function () {

- 			var lcd,

- 				uls = this;

- 

- 			// Register all event listeners to the ULS here.

- 			this.$element.on( 'click', $.proxy( this.click, this ) );

- 

- 			this.$languageFilter.on( 'searchclear.uls', $.proxy( this.defaultSearch, this ) );

- 			this.$languageFilter.on( 'noresults.uls', $.proxy( this.noresults, this ) );

- 			this.$languageFilter.on( 'resultsfound.uls', $.proxy( this.success, this ) );

- 

- 			// Close when clicking on the close button

- 			this.$menu.find( '#uls-close' ).on( 'click', $.proxy( this.cancel, this ) );

- 			// Don't do anything if pressing on empty space in the ULS

- 			this.$menu.on( 'click', function ( e ) {

- 				e.stopPropagation();

- 			} );

- 

- 			// Handle key press events on the menu

- 			this.$menu.on( 'keypress', $.proxy( this.keypress, this ) )

- 				.on( 'keyup', $.proxy( this.keyup, this ) );

- 

- 			if ( this.eventSupported( 'keydown' ) ) {

- 				this.$menu.on( 'keydown', $.proxy( this.keypress, this ) );

- 			}

- 

- 			lcd = this.$resultsView.lcd( {

- 				languages: this.languages,

- 				quickList: this.options.quickList,

- 				clickhandler: $.proxy( this.select, this ),

- 				source: this.$languageFilter,

- 				showRegions: this.options.showRegions,

- 				languageDecorator: this.options.languageDecorator

- 			} ).data( 'lcd' );

- 

- 			this.$languageFilter.languagefilter( {

- 				$target: lcd,

- 				languages: this.languages,

- 				searchAPI: this.options.searchAPI,

- 				onSelect: $.proxy( this.select, this )

- 			} );

- 

- 			// Create region selectors, one per region

- 			this.$menu.find( '.uls-region, .uls-region-link' ).regionselector( {

- 				$target: lcd,

- 				languages: this.languages,

- 				success: function ( regionfilter ) {

- 					// Deactivate search filtering

- 					uls.$languageFilter.languagefilter( 'deactivate' );

- 

- 					// If it is the WW region, show the quicklist

- 					if ( regionfilter.regionGroup === 1 ) {

- 						lcd.quicklist();

- 					}

- 

- 					// Show 'results view' if we are in no results mode

- 					uls.success();

- 				},

- 				noresults: function () {

- 					uls.$languageFilter.languagefilter( 'clear' );

- 				}

- 			} );

- 

- 			$( 'html' ).click( $.proxy( this.cancel, this ) );

- 		},

- 

- 		/**

- 		 * On select handler for search results

- 		 * @param langCode

- 		 */

- 		select: function ( langCode ) {

- 			this.hide();

- 			this.$languageFilter.trigger( 'searchclear' );

- 			if ( this.options.onSelect ) {

- 				this.options.onSelect.call( this, langCode );

- 			}

- 		},

- 

- 		/**

- 		 * On cancel handler for the uls menu

- 		 */

- 		cancel: function () {

- 			this.hide();

- 

- 			if ( this.options.onCancel ) {

- 				this.options.onCancel.call( this );

- 			}

- 		},

- 

- 		keyup: function ( e ) {

- 			if ( !this.shown ) {

- 				return;

- 			}

- 

- 			if ( e.keyCode === 27 ) { // escape

- 				this.cancel();

- 				e.preventDefault();

- 				e.stopPropagation();

- 			}

- 		},

- 

- 		keypress: function ( e ) {

- 			if ( !this.shown ) {

- 				return;

- 			}

- 

- 			if ( e.keyCode === 27 ) { // escape

- 				this.cancel();

- 				e.preventDefault();

- 				e.stopPropagation();

- 			}

- 		},

- 

- 		click: function ( e ) {

- 			e.stopPropagation();

- 			e.preventDefault();

- 

- 			if ( this.shown ) {

- 				this.hide();

- 			} else {

- 				this.show();

- 			}

- 		},

- 

- 		eventSupported: function ( eventName ) {

- 			var isSupported = eventName in this.$menu;

- 

- 			if ( !isSupported ) {

- 				this.$element.setAttribute( eventName, 'return;' );

- 				isSupported = typeof this.$element[eventName] === 'function';

- 			}

- 

- 			return isSupported;

- 		},

- 

- 		isMobile: function () {

- 			return navigator.userAgent.match( /(iPhone|iPod|iPad|Android|BlackBerry)/ );

- 		}

- 	};

- 

- 	/* ULS PLUGIN DEFINITION

- 	 * =========================== */

- 

- 	$.fn.uls = function ( option ) {

- 		return this.each( function () {

- 			var $this = $( this ),

- 				data = $this.data( 'uls' ),

- 				options = typeof option === 'object' && option;

- 

- 			if ( !data ) {

- 				$this.data( 'uls', ( data = new ULS( this, options ) ) );

- 			}

- 

- 			if ( typeof option === 'string' ) {

- 				data[option]();

- 			}

- 		} );

- 	};

- 

- 	$.fn.uls.defaults = {

- 		onSelect: null, // Callback function to be called when a language is selected

- 		searchAPI: null, // Language search API

- 		languages: $.uls.data.getAutonyms(), // Languages to be used for ULS, default is all languages

- 		quickList: null, // Array of language codes or function that returns such

- 		compact: false, // Show ULS in compact mode

- 		showRegions: [ 'WW', 'AM', 'EU', 'ME', 'AF', 'AS', 'PA' ],

- 		languageDecorator: null // Callback function to be called when a language link is prepared - for custom decoration.

- 	};

- 

- 	// Define a dummy i18n function, if jquery.i18n not integrated.

- 	if ( !$.fn.i18n ) {

- 		$.fn.i18n = function () {};

- 	}

- 

- 	/*

- 	 * Simple scrollIntoView plugin.

- 	 * Scrolls the element to the viewport smoothly if it is not already.

- 	 */

- 	$.fn.scrollIntoView = function () {

- 		return this.each( function () {

- 			var scrollPosition,

- 				$window = $( window ),

- 				windowHeight = $window.height(),

- 				windowTop = $window.scrollTop(),

- 				windowBottom = windowTop + windowHeight,

- 				$element = $( this ),

- 				panelHeight = $element.height(),

- 				panelTop = $element.offset().top,

- 				panelBottom = panelTop + panelHeight;

- 

- 			if ( ( panelTop < windowTop ) || ( panelBottom > windowBottom ) ) {

- 				if ( windowTop > panelTop ) {

- 					scrollPosition = panelTop;

- 				} else {

- 					scrollPosition = panelBottom - windowHeight;

- 				}

- 				$( 'html, body' ).stop().animate( {

- 					scrollTop: scrollPosition

- 				}, 500 );

- 			}

- 		} );

- 	};

- 

- 	$.fn.uls.Constructor = ULS;

- }( jQuery ) );

@@ -1,7 +0,0 @@ 

- // Please do not edit. This file is generated from data/langdb.yaml by ulsdata2json.php

- ( function ( $ ) {

- 	'use strict';

- 	$.uls = $.uls || {};

- 	//noinspection JSHint

- 	$.uls.data = {"languages":{"aa":["Latn",["AF"],"Qafár af"],"ab":["Cyrl",["EU"],"Аҧсшәа"],"ace":["Latn",["AS","PA"],"Acèh"],"ady":["Cyrl",["EU","ME"],"Адыгэбзэ"],"ady-cyrl":["ady"],"ady-latn":["Latn",["EU","ME"],"Adygabze"],"aeb":["Arab",["AF"],"زَوُن"],"af":["Latn",["AF"],"Afrikaans"],"ahr":["Deva",["AS"],"अहिराणी"],"ak":["Latn",["AF"],"Akan"],"akz":["Latn",["AM"],"Albaamo innaaɬiilka"],"aln":["Latn",["EU"],"Gegë"],"am":["Ethi",["AF"],"አማርኛ"],"an":["Latn",["EU"],"aragonés"],"ang":["Latn",["EU"],"Ænglisc"],"anp":["Deva",["AS"],"अङ्गिका"],"ar":["Arab",["ME"],"العربية"],"arc":["Syrc",["ME"],"ܐܪܡܝܐ"],"arn":["Latn",["AM"],"mapudungun"],"aro":["Latn",["AM"],"Araona"],"arq":["Arab",["AF"],"جازايرية"],"ary":["Latn",["ME"],"Maġribi"],"arz":["Arab",["ME"],"مصرى"],"as":["Beng",["AS"],"অসমীয়া"],"ase":["Sgnw",["AM"],"American sign language"],"ast":["Latn",["EU"],"asturianu"],"av":["Cyrl",["EU"],"авар"],"avk":["Latn",["WW"],"Kotava"],"ay":["Latn",["AM"],"Aymar aru"],"az":["az-latn"],"az-latn":["Latn",["EU","ME"],"azərbaycanca"],"az-arab":["Arab",["EU","ME"],"آذربايجانجا"],"az-cyrl":["Latn",["EU","ME"],"азәрбајҹанҹа"],"azb":["az-arab"],"ba":["Cyrl",["EU"],"башҡортса"],"bar":["Latn",["EU"],"Boarisch"],"bat-smg":["sgs"],"bbc-latn":["Latn",["AS"],"Batak Toba"],"bbc-batk":["Batk",["AS"],"Batak Toba"],"bbc":["Latn",["AS"],"Batak Toba"],"bcc":["Arab",["AS","ME"],"بلوچی مکرانی"],"bcl":["Latn",["AS"],"Bikol Central"],"be-tarask":["Cyrl",["EU"],"беларуская (тарашкевіца)"],"be-x-old":["be-tarask"],"be":["Cyrl",["EU"],"беларуская"],"bew":["Latn",["AS"],"Bahasa Betawi"],"bfq":["Taml",["AS"],"படகா"],"bg":["Cyrl",["EU"],"български"],"bh":["Deva",["AS"],"भोजपुरी"],"bho":["Deva",["AS"],"भोजपुरी"],"bi":["Latn",["PA"],"Bislama"],"bjn":["Latn",["AS"],"Bahasa Banjar"],"bm":["Latn",["AF"],"bamanankan"],"bn":["Beng",["AS"],"বাংলা"],"bo":["Tibt",["AS"],"བོད་ཡིག"],"bpy":["Beng",["AS"],"বিষ্ণুপ্রিয়া মণিপুরী"],"bqi":["Arab",["ME"],"بختياري"],"br":["Latn",["EU"],"brezhoneg"],"brh":["Latn",["ME","AS"],"Bráhuí"],"brx":["Deva",["AS"],"बड़ो"],"bs":["Latn",["EU"],"bosanski"],"bto":["Latn",["AS"],"Iriga Bicolano"],"bug":["Bugi",["AS"],"ᨅᨔ ᨕᨘᨁᨗ"],"bxr":["Cyrl",["AS"],"буряад"],"ca":["Latn",["EU"],"català"],"cbk-zam":["Latn",["AS"],"Chavacano de Zamboanga"],"cdo":["Latn",["AS"],"Mìng-dĕ̤ng-ngṳ̄"],"ce":["Cyrl",["EU"],"нохчийн"],"ceb":["Latn",["AS"],"Cebuano"],"ch":["Latn",["PA"],"Chamoru"],"cho":["Latn",["AM"],"Choctaw"],"chr":["Cher",["AM"],"ᏣᎳᎩ"],"chy":["Latn",["AM"],"Tsetsêhestâhese"],"ckb":["Arab",["ME"],"کوردی"],"co":["Latn",["EU"],"corsu"],"cps":["Latn",["AS"],"Capiceño"],"cr":["Cans",["AM"],"ᓀᐦᐃᔭᐍᐏᐣ"],"cr-cans":["cr"],"cr-latn":["Latn",["AM"],"Nēhiyawēwin"],"crh":["Latn",["EU"],"qırımtatarca"],"crh-cyrl":["Cyrl",["EU"],"къырымтатарджа"],"crh-latn":["crh"],"cs":["Latn",["EU"],"česky"],"csb":["Latn",["EU"],"kaszëbsczi"],"cu":["Cyrl",["EU"],"словѣньскъ \/ ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ"],"cv":["Cyrl",["EU"],"Чӑвашла"],"cy":["Latn",["EU"],"Cymraeg"],"da":["Latn",["EU"],"dansk"],"de-at":["Latn",["EU"],"Österreichisches Deutsch"],"de-ch":["Latn",["EU"],"Schweizer Hochdeutsch"],"de-formal":["Latn",["EU"],"Deutsch (Sie-Form)"],"de":["Latn",["EU"],"Deutsch"],"diq":["Latn",["EU","AS"],"Zazaki"],"dsb":["Latn",["EU"],"dolnoserbski"],"dtp":["Latn",["AS"],"Dusun Bundu-liwan"],"dv":["Thaa",["AS"],"ދިވެހިބަސް"],"dz":["Tibt",["AS"],"ཇོང་ཁ"],"ee":["Latn",["AF"],"eʋegbe"],"egl":["Latn",["EU"],"Emiliàn"],"el":["Grek",["EU"],"Ελληνικά"],"eml":["Latn",["EU"],"emiliàn e rumagnòl"],"en-ca":["Latn",["AM"],"Canadian English"],"en-gb":["Latn",["EU","AS","PA"],"British English"],"en":["Latn",["EU","AM","AF","ME","AS","PA","WW"],"English"],"eo":["Latn",["WW"],"Esperanto"],"es-419":["Latn",["AM"],"español de America Latina"],"es-formal":["Latn",["EU","AM","AF","WW"],"español (formal)"],"es":["Latn",["EU","AM","AF","WW"],"español"],"esu":["Latn",["AM"],"Yup'ik"],"et":["Latn",["EU"],"eesti"],"eu":["Latn",["EU"],"euskara"],"ext":["Latn",["EU"],"estremeñu"],"fa":["Arab",["ME"],"فارسی"],"ff":["Latn",["AF"],"Fulfulde"],"fi":["Latn",["EU"],"suomi"],"fil":["tl"],"fit":["Latn",["EU"],"meänkieli"],"fiu-vro":["vro"],"fj":["Latn",["PA"],"Na Vosa Vakaviti"],"fo":["Latn",["EU"],"føroyskt"],"fr":["Latn",["EU","AM","WW"],"français"],"frc":["Latn",["AM"],"français cadien"],"frp":["Latn",["EU"],"arpetan"],"frr":["Latn",["EU"],"Nordfriisk"],"fur":["Latn",["EU"],"furlan"],"fy":["Latn",["EU"],"Frysk"],"ga":["Latn",["EU"],"Gaeilge"],"gag":["Latn",["EU"],"Gagauz"],"gah":["Latn",["AS"],"Alekano"],"gan-hans":["Hans",["AS"],"赣语(简体)"],"gan-hant":["gan"],"gan":["Hant",["AS"],"贛語"],"gbz":["Latn",["AS"],"Dari"],"gcf":["Latn",["AM"],"Guadeloupean Creole French"],"gd":["Latn",["EU"],"Gàidhlig"],"gl":["Latn",["EU"],"galego"],"glk":["Arab",["ME"],"گیلکی"],"gn":["Latn",["AM"],"Avañe'ẽ"],"gom":["Deva",["AS"],"कोंकणी"],"gom-deva":["gom"],"gom-latn":["Latn",["AS"],"Konknni"],"got":["Goth",["EU"],"𐌲𐌿𐍄𐌹𐍃𐌺"],"grc":["Grek",["EU"],"Ἀρχαία ἑλληνικὴ"],"gsw":["Latn",["EU"],"Alemannisch"],"gu":["Gujr",["AS"],"ગુજરાતી"],"guc":["Latn",["AM"],"Wayúu"],"gur":["Latn",["AF"],"Gurenɛ"],"gv":["Latn",["EU"],"Gaelg"],"ha-arab":["Arab",["AF"],"هَوُسَ"],"ha-latn":["Latn",["AF"],"Hausa"],"ha":["ha-latn"],"hak":["Latn",["AS"],"Hak-kâ-fa"],"haw":["Latn",["AM","PA"],"Hawai`i"],"he":["Hebr",["ME"],"עברית"],"hi":["Deva",["AS"],"हिन्दी"],"hif":["Latn",["PA","AS"],"Fiji Hindi"],"hif-deva":["Deva",["AS"],"फ़ीजी हिन्दी"],"hif-latn":["hif"],"hil":["Latn",["AS"],"Ilonggo"],"hne":["Deva",["AS"],"छत्तीसगढ़ी"],"ho":["Latn",["PA"],"Hiri Motu"],"hr":["Latn",["EU"],"hrvatski"],"hsb":["Latn",["EU"],"hornjoserbsce"],"hsn":["Hans",["AS"],"湘语"],"ht":["Latn",["AM"],"Kreyòl ayisyen"],"hu-formal":["Latn",["EU"],"Magyar (magázó)"],"hu":["Latn",["EU"],"magyar"],"hy":["Armn",["EU","ME"],"Հայերեն"],"hz":["Latn",["AF"],"Otsiherero"],"ia":["Latn",["WW"],"interlingua"],"id":["Latn",["AS"],"Bahasa Indonesia"],"ie":["Latn",["WW"],"Interlingue"],"ig":["Latn",["AF"],"Igbo"],"ii":["Yiii",["AS"],"ꆇꉙ"],"ik":["Latn",["AM"],"Iñupiak"],"ike-cans":["Cans",["AM"],"ᐃᓄᒃᑎᑐᑦ"],"ike-latn":["Latn",["AM"],"inuktitut"],"ilo":["Latn",["AS"],"Ilokano"],"inh":["Cyrl",["EU"],"ГӀалгӀай"],"io":["Latn",["WW"],"Ido"],"is":["Latn",["EU"],"íslenska"],"it":["Latn",["EU"],"italiano"],"iu":["Cans",["AM"],"ᐃᓄᒃᑎᑐᑦ"],"ja":["Jpan",["AS"],"日本語"],"jam":["Latn",["AM"],"Patois"],"jbo":["Latn",["WW"],"lojban"],"jut":["Latn",["EU"],"jysk"],"jv":["Latn",["AS","PA"],"Basa Jawa"],"jv-java":["Java",["AS","PA"],"ꦧꦱꦗꦮ"],"ka":["Geor",["EU"],"ქართული"],"kaa":["Latn",["AS"],"Qaraqalpaqsha"],"kab":["Latn",["AF","EU"],"Taqbaylit"],"kbd-cyrl":["kbd"],"kbd-latn":["Latn",["EU"],"Qabardjajəbza"],"kbd":["Cyrl",["EU","ME"],"Адыгэбзэ"],"kea":["Latn",["AF"],"Kabuverdianu"],"kg":["Latn",["AF"],"Kongo"],"kgp":["Latn",["AM"],"Kaingáng"],"khw":["Arab",["ME","AS"],"کھوار"],"ki":["Latn",["AF"],"Gĩkũyũ"],"kiu":["Latn",["EU","ME"],"Kırmancki"],"kj":["Latn",["AF"],"Kwanyama"],"kjh":["Cyrl",["AS"],"хакас"],"kk":["kk-cyrl"],"kk-arab":["Arab",["EU","AS"],"قازاقشا (تٶتە)"],"kk-cn":["kk-arab"],"kk-cyrl":["Cyrl",["EU","AS"],"қазақша"],"kk-kz":["kk-cyrl"],"kk-latn":["Latn",["EU","AS","ME"],"qazaqşa"],"kk-tr":["kk-latn"],"kl":["Latn",["AM","EU"],"kalaallisut"],"km":["Khmr",["AS"],"ភាសាខ្មែរ"],"kn":["Knda",["AS"],"ಕನ್ನಡ"],"ko-kp":["Kore",["AS"],"한국어 (조선)"],"ko":["Kore",["AS"],"한국어"],"koi":["Cyrl",["EU"],"Перем Коми"],"kr":["Latn",["AF"],"Kanuri"],"krc":["Cyrl",["EU"],"къарачай-малкъар"],"kri":["Latn",["AF"],"Krio"],"krj":["Latn",["ME","EU"],"Kinaray-a"],"krl":["Latn",["EU"],"Karjala"],"ks-arab":["Arab",["AS"],"کٲشُر"],"ks-deva":["Deva",["AS"],"कॉशुर"],"ks":["Arab",["AS"],"کٲشُر"],"ksf":["Latn",["AF"],"Bafia"],"ksh":["Latn",["EU"],"Ripoarisch"],"ku":["ku-latn"],"ku-arab":["Arab",["EU","ME"],"كوردي"],"ku-latn":["Latn",["EU","ME"],"Kurdî"],"kv":["Cyrl",["EU"],"коми"],"kw":["Latn",["EU"],"kernowek"],"ky":["Cyrl",["AS"],"Кыргызча"],"la":["Latn",["EU"],"Latina"],"lad":["lad-latn"],"lad-latn":["Latn",["ME","EU","AM"],"Ladino"],"lad-hebr":["Hebr",["ME","EU","AM"],"לאדינו"],"lb":["Latn",["EU"],"Lëtzebuergesch"],"lbe":["Cyrl",["EU"],"лакку"],"lez":["Cyrl",["EU"],"лезги"],"lfn":["Latn",["WW"],"Lingua Franca Nova"],"lg":["Latn",["AF"],"Luganda"],"li":["Latn",["EU"],"Limburgs"],"lij":["Latn",["EU"],"Ligure"],"liv":["Latn",["EU"],"Līvõ kēļ"],"lld":["Latn",["EU"],"Ladin"],"lmo":["Latn",["EU"],"lumbaart"],"ln":["Latn",["AF"],"lingála"],"lo":["Laoo",["AS"],"ລາວ"],"loz":["Latn",["AF"],"Silozi"],"lt":["Latn",["EU"],"lietuvių"],"lrc":["Arab",["AS"],"لوری"],"ltg":["Latn",["EU"],"latgaļu"],"lud":["Latn",["EU"],"lüüdi"],"lus":["Latn",["AS"],"Mizo ţawng"],"lut":["Latn",["AM"],"dxʷləšucid"],"lv":["Latn",["EU"],"latviešu"],"lzh":["Hant",["AS"],"文言"],"lzz":["Latn",["EU","ME"],"Lazuri"],"mai":["Deva",["AS"],"मैथिली"],"map-bms":["Latn",["AS"],"Basa Banyumasan"],"mdf":["Cyrl",["EU"],"мокшень"],"mfe":["Latn",["AM"],"Morisyen"],"mg":["Latn",["AF"],"Malagasy"],"mh":["Latn",["PA"],"Ebon"],"mhr":["Cyrl",["EU"],"олык марий"],"mi":["Latn",["PA"],"Māori"],"mic":["Latn",["AM"],"Mi'kmaq"],"min":["Latn",["AS"],"Baso Minangkabau"],"mk":["Cyrl",["EU"],"македонски"],"ml":["Mlym",["AS","ME"],"മലയാളം"],"mn":["Cyrl",["AS"],"монгол"],"mnc":["Mong",["AS"],"ᠮᠠᠨᠵᡠ ᡤᡳᠰᡠᠨ"],"mni":["Beng",["AS"],"মেইতেই লোন্"],"mnw":["Mymr",["AS"],"ဘာသာ မန်"],"mo":["Cyrl",["EU"],"молдовеняскэ"],"mr":["Deva",["AS","ME"],"मराठी"],"mrj":["Cyrl",["EU"],"кырык мары"],"ms":["Latn",["AS"],"Bahasa Melayu"],"mt":["Latn",["EU"],"Malti"],"mui":["Latn",["AS"],"Musi"],"mus":["Latn",["AM"],"Mvskoke"],"mwl":["Latn",["EU"],"Mirandés"],"mwv":["Latn",["AS"],"Behase Mentawei"],"my":["Mymr",["AS"],"မြန်မာဘာသာ"],"myv":["Cyrl",["EU"],"эрзянь"],"mzn":["Arab",["ME","AS"],"مازِرونی"],"na":["Latn",["PA"],"Dorerin Naoero"],"nah":["Latn",["AM"],"Nāhuatl"],"nan":["Latn",["AS"],"Bân-lâm-gú"],"nap":["Latn",["EU"],"Nnapulitano"],"nb":["Latn",["EU"],"norsk (bokmål)"],"nds-nl":["Latn",["EU"],"Nedersaksisch"],"nds":["Latn",["EU"],"Plattdüütsch"],"ne":["Deva",["AS"],"नेपाली"],"new":["Deva",["AS"],"नेपाल भाषा"],"ng":["Latn",["AF"],"Oshiwambo"],"niu":["Latn",["PA"],"ko e vagahau Niuē"],"njo":["Latn",["AS"],"Ao"],"nl-informal":["Latn",["EU","AM"],"Nederlands (informeel)"],"nl":["Latn",["EU","AM"],"Nederlands"],"nn":["Latn",["EU"],"norsk (nynorsk)"],"no":["Latn",["EU"],"norsk"],"nov":["Latn",["WW"],"Novial"],"nqo":["Nkoo",["AF"],"ߒߞߏ"],"nrm":["Latn",["EU"],"Nouormand"],"nso":["Latn",["AF"],"Sesotho sa Leboa"],"nv":["Latn",["AM"],"Diné bizaad"],"ny":["Latn",["AF"],"Chi-Chewa"],"oc":["Latn",["EU"],"occitan"],"om":["Latn",["AF"],"Oromoo"],"or":["Orya",["AS"],"ଓଡ଼ିଆ"],"os":["Cyrl",["EU"],"Ирон"],"ota":["Arab",["AS","EU"],"لسان عثمانى"],"pa":["pa-guru"],"pa-guru":["Guru",["AS"],"ਪੰਜਾਬੀ"],"pag":["Latn",["AS"],"Pangasinan"],"pam":["Latn",["AS"],"Kapampangan"],"pap":["Latn",["AM"],"Papiamentu"],"pcd":["Latn",["EU"],"Picard"],"pdc":["Latn",["EU","AM"],"Deitsch"],"pdt":["Latn",["EU","AM"],"Plautdietsch"],"pfl":["Latn",["EU"],"Pälzisch"],"pi":["Deva",["AS"],"पालि"],"pih":["Latn",["PA"],"Norfuk \/ Pitkern"],"pis":["Latn",["PA"],"Pijin"],"pko":["Latn",["AF"],"Pökoot"],"pl":["Latn",["EU"],"polski"],"pms":["Latn",["EU"],"Piemontèis"],"pnb":["Arab",["AS","ME"],"پنجابی"],"pnt":["Grek",["EU"],"Ποντιακά"],"ppl":["Latn",["AM"],"Nawat"],"prg":["Latn",["EU"],"Prūsiskan"],"ps":["Arab",["AS","ME"],"پښتو"],"pt_BR":["Latn",["AM"],"português do Brasil"],"pt":["Latn",["EU","AS","PA","AF","WW"],"português"],"qu":["Latn",["AM"],"Runa Simi"],"qug":["Latn",["AM"],"Runa shimi"],"rap":["Latn",["AM"],"arero rapa nui"],"rgn":["Latn",["EU"],"Rumagnôl"],"rif":["Latn",["AF"],"Tarifit"],"rki":["Mymr",["AS"],"ရခိုင်"],"rm":["Latn",["EU"],"rumantsch"],"rmf":["Latn",["EU"],"kaalengo tšimb"],"rmy":["Latn",["EU"],"Romani"],"rn":["Latn",["AF"],"Kirundi"],"ro":["Latn",["EU"],"română"],"roa-rup":["rup"],"roa-tara":["Latn",["EU"],"tarandíne"],"rtm":["Latn",["PA"],"Faeag Rotuma"],"ru":["Cyrl",["EU","AS","ME"],"русский"],"rue":["Cyrl",["EU"],"русиньскый"],"rup":["Latn",["EU"],"Armãneashce"],"ruq":["Cyrl",["EU"],"Влахесте"],"ruq-cyrl":["ruq"],"ruq-grek":["Grek",["EU"],"Megleno-Romanian (Greek script)"],"ruq-latn":["Latn",["EU"],"Vlăheşte"],"rut":["Cyrl",["EU"],"мыхаӀбишды"],"rw":["Latn",["AF"],"Kinyarwanda"],"rwr":["Deva",["AS"],"मारवाड़ी"],"ryu":["Kana",["AS"],"ʔucināguci"],"sa":["Deva",["AS"],"संस्कृतम्"],"sah":["Cyrl",["EU","AS"],"саха тыла"],"sat":["Latn",["AS"],"Santali"],"saz":["Saur",["AS"],"ꢱꣃꢬꢵꢯ꣄ꢡ꣄ꢬꢵ"],"sc":["Latn",["EU"],"sardu"],"scn":["Latn",["EU"],"sicilianu"],"sco":["Latn",["EU"],"Scots"],"sd":["Arab",["AS"],"سنڌي"],"sdc":["Latn",["EU"],"Sassaresu"],"se":["Latn",["EU"],"sámegiella"],"ses":["Latn",["AF"],"Koyraboro Senni"],"sei":["Latn",["AM"],"Cmique Itom"],"sg":["Latn",["AF"],"Sängö"],"sgs":["Latn",["EU"],"žemaitėška"],"sh":["Latn",["EU"],"srpskohrvatski"],"shi-latn":["Latn",["AF"],"Tašlḥiyt"],"shi-tfng":["Tfng",["AF"],"ⵜⴰⵛⵍⵃⵉⵜ"],"shi":["shi-latn"],"shn":["Mymr",["AS"],"လိၵ်ႈတႆး"],"si":["Sinh",["AS"],"සිංහල"],"simple":["Latn",["WW"],"Simple English"],"sk":["Latn",["EU"],"slovenčina"],"sl":["Latn",["EU"],"slovenščina"],"sli":["Latn",["EU"],"Schläsch"],"slr":["Latn",["AS"],"Salırça"],"sly":["Latn",["AS"],"Bahasa Selayar"],"syc":["Syrc",["ME"],"ܣܘܪܝܝܐ"],"sm":["Latn",["PA"],"Gagana Samoa"],"sma":["Latn",["EU"],"åarjelsaemien"],"smj":["Latn",["EU"],"julevsámegiella"],"smn":["Latn",["EU"],"anarâškielâ"],"sms":["Latn",["EU"],"sää´mǩiõll"],"sn":["Latn",["AF"],"chiShona"],"so":["Latn",["AF"],"Soomaaliga"],"sq":["Latn",["EU"],"shqip"],"sr":["Cyrl",["EU"],"српски"],"sr-ec":["sr-cyrl"],"sr-cyrl":["Cyrl",["EU"],"српски"],"sr-el":["sr-latn"],"sr-latn":["Latn",["EU"],"srpski"],"srn":["Latn",["AM","EU"],"Sranantongo"],"ss":["Latn",["AF"],"SiSwati"],"st":["Latn",["AF"],"Sesotho"],"stq":["Latn",["EU"],"Seeltersk"],"su":["Latn",["AS"],"Basa Sunda"],"sv":["Latn",["EU"],"svenska"],"sw":["Latn",["AF"],"Kiswahili"],"swb":["Latn",["AF"],"Shikomoro"],"sxu":["Latn",["EU"],"Säggssch"],"szl":["Latn",["EU"],"ślůnski"],"ta":["Taml",["AS"],"தமிழ்"],"tcy":["Knda",["AS"],"ತುಳು"],"te":["Telu",["AS"],"తెలుగు"],"tet":["Latn",["AS","PA"],"tetun"],"tg-cyrl":["Cyrl",["AS"],"тоҷикӣ"],"tg-latn":["Latn",["AS"],"tojikī"],"tg":["Cyrl",["AS"],"тоҷикӣ"],"th":["Thai",["AS"],"ไทย"],"ti":["Ethi",["AF"],"ትግርኛ"],"tk":["Latn",["AS"],"Türkmençe"],"tkr":["Cyrl",["AS"],"ЦӀаьхна миз"],"tl":["Latn",["AS"],"Tagalog"],"tly":["Cyrl",["EU","AS","ME"],"толышә зывон"],"tn":["Latn",["AF"],"Setswana"],"to":["Latn",["PA"],"lea faka-Tonga"],"tokipona":["Latn",["WW"],"Toki Pona"],"tpi":["Latn",["PA","AS"],"Tok Pisin"],"tr":["Latn",["EU","ME"],"Türkçe"],"trp":["Latn",["AS"],"Kokborok (Tripuri)"],"tru":["Latn",["AS"],"Ṫuroyo"],"ts":["Latn",["AF"],"Xitsonga"],"tsd":["Grek",["EU"],"Τσακωνικά"],"tt":["Cyrl",["EU"],"татарча"],"tt-cyrl":["tt"],"tt-latn":["Latn",["EU"],"tatarça"],"ttt":["Cyrl",["AS"],"Tati"],"tum":["Latn",["AF"],"chiTumbuka"],"tw":["Latn",["AF"],"Twi"],"twd":["Latn",["EU"],"Tweants"],"ty":["Latn",["PA"],"Reo Mā`ohi"],"tyv":["Cyrl",["AS"],"тыва дыл"],"tzm":["Tfng",["AF"],"ⵜⴰⵎⴰⵣⵉⵖⵜ"],"udm":["Cyrl",["EU"],"удмурт"],"ug":["ug-arab"],"ug-arab":["Arab",["AS"],"ئۇيغۇرچە"],"ug-latn":["Latn",["AS"],"uyghurche"],"ug-cyrl":["Cyrl",["AS"],"уйғурчә"],"uk":["Cyrl",["EU"],"українська"],"ur":["Arab",["AS","ME"],"اردو"],"uz":["Latn",["AS"],"oʻzbekcha"],"ve":["Latn",["AF"],"Tshivenda"],"vec":["Latn",["EU"],"vèneto"],"vep":["Latn",["EU"],"vepsän kel’"],"vi":["Latn",["AS"],"Tiếng Việt"],"vls":["Latn",["EU"],"West-Vlams"],"vmf":["Latn",["EU"],"Mainfränkisch"],"vo":["Latn",["WW"],"Volapük"],"vot":["Latn",["EU"],"Vaďďa"],"vro":["Latn",["EU"],"Võro"],"wa":["Latn",["EU"],"walon"],"war":["Latn",["AS"],"Winaray"],"wls":["Latn",["PA"],"Faka'uvea"],"wo":["Latn",["AF"],"Wolof"],"wuu":["Hans",["AS"],"吴语"],"xal":["Cyrl",["EU"],"хальмг"],"xh":["Latn",["AF"],"isiXhosa"],"xmf":["Geor",["EU"],"მარგალური"],"ydd":["Hebr",["AS","EU"],"Eastern Yiddish"],"yi":["Hebr",["ME","EU","AM"],"ייִדיש"],"yo":["Latn",["AF"],"Yorùbá"],"yrk":["Cyrl",["AS"],"Ненэцяʼ вада"],"yrl":["Latn",["AM"],"ñe'engatú"],"yua":["Latn",["AM"],"Maaya T'aan"],"yue":["Hant",["AS"],"粵語"],"za":["Latn",["AS"],"Vahcuengh"],"zea":["Latn",["EU"],"Zeêuws"],"zh":["Hans",["AS"],"中文"],"zh-classical":["Hant",["AS"],"文言"],"zh_CN":["Hans",["AS"],"中文(中国大陆)"],"zh-hans":["Hans",["AS"],"中文(简体)"],"zh-hant":["Hant",["AS"],"中文(繁體)"],"zh-hk":["Hant",["AS"],"中文(香港)"],"zh-min-nan":["nan"],"zh-mo":["Hant",["AS"],"中文(澳門)"],"zh-my":["Hans",["AS"],"中文(马来西亚)"],"zh-sg":["Hans",["AS"],"中文(新加坡)"],"zh_TW":["Hant",["AS"],"中文(台灣)"],"zh-yue":["yue"],"zu":["Latn",["AF"],"isiZulu"]},"scriptgroups":{"Latin":["Latn","Goth"],"Greek":["Grek"],"WestCaucasian":["Armn","Geor"],"Arabic":["Arab"],"MiddleEastern":["Hebr","Syrc"],"African":["Ethi","Nkoo","Tfng"],"SouthAsian":["Beng","Deva","Gujr","Guru","Knda","Mlym","Orya","Saur","Sinh","Taml","Telu","Tibt","Thaa"],"Cyrillic":["Cyrl"],"CJK":["Hans","Hant","Kana","Kore","Jpan","Yiii"],"SouthEastAsian":["Batk","Bugi","Java","Khmr","Laoo","Mymr","Thai"],"Mongolian":["Mong"],"SignWriting":["Sgnw"],"NativeAmerican":["Cher","Cans"],"Special":["Zyyy"]},"rtlscripts":["Arab","Hebr","Syrc","Nkoo","Thaa"],"regiongroups":{"WW":1,"SP":1,"AM":2,"EU":3,"ME":3,"AF":3,"AS":4,"PA":4},"territories":{"AC":["en"],"AD":["ca","es","fr"],"AE":["ar","ml","ps","bal","fa"],"AF":["fa","ps","haz","uz-arab","tk-latn","prd","bal","ug-arab","kk-arab"],"AG":["en","pt"],"AI":["en"],"AL":["sq","el","mk"],"AM":["hy","ku-latn","az-latn"],"AO":["pt","umb","kmb","ln"],"AQ":["und"],"AR":["es","cy","gn"],"AS":["sm","en"],"AT":["de","bar","hr","sl","hu"],"AU":["en","zh-hant","it"],"AW":["nl","pap","en"],"AX":["sv"],"AZ":["az-latn","az-cyrl","tly-latn","ku-latn","ttt-latn","tkr-latn"],"BA":["bs-cyrl","bs-latn","hr","sr-cyrl","sr-latn"],"BB":["en"],"BD":["bn","rkt","syl","ccp","my","grt","mni"],"BE":["nl","en","fr","vls","wa","de"],"BF":["mos","dyu","fr"],"BG":["bg","tr"],"BH":["ar","ml"],"BI":["rn","fr","sw"],"BJ":["fr","fon","yo"],"BL":["fr"],"BM":["en"],"BN":["ms-latn","zh-hant","ms-arab","en"],"BO":["es","qu","ay","gn","aro"],"BQ":["pap","nl"],"BR":["pt","de","it","ja","ko","kgp","gub","yrl","xav"],"BS":["en"],"BT":["dz","ne","tsj","lep"],"BV":["und"],"BW":["en","tn","af"],"BY":["be","ru"],"BZ":["en","es"],"CA":["en","fr","it","de","pdt","cr-cans","crk","yi","iu-cans","iu-latn","moe","crj","atj","crl","csw","crm","ikt","moh","dgr","den","scs","nsk","chp","gwi"],"CC":["ms-arab","en"],"CD":["sw","lua","swc","fr","ln","lu","kg","lol","rw"],"CF":["fr","sg","ln"],"CG":["fr","ln"],"CH":["de","fr","gsw","it","lmo","rm","rmo","wae"],"CI":["fr","bci","sef","dnj","kfo","bqv"],"CK":["en"],"CL":["es","arn"],"CM":["fr","en","bum","ff","ewo","ybb","bbj","nnh","bkm","bas","bax","byv","mua","maf","bfd","bss","kkj","dua","mgo","ar","jgo","ksf","agq","ha-arab","nmg","yav"],"CN":["zh-hans","wuu","hsn","hak","nan","gan","ii","ug-arab","za","mn-mong","bo","ko","kk-arab","lis","ky-arab","nxq","khb","tdd","lcp","en","ru","vi","uz-cyrl","lzh"],"CO":["es","guc"],"CP":["und"],"CR":["es"],"CU":["es"],"CV":["kea","pt"],"CW":["pap","nl","es"],"CX":["en"],"CY":["el","tr","hy","ar"],"CZ":["cs","de","pl"],"DE":["de","en","nds","vmf","tr","hr","it","ku-latn","ru","el","ksh","pl","es","nl","da","hsb","frr","dsb","frs","stq","pfl"],"DG":["en"],"DJ":["aa","so","ar","fr"],"DK":["da","de","kl","jut"],"DM":["en"],"DO":["es","en"],"DZ":["arq","ar","fr","kab"],"EA":["es"],"EC":["es","qu","qug"],"EE":["et","ru","vro"],"EG":["ar","arz","el"],"EH":["ar"],"ER":["ti","en","tig","ar","aa","ssy","byn"],"ES":["es","en","ca","gl","eu","ast","ext"],"ET":["en","am","om","so","ti","sid","wal","aa"],"FI":["fi","sv","ru","en","et","rmf","se","smn","sms"],"FJ":["en","hi","hif-deva","fj","rtm"],"FK":["en"],"FM":["chk","pon","kos","yap","en","uli"],"FO":["fo"],"FR":["fr","en","oc","it","pt","pcd","gsw","br","co","ca","nl","eu","frp","ia"],"GA":["fr","puu"],"GB":["en","sco","pa-guru","cy","bn","zh-hant","syl","el","it","ks-arab","gd","yi","ml","ga","fr","kw"],"GD":["en"],"GE":["ka","xmf","ru","hy","ab","os","ku-latn"],"GF":["fr","gcr","zh-hant"],"GG":["en"],"GH":["ak","en","ee","abr","gur","gaa","ha-latn","saf"],"GI":["en"],"GL":["kl","da"],"GM":["en","man-latn"],"GN":["fr","ff","man-nkoo","sus","nqo","kpe"],"GP":["fr"],"GQ":["es","fan","fr","bvb"],"GR":["el","pnt-grek","mk","tr","bg","sq","tsd"],"GS":["und"],"GT":["es","quc"],"GU":["en","ch"],"GW":["pt"],"GY":["en"],"HK":["zh-hant","en","zh-hans"],"HM":["und"],"HN":["es","en"],"HR":["hr","it"],"HT":["ht","fr"],"HU":["hu","de","ro","hr","sk","sl"],"IC":["es"],"ID":["id","jv","su","mad","ms-arab","min","bew","ban","bug","bjn","ace","sas","bbc","zh-hant","mak","ljp","rej","gor","nij","kge","aoz","kvr","lbw","rob","mdr","sxn","sly","mwv"],"IE":["en","ga"],"IL":["he","ar","ru","ro","yi","en","pl","lad","hu","am","ti","ml"],"IM":["en","gv"],"IN":["hi","en","bn","te","mr","ta","ur","gu","kn","ml","or","pa-guru","bho","awa","as","bgc","mag","mwr","mai","hne","dcc","bjj","ne","sat","wtm","rkt","ks-arab","kok","gom","swv","gbm","lmn","sd-arab","gon-telu","kfy","doi","kru","sck","wbq","xnr","tcy","wbr","khn","brx","noe","bhb","mni","raj","hoc","mtr","unr-beng","bhi","hoj","kha","kfr","grt","unx-beng","bfy","srx","saz","ccp","sd-deva","bfq","njo","ria","bo","bpy","bft","bra","lep","btv","lif-deva","lah","sa","kht","dv","dz"],"IO":["en"],"IQ":["ar","ckb","fa","syr"],"IR":["fa","az-arab","azb","mzn","glk","ckb","tk-latn","lrc","ar","bal","rmt","bqi","luz","lki","prd","hy","ps","ka","gbz","kk-arab"],"IS":["is","da"],"IT":["it","en","fr","lmo","pms","sc","de","vec","nap","lij","scn","sl","sdc","fur","egl","ca","el","hr","rgn"],"JE":["en"],"JM":["en","jam"],"JO":["ar"],"JP":["ja","ryu","ko"],"KE":["en","sw","ki","luy","luo","kam","kln","guz","mer","mas","ebu","so","dav","teo","pko","om","saq","ar","pa-guru","gu"],"KG":["ky-cyrl","ru"],"KH":["km","cja","kdt"],"KI":["en","gil"],"KM":["ar","fr","zdj"],"KN":["en"],"KP":["ko"],"KR":["ko"],"KW":["ar"],"KY":["en"],"KZ":["ru","kk-cyrl","de","ug-cyrl"],"LA":["lo","kjg","kdt"],"LB":["ar","hy","ku-arab","fr","en"],"LC":["en"],"LI":["de","gsw","wae"],"LK":["si","ta","en"],"LR":["en","kpe","vai-vaii","men","vai-latn"],"LS":["st","zu","ss","en","xh"],"LT":["lt","ru","sgs"],"LU":["fr","lb","de"],"LV":["lv","ru","ltg"],"LY":["ar"],"MA":["ary","ar","zgh","fr","tzm-latn","shi-latn","shi-tfng","rif-latn","rif-tfng","es"],"MC":["fr"],"MD":["ro","uk","bg","gag","ru"],"ME":["sr-latn","sq","sr-cyrl"],"MF":["fr"],"MG":["mg","fr","en"],"MH":["en","mh"],"MK":["mk","sq","tr"],"ML":["bm-latn","fr","ffm","snk","mwk","ses","tmh","bm-nkoo","khq","dtm","kao","ar","bmq","bze"],"MM":["my","shn","mnw","kht"],"MN":["mn-cyrl","kk-arab","zh-hans","ru","ug-cyrl"],"MO":["zh-hant","pt","zh-hans","en"],"MP":["en","ch"],"MQ":["fr"],"MR":["ar","fr","ff","wo"],"MS":["en"],"MT":["mt","en"],"MU":["mfe","en","bho","ur","fr","ta"],"MV":["dv"],"MW":["en","ny","tum","zu"],"MX":["es","yua","nhe","nhw","maz","nch","sei"],"MY":["ms-latn","en","zh-hant","ta","jv","zmi","dtp","ml","bug","bjn"],"MZ":["pt","vmw","ndc","ts","ngl","seh","mgh","rng","ny","yao","sw","zu"],"NA":["af","kj","ng","naq","en","de","tn"],"NC":["fr"],"NE":["ha-latn","fr","dje","fuq","tmh","ar","twq"],"NF":["en"],"NG":["en","pcm","ha-latn","ig","yo","fuv","tiv","efi","ibb","ha-arab","bin","kaj","kcg","ar","cch","amo"],"NI":["es"],"NL":["nl","en","li","fy","gos","id","zea","rif-latn","tr"],"NO":["nb","nn","se"],"NP":["ne","mai","bho","new","jml","taj","awa","thl","bap","tdg","thr","mgp","lif-deva","thq","mrd","bfy","xsr","rjs","tsf","hi","ggn","gvr","bo","tkt","tdh","bn","unr-deva","lep"],"NR":["en","na"],"NU":["en","niu"],"NZ":["en","mi"],"OM":["ar","bal","fa"],"PA":["es","en","zh-hant"],"PE":["es","qu","ay"],"PF":["fr","ty","zh-hant"],"PG":["tpi","en","ho"],"PH":["en","fil","es","ceb","ilo","hil","bik","war","bhk","pam","pag","mdh","tsg","zh-hant","cps","krj","bto","hnn","tbw","bku"],"PK":["ur","pa-arab","en","lah","ps","sd-arab","skr","bal","brh","hno","fa","hnd","tg-arab","gju","bft","kvx","khw","mvy","kxp","gjk","ks-arab","btv"],"PL":["pl","szl","be","uk","csb","de","sli","lt"],"PM":["fr","en"],"PN":["en"],"PR":["es","en"],"PS":["ar"],"PT":["pt","gl"],"PW":["pau","en"],"PY":["gn","es","de"],"QA":["ar","fa","ml"],"RE":["fr","rcf","ta"],"RO":["ro","hu","de","tr","sr-latn","bg","el","pl"],"RS":["sr-cyrl","sr-latn","sq","hu","ro","hr","sk","uk"],"RU":["ru","tt","ba","cv","hy","ce","av","udm","chm","sah","os","kbd","myv","dar","bua","mdf","kum","kv","lez","krc","inh","tyv","az-cyrl","ady","krl","lbe","koi","mrj","alt","fi","sr-latn","vep","mn-cyrl","izh","cu"],"RW":["rw","fr","en"],"SA":["ar"],"SB":["en","rug"],"SC":["crs","fr","en"],"SD":["ar","en","nus","ha-arab"],"SE":["sv","fi","fit","se","rmu","yi","smj","sma","ia"],"SG":["en","zh-hans","ms-latn","ta","ml","pa-guru"],"SH":["en"],"SI":["sl","hu","it"],"SJ":["nb","ru"],"SK":["sk","hu","uk","pl","de"],"SL":["kri","en","men","tem"],"SM":["it","eo"],"SN":["wo","fr","ff","srr","dyo"],"SO":["so","ar","sw","om"],"SR":["nl","srn","zh-hant"],"SS":["ar","en"],"ST":["pt"],"SV":["es"],"SX":["en","es","vic","nl"],"SY":["ar","ku-latn","fr","hy","syr"],"SZ":["en","ss","zu","ts"],"TA":["en"],"TC":["en"],"TD":["fr","ar"],"TF":["fr"],"TG":["fr","ee"],"TH":["th","tts","nod","sou","mfa","zh-hant","kxm","kdt","mnw","shn","lcp","lwl"],"TJ":["tg-cyrl","ru","fa","ar"],"TK":["en","tkl"],"TL":["pt","tet"],"TM":["tk-latn","ru","uz-latn","ku-latn"],"TN":["aeb","ar","fr"],"TO":["to","en"],"TR":["tr","ku-latn","zza","kbd","az-latn","ar","bgx","bg","ady","kiu","hy","ka","sr-latn","lzz-latn","sq","ab","el","tru","uz-latn","ky-latn","kk-cyrl"],"TT":["en","es"],"TV":["tvl","en"],"TW":["zh-hant","trv"],"TZ":["sw","en","suk","nym","kde","bez","ksb","mas","mgy","asa","lag","jmc","rof","vun","rwk","sbp"],"UA":["uk","ru","pl","yi","rue","be","ro","bg","tr","hu","el"],"UG":["sw","lg","nyn","cgg","xog","en","teo","laj","ach","myx","rw","ttj","hi"],"UM":["en"],"US":["en","es","zh-hant","fr","de","fil","it","vi","ko","ru","nv","yi","pdc","haw","frc","chr","esu","lkt","ik"],"UY":["es"],"UZ":["uz-latn","uz-cyrl","ru","kaa","tr"],"VA":["it","la"],"VC":["en"],"VE":["es"],"VG":["en"],"VI":["en"],"VN":["vi","zh-hant","cjm"],"VU":["bi","en","fr"],"WF":["wls","fr","fud"],"WS":["sm","en"],"XK":["sq","aln","sr-cyrl","sr-latn"],"YE":["ar"],"YT":["swb","fr","buc","sw"],"ZA":["en","zu","xh","af","nso","tn","st","ts","ss","ve","hi","nr","sw"],"ZM":["en","bem","ny","loz"],"ZW":["en","sn","nd","mxc","ndc","kck","ny","ve","tn"],"ZZ":[]}};

- } ( jQuery ) );

@@ -1,465 +0,0 @@ 

- /**

-  * Utility functions for querying language data.

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- ( function ( $ ) {

- 	'use strict';

- 

- 	/**

- 	 * Is this language a redirect to another language?

- 	 * @param language string Language code

- 	 * @return Target language code if it's a redirect or false if it's not

- 	 */

- 	$.uls.data.isRedirect = function ( language ) {

- 		return ( $.uls.data.languages[language] !== undefined &&

- 			$.uls.data.languages[language].length === 1 ) ? $.uls.data.languages[language][0] : false;

- 	};

- 

- 	/**

- 	 * Returns the script of the language.

- 	 * @param language string Language code

- 	 * @return string

- 	 */

- 	$.uls.data.getScript = function ( language ) {

- 		var target = $.uls.data.isRedirect( language );

- 

- 		if ( target ) {

- 			return $.uls.data.getScript( target );

- 		}

- 

- 		if ( !$.uls.data.languages[language] ) {

- 			// Undetermined

- 			return 'Zyyy';

- 		}

- 

- 		return $.uls.data.languages[language][0];

- 	};

- 

- 	/**

- 	 * Returns the regions in which a language is spoken.

- 	 * @param language string Language code

- 	 * @return array|string 'UNKNOWN'

- 	 */

- 	$.uls.data.getRegions = function ( language ) {

- 		var target = $.uls.data.isRedirect( language );

- 

- 		if ( target ) {

- 			return $.uls.data.getRegions( target );

- 		}

- 

- 		return ( $.uls.data.languages[language] && $.uls.data.languages[language][1] ) || 'UNKNOWN';

- 	};

- 

- 	/**

- 	 * Returns the autonym of the language.

- 	 * @param language string Language code

- 	 * @return string

- 	 */

- 	$.uls.data.getAutonym = function ( language ) {

- 		var target = $.uls.data.isRedirect( language );

- 

- 		if ( target ) {

- 			return $.uls.data.getAutonym( target );

- 		}

- 

- 		return ( $.uls.data.languages[language] && $.uls.data.languages[language][2] ) || language;

- 	};

- 

- 	/**

- 	 * Returns all language codes and corresponding autonyms

- 	 * @return array

- 	 */

- 	$.uls.data.getAutonyms = function () {

- 		var language,

- 			autonymsByCode = {};

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			autonymsByCode[language] = $.uls.data.getAutonym( language );

- 		}

- 

- 		return autonymsByCode;

- 	};

- 

- 	/**

- 	 * Returns an array of all region codes.

- 	 * @return array

- 	 */

- 	$.uls.data.getAllRegions = function () {

- 		var region,

- 			allRegions = [];

- 

- 		for ( region in $.uls.data.regiongroups ) {

- 			allRegions.push( region );

- 		}

- 

- 		return allRegions;

- 	};

- 

- 	/**

- 	 * Returns all languages written in script.

- 	 * @param script string

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInScript = function ( script ) {

- 		return $.uls.data.getLanguagesInScripts( [ script ] );

- 	};

- 

- 	/**

- 	 * Returns all languages written in the given scripts.

- 	 * @param scripts array of strings

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInScripts = function ( scripts ) {

- 		var language, i,

- 			languagesInScripts = [];

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			for ( i = 0; i < scripts.length; i++ ) {

- 				if ( scripts[i] === $.uls.data.getScript( language ) ) {

- 					languagesInScripts.push( language );

- 					break;

- 				}

- 			}

- 		}

- 

- 		return languagesInScripts;

- 	};

- 

- 	/**

- 	 * Returns all languages in a given region.

- 	 * @param region string

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInRegion = function ( region ) {

- 		return $.uls.data.getLanguagesInRegions( [ region ] );

- 	};

- 

- 	/**

- 	 * Returns all languages in given regions.

- 	 * @param regions array of strings.

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInRegions = function ( regions ) {

- 		var language, i,

- 			languagesInRegions = [];

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			for ( i = 0; i < regions.length; i++ ) {

- 				if ( $.inArray( regions[i], $.uls.data.getRegions( language ) ) !== -1 ) {

- 					languagesInRegions.push( language );

- 					break;

- 				}

- 			}

- 		}

- 

- 		return languagesInRegions;

- 	};

- 

- 	/**

- 	 * Returns all languages in a region group.

- 	 * @param groupNum number.

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInRegionGroup = function ( groupNum ) {

- 		return $.uls.data.getLanguagesInRegions( $.uls.data.getRegionsInGroup( groupNum ) );

- 	};

- 

- 	/**

- 	 * Returns an associative array of languages in a region,

- 	 * grouped by script.

- 	 * @param region string Region code

- 	 * @return associative array

- 	 */

- 	$.uls.data.getLanguagesByScriptInRegion = function ( region ) {

- 		var language, script,

- 			languagesByScriptInRegion = {};

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			if ( $.inArray( region, $.uls.data.getRegions( language ) ) !== -1 ) {

- 				script = $.uls.data.getScript( language );

- 

- 				if ( languagesByScriptInRegion[script] === undefined ) {

- 					languagesByScriptInRegion[script] = [];

- 				}

- 				languagesByScriptInRegion[script].push( language );

- 			}

- 		}

- 

- 		return languagesByScriptInRegion;

- 	};

- 

- 	/**

- 	 * Returns an associative array of languages in a region,

- 	 * grouped by script group.

- 	 * @param region string Region code

- 	 * @return associative array

- 	 */

- 	$.uls.data.getLanguagesByScriptGroupInRegion = function ( region ) {

- 		return $.uls.data.getLanguagesByScriptGroupInRegions( [ region ] );

- 	};

- 

- 	/**

- 	 * Returns an associative array of all languages,

- 	 * grouped by script group.

- 	 * @return associative array

- 	 */

- 	$.uls.data.getAllLanguagesByScriptGroup = function () {

- 		return $.uls.data.getLanguagesByScriptGroupInRegions( $.uls.data.getAllRegions() );

- 	};

- 

- 	/**

- 	 * Get the given list of languages grouped by script.

- 	 * @param languages Array of language codes

- 	 * @return {Object} Array of languages indexed by script codes

- 	 */

- 	$.uls.data.getLanguagesByScriptGroup = function ( languages ) {

- 		var languagesByScriptGroup = {},

- 			language, codeToAdd, langScriptGroup;

- 

- 		for ( language in languages ) {

- 			codeToAdd = $.uls.data.isRedirect( language ) || language;

- 

- 			langScriptGroup = $.uls.data.getScriptGroupOfLanguage( codeToAdd );

- 

- 			if ( !languagesByScriptGroup[langScriptGroup] ) {

- 				languagesByScriptGroup[langScriptGroup] = [];

- 			}

- 

- 			// Prevent duplicate adding of redirects

- 			if ( $.inArray( codeToAdd, languagesByScriptGroup[langScriptGroup] ) === -1 ) {

- 				languagesByScriptGroup[langScriptGroup].push( codeToAdd );

- 			}

- 		}

- 

- 		return languagesByScriptGroup;

- 	};

- 

- 	/**

- 	 * Returns an associative array of languages in several regions,

- 	 * grouped by script group.

- 	 * @param regions array of strings - region codes

- 	 * @return associative array

- 	 */

- 	$.uls.data.getLanguagesByScriptGroupInRegions = function ( regions ) {

- 		var language, i, scriptGroup,

- 			languagesByScriptGroupInRegions = {};

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			for ( i = 0; i < regions.length; i++ ) {

- 				if ( $.inArray( regions[i], $.uls.data.getRegions( language ) ) !== -1 ) {

- 					scriptGroup = $.uls.data.getScriptGroupOfLanguage( language );

- 

- 					if ( languagesByScriptGroupInRegions[scriptGroup] === undefined ) {

- 						languagesByScriptGroupInRegions[scriptGroup] = [];

- 					}

- 

- 					languagesByScriptGroupInRegions[scriptGroup].push( language );

- 					break;

- 				}

- 			}

- 		}

- 

- 		return languagesByScriptGroupInRegions;

- 	};

- 

- 	/**

- 	 * Returns an array of languages grouped by region group,

- 	 * region, script group and script.

- 	 * @return associative array

- 	 */

- 	$.uls.data.getAllLanguagesByRegionAndScript = function () {

- 		var region, regionGroup, language,

- 			script, scriptGroup, regions, regionNum,

- 			allLanguagesByRegionAndScript = {};

- 

- 		for ( region in $.uls.data.regiongroups ) {

- 			regionGroup = $.uls.data.regiongroups[region];

- 

- 			if ( allLanguagesByRegionAndScript[regionGroup] === undefined ) {

- 				allLanguagesByRegionAndScript[regionGroup] = {};

- 			}

- 

- 			allLanguagesByRegionAndScript[regionGroup][region] = {};

- 		}

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			script = $.uls.data.getScript( language );

- 			scriptGroup = $.uls.data.getGroupOfScript( script );

- 			regions = $.uls.data.getRegions( language );

- 

- 			for ( regionNum = 0; regionNum < regions.length; regionNum++ ) {

- 				region = regions[regionNum];

- 				regionGroup = $.uls.data.regiongroups[region];

- 

- 				if ( allLanguagesByRegionAndScript[regionGroup][region][scriptGroup] === undefined ) {

- 					allLanguagesByRegionAndScript[regionGroup][region][scriptGroup] = {};

- 				}

- 

- 				if ( allLanguagesByRegionAndScript[regionGroup][region][scriptGroup][script] === undefined ) {

- 					allLanguagesByRegionAndScript[regionGroup][region][scriptGroup][script] = [];

- 				}

- 

- 				allLanguagesByRegionAndScript[regionGroup][region][scriptGroup][script].push( language );

- 			}

- 		}

- 

- 		return allLanguagesByRegionAndScript;

- 	};

- 

- 	/**

- 	 * Returns all regions in a region group.

- 	 * @param groupNum int

- 	 * @return array of strings

- 	 */

- 	$.uls.data.getRegionsInGroup = function ( groupNum ) {

- 		var region,

- 			regionsInGroup = [];

- 

- 		for ( region in $.uls.data.regiongroups ) {

- 			if ( $.uls.data.regiongroups[region] === groupNum ) {

- 				regionsInGroup.push( region );

- 			}

- 		}

- 

- 		return regionsInGroup;

- 	};

- 

- 	/**

- 	 * Returns the script group of a script or 'Other' if it doesn't

- 	 * belong to any group.

- 	 * @param script string Script code

- 	 * @return string script group name

- 	 */

- 	$.uls.data.getGroupOfScript = function ( script ) {

- 		var scriptGroup;

- 

- 		for ( scriptGroup in $.uls.data.scriptgroups ) {

- 			if ( $.inArray( script, $.uls.data.scriptgroups[scriptGroup] ) !== -1 ) {

- 				return scriptGroup;

- 			}

- 		}

- 

- 		return 'Other';

- 	};

- 

- 	/**

- 	 * Returns the script group of a language.

- 	 * @param language string Language code

- 	 * @return string script group name

- 	 */

- 	$.uls.data.getScriptGroupOfLanguage = function ( language ) {

- 		return $.uls.data.getGroupOfScript( $.uls.data.getScript( language ) );

- 	};

- 

- 	/**

- 	 * A callback for sorting languages by autonym.

- 	 * Can be used as an argument to a sort function.

- 	 * @param a string Language code

- 	 * @param b string Language code

- 	 */

- 	$.uls.data.sortByAutonym = function ( a, b ) {

- 		var autonymA = $.uls.data.getAutonym( a ) || a,

- 			autonymB = $.uls.data.getAutonym( b ) || b;

- 

- 		return ( autonymA.toLowerCase() < autonymB.toLowerCase() ) ? -1 : 1;

- 	};

- 

- 	/**

- 	 * Check if a language is right-to-left.

- 	 * @param language string Language code

- 	 * @return boolean

- 	 */

- 	$.uls.data.isRtl = function ( language ) {

- 		return $.inArray( $.uls.data.getScript( language ), $.uls.data.rtlscripts ) !== -1;

- 	};

- 

- 	/**

- 	 * Return the direction of the language

- 	 * @param language string Language code

- 	 * @return string

- 	 */

- 	$.uls.data.getDir = function ( language ) {

- 		return $.uls.data.isRtl( language ) ? 'rtl' : 'ltr';

- 	};

- 

- 	/**

- 	 * Returns the languages spoken in a territory.

- 	 * @param territory string Territory code

- 	 * @return list of language codes

- 	 */

- 	$.uls.data.getLanguagesInTerritory = function ( territory ) {

- 		return $.uls.data.territories[territory];

- 	};

- 

- 	/**

- 	 * Adds a language in run time and sets its options as provided.

- 	 * If the target option is provided, the language is defined as a redirect.

- 	 * Other possible options are script, regions and autonym.

- 	 *

- 	 * @param code string New language code.

- 	 * @param options Object Language properties.

- 	 * @return list of language codes

- 	 */

- 	$.uls.data.addLanguage = function( code, options ) {

- 		if ( options.target ) {

- 			$.uls.data.languages[code] = [options.target];

- 		} else {

- 			$.uls.data.languages[code] = [options.script, options.regions, options.autonym];

- 		}

- 	};

- 

- 	/**

- 	 * Removes a language from the langdb in run time.

- 	 *

- 	 * @param code string Language code to delete.

- 	 * @return true if the language was removed, false otherwise.

- 	 */

- 	$.uls.data.deleteLanguage = function( code ) {

- 		if ( $.uls.data.languages[code] ) {

- 			delete $.uls.data.languages[code];

- 

- 			return true;

- 		}

- 

- 		return false;

- 	};

- } ( jQuery ) );

@@ -1,360 +0,0 @@ 

- /**

-  * jQuery language filter plugin.

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- /**

-  * Usage: $( 'inputbox' ).languagefilter();

-  * The values for autocompletion is from the options.languages.

-  * The data is in the format of languagecode:languagename.

-  */

- (function ( $ ) {

- 	'use strict';

- 

- 	var LanguageFilter, delay;

- 

- 	LanguageFilter = function( element, options ) {

- 		this.$element = $( element );

- 		this.options = $.extend( {}, $.fn.regionselector.defaults, options );

- 		this.$element.addClass( 'languagefilter' );

- 		this.resultCount = 0;

- 		this.$suggestion = this.$element.parents().find( '#' + this.$element.data( 'suggestion' ) );

- 		this.$clear = this.$element.parents().find( '#' + this.$element.data( 'clear' ) );

- 		this.selectedLanguage = null;

- 

- 		this.listen();

- 	};

- 

- 	delay = ( function() {

- 		var timer = 0;

- 

- 		return function( callback, milliseconds ) {

- 			clearTimeout( timer );

- 			timer = setTimeout( callback, milliseconds );

- 		};

- 	} () );

- 

- 	LanguageFilter.prototype = {

- 		listen: function() {

- 			this.$element.on( 'keypress', $.proxy( this.keyup, this ) )

- 				.on( 'keyup', $.proxy( this.keyup, this ) );

- 

- 			if ( this.eventSupported( 'keydown' ) ) {

- 				this.$element.on( 'keydown', $.proxy( this.keyup, this ) );

- 			}

- 

- 			if ( this.$clear.length ) {

- 				this.$clear.on( 'click' , $.proxy( this.clear, this ) );

- 			}

- 

- 			this.toggleClear();

- 		},

- 

- 		keyup: function( e ) {

- 			var suggestion, query, languageFilter;

- 

- 			switch( e.keyCode ) {

- 				case 9: // Tab -> Autocomplete

- 					suggestion = this.$suggestion.val();

- 

- 					if ( suggestion && suggestion !== this.$element.val() ) {

- 						this.$element.val( suggestion );

- 						e.preventDefault();

- 						e.stopPropagation();

- 					}

- 					break;

- 				case 13: // Enter

- 					if ( !this.options.onSelect ) {

- 						break;

- 					}

- 

- 					// Avoid bubbling this 'enter' to background page elements

- 					e.preventDefault();

- 					e.stopPropagation();

- 

- 					query = $.trim( this.$element.val() ).toLowerCase();

- 

- 					if ( this.selectedLanguage ) {

- 						// this.selectLanguage will be populated from a matching search

- 						this.options.onSelect( this.selectedLanguage );

- 					} else if ( this.options.languages[query] ) {

- 						// Search is yet to happen (in timeout delay),

- 						// but we have a matching language code.

- 						this.options.onSelect( query );

- 					}

- 

- 					break;

- 				default:

- 					languageFilter = this;

- 

- 					if ( e.which < 32 &&

- 						e.which !== 8 // Backspace

- 					) {

- 						// ignore any ASCII control characters

- 						break;

- 					}

- 

- 					this.selectedLanguage = null;

- 

- 					delay( function() {

- 						if ( !languageFilter.$element.val() ) {

- 							languageFilter.clear();

- 						} else {

- 							languageFilter.options.$target.empty();

- 							languageFilter.search();

- 						}

- 					}, 300 );

- 

- 					this.toggleClear();

- 			}

- 		},

- 

- 		/**

- 		 * Clears the current search removing

- 		 * clear buttons and suggestions.

- 		 */

- 		deactivate: function() {

- 			this.$element.val( '' );

- 

- 			if ( !$.fn.uls.Constructor.prototype.isMobile() ) {

- 				this.$element.focus();

- 			}

- 

- 			this.toggleClear();

- 			this.autofill();

- 		},

- 

- 		/**

- 		 * Clears the search and shows all languages

- 		 */

- 		clear: function() {

- 			this.deactivate();

- 			this.$element.trigger( 'searchclear.uls' );

- 		},

- 

- 		/**

- 		 * Toggles the visibility of clear icon depending

- 		 * on whether there is anything to clear.

- 		 */

- 		toggleClear: function() {

- 			if ( !this.$clear.length ) {

- 				return;

- 			}

- 

- 			if ( this.$element.val() ) {

- 				this.$clear.show();

- 			} else {

- 				this.$clear.hide();

- 			}

- 		},

- 

- 		search: function() {

- 			var languagesInScript,

- 				query = $.trim( this.$element.val() ),

- 				languages = $.uls.data.getLanguagesByScriptGroup( this.options.languages ),

- 				scriptGroup, langNum, langCode;

- 

- 			this.resultCount = 0;

- 

- 			for ( scriptGroup in languages ) {

- 				languagesInScript = languages[scriptGroup];

- 

- 				languagesInScript.sort( $.uls.data.sortByAutonym );

- 

- 				for ( langNum = 0; langNum < languagesInScript.length; langNum++ ) {

- 					langCode = languagesInScript[langNum];

- 

- 					if ( query === '' || this.filter( langCode, query ) ) {

- 						if ( this.resultCount === 0 ) {

- 							// Autofill the first result.

- 							this.autofill( langCode );

- 						}

- 

- 						if ( query.toLowerCase() === langCode ) {

- 							this.selectedLanguage = langCode;

- 						}

- 

- 						if ( this.render( langCode ) ) {

- 							this.resultCount++;

- 						}

- 					}

- 				}

- 			}

- 

- 			// Also do a search by search API

- 			if( !this.resultCount && this.options.searchAPI && query ) {

- 				this.searchAPI( query );

- 			} else {

- 				this.resultHandler( query );

- 			}

- 		},

- 

- 		searchAPI: function( query ) {

- 			var languageFilter = this;

- 

- 			$.get( languageFilter.options.searchAPI, { search: query }, function( result ) {

- 				$.each( result.languagesearch, function( code, name ) {

- 					if ( languageFilter.resultCount === 0 ) {

- 						// Autofill the first result.

- 						languageFilter.autofill( code, name );

- 					}

- 

- 					if ( languageFilter.render( code ) ) {

- 						languageFilter.resultCount++;

- 					}

- 				} );

- 

- 				languageFilter.resultHandler( query );

- 			} );

- 		},

- 

- 		/**

- 		 * Handler method to be called once search is over.

- 		 * Based on search result triggers resultsfound or noresults events

- 		 * @param query string

- 		 */

- 		resultHandler: function( query ) {

- 			if ( this.resultCount === 0 ) {

- 				this.$suggestion.val( '' );

- 				this.$element.trigger( 'noresults.uls', query );

- 			} else {

- 				this.$element.trigger( 'resultsfound.uls', [query, this.resultCount] );

- 			}

- 		},

- 

- 		autofill: function( langCode, languageName ) {

- 			if ( !this.$suggestion.length ) {

- 				return;

- 			}

- 

- 			if ( !this.$element.val() ) {

- 				this.$suggestion.val( '' );

- 				return;

- 			}

- 

- 			this.selectedLanguage = langCode;

- 			languageName = languageName || this.options.languages[langCode];

- 

- 			if ( !languageName ) {

- 				return;

- 			}

- 

- 			var autonym,

- 				userInput = this.$element.val(),

- 				suggestion = userInput + languageName.substring( userInput.length, languageName.length );

- 

- 			if ( suggestion.toLowerCase() !== languageName.toLowerCase() ) {

- 				// see if it was autonym match

- 				autonym = $.uls.data.getAutonym( langCode ) || '';

- 				suggestion = userInput + autonym.substring( userInput.length, autonym.length );

- 

- 				if ( suggestion !== autonym ) {

- 					// Give up. It may be an ISO/script code match.

- 					suggestion = '';

- 				}

- 			}

- 

- 			// Make sure that it is a visual prefix.

- 			if ( !isVisualPrefix( userInput, suggestion ) ) {

- 				suggestion = '';

- 			}

- 

- 			this.$suggestion.val( suggestion );

- 		},

- 

- 		render: function( langCode ) {

- 			var $target = this.options.$target;

- 

- 			if ( !$target ) {

- 				return false;

- 			}

- 

- 			return $target.append( langCode );

- 		},

- 

- 		escapeRegex: function( value ) {

- 			return value.replace( /[\-\[\]{}()*+?.,\\\^$\|#\s]/g, '\\$&' );

- 		},

- 

- 		/**

- 		 * A search match happens if any of the following passes:

- 		 * a) Language name in current user interface language

- 		 * 'starts with' search string.

- 		 * b) Language autonym 'starts with' search string.

- 		 * c) ISO 639 code match with search string.

- 		 * d) ISO 15924 code for the script match the search string.

- 		 */

- 		filter: function( langCode, searchTerm ) {

- 			// FIXME script is ISO 15924 code. We might need actual name of script.

- 			var matcher = new RegExp( '^' + this.escapeRegex( searchTerm ), 'i' ),

- 				languageName = this.options.languages[langCode];

- 

- 			return matcher.test( languageName ) ||

- 				matcher.test( $.uls.data.getAutonym( langCode ) ) ||

- 				matcher.test( langCode ) ||

- 				matcher.test( $.uls.data.getScript( langCode ) );

- 		},

- 

- 		eventSupported: function ( eventName ) {

- 			var isSupported = eventName in this.$element;

- 

- 			if ( !isSupported ) {

- 				this.$element.setAttribute( eventName, 'return;' );

- 				isSupported = typeof this.$element[eventName] === 'function';

- 			}

- 

- 			return isSupported;

- 		}

- 	};

- 

- 	$.fn.languagefilter = function( option ) {

- 		return this.each( function() {

- 			var $this = $( this ),

- 				data = $this.data( 'languagefilter' ),

- 				options = typeof option === 'object' && option;

- 

- 			if ( !data ) {

- 				$this.data( 'languagefilter', ( data = new LanguageFilter( this, options ) ) );

- 			}

- 

- 			if ( typeof option === 'string' ) {

- 				data[option]();

- 			}

- 		} );

- 	};

- 

- 	$.fn.languagefilter.defaults = {

- 		$target: null, // Where to append the results

- 		searchAPI: null,

- 		languages: null, // Languages as code:name format.

- 		onSelect: null // Language select handler - like enter in filter textbox.

- 	};

- 

- 	$.fn.languagefilter.Constructor = LanguageFilter;

- 

- 	/**

- 	 * Check if a prefix is visually prefix of a string

- 	 * @param prefix string

- 	 * @param string string

- 	 */

- 	function isVisualPrefix( prefix, string ) {

- 		// Pre-base vowel signs of Indic languages. A vowel sign is called pre-base if

- 		// consonant + vowel becomes [vowel][consonant] when rendered. Eg: ക + െ => കെ

- 		var prebases = 'െേൈൊോൌெேைொோௌେୈୋୌિਿिিেৈোৌෙේෛොෝෞ';

- 		return prebases.indexOf( string[prefix.length] ) <= 0;

- 	}

- } ( jQuery ) );

@@ -1,396 +0,0 @@ 

- /**

-  * Universal Language Selector

-  * Language category display component - Used for showing the search results,

-  * grouped by regions, scripts

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- ( function ( $ ) {

- 	'use strict';

- 

- 	var noResultsTemplate, LanguageCategoryDisplay;

- 

- 	/*jshint multistr:true */

- 	noResultsTemplate = '<div class="twelve columns uls-no-results-view hide">\

- 		<h2 data-i18n="uls-no-results-found" class="eleven columns offset-by-one uls-no-results-found-title">\

- 		No results found\

- 		</h2>\

- 		<div id="uls-no-found-more" class="uls-no-found-more">\

- 			<div class="ten columns offset-by-one">\

- 				<p>\

- 					<span data-i18n="uls-search-help">You can search by language name, \

- 					script name, ISO code of language or \

- 					you can browse by region:</span>\

- 					<a class="uls-region-link" data-i18n="uls-region-AM" data-region="AM">America</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-EU" data-region="EU">Europe</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-ME" data-region="ME">Middle East</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-AF" data-region="AF">Africa</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-AS" data-region="AS">Asia</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-PA" data-region="PA">Pacific</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-WW" data-region="WW">Worldwide</a>.\

- 				</p>\

- 			</div>\

- 		</div>\

- 	</div>';

- 	/*jshint multistr:false */

- 

- 	LanguageCategoryDisplay = function ( element, options ) {

- 		this.$element = $( element );

- 		this.options = $.extend( {}, $.fn.lcd.defaults, options );

- 		this.$element.addClass( 'lcd' );

- 		this.regionLanguages = {};

- 		this.renderTimeout = null;

- 		this.cachedQuicklist = null;

- 

- 		this.$element.append( $( noResultsTemplate ) );

- 		this.$noResults = this.$element.children( '.uls-no-results-view' );

- 

- 		this.render();

- 		this.listen();

- 	};

- 

- 	LanguageCategoryDisplay.prototype = {

- 		constructor: LanguageCategoryDisplay,

- 

- 		/**

- 		 * Adds language to the language list.

- 		 * @param {string} langCode

- 		 * @param {string} [regionCode]

- 		 * @return {bool} Whether the language was added.

- 		 */

- 		append: function ( langCode, regionCode ) {

- 			var lcd = this, i, regions;

- 

- 			if ( !this.options.languages[langCode] ) {

- 				// Language is unknown or not in the list of languages for this context.

- 				return false;

- 			}

- 

- 			if ( regionCode ) {

- 				regions = [regionCode];

- 			} else {

- 				regions = $.uls.data.getRegions( langCode );

- 			}

- 

- 			// Worldwides only displayed once

- 			if ( $.inArray( 'WW', regions ) > -1 ) {

- 				regions = ['WW'];

- 			}

- 

- 			for ( i = 0; i < regions.length; i++ ) {

- 				this.regionLanguages[regions[i]].push( langCode );

- 			}

- 

- 			// Work around the bad interface, delay rendering until we have got

- 			// all the languages to speed up performance.

- 			window.clearTimeout( this.renderTimeout );

- 			this.renderTimeout = window.setTimeout( function () {

- 				lcd.renderRegions();

- 			}, 50 );

- 

- 			return true;

- 		},

- 

- 		render: function () {

- 			var $section,

- 				lcd = this,

- 				regions = [],

- 				regionNames = {

- 					// These are fallback text when i18n library not present

- 					WW: 'Worldwide',

- 					SP: 'Special',

- 					AM: 'America',

- 					EU: 'Europe',

- 					ME: 'Middle East',

- 					AS: 'Asia',

- 					AF: 'Africa',

- 					PA: 'Pacific'

- 				};

- 

- 			regions.push( this.buildQuicklist() );

- 

- 			$.each( $.uls.data.regiongroups, function ( regionCode ) {

- 				lcd.regionLanguages[regionCode] = [];

- 				// Don't show the region unless it was enabled

- 				if ( $.inArray( regionCode, lcd.options.showRegions ) === -1 ) {

- 					return;

- 				}

- 

- 				$section = $( '<div>' )

- 					.addClass( 'eleven columns offset-by-one uls-lcd-region-section hide' )

- 					.attr( 'id', regionCode )

- 					.append(

- 						$( '<h3>' )

- 						.attr( 'data-i18n', 'uls-region-' + regionCode )

- 						.addClass( 'eleven columns uls-lcd-region-title' )

- 						.text( regionNames[regionCode] )

- 					);

- 

- 				regions.push( $section );

- 			} );

- 

- 			lcd.$element.append( regions );

- 

- 			this.i18n();

- 		},

- 

- 		/**

- 		 * Renders a region and displays it if it has content.

- 		 */

- 		renderRegions: function () {

- 			var lcd = this, languages,

- 				items = lcd.options.itemsPerColumn,

- 				columns = 4;

- 

- 			this.$noResults.addClass( 'hide' );

- 			this.$element.find( '.uls-lcd-region-section' ).each( function () {

- 				var $region = $( this ),

- 					regionCode = $region.attr( 'id' );

- 

- 				if ( $region.is( '#uls-lcd-quicklist' ) ) {

- 					return;

- 				}

- 

- 				$region.children( '.uls-language-block' ).remove();

- 

- 				languages = lcd.regionLanguages[regionCode];

- 				if ( !languages || languages.length === 0 ) {

- 					$region.addClass( 'hide' );

- 					return;

- 				}

- 

- 				lcd.renderRegion( $region, languages, items, columns );

- 				$region.removeClass( 'hide' );

- 

- 				lcd.regionLanguages[regionCode] = [];

- 			} );

- 

- 		},

- 

- 		/**

- 		 * Adds given languages sorted into rows and columns into given element.

- 		 * @param {jQuery} $region Element to add language list.

- 		 * @param {array} languages List of language codes.

- 		 * @param {number} itemsPerColumn How many languages fit in a column.

- 		 * @param {number} columnsPerRow How many columns fit in a row.

- 		 */

- 		renderRegion: function( $region, languages, itemsPerColumn, columnsPerRow ) {

- 			var i, lastItem, currentScript, nextScript, force,

- 				len = languages.length,

- 				items = [],

- 				columns = [],

- 				rows = [];

- 

- 			for ( i = 0; i < len; i++ ) {

- 				force = false;

- 				nextScript = $.uls.data.getScriptGroupOfLanguage( languages[i+1] );

- 

- 				lastItem = len - i === 1;

- 				// Force column break if script changes and column has more than one row already

- 				if ( i === 0 ) {

- 					currentScript = $.uls.data.getScriptGroupOfLanguage( languages[i] );

- 				} else if ( currentScript !== nextScript && items.length > 1 ) {

- 					force = true;

- 				}

- 				currentScript = nextScript;

- 

- 				items.push( this.renderItem( languages[i] ) );

- 

- 				if ( items.length >= itemsPerColumn || lastItem || force ) {

- 					columns.push( $( '<ul>' ).addClass( 'three columns' ).append( items ) );

- 					items = [];

- 					if ( columns.length >= columnsPerRow || lastItem ) {

- 						rows.push( $( '<div>' ).addClass( 'row uls-language-block' ).append( columns ) );

- 						columns = [];

- 					}

- 				}

- 			}

- 

- 			$region.append( rows );

- 		},

- 

- 		/**

- 		 * Creates dom node representing one item in language list.

- 		 * @param {string} code Language code

- 		 * @return {Element}

- 		 */

- 		renderItem: function( code ) {

- 			var a, name, autonym, li;

- 

- 			name = this.options.languages[code];

- 			autonym = $.uls.data.getAutonym( code ) || name || code;

- 

- 			// Not using jQuery as this is performance hotspot

- 			li = document.createElement( 'li' );

- 			li.title = name;

- 			li.lang = code;

- 			li.dir = $.uls.data.getDir( code );

- 			li.setAttribute( 'data-code', code );

- 

- 			a = document.createElement( 'a' );

- 			a.appendChild( document.createTextNode( autonym ) );

- 			a.className = 'autonym';

- 

- 			li.appendChild( a );

- 			if ( this.options.languageDecorator ) {

- 				this.options.languageDecorator( $( a ), code );

- 			}

- 			return li;

- 		},

- 

- 		i18n: function ( ) {

- 			this.$element.find( '[data-i18n]' ).i18n();

- 		},

- 

- 		/**

- 		 * Adds quicklist as a region.

- 		 */

- 		quicklist: function () {

- 			this.$element.find( '#uls-lcd-quicklist' ).removeClass( 'hide' );

- 		},

- 

- 		buildQuicklist: function () {

- 			var quickList, $quickListSection, $quickListSectionTitle;

- 

- 			if ( this.cachedQuicklist !== null ) {

- 				return this.cachedQuicklist;

- 			}

- 

- 			if ( $.isFunction( this.options.quickList ) ) {

- 				this.options.quickList = this.options.quickList();

- 			}

- 

- 			if ( !this.options.quickList ) {

- 				this.cachedQuicklist = $( [] );

- 				return this.cachedQuicklist;

- 			}

- 

- 			// Pick only the first elements, because we don't have room for more

- 			quickList = this.options.quickList;

- 			quickList = quickList.slice( 0, 16 );

- 			quickList.sort( $.uls.data.sortByAutonym );

- 

- 			$quickListSection = $( '<div>' )

- 				.addClass( 'eleven columns offset-by-one uls-lcd-region-section' )

- 				.attr( 'id', 'uls-lcd-quicklist' );

- 

- 			$quickListSectionTitle = $( '<h3>' )

- 				.attr( 'data-i18n', 'uls-common-languages' )

- 				.addClass( 'eleven columns uls-lcd-region-title' )

- 				.text( 'Common languages' ); // This is placeholder text if jquery.i18n not present

- 			$quickListSection.append( $quickListSectionTitle );

- 

- 			this.renderRegion( $quickListSection, quickList, 4, 4 );

- 

- 			$quickListSectionTitle.i18n();

- 

- 			this.cachedQuicklist = $quickListSection;

- 			return this.cachedQuicklist;

- 		},

- 

- 		show: function () {

- 			if ( !this.regionDivs ) {

- 				this.render();

- 			}

- 		},

- 

- 		empty: function () {

- 			this.$element.find( '#uls-lcd-quicklist' ).addClass( 'hide' );

- 		},

- 

- 		focus: function () {

- 			this.$element.focus();

- 		},

- 

- 		noResults: function () {

- 			this.$noResults.removeClass( 'hide' );

- 			if ( this.$noResults.find( '.uls-lcd-region-title' ).length ) {

- 				return;

- 			}

- 

- 			var $suggestions = this.buildQuicklist().clone();

- 			$suggestions.find( 'h3' )

- 				.data( 'i18n', 'uls-no-results-suggestion-title' )

- 				.text( 'You may be interested in:' )

- 				.i18n();

- 			this.$noResults.find( 'h2' ).after( $suggestions );

- 		},

- 

- 		listen: function () {

- 			var lcd = this;

- 

- 			if ( this.options.clickhandler ) {

- 				this.$element.on( 'click', '.row li', function () {

- 					lcd.options.clickhandler.call( this, $( this ).data( 'code' ) );

- 				} );

- 			}

- 

- 			// The region section need to be in sync with the map filter.

- 			lcd.$element.scroll( function () {

- 				var inview, inviewRegion,

- 					$ulsLanguageList = $( this ),

- 					scrollTop = $ulsLanguageList.position().top,

- 					scrollBottom = $ulsLanguageList.height();

- 

- 				// The region section need to be in sync with the map filter.

- 				inviewRegion = 'WW';

- 				lcd.$element.find( '.uls-lcd-region-section' ).each( function () {

- 					var $lcdRegionSection = $( this ),

- 						top = $lcdRegionSection.position().top,

- 						height = $lcdRegionSection.height(),

- 						padding = 10;

- 

- 					if ( top - padding <= scrollTop && height > scrollBottom ) {

- 						inviewRegion = $lcdRegionSection.attr( 'id' );

- 					}

- 				} );

- 

- 				// highlight the region visible while scrolling in the map.

- 				inview = $.uls.data.regiongroups[inviewRegion];

- 				if ( !$( '#uls-region-' + inview ).hasClass( 'active' ) ) {

- 					$( '.regionselector' ).removeClass( 'active' );

- 					$( '#uls-region-' + inview ).addClass( 'active' );

- 				}

- 			} );

- 		}

- 	};

- 

- 	$.fn.lcd = function ( option ) {

- 		return this.each( function () {

- 			var $this = $( this ),

- 				data = $this.data( 'lcd' ),

- 				options = typeof option === 'object' && option;

- 

- 			if ( !data ) {

- 				$this.data( 'lcd', ( data = new LanguageCategoryDisplay( this, options ) ) );

- 			}

- 

- 			if ( typeof option === 'string') {

- 				data[option]();

- 			}

- 		} );

- 	};

- 

- 	$.fn.lcd.defaults = {

- 		languages: null,

- 		showRegions: ['WW', 'AM', 'EU', 'ME', 'AF', 'AS', 'PA'],

- 		itemsPerColumn: 8,

- 		languageDecorator: null

- 	};

- 

- 	$.fn.lcd.Constructor = LanguageCategoryDisplay;

- } ( jQuery ) );

@@ -1,1 +0,0 @@ 

- (function(e){"use strict";var t,n;t='<div class="grid uls-menu uls-wide"> 			<div class="row"> 				<span id="uls-close" class="uls-icon-close"></span> 			</div> 			<div class="row"> 				<div class="uls-title-region seven columns">					<h1 data-i18n="uls-select-language" class="uls-title">Select Language</h1>				</div>				<div class="five columns uls-map-block" id="uls-map-block">					<div class="row">						<div data-regiongroup="1" id="uls-region-1" class="three columns uls-region uls-region-1">							<a data-i18n="uls-region-WW">Worldwide</a>						</div>						<div class="nine columns">							<div class="row uls-worldmap">								<div data-regiongroup="2" id="uls-region-2" class="four columns uls-region">									<a data-i18n="uls-region-AM">America</a>								</div>								<div data-regiongroup="3" id="uls-region-3" class="four columns uls-region">									<a><span data-i18n="uls-region-EU">Europe</span><br>									<span data-i18n="uls-region-ME">Middle East</span><br>									<span data-i18n="uls-region-AF">Africa</span></a>								</div>								<div data-regiongroup="4" id="uls-region-4" class="four columns uls-region">									<a><span data-i18n="uls-region-AS">Asia</span><br>									<span data-i18n="uls-region-PA">Pacific</span></a>								</div>							</div>						</div>					</div>				</div>			</div>			<div id="search" class="row uls-search"> 				<div class="one column">					<span class="uls-search-label"></span>				</div>				<div class="ten columns">					<div id="uls-search-input-block" class="uls-search-input-block">						<input type="text" class="uls-filterinput uls-filtersuggestion" id="uls-filtersuggestion" disabled="true"							autocomplete="off" /> <input type="text" class="uls-filterinput uls-languagefilter" id="uls-languagefilter"							data-clear="uls-languagefilter-clear" data-suggestion="uls-filtersuggestion"							placeholder="Language search" autocomplete="off" />					</div>				</div>				<div class="one column">					<span id="uls-languagefilter-clear" class="uls-languagefilter-clear"></span>				</div>			</div>			<div class="row uls-language-list"></div>			<div class="row" id="uls-settings-block"></div>		</div>';n=function(n,r){this.$element=e(n);this.options=e.extend({},e.fn.uls.defaults,r);this.$menu=e(t);this.languages=this.options.languages;for(var i in this.languages){if(e.uls.data.languages[i]===undefined){delete this.languages[i]}}this.left=this.options.left;this.top=this.options.top;this.shown=false;this.initialized=false;this.$languageFilter=this.$menu.find("#uls-languagefilter");this.$regionFilters=this.$menu.find(".uls-region");this.$resultsView=this.$menu.find("div.uls-language-list");this.render();this.listen();this.ready()};n.prototype={constructor:n,ready:function(){if(this.options.onReady){this.options.onReady.call(this)}},visible:function(){if(this.options.onVisible){this.options.onVisible.call(this)}},position:function(){var t=e.extend({},this.$element.offset(),{height:this.$element[0].offsetHeight});return{top:this.top!==undefined?this.top:t.top+t.height,left:this.left!==undefined?this.left:"25%"}},show:function(){this.$menu.css(this.position());if(this.options.compact){this.$menu.addClass("uls-compact")}if(!this.initialized){e("body").prepend(this.$menu);this.i18n();this.defaultSearch();this.initialized=true}e(".uls-menu").hide();this.$menu.show();this.$menu.scrollIntoView();this.shown=true;if(!this.isMobile()){this.$languageFilter.focus()}this.visible()},i18n:function(){if(e.i18n){this.$menu.find("[data-i18n]").i18n();this.$languageFilter.prop("placeholder",e.i18n("uls-search-placeholder"))}},defaultSearch:function(){this.$resultsView.lcd("empty");this.$regionFilters.regionselector("show")},hide:function(){this.$menu.hide();this.shown=false},render:function(){},noresults:function(){e(".regionselector").removeClass("active");this.$resultsView.lcd("noResults")},success:function(){e(".regionselector").removeClass("active");this.$resultsView.show()},listen:function(){var t,n=this;this.$element.on("click",e.proxy(this.click,this));this.$languageFilter.on("searchclear.uls",e.proxy(this.defaultSearch,this));this.$languageFilter.on("noresults.uls",e.proxy(this.noresults,this));this.$languageFilter.on("resultsfound.uls",e.proxy(this.success,this));this.$menu.find("#uls-close").on("click",e.proxy(this.cancel,this));this.$menu.on("click",function(e){e.stopPropagation()});this.$menu.on("keypress",e.proxy(this.keypress,this)).on("keyup",e.proxy(this.keyup,this));if(this.eventSupported("keydown")){this.$menu.on("keydown",e.proxy(this.keypress,this))}t=this.$resultsView.lcd({languages:this.languages,quickList:this.options.quickList,clickhandler:e.proxy(this.select,this),source:this.$languageFilter,showRegions:this.options.showRegions,languageDecorator:this.options.languageDecorator}).data("lcd");this.$languageFilter.languagefilter({$target:t,languages:this.languages,searchAPI:this.options.searchAPI,onSelect:e.proxy(this.select,this)});this.$menu.find(".uls-region, .uls-region-link").regionselector({$target:t,languages:this.languages,success:function(e){n.$languageFilter.languagefilter("deactivate");if(e.regionGroup===1){t.quicklist()}n.success()},noresults:function(){n.$languageFilter.languagefilter("clear")}});e("html").click(e.proxy(this.cancel,this))},select:function(e){this.hide();this.$languageFilter.trigger("searchclear");if(this.options.onSelect){this.options.onSelect.call(this,e)}},cancel:function(){this.hide();if(this.options.onCancel){this.options.onCancel.call(this)}},keyup:function(e){if(!this.shown){return}if(e.keyCode===27){this.cancel();e.preventDefault();e.stopPropagation()}},keypress:function(e){if(!this.shown){return}if(e.keyCode===27){this.cancel();e.preventDefault();e.stopPropagation()}},click:function(e){e.stopPropagation();e.preventDefault();if(this.shown){this.hide()}else{this.show()}},eventSupported:function(e){var t=e in this.$menu;if(!t){this.$element.setAttribute(e,"return;");t=typeof this.$element[e]==="function"}return t},isMobile:function(){return navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry)/)}};e.fn.uls=function(t){return this.each(function(){var r=e(this),i=r.data("uls"),s=typeof t==="object"&&t;if(!i){r.data("uls",i=new n(this,s))}if(typeof t==="string"){i[t]()}})};e.fn.uls.defaults={onSelect:null,searchAPI:null,languages:e.uls.data.getAutonyms(),quickList:null,compact:false,showRegions:["WW","AM","EU","ME","AF","AS","PA"],languageDecorator:null};if(!e.fn.i18n){e.fn.i18n=function(){}}e.fn.scrollIntoView=function(){return this.each(function(){var t,n=e(window),r=n.height(),i=n.scrollTop(),s=i+r,o=e(this),u=o.height(),a=o.offset().top,f=a+u;if(a<i||f>s){if(i>a){t=a}else{t=f-r}e("html, body").stop().animate({scrollTop:t},500)}})};e.fn.uls.Constructor=n})(jQuery);(function(e){"use strict";e.uls=e.uls||{};e.uls.data={languages:{aa:["Latn",["AF"],"Qafár af"],ab:["Cyrl",["EU"],"Аҧсшәа"],ace:["Latn",["AS","PA"],"Acèh"],ady:["Cyrl",["EU","ME"],"Адыгэбзэ"],"ady-cyrl":["ady"],"ady-latn":["Latn",["EU","ME"],"Adygabze"],aeb:["Arab",["AF"],"زَوُن"],af:["Latn",["AF"],"Afrikaans"],ahr:["Deva",["AS"],"अहिराणी"],ak:["Latn",["AF"],"Akan"],akz:["Latn",["AM"],"Albaamo innaaɬiilka"],aln:["Latn",["EU"],"Gegë"],am:["Ethi",["AF"],"አማርኛ"],an:["Latn",["EU"],"aragonés"],ang:["Latn",["EU"],"Ænglisc"],anp:["Deva",["AS"],"अङ्गिका"],ar:["Arab",["ME"],"العربية"],arc:["Syrc",["ME"],"ܐܪܡܝܐ"],arn:["Latn",["AM"],"mapudungun"],aro:["Latn",["AM"],"Araona"],arq:["Arab",["AF"],"جازايرية"],ary:["Latn",["ME"],"Maġribi"],arz:["Arab",["ME"],"مصرى"],as:["Beng",["AS"],"অসমীয়া"],ase:["Sgnw",["AM"],"American sign language"],ast:["Latn",["EU"],"asturianu"],av:["Cyrl",["EU"],"авар"],avk:["Latn",["WW"],"Kotava"],ay:["Latn",["AM"],"Aymar aru"],az:["az-latn"],"az-latn":["Latn",["EU","ME"],"azərbaycanca"],"az-arab":["Arab",["EU","ME"],"آذربايجانجا"],"az-cyrl":["Latn",["EU","ME"],"азәрбајҹанҹа"],azb:["az-arab"],ba:["Cyrl",["EU"],"башҡортса"],bar:["Latn",["EU"],"Boarisch"],"bat-smg":["sgs"],"bbc-latn":["Latn",["AS"],"Batak Toba"],"bbc-batk":["Batk",["AS"],"Batak Toba"],bbc:["Latn",["AS"],"Batak Toba"],bcc:["Arab",["AS","ME"],"بلوچی مکرانی"],bcl:["Latn",["AS"],"Bikol Central"],"be-tarask":["Cyrl",["EU"],"беларуская (тарашкевіца)"],"be-x-old":["be-tarask"],be:["Cyrl",["EU"],"беларуская"],bew:["Latn",["AS"],"Bahasa Betawi"],bfq:["Taml",["AS"],"படகா"],bg:["Cyrl",["EU"],"български"],bh:["Deva",["AS"],"भोजपुरी"],bho:["Deva",["AS"],"भोजपुरी"],bi:["Latn",["PA"],"Bislama"],bjn:["Latn",["AS"],"Bahasa Banjar"],bm:["Latn",["AF"],"bamanankan"],bn:["Beng",["AS"],"বাংলা"],bo:["Tibt",["AS"],"བོད་ཡིག"],bpy:["Beng",["AS"],"বিষ্ণুপ্রিয়া মণিপুরী"],bqi:["Arab",["ME"],"بختياري"],br:["Latn",["EU"],"brezhoneg"],brh:["Latn",["ME","AS"],"Bráhuí"],brx:["Deva",["AS"],"बड़ो"],bs:["Latn",["EU"],"bosanski"],bto:["Latn",["AS"],"Iriga Bicolano"],bug:["Bugi",["AS"],"ᨅᨔ ᨕᨘᨁᨗ"],bxr:["Cyrl",["AS"],"буряад"],ca:["Latn",["EU"],"català"],"cbk-zam":["Latn",["AS"],"Chavacano de Zamboanga"],cdo:["Latn",["AS"],"Mìng-dĕ̤ng-ngṳ̄"],ce:["Cyrl",["EU"],"нохчийн"],ceb:["Latn",["AS"],"Cebuano"],ch:["Latn",["PA"],"Chamoru"],cho:["Latn",["AM"],"Choctaw"],chr:["Cher",["AM"],"ᏣᎳᎩ"],chy:["Latn",["AM"],"Tsetsêhestâhese"],ckb:["Arab",["ME"],"کوردی"],co:["Latn",["EU"],"corsu"],cps:["Latn",["AS"],"Capiceño"],cr:["Cans",["AM"],"ᓀᐦᐃᔭᐍᐏᐣ"],"cr-cans":["cr"],"cr-latn":["Latn",["AM"],"Nēhiyawēwin"],crh:["Latn",["EU"],"qırımtatarca"],"crh-cyrl":["Cyrl",["EU"],"къырымтатарджа"],"crh-latn":["crh"],cs:["Latn",["EU"],"česky"],csb:["Latn",["EU"],"kaszëbsczi"],cu:["Cyrl",["EU"],"словѣньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ"],cv:["Cyrl",["EU"],"Чӑвашла"],cy:["Latn",["EU"],"Cymraeg"],da:["Latn",["EU"],"dansk"],"de-at":["Latn",["EU"],"Österreichisches Deutsch"],"de-ch":["Latn",["EU"],"Schweizer Hochdeutsch"],"de-formal":["Latn",["EU"],"Deutsch (Sie-Form)"],de:["Latn",["EU"],"Deutsch"],diq:["Latn",["EU","AS"],"Zazaki"],dsb:["Latn",["EU"],"dolnoserbski"],dtp:["Latn",["AS"],"Dusun Bundu-liwan"],dv:["Thaa",["AS"],"ދިވެހިބަސް"],dz:["Tibt",["AS"],"ཇོང་ཁ"],ee:["Latn",["AF"],"eʋegbe"],egl:["Latn",["EU"],"Emiliàn"],el:["Grek",["EU"],"Ελληνικά"],eml:["Latn",["EU"],"emiliàn e rumagnòl"],"en-ca":["Latn",["AM"],"Canadian English"],"en-gb":["Latn",["EU","AS","PA"],"British English"],en:["Latn",["EU","AM","AF","ME","AS","PA","WW"],"English"],eo:["Latn",["WW"],"Esperanto"],"es-419":["Latn",["AM"],"español de America Latina"],"es-formal":["Latn",["EU","AM","AF","WW"],"español (formal)"],es:["Latn",["EU","AM","AF","WW"],"español"],esu:["Latn",["AM"],"Yup'ik"],et:["Latn",["EU"],"eesti"],eu:["Latn",["EU"],"euskara"],ext:["Latn",["EU"],"estremeñu"],fa:["Arab",["ME"],"فارسی"],ff:["Latn",["AF"],"Fulfulde"],fi:["Latn",["EU"],"suomi"],fil:["tl"],fit:["Latn",["EU"],"meänkieli"],"fiu-vro":["vro"],fj:["Latn",["PA"],"Na Vosa Vakaviti"],fo:["Latn",["EU"],"føroyskt"],fr:["Latn",["EU","AM","WW"],"français"],frc:["Latn",["AM"],"français cadien"],frp:["Latn",["EU"],"arpetan"],frr:["Latn",["EU"],"Nordfriisk"],fur:["Latn",["EU"],"furlan"],fy:["Latn",["EU"],"Frysk"],ga:["Latn",["EU"],"Gaeilge"],gag:["Latn",["EU"],"Gagauz"],gah:["Latn",["AS"],"Alekano"],"gan-hans":["Hans",["AS"],"赣语(简体)"],"gan-hant":["gan"],gan:["Hant",["AS"],"贛語"],gbz:["Latn",["AS"],"Dari"],gcf:["Latn",["AM"],"Guadeloupean Creole French"],gd:["Latn",["EU"],"Gàidhlig"],gl:["Latn",["EU"],"galego"],glk:["Arab",["ME"],"گیلکی"],gn:["Latn",["AM"],"Avañe'ẽ"],gom:["Deva",["AS"],"कोंकणी"],"gom-deva":["gom"],"gom-latn":["Latn",["AS"],"Konknni"],got:["Goth",["EU"],"𐌲𐌿𐍄𐌹𐍃𐌺"],grc:["Grek",["EU"],"Ἀρχαία ἑλληνικὴ"],gsw:["Latn",["EU"],"Alemannisch"],gu:["Gujr",["AS"],"ગુજરાતી"],guc:["Latn",["AM"],"Wayúu"],gur:["Latn",["AF"],"Gurenɛ"],gv:["Latn",["EU"],"Gaelg"],"ha-arab":["Arab",["AF"],"هَوُسَ"],"ha-latn":["Latn",["AF"],"Hausa"],ha:["ha-latn"],hak:["Latn",["AS"],"Hak-kâ-fa"],haw:["Latn",["AM","PA"],"Hawai`i"],he:["Hebr",["ME"],"עברית"],hi:["Deva",["AS"],"हिन्दी"],hif:["Latn",["PA","AS"],"Fiji Hindi"],"hif-deva":["Deva",["AS"],"फ़ीजी हिन्दी"],"hif-latn":["hif"],hil:["Latn",["AS"],"Ilonggo"],hne:["Deva",["AS"],"छत्तीसगढ़ी"],ho:["Latn",["PA"],"Hiri Motu"],hr:["Latn",["EU"],"hrvatski"],hsb:["Latn",["EU"],"hornjoserbsce"],hsn:["Hans",["AS"],"湘语"],ht:["Latn",["AM"],"Kreyòl ayisyen"],"hu-formal":["Latn",["EU"],"Magyar (magázó)"],hu:["Latn",["EU"],"magyar"],hy:["Armn",["EU","ME"],"Հայերեն"],hz:["Latn",["AF"],"Otsiherero"],ia:["Latn",["WW"],"interlingua"],id:["Latn",["AS"],"Bahasa Indonesia"],ie:["Latn",["WW"],"Interlingue"],ig:["Latn",["AF"],"Igbo"],ii:["Yiii",["AS"],"ꆇꉙ"],ik:["Latn",["AM"],"Iñupiak"],"ike-cans":["Cans",["AM"],"ᐃᓄᒃᑎᑐᑦ"],"ike-latn":["Latn",["AM"],"inuktitut"],ilo:["Latn",["AS"],"Ilokano"],inh:["Cyrl",["EU"],"ГӀалгӀай"],io:["Latn",["WW"],"Ido"],is:["Latn",["EU"],"íslenska"],it:["Latn",["EU"],"italiano"],iu:["Cans",["AM"],"ᐃᓄᒃᑎᑐᑦ"],ja:["Jpan",["AS"],"日本語"],jam:["Latn",["AM"],"Patois"],jbo:["Latn",["WW"],"lojban"],jut:["Latn",["EU"],"jysk"],jv:["Latn",["AS","PA"],"Basa Jawa"],"jv-java":["Java",["AS","PA"],"ꦧꦱꦗꦮ"],ka:["Geor",["EU"],"ქართული"],kaa:["Latn",["AS"],"Qaraqalpaqsha"],kab:["Latn",["AF","EU"],"Taqbaylit"],"kbd-cyrl":["kbd"],"kbd-latn":["Latn",["EU"],"Qabardjajəbza"],kbd:["Cyrl",["EU","ME"],"Адыгэбзэ"],kea:["Latn",["AF"],"Kabuverdianu"],kg:["Latn",["AF"],"Kongo"],kgp:["Latn",["AM"],"Kaingáng"],khw:["Arab",["ME","AS"],"کھوار"],ki:["Latn",["AF"],"Gĩkũyũ"],kiu:["Latn",["EU","ME"],"Kırmancki"],kj:["Latn",["AF"],"Kwanyama"],kjh:["Cyrl",["AS"],"хакас"],kk:["kk-cyrl"],"kk-arab":["Arab",["EU","AS"],"قازاقشا (تٶتە)"],"kk-cn":["kk-arab"],"kk-cyrl":["Cyrl",["EU","AS"],"қазақша"],"kk-kz":["kk-cyrl"],"kk-latn":["Latn",["EU","AS","ME"],"qazaqşa"],"kk-tr":["kk-latn"],kl:["Latn",["AM","EU"],"kalaallisut"],km:["Khmr",["AS"],"ភាសាខ្មែរ"],kn:["Knda",["AS"],"ಕನ್ನಡ"],"ko-kp":["Kore",["AS"],"한국어 (조선)"],ko:["Kore",["AS"],"한국어"],koi:["Cyrl",["EU"],"Перем Коми"],kr:["Latn",["AF"],"Kanuri"],krc:["Cyrl",["EU"],"къарачай-малкъар"],kri:["Latn",["AF"],"Krio"],krj:["Latn",["ME","EU"],"Kinaray-a"],krl:["Latn",["EU"],"Karjala"],"ks-arab":["Arab",["AS"],"کٲشُر"],"ks-deva":["Deva",["AS"],"कॉशुर"],ks:["Arab",["AS"],"کٲشُر"],ksf:["Latn",["AF"],"Bafia"],ksh:["Latn",["EU"],"Ripoarisch"],ku:["ku-latn"],"ku-arab":["Arab",["EU","ME"],"كوردي"],"ku-latn":["Latn",["EU","ME"],"Kurdî"],kv:["Cyrl",["EU"],"коми"],kw:["Latn",["EU"],"kernowek"],ky:["Cyrl",["AS"],"Кыргызча"],la:["Latn",["EU"],"Latina"],lad:["lad-latn"],"lad-latn":["Latn",["ME","EU","AM"],"Ladino"],"lad-hebr":["Hebr",["ME","EU","AM"],"לאדינו"],lb:["Latn",["EU"],"Lëtzebuergesch"],lbe:["Cyrl",["EU"],"лакку"],lez:["Cyrl",["EU"],"лезги"],lfn:["Latn",["WW"],"Lingua Franca Nova"],lg:["Latn",["AF"],"Luganda"],li:["Latn",["EU"],"Limburgs"],lij:["Latn",["EU"],"Ligure"],liv:["Latn",["EU"],"Līvõ kēļ"],lld:["Latn",["EU"],"Ladin"],lmo:["Latn",["EU"],"lumbaart"],ln:["Latn",["AF"],"lingála"],lo:["Laoo",["AS"],"ລາວ"],loz:["Latn",["AF"],"Silozi"],lt:["Latn",["EU"],"lietuvių"],lrc:["Arab",["AS"],"لوری"],ltg:["Latn",["EU"],"latgaļu"],lud:["Latn",["EU"],"lüüdi"],lus:["Latn",["AS"],"Mizo ţawng"],lut:["Latn",["AM"],"dxʷləšucid"],lv:["Latn",["EU"],"latviešu"],lzh:["Hant",["AS"],"文言"],lzz:["Latn",["EU","ME"],"Lazuri"],mai:["Deva",["AS"],"मैथिली"],"map-bms":["Latn",["AS"],"Basa Banyumasan"],mdf:["Cyrl",["EU"],"мокшень"],mfe:["Latn",["AM"],"Morisyen"],mg:["Latn",["AF"],"Malagasy"],mh:["Latn",["PA"],"Ebon"],mhr:["Cyrl",["EU"],"олык марий"],mi:["Latn",["PA"],"Māori"],mic:["Latn",["AM"],"Mi'kmaq"],min:["Latn",["AS"],"Baso Minangkabau"],mk:["Cyrl",["EU"],"македонски"],ml:["Mlym",["AS","ME"],"മലയാളം"],mn:["Cyrl",["AS"],"монгол"],mnc:["Mong",["AS"],"ᠮᠠᠨᠵᡠ ᡤᡳᠰᡠᠨ"],mni:["Beng",["AS"],"মেইতেই লোন্"],mnw:["Mymr",["AS"],"ဘာသာ မန်"],mo:["Cyrl",["EU"],"молдовеняскэ"],mr:["Deva",["AS","ME"],"मराठी"],mrj:["Cyrl",["EU"],"кырык мары"],ms:["Latn",["AS"],"Bahasa Melayu"],mt:["Latn",["EU"],"Malti"],mui:["Latn",["AS"],"Musi"],mus:["Latn",["AM"],"Mvskoke"],mwl:["Latn",["EU"],"Mirandés"],mwv:["Latn",["AS"],"Behase Mentawei"],my:["Mymr",["AS"],"မြန်မာဘာသာ"],myv:["Cyrl",["EU"],"эрзянь"],mzn:["Arab",["ME","AS"],"مازِرونی"],na:["Latn",["PA"],"Dorerin Naoero"],nah:["Latn",["AM"],"Nāhuatl"],nan:["Latn",["AS"],"Bân-lâm-gú"],nap:["Latn",["EU"],"Nnapulitano"],nb:["Latn",["EU"],"norsk (bokmål)"],"nds-nl":["Latn",["EU"],"Nedersaksisch"],nds:["Latn",["EU"],"Plattdüütsch"],ne:["Deva",["AS"],"नेपाली"],"new":["Deva",["AS"],"नेपाल भाषा"],ng:["Latn",["AF"],"Oshiwambo"],niu:["Latn",["PA"],"ko e vagahau Niuē"],njo:["Latn",["AS"],"Ao"],"nl-informal":["Latn",["EU","AM"],"Nederlands (informeel)"],nl:["Latn",["EU","AM"],"Nederlands"],nn:["Latn",["EU"],"norsk (nynorsk)"],no:["Latn",["EU"],"norsk"],nov:["Latn",["WW"],"Novial"],nqo:["Nkoo",["AF"],"ߒߞߏ"],nrm:["Latn",["EU"],"Nouormand"],nso:["Latn",["AF"],"Sesotho sa Leboa"],nv:["Latn",["AM"],"Diné bizaad"],ny:["Latn",["AF"],"Chi-Chewa"],oc:["Latn",["EU"],"occitan"],om:["Latn",["AF"],"Oromoo"],or:["Orya",["AS"],"ଓଡ଼ିଆ"],os:["Cyrl",["EU"],"Ирон"],ota:["Arab",["AS","EU"],"لسان عثمانى"],pa:["pa-guru"],"pa-guru":["Guru",["AS"],"ਪੰਜਾਬੀ"],pag:["Latn",["AS"],"Pangasinan"],pam:["Latn",["AS"],"Kapampangan"],pap:["Latn",["AM"],"Papiamentu"],pcd:["Latn",["EU"],"Picard"],pdc:["Latn",["EU","AM"],"Deitsch"],pdt:["Latn",["EU","AM"],"Plautdietsch"],pfl:["Latn",["EU"],"Pälzisch"],pi:["Deva",["AS"],"पालि"],pih:["Latn",["PA"],"Norfuk / Pitkern"],pis:["Latn",["PA"],"Pijin"],pko:["Latn",["AF"],"Pökoot"],pl:["Latn",["EU"],"polski"],pms:["Latn",["EU"],"Piemontèis"],pnb:["Arab",["AS","ME"],"پنجابی"],pnt:["Grek",["EU"],"Ποντιακά"],ppl:["Latn",["AM"],"Nawat"],prg:["Latn",["EU"],"Prūsiskan"],ps:["Arab",["AS","ME"],"پښتو"],"pt-br":["Latn",["AM"],"português do Brasil"],pt:["Latn",["EU","AM","AS","PA","AF","WW"],"português"],qu:["Latn",["AM"],"Runa Simi"],qug:["Latn",["AM"],"Runa shimi"],rap:["Latn",["AM"],"arero rapa nui"],rgn:["Latn",["EU"],"Rumagnôl"],rif:["Latn",["AF"],"Tarifit"],rki:["Mymr",["AS"],"ရခိုင်"],rm:["Latn",["EU"],"rumantsch"],rmf:["Latn",["EU"],"kaalengo tšimb"],rmy:["Latn",["EU"],"Romani"],rn:["Latn",["AF"],"Kirundi"],ro:["Latn",["EU"],"română"],"roa-rup":["rup"],"roa-tara":["Latn",["EU"],"tarandíne"],rtm:["Latn",["PA"],"Faeag Rotuma"],ru:["Cyrl",["EU","AS","ME"],"русский"],rue:["Cyrl",["EU"],"русиньскый"],rup:["Latn",["EU"],"Armãneashce"],ruq:["Cyrl",["EU"],"Влахесте"],"ruq-cyrl":["ruq"],"ruq-grek":["Grek",["EU"],"Megleno-Romanian (Greek script)"],"ruq-latn":["Latn",["EU"],"Vlăheşte"],rut:["Cyrl",["EU"],"мыхаӀбишды"],rw:["Latn",["AF"],"Kinyarwanda"],rwr:["Deva",["AS"],"मारवाड़ी"],ryu:["Kana",["AS"],"ʔucināguci"],sa:["Deva",["AS"],"संस्कृतम्"],sah:["Cyrl",["EU","AS"],"саха тыла"],sat:["Latn",["AS"],"Santali"],saz:["Saur",["AS"],"ꢱꣃꢬꢵꢯ꣄ꢡ꣄ꢬꢵ"],sc:["Latn",["EU"],"sardu"],scn:["Latn",["EU"],"sicilianu"],sco:["Latn",["EU"],"Scots"],sd:["Arab",["AS"],"سنڌي"],sdc:["Latn",["EU"],"Sassaresu"],se:["Latn",["EU"],"sámegiella"],ses:["Latn",["AF"],"Koyraboro Senni"],sei:["Latn",["AM"],"Cmique Itom"],sg:["Latn",["AF"],"Sängö"],sgs:["Latn",["EU"],"žemaitėška"],sh:["Latn",["EU"],"srpskohrvatski"],"shi-latn":["Latn",["AF"],"Tašlḥiyt"],"shi-tfng":["Tfng",["AF"],"ⵜⴰⵛⵍⵃⵉⵜ"],shi:["shi-latn"],shn:["Mymr",["AS"],"လိၵ်ႈတႆး"],si:["Sinh",["AS"],"සිංහල"],simple:["Latn",["WW"],"Simple English"],sk:["Latn",["EU"],"slovenčina"],sl:["Latn",["EU"],"slovenščina"],sli:["Latn",["EU"],"Schläsch"],slr:["Latn",["AS"],"Salırça"],sly:["Latn",["AS"],"Bahasa Selayar"],syc:["Syrc",["ME"],"ܣܘܪܝܝܐ"],sm:["Latn",["PA"],"Gagana Samoa"],sma:["Latn",["EU"],"åarjelsaemien"],smj:["Latn",["EU"],"julevsámegiella"],smn:["Latn",["EU"],"anarâškielâ"],sms:["Latn",["EU"],"sää´mǩiõll"],sn:["Latn",["AF"],"chiShona"],so:["Latn",["AF"],"Soomaaliga"],sq:["Latn",["EU"],"shqip"],sr:["sr-cyrl"],"sr-ec":["sr-cyrl"],"sr-cyrl":["Cyrl",["EU"],"српски"],"sr-el":["sr-latn"],"sr-latn":["Latn",["EU"],"srpski"],srn:["Latn",["AM","EU"],"Sranantongo"],ss:["Latn",["AF"],"SiSwati"],st:["Latn",["AF"],"Sesotho"],stq:["Latn",["EU"],"Seeltersk"],su:["Latn",["AS"],"Basa Sunda"],sv:["Latn",["EU"],"svenska"],sw:["Latn",["AF"],"Kiswahili"],swb:["Latn",["AF"],"Shikomoro"],sxu:["Latn",["EU"],"Säggssch"],szl:["Latn",["EU"],"ślůnski"],ta:["Taml",["AS"],"தமிழ்"],tcy:["Knda",["AS"],"ತುಳು"],te:["Telu",["AS"],"తెలుగు"],tet:["Latn",["AS","PA"],"tetun"],"tg-cyrl":["Cyrl",["AS"],"тоҷикӣ"],"tg-latn":["Latn",["AS"],"tojikī"],tg:["Cyrl",["AS"],"тоҷикӣ"],th:["Thai",["AS"],"ไทย"],ti:["Ethi",["AF"],"ትግርኛ"],tk:["Latn",["AS"],"Türkmençe"],tkr:["Cyrl",["AS"],"ЦӀаьхна миз"],tl:["Latn",["AS"],"Tagalog"],tly:["Cyrl",["EU","AS","ME"],"толышә зывон"],tn:["Latn",["AF"],"Setswana"],to:["Latn",["PA"],"lea faka-Tonga"],tokipona:["Latn",["WW"],"Toki Pona"],tpi:["Latn",["PA","AS"],"Tok Pisin"],tr:["Latn",["EU","ME"],"Türkçe"],trp:["Latn",["AS"],"Kokborok (Tripuri)"],tru:["Latn",["AS"],"Ṫuroyo"],ts:["Latn",["AF"],"Xitsonga"],tsd:["Grek",["EU"],"Τσακωνικά"],tt:["Cyrl",["EU"],"татарча"],"tt-cyrl":["tt"],"tt-latn":["Latn",["EU"],"tatarça"],ttt:["Cyrl",["AS"],"Tati"],tum:["Latn",["AF"],"chiTumbuka"],tw:["Latn",["AF"],"Twi"],twd:["Latn",["EU"],"Tweants"],ty:["Latn",["PA"],"Reo Mā`ohi"],tyv:["Cyrl",["AS"],"тыва дыл"],tzm:["Tfng",["AF"],"ⵜⴰⵎⴰⵣⵉⵖⵜ"],udm:["Cyrl",["EU"],"удмурт"],ug:["ug-arab"],"ug-arab":["Arab",["AS"],"ئۇيغۇرچە"],"ug-latn":["Latn",["AS"],"uyghurche"],"ug-cyrl":["Cyrl",["AS"],"уйғурчә"],uk:["Cyrl",["EU"],"українська"],ur:["Arab",["AS","ME"],"اردو"],uz:["Latn",["AS"],"oʻzbekcha"],ve:["Latn",["AF"],"Tshivenda"],vec:["Latn",["EU"],"vèneto"],vep:["Latn",["EU"],"vepsän kel’"],vi:["Latn",["AS"],"Tiếng Việt"],vls:["Latn",["EU"],"West-Vlams"],vmf:["Latn",["EU"],"Mainfränkisch"],vo:["Latn",["WW"],"Volapük"],vot:["Latn",["EU"],"Vaďďa"],vro:["Latn",["EU"],"Võro"],wa:["Latn",["EU"],"walon"],war:["Latn",["AS"],"Winaray"],wls:["Latn",["PA"],"Faka'uvea"],wo:["Latn",["AF"],"Wolof"],wuu:["Hans",["AS"],"吴语"],xal:["Cyrl",["EU"],"хальмг"],xh:["Latn",["AF"],"isiXhosa"],xmf:["Geor",["EU"],"მარგალური"],ydd:["Hebr",["AS","EU"],"Eastern Yiddish"],yi:["Hebr",["ME","EU","AM"],"ייִדיש"],yo:["Latn",["AF"],"Yorùbá"],yrk:["Cyrl",["AS"],"Ненэцяʼ вада"],yrl:["Latn",["AM"],"ñe'engatú"],yua:["Latn",["AM"],"Maaya T'aan"],yue:["Hant",["AS"],"粵語"],za:["Latn",["AS"],"Vahcuengh"],zea:["Latn",["EU"],"Zeêuws"],zh:["Hans",["AS"],"中文"],"zh-classical":["Hant",["AS"],"文言"],"zh-cn":["Hans",["AS"],"中文(中国大陆)"],"zh-hans":["Hans",["AS"],"中文(简体)"],"zh-hant":["Hant",["AS"],"中文(繁體)"],"zh-hk":["Hant",["AS"],"中文(香港)"],"zh-min-nan":["nan"],"zh-mo":["Hant",["AS"],"中文(澳門)"],"zh-my":["Hans",["AS"],"中文(马来西亚)"],"zh-sg":["Hans",["AS"],"中文(新加坡)"],"zh-tw":["Hant",["AS"],"中文(台灣)"],"zh-yue":["yue"],zu:["Latn",["AF"],"isiZulu"]},scriptgroups:{Latin:["Latn","Goth"],Greek:["Grek"],WestCaucasian:["Armn","Geor"],Arabic:["Arab"],MiddleEastern:["Hebr","Syrc"],African:["Ethi","Nkoo","Tfng"],SouthAsian:["Beng","Deva","Gujr","Guru","Knda","Mlym","Orya","Saur","Sinh","Taml","Telu","Tibt","Thaa"],Cyrillic:["Cyrl"],CJK:["Hans","Hant","Kana","Kore","Jpan","Yiii"],SouthEastAsian:["Batk","Bugi","Java","Khmr","Laoo","Mymr","Thai"],Mongolian:["Mong"],SignWriting:["Sgnw"],NativeAmerican:["Cher","Cans"],Special:["Zyyy"]},rtlscripts:["Arab","Hebr","Syrc","Nkoo","Thaa"],regiongroups:{WW:1,SP:1,AM:2,EU:3,ME:3,AF:3,AS:4,PA:4},territories:{AC:["en"],AD:["ca","es","fr"],AE:["ar","ml","ps","bal","fa"],AF:["fa","ps","haz","uz-arab","tk-latn","prd","bal","ug-arab","kk-arab"],AG:["en","pt"],AI:["en"],AL:["sq","el","mk"],AM:["hy","ku-latn","az-latn"],AO:["pt","umb","kmb","ln"],AQ:["und"],AR:["es","cy","gn"],AS:["sm","en"],AT:["de","bar","hr","sl","hu"],AU:["en","zh-hant","it"],AW:["nl","pap","en"],AX:["sv"],AZ:["az-latn","az-cyrl","tly-latn","ku-latn","ttt-latn","tkr-latn"],BA:["bs-cyrl","bs-latn","hr","sr-cyrl","sr-latn"],BB:["en"],BD:["bn","rkt","syl","ccp","my","grt","mni"],BE:["nl","en","fr","vls","wa","de"],BF:["mos","dyu","fr"],BG:["bg","tr"],BH:["ar","ml"],BI:["rn","fr","sw"],BJ:["fr","fon","yo"],BL:["fr"],BM:["en"],BN:["ms-latn","zh-hant","ms-arab","en"],BO:["es","qu","ay","gn","aro"],BQ:["pap","nl"],BR:["pt","de","it","ja","ko","kgp","gub","yrl","xav"],BS:["en"],BT:["dz","ne","tsj","lep"],BV:["und"],BW:["en","tn","af"],BY:["be","ru"],BZ:["en","es"],CA:["en","fr","it","de","pdt","cr-cans","crk","yi","iu-cans","iu-latn","moe","crj","atj","crl","csw","crm","ikt","moh","dgr","den","scs","nsk","chp","gwi"],CC:["ms-arab","en"],CD:["sw","lua","swc","fr","ln","lu","kg","lol","rw"],CF:["fr","sg","ln"],CG:["fr","ln"],CH:["de","fr","gsw","it","lmo","rm","rmo","wae"],CI:["fr","bci","sef","dnj","kfo","bqv"],CK:["en"],CL:["es","arn"],CM:["fr","en","bum","ff","ewo","ybb","bbj","nnh","bkm","bas","bax","byv","mua","maf","bfd","bss","kkj","dua","mgo","ar","jgo","ksf","agq","ha-arab","nmg","yav"],CN:["zh-hans","wuu","hsn","hak","nan","gan","ii","ug-arab","za","mn-mong","bo","ko","kk-arab","lis","ky-arab","nxq","khb","tdd","lcp","en","ru","vi","uz-cyrl","lzh"],CO:["es","guc"],CP:["und"],CR:["es"],CU:["es"],CV:["kea","pt"],CW:["pap","nl","es"],CX:["en"],CY:["el","tr","hy","ar"],CZ:["cs","de","pl"],DE:["de","en","nds","vmf","tr","hr","it","ku-latn","ru","el","ksh","pl","es","nl","da","hsb","frr","dsb","frs","stq","pfl"],DG:["en"],DJ:["aa","so","ar","fr"],DK:["da","de","kl","jut"],DM:["en"],DO:["es","en"],DZ:["arq","ar","fr","kab"],EA:["es"],EC:["es","qu","qug"],EE:["et","ru","vro"],EG:["ar","arz","el"],EH:["ar"],ER:["ti","en","tig","ar","aa","ssy","byn"],ES:["es","en","ca","gl","eu","ast","ext"],ET:["en","am","om","so","ti","sid","wal","aa"],FI:["fi","sv","ru","en","et","rmf","se","smn","sms"],FJ:["en","hi","hif-deva","fj","rtm"],FK:["en"],FM:["chk","pon","kos","yap","en","uli"],FO:["fo"],FR:["fr","en","oc","it","pt","pcd","gsw","br","co","ca","nl","eu","frp","ia"],GA:["fr","puu"],GB:["en","sco","pa-guru","cy","bn","zh-hant","syl","el","it","ks-arab","gd","yi","ml","ga","fr","kw"],GD:["en"],GE:["ka","xmf","ru","hy","ab","os","ku-latn"],GF:["fr","gcr","zh-hant"],GG:["en"],GH:["ak","en","ee","abr","gur","gaa","ha-latn","saf"],GI:["en"],GL:["kl","da"],GM:["en","man-latn"],GN:["fr","ff","man-nkoo","sus","nqo","kpe"],GP:["fr"],GQ:["es","fan","fr","bvb"],GR:["el","pnt-grek","mk","tr","bg","sq","tsd"],GS:["und"],GT:["es","quc"],GU:["en","ch"],GW:["pt"],GY:["en"],HK:["zh-hant","en","zh-hans"],HM:["und"],HN:["es","en"],HR:["hr","it"],HT:["ht","fr"],HU:["hu","de","ro","hr","sk","sl"],IC:["es"],ID:["id","jv","su","mad","ms-arab","min","bew","ban","bug","bjn","ace","sas","bbc","zh-hant","mak","ljp","rej","gor","nij","kge","aoz","kvr","lbw","rob","mdr","sxn","sly","mwv"],IE:["en","ga"],IL:["he","ar","ru","ro","yi","en","pl","lad","hu","am","ti","ml"],IM:["en","gv"],IN:["hi","en","bn","te","mr","ta","ur","gu","kn","ml","or","pa-guru","bho","awa","as","bgc","mag","mwr","mai","hne","dcc","bjj","ne","sat","wtm","rkt","ks-arab","kok","gom","swv","gbm","lmn","sd-arab","gon-telu","kfy","doi","kru","sck","wbq","xnr","tcy","wbr","khn","brx","noe","bhb","mni","raj","hoc","mtr","unr-beng","bhi","hoj","kha","kfr","grt","unx-beng","bfy","srx","saz","ccp","sd-deva","bfq","njo","ria","bo","bpy","bft","bra","lep","btv","lif-deva","lah","sa","kht","dv","dz"],IO:["en"],IQ:["ar","ckb","fa","syr"],IR:["fa","az-arab","azb","mzn","glk","ckb","tk-latn","lrc","ar","bal","rmt","bqi","luz","lki","prd","hy","ps","ka","gbz","kk-arab"],IS:["is","da"],IT:["it","en","fr","lmo","pms","sc","de","vec","nap","lij","scn","sl","sdc","fur","egl","ca","el","hr","rgn"],JE:["en"],JM:["en","jam"],JO:["ar"],JP:["ja","ryu","ko"],KE:["en","sw","ki","luy","luo","kam","kln","guz","mer","mas","ebu","so","dav","teo","pko","om","saq","ar","pa-guru","gu"],KG:["ky-cyrl","ru"],KH:["km","cja","kdt"],KI:["en","gil"],KM:["ar","fr","zdj"],KN:["en"],KP:["ko"],KR:["ko"],KW:["ar"],KY:["en"],KZ:["ru","kk-cyrl","de","ug-cyrl"],LA:["lo","kjg","kdt"],LB:["ar","hy","ku-arab","fr","en"],LC:["en"],LI:["de","gsw","wae"],LK:["si","ta","en"],LR:["en","kpe","vai-vaii","men","vai-latn"],LS:["st","zu","ss","en","xh"],LT:["lt","ru","sgs"],LU:["fr","lb","de"],LV:["lv","ru","ltg"],LY:["ar"],MA:["ary","ar","zgh","fr","tzm-latn","shi-latn","shi-tfng","rif-latn","rif-tfng","es"],MC:["fr"],MD:["ro","uk","bg","gag","ru"],ME:["sr-latn","sq","sr-cyrl"],MF:["fr"],MG:["mg","fr","en"],MH:["en","mh"],MK:["mk","sq","tr"],ML:["bm-latn","fr","ffm","snk","mwk","ses","tmh","bm-nkoo","khq","dtm","kao","ar","bmq","bze"],MM:["my","shn","mnw","kht"],MN:["mn-cyrl","kk-arab","zh-hans","ru","ug-cyrl"],MO:["zh-hant","pt","zh-hans","en"],MP:["en","ch"],MQ:["fr"],MR:["ar","fr","ff","wo"],MS:["en"],MT:["mt","en"],MU:["mfe","en","bho","ur","fr","ta"],MV:["dv"],MW:["en","ny","tum","zu"],MX:["es","yua","nhe","nhw","maz","nch","sei"],MY:["ms-latn","en","zh-hant","ta","jv","zmi","dtp","ml","bug","bjn"],MZ:["pt","vmw","ndc","ts","ngl","seh","mgh","rng","ny","yao","sw","zu"],NA:["af","kj","ng","naq","en","de","tn"],NC:["fr"],NE:["ha-latn","fr","dje","fuq","tmh","ar","twq"],NF:["en"],NG:["en","pcm","ha-latn","ig","yo","fuv","tiv","efi","ibb","ha-arab","bin","kaj","kcg","ar","cch","amo"],NI:["es"],NL:["nl","en","li","fy","gos","id","zea","rif-latn","tr"],NO:["nb","nn","se"],NP:["ne","mai","bho","new","jml","taj","awa","thl","bap","tdg","thr","mgp","lif-deva","thq","mrd","bfy","xsr","rjs","tsf","hi","ggn","gvr","bo","tkt","tdh","bn","unr-deva","lep"],NR:["en","na"],NU:["en","niu"],NZ:["en","mi"],OM:["ar","bal","fa"],PA:["es","en","zh-hant"],PE:["es","qu","ay"],PF:["fr","ty","zh-hant"],PG:["tpi","en","ho"],PH:["en","fil","es","ceb","ilo","hil","bik","war","bhk","pam","pag","mdh","tsg","zh-hant","cps","krj","bto","hnn","tbw","bku"],PK:["ur","pa-arab","en","lah","ps","sd-arab","skr","bal","brh","hno","fa","hnd","tg-arab","gju","bft","kvx","khw","mvy","kxp","gjk","ks-arab","btv"],PL:["pl","szl","be","uk","csb","de","sli","lt"],PM:["fr","en"],PN:["en"],PR:["es","en"],PS:["ar"],PT:["pt","gl"],PW:["pau","en"],PY:["gn","es","de"],QA:["ar","fa","ml"],RE:["fr","rcf","ta"],RO:["ro","hu","de","tr","sr-latn","bg","el","pl"],RS:["sr-cyrl","sr-latn","sq","hu","ro","hr","sk","uk"],RU:["ru","tt","ba","cv","hy","ce","av","udm","chm","sah","os","kbd","myv","dar","bua","mdf","kum","kv","lez","krc","inh","tyv","az-cyrl","ady","krl","lbe","koi","mrj","alt","fi","sr-latn","vep","mn-cyrl","izh","cu"],RW:["rw","fr","en"],SA:["ar"],SB:["en","rug"],SC:["crs","fr","en"],SD:["ar","en","nus","ha-arab"],SE:["sv","fi","fit","se","rmu","yi","smj","sma","ia"],SG:["en","zh-hans","ms-latn","ta","ml","pa-guru"],SH:["en"],SI:["sl","hu","it"],SJ:["nb","ru"],SK:["sk","hu","uk","pl","de"],SL:["kri","en","men","tem"],SM:["it","eo"],SN:["wo","fr","ff","srr","dyo"],SO:["so","ar","sw","om"],SR:["nl","srn","zh-hant"],SS:["ar","en"],ST:["pt"],SV:["es"],SX:["en","es","vic","nl"],SY:["ar","ku-latn","fr","hy","syr"],SZ:["en","ss","zu","ts"],TA:["en"],TC:["en"],TD:["fr","ar"],TF:["fr"],TG:["fr","ee"],TH:["th","tts","nod","sou","mfa","zh-hant","kxm","kdt","mnw","shn","lcp","lwl"],TJ:["tg-cyrl","ru","fa","ar"],TK:["en","tkl"],TL:["pt","tet"],TM:["tk-latn","ru","uz-latn","ku-latn"],TN:["aeb","ar","fr"],TO:["to","en"],TR:["tr","ku-latn","zza","kbd","az-latn","ar","bgx","bg","ady","kiu","hy","ka","sr-latn","lzz-latn","sq","ab","el","tru","uz-latn","ky-latn","kk-cyrl"],TT:["en","es"],TV:["tvl","en"],TW:["zh-hant","trv"],TZ:["sw","en","suk","nym","kde","bez","ksb","mas","mgy","asa","lag","jmc","rof","vun","rwk","sbp"],UA:["uk","ru","pl","yi","rue","be","ro","bg","tr","hu","el"],UG:["sw","lg","nyn","cgg","xog","en","teo","laj","ach","myx","rw","ttj","hi"],UM:["en"],US:["en","es","zh-hant","fr","de","fil","it","vi","ko","ru","nv","yi","pdc","haw","frc","chr","esu","lkt","ik"],UY:["es"],UZ:["uz-latn","uz-cyrl","ru","kaa","tr"],VA:["it","la"],VC:["en"],VE:["es"],VG:["en"],VI:["en"],VN:["vi","zh-hant","cjm"],VU:["bi","en","fr"],WF:["wls","fr","fud"],WS:["sm","en"],XK:["sq","aln","sr-cyrl","sr-latn"],YE:["ar"],YT:["swb","fr","buc","sw"],ZA:["en","zu","xh","af","nso","tn","st","ts","ss","ve","hi","nr","sw"],ZM:["en","bem","ny","loz"],ZW:["en","sn","nd","mxc","ndc","kck","ny","ve","tn"],ZZ:[]}}})(jQuery);(function(e){"use strict";e.uls.data.isRedirect=function(t){return e.uls.data.languages[t]!==undefined&&e.uls.data.languages[t].length===1?e.uls.data.languages[t][0]:false};e.uls.data.getScript=function(t){var n=e.uls.data.isRedirect(t);if(n){return e.uls.data.getScript(n)}if(!e.uls.data.languages[t]){return"Zyyy"}return e.uls.data.languages[t][0]};e.uls.data.getRegions=function(t){var n=e.uls.data.isRedirect(t);if(n){return e.uls.data.getRegions(n)}return e.uls.data.languages[t]&&e.uls.data.languages[t][1]||"UNKNOWN"};e.uls.data.getAutonym=function(t){var n=e.uls.data.isRedirect(t);if(n){return e.uls.data.getAutonym(n)}return e.uls.data.languages[t]&&e.uls.data.languages[t][2]||t};e.uls.data.getAutonyms=function(){var t,n={};for(t in e.uls.data.languages){if(e.uls.data.isRedirect(t)){continue}n[t]=e.uls.data.getAutonym(t)}return n};e.uls.data.getAllRegions=function(){var t,n=[];for(t in e.uls.data.regiongroups){n.push(t)}return n};e.uls.data.getLanguagesInScript=function(t){return e.uls.data.getLanguagesInScripts([t])};e.uls.data.getLanguagesInScripts=function(t){var n,r,i=[];for(n in e.uls.data.languages){if(e.uls.data.isRedirect(n)){continue}for(r=0;r<t.length;r++){if(t[r]===e.uls.data.getScript(n)){i.push(n);break}}}return i};e.uls.data.getLanguagesInRegion=function(t){return e.uls.data.getLanguagesInRegions([t])};e.uls.data.getLanguagesInRegions=function(t){var n,r,i=[];for(n in e.uls.data.languages){if(e.uls.data.isRedirect(n)){continue}for(r=0;r<t.length;r++){if(e.inArray(t[r],e.uls.data.getRegions(n))!==-1){i.push(n);break}}}return i};e.uls.data.getLanguagesInRegionGroup=function(t){return e.uls.data.getLanguagesInRegions(e.uls.data.getRegionsInGroup(t))};e.uls.data.getLanguagesByScriptInRegion=function(t){var n,r,i={};for(n in e.uls.data.languages){if(e.uls.data.isRedirect(n)){continue}if(e.inArray(t,e.uls.data.getRegions(n))!==-1){r=e.uls.data.getScript(n);if(i[r]===undefined){i[r]=[]}i[r].push(n)}}return i};e.uls.data.getLanguagesByScriptGroupInRegion=function(t){return e.uls.data.getLanguagesByScriptGroupInRegions([t])};e.uls.data.getAllLanguagesByScriptGroup=function(){return e.uls.data.getLanguagesByScriptGroupInRegions(e.uls.data.getAllRegions())};e.uls.data.getLanguagesByScriptGroup=function(t){var n={},r,i,s;for(r in t){i=e.uls.data.isRedirect(r)||r;s=e.uls.data.getScriptGroupOfLanguage(i);if(!n[s]){n[s]=[]}if(e.inArray(i,n[s])===-1){n[s].push(i)}}return n};e.uls.data.getLanguagesByScriptGroupInRegions=function(t){var n,r,i,s={};for(n in e.uls.data.languages){if(e.uls.data.isRedirect(n)){continue}for(r=0;r<t.length;r++){if(e.inArray(t[r],e.uls.data.getRegions(n))!==-1){i=e.uls.data.getScriptGroupOfLanguage(n);if(s[i]===undefined){s[i]=[]}s[i].push(n);break}}}return s};e.uls.data.getAllLanguagesByRegionAndScript=function(){var t,n,r,i,s,o,u,a={};for(t in e.uls.data.regiongroups){n=e.uls.data.regiongroups[t];if(a[n]===undefined){a[n]={}}a[n][t]={}}for(r in e.uls.data.languages){if(e.uls.data.isRedirect(r)){continue}i=e.uls.data.getScript(r);s=e.uls.data.getGroupOfScript(i);o=e.uls.data.getRegions(r);for(u=0;u<o.length;u++){t=o[u];n=e.uls.data.regiongroups[t];if(a[n][t][s]===undefined){a[n][t][s]={}}if(a[n][t][s][i]===undefined){a[n][t][s][i]=[]}a[n][t][s][i].push(r)}}return a};e.uls.data.getRegionsInGroup=function(t){var n,r=[];for(n in e.uls.data.regiongroups){if(e.uls.data.regiongroups[n]===t){r.push(n)}}return r};e.uls.data.getGroupOfScript=function(t){var n;for(n in e.uls.data.scriptgroups){if(e.inArray(t,e.uls.data.scriptgroups[n])!==-1){return n}}return"Other"};e.uls.data.getScriptGroupOfLanguage=function(t){return e.uls.data.getGroupOfScript(e.uls.data.getScript(t))};e.uls.data.sortByAutonym=function(t,n){var r=e.uls.data.getAutonym(t)||t,i=e.uls.data.getAutonym(n)||n;return r.toLowerCase()<i.toLowerCase()?-1:1};e.uls.data.isRtl=function(t){return e.inArray(e.uls.data.getScript(t),e.uls.data.rtlscripts)!==-1};e.uls.data.getDir=function(t){return e.uls.data.isRtl(t)?"rtl":"ltr"};e.uls.data.getLanguagesInTerritory=function(t){return e.uls.data.territories[t]};e.uls.data.addLanguage=function(t,n){if(n.target){e.uls.data.languages[t]=[n.target]}else{e.uls.data.languages[t]=[n.script,n.regions,n.autonym]}};e.uls.data.deleteLanguage=function(t){if(e.uls.data.languages[t]){delete e.uls.data.languages[t];return true}return false}})(jQuery);(function(e){"use strict";function r(e,t){var n="െേൈൊോൌெேைொோௌେୈୋୌિਿिিেৈোৌෙේෛොෝෞ";return n.indexOf(t[e.length])<=0}var t,n;t=function(t,n){this.$element=e(t);this.options=e.extend({},e.fn.regionselector.defaults,n);this.$element.addClass("languagefilter");this.resultCount=0;this.$suggestion=this.$element.parents().find("#"+this.$element.data("suggestion"));this.$clear=this.$element.parents().find("#"+this.$element.data("clear"));this.selectedLanguage=null;this.listen()};n=function(){var e=0;return function(t,n){clearTimeout(e);e=setTimeout(t,n)}}();t.prototype={listen:function(){this.$element.on("keypress",e.proxy(this.keyup,this)).on("keyup",e.proxy(this.keyup,this));if(this.eventSupported("keydown")){this.$element.on("keydown",e.proxy(this.keyup,this))}if(this.$clear.length){this.$clear.on("click",e.proxy(this.clear,this))}this.toggleClear()},keyup:function(t){var r,i,s;switch(t.keyCode){case 9:r=this.$suggestion.val();if(r&&r!==this.$element.val()){this.$element.val(r);t.preventDefault();t.stopPropagation()}break;case 13:if(!this.options.onSelect){break}t.preventDefault();t.stopPropagation();i=e.trim(this.$element.val()).toLowerCase();if(this.selectedLanguage){this.options.onSelect(this.selectedLanguage)}else if(this.options.languages[i]){this.options.onSelect(i)}break;default:s=this;if(t.which<32&&t.which!==8){break}this.selectedLanguage=null;n(function(){if(!s.$element.val()){s.clear()}else{s.options.$target.empty();s.search()}},300);this.toggleClear()}},deactivate:function(){this.$element.val("");if(!e.fn.uls.Constructor.prototype.isMobile()){this.$element.focus()}this.toggleClear();this.autofill()},clear:function(){this.deactivate();this.$element.trigger("searchclear.uls")},toggleClear:function(){if(!this.$clear.length){return}if(this.$element.val()){this.$clear.show()}else{this.$clear.hide()}},search:function(){var t,n=e.trim(this.$element.val()),r=e.uls.data.getLanguagesByScriptGroup(this.options.languages),i,s,o;this.resultCount=0;for(i in r){t=r[i];t.sort(e.uls.data.sortByAutonym);for(s=0;s<t.length;s++){o=t[s];if(n===""||this.filter(o,n)){if(this.resultCount===0){this.autofill(o)}if(n.toLowerCase()===o){this.selectedLanguage=o}if(this.render(o)){this.resultCount++}}}}if(!this.resultCount&&this.options.searchAPI&&n){this.searchAPI(n)}else{this.resultHandler(n)}},searchAPI:function(t){var n=this;e.get(n.options.searchAPI,{search:t},function(r){e.each(r.languagesearch,function(e,t){if(n.resultCount===0){n.autofill(e,t)}if(n.render(e)){n.resultCount++}});n.resultHandler(t)})},resultHandler:function(e){if(this.resultCount===0){this.$suggestion.val("");this.$element.trigger("noresults.uls",e)}else{this.$element.trigger("resultsfound.uls",[e,this.resultCount])}},autofill:function(t,n){if(!this.$suggestion.length){return}if(!this.$element.val()){this.$suggestion.val("");return}this.selectedLanguage=t;n=n||this.options.languages[t];if(!n){return}var i,s=this.$element.val(),o=s+n.substring(s.length,n.length);if(o.toLowerCase()!==n.toLowerCase()){i=e.uls.data.getAutonym(t)||"";o=s+i.substring(s.length,i.length);if(o!==i){o=""}}if(!r(s,o)){o=""}this.$suggestion.val(o)},render:function(e){var t=this.options.$target;if(!t){return false}return t.append(e)},escapeRegex:function(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$\|#\s]/g,"\\$&")},filter:function(t,n){var r=new RegExp("^"+this.escapeRegex(n),"i"),i=this.options.languages[t];return r.test(i)||r.test(e.uls.data.getAutonym(t))||r.test(t)||r.test(e.uls.data.getScript(t))},eventSupported:function(e){var t=e in this.$element;if(!t){this.$element.setAttribute(e,"return;");t=typeof this.$element[e]==="function"}return t}};e.fn.languagefilter=function(n){return this.each(function(){var r=e(this),i=r.data("languagefilter"),s=typeof n==="object"&&n;if(!i){r.data("languagefilter",i=new t(this,s))}if(typeof n==="string"){i[n]()}})};e.fn.languagefilter.defaults={$target:null,searchAPI:null,languages:null,onSelect:null};e.fn.languagefilter.Constructor=t})(jQuery);(function(e){"use strict";var t,n;t='<div class="twelve columns uls-no-results-view hide">		<h2 data-i18n="uls-no-results-found" class="eleven columns offset-by-one uls-no-results-found-title">		No results found		</h2>		<div id="uls-no-found-more" class="uls-no-found-more">			<div class="ten columns offset-by-one">				<p>					<span data-i18n="uls-search-help">You can search by language name, 					script name, ISO code of language or 					you can browse by region:</span>					<a class="uls-region-link" data-i18n="uls-region-AM" data-region="AM">America</a>, 					<a class="uls-region-link" data-i18n="uls-region-EU" data-region="EU">Europe</a>, 					<a class="uls-region-link" data-i18n="uls-region-ME" data-region="ME">Middle East</a>, 					<a class="uls-region-link" data-i18n="uls-region-AF" data-region="AF">Africa</a>, 					<a class="uls-region-link" data-i18n="uls-region-AS" data-region="AS">Asia</a>, 					<a class="uls-region-link" data-i18n="uls-region-PA" data-region="PA">Pacific</a>, 					<a class="uls-region-link" data-i18n="uls-region-WW" data-region="WW">Worldwide</a>.				</p>			</div>		</div>	</div>';n=function(n,r){this.$element=e(n);this.options=e.extend({},e.fn.lcd.defaults,r);this.$element.addClass("lcd");this.regionLanguages={};this.renderTimeout=null;this.cachedQuicklist=null;this.$element.append(e(t));this.$noResults=this.$element.children(".uls-no-results-view");this.render();this.listen()};n.prototype={constructor:n,append:function(t,n){var r=this,i,s;if(!this.options.languages[t]){return false}if(n){s=[n]}else{s=e.uls.data.getRegions(t)}if(e.inArray("WW",s)>-1){s=["WW"]}for(i=0;i<s.length;i++){this.regionLanguages[s[i]].push(t)}window.clearTimeout(this.renderTimeout);this.renderTimeout=window.setTimeout(function(){r.renderRegions()},50);return true},render:function(){var t,n=this,r=[],i={WW:"Worldwide",SP:"Special",AM:"America",EU:"Europe",ME:"Middle East",AS:"Asia",AF:"Africa",PA:"Pacific"};r.push(this.buildQuicklist());e.each(e.uls.data.regiongroups,function(s){n.regionLanguages[s]=[];if(e.inArray(s,n.options.showRegions)===-1){return}t=e("<div>").addClass("eleven columns offset-by-one uls-lcd-region-section hide").attr("id",s).append(e("<h3>").attr("data-i18n","uls-region-"+s).addClass("eleven columns uls-lcd-region-title").text(i[s]));r.push(t)});n.$element.append(r);this.i18n()},renderRegions:function(){var t=this,n,r=t.options.itemsPerColumn,i=4;this.$noResults.addClass("hide");this.$element.find(".uls-lcd-region-section").each(function(){var s=e(this),o=s.attr("id");if(s.is("#uls-lcd-quicklist")){return}s.children(".uls-language-block").remove();n=t.regionLanguages[o];if(!n||n.length===0){s.addClass("hide");return}t.renderRegion(s,n,r,i);s.removeClass("hide");t.regionLanguages[o]=[]})},renderRegion:function(t,n,r,i){var s,o,u,a,f,l=n.length,c=[],h=[],p=[];for(s=0;s<l;s++){f=false;a=e.uls.data.getScriptGroupOfLanguage(n[s+1]);o=l-s===1;if(s===0){u=e.uls.data.getScriptGroupOfLanguage(n[s])}else if(u!==a&&c.length>1){f=true}u=a;c.push(this.renderItem(n[s]));if(c.length>=r||o||f){h.push(e("<ul>").addClass("three columns").append(c));c=[];if(h.length>=i||o){p.push(e("<div>").addClass("row uls-language-block").append(h));h=[]}}}t.append(p)},renderItem:function(t){var n,r,i,s;r=this.options.languages[t];i=e.uls.data.getAutonym(t)||r||t;s=document.createElement("li");s.title=r;s.lang=t;s.dir=e.uls.data.getDir(t);s.setAttribute("data-code",t);n=document.createElement("a");n.appendChild(document.createTextNode(i));n.className="autonym";s.appendChild(n);if(this.options.languageDecorator){this.options.languageDecorator(e(n),t)}return s},i18n:function(){this.$element.find("[data-i18n]").i18n()},quicklist:function(){this.$element.find("#uls-lcd-quicklist").removeClass("hide")},buildQuicklist:function(){var t,n,r;if(this.cachedQuicklist!==null){return this.cachedQuicklist}if(e.isFunction(this.options.quickList)){this.options.quickList=this.options.quickList()}if(!this.options.quickList){this.cachedQuicklist=e([]);return this.cachedQuicklist}t=this.options.quickList;t=t.slice(0,16);t.sort(e.uls.data.sortByAutonym);n=e("<div>").addClass("eleven columns offset-by-one uls-lcd-region-section").attr("id","uls-lcd-quicklist");r=e("<h3>").attr("data-i18n","uls-common-languages").addClass("eleven columns uls-lcd-region-title").text("Common languages");n.append(r);this.renderRegion(n,t,4,4);r.i18n();this.cachedQuicklist=n;return this.cachedQuicklist},show:function(){if(!this.regionDivs){this.render()}},empty:function(){this.$element.find("#uls-lcd-quicklist").addClass("hide")},focus:function(){this.$element.focus()},noResults:function(){this.$noResults.removeClass("hide");if(this.$noResults.find(".uls-lcd-region-title").length){return}var e=this.buildQuicklist().clone();e.find("h3").data("i18n","uls-no-results-suggestion-title").text("You may be interested in:").i18n();this.$noResults.find("h2").after(e)},listen:function(){var t=this;if(this.options.clickhandler){this.$element.on("click",".row li",function(){t.options.clickhandler.call(this,e(this).data("code"))})}t.$element.scroll(function(){var n,r,i=e(this),s=i.position().top,o=i.height();r="WW";t.$element.find(".uls-lcd-region-section").each(function(){var t=e(this),n=t.position().top,i=t.height(),u=10;if(n-u<=s&&i>o){r=t.attr("id")}});n=e.uls.data.regiongroups[r];if(!e("#uls-region-"+n).hasClass("active")){e(".regionselector").removeClass("active");e("#uls-region-"+n).addClass("active")}})}};e.fn.lcd=function(t){return this.each(function(){var r=e(this),i=r.data("lcd"),s=typeof t==="object"&&t;if(!i){r.data("lcd",i=new n(this,s))}if(typeof t==="string"){i[t]()}})};e.fn.lcd.defaults={languages:null,showRegions:["WW","AM","EU","ME","AF","AS","PA"],itemsPerColumn:8,languageDecorator:null};e.fn.lcd.Constructor=n})(jQuery);(function(e){"use strict";var t;t=function(t,n){this.$element=e(t);this.options=e.extend({},e.fn.regionselector.defaults,n);this.$element.addClass("regionselector");this.regions=[];this.cache=null;this.regionGroup=this.$element.data("regiongroup");this.init();this.listen()};t.prototype={constructor:t,init:function(){var t=this.$element.data("region");this.regions=e.uls.data.getRegionsInGroup(this.regionGroup);if(t){this.regions.push(t)}},test:function(t){var n,r,i=e.uls.data.getRegions(t);for(r=0;r<this.regions.length;r++){n=this.regions[r];if(e.inArray(n,i)>=0){this.render(t,n);this.cache[t]=n;return}}},show:function(){var t,n,r,i,s,o=this.options.$target&&this.options.$target.$element,u=o&&o.parent(),a=o&&o.prev();if(o&&u){o.detach()}if(this.cache){t=null;for(t in this.cache){this.render(t,this.cache[t])}}else{this.cache={};n=e.uls.data.getLanguagesByScriptGroup(this.options.languages);for(r in e.uls.data.scriptgroups){i=n[r];if(!i){continue}i.sort(e.uls.data.sortByAutonym);for(s=0;s<i.length;s++){this.test(i[s])}}}if(o&&u){if(a){a.after(o)}else{u.append(o)}}if(this.options.success){this.options.success(this)}},render:function(e,t){var n=this.options.$target;if(!n){return}n.append(e,t)},listen:function(){this.$element.on("click",e.proxy(this.click,this))},click:function(){var t,n;if(this.$element.hasClass("active")){return}t=this.options.$target.$element;n=t.find("#"+this.regions[0]);t.scrollTop(n.offset().top-t.offset().top+t.scrollTop());e(".regionselector").removeClass("active");if(this.regionGroup){this.$element.addClass("active")}}};e.fn.regionselector=function(n){return this.each(function(){var r=e(this),i=r.data("regionselector"),s=typeof n==="object"&&n;if(!i){r.data("regionselector",i=new t(this,s))}if(typeof n==="string"){i[n]()}})};e.fn.regionselector.defaults={$target:null,success:null,noresults:null,languages:null};e.fn.regionselector.Constructor=t})(jQuery)

@@ -1,198 +0,0 @@ 

- /**

-  * jQuery region filter plugin.

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- ( function ( $ ) {

- 	'use strict';

- 

- 	/* RegionSelector plugin definition */

- 

- 	var RegionSelector;

- 

- 	/**

- 	 * Region selector is a language selector based on regions.

- 	 * Usage: $( 'jqueryselector' ).regionselector( options );

- 	 * The attached element should have data-regiongroup attribute

- 	 * that defines the regiongroup for the selector.

- 	 */

- 	RegionSelector = function ( element, options ) {

- 		this.$element = $( element );

- 		this.options = $.extend( {}, $.fn.regionselector.defaults, options );

- 		this.$element.addClass( 'regionselector' );

- 		this.regions = [];

- 		this.cache = null;

- 		this.regionGroup = this.$element.data( 'regiongroup' );

- 		this.init();

- 		this.listen();

- 	};

- 

- 	RegionSelector.prototype = {

- 		constructor: RegionSelector,

- 

- 		init: function () {

- 			var region = this.$element.data( 'region' );

- 			this.regions = $.uls.data.getRegionsInGroup( this.regionGroup );

- 

- 			if ( region ) {

- 				this.regions.push( region );

- 			}

- 		},

- 

- 		test: function ( langCode ) {

- 			var region, i,

- 				langRegions = $.uls.data.getRegions( langCode );

- 

- 			for ( i = 0; i < this.regions.length; i++ ) {

- 				region = this.regions[i];

- 

- 				if ( $.inArray( region, langRegions ) >= 0 ) {

- 					this.render( langCode, region );

- 					this.cache[langCode] = region;

- 

- 					return;

- 				}

- 			}

- 		},

- 

- 		show: function () {

- 			var result, languagesByScriptGroup, scriptGroup, languages, i,

- 				$element = this.options.$target && this.options.$target.$element,

- 				$parent = $element && $element.parent(),

- 				$prev = $element && $element.prev();

- 

- 			if ( $element && $parent ) {

- 				// Avoid reflows while adding new elements to the list

- 				// Use .detach() to keep jQuery events and data associated with elements

- 				$element.detach();

- 			}

- 

- 			if ( this.cache ) {

- 				// If the result cache is present, render the results from there.

- 				//noinspection JSUnusedAssignment

- 				result = null;

- 

- 				for ( result in this.cache ) {

- 					this.render( result, this.cache[result] );

- 				}

- 			} else {

- 				this.cache = {};

- 				// Get the languages grouped by script group

- 				languagesByScriptGroup = $.uls.data.getLanguagesByScriptGroup( this.options.languages );

- 

- 				// Make sure that we go by the original order

- 				// of script groups

- 				for ( scriptGroup in $.uls.data.scriptgroups ) {

- 					// Get the languages for the script group

- 					languages = languagesByScriptGroup[scriptGroup];

- 

- 					// It's possible that some script groups are missing

- 					if ( !languages ) {

- 						continue;

- 					}

- 

- 					// Sort it based on autonym

- 					languages.sort( $.uls.data.sortByAutonym );

- 

- 					for ( i = 0; i < languages.length; i++ ) {

- 						// Check whether it belongs to the region

- 						this.test( languages[i] );

- 					}

- 				}

- 			}

- 

- 			if ( $element && $parent ) {

- 				// Restore the element to where we removed it from

- 				if ( $prev ) {

- 					$prev.after( $element );

- 				} else {

- 					$parent.append( $element );

- 				}

- 			}

- 

- 			if ( this.options.success ) {

- 				this.options.success( this );

- 			}

- 		},

- 

- 		render: function ( langCode, region ) {

- 			var $target = this.options.$target;

- 

- 			if ( !$target ) {

- 				return;

- 			}

- 

- 			$target.append( langCode, region );

- 		},

- 

- 		listen: function () {

- 			this.$element.on( 'click', $.proxy( this.click, this ) );

- 		},

- 

- 		click: function () {

- 			var $list, $firstTargetRegion;

- 

- 			// Don't do anything if a region is selected already

- 			if ( this.$element.hasClass( 'active' ) ) {

- 				return;

- 			}

- 

- 			$list = this.options.$target.$element;

- 			$firstTargetRegion = $list.find( '#' + this.regions[0] );

- 

- 			// Scroll to appropriate area

- 			$list.scrollTop(

- 				$firstTargetRegion.offset().top - $list.offset().top + $list.scrollTop()

- 			);

- 

- 			// Make the selected region (and it only) active

- 			$( '.regionselector' ).removeClass( 'active' );

- 

- 			if ( this.regionGroup ) {

- 				// if there is a region group, make it active.

- 				this.$element.addClass( 'active' );

- 			}

- 		}

- 	};

- 

- 	/* RegionSelector plugin definition */

- 

- 	$.fn.regionselector = function ( option ) {

- 		return this.each( function () {

- 			var $this = $( this ),

- 				data = $this.data( 'regionselector' ),

- 				options = typeof option === 'object' && option;

- 

- 			if ( !data ) {

- 				$this.data( 'regionselector', ( data = new RegionSelector( this, options ) ) );

- 			}

- 

- 			if ( typeof option === 'string' ) {

- 				data[option]();

- 			}

- 		} );

- 	};

- 

- 	$.fn.regionselector.defaults = {

- 		$target: null, // Where to render the results

- 		success: null, // callback if any results found.

- 		noresults: null, // callback when no results to show

- 		languages: null

- 	};

- 

- 	$.fn.regionselector.Constructor = RegionSelector;

- } ( jQuery ) );

@@ -10,11 +10,6 @@ 

      <link rel="stylesheet" media="screen" href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,700&amp;subset=latin,latin-ext" />

      <link rel='stylesheet' media="screen" href='https://fonts.googleapis.com/css?family=Montserrat:400,700' />

  

-     <!-- language selector -->

-     <link rel="stylesheet" type="text/css" href="${path}/static/css/jquery.uls.css" />

-     <link rel="stylesheet" type="text/css" href="${path}/static/css/jquery.uls.grid.css" />

-     <link rel="stylesheet" type="text/css" href="${path}/static/css/jquery.uls.lcd.css" />

- 

      <!-- use RTL css for specific languages -->

      <link py:if="lang in ('ar', 'bal', 'fa', 'he')" rel="stylesheet" type="text/css" media="all" href="${path}/static/css/bootstrap-rtl.css" />

  

@@ -92,14 +92,7 @@ 

                      </div>

                      <div class="col-md-3">

                          <div class="widget-body">

-                             <div class="pull-left language-header">

-                               <span class="active uls-trigger lang-dropdown">${_('Change Language')}</span>

-                                 <form action="" method="GET" style="visibility:hidden" id="langSelect" class="lang-dropdown">

-                                   <input type="hidden" name="lang" id="selectedLang" value="" />

-                         <!-- Allow uls script to change language through legacy system -->

-                                   <input type="submit" value="${_('OK')}" />

-                                 </form>

-                               </div>

+                            <xi:include href="../templates/translations.html" />

                          </div>

                      </div>

                  </div> <!-- /row of widgets -->

@@ -25,13 +25,6 @@ 

      <script type="text/javascript" src="${path}/static/js/bootstrap.min.js"></script>

      <script type="text/javascript" src="${path}/static/js/regulations.js"></script>

  

-     <script type="text/javascript" src="${path}/static/js/jquery.uls.data.js"></script>

-     <script type="text/javascript" src="${path}/static/js/jquery.uls.data.utils.js"></script>

-     <script type="text/javascript" src="${path}/static/js/jquery.uls.lcd.js"></script>

-     <script type="text/javascript" src="${path}/static/js/jquery.uls.languagefilter.js"></script>

-     <script type="text/javascript" src="${path}/static/js/jquery.uls.regionfilter.js"></script>

-     <script type="text/javascript" src="${path}/static/js/jquery.uls.core.js"></script>

- 

      <!-- modernizr/detectizr -->

      <script type="text/javascript" src="${path}/static/js/modernizr.js"></script>

      <script type="text/javascript" src="${path}/static/js/detectizr.min.js"></script>
@@ -39,8 +32,6 @@ 

      <!-- FMW custom -->

      <script type="text/javascript" src="${path}/static/js/fmw.js"></script>

  

-     <xi:include href="../templates/translations.html" />

- 

      <!--[if lt IE 9]>

      <script type="text/javascript" src="${path}/static/js/html5shiv.js"></script>

      <script type="text/javascript" src="${path}/static/js/respond.min.js"></script>

@@ -602,7 +602,29 @@ 

    padding-left: 2px;

  }

  .language-header {

-   margin-top: 43px;

+   margin-top: 29px;

+ }

+ .language-menu ul {

+   column-count: 3;

+   column-gap: 3em;

+   margin: 1.5em;

+ }

+ 

+ @media (min-width:992px) {

+   .language-menu {

+     width: 97rem;

+   }

+   .language-menu ul {

+     column-count: 5;

+   }

+ }

+ @media (min-width:1200px) {

+   .language-menu {

+     width: 117rem;

+   }

+   .language-menu ul {

+     column-count: 5;

+   }

  }

  .btn-topmargin {

    margin-top: 10px;

@@ -1,75 +0,0 @@ 

- .uls-compact .uls-icon-close,

- .uls-compact .uls-title-region,

- .uls-compact .uls-map-block,

- .uls-compact #uls-settings-block {

- 	display: none !important;

- }

- 

- .uls-compact.uls-menu {

- 	border-radius: 0;

- }

- 

- .uls-compact .uls-search {

- 	background: white;

- 	border-top: none;

- 	padding: 0.8em 0;

- 	border-bottom-width: 1px;

- 	border-bottom-style: solid;

- 	border-bottom-color: #DDD;

- }

- 

- .uls-compact .uls-filterinput,

- .uls-compact .uls-filterinput:focus {

- 	background-color: transparent;

- 	border: none;

- 	box-shadow: none;

- 	outline: none;

- 	font-size: 18px;

- 	left: 0;

- }

- 

- .uls-compact .uls-language-list {

- 	background: #FCFCFC;

- 	height: 20em;

- }

- 

- .uls-compact .uls-search-label {

- 	background-size: 25px;

- 	height: 26px;

- 	width: 26px;

- 	float: right;

- 	opacity: 0.8;

- }

- 

- .uls-compact .uls-languagefilter-clear {

- 	margin-left: 0;

- }

- 

- .uls-compact .uls-title-region a {

- 	color: #777;

- 	display: inline-block;

- 	margin: 15px 0 5px 19px;

- 	cursor: pointer;

- 	padding: 6px;

- 	text-decoration: none;

- 	font-size: 14px;

- 	border: 1px solid transparent;

- }

- 

- .uls-compact .uls-title-region a:hover {

- 	color: #252525;

- 	background: #F0F0F0;

- 	border: 1px solid #DDD;

- 	border-radius: 3px;

- }

- 

- .uls-compact .uls-title-region a:before {

- 	display: inline-block;

- 	width: 0;

- 	height: 0;

- 	border-right: 4px solid #777;

- 	border-top: 4px solid transparent;

- 	border-bottom: 4px solid transparent;

- 	content: "";

- 	margin: 0 6px 0 0;

- }

@@ -1,260 +0,0 @@ 

- .uls-trigger {

- 	/* @embed */

- 	background: transparent url('/static/images/icon-language.png') no-repeat scroll left center;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/icon-language.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/icon-language.svg');

- 	padding-left: 30px;

- }

- 

- .uls-menu {

- 	position: absolute;

- 	z-index: 1000;

- 	display: none;

- 	margin-top: 1px;

- 	/* Styling */

- 	background-color: #ffffff;

- 	border: 1px solid #ccc;

- 	border: 1px solid rgba(0, 0, 0, 0.2);

- 	border-radius: 5px;

- 	-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);

- 	-moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);

- 	box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);

- 	-webkit-background-clip: padding-box;

- 	-moz-background-clip: padding;

- 	background-clip: padding-box;

- }

- 

- .uls-wide {

- 	min-width: 715px;

- 	width: 45%;

- }

- 

- .uls-title-region a {

- 	padding-left: 15px;

- }

- 

- .uls-menu .uls-title {

- 	font-weight: normal;

- 	border: none;

- 	padding-top: 1.25em;

- 	padding-left: 15px;

- 	padding-bottom: 3px;

- 	font-size: 18pt;

- 	line-height: 1.25em;

- 	color: #555;

- }

- 

- .uls-menu .uls-no-results-found-title {

- 	font-size: 16pt;

- 	font-weight: bold;

- 	line-height: 1.5em;

- 	padding-left: 6px;

- 	padding-top: 10px;

- 	margin-top: 0;

- 	margin-bottom: 15px;

- 	border-bottom: none;

- 	color: #555;

- }

- 

- .uls-menu .uls-lcd-region-section .uls-lcd-region-title {

- 	color: #777;

- 	font-size: 14pt;

- 	font-weight: lighter;

- 	line-height: 1.5em;

- 	padding-left: 0;

- 	margin-top: 0;

- 	margin-bottom: 10px;

- 	border-bottom: none;

- }

- 

- .uls-worldmap {

- 	/* @embed */

- 	background: transparent url('/static/images/world_map.png') no-repeat scroll right top;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/world_map.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/world_map.svg');

- 	background-size: 100%;

- }

- 

- div.uls-region {

- 	cursor: pointer;

- 	padding: 0;

- 	margin: 0;

- 	height: 120px;

- 	border-bottom-color: transparent;

- 	border-bottom-style: solid;

- 	border-bottom-width: 2px;

- }

- 

- .uls-worldmap .uls-region { /* The map doesn't flip */

- 	/* @noflip */

- 	float: left;

- }

- 

- .uls-region a {

- 	bottom: 2px;

- 	left: 2px;

- 	padding: 0;

- 	position: absolute;

- 	font-size: 13px;

- 	line-height: 1.2em;

- 	text-decoration: none;

- 	overflow: hidden;

- 	text-overflow: ellipsis;

- 	width: 99%;

- }

- 

- .uls-region:hover {

- 	/*Cross-browser background transparency*/

- 	background: #3366bb;

- 	background: rgba(51, 102, 187, 0.1);

- 	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#253366bb, endColorstr=#253366bb );

- 	-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#253366bb, endColorstr=#253366bb)";

- }

- 

- .uls-map-block .active {

- 	border-bottom-color: #3366bb;

- 	border-bottom-style: solid;

- }

- 

- .uls-menu .row .uls-map-block {

- 	top: 1px;

- 	margin-right: 0;

- 	padding-right: 0;

- 	float: right;

- 	overflow: hidden;

- 	opacity: 0.7;

- 	-moz-transition: opacity 0.2s linear;

- 	-o-transition: opacity 0.2s linear;

- 	-webkit-transition: opacity 0.2s linear;

- 	transition: opacity 0.2s linear;

- }

- 

- .uls-map-block a {

- 	color: #333;

- 	opacity: 0;

- 	-moz-transition: opacity 0.15s linear;

- 	-o-transition: opacity 0.15s linear;

- 	-webkit-transition: opacity 0.15s linear;

- 	transition: opacity 0.15s linear;

- }

- 

- .uls-menu .uls-map-block:hover,

- .uls-menu .uls-map-block:hover a {

- 	opacity: 1;

- 	color: #333;

- }

- 

- .uls-map-block .uls-region-1 {

- 	border-color: transparent;

- }

- 

- .uls-map-block:hover .active {

- 	border-color: #3366bb;

- }

- 

- .uls-map-block .active a {

- 	font-weight: bold;

- }

- 

- .uls-icon-close {

- 	/* @embed */

- 	background: transparent url('/static/images/close.png') no-repeat scroll center center;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/close.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/close.svg');

- 	float: right;

- 	padding: 15px;

- 	cursor: pointer;

- }

- 

- .uls-menu .uls-languagefilter {

- 	background-color: transparent;

- 	border: 1px solid #c9c9c9;

- 	border-radius: 2px 2px 2px 2px;

- 	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) inset;

- 	color: #333;

- 	display: block;

- 	padding: 6px;

- 	-moz-transition: border 0.15s linear 0s;

- 	-o-transition: border 0.15s linear 0s;

- 	-webkit-transition: border 0.15s linear 0s;

- 	transition: border 0.15s linear 0s;

- }

- 

- .uls-menu .uls-languagefilter:focus {

- 	border: 1px solid #3366bb;

- }

- 

- .uls-menu .uls-search {

- 	position: relative;

- 	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F0F0F0', endColorstr='#FBFBFB');

- 	background: #f8f8f8;

- 	background: -webkit-gradient(linear, left top, left bottom, from(#F0F0F0), to(#FBFBFB));

- 	background: -webkit-linear-gradient(top, #F0F0F0, #FBFBFB);

- 	background: -moz-linear-gradient(top, #F0F0F0, #FBFBFB);

- 	background: -o-linear-gradient(top, #F0F0F0, #FBFBFB);

- 	background: linear-gradient(#F0F0F0, #FBFBFB);

- 	border-top-color: #AAA;

- 	border-top-style: solid;

- 	border-top-width: 1px;

- 	padding: 0.8em 0;

- 	border-bottom-width: 1px;

- 	border-bottom-style: solid;

- 	border-bottom-color: #DDD;

- }

- 

- .uls-menu .uls-search-label {

- 	/* @embed */

- 	background: transparent url('/static/images/search.png') no-repeat scroll right center;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/search.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/search.svg');

- 	background-size: 30px;

- 	height: 32px;

- 	width: 32px;

- 	float: right;

- }

- 

- .uls-menu .uls-languagefilter-clear {

- 	/* @embed */

- 	background: transparent url('/static/images/clear.png') no-repeat scroll left center;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/clear.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/clear.svg');

- 	cursor: pointer;

- 	height: 32px;

- 	position: absolute;

- 	width: 32px;

- 	margin-left: -32px;

- }

- 

- .uls-menu .uls-filterinput {

- 	position: absolute;

- 	top: 0;

- 	left: 0;

- 	font-size: 14px;

- 	height: 32px;

- 	width: 100%;

- 	text-align: left;

- }

- 

- .uls-menu .uls-filtersuggestion {

- 	padding: 6px;

- 	background-color: white;

- 	color: #888;

- 	border: 1px transparent;

- 	border-radius: 2px 2px 2px 2px;

- 	box-shadow: 0 1px 2px transparent inset;

- 	left: 1px;

- }

- 

- .uls-menu .uls-search-input-block {

- 	position: relative;

- }

@@ -1,315 +0,0 @@ 

- /* Generated using Foundation http://foundation.zurb.com/docs/grid.php */

- /* Global Reset & Standards ---------------------- */

- .grid * {

- 	-webkit-box-sizing: border-box;

- 	-moz-box-sizing: border-box;

- 	box-sizing: border-box;

- }

- 

- /* Misc ---------------------- */

- .grid .left {

- 	float: left;

- }

- 

- .grid .right {

- 	float: right;

- }

- 

- .grid .text-left {

- 	text-align: left;

- }

- 

- .grid .text-right {

- 	text-align: right;

- }

- 

- .grid .text-center {

- 	text-align: center;

- }

- 

- .grid .hide {

- 	display: none;

- }

- 

- .grid .highlight {

- 	background: #ffff99;

- }

- 

- /* The Grid ---------------------- */

- .grid .row {

- 	width: 100%;

- 	max-width: none;

- 	min-width: 600px;

- 	margin: 0 auto;

- }

- 

- .grid .row .row {

- 	width: auto;

- 	max-width: none;

- 	min-width: 0;

- 	margin: 0 -5px;

- }

- 

- .grid .row.collapse .column,

- .grid .row.collapse .columns {

- 	padding: 0;

- }

- 

- .grid .row .row {

- 	width: auto;

- 	max-width: none;

- 	min-width: 0;

- 	margin: 0 -5px;

- }

- 

- .grid .row .row.collapse {

- 	margin: 0;

- }

- 

- .grid .column, .grid .columns {

- 	float: left;

- 	min-height: 1px;

- 	padding: 0 5px;

- 	position: relative;

- }

- 

- .grid .column.centered, .grid .columns.centered {

- 	float: none;

- 	margin: 0 auto;

- }

- 

- .grid .row .one {

- 	width: 8.333%;

- }

- 

- .grid .row .two {

- 	width: 16.667%;

- }

- 

- .grid .row .three {

- 	width: 25%;

- }

- 

- .grid .row .four {

- 	width: 33.333%;

- }

- 

- .grid .row .five {

- 	width: 41.667%;

- }

- 

- .grid .row .six {

- 	width: 50%;

- }

- 

- .grid .row .seven {

- 	width: 58.333%;

- }

- 

- .grid .row .eight {

- 	width: 66.667%;

- }

- 

- .grid .row .nine {

- 	width: 75%;

- }

- 

- .grid .row .ten {

- 	width: 83.333%;

- }

- 

- .grid .row .eleven {

- 	width: 91.667%;

- }

- 

- .grid .row .twelve {

- 	width: 100%;

- }

- 

- .grid .row .offset-by-one {

- 	margin-left: 8.333%;

- }

- 

- .grid .row .offset-by-two {

- 	margin-left: 16.667%;

- }

- 

- .grid .row .offset-by-three {

- 	margin-left: 25%;

- }

- 

- .grid .row .offset-by-four {

- 	margin-left: 33.333%;

- }

- 

- .grid .row .offset-by-five {

- 	margin-left: 41.667%;

- }

- 

- .grid .row .offset-by-six {

- 	margin-left: 50%;

- }

- 

- .grid .row .offset-by-seven {

- 	margin-left: 58.333%;

- }

- 

- .grid .row .offset-by-eight {

- 	margin-left: 66.667%;

- }

- 

- .grid .row .offset-by-nine {

- 	margin-left: 75%;

- }

- 

- .grid .row .offset-by-ten {

- 	margin-left: 83.333%;

- }

- 

- .grid .push-two {

- 	left: 16.667%;

- }

- 

- .grid .pull-two {

- 	right: 16.667%;

- }

- 

- .grid .push-three {

- 	left: 25%;

- }

- 

- .grid .pull-three {

- 	right: 25%;

- }

- 

- .grid .push-four {

- 	left: 33.333%;

- }

- 

- .grid .pull-four {

- 	right: 33.333%;

- }

- 

- .grid .push-five {

- 	left: 41.667%;

- }

- 

- .grid .pull-five {

- 	right: 41.667%;

- }

- 

- .grid .push-six {

- 	left: 50%;

- }

- 

- .grid .pull-six {

- 	right: 50%;

- }

- 

- .grid .push-seven {

- 	left: 58.333%;

- }

- 

- .grid .pull-seven {

- 	right: 58.333%;

- }

- 

- .grid .push-eight {

- 	left: 66.667%;

- }

- 

- .grid .pull-eight {

- 	right: 66.667%;

- }

- 

- .grid .push-nine {

- 	left: 75%;

- }

- 

- .grid .pull-nine {

- 	right: 75%;

- }

- 

- .grid .push-ten {

- 	left: 83.333%;

- }

- 

- .grid .pull-ten {

- 	right: 83.333%;

- }

- 

- /* Nicolas Gallagher's micro clearfix */

- .grid .row {

- 	*zoom: 1;

- }

- 

- .grid .row:before, .grid .row:after {

- 	content: "";

- 	display: table;

- }

- 

- .grid .row:after {

- 	clear: both;

- }

- 

- /* Block Grids ---------------------- */

- /* These are 2-up, 3-up, 4-up and 5-up ULs, suited

-  for repeating blocks of content. Add 'mobile' to

-  them to switch them just like the layout grid

-  (one item per line) on phones

- 

-  For IE7/8 compatibility block-grid items need to be

-  the same height. You can optionally uncomment the

-  lines below to support arbitrary height, but know

-  that IE7/8 do not support :nth-child.

-  -------------------------------------------------- */

- .grid .block-grid {

- 	display: block;

- 	overflow: hidden;

- 	padding: 0;

- }

- 

- .grid .block-grid > li {

- 	display: block;

- 	height: auto;

- 	float: left;

- }

- 

- .grid .block-grid.two-up {

- 	margin: 0 -15px;

- }

- 

- .grid .block-grid.two-up > li {

- 	width: 50%;

- 	padding: 0 15px 15px;

- }

- 

- /* .block-grid.two-up>li:nth-child(2n+1) {clear: left;} */

- .grid .block-grid.three-up {

- 	margin: 0 -12px;

- }

- 

- .grid .block-grid.three-up > li {

- 	width: 33.33%;

- 	padding: 0 12px 12px;

- }

- 

- /* .block-grid.three-up>li:nth-child(3n+1) {clear: left;} */

- .grid .block-grid.four-up {

- 	margin: 0 -10px;

- }

- 

- .grid .block-grid.four-up > li {

- 	width: 25%;

- 	padding: 0 10px 10px;

- }

- 

- /* .block-grid.four-up>li:nth-child(4n+1) {clear: left;} */

- .grid .block-grid.five-up {

- 	margin: 0 -8px;

- }

- 

- .grid .block-grid.five-up > li {

- 	width: 20%;

- 	padding: 0 8px 8px;

- }

@@ -1,86 +0,0 @@ 

- .uls-lcd-region-section ul li:hover {

- 	background-color: #eaeff7;

- }

- 

- .uls-lcd-region-section {

- 	margin-top: 10px;

- }

- 

- /* Language list */

- .uls-language-list {

- 	height: 17em;

- 	overflow: auto;

- 	width: auto;

- }

- 

- .uls-language-block ul {

- 	margin: 0 0 1.5em;

- }

- 

- .uls-language-list ul li {

- 	cursor: pointer;

- 	font-weight: normal;

- 	overflow: hidden;

- 	white-space: nowrap;

- 

- 	/*

- 	 * Some languages have long names for various reasons and we still want

- 	 * them to appear on one line.

- 	 * To make it work correctly, the directionality must be set correctly

- 	 * on the item level.

- 	 */

- 	text-overflow: ellipsis;

- 

- 	/*

- 	 * The directionality (ltr/rtl) for each list item is set dynamically

- 	 * as HTML attributes in JavaScript. Setting directionality also applies

- 	 * alignment, but a list with mixed alignment is hard to read.

- 	 * All items are therefore explicitly aligned to the left, including names

- 	 * of right-to-left languages in left-to-right environment and vice versa.

- 	 * As long as the directionality of the item is set correctly, the text

- 	 * is readable.

- 	 */

- 	text-align: left;

- 

- 	/*

- 	 * We don't want any visible bullets in this list.

- 	 */

- 	list-style-image: none;

- 	list-style-type: none;

- }

- 

- .uls-language-list strong {

- 	text-decoration: underline;

- }

- 

- .uls-language-list a {

- 	font-weight: normal;

- 	text-decoration: none;

- 	color: #3366bb;

- 	font-size: 14px;

- 	line-height: 1.6em;

- }

- 

- .uls-language-block {

- 	width: 100%;

- }

- 

- .uls-no-results-view {

- 	color: #555;

- 	height: 100%;

- }

- 

- .uls-no-found-more {

- 	font-size: 0.9em;

- 	background: #F8F8F8;

- 	width: 100%;

- 	margin-top: 1.6em;

- 	line-height: 1.6em;

- 	position: absolute;

- 	bottom: 0;

- 	left: 0;

- }

- 

- .uls-no-found-more a {

- 	cursor: pointer;

- }

@@ -1,319 +0,0 @@ 

- @media only screen and (max-width: 767px) {

- 

- 	.uls-mobile.uls-menu {

- 		width: 95%;

- 		left: 2.5%;

- 	}

- 

- 	.uls-mobile .uls-language-list {

- 		-webkit-overflow-scrolling: touch;

- 	}

- 

- 	.uls-mobile .uls-language-block {

- 		padding-left: 15px !important;

- 	}

- 

- 	.uls-mobile .uls-language-block ul {

- 		min-height: 14em;

- 	}

- 

- 	.uls-mobile .uls-language-block a {

- 		font-size: 16px;

- 		line-height: 1.7em;

- 	}

- 

- 	.uls-mobile div.uls-region {

- 		width: 33% !important;

- 		float: left !important;

- 	}

- 

- 	.uls-mobile .uls-map-block a,

- 	.uls-mobile .uls-map-block {

- 		opacity: 1 !important;

- 	}

- 

- 	.uls-mobile .row {

- 		width: auto;

- 		min-width: 0;

- 		margin-left: 0;

- 		margin-right: 0;

- 	}

- 

- 	.uls-mobile .column,

- 	.uls-mobile .columns {

- 		width: auto !important;

- 		float: none;

- 	}

- 

- 	.uls-mobile .column:last-child,

- 	.uls-mobile .columns:last-child {

- 		float: none;

- 	}

- 

- 	.uls-mobile [class*="column"] + [class*="column"]:last-child {

- 		float: none;

- 	}

- 

- 	.uls-mobile .column:before,

- 	.uls-mobile .uls-mobile .columns:before,

- 	.uls-mobile .column:after,

- 	.columns:after {

- 		content: "";

- 		display: table;

- 	}

- 

- 	.uls-mobile .column:after,

- 	.uls-mobile .columns:after {

- 		clear: both;

- 	}

- 

- 	.uls-mobile .offset-by-one,

- 	.uls-mobile .offset-by-two,

- 	.uls-mobile .offset-by-three,

- 	.uls-mobile .offset-by-four,

- 	.uls-mobile .offset-by-five,

- 	.uls-mobile .offset-by-six,

- 	.uls-mobile .offset-by-seven,

- 	.uls-mobile .offset-by-eight,

- 	.uls-mobile .offset-by-nine,

- 	.uls-mobile .offset-by-ten {

- 		margin-left: 0 !important;

- 	}

- 

- 	.uls-mobile .push-two,

- 	.uls-mobile .push-three,

- 	.uls-mobile .push-four,

- 	.uls-mobile .push-five,

- 	.uls-mobile .push-six,

- 	.uls-mobile .push-seven,

- 	.uls-mobile .push-eight,

- 	.uls-mobile .push-nine,

- 	.uls-mobile .push-ten {

- 		left: auto;

- 	}

- 

- 	.uls-mobile .pull-two,

- 	.uls-mobile .pull-three,

- 	.uls-mobile .pull-four,

- 	.uls-mobile .pull-five,

- 	.uls-mobile .pull-six,

- 	.uls-mobile .pull-seven,

- 	.uls-mobile .pull-eight,

- 	.uls-mobile .pull-nine,

- 	.uls-mobile .pull-ten {

- 		right: auto;

- 	}

- 

- 	/* Mobile 4-column Grid */

- 	.uls-mobile .row .mobile-one {

- 		width: 25% !important;

- 		float: left;

- 		padding: 0 4px;

- 	}

- 

- 	.uls-mobile .row .mobile-one:last-child {

- 		float: right;

- 	}

- 

- 	.uls-mobile .row.collapse .mobile-one {

- 		padding: 0;

- 	}

- 

- 	.uls-mobile .row .mobile-two {

- 		width: 50% !important;

- 		float: left;

- 		padding: 0 4px;

- 	}

- 

- 	.uls-mobile .row .mobile-two:last-child {

- 		float: right;

- 	}

- 

- 	.uls-mobile .row.collapse .mobile-two {

- 		padding: 0;

- 	}

- 

- 	.uls-mobile .row .mobile-three {

- 		width: 75% !important;

- 		float: left;

- 		padding: 0 4px;

- 	}

- 

- 	.uls-mobile .row .mobile-three:last-child {

- 		float: right;

- 	}

- 

- 	.uls-mobile .row.collapse .mobile-three {

- 		padding: 0;

- 	}

- 

- 	.uls-mobile .row .mobile-four {

- 		width: 100% !important;

- 		float: left;

- 		padding: 0 4px;

- 	}

- 

- 	.uls-mobile .row .mobile-four:last-child {

- 		float: right;

- 	}

- 

- 	.uls-mobile .row.collapse .mobile-four {

- 		padding: 0;

- 	}

- 

- 	.uls-mobile .push-one-mobile {

- 		left: 25%;

- 	}

- 

- 	.uls-mobile .pull-one-mobile {

- 		right: 25%;

- 	}

- 

- 	.uls-mobile .push-two-mobile {

- 		left: 50%;

- 	}

- 

- 	.uls-mobile .pull-two-mobile {

- 		right: 50%;

- 	}

- 

- 	.uls-mobile .push-three-mobile {

- 		left: 75%;

- 	}

- 

- 	.uls-mobile .pull-three-mobile {

- 		right: 75%;

- 	}

- }

- 

- /* Visibility Classes ---------------------- */

- /* Standard (large) display targeting */

- .uls-mobile .show-for-small,

- .uls-mobile .show-for-medium,

- .uls-mobile .show-for-medium-down,

- .uls-mobile .hide-for-large,

- .uls-mobile .hide-for-large-up,

- .uls-mobile .show-for-xlarge {

- 	display: none !important;

- }

- 

- .uls-mobile .hide-for-xlarge,

- .uls-mobile .show-for-large,

- .uls-mobile .show-for-large-up,

- .uls-mobile .hide-for-small,

- .uls-mobile .hide-for-medium,

- .uls-mobile .hide-for-medium-down {

- 	display: block !important;

- }

- 

- /* Very large display targeting */

- @media only screen and (min-width: 1441px) {

- 

- 	.uls-mobile .hide-for-small,

- 	.uls-mobile .hide-for-medium,

- 	.uls-mobile .hide-for-medium-down,

- 	.hide-for-large, .show-for-large-up,

- 	.show-for-xlarge {

- 		display: block !important;

- 	}

- 

- 	.show-for-small,

- 	.uls-mobile .show-for-medium,

- 	.uls-mobile .show-for-medium-down,

- 	.uls-mobile .show-for-large,

- 	.uls-mobile .hide-for-large-up,

- 	.uls-mobile .hide-for-xlarge {

- 		display: none !important;

- 	}

- }

- /* Medium display targeting */

- @media only screen and (max-width: 1279px) and (min-width: 768px) {

- 

- 	.uls-mobile .hide-for-small,

- 	.uls-mobile .show-for-medium,

- 	.uls-mobile .show-for-medium-down,

- 	.uls-mobile .hide-for-large,

- 	.uls-mobile .hide-for-large-up,

- 	.uls-mobile .hide-for-xlarge {

- 		display: block !important;

- 	}

- 

- 	.uls-mobile .show-for-small,

- 	.uls-mobile .hide-for-medium,

- 	.uls-mobile .hide-for-medium-down,

- 	.uls-mobile .show-for-large,

- 	.uls-mobile .show-for-large-up,

- 	.uls-mobile .show-for-xlarge {

- 		display: none !important;

- 	}

- }

- /* Small display targeting */

- @media only screen and (max-width: 767px) {

- 

- 	.uls-mobile .show-for-small,

- 	.uls-mobile .hide-for-medium,

- 	.uls-mobile .show-for-medium-down,

- 	.uls-mobile .hide-for-large,

- 	.uls-mobile .hide-for-large-up,

- 	.uls-mobile .hide-for-xlarge {

- 		display: block !important;

- 	}

- 	.uls-mobile .hide-for-small,

- 	.uls-mobile .show-for-medium,

- 	.uls-mobile .hide-for-medium-down,

- 	.uls-mobile .show-for-large,

- 	.uls-mobile .show-for-large-up,

- 	.uls-mobile .show-for-xlarge {

- 		display: none !important;

- 	}

- }

- 

- /* Orientation targeting */

- .uls-mobile .show-for-landscape,

- .uls-mobile .hide-for-portrait {

- 	display: block !important;

- }

- 

- .uls-mobile .hide-for-landscape,

- .uls-mobile .show-for-portrait {

- 	display: none !important;

- }

- 

- @media screen and (orientation: landscape) {

- 	.uls-mobile .show-for-landscape,

- 	.uls-mobile .hide-for-portrait {

- 		display: block !important;

- 	}

- 	.uls-mobile .hide-for-landscape,

- 	.uls-mobile .show-for-portrait {

- 		display: none !important;

- 	}

- }

- 

- @media screen and (orientation: portrait) {

- 	.uls-mobile .show-for-portrait,

- 	.uls-mobile .hide-for-landscape {

- 		display: block !important;

- 	}

- 	.uls-mobile .hide-for-portrait,

- 	.uls-mobile .show-for-landscape {

- 		display: none !important;

- 	}

- }

- 

- /* Touch-enabled device targeting */

- .uls-mobile .show-for-touch {

- 	display: none !important;

- }

- 

- .uls-mobile .hide-for-touch {

- 	display: block !important;

- }

- 

- .uls-mobile .touch .show-for-touch {

- 	display: block !important;

- }

- 

- .uls-mobile .touch .hide-for-touch {

- 	display: none !important;

- }

@@ -1,444 +0,0 @@ 

- /**

-  * Universal Language Selector

-  * ULS core component.

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- ( function ( $ ) {

- 	'use strict';

- 

- 	var template, ULS;

- 

- 	// Region numbers in id attributes also appear in the langdb.

- 	/*jshint multistr:true */

- 	template = '<div class="grid uls-menu uls-wide"> \

- 			<div class="row"> \

- 				<span id="uls-close" class="uls-icon-close"></span> \

- 			</div> \

- 			<div class="row"> \

- 				<div class="uls-title-region seven columns">\

- 					<h1 data-i18n="uls-select-language" class="uls-title">Select Language</h1>\

- 				</div>\

- 				<div class="five columns uls-map-block" id="uls-map-block">\

- 					<div class="row">\

- 						<div data-regiongroup="1" id="uls-region-1" class="three columns uls-region uls-region-1">\

- 							<a data-i18n="uls-region-WW">Worldwide</a>\

- 						</div>\

- 						<div class="nine columns">\

- 							<div class="row uls-worldmap">\

- 								<div data-regiongroup="2" id="uls-region-2" class="four columns uls-region">\

- 									<a data-i18n="uls-region-AM">America</a>\

- 								</div>\

- 								<div data-regiongroup="3" id="uls-region-3" class="four columns uls-region">\

- 									<a><span data-i18n="uls-region-EU">Europe</span><br>\

- 									<span data-i18n="uls-region-ME">Middle East</span><br>\

- 									<span data-i18n="uls-region-AF">Africa</span></a>\

- 								</div>\

- 								<div data-regiongroup="4" id="uls-region-4" class="four columns uls-region">\

- 									<a><span data-i18n="uls-region-AS">Asia</span><br>\

- 									<span data-i18n="uls-region-PA">Pacific</span></a>\

- 								</div>\

- 							</div>\

- 						</div>\

- 					</div>\

- 				</div>\

- 			</div>\

- 			<div id="search" class="row uls-search"> \

- 				<div class="one column">\

- 					<span class="uls-search-label"></span>\

- 				</div>\

- 				<div class="ten columns">\

- 					<div id="uls-search-input-block" class="uls-search-input-block">\

- 						<input type="text" class="uls-filterinput uls-filtersuggestion" id="uls-filtersuggestion" disabled="true"\

- 							autocomplete="off" /> <input type="text" class="uls-filterinput uls-languagefilter" id="uls-languagefilter"\

- 							data-clear="uls-languagefilter-clear" data-suggestion="uls-filtersuggestion"\

- 							placeholder="Language search" autocomplete="off" />\

- 					</div>\

- 				</div>\

- 				<div class="one column">\

- 					<span id="uls-languagefilter-clear" class="uls-languagefilter-clear"></span>\

- 				</div>\

- 			</div>\

- 			<div class="row uls-language-list"></div>\

- 			<div class="row" id="uls-settings-block"></div>\

- 		</div>';

- 	/*jshint multistr:false */

- 

- 	/**

- 	 * ULS Public class definition

- 	 */

- 	ULS = function ( element, options ) {

- 		this.$element = $( element );

- 		this.options = $.extend( {}, $.fn.uls.defaults, options );

- 		this.$menu = $( template );

- 		this.languages = this.options.languages;

- 

- 		for ( var code in this.languages ) {

- 			if ( $.uls.data.languages[code] === undefined ) {

- 				// Language is unknown to ULS.

- 				delete this.languages[code];

- 			}

- 		}

- 

- 		this.left = this.options.left;

- 		this.top = this.options.top;

- 		this.shown = false;

- 		this.initialized = false;

- 

- 		this.$languageFilter = this.$menu.find( '#uls-languagefilter' );

- 		this.$regionFilters = this.$menu.find( '.uls-region' );

- 		this.$resultsView = this.$menu.find( 'div.uls-language-list' );

- 

- 		this.render();

- 		this.listen();

- 		this.ready();

- 	};

- 

- 	ULS.prototype = {

- 		constructor: ULS,

- 

- 		/**

- 		 * A "hook" that runs after the ULS constructor.

- 		 * At this point it is not guaranteed that the ULS has its dimensions

- 		 * and that the languages lists are initialized.

- 		 *

- 		 * To use it, pass a function as the onReady parameter

- 		 * in the options when initializing ULS.

- 		 */

- 		ready: function () {

- 			if ( this.options.onReady ) {

- 				this.options.onReady.call( this );

- 			}

- 		},

- 

- 		/**

- 		 * A "hook" that runs after the ULS panel becomes visible

- 		 * by using the show method.

- 		 *

- 		 * To use it, pass a function as the onVisible parameter

- 		 * in the options when initializing ULS.

- 		 */

- 		visible: function () {

- 			if ( this.options.onVisible ) {

- 				this.options.onVisible.call( this );

- 			}

- 		},

- 

- 		/**

- 		 * Calculate the position of ULS

- 		 * Returns an object with top and left properties.

- 		 * @returns {Object}

- 		 * position is set by setting also window height and margin

- 		 */

- 		position: function () {

- 			var pos = $.extend( {}, this.$element.offset(), {

- 				height: this.$element[0].offsetHeight

- 			} );

- 			return {

- 				top: this.top !== undefined ? this.top : pos.top - (447+10),

- 				left: this.left !== undefined ? this.left : '25%'

- 			};

- 		},

- 

- 		/**

- 		 * Show the ULS window

- 		 */

- 		show: function () {

- 			this.$menu.css( this.position() );

- 

- 			if ( this.options.compact ) {

- 				this.$menu.addClass( 'uls-compact' );

- 			}

- 

- 			if ( !this.initialized ) {

- 				$( 'body' ).prepend( this.$menu );

- 				this.i18n();

- 

- 				// Initialize with a full search.

- 				// This happens on first time click of uls trigger.

- 				this.defaultSearch();

- 

- 				this.initialized = true;

- 			}

- 

- 			// hide any other visible ULS

- 			$( '.uls-menu' ).hide();

- 

- 			this.$menu.show();

- 			this.$menu.scrollIntoView();

- 			this.shown = true;

- 

- 			if ( !this.isMobile() ) {

- 				this.$languageFilter.focus();

- 			}

- 

- 			this.visible();

- 		},

- 

- 		i18n: function () {

- 			if ( $.i18n ) {

- 				this.$menu.find( '[data-i18n]' ).i18n();

- 				this.$languageFilter.prop( 'placeholder', $.i18n( 'uls-search-placeholder' ) );

- 			}

- 		},

- 

- 		defaultSearch: function () {

- 			this.$resultsView.lcd( 'empty' );

- 

- 			this.$regionFilters.regionselector( 'show' );

- 		},

- 

- 		/**

- 		 * Hide the ULS window

- 		 */

- 		hide: function () {

- 			this.$menu.hide();

- 			this.shown = false;

- 		},

- 

- 		/**

- 		 * Render the UI elements.

- 		 * Does nothing by default. Can be used for customization.

- 		 */

- 		render: function () {

- 			// Rendering stuff here

- 		},

- 

- 		/**

- 		 * Callback for no results found context.

- 		 */

- 		noresults: function () {

- 			$( '.regionselector' ).removeClass( 'active' );

- 			this.$resultsView.lcd( 'noResults' );

- 		},

- 

- 		/**

- 		 * callback for results found context.

- 		 */

- 		success: function () {

- 			$( '.regionselector' ).removeClass( 'active' );

- 			this.$resultsView.show();

- 		},

- 

- 		/**

- 		 * Bind the UI elements with their event listeners

- 		 */

- 		listen: function () {

- 			var lcd,

- 				uls = this;

- 

- 			// Register all event listeners to the ULS here.

- 			this.$element.on( 'click', $.proxy( this.click, this ) );

- 

- 			this.$languageFilter.on( 'searchclear.uls', $.proxy( this.defaultSearch, this ) );

- 			this.$languageFilter.on( 'noresults.uls', $.proxy( this.noresults, this ) );

- 			this.$languageFilter.on( 'resultsfound.uls', $.proxy( this.success, this ) );

- 

- 			// Close when clicking on the close button

- 			this.$menu.find( '#uls-close' ).on( 'click', $.proxy( this.cancel, this ) );

- 			// Don't do anything if pressing on empty space in the ULS

- 			this.$menu.on( 'click', function ( e ) {

- 				e.stopPropagation();

- 			} );

- 

- 			// Handle key press events on the menu

- 			this.$menu.on( 'keypress', $.proxy( this.keypress, this ) )

- 				.on( 'keyup', $.proxy( this.keyup, this ) );

- 

- 			if ( this.eventSupported( 'keydown' ) ) {

- 				this.$menu.on( 'keydown', $.proxy( this.keypress, this ) );

- 			}

- 

- 			lcd = this.$resultsView.lcd( {

- 				languages: this.languages,

- 				quickList: this.options.quickList,

- 				clickhandler: $.proxy( this.select, this ),

- 				source: this.$languageFilter,

- 				showRegions: this.options.showRegions,

- 				languageDecorator: this.options.languageDecorator

- 			} ).data( 'lcd' );

- 

- 			this.$languageFilter.languagefilter( {

- 				$target: lcd,

- 				languages: this.languages,

- 				searchAPI: this.options.searchAPI,

- 				onSelect: $.proxy( this.select, this )

- 			} );

- 

- 			// Create region selectors, one per region

- 			this.$menu.find( '.uls-region, .uls-region-link' ).regionselector( {

- 				$target: lcd,

- 				languages: this.languages,

- 				success: function ( regionfilter ) {

- 					// Deactivate search filtering

- 					uls.$languageFilter.languagefilter( 'deactivate' );

- 

- 					// If it is the WW region, show the quicklist

- 					if ( regionfilter.regionGroup === 1 ) {

- 						lcd.quicklist();

- 					}

- 

- 					// Show 'results view' if we are in no results mode

- 					uls.success();

- 				},

- 				noresults: function () {

- 					uls.$languageFilter.languagefilter( 'clear' );

- 				}

- 			} );

- 

- 			$( 'html' ).click( $.proxy( this.cancel, this ) );

- 		},

- 

- 		/**

- 		 * On select handler for search results

- 		 * @param langCode

- 		 */

- 		select: function ( langCode ) {

- 			this.hide();

- 			this.$languageFilter.trigger( 'searchclear' );

- 			if ( this.options.onSelect ) {

- 				this.options.onSelect.call( this, langCode );

- 			}

- 		},

- 

- 		/**

- 		 * On cancel handler for the uls menu

- 		 */

- 		cancel: function () {

- 			this.hide();

- 

- 			if ( this.options.onCancel ) {

- 				this.options.onCancel.call( this );

- 			}

- 		},

- 

- 		keyup: function ( e ) {

- 			if ( !this.shown ) {

- 				return;

- 			}

- 

- 			if ( e.keyCode === 27 ) { // escape

- 				this.cancel();

- 				e.preventDefault();

- 				e.stopPropagation();

- 			}

- 		},

- 

- 		keypress: function ( e ) {

- 			if ( !this.shown ) {

- 				return;

- 			}

- 

- 			if ( e.keyCode === 27 ) { // escape

- 				this.cancel();

- 				e.preventDefault();

- 				e.stopPropagation();

- 			}

- 		},

- 

- 		click: function ( e ) {

- 			e.stopPropagation();

- 			e.preventDefault();

- 

- 			if ( this.shown ) {

- 				this.hide();

- 			} else {

- 				this.show();

- 			}

- 		},

- 

- 		eventSupported: function ( eventName ) {

- 			var isSupported = eventName in this.$menu;

- 

- 			if ( !isSupported ) {

- 				this.$element.setAttribute( eventName, 'return;' );

- 				isSupported = typeof this.$element[eventName] === 'function';

- 			}

- 

- 			return isSupported;

- 		},

- 

- 		isMobile: function () {

- 			return navigator.userAgent.match( /(iPhone|iPod|iPad|Android|BlackBerry)/ );

- 		}

- 	};

- 

- 	/* ULS PLUGIN DEFINITION

- 	 * =========================== */

- 

- 	$.fn.uls = function ( option ) {

- 		return this.each( function () {

- 			var $this = $( this ),

- 				data = $this.data( 'uls' ),

- 				options = typeof option === 'object' && option;

- 

- 			if ( !data ) {

- 				$this.data( 'uls', ( data = new ULS( this, options ) ) );

- 			}

- 

- 			if ( typeof option === 'string' ) {

- 				data[option]();

- 			}

- 		} );

- 	};

- 

- 	$.fn.uls.defaults = {

- 		onSelect: null, // Callback function to be called when a language is selected

- 		searchAPI: null, // Language search API

- 		languages: $.uls.data.getAutonyms(), // Languages to be used for ULS, default is all languages

- 		quickList: null, // Array of language codes or function that returns such

- 		compact: false, // Show ULS in compact mode

- 		showRegions: [ 'WW', 'AM', 'EU', 'ME', 'AF', 'AS', 'PA' ],

- 		languageDecorator: null // Callback function to be called when a language link is prepared - for custom decoration.

- 	};

- 

- 	// Define a dummy i18n function, if jquery.i18n not integrated.

- 	if ( !$.fn.i18n ) {

- 		$.fn.i18n = function () {};

- 	}

- 

- 	/*

- 	 * Simple scrollIntoView plugin.

- 	 * Scrolls the element to the viewport smoothly if it is not already.

- 	 */

- 	$.fn.scrollIntoView = function () {

- 		return this.each( function () {

- 			var scrollPosition,

- 				$window = $( window ),

- 				windowHeight = $window.height(),

- 				windowTop = $window.scrollTop(),

- 				windowBottom = windowTop + windowHeight,

- 				$element = $( this ),

- 				panelHeight = $element.height(),

- 				panelTop = $element.offset().top,

- 				panelBottom = panelTop + panelHeight;

- 

- 			if ( ( panelTop < windowTop ) || ( panelBottom > windowBottom ) ) {

- 				if ( windowTop > panelTop ) {

- 					scrollPosition = panelTop;

- 				} else {

- 					scrollPosition = panelBottom - windowHeight;

- 				}

- 				$( 'html, body' ).stop().animate( {

- 					scrollTop: scrollPosition

- 				}, 500 );

- 			}

- 		} );

- 	};

- 

- 	$.fn.uls.Constructor = ULS;

- }( jQuery ) );

@@ -1,7 +0,0 @@ 

- // Please do not edit. This file is generated from data/langdb.yaml by ulsdata2json.php

- ( function ( $ ) {

- 	'use strict';

- 	$.uls = $.uls || {};

- 	//noinspection JSHint

- 	$.uls.data = {"languages":{"aa":["Latn",["AF"],"Qafár af"],"ab":["Cyrl",["EU"],"Аҧсшәа"],"ace":["Latn",["AS","PA"],"Acèh"],"ady":["Cyrl",["EU","ME"],"Адыгэбзэ"],"ady-cyrl":["ady"],"ady-latn":["Latn",["EU","ME"],"Adygabze"],"aeb":["Arab",["AF"],"زَوُن"],"af":["Latn",["AF"],"Afrikaans"],"ahr":["Deva",["AS"],"अहिराणी"],"ak":["Latn",["AF"],"Akan"],"akz":["Latn",["AM"],"Albaamo innaaɬiilka"],"aln":["Latn",["EU"],"Gegë"],"am":["Ethi",["AF"],"አማርኛ"],"an":["Latn",["EU"],"aragonés"],"ang":["Latn",["EU"],"Ænglisc"],"anp":["Deva",["AS"],"अङ्गिका"],"ar":["Arab",["ME"],"العربية"],"arc":["Syrc",["ME"],"ܐܪܡܝܐ"],"arn":["Latn",["AM"],"mapudungun"],"aro":["Latn",["AM"],"Araona"],"arq":["Arab",["AF"],"جازايرية"],"ary":["Latn",["ME"],"Maġribi"],"arz":["Arab",["ME"],"مصرى"],"as":["Beng",["AS"],"অসমীয়া"],"ase":["Sgnw",["AM"],"American sign language"],"ast":["Latn",["EU"],"asturianu"],"av":["Cyrl",["EU"],"авар"],"avk":["Latn",["WW"],"Kotava"],"ay":["Latn",["AM"],"Aymar aru"],"az":["az-latn"],"az-latn":["Latn",["EU","ME"],"azərbaycanca"],"az-arab":["Arab",["EU","ME"],"آذربايجانجا"],"az-cyrl":["Latn",["EU","ME"],"азәрбајҹанҹа"],"azb":["az-arab"],"ba":["Cyrl",["EU"],"башҡортса"],"bar":["Latn",["EU"],"Boarisch"],"bat-smg":["sgs"],"bbc-latn":["Latn",["AS"],"Batak Toba"],"bbc-batk":["Batk",["AS"],"Batak Toba"],"bbc":["Latn",["AS"],"Batak Toba"],"bcc":["Arab",["AS","ME"],"بلوچی مکرانی"],"bcl":["Latn",["AS"],"Bikol Central"],"be-tarask":["Cyrl",["EU"],"беларуская (тарашкевіца)"],"be-x-old":["be-tarask"],"be":["Cyrl",["EU"],"беларуская"],"bew":["Latn",["AS"],"Bahasa Betawi"],"bfq":["Taml",["AS"],"படகா"],"bg":["Cyrl",["EU"],"български"],"bh":["Deva",["AS"],"भोजपुरी"],"bho":["Deva",["AS"],"भोजपुरी"],"bi":["Latn",["PA"],"Bislama"],"bjn":["Latn",["AS"],"Bahasa Banjar"],"bm":["Latn",["AF"],"bamanankan"],"bn":["Beng",["AS"],"বাংলা"],"bo":["Tibt",["AS"],"བོད་ཡིག"],"bpy":["Beng",["AS"],"বিষ্ণুপ্রিয়া মণিপুরী"],"bqi":["Arab",["ME"],"بختياري"],"br":["Latn",["EU"],"brezhoneg"],"brh":["Latn",["ME","AS"],"Bráhuí"],"brx":["Deva",["AS"],"बड़ो"],"bs":["Latn",["EU"],"bosanski"],"bto":["Latn",["AS"],"Iriga Bicolano"],"bug":["Bugi",["AS"],"ᨅᨔ ᨕᨘᨁᨗ"],"bxr":["Cyrl",["AS"],"буряад"],"ca":["Latn",["EU"],"català"],"cbk-zam":["Latn",["AS"],"Chavacano de Zamboanga"],"cdo":["Latn",["AS"],"Mìng-dĕ̤ng-ngṳ̄"],"ce":["Cyrl",["EU"],"нохчийн"],"ceb":["Latn",["AS"],"Cebuano"],"ch":["Latn",["PA"],"Chamoru"],"cho":["Latn",["AM"],"Choctaw"],"chr":["Cher",["AM"],"ᏣᎳᎩ"],"chy":["Latn",["AM"],"Tsetsêhestâhese"],"ckb":["Arab",["ME"],"کوردی"],"co":["Latn",["EU"],"corsu"],"cps":["Latn",["AS"],"Capiceño"],"cr":["Cans",["AM"],"ᓀᐦᐃᔭᐍᐏᐣ"],"cr-cans":["cr"],"cr-latn":["Latn",["AM"],"Nēhiyawēwin"],"crh":["Latn",["EU"],"qırımtatarca"],"crh-cyrl":["Cyrl",["EU"],"къырымтатарджа"],"crh-latn":["crh"],"cs":["Latn",["EU"],"česky"],"csb":["Latn",["EU"],"kaszëbsczi"],"cu":["Cyrl",["EU"],"словѣньскъ \/ ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ"],"cv":["Cyrl",["EU"],"Чӑвашла"],"cy":["Latn",["EU"],"Cymraeg"],"da":["Latn",["EU"],"dansk"],"de-at":["Latn",["EU"],"Österreichisches Deutsch"],"de-formal":["Latn",["EU"],"Deutsch (Sie-Form)"],"de":["Latn",["EU"],"Deutsch"],"diq":["Latn",["EU","AS"],"Zazaki"],"dsb":["Latn",["EU"],"dolnoserbski"],"dtp":["Latn",["AS"],"Dusun Bundu-liwan"],"dv":["Thaa",["AS"],"ދިވެހިބަސް"],"dz":["Tibt",["AS"],"ཇོང་ཁ"],"ee":["Latn",["AF"],"eʋegbe"],"egl":["Latn",["EU"],"Emiliàn"],"el":["Grek",["EU"],"Ελληνικά"],"eml":["Latn",["EU"],"emiliàn e rumagnòl"],"en-ca":["Latn",["AM"],"Canadian English"],"en-gb":["Latn",["EU","AS","PA"],"British English"],"en":["Latn",["EU","AM","AF","ME","AS","PA","WW"],"English"],"eo":["Latn",["WW"],"Esperanto"],"es-419":["Latn",["AM"],"español de America Latina"],"es-formal":["Latn",["EU","AM","AF","WW"],"español (formal)"],"es":["Latn",["EU","AM","AF","WW"],"español"],"esu":["Latn",["AM"],"Yup'ik"],"et":["Latn",["EU"],"eesti"],"eu":["Latn",["EU"],"euskara"],"ext":["Latn",["EU"],"estremeñu"],"fa":["Arab",["ME"],"فارسی"],"ff":["Latn",["AF"],"Fulfulde"],"fi":["Latn",["EU"],"suomi"],"fil":["tl"],"fit":["Latn",["EU"],"meänkieli"],"fiu-vro":["vro"],"fj":["Latn",["PA"],"Na Vosa Vakaviti"],"fo":["Latn",["EU"],"føroyskt"],"fr":["Latn",["EU","AM","WW"],"français"],"frc":["Latn",["AM"],"français cadien"],"frp":["Latn",["EU"],"arpetan"],"frr":["Latn",["EU"],"Nordfriisk"],"fur":["Latn",["EU"],"furlan"],"fy":["Latn",["EU"],"Frysk"],"ga":["Latn",["EU"],"Gaeilge"],"gag":["Latn",["EU"],"Gagauz"],"gah":["Latn",["AS"],"Alekano"],"gan-hans":["Hans",["AS"],"赣语(简体)"],"gan-hant":["gan"],"gan":["Hant",["AS"],"贛語"],"gbz":["Latn",["AS"],"Dari"],"gcf":["Latn",["AM"],"Guadeloupean Creole French"],"gd":["Latn",["EU"],"Gàidhlig"],"gl":["Latn",["EU"],"galego"],"glk":["Arab",["ME"],"گیلکی"],"gn":["Latn",["AM"],"Avañe'ẽ"],"gom":["Deva",["AS"],"कोंकणी"],"gom-deva":["gom"],"gom-latn":["Latn",["AS"],"Konknni"],"got":["Goth",["EU"],"𐌲𐌿𐍄𐌹𐍃𐌺"],"grc":["Grek",["EU"],"Ἀρχαία ἑλληνικὴ"],"gsw":["Latn",["EU"],"Alemannisch"],"gu":["Gujr",["AS"],"ગુજરાતી"],"guc":["Latn",["AM"],"Wayúu"],"gur":["Latn",["AF"],"Gurenɛ"],"gv":["Latn",["EU"],"Gaelg"],"ha-arab":["Arab",["AF"],"هَوُسَ"],"ha-latn":["Latn",["AF"],"Hausa"],"ha":["ha-latn"],"hak":["Latn",["AS"],"Hak-kâ-fa"],"haw":["Latn",["AM","PA"],"Hawai`i"],"he":["Hebr",["ME"],"עברית"],"hi":["Deva",["AS"],"हिन्दी"],"hif":["Latn",["PA","AS"],"Fiji Hindi"],"hif-deva":["Deva",["AS"],"फ़ीजी हिन्दी"],"hif-latn":["hif"],"hil":["Latn",["AS"],"Ilonggo"],"hne":["Deva",["AS"],"छत्तीसगढ़ी"],"ho":["Latn",["PA"],"Hiri Motu"],"hr":["Latn",["EU"],"hrvatski"],"hsb":["Latn",["EU"],"hornjoserbsce"],"hsn":["Hans",["AS"],"湘语"],"ht":["Latn",["AM"],"Kreyòl ayisyen"],"hu-formal":["Latn",["EU"],"Magyar (magázó)"],"hu":["Latn",["EU"],"magyar"],"hy":["Armn",["EU","ME"],"Հայերեն"],"hz":["Latn",["AF"],"Otsiherero"],"ia":["Latn",["WW"],"interlingua"],"id":["Latn",["AS"],"Bahasa Indonesia"],"ie":["Latn",["WW"],"Interlingue"],"ig":["Latn",["AF"],"Igbo"],"ii":["Yiii",["AS"],"ꆇꉙ"],"ik":["Latn",["AM"],"Iñupiak"],"ike-cans":["Cans",["AM"],"ᐃᓄᒃᑎᑐᑦ"],"ike-latn":["Latn",["AM"],"inuktitut"],"ilo":["Latn",["AS"],"Ilokano"],"inh":["Cyrl",["EU"],"ГӀалгӀай"],"io":["Latn",["WW"],"Ido"],"is":["Latn",["EU"],"íslenska"],"it":["Latn",["EU"],"italiano"],"iu":["Cans",["AM"],"ᐃᓄᒃᑎᑐᑦ"],"ja":["Jpan",["AS"],"日本語"],"jam":["Latn",["AM"],"Patois"],"jbo":["Latn",["WW"],"lojban"],"jut":["Latn",["EU"],"jysk"],"jv":["Latn",["AS","PA"],"Basa Jawa"],"jv-java":["Java",["AS","PA"],"ꦧꦱꦗꦮ"],"ka":["Geor",["EU"],"ქართული"],"kaa":["Latn",["AS"],"Qaraqalpaqsha"],"kab":["Latn",["AF","EU"],"Taqbaylit"],"kbd-cyrl":["kbd"],"kbd-latn":["Latn",["EU"],"Qabardjajəbza"],"kbd":["Cyrl",["EU","ME"],"Адыгэбзэ"],"kea":["Latn",["AF"],"Kabuverdianu"],"kg":["Latn",["AF"],"Kongo"],"kgp":["Latn",["AM"],"Kaingáng"],"khw":["Arab",["ME","AS"],"کھوار"],"ki":["Latn",["AF"],"Gĩkũyũ"],"kiu":["Latn",["EU","ME"],"Kırmancki"],"kj":["Latn",["AF"],"Kwanyama"],"kjh":["Cyrl",["AS"],"хакас"],"kk":["kk-cyrl"],"kk-arab":["Arab",["EU","AS"],"قازاقشا (تٶتە)"],"kk-cn":["kk-arab"],"kk-cyrl":["Cyrl",["EU","AS"],"қазақша"],"kk-kz":["kk-cyrl"],"kk-latn":["Latn",["EU","AS","ME"],"qazaqşa"],"kk-tr":["kk-latn"],"kl":["Latn",["AM","EU"],"kalaallisut"],"km":["Khmr",["AS"],"ភាសាខ្មែរ"],"kn":["Knda",["AS"],"ಕನ್ನಡ"],"ko-kp":["Kore",["AS"],"한국어 (조선)"],"ko":["Kore",["AS"],"한국어"],"koi":["Cyrl",["EU"],"Перем Коми"],"kr":["Latn",["AF"],"Kanuri"],"krc":["Cyrl",["EU"],"къарачай-малкъар"],"kri":["Latn",["AF"],"Krio"],"krj":["Latn",["ME","EU"],"Kinaray-a"],"krl":["Latn",["EU"],"Karjala"],"ks-arab":["Arab",["AS"],"کٲشُر"],"ks-deva":["Deva",["AS"],"कॉशुर"],"ks":["Arab",["AS"],"کٲشُر"],"ksf":["Latn",["AF"],"Bafia"],"ksh":["Latn",["EU"],"Ripoarisch"],"ku":["ku-latn"],"ku-arab":["Arab",["EU","ME"],"كوردي"],"ku-latn":["Latn",["EU","ME"],"Kurdî"],"kv":["Cyrl",["EU"],"коми"],"kw":["Latn",["EU"],"kernowek"],"ky":["Cyrl",["AS"],"Кыргызча"],"la":["Latn",["EU"],"Latina"],"lad":["lad-latn"],"lad-latn":["Latn",["ME","EU","AM"],"Ladino"],"lad-hebr":["Hebr",["ME","EU","AM"],"לאדינו"],"lb":["Latn",["EU"],"Lëtzebuergesch"],"lbe":["Cyrl",["EU"],"лакку"],"lez":["Cyrl",["EU"],"лезги"],"lfn":["Latn",["WW"],"Lingua Franca Nova"],"lg":["Latn",["AF"],"Luganda"],"li":["Latn",["EU"],"Limburgs"],"lij":["Latn",["EU"],"Ligure"],"liv":["Latn",["EU"],"Līvõ kēļ"],"lld":["Latn",["EU"],"Ladin"],"lmo":["Latn",["EU"],"lumbaart"],"ln":["Latn",["AF"],"lingála"],"lo":["Laoo",["AS"],"ລາວ"],"loz":["Latn",["AF"],"Silozi"],"lt":["Latn",["EU"],"lietuvių"],"lrc":["Arab",["AS"],"لوری"],"ltg":["Latn",["EU"],"latgaļu"],"lud":["Latn",["EU"],"lüüdi"],"lus":["Latn",["AS"],"Mizo ţawng"],"lut":["Latn",["AM"],"dxʷləšucid"],"lv":["Latn",["EU"],"latviešu"],"lzh":["Hant",["AS"],"文言"],"lzz":["Latn",["EU","ME"],"Lazuri"],"mai":["Deva",["AS"],"मैथिली"],"map-bms":["Latn",["AS"],"Basa Banyumasan"],"mdf":["Cyrl",["EU"],"мокшень"],"mfe":["Latn",["AM"],"Morisyen"],"mg":["Latn",["AF"],"Malagasy"],"mh":["Latn",["PA"],"Ebon"],"mhr":["Cyrl",["EU"],"олык марий"],"mi":["Latn",["PA"],"Māori"],"mic":["Latn",["AM"],"Mi'kmaq"],"min":["Latn",["AS"],"Baso Minangkabau"],"mk":["Cyrl",["EU"],"македонски"],"ml":["Mlym",["AS","ME"],"മലയാളം"],"mn":["Cyrl",["AS"],"монгол"],"mnc":["Mong",["AS"],"ᠮᠠᠨᠵᡠ ᡤᡳᠰᡠᠨ"],"mni":["Beng",["AS"],"মেইতেই লোন্"],"mnw":["Mymr",["AS"],"ဘာသာ မန်"],"mo":["Cyrl",["EU"],"молдовеняскэ"],"mr":["Deva",["AS","ME"],"मराठी"],"mrj":["Cyrl",["EU"],"кырык мары"],"ms":["Latn",["AS"],"Bahasa Melayu"],"mt":["Latn",["EU"],"Malti"],"mui":["Latn",["AS"],"Musi"],"mus":["Latn",["AM"],"Mvskoke"],"mwl":["Latn",["EU"],"Mirandés"],"mwv":["Latn",["AS"],"Behase Mentawei"],"my":["Mymr",["AS"],"မြန်မာဘာသာ"],"myv":["Cyrl",["EU"],"эрзянь"],"mzn":["Arab",["ME","AS"],"مازِرونی"],"na":["Latn",["PA"],"Dorerin Naoero"],"nah":["Latn",["AM"],"Nāhuatl"],"nan":["Latn",["AS"],"Bân-lâm-gú"],"nap":["Latn",["EU"],"Nnapulitano"],"nb":["Latn",["EU"],"norsk (bokmål)"],"nds-nl":["Latn",["EU"],"Nedersaksisch"],"nds":["Latn",["EU"],"Plattdüütsch"],"ne":["Deva",["AS"],"नेपाली"],"new":["Deva",["AS"],"नेपाल भाषा"],"ng":["Latn",["AF"],"Oshiwambo"],"niu":["Latn",["PA"],"ko e vagahau Niuē"],"njo":["Latn",["AS"],"Ao"],"nl-informal":["Latn",["EU","AM"],"Nederlands (informeel)"],"nl":["Latn",["EU","AM"],"Nederlands"],"nn":["Latn",["EU"],"norsk (nynorsk)"],"no":["Latn",["EU"],"norsk"],"nov":["Latn",["WW"],"Novial"],"nqo":["Nkoo",["AF"],"ߒߞߏ"],"nrm":["Latn",["EU"],"Nouormand"],"nso":["Latn",["AF"],"Sesotho sa Leboa"],"nv":["Latn",["AM"],"Diné bizaad"],"ny":["Latn",["AF"],"Chi-Chewa"],"oc":["Latn",["EU"],"occitan"],"om":["Latn",["AF"],"Oromoo"],"or":["Orya",["AS"],"ଓଡ଼ିଆ"],"os":["Cyrl",["EU"],"Ирон"],"ota":["Arab",["AS","EU"],"لسان عثمانى"],"pa":["pa-guru"],"pa-guru":["Guru",["AS"],"ਪੰਜਾਬੀ"],"pag":["Latn",["AS"],"Pangasinan"],"pam":["Latn",["AS"],"Kapampangan"],"pap":["Latn",["AM"],"Papiamentu"],"pcd":["Latn",["EU"],"Picard"],"pdc":["Latn",["EU","AM"],"Deitsch"],"pdt":["Latn",["EU","AM"],"Plautdietsch"],"pfl":["Latn",["EU"],"Pälzisch"],"pi":["Deva",["AS"],"पालि"],"pih":["Latn",["PA"],"Norfuk \/ Pitkern"],"pis":["Latn",["PA"],"Pijin"],"pko":["Latn",["AF"],"Pökoot"],"pl":["Latn",["EU"],"polski"],"pms":["Latn",["EU"],"Piemontèis"],"pnb":["Arab",["AS","ME"],"پنجابی"],"pnt":["Grek",["EU"],"Ποντιακά"],"ppl":["Latn",["AM"],"Nawat"],"prg":["Latn",["EU"],"Prūsiskan"],"ps":["Arab",["AS","ME"],"پښتو"],"pt_BR":["Latn",["AM"],"português do Brasil"],"pt":["Latn",["EU","AS","PA","AF","WW"],"português"],"qu":["Latn",["AM"],"Runa Simi"],"qug":["Latn",["AM"],"Runa shimi"],"rap":["Latn",["AM"],"arero rapa nui"],"rgn":["Latn",["EU"],"Rumagnôl"],"rif":["Latn",["AF"],"Tarifit"],"rki":["Mymr",["AS"],"ရခိုင်"],"rm":["Latn",["EU"],"rumantsch"],"rmf":["Latn",["EU"],"kaalengo tšimb"],"rmy":["Latn",["EU"],"Romani"],"rn":["Latn",["AF"],"Kirundi"],"ro":["Latn",["EU"],"română"],"roa-rup":["rup"],"roa-tara":["Latn",["EU"],"tarandíne"],"rtm":["Latn",["PA"],"Faeag Rotuma"],"ru":["Cyrl",["EU","AS","ME"],"русский"],"rue":["Cyrl",["EU"],"русиньскый"],"rup":["Latn",["EU"],"Armãneashce"],"ruq":["Cyrl",["EU"],"Влахесте"],"ruq-cyrl":["ruq"],"ruq-grek":["Grek",["EU"],"Megleno-Romanian (Greek script)"],"ruq-latn":["Latn",["EU"],"Vlăheşte"],"rut":["Cyrl",["EU"],"мыхаӀбишды"],"rw":["Latn",["AF"],"Kinyarwanda"],"rwr":["Deva",["AS"],"मारवाड़ी"],"ryu":["Kana",["AS"],"ʔucināguci"],"sa":["Deva",["AS"],"संस्कृतम्"],"sah":["Cyrl",["EU","AS"],"саха тыла"],"sat":["Latn",["AS"],"Santali"],"saz":["Saur",["AS"],"ꢱꣃꢬꢵꢯ꣄ꢡ꣄ꢬꢵ"],"sc":["Latn",["EU"],"sardu"],"scn":["Latn",["EU"],"sicilianu"],"sco":["Latn",["EU"],"Scots"],"sd":["Arab",["AS"],"سنڌي"],"sdc":["Latn",["EU"],"Sassaresu"],"se":["Latn",["EU"],"sámegiella"],"ses":["Latn",["AF"],"Koyraboro Senni"],"sei":["Latn",["AM"],"Cmique Itom"],"sg":["Latn",["AF"],"Sängö"],"sgs":["Latn",["EU"],"žemaitėška"],"sh":["Latn",["EU"],"srpskohrvatski"],"shi-latn":["Latn",["AF"],"Tašlḥiyt"],"shi-tfng":["Tfng",["AF"],"ⵜⴰⵛⵍⵃⵉⵜ"],"shi":["shi-latn"],"shn":["Mymr",["AS"],"လိၵ်ႈတႆး"],"si":["Sinh",["AS"],"සිංහල"],"simple":["Latn",["WW"],"Simple English"],"sk":["Latn",["EU"],"slovenčina"],"sl":["Latn",["EU"],"slovenščina"],"sli":["Latn",["EU"],"Schläsch"],"slr":["Latn",["AS"],"Salırça"],"sly":["Latn",["AS"],"Bahasa Selayar"],"syc":["Syrc",["ME"],"ܣܘܪܝܝܐ"],"sm":["Latn",["PA"],"Gagana Samoa"],"sma":["Latn",["EU"],"åarjelsaemien"],"smj":["Latn",["EU"],"julevsámegiella"],"smn":["Latn",["EU"],"anarâškielâ"],"sms":["Latn",["EU"],"sää´mǩiõll"],"sn":["Latn",["AF"],"chiShona"],"so":["Latn",["AF"],"Soomaaliga"],"sq":["Latn",["EU"],"shqip"],"sr":["Cyrl",["EU"],"српски"],"sr-ec":["sr-cyrl"],"sr-cyrl":["Cyrl",["EU"],"српски"],"sr-el":["sr-latn"],"sr-latn":["Latn",["EU"],"srpski"],"srn":["Latn",["AM","EU"],"Sranantongo"],"ss":["Latn",["AF"],"SiSwati"],"st":["Latn",["AF"],"Sesotho"],"stq":["Latn",["EU"],"Seeltersk"],"su":["Latn",["AS"],"Basa Sunda"],"sv":["Latn",["EU"],"svenska"],"sw":["Latn",["AF"],"Kiswahili"],"swb":["Latn",["AF"],"Shikomoro"],"sxu":["Latn",["EU"],"Säggssch"],"szl":["Latn",["EU"],"ślůnski"],"ta":["Taml",["AS"],"தமிழ்"],"tcy":["Knda",["AS"],"ತುಳು"],"te":["Telu",["AS"],"తెలుగు"],"tet":["Latn",["AS","PA"],"tetun"],"tg-cyrl":["Cyrl",["AS"],"тоҷикӣ"],"tg-latn":["Latn",["AS"],"tojikī"],"tg":["Cyrl",["AS"],"тоҷикӣ"],"th":["Thai",["AS"],"ไทย"],"ti":["Ethi",["AF"],"ትግርኛ"],"tk":["Latn",["AS"],"Türkmençe"],"tkr":["Cyrl",["AS"],"ЦӀаьхна миз"],"tl":["Latn",["AS"],"Tagalog"],"tly":["Cyrl",["EU","AS","ME"],"толышә зывон"],"tn":["Latn",["AF"],"Setswana"],"to":["Latn",["PA"],"lea faka-Tonga"],"tokipona":["Latn",["WW"],"Toki Pona"],"tpi":["Latn",["PA","AS"],"Tok Pisin"],"tr":["Latn",["EU","ME"],"Türkçe"],"trp":["Latn",["AS"],"Kokborok (Tripuri)"],"tru":["Latn",["AS"],"Ṫuroyo"],"ts":["Latn",["AF"],"Xitsonga"],"tsd":["Grek",["EU"],"Τσακωνικά"],"tt":["Cyrl",["EU"],"татарча"],"tt-cyrl":["tt"],"tt-latn":["Latn",["EU"],"tatarça"],"ttt":["Cyrl",["AS"],"Tati"],"tum":["Latn",["AF"],"chiTumbuka"],"tw":["Latn",["AF"],"Twi"],"twd":["Latn",["EU"],"Tweants"],"ty":["Latn",["PA"],"Reo Mā`ohi"],"tyv":["Cyrl",["AS"],"тыва дыл"],"tzm":["Tfng",["AF"],"ⵜⴰⵎⴰⵣⵉⵖⵜ"],"udm":["Cyrl",["EU"],"удмурт"],"ug":["ug-arab"],"ug-arab":["Arab",["AS"],"ئۇيغۇرچە"],"ug-latn":["Latn",["AS"],"uyghurche"],"ug-cyrl":["Cyrl",["AS"],"уйғурчә"],"uk":["Cyrl",["EU"],"українська"],"ur":["Arab",["AS","ME"],"اردو"],"uz":["Latn",["AS"],"oʻzbekcha"],"ve":["Latn",["AF"],"Tshivenda"],"vec":["Latn",["EU"],"vèneto"],"vep":["Latn",["EU"],"vepsän kel’"],"vi":["Latn",["AS"],"Tiếng Việt"],"vls":["Latn",["EU"],"West-Vlams"],"vmf":["Latn",["EU"],"Mainfränkisch"],"vo":["Latn",["WW"],"Volapük"],"vot":["Latn",["EU"],"Vaďďa"],"vro":["Latn",["EU"],"Võro"],"wa":["Latn",["EU"],"walon"],"war":["Latn",["AS"],"Winaray"],"wls":["Latn",["PA"],"Faka'uvea"],"wo":["Latn",["AF"],"Wolof"],"wuu":["Hans",["AS"],"吴语"],"xal":["Cyrl",["EU"],"хальмг"],"xh":["Latn",["AF"],"isiXhosa"],"xmf":["Geor",["EU"],"მარგალური"],"ydd":["Hebr",["AS","EU"],"Eastern Yiddish"],"yi":["Hebr",["ME","EU","AM"],"ייִדיש"],"yo":["Latn",["AF"],"Yorùbá"],"yrk":["Cyrl",["AS"],"Ненэцяʼ вада"],"yrl":["Latn",["AM"],"ñe'engatú"],"yua":["Latn",["AM"],"Maaya T'aan"],"yue":["Hant",["AS"],"粵語"],"za":["Latn",["AS"],"Vahcuengh"],"zea":["Latn",["EU"],"Zeêuws"],"zh":["Hans",["AS"],"中文"],"zh-classical":["Hant",["AS"],"文言"],"zh_CN":["Hans",["AS"],"中文(中国大陆)"],"zh-hans":["Hans",["AS"],"中文(简体)"],"zh-hant":["Hant",["AS"],"中文(繁體)"],"zh-hk":["Hant",["AS"],"中文(香港)"],"zh-min-nan":["nan"],"zh-mo":["Hant",["AS"],"中文(澳門)"],"zh-my":["Hans",["AS"],"中文(马来西亚)"],"zh-sg":["Hans",["AS"],"中文(新加坡)"],"zh_TW":["Hant",["AS"],"中文(台灣)"],"zh-yue":["yue"],"zu":["Latn",["AF"],"isiZulu"]},"scriptgroups":{"Latin":["Latn","Goth"],"Greek":["Grek"],"WestCaucasian":["Armn","Geor"],"Arabic":["Arab"],"MiddleEastern":["Hebr","Syrc"],"African":["Ethi","Nkoo","Tfng"],"SouthAsian":["Beng","Deva","Gujr","Guru","Knda","Mlym","Orya","Saur","Sinh","Taml","Telu","Tibt","Thaa"],"Cyrillic":["Cyrl"],"CJK":["Hans","Hant","Kana","Kore","Jpan","Yiii"],"SouthEastAsian":["Batk","Bugi","Java","Khmr","Laoo","Mymr","Thai"],"Mongolian":["Mong"],"SignWriting":["Sgnw"],"NativeAmerican":["Cher","Cans"],"Special":["Zyyy"]},"rtlscripts":["Arab","Hebr","Syrc","Nkoo","Thaa"],"regiongroups":{"WW":1,"SP":1,"AM":2,"EU":3,"ME":3,"AF":3,"AS":4,"PA":4},"territories":{"AC":["en"],"AD":["ca","es","fr"],"AE":["ar","ml","ps","bal","fa"],"AF":["fa","ps","haz","uz-arab","tk-latn","prd","bal","ug-arab","kk-arab"],"AG":["en","pt"],"AI":["en"],"AL":["sq","el","mk"],"AM":["hy","ku-latn","az-latn"],"AO":["pt","umb","kmb","ln"],"AQ":["und"],"AR":["es","cy","gn"],"AS":["sm","en"],"AT":["de","bar","hr","sl","hu"],"AU":["en","zh-hant","it"],"AW":["nl","pap","en"],"AX":["sv"],"AZ":["az-latn","az-cyrl","tly-latn","ku-latn","ttt-latn","tkr-latn"],"BA":["bs-cyrl","bs-latn","hr","sr-cyrl","sr-latn"],"BB":["en"],"BD":["bn","rkt","syl","ccp","my","grt","mni"],"BE":["nl","en","fr","vls","wa","de"],"BF":["mos","dyu","fr"],"BG":["bg","tr"],"BH":["ar","ml"],"BI":["rn","fr","sw"],"BJ":["fr","fon","yo"],"BL":["fr"],"BM":["en"],"BN":["ms-latn","zh-hant","ms-arab","en"],"BO":["es","qu","ay","gn","aro"],"BQ":["pap","nl"],"BR":["pt","de","it","ja","ko","kgp","gub","yrl","xav"],"BS":["en"],"BT":["dz","ne","tsj","lep"],"BV":["und"],"BW":["en","tn","af"],"BY":["be","ru"],"BZ":["en","es"],"CA":["en","fr","it","de","pdt","cr-cans","crk","yi","iu-cans","iu-latn","moe","crj","atj","crl","csw","crm","ikt","moh","dgr","den","scs","nsk","chp","gwi"],"CC":["ms-arab","en"],"CD":["sw","lua","swc","fr","ln","lu","kg","lol","rw"],"CF":["fr","sg","ln"],"CG":["fr","ln"],"CH":["de","fr","gsw","it","lmo","rm","rmo","wae"],"CI":["fr","bci","sef","dnj","kfo","bqv"],"CK":["en"],"CL":["es","arn"],"CM":["fr","en","bum","ff","ewo","ybb","bbj","nnh","bkm","bas","bax","byv","mua","maf","bfd","bss","kkj","dua","mgo","ar","jgo","ksf","agq","ha-arab","nmg","yav"],"CN":["zh-hans","wuu","hsn","hak","nan","gan","ii","ug-arab","za","mn-mong","bo","ko","kk-arab","lis","ky-arab","nxq","khb","tdd","lcp","en","ru","vi","uz-cyrl","lzh"],"CO":["es","guc"],"CP":["und"],"CR":["es"],"CU":["es"],"CV":["kea","pt"],"CW":["pap","nl","es"],"CX":["en"],"CY":["el","tr","hy","ar"],"CZ":["cs","de","pl"],"DE":["de","en","nds","vmf","tr","hr","it","ku-latn","ru","el","ksh","pl","es","nl","da","hsb","frr","dsb","frs","stq","pfl"],"DG":["en"],"DJ":["aa","so","ar","fr"],"DK":["da","de","kl","jut"],"DM":["en"],"DO":["es","en"],"DZ":["arq","ar","fr","kab"],"EA":["es"],"EC":["es","qu","qug"],"EE":["et","ru","vro"],"EG":["ar","arz","el"],"EH":["ar"],"ER":["ti","en","tig","ar","aa","ssy","byn"],"ES":["es","en","ca","gl","eu","ast","ext"],"ET":["en","am","om","so","ti","sid","wal","aa"],"FI":["fi","sv","ru","en","et","rmf","se","smn","sms"],"FJ":["en","hi","hif-deva","fj","rtm"],"FK":["en"],"FM":["chk","pon","kos","yap","en","uli"],"FO":["fo"],"FR":["fr","en","oc","it","pt","pcd","gsw","br","co","ca","nl","eu","frp","ia"],"GA":["fr","puu"],"GB":["en","sco","pa-guru","cy","bn","zh-hant","syl","el","it","ks-arab","gd","yi","ml","ga","fr","kw"],"GD":["en"],"GE":["ka","xmf","ru","hy","ab","os","ku-latn"],"GF":["fr","gcr","zh-hant"],"GG":["en"],"GH":["ak","en","ee","abr","gur","gaa","ha-latn","saf"],"GI":["en"],"GL":["kl","da"],"GM":["en","man-latn"],"GN":["fr","ff","man-nkoo","sus","nqo","kpe"],"GP":["fr"],"GQ":["es","fan","fr","bvb"],"GR":["el","pnt-grek","mk","tr","bg","sq","tsd"],"GS":["und"],"GT":["es","quc"],"GU":["en","ch"],"GW":["pt"],"GY":["en"],"HK":["zh-hant","en","zh-hans"],"HM":["und"],"HN":["es","en"],"HR":["hr","it"],"HT":["ht","fr"],"HU":["hu","de","ro","hr","sk","sl"],"IC":["es"],"ID":["id","jv","su","mad","ms-arab","min","bew","ban","bug","bjn","ace","sas","bbc","zh-hant","mak","ljp","rej","gor","nij","kge","aoz","kvr","lbw","rob","mdr","sxn","sly","mwv"],"IE":["en","ga"],"IL":["he","ar","ru","ro","yi","en","pl","lad","hu","am","ti","ml"],"IM":["en","gv"],"IN":["hi","en","bn","te","mr","ta","ur","gu","kn","ml","or","pa-guru","bho","awa","as","bgc","mag","mwr","mai","hne","dcc","bjj","ne","sat","wtm","rkt","ks-arab","kok","gom","swv","gbm","lmn","sd-arab","gon-telu","kfy","doi","kru","sck","wbq","xnr","tcy","wbr","khn","brx","noe","bhb","mni","raj","hoc","mtr","unr-beng","bhi","hoj","kha","kfr","grt","unx-beng","bfy","srx","saz","ccp","sd-deva","bfq","njo","ria","bo","bpy","bft","bra","lep","btv","lif-deva","lah","sa","kht","dv","dz"],"IO":["en"],"IQ":["ar","ckb","fa","syr"],"IR":["fa","az-arab","azb","mzn","glk","ckb","tk-latn","lrc","ar","bal","rmt","bqi","luz","lki","prd","hy","ps","ka","gbz","kk-arab"],"IS":["is","da"],"IT":["it","en","fr","lmo","pms","sc","de","vec","nap","lij","scn","sl","sdc","fur","egl","ca","el","hr","rgn"],"JE":["en"],"JM":["en","jam"],"JO":["ar"],"JP":["ja","ryu","ko"],"KE":["en","sw","ki","luy","luo","kam","kln","guz","mer","mas","ebu","so","dav","teo","pko","om","saq","ar","pa-guru","gu"],"KG":["ky-cyrl","ru"],"KH":["km","cja","kdt"],"KI":["en","gil"],"KM":["ar","fr","zdj"],"KN":["en"],"KP":["ko"],"KR":["ko"],"KW":["ar"],"KY":["en"],"KZ":["ru","kk-cyrl","de","ug-cyrl"],"LA":["lo","kjg","kdt"],"LB":["ar","hy","ku-arab","fr","en"],"LC":["en"],"LI":["de","gsw","wae"],"LK":["si","ta","en"],"LR":["en","kpe","vai-vaii","men","vai-latn"],"LS":["st","zu","ss","en","xh"],"LT":["lt","ru","sgs"],"LU":["fr","lb","de"],"LV":["lv","ru","ltg"],"LY":["ar"],"MA":["ary","ar","zgh","fr","tzm-latn","shi-latn","shi-tfng","rif-latn","rif-tfng","es"],"MC":["fr"],"MD":["ro","uk","bg","gag","ru"],"ME":["sr-latn","sq","sr-cyrl"],"MF":["fr"],"MG":["mg","fr","en"],"MH":["en","mh"],"MK":["mk","sq","tr"],"ML":["bm-latn","fr","ffm","snk","mwk","ses","tmh","bm-nkoo","khq","dtm","kao","ar","bmq","bze"],"MM":["my","shn","mnw","kht"],"MN":["mn-cyrl","kk-arab","zh-hans","ru","ug-cyrl"],"MO":["zh-hant","pt","zh-hans","en"],"MP":["en","ch"],"MQ":["fr"],"MR":["ar","fr","ff","wo"],"MS":["en"],"MT":["mt","en"],"MU":["mfe","en","bho","ur","fr","ta"],"MV":["dv"],"MW":["en","ny","tum","zu"],"MX":["es","yua","nhe","nhw","maz","nch","sei"],"MY":["ms-latn","en","zh-hant","ta","jv","zmi","dtp","ml","bug","bjn"],"MZ":["pt","vmw","ndc","ts","ngl","seh","mgh","rng","ny","yao","sw","zu"],"NA":["af","kj","ng","naq","en","de","tn"],"NC":["fr"],"NE":["ha-latn","fr","dje","fuq","tmh","ar","twq"],"NF":["en"],"NG":["en","pcm","ha-latn","ig","yo","fuv","tiv","efi","ibb","ha-arab","bin","kaj","kcg","ar","cch","amo"],"NI":["es"],"NL":["nl","en","li","fy","gos","id","zea","rif-latn","tr"],"NO":["nb","nn","se"],"NP":["ne","mai","bho","new","jml","taj","awa","thl","bap","tdg","thr","mgp","lif-deva","thq","mrd","bfy","xsr","rjs","tsf","hi","ggn","gvr","bo","tkt","tdh","bn","unr-deva","lep"],"NR":["en","na"],"NU":["en","niu"],"NZ":["en","mi"],"OM":["ar","bal","fa"],"PA":["es","en","zh-hant"],"PE":["es","qu","ay"],"PF":["fr","ty","zh-hant"],"PG":["tpi","en","ho"],"PH":["en","fil","es","ceb","ilo","hil","bik","war","bhk","pam","pag","mdh","tsg","zh-hant","cps","krj","bto","hnn","tbw","bku"],"PK":["ur","pa-arab","en","lah","ps","sd-arab","skr","bal","brh","hno","fa","hnd","tg-arab","gju","bft","kvx","khw","mvy","kxp","gjk","ks-arab","btv"],"PL":["pl","szl","be","uk","csb","de","sli","lt"],"PM":["fr","en"],"PN":["en"],"PR":["es","en"],"PS":["ar"],"PT":["pt","gl"],"PW":["pau","en"],"PY":["gn","es","de"],"QA":["ar","fa","ml"],"RE":["fr","rcf","ta"],"RO":["ro","hu","de","tr","sr-latn","bg","el","pl"],"RS":["sr-cyrl","sr-latn","sq","hu","ro","hr","sk","uk"],"RU":["ru","tt","ba","cv","hy","ce","av","udm","chm","sah","os","kbd","myv","dar","bua","mdf","kum","kv","lez","krc","inh","tyv","az-cyrl","ady","krl","lbe","koi","mrj","alt","fi","sr-latn","vep","mn-cyrl","izh","cu"],"RW":["rw","fr","en"],"SA":["ar"],"SB":["en","rug"],"SC":["crs","fr","en"],"SD":["ar","en","nus","ha-arab"],"SE":["sv","fi","fit","se","rmu","yi","smj","sma","ia"],"SG":["en","zh-hans","ms-latn","ta","ml","pa-guru"],"SH":["en"],"SI":["sl","hu","it"],"SJ":["nb","ru"],"SK":["sk","hu","uk","pl","de"],"SL":["kri","en","men","tem"],"SM":["it","eo"],"SN":["wo","fr","ff","srr","dyo"],"SO":["so","ar","sw","om"],"SR":["nl","srn","zh-hant"],"SS":["ar","en"],"ST":["pt"],"SV":["es"],"SX":["en","es","vic","nl"],"SY":["ar","ku-latn","fr","hy","syr"],"SZ":["en","ss","zu","ts"],"TA":["en"],"TC":["en"],"TD":["fr","ar"],"TF":["fr"],"TG":["fr","ee"],"TH":["th","tts","nod","sou","mfa","zh-hant","kxm","kdt","mnw","shn","lcp","lwl"],"TJ":["tg-cyrl","ru","fa","ar"],"TK":["en","tkl"],"TL":["pt","tet"],"TM":["tk-latn","ru","uz-latn","ku-latn"],"TN":["aeb","ar","fr"],"TO":["to","en"],"TR":["tr","ku-latn","zza","kbd","az-latn","ar","bgx","bg","ady","kiu","hy","ka","sr-latn","lzz-latn","sq","ab","el","tru","uz-latn","ky-latn","kk-cyrl"],"TT":["en","es"],"TV":["tvl","en"],"TW":["zh-hant","trv"],"TZ":["sw","en","suk","nym","kde","bez","ksb","mas","mgy","asa","lag","jmc","rof","vun","rwk","sbp"],"UA":["uk","ru","pl","yi","rue","be","ro","bg","tr","hu","el"],"UG":["sw","lg","nyn","cgg","xog","en","teo","laj","ach","myx","rw","ttj","hi"],"UM":["en"],"US":["en","es","zh-hant","fr","de","fil","it","vi","ko","ru","nv","yi","pdc","haw","frc","chr","esu","lkt","ik"],"UY":["es"],"UZ":["uz-latn","uz-cyrl","ru","kaa","tr"],"VA":["it","la"],"VC":["en"],"VE":["es"],"VG":["en"],"VI":["en"],"VN":["vi","zh-hant","cjm"],"VU":["bi","en","fr"],"WF":["wls","fr","fud"],"WS":["sm","en"],"XK":["sq","aln","sr-cyrl","sr-latn"],"YE":["ar"],"YT":["swb","fr","buc","sw"],"ZA":["en","zu","xh","af","nso","tn","st","ts","ss","ve","hi","nr","sw"],"ZM":["en","bem","ny","loz"],"ZW":["en","sn","nd","mxc","ndc","kck","ny","ve","tn"],"ZZ":[]}};

- } ( jQuery ) );

@@ -1,465 +0,0 @@ 

- /**

-  * Utility functions for querying language data.

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- ( function ( $ ) {

- 	'use strict';

- 

- 	/**

- 	 * Is this language a redirect to another language?

- 	 * @param language string Language code

- 	 * @return Target language code if it's a redirect or false if it's not

- 	 */

- 	$.uls.data.isRedirect = function ( language ) {

- 		return ( $.uls.data.languages[language] !== undefined &&

- 			$.uls.data.languages[language].length === 1 ) ? $.uls.data.languages[language][0] : false;

- 	};

- 

- 	/**

- 	 * Returns the script of the language.

- 	 * @param language string Language code

- 	 * @return string

- 	 */

- 	$.uls.data.getScript = function ( language ) {

- 		var target = $.uls.data.isRedirect( language );

- 

- 		if ( target ) {

- 			return $.uls.data.getScript( target );

- 		}

- 

- 		if ( !$.uls.data.languages[language] ) {

- 			// Undetermined

- 			return 'Zyyy';

- 		}

- 

- 		return $.uls.data.languages[language][0];

- 	};

- 

- 	/**

- 	 * Returns the regions in which a language is spoken.

- 	 * @param language string Language code

- 	 * @return array|string 'UNKNOWN'

- 	 */

- 	$.uls.data.getRegions = function ( language ) {

- 		var target = $.uls.data.isRedirect( language );

- 

- 		if ( target ) {

- 			return $.uls.data.getRegions( target );

- 		}

- 

- 		return ( $.uls.data.languages[language] && $.uls.data.languages[language][1] ) || 'UNKNOWN';

- 	};

- 

- 	/**

- 	 * Returns the autonym of the language.

- 	 * @param language string Language code

- 	 * @return string

- 	 */

- 	$.uls.data.getAutonym = function ( language ) {

- 		var target = $.uls.data.isRedirect( language );

- 

- 		if ( target ) {

- 			return $.uls.data.getAutonym( target );

- 		}

- 

- 		return ( $.uls.data.languages[language] && $.uls.data.languages[language][2] ) || language;

- 	};

- 

- 	/**

- 	 * Returns all language codes and corresponding autonyms

- 	 * @return array

- 	 */

- 	$.uls.data.getAutonyms = function () {

- 		var language,

- 			autonymsByCode = {};

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			autonymsByCode[language] = $.uls.data.getAutonym( language );

- 		}

- 

- 		return autonymsByCode;

- 	};

- 

- 	/**

- 	 * Returns an array of all region codes.

- 	 * @return array

- 	 */

- 	$.uls.data.getAllRegions = function () {

- 		var region,

- 			allRegions = [];

- 

- 		for ( region in $.uls.data.regiongroups ) {

- 			allRegions.push( region );

- 		}

- 

- 		return allRegions;

- 	};

- 

- 	/**

- 	 * Returns all languages written in script.

- 	 * @param script string

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInScript = function ( script ) {

- 		return $.uls.data.getLanguagesInScripts( [ script ] );

- 	};

- 

- 	/**

- 	 * Returns all languages written in the given scripts.

- 	 * @param scripts array of strings

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInScripts = function ( scripts ) {

- 		var language, i,

- 			languagesInScripts = [];

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			for ( i = 0; i < scripts.length; i++ ) {

- 				if ( scripts[i] === $.uls.data.getScript( language ) ) {

- 					languagesInScripts.push( language );

- 					break;

- 				}

- 			}

- 		}

- 

- 		return languagesInScripts;

- 	};

- 

- 	/**

- 	 * Returns all languages in a given region.

- 	 * @param region string

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInRegion = function ( region ) {

- 		return $.uls.data.getLanguagesInRegions( [ region ] );

- 	};

- 

- 	/**

- 	 * Returns all languages in given regions.

- 	 * @param regions array of strings.

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInRegions = function ( regions ) {

- 		var language, i,

- 			languagesInRegions = [];

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			for ( i = 0; i < regions.length; i++ ) {

- 				if ( $.inArray( regions[i], $.uls.data.getRegions( language ) ) !== -1 ) {

- 					languagesInRegions.push( language );

- 					break;

- 				}

- 			}

- 		}

- 

- 		return languagesInRegions;

- 	};

- 

- 	/**

- 	 * Returns all languages in a region group.

- 	 * @param groupNum number.

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInRegionGroup = function ( groupNum ) {

- 		return $.uls.data.getLanguagesInRegions( $.uls.data.getRegionsInGroup( groupNum ) );

- 	};

- 

- 	/**

- 	 * Returns an associative array of languages in a region,

- 	 * grouped by script.

- 	 * @param region string Region code

- 	 * @return associative array

- 	 */

- 	$.uls.data.getLanguagesByScriptInRegion = function ( region ) {

- 		var language, script,

- 			languagesByScriptInRegion = {};

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			if ( $.inArray( region, $.uls.data.getRegions( language ) ) !== -1 ) {

- 				script = $.uls.data.getScript( language );

- 

- 				if ( languagesByScriptInRegion[script] === undefined ) {

- 					languagesByScriptInRegion[script] = [];

- 				}

- 				languagesByScriptInRegion[script].push( language );

- 			}

- 		}

- 

- 		return languagesByScriptInRegion;

- 	};

- 

- 	/**

- 	 * Returns an associative array of languages in a region,

- 	 * grouped by script group.

- 	 * @param region string Region code

- 	 * @return associative array

- 	 */

- 	$.uls.data.getLanguagesByScriptGroupInRegion = function ( region ) {

- 		return $.uls.data.getLanguagesByScriptGroupInRegions( [ region ] );

- 	};

- 

- 	/**

- 	 * Returns an associative array of all languages,

- 	 * grouped by script group.

- 	 * @return associative array

- 	 */

- 	$.uls.data.getAllLanguagesByScriptGroup = function () {

- 		return $.uls.data.getLanguagesByScriptGroupInRegions( $.uls.data.getAllRegions() );

- 	};

- 

- 	/**

- 	 * Get the given list of languages grouped by script.

- 	 * @param languages Array of language codes

- 	 * @return {Object} Array of languages indexed by script codes

- 	 */

- 	$.uls.data.getLanguagesByScriptGroup = function ( languages ) {

- 		var languagesByScriptGroup = {},

- 			language, codeToAdd, langScriptGroup;

- 

- 		for ( language in languages ) {

- 			codeToAdd = $.uls.data.isRedirect( language ) || language;

- 

- 			langScriptGroup = $.uls.data.getScriptGroupOfLanguage( codeToAdd );

- 

- 			if ( !languagesByScriptGroup[langScriptGroup] ) {

- 				languagesByScriptGroup[langScriptGroup] = [];

- 			}

- 

- 			// Prevent duplicate adding of redirects

- 			if ( $.inArray( codeToAdd, languagesByScriptGroup[langScriptGroup] ) === -1 ) {

- 				languagesByScriptGroup[langScriptGroup].push( codeToAdd );

- 			}

- 		}

- 

- 		return languagesByScriptGroup;

- 	};

- 

- 	/**

- 	 * Returns an associative array of languages in several regions,

- 	 * grouped by script group.

- 	 * @param regions array of strings - region codes

- 	 * @return associative array

- 	 */

- 	$.uls.data.getLanguagesByScriptGroupInRegions = function ( regions ) {

- 		var language, i, scriptGroup,

- 			languagesByScriptGroupInRegions = {};

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			for ( i = 0; i < regions.length; i++ ) {

- 				if ( $.inArray( regions[i], $.uls.data.getRegions( language ) ) !== -1 ) {

- 					scriptGroup = $.uls.data.getScriptGroupOfLanguage( language );

- 

- 					if ( languagesByScriptGroupInRegions[scriptGroup] === undefined ) {

- 						languagesByScriptGroupInRegions[scriptGroup] = [];

- 					}

- 

- 					languagesByScriptGroupInRegions[scriptGroup].push( language );

- 					break;

- 				}

- 			}

- 		}

- 

- 		return languagesByScriptGroupInRegions;

- 	};

- 

- 	/**

- 	 * Returns an array of languages grouped by region group,

- 	 * region, script group and script.

- 	 * @return associative array

- 	 */

- 	$.uls.data.getAllLanguagesByRegionAndScript = function () {

- 		var region, regionGroup, language,

- 			script, scriptGroup, regions, regionNum,

- 			allLanguagesByRegionAndScript = {};

- 

- 		for ( region in $.uls.data.regiongroups ) {

- 			regionGroup = $.uls.data.regiongroups[region];

- 

- 			if ( allLanguagesByRegionAndScript[regionGroup] === undefined ) {

- 				allLanguagesByRegionAndScript[regionGroup] = {};

- 			}

- 

- 			allLanguagesByRegionAndScript[regionGroup][region] = {};

- 		}

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			script = $.uls.data.getScript( language );

- 			scriptGroup = $.uls.data.getGroupOfScript( script );

- 			regions = $.uls.data.getRegions( language );

- 

- 			for ( regionNum = 0; regionNum < regions.length; regionNum++ ) {

- 				region = regions[regionNum];

- 				regionGroup = $.uls.data.regiongroups[region];

- 

- 				if ( allLanguagesByRegionAndScript[regionGroup][region][scriptGroup] === undefined ) {

- 					allLanguagesByRegionAndScript[regionGroup][region][scriptGroup] = {};

- 				}

- 

- 				if ( allLanguagesByRegionAndScript[regionGroup][region][scriptGroup][script] === undefined ) {

- 					allLanguagesByRegionAndScript[regionGroup][region][scriptGroup][script] = [];

- 				}

- 

- 				allLanguagesByRegionAndScript[regionGroup][region][scriptGroup][script].push( language );

- 			}

- 		}

- 

- 		return allLanguagesByRegionAndScript;

- 	};

- 

- 	/**

- 	 * Returns all regions in a region group.

- 	 * @param groupNum int

- 	 * @return array of strings

- 	 */

- 	$.uls.data.getRegionsInGroup = function ( groupNum ) {

- 		var region,

- 			regionsInGroup = [];

- 

- 		for ( region in $.uls.data.regiongroups ) {

- 			if ( $.uls.data.regiongroups[region] === groupNum ) {

- 				regionsInGroup.push( region );

- 			}

- 		}

- 

- 		return regionsInGroup;

- 	};

- 

- 	/**

- 	 * Returns the script group of a script or 'Other' if it doesn't

- 	 * belong to any group.

- 	 * @param script string Script code

- 	 * @return string script group name

- 	 */

- 	$.uls.data.getGroupOfScript = function ( script ) {

- 		var scriptGroup;

- 

- 		for ( scriptGroup in $.uls.data.scriptgroups ) {

- 			if ( $.inArray( script, $.uls.data.scriptgroups[scriptGroup] ) !== -1 ) {

- 				return scriptGroup;

- 			}

- 		}

- 

- 		return 'Other';

- 	};

- 

- 	/**

- 	 * Returns the script group of a language.

- 	 * @param language string Language code

- 	 * @return string script group name

- 	 */

- 	$.uls.data.getScriptGroupOfLanguage = function ( language ) {

- 		return $.uls.data.getGroupOfScript( $.uls.data.getScript( language ) );

- 	};

- 

- 	/**

- 	 * A callback for sorting languages by autonym.

- 	 * Can be used as an argument to a sort function.

- 	 * @param a string Language code

- 	 * @param b string Language code

- 	 */

- 	$.uls.data.sortByAutonym = function ( a, b ) {

- 		var autonymA = $.uls.data.getAutonym( a ) || a,

- 			autonymB = $.uls.data.getAutonym( b ) || b;

- 

- 		return ( autonymA.toLowerCase() < autonymB.toLowerCase() ) ? -1 : 1;

- 	};

- 

- 	/**

- 	 * Check if a language is right-to-left.

- 	 * @param language string Language code

- 	 * @return boolean

- 	 */

- 	$.uls.data.isRtl = function ( language ) {

- 		return $.inArray( $.uls.data.getScript( language ), $.uls.data.rtlscripts ) !== -1;

- 	};

- 

- 	/**

- 	 * Return the direction of the language

- 	 * @param language string Language code

- 	 * @return string

- 	 */

- 	$.uls.data.getDir = function ( language ) {

- 		return $.uls.data.isRtl( language ) ? 'rtl' : 'ltr';

- 	};

- 

- 	/**

- 	 * Returns the languages spoken in a territory.

- 	 * @param territory string Territory code

- 	 * @return list of language codes

- 	 */

- 	$.uls.data.getLanguagesInTerritory = function ( territory ) {

- 		return $.uls.data.territories[territory];

- 	};

- 

- 	/**

- 	 * Adds a language in run time and sets its options as provided.

- 	 * If the target option is provided, the language is defined as a redirect.

- 	 * Other possible options are script, regions and autonym.

- 	 *

- 	 * @param code string New language code.

- 	 * @param options Object Language properties.

- 	 * @return list of language codes

- 	 */

- 	$.uls.data.addLanguage = function( code, options ) {

- 		if ( options.target ) {

- 			$.uls.data.languages[code] = [options.target];

- 		} else {

- 			$.uls.data.languages[code] = [options.script, options.regions, options.autonym];

- 		}

- 	};

- 

- 	/**

- 	 * Removes a language from the langdb in run time.

- 	 *

- 	 * @param code string Language code to delete.

- 	 * @return true if the language was removed, false otherwise.

- 	 */

- 	$.uls.data.deleteLanguage = function( code ) {

- 		if ( $.uls.data.languages[code] ) {

- 			delete $.uls.data.languages[code];

- 

- 			return true;

- 		}

- 

- 		return false;

- 	};

- } ( jQuery ) );

@@ -1,360 +0,0 @@ 

- /**

-  * jQuery language filter plugin.

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- /**

-  * Usage: $( 'inputbox' ).languagefilter();

-  * The values for autocompletion is from the options.languages.

-  * The data is in the format of languagecode:languagename.

-  */

- (function ( $ ) {

- 	'use strict';

- 

- 	var LanguageFilter, delay;

- 

- 	LanguageFilter = function( element, options ) {

- 		this.$element = $( element );

- 		this.options = $.extend( {}, $.fn.regionselector.defaults, options );

- 		this.$element.addClass( 'languagefilter' );

- 		this.resultCount = 0;

- 		this.$suggestion = this.$element.parents().find( '#' + this.$element.data( 'suggestion' ) );

- 		this.$clear = this.$element.parents().find( '#' + this.$element.data( 'clear' ) );

- 		this.selectedLanguage = null;

- 

- 		this.listen();

- 	};

- 

- 	delay = ( function() {

- 		var timer = 0;

- 

- 		return function( callback, milliseconds ) {

- 			clearTimeout( timer );

- 			timer = setTimeout( callback, milliseconds );

- 		};

- 	} () );

- 

- 	LanguageFilter.prototype = {

- 		listen: function() {

- 			this.$element.on( 'keypress', $.proxy( this.keyup, this ) )

- 				.on( 'keyup', $.proxy( this.keyup, this ) );

- 

- 			if ( this.eventSupported( 'keydown' ) ) {

- 				this.$element.on( 'keydown', $.proxy( this.keyup, this ) );

- 			}

- 

- 			if ( this.$clear.length ) {

- 				this.$clear.on( 'click' , $.proxy( this.clear, this ) );

- 			}

- 

- 			this.toggleClear();

- 		},

- 

- 		keyup: function( e ) {

- 			var suggestion, query, languageFilter;

- 

- 			switch( e.keyCode ) {

- 				case 9: // Tab -> Autocomplete

- 					suggestion = this.$suggestion.val();

- 

- 					if ( suggestion && suggestion !== this.$element.val() ) {

- 						this.$element.val( suggestion );

- 						e.preventDefault();

- 						e.stopPropagation();

- 					}

- 					break;

- 				case 13: // Enter

- 					if ( !this.options.onSelect ) {

- 						break;

- 					}

- 

- 					// Avoid bubbling this 'enter' to background page elements

- 					e.preventDefault();

- 					e.stopPropagation();

- 

- 					query = $.trim( this.$element.val() ).toLowerCase();

- 

- 					if ( this.selectedLanguage ) {

- 						// this.selectLanguage will be populated from a matching search

- 						this.options.onSelect( this.selectedLanguage );

- 					} else if ( this.options.languages[query] ) {

- 						// Search is yet to happen (in timeout delay),

- 						// but we have a matching language code.

- 						this.options.onSelect( query );

- 					}

- 

- 					break;

- 				default:

- 					languageFilter = this;

- 

- 					if ( e.which < 32 &&

- 						e.which !== 8 // Backspace

- 					) {

- 						// ignore any ASCII control characters

- 						break;

- 					}

- 

- 					this.selectedLanguage = null;

- 

- 					delay( function() {

- 						if ( !languageFilter.$element.val() ) {

- 							languageFilter.clear();

- 						} else {

- 							languageFilter.options.$target.empty();

- 							languageFilter.search();

- 						}

- 					}, 300 );

- 

- 					this.toggleClear();

- 			}

- 		},

- 

- 		/**

- 		 * Clears the current search removing

- 		 * clear buttons and suggestions.

- 		 */

- 		deactivate: function() {

- 			this.$element.val( '' );

- 

- 			if ( !$.fn.uls.Constructor.prototype.isMobile() ) {

- 				this.$element.focus();

- 			}

- 

- 			this.toggleClear();

- 			this.autofill();

- 		},

- 

- 		/**

- 		 * Clears the search and shows all languages

- 		 */

- 		clear: function() {

- 			this.deactivate();

- 			this.$element.trigger( 'searchclear.uls' );

- 		},

- 

- 		/**

- 		 * Toggles the visibility of clear icon depending

- 		 * on whether there is anything to clear.

- 		 */

- 		toggleClear: function() {

- 			if ( !this.$clear.length ) {

- 				return;

- 			}

- 

- 			if ( this.$element.val() ) {

- 				this.$clear.show();

- 			} else {

- 				this.$clear.hide();

- 			}

- 		},

- 

- 		search: function() {

- 			var languagesInScript,

- 				query = $.trim( this.$element.val() ),

- 				languages = $.uls.data.getLanguagesByScriptGroup( this.options.languages ),

- 				scriptGroup, langNum, langCode;

- 

- 			this.resultCount = 0;

- 

- 			for ( scriptGroup in languages ) {

- 				languagesInScript = languages[scriptGroup];

- 

- 				languagesInScript.sort( $.uls.data.sortByAutonym );

- 

- 				for ( langNum = 0; langNum < languagesInScript.length; langNum++ ) {

- 					langCode = languagesInScript[langNum];

- 

- 					if ( query === '' || this.filter( langCode, query ) ) {

- 						if ( this.resultCount === 0 ) {

- 							// Autofill the first result.

- 							this.autofill( langCode );

- 						}

- 

- 						if ( query.toLowerCase() === langCode ) {

- 							this.selectedLanguage = langCode;

- 						}

- 

- 						if ( this.render( langCode ) ) {

- 							this.resultCount++;

- 						}

- 					}

- 				}

- 			}

- 

- 			// Also do a search by search API

- 			if( !this.resultCount && this.options.searchAPI && query ) {

- 				this.searchAPI( query );

- 			} else {

- 				this.resultHandler( query );

- 			}

- 		},

- 

- 		searchAPI: function( query ) {

- 			var languageFilter = this;

- 

- 			$.get( languageFilter.options.searchAPI, { search: query }, function( result ) {

- 				$.each( result.languagesearch, function( code, name ) {

- 					if ( languageFilter.resultCount === 0 ) {

- 						// Autofill the first result.

- 						languageFilter.autofill( code, name );

- 					}

- 

- 					if ( languageFilter.render( code ) ) {

- 						languageFilter.resultCount++;

- 					}

- 				} );

- 

- 				languageFilter.resultHandler( query );

- 			} );

- 		},

- 

- 		/**

- 		 * Handler method to be called once search is over.

- 		 * Based on search result triggers resultsfound or noresults events

- 		 * @param query string

- 		 */

- 		resultHandler: function( query ) {

- 			if ( this.resultCount === 0 ) {

- 				this.$suggestion.val( '' );

- 				this.$element.trigger( 'noresults.uls', query );

- 			} else {

- 				this.$element.trigger( 'resultsfound.uls', [query, this.resultCount] );

- 			}

- 		},

- 

- 		autofill: function( langCode, languageName ) {

- 			if ( !this.$suggestion.length ) {

- 				return;

- 			}

- 

- 			if ( !this.$element.val() ) {

- 				this.$suggestion.val( '' );

- 				return;

- 			}

- 

- 			this.selectedLanguage = langCode;

- 			languageName = languageName || this.options.languages[langCode];

- 

- 			if ( !languageName ) {

- 				return;

- 			}

- 

- 			var autonym,

- 				userInput = this.$element.val(),

- 				suggestion = userInput + languageName.substring( userInput.length, languageName.length );

- 

- 			if ( suggestion.toLowerCase() !== languageName.toLowerCase() ) {

- 				// see if it was autonym match

- 				autonym = $.uls.data.getAutonym( langCode ) || '';

- 				suggestion = userInput + autonym.substring( userInput.length, autonym.length );

- 

- 				if ( suggestion !== autonym ) {

- 					// Give up. It may be an ISO/script code match.

- 					suggestion = '';

- 				}

- 			}

- 

- 			// Make sure that it is a visual prefix.

- 			if ( !isVisualPrefix( userInput, suggestion ) ) {

- 				suggestion = '';

- 			}

- 

- 			this.$suggestion.val( suggestion );

- 		},

- 

- 		render: function( langCode ) {

- 			var $target = this.options.$target;

- 

- 			if ( !$target ) {

- 				return false;

- 			}

- 

- 			return $target.append( langCode );

- 		},

- 

- 		escapeRegex: function( value ) {

- 			return value.replace( /[\-\[\]{}()*+?.,\\\^$\|#\s]/g, '\\$&' );

- 		},

- 

- 		/**

- 		 * A search match happens if any of the following passes:

- 		 * a) Language name in current user interface language

- 		 * 'starts with' search string.

- 		 * b) Language autonym 'starts with' search string.

- 		 * c) ISO 639 code match with search string.

- 		 * d) ISO 15924 code for the script match the search string.

- 		 */

- 		filter: function( langCode, searchTerm ) {

- 			// FIXME script is ISO 15924 code. We might need actual name of script.

- 			var matcher = new RegExp( '^' + this.escapeRegex( searchTerm ), 'i' ),

- 				languageName = this.options.languages[langCode];

- 

- 			return matcher.test( languageName ) ||

- 				matcher.test( $.uls.data.getAutonym( langCode ) ) ||

- 				matcher.test( langCode ) ||

- 				matcher.test( $.uls.data.getScript( langCode ) );

- 		},

- 

- 		eventSupported: function ( eventName ) {

- 			var isSupported = eventName in this.$element;

- 

- 			if ( !isSupported ) {

- 				this.$element.setAttribute( eventName, 'return;' );

- 				isSupported = typeof this.$element[eventName] === 'function';

- 			}

- 

- 			return isSupported;

- 		}

- 	};

- 

- 	$.fn.languagefilter = function( option ) {

- 		return this.each( function() {

- 			var $this = $( this ),

- 				data = $this.data( 'languagefilter' ),

- 				options = typeof option === 'object' && option;

- 

- 			if ( !data ) {

- 				$this.data( 'languagefilter', ( data = new LanguageFilter( this, options ) ) );

- 			}

- 

- 			if ( typeof option === 'string' ) {

- 				data[option]();

- 			}

- 		} );

- 	};

- 

- 	$.fn.languagefilter.defaults = {

- 		$target: null, // Where to append the results

- 		searchAPI: null,

- 		languages: null, // Languages as code:name format.

- 		onSelect: null // Language select handler - like enter in filter textbox.

- 	};

- 

- 	$.fn.languagefilter.Constructor = LanguageFilter;

- 

- 	/**

- 	 * Check if a prefix is visually prefix of a string

- 	 * @param prefix string

- 	 * @param string string

- 	 */

- 	function isVisualPrefix( prefix, string ) {

- 		// Pre-base vowel signs of Indic languages. A vowel sign is called pre-base if

- 		// consonant + vowel becomes [vowel][consonant] when rendered. Eg: ക + െ => കെ

- 		var prebases = 'െേൈൊോൌெேைொோௌେୈୋୌિਿिিেৈোৌෙේෛොෝෞ';

- 		return prebases.indexOf( string[prefix.length] ) <= 0;

- 	}

- } ( jQuery ) );

@@ -1,396 +0,0 @@ 

- /**

-  * Universal Language Selector

-  * Language category display component - Used for showing the search results,

-  * grouped by regions, scripts

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- ( function ( $ ) {

- 	'use strict';

- 

- 	var noResultsTemplate, LanguageCategoryDisplay;

- 

- 	/*jshint multistr:true */

- 	noResultsTemplate = '<div class="twelve columns uls-no-results-view hide">\

- 		<h2 data-i18n="uls-no-results-found" class="eleven columns offset-by-one uls-no-results-found-title">\

- 		No results found\

- 		</h2>\

- 		<div id="uls-no-found-more" class="uls-no-found-more">\

- 			<div class="ten columns offset-by-one">\

- 				<p>\

- 					<span data-i18n="uls-search-help">You can search by language name, \

- 					script name, ISO code of language or \

- 					you can browse by region:</span>\

- 					<a class="uls-region-link" data-i18n="uls-region-AM" data-region="AM">America</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-EU" data-region="EU">Europe</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-ME" data-region="ME">Middle East</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-AF" data-region="AF">Africa</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-AS" data-region="AS">Asia</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-PA" data-region="PA">Pacific</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-WW" data-region="WW">Worldwide</a>.\

- 				</p>\

- 			</div>\

- 		</div>\

- 	</div>';

- 	/*jshint multistr:false */

- 

- 	LanguageCategoryDisplay = function ( element, options ) {

- 		this.$element = $( element );

- 		this.options = $.extend( {}, $.fn.lcd.defaults, options );

- 		this.$element.addClass( 'lcd' );

- 		this.regionLanguages = {};

- 		this.renderTimeout = null;

- 		this.cachedQuicklist = null;

- 

- 		this.$element.append( $( noResultsTemplate ) );

- 		this.$noResults = this.$element.children( '.uls-no-results-view' );

- 

- 		this.render();

- 		this.listen();

- 	};

- 

- 	LanguageCategoryDisplay.prototype = {

- 		constructor: LanguageCategoryDisplay,

- 

- 		/**

- 		 * Adds language to the language list.

- 		 * @param {string} langCode

- 		 * @param {string} [regionCode]

- 		 * @return {bool} Whether the language was added.

- 		 */

- 		append: function ( langCode, regionCode ) {

- 			var lcd = this, i, regions;

- 

- 			if ( !this.options.languages[langCode] ) {

- 				// Language is unknown or not in the list of languages for this context.

- 				return false;

- 			}

- 

- 			if ( regionCode ) {

- 				regions = [regionCode];

- 			} else {

- 				regions = $.uls.data.getRegions( langCode );

- 			}

- 

- 			// Worldwides only displayed once

- 			if ( $.inArray( 'WW', regions ) > -1 ) {

- 				regions = ['WW'];

- 			}

- 

- 			for ( i = 0; i < regions.length; i++ ) {

- 				this.regionLanguages[regions[i]].push( langCode );

- 			}

- 

- 			// Work around the bad interface, delay rendering until we have got

- 			// all the languages to speed up performance.

- 			window.clearTimeout( this.renderTimeout );

- 			this.renderTimeout = window.setTimeout( function () {

- 				lcd.renderRegions();

- 			}, 50 );

- 

- 			return true;

- 		},

- 

- 		render: function () {

- 			var $section,

- 				lcd = this,

- 				regions = [],

- 				regionNames = {

- 					// These are fallback text when i18n library not present

- 					WW: 'Worldwide',

- 					SP: 'Special',

- 					AM: 'America',

- 					EU: 'Europe',

- 					ME: 'Middle East',

- 					AS: 'Asia',

- 					AF: 'Africa',

- 					PA: 'Pacific'

- 				};

- 

- 			regions.push( this.buildQuicklist() );

- 

- 			$.each( $.uls.data.regiongroups, function ( regionCode ) {

- 				lcd.regionLanguages[regionCode] = [];

- 				// Don't show the region unless it was enabled

- 				if ( $.inArray( regionCode, lcd.options.showRegions ) === -1 ) {

- 					return;

- 				}

- 

- 				$section = $( '<div>' )

- 					.addClass( 'eleven columns offset-by-one uls-lcd-region-section hide' )

- 					.attr( 'id', regionCode )

- 					.append(

- 						$( '<h3>' )

- 						.attr( 'data-i18n', 'uls-region-' + regionCode )

- 						.addClass( 'eleven columns uls-lcd-region-title' )

- 						.text( regionNames[regionCode] )

- 					);

- 

- 				regions.push( $section );

- 			} );

- 

- 			lcd.$element.append( regions );

- 

- 			this.i18n();

- 		},

- 

- 		/**

- 		 * Renders a region and displays it if it has content.

- 		 */

- 		renderRegions: function () {

- 			var lcd = this, languages,

- 				items = lcd.options.itemsPerColumn,

- 				columns = 4;

- 

- 			this.$noResults.addClass( 'hide' );

- 			this.$element.find( '.uls-lcd-region-section' ).each( function () {

- 				var $region = $( this ),

- 					regionCode = $region.attr( 'id' );

- 

- 				if ( $region.is( '#uls-lcd-quicklist' ) ) {

- 					return;

- 				}

- 

- 				$region.children( '.uls-language-block' ).remove();

- 

- 				languages = lcd.regionLanguages[regionCode];

- 				if ( !languages || languages.length === 0 ) {

- 					$region.addClass( 'hide' );

- 					return;

- 				}

- 

- 				lcd.renderRegion( $region, languages, items, columns );

- 				$region.removeClass( 'hide' );

- 

- 				lcd.regionLanguages[regionCode] = [];

- 			} );

- 

- 		},

- 

- 		/**

- 		 * Adds given languages sorted into rows and columns into given element.

- 		 * @param {jQuery} $region Element to add language list.

- 		 * @param {array} languages List of language codes.

- 		 * @param {number} itemsPerColumn How many languages fit in a column.

- 		 * @param {number} columnsPerRow How many columns fit in a row.

- 		 */

- 		renderRegion: function( $region, languages, itemsPerColumn, columnsPerRow ) {

- 			var i, lastItem, currentScript, nextScript, force,

- 				len = languages.length,

- 				items = [],

- 				columns = [],

- 				rows = [];

- 

- 			for ( i = 0; i < len; i++ ) {

- 				force = false;

- 				nextScript = $.uls.data.getScriptGroupOfLanguage( languages[i+1] );

- 

- 				lastItem = len - i === 1;

- 				// Force column break if script changes and column has more than one row already

- 				if ( i === 0 ) {

- 					currentScript = $.uls.data.getScriptGroupOfLanguage( languages[i] );

- 				} else if ( currentScript !== nextScript && items.length > 1 ) {

- 					force = true;

- 				}

- 				currentScript = nextScript;

- 

- 				items.push( this.renderItem( languages[i] ) );

- 

- 				if ( items.length >= itemsPerColumn || lastItem || force ) {

- 					columns.push( $( '<ul>' ).addClass( 'three columns' ).append( items ) );

- 					items = [];

- 					if ( columns.length >= columnsPerRow || lastItem ) {

- 						rows.push( $( '<div>' ).addClass( 'row uls-language-block' ).append( columns ) );

- 						columns = [];

- 					}

- 				}

- 			}

- 

- 			$region.append( rows );

- 		},

- 

- 		/**

- 		 * Creates dom node representing one item in language list.

- 		 * @param {string} code Language code

- 		 * @return {Element}

- 		 */

- 		renderItem: function( code ) {

- 			var a, name, autonym, li;

- 

- 			name = this.options.languages[code];

- 			autonym = $.uls.data.getAutonym( code ) || name || code;

- 

- 			// Not using jQuery as this is performance hotspot

- 			li = document.createElement( 'li' );

- 			li.title = name;

- 			li.lang = code;

- 			li.dir = $.uls.data.getDir( code );

- 			li.setAttribute( 'data-code', code );

- 

- 			a = document.createElement( 'a' );

- 			a.appendChild( document.createTextNode( autonym ) );

- 			a.className = 'autonym';

- 

- 			li.appendChild( a );

- 			if ( this.options.languageDecorator ) {

- 				this.options.languageDecorator( $( a ), code );

- 			}

- 			return li;

- 		},

- 

- 		i18n: function ( ) {

- 			this.$element.find( '[data-i18n]' ).i18n();

- 		},

- 

- 		/**

- 		 * Adds quicklist as a region.

- 		 */

- 		quicklist: function () {

- 			this.$element.find( '#uls-lcd-quicklist' ).removeClass( 'hide' );

- 		},

- 

- 		buildQuicklist: function () {

- 			var quickList, $quickListSection, $quickListSectionTitle;

- 

- 			if ( this.cachedQuicklist !== null ) {

- 				return this.cachedQuicklist;

- 			}

- 

- 			if ( $.isFunction( this.options.quickList ) ) {

- 				this.options.quickList = this.options.quickList();

- 			}

- 

- 			if ( !this.options.quickList ) {

- 				this.cachedQuicklist = $( [] );

- 				return this.cachedQuicklist;

- 			}

- 

- 			// Pick only the first elements, because we don't have room for more

- 			quickList = this.options.quickList;

- 			quickList = quickList.slice( 0, 16 );

- 			quickList.sort( $.uls.data.sortByAutonym );

- 

- 			$quickListSection = $( '<div>' )

- 				.addClass( 'eleven columns offset-by-one uls-lcd-region-section' )

- 				.attr( 'id', 'uls-lcd-quicklist' );

- 

- 			$quickListSectionTitle = $( '<h3>' )

- 				.attr( 'data-i18n', 'uls-common-languages' )

- 				.addClass( 'eleven columns uls-lcd-region-title' )

- 				.text( 'Common languages' ); // This is placeholder text if jquery.i18n not present

- 			$quickListSection.append( $quickListSectionTitle );

- 

- 			this.renderRegion( $quickListSection, quickList, 4, 4 );

- 

- 			$quickListSectionTitle.i18n();

- 

- 			this.cachedQuicklist = $quickListSection;

- 			return this.cachedQuicklist;

- 		},

- 

- 		show: function () {

- 			if ( !this.regionDivs ) {

- 				this.render();

- 			}

- 		},

- 

- 		empty: function () {

- 			this.$element.find( '#uls-lcd-quicklist' ).addClass( 'hide' );

- 		},

- 

- 		focus: function () {

- 			this.$element.focus();

- 		},

- 

- 		noResults: function () {

- 			this.$noResults.removeClass( 'hide' );

- 			if ( this.$noResults.find( '.uls-lcd-region-title' ).length ) {

- 				return;

- 			}

- 

- 			var $suggestions = this.buildQuicklist().clone();

- 			$suggestions.find( 'h3' )

- 				.data( 'i18n', 'uls-no-results-suggestion-title' )

- 				.text( 'You may be interested in:' )

- 				.i18n();

- 			this.$noResults.find( 'h2' ).after( $suggestions );

- 		},

- 

- 		listen: function () {

- 			var lcd = this;

- 

- 			if ( this.options.clickhandler ) {

- 				this.$element.on( 'click', '.row li', function () {

- 					lcd.options.clickhandler.call( this, $( this ).data( 'code' ) );

- 				} );

- 			}

- 

- 			// The region section need to be in sync with the map filter.

- 			lcd.$element.scroll( function () {

- 				var inview, inviewRegion,

- 					$ulsLanguageList = $( this ),

- 					scrollTop = $ulsLanguageList.position().top,

- 					scrollBottom = $ulsLanguageList.height();

- 

- 				// The region section need to be in sync with the map filter.

- 				inviewRegion = 'WW';

- 				lcd.$element.find( '.uls-lcd-region-section' ).each( function () {

- 					var $lcdRegionSection = $( this ),

- 						top = $lcdRegionSection.position().top,

- 						height = $lcdRegionSection.height(),

- 						padding = 10;

- 

- 					if ( top - padding <= scrollTop && height > scrollBottom ) {

- 						inviewRegion = $lcdRegionSection.attr( 'id' );

- 					}

- 				} );

- 

- 				// highlight the region visible while scrolling in the map.

- 				inview = $.uls.data.regiongroups[inviewRegion];

- 				if ( !$( '#uls-region-' + inview ).hasClass( 'active' ) ) {

- 					$( '.regionselector' ).removeClass( 'active' );

- 					$( '#uls-region-' + inview ).addClass( 'active' );

- 				}

- 			} );

- 		}

- 	};

- 

- 	$.fn.lcd = function ( option ) {

- 		return this.each( function () {

- 			var $this = $( this ),

- 				data = $this.data( 'lcd' ),

- 				options = typeof option === 'object' && option;

- 

- 			if ( !data ) {

- 				$this.data( 'lcd', ( data = new LanguageCategoryDisplay( this, options ) ) );

- 			}

- 

- 			if ( typeof option === 'string') {

- 				data[option]();

- 			}

- 		} );

- 	};

- 

- 	$.fn.lcd.defaults = {

- 		languages: null,

- 		showRegions: ['WW', 'AM', 'EU', 'ME', 'AF', 'AS', 'PA'],

- 		itemsPerColumn: 8,

- 		languageDecorator: null

- 	};

- 

- 	$.fn.lcd.Constructor = LanguageCategoryDisplay;

- } ( jQuery ) );

@@ -1,1 +0,0 @@ 

- (function(e){"use strict";var t,n;t='<div class="grid uls-menu uls-wide"> 			<div class="row"> 				<span id="uls-close" class="uls-icon-close"></span> 			</div> 			<div class="row"> 				<div class="uls-title-region seven columns">					<h1 data-i18n="uls-select-language" class="uls-title">Select Language</h1>				</div>				<div class="five columns uls-map-block" id="uls-map-block">					<div class="row">						<div data-regiongroup="1" id="uls-region-1" class="three columns uls-region uls-region-1">							<a data-i18n="uls-region-WW">Worldwide</a>						</div>						<div class="nine columns">							<div class="row uls-worldmap">								<div data-regiongroup="2" id="uls-region-2" class="four columns uls-region">									<a data-i18n="uls-region-AM">America</a>								</div>								<div data-regiongroup="3" id="uls-region-3" class="four columns uls-region">									<a><span data-i18n="uls-region-EU">Europe</span><br>									<span data-i18n="uls-region-ME">Middle East</span><br>									<span data-i18n="uls-region-AF">Africa</span></a>								</div>								<div data-regiongroup="4" id="uls-region-4" class="four columns uls-region">									<a><span data-i18n="uls-region-AS">Asia</span><br>									<span data-i18n="uls-region-PA">Pacific</span></a>								</div>							</div>						</div>					</div>				</div>			</div>			<div id="search" class="row uls-search"> 				<div class="one column">					<span class="uls-search-label"></span>				</div>				<div class="ten columns">					<div id="uls-search-input-block" class="uls-search-input-block">						<input type="text" class="uls-filterinput uls-filtersuggestion" id="uls-filtersuggestion" disabled="true"							autocomplete="off" /> <input type="text" class="uls-filterinput uls-languagefilter" id="uls-languagefilter"							data-clear="uls-languagefilter-clear" data-suggestion="uls-filtersuggestion"							placeholder="Language search" autocomplete="off" />					</div>				</div>				<div class="one column">					<span id="uls-languagefilter-clear" class="uls-languagefilter-clear"></span>				</div>			</div>			<div class="row uls-language-list"></div>			<div class="row" id="uls-settings-block"></div>		</div>';n=function(n,r){this.$element=e(n);this.options=e.extend({},e.fn.uls.defaults,r);this.$menu=e(t);this.languages=this.options.languages;for(var i in this.languages){if(e.uls.data.languages[i]===undefined){delete this.languages[i]}}this.left=this.options.left;this.top=this.options.top;this.shown=false;this.initialized=false;this.$languageFilter=this.$menu.find("#uls-languagefilter");this.$regionFilters=this.$menu.find(".uls-region");this.$resultsView=this.$menu.find("div.uls-language-list");this.render();this.listen();this.ready()};n.prototype={constructor:n,ready:function(){if(this.options.onReady){this.options.onReady.call(this)}},visible:function(){if(this.options.onVisible){this.options.onVisible.call(this)}},position:function(){var t=e.extend({},this.$element.offset(),{height:this.$element[0].offsetHeight});return{top:this.top!==undefined?this.top:t.top+t.height,left:this.left!==undefined?this.left:"25%"}},show:function(){this.$menu.css(this.position());if(this.options.compact){this.$menu.addClass("uls-compact")}if(!this.initialized){e("body").prepend(this.$menu);this.i18n();this.defaultSearch();this.initialized=true}e(".uls-menu").hide();this.$menu.show();this.$menu.scrollIntoView();this.shown=true;if(!this.isMobile()){this.$languageFilter.focus()}this.visible()},i18n:function(){if(e.i18n){this.$menu.find("[data-i18n]").i18n();this.$languageFilter.prop("placeholder",e.i18n("uls-search-placeholder"))}},defaultSearch:function(){this.$resultsView.lcd("empty");this.$regionFilters.regionselector("show")},hide:function(){this.$menu.hide();this.shown=false},render:function(){},noresults:function(){e(".regionselector").removeClass("active");this.$resultsView.lcd("noResults")},success:function(){e(".regionselector").removeClass("active");this.$resultsView.show()},listen:function(){var t,n=this;this.$element.on("click",e.proxy(this.click,this));this.$languageFilter.on("searchclear.uls",e.proxy(this.defaultSearch,this));this.$languageFilter.on("noresults.uls",e.proxy(this.noresults,this));this.$languageFilter.on("resultsfound.uls",e.proxy(this.success,this));this.$menu.find("#uls-close").on("click",e.proxy(this.cancel,this));this.$menu.on("click",function(e){e.stopPropagation()});this.$menu.on("keypress",e.proxy(this.keypress,this)).on("keyup",e.proxy(this.keyup,this));if(this.eventSupported("keydown")){this.$menu.on("keydown",e.proxy(this.keypress,this))}t=this.$resultsView.lcd({languages:this.languages,quickList:this.options.quickList,clickhandler:e.proxy(this.select,this),source:this.$languageFilter,showRegions:this.options.showRegions,languageDecorator:this.options.languageDecorator}).data("lcd");this.$languageFilter.languagefilter({$target:t,languages:this.languages,searchAPI:this.options.searchAPI,onSelect:e.proxy(this.select,this)});this.$menu.find(".uls-region, .uls-region-link").regionselector({$target:t,languages:this.languages,success:function(e){n.$languageFilter.languagefilter("deactivate");if(e.regionGroup===1){t.quicklist()}n.success()},noresults:function(){n.$languageFilter.languagefilter("clear")}});e("html").click(e.proxy(this.cancel,this))},select:function(e){this.hide();this.$languageFilter.trigger("searchclear");if(this.options.onSelect){this.options.onSelect.call(this,e)}},cancel:function(){this.hide();if(this.options.onCancel){this.options.onCancel.call(this)}},keyup:function(e){if(!this.shown){return}if(e.keyCode===27){this.cancel();e.preventDefault();e.stopPropagation()}},keypress:function(e){if(!this.shown){return}if(e.keyCode===27){this.cancel();e.preventDefault();e.stopPropagation()}},click:function(e){e.stopPropagation();e.preventDefault();if(this.shown){this.hide()}else{this.show()}},eventSupported:function(e){var t=e in this.$menu;if(!t){this.$element.setAttribute(e,"return;");t=typeof this.$element[e]==="function"}return t},isMobile:function(){return navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry)/)}};e.fn.uls=function(t){return this.each(function(){var r=e(this),i=r.data("uls"),s=typeof t==="object"&&t;if(!i){r.data("uls",i=new n(this,s))}if(typeof t==="string"){i[t]()}})};e.fn.uls.defaults={onSelect:null,searchAPI:null,languages:e.uls.data.getAutonyms(),quickList:null,compact:false,showRegions:["WW","AM","EU","ME","AF","AS","PA"],languageDecorator:null};if(!e.fn.i18n){e.fn.i18n=function(){}}e.fn.scrollIntoView=function(){return this.each(function(){var t,n=e(window),r=n.height(),i=n.scrollTop(),s=i+r,o=e(this),u=o.height(),a=o.offset().top,f=a+u;if(a<i||f>s){if(i>a){t=a}else{t=f-r}e("html, body").stop().animate({scrollTop:t},500)}})};e.fn.uls.Constructor=n})(jQuery);(function(e){"use strict";e.uls=e.uls||{};e.uls.data={languages:{aa:["Latn",["AF"],"Qafár af"],ab:["Cyrl",["EU"],"Аҧсшәа"],ace:["Latn",["AS","PA"],"Acèh"],ady:["Cyrl",["EU","ME"],"Адыгэбзэ"],"ady-cyrl":["ady"],"ady-latn":["Latn",["EU","ME"],"Adygabze"],aeb:["Arab",["AF"],"زَوُن"],af:["Latn",["AF"],"Afrikaans"],ahr:["Deva",["AS"],"अहिराणी"],ak:["Latn",["AF"],"Akan"],akz:["Latn",["AM"],"Albaamo innaaɬiilka"],aln:["Latn",["EU"],"Gegë"],am:["Ethi",["AF"],"አማርኛ"],an:["Latn",["EU"],"aragonés"],ang:["Latn",["EU"],"Ænglisc"],anp:["Deva",["AS"],"अङ्गिका"],ar:["Arab",["ME"],"العربية"],arc:["Syrc",["ME"],"ܐܪܡܝܐ"],arn:["Latn",["AM"],"mapudungun"],aro:["Latn",["AM"],"Araona"],arq:["Arab",["AF"],"جازايرية"],ary:["Latn",["ME"],"Maġribi"],arz:["Arab",["ME"],"مصرى"],as:["Beng",["AS"],"অসমীয়া"],ase:["Sgnw",["AM"],"American sign language"],ast:["Latn",["EU"],"asturianu"],av:["Cyrl",["EU"],"авар"],avk:["Latn",["WW"],"Kotava"],ay:["Latn",["AM"],"Aymar aru"],az:["az-latn"],"az-latn":["Latn",["EU","ME"],"azərbaycanca"],"az-arab":["Arab",["EU","ME"],"آذربايجانجا"],"az-cyrl":["Latn",["EU","ME"],"азәрбајҹанҹа"],azb:["az-arab"],ba:["Cyrl",["EU"],"башҡортса"],bar:["Latn",["EU"],"Boarisch"],"bat-smg":["sgs"],"bbc-latn":["Latn",["AS"],"Batak Toba"],"bbc-batk":["Batk",["AS"],"Batak Toba"],bbc:["Latn",["AS"],"Batak Toba"],bcc:["Arab",["AS","ME"],"بلوچی مکرانی"],bcl:["Latn",["AS"],"Bikol Central"],"be-tarask":["Cyrl",["EU"],"беларуская (тарашкевіца)"],"be-x-old":["be-tarask"],be:["Cyrl",["EU"],"беларуская"],bew:["Latn",["AS"],"Bahasa Betawi"],bfq:["Taml",["AS"],"படகா"],bg:["Cyrl",["EU"],"български"],bh:["Deva",["AS"],"भोजपुरी"],bho:["Deva",["AS"],"भोजपुरी"],bi:["Latn",["PA"],"Bislama"],bjn:["Latn",["AS"],"Bahasa Banjar"],bm:["Latn",["AF"],"bamanankan"],bn:["Beng",["AS"],"বাংলা"],bo:["Tibt",["AS"],"བོད་ཡིག"],bpy:["Beng",["AS"],"বিষ্ণুপ্রিয়া মণিপুরী"],bqi:["Arab",["ME"],"بختياري"],br:["Latn",["EU"],"brezhoneg"],brh:["Latn",["ME","AS"],"Bráhuí"],brx:["Deva",["AS"],"बड़ो"],bs:["Latn",["EU"],"bosanski"],bto:["Latn",["AS"],"Iriga Bicolano"],bug:["Bugi",["AS"],"ᨅᨔ ᨕᨘᨁᨗ"],bxr:["Cyrl",["AS"],"буряад"],ca:["Latn",["EU"],"català"],"cbk-zam":["Latn",["AS"],"Chavacano de Zamboanga"],cdo:["Latn",["AS"],"Mìng-dĕ̤ng-ngṳ̄"],ce:["Cyrl",["EU"],"нохчийн"],ceb:["Latn",["AS"],"Cebuano"],ch:["Latn",["PA"],"Chamoru"],cho:["Latn",["AM"],"Choctaw"],chr:["Cher",["AM"],"ᏣᎳᎩ"],chy:["Latn",["AM"],"Tsetsêhestâhese"],ckb:["Arab",["ME"],"کوردی"],co:["Latn",["EU"],"corsu"],cps:["Latn",["AS"],"Capiceño"],cr:["Cans",["AM"],"ᓀᐦᐃᔭᐍᐏᐣ"],"cr-cans":["cr"],"cr-latn":["Latn",["AM"],"Nēhiyawēwin"],crh:["Latn",["EU"],"qırımtatarca"],"crh-cyrl":["Cyrl",["EU"],"къырымтатарджа"],"crh-latn":["crh"],cs:["Latn",["EU"],"česky"],csb:["Latn",["EU"],"kaszëbsczi"],cu:["Cyrl",["EU"],"словѣньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ"],cv:["Cyrl",["EU"],"Чӑвашла"],cy:["Latn",["EU"],"Cymraeg"],da:["Latn",["EU"],"dansk"],"de-at":["Latn",["EU"],"Österreichisches Deutsch"],"de-ch":["Latn",["EU"],"Schweizer Hochdeutsch"],"de-formal":["Latn",["EU"],"Deutsch (Sie-Form)"],de:["Latn",["EU"],"Deutsch"],diq:["Latn",["EU","AS"],"Zazaki"],dsb:["Latn",["EU"],"dolnoserbski"],dtp:["Latn",["AS"],"Dusun Bundu-liwan"],dv:["Thaa",["AS"],"ދިވެހިބަސް"],dz:["Tibt",["AS"],"ཇོང་ཁ"],ee:["Latn",["AF"],"eʋegbe"],egl:["Latn",["EU"],"Emiliàn"],el:["Grek",["EU"],"Ελληνικά"],eml:["Latn",["EU"],"emiliàn e rumagnòl"],"en-ca":["Latn",["AM"],"Canadian English"],"en-gb":["Latn",["EU","AS","PA"],"British English"],en:["Latn",["EU","AM","AF","ME","AS","PA","WW"],"English"],eo:["Latn",["WW"],"Esperanto"],"es-419":["Latn",["AM"],"español de America Latina"],"es-formal":["Latn",["EU","AM","AF","WW"],"español (formal)"],es:["Latn",["EU","AM","AF","WW"],"español"],esu:["Latn",["AM"],"Yup'ik"],et:["Latn",["EU"],"eesti"],eu:["Latn",["EU"],"euskara"],ext:["Latn",["EU"],"estremeñu"],fa:["Arab",["ME"],"فارسی"],ff:["Latn",["AF"],"Fulfulde"],fi:["Latn",["EU"],"suomi"],fil:["tl"],fit:["Latn",["EU"],"meänkieli"],"fiu-vro":["vro"],fj:["Latn",["PA"],"Na Vosa Vakaviti"],fo:["Latn",["EU"],"føroyskt"],fr:["Latn",["EU","AM","WW"],"français"],frc:["Latn",["AM"],"français cadien"],frp:["Latn",["EU"],"arpetan"],frr:["Latn",["EU"],"Nordfriisk"],fur:["Latn",["EU"],"furlan"],fy:["Latn",["EU"],"Frysk"],ga:["Latn",["EU"],"Gaeilge"],gag:["Latn",["EU"],"Gagauz"],gah:["Latn",["AS"],"Alekano"],"gan-hans":["Hans",["AS"],"赣语(简体)"],"gan-hant":["gan"],gan:["Hant",["AS"],"贛語"],gbz:["Latn",["AS"],"Dari"],gcf:["Latn",["AM"],"Guadeloupean Creole French"],gd:["Latn",["EU"],"Gàidhlig"],gl:["Latn",["EU"],"galego"],glk:["Arab",["ME"],"گیلکی"],gn:["Latn",["AM"],"Avañe'ẽ"],gom:["Deva",["AS"],"कोंकणी"],"gom-deva":["gom"],"gom-latn":["Latn",["AS"],"Konknni"],got:["Goth",["EU"],"𐌲𐌿𐍄𐌹𐍃𐌺"],grc:["Grek",["EU"],"Ἀρχαία ἑλληνικὴ"],gsw:["Latn",["EU"],"Alemannisch"],gu:["Gujr",["AS"],"ગુજરાતી"],guc:["Latn",["AM"],"Wayúu"],gur:["Latn",["AF"],"Gurenɛ"],gv:["Latn",["EU"],"Gaelg"],"ha-arab":["Arab",["AF"],"هَوُسَ"],"ha-latn":["Latn",["AF"],"Hausa"],ha:["ha-latn"],hak:["Latn",["AS"],"Hak-kâ-fa"],haw:["Latn",["AM","PA"],"Hawai`i"],he:["Hebr",["ME"],"עברית"],hi:["Deva",["AS"],"हिन्दी"],hif:["Latn",["PA","AS"],"Fiji Hindi"],"hif-deva":["Deva",["AS"],"फ़ीजी हिन्दी"],"hif-latn":["hif"],hil:["Latn",["AS"],"Ilonggo"],hne:["Deva",["AS"],"छत्तीसगढ़ी"],ho:["Latn",["PA"],"Hiri Motu"],hr:["Latn",["EU"],"hrvatski"],hsb:["Latn",["EU"],"hornjoserbsce"],hsn:["Hans",["AS"],"湘语"],ht:["Latn",["AM"],"Kreyòl ayisyen"],"hu-formal":["Latn",["EU"],"Magyar (magázó)"],hu:["Latn",["EU"],"magyar"],hy:["Armn",["EU","ME"],"Հայերեն"],hz:["Latn",["AF"],"Otsiherero"],ia:["Latn",["WW"],"interlingua"],id:["Latn",["AS"],"Bahasa Indonesia"],ie:["Latn",["WW"],"Interlingue"],ig:["Latn",["AF"],"Igbo"],ii:["Yiii",["AS"],"ꆇꉙ"],ik:["Latn",["AM"],"Iñupiak"],"ike-cans":["Cans",["AM"],"ᐃᓄᒃᑎᑐᑦ"],"ike-latn":["Latn",["AM"],"inuktitut"],ilo:["Latn",["AS"],"Ilokano"],inh:["Cyrl",["EU"],"ГӀалгӀай"],io:["Latn",["WW"],"Ido"],is:["Latn",["EU"],"íslenska"],it:["Latn",["EU"],"italiano"],iu:["Cans",["AM"],"ᐃᓄᒃᑎᑐᑦ"],ja:["Jpan",["AS"],"日本語"],jam:["Latn",["AM"],"Patois"],jbo:["Latn",["WW"],"lojban"],jut:["Latn",["EU"],"jysk"],jv:["Latn",["AS","PA"],"Basa Jawa"],"jv-java":["Java",["AS","PA"],"ꦧꦱꦗꦮ"],ka:["Geor",["EU"],"ქართული"],kaa:["Latn",["AS"],"Qaraqalpaqsha"],kab:["Latn",["AF","EU"],"Taqbaylit"],"kbd-cyrl":["kbd"],"kbd-latn":["Latn",["EU"],"Qabardjajəbza"],kbd:["Cyrl",["EU","ME"],"Адыгэбзэ"],kea:["Latn",["AF"],"Kabuverdianu"],kg:["Latn",["AF"],"Kongo"],kgp:["Latn",["AM"],"Kaingáng"],khw:["Arab",["ME","AS"],"کھوار"],ki:["Latn",["AF"],"Gĩkũyũ"],kiu:["Latn",["EU","ME"],"Kırmancki"],kj:["Latn",["AF"],"Kwanyama"],kjh:["Cyrl",["AS"],"хакас"],kk:["kk-cyrl"],"kk-arab":["Arab",["EU","AS"],"قازاقشا (تٶتە)"],"kk-cn":["kk-arab"],"kk-cyrl":["Cyrl",["EU","AS"],"қазақша"],"kk-kz":["kk-cyrl"],"kk-latn":["Latn",["EU","AS","ME"],"qazaqşa"],"kk-tr":["kk-latn"],kl:["Latn",["AM","EU"],"kalaallisut"],km:["Khmr",["AS"],"ភាសាខ្មែរ"],kn:["Knda",["AS"],"ಕನ್ನಡ"],"ko-kp":["Kore",["AS"],"한국어 (조선)"],ko:["Kore",["AS"],"한국어"],koi:["Cyrl",["EU"],"Перем Коми"],kr:["Latn",["AF"],"Kanuri"],krc:["Cyrl",["EU"],"къарачай-малкъар"],kri:["Latn",["AF"],"Krio"],krj:["Latn",["ME","EU"],"Kinaray-a"],krl:["Latn",["EU"],"Karjala"],"ks-arab":["Arab",["AS"],"کٲشُر"],"ks-deva":["Deva",["AS"],"कॉशुर"],ks:["Arab",["AS"],"کٲشُر"],ksf:["Latn",["AF"],"Bafia"],ksh:["Latn",["EU"],"Ripoarisch"],ku:["ku-latn"],"ku-arab":["Arab",["EU","ME"],"كوردي"],"ku-latn":["Latn",["EU","ME"],"Kurdî"],kv:["Cyrl",["EU"],"коми"],kw:["Latn",["EU"],"kernowek"],ky:["Cyrl",["AS"],"Кыргызча"],la:["Latn",["EU"],"Latina"],lad:["lad-latn"],"lad-latn":["Latn",["ME","EU","AM"],"Ladino"],"lad-hebr":["Hebr",["ME","EU","AM"],"לאדינו"],lb:["Latn",["EU"],"Lëtzebuergesch"],lbe:["Cyrl",["EU"],"лакку"],lez:["Cyrl",["EU"],"лезги"],lfn:["Latn",["WW"],"Lingua Franca Nova"],lg:["Latn",["AF"],"Luganda"],li:["Latn",["EU"],"Limburgs"],lij:["Latn",["EU"],"Ligure"],liv:["Latn",["EU"],"Līvõ kēļ"],lld:["Latn",["EU"],"Ladin"],lmo:["Latn",["EU"],"lumbaart"],ln:["Latn",["AF"],"lingála"],lo:["Laoo",["AS"],"ລາວ"],loz:["Latn",["AF"],"Silozi"],lt:["Latn",["EU"],"lietuvių"],lrc:["Arab",["AS"],"لوری"],ltg:["Latn",["EU"],"latgaļu"],lud:["Latn",["EU"],"lüüdi"],lus:["Latn",["AS"],"Mizo ţawng"],lut:["Latn",["AM"],"dxʷləšucid"],lv:["Latn",["EU"],"latviešu"],lzh:["Hant",["AS"],"文言"],lzz:["Latn",["EU","ME"],"Lazuri"],mai:["Deva",["AS"],"मैथिली"],"map-bms":["Latn",["AS"],"Basa Banyumasan"],mdf:["Cyrl",["EU"],"мокшень"],mfe:["Latn",["AM"],"Morisyen"],mg:["Latn",["AF"],"Malagasy"],mh:["Latn",["PA"],"Ebon"],mhr:["Cyrl",["EU"],"олык марий"],mi:["Latn",["PA"],"Māori"],mic:["Latn",["AM"],"Mi'kmaq"],min:["Latn",["AS"],"Baso Minangkabau"],mk:["Cyrl",["EU"],"македонски"],ml:["Mlym",["AS","ME"],"മലയാളം"],mn:["Cyrl",["AS"],"монгол"],mnc:["Mong",["AS"],"ᠮᠠᠨᠵᡠ ᡤᡳᠰᡠᠨ"],mni:["Beng",["AS"],"মেইতেই লোন্"],mnw:["Mymr",["AS"],"ဘာသာ မန်"],mo:["Cyrl",["EU"],"молдовеняскэ"],mr:["Deva",["AS","ME"],"मराठी"],mrj:["Cyrl",["EU"],"кырык мары"],ms:["Latn",["AS"],"Bahasa Melayu"],mt:["Latn",["EU"],"Malti"],mui:["Latn",["AS"],"Musi"],mus:["Latn",["AM"],"Mvskoke"],mwl:["Latn",["EU"],"Mirandés"],mwv:["Latn",["AS"],"Behase Mentawei"],my:["Mymr",["AS"],"မြန်မာဘာသာ"],myv:["Cyrl",["EU"],"эрзянь"],mzn:["Arab",["ME","AS"],"مازِرونی"],na:["Latn",["PA"],"Dorerin Naoero"],nah:["Latn",["AM"],"Nāhuatl"],nan:["Latn",["AS"],"Bân-lâm-gú"],nap:["Latn",["EU"],"Nnapulitano"],nb:["Latn",["EU"],"norsk (bokmål)"],"nds-nl":["Latn",["EU"],"Nedersaksisch"],nds:["Latn",["EU"],"Plattdüütsch"],ne:["Deva",["AS"],"नेपाली"],"new":["Deva",["AS"],"नेपाल भाषा"],ng:["Latn",["AF"],"Oshiwambo"],niu:["Latn",["PA"],"ko e vagahau Niuē"],njo:["Latn",["AS"],"Ao"],"nl-informal":["Latn",["EU","AM"],"Nederlands (informeel)"],nl:["Latn",["EU","AM"],"Nederlands"],nn:["Latn",["EU"],"norsk (nynorsk)"],no:["Latn",["EU"],"norsk"],nov:["Latn",["WW"],"Novial"],nqo:["Nkoo",["AF"],"ߒߞߏ"],nrm:["Latn",["EU"],"Nouormand"],nso:["Latn",["AF"],"Sesotho sa Leboa"],nv:["Latn",["AM"],"Diné bizaad"],ny:["Latn",["AF"],"Chi-Chewa"],oc:["Latn",["EU"],"occitan"],om:["Latn",["AF"],"Oromoo"],or:["Orya",["AS"],"ଓଡ଼ିଆ"],os:["Cyrl",["EU"],"Ирон"],ota:["Arab",["AS","EU"],"لسان عثمانى"],pa:["pa-guru"],"pa-guru":["Guru",["AS"],"ਪੰਜਾਬੀ"],pag:["Latn",["AS"],"Pangasinan"],pam:["Latn",["AS"],"Kapampangan"],pap:["Latn",["AM"],"Papiamentu"],pcd:["Latn",["EU"],"Picard"],pdc:["Latn",["EU","AM"],"Deitsch"],pdt:["Latn",["EU","AM"],"Plautdietsch"],pfl:["Latn",["EU"],"Pälzisch"],pi:["Deva",["AS"],"पालि"],pih:["Latn",["PA"],"Norfuk / Pitkern"],pis:["Latn",["PA"],"Pijin"],pko:["Latn",["AF"],"Pökoot"],pl:["Latn",["EU"],"polski"],pms:["Latn",["EU"],"Piemontèis"],pnb:["Arab",["AS","ME"],"پنجابی"],pnt:["Grek",["EU"],"Ποντιακά"],ppl:["Latn",["AM"],"Nawat"],prg:["Latn",["EU"],"Prūsiskan"],ps:["Arab",["AS","ME"],"پښتو"],"pt-br":["Latn",["AM"],"português do Brasil"],pt:["Latn",["EU","AM","AS","PA","AF","WW"],"português"],qu:["Latn",["AM"],"Runa Simi"],qug:["Latn",["AM"],"Runa shimi"],rap:["Latn",["AM"],"arero rapa nui"],rgn:["Latn",["EU"],"Rumagnôl"],rif:["Latn",["AF"],"Tarifit"],rki:["Mymr",["AS"],"ရခိုင်"],rm:["Latn",["EU"],"rumantsch"],rmf:["Latn",["EU"],"kaalengo tšimb"],rmy:["Latn",["EU"],"Romani"],rn:["Latn",["AF"],"Kirundi"],ro:["Latn",["EU"],"română"],"roa-rup":["rup"],"roa-tara":["Latn",["EU"],"tarandíne"],rtm:["Latn",["PA"],"Faeag Rotuma"],ru:["Cyrl",["EU","AS","ME"],"русский"],rue:["Cyrl",["EU"],"русиньскый"],rup:["Latn",["EU"],"Armãneashce"],ruq:["Cyrl",["EU"],"Влахесте"],"ruq-cyrl":["ruq"],"ruq-grek":["Grek",["EU"],"Megleno-Romanian (Greek script)"],"ruq-latn":["Latn",["EU"],"Vlăheşte"],rut:["Cyrl",["EU"],"мыхаӀбишды"],rw:["Latn",["AF"],"Kinyarwanda"],rwr:["Deva",["AS"],"मारवाड़ी"],ryu:["Kana",["AS"],"ʔucināguci"],sa:["Deva",["AS"],"संस्कृतम्"],sah:["Cyrl",["EU","AS"],"саха тыла"],sat:["Latn",["AS"],"Santali"],saz:["Saur",["AS"],"ꢱꣃꢬꢵꢯ꣄ꢡ꣄ꢬꢵ"],sc:["Latn",["EU"],"sardu"],scn:["Latn",["EU"],"sicilianu"],sco:["Latn",["EU"],"Scots"],sd:["Arab",["AS"],"سنڌي"],sdc:["Latn",["EU"],"Sassaresu"],se:["Latn",["EU"],"sámegiella"],ses:["Latn",["AF"],"Koyraboro Senni"],sei:["Latn",["AM"],"Cmique Itom"],sg:["Latn",["AF"],"Sängö"],sgs:["Latn",["EU"],"žemaitėška"],sh:["Latn",["EU"],"srpskohrvatski"],"shi-latn":["Latn",["AF"],"Tašlḥiyt"],"shi-tfng":["Tfng",["AF"],"ⵜⴰⵛⵍⵃⵉⵜ"],shi:["shi-latn"],shn:["Mymr",["AS"],"လိၵ်ႈတႆး"],si:["Sinh",["AS"],"සිංහල"],simple:["Latn",["WW"],"Simple English"],sk:["Latn",["EU"],"slovenčina"],sl:["Latn",["EU"],"slovenščina"],sli:["Latn",["EU"],"Schläsch"],slr:["Latn",["AS"],"Salırça"],sly:["Latn",["AS"],"Bahasa Selayar"],syc:["Syrc",["ME"],"ܣܘܪܝܝܐ"],sm:["Latn",["PA"],"Gagana Samoa"],sma:["Latn",["EU"],"åarjelsaemien"],smj:["Latn",["EU"],"julevsámegiella"],smn:["Latn",["EU"],"anarâškielâ"],sms:["Latn",["EU"],"sää´mǩiõll"],sn:["Latn",["AF"],"chiShona"],so:["Latn",["AF"],"Soomaaliga"],sq:["Latn",["EU"],"shqip"],sr:["sr-cyrl"],"sr-ec":["sr-cyrl"],"sr-cyrl":["Cyrl",["EU"],"српски"],"sr-el":["sr-latn"],"sr-latn":["Latn",["EU"],"srpski"],srn:["Latn",["AM","EU"],"Sranantongo"],ss:["Latn",["AF"],"SiSwati"],st:["Latn",["AF"],"Sesotho"],stq:["Latn",["EU"],"Seeltersk"],su:["Latn",["AS"],"Basa Sunda"],sv:["Latn",["EU"],"svenska"],sw:["Latn",["AF"],"Kiswahili"],swb:["Latn",["AF"],"Shikomoro"],sxu:["Latn",["EU"],"Säggssch"],szl:["Latn",["EU"],"ślůnski"],ta:["Taml",["AS"],"தமிழ்"],tcy:["Knda",["AS"],"ತುಳು"],te:["Telu",["AS"],"తెలుగు"],tet:["Latn",["AS","PA"],"tetun"],"tg-cyrl":["Cyrl",["AS"],"тоҷикӣ"],"tg-latn":["Latn",["AS"],"tojikī"],tg:["Cyrl",["AS"],"тоҷикӣ"],th:["Thai",["AS"],"ไทย"],ti:["Ethi",["AF"],"ትግርኛ"],tk:["Latn",["AS"],"Türkmençe"],tkr:["Cyrl",["AS"],"ЦӀаьхна миз"],tl:["Latn",["AS"],"Tagalog"],tly:["Cyrl",["EU","AS","ME"],"толышә зывон"],tn:["Latn",["AF"],"Setswana"],to:["Latn",["PA"],"lea faka-Tonga"],tokipona:["Latn",["WW"],"Toki Pona"],tpi:["Latn",["PA","AS"],"Tok Pisin"],tr:["Latn",["EU","ME"],"Türkçe"],trp:["Latn",["AS"],"Kokborok (Tripuri)"],tru:["Latn",["AS"],"Ṫuroyo"],ts:["Latn",["AF"],"Xitsonga"],tsd:["Grek",["EU"],"Τσακωνικά"],tt:["Cyrl",["EU"],"татарча"],"tt-cyrl":["tt"],"tt-latn":["Latn",["EU"],"tatarça"],ttt:["Cyrl",["AS"],"Tati"],tum:["Latn",["AF"],"chiTumbuka"],tw:["Latn",["AF"],"Twi"],twd:["Latn",["EU"],"Tweants"],ty:["Latn",["PA"],"Reo Mā`ohi"],tyv:["Cyrl",["AS"],"тыва дыл"],tzm:["Tfng",["AF"],"ⵜⴰⵎⴰⵣⵉⵖⵜ"],udm:["Cyrl",["EU"],"удмурт"],ug:["ug-arab"],"ug-arab":["Arab",["AS"],"ئۇيغۇرچە"],"ug-latn":["Latn",["AS"],"uyghurche"],"ug-cyrl":["Cyrl",["AS"],"уйғурчә"],uk:["Cyrl",["EU"],"українська"],ur:["Arab",["AS","ME"],"اردو"],uz:["Latn",["AS"],"oʻzbekcha"],ve:["Latn",["AF"],"Tshivenda"],vec:["Latn",["EU"],"vèneto"],vep:["Latn",["EU"],"vepsän kel’"],vi:["Latn",["AS"],"Tiếng Việt"],vls:["Latn",["EU"],"West-Vlams"],vmf:["Latn",["EU"],"Mainfränkisch"],vo:["Latn",["WW"],"Volapük"],vot:["Latn",["EU"],"Vaďďa"],vro:["Latn",["EU"],"Võro"],wa:["Latn",["EU"],"walon"],war:["Latn",["AS"],"Winaray"],wls:["Latn",["PA"],"Faka'uvea"],wo:["Latn",["AF"],"Wolof"],wuu:["Hans",["AS"],"吴语"],xal:["Cyrl",["EU"],"хальмг"],xh:["Latn",["AF"],"isiXhosa"],xmf:["Geor",["EU"],"მარგალური"],ydd:["Hebr",["AS","EU"],"Eastern Yiddish"],yi:["Hebr",["ME","EU","AM"],"ייִדיש"],yo:["Latn",["AF"],"Yorùbá"],yrk:["Cyrl",["AS"],"Ненэцяʼ вада"],yrl:["Latn",["AM"],"ñe'engatú"],yua:["Latn",["AM"],"Maaya T'aan"],yue:["Hant",["AS"],"粵語"],za:["Latn",["AS"],"Vahcuengh"],zea:["Latn",["EU"],"Zeêuws"],zh:["Hans",["AS"],"中文"],"zh-classical":["Hant",["AS"],"文言"],"zh-cn":["Hans",["AS"],"中文(中国大陆)"],"zh-hans":["Hans",["AS"],"中文(简体)"],"zh-hant":["Hant",["AS"],"中文(繁體)"],"zh-hk":["Hant",["AS"],"中文(香港)"],"zh-min-nan":["nan"],"zh-mo":["Hant",["AS"],"中文(澳門)"],"zh-my":["Hans",["AS"],"中文(马来西亚)"],"zh-sg":["Hans",["AS"],"中文(新加坡)"],"zh-tw":["Hant",["AS"],"中文(台灣)"],"zh-yue":["yue"],zu:["Latn",["AF"],"isiZulu"]},scriptgroups:{Latin:["Latn","Goth"],Greek:["Grek"],WestCaucasian:["Armn","Geor"],Arabic:["Arab"],MiddleEastern:["Hebr","Syrc"],African:["Ethi","Nkoo","Tfng"],SouthAsian:["Beng","Deva","Gujr","Guru","Knda","Mlym","Orya","Saur","Sinh","Taml","Telu","Tibt","Thaa"],Cyrillic:["Cyrl"],CJK:["Hans","Hant","Kana","Kore","Jpan","Yiii"],SouthEastAsian:["Batk","Bugi","Java","Khmr","Laoo","Mymr","Thai"],Mongolian:["Mong"],SignWriting:["Sgnw"],NativeAmerican:["Cher","Cans"],Special:["Zyyy"]},rtlscripts:["Arab","Hebr","Syrc","Nkoo","Thaa"],regiongroups:{WW:1,SP:1,AM:2,EU:3,ME:3,AF:3,AS:4,PA:4},territories:{AC:["en"],AD:["ca","es","fr"],AE:["ar","ml","ps","bal","fa"],AF:["fa","ps","haz","uz-arab","tk-latn","prd","bal","ug-arab","kk-arab"],AG:["en","pt"],AI:["en"],AL:["sq","el","mk"],AM:["hy","ku-latn","az-latn"],AO:["pt","umb","kmb","ln"],AQ:["und"],AR:["es","cy","gn"],AS:["sm","en"],AT:["de","bar","hr","sl","hu"],AU:["en","zh-hant","it"],AW:["nl","pap","en"],AX:["sv"],AZ:["az-latn","az-cyrl","tly-latn","ku-latn","ttt-latn","tkr-latn"],BA:["bs-cyrl","bs-latn","hr","sr-cyrl","sr-latn"],BB:["en"],BD:["bn","rkt","syl","ccp","my","grt","mni"],BE:["nl","en","fr","vls","wa","de"],BF:["mos","dyu","fr"],BG:["bg","tr"],BH:["ar","ml"],BI:["rn","fr","sw"],BJ:["fr","fon","yo"],BL:["fr"],BM:["en"],BN:["ms-latn","zh-hant","ms-arab","en"],BO:["es","qu","ay","gn","aro"],BQ:["pap","nl"],BR:["pt","de","it","ja","ko","kgp","gub","yrl","xav"],BS:["en"],BT:["dz","ne","tsj","lep"],BV:["und"],BW:["en","tn","af"],BY:["be","ru"],BZ:["en","es"],CA:["en","fr","it","de","pdt","cr-cans","crk","yi","iu-cans","iu-latn","moe","crj","atj","crl","csw","crm","ikt","moh","dgr","den","scs","nsk","chp","gwi"],CC:["ms-arab","en"],CD:["sw","lua","swc","fr","ln","lu","kg","lol","rw"],CF:["fr","sg","ln"],CG:["fr","ln"],CH:["de","fr","gsw","it","lmo","rm","rmo","wae"],CI:["fr","bci","sef","dnj","kfo","bqv"],CK:["en"],CL:["es","arn"],CM:["fr","en","bum","ff","ewo","ybb","bbj","nnh","bkm","bas","bax","byv","mua","maf","bfd","bss","kkj","dua","mgo","ar","jgo","ksf","agq","ha-arab","nmg","yav"],CN:["zh-hans","wuu","hsn","hak","nan","gan","ii","ug-arab","za","mn-mong","bo","ko","kk-arab","lis","ky-arab","nxq","khb","tdd","lcp","en","ru","vi","uz-cyrl","lzh"],CO:["es","guc"],CP:["und"],CR:["es"],CU:["es"],CV:["kea","pt"],CW:["pap","nl","es"],CX:["en"],CY:["el","tr","hy","ar"],CZ:["cs","de","pl"],DE:["de","en","nds","vmf","tr","hr","it","ku-latn","ru","el","ksh","pl","es","nl","da","hsb","frr","dsb","frs","stq","pfl"],DG:["en"],DJ:["aa","so","ar","fr"],DK:["da","de","kl","jut"],DM:["en"],DO:["es","en"],DZ:["arq","ar","fr","kab"],EA:["es"],EC:["es","qu","qug"],EE:["et","ru","vro"],EG:["ar","arz","el"],EH:["ar"],ER:["ti","en","tig","ar","aa","ssy","byn"],ES:["es","en","ca","gl","eu","ast","ext"],ET:["en","am","om","so","ti","sid","wal","aa"],FI:["fi","sv","ru","en","et","rmf","se","smn","sms"],FJ:["en","hi","hif-deva","fj","rtm"],FK:["en"],FM:["chk","pon","kos","yap","en","uli"],FO:["fo"],FR:["fr","en","oc","it","pt","pcd","gsw","br","co","ca","nl","eu","frp","ia"],GA:["fr","puu"],GB:["en","sco","pa-guru","cy","bn","zh-hant","syl","el","it","ks-arab","gd","yi","ml","ga","fr","kw"],GD:["en"],GE:["ka","xmf","ru","hy","ab","os","ku-latn"],GF:["fr","gcr","zh-hant"],GG:["en"],GH:["ak","en","ee","abr","gur","gaa","ha-latn","saf"],GI:["en"],GL:["kl","da"],GM:["en","man-latn"],GN:["fr","ff","man-nkoo","sus","nqo","kpe"],GP:["fr"],GQ:["es","fan","fr","bvb"],GR:["el","pnt-grek","mk","tr","bg","sq","tsd"],GS:["und"],GT:["es","quc"],GU:["en","ch"],GW:["pt"],GY:["en"],HK:["zh-hant","en","zh-hans"],HM:["und"],HN:["es","en"],HR:["hr","it"],HT:["ht","fr"],HU:["hu","de","ro","hr","sk","sl"],IC:["es"],ID:["id","jv","su","mad","ms-arab","min","bew","ban","bug","bjn","ace","sas","bbc","zh-hant","mak","ljp","rej","gor","nij","kge","aoz","kvr","lbw","rob","mdr","sxn","sly","mwv"],IE:["en","ga"],IL:["he","ar","ru","ro","yi","en","pl","lad","hu","am","ti","ml"],IM:["en","gv"],IN:["hi","en","bn","te","mr","ta","ur","gu","kn","ml","or","pa-guru","bho","awa","as","bgc","mag","mwr","mai","hne","dcc","bjj","ne","sat","wtm","rkt","ks-arab","kok","gom","swv","gbm","lmn","sd-arab","gon-telu","kfy","doi","kru","sck","wbq","xnr","tcy","wbr","khn","brx","noe","bhb","mni","raj","hoc","mtr","unr-beng","bhi","hoj","kha","kfr","grt","unx-beng","bfy","srx","saz","ccp","sd-deva","bfq","njo","ria","bo","bpy","bft","bra","lep","btv","lif-deva","lah","sa","kht","dv","dz"],IO:["en"],IQ:["ar","ckb","fa","syr"],IR:["fa","az-arab","azb","mzn","glk","ckb","tk-latn","lrc","ar","bal","rmt","bqi","luz","lki","prd","hy","ps","ka","gbz","kk-arab"],IS:["is","da"],IT:["it","en","fr","lmo","pms","sc","de","vec","nap","lij","scn","sl","sdc","fur","egl","ca","el","hr","rgn"],JE:["en"],JM:["en","jam"],JO:["ar"],JP:["ja","ryu","ko"],KE:["en","sw","ki","luy","luo","kam","kln","guz","mer","mas","ebu","so","dav","teo","pko","om","saq","ar","pa-guru","gu"],KG:["ky-cyrl","ru"],KH:["km","cja","kdt"],KI:["en","gil"],KM:["ar","fr","zdj"],KN:["en"],KP:["ko"],KR:["ko"],KW:["ar"],KY:["en"],KZ:["ru","kk-cyrl","de","ug-cyrl"],LA:["lo","kjg","kdt"],LB:["ar","hy","ku-arab","fr","en"],LC:["en"],LI:["de","gsw","wae"],LK:["si","ta","en"],LR:["en","kpe","vai-vaii","men","vai-latn"],LS:["st","zu","ss","en","xh"],LT:["lt","ru","sgs"],LU:["fr","lb","de"],LV:["lv","ru","ltg"],LY:["ar"],MA:["ary","ar","zgh","fr","tzm-latn","shi-latn","shi-tfng","rif-latn","rif-tfng","es"],MC:["fr"],MD:["ro","uk","bg","gag","ru"],ME:["sr-latn","sq","sr-cyrl"],MF:["fr"],MG:["mg","fr","en"],MH:["en","mh"],MK:["mk","sq","tr"],ML:["bm-latn","fr","ffm","snk","mwk","ses","tmh","bm-nkoo","khq","dtm","kao","ar","bmq","bze"],MM:["my","shn","mnw","kht"],MN:["mn-cyrl","kk-arab","zh-hans","ru","ug-cyrl"],MO:["zh-hant","pt","zh-hans","en"],MP:["en","ch"],MQ:["fr"],MR:["ar","fr","ff","wo"],MS:["en"],MT:["mt","en"],MU:["mfe","en","bho","ur","fr","ta"],MV:["dv"],MW:["en","ny","tum","zu"],MX:["es","yua","nhe","nhw","maz","nch","sei"],MY:["ms-latn","en","zh-hant","ta","jv","zmi","dtp","ml","bug","bjn"],MZ:["pt","vmw","ndc","ts","ngl","seh","mgh","rng","ny","yao","sw","zu"],NA:["af","kj","ng","naq","en","de","tn"],NC:["fr"],NE:["ha-latn","fr","dje","fuq","tmh","ar","twq"],NF:["en"],NG:["en","pcm","ha-latn","ig","yo","fuv","tiv","efi","ibb","ha-arab","bin","kaj","kcg","ar","cch","amo"],NI:["es"],NL:["nl","en","li","fy","gos","id","zea","rif-latn","tr"],NO:["nb","nn","se"],NP:["ne","mai","bho","new","jml","taj","awa","thl","bap","tdg","thr","mgp","lif-deva","thq","mrd","bfy","xsr","rjs","tsf","hi","ggn","gvr","bo","tkt","tdh","bn","unr-deva","lep"],NR:["en","na"],NU:["en","niu"],NZ:["en","mi"],OM:["ar","bal","fa"],PA:["es","en","zh-hant"],PE:["es","qu","ay"],PF:["fr","ty","zh-hant"],PG:["tpi","en","ho"],PH:["en","fil","es","ceb","ilo","hil","bik","war","bhk","pam","pag","mdh","tsg","zh-hant","cps","krj","bto","hnn","tbw","bku"],PK:["ur","pa-arab","en","lah","ps","sd-arab","skr","bal","brh","hno","fa","hnd","tg-arab","gju","bft","kvx","khw","mvy","kxp","gjk","ks-arab","btv"],PL:["pl","szl","be","uk","csb","de","sli","lt"],PM:["fr","en"],PN:["en"],PR:["es","en"],PS:["ar"],PT:["pt","gl"],PW:["pau","en"],PY:["gn","es","de"],QA:["ar","fa","ml"],RE:["fr","rcf","ta"],RO:["ro","hu","de","tr","sr-latn","bg","el","pl"],RS:["sr-cyrl","sr-latn","sq","hu","ro","hr","sk","uk"],RU:["ru","tt","ba","cv","hy","ce","av","udm","chm","sah","os","kbd","myv","dar","bua","mdf","kum","kv","lez","krc","inh","tyv","az-cyrl","ady","krl","lbe","koi","mrj","alt","fi","sr-latn","vep","mn-cyrl","izh","cu"],RW:["rw","fr","en"],SA:["ar"],SB:["en","rug"],SC:["crs","fr","en"],SD:["ar","en","nus","ha-arab"],SE:["sv","fi","fit","se","rmu","yi","smj","sma","ia"],SG:["en","zh-hans","ms-latn","ta","ml","pa-guru"],SH:["en"],SI:["sl","hu","it"],SJ:["nb","ru"],SK:["sk","hu","uk","pl","de"],SL:["kri","en","men","tem"],SM:["it","eo"],SN:["wo","fr","ff","srr","dyo"],SO:["so","ar","sw","om"],SR:["nl","srn","zh-hant"],SS:["ar","en"],ST:["pt"],SV:["es"],SX:["en","es","vic","nl"],SY:["ar","ku-latn","fr","hy","syr"],SZ:["en","ss","zu","ts"],TA:["en"],TC:["en"],TD:["fr","ar"],TF:["fr"],TG:["fr","ee"],TH:["th","tts","nod","sou","mfa","zh-hant","kxm","kdt","mnw","shn","lcp","lwl"],TJ:["tg-cyrl","ru","fa","ar"],TK:["en","tkl"],TL:["pt","tet"],TM:["tk-latn","ru","uz-latn","ku-latn"],TN:["aeb","ar","fr"],TO:["to","en"],TR:["tr","ku-latn","zza","kbd","az-latn","ar","bgx","bg","ady","kiu","hy","ka","sr-latn","lzz-latn","sq","ab","el","tru","uz-latn","ky-latn","kk-cyrl"],TT:["en","es"],TV:["tvl","en"],TW:["zh-hant","trv"],TZ:["sw","en","suk","nym","kde","bez","ksb","mas","mgy","asa","lag","jmc","rof","vun","rwk","sbp"],UA:["uk","ru","pl","yi","rue","be","ro","bg","tr","hu","el"],UG:["sw","lg","nyn","cgg","xog","en","teo","laj","ach","myx","rw","ttj","hi"],UM:["en"],US:["en","es","zh-hant","fr","de","fil","it","vi","ko","ru","nv","yi","pdc","haw","frc","chr","esu","lkt","ik"],UY:["es"],UZ:["uz-latn","uz-cyrl","ru","kaa","tr"],VA:["it","la"],VC:["en"],VE:["es"],VG:["en"],VI:["en"],VN:["vi","zh-hant","cjm"],VU:["bi","en","fr"],WF:["wls","fr","fud"],WS:["sm","en"],XK:["sq","aln","sr-cyrl","sr-latn"],YE:["ar"],YT:["swb","fr","buc","sw"],ZA:["en","zu","xh","af","nso","tn","st","ts","ss","ve","hi","nr","sw"],ZM:["en","bem","ny","loz"],ZW:["en","sn","nd","mxc","ndc","kck","ny","ve","tn"],ZZ:[]}}})(jQuery);(function(e){"use strict";e.uls.data.isRedirect=function(t){return e.uls.data.languages[t]!==undefined&&e.uls.data.languages[t].length===1?e.uls.data.languages[t][0]:false};e.uls.data.getScript=function(t){var n=e.uls.data.isRedirect(t);if(n){return e.uls.data.getScript(n)}if(!e.uls.data.languages[t]){return"Zyyy"}return e.uls.data.languages[t][0]};e.uls.data.getRegions=function(t){var n=e.uls.data.isRedirect(t);if(n){return e.uls.data.getRegions(n)}return e.uls.data.languages[t]&&e.uls.data.languages[t][1]||"UNKNOWN"};e.uls.data.getAutonym=function(t){var n=e.uls.data.isRedirect(t);if(n){return e.uls.data.getAutonym(n)}return e.uls.data.languages[t]&&e.uls.data.languages[t][2]||t};e.uls.data.getAutonyms=function(){var t,n={};for(t in e.uls.data.languages){if(e.uls.data.isRedirect(t)){continue}n[t]=e.uls.data.getAutonym(t)}return n};e.uls.data.getAllRegions=function(){var t,n=[];for(t in e.uls.data.regiongroups){n.push(t)}return n};e.uls.data.getLanguagesInScript=function(t){return e.uls.data.getLanguagesInScripts([t])};e.uls.data.getLanguagesInScripts=function(t){var n,r,i=[];for(n in e.uls.data.languages){if(e.uls.data.isRedirect(n)){continue}for(r=0;r<t.length;r++){if(t[r]===e.uls.data.getScript(n)){i.push(n);break}}}return i};e.uls.data.getLanguagesInRegion=function(t){return e.uls.data.getLanguagesInRegions([t])};e.uls.data.getLanguagesInRegions=function(t){var n,r,i=[];for(n in e.uls.data.languages){if(e.uls.data.isRedirect(n)){continue}for(r=0;r<t.length;r++){if(e.inArray(t[r],e.uls.data.getRegions(n))!==-1){i.push(n);break}}}return i};e.uls.data.getLanguagesInRegionGroup=function(t){return e.uls.data.getLanguagesInRegions(e.uls.data.getRegionsInGroup(t))};e.uls.data.getLanguagesByScriptInRegion=function(t){var n,r,i={};for(n in e.uls.data.languages){if(e.uls.data.isRedirect(n)){continue}if(e.inArray(t,e.uls.data.getRegions(n))!==-1){r=e.uls.data.getScript(n);if(i[r]===undefined){i[r]=[]}i[r].push(n)}}return i};e.uls.data.getLanguagesByScriptGroupInRegion=function(t){return e.uls.data.getLanguagesByScriptGroupInRegions([t])};e.uls.data.getAllLanguagesByScriptGroup=function(){return e.uls.data.getLanguagesByScriptGroupInRegions(e.uls.data.getAllRegions())};e.uls.data.getLanguagesByScriptGroup=function(t){var n={},r,i,s;for(r in t){i=e.uls.data.isRedirect(r)||r;s=e.uls.data.getScriptGroupOfLanguage(i);if(!n[s]){n[s]=[]}if(e.inArray(i,n[s])===-1){n[s].push(i)}}return n};e.uls.data.getLanguagesByScriptGroupInRegions=function(t){var n,r,i,s={};for(n in e.uls.data.languages){if(e.uls.data.isRedirect(n)){continue}for(r=0;r<t.length;r++){if(e.inArray(t[r],e.uls.data.getRegions(n))!==-1){i=e.uls.data.getScriptGroupOfLanguage(n);if(s[i]===undefined){s[i]=[]}s[i].push(n);break}}}return s};e.uls.data.getAllLanguagesByRegionAndScript=function(){var t,n,r,i,s,o,u,a={};for(t in e.uls.data.regiongroups){n=e.uls.data.regiongroups[t];if(a[n]===undefined){a[n]={}}a[n][t]={}}for(r in e.uls.data.languages){if(e.uls.data.isRedirect(r)){continue}i=e.uls.data.getScript(r);s=e.uls.data.getGroupOfScript(i);o=e.uls.data.getRegions(r);for(u=0;u<o.length;u++){t=o[u];n=e.uls.data.regiongroups[t];if(a[n][t][s]===undefined){a[n][t][s]={}}if(a[n][t][s][i]===undefined){a[n][t][s][i]=[]}a[n][t][s][i].push(r)}}return a};e.uls.data.getRegionsInGroup=function(t){var n,r=[];for(n in e.uls.data.regiongroups){if(e.uls.data.regiongroups[n]===t){r.push(n)}}return r};e.uls.data.getGroupOfScript=function(t){var n;for(n in e.uls.data.scriptgroups){if(e.inArray(t,e.uls.data.scriptgroups[n])!==-1){return n}}return"Other"};e.uls.data.getScriptGroupOfLanguage=function(t){return e.uls.data.getGroupOfScript(e.uls.data.getScript(t))};e.uls.data.sortByAutonym=function(t,n){var r=e.uls.data.getAutonym(t)||t,i=e.uls.data.getAutonym(n)||n;return r.toLowerCase()<i.toLowerCase()?-1:1};e.uls.data.isRtl=function(t){return e.inArray(e.uls.data.getScript(t),e.uls.data.rtlscripts)!==-1};e.uls.data.getDir=function(t){return e.uls.data.isRtl(t)?"rtl":"ltr"};e.uls.data.getLanguagesInTerritory=function(t){return e.uls.data.territories[t]};e.uls.data.addLanguage=function(t,n){if(n.target){e.uls.data.languages[t]=[n.target]}else{e.uls.data.languages[t]=[n.script,n.regions,n.autonym]}};e.uls.data.deleteLanguage=function(t){if(e.uls.data.languages[t]){delete e.uls.data.languages[t];return true}return false}})(jQuery);(function(e){"use strict";function r(e,t){var n="െേൈൊോൌெேைொோௌେୈୋୌિਿिিেৈোৌෙේෛොෝෞ";return n.indexOf(t[e.length])<=0}var t,n;t=function(t,n){this.$element=e(t);this.options=e.extend({},e.fn.regionselector.defaults,n);this.$element.addClass("languagefilter");this.resultCount=0;this.$suggestion=this.$element.parents().find("#"+this.$element.data("suggestion"));this.$clear=this.$element.parents().find("#"+this.$element.data("clear"));this.selectedLanguage=null;this.listen()};n=function(){var e=0;return function(t,n){clearTimeout(e);e=setTimeout(t,n)}}();t.prototype={listen:function(){this.$element.on("keypress",e.proxy(this.keyup,this)).on("keyup",e.proxy(this.keyup,this));if(this.eventSupported("keydown")){this.$element.on("keydown",e.proxy(this.keyup,this))}if(this.$clear.length){this.$clear.on("click",e.proxy(this.clear,this))}this.toggleClear()},keyup:function(t){var r,i,s;switch(t.keyCode){case 9:r=this.$suggestion.val();if(r&&r!==this.$element.val()){this.$element.val(r);t.preventDefault();t.stopPropagation()}break;case 13:if(!this.options.onSelect){break}t.preventDefault();t.stopPropagation();i=e.trim(this.$element.val()).toLowerCase();if(this.selectedLanguage){this.options.onSelect(this.selectedLanguage)}else if(this.options.languages[i]){this.options.onSelect(i)}break;default:s=this;if(t.which<32&&t.which!==8){break}this.selectedLanguage=null;n(function(){if(!s.$element.val()){s.clear()}else{s.options.$target.empty();s.search()}},300);this.toggleClear()}},deactivate:function(){this.$element.val("");if(!e.fn.uls.Constructor.prototype.isMobile()){this.$element.focus()}this.toggleClear();this.autofill()},clear:function(){this.deactivate();this.$element.trigger("searchclear.uls")},toggleClear:function(){if(!this.$clear.length){return}if(this.$element.val()){this.$clear.show()}else{this.$clear.hide()}},search:function(){var t,n=e.trim(this.$element.val()),r=e.uls.data.getLanguagesByScriptGroup(this.options.languages),i,s,o;this.resultCount=0;for(i in r){t=r[i];t.sort(e.uls.data.sortByAutonym);for(s=0;s<t.length;s++){o=t[s];if(n===""||this.filter(o,n)){if(this.resultCount===0){this.autofill(o)}if(n.toLowerCase()===o){this.selectedLanguage=o}if(this.render(o)){this.resultCount++}}}}if(!this.resultCount&&this.options.searchAPI&&n){this.searchAPI(n)}else{this.resultHandler(n)}},searchAPI:function(t){var n=this;e.get(n.options.searchAPI,{search:t},function(r){e.each(r.languagesearch,function(e,t){if(n.resultCount===0){n.autofill(e,t)}if(n.render(e)){n.resultCount++}});n.resultHandler(t)})},resultHandler:function(e){if(this.resultCount===0){this.$suggestion.val("");this.$element.trigger("noresults.uls",e)}else{this.$element.trigger("resultsfound.uls",[e,this.resultCount])}},autofill:function(t,n){if(!this.$suggestion.length){return}if(!this.$element.val()){this.$suggestion.val("");return}this.selectedLanguage=t;n=n||this.options.languages[t];if(!n){return}var i,s=this.$element.val(),o=s+n.substring(s.length,n.length);if(o.toLowerCase()!==n.toLowerCase()){i=e.uls.data.getAutonym(t)||"";o=s+i.substring(s.length,i.length);if(o!==i){o=""}}if(!r(s,o)){o=""}this.$suggestion.val(o)},render:function(e){var t=this.options.$target;if(!t){return false}return t.append(e)},escapeRegex:function(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$\|#\s]/g,"\\$&")},filter:function(t,n){var r=new RegExp("^"+this.escapeRegex(n),"i"),i=this.options.languages[t];return r.test(i)||r.test(e.uls.data.getAutonym(t))||r.test(t)||r.test(e.uls.data.getScript(t))},eventSupported:function(e){var t=e in this.$element;if(!t){this.$element.setAttribute(e,"return;");t=typeof this.$element[e]==="function"}return t}};e.fn.languagefilter=function(n){return this.each(function(){var r=e(this),i=r.data("languagefilter"),s=typeof n==="object"&&n;if(!i){r.data("languagefilter",i=new t(this,s))}if(typeof n==="string"){i[n]()}})};e.fn.languagefilter.defaults={$target:null,searchAPI:null,languages:null,onSelect:null};e.fn.languagefilter.Constructor=t})(jQuery);(function(e){"use strict";var t,n;t='<div class="twelve columns uls-no-results-view hide">		<h2 data-i18n="uls-no-results-found" class="eleven columns offset-by-one uls-no-results-found-title">		No results found		</h2>		<div id="uls-no-found-more" class="uls-no-found-more">			<div class="ten columns offset-by-one">				<p>					<span data-i18n="uls-search-help">You can search by language name, 					script name, ISO code of language or 					you can browse by region:</span>					<a class="uls-region-link" data-i18n="uls-region-AM" data-region="AM">America</a>, 					<a class="uls-region-link" data-i18n="uls-region-EU" data-region="EU">Europe</a>, 					<a class="uls-region-link" data-i18n="uls-region-ME" data-region="ME">Middle East</a>, 					<a class="uls-region-link" data-i18n="uls-region-AF" data-region="AF">Africa</a>, 					<a class="uls-region-link" data-i18n="uls-region-AS" data-region="AS">Asia</a>, 					<a class="uls-region-link" data-i18n="uls-region-PA" data-region="PA">Pacific</a>, 					<a class="uls-region-link" data-i18n="uls-region-WW" data-region="WW">Worldwide</a>.				</p>			</div>		</div>	</div>';n=function(n,r){this.$element=e(n);this.options=e.extend({},e.fn.lcd.defaults,r);this.$element.addClass("lcd");this.regionLanguages={};this.renderTimeout=null;this.cachedQuicklist=null;this.$element.append(e(t));this.$noResults=this.$element.children(".uls-no-results-view");this.render();this.listen()};n.prototype={constructor:n,append:function(t,n){var r=this,i,s;if(!this.options.languages[t]){return false}if(n){s=[n]}else{s=e.uls.data.getRegions(t)}if(e.inArray("WW",s)>-1){s=["WW"]}for(i=0;i<s.length;i++){this.regionLanguages[s[i]].push(t)}window.clearTimeout(this.renderTimeout);this.renderTimeout=window.setTimeout(function(){r.renderRegions()},50);return true},render:function(){var t,n=this,r=[],i={WW:"Worldwide",SP:"Special",AM:"America",EU:"Europe",ME:"Middle East",AS:"Asia",AF:"Africa",PA:"Pacific"};r.push(this.buildQuicklist());e.each(e.uls.data.regiongroups,function(s){n.regionLanguages[s]=[];if(e.inArray(s,n.options.showRegions)===-1){return}t=e("<div>").addClass("eleven columns offset-by-one uls-lcd-region-section hide").attr("id",s).append(e("<h3>").attr("data-i18n","uls-region-"+s).addClass("eleven columns uls-lcd-region-title").text(i[s]));r.push(t)});n.$element.append(r);this.i18n()},renderRegions:function(){var t=this,n,r=t.options.itemsPerColumn,i=4;this.$noResults.addClass("hide");this.$element.find(".uls-lcd-region-section").each(function(){var s=e(this),o=s.attr("id");if(s.is("#uls-lcd-quicklist")){return}s.children(".uls-language-block").remove();n=t.regionLanguages[o];if(!n||n.length===0){s.addClass("hide");return}t.renderRegion(s,n,r,i);s.removeClass("hide");t.regionLanguages[o]=[]})},renderRegion:function(t,n,r,i){var s,o,u,a,f,l=n.length,c=[],h=[],p=[];for(s=0;s<l;s++){f=false;a=e.uls.data.getScriptGroupOfLanguage(n[s+1]);o=l-s===1;if(s===0){u=e.uls.data.getScriptGroupOfLanguage(n[s])}else if(u!==a&&c.length>1){f=true}u=a;c.push(this.renderItem(n[s]));if(c.length>=r||o||f){h.push(e("<ul>").addClass("three columns").append(c));c=[];if(h.length>=i||o){p.push(e("<div>").addClass("row uls-language-block").append(h));h=[]}}}t.append(p)},renderItem:function(t){var n,r,i,s;r=this.options.languages[t];i=e.uls.data.getAutonym(t)||r||t;s=document.createElement("li");s.title=r;s.lang=t;s.dir=e.uls.data.getDir(t);s.setAttribute("data-code",t);n=document.createElement("a");n.appendChild(document.createTextNode(i));n.className="autonym";s.appendChild(n);if(this.options.languageDecorator){this.options.languageDecorator(e(n),t)}return s},i18n:function(){this.$element.find("[data-i18n]").i18n()},quicklist:function(){this.$element.find("#uls-lcd-quicklist").removeClass("hide")},buildQuicklist:function(){var t,n,r;if(this.cachedQuicklist!==null){return this.cachedQuicklist}if(e.isFunction(this.options.quickList)){this.options.quickList=this.options.quickList()}if(!this.options.quickList){this.cachedQuicklist=e([]);return this.cachedQuicklist}t=this.options.quickList;t=t.slice(0,16);t.sort(e.uls.data.sortByAutonym);n=e("<div>").addClass("eleven columns offset-by-one uls-lcd-region-section").attr("id","uls-lcd-quicklist");r=e("<h3>").attr("data-i18n","uls-common-languages").addClass("eleven columns uls-lcd-region-title").text("Common languages");n.append(r);this.renderRegion(n,t,4,4);r.i18n();this.cachedQuicklist=n;return this.cachedQuicklist},show:function(){if(!this.regionDivs){this.render()}},empty:function(){this.$element.find("#uls-lcd-quicklist").addClass("hide")},focus:function(){this.$element.focus()},noResults:function(){this.$noResults.removeClass("hide");if(this.$noResults.find(".uls-lcd-region-title").length){return}var e=this.buildQuicklist().clone();e.find("h3").data("i18n","uls-no-results-suggestion-title").text("You may be interested in:").i18n();this.$noResults.find("h2").after(e)},listen:function(){var t=this;if(this.options.clickhandler){this.$element.on("click",".row li",function(){t.options.clickhandler.call(this,e(this).data("code"))})}t.$element.scroll(function(){var n,r,i=e(this),s=i.position().top,o=i.height();r="WW";t.$element.find(".uls-lcd-region-section").each(function(){var t=e(this),n=t.position().top,i=t.height(),u=10;if(n-u<=s&&i>o){r=t.attr("id")}});n=e.uls.data.regiongroups[r];if(!e("#uls-region-"+n).hasClass("active")){e(".regionselector").removeClass("active");e("#uls-region-"+n).addClass("active")}})}};e.fn.lcd=function(t){return this.each(function(){var r=e(this),i=r.data("lcd"),s=typeof t==="object"&&t;if(!i){r.data("lcd",i=new n(this,s))}if(typeof t==="string"){i[t]()}})};e.fn.lcd.defaults={languages:null,showRegions:["WW","AM","EU","ME","AF","AS","PA"],itemsPerColumn:8,languageDecorator:null};e.fn.lcd.Constructor=n})(jQuery);(function(e){"use strict";var t;t=function(t,n){this.$element=e(t);this.options=e.extend({},e.fn.regionselector.defaults,n);this.$element.addClass("regionselector");this.regions=[];this.cache=null;this.regionGroup=this.$element.data("regiongroup");this.init();this.listen()};t.prototype={constructor:t,init:function(){var t=this.$element.data("region");this.regions=e.uls.data.getRegionsInGroup(this.regionGroup);if(t){this.regions.push(t)}},test:function(t){var n,r,i=e.uls.data.getRegions(t);for(r=0;r<this.regions.length;r++){n=this.regions[r];if(e.inArray(n,i)>=0){this.render(t,n);this.cache[t]=n;return}}},show:function(){var t,n,r,i,s,o=this.options.$target&&this.options.$target.$element,u=o&&o.parent(),a=o&&o.prev();if(o&&u){o.detach()}if(this.cache){t=null;for(t in this.cache){this.render(t,this.cache[t])}}else{this.cache={};n=e.uls.data.getLanguagesByScriptGroup(this.options.languages);for(r in e.uls.data.scriptgroups){i=n[r];if(!i){continue}i.sort(e.uls.data.sortByAutonym);for(s=0;s<i.length;s++){this.test(i[s])}}}if(o&&u){if(a){a.after(o)}else{u.append(o)}}if(this.options.success){this.options.success(this)}},render:function(e,t){var n=this.options.$target;if(!n){return}n.append(e,t)},listen:function(){this.$element.on("click",e.proxy(this.click,this))},click:function(){var t,n;if(this.$element.hasClass("active")){return}t=this.options.$target.$element;n=t.find("#"+this.regions[0]);t.scrollTop(n.offset().top-t.offset().top+t.scrollTop());e(".regionselector").removeClass("active");if(this.regionGroup){this.$element.addClass("active")}}};e.fn.regionselector=function(n){return this.each(function(){var r=e(this),i=r.data("regionselector"),s=typeof n==="object"&&n;if(!i){r.data("regionselector",i=new t(this,s))}if(typeof n==="string"){i[n]()}})};e.fn.regionselector.defaults={$target:null,success:null,noresults:null,languages:null};e.fn.regionselector.Constructor=t})(jQuery)

@@ -1,198 +0,0 @@ 

- /**

-  * jQuery region filter plugin.

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- ( function ( $ ) {

- 	'use strict';

- 

- 	/* RegionSelector plugin definition */

- 

- 	var RegionSelector;

- 

- 	/**

- 	 * Region selector is a language selector based on regions.

- 	 * Usage: $( 'jqueryselector' ).regionselector( options );

- 	 * The attached element should have data-regiongroup attribute

- 	 * that defines the regiongroup for the selector.

- 	 */

- 	RegionSelector = function ( element, options ) {

- 		this.$element = $( element );

- 		this.options = $.extend( {}, $.fn.regionselector.defaults, options );

- 		this.$element.addClass( 'regionselector' );

- 		this.regions = [];

- 		this.cache = null;

- 		this.regionGroup = this.$element.data( 'regiongroup' );

- 		this.init();

- 		this.listen();

- 	};

- 

- 	RegionSelector.prototype = {

- 		constructor: RegionSelector,

- 

- 		init: function () {

- 			var region = this.$element.data( 'region' );

- 			this.regions = $.uls.data.getRegionsInGroup( this.regionGroup );

- 

- 			if ( region ) {

- 				this.regions.push( region );

- 			}

- 		},

- 

- 		test: function ( langCode ) {

- 			var region, i,

- 				langRegions = $.uls.data.getRegions( langCode );

- 

- 			for ( i = 0; i < this.regions.length; i++ ) {

- 				region = this.regions[i];

- 

- 				if ( $.inArray( region, langRegions ) >= 0 ) {

- 					this.render( langCode, region );

- 					this.cache[langCode] = region;

- 

- 					return;

- 				}

- 			}

- 		},

- 

- 		show: function () {

- 			var result, languagesByScriptGroup, scriptGroup, languages, i,

- 				$element = this.options.$target && this.options.$target.$element,

- 				$parent = $element && $element.parent(),

- 				$prev = $element && $element.prev();

- 

- 			if ( $element && $parent ) {

- 				// Avoid reflows while adding new elements to the list

- 				// Use .detach() to keep jQuery events and data associated with elements

- 				$element.detach();

- 			}

- 

- 			if ( this.cache ) {

- 				// If the result cache is present, render the results from there.

- 				//noinspection JSUnusedAssignment

- 				result = null;

- 

- 				for ( result in this.cache ) {

- 					this.render( result, this.cache[result] );

- 				}

- 			} else {

- 				this.cache = {};

- 				// Get the languages grouped by script group

- 				languagesByScriptGroup = $.uls.data.getLanguagesByScriptGroup( this.options.languages );

- 

- 				// Make sure that we go by the original order

- 				// of script groups

- 				for ( scriptGroup in $.uls.data.scriptgroups ) {

- 					// Get the languages for the script group

- 					languages = languagesByScriptGroup[scriptGroup];

- 

- 					// It's possible that some script groups are missing

- 					if ( !languages ) {

- 						continue;

- 					}

- 

- 					// Sort it based on autonym

- 					languages.sort( $.uls.data.sortByAutonym );

- 

- 					for ( i = 0; i < languages.length; i++ ) {

- 						// Check whether it belongs to the region

- 						this.test( languages[i] );

- 					}

- 				}

- 			}

- 

- 			if ( $element && $parent ) {

- 				// Restore the element to where we removed it from

- 				if ( $prev ) {

- 					$prev.after( $element );

- 				} else {

- 					$parent.append( $element );

- 				}

- 			}

- 

- 			if ( this.options.success ) {

- 				this.options.success( this );

- 			}

- 		},

- 

- 		render: function ( langCode, region ) {

- 			var $target = this.options.$target;

- 

- 			if ( !$target ) {

- 				return;

- 			}

- 

- 			$target.append( langCode, region );

- 		},

- 

- 		listen: function () {

- 			this.$element.on( 'click', $.proxy( this.click, this ) );

- 		},

- 

- 		click: function () {

- 			var $list, $firstTargetRegion;

- 

- 			// Don't do anything if a region is selected already

- 			if ( this.$element.hasClass( 'active' ) ) {

- 				return;

- 			}

- 

- 			$list = this.options.$target.$element;

- 			$firstTargetRegion = $list.find( '#' + this.regions[0] );

- 

- 			// Scroll to appropriate area

- 			$list.scrollTop(

- 				$firstTargetRegion.offset().top - $list.offset().top + $list.scrollTop()

- 			);

- 

- 			// Make the selected region (and it only) active

- 			$( '.regionselector' ).removeClass( 'active' );

- 

- 			if ( this.regionGroup ) {

- 				// if there is a region group, make it active.

- 				this.$element.addClass( 'active' );

- 			}

- 		}

- 	};

- 

- 	/* RegionSelector plugin definition */

- 

- 	$.fn.regionselector = function ( option ) {

- 		return this.each( function () {

- 			var $this = $( this ),

- 				data = $this.data( 'regionselector' ),

- 				options = typeof option === 'object' && option;

- 

- 			if ( !data ) {

- 				$this.data( 'regionselector', ( data = new RegionSelector( this, options ) ) );

- 			}

- 

- 			if ( typeof option === 'string' ) {

- 				data[option]();

- 			}

- 		} );

- 	};

- 

- 	$.fn.regionselector.defaults = {

- 		$target: null, // Where to render the results

- 		success: null, // callback if any results found.

- 		noresults: null, // callback when no results to show

- 		languages: null

- 	};

- 

- 	$.fn.regionselector.Constructor = RegionSelector;

- } ( jQuery ) );

@@ -10,11 +10,6 @@ 

      <link rel="stylesheet" media="screen" href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700&amp;subset=latin,latin-ext" />

      <link rel='stylesheet' media="screen" href='https://fonts.googleapis.com/css?family=Montserrat' />

  

-     <!-- language selector -->

-     <link rel="stylesheet" type="text/css" href="${path}/static/css/jquery.uls.css" />

-     <link rel="stylesheet" type="text/css" href="${path}/static/css/jquery.uls.grid.css" />

-     <link rel="stylesheet" type="text/css" href="${path}/static/css/jquery.uls.lcd.css" />

- 

      <!-- use RTL css for specific languages -->

      <link py:if="lang in ('ar', 'bal', 'fa', 'he')" rel="stylesheet" type="text/css" media="all" href="${path}/static/css/bootstrap-rtl.css" />

  

@@ -92,14 +92,7 @@ 

                      </div>

                      <div class="col-md-3">

                          <div class="widget-body">

-                             <div class="pull-left language-header">

-                               <span class="active uls-trigger lang-dropdown">${_('Change Language')}</span>

-                                 <form action="" method="GET" style="visibility:hidden" id="langSelect" class="lang-dropdown">

-                                   <input type="hidden" name="lang" id="selectedLang" value="" />

-                         <!-- Allow uls script to change language through legacy system -->

-                                   <input type="submit" value="${_('OK')}" />

-                                 </form>

-                               </div>

+                             <xi:include href="../templates/translations.html" />

                          </div>

                      </div>

                  </div> <!-- /row of widgets -->

@@ -13,14 +13,6 @@ 

      <script type="text/javascript" src="${path}/static/js/bootstrap.min.js"></script>

      <script type="text/javascript" src="${path}/static/js/regulations.js"></script>

  

-     <script type="text/javascript" src="${path}/static/js/jquery.uls.data.js"></script>

- 	  <script type="text/javascript" src="${path}/static/js/jquery.uls.data.utils.js"></script>

- 	  <script type="text/javascript" src="${path}/static/js/jquery.uls.lcd.js"></script>

- 	  <script type="text/javascript" src="${path}/static/js/jquery.uls.languagefilter.js"></script>

- 	  <script type="text/javascript" src="${path}/static/js/jquery.uls.regionfilter.js"></script>

- 	  <script type="text/javascript" src="${path}/static/js/jquery.uls.core.js"></script>

-     <xi:include href="../templates/translations.html" />

- 

      <!--[if lt IE 9]>

      <script type="text/javascript" src="${path}/static/js/html5shiv.js"></script>

      <script type="text/javascript" src="${path}/static/js/respond.min.js"></script>

@@ -562,7 +562,29 @@ 

    padding-left: 2px;

  }

  .language-header {

-   margin-top: 43px;

+   margin-top: 29px;

+ }

+ .language-menu ul {

+   column-count: 3;

+   column-gap: 3em;

+   margin: 1.5em;

+ }

+ 

+ @media (min-width:992px) {

+   .language-menu {

+     width: 97rem;

+   }

+   .language-menu ul {

+     column-count: 5;

+   }

+ }

+ @media (min-width:1200px) {

+   .language-menu {

+     width: 117rem;

+   }

+   .language-menu ul {

+     column-count: 5;

+   }

  }

  .btn-topmargin {

    margin-top: 10px;

@@ -1,75 +0,0 @@ 

- .uls-compact .uls-icon-close,

- .uls-compact .uls-title-region,

- .uls-compact .uls-map-block,

- .uls-compact #uls-settings-block {

- 	display: none !important;

- }

- 

- .uls-compact.uls-menu {

- 	border-radius: 0;

- }

- 

- .uls-compact .uls-search {

- 	background: white;

- 	border-top: none;

- 	padding: 0.8em 0;

- 	border-bottom-width: 1px;

- 	border-bottom-style: solid;

- 	border-bottom-color: #DDD;

- }

- 

- .uls-compact .uls-filterinput,

- .uls-compact .uls-filterinput:focus {

- 	background-color: transparent;

- 	border: none;

- 	box-shadow: none;

- 	outline: none;

- 	font-size: 18px;

- 	left: 0;

- }

- 

- .uls-compact .uls-language-list {

- 	background: #FCFCFC;

- 	height: 20em;

- }

- 

- .uls-compact .uls-search-label {

- 	background-size: 25px;

- 	height: 26px;

- 	width: 26px;

- 	float: right;

- 	opacity: 0.8;

- }

- 

- .uls-compact .uls-languagefilter-clear {

- 	margin-left: 0;

- }

- 

- .uls-compact .uls-title-region a {

- 	color: #777;

- 	display: inline-block;

- 	margin: 15px 0 5px 19px;

- 	cursor: pointer;

- 	padding: 6px;

- 	text-decoration: none;

- 	font-size: 14px;

- 	border: 1px solid transparent;

- }

- 

- .uls-compact .uls-title-region a:hover {

- 	color: #252525;

- 	background: #F0F0F0;

- 	border: 1px solid #DDD;

- 	border-radius: 3px;

- }

- 

- .uls-compact .uls-title-region a:before {

- 	display: inline-block;

- 	width: 0;

- 	height: 0;

- 	border-right: 4px solid #777;

- 	border-top: 4px solid transparent;

- 	border-bottom: 4px solid transparent;

- 	content: "";

- 	margin: 0 6px 0 0;

- }

@@ -1,260 +0,0 @@ 

- .uls-trigger {

- 	/* @embed */

- 	background: transparent url('/static/images/icon-language.png') no-repeat scroll left center;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/icon-language.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/icon-language.svg');

- 	padding-left: 30px;

- }

- 

- .uls-menu {

- 	position: absolute;

- 	z-index: 1000;

- 	display: none;

- 	margin-top: 1px;

- 	/* Styling */

- 	background-color: #ffffff;

- 	border: 1px solid #ccc;

- 	border: 1px solid rgba(0, 0, 0, 0.2);

- 	border-radius: 5px;

- 	-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);

- 	-moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);

- 	box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);

- 	-webkit-background-clip: padding-box;

- 	-moz-background-clip: padding;

- 	background-clip: padding-box;

- }

- 

- .uls-wide {

- 	min-width: 715px;

- 	width: 45%;

- }

- 

- .uls-title-region a {

- 	padding-left: 15px;

- }

- 

- .uls-menu .uls-title {

- 	font-weight: normal;

- 	border: none;

- 	padding-top: 1.25em;

- 	padding-left: 15px;

- 	padding-bottom: 3px;

- 	font-size: 18pt;

- 	line-height: 1.25em;

- 	color: #555;

- }

- 

- .uls-menu .uls-no-results-found-title {

- 	font-size: 16pt;

- 	font-weight: bold;

- 	line-height: 1.5em;

- 	padding-left: 6px;

- 	padding-top: 10px;

- 	margin-top: 0;

- 	margin-bottom: 15px;

- 	border-bottom: none;

- 	color: #555;

- }

- 

- .uls-menu .uls-lcd-region-section .uls-lcd-region-title {

- 	color: #777;

- 	font-size: 14pt;

- 	font-weight: lighter;

- 	line-height: 1.5em;

- 	padding-left: 0;

- 	margin-top: 0;

- 	margin-bottom: 10px;

- 	border-bottom: none;

- }

- 

- .uls-worldmap {

- 	/* @embed */

- 	background: transparent url('/static/images/world_map.png') no-repeat scroll right top;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/world_map.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/world_map.svg');

- 	background-size: 100%;

- }

- 

- div.uls-region {

- 	cursor: pointer;

- 	padding: 0;

- 	margin: 0;

- 	height: 120px;

- 	border-bottom-color: transparent;

- 	border-bottom-style: solid;

- 	border-bottom-width: 2px;

- }

- 

- .uls-worldmap .uls-region { /* The map doesn't flip */

- 	/* @noflip */

- 	float: left;

- }

- 

- .uls-region a {

- 	bottom: 2px;

- 	left: 2px;

- 	padding: 0;

- 	position: absolute;

- 	font-size: 13px;

- 	line-height: 1.2em;

- 	text-decoration: none;

- 	overflow: hidden;

- 	text-overflow: ellipsis;

- 	width: 99%;

- }

- 

- .uls-region:hover {

- 	/*Cross-browser background transparency*/

- 	background: #3366bb;

- 	background: rgba(51, 102, 187, 0.1);

- 	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#253366bb, endColorstr=#253366bb );

- 	-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#253366bb, endColorstr=#253366bb)";

- }

- 

- .uls-map-block .active {

- 	border-bottom-color: #3366bb;

- 	border-bottom-style: solid;

- }

- 

- .uls-menu .row .uls-map-block {

- 	top: 1px;

- 	margin-right: 0;

- 	padding-right: 0;

- 	float: right;

- 	overflow: hidden;

- 	opacity: 0.7;

- 	-moz-transition: opacity 0.2s linear;

- 	-o-transition: opacity 0.2s linear;

- 	-webkit-transition: opacity 0.2s linear;

- 	transition: opacity 0.2s linear;

- }

- 

- .uls-map-block a {

- 	color: #333;

- 	opacity: 0;

- 	-moz-transition: opacity 0.15s linear;

- 	-o-transition: opacity 0.15s linear;

- 	-webkit-transition: opacity 0.15s linear;

- 	transition: opacity 0.15s linear;

- }

- 

- .uls-menu .uls-map-block:hover,

- .uls-menu .uls-map-block:hover a {

- 	opacity: 1;

- 	color: #333;

- }

- 

- .uls-map-block .uls-region-1 {

- 	border-color: transparent;

- }

- 

- .uls-map-block:hover .active {

- 	border-color: #3366bb;

- }

- 

- .uls-map-block .active a {

- 	font-weight: bold;

- }

- 

- .uls-icon-close {

- 	/* @embed */

- 	background: transparent url('/static/images/close.png') no-repeat scroll center center;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/close.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/close.svg');

- 	float: right;

- 	padding: 15px;

- 	cursor: pointer;

- }

- 

- .uls-menu .uls-languagefilter {

- 	background-color: transparent;

- 	border: 1px solid #c9c9c9;

- 	border-radius: 2px 2px 2px 2px;

- 	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) inset;

- 	color: #333;

- 	display: block;

- 	padding: 6px;

- 	-moz-transition: border 0.15s linear 0s;

- 	-o-transition: border 0.15s linear 0s;

- 	-webkit-transition: border 0.15s linear 0s;

- 	transition: border 0.15s linear 0s;

- }

- 

- .uls-menu .uls-languagefilter:focus {

- 	border: 1px solid #3366bb;

- }

- 

- .uls-menu .uls-search {

- 	position: relative;

- 	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F0F0F0', endColorstr='#FBFBFB');

- 	background: #f8f8f8;

- 	background: -webkit-gradient(linear, left top, left bottom, from(#F0F0F0), to(#FBFBFB));

- 	background: -webkit-linear-gradient(top, #F0F0F0, #FBFBFB);

- 	background: -moz-linear-gradient(top, #F0F0F0, #FBFBFB);

- 	background: -o-linear-gradient(top, #F0F0F0, #FBFBFB);

- 	background: linear-gradient(#F0F0F0, #FBFBFB);

- 	border-top-color: #AAA;

- 	border-top-style: solid;

- 	border-top-width: 1px;

- 	padding: 0.8em 0;

- 	border-bottom-width: 1px;

- 	border-bottom-style: solid;

- 	border-bottom-color: #DDD;

- }

- 

- .uls-menu .uls-search-label {

- 	/* @embed */

- 	background: transparent url('/static/images/search.png') no-repeat scroll right center;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/search.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/search.svg');

- 	background-size: 30px;

- 	height: 32px;

- 	width: 32px;

- 	float: right;

- }

- 

- .uls-menu .uls-languagefilter-clear {

- 	/* @embed */

- 	background: transparent url('/static/images/clear.png') no-repeat scroll left center;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/clear.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/clear.svg');

- 	cursor: pointer;

- 	height: 32px;

- 	position: absolute;

- 	width: 32px;

- 	margin-left: -32px;

- }

- 

- .uls-menu .uls-filterinput {

- 	position: absolute;

- 	top: 0;

- 	left: 0;

- 	font-size: 14px;

- 	height: 32px;

- 	width: 100%;

- 	text-align: left;

- }

- 

- .uls-menu .uls-filtersuggestion {

- 	padding: 6px;

- 	background-color: white;

- 	color: #888;

- 	border: 1px transparent;

- 	border-radius: 2px 2px 2px 2px;

- 	box-shadow: 0 1px 2px transparent inset;

- 	left: 1px;

- }

- 

- .uls-menu .uls-search-input-block {

- 	position: relative;

- }

@@ -1,315 +0,0 @@ 

- /* Generated using Foundation http://foundation.zurb.com/docs/grid.php */

- /* Global Reset & Standards ---------------------- */

- .grid * {

- 	-webkit-box-sizing: border-box;

- 	-moz-box-sizing: border-box;

- 	box-sizing: border-box;

- }

- 

- /* Misc ---------------------- */

- .grid .left {

- 	float: left;

- }

- 

- .grid .right {

- 	float: right;

- }

- 

- .grid .text-left {

- 	text-align: left;

- }

- 

- .grid .text-right {

- 	text-align: right;

- }

- 

- .grid .text-center {

- 	text-align: center;

- }

- 

- .grid .hide {

- 	display: none;

- }

- 

- .grid .highlight {

- 	background: #ffff99;

- }

- 

- /* The Grid ---------------------- */

- .grid .row {

- 	width: 100%;

- 	max-width: none;

- 	min-width: 600px;

- 	margin: 0 auto;

- }

- 

- .grid .row .row {

- 	width: auto;

- 	max-width: none;

- 	min-width: 0;

- 	margin: 0 -5px;

- }

- 

- .grid .row.collapse .column,

- .grid .row.collapse .columns {

- 	padding: 0;

- }

- 

- .grid .row .row {

- 	width: auto;

- 	max-width: none;

- 	min-width: 0;

- 	margin: 0 -5px;

- }

- 

- .grid .row .row.collapse {

- 	margin: 0;

- }

- 

- .grid .column, .grid .columns {

- 	float: left;

- 	min-height: 1px;

- 	padding: 0 5px;

- 	position: relative;

- }

- 

- .grid .column.centered, .grid .columns.centered {

- 	float: none;

- 	margin: 0 auto;

- }

- 

- .grid .row .one {

- 	width: 8.333%;

- }

- 

- .grid .row .two {

- 	width: 16.667%;

- }

- 

- .grid .row .three {

- 	width: 25%;

- }

- 

- .grid .row .four {

- 	width: 33.333%;

- }

- 

- .grid .row .five {

- 	width: 41.667%;

- }

- 

- .grid .row .six {

- 	width: 50%;

- }

- 

- .grid .row .seven {

- 	width: 58.333%;

- }

- 

- .grid .row .eight {

- 	width: 66.667%;

- }

- 

- .grid .row .nine {

- 	width: 75%;

- }

- 

- .grid .row .ten {

- 	width: 83.333%;

- }

- 

- .grid .row .eleven {

- 	width: 91.667%;

- }

- 

- .grid .row .twelve {

- 	width: 100%;

- }

- 

- .grid .row .offset-by-one {

- 	margin-left: 8.333%;

- }

- 

- .grid .row .offset-by-two {

- 	margin-left: 16.667%;

- }

- 

- .grid .row .offset-by-three {

- 	margin-left: 25%;

- }

- 

- .grid .row .offset-by-four {

- 	margin-left: 33.333%;

- }

- 

- .grid .row .offset-by-five {

- 	margin-left: 41.667%;

- }

- 

- .grid .row .offset-by-six {

- 	margin-left: 50%;

- }

- 

- .grid .row .offset-by-seven {

- 	margin-left: 58.333%;

- }

- 

- .grid .row .offset-by-eight {

- 	margin-left: 66.667%;

- }

- 

- .grid .row .offset-by-nine {

- 	margin-left: 75%;

- }

- 

- .grid .row .offset-by-ten {

- 	margin-left: 83.333%;

- }

- 

- .grid .push-two {

- 	left: 16.667%;

- }

- 

- .grid .pull-two {

- 	right: 16.667%;

- }

- 

- .grid .push-three {

- 	left: 25%;

- }

- 

- .grid .pull-three {

- 	right: 25%;

- }

- 

- .grid .push-four {

- 	left: 33.333%;

- }

- 

- .grid .pull-four {

- 	right: 33.333%;

- }

- 

- .grid .push-five {

- 	left: 41.667%;

- }

- 

- .grid .pull-five {

- 	right: 41.667%;

- }

- 

- .grid .push-six {

- 	left: 50%;

- }

- 

- .grid .pull-six {

- 	right: 50%;

- }

- 

- .grid .push-seven {

- 	left: 58.333%;

- }

- 

- .grid .pull-seven {

- 	right: 58.333%;

- }

- 

- .grid .push-eight {

- 	left: 66.667%;

- }

- 

- .grid .pull-eight {

- 	right: 66.667%;

- }

- 

- .grid .push-nine {

- 	left: 75%;

- }

- 

- .grid .pull-nine {

- 	right: 75%;

- }

- 

- .grid .push-ten {

- 	left: 83.333%;

- }

- 

- .grid .pull-ten {

- 	right: 83.333%;

- }

- 

- /* Nicolas Gallagher's micro clearfix */

- .grid .row {

- 	*zoom: 1;

- }

- 

- .grid .row:before, .grid .row:after {

- 	content: "";

- 	display: table;

- }

- 

- .grid .row:after {

- 	clear: both;

- }

- 

- /* Block Grids ---------------------- */

- /* These are 2-up, 3-up, 4-up and 5-up ULs, suited

-  for repeating blocks of content. Add 'mobile' to

-  them to switch them just like the layout grid

-  (one item per line) on phones

- 

-  For IE7/8 compatibility block-grid items need to be

-  the same height. You can optionally uncomment the

-  lines below to support arbitrary height, but know

-  that IE7/8 do not support :nth-child.

-  -------------------------------------------------- */

- .grid .block-grid {

- 	display: block;

- 	overflow: hidden;

- 	padding: 0;

- }

- 

- .grid .block-grid > li {

- 	display: block;

- 	height: auto;

- 	float: left;

- }

- 

- .grid .block-grid.two-up {

- 	margin: 0 -15px;

- }

- 

- .grid .block-grid.two-up > li {

- 	width: 50%;

- 	padding: 0 15px 15px;

- }

- 

- /* .block-grid.two-up>li:nth-child(2n+1) {clear: left;} */

- .grid .block-grid.three-up {

- 	margin: 0 -12px;

- }

- 

- .grid .block-grid.three-up > li {

- 	width: 33.33%;

- 	padding: 0 12px 12px;

- }

- 

- /* .block-grid.three-up>li:nth-child(3n+1) {clear: left;} */

- .grid .block-grid.four-up {

- 	margin: 0 -10px;

- }

- 

- .grid .block-grid.four-up > li {

- 	width: 25%;

- 	padding: 0 10px 10px;

- }

- 

- /* .block-grid.four-up>li:nth-child(4n+1) {clear: left;} */

- .grid .block-grid.five-up {

- 	margin: 0 -8px;

- }

- 

- .grid .block-grid.five-up > li {

- 	width: 20%;

- 	padding: 0 8px 8px;

- }

@@ -1,86 +0,0 @@ 

- .uls-lcd-region-section ul li:hover {

- 	background-color: #eaeff7;

- }

- 

- .uls-lcd-region-section {

- 	margin-top: 10px;

- }

- 

- /* Language list */

- .uls-language-list {

- 	height: 17em;

- 	overflow: auto;

- 	width: auto;

- }

- 

- .uls-language-block ul {

- 	margin: 0 0 1.5em;

- }

- 

- .uls-language-list ul li {

- 	cursor: pointer;

- 	font-weight: normal;

- 	overflow: hidden;

- 	white-space: nowrap;

- 

- 	/*

- 	 * Some languages have long names for various reasons and we still want

- 	 * them to appear on one line.

- 	 * To make it work correctly, the directionality must be set correctly

- 	 * on the item level.

- 	 */

- 	text-overflow: ellipsis;

- 

- 	/*

- 	 * The directionality (ltr/rtl) for each list item is set dynamically

- 	 * as HTML attributes in JavaScript. Setting directionality also applies

- 	 * alignment, but a list with mixed alignment is hard to read.

- 	 * All items are therefore explicitly aligned to the left, including names

- 	 * of right-to-left languages in left-to-right environment and vice versa.

- 	 * As long as the directionality of the item is set correctly, the text

- 	 * is readable.

- 	 */

- 	text-align: left;

- 

- 	/*

- 	 * We don't want any visible bullets in this list.

- 	 */

- 	list-style-image: none;

- 	list-style-type: none;

- }

- 

- .uls-language-list strong {

- 	text-decoration: underline;

- }

- 

- .uls-language-list a {

- 	font-weight: normal;

- 	text-decoration: none;

- 	color: #3366bb;

- 	font-size: 14px;

- 	line-height: 1.6em;

- }

- 

- .uls-language-block {

- 	width: 100%;

- }

- 

- .uls-no-results-view {

- 	color: #555;

- 	height: 100%;

- }

- 

- .uls-no-found-more {

- 	font-size: 0.9em;

- 	background: #F8F8F8;

- 	width: 100%;

- 	margin-top: 1.6em;

- 	line-height: 1.6em;

- 	position: absolute;

- 	bottom: 0;

- 	left: 0;

- }

- 

- .uls-no-found-more a {

- 	cursor: pointer;

- }

@@ -1,319 +0,0 @@ 

- @media only screen and (max-width: 767px) {

- 

- 	.uls-mobile.uls-menu {

- 		width: 95%;

- 		left: 2.5%;

- 	}

- 

- 	.uls-mobile .uls-language-list {

- 		-webkit-overflow-scrolling: touch;

- 	}

- 

- 	.uls-mobile .uls-language-block {

- 		padding-left: 15px !important;

- 	}

- 

- 	.uls-mobile .uls-language-block ul {

- 		min-height: 14em;

- 	}

- 

- 	.uls-mobile .uls-language-block a {

- 		font-size: 16px;

- 		line-height: 1.7em;

- 	}

- 

- 	.uls-mobile div.uls-region {

- 		width: 33% !important;

- 		float: left !important;

- 	}

- 

- 	.uls-mobile .uls-map-block a,

- 	.uls-mobile .uls-map-block {

- 		opacity: 1 !important;

- 	}

- 

- 	.uls-mobile .row {

- 		width: auto;

- 		min-width: 0;

- 		margin-left: 0;

- 		margin-right: 0;

- 	}

- 

- 	.uls-mobile .column,

- 	.uls-mobile .columns {

- 		width: auto !important;

- 		float: none;

- 	}

- 

- 	.uls-mobile .column:last-child,

- 	.uls-mobile .columns:last-child {

- 		float: none;

- 	}

- 

- 	.uls-mobile [class*="column"] + [class*="column"]:last-child {

- 		float: none;

- 	}

- 

- 	.uls-mobile .column:before,

- 	.uls-mobile .uls-mobile .columns:before,

- 	.uls-mobile .column:after,

- 	.columns:after {

- 		content: "";

- 		display: table;

- 	}

- 

- 	.uls-mobile .column:after,

- 	.uls-mobile .columns:after {

- 		clear: both;

- 	}

- 

- 	.uls-mobile .offset-by-one,

- 	.uls-mobile .offset-by-two,

- 	.uls-mobile .offset-by-three,

- 	.uls-mobile .offset-by-four,

- 	.uls-mobile .offset-by-five,

- 	.uls-mobile .offset-by-six,

- 	.uls-mobile .offset-by-seven,

- 	.uls-mobile .offset-by-eight,

- 	.uls-mobile .offset-by-nine,

- 	.uls-mobile .offset-by-ten {

- 		margin-left: 0 !important;

- 	}

- 

- 	.uls-mobile .push-two,

- 	.uls-mobile .push-three,

- 	.uls-mobile .push-four,

- 	.uls-mobile .push-five,

- 	.uls-mobile .push-six,

- 	.uls-mobile .push-seven,

- 	.uls-mobile .push-eight,

- 	.uls-mobile .push-nine,

- 	.uls-mobile .push-ten {

- 		left: auto;

- 	}

- 

- 	.uls-mobile .pull-two,

- 	.uls-mobile .pull-three,

- 	.uls-mobile .pull-four,

- 	.uls-mobile .pull-five,

- 	.uls-mobile .pull-six,

- 	.uls-mobile .pull-seven,

- 	.uls-mobile .pull-eight,

- 	.uls-mobile .pull-nine,

- 	.uls-mobile .pull-ten {

- 		right: auto;

- 	}

- 

- 	/* Mobile 4-column Grid */

- 	.uls-mobile .row .mobile-one {

- 		width: 25% !important;

- 		float: left;

- 		padding: 0 4px;

- 	}

- 

- 	.uls-mobile .row .mobile-one:last-child {

- 		float: right;

- 	}

- 

- 	.uls-mobile .row.collapse .mobile-one {

- 		padding: 0;

- 	}

- 

- 	.uls-mobile .row .mobile-two {

- 		width: 50% !important;

- 		float: left;

- 		padding: 0 4px;

- 	}

- 

- 	.uls-mobile .row .mobile-two:last-child {

- 		float: right;

- 	}

- 

- 	.uls-mobile .row.collapse .mobile-two {

- 		padding: 0;

- 	}

- 

- 	.uls-mobile .row .mobile-three {

- 		width: 75% !important;

- 		float: left;

- 		padding: 0 4px;

- 	}

- 

- 	.uls-mobile .row .mobile-three:last-child {

- 		float: right;

- 	}

- 

- 	.uls-mobile .row.collapse .mobile-three {

- 		padding: 0;

- 	}

- 

- 	.uls-mobile .row .mobile-four {

- 		width: 100% !important;

- 		float: left;

- 		padding: 0 4px;

- 	}

- 

- 	.uls-mobile .row .mobile-four:last-child {

- 		float: right;

- 	}

- 

- 	.uls-mobile .row.collapse .mobile-four {

- 		padding: 0;

- 	}

- 

- 	.uls-mobile .push-one-mobile {

- 		left: 25%;

- 	}

- 

- 	.uls-mobile .pull-one-mobile {

- 		right: 25%;

- 	}

- 

- 	.uls-mobile .push-two-mobile {

- 		left: 50%;

- 	}

- 

- 	.uls-mobile .pull-two-mobile {

- 		right: 50%;

- 	}

- 

- 	.uls-mobile .push-three-mobile {

- 		left: 75%;

- 	}

- 

- 	.uls-mobile .pull-three-mobile {

- 		right: 75%;

- 	}

- }

- 

- /* Visibility Classes ---------------------- */

- /* Standard (large) display targeting */

- .uls-mobile .show-for-small,

- .uls-mobile .show-for-medium,

- .uls-mobile .show-for-medium-down,

- .uls-mobile .hide-for-large,

- .uls-mobile .hide-for-large-up,

- .uls-mobile .show-for-xlarge {

- 	display: none !important;

- }

- 

- .uls-mobile .hide-for-xlarge,

- .uls-mobile .show-for-large,

- .uls-mobile .show-for-large-up,

- .uls-mobile .hide-for-small,

- .uls-mobile .hide-for-medium,

- .uls-mobile .hide-for-medium-down {

- 	display: block !important;

- }

- 

- /* Very large display targeting */

- @media only screen and (min-width: 1441px) {

- 

- 	.uls-mobile .hide-for-small,

- 	.uls-mobile .hide-for-medium,

- 	.uls-mobile .hide-for-medium-down,

- 	.hide-for-large, .show-for-large-up,

- 	.show-for-xlarge {

- 		display: block !important;

- 	}

- 

- 	.show-for-small,

- 	.uls-mobile .show-for-medium,

- 	.uls-mobile .show-for-medium-down,

- 	.uls-mobile .show-for-large,

- 	.uls-mobile .hide-for-large-up,

- 	.uls-mobile .hide-for-xlarge {

- 		display: none !important;

- 	}

- }

- /* Medium display targeting */

- @media only screen and (max-width: 1279px) and (min-width: 768px) {

- 

- 	.uls-mobile .hide-for-small,

- 	.uls-mobile .show-for-medium,

- 	.uls-mobile .show-for-medium-down,

- 	.uls-mobile .hide-for-large,

- 	.uls-mobile .hide-for-large-up,

- 	.uls-mobile .hide-for-xlarge {

- 		display: block !important;

- 	}

- 

- 	.uls-mobile .show-for-small,

- 	.uls-mobile .hide-for-medium,

- 	.uls-mobile .hide-for-medium-down,

- 	.uls-mobile .show-for-large,

- 	.uls-mobile .show-for-large-up,

- 	.uls-mobile .show-for-xlarge {

- 		display: none !important;

- 	}

- }

- /* Small display targeting */

- @media only screen and (max-width: 767px) {

- 

- 	.uls-mobile .show-for-small,

- 	.uls-mobile .hide-for-medium,

- 	.uls-mobile .show-for-medium-down,

- 	.uls-mobile .hide-for-large,

- 	.uls-mobile .hide-for-large-up,

- 	.uls-mobile .hide-for-xlarge {

- 		display: block !important;

- 	}

- 	.uls-mobile .hide-for-small,

- 	.uls-mobile .show-for-medium,

- 	.uls-mobile .hide-for-medium-down,

- 	.uls-mobile .show-for-large,

- 	.uls-mobile .show-for-large-up,

- 	.uls-mobile .show-for-xlarge {

- 		display: none !important;

- 	}

- }

- 

- /* Orientation targeting */

- .uls-mobile .show-for-landscape,

- .uls-mobile .hide-for-portrait {

- 	display: block !important;

- }

- 

- .uls-mobile .hide-for-landscape,

- .uls-mobile .show-for-portrait {

- 	display: none !important;

- }

- 

- @media screen and (orientation: landscape) {

- 	.uls-mobile .show-for-landscape,

- 	.uls-mobile .hide-for-portrait {

- 		display: block !important;

- 	}

- 	.uls-mobile .hide-for-landscape,

- 	.uls-mobile .show-for-portrait {

- 		display: none !important;

- 	}

- }

- 

- @media screen and (orientation: portrait) {

- 	.uls-mobile .show-for-portrait,

- 	.uls-mobile .hide-for-landscape {

- 		display: block !important;

- 	}

- 	.uls-mobile .hide-for-portrait,

- 	.uls-mobile .show-for-landscape {

- 		display: none !important;

- 	}

- }

- 

- /* Touch-enabled device targeting */

- .uls-mobile .show-for-touch {

- 	display: none !important;

- }

- 

- .uls-mobile .hide-for-touch {

- 	display: block !important;

- }

- 

- .uls-mobile .touch .show-for-touch {

- 	display: block !important;

- }

- 

- .uls-mobile .touch .hide-for-touch {

- 	display: none !important;

- }

@@ -1,444 +0,0 @@ 

- /**

-  * Universal Language Selector

-  * ULS core component.

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- ( function ( $ ) {

- 	'use strict';

- 

- 	var template, ULS;

- 

- 	// Region numbers in id attributes also appear in the langdb.

- 	/*jshint multistr:true */

- 	template = '<div class="grid uls-menu uls-wide"> \

- 			<div class="row"> \

- 				<span id="uls-close" class="uls-icon-close"></span> \

- 			</div> \

- 			<div class="row"> \

- 				<div class="uls-title-region seven columns">\

- 					<h1 data-i18n="uls-select-language" class="uls-title">Select Language</h1>\

- 				</div>\

- 				<div class="five columns uls-map-block" id="uls-map-block">\

- 					<div class="row">\

- 						<div data-regiongroup="1" id="uls-region-1" class="three columns uls-region uls-region-1">\

- 							<a data-i18n="uls-region-WW">Worldwide</a>\

- 						</div>\

- 						<div class="nine columns">\

- 							<div class="row uls-worldmap">\

- 								<div data-regiongroup="2" id="uls-region-2" class="four columns uls-region">\

- 									<a data-i18n="uls-region-AM">America</a>\

- 								</div>\

- 								<div data-regiongroup="3" id="uls-region-3" class="four columns uls-region">\

- 									<a><span data-i18n="uls-region-EU">Europe</span><br>\

- 									<span data-i18n="uls-region-ME">Middle East</span><br>\

- 									<span data-i18n="uls-region-AF">Africa</span></a>\

- 								</div>\

- 								<div data-regiongroup="4" id="uls-region-4" class="four columns uls-region">\

- 									<a><span data-i18n="uls-region-AS">Asia</span><br>\

- 									<span data-i18n="uls-region-PA">Pacific</span></a>\

- 								</div>\

- 							</div>\

- 						</div>\

- 					</div>\

- 				</div>\

- 			</div>\

- 			<div id="search" class="row uls-search"> \

- 				<div class="one column">\

- 					<span class="uls-search-label"></span>\

- 				</div>\

- 				<div class="ten columns">\

- 					<div id="uls-search-input-block" class="uls-search-input-block">\

- 						<input type="text" class="uls-filterinput uls-filtersuggestion" id="uls-filtersuggestion" disabled="true"\

- 							autocomplete="off" /> <input type="text" class="uls-filterinput uls-languagefilter" id="uls-languagefilter"\

- 							data-clear="uls-languagefilter-clear" data-suggestion="uls-filtersuggestion"\

- 							placeholder="Language search" autocomplete="off" />\

- 					</div>\

- 				</div>\

- 				<div class="one column">\

- 					<span id="uls-languagefilter-clear" class="uls-languagefilter-clear"></span>\

- 				</div>\

- 			</div>\

- 			<div class="row uls-language-list"></div>\

- 			<div class="row" id="uls-settings-block"></div>\

- 		</div>';

- 	/*jshint multistr:false */

- 

- 	/**

- 	 * ULS Public class definition

- 	 */

- 	ULS = function ( element, options ) {

- 		this.$element = $( element );

- 		this.options = $.extend( {}, $.fn.uls.defaults, options );

- 		this.$menu = $( template );

- 		this.languages = this.options.languages;

- 

- 		for ( var code in this.languages ) {

- 			if ( $.uls.data.languages[code] === undefined ) {

- 				// Language is unknown to ULS.

- 				delete this.languages[code];

- 			}

- 		}

- 

- 		this.left = this.options.left;

- 		this.top = this.options.top;

- 		this.shown = false;

- 		this.initialized = false;

- 

- 		this.$languageFilter = this.$menu.find( '#uls-languagefilter' );

- 		this.$regionFilters = this.$menu.find( '.uls-region' );

- 		this.$resultsView = this.$menu.find( 'div.uls-language-list' );

- 

- 		this.render();

- 		this.listen();

- 		this.ready();

- 	};

- 

- 	ULS.prototype = {

- 		constructor: ULS,

- 

- 		/**

- 		 * A "hook" that runs after the ULS constructor.

- 		 * At this point it is not guaranteed that the ULS has its dimensions

- 		 * and that the languages lists are initialized.

- 		 *

- 		 * To use it, pass a function as the onReady parameter

- 		 * in the options when initializing ULS.

- 		 */

- 		ready: function () {

- 			if ( this.options.onReady ) {

- 				this.options.onReady.call( this );

- 			}

- 		},

- 

- 		/**

- 		 * A "hook" that runs after the ULS panel becomes visible

- 		 * by using the show method.

- 		 *

- 		 * To use it, pass a function as the onVisible parameter

- 		 * in the options when initializing ULS.

- 		 */

- 		visible: function () {

- 			if ( this.options.onVisible ) {

- 				this.options.onVisible.call( this );

- 			}

- 		},

- 

- 		/**

- 		 * Calculate the position of ULS

- 		 * Returns an object with top and left properties.

- 		 * @returns {Object}

- 		 * position is set by setting also window height and margin

- 		 */

- 		position: function () {

- 			var pos = $.extend( {}, this.$element.offset(), {

- 				height: this.$element[0].offsetHeight

- 			} );

- 			return {

- 				top: this.top !== undefined ? this.top : pos.top - (447+10),

- 				left: this.left !== undefined ? this.left : '25%'

- 			};

- 		},

- 

- 		/**

- 		 * Show the ULS window

- 		 */

- 		show: function () {

- 			this.$menu.css( this.position() );

- 

- 			if ( this.options.compact ) {

- 				this.$menu.addClass( 'uls-compact' );

- 			}

- 

- 			if ( !this.initialized ) {

- 				$( 'body' ).prepend( this.$menu );

- 				this.i18n();

- 

- 				// Initialize with a full search.

- 				// This happens on first time click of uls trigger.

- 				this.defaultSearch();

- 

- 				this.initialized = true;

- 			}

- 

- 			// hide any other visible ULS

- 			$( '.uls-menu' ).hide();

- 

- 			this.$menu.show();

- 			this.$menu.scrollIntoView();

- 			this.shown = true;

- 

- 			if ( !this.isMobile() ) {

- 				this.$languageFilter.focus();

- 			}

- 

- 			this.visible();

- 		},

- 

- 		i18n: function () {

- 			if ( $.i18n ) {

- 				this.$menu.find( '[data-i18n]' ).i18n();

- 				this.$languageFilter.prop( 'placeholder', $.i18n( 'uls-search-placeholder' ) );

- 			}

- 		},

- 

- 		defaultSearch: function () {

- 			this.$resultsView.lcd( 'empty' );

- 

- 			this.$regionFilters.regionselector( 'show' );

- 		},

- 

- 		/**

- 		 * Hide the ULS window

- 		 */

- 		hide: function () {

- 			this.$menu.hide();

- 			this.shown = false;

- 		},

- 

- 		/**

- 		 * Render the UI elements.

- 		 * Does nothing by default. Can be used for customization.

- 		 */

- 		render: function () {

- 			// Rendering stuff here

- 		},

- 

- 		/**

- 		 * Callback for no results found context.

- 		 */

- 		noresults: function () {

- 			$( '.regionselector' ).removeClass( 'active' );

- 			this.$resultsView.lcd( 'noResults' );

- 		},

- 

- 		/**

- 		 * callback for results found context.

- 		 */

- 		success: function () {

- 			$( '.regionselector' ).removeClass( 'active' );

- 			this.$resultsView.show();

- 		},

- 

- 		/**

- 		 * Bind the UI elements with their event listeners

- 		 */

- 		listen: function () {

- 			var lcd,

- 				uls = this;

- 

- 			// Register all event listeners to the ULS here.

- 			this.$element.on( 'click', $.proxy( this.click, this ) );

- 

- 			this.$languageFilter.on( 'searchclear.uls', $.proxy( this.defaultSearch, this ) );

- 			this.$languageFilter.on( 'noresults.uls', $.proxy( this.noresults, this ) );

- 			this.$languageFilter.on( 'resultsfound.uls', $.proxy( this.success, this ) );

- 

- 			// Close when clicking on the close button

- 			this.$menu.find( '#uls-close' ).on( 'click', $.proxy( this.cancel, this ) );

- 			// Don't do anything if pressing on empty space in the ULS

- 			this.$menu.on( 'click', function ( e ) {

- 				e.stopPropagation();

- 			} );

- 

- 			// Handle key press events on the menu

- 			this.$menu.on( 'keypress', $.proxy( this.keypress, this ) )

- 				.on( 'keyup', $.proxy( this.keyup, this ) );

- 

- 			if ( this.eventSupported( 'keydown' ) ) {

- 				this.$menu.on( 'keydown', $.proxy( this.keypress, this ) );

- 			}

- 

- 			lcd = this.$resultsView.lcd( {

- 				languages: this.languages,

- 				quickList: this.options.quickList,

- 				clickhandler: $.proxy( this.select, this ),

- 				source: this.$languageFilter,

- 				showRegions: this.options.showRegions,

- 				languageDecorator: this.options.languageDecorator

- 			} ).data( 'lcd' );

- 

- 			this.$languageFilter.languagefilter( {

- 				$target: lcd,

- 				languages: this.languages,

- 				searchAPI: this.options.searchAPI,

- 				onSelect: $.proxy( this.select, this )

- 			} );

- 

- 			// Create region selectors, one per region

- 			this.$menu.find( '.uls-region, .uls-region-link' ).regionselector( {

- 				$target: lcd,

- 				languages: this.languages,

- 				success: function ( regionfilter ) {

- 					// Deactivate search filtering

- 					uls.$languageFilter.languagefilter( 'deactivate' );

- 

- 					// If it is the WW region, show the quicklist

- 					if ( regionfilter.regionGroup === 1 ) {

- 						lcd.quicklist();

- 					}

- 

- 					// Show 'results view' if we are in no results mode

- 					uls.success();

- 				},

- 				noresults: function () {

- 					uls.$languageFilter.languagefilter( 'clear' );

- 				}

- 			} );

- 

- 			$( 'html' ).click( $.proxy( this.cancel, this ) );

- 		},

- 

- 		/**

- 		 * On select handler for search results

- 		 * @param langCode

- 		 */

- 		select: function ( langCode ) {

- 			this.hide();

- 			this.$languageFilter.trigger( 'searchclear' );

- 			if ( this.options.onSelect ) {

- 				this.options.onSelect.call( this, langCode );

- 			}

- 		},

- 

- 		/**

- 		 * On cancel handler for the uls menu

- 		 */

- 		cancel: function () {

- 			this.hide();

- 

- 			if ( this.options.onCancel ) {

- 				this.options.onCancel.call( this );

- 			}

- 		},

- 

- 		keyup: function ( e ) {

- 			if ( !this.shown ) {

- 				return;

- 			}

- 

- 			if ( e.keyCode === 27 ) { // escape

- 				this.cancel();

- 				e.preventDefault();

- 				e.stopPropagation();

- 			}

- 		},

- 

- 		keypress: function ( e ) {

- 			if ( !this.shown ) {

- 				return;

- 			}

- 

- 			if ( e.keyCode === 27 ) { // escape

- 				this.cancel();

- 				e.preventDefault();

- 				e.stopPropagation();

- 			}

- 		},

- 

- 		click: function ( e ) {

- 			e.stopPropagation();

- 			e.preventDefault();

- 

- 			if ( this.shown ) {

- 				this.hide();

- 			} else {

- 				this.show();

- 			}

- 		},

- 

- 		eventSupported: function ( eventName ) {

- 			var isSupported = eventName in this.$menu;

- 

- 			if ( !isSupported ) {

- 				this.$element.setAttribute( eventName, 'return;' );

- 				isSupported = typeof this.$element[eventName] === 'function';

- 			}

- 

- 			return isSupported;

- 		},

- 

- 		isMobile: function () {

- 			return navigator.userAgent.match( /(iPhone|iPod|iPad|Android|BlackBerry)/ );

- 		}

- 	};

- 

- 	/* ULS PLUGIN DEFINITION

- 	 * =========================== */

- 

- 	$.fn.uls = function ( option ) {

- 		return this.each( function () {

- 			var $this = $( this ),

- 				data = $this.data( 'uls' ),

- 				options = typeof option === 'object' && option;

- 

- 			if ( !data ) {

- 				$this.data( 'uls', ( data = new ULS( this, options ) ) );

- 			}

- 

- 			if ( typeof option === 'string' ) {

- 				data[option]();

- 			}

- 		} );

- 	};

- 

- 	$.fn.uls.defaults = {

- 		onSelect: null, // Callback function to be called when a language is selected

- 		searchAPI: null, // Language search API

- 		languages: $.uls.data.getAutonyms(), // Languages to be used for ULS, default is all languages

- 		quickList: null, // Array of language codes or function that returns such

- 		compact: false, // Show ULS in compact mode

- 		showRegions: [ 'WW', 'AM', 'EU', 'ME', 'AF', 'AS', 'PA' ],

- 		languageDecorator: null // Callback function to be called when a language link is prepared - for custom decoration.

- 	};

- 

- 	// Define a dummy i18n function, if jquery.i18n not integrated.

- 	if ( !$.fn.i18n ) {

- 		$.fn.i18n = function () {};

- 	}

- 

- 	/*

- 	 * Simple scrollIntoView plugin.

- 	 * Scrolls the element to the viewport smoothly if it is not already.

- 	 */

- 	$.fn.scrollIntoView = function () {

- 		return this.each( function () {

- 			var scrollPosition,

- 				$window = $( window ),

- 				windowHeight = $window.height(),

- 				windowTop = $window.scrollTop(),

- 				windowBottom = windowTop + windowHeight,

- 				$element = $( this ),

- 				panelHeight = $element.height(),

- 				panelTop = $element.offset().top,

- 				panelBottom = panelTop + panelHeight;

- 

- 			if ( ( panelTop < windowTop ) || ( panelBottom > windowBottom ) ) {

- 				if ( windowTop > panelTop ) {

- 					scrollPosition = panelTop;

- 				} else {

- 					scrollPosition = panelBottom - windowHeight;

- 				}

- 				$( 'html, body' ).stop().animate( {

- 					scrollTop: scrollPosition

- 				}, 500 );

- 			}

- 		} );

- 	};

- 

- 	$.fn.uls.Constructor = ULS;

- }( jQuery ) );

@@ -1,7 +0,0 @@ 

- // Please do not edit. This file is generated from data/langdb.yaml by ulsdata2json.php

- ( function ( $ ) {

- 	'use strict';

- 	$.uls = $.uls || {};

- 	//noinspection JSHint

- 	$.uls.data = {"languages":{"aa":["Latn",["AF"],"Qafár af"],"ab":["Cyrl",["EU"],"Аҧсшәа"],"ace":["Latn",["AS","PA"],"Acèh"],"ady":["Cyrl",["EU","ME"],"Адыгэбзэ"],"ady-cyrl":["ady"],"ady-latn":["Latn",["EU","ME"],"Adygabze"],"aeb":["Arab",["AF"],"زَوُن"],"af":["Latn",["AF"],"Afrikaans"],"ahr":["Deva",["AS"],"अहिराणी"],"ak":["Latn",["AF"],"Akan"],"akz":["Latn",["AM"],"Albaamo innaaɬiilka"],"aln":["Latn",["EU"],"Gegë"],"am":["Ethi",["AF"],"አማርኛ"],"an":["Latn",["EU"],"aragonés"],"ang":["Latn",["EU"],"Ænglisc"],"anp":["Deva",["AS"],"अङ्गिका"],"ar":["Arab",["ME"],"العربية"],"arc":["Syrc",["ME"],"ܐܪܡܝܐ"],"arn":["Latn",["AM"],"mapudungun"],"aro":["Latn",["AM"],"Araona"],"arq":["Arab",["AF"],"جازايرية"],"ary":["Latn",["ME"],"Maġribi"],"arz":["Arab",["ME"],"مصرى"],"as":["Beng",["AS"],"অসমীয়া"],"ase":["Sgnw",["AM"],"American sign language"],"ast":["Latn",["EU"],"asturianu"],"av":["Cyrl",["EU"],"авар"],"avk":["Latn",["WW"],"Kotava"],"ay":["Latn",["AM"],"Aymar aru"],"az":["az-latn"],"az-latn":["Latn",["EU","ME"],"azərbaycanca"],"az-arab":["Arab",["EU","ME"],"آذربايجانجا"],"az-cyrl":["Latn",["EU","ME"],"азәрбајҹанҹа"],"azb":["az-arab"],"ba":["Cyrl",["EU"],"башҡортса"],"bar":["Latn",["EU"],"Boarisch"],"bat-smg":["sgs"],"bbc-latn":["Latn",["AS"],"Batak Toba"],"bbc-batk":["Batk",["AS"],"Batak Toba"],"bbc":["Latn",["AS"],"Batak Toba"],"bcc":["Arab",["AS","ME"],"بلوچی مکرانی"],"bcl":["Latn",["AS"],"Bikol Central"],"be-tarask":["Cyrl",["EU"],"беларуская (тарашкевіца)"],"be-x-old":["be-tarask"],"be":["Cyrl",["EU"],"беларуская"],"bew":["Latn",["AS"],"Bahasa Betawi"],"bfq":["Taml",["AS"],"படகா"],"bg":["Cyrl",["EU"],"български"],"bh":["Deva",["AS"],"भोजपुरी"],"bho":["Deva",["AS"],"भोजपुरी"],"bi":["Latn",["PA"],"Bislama"],"bjn":["Latn",["AS"],"Bahasa Banjar"],"bm":["Latn",["AF"],"bamanankan"],"bn":["Beng",["AS"],"বাংলা"],"bo":["Tibt",["AS"],"བོད་ཡིག"],"bpy":["Beng",["AS"],"বিষ্ণুপ্রিয়া মণিপুরী"],"bqi":["Arab",["ME"],"بختياري"],"br":["Latn",["EU"],"brezhoneg"],"brh":["Latn",["ME","AS"],"Bráhuí"],"brx":["Deva",["AS"],"बड़ो"],"bs":["Latn",["EU"],"bosanski"],"bto":["Latn",["AS"],"Iriga Bicolano"],"bug":["Bugi",["AS"],"ᨅᨔ ᨕᨘᨁᨗ"],"bxr":["Cyrl",["AS"],"буряад"],"ca":["Latn",["EU"],"català"],"cbk-zam":["Latn",["AS"],"Chavacano de Zamboanga"],"cdo":["Latn",["AS"],"Mìng-dĕ̤ng-ngṳ̄"],"ce":["Cyrl",["EU"],"нохчийн"],"ceb":["Latn",["AS"],"Cebuano"],"ch":["Latn",["PA"],"Chamoru"],"cho":["Latn",["AM"],"Choctaw"],"chr":["Cher",["AM"],"ᏣᎳᎩ"],"chy":["Latn",["AM"],"Tsetsêhestâhese"],"ckb":["Arab",["ME"],"کوردی"],"co":["Latn",["EU"],"corsu"],"cps":["Latn",["AS"],"Capiceño"],"cr":["Cans",["AM"],"ᓀᐦᐃᔭᐍᐏᐣ"],"cr-cans":["cr"],"cr-latn":["Latn",["AM"],"Nēhiyawēwin"],"crh":["Latn",["EU"],"qırımtatarca"],"crh-cyrl":["Cyrl",["EU"],"къырымтатарджа"],"crh-latn":["crh"],"cs":["Latn",["EU"],"česky"],"csb":["Latn",["EU"],"kaszëbsczi"],"cu":["Cyrl",["EU"],"словѣньскъ \/ ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ"],"cv":["Cyrl",["EU"],"Чӑвашла"],"cy":["Latn",["EU"],"Cymraeg"],"da":["Latn",["EU"],"dansk"],"de-at":["Latn",["EU"],"Österreichisches Deutsch"],"de-ch":["Latn",["EU"],"Schweizer Hochdeutsch"],"de-formal":["Latn",["EU"],"Deutsch (Sie-Form)"],"de":["Latn",["EU"],"Deutsch"],"diq":["Latn",["EU","AS"],"Zazaki"],"dsb":["Latn",["EU"],"dolnoserbski"],"dtp":["Latn",["AS"],"Dusun Bundu-liwan"],"dv":["Thaa",["AS"],"ދިވެހިބަސް"],"dz":["Tibt",["AS"],"ཇོང་ཁ"],"ee":["Latn",["AF"],"eʋegbe"],"egl":["Latn",["EU"],"Emiliàn"],"el":["Grek",["EU"],"Ελληνικά"],"eml":["Latn",["EU"],"emiliàn e rumagnòl"],"en-ca":["Latn",["AM"],"Canadian English"],"en-gb":["Latn",["EU","AS","PA"],"British English"],"en":["Latn",["EU","AM","AF","ME","AS","PA","WW"],"English"],"eo":["Latn",["WW"],"Esperanto"],"es-419":["Latn",["AM"],"español de America Latina"],"es-formal":["Latn",["EU","AM","AF","WW"],"español (formal)"],"es":["Latn",["EU","AM","AF","WW"],"español"],"esu":["Latn",["AM"],"Yup'ik"],"et":["Latn",["EU"],"eesti"],"eu":["Latn",["EU"],"euskara"],"ext":["Latn",["EU"],"estremeñu"],"fa":["Arab",["ME"],"فارسی"],"ff":["Latn",["AF"],"Fulfulde"],"fi":["Latn",["EU"],"suomi"],"fil":["tl"],"fit":["Latn",["EU"],"meänkieli"],"fiu-vro":["vro"],"fj":["Latn",["PA"],"Na Vosa Vakaviti"],"fo":["Latn",["EU"],"føroyskt"],"fr":["Latn",["EU","AM","WW"],"français"],"frc":["Latn",["AM"],"français cadien"],"frp":["Latn",["EU"],"arpetan"],"frr":["Latn",["EU"],"Nordfriisk"],"fur":["Latn",["EU"],"furlan"],"fy":["Latn",["EU"],"Frysk"],"ga":["Latn",["EU"],"Gaeilge"],"gag":["Latn",["EU"],"Gagauz"],"gah":["Latn",["AS"],"Alekano"],"gan-hans":["Hans",["AS"],"赣语(简体)"],"gan-hant":["gan"],"gan":["Hant",["AS"],"贛語"],"gbz":["Latn",["AS"],"Dari"],"gcf":["Latn",["AM"],"Guadeloupean Creole French"],"gd":["Latn",["EU"],"Gàidhlig"],"gl":["Latn",["EU"],"galego"],"glk":["Arab",["ME"],"گیلکی"],"gn":["Latn",["AM"],"Avañe'ẽ"],"gom":["Deva",["AS"],"कोंकणी"],"gom-deva":["gom"],"gom-latn":["Latn",["AS"],"Konknni"],"got":["Goth",["EU"],"𐌲𐌿𐍄𐌹𐍃𐌺"],"grc":["Grek",["EU"],"Ἀρχαία ἑλληνικὴ"],"gsw":["Latn",["EU"],"Alemannisch"],"gu":["Gujr",["AS"],"ગુજરાતી"],"guc":["Latn",["AM"],"Wayúu"],"gur":["Latn",["AF"],"Gurenɛ"],"gv":["Latn",["EU"],"Gaelg"],"ha-arab":["Arab",["AF"],"هَوُسَ"],"ha-latn":["Latn",["AF"],"Hausa"],"ha":["ha-latn"],"hak":["Latn",["AS"],"Hak-kâ-fa"],"haw":["Latn",["AM","PA"],"Hawai`i"],"he":["Hebr",["ME"],"עברית"],"hi":["Deva",["AS"],"हिन्दी"],"hif":["Latn",["PA","AS"],"Fiji Hindi"],"hif-deva":["Deva",["AS"],"फ़ीजी हिन्दी"],"hif-latn":["hif"],"hil":["Latn",["AS"],"Ilonggo"],"hne":["Deva",["AS"],"छत्तीसगढ़ी"],"ho":["Latn",["PA"],"Hiri Motu"],"hr":["Latn",["EU"],"hrvatski"],"hsb":["Latn",["EU"],"hornjoserbsce"],"hsn":["Hans",["AS"],"湘语"],"ht":["Latn",["AM"],"Kreyòl ayisyen"],"hu-formal":["Latn",["EU"],"Magyar (magázó)"],"hu":["Latn",["EU"],"magyar"],"hy":["Armn",["EU","ME"],"Հայերեն"],"hz":["Latn",["AF"],"Otsiherero"],"ia":["Latn",["WW"],"interlingua"],"id":["Latn",["AS"],"Bahasa Indonesia"],"ie":["Latn",["WW"],"Interlingue"],"ig":["Latn",["AF"],"Igbo"],"ii":["Yiii",["AS"],"ꆇꉙ"],"ik":["Latn",["AM"],"Iñupiak"],"ike-cans":["Cans",["AM"],"ᐃᓄᒃᑎᑐᑦ"],"ike-latn":["Latn",["AM"],"inuktitut"],"ilo":["Latn",["AS"],"Ilokano"],"inh":["Cyrl",["EU"],"ГӀалгӀай"],"io":["Latn",["WW"],"Ido"],"is":["Latn",["EU"],"íslenska"],"it":["Latn",["EU"],"italiano"],"iu":["Cans",["AM"],"ᐃᓄᒃᑎᑐᑦ"],"ja":["Jpan",["AS"],"日本語"],"jam":["Latn",["AM"],"Patois"],"jbo":["Latn",["WW"],"lojban"],"jut":["Latn",["EU"],"jysk"],"jv":["Latn",["AS","PA"],"Basa Jawa"],"jv-java":["Java",["AS","PA"],"ꦧꦱꦗꦮ"],"ka":["Geor",["EU"],"ქართული"],"kaa":["Latn",["AS"],"Qaraqalpaqsha"],"kab":["Latn",["AF","EU"],"Taqbaylit"],"kbd-cyrl":["kbd"],"kbd-latn":["Latn",["EU"],"Qabardjajəbza"],"kbd":["Cyrl",["EU","ME"],"Адыгэбзэ"],"kea":["Latn",["AF"],"Kabuverdianu"],"kg":["Latn",["AF"],"Kongo"],"kgp":["Latn",["AM"],"Kaingáng"],"khw":["Arab",["ME","AS"],"کھوار"],"ki":["Latn",["AF"],"Gĩkũyũ"],"kiu":["Latn",["EU","ME"],"Kırmancki"],"kj":["Latn",["AF"],"Kwanyama"],"kjh":["Cyrl",["AS"],"хакас"],"kk":["kk-cyrl"],"kk-arab":["Arab",["EU","AS"],"قازاقشا (تٶتە)"],"kk-cn":["kk-arab"],"kk-cyrl":["Cyrl",["EU","AS"],"қазақша"],"kk-kz":["kk-cyrl"],"kk-latn":["Latn",["EU","AS","ME"],"qazaqşa"],"kk-tr":["kk-latn"],"kl":["Latn",["AM","EU"],"kalaallisut"],"km":["Khmr",["AS"],"ភាសាខ្មែរ"],"kn":["Knda",["AS"],"ಕನ್ನಡ"],"ko-kp":["Kore",["AS"],"한국어 (조선)"],"ko":["Kore",["AS"],"한국어"],"koi":["Cyrl",["EU"],"Перем Коми"],"kr":["Latn",["AF"],"Kanuri"],"krc":["Cyrl",["EU"],"къарачай-малкъар"],"kri":["Latn",["AF"],"Krio"],"krj":["Latn",["ME","EU"],"Kinaray-a"],"krl":["Latn",["EU"],"Karjala"],"ks-arab":["Arab",["AS"],"کٲشُر"],"ks-deva":["Deva",["AS"],"कॉशुर"],"ks":["Arab",["AS"],"کٲشُر"],"ksf":["Latn",["AF"],"Bafia"],"ksh":["Latn",["EU"],"Ripoarisch"],"ku":["ku-latn"],"ku-arab":["Arab",["EU","ME"],"كوردي"],"ku-latn":["Latn",["EU","ME"],"Kurdî"],"kv":["Cyrl",["EU"],"коми"],"kw":["Latn",["EU"],"kernowek"],"ky":["Cyrl",["AS"],"Кыргызча"],"la":["Latn",["EU"],"Latina"],"lad":["lad-latn"],"lad-latn":["Latn",["ME","EU","AM"],"Ladino"],"lad-hebr":["Hebr",["ME","EU","AM"],"לאדינו"],"lb":["Latn",["EU"],"Lëtzebuergesch"],"lbe":["Cyrl",["EU"],"лакку"],"lez":["Cyrl",["EU"],"лезги"],"lfn":["Latn",["WW"],"Lingua Franca Nova"],"lg":["Latn",["AF"],"Luganda"],"li":["Latn",["EU"],"Limburgs"],"lij":["Latn",["EU"],"Ligure"],"liv":["Latn",["EU"],"Līvõ kēļ"],"lld":["Latn",["EU"],"Ladin"],"lmo":["Latn",["EU"],"lumbaart"],"ln":["Latn",["AF"],"lingála"],"lo":["Laoo",["AS"],"ລາວ"],"loz":["Latn",["AF"],"Silozi"],"lt":["Latn",["EU"],"lietuvių"],"lrc":["Arab",["AS"],"لوری"],"ltg":["Latn",["EU"],"latgaļu"],"lud":["Latn",["EU"],"lüüdi"],"lus":["Latn",["AS"],"Mizo ţawng"],"lut":["Latn",["AM"],"dxʷləšucid"],"lv":["Latn",["EU"],"latviešu"],"lzh":["Hant",["AS"],"文言"],"lzz":["Latn",["EU","ME"],"Lazuri"],"mai":["Deva",["AS"],"मैथिली"],"map-bms":["Latn",["AS"],"Basa Banyumasan"],"mdf":["Cyrl",["EU"],"мокшень"],"mfe":["Latn",["AM"],"Morisyen"],"mg":["Latn",["AF"],"Malagasy"],"mh":["Latn",["PA"],"Ebon"],"mhr":["Cyrl",["EU"],"олык марий"],"mi":["Latn",["PA"],"Māori"],"mic":["Latn",["AM"],"Mi'kmaq"],"min":["Latn",["AS"],"Baso Minangkabau"],"mk":["Cyrl",["EU"],"македонски"],"ml":["Mlym",["AS","ME"],"മലയാളം"],"mn":["Cyrl",["AS"],"монгол"],"mnc":["Mong",["AS"],"ᠮᠠᠨᠵᡠ ᡤᡳᠰᡠᠨ"],"mni":["Beng",["AS"],"মেইতেই লোন্"],"mnw":["Mymr",["AS"],"ဘာသာ မန်"],"mo":["Cyrl",["EU"],"молдовеняскэ"],"mr":["Deva",["AS","ME"],"मराठी"],"mrj":["Cyrl",["EU"],"кырык мары"],"ms":["Latn",["AS"],"Bahasa Melayu"],"mt":["Latn",["EU"],"Malti"],"mui":["Latn",["AS"],"Musi"],"mus":["Latn",["AM"],"Mvskoke"],"mwl":["Latn",["EU"],"Mirandés"],"mwv":["Latn",["AS"],"Behase Mentawei"],"my":["Mymr",["AS"],"မြန်မာဘာသာ"],"myv":["Cyrl",["EU"],"эрзянь"],"mzn":["Arab",["ME","AS"],"مازِرونی"],"na":["Latn",["PA"],"Dorerin Naoero"],"nah":["Latn",["AM"],"Nāhuatl"],"nan":["Latn",["AS"],"Bân-lâm-gú"],"nap":["Latn",["EU"],"Nnapulitano"],"nb":["Latn",["EU"],"norsk (bokmål)"],"nds-nl":["Latn",["EU"],"Nedersaksisch"],"nds":["Latn",["EU"],"Plattdüütsch"],"ne":["Deva",["AS"],"नेपाली"],"new":["Deva",["AS"],"नेपाल भाषा"],"ng":["Latn",["AF"],"Oshiwambo"],"niu":["Latn",["PA"],"ko e vagahau Niuē"],"njo":["Latn",["AS"],"Ao"],"nl-informal":["Latn",["EU","AM"],"Nederlands (informeel)"],"nl":["Latn",["EU","AM"],"Nederlands"],"nn":["Latn",["EU"],"norsk (nynorsk)"],"no":["Latn",["EU"],"norsk"],"nov":["Latn",["WW"],"Novial"],"nqo":["Nkoo",["AF"],"ߒߞߏ"],"nrm":["Latn",["EU"],"Nouormand"],"nso":["Latn",["AF"],"Sesotho sa Leboa"],"nv":["Latn",["AM"],"Diné bizaad"],"ny":["Latn",["AF"],"Chi-Chewa"],"oc":["Latn",["EU"],"occitan"],"om":["Latn",["AF"],"Oromoo"],"or":["Orya",["AS"],"ଓଡ଼ିଆ"],"os":["Cyrl",["EU"],"Ирон"],"ota":["Arab",["AS","EU"],"لسان عثمانى"],"pa":["pa-guru"],"pa-guru":["Guru",["AS"],"ਪੰਜਾਬੀ"],"pag":["Latn",["AS"],"Pangasinan"],"pam":["Latn",["AS"],"Kapampangan"],"pap":["Latn",["AM"],"Papiamentu"],"pcd":["Latn",["EU"],"Picard"],"pdc":["Latn",["EU","AM"],"Deitsch"],"pdt":["Latn",["EU","AM"],"Plautdietsch"],"pfl":["Latn",["EU"],"Pälzisch"],"pi":["Deva",["AS"],"पालि"],"pih":["Latn",["PA"],"Norfuk \/ Pitkern"],"pis":["Latn",["PA"],"Pijin"],"pko":["Latn",["AF"],"Pökoot"],"pl":["Latn",["EU"],"polski"],"pms":["Latn",["EU"],"Piemontèis"],"pnb":["Arab",["AS","ME"],"پنجابی"],"pnt":["Grek",["EU"],"Ποντιακά"],"ppl":["Latn",["AM"],"Nawat"],"prg":["Latn",["EU"],"Prūsiskan"],"ps":["Arab",["AS","ME"],"پښتو"],"pt_BR":["Latn",["AM"],"português do Brasil"],"pt":["Latn",["EU","AS","PA","AF","WW"],"português"],"qu":["Latn",["AM"],"Runa Simi"],"qug":["Latn",["AM"],"Runa shimi"],"rap":["Latn",["AM"],"arero rapa nui"],"rgn":["Latn",["EU"],"Rumagnôl"],"rif":["Latn",["AF"],"Tarifit"],"rki":["Mymr",["AS"],"ရခိုင်"],"rm":["Latn",["EU"],"rumantsch"],"rmf":["Latn",["EU"],"kaalengo tšimb"],"rmy":["Latn",["EU"],"Romani"],"rn":["Latn",["AF"],"Kirundi"],"ro":["Latn",["EU"],"română"],"roa-rup":["rup"],"roa-tara":["Latn",["EU"],"tarandíne"],"rtm":["Latn",["PA"],"Faeag Rotuma"],"ru":["Cyrl",["EU","AS","ME"],"русский"],"rue":["Cyrl",["EU"],"русиньскый"],"rup":["Latn",["EU"],"Armãneashce"],"ruq":["Cyrl",["EU"],"Влахесте"],"ruq-cyrl":["ruq"],"ruq-grek":["Grek",["EU"],"Megleno-Romanian (Greek script)"],"ruq-latn":["Latn",["EU"],"Vlăheşte"],"rut":["Cyrl",["EU"],"мыхаӀбишды"],"rw":["Latn",["AF"],"Kinyarwanda"],"rwr":["Deva",["AS"],"मारवाड़ी"],"ryu":["Kana",["AS"],"ʔucināguci"],"sa":["Deva",["AS"],"संस्कृतम्"],"sah":["Cyrl",["EU","AS"],"саха тыла"],"sat":["Latn",["AS"],"Santali"],"saz":["Saur",["AS"],"ꢱꣃꢬꢵꢯ꣄ꢡ꣄ꢬꢵ"],"sc":["Latn",["EU"],"sardu"],"scn":["Latn",["EU"],"sicilianu"],"sco":["Latn",["EU"],"Scots"],"sd":["Arab",["AS"],"سنڌي"],"sdc":["Latn",["EU"],"Sassaresu"],"se":["Latn",["EU"],"sámegiella"],"ses":["Latn",["AF"],"Koyraboro Senni"],"sei":["Latn",["AM"],"Cmique Itom"],"sg":["Latn",["AF"],"Sängö"],"sgs":["Latn",["EU"],"žemaitėška"],"sh":["Latn",["EU"],"srpskohrvatski"],"shi-latn":["Latn",["AF"],"Tašlḥiyt"],"shi-tfng":["Tfng",["AF"],"ⵜⴰⵛⵍⵃⵉⵜ"],"shi":["shi-latn"],"shn":["Mymr",["AS"],"လိၵ်ႈတႆး"],"si":["Sinh",["AS"],"සිංහල"],"simple":["Latn",["WW"],"Simple English"],"sk":["Latn",["EU"],"slovenčina"],"sl":["Latn",["EU"],"slovenščina"],"sli":["Latn",["EU"],"Schläsch"],"slr":["Latn",["AS"],"Salırça"],"sly":["Latn",["AS"],"Bahasa Selayar"],"syc":["Syrc",["ME"],"ܣܘܪܝܝܐ"],"sm":["Latn",["PA"],"Gagana Samoa"],"sma":["Latn",["EU"],"åarjelsaemien"],"smj":["Latn",["EU"],"julevsámegiella"],"smn":["Latn",["EU"],"anarâškielâ"],"sms":["Latn",["EU"],"sää´mǩiõll"],"sn":["Latn",["AF"],"chiShona"],"so":["Latn",["AF"],"Soomaaliga"],"sq":["Latn",["EU"],"shqip"],"sr":["Cyrl",["EU"],"српски"],"sr-ec":["sr-cyrl"],"sr-cyrl":["Cyrl",["EU"],"српски"],"sr-el":["sr-latn"],"sr-latn":["Latn",["EU"],"srpski"],"srn":["Latn",["AM","EU"],"Sranantongo"],"ss":["Latn",["AF"],"SiSwati"],"st":["Latn",["AF"],"Sesotho"],"stq":["Latn",["EU"],"Seeltersk"],"su":["Latn",["AS"],"Basa Sunda"],"sv":["Latn",["EU"],"svenska"],"sw":["Latn",["AF"],"Kiswahili"],"swb":["Latn",["AF"],"Shikomoro"],"sxu":["Latn",["EU"],"Säggssch"],"szl":["Latn",["EU"],"ślůnski"],"ta":["Taml",["AS"],"தமிழ்"],"tcy":["Knda",["AS"],"ತುಳು"],"te":["Telu",["AS"],"తెలుగు"],"tet":["Latn",["AS","PA"],"tetun"],"tg-cyrl":["Cyrl",["AS"],"тоҷикӣ"],"tg-latn":["Latn",["AS"],"tojikī"],"tg":["Cyrl",["AS"],"тоҷикӣ"],"th":["Thai",["AS"],"ไทย"],"ti":["Ethi",["AF"],"ትግርኛ"],"tk":["Latn",["AS"],"Türkmençe"],"tkr":["Cyrl",["AS"],"ЦӀаьхна миз"],"tl":["Latn",["AS"],"Tagalog"],"tly":["Cyrl",["EU","AS","ME"],"толышә зывон"],"tn":["Latn",["AF"],"Setswana"],"to":["Latn",["PA"],"lea faka-Tonga"],"tokipona":["Latn",["WW"],"Toki Pona"],"tpi":["Latn",["PA","AS"],"Tok Pisin"],"tr":["Latn",["EU","ME"],"Türkçe"],"trp":["Latn",["AS"],"Kokborok (Tripuri)"],"tru":["Latn",["AS"],"Ṫuroyo"],"ts":["Latn",["AF"],"Xitsonga"],"tsd":["Grek",["EU"],"Τσακωνικά"],"tt":["Cyrl",["EU"],"татарча"],"tt-cyrl":["tt"],"tt-latn":["Latn",["EU"],"tatarça"],"ttt":["Cyrl",["AS"],"Tati"],"tum":["Latn",["AF"],"chiTumbuka"],"tw":["Latn",["AF"],"Twi"],"twd":["Latn",["EU"],"Tweants"],"ty":["Latn",["PA"],"Reo Mā`ohi"],"tyv":["Cyrl",["AS"],"тыва дыл"],"tzm":["Tfng",["AF"],"ⵜⴰⵎⴰⵣⵉⵖⵜ"],"udm":["Cyrl",["EU"],"удмурт"],"ug":["ug-arab"],"ug-arab":["Arab",["AS"],"ئۇيغۇرچە"],"ug-latn":["Latn",["AS"],"uyghurche"],"ug-cyrl":["Cyrl",["AS"],"уйғурчә"],"uk":["Cyrl",["EU"],"українська"],"ur":["Arab",["AS","ME"],"اردو"],"uz":["Latn",["AS"],"oʻzbekcha"],"ve":["Latn",["AF"],"Tshivenda"],"vec":["Latn",["EU"],"vèneto"],"vep":["Latn",["EU"],"vepsän kel’"],"vi":["Latn",["AS"],"Tiếng Việt"],"vls":["Latn",["EU"],"West-Vlams"],"vmf":["Latn",["EU"],"Mainfränkisch"],"vo":["Latn",["WW"],"Volapük"],"vot":["Latn",["EU"],"Vaďďa"],"vro":["Latn",["EU"],"Võro"],"wa":["Latn",["EU"],"walon"],"war":["Latn",["AS"],"Winaray"],"wls":["Latn",["PA"],"Faka'uvea"],"wo":["Latn",["AF"],"Wolof"],"wuu":["Hans",["AS"],"吴语"],"xal":["Cyrl",["EU"],"хальмг"],"xh":["Latn",["AF"],"isiXhosa"],"xmf":["Geor",["EU"],"მარგალური"],"ydd":["Hebr",["AS","EU"],"Eastern Yiddish"],"yi":["Hebr",["ME","EU","AM"],"ייִדיש"],"yo":["Latn",["AF"],"Yorùbá"],"yrk":["Cyrl",["AS"],"Ненэцяʼ вада"],"yrl":["Latn",["AM"],"ñe'engatú"],"yua":["Latn",["AM"],"Maaya T'aan"],"yue":["Hant",["AS"],"粵語"],"za":["Latn",["AS"],"Vahcuengh"],"zea":["Latn",["EU"],"Zeêuws"],"zh":["Hans",["AS"],"中文"],"zh-classical":["Hant",["AS"],"文言"],"zh_CN":["Hans",["AS"],"中文(中国大陆)"],"zh-hans":["Hans",["AS"],"中文(简体)"],"zh-hant":["Hant",["AS"],"中文(繁體)"],"zh-hk":["Hant",["AS"],"中文(香港)"],"zh-min-nan":["nan"],"zh-mo":["Hant",["AS"],"中文(澳門)"],"zh-my":["Hans",["AS"],"中文(马来西亚)"],"zh-sg":["Hans",["AS"],"中文(新加坡)"],"zh_TW":["Hant",["AS"],"中文(台灣)"],"zh-yue":["yue"],"zu":["Latn",["AF"],"isiZulu"]},"scriptgroups":{"Latin":["Latn","Goth"],"Greek":["Grek"],"WestCaucasian":["Armn","Geor"],"Arabic":["Arab"],"MiddleEastern":["Hebr","Syrc"],"African":["Ethi","Nkoo","Tfng"],"SouthAsian":["Beng","Deva","Gujr","Guru","Knda","Mlym","Orya","Saur","Sinh","Taml","Telu","Tibt","Thaa"],"Cyrillic":["Cyrl"],"CJK":["Hans","Hant","Kana","Kore","Jpan","Yiii"],"SouthEastAsian":["Batk","Bugi","Java","Khmr","Laoo","Mymr","Thai"],"Mongolian":["Mong"],"SignWriting":["Sgnw"],"NativeAmerican":["Cher","Cans"],"Special":["Zyyy"]},"rtlscripts":["Arab","Hebr","Syrc","Nkoo","Thaa"],"regiongroups":{"WW":1,"SP":1,"AM":2,"EU":3,"ME":3,"AF":3,"AS":4,"PA":4},"territories":{"AC":["en"],"AD":["ca","es","fr"],"AE":["ar","ml","ps","bal","fa"],"AF":["fa","ps","haz","uz-arab","tk-latn","prd","bal","ug-arab","kk-arab"],"AG":["en","pt"],"AI":["en"],"AL":["sq","el","mk"],"AM":["hy","ku-latn","az-latn"],"AO":["pt","umb","kmb","ln"],"AQ":["und"],"AR":["es","cy","gn"],"AS":["sm","en"],"AT":["de","bar","hr","sl","hu"],"AU":["en","zh-hant","it"],"AW":["nl","pap","en"],"AX":["sv"],"AZ":["az-latn","az-cyrl","tly-latn","ku-latn","ttt-latn","tkr-latn"],"BA":["bs-cyrl","bs-latn","hr","sr-cyrl","sr-latn"],"BB":["en"],"BD":["bn","rkt","syl","ccp","my","grt","mni"],"BE":["nl","en","fr","vls","wa","de"],"BF":["mos","dyu","fr"],"BG":["bg","tr"],"BH":["ar","ml"],"BI":["rn","fr","sw"],"BJ":["fr","fon","yo"],"BL":["fr"],"BM":["en"],"BN":["ms-latn","zh-hant","ms-arab","en"],"BO":["es","qu","ay","gn","aro"],"BQ":["pap","nl"],"BR":["pt","de","it","ja","ko","kgp","gub","yrl","xav"],"BS":["en"],"BT":["dz","ne","tsj","lep"],"BV":["und"],"BW":["en","tn","af"],"BY":["be","ru"],"BZ":["en","es"],"CA":["en","fr","it","de","pdt","cr-cans","crk","yi","iu-cans","iu-latn","moe","crj","atj","crl","csw","crm","ikt","moh","dgr","den","scs","nsk","chp","gwi"],"CC":["ms-arab","en"],"CD":["sw","lua","swc","fr","ln","lu","kg","lol","rw"],"CF":["fr","sg","ln"],"CG":["fr","ln"],"CH":["de","fr","gsw","it","lmo","rm","rmo","wae"],"CI":["fr","bci","sef","dnj","kfo","bqv"],"CK":["en"],"CL":["es","arn"],"CM":["fr","en","bum","ff","ewo","ybb","bbj","nnh","bkm","bas","bax","byv","mua","maf","bfd","bss","kkj","dua","mgo","ar","jgo","ksf","agq","ha-arab","nmg","yav"],"CN":["zh-hans","wuu","hsn","hak","nan","gan","ii","ug-arab","za","mn-mong","bo","ko","kk-arab","lis","ky-arab","nxq","khb","tdd","lcp","en","ru","vi","uz-cyrl","lzh"],"CO":["es","guc"],"CP":["und"],"CR":["es"],"CU":["es"],"CV":["kea","pt"],"CW":["pap","nl","es"],"CX":["en"],"CY":["el","tr","hy","ar"],"CZ":["cs","de","pl"],"DE":["de","en","nds","vmf","tr","hr","it","ku-latn","ru","el","ksh","pl","es","nl","da","hsb","frr","dsb","frs","stq","pfl"],"DG":["en"],"DJ":["aa","so","ar","fr"],"DK":["da","de","kl","jut"],"DM":["en"],"DO":["es","en"],"DZ":["arq","ar","fr","kab"],"EA":["es"],"EC":["es","qu","qug"],"EE":["et","ru","vro"],"EG":["ar","arz","el"],"EH":["ar"],"ER":["ti","en","tig","ar","aa","ssy","byn"],"ES":["es","en","ca","gl","eu","ast","ext"],"ET":["en","am","om","so","ti","sid","wal","aa"],"FI":["fi","sv","ru","en","et","rmf","se","smn","sms"],"FJ":["en","hi","hif-deva","fj","rtm"],"FK":["en"],"FM":["chk","pon","kos","yap","en","uli"],"FO":["fo"],"FR":["fr","en","oc","it","pt","pcd","gsw","br","co","ca","nl","eu","frp","ia"],"GA":["fr","puu"],"GB":["en","sco","pa-guru","cy","bn","zh-hant","syl","el","it","ks-arab","gd","yi","ml","ga","fr","kw"],"GD":["en"],"GE":["ka","xmf","ru","hy","ab","os","ku-latn"],"GF":["fr","gcr","zh-hant"],"GG":["en"],"GH":["ak","en","ee","abr","gur","gaa","ha-latn","saf"],"GI":["en"],"GL":["kl","da"],"GM":["en","man-latn"],"GN":["fr","ff","man-nkoo","sus","nqo","kpe"],"GP":["fr"],"GQ":["es","fan","fr","bvb"],"GR":["el","pnt-grek","mk","tr","bg","sq","tsd"],"GS":["und"],"GT":["es","quc"],"GU":["en","ch"],"GW":["pt"],"GY":["en"],"HK":["zh-hant","en","zh-hans"],"HM":["und"],"HN":["es","en"],"HR":["hr","it"],"HT":["ht","fr"],"HU":["hu","de","ro","hr","sk","sl"],"IC":["es"],"ID":["id","jv","su","mad","ms-arab","min","bew","ban","bug","bjn","ace","sas","bbc","zh-hant","mak","ljp","rej","gor","nij","kge","aoz","kvr","lbw","rob","mdr","sxn","sly","mwv"],"IE":["en","ga"],"IL":["he","ar","ru","ro","yi","en","pl","lad","hu","am","ti","ml"],"IM":["en","gv"],"IN":["hi","en","bn","te","mr","ta","ur","gu","kn","ml","or","pa-guru","bho","awa","as","bgc","mag","mwr","mai","hne","dcc","bjj","ne","sat","wtm","rkt","ks-arab","kok","gom","swv","gbm","lmn","sd-arab","gon-telu","kfy","doi","kru","sck","wbq","xnr","tcy","wbr","khn","brx","noe","bhb","mni","raj","hoc","mtr","unr-beng","bhi","hoj","kha","kfr","grt","unx-beng","bfy","srx","saz","ccp","sd-deva","bfq","njo","ria","bo","bpy","bft","bra","lep","btv","lif-deva","lah","sa","kht","dv","dz"],"IO":["en"],"IQ":["ar","ckb","fa","syr"],"IR":["fa","az-arab","azb","mzn","glk","ckb","tk-latn","lrc","ar","bal","rmt","bqi","luz","lki","prd","hy","ps","ka","gbz","kk-arab"],"IS":["is","da"],"IT":["it","en","fr","lmo","pms","sc","de","vec","nap","lij","scn","sl","sdc","fur","egl","ca","el","hr","rgn"],"JE":["en"],"JM":["en","jam"],"JO":["ar"],"JP":["ja","ryu","ko"],"KE":["en","sw","ki","luy","luo","kam","kln","guz","mer","mas","ebu","so","dav","teo","pko","om","saq","ar","pa-guru","gu"],"KG":["ky-cyrl","ru"],"KH":["km","cja","kdt"],"KI":["en","gil"],"KM":["ar","fr","zdj"],"KN":["en"],"KP":["ko"],"KR":["ko"],"KW":["ar"],"KY":["en"],"KZ":["ru","kk-cyrl","de","ug-cyrl"],"LA":["lo","kjg","kdt"],"LB":["ar","hy","ku-arab","fr","en"],"LC":["en"],"LI":["de","gsw","wae"],"LK":["si","ta","en"],"LR":["en","kpe","vai-vaii","men","vai-latn"],"LS":["st","zu","ss","en","xh"],"LT":["lt","ru","sgs"],"LU":["fr","lb","de"],"LV":["lv","ru","ltg"],"LY":["ar"],"MA":["ary","ar","zgh","fr","tzm-latn","shi-latn","shi-tfng","rif-latn","rif-tfng","es"],"MC":["fr"],"MD":["ro","uk","bg","gag","ru"],"ME":["sr-latn","sq","sr-cyrl"],"MF":["fr"],"MG":["mg","fr","en"],"MH":["en","mh"],"MK":["mk","sq","tr"],"ML":["bm-latn","fr","ffm","snk","mwk","ses","tmh","bm-nkoo","khq","dtm","kao","ar","bmq","bze"],"MM":["my","shn","mnw","kht"],"MN":["mn-cyrl","kk-arab","zh-hans","ru","ug-cyrl"],"MO":["zh-hant","pt","zh-hans","en"],"MP":["en","ch"],"MQ":["fr"],"MR":["ar","fr","ff","wo"],"MS":["en"],"MT":["mt","en"],"MU":["mfe","en","bho","ur","fr","ta"],"MV":["dv"],"MW":["en","ny","tum","zu"],"MX":["es","yua","nhe","nhw","maz","nch","sei"],"MY":["ms-latn","en","zh-hant","ta","jv","zmi","dtp","ml","bug","bjn"],"MZ":["pt","vmw","ndc","ts","ngl","seh","mgh","rng","ny","yao","sw","zu"],"NA":["af","kj","ng","naq","en","de","tn"],"NC":["fr"],"NE":["ha-latn","fr","dje","fuq","tmh","ar","twq"],"NF":["en"],"NG":["en","pcm","ha-latn","ig","yo","fuv","tiv","efi","ibb","ha-arab","bin","kaj","kcg","ar","cch","amo"],"NI":["es"],"NL":["nl","en","li","fy","gos","id","zea","rif-latn","tr"],"NO":["nb","nn","se"],"NP":["ne","mai","bho","new","jml","taj","awa","thl","bap","tdg","thr","mgp","lif-deva","thq","mrd","bfy","xsr","rjs","tsf","hi","ggn","gvr","bo","tkt","tdh","bn","unr-deva","lep"],"NR":["en","na"],"NU":["en","niu"],"NZ":["en","mi"],"OM":["ar","bal","fa"],"PA":["es","en","zh-hant"],"PE":["es","qu","ay"],"PF":["fr","ty","zh-hant"],"PG":["tpi","en","ho"],"PH":["en","fil","es","ceb","ilo","hil","bik","war","bhk","pam","pag","mdh","tsg","zh-hant","cps","krj","bto","hnn","tbw","bku"],"PK":["ur","pa-arab","en","lah","ps","sd-arab","skr","bal","brh","hno","fa","hnd","tg-arab","gju","bft","kvx","khw","mvy","kxp","gjk","ks-arab","btv"],"PL":["pl","szl","be","uk","csb","de","sli","lt"],"PM":["fr","en"],"PN":["en"],"PR":["es","en"],"PS":["ar"],"PT":["pt","gl"],"PW":["pau","en"],"PY":["gn","es","de"],"QA":["ar","fa","ml"],"RE":["fr","rcf","ta"],"RO":["ro","hu","de","tr","sr-latn","bg","el","pl"],"RS":["sr-cyrl","sr-latn","sq","hu","ro","hr","sk","uk"],"RU":["ru","tt","ba","cv","hy","ce","av","udm","chm","sah","os","kbd","myv","dar","bua","mdf","kum","kv","lez","krc","inh","tyv","az-cyrl","ady","krl","lbe","koi","mrj","alt","fi","sr-latn","vep","mn-cyrl","izh","cu"],"RW":["rw","fr","en"],"SA":["ar"],"SB":["en","rug"],"SC":["crs","fr","en"],"SD":["ar","en","nus","ha-arab"],"SE":["sv","fi","fit","se","rmu","yi","smj","sma","ia"],"SG":["en","zh-hans","ms-latn","ta","ml","pa-guru"],"SH":["en"],"SI":["sl","hu","it"],"SJ":["nb","ru"],"SK":["sk","hu","uk","pl","de"],"SL":["kri","en","men","tem"],"SM":["it","eo"],"SN":["wo","fr","ff","srr","dyo"],"SO":["so","ar","sw","om"],"SR":["nl","srn","zh-hant"],"SS":["ar","en"],"ST":["pt"],"SV":["es"],"SX":["en","es","vic","nl"],"SY":["ar","ku-latn","fr","hy","syr"],"SZ":["en","ss","zu","ts"],"TA":["en"],"TC":["en"],"TD":["fr","ar"],"TF":["fr"],"TG":["fr","ee"],"TH":["th","tts","nod","sou","mfa","zh-hant","kxm","kdt","mnw","shn","lcp","lwl"],"TJ":["tg-cyrl","ru","fa","ar"],"TK":["en","tkl"],"TL":["pt","tet"],"TM":["tk-latn","ru","uz-latn","ku-latn"],"TN":["aeb","ar","fr"],"TO":["to","en"],"TR":["tr","ku-latn","zza","kbd","az-latn","ar","bgx","bg","ady","kiu","hy","ka","sr-latn","lzz-latn","sq","ab","el","tru","uz-latn","ky-latn","kk-cyrl"],"TT":["en","es"],"TV":["tvl","en"],"TW":["zh-hant","trv"],"TZ":["sw","en","suk","nym","kde","bez","ksb","mas","mgy","asa","lag","jmc","rof","vun","rwk","sbp"],"UA":["uk","ru","pl","yi","rue","be","ro","bg","tr","hu","el"],"UG":["sw","lg","nyn","cgg","xog","en","teo","laj","ach","myx","rw","ttj","hi"],"UM":["en"],"US":["en","es","zh-hant","fr","de","fil","it","vi","ko","ru","nv","yi","pdc","haw","frc","chr","esu","lkt","ik"],"UY":["es"],"UZ":["uz-latn","uz-cyrl","ru","kaa","tr"],"VA":["it","la"],"VC":["en"],"VE":["es"],"VG":["en"],"VI":["en"],"VN":["vi","zh-hant","cjm"],"VU":["bi","en","fr"],"WF":["wls","fr","fud"],"WS":["sm","en"],"XK":["sq","aln","sr-cyrl","sr-latn"],"YE":["ar"],"YT":["swb","fr","buc","sw"],"ZA":["en","zu","xh","af","nso","tn","st","ts","ss","ve","hi","nr","sw"],"ZM":["en","bem","ny","loz"],"ZW":["en","sn","nd","mxc","ndc","kck","ny","ve","tn"],"ZZ":[]}};

- } ( jQuery ) );

@@ -1,465 +0,0 @@ 

- /**

-  * Utility functions for querying language data.

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- ( function ( $ ) {

- 	'use strict';

- 

- 	/**

- 	 * Is this language a redirect to another language?

- 	 * @param language string Language code

- 	 * @return Target language code if it's a redirect or false if it's not

- 	 */

- 	$.uls.data.isRedirect = function ( language ) {

- 		return ( $.uls.data.languages[language] !== undefined &&

- 			$.uls.data.languages[language].length === 1 ) ? $.uls.data.languages[language][0] : false;

- 	};

- 

- 	/**

- 	 * Returns the script of the language.

- 	 * @param language string Language code

- 	 * @return string

- 	 */

- 	$.uls.data.getScript = function ( language ) {

- 		var target = $.uls.data.isRedirect( language );

- 

- 		if ( target ) {

- 			return $.uls.data.getScript( target );

- 		}

- 

- 		if ( !$.uls.data.languages[language] ) {

- 			// Undetermined

- 			return 'Zyyy';

- 		}

- 

- 		return $.uls.data.languages[language][0];

- 	};

- 

- 	/**

- 	 * Returns the regions in which a language is spoken.

- 	 * @param language string Language code

- 	 * @return array|string 'UNKNOWN'

- 	 */

- 	$.uls.data.getRegions = function ( language ) {

- 		var target = $.uls.data.isRedirect( language );

- 

- 		if ( target ) {

- 			return $.uls.data.getRegions( target );

- 		}

- 

- 		return ( $.uls.data.languages[language] && $.uls.data.languages[language][1] ) || 'UNKNOWN';

- 	};

- 

- 	/**

- 	 * Returns the autonym of the language.

- 	 * @param language string Language code

- 	 * @return string

- 	 */

- 	$.uls.data.getAutonym = function ( language ) {

- 		var target = $.uls.data.isRedirect( language );

- 

- 		if ( target ) {

- 			return $.uls.data.getAutonym( target );

- 		}

- 

- 		return ( $.uls.data.languages[language] && $.uls.data.languages[language][2] ) || language;

- 	};

- 

- 	/**

- 	 * Returns all language codes and corresponding autonyms

- 	 * @return array

- 	 */

- 	$.uls.data.getAutonyms = function () {

- 		var language,

- 			autonymsByCode = {};

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			autonymsByCode[language] = $.uls.data.getAutonym( language );

- 		}

- 

- 		return autonymsByCode;

- 	};

- 

- 	/**

- 	 * Returns an array of all region codes.

- 	 * @return array

- 	 */

- 	$.uls.data.getAllRegions = function () {

- 		var region,

- 			allRegions = [];

- 

- 		for ( region in $.uls.data.regiongroups ) {

- 			allRegions.push( region );

- 		}

- 

- 		return allRegions;

- 	};

- 

- 	/**

- 	 * Returns all languages written in script.

- 	 * @param script string

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInScript = function ( script ) {

- 		return $.uls.data.getLanguagesInScripts( [ script ] );

- 	};

- 

- 	/**

- 	 * Returns all languages written in the given scripts.

- 	 * @param scripts array of strings

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInScripts = function ( scripts ) {

- 		var language, i,

- 			languagesInScripts = [];

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			for ( i = 0; i < scripts.length; i++ ) {

- 				if ( scripts[i] === $.uls.data.getScript( language ) ) {

- 					languagesInScripts.push( language );

- 					break;

- 				}

- 			}

- 		}

- 

- 		return languagesInScripts;

- 	};

- 

- 	/**

- 	 * Returns all languages in a given region.

- 	 * @param region string

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInRegion = function ( region ) {

- 		return $.uls.data.getLanguagesInRegions( [ region ] );

- 	};

- 

- 	/**

- 	 * Returns all languages in given regions.

- 	 * @param regions array of strings.

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInRegions = function ( regions ) {

- 		var language, i,

- 			languagesInRegions = [];

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			for ( i = 0; i < regions.length; i++ ) {

- 				if ( $.inArray( regions[i], $.uls.data.getRegions( language ) ) !== -1 ) {

- 					languagesInRegions.push( language );

- 					break;

- 				}

- 			}

- 		}

- 

- 		return languagesInRegions;

- 	};

- 

- 	/**

- 	 * Returns all languages in a region group.

- 	 * @param groupNum number.

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInRegionGroup = function ( groupNum ) {

- 		return $.uls.data.getLanguagesInRegions( $.uls.data.getRegionsInGroup( groupNum ) );

- 	};

- 

- 	/**

- 	 * Returns an associative array of languages in a region,

- 	 * grouped by script.

- 	 * @param region string Region code

- 	 * @return associative array

- 	 */

- 	$.uls.data.getLanguagesByScriptInRegion = function ( region ) {

- 		var language, script,

- 			languagesByScriptInRegion = {};

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			if ( $.inArray( region, $.uls.data.getRegions( language ) ) !== -1 ) {

- 				script = $.uls.data.getScript( language );

- 

- 				if ( languagesByScriptInRegion[script] === undefined ) {

- 					languagesByScriptInRegion[script] = [];

- 				}

- 				languagesByScriptInRegion[script].push( language );

- 			}

- 		}

- 

- 		return languagesByScriptInRegion;

- 	};

- 

- 	/**

- 	 * Returns an associative array of languages in a region,

- 	 * grouped by script group.

- 	 * @param region string Region code

- 	 * @return associative array

- 	 */

- 	$.uls.data.getLanguagesByScriptGroupInRegion = function ( region ) {

- 		return $.uls.data.getLanguagesByScriptGroupInRegions( [ region ] );

- 	};

- 

- 	/**

- 	 * Returns an associative array of all languages,

- 	 * grouped by script group.

- 	 * @return associative array

- 	 */

- 	$.uls.data.getAllLanguagesByScriptGroup = function () {

- 		return $.uls.data.getLanguagesByScriptGroupInRegions( $.uls.data.getAllRegions() );

- 	};

- 

- 	/**

- 	 * Get the given list of languages grouped by script.

- 	 * @param languages Array of language codes

- 	 * @return {Object} Array of languages indexed by script codes

- 	 */

- 	$.uls.data.getLanguagesByScriptGroup = function ( languages ) {

- 		var languagesByScriptGroup = {},

- 			language, codeToAdd, langScriptGroup;

- 

- 		for ( language in languages ) {

- 			codeToAdd = $.uls.data.isRedirect( language ) || language;

- 

- 			langScriptGroup = $.uls.data.getScriptGroupOfLanguage( codeToAdd );

- 

- 			if ( !languagesByScriptGroup[langScriptGroup] ) {

- 				languagesByScriptGroup[langScriptGroup] = [];

- 			}

- 

- 			// Prevent duplicate adding of redirects

- 			if ( $.inArray( codeToAdd, languagesByScriptGroup[langScriptGroup] ) === -1 ) {

- 				languagesByScriptGroup[langScriptGroup].push( codeToAdd );

- 			}

- 		}

- 

- 		return languagesByScriptGroup;

- 	};

- 

- 	/**

- 	 * Returns an associative array of languages in several regions,

- 	 * grouped by script group.

- 	 * @param regions array of strings - region codes

- 	 * @return associative array

- 	 */

- 	$.uls.data.getLanguagesByScriptGroupInRegions = function ( regions ) {

- 		var language, i, scriptGroup,

- 			languagesByScriptGroupInRegions = {};

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			for ( i = 0; i < regions.length; i++ ) {

- 				if ( $.inArray( regions[i], $.uls.data.getRegions( language ) ) !== -1 ) {

- 					scriptGroup = $.uls.data.getScriptGroupOfLanguage( language );

- 

- 					if ( languagesByScriptGroupInRegions[scriptGroup] === undefined ) {

- 						languagesByScriptGroupInRegions[scriptGroup] = [];

- 					}

- 

- 					languagesByScriptGroupInRegions[scriptGroup].push( language );

- 					break;

- 				}

- 			}

- 		}

- 

- 		return languagesByScriptGroupInRegions;

- 	};

- 

- 	/**

- 	 * Returns an array of languages grouped by region group,

- 	 * region, script group and script.

- 	 * @return associative array

- 	 */

- 	$.uls.data.getAllLanguagesByRegionAndScript = function () {

- 		var region, regionGroup, language,

- 			script, scriptGroup, regions, regionNum,

- 			allLanguagesByRegionAndScript = {};

- 

- 		for ( region in $.uls.data.regiongroups ) {

- 			regionGroup = $.uls.data.regiongroups[region];

- 

- 			if ( allLanguagesByRegionAndScript[regionGroup] === undefined ) {

- 				allLanguagesByRegionAndScript[regionGroup] = {};

- 			}

- 

- 			allLanguagesByRegionAndScript[regionGroup][region] = {};

- 		}

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			script = $.uls.data.getScript( language );

- 			scriptGroup = $.uls.data.getGroupOfScript( script );

- 			regions = $.uls.data.getRegions( language );

- 

- 			for ( regionNum = 0; regionNum < regions.length; regionNum++ ) {

- 				region = regions[regionNum];

- 				regionGroup = $.uls.data.regiongroups[region];

- 

- 				if ( allLanguagesByRegionAndScript[regionGroup][region][scriptGroup] === undefined ) {

- 					allLanguagesByRegionAndScript[regionGroup][region][scriptGroup] = {};

- 				}

- 

- 				if ( allLanguagesByRegionAndScript[regionGroup][region][scriptGroup][script] === undefined ) {

- 					allLanguagesByRegionAndScript[regionGroup][region][scriptGroup][script] = [];

- 				}

- 

- 				allLanguagesByRegionAndScript[regionGroup][region][scriptGroup][script].push( language );

- 			}

- 		}

- 

- 		return allLanguagesByRegionAndScript;

- 	};

- 

- 	/**

- 	 * Returns all regions in a region group.

- 	 * @param groupNum int

- 	 * @return array of strings

- 	 */

- 	$.uls.data.getRegionsInGroup = function ( groupNum ) {

- 		var region,

- 			regionsInGroup = [];

- 

- 		for ( region in $.uls.data.regiongroups ) {

- 			if ( $.uls.data.regiongroups[region] === groupNum ) {

- 				regionsInGroup.push( region );

- 			}

- 		}

- 

- 		return regionsInGroup;

- 	};

- 

- 	/**

- 	 * Returns the script group of a script or 'Other' if it doesn't

- 	 * belong to any group.

- 	 * @param script string Script code

- 	 * @return string script group name

- 	 */

- 	$.uls.data.getGroupOfScript = function ( script ) {

- 		var scriptGroup;

- 

- 		for ( scriptGroup in $.uls.data.scriptgroups ) {

- 			if ( $.inArray( script, $.uls.data.scriptgroups[scriptGroup] ) !== -1 ) {

- 				return scriptGroup;

- 			}

- 		}

- 

- 		return 'Other';

- 	};

- 

- 	/**

- 	 * Returns the script group of a language.

- 	 * @param language string Language code

- 	 * @return string script group name

- 	 */

- 	$.uls.data.getScriptGroupOfLanguage = function ( language ) {

- 		return $.uls.data.getGroupOfScript( $.uls.data.getScript( language ) );

- 	};

- 

- 	/**

- 	 * A callback for sorting languages by autonym.

- 	 * Can be used as an argument to a sort function.

- 	 * @param a string Language code

- 	 * @param b string Language code

- 	 */

- 	$.uls.data.sortByAutonym = function ( a, b ) {

- 		var autonymA = $.uls.data.getAutonym( a ) || a,

- 			autonymB = $.uls.data.getAutonym( b ) || b;

- 

- 		return ( autonymA.toLowerCase() < autonymB.toLowerCase() ) ? -1 : 1;

- 	};

- 

- 	/**

- 	 * Check if a language is right-to-left.

- 	 * @param language string Language code

- 	 * @return boolean

- 	 */

- 	$.uls.data.isRtl = function ( language ) {

- 		return $.inArray( $.uls.data.getScript( language ), $.uls.data.rtlscripts ) !== -1;

- 	};

- 

- 	/**

- 	 * Return the direction of the language

- 	 * @param language string Language code

- 	 * @return string

- 	 */

- 	$.uls.data.getDir = function ( language ) {

- 		return $.uls.data.isRtl( language ) ? 'rtl' : 'ltr';

- 	};

- 

- 	/**

- 	 * Returns the languages spoken in a territory.

- 	 * @param territory string Territory code

- 	 * @return list of language codes

- 	 */

- 	$.uls.data.getLanguagesInTerritory = function ( territory ) {

- 		return $.uls.data.territories[territory];

- 	};

- 

- 	/**

- 	 * Adds a language in run time and sets its options as provided.

- 	 * If the target option is provided, the language is defined as a redirect.

- 	 * Other possible options are script, regions and autonym.

- 	 *

- 	 * @param code string New language code.

- 	 * @param options Object Language properties.

- 	 * @return list of language codes

- 	 */

- 	$.uls.data.addLanguage = function( code, options ) {

- 		if ( options.target ) {

- 			$.uls.data.languages[code] = [options.target];

- 		} else {

- 			$.uls.data.languages[code] = [options.script, options.regions, options.autonym];

- 		}

- 	};

- 

- 	/**

- 	 * Removes a language from the langdb in run time.

- 	 *

- 	 * @param code string Language code to delete.

- 	 * @return true if the language was removed, false otherwise.

- 	 */

- 	$.uls.data.deleteLanguage = function( code ) {

- 		if ( $.uls.data.languages[code] ) {

- 			delete $.uls.data.languages[code];

- 

- 			return true;

- 		}

- 

- 		return false;

- 	};

- } ( jQuery ) );

@@ -1,360 +0,0 @@ 

- /**

-  * jQuery language filter plugin.

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- /**

-  * Usage: $( 'inputbox' ).languagefilter();

-  * The values for autocompletion is from the options.languages.

-  * The data is in the format of languagecode:languagename.

-  */

- (function ( $ ) {

- 	'use strict';

- 

- 	var LanguageFilter, delay;

- 

- 	LanguageFilter = function( element, options ) {

- 		this.$element = $( element );

- 		this.options = $.extend( {}, $.fn.regionselector.defaults, options );

- 		this.$element.addClass( 'languagefilter' );

- 		this.resultCount = 0;

- 		this.$suggestion = this.$element.parents().find( '#' + this.$element.data( 'suggestion' ) );

- 		this.$clear = this.$element.parents().find( '#' + this.$element.data( 'clear' ) );

- 		this.selectedLanguage = null;

- 

- 		this.listen();

- 	};

- 

- 	delay = ( function() {

- 		var timer = 0;

- 

- 		return function( callback, milliseconds ) {

- 			clearTimeout( timer );

- 			timer = setTimeout( callback, milliseconds );

- 		};

- 	} () );

- 

- 	LanguageFilter.prototype = {

- 		listen: function() {

- 			this.$element.on( 'keypress', $.proxy( this.keyup, this ) )

- 				.on( 'keyup', $.proxy( this.keyup, this ) );

- 

- 			if ( this.eventSupported( 'keydown' ) ) {

- 				this.$element.on( 'keydown', $.proxy( this.keyup, this ) );

- 			}

- 

- 			if ( this.$clear.length ) {

- 				this.$clear.on( 'click' , $.proxy( this.clear, this ) );

- 			}

- 

- 			this.toggleClear();

- 		},

- 

- 		keyup: function( e ) {

- 			var suggestion, query, languageFilter;

- 

- 			switch( e.keyCode ) {

- 				case 9: // Tab -> Autocomplete

- 					suggestion = this.$suggestion.val();

- 

- 					if ( suggestion && suggestion !== this.$element.val() ) {

- 						this.$element.val( suggestion );

- 						e.preventDefault();

- 						e.stopPropagation();

- 					}

- 					break;

- 				case 13: // Enter

- 					if ( !this.options.onSelect ) {

- 						break;

- 					}

- 

- 					// Avoid bubbling this 'enter' to background page elements

- 					e.preventDefault();

- 					e.stopPropagation();

- 

- 					query = $.trim( this.$element.val() ).toLowerCase();

- 

- 					if ( this.selectedLanguage ) {

- 						// this.selectLanguage will be populated from a matching search

- 						this.options.onSelect( this.selectedLanguage );

- 					} else if ( this.options.languages[query] ) {

- 						// Search is yet to happen (in timeout delay),

- 						// but we have a matching language code.

- 						this.options.onSelect( query );

- 					}

- 

- 					break;

- 				default:

- 					languageFilter = this;

- 

- 					if ( e.which < 32 &&

- 						e.which !== 8 // Backspace

- 					) {

- 						// ignore any ASCII control characters

- 						break;

- 					}

- 

- 					this.selectedLanguage = null;

- 

- 					delay( function() {

- 						if ( !languageFilter.$element.val() ) {

- 							languageFilter.clear();

- 						} else {

- 							languageFilter.options.$target.empty();

- 							languageFilter.search();

- 						}

- 					}, 300 );

- 

- 					this.toggleClear();

- 			}

- 		},

- 

- 		/**

- 		 * Clears the current search removing

- 		 * clear buttons and suggestions.

- 		 */

- 		deactivate: function() {

- 			this.$element.val( '' );

- 

- 			if ( !$.fn.uls.Constructor.prototype.isMobile() ) {

- 				this.$element.focus();

- 			}

- 

- 			this.toggleClear();

- 			this.autofill();

- 		},

- 

- 		/**

- 		 * Clears the search and shows all languages

- 		 */

- 		clear: function() {

- 			this.deactivate();

- 			this.$element.trigger( 'searchclear.uls' );

- 		},

- 

- 		/**

- 		 * Toggles the visibility of clear icon depending

- 		 * on whether there is anything to clear.

- 		 */

- 		toggleClear: function() {

- 			if ( !this.$clear.length ) {

- 				return;

- 			}

- 

- 			if ( this.$element.val() ) {

- 				this.$clear.show();

- 			} else {

- 				this.$clear.hide();

- 			}

- 		},

- 

- 		search: function() {

- 			var languagesInScript,

- 				query = $.trim( this.$element.val() ),

- 				languages = $.uls.data.getLanguagesByScriptGroup( this.options.languages ),

- 				scriptGroup, langNum, langCode;

- 

- 			this.resultCount = 0;

- 

- 			for ( scriptGroup in languages ) {

- 				languagesInScript = languages[scriptGroup];

- 

- 				languagesInScript.sort( $.uls.data.sortByAutonym );

- 

- 				for ( langNum = 0; langNum < languagesInScript.length; langNum++ ) {

- 					langCode = languagesInScript[langNum];

- 

- 					if ( query === '' || this.filter( langCode, query ) ) {

- 						if ( this.resultCount === 0 ) {

- 							// Autofill the first result.

- 							this.autofill( langCode );

- 						}

- 

- 						if ( query.toLowerCase() === langCode ) {

- 							this.selectedLanguage = langCode;

- 						}

- 

- 						if ( this.render( langCode ) ) {

- 							this.resultCount++;

- 						}

- 					}

- 				}

- 			}

- 

- 			// Also do a search by search API

- 			if( !this.resultCount && this.options.searchAPI && query ) {

- 				this.searchAPI( query );

- 			} else {

- 				this.resultHandler( query );

- 			}

- 		},

- 

- 		searchAPI: function( query ) {

- 			var languageFilter = this;

- 

- 			$.get( languageFilter.options.searchAPI, { search: query }, function( result ) {

- 				$.each( result.languagesearch, function( code, name ) {

- 					if ( languageFilter.resultCount === 0 ) {

- 						// Autofill the first result.

- 						languageFilter.autofill( code, name );

- 					}

- 

- 					if ( languageFilter.render( code ) ) {

- 						languageFilter.resultCount++;

- 					}

- 				} );

- 

- 				languageFilter.resultHandler( query );

- 			} );

- 		},

- 

- 		/**

- 		 * Handler method to be called once search is over.

- 		 * Based on search result triggers resultsfound or noresults events

- 		 * @param query string

- 		 */

- 		resultHandler: function( query ) {

- 			if ( this.resultCount === 0 ) {

- 				this.$suggestion.val( '' );

- 				this.$element.trigger( 'noresults.uls', query );

- 			} else {

- 				this.$element.trigger( 'resultsfound.uls', [query, this.resultCount] );

- 			}

- 		},

- 

- 		autofill: function( langCode, languageName ) {

- 			if ( !this.$suggestion.length ) {

- 				return;

- 			}

- 

- 			if ( !this.$element.val() ) {

- 				this.$suggestion.val( '' );

- 				return;

- 			}

- 

- 			this.selectedLanguage = langCode;

- 			languageName = languageName || this.options.languages[langCode];

- 

- 			if ( !languageName ) {

- 				return;

- 			}

- 

- 			var autonym,

- 				userInput = this.$element.val(),

- 				suggestion = userInput + languageName.substring( userInput.length, languageName.length );

- 

- 			if ( suggestion.toLowerCase() !== languageName.toLowerCase() ) {

- 				// see if it was autonym match

- 				autonym = $.uls.data.getAutonym( langCode ) || '';

- 				suggestion = userInput + autonym.substring( userInput.length, autonym.length );

- 

- 				if ( suggestion !== autonym ) {

- 					// Give up. It may be an ISO/script code match.

- 					suggestion = '';

- 				}

- 			}

- 

- 			// Make sure that it is a visual prefix.

- 			if ( !isVisualPrefix( userInput, suggestion ) ) {

- 				suggestion = '';

- 			}

- 

- 			this.$suggestion.val( suggestion );

- 		},

- 

- 		render: function( langCode ) {

- 			var $target = this.options.$target;

- 

- 			if ( !$target ) {

- 				return false;

- 			}

- 

- 			return $target.append( langCode );

- 		},

- 

- 		escapeRegex: function( value ) {

- 			return value.replace( /[\-\[\]{}()*+?.,\\\^$\|#\s]/g, '\\$&' );

- 		},

- 

- 		/**

- 		 * A search match happens if any of the following passes:

- 		 * a) Language name in current user interface language

- 		 * 'starts with' search string.

- 		 * b) Language autonym 'starts with' search string.

- 		 * c) ISO 639 code match with search string.

- 		 * d) ISO 15924 code for the script match the search string.

- 		 */

- 		filter: function( langCode, searchTerm ) {

- 			// FIXME script is ISO 15924 code. We might need actual name of script.

- 			var matcher = new RegExp( '^' + this.escapeRegex( searchTerm ), 'i' ),

- 				languageName = this.options.languages[langCode];

- 

- 			return matcher.test( languageName ) ||

- 				matcher.test( $.uls.data.getAutonym( langCode ) ) ||

- 				matcher.test( langCode ) ||

- 				matcher.test( $.uls.data.getScript( langCode ) );

- 		},

- 

- 		eventSupported: function ( eventName ) {

- 			var isSupported = eventName in this.$element;

- 

- 			if ( !isSupported ) {

- 				this.$element.setAttribute( eventName, 'return;' );

- 				isSupported = typeof this.$element[eventName] === 'function';

- 			}

- 

- 			return isSupported;

- 		}

- 	};

- 

- 	$.fn.languagefilter = function( option ) {

- 		return this.each( function() {

- 			var $this = $( this ),

- 				data = $this.data( 'languagefilter' ),

- 				options = typeof option === 'object' && option;

- 

- 			if ( !data ) {

- 				$this.data( 'languagefilter', ( data = new LanguageFilter( this, options ) ) );

- 			}

- 

- 			if ( typeof option === 'string' ) {

- 				data[option]();

- 			}

- 		} );

- 	};

- 

- 	$.fn.languagefilter.defaults = {

- 		$target: null, // Where to append the results

- 		searchAPI: null,

- 		languages: null, // Languages as code:name format.

- 		onSelect: null // Language select handler - like enter in filter textbox.

- 	};

- 

- 	$.fn.languagefilter.Constructor = LanguageFilter;

- 

- 	/**

- 	 * Check if a prefix is visually prefix of a string

- 	 * @param prefix string

- 	 * @param string string

- 	 */

- 	function isVisualPrefix( prefix, string ) {

- 		// Pre-base vowel signs of Indic languages. A vowel sign is called pre-base if

- 		// consonant + vowel becomes [vowel][consonant] when rendered. Eg: ക + െ => കെ

- 		var prebases = 'െേൈൊോൌெேைொோௌେୈୋୌિਿिিেৈোৌෙේෛොෝෞ';

- 		return prebases.indexOf( string[prefix.length] ) <= 0;

- 	}

- } ( jQuery ) );

@@ -1,396 +0,0 @@ 

- /**

-  * Universal Language Selector

-  * Language category display component - Used for showing the search results,

-  * grouped by regions, scripts

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- ( function ( $ ) {

- 	'use strict';

- 

- 	var noResultsTemplate, LanguageCategoryDisplay;

- 

- 	/*jshint multistr:true */

- 	noResultsTemplate = '<div class="twelve columns uls-no-results-view hide">\

- 		<h2 data-i18n="uls-no-results-found" class="eleven columns offset-by-one uls-no-results-found-title">\

- 		No results found\

- 		</h2>\

- 		<div id="uls-no-found-more" class="uls-no-found-more">\

- 			<div class="ten columns offset-by-one">\

- 				<p>\

- 					<span data-i18n="uls-search-help">You can search by language name, \

- 					script name, ISO code of language or \

- 					you can browse by region:</span>\

- 					<a class="uls-region-link" data-i18n="uls-region-AM" data-region="AM">America</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-EU" data-region="EU">Europe</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-ME" data-region="ME">Middle East</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-AF" data-region="AF">Africa</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-AS" data-region="AS">Asia</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-PA" data-region="PA">Pacific</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-WW" data-region="WW">Worldwide</a>.\

- 				</p>\

- 			</div>\

- 		</div>\

- 	</div>';

- 	/*jshint multistr:false */

- 

- 	LanguageCategoryDisplay = function ( element, options ) {

- 		this.$element = $( element );

- 		this.options = $.extend( {}, $.fn.lcd.defaults, options );

- 		this.$element.addClass( 'lcd' );

- 		this.regionLanguages = {};

- 		this.renderTimeout = null;

- 		this.cachedQuicklist = null;

- 

- 		this.$element.append( $( noResultsTemplate ) );

- 		this.$noResults = this.$element.children( '.uls-no-results-view' );

- 

- 		this.render();

- 		this.listen();

- 	};

- 

- 	LanguageCategoryDisplay.prototype = {

- 		constructor: LanguageCategoryDisplay,

- 

- 		/**

- 		 * Adds language to the language list.

- 		 * @param {string} langCode

- 		 * @param {string} [regionCode]

- 		 * @return {bool} Whether the language was added.

- 		 */

- 		append: function ( langCode, regionCode ) {

- 			var lcd = this, i, regions;

- 

- 			if ( !this.options.languages[langCode] ) {

- 				// Language is unknown or not in the list of languages for this context.

- 				return false;

- 			}

- 

- 			if ( regionCode ) {

- 				regions = [regionCode];

- 			} else {

- 				regions = $.uls.data.getRegions( langCode );

- 			}

- 

- 			// Worldwides only displayed once

- 			if ( $.inArray( 'WW', regions ) > -1 ) {

- 				regions = ['WW'];

- 			}

- 

- 			for ( i = 0; i < regions.length; i++ ) {

- 				this.regionLanguages[regions[i]].push( langCode );

- 			}

- 

- 			// Work around the bad interface, delay rendering until we have got

- 			// all the languages to speed up performance.

- 			window.clearTimeout( this.renderTimeout );

- 			this.renderTimeout = window.setTimeout( function () {

- 				lcd.renderRegions();

- 			}, 50 );

- 

- 			return true;

- 		},

- 

- 		render: function () {

- 			var $section,

- 				lcd = this,

- 				regions = [],

- 				regionNames = {

- 					// These are fallback text when i18n library not present

- 					WW: 'Worldwide',

- 					SP: 'Special',

- 					AM: 'America',

- 					EU: 'Europe',

- 					ME: 'Middle East',

- 					AS: 'Asia',

- 					AF: 'Africa',

- 					PA: 'Pacific'

- 				};

- 

- 			regions.push( this.buildQuicklist() );

- 

- 			$.each( $.uls.data.regiongroups, function ( regionCode ) {

- 				lcd.regionLanguages[regionCode] = [];

- 				// Don't show the region unless it was enabled

- 				if ( $.inArray( regionCode, lcd.options.showRegions ) === -1 ) {

- 					return;

- 				}

- 

- 				$section = $( '<div>' )

- 					.addClass( 'eleven columns offset-by-one uls-lcd-region-section hide' )

- 					.attr( 'id', regionCode )

- 					.append(

- 						$( '<h3>' )

- 						.attr( 'data-i18n', 'uls-region-' + regionCode )

- 						.addClass( 'eleven columns uls-lcd-region-title' )

- 						.text( regionNames[regionCode] )

- 					);

- 

- 				regions.push( $section );

- 			} );

- 

- 			lcd.$element.append( regions );

- 

- 			this.i18n();

- 		},

- 

- 		/**

- 		 * Renders a region and displays it if it has content.

- 		 */

- 		renderRegions: function () {

- 			var lcd = this, languages,

- 				items = lcd.options.itemsPerColumn,

- 				columns = 4;

- 

- 			this.$noResults.addClass( 'hide' );

- 			this.$element.find( '.uls-lcd-region-section' ).each( function () {

- 				var $region = $( this ),

- 					regionCode = $region.attr( 'id' );

- 

- 				if ( $region.is( '#uls-lcd-quicklist' ) ) {

- 					return;

- 				}

- 

- 				$region.children( '.uls-language-block' ).remove();

- 

- 				languages = lcd.regionLanguages[regionCode];

- 				if ( !languages || languages.length === 0 ) {

- 					$region.addClass( 'hide' );

- 					return;

- 				}

- 

- 				lcd.renderRegion( $region, languages, items, columns );

- 				$region.removeClass( 'hide' );

- 

- 				lcd.regionLanguages[regionCode] = [];

- 			} );

- 

- 		},

- 

- 		/**

- 		 * Adds given languages sorted into rows and columns into given element.

- 		 * @param {jQuery} $region Element to add language list.

- 		 * @param {array} languages List of language codes.

- 		 * @param {number} itemsPerColumn How many languages fit in a column.

- 		 * @param {number} columnsPerRow How many columns fit in a row.

- 		 */

- 		renderRegion: function( $region, languages, itemsPerColumn, columnsPerRow ) {

- 			var i, lastItem, currentScript, nextScript, force,

- 				len = languages.length,

- 				items = [],

- 				columns = [],

- 				rows = [];

- 

- 			for ( i = 0; i < len; i++ ) {

- 				force = false;

- 				nextScript = $.uls.data.getScriptGroupOfLanguage( languages[i+1] );

- 

- 				lastItem = len - i === 1;

- 				// Force column break if script changes and column has more than one row already

- 				if ( i === 0 ) {

- 					currentScript = $.uls.data.getScriptGroupOfLanguage( languages[i] );

- 				} else if ( currentScript !== nextScript && items.length > 1 ) {

- 					force = true;

- 				}

- 				currentScript = nextScript;

- 

- 				items.push( this.renderItem( languages[i] ) );

- 

- 				if ( items.length >= itemsPerColumn || lastItem || force ) {

- 					columns.push( $( '<ul>' ).addClass( 'three columns' ).append( items ) );

- 					items = [];

- 					if ( columns.length >= columnsPerRow || lastItem ) {

- 						rows.push( $( '<div>' ).addClass( 'row uls-language-block' ).append( columns ) );

- 						columns = [];

- 					}

- 				}

- 			}

- 

- 			$region.append( rows );

- 		},

- 

- 		/**

- 		 * Creates dom node representing one item in language list.

- 		 * @param {string} code Language code

- 		 * @return {Element}

- 		 */

- 		renderItem: function( code ) {

- 			var a, name, autonym, li;

- 

- 			name = this.options.languages[code];

- 			autonym = $.uls.data.getAutonym( code ) || name || code;

- 

- 			// Not using jQuery as this is performance hotspot

- 			li = document.createElement( 'li' );

- 			li.title = name;

- 			li.lang = code;

- 			li.dir = $.uls.data.getDir( code );

- 			li.setAttribute( 'data-code', code );

- 

- 			a = document.createElement( 'a' );

- 			a.appendChild( document.createTextNode( autonym ) );

- 			a.className = 'autonym';

- 

- 			li.appendChild( a );

- 			if ( this.options.languageDecorator ) {

- 				this.options.languageDecorator( $( a ), code );

- 			}

- 			return li;

- 		},

- 

- 		i18n: function ( ) {

- 			this.$element.find( '[data-i18n]' ).i18n();

- 		},

- 

- 		/**

- 		 * Adds quicklist as a region.

- 		 */

- 		quicklist: function () {

- 			this.$element.find( '#uls-lcd-quicklist' ).removeClass( 'hide' );

- 		},

- 

- 		buildQuicklist: function () {

- 			var quickList, $quickListSection, $quickListSectionTitle;

- 

- 			if ( this.cachedQuicklist !== null ) {

- 				return this.cachedQuicklist;

- 			}

- 

- 			if ( $.isFunction( this.options.quickList ) ) {

- 				this.options.quickList = this.options.quickList();

- 			}

- 

- 			if ( !this.options.quickList ) {

- 				this.cachedQuicklist = $( [] );

- 				return this.cachedQuicklist;

- 			}

- 

- 			// Pick only the first elements, because we don't have room for more

- 			quickList = this.options.quickList;

- 			quickList = quickList.slice( 0, 16 );

- 			quickList.sort( $.uls.data.sortByAutonym );

- 

- 			$quickListSection = $( '<div>' )

- 				.addClass( 'eleven columns offset-by-one uls-lcd-region-section' )

- 				.attr( 'id', 'uls-lcd-quicklist' );

- 

- 			$quickListSectionTitle = $( '<h3>' )

- 				.attr( 'data-i18n', 'uls-common-languages' )

- 				.addClass( 'eleven columns uls-lcd-region-title' )

- 				.text( 'Common languages' ); // This is placeholder text if jquery.i18n not present

- 			$quickListSection.append( $quickListSectionTitle );

- 

- 			this.renderRegion( $quickListSection, quickList, 4, 4 );

- 

- 			$quickListSectionTitle.i18n();

- 

- 			this.cachedQuicklist = $quickListSection;

- 			return this.cachedQuicklist;

- 		},

- 

- 		show: function () {

- 			if ( !this.regionDivs ) {

- 				this.render();

- 			}

- 		},

- 

- 		empty: function () {

- 			this.$element.find( '#uls-lcd-quicklist' ).addClass( 'hide' );

- 		},

- 

- 		focus: function () {

- 			this.$element.focus();

- 		},

- 

- 		noResults: function () {

- 			this.$noResults.removeClass( 'hide' );

- 			if ( this.$noResults.find( '.uls-lcd-region-title' ).length ) {

- 				return;

- 			}

- 

- 			var $suggestions = this.buildQuicklist().clone();

- 			$suggestions.find( 'h3' )

- 				.data( 'i18n', 'uls-no-results-suggestion-title' )

- 				.text( 'You may be interested in:' )

- 				.i18n();

- 			this.$noResults.find( 'h2' ).after( $suggestions );

- 		},

- 

- 		listen: function () {

- 			var lcd = this;

- 

- 			if ( this.options.clickhandler ) {

- 				this.$element.on( 'click', '.row li', function () {

- 					lcd.options.clickhandler.call( this, $( this ).data( 'code' ) );

- 				} );

- 			}

- 

- 			// The region section need to be in sync with the map filter.

- 			lcd.$element.scroll( function () {

- 				var inview, inviewRegion,

- 					$ulsLanguageList = $( this ),

- 					scrollTop = $ulsLanguageList.position().top,

- 					scrollBottom = $ulsLanguageList.height();

- 

- 				// The region section need to be in sync with the map filter.

- 				inviewRegion = 'WW';

- 				lcd.$element.find( '.uls-lcd-region-section' ).each( function () {

- 					var $lcdRegionSection = $( this ),

- 						top = $lcdRegionSection.position().top,

- 						height = $lcdRegionSection.height(),

- 						padding = 10;

- 

- 					if ( top - padding <= scrollTop && height > scrollBottom ) {

- 						inviewRegion = $lcdRegionSection.attr( 'id' );

- 					}

- 				} );

- 

- 				// highlight the region visible while scrolling in the map.

- 				inview = $.uls.data.regiongroups[inviewRegion];

- 				if ( !$( '#uls-region-' + inview ).hasClass( 'active' ) ) {

- 					$( '.regionselector' ).removeClass( 'active' );

- 					$( '#uls-region-' + inview ).addClass( 'active' );

- 				}

- 			} );

- 		}

- 	};

- 

- 	$.fn.lcd = function ( option ) {

- 		return this.each( function () {

- 			var $this = $( this ),

- 				data = $this.data( 'lcd' ),

- 				options = typeof option === 'object' && option;

- 

- 			if ( !data ) {

- 				$this.data( 'lcd', ( data = new LanguageCategoryDisplay( this, options ) ) );

- 			}

- 

- 			if ( typeof option === 'string') {

- 				data[option]();

- 			}

- 		} );

- 	};

- 

- 	$.fn.lcd.defaults = {

- 		languages: null,

- 		showRegions: ['WW', 'AM', 'EU', 'ME', 'AF', 'AS', 'PA'],

- 		itemsPerColumn: 8,

- 		languageDecorator: null

- 	};

- 

- 	$.fn.lcd.Constructor = LanguageCategoryDisplay;

- } ( jQuery ) );

@@ -1,1 +0,0 @@ 

- (function(e){"use strict";var t,n;t='<div class="grid uls-menu uls-wide"> 			<div class="row"> 				<span id="uls-close" class="uls-icon-close"></span> 			</div> 			<div class="row"> 				<div class="uls-title-region seven columns">					<h1 data-i18n="uls-select-language" class="uls-title">Select Language</h1>				</div>				<div class="five columns uls-map-block" id="uls-map-block">					<div class="row">						<div data-regiongroup="1" id="uls-region-1" class="three columns uls-region uls-region-1">							<a data-i18n="uls-region-WW">Worldwide</a>						</div>						<div class="nine columns">							<div class="row uls-worldmap">								<div data-regiongroup="2" id="uls-region-2" class="four columns uls-region">									<a data-i18n="uls-region-AM">America</a>								</div>								<div data-regiongroup="3" id="uls-region-3" class="four columns uls-region">									<a><span data-i18n="uls-region-EU">Europe</span><br>									<span data-i18n="uls-region-ME">Middle East</span><br>									<span data-i18n="uls-region-AF">Africa</span></a>								</div>								<div data-regiongroup="4" id="uls-region-4" class="four columns uls-region">									<a><span data-i18n="uls-region-AS">Asia</span><br>									<span data-i18n="uls-region-PA">Pacific</span></a>								</div>							</div>						</div>					</div>				</div>			</div>			<div id="search" class="row uls-search"> 				<div class="one column">					<span class="uls-search-label"></span>				</div>				<div class="ten columns">					<div id="uls-search-input-block" class="uls-search-input-block">						<input type="text" class="uls-filterinput uls-filtersuggestion" id="uls-filtersuggestion" disabled="true"							autocomplete="off" /> <input type="text" class="uls-filterinput uls-languagefilter" id="uls-languagefilter"							data-clear="uls-languagefilter-clear" data-suggestion="uls-filtersuggestion"							placeholder="Language search" autocomplete="off" />					</div>				</div>				<div class="one column">					<span id="uls-languagefilter-clear" class="uls-languagefilter-clear"></span>				</div>			</div>			<div class="row uls-language-list"></div>			<div class="row" id="uls-settings-block"></div>		</div>';n=function(n,r){this.$element=e(n);this.options=e.extend({},e.fn.uls.defaults,r);this.$menu=e(t);this.languages=this.options.languages;for(var i in this.languages){if(e.uls.data.languages[i]===undefined){delete this.languages[i]}}this.left=this.options.left;this.top=this.options.top;this.shown=false;this.initialized=false;this.$languageFilter=this.$menu.find("#uls-languagefilter");this.$regionFilters=this.$menu.find(".uls-region");this.$resultsView=this.$menu.find("div.uls-language-list");this.render();this.listen();this.ready()};n.prototype={constructor:n,ready:function(){if(this.options.onReady){this.options.onReady.call(this)}},visible:function(){if(this.options.onVisible){this.options.onVisible.call(this)}},position:function(){var t=e.extend({},this.$element.offset(),{height:this.$element[0].offsetHeight});return{top:this.top!==undefined?this.top:t.top+t.height,left:this.left!==undefined?this.left:"25%"}},show:function(){this.$menu.css(this.position());if(this.options.compact){this.$menu.addClass("uls-compact")}if(!this.initialized){e("body").prepend(this.$menu);this.i18n();this.defaultSearch();this.initialized=true}e(".uls-menu").hide();this.$menu.show();this.$menu.scrollIntoView();this.shown=true;if(!this.isMobile()){this.$languageFilter.focus()}this.visible()},i18n:function(){if(e.i18n){this.$menu.find("[data-i18n]").i18n();this.$languageFilter.prop("placeholder",e.i18n("uls-search-placeholder"))}},defaultSearch:function(){this.$resultsView.lcd("empty");this.$regionFilters.regionselector("show")},hide:function(){this.$menu.hide();this.shown=false},render:function(){},noresults:function(){e(".regionselector").removeClass("active");this.$resultsView.lcd("noResults")},success:function(){e(".regionselector").removeClass("active");this.$resultsView.show()},listen:function(){var t,n=this;this.$element.on("click",e.proxy(this.click,this));this.$languageFilter.on("searchclear.uls",e.proxy(this.defaultSearch,this));this.$languageFilter.on("noresults.uls",e.proxy(this.noresults,this));this.$languageFilter.on("resultsfound.uls",e.proxy(this.success,this));this.$menu.find("#uls-close").on("click",e.proxy(this.cancel,this));this.$menu.on("click",function(e){e.stopPropagation()});this.$menu.on("keypress",e.proxy(this.keypress,this)).on("keyup",e.proxy(this.keyup,this));if(this.eventSupported("keydown")){this.$menu.on("keydown",e.proxy(this.keypress,this))}t=this.$resultsView.lcd({languages:this.languages,quickList:this.options.quickList,clickhandler:e.proxy(this.select,this),source:this.$languageFilter,showRegions:this.options.showRegions,languageDecorator:this.options.languageDecorator}).data("lcd");this.$languageFilter.languagefilter({$target:t,languages:this.languages,searchAPI:this.options.searchAPI,onSelect:e.proxy(this.select,this)});this.$menu.find(".uls-region, .uls-region-link").regionselector({$target:t,languages:this.languages,success:function(e){n.$languageFilter.languagefilter("deactivate");if(e.regionGroup===1){t.quicklist()}n.success()},noresults:function(){n.$languageFilter.languagefilter("clear")}});e("html").click(e.proxy(this.cancel,this))},select:function(e){this.hide();this.$languageFilter.trigger("searchclear");if(this.options.onSelect){this.options.onSelect.call(this,e)}},cancel:function(){this.hide();if(this.options.onCancel){this.options.onCancel.call(this)}},keyup:function(e){if(!this.shown){return}if(e.keyCode===27){this.cancel();e.preventDefault();e.stopPropagation()}},keypress:function(e){if(!this.shown){return}if(e.keyCode===27){this.cancel();e.preventDefault();e.stopPropagation()}},click:function(e){e.stopPropagation();e.preventDefault();if(this.shown){this.hide()}else{this.show()}},eventSupported:function(e){var t=e in this.$menu;if(!t){this.$element.setAttribute(e,"return;");t=typeof this.$element[e]==="function"}return t},isMobile:function(){return navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry)/)}};e.fn.uls=function(t){return this.each(function(){var r=e(this),i=r.data("uls"),s=typeof t==="object"&&t;if(!i){r.data("uls",i=new n(this,s))}if(typeof t==="string"){i[t]()}})};e.fn.uls.defaults={onSelect:null,searchAPI:null,languages:e.uls.data.getAutonyms(),quickList:null,compact:false,showRegions:["WW","AM","EU","ME","AF","AS","PA"],languageDecorator:null};if(!e.fn.i18n){e.fn.i18n=function(){}}e.fn.scrollIntoView=function(){return this.each(function(){var t,n=e(window),r=n.height(),i=n.scrollTop(),s=i+r,o=e(this),u=o.height(),a=o.offset().top,f=a+u;if(a<i||f>s){if(i>a){t=a}else{t=f-r}e("html, body").stop().animate({scrollTop:t},500)}})};e.fn.uls.Constructor=n})(jQuery);(function(e){"use strict";e.uls=e.uls||{};e.uls.data={languages:{aa:["Latn",["AF"],"Qafár af"],ab:["Cyrl",["EU"],"Аҧсшәа"],ace:["Latn",["AS","PA"],"Acèh"],ady:["Cyrl",["EU","ME"],"Адыгэбзэ"],"ady-cyrl":["ady"],"ady-latn":["Latn",["EU","ME"],"Adygabze"],aeb:["Arab",["AF"],"زَوُن"],af:["Latn",["AF"],"Afrikaans"],ahr:["Deva",["AS"],"अहिराणी"],ak:["Latn",["AF"],"Akan"],akz:["Latn",["AM"],"Albaamo innaaɬiilka"],aln:["Latn",["EU"],"Gegë"],am:["Ethi",["AF"],"አማርኛ"],an:["Latn",["EU"],"aragonés"],ang:["Latn",["EU"],"Ænglisc"],anp:["Deva",["AS"],"अङ्गिका"],ar:["Arab",["ME"],"العربية"],arc:["Syrc",["ME"],"ܐܪܡܝܐ"],arn:["Latn",["AM"],"mapudungun"],aro:["Latn",["AM"],"Araona"],arq:["Arab",["AF"],"جازايرية"],ary:["Latn",["ME"],"Maġribi"],arz:["Arab",["ME"],"مصرى"],as:["Beng",["AS"],"অসমীয়া"],ase:["Sgnw",["AM"],"American sign language"],ast:["Latn",["EU"],"asturianu"],av:["Cyrl",["EU"],"авар"],avk:["Latn",["WW"],"Kotava"],ay:["Latn",["AM"],"Aymar aru"],az:["az-latn"],"az-latn":["Latn",["EU","ME"],"azərbaycanca"],"az-arab":["Arab",["EU","ME"],"آذربايجانجا"],"az-cyrl":["Latn",["EU","ME"],"азәрбајҹанҹа"],azb:["az-arab"],ba:["Cyrl",["EU"],"башҡортса"],bar:["Latn",["EU"],"Boarisch"],"bat-smg":["sgs"],"bbc-latn":["Latn",["AS"],"Batak Toba"],"bbc-batk":["Batk",["AS"],"Batak Toba"],bbc:["Latn",["AS"],"Batak Toba"],bcc:["Arab",["AS","ME"],"بلوچی مکرانی"],bcl:["Latn",["AS"],"Bikol Central"],"be-tarask":["Cyrl",["EU"],"беларуская (тарашкевіца)"],"be-x-old":["be-tarask"],be:["Cyrl",["EU"],"беларуская"],bew:["Latn",["AS"],"Bahasa Betawi"],bfq:["Taml",["AS"],"படகா"],bg:["Cyrl",["EU"],"български"],bh:["Deva",["AS"],"भोजपुरी"],bho:["Deva",["AS"],"भोजपुरी"],bi:["Latn",["PA"],"Bislama"],bjn:["Latn",["AS"],"Bahasa Banjar"],bm:["Latn",["AF"],"bamanankan"],bn:["Beng",["AS"],"বাংলা"],bo:["Tibt",["AS"],"བོད་ཡིག"],bpy:["Beng",["AS"],"বিষ্ণুপ্রিয়া মণিপুরী"],bqi:["Arab",["ME"],"بختياري"],br:["Latn",["EU"],"brezhoneg"],brh:["Latn",["ME","AS"],"Bráhuí"],brx:["Deva",["AS"],"बड़ो"],bs:["Latn",["EU"],"bosanski"],bto:["Latn",["AS"],"Iriga Bicolano"],bug:["Bugi",["AS"],"ᨅᨔ ᨕᨘᨁᨗ"],bxr:["Cyrl",["AS"],"буряад"],ca:["Latn",["EU"],"català"],"cbk-zam":["Latn",["AS"],"Chavacano de Zamboanga"],cdo:["Latn",["AS"],"Mìng-dĕ̤ng-ngṳ̄"],ce:["Cyrl",["EU"],"нохчийн"],ceb:["Latn",["AS"],"Cebuano"],ch:["Latn",["PA"],"Chamoru"],cho:["Latn",["AM"],"Choctaw"],chr:["Cher",["AM"],"ᏣᎳᎩ"],chy:["Latn",["AM"],"Tsetsêhestâhese"],ckb:["Arab",["ME"],"کوردی"],co:["Latn",["EU"],"corsu"],cps:["Latn",["AS"],"Capiceño"],cr:["Cans",["AM"],"ᓀᐦᐃᔭᐍᐏᐣ"],"cr-cans":["cr"],"cr-latn":["Latn",["AM"],"Nēhiyawēwin"],crh:["Latn",["EU"],"qırımtatarca"],"crh-cyrl":["Cyrl",["EU"],"къырымтатарджа"],"crh-latn":["crh"],cs:["Latn",["EU"],"česky"],csb:["Latn",["EU"],"kaszëbsczi"],cu:["Cyrl",["EU"],"словѣньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ"],cv:["Cyrl",["EU"],"Чӑвашла"],cy:["Latn",["EU"],"Cymraeg"],da:["Latn",["EU"],"dansk"],"de-at":["Latn",["EU"],"Österreichisches Deutsch"],"de-ch":["Latn",["EU"],"Schweizer Hochdeutsch"],"de-formal":["Latn",["EU"],"Deutsch (Sie-Form)"],de:["Latn",["EU"],"Deutsch"],diq:["Latn",["EU","AS"],"Zazaki"],dsb:["Latn",["EU"],"dolnoserbski"],dtp:["Latn",["AS"],"Dusun Bundu-liwan"],dv:["Thaa",["AS"],"ދިވެހިބަސް"],dz:["Tibt",["AS"],"ཇོང་ཁ"],ee:["Latn",["AF"],"eʋegbe"],egl:["Latn",["EU"],"Emiliàn"],el:["Grek",["EU"],"Ελληνικά"],eml:["Latn",["EU"],"emiliàn e rumagnòl"],"en-ca":["Latn",["AM"],"Canadian English"],"en-gb":["Latn",["EU","AS","PA"],"British English"],en:["Latn",["EU","AM","AF","ME","AS","PA","WW"],"English"],eo:["Latn",["WW"],"Esperanto"],"es-419":["Latn",["AM"],"español de America Latina"],"es-formal":["Latn",["EU","AM","AF","WW"],"español (formal)"],es:["Latn",["EU","AM","AF","WW"],"español"],esu:["Latn",["AM"],"Yup'ik"],et:["Latn",["EU"],"eesti"],eu:["Latn",["EU"],"euskara"],ext:["Latn",["EU"],"estremeñu"],fa:["Arab",["ME"],"فارسی"],ff:["Latn",["AF"],"Fulfulde"],fi:["Latn",["EU"],"suomi"],fil:["tl"],fit:["Latn",["EU"],"meänkieli"],"fiu-vro":["vro"],fj:["Latn",["PA"],"Na Vosa Vakaviti"],fo:["Latn",["EU"],"føroyskt"],fr:["Latn",["EU","AM","WW"],"français"],frc:["Latn",["AM"],"français cadien"],frp:["Latn",["EU"],"arpetan"],frr:["Latn",["EU"],"Nordfriisk"],fur:["Latn",["EU"],"furlan"],fy:["Latn",["EU"],"Frysk"],ga:["Latn",["EU"],"Gaeilge"],gag:["Latn",["EU"],"Gagauz"],gah:["Latn",["AS"],"Alekano"],"gan-hans":["Hans",["AS"],"赣语(简体)"],"gan-hant":["gan"],gan:["Hant",["AS"],"贛語"],gbz:["Latn",["AS"],"Dari"],gcf:["Latn",["AM"],"Guadeloupean Creole French"],gd:["Latn",["EU"],"Gàidhlig"],gl:["Latn",["EU"],"galego"],glk:["Arab",["ME"],"گیلکی"],gn:["Latn",["AM"],"Avañe'ẽ"],gom:["Deva",["AS"],"कोंकणी"],"gom-deva":["gom"],"gom-latn":["Latn",["AS"],"Konknni"],got:["Goth",["EU"],"𐌲𐌿𐍄𐌹𐍃𐌺"],grc:["Grek",["EU"],"Ἀρχαία ἑλληνικὴ"],gsw:["Latn",["EU"],"Alemannisch"],gu:["Gujr",["AS"],"ગુજરાતી"],guc:["Latn",["AM"],"Wayúu"],gur:["Latn",["AF"],"Gurenɛ"],gv:["Latn",["EU"],"Gaelg"],"ha-arab":["Arab",["AF"],"هَوُسَ"],"ha-latn":["Latn",["AF"],"Hausa"],ha:["ha-latn"],hak:["Latn",["AS"],"Hak-kâ-fa"],haw:["Latn",["AM","PA"],"Hawai`i"],he:["Hebr",["ME"],"עברית"],hi:["Deva",["AS"],"हिन्दी"],hif:["Latn",["PA","AS"],"Fiji Hindi"],"hif-deva":["Deva",["AS"],"फ़ीजी हिन्दी"],"hif-latn":["hif"],hil:["Latn",["AS"],"Ilonggo"],hne:["Deva",["AS"],"छत्तीसगढ़ी"],ho:["Latn",["PA"],"Hiri Motu"],hr:["Latn",["EU"],"hrvatski"],hsb:["Latn",["EU"],"hornjoserbsce"],hsn:["Hans",["AS"],"湘语"],ht:["Latn",["AM"],"Kreyòl ayisyen"],"hu-formal":["Latn",["EU"],"Magyar (magázó)"],hu:["Latn",["EU"],"magyar"],hy:["Armn",["EU","ME"],"Հայերեն"],hz:["Latn",["AF"],"Otsiherero"],ia:["Latn",["WW"],"interlingua"],id:["Latn",["AS"],"Bahasa Indonesia"],ie:["Latn",["WW"],"Interlingue"],ig:["Latn",["AF"],"Igbo"],ii:["Yiii",["AS"],"ꆇꉙ"],ik:["Latn",["AM"],"Iñupiak"],"ike-cans":["Cans",["AM"],"ᐃᓄᒃᑎᑐᑦ"],"ike-latn":["Latn",["AM"],"inuktitut"],ilo:["Latn",["AS"],"Ilokano"],inh:["Cyrl",["EU"],"ГӀалгӀай"],io:["Latn",["WW"],"Ido"],is:["Latn",["EU"],"íslenska"],it:["Latn",["EU"],"italiano"],iu:["Cans",["AM"],"ᐃᓄᒃᑎᑐᑦ"],ja:["Jpan",["AS"],"日本語"],jam:["Latn",["AM"],"Patois"],jbo:["Latn",["WW"],"lojban"],jut:["Latn",["EU"],"jysk"],jv:["Latn",["AS","PA"],"Basa Jawa"],"jv-java":["Java",["AS","PA"],"ꦧꦱꦗꦮ"],ka:["Geor",["EU"],"ქართული"],kaa:["Latn",["AS"],"Qaraqalpaqsha"],kab:["Latn",["AF","EU"],"Taqbaylit"],"kbd-cyrl":["kbd"],"kbd-latn":["Latn",["EU"],"Qabardjajəbza"],kbd:["Cyrl",["EU","ME"],"Адыгэбзэ"],kea:["Latn",["AF"],"Kabuverdianu"],kg:["Latn",["AF"],"Kongo"],kgp:["Latn",["AM"],"Kaingáng"],khw:["Arab",["ME","AS"],"کھوار"],ki:["Latn",["AF"],"Gĩkũyũ"],kiu:["Latn",["EU","ME"],"Kırmancki"],kj:["Latn",["AF"],"Kwanyama"],kjh:["Cyrl",["AS"],"хакас"],kk:["kk-cyrl"],"kk-arab":["Arab",["EU","AS"],"قازاقشا (تٶتە)"],"kk-cn":["kk-arab"],"kk-cyrl":["Cyrl",["EU","AS"],"қазақша"],"kk-kz":["kk-cyrl"],"kk-latn":["Latn",["EU","AS","ME"],"qazaqşa"],"kk-tr":["kk-latn"],kl:["Latn",["AM","EU"],"kalaallisut"],km:["Khmr",["AS"],"ភាសាខ្មែរ"],kn:["Knda",["AS"],"ಕನ್ನಡ"],"ko-kp":["Kore",["AS"],"한국어 (조선)"],ko:["Kore",["AS"],"한국어"],koi:["Cyrl",["EU"],"Перем Коми"],kr:["Latn",["AF"],"Kanuri"],krc:["Cyrl",["EU"],"къарачай-малкъар"],kri:["Latn",["AF"],"Krio"],krj:["Latn",["ME","EU"],"Kinaray-a"],krl:["Latn",["EU"],"Karjala"],"ks-arab":["Arab",["AS"],"کٲشُر"],"ks-deva":["Deva",["AS"],"कॉशुर"],ks:["Arab",["AS"],"کٲشُر"],ksf:["Latn",["AF"],"Bafia"],ksh:["Latn",["EU"],"Ripoarisch"],ku:["ku-latn"],"ku-arab":["Arab",["EU","ME"],"كوردي"],"ku-latn":["Latn",["EU","ME"],"Kurdî"],kv:["Cyrl",["EU"],"коми"],kw:["Latn",["EU"],"kernowek"],ky:["Cyrl",["AS"],"Кыргызча"],la:["Latn",["EU"],"Latina"],lad:["lad-latn"],"lad-latn":["Latn",["ME","EU","AM"],"Ladino"],"lad-hebr":["Hebr",["ME","EU","AM"],"לאדינו"],lb:["Latn",["EU"],"Lëtzebuergesch"],lbe:["Cyrl",["EU"],"лакку"],lez:["Cyrl",["EU"],"лезги"],lfn:["Latn",["WW"],"Lingua Franca Nova"],lg:["Latn",["AF"],"Luganda"],li:["Latn",["EU"],"Limburgs"],lij:["Latn",["EU"],"Ligure"],liv:["Latn",["EU"],"Līvõ kēļ"],lld:["Latn",["EU"],"Ladin"],lmo:["Latn",["EU"],"lumbaart"],ln:["Latn",["AF"],"lingála"],lo:["Laoo",["AS"],"ລາວ"],loz:["Latn",["AF"],"Silozi"],lt:["Latn",["EU"],"lietuvių"],lrc:["Arab",["AS"],"لوری"],ltg:["Latn",["EU"],"latgaļu"],lud:["Latn",["EU"],"lüüdi"],lus:["Latn",["AS"],"Mizo ţawng"],lut:["Latn",["AM"],"dxʷləšucid"],lv:["Latn",["EU"],"latviešu"],lzh:["Hant",["AS"],"文言"],lzz:["Latn",["EU","ME"],"Lazuri"],mai:["Deva",["AS"],"मैथिली"],"map-bms":["Latn",["AS"],"Basa Banyumasan"],mdf:["Cyrl",["EU"],"мокшень"],mfe:["Latn",["AM"],"Morisyen"],mg:["Latn",["AF"],"Malagasy"],mh:["Latn",["PA"],"Ebon"],mhr:["Cyrl",["EU"],"олык марий"],mi:["Latn",["PA"],"Māori"],mic:["Latn",["AM"],"Mi'kmaq"],min:["Latn",["AS"],"Baso Minangkabau"],mk:["Cyrl",["EU"],"македонски"],ml:["Mlym",["AS","ME"],"മലയാളം"],mn:["Cyrl",["AS"],"монгол"],mnc:["Mong",["AS"],"ᠮᠠᠨᠵᡠ ᡤᡳᠰᡠᠨ"],mni:["Beng",["AS"],"মেইতেই লোন্"],mnw:["Mymr",["AS"],"ဘာသာ မန်"],mo:["Cyrl",["EU"],"молдовеняскэ"],mr:["Deva",["AS","ME"],"मराठी"],mrj:["Cyrl",["EU"],"кырык мары"],ms:["Latn",["AS"],"Bahasa Melayu"],mt:["Latn",["EU"],"Malti"],mui:["Latn",["AS"],"Musi"],mus:["Latn",["AM"],"Mvskoke"],mwl:["Latn",["EU"],"Mirandés"],mwv:["Latn",["AS"],"Behase Mentawei"],my:["Mymr",["AS"],"မြန်မာဘာသာ"],myv:["Cyrl",["EU"],"эрзянь"],mzn:["Arab",["ME","AS"],"مازِرونی"],na:["Latn",["PA"],"Dorerin Naoero"],nah:["Latn",["AM"],"Nāhuatl"],nan:["Latn",["AS"],"Bân-lâm-gú"],nap:["Latn",["EU"],"Nnapulitano"],nb:["Latn",["EU"],"norsk (bokmål)"],"nds-nl":["Latn",["EU"],"Nedersaksisch"],nds:["Latn",["EU"],"Plattdüütsch"],ne:["Deva",["AS"],"नेपाली"],"new":["Deva",["AS"],"नेपाल भाषा"],ng:["Latn",["AF"],"Oshiwambo"],niu:["Latn",["PA"],"ko e vagahau Niuē"],njo:["Latn",["AS"],"Ao"],"nl-informal":["Latn",["EU","AM"],"Nederlands (informeel)"],nl:["Latn",["EU","AM"],"Nederlands"],nn:["Latn",["EU"],"norsk (nynorsk)"],no:["Latn",["EU"],"norsk"],nov:["Latn",["WW"],"Novial"],nqo:["Nkoo",["AF"],"ߒߞߏ"],nrm:["Latn",["EU"],"Nouormand"],nso:["Latn",["AF"],"Sesotho sa Leboa"],nv:["Latn",["AM"],"Diné bizaad"],ny:["Latn",["AF"],"Chi-Chewa"],oc:["Latn",["EU"],"occitan"],om:["Latn",["AF"],"Oromoo"],or:["Orya",["AS"],"ଓଡ଼ିଆ"],os:["Cyrl",["EU"],"Ирон"],ota:["Arab",["AS","EU"],"لسان عثمانى"],pa:["pa-guru"],"pa-guru":["Guru",["AS"],"ਪੰਜਾਬੀ"],pag:["Latn",["AS"],"Pangasinan"],pam:["Latn",["AS"],"Kapampangan"],pap:["Latn",["AM"],"Papiamentu"],pcd:["Latn",["EU"],"Picard"],pdc:["Latn",["EU","AM"],"Deitsch"],pdt:["Latn",["EU","AM"],"Plautdietsch"],pfl:["Latn",["EU"],"Pälzisch"],pi:["Deva",["AS"],"पालि"],pih:["Latn",["PA"],"Norfuk / Pitkern"],pis:["Latn",["PA"],"Pijin"],pko:["Latn",["AF"],"Pökoot"],pl:["Latn",["EU"],"polski"],pms:["Latn",["EU"],"Piemontèis"],pnb:["Arab",["AS","ME"],"پنجابی"],pnt:["Grek",["EU"],"Ποντιακά"],ppl:["Latn",["AM"],"Nawat"],prg:["Latn",["EU"],"Prūsiskan"],ps:["Arab",["AS","ME"],"پښتو"],"pt-br":["Latn",["AM"],"português do Brasil"],pt:["Latn",["EU","AM","AS","PA","AF","WW"],"português"],qu:["Latn",["AM"],"Runa Simi"],qug:["Latn",["AM"],"Runa shimi"],rap:["Latn",["AM"],"arero rapa nui"],rgn:["Latn",["EU"],"Rumagnôl"],rif:["Latn",["AF"],"Tarifit"],rki:["Mymr",["AS"],"ရခိုင်"],rm:["Latn",["EU"],"rumantsch"],rmf:["Latn",["EU"],"kaalengo tšimb"],rmy:["Latn",["EU"],"Romani"],rn:["Latn",["AF"],"Kirundi"],ro:["Latn",["EU"],"română"],"roa-rup":["rup"],"roa-tara":["Latn",["EU"],"tarandíne"],rtm:["Latn",["PA"],"Faeag Rotuma"],ru:["Cyrl",["EU","AS","ME"],"русский"],rue:["Cyrl",["EU"],"русиньскый"],rup:["Latn",["EU"],"Armãneashce"],ruq:["Cyrl",["EU"],"Влахесте"],"ruq-cyrl":["ruq"],"ruq-grek":["Grek",["EU"],"Megleno-Romanian (Greek script)"],"ruq-latn":["Latn",["EU"],"Vlăheşte"],rut:["Cyrl",["EU"],"мыхаӀбишды"],rw:["Latn",["AF"],"Kinyarwanda"],rwr:["Deva",["AS"],"मारवाड़ी"],ryu:["Kana",["AS"],"ʔucināguci"],sa:["Deva",["AS"],"संस्कृतम्"],sah:["Cyrl",["EU","AS"],"саха тыла"],sat:["Latn",["AS"],"Santali"],saz:["Saur",["AS"],"ꢱꣃꢬꢵꢯ꣄ꢡ꣄ꢬꢵ"],sc:["Latn",["EU"],"sardu"],scn:["Latn",["EU"],"sicilianu"],sco:["Latn",["EU"],"Scots"],sd:["Arab",["AS"],"سنڌي"],sdc:["Latn",["EU"],"Sassaresu"],se:["Latn",["EU"],"sámegiella"],ses:["Latn",["AF"],"Koyraboro Senni"],sei:["Latn",["AM"],"Cmique Itom"],sg:["Latn",["AF"],"Sängö"],sgs:["Latn",["EU"],"žemaitėška"],sh:["Latn",["EU"],"srpskohrvatski"],"shi-latn":["Latn",["AF"],"Tašlḥiyt"],"shi-tfng":["Tfng",["AF"],"ⵜⴰⵛⵍⵃⵉⵜ"],shi:["shi-latn"],shn:["Mymr",["AS"],"လိၵ်ႈတႆး"],si:["Sinh",["AS"],"සිංහල"],simple:["Latn",["WW"],"Simple English"],sk:["Latn",["EU"],"slovenčina"],sl:["Latn",["EU"],"slovenščina"],sli:["Latn",["EU"],"Schläsch"],slr:["Latn",["AS"],"Salırça"],sly:["Latn",["AS"],"Bahasa Selayar"],syc:["Syrc",["ME"],"ܣܘܪܝܝܐ"],sm:["Latn",["PA"],"Gagana Samoa"],sma:["Latn",["EU"],"åarjelsaemien"],smj:["Latn",["EU"],"julevsámegiella"],smn:["Latn",["EU"],"anarâškielâ"],sms:["Latn",["EU"],"sää´mǩiõll"],sn:["Latn",["AF"],"chiShona"],so:["Latn",["AF"],"Soomaaliga"],sq:["Latn",["EU"],"shqip"],sr:["sr-cyrl"],"sr-ec":["sr-cyrl"],"sr-cyrl":["Cyrl",["EU"],"српски"],"sr-el":["sr-latn"],"sr-latn":["Latn",["EU"],"srpski"],srn:["Latn",["AM","EU"],"Sranantongo"],ss:["Latn",["AF"],"SiSwati"],st:["Latn",["AF"],"Sesotho"],stq:["Latn",["EU"],"Seeltersk"],su:["Latn",["AS"],"Basa Sunda"],sv:["Latn",["EU"],"svenska"],sw:["Latn",["AF"],"Kiswahili"],swb:["Latn",["AF"],"Shikomoro"],sxu:["Latn",["EU"],"Säggssch"],szl:["Latn",["EU"],"ślůnski"],ta:["Taml",["AS"],"தமிழ்"],tcy:["Knda",["AS"],"ತುಳು"],te:["Telu",["AS"],"తెలుగు"],tet:["Latn",["AS","PA"],"tetun"],"tg-cyrl":["Cyrl",["AS"],"тоҷикӣ"],"tg-latn":["Latn",["AS"],"tojikī"],tg:["Cyrl",["AS"],"тоҷикӣ"],th:["Thai",["AS"],"ไทย"],ti:["Ethi",["AF"],"ትግርኛ"],tk:["Latn",["AS"],"Türkmençe"],tkr:["Cyrl",["AS"],"ЦӀаьхна миз"],tl:["Latn",["AS"],"Tagalog"],tly:["Cyrl",["EU","AS","ME"],"толышә зывон"],tn:["Latn",["AF"],"Setswana"],to:["Latn",["PA"],"lea faka-Tonga"],tokipona:["Latn",["WW"],"Toki Pona"],tpi:["Latn",["PA","AS"],"Tok Pisin"],tr:["Latn",["EU","ME"],"Türkçe"],trp:["Latn",["AS"],"Kokborok (Tripuri)"],tru:["Latn",["AS"],"Ṫuroyo"],ts:["Latn",["AF"],"Xitsonga"],tsd:["Grek",["EU"],"Τσακωνικά"],tt:["Cyrl",["EU"],"татарча"],"tt-cyrl":["tt"],"tt-latn":["Latn",["EU"],"tatarça"],ttt:["Cyrl",["AS"],"Tati"],tum:["Latn",["AF"],"chiTumbuka"],tw:["Latn",["AF"],"Twi"],twd:["Latn",["EU"],"Tweants"],ty:["Latn",["PA"],"Reo Mā`ohi"],tyv:["Cyrl",["AS"],"тыва дыл"],tzm:["Tfng",["AF"],"ⵜⴰⵎⴰⵣⵉⵖⵜ"],udm:["Cyrl",["EU"],"удмурт"],ug:["ug-arab"],"ug-arab":["Arab",["AS"],"ئۇيغۇرچە"],"ug-latn":["Latn",["AS"],"uyghurche"],"ug-cyrl":["Cyrl",["AS"],"уйғурчә"],uk:["Cyrl",["EU"],"українська"],ur:["Arab",["AS","ME"],"اردو"],uz:["Latn",["AS"],"oʻzbekcha"],ve:["Latn",["AF"],"Tshivenda"],vec:["Latn",["EU"],"vèneto"],vep:["Latn",["EU"],"vepsän kel’"],vi:["Latn",["AS"],"Tiếng Việt"],vls:["Latn",["EU"],"West-Vlams"],vmf:["Latn",["EU"],"Mainfränkisch"],vo:["Latn",["WW"],"Volapük"],vot:["Latn",["EU"],"Vaďďa"],vro:["Latn",["EU"],"Võro"],wa:["Latn",["EU"],"walon"],war:["Latn",["AS"],"Winaray"],wls:["Latn",["PA"],"Faka'uvea"],wo:["Latn",["AF"],"Wolof"],wuu:["Hans",["AS"],"吴语"],xal:["Cyrl",["EU"],"хальмг"],xh:["Latn",["AF"],"isiXhosa"],xmf:["Geor",["EU"],"მარგალური"],ydd:["Hebr",["AS","EU"],"Eastern Yiddish"],yi:["Hebr",["ME","EU","AM"],"ייִדיש"],yo:["Latn",["AF"],"Yorùbá"],yrk:["Cyrl",["AS"],"Ненэцяʼ вада"],yrl:["Latn",["AM"],"ñe'engatú"],yua:["Latn",["AM"],"Maaya T'aan"],yue:["Hant",["AS"],"粵語"],za:["Latn",["AS"],"Vahcuengh"],zea:["Latn",["EU"],"Zeêuws"],zh:["Hans",["AS"],"中文"],"zh-classical":["Hant",["AS"],"文言"],"zh-cn":["Hans",["AS"],"中文(中国大陆)"],"zh-hans":["Hans",["AS"],"中文(简体)"],"zh-hant":["Hant",["AS"],"中文(繁體)"],"zh-hk":["Hant",["AS"],"中文(香港)"],"zh-min-nan":["nan"],"zh-mo":["Hant",["AS"],"中文(澳門)"],"zh-my":["Hans",["AS"],"中文(马来西亚)"],"zh-sg":["Hans",["AS"],"中文(新加坡)"],"zh-tw":["Hant",["AS"],"中文(台灣)"],"zh-yue":["yue"],zu:["Latn",["AF"],"isiZulu"]},scriptgroups:{Latin:["Latn","Goth"],Greek:["Grek"],WestCaucasian:["Armn","Geor"],Arabic:["Arab"],MiddleEastern:["Hebr","Syrc"],African:["Ethi","Nkoo","Tfng"],SouthAsian:["Beng","Deva","Gujr","Guru","Knda","Mlym","Orya","Saur","Sinh","Taml","Telu","Tibt","Thaa"],Cyrillic:["Cyrl"],CJK:["Hans","Hant","Kana","Kore","Jpan","Yiii"],SouthEastAsian:["Batk","Bugi","Java","Khmr","Laoo","Mymr","Thai"],Mongolian:["Mong"],SignWriting:["Sgnw"],NativeAmerican:["Cher","Cans"],Special:["Zyyy"]},rtlscripts:["Arab","Hebr","Syrc","Nkoo","Thaa"],regiongroups:{WW:1,SP:1,AM:2,EU:3,ME:3,AF:3,AS:4,PA:4},territories:{AC:["en"],AD:["ca","es","fr"],AE:["ar","ml","ps","bal","fa"],AF:["fa","ps","haz","uz-arab","tk-latn","prd","bal","ug-arab","kk-arab"],AG:["en","pt"],AI:["en"],AL:["sq","el","mk"],AM:["hy","ku-latn","az-latn"],AO:["pt","umb","kmb","ln"],AQ:["und"],AR:["es","cy","gn"],AS:["sm","en"],AT:["de","bar","hr","sl","hu"],AU:["en","zh-hant","it"],AW:["nl","pap","en"],AX:["sv"],AZ:["az-latn","az-cyrl","tly-latn","ku-latn","ttt-latn","tkr-latn"],BA:["bs-cyrl","bs-latn","hr","sr-cyrl","sr-latn"],BB:["en"],BD:["bn","rkt","syl","ccp","my","grt","mni"],BE:["nl","en","fr","vls","wa","de"],BF:["mos","dyu","fr"],BG:["bg","tr"],BH:["ar","ml"],BI:["rn","fr","sw"],BJ:["fr","fon","yo"],BL:["fr"],BM:["en"],BN:["ms-latn","zh-hant","ms-arab","en"],BO:["es","qu","ay","gn","aro"],BQ:["pap","nl"],BR:["pt","de","it","ja","ko","kgp","gub","yrl","xav"],BS:["en"],BT:["dz","ne","tsj","lep"],BV:["und"],BW:["en","tn","af"],BY:["be","ru"],BZ:["en","es"],CA:["en","fr","it","de","pdt","cr-cans","crk","yi","iu-cans","iu-latn","moe","crj","atj","crl","csw","crm","ikt","moh","dgr","den","scs","nsk","chp","gwi"],CC:["ms-arab","en"],CD:["sw","lua","swc","fr","ln","lu","kg","lol","rw"],CF:["fr","sg","ln"],CG:["fr","ln"],CH:["de","fr","gsw","it","lmo","rm","rmo","wae"],CI:["fr","bci","sef","dnj","kfo","bqv"],CK:["en"],CL:["es","arn"],CM:["fr","en","bum","ff","ewo","ybb","bbj","nnh","bkm","bas","bax","byv","mua","maf","bfd","bss","kkj","dua","mgo","ar","jgo","ksf","agq","ha-arab","nmg","yav"],CN:["zh-hans","wuu","hsn","hak","nan","gan","ii","ug-arab","za","mn-mong","bo","ko","kk-arab","lis","ky-arab","nxq","khb","tdd","lcp","en","ru","vi","uz-cyrl","lzh"],CO:["es","guc"],CP:["und"],CR:["es"],CU:["es"],CV:["kea","pt"],CW:["pap","nl","es"],CX:["en"],CY:["el","tr","hy","ar"],CZ:["cs","de","pl"],DE:["de","en","nds","vmf","tr","hr","it","ku-latn","ru","el","ksh","pl","es","nl","da","hsb","frr","dsb","frs","stq","pfl"],DG:["en"],DJ:["aa","so","ar","fr"],DK:["da","de","kl","jut"],DM:["en"],DO:["es","en"],DZ:["arq","ar","fr","kab"],EA:["es"],EC:["es","qu","qug"],EE:["et","ru","vro"],EG:["ar","arz","el"],EH:["ar"],ER:["ti","en","tig","ar","aa","ssy","byn"],ES:["es","en","ca","gl","eu","ast","ext"],ET:["en","am","om","so","ti","sid","wal","aa"],FI:["fi","sv","ru","en","et","rmf","se","smn","sms"],FJ:["en","hi","hif-deva","fj","rtm"],FK:["en"],FM:["chk","pon","kos","yap","en","uli"],FO:["fo"],FR:["fr","en","oc","it","pt","pcd","gsw","br","co","ca","nl","eu","frp","ia"],GA:["fr","puu"],GB:["en","sco","pa-guru","cy","bn","zh-hant","syl","el","it","ks-arab","gd","yi","ml","ga","fr","kw"],GD:["en"],GE:["ka","xmf","ru","hy","ab","os","ku-latn"],GF:["fr","gcr","zh-hant"],GG:["en"],GH:["ak","en","ee","abr","gur","gaa","ha-latn","saf"],GI:["en"],GL:["kl","da"],GM:["en","man-latn"],GN:["fr","ff","man-nkoo","sus","nqo","kpe"],GP:["fr"],GQ:["es","fan","fr","bvb"],GR:["el","pnt-grek","mk","tr","bg","sq","tsd"],GS:["und"],GT:["es","quc"],GU:["en","ch"],GW:["pt"],GY:["en"],HK:["zh-hant","en","zh-hans"],HM:["und"],HN:["es","en"],HR:["hr","it"],HT:["ht","fr"],HU:["hu","de","ro","hr","sk","sl"],IC:["es"],ID:["id","jv","su","mad","ms-arab","min","bew","ban","bug","bjn","ace","sas","bbc","zh-hant","mak","ljp","rej","gor","nij","kge","aoz","kvr","lbw","rob","mdr","sxn","sly","mwv"],IE:["en","ga"],IL:["he","ar","ru","ro","yi","en","pl","lad","hu","am","ti","ml"],IM:["en","gv"],IN:["hi","en","bn","te","mr","ta","ur","gu","kn","ml","or","pa-guru","bho","awa","as","bgc","mag","mwr","mai","hne","dcc","bjj","ne","sat","wtm","rkt","ks-arab","kok","gom","swv","gbm","lmn","sd-arab","gon-telu","kfy","doi","kru","sck","wbq","xnr","tcy","wbr","khn","brx","noe","bhb","mni","raj","hoc","mtr","unr-beng","bhi","hoj","kha","kfr","grt","unx-beng","bfy","srx","saz","ccp","sd-deva","bfq","njo","ria","bo","bpy","bft","bra","lep","btv","lif-deva","lah","sa","kht","dv","dz"],IO:["en"],IQ:["ar","ckb","fa","syr"],IR:["fa","az-arab","azb","mzn","glk","ckb","tk-latn","lrc","ar","bal","rmt","bqi","luz","lki","prd","hy","ps","ka","gbz","kk-arab"],IS:["is","da"],IT:["it","en","fr","lmo","pms","sc","de","vec","nap","lij","scn","sl","sdc","fur","egl","ca","el","hr","rgn"],JE:["en"],JM:["en","jam"],JO:["ar"],JP:["ja","ryu","ko"],KE:["en","sw","ki","luy","luo","kam","kln","guz","mer","mas","ebu","so","dav","teo","pko","om","saq","ar","pa-guru","gu"],KG:["ky-cyrl","ru"],KH:["km","cja","kdt"],KI:["en","gil"],KM:["ar","fr","zdj"],KN:["en"],KP:["ko"],KR:["ko"],KW:["ar"],KY:["en"],KZ:["ru","kk-cyrl","de","ug-cyrl"],LA:["lo","kjg","kdt"],LB:["ar","hy","ku-arab","fr","en"],LC:["en"],LI:["de","gsw","wae"],LK:["si","ta","en"],LR:["en","kpe","vai-vaii","men","vai-latn"],LS:["st","zu","ss","en","xh"],LT:["lt","ru","sgs"],LU:["fr","lb","de"],LV:["lv","ru","ltg"],LY:["ar"],MA:["ary","ar","zgh","fr","tzm-latn","shi-latn","shi-tfng","rif-latn","rif-tfng","es"],MC:["fr"],MD:["ro","uk","bg","gag","ru"],ME:["sr-latn","sq","sr-cyrl"],MF:["fr"],MG:["mg","fr","en"],MH:["en","mh"],MK:["mk","sq","tr"],ML:["bm-latn","fr","ffm","snk","mwk","ses","tmh","bm-nkoo","khq","dtm","kao","ar","bmq","bze"],MM:["my","shn","mnw","kht"],MN:["mn-cyrl","kk-arab","zh-hans","ru","ug-cyrl"],MO:["zh-hant","pt","zh-hans","en"],MP:["en","ch"],MQ:["fr"],MR:["ar","fr","ff","wo"],MS:["en"],MT:["mt","en"],MU:["mfe","en","bho","ur","fr","ta"],MV:["dv"],MW:["en","ny","tum","zu"],MX:["es","yua","nhe","nhw","maz","nch","sei"],MY:["ms-latn","en","zh-hant","ta","jv","zmi","dtp","ml","bug","bjn"],MZ:["pt","vmw","ndc","ts","ngl","seh","mgh","rng","ny","yao","sw","zu"],NA:["af","kj","ng","naq","en","de","tn"],NC:["fr"],NE:["ha-latn","fr","dje","fuq","tmh","ar","twq"],NF:["en"],NG:["en","pcm","ha-latn","ig","yo","fuv","tiv","efi","ibb","ha-arab","bin","kaj","kcg","ar","cch","amo"],NI:["es"],NL:["nl","en","li","fy","gos","id","zea","rif-latn","tr"],NO:["nb","nn","se"],NP:["ne","mai","bho","new","jml","taj","awa","thl","bap","tdg","thr","mgp","lif-deva","thq","mrd","bfy","xsr","rjs","tsf","hi","ggn","gvr","bo","tkt","tdh","bn","unr-deva","lep"],NR:["en","na"],NU:["en","niu"],NZ:["en","mi"],OM:["ar","bal","fa"],PA:["es","en","zh-hant"],PE:["es","qu","ay"],PF:["fr","ty","zh-hant"],PG:["tpi","en","ho"],PH:["en","fil","es","ceb","ilo","hil","bik","war","bhk","pam","pag","mdh","tsg","zh-hant","cps","krj","bto","hnn","tbw","bku"],PK:["ur","pa-arab","en","lah","ps","sd-arab","skr","bal","brh","hno","fa","hnd","tg-arab","gju","bft","kvx","khw","mvy","kxp","gjk","ks-arab","btv"],PL:["pl","szl","be","uk","csb","de","sli","lt"],PM:["fr","en"],PN:["en"],PR:["es","en"],PS:["ar"],PT:["pt","gl"],PW:["pau","en"],PY:["gn","es","de"],QA:["ar","fa","ml"],RE:["fr","rcf","ta"],RO:["ro","hu","de","tr","sr-latn","bg","el","pl"],RS:["sr-cyrl","sr-latn","sq","hu","ro","hr","sk","uk"],RU:["ru","tt","ba","cv","hy","ce","av","udm","chm","sah","os","kbd","myv","dar","bua","mdf","kum","kv","lez","krc","inh","tyv","az-cyrl","ady","krl","lbe","koi","mrj","alt","fi","sr-latn","vep","mn-cyrl","izh","cu"],RW:["rw","fr","en"],SA:["ar"],SB:["en","rug"],SC:["crs","fr","en"],SD:["ar","en","nus","ha-arab"],SE:["sv","fi","fit","se","rmu","yi","smj","sma","ia"],SG:["en","zh-hans","ms-latn","ta","ml","pa-guru"],SH:["en"],SI:["sl","hu","it"],SJ:["nb","ru"],SK:["sk","hu","uk","pl","de"],SL:["kri","en","men","tem"],SM:["it","eo"],SN:["wo","fr","ff","srr","dyo"],SO:["so","ar","sw","om"],SR:["nl","srn","zh-hant"],SS:["ar","en"],ST:["pt"],SV:["es"],SX:["en","es","vic","nl"],SY:["ar","ku-latn","fr","hy","syr"],SZ:["en","ss","zu","ts"],TA:["en"],TC:["en"],TD:["fr","ar"],TF:["fr"],TG:["fr","ee"],TH:["th","tts","nod","sou","mfa","zh-hant","kxm","kdt","mnw","shn","lcp","lwl"],TJ:["tg-cyrl","ru","fa","ar"],TK:["en","tkl"],TL:["pt","tet"],TM:["tk-latn","ru","uz-latn","ku-latn"],TN:["aeb","ar","fr"],TO:["to","en"],TR:["tr","ku-latn","zza","kbd","az-latn","ar","bgx","bg","ady","kiu","hy","ka","sr-latn","lzz-latn","sq","ab","el","tru","uz-latn","ky-latn","kk-cyrl"],TT:["en","es"],TV:["tvl","en"],TW:["zh-hant","trv"],TZ:["sw","en","suk","nym","kde","bez","ksb","mas","mgy","asa","lag","jmc","rof","vun","rwk","sbp"],UA:["uk","ru","pl","yi","rue","be","ro","bg","tr","hu","el"],UG:["sw","lg","nyn","cgg","xog","en","teo","laj","ach","myx","rw","ttj","hi"],UM:["en"],US:["en","es","zh-hant","fr","de","fil","it","vi","ko","ru","nv","yi","pdc","haw","frc","chr","esu","lkt","ik"],UY:["es"],UZ:["uz-latn","uz-cyrl","ru","kaa","tr"],VA:["it","la"],VC:["en"],VE:["es"],VG:["en"],VI:["en"],VN:["vi","zh-hant","cjm"],VU:["bi","en","fr"],WF:["wls","fr","fud"],WS:["sm","en"],XK:["sq","aln","sr-cyrl","sr-latn"],YE:["ar"],YT:["swb","fr","buc","sw"],ZA:["en","zu","xh","af","nso","tn","st","ts","ss","ve","hi","nr","sw"],ZM:["en","bem","ny","loz"],ZW:["en","sn","nd","mxc","ndc","kck","ny","ve","tn"],ZZ:[]}}})(jQuery);(function(e){"use strict";e.uls.data.isRedirect=function(t){return e.uls.data.languages[t]!==undefined&&e.uls.data.languages[t].length===1?e.uls.data.languages[t][0]:false};e.uls.data.getScript=function(t){var n=e.uls.data.isRedirect(t);if(n){return e.uls.data.getScript(n)}if(!e.uls.data.languages[t]){return"Zyyy"}return e.uls.data.languages[t][0]};e.uls.data.getRegions=function(t){var n=e.uls.data.isRedirect(t);if(n){return e.uls.data.getRegions(n)}return e.uls.data.languages[t]&&e.uls.data.languages[t][1]||"UNKNOWN"};e.uls.data.getAutonym=function(t){var n=e.uls.data.isRedirect(t);if(n){return e.uls.data.getAutonym(n)}return e.uls.data.languages[t]&&e.uls.data.languages[t][2]||t};e.uls.data.getAutonyms=function(){var t,n={};for(t in e.uls.data.languages){if(e.uls.data.isRedirect(t)){continue}n[t]=e.uls.data.getAutonym(t)}return n};e.uls.data.getAllRegions=function(){var t,n=[];for(t in e.uls.data.regiongroups){n.push(t)}return n};e.uls.data.getLanguagesInScript=function(t){return e.uls.data.getLanguagesInScripts([t])};e.uls.data.getLanguagesInScripts=function(t){var n,r,i=[];for(n in e.uls.data.languages){if(e.uls.data.isRedirect(n)){continue}for(r=0;r<t.length;r++){if(t[r]===e.uls.data.getScript(n)){i.push(n);break}}}return i};e.uls.data.getLanguagesInRegion=function(t){return e.uls.data.getLanguagesInRegions([t])};e.uls.data.getLanguagesInRegions=function(t){var n,r,i=[];for(n in e.uls.data.languages){if(e.uls.data.isRedirect(n)){continue}for(r=0;r<t.length;r++){if(e.inArray(t[r],e.uls.data.getRegions(n))!==-1){i.push(n);break}}}return i};e.uls.data.getLanguagesInRegionGroup=function(t){return e.uls.data.getLanguagesInRegions(e.uls.data.getRegionsInGroup(t))};e.uls.data.getLanguagesByScriptInRegion=function(t){var n,r,i={};for(n in e.uls.data.languages){if(e.uls.data.isRedirect(n)){continue}if(e.inArray(t,e.uls.data.getRegions(n))!==-1){r=e.uls.data.getScript(n);if(i[r]===undefined){i[r]=[]}i[r].push(n)}}return i};e.uls.data.getLanguagesByScriptGroupInRegion=function(t){return e.uls.data.getLanguagesByScriptGroupInRegions([t])};e.uls.data.getAllLanguagesByScriptGroup=function(){return e.uls.data.getLanguagesByScriptGroupInRegions(e.uls.data.getAllRegions())};e.uls.data.getLanguagesByScriptGroup=function(t){var n={},r,i,s;for(r in t){i=e.uls.data.isRedirect(r)||r;s=e.uls.data.getScriptGroupOfLanguage(i);if(!n[s]){n[s]=[]}if(e.inArray(i,n[s])===-1){n[s].push(i)}}return n};e.uls.data.getLanguagesByScriptGroupInRegions=function(t){var n,r,i,s={};for(n in e.uls.data.languages){if(e.uls.data.isRedirect(n)){continue}for(r=0;r<t.length;r++){if(e.inArray(t[r],e.uls.data.getRegions(n))!==-1){i=e.uls.data.getScriptGroupOfLanguage(n);if(s[i]===undefined){s[i]=[]}s[i].push(n);break}}}return s};e.uls.data.getAllLanguagesByRegionAndScript=function(){var t,n,r,i,s,o,u,a={};for(t in e.uls.data.regiongroups){n=e.uls.data.regiongroups[t];if(a[n]===undefined){a[n]={}}a[n][t]={}}for(r in e.uls.data.languages){if(e.uls.data.isRedirect(r)){continue}i=e.uls.data.getScript(r);s=e.uls.data.getGroupOfScript(i);o=e.uls.data.getRegions(r);for(u=0;u<o.length;u++){t=o[u];n=e.uls.data.regiongroups[t];if(a[n][t][s]===undefined){a[n][t][s]={}}if(a[n][t][s][i]===undefined){a[n][t][s][i]=[]}a[n][t][s][i].push(r)}}return a};e.uls.data.getRegionsInGroup=function(t){var n,r=[];for(n in e.uls.data.regiongroups){if(e.uls.data.regiongroups[n]===t){r.push(n)}}return r};e.uls.data.getGroupOfScript=function(t){var n;for(n in e.uls.data.scriptgroups){if(e.inArray(t,e.uls.data.scriptgroups[n])!==-1){return n}}return"Other"};e.uls.data.getScriptGroupOfLanguage=function(t){return e.uls.data.getGroupOfScript(e.uls.data.getScript(t))};e.uls.data.sortByAutonym=function(t,n){var r=e.uls.data.getAutonym(t)||t,i=e.uls.data.getAutonym(n)||n;return r.toLowerCase()<i.toLowerCase()?-1:1};e.uls.data.isRtl=function(t){return e.inArray(e.uls.data.getScript(t),e.uls.data.rtlscripts)!==-1};e.uls.data.getDir=function(t){return e.uls.data.isRtl(t)?"rtl":"ltr"};e.uls.data.getLanguagesInTerritory=function(t){return e.uls.data.territories[t]};e.uls.data.addLanguage=function(t,n){if(n.target){e.uls.data.languages[t]=[n.target]}else{e.uls.data.languages[t]=[n.script,n.regions,n.autonym]}};e.uls.data.deleteLanguage=function(t){if(e.uls.data.languages[t]){delete e.uls.data.languages[t];return true}return false}})(jQuery);(function(e){"use strict";function r(e,t){var n="െേൈൊോൌெேைொோௌେୈୋୌિਿिিেৈোৌෙේෛොෝෞ";return n.indexOf(t[e.length])<=0}var t,n;t=function(t,n){this.$element=e(t);this.options=e.extend({},e.fn.regionselector.defaults,n);this.$element.addClass("languagefilter");this.resultCount=0;this.$suggestion=this.$element.parents().find("#"+this.$element.data("suggestion"));this.$clear=this.$element.parents().find("#"+this.$element.data("clear"));this.selectedLanguage=null;this.listen()};n=function(){var e=0;return function(t,n){clearTimeout(e);e=setTimeout(t,n)}}();t.prototype={listen:function(){this.$element.on("keypress",e.proxy(this.keyup,this)).on("keyup",e.proxy(this.keyup,this));if(this.eventSupported("keydown")){this.$element.on("keydown",e.proxy(this.keyup,this))}if(this.$clear.length){this.$clear.on("click",e.proxy(this.clear,this))}this.toggleClear()},keyup:function(t){var r,i,s;switch(t.keyCode){case 9:r=this.$suggestion.val();if(r&&r!==this.$element.val()){this.$element.val(r);t.preventDefault();t.stopPropagation()}break;case 13:if(!this.options.onSelect){break}t.preventDefault();t.stopPropagation();i=e.trim(this.$element.val()).toLowerCase();if(this.selectedLanguage){this.options.onSelect(this.selectedLanguage)}else if(this.options.languages[i]){this.options.onSelect(i)}break;default:s=this;if(t.which<32&&t.which!==8){break}this.selectedLanguage=null;n(function(){if(!s.$element.val()){s.clear()}else{s.options.$target.empty();s.search()}},300);this.toggleClear()}},deactivate:function(){this.$element.val("");if(!e.fn.uls.Constructor.prototype.isMobile()){this.$element.focus()}this.toggleClear();this.autofill()},clear:function(){this.deactivate();this.$element.trigger("searchclear.uls")},toggleClear:function(){if(!this.$clear.length){return}if(this.$element.val()){this.$clear.show()}else{this.$clear.hide()}},search:function(){var t,n=e.trim(this.$element.val()),r=e.uls.data.getLanguagesByScriptGroup(this.options.languages),i,s,o;this.resultCount=0;for(i in r){t=r[i];t.sort(e.uls.data.sortByAutonym);for(s=0;s<t.length;s++){o=t[s];if(n===""||this.filter(o,n)){if(this.resultCount===0){this.autofill(o)}if(n.toLowerCase()===o){this.selectedLanguage=o}if(this.render(o)){this.resultCount++}}}}if(!this.resultCount&&this.options.searchAPI&&n){this.searchAPI(n)}else{this.resultHandler(n)}},searchAPI:function(t){var n=this;e.get(n.options.searchAPI,{search:t},function(r){e.each(r.languagesearch,function(e,t){if(n.resultCount===0){n.autofill(e,t)}if(n.render(e)){n.resultCount++}});n.resultHandler(t)})},resultHandler:function(e){if(this.resultCount===0){this.$suggestion.val("");this.$element.trigger("noresults.uls",e)}else{this.$element.trigger("resultsfound.uls",[e,this.resultCount])}},autofill:function(t,n){if(!this.$suggestion.length){return}if(!this.$element.val()){this.$suggestion.val("");return}this.selectedLanguage=t;n=n||this.options.languages[t];if(!n){return}var i,s=this.$element.val(),o=s+n.substring(s.length,n.length);if(o.toLowerCase()!==n.toLowerCase()){i=e.uls.data.getAutonym(t)||"";o=s+i.substring(s.length,i.length);if(o!==i){o=""}}if(!r(s,o)){o=""}this.$suggestion.val(o)},render:function(e){var t=this.options.$target;if(!t){return false}return t.append(e)},escapeRegex:function(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$\|#\s]/g,"\\$&")},filter:function(t,n){var r=new RegExp("^"+this.escapeRegex(n),"i"),i=this.options.languages[t];return r.test(i)||r.test(e.uls.data.getAutonym(t))||r.test(t)||r.test(e.uls.data.getScript(t))},eventSupported:function(e){var t=e in this.$element;if(!t){this.$element.setAttribute(e,"return;");t=typeof this.$element[e]==="function"}return t}};e.fn.languagefilter=function(n){return this.each(function(){var r=e(this),i=r.data("languagefilter"),s=typeof n==="object"&&n;if(!i){r.data("languagefilter",i=new t(this,s))}if(typeof n==="string"){i[n]()}})};e.fn.languagefilter.defaults={$target:null,searchAPI:null,languages:null,onSelect:null};e.fn.languagefilter.Constructor=t})(jQuery);(function(e){"use strict";var t,n;t='<div class="twelve columns uls-no-results-view hide">		<h2 data-i18n="uls-no-results-found" class="eleven columns offset-by-one uls-no-results-found-title">		No results found		</h2>		<div id="uls-no-found-more" class="uls-no-found-more">			<div class="ten columns offset-by-one">				<p>					<span data-i18n="uls-search-help">You can search by language name, 					script name, ISO code of language or 					you can browse by region:</span>					<a class="uls-region-link" data-i18n="uls-region-AM" data-region="AM">America</a>, 					<a class="uls-region-link" data-i18n="uls-region-EU" data-region="EU">Europe</a>, 					<a class="uls-region-link" data-i18n="uls-region-ME" data-region="ME">Middle East</a>, 					<a class="uls-region-link" data-i18n="uls-region-AF" data-region="AF">Africa</a>, 					<a class="uls-region-link" data-i18n="uls-region-AS" data-region="AS">Asia</a>, 					<a class="uls-region-link" data-i18n="uls-region-PA" data-region="PA">Pacific</a>, 					<a class="uls-region-link" data-i18n="uls-region-WW" data-region="WW">Worldwide</a>.				</p>			</div>		</div>	</div>';n=function(n,r){this.$element=e(n);this.options=e.extend({},e.fn.lcd.defaults,r);this.$element.addClass("lcd");this.regionLanguages={};this.renderTimeout=null;this.cachedQuicklist=null;this.$element.append(e(t));this.$noResults=this.$element.children(".uls-no-results-view");this.render();this.listen()};n.prototype={constructor:n,append:function(t,n){var r=this,i,s;if(!this.options.languages[t]){return false}if(n){s=[n]}else{s=e.uls.data.getRegions(t)}if(e.inArray("WW",s)>-1){s=["WW"]}for(i=0;i<s.length;i++){this.regionLanguages[s[i]].push(t)}window.clearTimeout(this.renderTimeout);this.renderTimeout=window.setTimeout(function(){r.renderRegions()},50);return true},render:function(){var t,n=this,r=[],i={WW:"Worldwide",SP:"Special",AM:"America",EU:"Europe",ME:"Middle East",AS:"Asia",AF:"Africa",PA:"Pacific"};r.push(this.buildQuicklist());e.each(e.uls.data.regiongroups,function(s){n.regionLanguages[s]=[];if(e.inArray(s,n.options.showRegions)===-1){return}t=e("<div>").addClass("eleven columns offset-by-one uls-lcd-region-section hide").attr("id",s).append(e("<h3>").attr("data-i18n","uls-region-"+s).addClass("eleven columns uls-lcd-region-title").text(i[s]));r.push(t)});n.$element.append(r);this.i18n()},renderRegions:function(){var t=this,n,r=t.options.itemsPerColumn,i=4;this.$noResults.addClass("hide");this.$element.find(".uls-lcd-region-section").each(function(){var s=e(this),o=s.attr("id");if(s.is("#uls-lcd-quicklist")){return}s.children(".uls-language-block").remove();n=t.regionLanguages[o];if(!n||n.length===0){s.addClass("hide");return}t.renderRegion(s,n,r,i);s.removeClass("hide");t.regionLanguages[o]=[]})},renderRegion:function(t,n,r,i){var s,o,u,a,f,l=n.length,c=[],h=[],p=[];for(s=0;s<l;s++){f=false;a=e.uls.data.getScriptGroupOfLanguage(n[s+1]);o=l-s===1;if(s===0){u=e.uls.data.getScriptGroupOfLanguage(n[s])}else if(u!==a&&c.length>1){f=true}u=a;c.push(this.renderItem(n[s]));if(c.length>=r||o||f){h.push(e("<ul>").addClass("three columns").append(c));c=[];if(h.length>=i||o){p.push(e("<div>").addClass("row uls-language-block").append(h));h=[]}}}t.append(p)},renderItem:function(t){var n,r,i,s;r=this.options.languages[t];i=e.uls.data.getAutonym(t)||r||t;s=document.createElement("li");s.title=r;s.lang=t;s.dir=e.uls.data.getDir(t);s.setAttribute("data-code",t);n=document.createElement("a");n.appendChild(document.createTextNode(i));n.className="autonym";s.appendChild(n);if(this.options.languageDecorator){this.options.languageDecorator(e(n),t)}return s},i18n:function(){this.$element.find("[data-i18n]").i18n()},quicklist:function(){this.$element.find("#uls-lcd-quicklist").removeClass("hide")},buildQuicklist:function(){var t,n,r;if(this.cachedQuicklist!==null){return this.cachedQuicklist}if(e.isFunction(this.options.quickList)){this.options.quickList=this.options.quickList()}if(!this.options.quickList){this.cachedQuicklist=e([]);return this.cachedQuicklist}t=this.options.quickList;t=t.slice(0,16);t.sort(e.uls.data.sortByAutonym);n=e("<div>").addClass("eleven columns offset-by-one uls-lcd-region-section").attr("id","uls-lcd-quicklist");r=e("<h3>").attr("data-i18n","uls-common-languages").addClass("eleven columns uls-lcd-region-title").text("Common languages");n.append(r);this.renderRegion(n,t,4,4);r.i18n();this.cachedQuicklist=n;return this.cachedQuicklist},show:function(){if(!this.regionDivs){this.render()}},empty:function(){this.$element.find("#uls-lcd-quicklist").addClass("hide")},focus:function(){this.$element.focus()},noResults:function(){this.$noResults.removeClass("hide");if(this.$noResults.find(".uls-lcd-region-title").length){return}var e=this.buildQuicklist().clone();e.find("h3").data("i18n","uls-no-results-suggestion-title").text("You may be interested in:").i18n();this.$noResults.find("h2").after(e)},listen:function(){var t=this;if(this.options.clickhandler){this.$element.on("click",".row li",function(){t.options.clickhandler.call(this,e(this).data("code"))})}t.$element.scroll(function(){var n,r,i=e(this),s=i.position().top,o=i.height();r="WW";t.$element.find(".uls-lcd-region-section").each(function(){var t=e(this),n=t.position().top,i=t.height(),u=10;if(n-u<=s&&i>o){r=t.attr("id")}});n=e.uls.data.regiongroups[r];if(!e("#uls-region-"+n).hasClass("active")){e(".regionselector").removeClass("active");e("#uls-region-"+n).addClass("active")}})}};e.fn.lcd=function(t){return this.each(function(){var r=e(this),i=r.data("lcd"),s=typeof t==="object"&&t;if(!i){r.data("lcd",i=new n(this,s))}if(typeof t==="string"){i[t]()}})};e.fn.lcd.defaults={languages:null,showRegions:["WW","AM","EU","ME","AF","AS","PA"],itemsPerColumn:8,languageDecorator:null};e.fn.lcd.Constructor=n})(jQuery);(function(e){"use strict";var t;t=function(t,n){this.$element=e(t);this.options=e.extend({},e.fn.regionselector.defaults,n);this.$element.addClass("regionselector");this.regions=[];this.cache=null;this.regionGroup=this.$element.data("regiongroup");this.init();this.listen()};t.prototype={constructor:t,init:function(){var t=this.$element.data("region");this.regions=e.uls.data.getRegionsInGroup(this.regionGroup);if(t){this.regions.push(t)}},test:function(t){var n,r,i=e.uls.data.getRegions(t);for(r=0;r<this.regions.length;r++){n=this.regions[r];if(e.inArray(n,i)>=0){this.render(t,n);this.cache[t]=n;return}}},show:function(){var t,n,r,i,s,o=this.options.$target&&this.options.$target.$element,u=o&&o.parent(),a=o&&o.prev();if(o&&u){o.detach()}if(this.cache){t=null;for(t in this.cache){this.render(t,this.cache[t])}}else{this.cache={};n=e.uls.data.getLanguagesByScriptGroup(this.options.languages);for(r in e.uls.data.scriptgroups){i=n[r];if(!i){continue}i.sort(e.uls.data.sortByAutonym);for(s=0;s<i.length;s++){this.test(i[s])}}}if(o&&u){if(a){a.after(o)}else{u.append(o)}}if(this.options.success){this.options.success(this)}},render:function(e,t){var n=this.options.$target;if(!n){return}n.append(e,t)},listen:function(){this.$element.on("click",e.proxy(this.click,this))},click:function(){var t,n;if(this.$element.hasClass("active")){return}t=this.options.$target.$element;n=t.find("#"+this.regions[0]);t.scrollTop(n.offset().top-t.offset().top+t.scrollTop());e(".regionselector").removeClass("active");if(this.regionGroup){this.$element.addClass("active")}}};e.fn.regionselector=function(n){return this.each(function(){var r=e(this),i=r.data("regionselector"),s=typeof n==="object"&&n;if(!i){r.data("regionselector",i=new t(this,s))}if(typeof n==="string"){i[n]()}})};e.fn.regionselector.defaults={$target:null,success:null,noresults:null,languages:null};e.fn.regionselector.Constructor=t})(jQuery)

@@ -1,198 +0,0 @@ 

- /**

-  * jQuery region filter plugin.

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- ( function ( $ ) {

- 	'use strict';

- 

- 	/* RegionSelector plugin definition */

- 

- 	var RegionSelector;

- 

- 	/**

- 	 * Region selector is a language selector based on regions.

- 	 * Usage: $( 'jqueryselector' ).regionselector( options );

- 	 * The attached element should have data-regiongroup attribute

- 	 * that defines the regiongroup for the selector.

- 	 */

- 	RegionSelector = function ( element, options ) {

- 		this.$element = $( element );

- 		this.options = $.extend( {}, $.fn.regionselector.defaults, options );

- 		this.$element.addClass( 'regionselector' );

- 		this.regions = [];

- 		this.cache = null;

- 		this.regionGroup = this.$element.data( 'regiongroup' );

- 		this.init();

- 		this.listen();

- 	};

- 

- 	RegionSelector.prototype = {

- 		constructor: RegionSelector,

- 

- 		init: function () {

- 			var region = this.$element.data( 'region' );

- 			this.regions = $.uls.data.getRegionsInGroup( this.regionGroup );

- 

- 			if ( region ) {

- 				this.regions.push( region );

- 			}

- 		},

- 

- 		test: function ( langCode ) {

- 			var region, i,

- 				langRegions = $.uls.data.getRegions( langCode );

- 

- 			for ( i = 0; i < this.regions.length; i++ ) {

- 				region = this.regions[i];

- 

- 				if ( $.inArray( region, langRegions ) >= 0 ) {

- 					this.render( langCode, region );

- 					this.cache[langCode] = region;

- 

- 					return;

- 				}

- 			}

- 		},

- 

- 		show: function () {

- 			var result, languagesByScriptGroup, scriptGroup, languages, i,

- 				$element = this.options.$target && this.options.$target.$element,

- 				$parent = $element && $element.parent(),

- 				$prev = $element && $element.prev();

- 

- 			if ( $element && $parent ) {

- 				// Avoid reflows while adding new elements to the list

- 				// Use .detach() to keep jQuery events and data associated with elements

- 				$element.detach();

- 			}

- 

- 			if ( this.cache ) {

- 				// If the result cache is present, render the results from there.

- 				//noinspection JSUnusedAssignment

- 				result = null;

- 

- 				for ( result in this.cache ) {

- 					this.render( result, this.cache[result] );

- 				}

- 			} else {

- 				this.cache = {};

- 				// Get the languages grouped by script group

- 				languagesByScriptGroup = $.uls.data.getLanguagesByScriptGroup( this.options.languages );

- 

- 				// Make sure that we go by the original order

- 				// of script groups

- 				for ( scriptGroup in $.uls.data.scriptgroups ) {

- 					// Get the languages for the script group

- 					languages = languagesByScriptGroup[scriptGroup];

- 

- 					// It's possible that some script groups are missing

- 					if ( !languages ) {

- 						continue;

- 					}

- 

- 					// Sort it based on autonym

- 					languages.sort( $.uls.data.sortByAutonym );

- 

- 					for ( i = 0; i < languages.length; i++ ) {

- 						// Check whether it belongs to the region

- 						this.test( languages[i] );

- 					}

- 				}

- 			}

- 

- 			if ( $element && $parent ) {

- 				// Restore the element to where we removed it from

- 				if ( $prev ) {

- 					$prev.after( $element );

- 				} else {

- 					$parent.append( $element );

- 				}

- 			}

- 

- 			if ( this.options.success ) {

- 				this.options.success( this );

- 			}

- 		},

- 

- 		render: function ( langCode, region ) {

- 			var $target = this.options.$target;

- 

- 			if ( !$target ) {

- 				return;

- 			}

- 

- 			$target.append( langCode, region );

- 		},

- 

- 		listen: function () {

- 			this.$element.on( 'click', $.proxy( this.click, this ) );

- 		},

- 

- 		click: function () {

- 			var $list, $firstTargetRegion;

- 

- 			// Don't do anything if a region is selected already

- 			if ( this.$element.hasClass( 'active' ) ) {

- 				return;

- 			}

- 

- 			$list = this.options.$target.$element;

- 			$firstTargetRegion = $list.find( '#' + this.regions[0] );

- 

- 			// Scroll to appropriate area

- 			$list.scrollTop(

- 				$firstTargetRegion.offset().top - $list.offset().top + $list.scrollTop()

- 			);

- 

- 			// Make the selected region (and it only) active

- 			$( '.regionselector' ).removeClass( 'active' );

- 

- 			if ( this.regionGroup ) {

- 				// if there is a region group, make it active.

- 				this.$element.addClass( 'active' );

- 			}

- 		}

- 	};

- 

- 	/* RegionSelector plugin definition */

- 

- 	$.fn.regionselector = function ( option ) {

- 		return this.each( function () {

- 			var $this = $( this ),

- 				data = $this.data( 'regionselector' ),

- 				options = typeof option === 'object' && option;

- 

- 			if ( !data ) {

- 				$this.data( 'regionselector', ( data = new RegionSelector( this, options ) ) );

- 			}

- 

- 			if ( typeof option === 'string' ) {

- 				data[option]();

- 			}

- 		} );

- 	};

- 

- 	$.fn.regionselector.defaults = {

- 		$target: null, // Where to render the results

- 		success: null, // callback if any results found.

- 		noresults: null, // callback when no results to show

- 		languages: null

- 	};

- 

- 	$.fn.regionselector.Constructor = RegionSelector;

- } ( jQuery ) );

@@ -10,11 +10,6 @@ 

      <link rel='stylesheet' media="screen" href='https://fonts.googleapis.com/css?family=Montserrat' />

      <link rel="stylesheet" type="text/css" href="${path}/static/css/font-awesome.css" />

      

-     <!-- language selector -->

-     <link rel="stylesheet" type="text/css" href="${path}/static/css/jquery.uls.css" />

-     <link rel="stylesheet" type="text/css" href="${path}/static/css/jquery.uls.grid.css" />

-     <link rel="stylesheet" type="text/css" href="${path}/static/css/jquery.uls.lcd.css" />

- 

      <!-- use RTL css for specific languages -->

      <link py:if="lang in ('ar', 'bal', 'fa', 'he')" rel="stylesheet" type="text/css" media="all" href="${path}/static/css/bootstrap-rtl.css" />

  

@@ -91,14 +91,7 @@ 

                      </div>

                      <div class="col-md-3">

                          <div class="widget-body">

-                             <div class="pull-left language-header">

-                               <span class="active uls-trigger lang-dropdown">${_('Change Language')}</span>

-                                 <form action="" method="GET" style="visibility:hidden" id="langSelect" class="lang-dropdown">

-                                   <input type="hidden" name="lang" id="selectedLang" value="" />

-                         <!-- Allow uls script to change language through legacy system -->

-                                   <input type="submit" value="${_('OK')}" />

-                                 </form>

-                               </div>

+                            <xi:include href="../templates/translations.html" />

                          </div>

                      </div>

                  </div> <!-- /row of widgets -->

@@ -13,14 +13,6 @@ 

      <script type="text/javascript" src="${path}/static/js/bootstrap.min.js"></script>

      <script type="text/javascript" src="${path}/static/js/regulations.js"></script>

  

-     <script type="text/javascript" src="${path}/static/js/jquery.uls.data.js"></script>

- 	  <script type="text/javascript" src="${path}/static/js/jquery.uls.data.utils.js"></script>

- 	  <script type="text/javascript" src="${path}/static/js/jquery.uls.lcd.js"></script>

- 	  <script type="text/javascript" src="${path}/static/js/jquery.uls.languagefilter.js"></script>

- 	  <script type="text/javascript" src="${path}/static/js/jquery.uls.regionfilter.js"></script>

- 	  <script type="text/javascript" src="${path}/static/js/jquery.uls.core.js"></script>

-     <xi:include href="../templates/translations.html" />

- 

      <!--[if lt IE 9]>

      <script type="text/javascript" src="${path}/static/js/html5shiv.js"></script>

      <script type="text/javascript" src="${path}/static/js/respond.min.js"></script>

@@ -549,7 +549,29 @@ 

    padding-left: 2px;

  }

  .language-header {

-   margin-top: 43px;

+   margin-top: 29px;

+ }

+ .language-menu ul {

+   column-count: 3;

+   column-gap: 3em;

+   margin: 1.5em;

+ }

+ 

+ @media (min-width:992px) {

+   .language-menu {

+     width: 97rem;

+   }

+   .language-menu ul {

+     column-count: 5;

+   }

+ }

+ @media (min-width:1200px) {

+   .language-menu {

+     width: 117rem;

+   }

+   .language-menu ul {

+     column-count: 5;

+   }

  }

  .btn-topmargin {

    margin-top: 10px;

@@ -1,75 +0,0 @@ 

- .uls-compact .uls-icon-close,

- .uls-compact .uls-title-region,

- .uls-compact .uls-map-block,

- .uls-compact #uls-settings-block {

- 	display: none !important;

- }

- 

- .uls-compact.uls-menu {

- 	border-radius: 0;

- }

- 

- .uls-compact .uls-search {

- 	background: white;

- 	border-top: none;

- 	padding: 0.8em 0;

- 	border-bottom-width: 1px;

- 	border-bottom-style: solid;

- 	border-bottom-color: #DDD;

- }

- 

- .uls-compact .uls-filterinput,

- .uls-compact .uls-filterinput:focus {

- 	background-color: transparent;

- 	border: none;

- 	box-shadow: none;

- 	outline: none;

- 	font-size: 18px;

- 	left: 0;

- }

- 

- .uls-compact .uls-language-list {

- 	background: #FCFCFC;

- 	height: 20em;

- }

- 

- .uls-compact .uls-search-label {

- 	background-size: 25px;

- 	height: 26px;

- 	width: 26px;

- 	float: right;

- 	opacity: 0.8;

- }

- 

- .uls-compact .uls-languagefilter-clear {

- 	margin-left: 0;

- }

- 

- .uls-compact .uls-title-region a {

- 	color: #777;

- 	display: inline-block;

- 	margin: 15px 0 5px 19px;

- 	cursor: pointer;

- 	padding: 6px;

- 	text-decoration: none;

- 	font-size: 14px;

- 	border: 1px solid transparent;

- }

- 

- .uls-compact .uls-title-region a:hover {

- 	color: #252525;

- 	background: #F0F0F0;

- 	border: 1px solid #DDD;

- 	border-radius: 3px;

- }

- 

- .uls-compact .uls-title-region a:before {

- 	display: inline-block;

- 	width: 0;

- 	height: 0;

- 	border-right: 4px solid #777;

- 	border-top: 4px solid transparent;

- 	border-bottom: 4px solid transparent;

- 	content: "";

- 	margin: 0 6px 0 0;

- }

@@ -1,260 +0,0 @@ 

- .uls-trigger {

- 	/* @embed */

- 	background: transparent url('/static/images/icon-language.png') no-repeat scroll left center;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/icon-language.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/icon-language.svg');

- 	padding-left: 30px;

- }

- 

- .uls-menu {

- 	position: absolute;

- 	z-index: 1000;

- 	display: none;

- 	margin-top: 1px;

- 	/* Styling */

- 	background-color: #ffffff;

- 	border: 1px solid #ccc;

- 	border: 1px solid rgba(0, 0, 0, 0.2);

- 	border-radius: 5px;

- 	-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);

- 	-moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);

- 	box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);

- 	-webkit-background-clip: padding-box;

- 	-moz-background-clip: padding;

- 	background-clip: padding-box;

- }

- 

- .uls-wide {

- 	min-width: 715px;

- 	width: 45%;

- }

- 

- .uls-title-region a {

- 	padding-left: 15px;

- }

- 

- .uls-menu .uls-title {

- 	font-weight: normal;

- 	border: none;

- 	padding-top: 1.25em;

- 	padding-left: 15px;

- 	padding-bottom: 3px;

- 	font-size: 18pt;

- 	line-height: 1.25em;

- 	color: #555;

- }

- 

- .uls-menu .uls-no-results-found-title {

- 	font-size: 16pt;

- 	font-weight: bold;

- 	line-height: 1.5em;

- 	padding-left: 6px;

- 	padding-top: 10px;

- 	margin-top: 0;

- 	margin-bottom: 15px;

- 	border-bottom: none;

- 	color: #555;

- }

- 

- .uls-menu .uls-lcd-region-section .uls-lcd-region-title {

- 	color: #777;

- 	font-size: 14pt;

- 	font-weight: lighter;

- 	line-height: 1.5em;

- 	padding-left: 0;

- 	margin-top: 0;

- 	margin-bottom: 10px;

- 	border-bottom: none;

- }

- 

- .uls-worldmap {

- 	/* @embed */

- 	background: transparent url('/static/images/world_map.png') no-repeat scroll right top;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/world_map.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/world_map.svg');

- 	background-size: 100%;

- }

- 

- div.uls-region {

- 	cursor: pointer;

- 	padding: 0;

- 	margin: 0;

- 	height: 120px;

- 	border-bottom-color: transparent;

- 	border-bottom-style: solid;

- 	border-bottom-width: 2px;

- }

- 

- .uls-worldmap .uls-region { /* The map doesn't flip */

- 	/* @noflip */

- 	float: left;

- }

- 

- .uls-region a {

- 	bottom: 2px;

- 	left: 2px;

- 	padding: 0;

- 	position: absolute;

- 	font-size: 13px;

- 	line-height: 1.2em;

- 	text-decoration: none;

- 	overflow: hidden;

- 	text-overflow: ellipsis;

- 	width: 99%;

- }

- 

- .uls-region:hover {

- 	/*Cross-browser background transparency*/

- 	background: #3366bb;

- 	background: rgba(51, 102, 187, 0.1);

- 	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#253366bb, endColorstr=#253366bb );

- 	-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#253366bb, endColorstr=#253366bb)";

- }

- 

- .uls-map-block .active {

- 	border-bottom-color: #3366bb;

- 	border-bottom-style: solid;

- }

- 

- .uls-menu .row .uls-map-block {

- 	top: 1px;

- 	margin-right: 0;

- 	padding-right: 0;

- 	float: right;

- 	overflow: hidden;

- 	opacity: 0.7;

- 	-moz-transition: opacity 0.2s linear;

- 	-o-transition: opacity 0.2s linear;

- 	-webkit-transition: opacity 0.2s linear;

- 	transition: opacity 0.2s linear;

- }

- 

- .uls-map-block a {

- 	color: #333;

- 	opacity: 0;

- 	-moz-transition: opacity 0.15s linear;

- 	-o-transition: opacity 0.15s linear;

- 	-webkit-transition: opacity 0.15s linear;

- 	transition: opacity 0.15s linear;

- }

- 

- .uls-menu .uls-map-block:hover,

- .uls-menu .uls-map-block:hover a {

- 	opacity: 1;

- 	color: #333;

- }

- 

- .uls-map-block .uls-region-1 {

- 	border-color: transparent;

- }

- 

- .uls-map-block:hover .active {

- 	border-color: #3366bb;

- }

- 

- .uls-map-block .active a {

- 	font-weight: bold;

- }

- 

- .uls-icon-close {

- 	/* @embed */

- 	background: transparent url('/static/images/close.png') no-repeat scroll center center;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/close.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/close.svg');

- 	float: right;

- 	padding: 15px;

- 	cursor: pointer;

- }

- 

- .uls-menu .uls-languagefilter {

- 	background-color: transparent;

- 	border: 1px solid #c9c9c9;

- 	border-radius: 2px 2px 2px 2px;

- 	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) inset;

- 	color: #333;

- 	display: block;

- 	padding: 6px;

- 	-moz-transition: border 0.15s linear 0s;

- 	-o-transition: border 0.15s linear 0s;

- 	-webkit-transition: border 0.15s linear 0s;

- 	transition: border 0.15s linear 0s;

- }

- 

- .uls-menu .uls-languagefilter:focus {

- 	border: 1px solid #3366bb;

- }

- 

- .uls-menu .uls-search {

- 	position: relative;

- 	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F0F0F0', endColorstr='#FBFBFB');

- 	background: #f8f8f8;

- 	background: -webkit-gradient(linear, left top, left bottom, from(#F0F0F0), to(#FBFBFB));

- 	background: -webkit-linear-gradient(top, #F0F0F0, #FBFBFB);

- 	background: -moz-linear-gradient(top, #F0F0F0, #FBFBFB);

- 	background: -o-linear-gradient(top, #F0F0F0, #FBFBFB);

- 	background: linear-gradient(#F0F0F0, #FBFBFB);

- 	border-top-color: #AAA;

- 	border-top-style: solid;

- 	border-top-width: 1px;

- 	padding: 0.8em 0;

- 	border-bottom-width: 1px;

- 	border-bottom-style: solid;

- 	border-bottom-color: #DDD;

- }

- 

- .uls-menu .uls-search-label {

- 	/* @embed */

- 	background: transparent url('/static/images/search.png') no-repeat scroll right center;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/search.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/search.svg');

- 	background-size: 30px;

- 	height: 32px;

- 	width: 32px;

- 	float: right;

- }

- 

- .uls-menu .uls-languagefilter-clear {

- 	/* @embed */

- 	background: transparent url('/static/images/clear.png') no-repeat scroll left center;

- 	/* @embed */

- 	background-image: -webkit-linear-gradient(transparent, transparent), url('/static/images/clear.svg');

- 	/* @embed */

- 	background-image: linear-gradient(transparent, transparent), url('/static/images/clear.svg');

- 	cursor: pointer;

- 	height: 32px;

- 	position: absolute;

- 	width: 32px;

- 	margin-left: -32px;

- }

- 

- .uls-menu .uls-filterinput {

- 	position: absolute;

- 	top: 0;

- 	left: 0;

- 	font-size: 14px;

- 	height: 32px;

- 	width: 100%;

- 	text-align: left;

- }

- 

- .uls-menu .uls-filtersuggestion {

- 	padding: 6px;

- 	background-color: white;

- 	color: #888;

- 	border: 1px transparent;

- 	border-radius: 2px 2px 2px 2px;

- 	box-shadow: 0 1px 2px transparent inset;

- 	left: 1px;

- }

- 

- .uls-menu .uls-search-input-block {

- 	position: relative;

- }

@@ -1,315 +0,0 @@ 

- /* Generated using Foundation http://foundation.zurb.com/docs/grid.php */

- /* Global Reset & Standards ---------------------- */

- .grid * {

- 	-webkit-box-sizing: border-box;

- 	-moz-box-sizing: border-box;

- 	box-sizing: border-box;

- }

- 

- /* Misc ---------------------- */

- .grid .left {

- 	float: left;

- }

- 

- .grid .right {

- 	float: right;

- }

- 

- .grid .text-left {

- 	text-align: left;

- }

- 

- .grid .text-right {

- 	text-align: right;

- }

- 

- .grid .text-center {

- 	text-align: center;

- }

- 

- .grid .hide {

- 	display: none;

- }

- 

- .grid .highlight {

- 	background: #ffff99;

- }

- 

- /* The Grid ---------------------- */

- .grid .row {

- 	width: 100%;

- 	max-width: none;

- 	min-width: 600px;

- 	margin: 0 auto;

- }

- 

- .grid .row .row {

- 	width: auto;

- 	max-width: none;

- 	min-width: 0;

- 	margin: 0 -5px;

- }

- 

- .grid .row.collapse .column,

- .grid .row.collapse .columns {

- 	padding: 0;

- }

- 

- .grid .row .row {

- 	width: auto;

- 	max-width: none;

- 	min-width: 0;

- 	margin: 0 -5px;

- }

- 

- .grid .row .row.collapse {

- 	margin: 0;

- }

- 

- .grid .column, .grid .columns {

- 	float: left;

- 	min-height: 1px;

- 	padding: 0 5px;

- 	position: relative;

- }

- 

- .grid .column.centered, .grid .columns.centered {

- 	float: none;

- 	margin: 0 auto;

- }

- 

- .grid .row .one {

- 	width: 8.333%;

- }

- 

- .grid .row .two {

- 	width: 16.667%;

- }

- 

- .grid .row .three {

- 	width: 25%;

- }

- 

- .grid .row .four {

- 	width: 33.333%;

- }

- 

- .grid .row .five {

- 	width: 41.667%;

- }

- 

- .grid .row .six {

- 	width: 50%;

- }

- 

- .grid .row .seven {

- 	width: 58.333%;

- }

- 

- .grid .row .eight {

- 	width: 66.667%;

- }

- 

- .grid .row .nine {

- 	width: 75%;

- }

- 

- .grid .row .ten {

- 	width: 83.333%;

- }

- 

- .grid .row .eleven {

- 	width: 91.667%;

- }

- 

- .grid .row .twelve {

- 	width: 100%;

- }

- 

- .grid .row .offset-by-one {

- 	margin-left: 8.333%;

- }

- 

- .grid .row .offset-by-two {

- 	margin-left: 16.667%;

- }

- 

- .grid .row .offset-by-three {

- 	margin-left: 25%;

- }

- 

- .grid .row .offset-by-four {

- 	margin-left: 33.333%;

- }

- 

- .grid .row .offset-by-five {

- 	margin-left: 41.667%;

- }

- 

- .grid .row .offset-by-six {

- 	margin-left: 50%;

- }

- 

- .grid .row .offset-by-seven {

- 	margin-left: 58.333%;

- }

- 

- .grid .row .offset-by-eight {

- 	margin-left: 66.667%;

- }

- 

- .grid .row .offset-by-nine {

- 	margin-left: 75%;

- }

- 

- .grid .row .offset-by-ten {

- 	margin-left: 83.333%;

- }

- 

- .grid .push-two {

- 	left: 16.667%;

- }

- 

- .grid .pull-two {

- 	right: 16.667%;

- }

- 

- .grid .push-three {

- 	left: 25%;

- }

- 

- .grid .pull-three {

- 	right: 25%;

- }

- 

- .grid .push-four {

- 	left: 33.333%;

- }

- 

- .grid .pull-four {

- 	right: 33.333%;

- }

- 

- .grid .push-five {

- 	left: 41.667%;

- }

- 

- .grid .pull-five {

- 	right: 41.667%;

- }

- 

- .grid .push-six {

- 	left: 50%;

- }

- 

- .grid .pull-six {

- 	right: 50%;

- }

- 

- .grid .push-seven {

- 	left: 58.333%;

- }

- 

- .grid .pull-seven {

- 	right: 58.333%;

- }

- 

- .grid .push-eight {

- 	left: 66.667%;

- }

- 

- .grid .pull-eight {

- 	right: 66.667%;

- }

- 

- .grid .push-nine {

- 	left: 75%;

- }

- 

- .grid .pull-nine {

- 	right: 75%;

- }

- 

- .grid .push-ten {

- 	left: 83.333%;

- }

- 

- .grid .pull-ten {

- 	right: 83.333%;

- }

- 

- /* Nicolas Gallagher's micro clearfix */

- .grid .row {

- 	*zoom: 1;

- }

- 

- .grid .row:before, .grid .row:after {

- 	content: "";

- 	display: table;

- }

- 

- .grid .row:after {

- 	clear: both;

- }

- 

- /* Block Grids ---------------------- */

- /* These are 2-up, 3-up, 4-up and 5-up ULs, suited

-  for repeating blocks of content. Add 'mobile' to

-  them to switch them just like the layout grid

-  (one item per line) on phones

- 

-  For IE7/8 compatibility block-grid items need to be

-  the same height. You can optionally uncomment the

-  lines below to support arbitrary height, but know

-  that IE7/8 do not support :nth-child.

-  -------------------------------------------------- */

- .grid .block-grid {

- 	display: block;

- 	overflow: hidden;

- 	padding: 0;

- }

- 

- .grid .block-grid > li {

- 	display: block;

- 	height: auto;

- 	float: left;

- }

- 

- .grid .block-grid.two-up {

- 	margin: 0 -15px;

- }

- 

- .grid .block-grid.two-up > li {

- 	width: 50%;

- 	padding: 0 15px 15px;

- }

- 

- /* .block-grid.two-up>li:nth-child(2n+1) {clear: left;} */

- .grid .block-grid.three-up {

- 	margin: 0 -12px;

- }

- 

- .grid .block-grid.three-up > li {

- 	width: 33.33%;

- 	padding: 0 12px 12px;

- }

- 

- /* .block-grid.three-up>li:nth-child(3n+1) {clear: left;} */

- .grid .block-grid.four-up {

- 	margin: 0 -10px;

- }

- 

- .grid .block-grid.four-up > li {

- 	width: 25%;

- 	padding: 0 10px 10px;

- }

- 

- /* .block-grid.four-up>li:nth-child(4n+1) {clear: left;} */

- .grid .block-grid.five-up {

- 	margin: 0 -8px;

- }

- 

- .grid .block-grid.five-up > li {

- 	width: 20%;

- 	padding: 0 8px 8px;

- }

@@ -1,86 +0,0 @@ 

- .uls-lcd-region-section ul li:hover {

- 	background-color: #eaeff7;

- }

- 

- .uls-lcd-region-section {

- 	margin-top: 10px;

- }

- 

- /* Language list */

- .uls-language-list {

- 	height: 17em;

- 	overflow: auto;

- 	width: auto;

- }

- 

- .uls-language-block ul {

- 	margin: 0 0 1.5em;

- }

- 

- .uls-language-list ul li {

- 	cursor: pointer;

- 	font-weight: normal;

- 	overflow: hidden;

- 	white-space: nowrap;

- 

- 	/*

- 	 * Some languages have long names for various reasons and we still want

- 	 * them to appear on one line.

- 	 * To make it work correctly, the directionality must be set correctly

- 	 * on the item level.

- 	 */

- 	text-overflow: ellipsis;

- 

- 	/*

- 	 * The directionality (ltr/rtl) for each list item is set dynamically

- 	 * as HTML attributes in JavaScript. Setting directionality also applies

- 	 * alignment, but a list with mixed alignment is hard to read.

- 	 * All items are therefore explicitly aligned to the left, including names

- 	 * of right-to-left languages in left-to-right environment and vice versa.

- 	 * As long as the directionality of the item is set correctly, the text

- 	 * is readable.

- 	 */

- 	text-align: left;

- 

- 	/*

- 	 * We don't want any visible bullets in this list.

- 	 */

- 	list-style-image: none;

- 	list-style-type: none;

- }

- 

- .uls-language-list strong {

- 	text-decoration: underline;

- }

- 

- .uls-language-list a {

- 	font-weight: normal;

- 	text-decoration: none;

- 	color: #3366bb;

- 	font-size: 14px;

- 	line-height: 1.6em;

- }

- 

- .uls-language-block {

- 	width: 100%;

- }

- 

- .uls-no-results-view {

- 	color: #555;

- 	height: 100%;

- }

- 

- .uls-no-found-more {

- 	font-size: 0.9em;

- 	background: #F8F8F8;

- 	width: 100%;

- 	margin-top: 1.6em;

- 	line-height: 1.6em;

- 	position: absolute;

- 	bottom: 0;

- 	left: 0;

- }

- 

- .uls-no-found-more a {

- 	cursor: pointer;

- }

@@ -1,319 +0,0 @@ 

- @media only screen and (max-width: 767px) {

- 

- 	.uls-mobile.uls-menu {

- 		width: 95%;

- 		left: 2.5%;

- 	}

- 

- 	.uls-mobile .uls-language-list {

- 		-webkit-overflow-scrolling: touch;

- 	}

- 

- 	.uls-mobile .uls-language-block {

- 		padding-left: 15px !important;

- 	}

- 

- 	.uls-mobile .uls-language-block ul {

- 		min-height: 14em;

- 	}

- 

- 	.uls-mobile .uls-language-block a {

- 		font-size: 16px;

- 		line-height: 1.7em;

- 	}

- 

- 	.uls-mobile div.uls-region {

- 		width: 33% !important;

- 		float: left !important;

- 	}

- 

- 	.uls-mobile .uls-map-block a,

- 	.uls-mobile .uls-map-block {

- 		opacity: 1 !important;

- 	}

- 

- 	.uls-mobile .row {

- 		width: auto;

- 		min-width: 0;

- 		margin-left: 0;

- 		margin-right: 0;

- 	}

- 

- 	.uls-mobile .column,

- 	.uls-mobile .columns {

- 		width: auto !important;

- 		float: none;

- 	}

- 

- 	.uls-mobile .column:last-child,

- 	.uls-mobile .columns:last-child {

- 		float: none;

- 	}

- 

- 	.uls-mobile [class*="column"] + [class*="column"]:last-child {

- 		float: none;

- 	}

- 

- 	.uls-mobile .column:before,

- 	.uls-mobile .uls-mobile .columns:before,

- 	.uls-mobile .column:after,

- 	.columns:after {

- 		content: "";

- 		display: table;

- 	}

- 

- 	.uls-mobile .column:after,

- 	.uls-mobile .columns:after {

- 		clear: both;

- 	}

- 

- 	.uls-mobile .offset-by-one,

- 	.uls-mobile .offset-by-two,

- 	.uls-mobile .offset-by-three,

- 	.uls-mobile .offset-by-four,

- 	.uls-mobile .offset-by-five,

- 	.uls-mobile .offset-by-six,

- 	.uls-mobile .offset-by-seven,

- 	.uls-mobile .offset-by-eight,

- 	.uls-mobile .offset-by-nine,

- 	.uls-mobile .offset-by-ten {

- 		margin-left: 0 !important;

- 	}

- 

- 	.uls-mobile .push-two,

- 	.uls-mobile .push-three,

- 	.uls-mobile .push-four,

- 	.uls-mobile .push-five,

- 	.uls-mobile .push-six,

- 	.uls-mobile .push-seven,

- 	.uls-mobile .push-eight,

- 	.uls-mobile .push-nine,

- 	.uls-mobile .push-ten {

- 		left: auto;

- 	}

- 

- 	.uls-mobile .pull-two,

- 	.uls-mobile .pull-three,

- 	.uls-mobile .pull-four,

- 	.uls-mobile .pull-five,

- 	.uls-mobile .pull-six,

- 	.uls-mobile .pull-seven,

- 	.uls-mobile .pull-eight,

- 	.uls-mobile .pull-nine,

- 	.uls-mobile .pull-ten {

- 		right: auto;

- 	}

- 

- 	/* Mobile 4-column Grid */

- 	.uls-mobile .row .mobile-one {

- 		width: 25% !important;

- 		float: left;

- 		padding: 0 4px;

- 	}

- 

- 	.uls-mobile .row .mobile-one:last-child {

- 		float: right;

- 	}

- 

- 	.uls-mobile .row.collapse .mobile-one {

- 		padding: 0;

- 	}

- 

- 	.uls-mobile .row .mobile-two {

- 		width: 50% !important;

- 		float: left;

- 		padding: 0 4px;

- 	}

- 

- 	.uls-mobile .row .mobile-two:last-child {

- 		float: right;

- 	}

- 

- 	.uls-mobile .row.collapse .mobile-two {

- 		padding: 0;

- 	}

- 

- 	.uls-mobile .row .mobile-three {

- 		width: 75% !important;

- 		float: left;

- 		padding: 0 4px;

- 	}

- 

- 	.uls-mobile .row .mobile-three:last-child {

- 		float: right;

- 	}

- 

- 	.uls-mobile .row.collapse .mobile-three {

- 		padding: 0;

- 	}

- 

- 	.uls-mobile .row .mobile-four {

- 		width: 100% !important;

- 		float: left;

- 		padding: 0 4px;

- 	}

- 

- 	.uls-mobile .row .mobile-four:last-child {

- 		float: right;

- 	}

- 

- 	.uls-mobile .row.collapse .mobile-four {

- 		padding: 0;

- 	}

- 

- 	.uls-mobile .push-one-mobile {

- 		left: 25%;

- 	}

- 

- 	.uls-mobile .pull-one-mobile {

- 		right: 25%;

- 	}

- 

- 	.uls-mobile .push-two-mobile {

- 		left: 50%;

- 	}

- 

- 	.uls-mobile .pull-two-mobile {

- 		right: 50%;

- 	}

- 

- 	.uls-mobile .push-three-mobile {

- 		left: 75%;

- 	}

- 

- 	.uls-mobile .pull-three-mobile {

- 		right: 75%;

- 	}

- }

- 

- /* Visibility Classes ---------------------- */

- /* Standard (large) display targeting */

- .uls-mobile .show-for-small,

- .uls-mobile .show-for-medium,

- .uls-mobile .show-for-medium-down,

- .uls-mobile .hide-for-large,

- .uls-mobile .hide-for-large-up,

- .uls-mobile .show-for-xlarge {

- 	display: none !important;

- }

- 

- .uls-mobile .hide-for-xlarge,

- .uls-mobile .show-for-large,

- .uls-mobile .show-for-large-up,

- .uls-mobile .hide-for-small,

- .uls-mobile .hide-for-medium,

- .uls-mobile .hide-for-medium-down {

- 	display: block !important;

- }

- 

- /* Very large display targeting */

- @media only screen and (min-width: 1441px) {

- 

- 	.uls-mobile .hide-for-small,

- 	.uls-mobile .hide-for-medium,

- 	.uls-mobile .hide-for-medium-down,

- 	.hide-for-large, .show-for-large-up,

- 	.show-for-xlarge {

- 		display: block !important;

- 	}

- 

- 	.show-for-small,

- 	.uls-mobile .show-for-medium,

- 	.uls-mobile .show-for-medium-down,

- 	.uls-mobile .show-for-large,

- 	.uls-mobile .hide-for-large-up,

- 	.uls-mobile .hide-for-xlarge {

- 		display: none !important;

- 	}

- }

- /* Medium display targeting */

- @media only screen and (max-width: 1279px) and (min-width: 768px) {

- 

- 	.uls-mobile .hide-for-small,

- 	.uls-mobile .show-for-medium,

- 	.uls-mobile .show-for-medium-down,

- 	.uls-mobile .hide-for-large,

- 	.uls-mobile .hide-for-large-up,

- 	.uls-mobile .hide-for-xlarge {

- 		display: block !important;

- 	}

- 

- 	.uls-mobile .show-for-small,

- 	.uls-mobile .hide-for-medium,

- 	.uls-mobile .hide-for-medium-down,

- 	.uls-mobile .show-for-large,

- 	.uls-mobile .show-for-large-up,

- 	.uls-mobile .show-for-xlarge {

- 		display: none !important;

- 	}

- }

- /* Small display targeting */

- @media only screen and (max-width: 767px) {

- 

- 	.uls-mobile .show-for-small,

- 	.uls-mobile .hide-for-medium,

- 	.uls-mobile .show-for-medium-down,

- 	.uls-mobile .hide-for-large,

- 	.uls-mobile .hide-for-large-up,

- 	.uls-mobile .hide-for-xlarge {

- 		display: block !important;

- 	}

- 	.uls-mobile .hide-for-small,

- 	.uls-mobile .show-for-medium,

- 	.uls-mobile .hide-for-medium-down,

- 	.uls-mobile .show-for-large,

- 	.uls-mobile .show-for-large-up,

- 	.uls-mobile .show-for-xlarge {

- 		display: none !important;

- 	}

- }

- 

- /* Orientation targeting */

- .uls-mobile .show-for-landscape,

- .uls-mobile .hide-for-portrait {

- 	display: block !important;

- }

- 

- .uls-mobile .hide-for-landscape,

- .uls-mobile .show-for-portrait {

- 	display: none !important;

- }

- 

- @media screen and (orientation: landscape) {

- 	.uls-mobile .show-for-landscape,

- 	.uls-mobile .hide-for-portrait {

- 		display: block !important;

- 	}

- 	.uls-mobile .hide-for-landscape,

- 	.uls-mobile .show-for-portrait {

- 		display: none !important;

- 	}

- }

- 

- @media screen and (orientation: portrait) {

- 	.uls-mobile .show-for-portrait,

- 	.uls-mobile .hide-for-landscape {

- 		display: block !important;

- 	}

- 	.uls-mobile .hide-for-portrait,

- 	.uls-mobile .show-for-landscape {

- 		display: none !important;

- 	}

- }

- 

- /* Touch-enabled device targeting */

- .uls-mobile .show-for-touch {

- 	display: none !important;

- }

- 

- .uls-mobile .hide-for-touch {

- 	display: block !important;

- }

- 

- .uls-mobile .touch .show-for-touch {

- 	display: block !important;

- }

- 

- .uls-mobile .touch .hide-for-touch {

- 	display: none !important;

- }

@@ -1,444 +0,0 @@ 

- /**

-  * Universal Language Selector

-  * ULS core component.

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- ( function ( $ ) {

- 	'use strict';

- 

- 	var template, ULS;

- 

- 	// Region numbers in id attributes also appear in the langdb.

- 	/*jshint multistr:true */

- 	template = '<div class="grid uls-menu uls-wide"> \

- 			<div class="row"> \

- 				<span id="uls-close" class="uls-icon-close"></span> \

- 			</div> \

- 			<div class="row"> \

- 				<div class="uls-title-region seven columns">\

- 					<h1 data-i18n="uls-select-language" class="uls-title">Select Language</h1>\

- 				</div>\

- 				<div class="five columns uls-map-block" id="uls-map-block">\

- 					<div class="row">\

- 						<div data-regiongroup="1" id="uls-region-1" class="three columns uls-region uls-region-1">\

- 							<a data-i18n="uls-region-WW">Worldwide</a>\

- 						</div>\

- 						<div class="nine columns">\

- 							<div class="row uls-worldmap">\

- 								<div data-regiongroup="2" id="uls-region-2" class="four columns uls-region">\

- 									<a data-i18n="uls-region-AM">America</a>\

- 								</div>\

- 								<div data-regiongroup="3" id="uls-region-3" class="four columns uls-region">\

- 									<a><span data-i18n="uls-region-EU">Europe</span><br>\

- 									<span data-i18n="uls-region-ME">Middle East</span><br>\

- 									<span data-i18n="uls-region-AF">Africa</span></a>\

- 								</div>\

- 								<div data-regiongroup="4" id="uls-region-4" class="four columns uls-region">\

- 									<a><span data-i18n="uls-region-AS">Asia</span><br>\

- 									<span data-i18n="uls-region-PA">Pacific</span></a>\

- 								</div>\

- 							</div>\

- 						</div>\

- 					</div>\

- 				</div>\

- 			</div>\

- 			<div id="search" class="row uls-search"> \

- 				<div class="one column">\

- 					<span class="uls-search-label"></span>\

- 				</div>\

- 				<div class="ten columns">\

- 					<div id="uls-search-input-block" class="uls-search-input-block">\

- 						<input type="text" class="uls-filterinput uls-filtersuggestion" id="uls-filtersuggestion" disabled="true"\

- 							autocomplete="off" /> <input type="text" class="uls-filterinput uls-languagefilter" id="uls-languagefilter"\

- 							data-clear="uls-languagefilter-clear" data-suggestion="uls-filtersuggestion"\

- 							placeholder="Language search" autocomplete="off" />\

- 					</div>\

- 				</div>\

- 				<div class="one column">\

- 					<span id="uls-languagefilter-clear" class="uls-languagefilter-clear"></span>\

- 				</div>\

- 			</div>\

- 			<div class="row uls-language-list"></div>\

- 			<div class="row" id="uls-settings-block"></div>\

- 		</div>';

- 	/*jshint multistr:false */

- 

- 	/**

- 	 * ULS Public class definition

- 	 */

- 	ULS = function ( element, options ) {

- 		this.$element = $( element );

- 		this.options = $.extend( {}, $.fn.uls.defaults, options );

- 		this.$menu = $( template );

- 		this.languages = this.options.languages;

- 

- 		for ( var code in this.languages ) {

- 			if ( $.uls.data.languages[code] === undefined ) {

- 				// Language is unknown to ULS.

- 				delete this.languages[code];

- 			}

- 		}

- 

- 		this.left = this.options.left;

- 		this.top = this.options.top;

- 		this.shown = false;

- 		this.initialized = false;

- 

- 		this.$languageFilter = this.$menu.find( '#uls-languagefilter' );

- 		this.$regionFilters = this.$menu.find( '.uls-region' );

- 		this.$resultsView = this.$menu.find( 'div.uls-language-list' );

- 

- 		this.render();

- 		this.listen();

- 		this.ready();

- 	};

- 

- 	ULS.prototype = {

- 		constructor: ULS,

- 

- 		/**

- 		 * A "hook" that runs after the ULS constructor.

- 		 * At this point it is not guaranteed that the ULS has its dimensions

- 		 * and that the languages lists are initialized.

- 		 *

- 		 * To use it, pass a function as the onReady parameter

- 		 * in the options when initializing ULS.

- 		 */

- 		ready: function () {

- 			if ( this.options.onReady ) {

- 				this.options.onReady.call( this );

- 			}

- 		},

- 

- 		/**

- 		 * A "hook" that runs after the ULS panel becomes visible

- 		 * by using the show method.

- 		 *

- 		 * To use it, pass a function as the onVisible parameter

- 		 * in the options when initializing ULS.

- 		 */

- 		visible: function () {

- 			if ( this.options.onVisible ) {

- 				this.options.onVisible.call( this );

- 			}

- 		},

- 

- 		/**

- 		 * Calculate the position of ULS

- 		 * Returns an object with top and left properties.

- 		 * @returns {Object}

- 		 * position is set by setting also window height and margin

- 		 */

- 		position: function () {

- 			var pos = $.extend( {}, this.$element.offset(), {

- 				height: this.$element[0].offsetHeight

- 			} );

- 			return {

- 				top: this.top !== undefined ? this.top : pos.top - (447+10),

- 				left: this.left !== undefined ? this.left : '25%'

- 			};

- 		},

- 

- 		/**

- 		 * Show the ULS window

- 		 */

- 		show: function () {

- 			this.$menu.css( this.position() );

- 

- 			if ( this.options.compact ) {

- 				this.$menu.addClass( 'uls-compact' );

- 			}

- 

- 			if ( !this.initialized ) {

- 				$( 'body' ).prepend( this.$menu );

- 				this.i18n();

- 

- 				// Initialize with a full search.

- 				// This happens on first time click of uls trigger.

- 				this.defaultSearch();

- 

- 				this.initialized = true;

- 			}

- 

- 			// hide any other visible ULS

- 			$( '.uls-menu' ).hide();

- 

- 			this.$menu.show();

- 			this.$menu.scrollIntoView();

- 			this.shown = true;

- 

- 			if ( !this.isMobile() ) {

- 				this.$languageFilter.focus();

- 			}

- 

- 			this.visible();

- 		},

- 

- 		i18n: function () {

- 			if ( $.i18n ) {

- 				this.$menu.find( '[data-i18n]' ).i18n();

- 				this.$languageFilter.prop( 'placeholder', $.i18n( 'uls-search-placeholder' ) );

- 			}

- 		},

- 

- 		defaultSearch: function () {

- 			this.$resultsView.lcd( 'empty' );

- 

- 			this.$regionFilters.regionselector( 'show' );

- 		},

- 

- 		/**

- 		 * Hide the ULS window

- 		 */

- 		hide: function () {

- 			this.$menu.hide();

- 			this.shown = false;

- 		},

- 

- 		/**

- 		 * Render the UI elements.

- 		 * Does nothing by default. Can be used for customization.

- 		 */

- 		render: function () {

- 			// Rendering stuff here

- 		},

- 

- 		/**

- 		 * Callback for no results found context.

- 		 */

- 		noresults: function () {

- 			$( '.regionselector' ).removeClass( 'active' );

- 			this.$resultsView.lcd( 'noResults' );

- 		},

- 

- 		/**

- 		 * callback for results found context.

- 		 */

- 		success: function () {

- 			$( '.regionselector' ).removeClass( 'active' );

- 			this.$resultsView.show();

- 		},

- 

- 		/**

- 		 * Bind the UI elements with their event listeners

- 		 */

- 		listen: function () {

- 			var lcd,

- 				uls = this;

- 

- 			// Register all event listeners to the ULS here.

- 			this.$element.on( 'click', $.proxy( this.click, this ) );

- 

- 			this.$languageFilter.on( 'searchclear.uls', $.proxy( this.defaultSearch, this ) );

- 			this.$languageFilter.on( 'noresults.uls', $.proxy( this.noresults, this ) );

- 			this.$languageFilter.on( 'resultsfound.uls', $.proxy( this.success, this ) );

- 

- 			// Close when clicking on the close button

- 			this.$menu.find( '#uls-close' ).on( 'click', $.proxy( this.cancel, this ) );

- 			// Don't do anything if pressing on empty space in the ULS

- 			this.$menu.on( 'click', function ( e ) {

- 				e.stopPropagation();

- 			} );

- 

- 			// Handle key press events on the menu

- 			this.$menu.on( 'keypress', $.proxy( this.keypress, this ) )

- 				.on( 'keyup', $.proxy( this.keyup, this ) );

- 

- 			if ( this.eventSupported( 'keydown' ) ) {

- 				this.$menu.on( 'keydown', $.proxy( this.keypress, this ) );

- 			}

- 

- 			lcd = this.$resultsView.lcd( {

- 				languages: this.languages,

- 				quickList: this.options.quickList,

- 				clickhandler: $.proxy( this.select, this ),

- 				source: this.$languageFilter,

- 				showRegions: this.options.showRegions,

- 				languageDecorator: this.options.languageDecorator

- 			} ).data( 'lcd' );

- 

- 			this.$languageFilter.languagefilter( {

- 				$target: lcd,

- 				languages: this.languages,

- 				searchAPI: this.options.searchAPI,

- 				onSelect: $.proxy( this.select, this )

- 			} );

- 

- 			// Create region selectors, one per region

- 			this.$menu.find( '.uls-region, .uls-region-link' ).regionselector( {

- 				$target: lcd,

- 				languages: this.languages,

- 				success: function ( regionfilter ) {

- 					// Deactivate search filtering

- 					uls.$languageFilter.languagefilter( 'deactivate' );

- 

- 					// If it is the WW region, show the quicklist

- 					if ( regionfilter.regionGroup === 1 ) {

- 						lcd.quicklist();

- 					}

- 

- 					// Show 'results view' if we are in no results mode

- 					uls.success();

- 				},

- 				noresults: function () {

- 					uls.$languageFilter.languagefilter( 'clear' );

- 				}

- 			} );

- 

- 			$( 'html' ).click( $.proxy( this.cancel, this ) );

- 		},

- 

- 		/**

- 		 * On select handler for search results

- 		 * @param langCode

- 		 */

- 		select: function ( langCode ) {

- 			this.hide();

- 			this.$languageFilter.trigger( 'searchclear' );

- 			if ( this.options.onSelect ) {

- 				this.options.onSelect.call( this, langCode );

- 			}

- 		},

- 

- 		/**

- 		 * On cancel handler for the uls menu

- 		 */

- 		cancel: function () {

- 			this.hide();

- 

- 			if ( this.options.onCancel ) {

- 				this.options.onCancel.call( this );

- 			}

- 		},

- 

- 		keyup: function ( e ) {

- 			if ( !this.shown ) {

- 				return;

- 			}

- 

- 			if ( e.keyCode === 27 ) { // escape

- 				this.cancel();

- 				e.preventDefault();

- 				e.stopPropagation();

- 			}

- 		},

- 

- 		keypress: function ( e ) {

- 			if ( !this.shown ) {

- 				return;

- 			}

- 

- 			if ( e.keyCode === 27 ) { // escape

- 				this.cancel();

- 				e.preventDefault();

- 				e.stopPropagation();

- 			}

- 		},

- 

- 		click: function ( e ) {

- 			e.stopPropagation();

- 			e.preventDefault();

- 

- 			if ( this.shown ) {

- 				this.hide();

- 			} else {

- 				this.show();

- 			}

- 		},

- 

- 		eventSupported: function ( eventName ) {

- 			var isSupported = eventName in this.$menu;

- 

- 			if ( !isSupported ) {

- 				this.$element.setAttribute( eventName, 'return;' );

- 				isSupported = typeof this.$element[eventName] === 'function';

- 			}

- 

- 			return isSupported;

- 		},

- 

- 		isMobile: function () {

- 			return navigator.userAgent.match( /(iPhone|iPod|iPad|Android|BlackBerry)/ );

- 		}

- 	};

- 

- 	/* ULS PLUGIN DEFINITION

- 	 * =========================== */

- 

- 	$.fn.uls = function ( option ) {

- 		return this.each( function () {

- 			var $this = $( this ),

- 				data = $this.data( 'uls' ),

- 				options = typeof option === 'object' && option;

- 

- 			if ( !data ) {

- 				$this.data( 'uls', ( data = new ULS( this, options ) ) );

- 			}

- 

- 			if ( typeof option === 'string' ) {

- 				data[option]();

- 			}

- 		} );

- 	};

- 

- 	$.fn.uls.defaults = {

- 		onSelect: null, // Callback function to be called when a language is selected

- 		searchAPI: null, // Language search API

- 		languages: $.uls.data.getAutonyms(), // Languages to be used for ULS, default is all languages

- 		quickList: null, // Array of language codes or function that returns such

- 		compact: false, // Show ULS in compact mode

- 		showRegions: [ 'WW', 'AM', 'EU', 'ME', 'AF', 'AS', 'PA' ],

- 		languageDecorator: null // Callback function to be called when a language link is prepared - for custom decoration.

- 	};

- 

- 	// Define a dummy i18n function, if jquery.i18n not integrated.

- 	if ( !$.fn.i18n ) {

- 		$.fn.i18n = function () {};

- 	}

- 

- 	/*

- 	 * Simple scrollIntoView plugin.

- 	 * Scrolls the element to the viewport smoothly if it is not already.

- 	 */

- 	$.fn.scrollIntoView = function () {

- 		return this.each( function () {

- 			var scrollPosition,

- 				$window = $( window ),

- 				windowHeight = $window.height(),

- 				windowTop = $window.scrollTop(),

- 				windowBottom = windowTop + windowHeight,

- 				$element = $( this ),

- 				panelHeight = $element.height(),

- 				panelTop = $element.offset().top,

- 				panelBottom = panelTop + panelHeight;

- 

- 			if ( ( panelTop < windowTop ) || ( panelBottom > windowBottom ) ) {

- 				if ( windowTop > panelTop ) {

- 					scrollPosition = panelTop;

- 				} else {

- 					scrollPosition = panelBottom - windowHeight;

- 				}

- 				$( 'html, body' ).stop().animate( {

- 					scrollTop: scrollPosition

- 				}, 500 );

- 			}

- 		} );

- 	};

- 

- 	$.fn.uls.Constructor = ULS;

- }( jQuery ) );

@@ -1,7 +0,0 @@ 

- // Please do not edit. This file is generated from data/langdb.yaml by ulsdata2json.php

- ( function ( $ ) {

- 	'use strict';

- 	$.uls = $.uls || {};

- 	//noinspection JSHint

- 	$.uls.data = {"languages":{"aa":["Latn",["AF"],"Qafár af"],"ab":["Cyrl",["EU"],"Аҧсшәа"],"ace":["Latn",["AS","PA"],"Acèh"],"ady":["Cyrl",["EU","ME"],"Адыгэбзэ"],"ady-cyrl":["ady"],"ady-latn":["Latn",["EU","ME"],"Adygabze"],"aeb":["Arab",["AF"],"زَوُن"],"af":["Latn",["AF"],"Afrikaans"],"ahr":["Deva",["AS"],"अहिराणी"],"ak":["Latn",["AF"],"Akan"],"akz":["Latn",["AM"],"Albaamo innaaɬiilka"],"aln":["Latn",["EU"],"Gegë"],"am":["Ethi",["AF"],"አማርኛ"],"an":["Latn",["EU"],"aragonés"],"ang":["Latn",["EU"],"Ænglisc"],"anp":["Deva",["AS"],"अङ्गिका"],"ar":["Arab",["ME"],"العربية"],"arc":["Syrc",["ME"],"ܐܪܡܝܐ"],"arn":["Latn",["AM"],"mapudungun"],"aro":["Latn",["AM"],"Araona"],"arq":["Arab",["AF"],"جازايرية"],"ary":["Latn",["ME"],"Maġribi"],"arz":["Arab",["ME"],"مصرى"],"as":["Beng",["AS"],"অসমীয়া"],"ase":["Sgnw",["AM"],"American sign language"],"ast":["Latn",["EU"],"asturianu"],"av":["Cyrl",["EU"],"авар"],"avk":["Latn",["WW"],"Kotava"],"ay":["Latn",["AM"],"Aymar aru"],"az":["az-latn"],"az-latn":["Latn",["EU","ME"],"azərbaycanca"],"az-arab":["Arab",["EU","ME"],"آذربايجانجا"],"az-cyrl":["Latn",["EU","ME"],"азәрбајҹанҹа"],"azb":["az-arab"],"ba":["Cyrl",["EU"],"башҡортса"],"bar":["Latn",["EU"],"Boarisch"],"bat-smg":["sgs"],"bbc-latn":["Latn",["AS"],"Batak Toba"],"bbc-batk":["Batk",["AS"],"Batak Toba"],"bbc":["Latn",["AS"],"Batak Toba"],"bcc":["Arab",["AS","ME"],"بلوچی مکرانی"],"bcl":["Latn",["AS"],"Bikol Central"],"be-tarask":["Cyrl",["EU"],"беларуская (тарашкевіца)"],"be-x-old":["be-tarask"],"be":["Cyrl",["EU"],"беларуская"],"bew":["Latn",["AS"],"Bahasa Betawi"],"bfq":["Taml",["AS"],"படகா"],"bg":["Cyrl",["EU"],"български"],"bh":["Deva",["AS"],"भोजपुरी"],"bho":["Deva",["AS"],"भोजपुरी"],"bi":["Latn",["PA"],"Bislama"],"bjn":["Latn",["AS"],"Bahasa Banjar"],"bm":["Latn",["AF"],"bamanankan"],"bn":["Beng",["AS"],"বাংলা"],"bo":["Tibt",["AS"],"བོད་ཡིག"],"bpy":["Beng",["AS"],"বিষ্ণুপ্রিয়া মণিপুরী"],"bqi":["Arab",["ME"],"بختياري"],"br":["Latn",["EU"],"brezhoneg"],"brh":["Latn",["ME","AS"],"Bráhuí"],"brx":["Deva",["AS"],"बड़ो"],"bs":["Latn",["EU"],"bosanski"],"bto":["Latn",["AS"],"Iriga Bicolano"],"bug":["Bugi",["AS"],"ᨅᨔ ᨕᨘᨁᨗ"],"bxr":["Cyrl",["AS"],"буряад"],"ca":["Latn",["EU"],"català"],"cbk-zam":["Latn",["AS"],"Chavacano de Zamboanga"],"cdo":["Latn",["AS"],"Mìng-dĕ̤ng-ngṳ̄"],"ce":["Cyrl",["EU"],"нохчийн"],"ceb":["Latn",["AS"],"Cebuano"],"ch":["Latn",["PA"],"Chamoru"],"cho":["Latn",["AM"],"Choctaw"],"chr":["Cher",["AM"],"ᏣᎳᎩ"],"chy":["Latn",["AM"],"Tsetsêhestâhese"],"ckb":["Arab",["ME"],"کوردی"],"co":["Latn",["EU"],"corsu"],"cps":["Latn",["AS"],"Capiceño"],"cr":["Cans",["AM"],"ᓀᐦᐃᔭᐍᐏᐣ"],"cr-cans":["cr"],"cr-latn":["Latn",["AM"],"Nēhiyawēwin"],"crh":["Latn",["EU"],"qırımtatarca"],"crh-cyrl":["Cyrl",["EU"],"къырымтатарджа"],"crh-latn":["crh"],"cs":["Latn",["EU"],"česky"],"csb":["Latn",["EU"],"kaszëbsczi"],"cu":["Cyrl",["EU"],"словѣньскъ \/ ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ"],"cv":["Cyrl",["EU"],"Чӑвашла"],"cy":["Latn",["EU"],"Cymraeg"],"da":["Latn",["EU"],"dansk"],"de-at":["Latn",["EU"],"Österreichisches Deutsch"],"de-ch":["Latn",["EU"],"Schweizer Hochdeutsch"],"de-formal":["Latn",["EU"],"Deutsch (Sie-Form)"],"de":["Latn",["EU"],"Deutsch"],"diq":["Latn",["EU","AS"],"Zazaki"],"dsb":["Latn",["EU"],"dolnoserbski"],"dtp":["Latn",["AS"],"Dusun Bundu-liwan"],"dv":["Thaa",["AS"],"ދިވެހިބަސް"],"dz":["Tibt",["AS"],"ཇོང་ཁ"],"ee":["Latn",["AF"],"eʋegbe"],"egl":["Latn",["EU"],"Emiliàn"],"el":["Grek",["EU"],"Ελληνικά"],"eml":["Latn",["EU"],"emiliàn e rumagnòl"],"en-ca":["Latn",["AM"],"Canadian English"],"en-gb":["Latn",["EU","AS","PA"],"British English"],"en":["Latn",["EU","AM","AF","ME","AS","PA","WW"],"English"],"eo":["Latn",["WW"],"Esperanto"],"es-419":["Latn",["AM"],"español de America Latina"],"es-formal":["Latn",["EU","AM","AF","WW"],"español (formal)"],"es":["Latn",["EU","AM","AF","WW"],"español"],"esu":["Latn",["AM"],"Yup'ik"],"et":["Latn",["EU"],"eesti"],"eu":["Latn",["EU"],"euskara"],"ext":["Latn",["EU"],"estremeñu"],"fa":["Arab",["ME"],"فارسی"],"ff":["Latn",["AF"],"Fulfulde"],"fi":["Latn",["EU"],"suomi"],"fil":["tl"],"fit":["Latn",["EU"],"meänkieli"],"fiu-vro":["vro"],"fj":["Latn",["PA"],"Na Vosa Vakaviti"],"fo":["Latn",["EU"],"føroyskt"],"fr":["Latn",["EU","AM","WW"],"français"],"frc":["Latn",["AM"],"français cadien"],"frp":["Latn",["EU"],"arpetan"],"frr":["Latn",["EU"],"Nordfriisk"],"fur":["Latn",["EU"],"furlan"],"fy":["Latn",["EU"],"Frysk"],"ga":["Latn",["EU"],"Gaeilge"],"gag":["Latn",["EU"],"Gagauz"],"gah":["Latn",["AS"],"Alekano"],"gan-hans":["Hans",["AS"],"赣语(简体)"],"gan-hant":["gan"],"gan":["Hant",["AS"],"贛語"],"gbz":["Latn",["AS"],"Dari"],"gcf":["Latn",["AM"],"Guadeloupean Creole French"],"gd":["Latn",["EU"],"Gàidhlig"],"gl":["Latn",["EU"],"galego"],"glk":["Arab",["ME"],"گیلکی"],"gn":["Latn",["AM"],"Avañe'ẽ"],"gom":["Deva",["AS"],"कोंकणी"],"gom-deva":["gom"],"gom-latn":["Latn",["AS"],"Konknni"],"got":["Goth",["EU"],"𐌲𐌿𐍄𐌹𐍃𐌺"],"grc":["Grek",["EU"],"Ἀρχαία ἑλληνικὴ"],"gsw":["Latn",["EU"],"Alemannisch"],"gu":["Gujr",["AS"],"ગુજરાતી"],"guc":["Latn",["AM"],"Wayúu"],"gur":["Latn",["AF"],"Gurenɛ"],"gv":["Latn",["EU"],"Gaelg"],"ha-arab":["Arab",["AF"],"هَوُسَ"],"ha-latn":["Latn",["AF"],"Hausa"],"ha":["ha-latn"],"hak":["Latn",["AS"],"Hak-kâ-fa"],"haw":["Latn",["AM","PA"],"Hawai`i"],"he":["Hebr",["ME"],"עברית"],"hi":["Deva",["AS"],"हिन्दी"],"hif":["Latn",["PA","AS"],"Fiji Hindi"],"hif-deva":["Deva",["AS"],"फ़ीजी हिन्दी"],"hif-latn":["hif"],"hil":["Latn",["AS"],"Ilonggo"],"hne":["Deva",["AS"],"छत्तीसगढ़ी"],"ho":["Latn",["PA"],"Hiri Motu"],"hr":["Latn",["EU"],"hrvatski"],"hsb":["Latn",["EU"],"hornjoserbsce"],"hsn":["Hans",["AS"],"湘语"],"ht":["Latn",["AM"],"Kreyòl ayisyen"],"hu-formal":["Latn",["EU"],"Magyar (magázó)"],"hu":["Latn",["EU"],"magyar"],"hy":["Armn",["EU","ME"],"Հայերեն"],"hz":["Latn",["AF"],"Otsiherero"],"ia":["Latn",["WW"],"interlingua"],"id":["Latn",["AS"],"Bahasa Indonesia"],"ie":["Latn",["WW"],"Interlingue"],"ig":["Latn",["AF"],"Igbo"],"ii":["Yiii",["AS"],"ꆇꉙ"],"ik":["Latn",["AM"],"Iñupiak"],"ike-cans":["Cans",["AM"],"ᐃᓄᒃᑎᑐᑦ"],"ike-latn":["Latn",["AM"],"inuktitut"],"ilo":["Latn",["AS"],"Ilokano"],"inh":["Cyrl",["EU"],"ГӀалгӀай"],"io":["Latn",["WW"],"Ido"],"is":["Latn",["EU"],"íslenska"],"it":["Latn",["EU"],"italiano"],"iu":["Cans",["AM"],"ᐃᓄᒃᑎᑐᑦ"],"ja":["Jpan",["AS"],"日本語"],"jam":["Latn",["AM"],"Patois"],"jbo":["Latn",["WW"],"lojban"],"jut":["Latn",["EU"],"jysk"],"jv":["Latn",["AS","PA"],"Basa Jawa"],"jv-java":["Java",["AS","PA"],"ꦧꦱꦗꦮ"],"ka":["Geor",["EU"],"ქართული"],"kaa":["Latn",["AS"],"Qaraqalpaqsha"],"kab":["Latn",["AF","EU"],"Taqbaylit"],"kbd-cyrl":["kbd"],"kbd-latn":["Latn",["EU"],"Qabardjajəbza"],"kbd":["Cyrl",["EU","ME"],"Адыгэбзэ"],"kea":["Latn",["AF"],"Kabuverdianu"],"kg":["Latn",["AF"],"Kongo"],"kgp":["Latn",["AM"],"Kaingáng"],"khw":["Arab",["ME","AS"],"کھوار"],"ki":["Latn",["AF"],"Gĩkũyũ"],"kiu":["Latn",["EU","ME"],"Kırmancki"],"kj":["Latn",["AF"],"Kwanyama"],"kjh":["Cyrl",["AS"],"хакас"],"kk":["kk-cyrl"],"kk-arab":["Arab",["EU","AS"],"قازاقشا (تٶتە)"],"kk-cn":["kk-arab"],"kk-cyrl":["Cyrl",["EU","AS"],"қазақша"],"kk-kz":["kk-cyrl"],"kk-latn":["Latn",["EU","AS","ME"],"qazaqşa"],"kk-tr":["kk-latn"],"kl":["Latn",["AM","EU"],"kalaallisut"],"km":["Khmr",["AS"],"ភាសាខ្មែរ"],"kn":["Knda",["AS"],"ಕನ್ನಡ"],"ko-kp":["Kore",["AS"],"한국어 (조선)"],"ko":["Kore",["AS"],"한국어"],"koi":["Cyrl",["EU"],"Перем Коми"],"kr":["Latn",["AF"],"Kanuri"],"krc":["Cyrl",["EU"],"къарачай-малкъар"],"kri":["Latn",["AF"],"Krio"],"krj":["Latn",["ME","EU"],"Kinaray-a"],"krl":["Latn",["EU"],"Karjala"],"ks-arab":["Arab",["AS"],"کٲشُر"],"ks-deva":["Deva",["AS"],"कॉशुर"],"ks":["Arab",["AS"],"کٲشُر"],"ksf":["Latn",["AF"],"Bafia"],"ksh":["Latn",["EU"],"Ripoarisch"],"ku":["ku-latn"],"ku-arab":["Arab",["EU","ME"],"كوردي"],"ku-latn":["Latn",["EU","ME"],"Kurdî"],"kv":["Cyrl",["EU"],"коми"],"kw":["Latn",["EU"],"kernowek"],"ky":["Cyrl",["AS"],"Кыргызча"],"la":["Latn",["EU"],"Latina"],"lad":["lad-latn"],"lad-latn":["Latn",["ME","EU","AM"],"Ladino"],"lad-hebr":["Hebr",["ME","EU","AM"],"לאדינו"],"lb":["Latn",["EU"],"Lëtzebuergesch"],"lbe":["Cyrl",["EU"],"лакку"],"lez":["Cyrl",["EU"],"лезги"],"lfn":["Latn",["WW"],"Lingua Franca Nova"],"lg":["Latn",["AF"],"Luganda"],"li":["Latn",["EU"],"Limburgs"],"lij":["Latn",["EU"],"Ligure"],"liv":["Latn",["EU"],"Līvõ kēļ"],"lld":["Latn",["EU"],"Ladin"],"lmo":["Latn",["EU"],"lumbaart"],"ln":["Latn",["AF"],"lingála"],"lo":["Laoo",["AS"],"ລາວ"],"loz":["Latn",["AF"],"Silozi"],"lt":["Latn",["EU"],"lietuvių"],"lrc":["Arab",["AS"],"لوری"],"ltg":["Latn",["EU"],"latgaļu"],"lud":["Latn",["EU"],"lüüdi"],"lus":["Latn",["AS"],"Mizo ţawng"],"lut":["Latn",["AM"],"dxʷləšucid"],"lv":["Latn",["EU"],"latviešu"],"lzh":["Hant",["AS"],"文言"],"lzz":["Latn",["EU","ME"],"Lazuri"],"mai":["Deva",["AS"],"मैथिली"],"map-bms":["Latn",["AS"],"Basa Banyumasan"],"mdf":["Cyrl",["EU"],"мокшень"],"mfe":["Latn",["AM"],"Morisyen"],"mg":["Latn",["AF"],"Malagasy"],"mh":["Latn",["PA"],"Ebon"],"mhr":["Cyrl",["EU"],"олык марий"],"mi":["Latn",["PA"],"Māori"],"mic":["Latn",["AM"],"Mi'kmaq"],"min":["Latn",["AS"],"Baso Minangkabau"],"mk":["Cyrl",["EU"],"македонски"],"ml":["Mlym",["AS","ME"],"മലയാളം"],"mn":["Cyrl",["AS"],"монгол"],"mnc":["Mong",["AS"],"ᠮᠠᠨᠵᡠ ᡤᡳᠰᡠᠨ"],"mni":["Beng",["AS"],"মেইতেই লোন্"],"mnw":["Mymr",["AS"],"ဘာသာ မန်"],"mo":["Cyrl",["EU"],"молдовеняскэ"],"mr":["Deva",["AS","ME"],"मराठी"],"mrj":["Cyrl",["EU"],"кырык мары"],"ms":["Latn",["AS"],"Bahasa Melayu"],"mt":["Latn",["EU"],"Malti"],"mui":["Latn",["AS"],"Musi"],"mus":["Latn",["AM"],"Mvskoke"],"mwl":["Latn",["EU"],"Mirandés"],"mwv":["Latn",["AS"],"Behase Mentawei"],"my":["Mymr",["AS"],"မြန်မာဘာသာ"],"myv":["Cyrl",["EU"],"эрзянь"],"mzn":["Arab",["ME","AS"],"مازِرونی"],"na":["Latn",["PA"],"Dorerin Naoero"],"nah":["Latn",["AM"],"Nāhuatl"],"nan":["Latn",["AS"],"Bân-lâm-gú"],"nap":["Latn",["EU"],"Nnapulitano"],"nb":["Latn",["EU"],"norsk (bokmål)"],"nds-nl":["Latn",["EU"],"Nedersaksisch"],"nds":["Latn",["EU"],"Plattdüütsch"],"ne":["Deva",["AS"],"नेपाली"],"new":["Deva",["AS"],"नेपाल भाषा"],"ng":["Latn",["AF"],"Oshiwambo"],"niu":["Latn",["PA"],"ko e vagahau Niuē"],"njo":["Latn",["AS"],"Ao"],"nl-informal":["Latn",["EU","AM"],"Nederlands (informeel)"],"nl":["Latn",["EU","AM"],"Nederlands"],"nn":["Latn",["EU"],"norsk (nynorsk)"],"no":["Latn",["EU"],"norsk"],"nov":["Latn",["WW"],"Novial"],"nqo":["Nkoo",["AF"],"ߒߞߏ"],"nrm":["Latn",["EU"],"Nouormand"],"nso":["Latn",["AF"],"Sesotho sa Leboa"],"nv":["Latn",["AM"],"Diné bizaad"],"ny":["Latn",["AF"],"Chi-Chewa"],"oc":["Latn",["EU"],"occitan"],"om":["Latn",["AF"],"Oromoo"],"or":["Orya",["AS"],"ଓଡ଼ିଆ"],"os":["Cyrl",["EU"],"Ирон"],"ota":["Arab",["AS","EU"],"لسان عثمانى"],"pa":["pa-guru"],"pa-guru":["Guru",["AS"],"ਪੰਜਾਬੀ"],"pag":["Latn",["AS"],"Pangasinan"],"pam":["Latn",["AS"],"Kapampangan"],"pap":["Latn",["AM"],"Papiamentu"],"pcd":["Latn",["EU"],"Picard"],"pdc":["Latn",["EU","AM"],"Deitsch"],"pdt":["Latn",["EU","AM"],"Plautdietsch"],"pfl":["Latn",["EU"],"Pälzisch"],"pi":["Deva",["AS"],"पालि"],"pih":["Latn",["PA"],"Norfuk \/ Pitkern"],"pis":["Latn",["PA"],"Pijin"],"pko":["Latn",["AF"],"Pökoot"],"pl":["Latn",["EU"],"polski"],"pms":["Latn",["EU"],"Piemontèis"],"pnb":["Arab",["AS","ME"],"پنجابی"],"pnt":["Grek",["EU"],"Ποντιακά"],"ppl":["Latn",["AM"],"Nawat"],"prg":["Latn",["EU"],"Prūsiskan"],"ps":["Arab",["AS","ME"],"پښتو"],"pt_BR":["Latn",["AM"],"português do Brasil"],"pt":["Latn",["EU","AS","PA","AF","WW"],"português"],"qu":["Latn",["AM"],"Runa Simi"],"qug":["Latn",["AM"],"Runa shimi"],"rap":["Latn",["AM"],"arero rapa nui"],"rgn":["Latn",["EU"],"Rumagnôl"],"rif":["Latn",["AF"],"Tarifit"],"rki":["Mymr",["AS"],"ရခိုင်"],"rm":["Latn",["EU"],"rumantsch"],"rmf":["Latn",["EU"],"kaalengo tšimb"],"rmy":["Latn",["EU"],"Romani"],"rn":["Latn",["AF"],"Kirundi"],"ro":["Latn",["EU"],"română"],"roa-rup":["rup"],"roa-tara":["Latn",["EU"],"tarandíne"],"rtm":["Latn",["PA"],"Faeag Rotuma"],"ru":["Cyrl",["EU","AS","ME"],"русский"],"rue":["Cyrl",["EU"],"русиньскый"],"rup":["Latn",["EU"],"Armãneashce"],"ruq":["Cyrl",["EU"],"Влахесте"],"ruq-cyrl":["ruq"],"ruq-grek":["Grek",["EU"],"Megleno-Romanian (Greek script)"],"ruq-latn":["Latn",["EU"],"Vlăheşte"],"rut":["Cyrl",["EU"],"мыхаӀбишды"],"rw":["Latn",["AF"],"Kinyarwanda"],"rwr":["Deva",["AS"],"मारवाड़ी"],"ryu":["Kana",["AS"],"ʔucināguci"],"sa":["Deva",["AS"],"संस्कृतम्"],"sah":["Cyrl",["EU","AS"],"саха тыла"],"sat":["Latn",["AS"],"Santali"],"saz":["Saur",["AS"],"ꢱꣃꢬꢵꢯ꣄ꢡ꣄ꢬꢵ"],"sc":["Latn",["EU"],"sardu"],"scn":["Latn",["EU"],"sicilianu"],"sco":["Latn",["EU"],"Scots"],"sd":["Arab",["AS"],"سنڌي"],"sdc":["Latn",["EU"],"Sassaresu"],"se":["Latn",["EU"],"sámegiella"],"ses":["Latn",["AF"],"Koyraboro Senni"],"sei":["Latn",["AM"],"Cmique Itom"],"sg":["Latn",["AF"],"Sängö"],"sgs":["Latn",["EU"],"žemaitėška"],"sh":["Latn",["EU"],"srpskohrvatski"],"shi-latn":["Latn",["AF"],"Tašlḥiyt"],"shi-tfng":["Tfng",["AF"],"ⵜⴰⵛⵍⵃⵉⵜ"],"shi":["shi-latn"],"shn":["Mymr",["AS"],"လိၵ်ႈတႆး"],"si":["Sinh",["AS"],"සිංහල"],"simple":["Latn",["WW"],"Simple English"],"sk":["Latn",["EU"],"slovenčina"],"sl":["Latn",["EU"],"slovenščina"],"sli":["Latn",["EU"],"Schläsch"],"slr":["Latn",["AS"],"Salırça"],"sly":["Latn",["AS"],"Bahasa Selayar"],"syc":["Syrc",["ME"],"ܣܘܪܝܝܐ"],"sm":["Latn",["PA"],"Gagana Samoa"],"sma":["Latn",["EU"],"åarjelsaemien"],"smj":["Latn",["EU"],"julevsámegiella"],"smn":["Latn",["EU"],"anarâškielâ"],"sms":["Latn",["EU"],"sää´mǩiõll"],"sn":["Latn",["AF"],"chiShona"],"so":["Latn",["AF"],"Soomaaliga"],"sq":["Latn",["EU"],"shqip"],"sr":["Cyrl",["EU"],"српски"],"sr-ec":["sr-cyrl"],"sr-cyrl":["Cyrl",["EU"],"српски"],"sr-el":["sr-latn"],"sr-latn":["Latn",["EU"],"srpski"],"srn":["Latn",["AM","EU"],"Sranantongo"],"ss":["Latn",["AF"],"SiSwati"],"st":["Latn",["AF"],"Sesotho"],"stq":["Latn",["EU"],"Seeltersk"],"su":["Latn",["AS"],"Basa Sunda"],"sv":["Latn",["EU"],"svenska"],"sw":["Latn",["AF"],"Kiswahili"],"swb":["Latn",["AF"],"Shikomoro"],"sxu":["Latn",["EU"],"Säggssch"],"szl":["Latn",["EU"],"ślůnski"],"ta":["Taml",["AS"],"தமிழ்"],"tcy":["Knda",["AS"],"ತುಳು"],"te":["Telu",["AS"],"తెలుగు"],"tet":["Latn",["AS","PA"],"tetun"],"tg-cyrl":["Cyrl",["AS"],"тоҷикӣ"],"tg-latn":["Latn",["AS"],"tojikī"],"tg":["Cyrl",["AS"],"тоҷикӣ"],"th":["Thai",["AS"],"ไทย"],"ti":["Ethi",["AF"],"ትግርኛ"],"tk":["Latn",["AS"],"Türkmençe"],"tkr":["Cyrl",["AS"],"ЦӀаьхна миз"],"tl":["Latn",["AS"],"Tagalog"],"tly":["Cyrl",["EU","AS","ME"],"толышә зывон"],"tn":["Latn",["AF"],"Setswana"],"to":["Latn",["PA"],"lea faka-Tonga"],"tokipona":["Latn",["WW"],"Toki Pona"],"tpi":["Latn",["PA","AS"],"Tok Pisin"],"tr":["Latn",["EU","ME"],"Türkçe"],"trp":["Latn",["AS"],"Kokborok (Tripuri)"],"tru":["Latn",["AS"],"Ṫuroyo"],"ts":["Latn",["AF"],"Xitsonga"],"tsd":["Grek",["EU"],"Τσακωνικά"],"tt":["Cyrl",["EU"],"татарча"],"tt-cyrl":["tt"],"tt-latn":["Latn",["EU"],"tatarça"],"ttt":["Cyrl",["AS"],"Tati"],"tum":["Latn",["AF"],"chiTumbuka"],"tw":["Latn",["AF"],"Twi"],"twd":["Latn",["EU"],"Tweants"],"ty":["Latn",["PA"],"Reo Mā`ohi"],"tyv":["Cyrl",["AS"],"тыва дыл"],"tzm":["Tfng",["AF"],"ⵜⴰⵎⴰⵣⵉⵖⵜ"],"udm":["Cyrl",["EU"],"удмурт"],"ug":["ug-arab"],"ug-arab":["Arab",["AS"],"ئۇيغۇرچە"],"ug-latn":["Latn",["AS"],"uyghurche"],"ug-cyrl":["Cyrl",["AS"],"уйғурчә"],"uk":["Cyrl",["EU"],"українська"],"ur":["Arab",["AS","ME"],"اردو"],"uz":["Latn",["AS"],"oʻzbekcha"],"ve":["Latn",["AF"],"Tshivenda"],"vec":["Latn",["EU"],"vèneto"],"vep":["Latn",["EU"],"vepsän kel’"],"vi":["Latn",["AS"],"Tiếng Việt"],"vls":["Latn",["EU"],"West-Vlams"],"vmf":["Latn",["EU"],"Mainfränkisch"],"vo":["Latn",["WW"],"Volapük"],"vot":["Latn",["EU"],"Vaďďa"],"vro":["Latn",["EU"],"Võro"],"wa":["Latn",["EU"],"walon"],"war":["Latn",["AS"],"Winaray"],"wls":["Latn",["PA"],"Faka'uvea"],"wo":["Latn",["AF"],"Wolof"],"wuu":["Hans",["AS"],"吴语"],"xal":["Cyrl",["EU"],"хальмг"],"xh":["Latn",["AF"],"isiXhosa"],"xmf":["Geor",["EU"],"მარგალური"],"ydd":["Hebr",["AS","EU"],"Eastern Yiddish"],"yi":["Hebr",["ME","EU","AM"],"ייִדיש"],"yo":["Latn",["AF"],"Yorùbá"],"yrk":["Cyrl",["AS"],"Ненэцяʼ вада"],"yrl":["Latn",["AM"],"ñe'engatú"],"yua":["Latn",["AM"],"Maaya T'aan"],"yue":["Hant",["AS"],"粵語"],"za":["Latn",["AS"],"Vahcuengh"],"zea":["Latn",["EU"],"Zeêuws"],"zh":["Hans",["AS"],"中文"],"zh-classical":["Hant",["AS"],"文言"],"zh_CN":["Hans",["AS"],"中文(中国大陆)"],"zh-hans":["Hans",["AS"],"中文(简体)"],"zh-hant":["Hant",["AS"],"中文(繁體)"],"zh-hk":["Hant",["AS"],"中文(香港)"],"zh-min-nan":["nan"],"zh-mo":["Hant",["AS"],"中文(澳門)"],"zh-my":["Hans",["AS"],"中文(马来西亚)"],"zh-sg":["Hans",["AS"],"中文(新加坡)"],"zh_TW":["Hant",["AS"],"中文(台灣)"],"zh-yue":["yue"],"zu":["Latn",["AF"],"isiZulu"]},"scriptgroups":{"Latin":["Latn","Goth"],"Greek":["Grek"],"WestCaucasian":["Armn","Geor"],"Arabic":["Arab"],"MiddleEastern":["Hebr","Syrc"],"African":["Ethi","Nkoo","Tfng"],"SouthAsian":["Beng","Deva","Gujr","Guru","Knda","Mlym","Orya","Saur","Sinh","Taml","Telu","Tibt","Thaa"],"Cyrillic":["Cyrl"],"CJK":["Hans","Hant","Kana","Kore","Jpan","Yiii"],"SouthEastAsian":["Batk","Bugi","Java","Khmr","Laoo","Mymr","Thai"],"Mongolian":["Mong"],"SignWriting":["Sgnw"],"NativeAmerican":["Cher","Cans"],"Special":["Zyyy"]},"rtlscripts":["Arab","Hebr","Syrc","Nkoo","Thaa"],"regiongroups":{"WW":1,"SP":1,"AM":2,"EU":3,"ME":3,"AF":3,"AS":4,"PA":4},"territories":{"AC":["en"],"AD":["ca","es","fr"],"AE":["ar","ml","ps","bal","fa"],"AF":["fa","ps","haz","uz-arab","tk-latn","prd","bal","ug-arab","kk-arab"],"AG":["en","pt"],"AI":["en"],"AL":["sq","el","mk"],"AM":["hy","ku-latn","az-latn"],"AO":["pt","umb","kmb","ln"],"AQ":["und"],"AR":["es","cy","gn"],"AS":["sm","en"],"AT":["de","bar","hr","sl","hu"],"AU":["en","zh-hant","it"],"AW":["nl","pap","en"],"AX":["sv"],"AZ":["az-latn","az-cyrl","tly-latn","ku-latn","ttt-latn","tkr-latn"],"BA":["bs-cyrl","bs-latn","hr","sr-cyrl","sr-latn"],"BB":["en"],"BD":["bn","rkt","syl","ccp","my","grt","mni"],"BE":["nl","en","fr","vls","wa","de"],"BF":["mos","dyu","fr"],"BG":["bg","tr"],"BH":["ar","ml"],"BI":["rn","fr","sw"],"BJ":["fr","fon","yo"],"BL":["fr"],"BM":["en"],"BN":["ms-latn","zh-hant","ms-arab","en"],"BO":["es","qu","ay","gn","aro"],"BQ":["pap","nl"],"BR":["pt","de","it","ja","ko","kgp","gub","yrl","xav"],"BS":["en"],"BT":["dz","ne","tsj","lep"],"BV":["und"],"BW":["en","tn","af"],"BY":["be","ru"],"BZ":["en","es"],"CA":["en","fr","it","de","pdt","cr-cans","crk","yi","iu-cans","iu-latn","moe","crj","atj","crl","csw","crm","ikt","moh","dgr","den","scs","nsk","chp","gwi"],"CC":["ms-arab","en"],"CD":["sw","lua","swc","fr","ln","lu","kg","lol","rw"],"CF":["fr","sg","ln"],"CG":["fr","ln"],"CH":["de","fr","gsw","it","lmo","rm","rmo","wae"],"CI":["fr","bci","sef","dnj","kfo","bqv"],"CK":["en"],"CL":["es","arn"],"CM":["fr","en","bum","ff","ewo","ybb","bbj","nnh","bkm","bas","bax","byv","mua","maf","bfd","bss","kkj","dua","mgo","ar","jgo","ksf","agq","ha-arab","nmg","yav"],"CN":["zh-hans","wuu","hsn","hak","nan","gan","ii","ug-arab","za","mn-mong","bo","ko","kk-arab","lis","ky-arab","nxq","khb","tdd","lcp","en","ru","vi","uz-cyrl","lzh"],"CO":["es","guc"],"CP":["und"],"CR":["es"],"CU":["es"],"CV":["kea","pt"],"CW":["pap","nl","es"],"CX":["en"],"CY":["el","tr","hy","ar"],"CZ":["cs","de","pl"],"DE":["de","en","nds","vmf","tr","hr","it","ku-latn","ru","el","ksh","pl","es","nl","da","hsb","frr","dsb","frs","stq","pfl"],"DG":["en"],"DJ":["aa","so","ar","fr"],"DK":["da","de","kl","jut"],"DM":["en"],"DO":["es","en"],"DZ":["arq","ar","fr","kab"],"EA":["es"],"EC":["es","qu","qug"],"EE":["et","ru","vro"],"EG":["ar","arz","el"],"EH":["ar"],"ER":["ti","en","tig","ar","aa","ssy","byn"],"ES":["es","en","ca","gl","eu","ast","ext"],"ET":["en","am","om","so","ti","sid","wal","aa"],"FI":["fi","sv","ru","en","et","rmf","se","smn","sms"],"FJ":["en","hi","hif-deva","fj","rtm"],"FK":["en"],"FM":["chk","pon","kos","yap","en","uli"],"FO":["fo"],"FR":["fr","en","oc","it","pt","pcd","gsw","br","co","ca","nl","eu","frp","ia"],"GA":["fr","puu"],"GB":["en","sco","pa-guru","cy","bn","zh-hant","syl","el","it","ks-arab","gd","yi","ml","ga","fr","kw"],"GD":["en"],"GE":["ka","xmf","ru","hy","ab","os","ku-latn"],"GF":["fr","gcr","zh-hant"],"GG":["en"],"GH":["ak","en","ee","abr","gur","gaa","ha-latn","saf"],"GI":["en"],"GL":["kl","da"],"GM":["en","man-latn"],"GN":["fr","ff","man-nkoo","sus","nqo","kpe"],"GP":["fr"],"GQ":["es","fan","fr","bvb"],"GR":["el","pnt-grek","mk","tr","bg","sq","tsd"],"GS":["und"],"GT":["es","quc"],"GU":["en","ch"],"GW":["pt"],"GY":["en"],"HK":["zh-hant","en","zh-hans"],"HM":["und"],"HN":["es","en"],"HR":["hr","it"],"HT":["ht","fr"],"HU":["hu","de","ro","hr","sk","sl"],"IC":["es"],"ID":["id","jv","su","mad","ms-arab","min","bew","ban","bug","bjn","ace","sas","bbc","zh-hant","mak","ljp","rej","gor","nij","kge","aoz","kvr","lbw","rob","mdr","sxn","sly","mwv"],"IE":["en","ga"],"IL":["he","ar","ru","ro","yi","en","pl","lad","hu","am","ti","ml"],"IM":["en","gv"],"IN":["hi","en","bn","te","mr","ta","ur","gu","kn","ml","or","pa-guru","bho","awa","as","bgc","mag","mwr","mai","hne","dcc","bjj","ne","sat","wtm","rkt","ks-arab","kok","gom","swv","gbm","lmn","sd-arab","gon-telu","kfy","doi","kru","sck","wbq","xnr","tcy","wbr","khn","brx","noe","bhb","mni","raj","hoc","mtr","unr-beng","bhi","hoj","kha","kfr","grt","unx-beng","bfy","srx","saz","ccp","sd-deva","bfq","njo","ria","bo","bpy","bft","bra","lep","btv","lif-deva","lah","sa","kht","dv","dz"],"IO":["en"],"IQ":["ar","ckb","fa","syr"],"IR":["fa","az-arab","azb","mzn","glk","ckb","tk-latn","lrc","ar","bal","rmt","bqi","luz","lki","prd","hy","ps","ka","gbz","kk-arab"],"IS":["is","da"],"IT":["it","en","fr","lmo","pms","sc","de","vec","nap","lij","scn","sl","sdc","fur","egl","ca","el","hr","rgn"],"JE":["en"],"JM":["en","jam"],"JO":["ar"],"JP":["ja","ryu","ko"],"KE":["en","sw","ki","luy","luo","kam","kln","guz","mer","mas","ebu","so","dav","teo","pko","om","saq","ar","pa-guru","gu"],"KG":["ky-cyrl","ru"],"KH":["km","cja","kdt"],"KI":["en","gil"],"KM":["ar","fr","zdj"],"KN":["en"],"KP":["ko"],"KR":["ko"],"KW":["ar"],"KY":["en"],"KZ":["ru","kk-cyrl","de","ug-cyrl"],"LA":["lo","kjg","kdt"],"LB":["ar","hy","ku-arab","fr","en"],"LC":["en"],"LI":["de","gsw","wae"],"LK":["si","ta","en"],"LR":["en","kpe","vai-vaii","men","vai-latn"],"LS":["st","zu","ss","en","xh"],"LT":["lt","ru","sgs"],"LU":["fr","lb","de"],"LV":["lv","ru","ltg"],"LY":["ar"],"MA":["ary","ar","zgh","fr","tzm-latn","shi-latn","shi-tfng","rif-latn","rif-tfng","es"],"MC":["fr"],"MD":["ro","uk","bg","gag","ru"],"ME":["sr-latn","sq","sr-cyrl"],"MF":["fr"],"MG":["mg","fr","en"],"MH":["en","mh"],"MK":["mk","sq","tr"],"ML":["bm-latn","fr","ffm","snk","mwk","ses","tmh","bm-nkoo","khq","dtm","kao","ar","bmq","bze"],"MM":["my","shn","mnw","kht"],"MN":["mn-cyrl","kk-arab","zh-hans","ru","ug-cyrl"],"MO":["zh-hant","pt","zh-hans","en"],"MP":["en","ch"],"MQ":["fr"],"MR":["ar","fr","ff","wo"],"MS":["en"],"MT":["mt","en"],"MU":["mfe","en","bho","ur","fr","ta"],"MV":["dv"],"MW":["en","ny","tum","zu"],"MX":["es","yua","nhe","nhw","maz","nch","sei"],"MY":["ms-latn","en","zh-hant","ta","jv","zmi","dtp","ml","bug","bjn"],"MZ":["pt","vmw","ndc","ts","ngl","seh","mgh","rng","ny","yao","sw","zu"],"NA":["af","kj","ng","naq","en","de","tn"],"NC":["fr"],"NE":["ha-latn","fr","dje","fuq","tmh","ar","twq"],"NF":["en"],"NG":["en","pcm","ha-latn","ig","yo","fuv","tiv","efi","ibb","ha-arab","bin","kaj","kcg","ar","cch","amo"],"NI":["es"],"NL":["nl","en","li","fy","gos","id","zea","rif-latn","tr"],"NO":["nb","nn","se"],"NP":["ne","mai","bho","new","jml","taj","awa","thl","bap","tdg","thr","mgp","lif-deva","thq","mrd","bfy","xsr","rjs","tsf","hi","ggn","gvr","bo","tkt","tdh","bn","unr-deva","lep"],"NR":["en","na"],"NU":["en","niu"],"NZ":["en","mi"],"OM":["ar","bal","fa"],"PA":["es","en","zh-hant"],"PE":["es","qu","ay"],"PF":["fr","ty","zh-hant"],"PG":["tpi","en","ho"],"PH":["en","fil","es","ceb","ilo","hil","bik","war","bhk","pam","pag","mdh","tsg","zh-hant","cps","krj","bto","hnn","tbw","bku"],"PK":["ur","pa-arab","en","lah","ps","sd-arab","skr","bal","brh","hno","fa","hnd","tg-arab","gju","bft","kvx","khw","mvy","kxp","gjk","ks-arab","btv"],"PL":["pl","szl","be","uk","csb","de","sli","lt"],"PM":["fr","en"],"PN":["en"],"PR":["es","en"],"PS":["ar"],"PT":["pt","gl"],"PW":["pau","en"],"PY":["gn","es","de"],"QA":["ar","fa","ml"],"RE":["fr","rcf","ta"],"RO":["ro","hu","de","tr","sr-latn","bg","el","pl"],"RS":["sr-cyrl","sr-latn","sq","hu","ro","hr","sk","uk"],"RU":["ru","tt","ba","cv","hy","ce","av","udm","chm","sah","os","kbd","myv","dar","bua","mdf","kum","kv","lez","krc","inh","tyv","az-cyrl","ady","krl","lbe","koi","mrj","alt","fi","sr-latn","vep","mn-cyrl","izh","cu"],"RW":["rw","fr","en"],"SA":["ar"],"SB":["en","rug"],"SC":["crs","fr","en"],"SD":["ar","en","nus","ha-arab"],"SE":["sv","fi","fit","se","rmu","yi","smj","sma","ia"],"SG":["en","zh-hans","ms-latn","ta","ml","pa-guru"],"SH":["en"],"SI":["sl","hu","it"],"SJ":["nb","ru"],"SK":["sk","hu","uk","pl","de"],"SL":["kri","en","men","tem"],"SM":["it","eo"],"SN":["wo","fr","ff","srr","dyo"],"SO":["so","ar","sw","om"],"SR":["nl","srn","zh-hant"],"SS":["ar","en"],"ST":["pt"],"SV":["es"],"SX":["en","es","vic","nl"],"SY":["ar","ku-latn","fr","hy","syr"],"SZ":["en","ss","zu","ts"],"TA":["en"],"TC":["en"],"TD":["fr","ar"],"TF":["fr"],"TG":["fr","ee"],"TH":["th","tts","nod","sou","mfa","zh-hant","kxm","kdt","mnw","shn","lcp","lwl"],"TJ":["tg-cyrl","ru","fa","ar"],"TK":["en","tkl"],"TL":["pt","tet"],"TM":["tk-latn","ru","uz-latn","ku-latn"],"TN":["aeb","ar","fr"],"TO":["to","en"],"TR":["tr","ku-latn","zza","kbd","az-latn","ar","bgx","bg","ady","kiu","hy","ka","sr-latn","lzz-latn","sq","ab","el","tru","uz-latn","ky-latn","kk-cyrl"],"TT":["en","es"],"TV":["tvl","en"],"TW":["zh-hant","trv"],"TZ":["sw","en","suk","nym","kde","bez","ksb","mas","mgy","asa","lag","jmc","rof","vun","rwk","sbp"],"UA":["uk","ru","pl","yi","rue","be","ro","bg","tr","hu","el"],"UG":["sw","lg","nyn","cgg","xog","en","teo","laj","ach","myx","rw","ttj","hi"],"UM":["en"],"US":["en","es","zh-hant","fr","de","fil","it","vi","ko","ru","nv","yi","pdc","haw","frc","chr","esu","lkt","ik"],"UY":["es"],"UZ":["uz-latn","uz-cyrl","ru","kaa","tr"],"VA":["it","la"],"VC":["en"],"VE":["es"],"VG":["en"],"VI":["en"],"VN":["vi","zh-hant","cjm"],"VU":["bi","en","fr"],"WF":["wls","fr","fud"],"WS":["sm","en"],"XK":["sq","aln","sr-cyrl","sr-latn"],"YE":["ar"],"YT":["swb","fr","buc","sw"],"ZA":["en","zu","xh","af","nso","tn","st","ts","ss","ve","hi","nr","sw"],"ZM":["en","bem","ny","loz"],"ZW":["en","sn","nd","mxc","ndc","kck","ny","ve","tn"],"ZZ":[]}};

- } ( jQuery ) );

@@ -1,465 +0,0 @@ 

- /**

-  * Utility functions for querying language data.

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- ( function ( $ ) {

- 	'use strict';

- 

- 	/**

- 	 * Is this language a redirect to another language?

- 	 * @param language string Language code

- 	 * @return Target language code if it's a redirect or false if it's not

- 	 */

- 	$.uls.data.isRedirect = function ( language ) {

- 		return ( $.uls.data.languages[language] !== undefined &&

- 			$.uls.data.languages[language].length === 1 ) ? $.uls.data.languages[language][0] : false;

- 	};

- 

- 	/**

- 	 * Returns the script of the language.

- 	 * @param language string Language code

- 	 * @return string

- 	 */

- 	$.uls.data.getScript = function ( language ) {

- 		var target = $.uls.data.isRedirect( language );

- 

- 		if ( target ) {

- 			return $.uls.data.getScript( target );

- 		}

- 

- 		if ( !$.uls.data.languages[language] ) {

- 			// Undetermined

- 			return 'Zyyy';

- 		}

- 

- 		return $.uls.data.languages[language][0];

- 	};

- 

- 	/**

- 	 * Returns the regions in which a language is spoken.

- 	 * @param language string Language code

- 	 * @return array|string 'UNKNOWN'

- 	 */

- 	$.uls.data.getRegions = function ( language ) {

- 		var target = $.uls.data.isRedirect( language );

- 

- 		if ( target ) {

- 			return $.uls.data.getRegions( target );

- 		}

- 

- 		return ( $.uls.data.languages[language] && $.uls.data.languages[language][1] ) || 'UNKNOWN';

- 	};

- 

- 	/**

- 	 * Returns the autonym of the language.

- 	 * @param language string Language code

- 	 * @return string

- 	 */

- 	$.uls.data.getAutonym = function ( language ) {

- 		var target = $.uls.data.isRedirect( language );

- 

- 		if ( target ) {

- 			return $.uls.data.getAutonym( target );

- 		}

- 

- 		return ( $.uls.data.languages[language] && $.uls.data.languages[language][2] ) || language;

- 	};

- 

- 	/**

- 	 * Returns all language codes and corresponding autonyms

- 	 * @return array

- 	 */

- 	$.uls.data.getAutonyms = function () {

- 		var language,

- 			autonymsByCode = {};

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			autonymsByCode[language] = $.uls.data.getAutonym( language );

- 		}

- 

- 		return autonymsByCode;

- 	};

- 

- 	/**

- 	 * Returns an array of all region codes.

- 	 * @return array

- 	 */

- 	$.uls.data.getAllRegions = function () {

- 		var region,

- 			allRegions = [];

- 

- 		for ( region in $.uls.data.regiongroups ) {

- 			allRegions.push( region );

- 		}

- 

- 		return allRegions;

- 	};

- 

- 	/**

- 	 * Returns all languages written in script.

- 	 * @param script string

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInScript = function ( script ) {

- 		return $.uls.data.getLanguagesInScripts( [ script ] );

- 	};

- 

- 	/**

- 	 * Returns all languages written in the given scripts.

- 	 * @param scripts array of strings

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInScripts = function ( scripts ) {

- 		var language, i,

- 			languagesInScripts = [];

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			for ( i = 0; i < scripts.length; i++ ) {

- 				if ( scripts[i] === $.uls.data.getScript( language ) ) {

- 					languagesInScripts.push( language );

- 					break;

- 				}

- 			}

- 		}

- 

- 		return languagesInScripts;

- 	};

- 

- 	/**

- 	 * Returns all languages in a given region.

- 	 * @param region string

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInRegion = function ( region ) {

- 		return $.uls.data.getLanguagesInRegions( [ region ] );

- 	};

- 

- 	/**

- 	 * Returns all languages in given regions.

- 	 * @param regions array of strings.

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInRegions = function ( regions ) {

- 		var language, i,

- 			languagesInRegions = [];

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			for ( i = 0; i < regions.length; i++ ) {

- 				if ( $.inArray( regions[i], $.uls.data.getRegions( language ) ) !== -1 ) {

- 					languagesInRegions.push( language );

- 					break;

- 				}

- 			}

- 		}

- 

- 		return languagesInRegions;

- 	};

- 

- 	/**

- 	 * Returns all languages in a region group.

- 	 * @param groupNum number.

- 	 * @return array of strings (languages codes)

- 	 */

- 	$.uls.data.getLanguagesInRegionGroup = function ( groupNum ) {

- 		return $.uls.data.getLanguagesInRegions( $.uls.data.getRegionsInGroup( groupNum ) );

- 	};

- 

- 	/**

- 	 * Returns an associative array of languages in a region,

- 	 * grouped by script.

- 	 * @param region string Region code

- 	 * @return associative array

- 	 */

- 	$.uls.data.getLanguagesByScriptInRegion = function ( region ) {

- 		var language, script,

- 			languagesByScriptInRegion = {};

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			if ( $.inArray( region, $.uls.data.getRegions( language ) ) !== -1 ) {

- 				script = $.uls.data.getScript( language );

- 

- 				if ( languagesByScriptInRegion[script] === undefined ) {

- 					languagesByScriptInRegion[script] = [];

- 				}

- 				languagesByScriptInRegion[script].push( language );

- 			}

- 		}

- 

- 		return languagesByScriptInRegion;

- 	};

- 

- 	/**

- 	 * Returns an associative array of languages in a region,

- 	 * grouped by script group.

- 	 * @param region string Region code

- 	 * @return associative array

- 	 */

- 	$.uls.data.getLanguagesByScriptGroupInRegion = function ( region ) {

- 		return $.uls.data.getLanguagesByScriptGroupInRegions( [ region ] );

- 	};

- 

- 	/**

- 	 * Returns an associative array of all languages,

- 	 * grouped by script group.

- 	 * @return associative array

- 	 */

- 	$.uls.data.getAllLanguagesByScriptGroup = function () {

- 		return $.uls.data.getLanguagesByScriptGroupInRegions( $.uls.data.getAllRegions() );

- 	};

- 

- 	/**

- 	 * Get the given list of languages grouped by script.

- 	 * @param languages Array of language codes

- 	 * @return {Object} Array of languages indexed by script codes

- 	 */

- 	$.uls.data.getLanguagesByScriptGroup = function ( languages ) {

- 		var languagesByScriptGroup = {},

- 			language, codeToAdd, langScriptGroup;

- 

- 		for ( language in languages ) {

- 			codeToAdd = $.uls.data.isRedirect( language ) || language;

- 

- 			langScriptGroup = $.uls.data.getScriptGroupOfLanguage( codeToAdd );

- 

- 			if ( !languagesByScriptGroup[langScriptGroup] ) {

- 				languagesByScriptGroup[langScriptGroup] = [];

- 			}

- 

- 			// Prevent duplicate adding of redirects

- 			if ( $.inArray( codeToAdd, languagesByScriptGroup[langScriptGroup] ) === -1 ) {

- 				languagesByScriptGroup[langScriptGroup].push( codeToAdd );

- 			}

- 		}

- 

- 		return languagesByScriptGroup;

- 	};

- 

- 	/**

- 	 * Returns an associative array of languages in several regions,

- 	 * grouped by script group.

- 	 * @param regions array of strings - region codes

- 	 * @return associative array

- 	 */

- 	$.uls.data.getLanguagesByScriptGroupInRegions = function ( regions ) {

- 		var language, i, scriptGroup,

- 			languagesByScriptGroupInRegions = {};

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			for ( i = 0; i < regions.length; i++ ) {

- 				if ( $.inArray( regions[i], $.uls.data.getRegions( language ) ) !== -1 ) {

- 					scriptGroup = $.uls.data.getScriptGroupOfLanguage( language );

- 

- 					if ( languagesByScriptGroupInRegions[scriptGroup] === undefined ) {

- 						languagesByScriptGroupInRegions[scriptGroup] = [];

- 					}

- 

- 					languagesByScriptGroupInRegions[scriptGroup].push( language );

- 					break;

- 				}

- 			}

- 		}

- 

- 		return languagesByScriptGroupInRegions;

- 	};

- 

- 	/**

- 	 * Returns an array of languages grouped by region group,

- 	 * region, script group and script.

- 	 * @return associative array

- 	 */

- 	$.uls.data.getAllLanguagesByRegionAndScript = function () {

- 		var region, regionGroup, language,

- 			script, scriptGroup, regions, regionNum,

- 			allLanguagesByRegionAndScript = {};

- 

- 		for ( region in $.uls.data.regiongroups ) {

- 			regionGroup = $.uls.data.regiongroups[region];

- 

- 			if ( allLanguagesByRegionAndScript[regionGroup] === undefined ) {

- 				allLanguagesByRegionAndScript[regionGroup] = {};

- 			}

- 

- 			allLanguagesByRegionAndScript[regionGroup][region] = {};

- 		}

- 

- 		for ( language in $.uls.data.languages ) {

- 			if ( $.uls.data.isRedirect( language ) ) {

- 				continue;

- 			}

- 

- 			script = $.uls.data.getScript( language );

- 			scriptGroup = $.uls.data.getGroupOfScript( script );

- 			regions = $.uls.data.getRegions( language );

- 

- 			for ( regionNum = 0; regionNum < regions.length; regionNum++ ) {

- 				region = regions[regionNum];

- 				regionGroup = $.uls.data.regiongroups[region];

- 

- 				if ( allLanguagesByRegionAndScript[regionGroup][region][scriptGroup] === undefined ) {

- 					allLanguagesByRegionAndScript[regionGroup][region][scriptGroup] = {};

- 				}

- 

- 				if ( allLanguagesByRegionAndScript[regionGroup][region][scriptGroup][script] === undefined ) {

- 					allLanguagesByRegionAndScript[regionGroup][region][scriptGroup][script] = [];

- 				}

- 

- 				allLanguagesByRegionAndScript[regionGroup][region][scriptGroup][script].push( language );

- 			}

- 		}

- 

- 		return allLanguagesByRegionAndScript;

- 	};

- 

- 	/**

- 	 * Returns all regions in a region group.

- 	 * @param groupNum int

- 	 * @return array of strings

- 	 */

- 	$.uls.data.getRegionsInGroup = function ( groupNum ) {

- 		var region,

- 			regionsInGroup = [];

- 

- 		for ( region in $.uls.data.regiongroups ) {

- 			if ( $.uls.data.regiongroups[region] === groupNum ) {

- 				regionsInGroup.push( region );

- 			}

- 		}

- 

- 		return regionsInGroup;

- 	};

- 

- 	/**

- 	 * Returns the script group of a script or 'Other' if it doesn't

- 	 * belong to any group.

- 	 * @param script string Script code

- 	 * @return string script group name

- 	 */

- 	$.uls.data.getGroupOfScript = function ( script ) {

- 		var scriptGroup;

- 

- 		for ( scriptGroup in $.uls.data.scriptgroups ) {

- 			if ( $.inArray( script, $.uls.data.scriptgroups[scriptGroup] ) !== -1 ) {

- 				return scriptGroup;

- 			}

- 		}

- 

- 		return 'Other';

- 	};

- 

- 	/**

- 	 * Returns the script group of a language.

- 	 * @param language string Language code

- 	 * @return string script group name

- 	 */

- 	$.uls.data.getScriptGroupOfLanguage = function ( language ) {

- 		return $.uls.data.getGroupOfScript( $.uls.data.getScript( language ) );

- 	};

- 

- 	/**

- 	 * A callback for sorting languages by autonym.

- 	 * Can be used as an argument to a sort function.

- 	 * @param a string Language code

- 	 * @param b string Language code

- 	 */

- 	$.uls.data.sortByAutonym = function ( a, b ) {

- 		var autonymA = $.uls.data.getAutonym( a ) || a,

- 			autonymB = $.uls.data.getAutonym( b ) || b;

- 

- 		return ( autonymA.toLowerCase() < autonymB.toLowerCase() ) ? -1 : 1;

- 	};

- 

- 	/**

- 	 * Check if a language is right-to-left.

- 	 * @param language string Language code

- 	 * @return boolean

- 	 */

- 	$.uls.data.isRtl = function ( language ) {

- 		return $.inArray( $.uls.data.getScript( language ), $.uls.data.rtlscripts ) !== -1;

- 	};

- 

- 	/**

- 	 * Return the direction of the language

- 	 * @param language string Language code

- 	 * @return string

- 	 */

- 	$.uls.data.getDir = function ( language ) {

- 		return $.uls.data.isRtl( language ) ? 'rtl' : 'ltr';

- 	};

- 

- 	/**

- 	 * Returns the languages spoken in a territory.

- 	 * @param territory string Territory code

- 	 * @return list of language codes

- 	 */

- 	$.uls.data.getLanguagesInTerritory = function ( territory ) {

- 		return $.uls.data.territories[territory];

- 	};

- 

- 	/**

- 	 * Adds a language in run time and sets its options as provided.

- 	 * If the target option is provided, the language is defined as a redirect.

- 	 * Other possible options are script, regions and autonym.

- 	 *

- 	 * @param code string New language code.

- 	 * @param options Object Language properties.

- 	 * @return list of language codes

- 	 */

- 	$.uls.data.addLanguage = function( code, options ) {

- 		if ( options.target ) {

- 			$.uls.data.languages[code] = [options.target];

- 		} else {

- 			$.uls.data.languages[code] = [options.script, options.regions, options.autonym];

- 		}

- 	};

- 

- 	/**

- 	 * Removes a language from the langdb in run time.

- 	 *

- 	 * @param code string Language code to delete.

- 	 * @return true if the language was removed, false otherwise.

- 	 */

- 	$.uls.data.deleteLanguage = function( code ) {

- 		if ( $.uls.data.languages[code] ) {

- 			delete $.uls.data.languages[code];

- 

- 			return true;

- 		}

- 

- 		return false;

- 	};

- } ( jQuery ) );

@@ -1,360 +0,0 @@ 

- /**

-  * jQuery language filter plugin.

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- /**

-  * Usage: $( 'inputbox' ).languagefilter();

-  * The values for autocompletion is from the options.languages.

-  * The data is in the format of languagecode:languagename.

-  */

- (function ( $ ) {

- 	'use strict';

- 

- 	var LanguageFilter, delay;

- 

- 	LanguageFilter = function( element, options ) {

- 		this.$element = $( element );

- 		this.options = $.extend( {}, $.fn.regionselector.defaults, options );

- 		this.$element.addClass( 'languagefilter' );

- 		this.resultCount = 0;

- 		this.$suggestion = this.$element.parents().find( '#' + this.$element.data( 'suggestion' ) );

- 		this.$clear = this.$element.parents().find( '#' + this.$element.data( 'clear' ) );

- 		this.selectedLanguage = null;

- 

- 		this.listen();

- 	};

- 

- 	delay = ( function() {

- 		var timer = 0;

- 

- 		return function( callback, milliseconds ) {

- 			clearTimeout( timer );

- 			timer = setTimeout( callback, milliseconds );

- 		};

- 	} () );

- 

- 	LanguageFilter.prototype = {

- 		listen: function() {

- 			this.$element.on( 'keypress', $.proxy( this.keyup, this ) )

- 				.on( 'keyup', $.proxy( this.keyup, this ) );

- 

- 			if ( this.eventSupported( 'keydown' ) ) {

- 				this.$element.on( 'keydown', $.proxy( this.keyup, this ) );

- 			}

- 

- 			if ( this.$clear.length ) {

- 				this.$clear.on( 'click' , $.proxy( this.clear, this ) );

- 			}

- 

- 			this.toggleClear();

- 		},

- 

- 		keyup: function( e ) {

- 			var suggestion, query, languageFilter;

- 

- 			switch( e.keyCode ) {

- 				case 9: // Tab -> Autocomplete

- 					suggestion = this.$suggestion.val();

- 

- 					if ( suggestion && suggestion !== this.$element.val() ) {

- 						this.$element.val( suggestion );

- 						e.preventDefault();

- 						e.stopPropagation();

- 					}

- 					break;

- 				case 13: // Enter

- 					if ( !this.options.onSelect ) {

- 						break;

- 					}

- 

- 					// Avoid bubbling this 'enter' to background page elements

- 					e.preventDefault();

- 					e.stopPropagation();

- 

- 					query = $.trim( this.$element.val() ).toLowerCase();

- 

- 					if ( this.selectedLanguage ) {

- 						// this.selectLanguage will be populated from a matching search

- 						this.options.onSelect( this.selectedLanguage );

- 					} else if ( this.options.languages[query] ) {

- 						// Search is yet to happen (in timeout delay),

- 						// but we have a matching language code.

- 						this.options.onSelect( query );

- 					}

- 

- 					break;

- 				default:

- 					languageFilter = this;

- 

- 					if ( e.which < 32 &&

- 						e.which !== 8 // Backspace

- 					) {

- 						// ignore any ASCII control characters

- 						break;

- 					}

- 

- 					this.selectedLanguage = null;

- 

- 					delay( function() {

- 						if ( !languageFilter.$element.val() ) {

- 							languageFilter.clear();

- 						} else {

- 							languageFilter.options.$target.empty();

- 							languageFilter.search();

- 						}

- 					}, 300 );

- 

- 					this.toggleClear();

- 			}

- 		},

- 

- 		/**

- 		 * Clears the current search removing

- 		 * clear buttons and suggestions.

- 		 */

- 		deactivate: function() {

- 			this.$element.val( '' );

- 

- 			if ( !$.fn.uls.Constructor.prototype.isMobile() ) {

- 				this.$element.focus();

- 			}

- 

- 			this.toggleClear();

- 			this.autofill();

- 		},

- 

- 		/**

- 		 * Clears the search and shows all languages

- 		 */

- 		clear: function() {

- 			this.deactivate();

- 			this.$element.trigger( 'searchclear.uls' );

- 		},

- 

- 		/**

- 		 * Toggles the visibility of clear icon depending

- 		 * on whether there is anything to clear.

- 		 */

- 		toggleClear: function() {

- 			if ( !this.$clear.length ) {

- 				return;

- 			}

- 

- 			if ( this.$element.val() ) {

- 				this.$clear.show();

- 			} else {

- 				this.$clear.hide();

- 			}

- 		},

- 

- 		search: function() {

- 			var languagesInScript,

- 				query = $.trim( this.$element.val() ),

- 				languages = $.uls.data.getLanguagesByScriptGroup( this.options.languages ),

- 				scriptGroup, langNum, langCode;

- 

- 			this.resultCount = 0;

- 

- 			for ( scriptGroup in languages ) {

- 				languagesInScript = languages[scriptGroup];

- 

- 				languagesInScript.sort( $.uls.data.sortByAutonym );

- 

- 				for ( langNum = 0; langNum < languagesInScript.length; langNum++ ) {

- 					langCode = languagesInScript[langNum];

- 

- 					if ( query === '' || this.filter( langCode, query ) ) {

- 						if ( this.resultCount === 0 ) {

- 							// Autofill the first result.

- 							this.autofill( langCode );

- 						}

- 

- 						if ( query.toLowerCase() === langCode ) {

- 							this.selectedLanguage = langCode;

- 						}

- 

- 						if ( this.render( langCode ) ) {

- 							this.resultCount++;

- 						}

- 					}

- 				}

- 			}

- 

- 			// Also do a search by search API

- 			if( !this.resultCount && this.options.searchAPI && query ) {

- 				this.searchAPI( query );

- 			} else {

- 				this.resultHandler( query );

- 			}

- 		},

- 

- 		searchAPI: function( query ) {

- 			var languageFilter = this;

- 

- 			$.get( languageFilter.options.searchAPI, { search: query }, function( result ) {

- 				$.each( result.languagesearch, function( code, name ) {

- 					if ( languageFilter.resultCount === 0 ) {

- 						// Autofill the first result.

- 						languageFilter.autofill( code, name );

- 					}

- 

- 					if ( languageFilter.render( code ) ) {

- 						languageFilter.resultCount++;

- 					}

- 				} );

- 

- 				languageFilter.resultHandler( query );

- 			} );

- 		},

- 

- 		/**

- 		 * Handler method to be called once search is over.

- 		 * Based on search result triggers resultsfound or noresults events

- 		 * @param query string

- 		 */

- 		resultHandler: function( query ) {

- 			if ( this.resultCount === 0 ) {

- 				this.$suggestion.val( '' );

- 				this.$element.trigger( 'noresults.uls', query );

- 			} else {

- 				this.$element.trigger( 'resultsfound.uls', [query, this.resultCount] );

- 			}

- 		},

- 

- 		autofill: function( langCode, languageName ) {

- 			if ( !this.$suggestion.length ) {

- 				return;

- 			}

- 

- 			if ( !this.$element.val() ) {

- 				this.$suggestion.val( '' );

- 				return;

- 			}

- 

- 			this.selectedLanguage = langCode;

- 			languageName = languageName || this.options.languages[langCode];

- 

- 			if ( !languageName ) {

- 				return;

- 			}

- 

- 			var autonym,

- 				userInput = this.$element.val(),

- 				suggestion = userInput + languageName.substring( userInput.length, languageName.length );

- 

- 			if ( suggestion.toLowerCase() !== languageName.toLowerCase() ) {

- 				// see if it was autonym match

- 				autonym = $.uls.data.getAutonym( langCode ) || '';

- 				suggestion = userInput + autonym.substring( userInput.length, autonym.length );

- 

- 				if ( suggestion !== autonym ) {

- 					// Give up. It may be an ISO/script code match.

- 					suggestion = '';

- 				}

- 			}

- 

- 			// Make sure that it is a visual prefix.

- 			if ( !isVisualPrefix( userInput, suggestion ) ) {

- 				suggestion = '';

- 			}

- 

- 			this.$suggestion.val( suggestion );

- 		},

- 

- 		render: function( langCode ) {

- 			var $target = this.options.$target;

- 

- 			if ( !$target ) {

- 				return false;

- 			}

- 

- 			return $target.append( langCode );

- 		},

- 

- 		escapeRegex: function( value ) {

- 			return value.replace( /[\-\[\]{}()*+?.,\\\^$\|#\s]/g, '\\$&' );

- 		},

- 

- 		/**

- 		 * A search match happens if any of the following passes:

- 		 * a) Language name in current user interface language

- 		 * 'starts with' search string.

- 		 * b) Language autonym 'starts with' search string.

- 		 * c) ISO 639 code match with search string.

- 		 * d) ISO 15924 code for the script match the search string.

- 		 */

- 		filter: function( langCode, searchTerm ) {

- 			// FIXME script is ISO 15924 code. We might need actual name of script.

- 			var matcher = new RegExp( '^' + this.escapeRegex( searchTerm ), 'i' ),

- 				languageName = this.options.languages[langCode];

- 

- 			return matcher.test( languageName ) ||

- 				matcher.test( $.uls.data.getAutonym( langCode ) ) ||

- 				matcher.test( langCode ) ||

- 				matcher.test( $.uls.data.getScript( langCode ) );

- 		},

- 

- 		eventSupported: function ( eventName ) {

- 			var isSupported = eventName in this.$element;

- 

- 			if ( !isSupported ) {

- 				this.$element.setAttribute( eventName, 'return;' );

- 				isSupported = typeof this.$element[eventName] === 'function';

- 			}

- 

- 			return isSupported;

- 		}

- 	};

- 

- 	$.fn.languagefilter = function( option ) {

- 		return this.each( function() {

- 			var $this = $( this ),

- 				data = $this.data( 'languagefilter' ),

- 				options = typeof option === 'object' && option;

- 

- 			if ( !data ) {

- 				$this.data( 'languagefilter', ( data = new LanguageFilter( this, options ) ) );

- 			}

- 

- 			if ( typeof option === 'string' ) {

- 				data[option]();

- 			}

- 		} );

- 	};

- 

- 	$.fn.languagefilter.defaults = {

- 		$target: null, // Where to append the results

- 		searchAPI: null,

- 		languages: null, // Languages as code:name format.

- 		onSelect: null // Language select handler - like enter in filter textbox.

- 	};

- 

- 	$.fn.languagefilter.Constructor = LanguageFilter;

- 

- 	/**

- 	 * Check if a prefix is visually prefix of a string

- 	 * @param prefix string

- 	 * @param string string

- 	 */

- 	function isVisualPrefix( prefix, string ) {

- 		// Pre-base vowel signs of Indic languages. A vowel sign is called pre-base if

- 		// consonant + vowel becomes [vowel][consonant] when rendered. Eg: ക + െ => കെ

- 		var prebases = 'െേൈൊോൌெேைொோௌେୈୋୌિਿिিেৈোৌෙේෛොෝෞ';

- 		return prebases.indexOf( string[prefix.length] ) <= 0;

- 	}

- } ( jQuery ) );

@@ -1,396 +0,0 @@ 

- /**

-  * Universal Language Selector

-  * Language category display component - Used for showing the search results,

-  * grouped by regions, scripts

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- ( function ( $ ) {

- 	'use strict';

- 

- 	var noResultsTemplate, LanguageCategoryDisplay;

- 

- 	/*jshint multistr:true */

- 	noResultsTemplate = '<div class="twelve columns uls-no-results-view hide">\

- 		<h2 data-i18n="uls-no-results-found" class="eleven columns offset-by-one uls-no-results-found-title">\

- 		No results found\

- 		</h2>\

- 		<div id="uls-no-found-more" class="uls-no-found-more">\

- 			<div class="ten columns offset-by-one">\

- 				<p>\

- 					<span data-i18n="uls-search-help">You can search by language name, \

- 					script name, ISO code of language or \

- 					you can browse by region:</span>\

- 					<a class="uls-region-link" data-i18n="uls-region-AM" data-region="AM">America</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-EU" data-region="EU">Europe</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-ME" data-region="ME">Middle East</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-AF" data-region="AF">Africa</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-AS" data-region="AS">Asia</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-PA" data-region="PA">Pacific</a>, \

- 					<a class="uls-region-link" data-i18n="uls-region-WW" data-region="WW">Worldwide</a>.\

- 				</p>\

- 			</div>\

- 		</div>\

- 	</div>';

- 	/*jshint multistr:false */

- 

- 	LanguageCategoryDisplay = function ( element, options ) {

- 		this.$element = $( element );

- 		this.options = $.extend( {}, $.fn.lcd.defaults, options );

- 		this.$element.addClass( 'lcd' );

- 		this.regionLanguages = {};

- 		this.renderTimeout = null;

- 		this.cachedQuicklist = null;

- 

- 		this.$element.append( $( noResultsTemplate ) );

- 		this.$noResults = this.$element.children( '.uls-no-results-view' );

- 

- 		this.render();

- 		this.listen();

- 	};

- 

- 	LanguageCategoryDisplay.prototype = {

- 		constructor: LanguageCategoryDisplay,

- 

- 		/**

- 		 * Adds language to the language list.

- 		 * @param {string} langCode

- 		 * @param {string} [regionCode]

- 		 * @return {bool} Whether the language was added.

- 		 */

- 		append: function ( langCode, regionCode ) {

- 			var lcd = this, i, regions;

- 

- 			if ( !this.options.languages[langCode] ) {

- 				// Language is unknown or not in the list of languages for this context.

- 				return false;

- 			}

- 

- 			if ( regionCode ) {

- 				regions = [regionCode];

- 			} else {

- 				regions = $.uls.data.getRegions( langCode );

- 			}

- 

- 			// Worldwides only displayed once

- 			if ( $.inArray( 'WW', regions ) > -1 ) {

- 				regions = ['WW'];

- 			}

- 

- 			for ( i = 0; i < regions.length; i++ ) {

- 				this.regionLanguages[regions[i]].push( langCode );

- 			}

- 

- 			// Work around the bad interface, delay rendering until we have got

- 			// all the languages to speed up performance.

- 			window.clearTimeout( this.renderTimeout );

- 			this.renderTimeout = window.setTimeout( function () {

- 				lcd.renderRegions();

- 			}, 50 );

- 

- 			return true;

- 		},

- 

- 		render: function () {

- 			var $section,

- 				lcd = this,

- 				regions = [],

- 				regionNames = {

- 					// These are fallback text when i18n library not present

- 					WW: 'Worldwide',

- 					SP: 'Special',

- 					AM: 'America',

- 					EU: 'Europe',

- 					ME: 'Middle East',

- 					AS: 'Asia',

- 					AF: 'Africa',

- 					PA: 'Pacific'

- 				};

- 

- 			regions.push( this.buildQuicklist() );

- 

- 			$.each( $.uls.data.regiongroups, function ( regionCode ) {

- 				lcd.regionLanguages[regionCode] = [];

- 				// Don't show the region unless it was enabled

- 				if ( $.inArray( regionCode, lcd.options.showRegions ) === -1 ) {

- 					return;

- 				}

- 

- 				$section = $( '<div>' )

- 					.addClass( 'eleven columns offset-by-one uls-lcd-region-section hide' )

- 					.attr( 'id', regionCode )

- 					.append(

- 						$( '<h3>' )

- 						.attr( 'data-i18n', 'uls-region-' + regionCode )

- 						.addClass( 'eleven columns uls-lcd-region-title' )

- 						.text( regionNames[regionCode] )

- 					);

- 

- 				regions.push( $section );

- 			} );

- 

- 			lcd.$element.append( regions );

- 

- 			this.i18n();

- 		},

- 

- 		/**

- 		 * Renders a region and displays it if it has content.

- 		 */

- 		renderRegions: function () {

- 			var lcd = this, languages,

- 				items = lcd.options.itemsPerColumn,

- 				columns = 4;

- 

- 			this.$noResults.addClass( 'hide' );

- 			this.$element.find( '.uls-lcd-region-section' ).each( function () {

- 				var $region = $( this ),

- 					regionCode = $region.attr( 'id' );

- 

- 				if ( $region.is( '#uls-lcd-quicklist' ) ) {

- 					return;

- 				}

- 

- 				$region.children( '.uls-language-block' ).remove();

- 

- 				languages = lcd.regionLanguages[regionCode];

- 				if ( !languages || languages.length === 0 ) {

- 					$region.addClass( 'hide' );

- 					return;

- 				}

- 

- 				lcd.renderRegion( $region, languages, items, columns );

- 				$region.removeClass( 'hide' );

- 

- 				lcd.regionLanguages[regionCode] = [];

- 			} );

- 

- 		},

- 

- 		/**

- 		 * Adds given languages sorted into rows and columns into given element.

- 		 * @param {jQuery} $region Element to add language list.

- 		 * @param {array} languages List of language codes.

- 		 * @param {number} itemsPerColumn How many languages fit in a column.

- 		 * @param {number} columnsPerRow How many columns fit in a row.

- 		 */

- 		renderRegion: function( $region, languages, itemsPerColumn, columnsPerRow ) {

- 			var i, lastItem, currentScript, nextScript, force,

- 				len = languages.length,

- 				items = [],

- 				columns = [],

- 				rows = [];

- 

- 			for ( i = 0; i < len; i++ ) {

- 				force = false;

- 				nextScript = $.uls.data.getScriptGroupOfLanguage( languages[i+1] );

- 

- 				lastItem = len - i === 1;

- 				// Force column break if script changes and column has more than one row already

- 				if ( i === 0 ) {

- 					currentScript = $.uls.data.getScriptGroupOfLanguage( languages[i] );

- 				} else if ( currentScript !== nextScript && items.length > 1 ) {

- 					force = true;

- 				}

- 				currentScript = nextScript;

- 

- 				items.push( this.renderItem( languages[i] ) );

- 

- 				if ( items.length >= itemsPerColumn || lastItem || force ) {

- 					columns.push( $( '<ul>' ).addClass( 'three columns' ).append( items ) );

- 					items = [];

- 					if ( columns.length >= columnsPerRow || lastItem ) {

- 						rows.push( $( '<div>' ).addClass( 'row uls-language-block' ).append( columns ) );

- 						columns = [];

- 					}

- 				}

- 			}

- 

- 			$region.append( rows );

- 		},

- 

- 		/**

- 		 * Creates dom node representing one item in language list.

- 		 * @param {string} code Language code

- 		 * @return {Element}

- 		 */

- 		renderItem: function( code ) {

- 			var a, name, autonym, li;

- 

- 			name = this.options.languages[code];

- 			autonym = $.uls.data.getAutonym( code ) || name || code;

- 

- 			// Not using jQuery as this is performance hotspot

- 			li = document.createElement( 'li' );

- 			li.title = name;

- 			li.lang = code;

- 			li.dir = $.uls.data.getDir( code );

- 			li.setAttribute( 'data-code', code );

- 

- 			a = document.createElement( 'a' );

- 			a.appendChild( document.createTextNode( autonym ) );

- 			a.className = 'autonym';

- 

- 			li.appendChild( a );

- 			if ( this.options.languageDecorator ) {

- 				this.options.languageDecorator( $( a ), code );

- 			}

- 			return li;

- 		},

- 

- 		i18n: function ( ) {

- 			this.$element.find( '[data-i18n]' ).i18n();

- 		},

- 

- 		/**

- 		 * Adds quicklist as a region.

- 		 */

- 		quicklist: function () {

- 			this.$element.find( '#uls-lcd-quicklist' ).removeClass( 'hide' );

- 		},

- 

- 		buildQuicklist: function () {

- 			var quickList, $quickListSection, $quickListSectionTitle;

- 

- 			if ( this.cachedQuicklist !== null ) {

- 				return this.cachedQuicklist;

- 			}

- 

- 			if ( $.isFunction( this.options.quickList ) ) {

- 				this.options.quickList = this.options.quickList();

- 			}

- 

- 			if ( !this.options.quickList ) {

- 				this.cachedQuicklist = $( [] );

- 				return this.cachedQuicklist;

- 			}

- 

- 			// Pick only the first elements, because we don't have room for more

- 			quickList = this.options.quickList;

- 			quickList = quickList.slice( 0, 16 );

- 			quickList.sort( $.uls.data.sortByAutonym );

- 

- 			$quickListSection = $( '<div>' )

- 				.addClass( 'eleven columns offset-by-one uls-lcd-region-section' )

- 				.attr( 'id', 'uls-lcd-quicklist' );

- 

- 			$quickListSectionTitle = $( '<h3>' )

- 				.attr( 'data-i18n', 'uls-common-languages' )

- 				.addClass( 'eleven columns uls-lcd-region-title' )

- 				.text( 'Common languages' ); // This is placeholder text if jquery.i18n not present

- 			$quickListSection.append( $quickListSectionTitle );

- 

- 			this.renderRegion( $quickListSection, quickList, 4, 4 );

- 

- 			$quickListSectionTitle.i18n();

- 

- 			this.cachedQuicklist = $quickListSection;

- 			return this.cachedQuicklist;

- 		},

- 

- 		show: function () {

- 			if ( !this.regionDivs ) {

- 				this.render();

- 			}

- 		},

- 

- 		empty: function () {

- 			this.$element.find( '#uls-lcd-quicklist' ).addClass( 'hide' );

- 		},

- 

- 		focus: function () {

- 			this.$element.focus();

- 		},

- 

- 		noResults: function () {

- 			this.$noResults.removeClass( 'hide' );

- 			if ( this.$noResults.find( '.uls-lcd-region-title' ).length ) {

- 				return;

- 			}

- 

- 			var $suggestions = this.buildQuicklist().clone();

- 			$suggestions.find( 'h3' )

- 				.data( 'i18n', 'uls-no-results-suggestion-title' )

- 				.text( 'You may be interested in:' )

- 				.i18n();

- 			this.$noResults.find( 'h2' ).after( $suggestions );

- 		},

- 

- 		listen: function () {

- 			var lcd = this;

- 

- 			if ( this.options.clickhandler ) {

- 				this.$element.on( 'click', '.row li', function () {

- 					lcd.options.clickhandler.call( this, $( this ).data( 'code' ) );

- 				} );

- 			}

- 

- 			// The region section need to be in sync with the map filter.

- 			lcd.$element.scroll( function () {

- 				var inview, inviewRegion,

- 					$ulsLanguageList = $( this ),

- 					scrollTop = $ulsLanguageList.position().top,

- 					scrollBottom = $ulsLanguageList.height();

- 

- 				// The region section need to be in sync with the map filter.

- 				inviewRegion = 'WW';

- 				lcd.$element.find( '.uls-lcd-region-section' ).each( function () {

- 					var $lcdRegionSection = $( this ),

- 						top = $lcdRegionSection.position().top,

- 						height = $lcdRegionSection.height(),

- 						padding = 10;

- 

- 					if ( top - padding <= scrollTop && height > scrollBottom ) {

- 						inviewRegion = $lcdRegionSection.attr( 'id' );

- 					}

- 				} );

- 

- 				// highlight the region visible while scrolling in the map.

- 				inview = $.uls.data.regiongroups[inviewRegion];

- 				if ( !$( '#uls-region-' + inview ).hasClass( 'active' ) ) {

- 					$( '.regionselector' ).removeClass( 'active' );

- 					$( '#uls-region-' + inview ).addClass( 'active' );

- 				}

- 			} );

- 		}

- 	};

- 

- 	$.fn.lcd = function ( option ) {

- 		return this.each( function () {

- 			var $this = $( this ),

- 				data = $this.data( 'lcd' ),

- 				options = typeof option === 'object' && option;

- 

- 			if ( !data ) {

- 				$this.data( 'lcd', ( data = new LanguageCategoryDisplay( this, options ) ) );

- 			}

- 

- 			if ( typeof option === 'string') {

- 				data[option]();

- 			}

- 		} );

- 	};

- 

- 	$.fn.lcd.defaults = {

- 		languages: null,

- 		showRegions: ['WW', 'AM', 'EU', 'ME', 'AF', 'AS', 'PA'],

- 		itemsPerColumn: 8,

- 		languageDecorator: null

- 	};

- 

- 	$.fn.lcd.Constructor = LanguageCategoryDisplay;

- } ( jQuery ) );

@@ -1,1 +0,0 @@ 

- (function(e){"use strict";var t,n;t='<div class="grid uls-menu uls-wide"> 			<div class="row"> 				<span id="uls-close" class="uls-icon-close"></span> 			</div> 			<div class="row"> 				<div class="uls-title-region seven columns">					<h1 data-i18n="uls-select-language" class="uls-title">Select Language</h1>				</div>				<div class="five columns uls-map-block" id="uls-map-block">					<div class="row">						<div data-regiongroup="1" id="uls-region-1" class="three columns uls-region uls-region-1">							<a data-i18n="uls-region-WW">Worldwide</a>						</div>						<div class="nine columns">							<div class="row uls-worldmap">								<div data-regiongroup="2" id="uls-region-2" class="four columns uls-region">									<a data-i18n="uls-region-AM">America</a>								</div>								<div data-regiongroup="3" id="uls-region-3" class="four columns uls-region">									<a><span data-i18n="uls-region-EU">Europe</span><br>									<span data-i18n="uls-region-ME">Middle East</span><br>									<span data-i18n="uls-region-AF">Africa</span></a>								</div>								<div data-regiongroup="4" id="uls-region-4" class="four columns uls-region">									<a><span data-i18n="uls-region-AS">Asia</span><br>									<span data-i18n="uls-region-PA">Pacific</span></a>								</div>							</div>						</div>					</div>				</div>			</div>			<div id="search" class="row uls-search"> 				<div class="one column">					<span class="uls-search-label"></span>				</div>				<div class="ten columns">					<div id="uls-search-input-block" class="uls-search-input-block">						<input type="text" class="uls-filterinput uls-filtersuggestion" id="uls-filtersuggestion" disabled="true"							autocomplete="off" /> <input type="text" class="uls-filterinput uls-languagefilter" id="uls-languagefilter"							data-clear="uls-languagefilter-clear" data-suggestion="uls-filtersuggestion"							placeholder="Language search" autocomplete="off" />					</div>				</div>				<div class="one column">					<span id="uls-languagefilter-clear" class="uls-languagefilter-clear"></span>				</div>			</div>			<div class="row uls-language-list"></div>			<div class="row" id="uls-settings-block"></div>		</div>';n=function(n,r){this.$element=e(n);this.options=e.extend({},e.fn.uls.defaults,r);this.$menu=e(t);this.languages=this.options.languages;for(var i in this.languages){if(e.uls.data.languages[i]===undefined){delete this.languages[i]}}this.left=this.options.left;this.top=this.options.top;this.shown=false;this.initialized=false;this.$languageFilter=this.$menu.find("#uls-languagefilter");this.$regionFilters=this.$menu.find(".uls-region");this.$resultsView=this.$menu.find("div.uls-language-list");this.render();this.listen();this.ready()};n.prototype={constructor:n,ready:function(){if(this.options.onReady){this.options.onReady.call(this)}},visible:function(){if(this.options.onVisible){this.options.onVisible.call(this)}},position:function(){var t=e.extend({},this.$element.offset(),{height:this.$element[0].offsetHeight});return{top:this.top!==undefined?this.top:t.top+t.height,left:this.left!==undefined?this.left:"25%"}},show:function(){this.$menu.css(this.position());if(this.options.compact){this.$menu.addClass("uls-compact")}if(!this.initialized){e("body").prepend(this.$menu);this.i18n();this.defaultSearch();this.initialized=true}e(".uls-menu").hide();this.$menu.show();this.$menu.scrollIntoView();this.shown=true;if(!this.isMobile()){this.$languageFilter.focus()}this.visible()},i18n:function(){if(e.i18n){this.$menu.find("[data-i18n]").i18n();this.$languageFilter.prop("placeholder",e.i18n("uls-search-placeholder"))}},defaultSearch:function(){this.$resultsView.lcd("empty");this.$regionFilters.regionselector("show")},hide:function(){this.$menu.hide();this.shown=false},render:function(){},noresults:function(){e(".regionselector").removeClass("active");this.$resultsView.lcd("noResults")},success:function(){e(".regionselector").removeClass("active");this.$resultsView.show()},listen:function(){var t,n=this;this.$element.on("click",e.proxy(this.click,this));this.$languageFilter.on("searchclear.uls",e.proxy(this.defaultSearch,this));this.$languageFilter.on("noresults.uls",e.proxy(this.noresults,this));this.$languageFilter.on("resultsfound.uls",e.proxy(this.success,this));this.$menu.find("#uls-close").on("click",e.proxy(this.cancel,this));this.$menu.on("click",function(e){e.stopPropagation()});this.$menu.on("keypress",e.proxy(this.keypress,this)).on("keyup",e.proxy(this.keyup,this));if(this.eventSupported("keydown")){this.$menu.on("keydown",e.proxy(this.keypress,this))}t=this.$resultsView.lcd({languages:this.languages,quickList:this.options.quickList,clickhandler:e.proxy(this.select,this),source:this.$languageFilter,showRegions:this.options.showRegions,languageDecorator:this.options.languageDecorator}).data("lcd");this.$languageFilter.languagefilter({$target:t,languages:this.languages,searchAPI:this.options.searchAPI,onSelect:e.proxy(this.select,this)});this.$menu.find(".uls-region, .uls-region-link").regionselector({$target:t,languages:this.languages,success:function(e){n.$languageFilter.languagefilter("deactivate");if(e.regionGroup===1){t.quicklist()}n.success()},noresults:function(){n.$languageFilter.languagefilter("clear")}});e("html").click(e.proxy(this.cancel,this))},select:function(e){this.hide();this.$languageFilter.trigger("searchclear");if(this.options.onSelect){this.options.onSelect.call(this,e)}},cancel:function(){this.hide();if(this.options.onCancel){this.options.onCancel.call(this)}},keyup:function(e){if(!this.shown){return}if(e.keyCode===27){this.cancel();e.preventDefault();e.stopPropagation()}},keypress:function(e){if(!this.shown){return}if(e.keyCode===27){this.cancel();e.preventDefault();e.stopPropagation()}},click:function(e){e.stopPropagation();e.preventDefault();if(this.shown){this.hide()}else{this.show()}},eventSupported:function(e){var t=e in this.$menu;if(!t){this.$element.setAttribute(e,"return;");t=typeof this.$element[e]==="function"}return t},isMobile:function(){return navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry)/)}};e.fn.uls=function(t){return this.each(function(){var r=e(this),i=r.data("uls"),s=typeof t==="object"&&t;if(!i){r.data("uls",i=new n(this,s))}if(typeof t==="string"){i[t]()}})};e.fn.uls.defaults={onSelect:null,searchAPI:null,languages:e.uls.data.getAutonyms(),quickList:null,compact:false,showRegions:["WW","AM","EU","ME","AF","AS","PA"],languageDecorator:null};if(!e.fn.i18n){e.fn.i18n=function(){}}e.fn.scrollIntoView=function(){return this.each(function(){var t,n=e(window),r=n.height(),i=n.scrollTop(),s=i+r,o=e(this),u=o.height(),a=o.offset().top,f=a+u;if(a<i||f>s){if(i>a){t=a}else{t=f-r}e("html, body").stop().animate({scrollTop:t},500)}})};e.fn.uls.Constructor=n})(jQuery);(function(e){"use strict";e.uls=e.uls||{};e.uls.data={languages:{aa:["Latn",["AF"],"Qafár af"],ab:["Cyrl",["EU"],"Аҧсшәа"],ace:["Latn",["AS","PA"],"Acèh"],ady:["Cyrl",["EU","ME"],"Адыгэбзэ"],"ady-cyrl":["ady"],"ady-latn":["Latn",["EU","ME"],"Adygabze"],aeb:["Arab",["AF"],"زَوُن"],af:["Latn",["AF"],"Afrikaans"],ahr:["Deva",["AS"],"अहिराणी"],ak:["Latn",["AF"],"Akan"],akz:["Latn",["AM"],"Albaamo innaaɬiilka"],aln:["Latn",["EU"],"Gegë"],am:["Ethi",["AF"],"አማርኛ"],an:["Latn",["EU"],"aragonés"],ang:["Latn",["EU"],"Ænglisc"],anp:["Deva",["AS"],"अङ्गिका"],ar:["Arab",["ME"],"العربية"],arc:["Syrc",["ME"],"ܐܪܡܝܐ"],arn:["Latn",["AM"],"mapudungun"],aro:["Latn",["AM"],"Araona"],arq:["Arab",["AF"],"جازايرية"],ary:["Latn",["ME"],"Maġribi"],arz:["Arab",["ME"],"مصرى"],as:["Beng",["AS"],"অসমীয়া"],ase:["Sgnw",["AM"],"American sign language"],ast:["Latn",["EU"],"asturianu"],av:["Cyrl",["EU"],"авар"],avk:["Latn",["WW"],"Kotava"],ay:["Latn",["AM"],"Aymar aru"],az:["az-latn"],"az-latn":["Latn",["EU","ME"],"azərbaycanca"],"az-arab":["Arab",["EU","ME"],"آذربايجانجا"],"az-cyrl":["Latn",["EU","ME"],"азәрбајҹанҹа"],azb:["az-arab"],ba:["Cyrl",["EU"],"башҡортса"],bar:["Latn",["EU"],"Boarisch"],"bat-smg":["sgs"],"bbc-latn":["Latn",["AS"],"Batak Toba"],"bbc-batk":["Batk",["AS"],"Batak Toba"],bbc:["Latn",["AS"],"Batak Toba"],bcc:["Arab",["AS","ME"],"بلوچی مکرانی"],bcl:["Latn",["AS"],"Bikol Central"],"be-tarask":["Cyrl",["EU"],"беларуская (тарашкевіца)"],"be-x-old":["be-tarask"],be:["Cyrl",["EU"],"беларуская"],bew:["Latn",["AS"],"Bahasa Betawi"],bfq:["Taml",["AS"],"படகா"],bg:["Cyrl",["EU"],"български"],bh:["Deva",["AS"],"भोजपुरी"],bho:["Deva",["AS"],"भोजपुरी"],bi:["Latn",["PA"],"Bislama"],bjn:["Latn",["AS"],"Bahasa Banjar"],bm:["Latn",["AF"],"bamanankan"],bn:["Beng",["AS"],"বাংলা"],bo:["Tibt",["AS"],"བོད་ཡིག"],bpy:["Beng",["AS"],"বিষ্ণুপ্রিয়া মণিপুরী"],bqi:["Arab",["ME"],"بختياري"],br:["Latn",["EU"],"brezhoneg"],brh:["Latn",["ME","AS"],"Bráhuí"],brx:["Deva",["AS"],"बड़ो"],bs:["Latn",["EU"],"bosanski"],bto:["Latn",["AS"],"Iriga Bicolano"],bug:["Bugi",["AS"],"ᨅᨔ ᨕᨘᨁᨗ"],bxr:["Cyrl",["AS"],"буряад"],ca:["Latn",["EU"],"català"],"cbk-zam":["Latn",["AS"],"Chavacano de Zamboanga"],cdo:["Latn",["AS"],"Mìng-dĕ̤ng-ngṳ̄"],ce:["Cyrl",["EU"],"нохчийн"],ceb:["Latn",["AS"],"Cebuano"],ch:["Latn",["PA"],"Chamoru"],cho:["Latn",["AM"],"Choctaw"],chr:["Cher",["AM"],"ᏣᎳᎩ"],chy:["Latn",["AM"],"Tsetsêhestâhese"],ckb:["Arab",["ME"],"کوردی"],co:["Latn",["EU"],"corsu"],cps:["Latn",["AS"],"Capiceño"],cr:["Cans",["AM"],"ᓀᐦᐃᔭᐍᐏᐣ"],"cr-cans":["cr"],"cr-latn":["Latn",["AM"],"Nēhiyawēwin"],crh:["Latn",["EU"],"qırımtatarca"],"crh-cyrl":["Cyrl",["EU"],"къырымтатарджа"],"crh-latn":["crh"],cs:["Latn",["EU"],"česky"],csb:["Latn",["EU"],"kaszëbsczi"],cu:["Cyrl",["EU"],"словѣньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ"],cv:["Cyrl",["EU"],"Чӑвашла"],cy:["Latn",["EU"],"Cymraeg"],da:["Latn",["EU"],"dansk"],"de-at":["Latn",["EU"],"Österreichisches Deutsch"],"de-ch":["Latn",["EU"],"Schweizer Hochdeutsch"],"de-formal":["Latn",["EU"],"Deutsch (Sie-Form)"],de:["Latn",["EU"],"Deutsch"],diq:["Latn",["EU","AS"],"Zazaki"],dsb:["Latn",["EU"],"dolnoserbski"],dtp:["Latn",["AS"],"Dusun Bundu-liwan"],dv:["Thaa",["AS"],"ދިވެހިބަސް"],dz:["Tibt",["AS"],"ཇོང་ཁ"],ee:["Latn",["AF"],"eʋegbe"],egl:["Latn",["EU"],"Emiliàn"],el:["Grek",["EU"],"Ελληνικά"],eml:["Latn",["EU"],"emiliàn e rumagnòl"],"en-ca":["Latn",["AM"],"Canadian English"],"en-gb":["Latn",["EU","AS","PA"],"British English"],en:["Latn",["EU","AM","AF","ME","AS","PA","WW"],"English"],eo:["Latn",["WW"],"Esperanto"],"es-419":["Latn",["AM"],"español de America Latina"],"es-formal":["Latn",["EU","AM","AF","WW"],"español (formal)"],es:["Latn",["EU","AM","AF","WW"],"español"],esu:["Latn",["AM"],"Yup'ik"],et:["Latn",["EU"],"eesti"],eu:["Latn",["EU"],"euskara"],ext:["Latn",["EU"],"estremeñu"],fa:["Arab",["ME"],"فارسی"],ff:["Latn",["AF"],"Fulfulde"],fi:["Latn",["EU"],"suomi"],fil:["tl"],fit:["Latn",["EU"],"meänkieli"],"fiu-vro":["vro"],fj:["Latn",["PA"],"Na Vosa Vakaviti"],fo:["Latn",["EU"],"føroyskt"],fr:["Latn",["EU","AM","WW"],"français"],frc:["Latn",["AM"],"français cadien"],frp:["Latn",["EU"],"arpetan"],frr:["Latn",["EU"],"Nordfriisk"],fur:["Latn",["EU"],"furlan"],fy:["Latn",["EU"],"Frysk"],ga:["Latn",["EU"],"Gaeilge"],gag:["Latn",["EU"],"Gagauz"],gah:["Latn",["AS"],"Alekano"],"gan-hans":["Hans",["AS"],"赣语(简体)"],"gan-hant":["gan"],gan:["Hant",["AS"],"贛語"],gbz:["Latn",["AS"],"Dari"],gcf:["Latn",["AM"],"Guadeloupean Creole French"],gd:["Latn",["EU"],"Gàidhlig"],gl:["Latn",["EU"],"galego"],glk:["Arab",["ME"],"گیلکی"],gn:["Latn",["AM"],"Avañe'ẽ"],gom:["Deva",["AS"],"कोंकणी"],"gom-deva":["gom"],"gom-latn":["Latn",["AS"],"Konknni"],got:["Goth",["EU"],"𐌲𐌿𐍄𐌹𐍃𐌺"],grc:["Grek",["EU"],"Ἀρχαία ἑλληνικὴ"],gsw:["Latn",["EU"],"Alemannisch"],gu:["Gujr",["AS"],"ગુજરાતી"],guc:["Latn",["AM"],"Wayúu"],gur:["Latn",["AF"],"Gurenɛ"],gv:["Latn",["EU"],"Gaelg"],"ha-arab":["Arab",["AF"],"هَوُسَ"],"ha-latn":["Latn",["AF"],"Hausa"],ha:["ha-latn"],hak:["Latn",["AS"],"Hak-kâ-fa"],haw:["Latn",["AM","PA"],"Hawai`i"],he:["Hebr",["ME"],"עברית"],hi:["Deva",["AS"],"हिन्दी"],hif:["Latn",["PA","AS"],"Fiji Hindi"],"hif-deva":["Deva",["AS"],"फ़ीजी हिन्दी"],"hif-latn":["hif"],hil:["Latn",["AS"],"Ilonggo"],hne:["Deva",["AS"],"छत्तीसगढ़ी"],ho:["Latn",["PA"],"Hiri Motu"],hr:["Latn",["EU"],"hrvatski"],hsb:["Latn",["EU"],"hornjoserbsce"],hsn:["Hans",["AS"],"湘语"],ht:["Latn",["AM"],"Kreyòl ayisyen"],"hu-formal":["Latn",["EU"],"Magyar (magázó)"],hu:["Latn",["EU"],"magyar"],hy:["Armn",["EU","ME"],"Հայերեն"],hz:["Latn",["AF"],"Otsiherero"],ia:["Latn",["WW"],"interlingua"],id:["Latn",["AS"],"Bahasa Indonesia"],ie:["Latn",["WW"],"Interlingue"],ig:["Latn",["AF"],"Igbo"],ii:["Yiii",["AS"],"ꆇꉙ"],ik:["Latn",["AM"],"Iñupiak"],"ike-cans":["Cans",["AM"],"ᐃᓄᒃᑎᑐᑦ"],"ike-latn":["Latn",["AM"],"inuktitut"],ilo:["Latn",["AS"],"Ilokano"],inh:["Cyrl",["EU"],"ГӀалгӀай"],io:["Latn",["WW"],"Ido"],is:["Latn",["EU"],"íslenska"],it:["Latn",["EU"],"italiano"],iu:["Cans",["AM"],"ᐃᓄᒃᑎᑐᑦ"],ja:["Jpan",["AS"],"日本語"],jam:["Latn",["AM"],"Patois"],jbo:["Latn",["WW"],"lojban"],jut:["Latn",["EU"],"jysk"],jv:["Latn",["AS","PA"],"Basa Jawa"],"jv-java":["Java",["AS","PA"],"ꦧꦱꦗꦮ"],ka:["Geor",["EU"],"ქართული"],kaa:["Latn",["AS"],"Qaraqalpaqsha"],kab:["Latn",["AF","EU"],"Taqbaylit"],"kbd-cyrl":["kbd"],"kbd-latn":["Latn",["EU"],"Qabardjajəbza"],kbd:["Cyrl",["EU","ME"],"Адыгэбзэ"],kea:["Latn",["AF"],"Kabuverdianu"],kg:["Latn",["AF"],"Kongo"],kgp:["Latn",["AM"],"Kaingáng"],khw:["Arab",["ME","AS"],"کھوار"],ki:["Latn",["AF"],"Gĩkũyũ"],kiu:["Latn",["EU","ME"],"Kırmancki"],kj:["Latn",["AF"],"Kwanyama"],kjh:["Cyrl",["AS"],"хакас"],kk:["kk-cyrl"],"kk-arab":["Arab",["EU","AS"],"قازاقشا (تٶتە)"],"kk-cn":["kk-arab"],"kk-cyrl":["Cyrl",["EU","AS"],"қазақша"],"kk-kz":["kk-cyrl"],"kk-latn":["Latn",["EU","AS","ME"],"qazaqşa"],"kk-tr":["kk-latn"],kl:["Latn",["AM","EU"],"kalaallisut"],km:["Khmr",["AS"],"ភាសាខ្មែរ"],kn:["Knda",["AS"],"ಕನ್ನಡ"],"ko-kp":["Kore",["AS"],"한국어 (조선)"],ko:["Kore",["AS"],"한국어"],koi:["Cyrl",["EU"],"Перем Коми"],kr:["Latn",["AF"],"Kanuri"],krc:["Cyrl",["EU"],"къарачай-малкъар"],kri:["Latn",["AF"],"Krio"],krj:["Latn",["ME","EU"],"Kinaray-a"],krl:["Latn",["EU"],"Karjala"],"ks-arab":["Arab",["AS"],"کٲشُر"],"ks-deva":["Deva",["AS"],"कॉशुर"],ks:["Arab",["AS"],"کٲشُر"],ksf:["Latn",["AF"],"Bafia"],ksh:["Latn",["EU"],"Ripoarisch"],ku:["ku-latn"],"ku-arab":["Arab",["EU","ME"],"كوردي"],"ku-latn":["Latn",["EU","ME"],"Kurdî"],kv:["Cyrl",["EU"],"коми"],kw:["Latn",["EU"],"kernowek"],ky:["Cyrl",["AS"],"Кыргызча"],la:["Latn",["EU"],"Latina"],lad:["lad-latn"],"lad-latn":["Latn",["ME","EU","AM"],"Ladino"],"lad-hebr":["Hebr",["ME","EU","AM"],"לאדינו"],lb:["Latn",["EU"],"Lëtzebuergesch"],lbe:["Cyrl",["EU"],"лакку"],lez:["Cyrl",["EU"],"лезги"],lfn:["Latn",["WW"],"Lingua Franca Nova"],lg:["Latn",["AF"],"Luganda"],li:["Latn",["EU"],"Limburgs"],lij:["Latn",["EU"],"Ligure"],liv:["Latn",["EU"],"Līvõ kēļ"],lld:["Latn",["EU"],"Ladin"],lmo:["Latn",["EU"],"lumbaart"],ln:["Latn",["AF"],"lingála"],lo:["Laoo",["AS"],"ລາວ"],loz:["Latn",["AF"],"Silozi"],lt:["Latn",["EU"],"lietuvių"],lrc:["Arab",["AS"],"لوری"],ltg:["Latn",["EU"],"latgaļu"],lud:["Latn",["EU"],"lüüdi"],lus:["Latn",["AS"],"Mizo ţawng"],lut:["Latn",["AM"],"dxʷləšucid"],lv:["Latn",["EU"],"latviešu"],lzh:["Hant",["AS"],"文言"],lzz:["Latn",["EU","ME"],"Lazuri"],mai:["Deva",["AS"],"मैथिली"],"map-bms":["Latn",["AS"],"Basa Banyumasan"],mdf:["Cyrl",["EU"],"мокшень"],mfe:["Latn",["AM"],"Morisyen"],mg:["Latn",["AF"],"Malagasy"],mh:["Latn",["PA"],"Ebon"],mhr:["Cyrl",["EU"],"олык марий"],mi:["Latn",["PA"],"Māori"],mic:["Latn",["AM"],"Mi'kmaq"],min:["Latn",["AS"],"Baso Minangkabau"],mk:["Cyrl",["EU"],"македонски"],ml:["Mlym",["AS","ME"],"മലയാളം"],mn:["Cyrl",["AS"],"монгол"],mnc:["Mong",["AS"],"ᠮᠠᠨᠵᡠ ᡤᡳᠰᡠᠨ"],mni:["Beng",["AS"],"মেইতেই লোন্"],mnw:["Mymr",["AS"],"ဘာသာ မန်"],mo:["Cyrl",["EU"],"молдовеняскэ"],mr:["Deva",["AS","ME"],"मराठी"],mrj:["Cyrl",["EU"],"кырык мары"],ms:["Latn",["AS"],"Bahasa Melayu"],mt:["Latn",["EU"],"Malti"],mui:["Latn",["AS"],"Musi"],mus:["Latn",["AM"],"Mvskoke"],mwl:["Latn",["EU"],"Mirandés"],mwv:["Latn",["AS"],"Behase Mentawei"],my:["Mymr",["AS"],"မြန်မာဘာသာ"],myv:["Cyrl",["EU"],"эрзянь"],mzn:["Arab",["ME","AS"],"مازِرونی"],na:["Latn",["PA"],"Dorerin Naoero"],nah:["Latn",["AM"],"Nāhuatl"],nan:["Latn",["AS"],"Bân-lâm-gú"],nap:["Latn",["EU"],"Nnapulitano"],nb:["Latn",["EU"],"norsk (bokmål)"],"nds-nl":["Latn",["EU"],"Nedersaksisch"],nds:["Latn",["EU"],"Plattdüütsch"],ne:["Deva",["AS"],"नेपाली"],"new":["Deva",["AS"],"नेपाल भाषा"],ng:["Latn",["AF"],"Oshiwambo"],niu:["Latn",["PA"],"ko e vagahau Niuē"],njo:["Latn",["AS"],"Ao"],"nl-informal":["Latn",["EU","AM"],"Nederlands (informeel)"],nl:["Latn",["EU","AM"],"Nederlands"],nn:["Latn",["EU"],"norsk (nynorsk)"],no:["Latn",["EU"],"norsk"],nov:["Latn",["WW"],"Novial"],nqo:["Nkoo",["AF"],"ߒߞߏ"],nrm:["Latn",["EU"],"Nouormand"],nso:["Latn",["AF"],"Sesotho sa Leboa"],nv:["Latn",["AM"],"Diné bizaad"],ny:["Latn",["AF"],"Chi-Chewa"],oc:["Latn",["EU"],"occitan"],om:["Latn",["AF"],"Oromoo"],or:["Orya",["AS"],"ଓଡ଼ିଆ"],os:["Cyrl",["EU"],"Ирон"],ota:["Arab",["AS","EU"],"لسان عثمانى"],pa:["pa-guru"],"pa-guru":["Guru",["AS"],"ਪੰਜਾਬੀ"],pag:["Latn",["AS"],"Pangasinan"],pam:["Latn",["AS"],"Kapampangan"],pap:["Latn",["AM"],"Papiamentu"],pcd:["Latn",["EU"],"Picard"],pdc:["Latn",["EU","AM"],"Deitsch"],pdt:["Latn",["EU","AM"],"Plautdietsch"],pfl:["Latn",["EU"],"Pälzisch"],pi:["Deva",["AS"],"पालि"],pih:["Latn",["PA"],"Norfuk / Pitkern"],pis:["Latn",["PA"],"Pijin"],pko:["Latn",["AF"],"Pökoot"],pl:["Latn",["EU"],"polski"],pms:["Latn",["EU"],"Piemontèis"],pnb:["Arab",["AS","ME"],"پنجابی"],pnt:["Grek",["EU"],"Ποντιακά"],ppl:["Latn",["AM"],"Nawat"],prg:["Latn",["EU"],"Prūsiskan"],ps:["Arab",["AS","ME"],"پښتو"],"pt-br":["Latn",["AM"],"português do Brasil"],pt:["Latn",["EU","AM","AS","PA","AF","WW"],"português"],qu:["Latn",["AM"],"Runa Simi"],qug:["Latn",["AM"],"Runa shimi"],rap:["Latn",["AM"],"arero rapa nui"],rgn:["Latn",["EU"],"Rumagnôl"],rif:["Latn",["AF"],"Tarifit"],rki:["Mymr",["AS"],"ရခိုင်"],rm:["Latn",["EU"],"rumantsch"],rmf:["Latn",["EU"],"kaalengo tšimb"],rmy:["Latn",["EU"],"Romani"],rn:["Latn",["AF"],"Kirundi"],ro:["Latn",["EU"],"română"],"roa-rup":["rup"],"roa-tara":["Latn",["EU"],"tarandíne"],rtm:["Latn",["PA"],"Faeag Rotuma"],ru:["Cyrl",["EU","AS","ME"],"русский"],rue:["Cyrl",["EU"],"русиньскый"],rup:["Latn",["EU"],"Armãneashce"],ruq:["Cyrl",["EU"],"Влахесте"],"ruq-cyrl":["ruq"],"ruq-grek":["Grek",["EU"],"Megleno-Romanian (Greek script)"],"ruq-latn":["Latn",["EU"],"Vlăheşte"],rut:["Cyrl",["EU"],"мыхаӀбишды"],rw:["Latn",["AF"],"Kinyarwanda"],rwr:["Deva",["AS"],"मारवाड़ी"],ryu:["Kana",["AS"],"ʔucināguci"],sa:["Deva",["AS"],"संस्कृतम्"],sah:["Cyrl",["EU","AS"],"саха тыла"],sat:["Latn",["AS"],"Santali"],saz:["Saur",["AS"],"ꢱꣃꢬꢵꢯ꣄ꢡ꣄ꢬꢵ"],sc:["Latn",["EU"],"sardu"],scn:["Latn",["EU"],"sicilianu"],sco:["Latn",["EU"],"Scots"],sd:["Arab",["AS"],"سنڌي"],sdc:["Latn",["EU"],"Sassaresu"],se:["Latn",["EU"],"sámegiella"],ses:["Latn",["AF"],"Koyraboro Senni"],sei:["Latn",["AM"],"Cmique Itom"],sg:["Latn",["AF"],"Sängö"],sgs:["Latn",["EU"],"žemaitėška"],sh:["Latn",["EU"],"srpskohrvatski"],"shi-latn":["Latn",["AF"],"Tašlḥiyt"],"shi-tfng":["Tfng",["AF"],"ⵜⴰⵛⵍⵃⵉⵜ"],shi:["shi-latn"],shn:["Mymr",["AS"],"လိၵ်ႈတႆး"],si:["Sinh",["AS"],"සිංහල"],simple:["Latn",["WW"],"Simple English"],sk:["Latn",["EU"],"slovenčina"],sl:["Latn",["EU"],"slovenščina"],sli:["Latn",["EU"],"Schläsch"],slr:["Latn",["AS"],"Salırça"],sly:["Latn",["AS"],"Bahasa Selayar"],syc:["Syrc",["ME"],"ܣܘܪܝܝܐ"],sm:["Latn",["PA"],"Gagana Samoa"],sma:["Latn",["EU"],"åarjelsaemien"],smj:["Latn",["EU"],"julevsámegiella"],smn:["Latn",["EU"],"anarâškielâ"],sms:["Latn",["EU"],"sää´mǩiõll"],sn:["Latn",["AF"],"chiShona"],so:["Latn",["AF"],"Soomaaliga"],sq:["Latn",["EU"],"shqip"],sr:["sr-cyrl"],"sr-ec":["sr-cyrl"],"sr-cyrl":["Cyrl",["EU"],"српски"],"sr-el":["sr-latn"],"sr-latn":["Latn",["EU"],"srpski"],srn:["Latn",["AM","EU"],"Sranantongo"],ss:["Latn",["AF"],"SiSwati"],st:["Latn",["AF"],"Sesotho"],stq:["Latn",["EU"],"Seeltersk"],su:["Latn",["AS"],"Basa Sunda"],sv:["Latn",["EU"],"svenska"],sw:["Latn",["AF"],"Kiswahili"],swb:["Latn",["AF"],"Shikomoro"],sxu:["Latn",["EU"],"Säggssch"],szl:["Latn",["EU"],"ślůnski"],ta:["Taml",["AS"],"தமிழ்"],tcy:["Knda",["AS"],"ತುಳು"],te:["Telu",["AS"],"తెలుగు"],tet:["Latn",["AS","PA"],"tetun"],"tg-cyrl":["Cyrl",["AS"],"тоҷикӣ"],"tg-latn":["Latn",["AS"],"tojikī"],tg:["Cyrl",["AS"],"тоҷикӣ"],th:["Thai",["AS"],"ไทย"],ti:["Ethi",["AF"],"ትግርኛ"],tk:["Latn",["AS"],"Türkmençe"],tkr:["Cyrl",["AS"],"ЦӀаьхна миз"],tl:["Latn",["AS"],"Tagalog"],tly:["Cyrl",["EU","AS","ME"],"толышә зывон"],tn:["Latn",["AF"],"Setswana"],to:["Latn",["PA"],"lea faka-Tonga"],tokipona:["Latn",["WW"],"Toki Pona"],tpi:["Latn",["PA","AS"],"Tok Pisin"],tr:["Latn",["EU","ME"],"Türkçe"],trp:["Latn",["AS"],"Kokborok (Tripuri)"],tru:["Latn",["AS"],"Ṫuroyo"],ts:["Latn",["AF"],"Xitsonga"],tsd:["Grek",["EU"],"Τσακωνικά"],tt:["Cyrl",["EU"],"татарча"],"tt-cyrl":["tt"],"tt-latn":["Latn",["EU"],"tatarça"],ttt:["Cyrl",["AS"],"Tati"],tum:["Latn",["AF"],"chiTumbuka"],tw:["Latn",["AF"],"Twi"],twd:["Latn",["EU"],"Tweants"],ty:["Latn",["PA"],"Reo Mā`ohi"],tyv:["Cyrl",["AS"],"тыва дыл"],tzm:["Tfng",["AF"],"ⵜⴰⵎⴰⵣⵉⵖⵜ"],udm:["Cyrl",["EU"],"удмурт"],ug:["ug-arab"],"ug-arab":["Arab",["AS"],"ئۇيغۇرچە"],"ug-latn":["Latn",["AS"],"uyghurche"],"ug-cyrl":["Cyrl",["AS"],"уйғурчә"],uk:["Cyrl",["EU"],"українська"],ur:["Arab",["AS","ME"],"اردو"],uz:["Latn",["AS"],"oʻzbekcha"],ve:["Latn",["AF"],"Tshivenda"],vec:["Latn",["EU"],"vèneto"],vep:["Latn",["EU"],"vepsän kel’"],vi:["Latn",["AS"],"Tiếng Việt"],vls:["Latn",["EU"],"West-Vlams"],vmf:["Latn",["EU"],"Mainfränkisch"],vo:["Latn",["WW"],"Volapük"],vot:["Latn",["EU"],"Vaďďa"],vro:["Latn",["EU"],"Võro"],wa:["Latn",["EU"],"walon"],war:["Latn",["AS"],"Winaray"],wls:["Latn",["PA"],"Faka'uvea"],wo:["Latn",["AF"],"Wolof"],wuu:["Hans",["AS"],"吴语"],xal:["Cyrl",["EU"],"хальмг"],xh:["Latn",["AF"],"isiXhosa"],xmf:["Geor",["EU"],"მარგალური"],ydd:["Hebr",["AS","EU"],"Eastern Yiddish"],yi:["Hebr",["ME","EU","AM"],"ייִדיש"],yo:["Latn",["AF"],"Yorùbá"],yrk:["Cyrl",["AS"],"Ненэцяʼ вада"],yrl:["Latn",["AM"],"ñe'engatú"],yua:["Latn",["AM"],"Maaya T'aan"],yue:["Hant",["AS"],"粵語"],za:["Latn",["AS"],"Vahcuengh"],zea:["Latn",["EU"],"Zeêuws"],zh:["Hans",["AS"],"中文"],"zh-classical":["Hant",["AS"],"文言"],"zh-cn":["Hans",["AS"],"中文(中国大陆)"],"zh-hans":["Hans",["AS"],"中文(简体)"],"zh-hant":["Hant",["AS"],"中文(繁體)"],"zh-hk":["Hant",["AS"],"中文(香港)"],"zh-min-nan":["nan"],"zh-mo":["Hant",["AS"],"中文(澳門)"],"zh-my":["Hans",["AS"],"中文(马来西亚)"],"zh-sg":["Hans",["AS"],"中文(新加坡)"],"zh-tw":["Hant",["AS"],"中文(台灣)"],"zh-yue":["yue"],zu:["Latn",["AF"],"isiZulu"]},scriptgroups:{Latin:["Latn","Goth"],Greek:["Grek"],WestCaucasian:["Armn","Geor"],Arabic:["Arab"],MiddleEastern:["Hebr","Syrc"],African:["Ethi","Nkoo","Tfng"],SouthAsian:["Beng","Deva","Gujr","Guru","Knda","Mlym","Orya","Saur","Sinh","Taml","Telu","Tibt","Thaa"],Cyrillic:["Cyrl"],CJK:["Hans","Hant","Kana","Kore","Jpan","Yiii"],SouthEastAsian:["Batk","Bugi","Java","Khmr","Laoo","Mymr","Thai"],Mongolian:["Mong"],SignWriting:["Sgnw"],NativeAmerican:["Cher","Cans"],Special:["Zyyy"]},rtlscripts:["Arab","Hebr","Syrc","Nkoo","Thaa"],regiongroups:{WW:1,SP:1,AM:2,EU:3,ME:3,AF:3,AS:4,PA:4},territories:{AC:["en"],AD:["ca","es","fr"],AE:["ar","ml","ps","bal","fa"],AF:["fa","ps","haz","uz-arab","tk-latn","prd","bal","ug-arab","kk-arab"],AG:["en","pt"],AI:["en"],AL:["sq","el","mk"],AM:["hy","ku-latn","az-latn"],AO:["pt","umb","kmb","ln"],AQ:["und"],AR:["es","cy","gn"],AS:["sm","en"],AT:["de","bar","hr","sl","hu"],AU:["en","zh-hant","it"],AW:["nl","pap","en"],AX:["sv"],AZ:["az-latn","az-cyrl","tly-latn","ku-latn","ttt-latn","tkr-latn"],BA:["bs-cyrl","bs-latn","hr","sr-cyrl","sr-latn"],BB:["en"],BD:["bn","rkt","syl","ccp","my","grt","mni"],BE:["nl","en","fr","vls","wa","de"],BF:["mos","dyu","fr"],BG:["bg","tr"],BH:["ar","ml"],BI:["rn","fr","sw"],BJ:["fr","fon","yo"],BL:["fr"],BM:["en"],BN:["ms-latn","zh-hant","ms-arab","en"],BO:["es","qu","ay","gn","aro"],BQ:["pap","nl"],BR:["pt","de","it","ja","ko","kgp","gub","yrl","xav"],BS:["en"],BT:["dz","ne","tsj","lep"],BV:["und"],BW:["en","tn","af"],BY:["be","ru"],BZ:["en","es"],CA:["en","fr","it","de","pdt","cr-cans","crk","yi","iu-cans","iu-latn","moe","crj","atj","crl","csw","crm","ikt","moh","dgr","den","scs","nsk","chp","gwi"],CC:["ms-arab","en"],CD:["sw","lua","swc","fr","ln","lu","kg","lol","rw"],CF:["fr","sg","ln"],CG:["fr","ln"],CH:["de","fr","gsw","it","lmo","rm","rmo","wae"],CI:["fr","bci","sef","dnj","kfo","bqv"],CK:["en"],CL:["es","arn"],CM:["fr","en","bum","ff","ewo","ybb","bbj","nnh","bkm","bas","bax","byv","mua","maf","bfd","bss","kkj","dua","mgo","ar","jgo","ksf","agq","ha-arab","nmg","yav"],CN:["zh-hans","wuu","hsn","hak","nan","gan","ii","ug-arab","za","mn-mong","bo","ko","kk-arab","lis","ky-arab","nxq","khb","tdd","lcp","en","ru","vi","uz-cyrl","lzh"],CO:["es","guc"],CP:["und"],CR:["es"],CU:["es"],CV:["kea","pt"],CW:["pap","nl","es"],CX:["en"],CY:["el","tr","hy","ar"],CZ:["cs","de","pl"],DE:["de","en","nds","vmf","tr","hr","it","ku-latn","ru","el","ksh","pl","es","nl","da","hsb","frr","dsb","frs","stq","pfl"],DG:["en"],DJ:["aa","so","ar","fr"],DK:["da","de","kl","jut"],DM:["en"],DO:["es","en"],DZ:["arq","ar","fr","kab"],EA:["es"],EC:["es","qu","qug"],EE:["et","ru","vro"],EG:["ar","arz","el"],EH:["ar"],ER:["ti","en","tig","ar","aa","ssy","byn"],ES:["es","en","ca","gl","eu","ast","ext"],ET:["en","am","om","so","ti","sid","wal","aa"],FI:["fi","sv","ru","en","et","rmf","se","smn","sms"],FJ:["en","hi","hif-deva","fj","rtm"],FK:["en"],FM:["chk","pon","kos","yap","en","uli"],FO:["fo"],FR:["fr","en","oc","it","pt","pcd","gsw","br","co","ca","nl","eu","frp","ia"],GA:["fr","puu"],GB:["en","sco","pa-guru","cy","bn","zh-hant","syl","el","it","ks-arab","gd","yi","ml","ga","fr","kw"],GD:["en"],GE:["ka","xmf","ru","hy","ab","os","ku-latn"],GF:["fr","gcr","zh-hant"],GG:["en"],GH:["ak","en","ee","abr","gur","gaa","ha-latn","saf"],GI:["en"],GL:["kl","da"],GM:["en","man-latn"],GN:["fr","ff","man-nkoo","sus","nqo","kpe"],GP:["fr"],GQ:["es","fan","fr","bvb"],GR:["el","pnt-grek","mk","tr","bg","sq","tsd"],GS:["und"],GT:["es","quc"],GU:["en","ch"],GW:["pt"],GY:["en"],HK:["zh-hant","en","zh-hans"],HM:["und"],HN:["es","en"],HR:["hr","it"],HT:["ht","fr"],HU:["hu","de","ro","hr","sk","sl"],IC:["es"],ID:["id","jv","su","mad","ms-arab","min","bew","ban","bug","bjn","ace","sas","bbc","zh-hant","mak","ljp","rej","gor","nij","kge","aoz","kvr","lbw","rob","mdr","sxn","sly","mwv"],IE:["en","ga"],IL:["he","ar","ru","ro","yi","en","pl","lad","hu","am","ti","ml"],IM:["en","gv"],IN:["hi","en","bn","te","mr","ta","ur","gu","kn","ml","or","pa-guru","bho","awa","as","bgc","mag","mwr","mai","hne","dcc","bjj","ne","sat","wtm","rkt","ks-arab","kok","gom","swv","gbm","lmn","sd-arab","gon-telu","kfy","doi","kru","sck","wbq","xnr","tcy","wbr","khn","brx","noe","bhb","mni","raj","hoc","mtr","unr-beng","bhi","hoj","kha","kfr","grt","unx-beng","bfy","srx","saz","ccp","sd-deva","bfq","njo","ria","bo","bpy","bft","bra","lep","btv","lif-deva","lah","sa","kht","dv","dz"],IO:["en"],IQ:["ar","ckb","fa","syr"],IR:["fa","az-arab","azb","mzn","glk","ckb","tk-latn","lrc","ar","bal","rmt","bqi","luz","lki","prd","hy","ps","ka","gbz","kk-arab"],IS:["is","da"],IT:["it","en","fr","lmo","pms","sc","de","vec","nap","lij","scn","sl","sdc","fur","egl","ca","el","hr","rgn"],JE:["en"],JM:["en","jam"],JO:["ar"],JP:["ja","ryu","ko"],KE:["en","sw","ki","luy","luo","kam","kln","guz","mer","mas","ebu","so","dav","teo","pko","om","saq","ar","pa-guru","gu"],KG:["ky-cyrl","ru"],KH:["km","cja","kdt"],KI:["en","gil"],KM:["ar","fr","zdj"],KN:["en"],KP:["ko"],KR:["ko"],KW:["ar"],KY:["en"],KZ:["ru","kk-cyrl","de","ug-cyrl"],LA:["lo","kjg","kdt"],LB:["ar","hy","ku-arab","fr","en"],LC:["en"],LI:["de","gsw","wae"],LK:["si","ta","en"],LR:["en","kpe","vai-vaii","men","vai-latn"],LS:["st","zu","ss","en","xh"],LT:["lt","ru","sgs"],LU:["fr","lb","de"],LV:["lv","ru","ltg"],LY:["ar"],MA:["ary","ar","zgh","fr","tzm-latn","shi-latn","shi-tfng","rif-latn","rif-tfng","es"],MC:["fr"],MD:["ro","uk","bg","gag","ru"],ME:["sr-latn","sq","sr-cyrl"],MF:["fr"],MG:["mg","fr","en"],MH:["en","mh"],MK:["mk","sq","tr"],ML:["bm-latn","fr","ffm","snk","mwk","ses","tmh","bm-nkoo","khq","dtm","kao","ar","bmq","bze"],MM:["my","shn","mnw","kht"],MN:["mn-cyrl","kk-arab","zh-hans","ru","ug-cyrl"],MO:["zh-hant","pt","zh-hans","en"],MP:["en","ch"],MQ:["fr"],MR:["ar","fr","ff","wo"],MS:["en"],MT:["mt","en"],MU:["mfe","en","bho","ur","fr","ta"],MV:["dv"],MW:["en","ny","tum","zu"],MX:["es","yua","nhe","nhw","maz","nch","sei"],MY:["ms-latn","en","zh-hant","ta","jv","zmi","dtp","ml","bug","bjn"],MZ:["pt","vmw","ndc","ts","ngl","seh","mgh","rng","ny","yao","sw","zu"],NA:["af","kj","ng","naq","en","de","tn"],NC:["fr"],NE:["ha-latn","fr","dje","fuq","tmh","ar","twq"],NF:["en"],NG:["en","pcm","ha-latn","ig","yo","fuv","tiv","efi","ibb","ha-arab","bin","kaj","kcg","ar","cch","amo"],NI:["es"],NL:["nl","en","li","fy","gos","id","zea","rif-latn","tr"],NO:["nb","nn","se"],NP:["ne","mai","bho","new","jml","taj","awa","thl","bap","tdg","thr","mgp","lif-deva","thq","mrd","bfy","xsr","rjs","tsf","hi","ggn","gvr","bo","tkt","tdh","bn","unr-deva","lep"],NR:["en","na"],NU:["en","niu"],NZ:["en","mi"],OM:["ar","bal","fa"],PA:["es","en","zh-hant"],PE:["es","qu","ay"],PF:["fr","ty","zh-hant"],PG:["tpi","en","ho"],PH:["en","fil","es","ceb","ilo","hil","bik","war","bhk","pam","pag","mdh","tsg","zh-hant","cps","krj","bto","hnn","tbw","bku"],PK:["ur","pa-arab","en","lah","ps","sd-arab","skr","bal","brh","hno","fa","hnd","tg-arab","gju","bft","kvx","khw","mvy","kxp","gjk","ks-arab","btv"],PL:["pl","szl","be","uk","csb","de","sli","lt"],PM:["fr","en"],PN:["en"],PR:["es","en"],PS:["ar"],PT:["pt","gl"],PW:["pau","en"],PY:["gn","es","de"],QA:["ar","fa","ml"],RE:["fr","rcf","ta"],RO:["ro","hu","de","tr","sr-latn","bg","el","pl"],RS:["sr-cyrl","sr-latn","sq","hu","ro","hr","sk","uk"],RU:["ru","tt","ba","cv","hy","ce","av","udm","chm","sah","os","kbd","myv","dar","bua","mdf","kum","kv","lez","krc","inh","tyv","az-cyrl","ady","krl","lbe","koi","mrj","alt","fi","sr-latn","vep","mn-cyrl","izh","cu"],RW:["rw","fr","en"],SA:["ar"],SB:["en","rug"],SC:["crs","fr","en"],SD:["ar","en","nus","ha-arab"],SE:["sv","fi","fit","se","rmu","yi","smj","sma","ia"],SG:["en","zh-hans","ms-latn","ta","ml","pa-guru"],SH:["en"],SI:["sl","hu","it"],SJ:["nb","ru"],SK:["sk","hu","uk","pl","de"],SL:["kri","en","men","tem"],SM:["it","eo"],SN:["wo","fr","ff","srr","dyo"],SO:["so","ar","sw","om"],SR:["nl","srn","zh-hant"],SS:["ar","en"],ST:["pt"],SV:["es"],SX:["en","es","vic","nl"],SY:["ar","ku-latn","fr","hy","syr"],SZ:["en","ss","zu","ts"],TA:["en"],TC:["en"],TD:["fr","ar"],TF:["fr"],TG:["fr","ee"],TH:["th","tts","nod","sou","mfa","zh-hant","kxm","kdt","mnw","shn","lcp","lwl"],TJ:["tg-cyrl","ru","fa","ar"],TK:["en","tkl"],TL:["pt","tet"],TM:["tk-latn","ru","uz-latn","ku-latn"],TN:["aeb","ar","fr"],TO:["to","en"],TR:["tr","ku-latn","zza","kbd","az-latn","ar","bgx","bg","ady","kiu","hy","ka","sr-latn","lzz-latn","sq","ab","el","tru","uz-latn","ky-latn","kk-cyrl"],TT:["en","es"],TV:["tvl","en"],TW:["zh-hant","trv"],TZ:["sw","en","suk","nym","kde","bez","ksb","mas","mgy","asa","lag","jmc","rof","vun","rwk","sbp"],UA:["uk","ru","pl","yi","rue","be","ro","bg","tr","hu","el"],UG:["sw","lg","nyn","cgg","xog","en","teo","laj","ach","myx","rw","ttj","hi"],UM:["en"],US:["en","es","zh-hant","fr","de","fil","it","vi","ko","ru","nv","yi","pdc","haw","frc","chr","esu","lkt","ik"],UY:["es"],UZ:["uz-latn","uz-cyrl","ru","kaa","tr"],VA:["it","la"],VC:["en"],VE:["es"],VG:["en"],VI:["en"],VN:["vi","zh-hant","cjm"],VU:["bi","en","fr"],WF:["wls","fr","fud"],WS:["sm","en"],XK:["sq","aln","sr-cyrl","sr-latn"],YE:["ar"],YT:["swb","fr","buc","sw"],ZA:["en","zu","xh","af","nso","tn","st","ts","ss","ve","hi","nr","sw"],ZM:["en","bem","ny","loz"],ZW:["en","sn","nd","mxc","ndc","kck","ny","ve","tn"],ZZ:[]}}})(jQuery);(function(e){"use strict";e.uls.data.isRedirect=function(t){return e.uls.data.languages[t]!==undefined&&e.uls.data.languages[t].length===1?e.uls.data.languages[t][0]:false};e.uls.data.getScript=function(t){var n=e.uls.data.isRedirect(t);if(n){return e.uls.data.getScript(n)}if(!e.uls.data.languages[t]){return"Zyyy"}return e.uls.data.languages[t][0]};e.uls.data.getRegions=function(t){var n=e.uls.data.isRedirect(t);if(n){return e.uls.data.getRegions(n)}return e.uls.data.languages[t]&&e.uls.data.languages[t][1]||"UNKNOWN"};e.uls.data.getAutonym=function(t){var n=e.uls.data.isRedirect(t);if(n){return e.uls.data.getAutonym(n)}return e.uls.data.languages[t]&&e.uls.data.languages[t][2]||t};e.uls.data.getAutonyms=function(){var t,n={};for(t in e.uls.data.languages){if(e.uls.data.isRedirect(t)){continue}n[t]=e.uls.data.getAutonym(t)}return n};e.uls.data.getAllRegions=function(){var t,n=[];for(t in e.uls.data.regiongroups){n.push(t)}return n};e.uls.data.getLanguagesInScript=function(t){return e.uls.data.getLanguagesInScripts([t])};e.uls.data.getLanguagesInScripts=function(t){var n,r,i=[];for(n in e.uls.data.languages){if(e.uls.data.isRedirect(n)){continue}for(r=0;r<t.length;r++){if(t[r]===e.uls.data.getScript(n)){i.push(n);break}}}return i};e.uls.data.getLanguagesInRegion=function(t){return e.uls.data.getLanguagesInRegions([t])};e.uls.data.getLanguagesInRegions=function(t){var n,r,i=[];for(n in e.uls.data.languages){if(e.uls.data.isRedirect(n)){continue}for(r=0;r<t.length;r++){if(e.inArray(t[r],e.uls.data.getRegions(n))!==-1){i.push(n);break}}}return i};e.uls.data.getLanguagesInRegionGroup=function(t){return e.uls.data.getLanguagesInRegions(e.uls.data.getRegionsInGroup(t))};e.uls.data.getLanguagesByScriptInRegion=function(t){var n,r,i={};for(n in e.uls.data.languages){if(e.uls.data.isRedirect(n)){continue}if(e.inArray(t,e.uls.data.getRegions(n))!==-1){r=e.uls.data.getScript(n);if(i[r]===undefined){i[r]=[]}i[r].push(n)}}return i};e.uls.data.getLanguagesByScriptGroupInRegion=function(t){return e.uls.data.getLanguagesByScriptGroupInRegions([t])};e.uls.data.getAllLanguagesByScriptGroup=function(){return e.uls.data.getLanguagesByScriptGroupInRegions(e.uls.data.getAllRegions())};e.uls.data.getLanguagesByScriptGroup=function(t){var n={},r,i,s;for(r in t){i=e.uls.data.isRedirect(r)||r;s=e.uls.data.getScriptGroupOfLanguage(i);if(!n[s]){n[s]=[]}if(e.inArray(i,n[s])===-1){n[s].push(i)}}return n};e.uls.data.getLanguagesByScriptGroupInRegions=function(t){var n,r,i,s={};for(n in e.uls.data.languages){if(e.uls.data.isRedirect(n)){continue}for(r=0;r<t.length;r++){if(e.inArray(t[r],e.uls.data.getRegions(n))!==-1){i=e.uls.data.getScriptGroupOfLanguage(n);if(s[i]===undefined){s[i]=[]}s[i].push(n);break}}}return s};e.uls.data.getAllLanguagesByRegionAndScript=function(){var t,n,r,i,s,o,u,a={};for(t in e.uls.data.regiongroups){n=e.uls.data.regiongroups[t];if(a[n]===undefined){a[n]={}}a[n][t]={}}for(r in e.uls.data.languages){if(e.uls.data.isRedirect(r)){continue}i=e.uls.data.getScript(r);s=e.uls.data.getGroupOfScript(i);o=e.uls.data.getRegions(r);for(u=0;u<o.length;u++){t=o[u];n=e.uls.data.regiongroups[t];if(a[n][t][s]===undefined){a[n][t][s]={}}if(a[n][t][s][i]===undefined){a[n][t][s][i]=[]}a[n][t][s][i].push(r)}}return a};e.uls.data.getRegionsInGroup=function(t){var n,r=[];for(n in e.uls.data.regiongroups){if(e.uls.data.regiongroups[n]===t){r.push(n)}}return r};e.uls.data.getGroupOfScript=function(t){var n;for(n in e.uls.data.scriptgroups){if(e.inArray(t,e.uls.data.scriptgroups[n])!==-1){return n}}return"Other"};e.uls.data.getScriptGroupOfLanguage=function(t){return e.uls.data.getGroupOfScript(e.uls.data.getScript(t))};e.uls.data.sortByAutonym=function(t,n){var r=e.uls.data.getAutonym(t)||t,i=e.uls.data.getAutonym(n)||n;return r.toLowerCase()<i.toLowerCase()?-1:1};e.uls.data.isRtl=function(t){return e.inArray(e.uls.data.getScript(t),e.uls.data.rtlscripts)!==-1};e.uls.data.getDir=function(t){return e.uls.data.isRtl(t)?"rtl":"ltr"};e.uls.data.getLanguagesInTerritory=function(t){return e.uls.data.territories[t]};e.uls.data.addLanguage=function(t,n){if(n.target){e.uls.data.languages[t]=[n.target]}else{e.uls.data.languages[t]=[n.script,n.regions,n.autonym]}};e.uls.data.deleteLanguage=function(t){if(e.uls.data.languages[t]){delete e.uls.data.languages[t];return true}return false}})(jQuery);(function(e){"use strict";function r(e,t){var n="െേൈൊോൌெேைொோௌେୈୋୌિਿिিেৈোৌෙේෛොෝෞ";return n.indexOf(t[e.length])<=0}var t,n;t=function(t,n){this.$element=e(t);this.options=e.extend({},e.fn.regionselector.defaults,n);this.$element.addClass("languagefilter");this.resultCount=0;this.$suggestion=this.$element.parents().find("#"+this.$element.data("suggestion"));this.$clear=this.$element.parents().find("#"+this.$element.data("clear"));this.selectedLanguage=null;this.listen()};n=function(){var e=0;return function(t,n){clearTimeout(e);e=setTimeout(t,n)}}();t.prototype={listen:function(){this.$element.on("keypress",e.proxy(this.keyup,this)).on("keyup",e.proxy(this.keyup,this));if(this.eventSupported("keydown")){this.$element.on("keydown",e.proxy(this.keyup,this))}if(this.$clear.length){this.$clear.on("click",e.proxy(this.clear,this))}this.toggleClear()},keyup:function(t){var r,i,s;switch(t.keyCode){case 9:r=this.$suggestion.val();if(r&&r!==this.$element.val()){this.$element.val(r);t.preventDefault();t.stopPropagation()}break;case 13:if(!this.options.onSelect){break}t.preventDefault();t.stopPropagation();i=e.trim(this.$element.val()).toLowerCase();if(this.selectedLanguage){this.options.onSelect(this.selectedLanguage)}else if(this.options.languages[i]){this.options.onSelect(i)}break;default:s=this;if(t.which<32&&t.which!==8){break}this.selectedLanguage=null;n(function(){if(!s.$element.val()){s.clear()}else{s.options.$target.empty();s.search()}},300);this.toggleClear()}},deactivate:function(){this.$element.val("");if(!e.fn.uls.Constructor.prototype.isMobile()){this.$element.focus()}this.toggleClear();this.autofill()},clear:function(){this.deactivate();this.$element.trigger("searchclear.uls")},toggleClear:function(){if(!this.$clear.length){return}if(this.$element.val()){this.$clear.show()}else{this.$clear.hide()}},search:function(){var t,n=e.trim(this.$element.val()),r=e.uls.data.getLanguagesByScriptGroup(this.options.languages),i,s,o;this.resultCount=0;for(i in r){t=r[i];t.sort(e.uls.data.sortByAutonym);for(s=0;s<t.length;s++){o=t[s];if(n===""||this.filter(o,n)){if(this.resultCount===0){this.autofill(o)}if(n.toLowerCase()===o){this.selectedLanguage=o}if(this.render(o)){this.resultCount++}}}}if(!this.resultCount&&this.options.searchAPI&&n){this.searchAPI(n)}else{this.resultHandler(n)}},searchAPI:function(t){var n=this;e.get(n.options.searchAPI,{search:t},function(r){e.each(r.languagesearch,function(e,t){if(n.resultCount===0){n.autofill(e,t)}if(n.render(e)){n.resultCount++}});n.resultHandler(t)})},resultHandler:function(e){if(this.resultCount===0){this.$suggestion.val("");this.$element.trigger("noresults.uls",e)}else{this.$element.trigger("resultsfound.uls",[e,this.resultCount])}},autofill:function(t,n){if(!this.$suggestion.length){return}if(!this.$element.val()){this.$suggestion.val("");return}this.selectedLanguage=t;n=n||this.options.languages[t];if(!n){return}var i,s=this.$element.val(),o=s+n.substring(s.length,n.length);if(o.toLowerCase()!==n.toLowerCase()){i=e.uls.data.getAutonym(t)||"";o=s+i.substring(s.length,i.length);if(o!==i){o=""}}if(!r(s,o)){o=""}this.$suggestion.val(o)},render:function(e){var t=this.options.$target;if(!t){return false}return t.append(e)},escapeRegex:function(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$\|#\s]/g,"\\$&")},filter:function(t,n){var r=new RegExp("^"+this.escapeRegex(n),"i"),i=this.options.languages[t];return r.test(i)||r.test(e.uls.data.getAutonym(t))||r.test(t)||r.test(e.uls.data.getScript(t))},eventSupported:function(e){var t=e in this.$element;if(!t){this.$element.setAttribute(e,"return;");t=typeof this.$element[e]==="function"}return t}};e.fn.languagefilter=function(n){return this.each(function(){var r=e(this),i=r.data("languagefilter"),s=typeof n==="object"&&n;if(!i){r.data("languagefilter",i=new t(this,s))}if(typeof n==="string"){i[n]()}})};e.fn.languagefilter.defaults={$target:null,searchAPI:null,languages:null,onSelect:null};e.fn.languagefilter.Constructor=t})(jQuery);(function(e){"use strict";var t,n;t='<div class="twelve columns uls-no-results-view hide">		<h2 data-i18n="uls-no-results-found" class="eleven columns offset-by-one uls-no-results-found-title">		No results found		</h2>		<div id="uls-no-found-more" class="uls-no-found-more">			<div class="ten columns offset-by-one">				<p>					<span data-i18n="uls-search-help">You can search by language name, 					script name, ISO code of language or 					you can browse by region:</span>					<a class="uls-region-link" data-i18n="uls-region-AM" data-region="AM">America</a>, 					<a class="uls-region-link" data-i18n="uls-region-EU" data-region="EU">Europe</a>, 					<a class="uls-region-link" data-i18n="uls-region-ME" data-region="ME">Middle East</a>, 					<a class="uls-region-link" data-i18n="uls-region-AF" data-region="AF">Africa</a>, 					<a class="uls-region-link" data-i18n="uls-region-AS" data-region="AS">Asia</a>, 					<a class="uls-region-link" data-i18n="uls-region-PA" data-region="PA">Pacific</a>, 					<a class="uls-region-link" data-i18n="uls-region-WW" data-region="WW">Worldwide</a>.				</p>			</div>		</div>	</div>';n=function(n,r){this.$element=e(n);this.options=e.extend({},e.fn.lcd.defaults,r);this.$element.addClass("lcd");this.regionLanguages={};this.renderTimeout=null;this.cachedQuicklist=null;this.$element.append(e(t));this.$noResults=this.$element.children(".uls-no-results-view");this.render();this.listen()};n.prototype={constructor:n,append:function(t,n){var r=this,i,s;if(!this.options.languages[t]){return false}if(n){s=[n]}else{s=e.uls.data.getRegions(t)}if(e.inArray("WW",s)>-1){s=["WW"]}for(i=0;i<s.length;i++){this.regionLanguages[s[i]].push(t)}window.clearTimeout(this.renderTimeout);this.renderTimeout=window.setTimeout(function(){r.renderRegions()},50);return true},render:function(){var t,n=this,r=[],i={WW:"Worldwide",SP:"Special",AM:"America",EU:"Europe",ME:"Middle East",AS:"Asia",AF:"Africa",PA:"Pacific"};r.push(this.buildQuicklist());e.each(e.uls.data.regiongroups,function(s){n.regionLanguages[s]=[];if(e.inArray(s,n.options.showRegions)===-1){return}t=e("<div>").addClass("eleven columns offset-by-one uls-lcd-region-section hide").attr("id",s).append(e("<h3>").attr("data-i18n","uls-region-"+s).addClass("eleven columns uls-lcd-region-title").text(i[s]));r.push(t)});n.$element.append(r);this.i18n()},renderRegions:function(){var t=this,n,r=t.options.itemsPerColumn,i=4;this.$noResults.addClass("hide");this.$element.find(".uls-lcd-region-section").each(function(){var s=e(this),o=s.attr("id");if(s.is("#uls-lcd-quicklist")){return}s.children(".uls-language-block").remove();n=t.regionLanguages[o];if(!n||n.length===0){s.addClass("hide");return}t.renderRegion(s,n,r,i);s.removeClass("hide");t.regionLanguages[o]=[]})},renderRegion:function(t,n,r,i){var s,o,u,a,f,l=n.length,c=[],h=[],p=[];for(s=0;s<l;s++){f=false;a=e.uls.data.getScriptGroupOfLanguage(n[s+1]);o=l-s===1;if(s===0){u=e.uls.data.getScriptGroupOfLanguage(n[s])}else if(u!==a&&c.length>1){f=true}u=a;c.push(this.renderItem(n[s]));if(c.length>=r||o||f){h.push(e("<ul>").addClass("three columns").append(c));c=[];if(h.length>=i||o){p.push(e("<div>").addClass("row uls-language-block").append(h));h=[]}}}t.append(p)},renderItem:function(t){var n,r,i,s;r=this.options.languages[t];i=e.uls.data.getAutonym(t)||r||t;s=document.createElement("li");s.title=r;s.lang=t;s.dir=e.uls.data.getDir(t);s.setAttribute("data-code",t);n=document.createElement("a");n.appendChild(document.createTextNode(i));n.className="autonym";s.appendChild(n);if(this.options.languageDecorator){this.options.languageDecorator(e(n),t)}return s},i18n:function(){this.$element.find("[data-i18n]").i18n()},quicklist:function(){this.$element.find("#uls-lcd-quicklist").removeClass("hide")},buildQuicklist:function(){var t,n,r;if(this.cachedQuicklist!==null){return this.cachedQuicklist}if(e.isFunction(this.options.quickList)){this.options.quickList=this.options.quickList()}if(!this.options.quickList){this.cachedQuicklist=e([]);return this.cachedQuicklist}t=this.options.quickList;t=t.slice(0,16);t.sort(e.uls.data.sortByAutonym);n=e("<div>").addClass("eleven columns offset-by-one uls-lcd-region-section").attr("id","uls-lcd-quicklist");r=e("<h3>").attr("data-i18n","uls-common-languages").addClass("eleven columns uls-lcd-region-title").text("Common languages");n.append(r);this.renderRegion(n,t,4,4);r.i18n();this.cachedQuicklist=n;return this.cachedQuicklist},show:function(){if(!this.regionDivs){this.render()}},empty:function(){this.$element.find("#uls-lcd-quicklist").addClass("hide")},focus:function(){this.$element.focus()},noResults:function(){this.$noResults.removeClass("hide");if(this.$noResults.find(".uls-lcd-region-title").length){return}var e=this.buildQuicklist().clone();e.find("h3").data("i18n","uls-no-results-suggestion-title").text("You may be interested in:").i18n();this.$noResults.find("h2").after(e)},listen:function(){var t=this;if(this.options.clickhandler){this.$element.on("click",".row li",function(){t.options.clickhandler.call(this,e(this).data("code"))})}t.$element.scroll(function(){var n,r,i=e(this),s=i.position().top,o=i.height();r="WW";t.$element.find(".uls-lcd-region-section").each(function(){var t=e(this),n=t.position().top,i=t.height(),u=10;if(n-u<=s&&i>o){r=t.attr("id")}});n=e.uls.data.regiongroups[r];if(!e("#uls-region-"+n).hasClass("active")){e(".regionselector").removeClass("active");e("#uls-region-"+n).addClass("active")}})}};e.fn.lcd=function(t){return this.each(function(){var r=e(this),i=r.data("lcd"),s=typeof t==="object"&&t;if(!i){r.data("lcd",i=new n(this,s))}if(typeof t==="string"){i[t]()}})};e.fn.lcd.defaults={languages:null,showRegions:["WW","AM","EU","ME","AF","AS","PA"],itemsPerColumn:8,languageDecorator:null};e.fn.lcd.Constructor=n})(jQuery);(function(e){"use strict";var t;t=function(t,n){this.$element=e(t);this.options=e.extend({},e.fn.regionselector.defaults,n);this.$element.addClass("regionselector");this.regions=[];this.cache=null;this.regionGroup=this.$element.data("regiongroup");this.init();this.listen()};t.prototype={constructor:t,init:function(){var t=this.$element.data("region");this.regions=e.uls.data.getRegionsInGroup(this.regionGroup);if(t){this.regions.push(t)}},test:function(t){var n,r,i=e.uls.data.getRegions(t);for(r=0;r<this.regions.length;r++){n=this.regions[r];if(e.inArray(n,i)>=0){this.render(t,n);this.cache[t]=n;return}}},show:function(){var t,n,r,i,s,o=this.options.$target&&this.options.$target.$element,u=o&&o.parent(),a=o&&o.prev();if(o&&u){o.detach()}if(this.cache){t=null;for(t in this.cache){this.render(t,this.cache[t])}}else{this.cache={};n=e.uls.data.getLanguagesByScriptGroup(this.options.languages);for(r in e.uls.data.scriptgroups){i=n[r];if(!i){continue}i.sort(e.uls.data.sortByAutonym);for(s=0;s<i.length;s++){this.test(i[s])}}}if(o&&u){if(a){a.after(o)}else{u.append(o)}}if(this.options.success){this.options.success(this)}},render:function(e,t){var n=this.options.$target;if(!n){return}n.append(e,t)},listen:function(){this.$element.on("click",e.proxy(this.click,this))},click:function(){var t,n;if(this.$element.hasClass("active")){return}t=this.options.$target.$element;n=t.find("#"+this.regions[0]);t.scrollTop(n.offset().top-t.offset().top+t.scrollTop());e(".regionselector").removeClass("active");if(this.regionGroup){this.$element.addClass("active")}}};e.fn.regionselector=function(n){return this.each(function(){var r=e(this),i=r.data("regionselector"),s=typeof n==="object"&&n;if(!i){r.data("regionselector",i=new t(this,s))}if(typeof n==="string"){i[n]()}})};e.fn.regionselector.defaults={$target:null,success:null,noresults:null,languages:null};e.fn.regionselector.Constructor=t})(jQuery)

@@ -1,198 +0,0 @@ 

- /**

-  * jQuery region filter plugin.

-  *

-  * Copyright (C) 2012 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,

-  * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other

-  * contributors. See CREDITS for a list.

-  *

-  * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't

-  * have to do anything special to choose one license or the other and you don't

-  * have to notify anyone which license you are using. You are free to use

-  * UniversalLanguageSelector in commercial projects as long as the copyright

-  * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.

-  *

-  * @file

-  * @ingroup Extensions

-  * @licence GNU General Public Licence 2.0 or later

-  * @licence MIT License

-  */

- 

- ( function ( $ ) {

- 	'use strict';

- 

- 	/* RegionSelector plugin definition */

- 

- 	var RegionSelector;

- 

- 	/**

- 	 * Region selector is a language selector based on regions.

- 	 * Usage: $( 'jqueryselector' ).regionselector( options );

- 	 * The attached element should have data-regiongroup attribute

- 	 * that defines the regiongroup for the selector.

- 	 */

- 	RegionSelector = function ( element, options ) {

- 		this.$element = $( element );

- 		this.options = $.extend( {}, $.fn.regionselector.defaults, options );

- 		this.$element.addClass( 'regionselector' );

- 		this.regions = [];

- 		this.cache = null;

- 		this.regionGroup = this.$element.data( 'regiongroup' );

- 		this.init();

- 		this.listen();

- 	};

- 

- 	RegionSelector.prototype = {

- 		constructor: RegionSelector,

- 

- 		init: function () {

- 			var region = this.$element.data( 'region' );

- 			this.regions = $.uls.data.getRegionsInGroup( this.regionGroup );

- 

- 			if ( region ) {

- 				this.regions.push( region );

- 			}

- 		},

- 

- 		test: function ( langCode ) {

- 			var region, i,

- 				langRegions = $.uls.data.getRegions( langCode );

- 

- 			for ( i = 0; i < this.regions.length; i++ ) {

- 				region = this.regions[i];

- 

- 				if ( $.inArray( region, langRegions ) >= 0 ) {

- 					this.render( langCode, region );

- 					this.cache[langCode] = region;

- 

- 					return;

- 				}

- 			}

- 		},

- 

- 		show: function () {

- 			var result, languagesByScriptGroup, scriptGroup, languages, i,

- 				$element = this.options.$target && this.options.$target.$element,

- 				$parent = $element && $element.parent(),

- 				$prev = $element && $element.prev();

- 

- 			if ( $element && $parent ) {

- 				// Avoid reflows while adding new elements to the list

- 				// Use .detach() to keep jQuery events and data associated with elements

- 				$element.detach();

- 			}

- 

- 			if ( this.cache ) {

- 				// If the result cache is present, render the results from there.

- 				//noinspection JSUnusedAssignment

- 				result = null;

- 

- 				for ( result in this.cache ) {

- 					this.render( result, this.cache[result] );

- 				}

- 			} else {

- 				this.cache = {};

- 				// Get the languages grouped by script group

- 				languagesByScriptGroup = $.uls.data.getLanguagesByScriptGroup( this.options.languages );

- 

- 				// Make sure that we go by the original order

- 				// of script groups

- 				for ( scriptGroup in $.uls.data.scriptgroups ) {

- 					// Get the languages for the script group

- 					languages = languagesByScriptGroup[scriptGroup];

- 

- 					// It's possible that some script groups are missing

- 					if ( !languages ) {

- 						continue;

- 					}

- 

- 					// Sort it based on autonym

- 					languages.sort( $.uls.data.sortByAutonym );

- 

- 					for ( i = 0; i < languages.length; i++ ) {

- 						// Check whether it belongs to the region

- 						this.test( languages[i] );

- 					}

- 				}

- 			}

- 

- 			if ( $element && $parent ) {

- 				// Restore the element to where we removed it from

- 				if ( $prev ) {

- 					$prev.after( $element );

- 				} else {

- 					$parent.append( $element );

- 				}

- 			}

- 

- 			if ( this.options.success ) {

- 				this.options.success( this );

- 			}

- 		},

- 

- 		render: function ( langCode, region ) {

- 			var $target = this.options.$target;

- 

- 			if ( !$target ) {

- 				return;

- 			}

- 

- 			$target.append( langCode, region );

- 		},

- 

- 		listen: function () {

- 			this.$element.on( 'click', $.proxy( this.click, this ) );

- 		},

- 

- 		click: function () {

- 			var $list, $firstTargetRegion;

- 

- 			// Don't do anything if a region is selected already

- 			if ( this.$element.hasClass( 'active' ) ) {

- 				return;

- 			}

- 

- 			$list = this.options.$target.$element;

- 			$firstTargetRegion = $list.find( '#' + this.regions[0] );

- 

- 			// Scroll to appropriate area

- 			$list.scrollTop(

- 				$firstTargetRegion.offset().top - $list.offset().top + $list.scrollTop()

- 			);

- 

- 			// Make the selected region (and it only) active

- 			$( '.regionselector' ).removeClass( 'active' );

- 

- 			if ( this.regionGroup ) {

- 				// if there is a region group, make it active.

- 				this.$element.addClass( 'active' );

- 			}

- 		}

- 	};

- 

- 	/* RegionSelector plugin definition */

- 

- 	$.fn.regionselector = function ( option ) {

- 		return this.each( function () {

- 			var $this = $( this ),

- 				data = $this.data( 'regionselector' ),

- 				options = typeof option === 'object' && option;

- 

- 			if ( !data ) {

- 				$this.data( 'regionselector', ( data = new RegionSelector( this, options ) ) );

- 			}

- 

- 			if ( typeof option === 'string' ) {

- 				data[option]();

- 			}

- 		} );

- 	};

- 

- 	$.fn.regionselector.defaults = {

- 		$target: null, // Where to render the results

- 		success: null, // callback if any results found.

- 		noresults: null, // callback when no results to show

- 		languages: null

- 	};

- 

- 	$.fn.regionselector.Constructor = RegionSelector;

- } ( jQuery ) );

@@ -7,8 +7,6 @@ 

      <script type="text/javascript" src="${path}/static/js/jquery.min.js"></script>

      <script type="text/javascript" src="${path}/static/js/bootstrap.min.js"></script>

  

-     <xi:include href="../templates/translations.html" />

- 

      <!--[if lt IE 9]>

      <script type="text/javascript" src="${path}/static/js/html5shiv.js"></script>

      <script type="text/javascript" src="${path}/static/js/respond.min.js"></script>

Related: https://pagure.io/fedora-websites/issue/1092

jquery.uls doesn't play well with language code from weblate, and some of them aren't recognized at all (like zh_Hans_CN and pt_BR).
Since we are already using langtable for pretty much the same thing at build time, we can simply drop jquery.uls completely, and use langtable where it is needed.
The language selector has been redesigned around that (highly inspired by the one found on getfedora.org), and I think is now much simpler.
Let me know what you think.

ps: I've updated unused sites (like getfedora and budget) for consistency only.

LGTM.

Thanks for helping with the tests, @darknao. :)

LGTM to me as well thank you.

Pull-Request has been merged by darknao

2 years ago
Metadata
Changes Summary 114
+0 -5
file changed
alt.fedoraproject.org/data/templates/css.html
+1 -8
file changed
alt.fedoraproject.org/data/templates/footer.html
+0 -8
file changed
alt.fedoraproject.org/data/templates/js.html
+24 -1
file changed
alt.fedoraproject.org/static/css/app.css
-75
file removed
alt.fedoraproject.org/static/css/jquery.uls.compact.css
-260
file removed
alt.fedoraproject.org/static/css/jquery.uls.css
-315
file removed
alt.fedoraproject.org/static/css/jquery.uls.grid.css
-86
file removed
alt.fedoraproject.org/static/css/jquery.uls.lcd.css
-319
file removed
alt.fedoraproject.org/static/css/jquery.uls.mobile.css
-444
file removed
alt.fedoraproject.org/static/js/jquery.uls.core.js
-7
file removed
alt.fedoraproject.org/static/js/jquery.uls.data.js
-465
file removed
alt.fedoraproject.org/static/js/jquery.uls.data.utils.js
-360
file removed
alt.fedoraproject.org/static/js/jquery.uls.languagefilter.js
-396
file removed
alt.fedoraproject.org/static/js/jquery.uls.lcd.js
-1
file removed
alt.fedoraproject.org/static/js/jquery.uls.min.js
-198
file removed
alt.fedoraproject.org/static/js/jquery.uls.regionfilter.js
+0 -5
file changed
arm.fedoraproject.org/data/templates/css.html
+1 -8
file changed
arm.fedoraproject.org/data/templates/footer.html
+0 -8
file changed
arm.fedoraproject.org/data/templates/js.html
+24 -1
file changed
arm.fedoraproject.org/static/css/app.css
-75
file removed
arm.fedoraproject.org/static/css/jquery.uls.compact.css
-260
file removed
arm.fedoraproject.org/static/css/jquery.uls.css
-315
file removed
arm.fedoraproject.org/static/css/jquery.uls.grid.css
-86
file removed
arm.fedoraproject.org/static/css/jquery.uls.lcd.css
-319
file removed
arm.fedoraproject.org/static/css/jquery.uls.mobile.css
-444
file removed
arm.fedoraproject.org/static/js/jquery.uls.core.js
-7
file removed
arm.fedoraproject.org/static/js/jquery.uls.data.js
-465
file removed
arm.fedoraproject.org/static/js/jquery.uls.data.utils.js
-360
file removed
arm.fedoraproject.org/static/js/jquery.uls.languagefilter.js
-396
file removed
arm.fedoraproject.org/static/js/jquery.uls.lcd.js
-1
file removed
arm.fedoraproject.org/static/js/jquery.uls.min.js
-198
file removed
arm.fedoraproject.org/static/js/jquery.uls.regionfilter.js
+0 -5
file changed
budget.fedoraproject.org/data/templates/css.html
+1 -8
file changed
budget.fedoraproject.org/data/templates/footer.html
+0 -8
file changed
budget.fedoraproject.org/data/templates/js.html
+23 -1
file changed
budget.fedoraproject.org/static/css/app.css
-75
file removed
budget.fedoraproject.org/static/css/jquery.uls.compact.css
-260
file removed
budget.fedoraproject.org/static/css/jquery.uls.css
-315
file removed
budget.fedoraproject.org/static/css/jquery.uls.grid.css
-86
file removed
budget.fedoraproject.org/static/css/jquery.uls.lcd.css
-319
file removed
budget.fedoraproject.org/static/css/jquery.uls.mobile.css
-444
file removed
budget.fedoraproject.org/static/js/jquery.uls.core.js
-7
file removed
budget.fedoraproject.org/static/js/jquery.uls.data.js
-465
file removed
budget.fedoraproject.org/static/js/jquery.uls.data.utils.js
-360
file removed
budget.fedoraproject.org/static/js/jquery.uls.languagefilter.js
-396
file removed
budget.fedoraproject.org/static/js/jquery.uls.lcd.js
-1
file removed
budget.fedoraproject.org/static/js/jquery.uls.min.js
-198
file removed
budget.fedoraproject.org/static/js/jquery.uls.regionfilter.js
+37 -37
file changed
build.d/construct-translations.py
+0 -5
file changed
flocktofedora.org/data/templates/css.html
+1 -11
file changed
flocktofedora.org/data/templates/footer.html
+0 -8
file changed
flocktofedora.org/data/templates/js.html
+23 -1
file changed
flocktofedora.org/static/css/app.css
-75
file removed
flocktofedora.org/static/css/jquery.uls.compact.css
-260
file removed
flocktofedora.org/static/css/jquery.uls.css
-315
file removed
flocktofedora.org/static/css/jquery.uls.grid.css
-86
file removed
flocktofedora.org/static/css/jquery.uls.lcd.css
-319
file removed
flocktofedora.org/static/css/jquery.uls.mobile.css
-444
file removed
flocktofedora.org/static/js/jquery.uls.core.js
-7
file removed
flocktofedora.org/static/js/jquery.uls.data.js
-465
file removed
flocktofedora.org/static/js/jquery.uls.data.utils.js
-360
file removed
flocktofedora.org/static/js/jquery.uls.languagefilter.js
-396
file removed
flocktofedora.org/static/js/jquery.uls.lcd.js
-1
file removed
flocktofedora.org/static/js/jquery.uls.min.js
-198
file removed
flocktofedora.org/static/js/jquery.uls.regionfilter.js
+0 -5
file changed
getfedora.org/data/templates/css.html
+1 -8
file changed
getfedora.org/data/templates/footer.html
+0 -9
file changed
getfedora.org/data/templates/js.html
+23 -1
file changed
getfedora.org/static/css/app.css
-75
file removed
getfedora.org/static/css/jquery.uls.compact.css
-260
file removed
getfedora.org/static/css/jquery.uls.css
-315
file removed
getfedora.org/static/css/jquery.uls.grid.css
-86
file removed
getfedora.org/static/css/jquery.uls.lcd.css
-319
file removed
getfedora.org/static/css/jquery.uls.mobile.css
-444
file removed
getfedora.org/static/js/jquery.uls.core.js
-7
file removed
getfedora.org/static/js/jquery.uls.data.js
-465
file removed
getfedora.org/static/js/jquery.uls.data.utils.js
-360
file removed
getfedora.org/static/js/jquery.uls.languagefilter.js
-396
file removed
getfedora.org/static/js/jquery.uls.lcd.js
-1
file removed
getfedora.org/static/js/jquery.uls.min.js
-198
file removed
getfedora.org/static/js/jquery.uls.regionfilter.js
+0 -5
file changed
labs.fedoraproject.org/data/templates/css.html
+1 -8
file changed
labs.fedoraproject.org/data/templates/footer.html
+0 -8
file changed
labs.fedoraproject.org/data/templates/js.html
+23 -1
file changed
labs.fedoraproject.org/static/css/app.css
-75
file removed
labs.fedoraproject.org/static/css/jquery.uls.compact.css
-260
file removed
labs.fedoraproject.org/static/css/jquery.uls.css
-315
file removed
labs.fedoraproject.org/static/css/jquery.uls.grid.css
-86
file removed
labs.fedoraproject.org/static/css/jquery.uls.lcd.css
-319
file removed
labs.fedoraproject.org/static/css/jquery.uls.mobile.css
-444
file removed
labs.fedoraproject.org/static/js/jquery.uls.core.js
-7
file removed
labs.fedoraproject.org/static/js/jquery.uls.data.js
-465
file removed
labs.fedoraproject.org/static/js/jquery.uls.data.utils.js
-360
file removed
labs.fedoraproject.org/static/js/jquery.uls.languagefilter.js
-396
file removed
labs.fedoraproject.org/static/js/jquery.uls.lcd.js
-1
file removed
labs.fedoraproject.org/static/js/jquery.uls.min.js
-198
file removed
labs.fedoraproject.org/static/js/jquery.uls.regionfilter.js
+0 -5
file changed
spins.fedoraproject.org/data/templates/css.html
+1 -8
file changed
spins.fedoraproject.org/data/templates/footer.html
+0 -8
file changed
spins.fedoraproject.org/data/templates/js.html
+23 -1
file changed
spins.fedoraproject.org/static/css/app.css
-75
file removed
spins.fedoraproject.org/static/css/jquery.uls.compact.css
-260
file removed
spins.fedoraproject.org/static/css/jquery.uls.css
-315
file removed
spins.fedoraproject.org/static/css/jquery.uls.grid.css
-86
file removed
spins.fedoraproject.org/static/css/jquery.uls.lcd.css
-319
file removed
spins.fedoraproject.org/static/css/jquery.uls.mobile.css
-444
file removed
spins.fedoraproject.org/static/js/jquery.uls.core.js
-7
file removed
spins.fedoraproject.org/static/js/jquery.uls.data.js
-465
file removed
spins.fedoraproject.org/static/js/jquery.uls.data.utils.js
-360
file removed
spins.fedoraproject.org/static/js/jquery.uls.languagefilter.js
-396
file removed
spins.fedoraproject.org/static/js/jquery.uls.lcd.js
-1
file removed
spins.fedoraproject.org/static/js/jquery.uls.min.js
-198
file removed
spins.fedoraproject.org/static/js/jquery.uls.regionfilter.js
+0 -2
file changed
start.fedoraproject.org/data/templates/js.html