Loco Translate - Version 2.0.17

Version Description

  • Unofficial languages showing in Installed dropdown
  • Fixed extraction bug where comment confused with file header
  • Fixed issue where src attributes requested from server during HTML strip
  • Added loco_admin_init hook into ajax router for consistency
  • Added warning on file info page when file is managed by WordPress
  • Minor help link and layout tweaks
  • Bumped WP compatibility to 4.9.1
Download this release

Release Info

Developer timwhitlock
Plugin Icon 128x128 Loco Translate
Version 2.0.17
Comparing to
See all releases

Code changes from version 2.0.16 to 2.0.17

languages/loco-translate.pot CHANGED
@@ -3,7 +3,7 @@ msgid ""
3
  msgstr ""
4
  "Project-Id-Version: PACKAGE VERSION\n"
5
  "Report-Msgid-Bugs-To: \n"
6
- "POT-Creation-Date: 2017-10-05 14:00+0000\n"
7
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
8
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
9
  "Language-Team: \n"
@@ -26,37 +26,37 @@ msgid "Invalid locale"
26
  msgstr ""
27
 
28
  #. Plural category for languages that have no plurals
29
- #: src/Locale.php:243
30
  msgctxt "Plural category"
31
  msgid "All forms"
32
  msgstr ""
33
 
34
  #. Plural category for singular quantity
35
- #: src/Locale.php:250
36
  msgctxt "Plural category"
37
  msgid "One"
38
  msgstr ""
39
 
40
  #. Plural category used in some multi-plural languages
41
- #: src/Locale.php:252
42
  msgctxt "Plural category"
43
  msgid "Two"
44
  msgstr ""
45
 
46
  #. Plural category used in some multi-plural languages
47
- #: src/Locale.php:254
48
  msgctxt "Plural category"
49
  msgid "Few"
50
  msgstr ""
51
 
52
  #. Plural category used in some multi-plural languages
53
- #: src/Locale.php:256
54
  msgctxt "Plural category"
55
  msgid "Many"
56
  msgstr ""
57
 
58
  #. General plural category not covered by other forms
59
- #: src/Locale.php:258
60
  msgctxt "Plural category"
61
  msgid "Other"
62
  msgstr ""
@@ -466,20 +466,20 @@ msgstr ""
466
  msgid "Page not found"
467
  msgstr ""
468
 
469
- #: src/mvc/AjaxRouter.php:155
470
  #, php-format
471
  msgid "Ajax route not found: \"%s\""
472
  msgstr ""
473
 
474
- #: src/mvc/AjaxRouter.php:160
475
  msgid "Ajax controller returned empty JSON"
476
  msgstr ""
477
 
478
- #: src/mvc/AjaxRouter.php:187
479
  msgid "Download action not found"
480
  msgstr ""
481
 
482
- #: src/mvc/AjaxRouter.php:192
483
  msgid "Download controller returned empty output"
484
  msgstr ""
485
 
@@ -515,7 +515,7 @@ msgid_plural "%u configured domains have no extractable strings"
515
  msgstr[0] ""
516
  msgstr[1] ""
517
 
518
- #: src/package/Header.php:77 src/admin/file/InfoController.php:126
519
  msgid "Unknown author"
520
  msgstr ""
521
 
@@ -603,7 +603,7 @@ msgstr ""
603
  msgid "Child theme declares the same Text Domain as the parent theme"
604
  msgstr ""
605
 
606
- #: src/admin/bundle/ConfController.php:139 tpl/admin/bundle/setup/core.php:17
607
  #: tpl/admin/bundle/setup/inc-nav.php:19
608
  msgid "Advanced configuration"
609
  msgstr ""
@@ -644,7 +644,7 @@ msgid "Edit template"
644
  msgstr ""
645
 
646
  #: src/admin/bundle/ViewController.php:126
647
- #: src/admin/init/InitPoController.php:153 tpl/admin/init/init-pot.php:40
648
  msgid "Create template"
649
  msgstr ""
650
 
@@ -776,11 +776,11 @@ msgctxt "Editor"
776
  msgid "Toggle code view"
777
  msgstr ""
778
 
779
- #: src/admin/file/InfoController.php:146
780
  msgid "File does not have a valid header"
781
  msgstr ""
782
 
783
- #: src/admin/file/InfoController.php:163
784
  #, php-format
785
  msgid "Language header is \"%s\" but file name contains \"%s\""
786
  msgstr ""
@@ -794,21 +794,21 @@ msgstr ""
794
  msgid "Initializing new translations in unknown set"
795
  msgstr ""
796
 
797
- #: src/admin/init/InitPoController.php:134
798
  #, php-format
799
  msgid "One string found in %2$s"
800
  msgid_plural "%s strings found in %s"
801
  msgstr[0] ""
802
  msgstr[1] ""
803
 
804
- #: src/admin/init/InitPoController.php:162
805
  #, php-format
806
  msgid "1 source file will be scanned for translatable strings"
807
  msgid_plural "%s source files will be scanned for translatable strings"
808
  msgstr[0] ""
809
  msgstr[1] ""
810
 
811
- #: src/admin/init/InitPoController.php:168
812
  msgid "Skip template"
813
  msgstr ""
814
 
@@ -1367,6 +1367,22 @@ msgid ""
1367
  "or make the directory writeable by %s"
1368
  msgstr ""
1369
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1370
  #: tpl/admin/file/view-mo.php:11
1371
  msgid "File is in binary MO format"
1372
  msgstr ""
@@ -1436,25 +1452,29 @@ msgstr ""
1436
  msgid "Choose a location"
1437
  msgstr ""
1438
 
1439
- #: tpl/admin/init/init-po.php:119
 
 
 
 
1440
  msgid "Template options"
1441
  msgstr ""
1442
 
1443
- #: tpl/admin/init/init-po.php:125
1444
  #, php-format
1445
  msgid "Copy target translations from \"%s\""
1446
  msgstr ""
1447
 
1448
- #: tpl/admin/init/init-po.php:131
1449
  msgid "Just copy English source strings"
1450
  msgstr ""
1451
 
1452
- #: tpl/admin/init/init-po.php:141
1453
  #, php-format
1454
  msgid "Use \"%s\" as template when running Sync"
1455
  msgstr ""
1456
 
1457
- #: tpl/admin/init/init-po.php:151
1458
  msgid "Start translating"
1459
  msgstr ""
1460
 
@@ -1486,30 +1506,30 @@ msgstr[1] ""
1486
  msgid "Strings will be extracted to:"
1487
  msgstr ""
1488
 
1489
- #: tpl/admin/init/init-prompt.php:12
 
 
 
 
1490
  msgid "Template missing"
1491
  msgstr ""
1492
 
1493
- #: tpl/admin/init/init-prompt.php:16
1494
  msgid ""
1495
  "This bundle's template file doesn't exist yet. We recommend you create it "
1496
  "before adding languages"
1497
  msgstr ""
1498
 
1499
- #: tpl/admin/init/init-prompt.php:20
1500
  msgid "This bundle doesn't define a translations template file"
1501
  msgstr ""
1502
 
1503
- #: tpl/admin/init/init-prompt.php:24
1504
  msgid ""
1505
  "Loco can sync directly with the source code, but this can be slow if there "
1506
  "are many files"
1507
  msgstr ""
1508
 
1509
- #: tpl/admin/init/init-prompt.php:29
1510
- msgid "About templates"
1511
- msgstr ""
1512
-
1513
  #: tpl/admin/list/inc-table.php:10
1514
  msgid "Bundle name"
1515
  msgstr ""
3
  msgstr ""
4
  "Project-Id-Version: PACKAGE VERSION\n"
5
  "Report-Msgid-Bugs-To: \n"
6
+ "POT-Creation-Date: 2017-11-30 18:22+0000\n"
7
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
8
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
9
  "Language-Team: \n"
26
  msgstr ""
27
 
28
  #. Plural category for languages that have no plurals
29
+ #: src/Locale.php:262
30
  msgctxt "Plural category"
31
  msgid "All forms"
32
  msgstr ""
33
 
34
  #. Plural category for singular quantity
35
+ #: src/Locale.php:269
36
  msgctxt "Plural category"
37
  msgid "One"
38
  msgstr ""
39
 
40
  #. Plural category used in some multi-plural languages
41
+ #: src/Locale.php:271
42
  msgctxt "Plural category"
43
  msgid "Two"
44
  msgstr ""
45
 
46
  #. Plural category used in some multi-plural languages
47
+ #: src/Locale.php:273
48
  msgctxt "Plural category"
49
  msgid "Few"
50
  msgstr ""
51
 
52
  #. Plural category used in some multi-plural languages
53
+ #: src/Locale.php:275
54
  msgctxt "Plural category"
55
  msgid "Many"
56
  msgstr ""
57
 
58
  #. General plural category not covered by other forms
59
+ #: src/Locale.php:277
60
  msgctxt "Plural category"
61
  msgid "Other"
62
  msgstr ""
466
  msgid "Page not found"
467
  msgstr ""
468
 
469
+ #: src/mvc/AjaxRouter.php:161
470
  #, php-format
471
  msgid "Ajax route not found: \"%s\""
472
  msgstr ""
473
 
474
+ #: src/mvc/AjaxRouter.php:166
475
  msgid "Ajax controller returned empty JSON"
476
  msgstr ""
477
 
478
+ #: src/mvc/AjaxRouter.php:193
479
  msgid "Download action not found"
480
  msgstr ""
481
 
482
+ #: src/mvc/AjaxRouter.php:198
483
  msgid "Download controller returned empty output"
484
  msgstr ""
485
 
515
  msgstr[0] ""
516
  msgstr[1] ""
517
 
518
+ #: src/package/Header.php:77 src/admin/file/InfoController.php:130
519
  msgid "Unknown author"
520
  msgstr ""
521
 
603
  msgid "Child theme declares the same Text Domain as the parent theme"
604
  msgstr ""
605
 
606
+ #: src/admin/bundle/ConfController.php:140 tpl/admin/bundle/setup/core.php:17
607
  #: tpl/admin/bundle/setup/inc-nav.php:19
608
  msgid "Advanced configuration"
609
  msgstr ""
644
  msgstr ""
645
 
646
  #: src/admin/bundle/ViewController.php:126
647
+ #: src/admin/init/InitPoController.php:171 tpl/admin/init/init-pot.php:40
648
  msgid "Create template"
649
  msgstr ""
650
 
776
  msgid "Toggle code view"
777
  msgstr ""
778
 
779
+ #: src/admin/file/InfoController.php:150
780
  msgid "File does not have a valid header"
781
  msgstr ""
782
 
783
+ #: src/admin/file/InfoController.php:167
784
  #, php-format
785
  msgid "Language header is \"%s\" but file name contains \"%s\""
786
  msgstr ""
794
  msgid "Initializing new translations in unknown set"
795
  msgstr ""
796
 
797
+ #: src/admin/init/InitPoController.php:152
798
  #, php-format
799
  msgid "One string found in %2$s"
800
  msgid_plural "%s strings found in %s"
801
  msgstr[0] ""
802
  msgstr[1] ""
803
 
804
+ #: src/admin/init/InitPoController.php:180
805
  #, php-format
806
  msgid "1 source file will be scanned for translatable strings"
807
  msgid_plural "%s source files will be scanned for translatable strings"
808
  msgstr[0] ""
809
  msgstr[1] ""
810
 
811
+ #: src/admin/init/InitPoController.php:186
812
  msgid "Skip template"
813
  msgstr ""
814
 
1367
  "or make the directory writeable by %s"
1368
  msgstr ""
1369
 
1370
+ #: tpl/admin/file/info.php:107
1371
+ msgid "WordPress system file"
1372
+ msgstr ""
1373
+
1374
+ #: tpl/admin/file/info.php:110
1375
+ msgid "This file location is managed by WordPress updates"
1376
+ msgstr ""
1377
+
1378
+ #: tpl/admin/file/info.php:111
1379
+ msgid "It's not recommended to edit this file directly"
1380
+ msgstr ""
1381
+
1382
+ #: tpl/admin/file/info.php:114
1383
+ msgid "See FAQ"
1384
+ msgstr ""
1385
+
1386
  #: tpl/admin/file/view-mo.php:11
1387
  msgid "File is in binary MO format"
1388
  msgstr ""
1452
  msgid "Choose a location"
1453
  msgstr ""
1454
 
1455
+ #: tpl/admin/init/init-po.php:84 tpl/admin/init/init-po.php:121
1456
+ msgid "What's this?"
1457
+ msgstr ""
1458
+
1459
+ #: tpl/admin/init/init-po.php:118
1460
  msgid "Template options"
1461
  msgstr ""
1462
 
1463
+ #: tpl/admin/init/init-po.php:129
1464
  #, php-format
1465
  msgid "Copy target translations from \"%s\""
1466
  msgstr ""
1467
 
1468
+ #: tpl/admin/init/init-po.php:135
1469
  msgid "Just copy English source strings"
1470
  msgstr ""
1471
 
1472
+ #: tpl/admin/init/init-po.php:145
1473
  #, php-format
1474
  msgid "Use \"%s\" as template when running Sync"
1475
  msgstr ""
1476
 
1477
+ #: tpl/admin/init/init-po.php:155
1478
  msgid "Start translating"
1479
  msgstr ""
1480
 
1506
  msgid "Strings will be extracted to:"
1507
  msgstr ""
1508
 
1509
+ #: tpl/admin/init/init-pot.php:41 tpl/admin/init/init-prompt.php:27
1510
+ msgid "About templates"
1511
+ msgstr ""
1512
+
1513
+ #: tpl/admin/init/init-prompt.php:10
1514
  msgid "Template missing"
1515
  msgstr ""
1516
 
1517
+ #: tpl/admin/init/init-prompt.php:14
1518
  msgid ""
1519
  "This bundle's template file doesn't exist yet. We recommend you create it "
1520
  "before adding languages"
1521
  msgstr ""
1522
 
1523
+ #: tpl/admin/init/init-prompt.php:18
1524
  msgid "This bundle doesn't define a translations template file"
1525
  msgstr ""
1526
 
1527
+ #: tpl/admin/init/init-prompt.php:22
1528
  msgid ""
1529
  "Loco can sync directly with the source code, but this can be slow if there "
1530
  "are many files"
1531
  msgstr ""
1532
 
 
 
 
 
1533
  #: tpl/admin/list/inc-table.php:10
1534
  msgid "Bundle name"
1535
  msgstr ""
lib/compiled/gettext.php CHANGED
@@ -19,11 +19,12 @@ class LocoPHPTokens implements LocoTokensInterface { private $i; private $tokens
19
  function loco_sniff_printf( $s, $p, $limit = 0, $offset = 0 ){ $n = 0; while( $s && false !== ( $i = strpos($s,'%',$offset) ) ){ if( 0 !== $i ){ $s = substr( $s, $i ); } if( preg_match( $p, $s, $r ) ){ $match = $r[0]; if( 0 < $n && isset($r[1]) && '' === $r[1] && '%' !== substr($match,-1) ){ return 0; } if( ++$n === $limit ){ break; } $offset = strlen($match); } else { return 0; } } return $n; }
20
  function loco_sniff_php_printf( $s, $limit = 0 ){ return loco_sniff_printf( $s, '/^%(?:\\d+\\$)?(?:\'.|[-+0 ])*\\d*(?:\\.\\d+)?[suxXbcdeEfFgGo%]/', $limit ); }
21
  function loco_decapse_php_string( $s ){ if( ! $s ){ return ''; } $q = $s{0}; if( "'" === $q ){ return str_replace( array( '\\'.$q, '\\\\' ), array( $q, '\\' ), substr( $s, 1, -1 ) ); } if( '"' !== $q ){ return $s; } $s = substr( $s, 1, -1 ); $a = ''; $e = false; $symbols = array ( 'n' => "\x0A", 'r' => "\x0D", 't' => "\x09", 'v' => "\x0B", 'f' => "\x0C", 'e' => "\x1B", '$' => '$', '\\' => '\\', '"' => '"', ); foreach( explode('\\', $s) as $i => $t ){ if( '' === $t ){ if( $e ){ $a .= '\\'; } $e = ! $e; continue; } if( $e ){ $c = $t{0}; while( true ){ if( 'x' === $c || 'X' === $c ){ if( preg_match('/^x([0-9a-f]{1,2})/i', $t, $n ) ){ $c = chr( intval( $n[1], 16 ) ); $n = strlen($n[0]); break; } } else if( isset($symbols[$c]) ){ $c = $symbols[$c]; $n = 1; break; } else if( preg_match('/^[0-7]{1,3}/', $t, $n ) ){ $c = chr( intval( $n[0], 8 ) ); $n = strlen($n[0]); break; } $a .= '\\'.$t; continue 2; } $a .= substr_replace( $t, $c, 0, $n ); continue; } $a .= $t; $e = true; } return $a; }
22
- class LocoPHPExtractor extends LocoExtractor { private $defs = array(); public function extractSource( $src, $fileref = '' ){ $tokens = new LocoPHPTokens( token_get_all($src) ); $tokens->ignore( T_WHITESPACE ); return $this->extract( $tokens, $fileref )->export(); } public function decapse( $raw ){ return loco_decapse_php_string( $raw ); } public function fsniff( $str ){ return loco_sniff_php_printf($str) ? 'php' : ''; } public function define( $name, $value ){ if( is_string($value) ){ $this->defs[$name] = $value; } return $this; } public function extract( LocoTokensInterface $tokens, $fileref ){ $n = 0; $depth = 0; $comment = ''; $wp = $this->headerized(); $tokens->rewind(); while( $tok = $tokens->advance() ){ if( is_string($tok) ){ $s = $tok; $t = null; } else { $t = $tok[0]; $s = $tok[1]; } if( $depth ){ if( ')' === $s || ']' === $s ){ if( 0 === --$depth ){ if( $this->push( $rule, $args, $comment, $ref ) ){ $n++; } $comment = ''; } } else if( '(' === $s || '[' === $s ){ $depth++; $args[$narg] = null; } else if( 1 === $depth ){ if( ',' === $s ){ $narg++; } else if( T_CONSTANT_ENCAPSED_STRING === $t ){ $args[$narg] = $this->decapse($s); } else if( T_STRING === $t && array_key_exists($s,$this->defs) ){ $args[$narg] = $this->defs[$s]; } else { $args[$narg] = null; } } } else if( T_COMMENT === $t || T_DOC_COMMENT === $t ){ if( $wp && 0 === $n && ( $header = loco_parse_wp_comment($s) ) ){ foreach( $wp as $domain => $tags ){ foreach( array_intersect_key($header,$tags) as $tag => $source ){ $this->pushMeta( $source, $tags[$tag], $domain ); } } } else { $comment = $s; } } else if( T_STRING === $t && '(' === $tokens->advance() && ( $rule = $this->rule($s) ) ){ $ref = $fileref ? $fileref.':'.$tok[2]: ''; $depth = 1; $args = array(); $narg = 0; } else if( $comment ){ if( false === stripos($comment, 'translators:') && false === strpos($comment, 'xgettext:') ){ $comment = ''; } } } return $this; } }
23
  function loco_wp_extractor(){ $e = new LocoWordPressExtractor( array( '__' => 'sd', '_e' => 'sd', '_c' => 'sd', '_n' => 'sp_d', '_n_noop' => 'spd', '_nc' => 'sp_d', '__ngettext' => 'spd', '__ngettext_noop' => 'spd', '_x' => 'scd', '_ex' => 'scd', '_nx' => 'sp_cd', '_nx_noop' => 'spcd', 'esc_attr__' => 'sd', 'esc_html__' => 'sd', 'esc_attr_e' => 'sd', 'esc_html_e' => 'sd', 'esc_attr_x' => 'scd', 'esc_html_x' => 'scd', ) ); return $e->setDomain('default'); }
24
  final class LocoWordPressExtractor extends LocoPHPExtractor { public function extractSource( $src, $fileref = '' ){ if( '.twig' === substr($fileref,-5) ){ $src = '<?php '.preg_replace('/\\{#([^#]+)#\\}/su','/*\\1*/',$src); } return parent::extractSource( $src, $fileref ); } }
25
  abstract class LocoPo { public static function pair( $key, $text, $width = 79 ){ if( ! $text && '0' !== $text ){ return $key.' ""'; } $text = addcslashes( $text, "\t\x0B\x0C\x07\x08\\\"" ); $text = preg_replace('/\R/u', "\\n\n", $text, -1, $nbr ); if( $nbr ){ } else if( $width && $width < mb_strlen($text,'UTF-8') + strlen($key) + 3 ){ } else { return $key.' "'.$text.'"'; } $lines = array( $key.' "' ); if( $width ){ $width -= 2; $a = '/^.{0,'.($width-1).'}[-– \\.,:;\\?!\\)\\]\\}\\>]/u'; $b = '/^[^-– \\.,:;\\?!\\)\\]\\}\\>]+/u'; foreach( explode("\n",$text) as $unwrapped ){ $length = mb_strlen( $unwrapped, 'UTF-8' ); while( $length > $width ){ if( preg_match( $a, $unwrapped, $r ) ){ $line = $r[0]; } else if( preg_match( $b, $unwrapped, $r ) ){ $line = $r[0]; } else { throw new Exception('Wrapping error'); } $lines[] = $line; $trunc = mb_strlen($line,'UTF-8'); $length -= $trunc; $unwrapped = substr( $unwrapped, strlen($line) ); if( ( false === $unwrapped && 0 !== $length ) || ( 0 === $length && false !== $unwrapped ) ){ throw new Exception('Truncation error'); } } if( 0 !== $length ){ $lines[] = $unwrapped; } } } else { foreach( explode("\n",$text) as $unwrapped ){ $lines[] = $unwrapped; } } return implode("\"\n\"",$lines).'"'; } public static function refs( $text, $width = 76 ){ $text = preg_replace('/\\s+/', ' ', $text ); if( $width ){ $text = wordwrap( $text, $width, "\n#: ", false ); } return '#: '.$text; } public static function prefix( $text, $prefix ){ $lines = preg_split('/\\R/u', $text, -1 ); return $prefix.implode( "\n".$prefix, $lines ); } }
26
- class LocoPoIterator implements Iterator { private $po; private $headers; private $i; private $t; private $j; private $z; private $m; private $w = 79; public function __construct( $po ){ $this->po = $po; $this->t = count( $po ); if( ! isset($po[0]) ){ throw new InvalidArgumentException('Empty PO data'); } $h = $po[0]; if( '' === $h['source'] && empty($h['context']) ){ $this->z = 0; } else { $this->z = -1; } } public function wrap( $width ){ if( ! ctype_digit($width) || $width < 1 ){ $this->w = 0; } else { $this->w = max( 15, (int) $width ); } return $this; } public function rewind(){ $this->i = $this->z; $this->j = -1; $this->next(); } public function key(){ return $this->j; } public function valid(){ return is_int($this->i); } public function next(){ $i = $this->i; while( ++$i < $this->t ){ $this->j++; $this->i = $i; return; } $this->i = null; $this->j = null; } public function current(){ $i = $this->i; $po = $this->po; $parent = new LocoPoMessage( $po[$i] ); $plurals = array(); while( isset($po[++$i]['parent']) ){ $this->i = $i; $plurals[] = new LocoPoMessage( $po[$i] ); } if( $plurals ){ $parent['plurals'] = $plurals; } return $parent; } public function getArrayCopy(){ $po = $this->po; if( 0 === $this->z ){ $po[0]['target'] = (string) $this->getHeaders(); } return $po; } public function getHeaders(){ if( ! $this->headers ){ $header = $this->po[0]; if( 0 === $this->z ){ $this->headers = loco_parse_po_headers( $header['target'] ); } else { $this->headers = new LocoPoHeaders; } } return $this->headers; } public function initPo(){ if( 0 === $this->z ){ unset( $this->po[0]['flag'] ); } return $this; } public function initPot(){ if( 0 === $this->z ){ $this->po[0]['flag'] = 4; } return $this; } public function strip(){ $po = $this->po; $i = count($po); $z = $this->z; while( --$i > $z ){ $po[$i]['target'] = ''; } $this->po = $po; return $this; } public function __toString(){ try { $width = $this->w; $ref_width = max( 0, $width - 3 ); if( 0 === $this->z ){ $h = $this->po[0]; } else { $h = array( 'source' => '' ); } $h['target'] = (string) $this->getHeaders(); $msg = new LocoPoMessage( $h ); $s = $msg->render( $width, $ref_width ); foreach( $this as $msg ){ $s .= "\n".$msg->render( $width, $ref_width ); } } catch( Exception $e ){ trigger_error( $e->getMessage(), E_USER_WARNING ); $s = ''; } return $s; } public function getHashes(){ $a = array(); foreach( $this as $msg ){ $a[] = $msg->getHash(); } sort( $a, SORT_STRING ); return $a; } public function equalSource( LocoPoIterator $that ){ $a = $this->getHashes(); $b = $that->getHashes(); if( count($a) !== count($b) ){ return false; } foreach( $a as $i => $hash ){ if( $hash !== $b[$i] ){ return false; } } return true; } }
 
27
  class LocoPoMessage extends ArrayObject { public function __construct( array $r ){ $r['key'] = $r['source']; parent::__construct($r); } public function __get( $prop ){ return isset($this[$prop]) ? $this[$prop] : null; } private function _getFlags(){ $flags = array(); $plurals = $this->__get('plurals'); if( 4 === $this->__get('flag') ){ $flags[] = 'fuzzy'; } else if( $plurals ){ foreach( $plurals as $child ){ if( 4 === $child->__get('flag') ){ $flags[] = 'fuzzy'; break; } } } if( $f = $this->__get('format') ){ $flags[] = $f.'-format'; } else if( isset($plurals[0]) && ( $f = $plurals[0]->__get('format') ) ){ $flags[] = $f.'-format'; } return $flags; } public function getHash(){ $msgid = $this['source']; if( isset($this['context']) ){ $msgctxt = $this['context']; if( is_string($msgctxt) && '' !== $msgctxt ){ if( ! $msgid && '0' !== $msgid ){ $msgid = '('.$msgctxt.')'; } $msgid = $msgctxt."\x04".$msgid; } } if( isset($this['plurals']) ){ foreach( $this['plurals'] as $p ){ $msgid .= "\0".$p->getHash(); break; } } return $msgid; } public function __toString(){ return $this->render( 79, 76 ); } public function render( $width, $ref_width ){ $s = ''; try { if( $text = $this->__get('comment') ) { $s .= LocoPo::prefix( $text, '# ')."\n"; } if( $text = $this->__get('notes') ) { $s .= LocoPo::prefix( $text, '#. ')."\n"; } if( $text = $this->__get('refs') ){ $s .= LocoPo::refs( $text, $ref_width )."\n"; } if( $texts = $this->_getFlags() ){ $s .= '#, '.implode(', ',$texts)."\n"; } $text = $this->__get('context'); if( is_string($text) && isset($text{0}) ){ $s .= LocoPo::pair('msgctxt', $text, $width )."\n"; } $s .= LocoPo::pair( 'msgid', $this['key'], $width )."\n"; $target = $this['target']; if( is_array( $plurals = $this->__get('plurals') ) ){ if( $plurals ){ foreach( $plurals as $i => $p ){ if( 0 === $i ){ $s .= LocoPo::pair('msgid_plural', $p['key'], $width )."\n"; $s .= LocoPo::pair('msgstr[0]', $target, $width )."\n"; } $s .= LocoPo::pair('msgstr['.(++$i).']', $p['target'], $width )."\n"; } } else if( isset($this['plural_key']) ){ $s .= LocoPo::pair('msgid_plural', $this['plural_key'], $width )."\n"; $s .= LocoPo::pair('msgstr[0]', $target, $width )."\n"; } else { trigger_error('Missing plural_key in zero plural export'); $s .= LocoPo::pair('msgstr', $target, $width )."\n"; } } else { $s .= LocoPo::pair('msgstr', $target, $width )."\n"; } } catch( Exception $e ){ trigger_error( $e->getMessage(), E_USER_WARNING ); } return $s; } }
28
  class LocoMoTable { private $size = 0; private $bin = ''; private $map; public function __construct( $data = null ){ if( is_array($data) ){ $this->compile( $data ); } else if( $data ){ $this->parse( $data ); } } public function count(){ if( ! isset($this->size) ){ if( $this->bin ){ $this->size = (int) ( strlen( $this->bin ) / 4 ); } else if( is_array($this->map) ){ $this->size = count($this->map); } else { return 0; } if( ! self::is_prime($this->size) || $this->size < 3 ){ throw new Exception('Size expected to be prime number above 2, got '.$this->size); } } return $this->size; } public function bytes(){ return $this->count() * 4; } public function __toString(){ return $this->bin; } public function export(){ if( ! is_array($this->map) ){ $this->parse( $this->bin ); } return $this->map; } private function reset( $length ){ $this->size = max( 3, self::next_prime ( $length * 4 / 3 ) ); $this->bin = null; $this->map = array(); return $this->size; } public function compile( array $msgids ){ $hash_tab_size = $this->reset( count($msgids) ); $packed = array_fill( 0, $hash_tab_size, "\0\0\0\0" ); $j = 0; foreach( $msgids as $msgid ){ $hash_val = self::hashpjw( $msgid ); $idx = $hash_val % $hash_tab_size; if( array_key_exists($idx, $this->map) ){ $incr = 1 + ( $hash_val % ( $hash_tab_size - 2 ) ); do { $idx += $incr; if( $hash_val === $idx ){ throw new Exception('Unable to find empty slot in hash table'); } $idx %= $hash_tab_size; } while( array_key_exists($idx, $this->map ) ); } $this->map[$idx] = $j; $packed[$idx] = pack('V', ++$j ); } return $this->bin = implode('',$packed); } public function lookup( $msgid, array $msgids ){ $hash_val = self::hashpjw( $msgid ); $idx = $hash_val % $this->size; $incr = 1 + ( $hash_val % ( $this->size - 2 ) ); while( true ){ if( ! array_key_exists($idx, $this->map) ){ break; } $j = $this->map[$idx]; if( isset($msgids[$j]) && $msgid === $msgids[$j] ){ return $j; } $idx += $incr; if( $idx === $hash_val ){ break; } $idx %= $this->size; } return -1; } public function parse( $bin ){ $this->bin = (string) $bin; $this->size = null; $hash_tab_size = $this->count(); $this->map = array(); $idx = -1; $byte = 0; while( ++$idx < $hash_tab_size ){ $word = substr( $this->bin, $byte, 4 ); if( "\0\0\0\0" !== $word ){ list(,$j) = unpack('V', $word ); $this->map[$idx] = $j - 1; } $byte += 4; } return $this->map; } public static function hashpjw( $str ){ $i = -1; $hval = 0; $len = strlen($str); while( ++$i < $len ){ $ord = ord( $str{$i} ); $hval = ( $hval << 4 ) + $ord; $g = $hval & 0xf0000000; if( $g !== 0 ){ $hval ^= $g >> 24; $hval ^= $g; } } return $hval; } private static function next_prime( $seed ){ $seed |= 1; while ( ! self::is_prime($seed) ){ $seed += 2; } return $seed; } private static function is_prime( $num ) { if ($num === 1 ){ return false; } if( $num === 2 ){ return true; } if( $num % 2 == 0 ) { return false; } for( $i = 3; $i <= ceil(sqrt($num)); $i = $i + 2) { if($num % $i == 0 ){ return false; } } return true; } }
29
  class LocoMo { private $bin; private $msgs; private $head; private $hash; private $use_fuzzy = false; public function __construct( Iterator $export, Iterator $head = null ){ if( $head ){ $this->head = $head; } else { $this->head = new LocoHeaders( array ( 'Project-Id-Version' => 'Loco', 'Language' => 'English', 'Plural-Forms' => 'nplurals=2; plural=(n!=1);', 'MIME-Version' => '1.0', 'Content-Type' => 'text/plain; charset=UTF-8', 'Content-Transfer-Encoding' => '8bit', 'X-Generator' => 'Loco '.PLUG_HTTP_ADDR, ) ); } $this->msgs = $export; $this->bin = ''; } public function enableHash(){ return $this->hash = new LocoMoTable; } public function useFuzzy(){ $this->use_fuzzy = true; } public function setHeader( $key, $val ){ $this->head->add($key, $val); return $this; } public function setProject( LocoProject $Proj ){ return $this ->setHeader( 'Project-Id-Version', $Proj->proj_name ) ->setHeader($key, $val) ; } public function setLocale( LocoProjectLocale $Loc ){ return $this ->setHeader( 'Language', $Loc->label ) ->setHeader( 'Plural-Forms', (string) $Loc->getPlurals() ) ; } public function count(){ return count($this->msgs); } public function compile(){ $table = array(''); $sources = array(''); $targets = array( (string) $this->head ); $fuzzy_flag = 4; $skip_fuzzy = ! $this->use_fuzzy; foreach( $this->msgs as $r ){ if( isset($r['flag']) && $skip_fuzzy && $fuzzy_flag === $r['flag'] ){ continue; } $msgid = $r['key']; if( isset($r['context']) ){ $msgctxt = $r['context']; if( is_string($msgctxt) && '' !== $msgctxt ){ if( ! $msgid && '0' !== $msgid ){ $msgid = '('.$msgctxt.')'; } $msgid = $msgctxt."\x04".$msgid; } } if( ! $msgid && '0' !== $msgid ){ continue; } $msgstr = $r['target']; if( ! $msgstr && '0' !== $msgstr ){ continue; } $table[] = $msgid; if( isset($r['plurals']) ){ foreach( $r['plurals'] as $i => $p ){ if( $i === 0 ){ $msgid .= "\0".$p['key']; } $msgstr .= "\0".$p['target']; } } $sources[] = $msgid; $targets[] = $msgstr; } asort( $sources, SORT_STRING ); $this->bin = "\xDE\x12\x04\x95\x00\x00\x00\x00"; $n = count($sources); $this->writeInteger( $n ); $offset = 28; $this->writeInteger( $offset ); $offset += $n * 8; $this->writeInteger( $offset ); if( $this->hash ){ sort( $table, SORT_STRING ); $this->hash->compile( $table ); $s = $this->hash->count(); } else { $s = 0; } $this->writeInteger( $s ); $offset += $n * 8; $this->writeInteger( $offset ); if( $s ){ $offset += $s * 4; } $source = ''; foreach( $sources as $i => $str ){ $source .= $str."\0"; $this->writeInteger( $strlen = strlen($str) ); $this->writeInteger( $offset ); $offset += $strlen + 1; } $target = ''; foreach( array_keys($sources) as $i ){ $str = $targets[$i]; $target .= $str."\0"; $this->writeInteger( $strlen = strlen($str) ); $this->writeInteger( $offset ); $offset += $strlen + 1; } if( $this->hash ){ $this->bin .= $this->hash->__toString(); } $this->bin .= $source; $this->bin .= $target; return $this->bin; } private function writeInteger( $num ){ $this->bin .= pack( 'V', $num ); return $this; } }
19
  function loco_sniff_printf( $s, $p, $limit = 0, $offset = 0 ){ $n = 0; while( $s && false !== ( $i = strpos($s,'%',$offset) ) ){ if( 0 !== $i ){ $s = substr( $s, $i ); } if( preg_match( $p, $s, $r ) ){ $match = $r[0]; if( 0 < $n && isset($r[1]) && '' === $r[1] && '%' !== substr($match,-1) ){ return 0; } if( ++$n === $limit ){ break; } $offset = strlen($match); } else { return 0; } } return $n; }
20
  function loco_sniff_php_printf( $s, $limit = 0 ){ return loco_sniff_printf( $s, '/^%(?:\\d+\\$)?(?:\'.|[-+0 ])*\\d*(?:\\.\\d+)?[suxXbcdeEfFgGo%]/', $limit ); }
21
  function loco_decapse_php_string( $s ){ if( ! $s ){ return ''; } $q = $s{0}; if( "'" === $q ){ return str_replace( array( '\\'.$q, '\\\\' ), array( $q, '\\' ), substr( $s, 1, -1 ) ); } if( '"' !== $q ){ return $s; } $s = substr( $s, 1, -1 ); $a = ''; $e = false; $symbols = array ( 'n' => "\x0A", 'r' => "\x0D", 't' => "\x09", 'v' => "\x0B", 'f' => "\x0C", 'e' => "\x1B", '$' => '$', '\\' => '\\', '"' => '"', ); foreach( explode('\\', $s) as $i => $t ){ if( '' === $t ){ if( $e ){ $a .= '\\'; } $e = ! $e; continue; } if( $e ){ $c = $t{0}; while( true ){ if( 'x' === $c || 'X' === $c ){ if( preg_match('/^x([0-9a-f]{1,2})/i', $t, $n ) ){ $c = chr( intval( $n[1], 16 ) ); $n = strlen($n[0]); break; } } else if( isset($symbols[$c]) ){ $c = $symbols[$c]; $n = 1; break; } else if( preg_match('/^[0-7]{1,3}/', $t, $n ) ){ $c = chr( intval( $n[0], 8 ) ); $n = strlen($n[0]); break; } $a .= '\\'.$t; continue 2; } $a .= substr_replace( $t, $c, 0, $n ); continue; } $a .= $t; $e = true; } return $a; }
22
+ class LocoPHPExtractor extends LocoExtractor { private $defs = array(); public function extractSource( $src, $fileref = '' ){ $tokens = new LocoPHPTokens( token_get_all($src) ); $tokens->ignore( T_WHITESPACE ); return $this->extract( $tokens, $fileref )->export(); } public function decapse( $raw ){ return loco_decapse_php_string( $raw ); } public function fsniff( $str ){ return loco_sniff_php_printf($str) ? 'php' : ''; } public function define( $name, $value ){ if( is_string($value) ){ $this->defs[$name] = $value; } return $this; } public function extract( LocoTokensInterface $tokens, $fileref ){ $n = 0; $depth = 0; $comment = ''; $wp = $this->headerized(); $tokens->rewind(); while( $tok = $tokens->advance() ){ if( is_string($tok) ){ $s = $tok; $t = null; } else { $t = $tok[0]; $s = $tok[1]; } if( $depth ){ if( ')' === $s || ']' === $s ){ if( 0 === --$depth ){ if( $this->push( $rule, $args, $comment, $ref ) ){ $n++; } $comment = ''; } } else if( '(' === $s || '[' === $s ){ $depth++; $args[$narg] = null; } else if( 1 === $depth ){ if( ',' === $s ){ $narg++; } else if( T_CONSTANT_ENCAPSED_STRING === $t ){ $args[$narg] = $this->decapse($s); } else if( T_STRING === $t && array_key_exists($s,$this->defs) ){ $args[$narg] = $this->defs[$s]; } else { $args[$narg] = null; } } } else if( T_COMMENT === $t || T_DOC_COMMENT === $t ){ $was_header = false; if( $wp && 0 === $n && ( $header = loco_parse_wp_comment($s) ) ){ foreach( $wp as $domain => $tags ){ foreach( array_intersect_key($header,$tags) as $tag => $source ){ $this->pushMeta( $source, $tags[$tag], $domain ); $was_header = true; } } } if( ! $was_header ) { $comment = $s; } } else if( T_STRING === $t && '(' === $tokens->advance() && ( $rule = $this->rule($s) ) ){ $ref = $fileref ? $fileref.':'.$tok[2]: ''; $depth = 1; $args = array(); $narg = 0; } else if( $comment ){ if( false === stripos($comment, 'translators:') && false === strpos($comment, 'xgettext:') ){ $comment = ''; } } } return $this; } }
23
  function loco_wp_extractor(){ $e = new LocoWordPressExtractor( array( '__' => 'sd', '_e' => 'sd', '_c' => 'sd', '_n' => 'sp_d', '_n_noop' => 'spd', '_nc' => 'sp_d', '__ngettext' => 'spd', '__ngettext_noop' => 'spd', '_x' => 'scd', '_ex' => 'scd', '_nx' => 'sp_cd', '_nx_noop' => 'spcd', 'esc_attr__' => 'sd', 'esc_html__' => 'sd', 'esc_attr_e' => 'sd', 'esc_html_e' => 'sd', 'esc_attr_x' => 'scd', 'esc_html_x' => 'scd', ) ); return $e->setDomain('default'); }
24
  final class LocoWordPressExtractor extends LocoPHPExtractor { public function extractSource( $src, $fileref = '' ){ if( '.twig' === substr($fileref,-5) ){ $src = '<?php '.preg_replace('/\\{#([^#]+)#\\}/su','/*\\1*/',$src); } return parent::extractSource( $src, $fileref ); } }
25
  abstract class LocoPo { public static function pair( $key, $text, $width = 79 ){ if( ! $text && '0' !== $text ){ return $key.' ""'; } $text = addcslashes( $text, "\t\x0B\x0C\x07\x08\\\"" ); $text = preg_replace('/\R/u', "\\n\n", $text, -1, $nbr ); if( $nbr ){ } else if( $width && $width < mb_strlen($text,'UTF-8') + strlen($key) + 3 ){ } else { return $key.' "'.$text.'"'; } $lines = array( $key.' "' ); if( $width ){ $width -= 2; $a = '/^.{0,'.($width-1).'}[-– \\.,:;\\?!\\)\\]\\}\\>]/u'; $b = '/^[^-– \\.,:;\\?!\\)\\]\\}\\>]+/u'; foreach( explode("\n",$text) as $unwrapped ){ $length = mb_strlen( $unwrapped, 'UTF-8' ); while( $length > $width ){ if( preg_match( $a, $unwrapped, $r ) ){ $line = $r[0]; } else if( preg_match( $b, $unwrapped, $r ) ){ $line = $r[0]; } else { throw new Exception('Wrapping error'); } $lines[] = $line; $trunc = mb_strlen($line,'UTF-8'); $length -= $trunc; $unwrapped = substr( $unwrapped, strlen($line) ); if( ( false === $unwrapped && 0 !== $length ) || ( 0 === $length && false !== $unwrapped ) ){ throw new Exception('Truncation error'); } } if( 0 !== $length ){ $lines[] = $unwrapped; } } } else { foreach( explode("\n",$text) as $unwrapped ){ $lines[] = $unwrapped; } } return implode("\"\n\"",$lines).'"'; } public static function refs( $text, $width = 76 ){ $text = preg_replace('/\\s+/', ' ', $text ); if( $width ){ $text = wordwrap( $text, $width, "\n#: ", false ); } return '#: '.$text; } public static function prefix( $text, $prefix ){ $lines = preg_split('/\\R/u', $text, -1 ); return $prefix.implode( "\n".$prefix, $lines ); } }
26
+ function loco_is_numeric( $s ){ return is_int($s) || ctype_digit($s); }
27
+ class LocoPoIterator implements Iterator { private $po; private $headers; private $i; private $t; private $j; private $z; private $m; private $w = 79; public function __construct( $po ){ $this->po = $po; $this->t = count( $po ); if( ! isset($po[0]) ){ throw new InvalidArgumentException('Empty PO data'); } $h = $po[0]; if( '' === $h['source'] && empty($h['context']) ){ $this->z = 0; } else { $this->z = -1; } } public function wrap( $width ){ if( ! loco_is_numeric($width) || $width < 1 ){ $this->w = 0; } else { $this->w = max( 15, (int) $width ); } return $this; } public function rewind(){ $this->i = $this->z; $this->j = -1; $this->next(); } public function key(){ return $this->j; } public function valid(){ return is_int($this->i); } public function next(){ $i = $this->i; while( ++$i < $this->t ){ $this->j++; $this->i = $i; return; } $this->i = null; $this->j = null; } public function current(){ $i = $this->i; $po = $this->po; $parent = new LocoPoMessage( $po[$i] ); $plurals = array(); while( isset($po[++$i]['parent']) ){ $this->i = $i; $plurals[] = new LocoPoMessage( $po[$i] ); } if( $plurals ){ $parent['plurals'] = $plurals; } return $parent; } public function getArrayCopy(){ $po = $this->po; if( 0 === $this->z ){ $po[0]['target'] = (string) $this->getHeaders(); } return $po; } public function getHeaders(){ if( ! $this->headers ){ $header = $this->po[0]; if( 0 === $this->z ){ $this->headers = loco_parse_po_headers( $header['target'] ); } else { $this->headers = new LocoPoHeaders; } } return $this->headers; } public function initPo(){ if( 0 === $this->z ){ unset( $this->po[0]['flag'] ); } return $this; } public function initPot(){ if( 0 === $this->z ){ $this->po[0]['flag'] = 4; } return $this; } public function strip(){ $po = $this->po; $i = count($po); $z = $this->z; while( --$i > $z ){ $po[$i]['target'] = ''; } $this->po = $po; return $this; } public function __toString(){ try { $width = $this->w; $ref_width = max( 0, $width - 3 ); if( 0 === $this->z ){ $h = $this->po[0]; } else { $h = array( 'source' => '' ); } $h['target'] = (string) $this->getHeaders(); $msg = new LocoPoMessage( $h ); $s = $msg->render( $width, $ref_width ); foreach( $this as $msg ){ $s .= "\n".$msg->render( $width, $ref_width ); } } catch( Exception $e ){ trigger_error( $e->getMessage(), E_USER_WARNING ); $s = ''; } return $s; } public function getHashes(){ $a = array(); foreach( $this as $msg ){ $a[] = $msg->getHash(); } sort( $a, SORT_STRING ); return $a; } public function equalSource( LocoPoIterator $that ){ $a = $this->getHashes(); $b = $that->getHashes(); if( count($a) !== count($b) ){ return false; } foreach( $a as $i => $hash ){ if( $hash !== $b[$i] ){ return false; } } return true; } }
28
  class LocoPoMessage extends ArrayObject { public function __construct( array $r ){ $r['key'] = $r['source']; parent::__construct($r); } public function __get( $prop ){ return isset($this[$prop]) ? $this[$prop] : null; } private function _getFlags(){ $flags = array(); $plurals = $this->__get('plurals'); if( 4 === $this->__get('flag') ){ $flags[] = 'fuzzy'; } else if( $plurals ){ foreach( $plurals as $child ){ if( 4 === $child->__get('flag') ){ $flags[] = 'fuzzy'; break; } } } if( $f = $this->__get('format') ){ $flags[] = $f.'-format'; } else if( isset($plurals[0]) && ( $f = $plurals[0]->__get('format') ) ){ $flags[] = $f.'-format'; } return $flags; } public function getHash(){ $msgid = $this['source']; if( isset($this['context']) ){ $msgctxt = $this['context']; if( is_string($msgctxt) && '' !== $msgctxt ){ if( ! $msgid && '0' !== $msgid ){ $msgid = '('.$msgctxt.')'; } $msgid = $msgctxt."\x04".$msgid; } } if( isset($this['plurals']) ){ foreach( $this['plurals'] as $p ){ $msgid .= "\0".$p->getHash(); break; } } return $msgid; } public function __toString(){ return $this->render( 79, 76 ); } public function render( $width, $ref_width ){ $s = ''; try { if( $text = $this->__get('comment') ) { $s .= LocoPo::prefix( $text, '# ')."\n"; } if( $text = $this->__get('notes') ) { $s .= LocoPo::prefix( $text, '#. ')."\n"; } if( $text = $this->__get('refs') ){ $s .= LocoPo::refs( $text, $ref_width )."\n"; } if( $texts = $this->_getFlags() ){ $s .= '#, '.implode(', ',$texts)."\n"; } $text = $this->__get('context'); if( is_string($text) && isset($text{0}) ){ $s .= LocoPo::pair('msgctxt', $text, $width )."\n"; } $s .= LocoPo::pair( 'msgid', $this['key'], $width )."\n"; $target = $this['target']; if( is_array( $plurals = $this->__get('plurals') ) ){ if( $plurals ){ foreach( $plurals as $i => $p ){ if( 0 === $i ){ $s .= LocoPo::pair('msgid_plural', $p['key'], $width )."\n"; $s .= LocoPo::pair('msgstr[0]', $target, $width )."\n"; } $s .= LocoPo::pair('msgstr['.(++$i).']', $p['target'], $width )."\n"; } } else if( isset($this['plural_key']) ){ $s .= LocoPo::pair('msgid_plural', $this['plural_key'], $width )."\n"; $s .= LocoPo::pair('msgstr[0]', $target, $width )."\n"; } else { trigger_error('Missing plural_key in zero plural export'); $s .= LocoPo::pair('msgstr', $target, $width )."\n"; } } else { $s .= LocoPo::pair('msgstr', $target, $width )."\n"; } } catch( Exception $e ){ trigger_error( $e->getMessage(), E_USER_WARNING ); } return $s; } }
29
  class LocoMoTable { private $size = 0; private $bin = ''; private $map; public function __construct( $data = null ){ if( is_array($data) ){ $this->compile( $data ); } else if( $data ){ $this->parse( $data ); } } public function count(){ if( ! isset($this->size) ){ if( $this->bin ){ $this->size = (int) ( strlen( $this->bin ) / 4 ); } else if( is_array($this->map) ){ $this->size = count($this->map); } else { return 0; } if( ! self::is_prime($this->size) || $this->size < 3 ){ throw new Exception('Size expected to be prime number above 2, got '.$this->size); } } return $this->size; } public function bytes(){ return $this->count() * 4; } public function __toString(){ return $this->bin; } public function export(){ if( ! is_array($this->map) ){ $this->parse( $this->bin ); } return $this->map; } private function reset( $length ){ $this->size = max( 3, self::next_prime ( $length * 4 / 3 ) ); $this->bin = null; $this->map = array(); return $this->size; } public function compile( array $msgids ){ $hash_tab_size = $this->reset( count($msgids) ); $packed = array_fill( 0, $hash_tab_size, "\0\0\0\0" ); $j = 0; foreach( $msgids as $msgid ){ $hash_val = self::hashpjw( $msgid ); $idx = $hash_val % $hash_tab_size; if( array_key_exists($idx, $this->map) ){ $incr = 1 + ( $hash_val % ( $hash_tab_size - 2 ) ); do { $idx += $incr; if( $hash_val === $idx ){ throw new Exception('Unable to find empty slot in hash table'); } $idx %= $hash_tab_size; } while( array_key_exists($idx, $this->map ) ); } $this->map[$idx] = $j; $packed[$idx] = pack('V', ++$j ); } return $this->bin = implode('',$packed); } public function lookup( $msgid, array $msgids ){ $hash_val = self::hashpjw( $msgid ); $idx = $hash_val % $this->size; $incr = 1 + ( $hash_val % ( $this->size - 2 ) ); while( true ){ if( ! array_key_exists($idx, $this->map) ){ break; } $j = $this->map[$idx]; if( isset($msgids[$j]) && $msgid === $msgids[$j] ){ return $j; } $idx += $incr; if( $idx === $hash_val ){ break; } $idx %= $this->size; } return -1; } public function parse( $bin ){ $this->bin = (string) $bin; $this->size = null; $hash_tab_size = $this->count(); $this->map = array(); $idx = -1; $byte = 0; while( ++$idx < $hash_tab_size ){ $word = substr( $this->bin, $byte, 4 ); if( "\0\0\0\0" !== $word ){ list(,$j) = unpack('V', $word ); $this->map[$idx] = $j - 1; } $byte += 4; } return $this->map; } public static function hashpjw( $str ){ $i = -1; $hval = 0; $len = strlen($str); while( ++$i < $len ){ $ord = ord( $str{$i} ); $hval = ( $hval << 4 ) + $ord; $g = $hval & 0xf0000000; if( $g !== 0 ){ $hval ^= $g >> 24; $hval ^= $g; } } return $hval; } private static function next_prime( $seed ){ $seed |= 1; while ( ! self::is_prime($seed) ){ $seed += 2; } return $seed; } private static function is_prime( $num ) { if ($num === 1 ){ return false; } if( $num === 2 ){ return true; } if( $num % 2 == 0 ) { return false; } for( $i = 3; $i <= ceil(sqrt($num)); $i = $i + 2) { if($num % $i == 0 ){ return false; } } return true; } }
30
  class LocoMo { private $bin; private $msgs; private $head; private $hash; private $use_fuzzy = false; public function __construct( Iterator $export, Iterator $head = null ){ if( $head ){ $this->head = $head; } else { $this->head = new LocoHeaders( array ( 'Project-Id-Version' => 'Loco', 'Language' => 'English', 'Plural-Forms' => 'nplurals=2; plural=(n!=1);', 'MIME-Version' => '1.0', 'Content-Type' => 'text/plain; charset=UTF-8', 'Content-Transfer-Encoding' => '8bit', 'X-Generator' => 'Loco '.PLUG_HTTP_ADDR, ) ); } $this->msgs = $export; $this->bin = ''; } public function enableHash(){ return $this->hash = new LocoMoTable; } public function useFuzzy(){ $this->use_fuzzy = true; } public function setHeader( $key, $val ){ $this->head->add($key, $val); return $this; } public function setProject( LocoProject $Proj ){ return $this ->setHeader( 'Project-Id-Version', $Proj->proj_name ) ->setHeader($key, $val) ; } public function setLocale( LocoProjectLocale $Loc ){ return $this ->setHeader( 'Language', $Loc->label ) ->setHeader( 'Plural-Forms', (string) $Loc->getPlurals() ) ; } public function count(){ return count($this->msgs); } public function compile(){ $table = array(''); $sources = array(''); $targets = array( (string) $this->head ); $fuzzy_flag = 4; $skip_fuzzy = ! $this->use_fuzzy; foreach( $this->msgs as $r ){ if( isset($r['flag']) && $skip_fuzzy && $fuzzy_flag === $r['flag'] ){ continue; } $msgid = $r['key']; if( isset($r['context']) ){ $msgctxt = $r['context']; if( is_string($msgctxt) && '' !== $msgctxt ){ if( ! $msgid && '0' !== $msgid ){ $msgid = '('.$msgctxt.')'; } $msgid = $msgctxt."\x04".$msgid; } } if( ! $msgid && '0' !== $msgid ){ continue; } $msgstr = $r['target']; if( ! $msgstr && '0' !== $msgstr ){ continue; } $table[] = $msgid; if( isset($r['plurals']) ){ foreach( $r['plurals'] as $i => $p ){ if( $i === 0 ){ $msgid .= "\0".$p['key']; } $msgstr .= "\0".$p['target']; } } $sources[] = $msgid; $targets[] = $msgstr; } asort( $sources, SORT_STRING ); $this->bin = "\xDE\x12\x04\x95\x00\x00\x00\x00"; $n = count($sources); $this->writeInteger( $n ); $offset = 28; $this->writeInteger( $offset ); $offset += $n * 8; $this->writeInteger( $offset ); if( $this->hash ){ sort( $table, SORT_STRING ); $this->hash->compile( $table ); $s = $this->hash->count(); } else { $s = 0; } $this->writeInteger( $s ); $offset += $n * 8; $this->writeInteger( $offset ); if( $s ){ $offset += $s * 4; } $source = ''; foreach( $sources as $i => $str ){ $source .= $str."\0"; $this->writeInteger( $strlen = strlen($str) ); $this->writeInteger( $offset ); $offset += $strlen + 1; } $target = ''; foreach( array_keys($sources) as $i ){ $str = $targets[$i]; $target .= $str."\0"; $this->writeInteger( $strlen = strlen($str) ); $this->writeInteger( $offset ); $offset += $strlen + 1; } if( $this->hash ){ $this->bin .= $this->hash->__toString(); } $this->bin .= $source; $this->bin .= $target; return $this->bin; } private function writeInteger( $num ){ $this->bin .= pack( 'V', $num ); return $this; } }
loco.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: Loco Translate
4
  Plugin URI: https://wordpress.org/plugins/loco-translate/
5
  Description: Translate themes and plugins directly in WordPress
6
  Author: Tim Whitlock
7
- Version: 2.0.16
8
  Author URI: https://localise.biz/wordpress/plugin
9
  Text Domain: loco-translate
10
  Domain Path: /languages/
@@ -36,7 +36,7 @@ function loco_plugin_file(){
36
  * @return string
37
  */
38
  function loco_plugin_version(){
39
- return '2.0.16';
40
  }
41
 
42
 
4
  Plugin URI: https://wordpress.org/plugins/loco-translate/
5
  Description: Translate themes and plugins directly in WordPress
6
  Author: Tim Whitlock
7
+ Version: 2.0.17
8
  Author URI: https://localise.biz/wordpress/plugin
9
  Text Domain: loco-translate
10
  Domain Path: /languages/
36
  * @return string
37
  */
38
  function loco_plugin_version(){
39
+ return '2.0.17';
40
  }
41
 
42
 
pub/css/admin.css CHANGED
@@ -1 +1 @@
1
- ._ajax_loader_f2{background:transparent url(../img/ajax-loader-f2.gif?v=2.0.16) 0 0 no-repeat;min-height:16px}._ajax_loader_f2x4{background:transparent url(../img/ajax-loader-f2-x4.gif?v=2.0.16) 0 0 no-repeat;min-height:75px}@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2 / 1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx){._ajax_loader_f2{background-image:url(../img/ajax-loader-f2-x2.gif?v=2.0.16);background-size:16px}}._green_glow_inner{-webkit-box-shadow:inset 0 0 10px 0 #3db63d;-moz-box-shadow:inset 0 0 10px 0 #3db63d;box-shadow:inset 0 0 10px 0 #3db63d}._green_glow_outer{-webkit-box-shadow:0 0 0.5em 0 #3db63d;-moz-box-shadow:0 0 0.5em 0 #3db63d;box-shadow:0 0 0.5em 0 #3db63d}.loco-font,#loco.wrap .icon,#loco.wrap .has-icon:before,#loco.wrap .wp-list-table th.loco-sort.loco-asc:after,#loco.wrap .wp-list-table th.loco-sort.loco-desc:after{font-family:'loco';speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@font-face{font-family:'loco';src:url("../font/loco.eot");src:url("../font/loco.eot?#iefix") format("embedded-opentype"),url("../font/loco.woff") format("woff"),url("../font/loco.ttf") format("truetype"),url("../font/loco.svg#loco") format("svg");font-weight:normal;font-style:normal}.tipsy{font-size:11px;position:absolute;padding:5px;z-index:500001;opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.tipsy.in{opacity:1}.tipsy-inner{background-color:#000;color:#FFF;white-space:nowrap;padding:6px 8px;line-height:1.3em;text-align:center;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;-webkit-font-smoothing:subpixel-antialiased}.tipsy-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.tipsy-n .tipsy-arrow{top:0px;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.tipsy-nw .tipsy-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.tipsy-ne .tipsy-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.tipsy-s .tipsy-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.tipsy-sw .tipsy-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.tipsy-se .tipsy-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.tipsy-e .tipsy-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.tipsy-w .tipsy-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}#loco.wrap .selector{text-align:left;display:inline-block;white-space:nowrap}#loco.wrap .selectoradd a,#loco.wrap .selector .handle{cursor:default;display:block;position:relative;border-top:solid 1px #fff;border-right:solid 1px #ddd;border-bottom:solid 1px #ddd;border-left:solid 1px #fff;padding:0.3em 0.5em;color:#666;height:1.3em;overflow:hidden;white-space:normal}#loco.wrap .selectorsep{display:inline-block;border:solid 1px transparent}#loco.wrap .selectorsep:before{display:block;position:relative;padding:0.3em 0.5em;color:#999;height:1.3em;overflow:hidden}#loco.wrap .selectorsep>*{display:block;line-height:1em;color:#666;height:1.3em;overflow:hidden}#loco.wrap .selector .handle{outline:none}#loco.wrap .selector .handle .prefix{padding-right:0.6ex}#loco.wrap .selector .handle .region,#loco.wrap .selector .handle .lang-ca,#loco.wrap .selector .handle .lang-eo,#loco.wrap .selector .handle .lang-eu,#loco.wrap .selector .handle .variant-wales,#loco.wrap .selector .handle .region-gb.lang-cy,#loco.wrap .selector .handle .variant-scotland,#loco.wrap .selector .handle .region-gb.lang-gd,#loco.wrap .selector .handle .lang,#loco.wrap .selector .handle .icon-16{margin:0 5px 0 0}#loco.wrap .selector .handle:after{font-family:loco;padding-left:0.5em;padding-right:0.2em;font-size:1.3em;color:#ccc;float:right}#loco.wrap .selector .handle:focus:after,#loco.wrap .selector .handle:hover:after{color:#666}#loco.wrap .selector.no-title .handle .label{display:none}#loco.wrap .selector.no-caret .handle:after{display:none}#loco.wrap .selector.dummy .handle{border-color:transparent}#loco.wrap .selector.dummy .handle:after{display:none}#loco.wrap .selector .icon:before{color:#666}#loco.wrap .selector .lang,#loco.wrap .selector .region,#loco.wrap .selector .lang-ca,#loco.wrap .selector .lang-eo,#loco.wrap .selector .lang-eu,#loco.wrap .selector .variant-wales,#loco.wrap .selector .region-gb.lang-cy,#loco.wrap .selector .variant-scotland,#loco.wrap .selector .region-gb.lang-gd{vertical-align:middle}#loco.wrap .selectoradd{float:left;clear:none;position:relative}#loco.wrap .selectoradd>*{display:block;float:left;clear:none}#loco.wrap .selectoradd>a.has-icon{width:1.3em}#loco.wrap .selectoradd>a.has-icon:before{color:#999;display:inline;padding-left:0;padding-right:0;line-height:1.4em}#loco.wrap .selectoradd>a.has-icon:hover:after{color:#2e892e}#loco.wrap .selectoradd input[type="text"]{padding:0.3em 0.5em;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#loco.wrap .selectorsep{display:inline-block}#loco.wrap .selectorsep span{padding:0.3em 0.5em;color:#666;height:1.3em}#loco.wrap .selector ul,#loco.wrap .selector li{display:block;position:relative;cursor:default;padding:0;margin:0}#loco.wrap .selector ul{z-index:5;position:absolute;left:0;top:0;background:#f5f5f5;box-shadow:0 10px 5px rgba(0,0,0,0.2);border:solid 1px #ccc;overflow:auto}#loco.wrap .selector.up ul{margin-top:0}#loco.wrap .selector li{padding:0.3em 0.5em}#loco.wrap .selector.multi li input{display:none}#loco.wrap .selector.multi li.checked{background:#eee}#loco.wrap .selector li.active{background:#eee !important}#loco.wrap .selector li.over{background:#ccc !important;color:#fff;text-shadow:1px 1px #aaa}#loco.wrap .selector li.over .label{color:#fff}#loco.wrap .selector .label{display:inline-block;font:inherit;color:inherit;padding:0 0.5em;margin:0}#loco.wrap .selector li .icon,#loco.wrap .selector .handle .icon{display:inline-block;min-width:1.2em;text-align:center;font-size:14px;vertical-align:middle}#loco.wrap .selector li .icon.no-icon,#loco.wrap .selector .handle .icon.no-icon{display:none}#loco.wrap .selector .icon-16{vertical-align:text-top}#loco.wrap .selector.ticked .icon.no-icon{font-size:12px;display:inline-block}#loco.wrap .selector.ticked .active .icon.no-icon:before{content:"\2713"}#loco.wrap .selectoradd a:hover,#loco.wrap .selector a.handle:focus,#loco.wrap .selector a.handle:hover{color:#000;border-color:#999}#loco.wrap .selector.active .handle{border-color:#999;background-color:#eee;color:#999}#loco.wrap .selector.active .handle:after{color:#999}#loco.wrap .selector.disabled{padding:0.3em 0.5em;border-top:solid 1px #fff;border-right:solid 1px #ddd;border-bottom:solid 1px #ddd;border-left:solid 1px #fff;color:#666;height:1.3em;cursor:default;cursor:no-drop;cursor:not-allowed}#loco.wrap .selector.disabled:after{font-family:loco;padding-left:0.5em;padding-right:0.3em;line-height:1em;vertical-align:middle}#loco.wrap .selector li.disabled,#loco.wrap .selector li.disabled.over{color:#aaa;text-shadow:1px 1px #fff;pointer-events:none}#loco.wrap .selector li.disabled *{cursor:text}#loco.wrap .selector li.disabled .icon:before{color:#aaa}#loco.wrap .selector li.disabled .flag,#loco.wrap .selector li.disabled .icon-16{opacity:0.4}#loco.wrap .selector.lefty ul{left:auto;right:0}#loco.wrap .selector.lefty ul .icon,#loco.wrap .selector.lefty ul .icon-32{display:block;float:right;clear:none}#loco.wrap .selector.lefty ul .label{padding-right:32px;padding-left:0}#loco.wrap div.auto-comp-wrap{width:100%}#loco.wrap div.auto-comp-wrap input{display:inline-block}#loco.wrap div.auto-comp-wrap.loading input{background:transparent url(../img/ajax-loader.gif?v=2.0.16) right 2px no-repeat}#loco.wrap div.auto-comp-drop{color:#333333;background:#FFFFFF;border-top:none;position:absolute;width:100%;top:0;left:0;z-index:99;-webkit-box-shadow:0 5px 5px rgba(0,0,0,0.4);-moz-box-shadow:0 5px 5px rgba(0,0,0,0.4);box-shadow:0 5px 5px rgba(0,0,0,0.4)}#loco.wrap div.auto-comp-result{padding:5px 10px;cursor:pointer;background:#F0F0F0;border-top:solid 1px #FFF;border-bottom:solid 1px #DDD}#loco.wrap div.auto-comp-result:first-child{border-top:solid 1px #DDD}#loco.wrap div.auto-comp-result>*{display:inline-block;vertical-align:middle;line-height:normal}#loco.wrap div.auto-comp-result .icon:before{padding-right:5px}#loco.wrap div.auto-comp-result:hover{background:#A8A8A8;color:#FFFFFF;border-top-color:#A8A8A8;border-bottom-color:#999999}#loco.wrap div.auto-comp-result.selected{background:#666666 !important;color:#FFFFFF;border-top-color:#666666;border-bottom-color:#666666}#loco.wrap div.auto-comp-result .lang,#loco.wrap div.auto-comp-result .region,#loco.wrap div.auto-comp-result .lang-ca,#loco.wrap div.auto-comp-result .lang-eo,#loco.wrap div.auto-comp-result .lang-eu,#loco.wrap div.auto-comp-result .variant-wales,#loco.wrap div.auto-comp-result .region-gb.lang-cy,#loco.wrap div.auto-comp-result .variant-scotland,#loco.wrap div.auto-comp-result .region-gb.lang-gd{margin-right:5px}#loco.wrap div.auto-comp-wrap.error a.icon.clear:before{color:#cc0000;opacity:1}#loco.wrap div.auto-comp-wrap.error input[type="text"]{border-color:#cc0000;color:#cc0000}#loco.wrap div.auto-comp-wrap.error input[type="text"]:focus{-webkit-box-shadow:0 0 0.5em 0 rgba(153,0,0,0.5);-moz-box-shadow:0 0 0.5em 0 rgba(153,0,0,0.5);box-shadow:0 0 0.5em 0 rgba(153,0,0,0.5)}#loco.wrap ._ajax_loader_f2{background:transparent url(../img/ajax-loader-f2.gif?v=2.0.16) 0 0 no-repeat;min-height:16px}#loco.wrap ._ajax_loader_f2x4{background:transparent url(../img/ajax-loader-f2-x4.gif?v=2.0.16) 0 0 no-repeat;min-height:75px}@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2 / 1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx){#loco.wrap ._ajax_loader_f2{background-image:url(../img/ajax-loader-f2-x2.gif?v=2.0.16);background-size:16px}}#loco.wrap ._green_glow_inner{-webkit-box-shadow:inset 0 0 10px 0 #3db63d;-moz-box-shadow:inset 0 0 10px 0 #3db63d;box-shadow:inset 0 0 10px 0 #3db63d}#loco.wrap ._green_glow_outer{-webkit-box-shadow:0 0 0.5em 0 #3db63d;-moz-box-shadow:0 0 0.5em 0 #3db63d;box-shadow:0 0 0.5em 0 #3db63d}#loco.wrap .loco-font,#loco.wrap .icon,#loco.wrap .has-icon:before,#loco.wrap .wp-list-table th.loco-sort.loco-asc:after,#loco.wrap .wp-list-table th.loco-sort.loco-desc:after{font-family:'loco';speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@font-face{#loco.wrap{font-family:'loco';src:url("../fonts/loco.eot");src:url("../fonts/loco.eot?#iefix") format("embedded-opentype"),url("../fonts/loco.ttf") format("truetype"),url("../fonts/loco.woff") format("woff"),url("../fonts/loco.svg#loco") format("svg");font-weight:normal;font-style:normal}}#loco.wrap .has-icon:before{display:inline-block;padding-right:0.3em}#loco.wrap a.icon-help{cursor:help}#loco.wrap a.icon-help span{display:none}#loco.wrap .icon-bullist:before{content:"\e00a"}#loco.wrap .icon-numlist:before{content:"\e00b"}#loco.wrap .icon-indent:before{content:"\e00c"}#loco.wrap .icon-outdent:before{content:"\e00d"}#loco.wrap .icon-link:before{content:"\e011"}#loco.wrap .icon-unlink:before{content:"\e012"}#loco.wrap .icon-bold:before{content:"\42"}#loco.wrap .icon-italic:before{content:"\49"}#loco.wrap .icon-translate:before{content:"\f326"}#loco.wrap .icon-proj:before{content:"\e900"}#loco.wrap .icon-plural:before{content:"\73"}#loco.wrap .icon-max:before,#loco.wrap .icon-full-screen:before{content:"\e901"}#loco.wrap .icon-min:before{content:"\e902"}#loco.wrap .icon-sort:before{content:"\e903"}#loco.wrap .icon-checkbox-checked:before,#loco.wrap .selector.multi li.checked .icon-checkbox:before{content:"\2611"}#loco.wrap .icon-checkbox-unchecked:before{content:"\2610"}#loco.wrap .icon-checkbox-partial:before{content:"\2609"}#loco.wrap .icon-radio-checked:before{content:"\26ab"}#loco.wrap .icon-radio-unchecked:before{content:"\26aa"}#loco.wrap .icon-ext:before{content:"\2b08"}#loco.wrap .icon-share:before{content:"\e904"}#loco.wrap .icon-star:before{content:"\e612"}#loco.wrap .icon-user:before{content:"\e620"}#loco.wrap .icon-ok:before,#loco.wrap .notice-success>.has-icon:before,#loco.wrap .notice-success p>strong.has-icon:before{content:"\2713"}#loco.wrap .icon-remove:before{content:"\d7"}#loco.wrap .icon-cog:before{content:"\e61b"}#loco.wrap .icon-trash:before{content:"\e60f"}#loco.wrap .icon-time:before{content:"\e62d"}#loco.wrap .icon-download:before{content:"\e608"}#loco.wrap .icon-revert:before{content:"\e635"}#loco.wrap .icon-sync:before{content:"\e634"}#loco.wrap .icon-lock:before,#loco.wrap .selector.disabled:after,#loco.wrap .notice-locked>.has-icon:before,#loco.wrap .notice-locked p>strong.has-icon:before{content:"\e604"}#loco.wrap .icon-flag:before{content:"\e60e"}#loco.wrap .icon-tag:before{content:"\e622"}#loco.wrap .icon-tags:before{content:"\e623"}#loco.wrap .icon-print:before{content:"\e62a"}#loco.wrap .icon-camera:before{content:"\e629"}#loco.wrap .icon-pencil:before{content:"\e61e"}#loco.wrap .icon-add:before{content:"\e60c"}#loco.wrap .icon-del:before{content:"\e60d"}#loco.wrap .icon-clear:before,#loco.wrap a.icon.clear:before{content:"\e615"}#loco.wrap .icon-ok-sign:before{content:"\2714"}#loco.wrap .icon-help:before{content:"\3f"}#loco.wrap .icon-info:before,#loco.wrap .notice-info>.has-icon:before,#loco.wrap .notice-info p>strong.has-icon:before{content:"\2139"}#loco.wrap .icon-cancel:before{content:"\e605"}#loco.wrap .icon-warn:before,#loco.wrap .notice-warning>.has-icon:before,#loco.wrap .notice-warning p>strong.has-icon:before,#loco.wrap .notice-error>.has-icon:before,#loco.wrap .notice-error p>strong.has-icon:before{content:"\e62e"}#loco.wrap .icon-comment:before{content:"\e613"}#loco.wrap .icon-bar-chart:before{content:"\e624"}#loco.wrap .icon-key:before{content:"\e606"}#loco.wrap .icon-cogs:before{content:"\e61c"}#loco.wrap .icon-comments:before{content:"\e614"}#loco.wrap .icon-signout:before{content:"\e61a"}#loco.wrap .icon-signin:before{content:"\e619"}#loco.wrap .icon-upload:before{content:"\e609"}#loco.wrap .icon-twitter:before{content:"\1f426"}#loco.wrap .icon-facebook:before{content:"\e630"}#loco.wrap .icon-github:before{content:"\e633"}#loco.wrap .icon-feed:before{content:"\e628"}#loco.wrap .icon-globe:before{content:"\e61d"}#loco.wrap .icon-wrench:before,#loco.wrap .notice-debug>.has-icon:before,#loco.wrap .notice-debug p>strong.has-icon:before{content:"\e626"}#loco.wrap .icon-group:before{content:"\e61f"}#loco.wrap .icon-cloud:before{content:"\e607"}#loco.wrap .icon-copy:before{content:"\e62b"}#loco.wrap .icon-save:before{content:"\e610"}#loco.wrap .icon-menu:before{content:"\e600"}#loco.wrap .icon-table:before{content:"\e627"}#loco.wrap .icon-caret-down:before,#loco.wrap .selector .handle:after{content:"\25bc"}#loco.wrap .icon-caret-up:before,#loco.wrap .selector.active .handle:after{content:"\25b2"}#loco.wrap .icon-caret-right:before{content:"\25b6"}#loco.wrap .icon-mail:before{content:"\e603"}#loco.wrap .icon-cloud-upload:before{content:"\e617"}#loco.wrap .icon-file:before{content:"\e611"}#loco.wrap .icon-circle-white:before{content:"\26ac"}#loco.wrap .icon-circle-black:before{content:"\25cf"}#loco.wrap .icon-eraser:before{content:"\e636"}#loco.wrap .icon-unlock:before{content:"\e616"}#loco.wrap .icon-apple:before{content:"\e60b"}#loco.wrap .icon-android:before{content:"\e60a"}#loco.wrap .icon-back:before{content:"\2b05"}#loco.wrap .icon-next:before{content:"\2794"}#loco.wrap .icon-arrow-up:before{content:"\f062"}#loco.wrap .icon-ccard:before{content:"\f09d"}#loco.wrap .icon-caret-left:before{content:"\25c0"}#loco.wrap .icon-pro:before{content:"\26a1"}#loco.wrap .icon-bell:before{content:"\f0f3"}#loco.wrap .icon-code:before{content:"\f121"}#loco.wrap .icon-hellip:before{content:"\2026"}#loco.wrap .icon-vellip:before{content:"\205e"}#loco.wrap .icon-collapse:before{content:"\f147"}#loco.wrap .icon-expand:before{content:"\f196"}#loco.wrap .icon-wordpress:before{content:"\f19a"}#loco.wrap .icon-database:before{content:"\f1c0"}#loco.wrap .icon-restore:before{content:"\f1da"}#loco.wrap .icon-pilcrow:before{content:"\b6"}#loco.wrap .icon-flag.is-untranslated:before{content:"×"}#loco.wrap .icon-flag.status-0:before,#loco.wrap .icon-flag.is-translated:before{content:"✓"}#loco.wrap .icon-flag.status-1:before,#loco.wrap .icon-flag.is-incorrect:before{content:""}#loco.wrap .icon-flag.status-2:before,#loco.wrap .icon-flag.is-provisional:before{content:""}#loco.wrap .icon-flag.status-3:before,#loco.wrap .icon-flag.is-unapproved:before{content:""}#loco.wrap .icon-flag.status-4:before,#loco.wrap .icon-flag.is-fuzzy:before{content:""}#loco.wrap .icon-flag.status-5:before,#loco.wrap .icon-flag.is-incomplete:before{content:""}#loco.wrap .icon-flag.status-6:before,#loco.wrap .icon-flag.is-rejected:before{content:""}#loco.wrap .lang,#loco.wrap .region,#loco.wrap .lang-ca,#loco.wrap .lang-eo,#loco.wrap .lang-eu,#loco.wrap .variant-wales,#loco.wrap .region-gb.lang-cy,#loco.wrap .variant-scotland,#loco.wrap .region-gb.lang-gd{color:#fff;background:#2e892e;display:inline-block;text-transform:uppercase;overflow:hidden;font-family:Verdana,Arial,sans-serif;font-size:9px;font-weight:normal;font-style:normal;line-height:12px;text-align:center;white-space:normal;text-shadow:none}#loco.wrap .lang{width:20px;height:12px;line-height:12px;vertical-align:middle}#loco.wrap .lang:before{content:attr(lang)}#loco.wrap .lang-el{background-color:#1D48A3}#loco.wrap .lang-el:before{content:"\0395\03BB"}#loco.wrap .region,#loco.wrap .lang-ca,#loco.wrap .lang-eo,#loco.wrap .lang-eu,#loco.wrap .variant-wales,#loco.wrap .region-gb.lang-cy,#loco.wrap .variant-scotland,#loco.wrap .region-gb.lang-gd{width:16px;height:12px;margin:0 2px;background-image:url(../img/flags.png?v=2.0.16);background-repeat:no-repeat;background-color:transparent}#loco.wrap .region:before,#loco.wrap .lang-ca:before,#loco.wrap .lang-eo:before,#loco.wrap .lang-eu:before,#loco.wrap .variant-wales:before,#loco.wrap .region-gb.lang-cy:before,#loco.wrap .variant-scotland:before,#loco.wrap .region-gb.lang-gd:before{content:"\0A";display:none}#loco.wrap .lang-zh{background-color:#B90000}#loco.wrap .lang-zh.script-hans:before{content:"\4E2D\56FD"}#loco.wrap .lang-zh.script-hant:before{content:"\4E2D\570B"}#loco.wrap .__{background-position:0 0}#loco.wrap .lang-ca{background-position:0 -12px}#loco.wrap .lang-eo{background-position:0 -24px}#loco.wrap .lang-eu{background-position:0 -36px}#loco.wrap .region-ad{background-position:0 -48px}#loco.wrap .region-ae{background-position:0 -60px}#loco.wrap .region-af{background-position:0 -72px}#loco.wrap .region-ag{background-position:0 -84px}#loco.wrap .region-ai{background-position:0 -96px}#loco.wrap .region-al{background-position:0 -108px}#loco.wrap .region-am{background-position:0 -120px}#loco.wrap .region-an{background-position:0 -132px}#loco.wrap .region-ao{background-position:0 -144px}#loco.wrap .region-aq{background-position:0 -156px}#loco.wrap .region-ar{background-position:0 -173px}#loco.wrap .region-as{background-position:0 -185px}#loco.wrap .region-at{background-position:0 -197px}#loco.wrap .region-au{background-position:0 -209px}#loco.wrap .region-aw{background-position:0 -221px}#loco.wrap .region-ax{background-position:0 -233px}#loco.wrap .region-az{background-position:0 -245px}#loco.wrap .region-ba{background-position:0 -257px}#loco.wrap .region-bb{background-position:0 -269px}#loco.wrap .region-bd{background-position:0 -281px}#loco.wrap .region-be{background-position:0 -293px}#loco.wrap .region-bf{background-position:0 -305px}#loco.wrap .region-bg{background-position:0 -317px}#loco.wrap .region-bh{background-position:0 -329px}#loco.wrap .region-bi{background-position:0 -341px}#loco.wrap .region-bj{background-position:0 -353px}#loco.wrap .region-bl{background-position:0 -365px}#loco.wrap .region-bm{background-position:0 -382px}#loco.wrap .region-bn{background-position:0 -394px}#loco.wrap .region-bo{background-position:0 -406px}#loco.wrap .region-bq{background-position:0 -418px}#loco.wrap .region-br{background-position:0 -430px}#loco.wrap .region-bs{background-position:0 -442px}#loco.wrap .region-bt{background-position:0 -454px}#loco.wrap .region-bv{background-position:0 -466px}#loco.wrap .region-bw{background-position:0 -478px}#loco.wrap .region-by{background-position:0 -490px}#loco.wrap .region-bz{background-position:0 -502px}#loco.wrap .region-ca{background-position:0 -514px}#loco.wrap .region-cc{background-position:0 -526px}#loco.wrap .region-cd{background-position:0 -538px}#loco.wrap .region-cf{background-position:0 -550px}#loco.wrap .region-cg{background-position:0 -562px}#loco.wrap .region-ch{background-position:0 -574px}#loco.wrap .region-ci{background-position:0 -586px}#loco.wrap .region-ck{background-position:0 -598px}#loco.wrap .region-cl{background-position:0 -610px}#loco.wrap .region-cm{background-position:0 -622px}#loco.wrap .region-cn{background-position:0 -634px}#loco.wrap .region-co{background-position:0 -646px}#loco.wrap .region-cr{background-position:0 -658px}#loco.wrap .region-cs{background-position:0 -670px}#loco.wrap .region-cu{background-position:0 -682px}#loco.wrap .region-cv{background-position:0 -694px}#loco.wrap .region-cw{background-position:0 -706px}#loco.wrap .region-cx{background-position:0 -723px}#loco.wrap .region-cy{background-position:0 -735px}#loco.wrap .region-cz{background-position:0 -747px}#loco.wrap .region-de{background-position:0 -759px}#loco.wrap .region-dj{background-position:0 -771px}#loco.wrap .region-dk{background-position:0 -783px}#loco.wrap .region-dm{background-position:0 -795px}#loco.wrap .region-do{background-position:0 -807px}#loco.wrap .region-dz{background-position:0 -819px}#loco.wrap .region-ec{background-position:0 -831px}#loco.wrap .region-ee{background-position:0 -843px}#loco.wrap .region-eg{background-position:0 -855px}#loco.wrap .region-eh{background-position:0 -867px}#loco.wrap .region-er{background-position:0 -879px}#loco.wrap .region-es{background-position:0 -891px}#loco.wrap .region-et{background-position:0 -903px}#loco.wrap .region-fi{background-position:0 -915px}#loco.wrap .region-fj{background-position:0 -927px}#loco.wrap .region-fk{background-position:0 -939px}#loco.wrap .region-fm{background-position:0 -951px}#loco.wrap .region-fo{background-position:0 -963px}#loco.wrap .region-fr{background-position:0 -975px}#loco.wrap .region-ga{background-position:0 -987px}#loco.wrap .region-gb{background-position:0 -999px}#loco.wrap .region-gd{background-position:0 -1011px}#loco.wrap .region-ge{background-position:0 -1023px}#loco.wrap .region-gf{background-position:0 -1035px}#loco.wrap .region-gg{background-position:0 -1047px}#loco.wrap .region-gh{background-position:0 -1064px}#loco.wrap .region-gi{background-position:0 -1076px}#loco.wrap .region-gl{background-position:0 -1088px}#loco.wrap .region-gm{background-position:0 -1100px}#loco.wrap .region-gn{background-position:0 -1112px}#loco.wrap .region-gp{background-position:0 -1124px}#loco.wrap .region-gq{background-position:0 -1136px}#loco.wrap .region-gr{background-position:0 -1148px}#loco.wrap .region-gs{background-position:0 -1160px}#loco.wrap .region-gt{background-position:0 -1172px}#loco.wrap .region-gu{background-position:0 -1184px}#loco.wrap .region-gw{background-position:0 -1196px}#loco.wrap .region-gy{background-position:0 -1208px}#loco.wrap .region-hk{background-position:0 -1220px}#loco.wrap .region-hm{background-position:0 -1232px}#loco.wrap .region-hn{background-position:0 -1244px}#loco.wrap .region-hr{background-position:0 -1256px}#loco.wrap .region-ht{background-position:0 -1268px}#loco.wrap .region-hu{background-position:0 -1280px}#loco.wrap .region-id{background-position:0 -1292px}#loco.wrap .region-ie{background-position:0 -1304px}#loco.wrap .region-il{background-position:0 -1316px}#loco.wrap .region-im{background-position:0 -1328px}#loco.wrap .region-in{background-position:0 -1345px}#loco.wrap .region-io{background-position:0 -1357px}#loco.wrap .region-iq{background-position:0 -1369px}#loco.wrap .region-ir{background-position:0 -1381px}#loco.wrap .region-is{background-position:0 -1393px}#loco.wrap .region-it{background-position:0 -1405px}#loco.wrap .region-je{background-position:0 -1417px}#loco.wrap .region-jm{background-position:0 -1434px}#loco.wrap .region-jo{background-position:0 -1446px}#loco.wrap .region-jp{background-position:0 -1458px}#loco.wrap .region-ke{background-position:0 -1470px}#loco.wrap .region-kg{background-position:0 -1482px}#loco.wrap .region-kh{background-position:0 -1494px}#loco.wrap .region-ki{background-position:0 -1506px}#loco.wrap .region-km{background-position:0 -1518px}#loco.wrap .region-kn{background-position:0 -1530px}#loco.wrap .region-kp{background-position:0 -1542px}#loco.wrap .region-kr{background-position:0 -1554px}#loco.wrap .region-kw{background-position:0 -1566px}#loco.wrap .region-ky{background-position:0 -1578px}#loco.wrap .region-kz{background-position:0 -1590px}#loco.wrap .region-la{background-position:0 -1602px}#loco.wrap .region-lb{background-position:0 -1614px}#loco.wrap .region-lc{background-position:0 -1626px}#loco.wrap .region-li{background-position:0 -1638px}#loco.wrap .region-lk{background-position:0 -1650px}#loco.wrap .region-lr{background-position:0 -1662px}#loco.wrap .region-ls{background-position:0 -1674px}#loco.wrap .region-lt{background-position:0 -1686px}#loco.wrap .region-lu{background-position:0 -1698px}#loco.wrap .region-lv{background-position:0 -1710px}#loco.wrap .region-ly{background-position:0 -1722px}#loco.wrap .region-ma{background-position:0 -1734px}#loco.wrap .region-mc{background-position:0 -1746px}#loco.wrap .region-md{background-position:0 -1758px}#loco.wrap .region-me{background-position:0 -1770px}#loco.wrap .region-mf{background-position:0 -1783px}#loco.wrap .region-mg{background-position:0 -1800px}#loco.wrap .region-mh{background-position:0 -1812px}#loco.wrap .region-mk{background-position:0 -1824px}#loco.wrap .region-ml{background-position:0 -1836px}#loco.wrap .region-mm{background-position:0 -1848px}#loco.wrap .region-mn{background-position:0 -1860px}#loco.wrap .region-mo{background-position:0 -1872px}#loco.wrap .region-mp{background-position:0 -1884px}#loco.wrap .region-mq{background-position:0 -1896px}#loco.wrap .region-mr{background-position:0 -1908px}#loco.wrap .region-ms{background-position:0 -1920px}#loco.wrap .region-mt{background-position:0 -1932px}#loco.wrap .region-mu{background-position:0 -1944px}#loco.wrap .region-mv{background-position:0 -1956px}#loco.wrap .region-mw{background-position:0 -1968px}#loco.wrap .region-mx{background-position:0 -1980px}#loco.wrap .region-my{background-position:0 -1992px}#loco.wrap .region-mz{background-position:0 -2004px}#loco.wrap .region-na{background-position:0 -2016px}#loco.wrap .region-nc{background-position:0 -2028px}#loco.wrap .region-ne{background-position:0 -2040px}#loco.wrap .region-nf{background-position:0 -2052px}#loco.wrap .region-ng{background-position:0 -2064px}#loco.wrap .region-ni{background-position:0 -2076px}#loco.wrap .region-nl{background-position:0 -2088px}#loco.wrap .region-no{background-position:0 -2100px}#loco.wrap .region-np{background-position:0 -2112px}#loco.wrap .region-nr{background-position:0 -2124px}#loco.wrap .region-nu{background-position:0 -2136px}#loco.wrap .region-nz{background-position:0 -2148px}#loco.wrap .region-om{background-position:0 -2160px}#loco.wrap .region-pa{background-position:0 -2172px}#loco.wrap .region-pe{background-position:0 -2184px}#loco.wrap .region-pf{background-position:0 -2196px}#loco.wrap .region-pg{background-position:0 -2208px}#loco.wrap .region-ph{background-position:0 -2220px}#loco.wrap .region-pk{background-position:0 -2232px}#loco.wrap .region-pl{background-position:0 -2244px}#loco.wrap .region-pm{background-position:0 -2256px}#loco.wrap .region-pn{background-position:0 -2268px}#loco.wrap .region-pr{background-position:0 -2280px}#loco.wrap .region-ps{background-position:0 -2292px}#loco.wrap .region-pt{background-position:0 -2304px}#loco.wrap .region-pw{background-position:0 -2316px}#loco.wrap .region-py{background-position:0 -2328px}#loco.wrap .region-qa{background-position:0 -2340px}#loco.wrap .region-re{background-position:0 -2352px}#loco.wrap .region-ro{background-position:0 -2364px}#loco.wrap .region-rs{background-position:0 -2376px}#loco.wrap .region-ru{background-position:0 -2388px}#loco.wrap .region-rw{background-position:0 -2400px}#loco.wrap .region-sa{background-position:0 -2412px}#loco.wrap .region-sb{background-position:0 -2424px}#loco.wrap .region-sc{background-position:0 -2436px}#loco.wrap .region-sd{background-position:0 -2448px}#loco.wrap .region-se{background-position:0 -2460px}#loco.wrap .region-sg{background-position:0 -2472px}#loco.wrap .region-sh{background-position:0 -2484px}#loco.wrap .region-si{background-position:0 -2496px}#loco.wrap .region-sj{background-position:0 -2508px}#loco.wrap .region-sk{background-position:0 -2520px}#loco.wrap .region-sl{background-position:0 -2532px}#loco.wrap .region-sm{background-position:0 -2544px}#loco.wrap .region-sn{background-position:0 -2556px}#loco.wrap .region-so{background-position:0 -2568px}#loco.wrap .region-sr{background-position:0 -2580px}#loco.wrap .region-ss{background-position:0 -2592px}#loco.wrap .region-st{background-position:0 -2609px}#loco.wrap .region-sv{background-position:0 -2621px}#loco.wrap .region-sx{background-position:0 -2633px}#loco.wrap .region-sy{background-position:0 -2650px}#loco.wrap .region-sz{background-position:0 -2662px}#loco.wrap .region-tc{background-position:0 -2674px}#loco.wrap .region-td{background-position:0 -2686px}#loco.wrap .region-tf{background-position:0 -2698px}#loco.wrap .region-tg{background-position:0 -2710px}#loco.wrap .region-th{background-position:0 -2722px}#loco.wrap .region-tj{background-position:0 -2734px}#loco.wrap .region-tk{background-position:0 -2746px}#loco.wrap .region-tl{background-position:0 -2758px}#loco.wrap .region-tm{background-position:0 -2770px}#loco.wrap .region-tn{background-position:0 -2782px}#loco.wrap .region-to{background-position:0 -2794px}#loco.wrap .region-tr{background-position:0 -2806px}#loco.wrap .region-tt{background-position:0 -2818px}#loco.wrap .region-tv{background-position:0 -2830px}#loco.wrap .region-tw{background-position:0 -2842px}#loco.wrap .region-tz{background-position:0 -2854px}#loco.wrap .region-ua{background-position:0 -2866px}#loco.wrap .region-ug{background-position:0 -2878px}#loco.wrap .region-um{background-position:0 -2890px}#loco.wrap .region-us{background-position:0 -2902px}#loco.wrap .region-uy{background-position:0 -2914px}#loco.wrap .region-uz{background-position:0 -2926px}#loco.wrap .region-va{background-position:0 -2938px}#loco.wrap .region-vc{background-position:0 -2950px}#loco.wrap .region-ve{background-position:0 -2962px}#loco.wrap .region-vg{background-position:0 -2974px}#loco.wrap .region-vi{background-position:0 -2986px}#loco.wrap .region-vn{background-position:0 -2998px}#loco.wrap .region-vu{background-position:0 -3010px}#loco.wrap .region-wf{background-position:0 -3022px}#loco.wrap .region-ws{background-position:0 -3034px}#loco.wrap .region-ye{background-position:0 -3046px}#loco.wrap .region-yt{background-position:0 -3058px}#loco.wrap .region-za{background-position:0 -3070px}#loco.wrap .region-zm{background-position:0 -3082px}#loco.wrap .region-zw{background-position:0 -3094px}#loco.wrap .variant-scotland,#loco.wrap .region-gb.lang-gd{background-position:0 -3106px}#loco.wrap .variant-wales,#loco.wrap .region-gb.lang-cy{background-position:0 -3118px}#loco.wrap .x-eu{background-position:0 -3130px}#loco.wrap span.lang code{display:none}#loco.wrap .icon-bullist:before{content:"\e00a"}#loco.wrap .icon-numlist:before{content:"\e00b"}#loco.wrap .icon-indent:before{content:"\e00c"}#loco.wrap .icon-outdent:before{content:"\e00d"}#loco.wrap .icon-link:before{content:"\e011"}#loco.wrap .icon-unlink:before{content:"\e012"}#loco.wrap .icon-bold:before{content:"\42"}#loco.wrap .icon-italic:before{content:"\49"}#loco.wrap .icon-translate:before{content:"\f326"}#loco.wrap .icon-proj:before{content:"\e900"}#loco.wrap .icon-plural:before{content:"\73"}#loco.wrap .icon-max:before,#loco.wrap .icon-full-screen:before{content:"\e901"}#loco.wrap .icon-min:before{content:"\e902"}#loco.wrap .icon-sort:before{content:"\e903"}#loco.wrap .icon-checkbox-checked:before,#loco.wrap .selector.multi li.checked .icon-checkbox:before{content:"\2611"}#loco.wrap .icon-checkbox-unchecked:before{content:"\2610"}#loco.wrap .icon-checkbox-partial:before{content:"\2609"}#loco.wrap .icon-radio-checked:before{content:"\26ab"}#loco.wrap .icon-radio-unchecked:before{content:"\26aa"}#loco.wrap .icon-ext:before{content:"\2b08"}#loco.wrap .icon-share:before{content:"\e904"}#loco.wrap .icon-star:before{content:"\e612"}#loco.wrap .icon-user:before{content:"\e620"}#loco.wrap .icon-ok:before,#loco.wrap .notice-success>.has-icon:before,#loco.wrap .notice-success p>strong.has-icon:before{content:"\2713"}#loco.wrap .icon-remove:before{content:"\d7"}#loco.wrap .icon-cog:before{content:"\e61b"}#loco.wrap .icon-trash:before{content:"\e60f"}#loco.wrap .icon-time:before{content:"\e62d"}#loco.wrap .icon-download:before{content:"\e608"}#loco.wrap .icon-revert:before{content:"\e635"}#loco.wrap .icon-sync:before{content:"\e634"}#loco.wrap .icon-lock:before,#loco.wrap .selector.disabled:after,#loco.wrap .notice-locked>.has-icon:before,#loco.wrap .notice-locked p>strong.has-icon:before{content:"\e604"}#loco.wrap .icon-flag:before{content:"\e60e"}#loco.wrap .icon-tag:before{content:"\e622"}#loco.wrap .icon-tags:before{content:"\e623"}#loco.wrap .icon-print:before{content:"\e62a"}#loco.wrap .icon-camera:before{content:"\e629"}#loco.wrap .icon-pencil:before{content:"\e61e"}#loco.wrap .icon-add:before{content:"\e60c"}#loco.wrap .icon-del:before{content:"\e60d"}#loco.wrap .icon-clear:before,#loco.wrap a.icon.clear:before{content:"\e615"}#loco.wrap .icon-ok-sign:before{content:"\2714"}#loco.wrap .icon-help:before{content:"\3f"}#loco.wrap .icon-info:before,#loco.wrap .notice-info>.has-icon:before,#loco.wrap .notice-info p>strong.has-icon:before{content:"\2139"}#loco.wrap .icon-cancel:before{content:"\e605"}#loco.wrap .icon-warn:before,#loco.wrap .notice-warning>.has-icon:before,#loco.wrap .notice-warning p>strong.has-icon:before,#loco.wrap .notice-error>.has-icon:before,#loco.wrap .notice-error p>strong.has-icon:before{content:"\e62e"}#loco.wrap .icon-comment:before{content:"\e613"}#loco.wrap .icon-bar-chart:before{content:"\e624"}#loco.wrap .icon-key:before{content:"\e606"}#loco.wrap .icon-cogs:before{content:"\e61c"}#loco.wrap .icon-comments:before{content:"\e614"}#loco.wrap .icon-signout:before{content:"\e61a"}#loco.wrap .icon-signin:before{content:"\e619"}#loco.wrap .icon-upload:before{content:"\e609"}#loco.wrap .icon-twitter:before{content:"\1f426"}#loco.wrap .icon-facebook:before{content:"\e630"}#loco.wrap .icon-github:before{content:"\e633"}#loco.wrap .icon-feed:before{content:"\e628"}#loco.wrap .icon-globe:before{content:"\e61d"}#loco.wrap .icon-wrench:before,#loco.wrap .notice-debug>.has-icon:before,#loco.wrap .notice-debug p>strong.has-icon:before{content:"\e626"}#loco.wrap .icon-group:before{content:"\e61f"}#loco.wrap .icon-cloud:before{content:"\e607"}#loco.wrap .icon-copy:before{content:"\e62b"}#loco.wrap .icon-save:before{content:"\e610"}#loco.wrap .icon-menu:before{content:"\e600"}#loco.wrap .icon-table:before{content:"\e627"}#loco.wrap .icon-caret-down:before,#loco.wrap .selector .handle:after{content:"\25bc"}#loco.wrap .icon-caret-up:before,#loco.wrap .selector.active .handle:after{content:"\25b2"}#loco.wrap .icon-caret-right:before{content:"\25b6"}#loco.wrap .icon-mail:before{content:"\e603"}#loco.wrap .icon-cloud-upload:before{content:"\e617"}#loco.wrap .icon-file:before{content:"\e611"}#loco.wrap .icon-circle-white:before{content:"\26ac"}#loco.wrap .icon-circle-black:before{content:"\25cf"}#loco.wrap .icon-eraser:before{content:"\e636"}#loco.wrap .icon-unlock:before{content:"\e616"}#loco.wrap .icon-apple:before{content:"\e60b"}#loco.wrap .icon-android:before{content:"\e60a"}#loco.wrap .icon-back:before{content:"\2b05"}#loco.wrap .icon-next:before{content:"\2794"}#loco.wrap .icon-arrow-up:before{content:"\f062"}#loco.wrap .icon-ccard:before{content:"\f09d"}#loco.wrap .icon-caret-left:before{content:"\25c0"}#loco.wrap .icon-pro:before{content:"\26a1"}#loco.wrap .icon-bell:before{content:"\f0f3"}#loco.wrap .icon-code:before{content:"\f121"}#loco.wrap .icon-hellip:before{content:"\2026"}#loco.wrap .icon-vellip:before{content:"\205e"}#loco.wrap .icon-collapse:before{content:"\f147"}#loco.wrap .icon-expand:before{content:"\f196"}#loco.wrap .icon-wordpress:before{content:"\f19a"}#loco.wrap .icon-database:before{content:"\f1c0"}#loco.wrap .icon-restore:before{content:"\f1da"}#loco.wrap .icon-pilcrow:before{content:"\b6"}#loco.wrap .icon,#loco.wrap .has-icon:before,#loco.wrap .has-dashicon:before{speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#loco.wrap .icon,#loco.wrap .has-icon:before{font-family:'loco'}#loco.wrap .has-dashicon:before{font-family:'dashicons';font-size:1.4em}#loco.wrap .has-icon:before,#loco.wrap .has-dashicon:before,#loco.wrap .has-icon>span{display:inline-block;vertical-align:middle}#loco.wrap .only-icon{text-align:center}#loco.wrap .only-icon:before{text-align:center}#loco.wrap .only-icon span{display:none}#loco.wrap h1 ul,#loco.wrap h1 li{margin:0;padding:0}#loco.wrap h1 li{display:inline-block}#loco.wrap h1 li:after{content:"/";color:#999;text-shadow:none;display:inline-block}#loco.wrap h1 li a{text-decoration:none}#loco.wrap h1 li:last-child:after{content:""}#loco.wrap h1 li:last-child a{color:inherit;pointer-events:none;cursor:auto}#loco.wrap h2 span{color:#999;font-weight:normal}#loco.wrap h3 .loco-meta{font-size:14px;font-weight:normal}#loco.wrap .wp-list-table td:first-child .icon{width:16px;display:inline-block;text-align:center}#loco.wrap .wp-list-table td{white-space:nowrap}#loco.wrap .wp-list-table th.loco-sort{cursor:pointer}#loco.wrap .wp-list-table th.loco-sort:hover{color:#000}#loco.wrap .wp-list-table th.loco-sort.loco-asc:after,#loco.wrap .wp-list-table th.loco-sort.loco-desc:after{padding:0 0 0 4px;color:#999}#loco.wrap .wp-list-table th.loco-sort.loco-desc:after{content:"\25bc"}#loco.wrap .wp-list-table th.loco-sort.loco-asc:after{content:"\25b2"}#loco.wrap form.loco-filter{display:block;margin-bottom:5px}#loco.wrap form.loco-filter .icon-filter{color:#999}#loco.wrap nav.above-list-table{margin-bottom:1em}#loco.wrap nav.above-list-table a{display:inline-block;margin-right:1em}#loco.wrap .wp-core-ui button.inverted,#loco.wrap .wp-core-ui button.inverted:hover{background:-moz-linear-gradient(top, #ccc 0%, #e0e0e0 5%, #fefefe 100%);background:-webkit-linear-gradient(top, #ccc 0%, #e0e0e0 5%, #fefefe 100%);background:linear-gradient(to bottom, #ccc 0%, #e0e0e0 5%, #fefefe 100%);-webkit-box-shadow:0 1px 0 #fff;-moz-box-shadow:0 1px 0 #fff;box-shadow:0 1px 0 #fff;border-color:#bbb}#loco.wrap .wp-core-ui button:active,#loco.wrap .wp-core-ui button.inverted:active{border-color:#5b9dd9}#loco.wrap .loco-clearable{display:inline-block;vertical-align:middle;position:relative}#loco.wrap .loco-clearable a.clear,#loco.wrap .auto-comp-wrap a.clear{top:0;right:0;outline:none;margin:0;border:solid 1px transparent;padding:5px 5px;position:absolute;font-size:1em;line-height:normal;text-decoration:none}#loco.wrap .loco-clearable a.clear:before,#loco.wrap .auto-comp-wrap a.clear:before{vertical-align:middle;padding:0;color:#999}#loco.wrap .loco-clearable a.clear:hover:before,#loco.wrap .auto-comp-wrap a.clear:hover:before{color:#333}#loco.wrap .loco-clearable a.clear span,#loco.wrap .auto-comp-wrap a.clear span{display:none}#loco.wrap .loco-clearable ::-ms-clear,#loco.wrap .auto-comp-wrap ::-ms-clear{display:none}#loco.wrap div.progress{color:#000}#loco.wrap div.progress *{height:100%;overflow:hidden;white-space:nowrap}#loco.wrap div.progress .t{background-color:#ddd;border:1px solid #ccc}#loco.wrap div.progress .t .bar{float:left;clear:none;background-color:#3db63d}#loco.wrap div.progress .t .bar.f{background-color:#bd2c00}#loco.wrap div.progress .l{display:block}#loco.wrap td div.progress .t{border:none}#loco.wrap td div.progress .l{display:none}#loco.wrap code.path{color:#333;margin:0;padding:0;display:inline;background:transparent}#loco.wrap .notice,#loco.wrap .panel{background:#fff;position:relative;margin:1em 0;padding:1px 12px}#loco.wrap .notice-generic{border-color:#ddd}#loco.wrap .notice-success>.has-icon,#loco.wrap .notice-success p>strong.has-icon{color:#000}#loco.wrap .notice-warning{border-color:#FFA500}#loco.wrap .notice-error{border-color:#dc3232}#loco.wrap .notice-debug{border-color:#00a0d2}#loco.wrap .notice-danger{border-color:#dc3232}#loco.wrap .notice-locked{border-color:#FFA500}#loco.wrap .notice>p>a.button.has-icon:before{width:1.5em}#loco.wrap .notice>p>em{color:#d54e21;font-style:normal}#loco.wrap .notice>p>em a{color:inherit;text-decoration:none}#loco.wrap ul.problems li{font-style:italic}#loco.wrap input.regular-text,#loco.wrap textarea.regular-text{width:25em}#loco.wrap .button{text-decoration:none}#loco.wrap .button-link{padding:0 10px 1px}#loco.wrap .button-danger{background:#ba0000;border-color:#990000 #660000 #660000;-webkit-box-shadow:0 1px 0 #600;-moz-box-shadow:0 1px 0 #600;box-shadow:0 1px 0 #600;color:#fff;text-shadow:0 -1px 1px #660000, 1px 0 1px #660000, 0 1px 1px #660000, -1px 0 1px #660000}#loco.wrap .button-success{background:#00B500;border-color:#090 #2e892e #2e892e;-webkit-box-shadow:0 1px 0 #2e892e;-moz-box-shadow:0 1px 0 #2e892e;box-shadow:0 1px 0 #2e892e;color:#fff;text-shadow:0 -1px 1px #2e892e,1px 0 1px #2e892e,0 1px 1px #2e892e,-1px 0 1px #2e892e}#loco.wrap .button-success:hover{background:#3db63d}#loco.wrap form button.loco-loading.button-large{padding-left:0}#loco.wrap form button.loco-loading.button-large:before{width:16px;height:16px;margin:0 4px;content:" ";font-size:16px;line-height:1;display:inline-block;vertical-align:sub}#loco.wrap ::-webkit-input-placeholder{color:#ccc}#loco.wrap :-moz-placeholder{color:#ccc;opacity:1}#loco.wrap ::-moz-placeholder{color:#ccc;opacity:1}#loco.wrap :-ms-input-placeholder{color:#ccc}#loco.wrap .ielt10 .placeheld{color:#ccc}#loco.wrap a.has-raquo:after{content:" \BB"}#loco.wrap span.inline-spinner{display:inline-block;min-width:16px;min-height:16px;background:transparent url(../img/spin-modal.gif?v=2.0.16) 0 0 no-repeat}.js #wpbody-content>.notice{display:none}.js #wpbody-content>.notice.inline{display:block}.js #loco.wrap .jshide{display:none !important}#loco.wrap .invis{visibility:hidden}.form-table tr{vertical-align:top}.form-table tr.compact td{padding-top:0}#loco-fs p{line-height:22px}#loco-fs a.button,#loco-fs button[type="button"]{display:block;float:right;margin-left:4px}.loco-modal.request-filesystem-credentials-dialog{top:15% !important;max-height:85% !important}.loco-modal.request-filesystem-credentials-dialog>.ui-dialog-content{background:inherit}.loco-modal.request-filesystem-credentials-dialog .ftp-password>label>em:last-child{display:none}.ui-dialog-content>div.loco-loading{height:100%;background:transparent url(../img/spin-modal.gif?v=2.0.16) center 20px no-repeat}#loco-credit>*{vertical-align:middle}#loco-credit>a{display:inline-block;position:relative;overflow:hidden;background:transparent url(../img/logo-foot.gif?v=2.0.16) 0 0 no-repeat;height:30px;width:100px;text-indent:200px;-webkit-transition-duration:0s;transition-duration:0s}#loco-credit>a:hover{background-position:0 -35px}#loco-content{position:relative}#footer-upgrade span:before{color:#CCC;content:" | ";display:inline;padding-left:0.5em;padding-right:0.5em}#footer-upgrade span:first-child:before{content:"";display:none}dl.debug dt{font-weight:bold}dl.debug dt,dl.debug dd{white-space:pre}.wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(0,115,170,0.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#0073aa}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);-moz-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8)}form button.loco-loading.button-primary[disabled]:before{background:transparent url(../img/skins/fresh/spin-primary-button.gif?v=2.0.16) 0 0 no-repeat !important}
1
+ ._ajax_loader_f2{background:transparent url(../img/ajax-loader-f2.gif?v=2.0.17) 0 0 no-repeat;min-height:16px}._ajax_loader_f2x4{background:transparent url(../img/ajax-loader-f2-x4.gif?v=2.0.17) 0 0 no-repeat;min-height:75px}@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2 / 1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx){._ajax_loader_f2{background-image:url(../img/ajax-loader-f2-x2.gif?v=2.0.17);background-size:16px}}._green_glow_inner{-webkit-box-shadow:inset 0 0 10px 0 #3db63d;-moz-box-shadow:inset 0 0 10px 0 #3db63d;box-shadow:inset 0 0 10px 0 #3db63d}._green_glow_outer{-webkit-box-shadow:0 0 0.5em 0 #3db63d;-moz-box-shadow:0 0 0.5em 0 #3db63d;box-shadow:0 0 0.5em 0 #3db63d}.loco-font,#loco.wrap .icon,#loco.wrap .has-icon:before,#loco.wrap .wp-list-table th.loco-sort.loco-asc:after,#loco.wrap .wp-list-table th.loco-sort.loco-desc:after{font-family:'loco';speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@font-face{font-family:'loco';src:url("../font/loco.eot");src:url("../font/loco.eot?#iefix") format("embedded-opentype"),url("../font/loco.woff") format("woff"),url("../font/loco.ttf") format("truetype"),url("../font/loco.svg#loco") format("svg");font-weight:normal;font-style:normal}.tipsy{font-size:11px;position:absolute;padding:5px;z-index:500001;opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.tipsy.in{opacity:1}.tipsy-inner{background-color:#000;color:#FFF;white-space:nowrap;padding:6px 8px;line-height:1.3em;text-align:center;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;-webkit-font-smoothing:subpixel-antialiased}.tipsy-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.tipsy-n .tipsy-arrow{top:0px;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.tipsy-nw .tipsy-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.tipsy-ne .tipsy-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.tipsy-s .tipsy-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.tipsy-sw .tipsy-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.tipsy-se .tipsy-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.tipsy-e .tipsy-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.tipsy-w .tipsy-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}#loco.wrap .selector{text-align:left;display:inline-block;white-space:nowrap}#loco.wrap .selectoradd a,#loco.wrap .selector .handle{cursor:default;display:block;position:relative;border-top:solid 1px #fff;border-right:solid 1px #ddd;border-bottom:solid 1px #ddd;border-left:solid 1px #fff;padding:0.3em 0.5em;color:#666;height:1.3em;overflow:hidden;white-space:normal}#loco.wrap .selectorsep{display:inline-block;border:solid 1px transparent}#loco.wrap .selectorsep:before{display:block;position:relative;padding:0.3em 0.5em;color:#999;height:1.3em;overflow:hidden}#loco.wrap .selectorsep>*{display:block;line-height:1em;color:#666;height:1.3em;overflow:hidden}#loco.wrap .selector .handle{outline:none}#loco.wrap .selector .handle .prefix{padding-right:0.6ex}#loco.wrap .selector .handle .region,#loco.wrap .selector .handle .lang-ca,#loco.wrap .selector .handle .lang-eo,#loco.wrap .selector .handle .lang-eu,#loco.wrap .selector .handle .variant-wales,#loco.wrap .selector .handle .region-gb.lang-cy,#loco.wrap .selector .handle .variant-scotland,#loco.wrap .selector .handle .region-gb.lang-gd,#loco.wrap .selector .handle .lang,#loco.wrap .selector .handle .icon-16{margin:0 5px 0 0}#loco.wrap .selector .handle:after{font-family:loco;padding-left:0.5em;padding-right:0.2em;font-size:1.3em;color:#ccc;float:right}#loco.wrap .selector .handle:focus:after,#loco.wrap .selector .handle:hover:after{color:#666}#loco.wrap .selector.no-title .handle .label{display:none}#loco.wrap .selector.no-caret .handle:after{display:none}#loco.wrap .selector.dummy .handle{border-color:transparent}#loco.wrap .selector.dummy .handle:after{display:none}#loco.wrap .selector .icon:before{color:#666}#loco.wrap .selector .lang,#loco.wrap .selector .region,#loco.wrap .selector .lang-ca,#loco.wrap .selector .lang-eo,#loco.wrap .selector .lang-eu,#loco.wrap .selector .variant-wales,#loco.wrap .selector .region-gb.lang-cy,#loco.wrap .selector .variant-scotland,#loco.wrap .selector .region-gb.lang-gd{vertical-align:middle}#loco.wrap .selectoradd{float:left;clear:none;position:relative}#loco.wrap .selectoradd>*{display:block;float:left;clear:none}#loco.wrap .selectoradd>a.has-icon{width:1.3em}#loco.wrap .selectoradd>a.has-icon:before{color:#999;display:inline;padding-left:0;padding-right:0;line-height:1.4em}#loco.wrap .selectoradd>a.has-icon:hover:after{color:#2e892e}#loco.wrap .selectoradd input[type="text"]{padding:0.3em 0.5em;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#loco.wrap .selectorsep{display:inline-block}#loco.wrap .selectorsep span{padding:0.3em 0.5em;color:#666;height:1.3em}#loco.wrap .selector ul,#loco.wrap .selector li{display:block;position:relative;cursor:default;padding:0;margin:0}#loco.wrap .selector ul{z-index:5;position:absolute;left:0;top:0;background:#f5f5f5;box-shadow:0 10px 5px rgba(0,0,0,0.2);border:solid 1px #ccc;overflow:auto}#loco.wrap .selector.up ul{margin-top:0}#loco.wrap .selector li{padding:0.3em 0.5em}#loco.wrap .selector.multi li input{display:none}#loco.wrap .selector.multi li.checked{background:#eee}#loco.wrap .selector li.active{background:#eee !important}#loco.wrap .selector li.over{background:#ccc !important;color:#fff;text-shadow:1px 1px #aaa}#loco.wrap .selector li.over .label{color:#fff}#loco.wrap .selector .label{display:inline-block;font:inherit;color:inherit;padding:0 0.5em;margin:0}#loco.wrap .selector li .icon,#loco.wrap .selector .handle .icon{display:inline-block;min-width:1.2em;text-align:center;font-size:14px;vertical-align:middle}#loco.wrap .selector li .icon.no-icon,#loco.wrap .selector .handle .icon.no-icon{display:none}#loco.wrap .selector .icon-16{vertical-align:text-top}#loco.wrap .selector.ticked .icon.no-icon{font-size:12px;display:inline-block}#loco.wrap .selector.ticked .active .icon.no-icon:before{content:"\2713"}#loco.wrap .selectoradd a:hover,#loco.wrap .selector a.handle:focus,#loco.wrap .selector a.handle:hover{color:#000;border-color:#999}#loco.wrap .selector.active .handle{border-color:#999;background-color:#eee;color:#999}#loco.wrap .selector.active .handle:after{color:#999}#loco.wrap .selector.disabled{padding:0.3em 0.5em;border-top:solid 1px #fff;border-right:solid 1px #ddd;border-bottom:solid 1px #ddd;border-left:solid 1px #fff;color:#666;height:1.3em;cursor:default;cursor:no-drop;cursor:not-allowed}#loco.wrap .selector.disabled:after{font-family:loco;padding-left:0.5em;padding-right:0.3em;line-height:1em;vertical-align:middle}#loco.wrap .selector li.disabled,#loco.wrap .selector li.disabled.over{color:#aaa;text-shadow:1px 1px #fff;pointer-events:none}#loco.wrap .selector li.disabled *{cursor:text}#loco.wrap .selector li.disabled .icon:before{color:#aaa}#loco.wrap .selector li.disabled .flag,#loco.wrap .selector li.disabled .icon-16{opacity:0.4}#loco.wrap .selector.lefty ul{left:auto;right:0}#loco.wrap .selector.lefty ul .icon,#loco.wrap .selector.lefty ul .icon-32{display:block;float:right;clear:none}#loco.wrap .selector.lefty ul .label{padding-right:32px;padding-left:0}#loco.wrap div.auto-comp-wrap{width:100%}#loco.wrap div.auto-comp-wrap input{display:inline-block}#loco.wrap div.auto-comp-wrap.loading input{background:transparent url(../img/ajax-loader.gif?v=2.0.17) right 2px no-repeat}#loco.wrap div.auto-comp-drop{color:#333333;background:#FFFFFF;border-top:none;position:absolute;width:100%;top:0;left:0;z-index:99;-webkit-box-shadow:0 5px 5px rgba(0,0,0,0.4);-moz-box-shadow:0 5px 5px rgba(0,0,0,0.4);box-shadow:0 5px 5px rgba(0,0,0,0.4)}#loco.wrap div.auto-comp-result{padding:5px 10px;cursor:pointer;background:#F0F0F0;border-top:solid 1px #FFF;border-bottom:solid 1px #DDD}#loco.wrap div.auto-comp-result:first-child{border-top:solid 1px #DDD}#loco.wrap div.auto-comp-result>*{display:inline-block;vertical-align:middle;line-height:normal}#loco.wrap div.auto-comp-result .icon:before{padding-right:5px}#loco.wrap div.auto-comp-result:hover{background:#A8A8A8;color:#FFFFFF;border-top-color:#A8A8A8;border-bottom-color:#999999}#loco.wrap div.auto-comp-result.selected{background:#666666 !important;color:#FFFFFF;border-top-color:#666666;border-bottom-color:#666666}#loco.wrap div.auto-comp-result .lang,#loco.wrap div.auto-comp-result .region,#loco.wrap div.auto-comp-result .lang-ca,#loco.wrap div.auto-comp-result .lang-eo,#loco.wrap div.auto-comp-result .lang-eu,#loco.wrap div.auto-comp-result .variant-wales,#loco.wrap div.auto-comp-result .region-gb.lang-cy,#loco.wrap div.auto-comp-result .variant-scotland,#loco.wrap div.auto-comp-result .region-gb.lang-gd{margin-right:5px}#loco.wrap div.auto-comp-wrap.error a.icon.clear:before{color:#cc0000;opacity:1}#loco.wrap div.auto-comp-wrap.error input[type="text"]{border-color:#cc0000;color:#cc0000}#loco.wrap div.auto-comp-wrap.error input[type="text"]:focus{-webkit-box-shadow:0 0 0.5em 0 rgba(153,0,0,0.5);-moz-box-shadow:0 0 0.5em 0 rgba(153,0,0,0.5);box-shadow:0 0 0.5em 0 rgba(153,0,0,0.5)}#loco.wrap ._ajax_loader_f2{background:transparent url(../img/ajax-loader-f2.gif?v=2.0.17) 0 0 no-repeat;min-height:16px}#loco.wrap ._ajax_loader_f2x4{background:transparent url(../img/ajax-loader-f2-x4.gif?v=2.0.17) 0 0 no-repeat;min-height:75px}@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2 / 1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx){#loco.wrap ._ajax_loader_f2{background-image:url(../img/ajax-loader-f2-x2.gif?v=2.0.17);background-size:16px}}#loco.wrap ._green_glow_inner{-webkit-box-shadow:inset 0 0 10px 0 #3db63d;-moz-box-shadow:inset 0 0 10px 0 #3db63d;box-shadow:inset 0 0 10px 0 #3db63d}#loco.wrap ._green_glow_outer{-webkit-box-shadow:0 0 0.5em 0 #3db63d;-moz-box-shadow:0 0 0.5em 0 #3db63d;box-shadow:0 0 0.5em 0 #3db63d}#loco.wrap .loco-font,#loco.wrap .icon,#loco.wrap .has-icon:before,#loco.wrap .wp-list-table th.loco-sort.loco-asc:after,#loco.wrap .wp-list-table th.loco-sort.loco-desc:after{font-family:'loco';speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@font-face{#loco.wrap{font-family:'loco';src:url("../fonts/loco.eot");src:url("../fonts/loco.eot?#iefix") format("embedded-opentype"),url("../fonts/loco.ttf") format("truetype"),url("../fonts/loco.woff") format("woff"),url("../fonts/loco.svg#loco") format("svg");font-weight:normal;font-style:normal}}#loco.wrap .has-icon:before{display:inline-block;padding-right:0.3em}#loco.wrap a.icon-help{cursor:help}#loco.wrap a.icon-help span{display:none}#loco.wrap .icon-bullist:before{content:"\e00a"}#loco.wrap .icon-numlist:before{content:"\e00b"}#loco.wrap .icon-indent:before{content:"\e00c"}#loco.wrap .icon-outdent:before{content:"\e00d"}#loco.wrap .icon-link:before{content:"\e011"}#loco.wrap .icon-unlink:before{content:"\e012"}#loco.wrap .icon-bold:before{content:"\42"}#loco.wrap .icon-italic:before{content:"\49"}#loco.wrap .icon-translate:before{content:"\f326"}#loco.wrap .icon-proj:before{content:"\e900"}#loco.wrap .icon-plural:before{content:"\73"}#loco.wrap .icon-max:before,#loco.wrap .icon-full-screen:before{content:"\e901"}#loco.wrap .icon-min:before{content:"\e902"}#loco.wrap .icon-sort:before{content:"\e903"}#loco.wrap .icon-checkbox-checked:before,#loco.wrap .selector.multi li.checked .icon-checkbox:before{content:"\2611"}#loco.wrap .icon-checkbox-unchecked:before{content:"\2610"}#loco.wrap .icon-checkbox-partial:before{content:"\2609"}#loco.wrap .icon-radio-checked:before{content:"\26ab"}#loco.wrap .icon-radio-unchecked:before{content:"\26aa"}#loco.wrap .icon-ext:before{content:"\2b08"}#loco.wrap .icon-share:before{content:"\e904"}#loco.wrap .icon-star:before{content:"\e612"}#loco.wrap .icon-user:before{content:"\e620"}#loco.wrap .icon-ok:before,#loco.wrap .notice-success>.has-icon:before,#loco.wrap .notice-success p>strong.has-icon:before{content:"\2713"}#loco.wrap .icon-remove:before{content:"\d7"}#loco.wrap .icon-cog:before{content:"\e61b"}#loco.wrap .icon-trash:before{content:"\e60f"}#loco.wrap .icon-time:before{content:"\e62d"}#loco.wrap .icon-download:before{content:"\e608"}#loco.wrap .icon-revert:before{content:"\e635"}#loco.wrap .icon-sync:before{content:"\e634"}#loco.wrap .icon-lock:before,#loco.wrap .selector.disabled:after,#loco.wrap .notice-locked>.has-icon:before,#loco.wrap .notice-locked p>strong.has-icon:before{content:"\e604"}#loco.wrap .icon-flag:before{content:"\e60e"}#loco.wrap .icon-tag:before{content:"\e622"}#loco.wrap .icon-tags:before{content:"\e623"}#loco.wrap .icon-print:before{content:"\e62a"}#loco.wrap .icon-camera:before{content:"\e629"}#loco.wrap .icon-pencil:before{content:"\e61e"}#loco.wrap .icon-add:before{content:"\e60c"}#loco.wrap .icon-del:before{content:"\e60d"}#loco.wrap .icon-clear:before,#loco.wrap a.icon.clear:before{content:"\e615"}#loco.wrap .icon-ok-sign:before{content:"\2714"}#loco.wrap .icon-help:before{content:"\3f"}#loco.wrap .icon-info:before,#loco.wrap .notice-info>.has-icon:before,#loco.wrap .notice-info p>strong.has-icon:before{content:"\2139"}#loco.wrap .icon-cancel:before{content:"\e605"}#loco.wrap .icon-warn:before,#loco.wrap .notice-warning>.has-icon:before,#loco.wrap .notice-warning p>strong.has-icon:before,#loco.wrap .notice-error>.has-icon:before,#loco.wrap .notice-error p>strong.has-icon:before{content:"\e62e"}#loco.wrap .icon-comment:before{content:"\e613"}#loco.wrap .icon-bar-chart:before{content:"\e624"}#loco.wrap .icon-key:before{content:"\e606"}#loco.wrap .icon-cogs:before{content:"\e61c"}#loco.wrap .icon-comments:before{content:"\e614"}#loco.wrap .icon-signout:before{content:"\e61a"}#loco.wrap .icon-signin:before{content:"\e619"}#loco.wrap .icon-upload:before{content:"\e609"}#loco.wrap .icon-twitter:before{content:"\1f426"}#loco.wrap .icon-facebook:before{content:"\e630"}#loco.wrap .icon-github:before{content:"\e633"}#loco.wrap .icon-feed:before{content:"\e628"}#loco.wrap .icon-globe:before{content:"\e61d"}#loco.wrap .icon-wrench:before,#loco.wrap .notice-debug>.has-icon:before,#loco.wrap .notice-debug p>strong.has-icon:before{content:"\e626"}#loco.wrap .icon-group:before{content:"\e61f"}#loco.wrap .icon-cloud:before{content:"\e607"}#loco.wrap .icon-copy:before{content:"\e62b"}#loco.wrap .icon-save:before{content:"\e610"}#loco.wrap .icon-menu:before{content:"\e600"}#loco.wrap .icon-table:before{content:"\e627"}#loco.wrap .icon-caret-down:before,#loco.wrap .selector .handle:after{content:"\25bc"}#loco.wrap .icon-caret-up:before,#loco.wrap .selector.active .handle:after{content:"\25b2"}#loco.wrap .icon-caret-right:before{content:"\25b6"}#loco.wrap .icon-mail:before{content:"\e603"}#loco.wrap .icon-cloud-upload:before{content:"\e617"}#loco.wrap .icon-file:before{content:"\e611"}#loco.wrap .icon-circle-white:before{content:"\26ac"}#loco.wrap .icon-circle-black:before{content:"\25cf"}#loco.wrap .icon-eraser:before{content:"\e636"}#loco.wrap .icon-unlock:before{content:"\e616"}#loco.wrap .icon-apple:before{content:"\e60b"}#loco.wrap .icon-android:before{content:"\e60a"}#loco.wrap .icon-back:before{content:"\2b05"}#loco.wrap .icon-next:before{content:"\2794"}#loco.wrap .icon-arrow-up:before{content:"\f062"}#loco.wrap .icon-ccard:before{content:"\f09d"}#loco.wrap .icon-caret-left:before{content:"\25c0"}#loco.wrap .icon-pro:before{content:"\26a1"}#loco.wrap .icon-bell:before{content:"\f0f3"}#loco.wrap .icon-code:before{content:"\f121"}#loco.wrap .icon-hellip:before{content:"\2026"}#loco.wrap .icon-vellip:before{content:"\205e"}#loco.wrap .icon-collapse:before{content:"\f147"}#loco.wrap .icon-expand:before{content:"\f196"}#loco.wrap .icon-wordpress:before{content:"\f19a"}#loco.wrap .icon-database:before{content:"\f1c0"}#loco.wrap .icon-restore:before{content:"\f1da"}#loco.wrap .icon-pilcrow:before{content:"\b6"}#loco.wrap .icon-flag.is-untranslated:before{content:"×"}#loco.wrap .icon-flag.status-0:before,#loco.wrap .icon-flag.is-translated:before{content:"✓"}#loco.wrap .icon-flag.status-1:before,#loco.wrap .icon-flag.is-incorrect:before{content:""}#loco.wrap .icon-flag.status-2:before,#loco.wrap .icon-flag.is-provisional:before{content:""}#loco.wrap .icon-flag.status-3:before,#loco.wrap .icon-flag.is-unapproved:before{content:""}#loco.wrap .icon-flag.status-4:before,#loco.wrap .icon-flag.is-fuzzy:before{content:""}#loco.wrap .icon-flag.status-5:before,#loco.wrap .icon-flag.is-incomplete:before{content:""}#loco.wrap .icon-flag.status-6:before,#loco.wrap .icon-flag.is-rejected:before{content:""}#loco.wrap .lang,#loco.wrap .region,#loco.wrap .lang-ca,#loco.wrap .lang-eo,#loco.wrap .lang-eu,#loco.wrap .variant-wales,#loco.wrap .region-gb.lang-cy,#loco.wrap .variant-scotland,#loco.wrap .region-gb.lang-gd{color:#fff;background:#2e892e;display:inline-block;text-transform:uppercase;overflow:hidden;font-family:Verdana,Arial,sans-serif;font-size:9px;font-weight:normal;font-style:normal;line-height:12px;text-align:center;white-space:normal;text-shadow:none}#loco.wrap .lang{width:20px;height:12px;line-height:12px;vertical-align:middle}#loco.wrap .lang:before{content:attr(lang)}#loco.wrap .lang-el{background-color:#1D48A3}#loco.wrap .lang-el:before{content:"\0395\03BB"}#loco.wrap .region,#loco.wrap .lang-ca,#loco.wrap .lang-eo,#loco.wrap .lang-eu,#loco.wrap .variant-wales,#loco.wrap .region-gb.lang-cy,#loco.wrap .variant-scotland,#loco.wrap .region-gb.lang-gd{width:16px;height:12px;margin:0 2px;background-image:url(../img/flags.png?v=2.0.17);background-repeat:no-repeat;background-color:transparent}#loco.wrap .region:before,#loco.wrap .lang-ca:before,#loco.wrap .lang-eo:before,#loco.wrap .lang-eu:before,#loco.wrap .variant-wales:before,#loco.wrap .region-gb.lang-cy:before,#loco.wrap .variant-scotland:before,#loco.wrap .region-gb.lang-gd:before{content:"\0A";display:none}#loco.wrap .lang-zh{background-color:#B90000}#loco.wrap .lang-zh.script-hans:before{content:"\4E2D\56FD"}#loco.wrap .lang-zh.script-hant:before{content:"\4E2D\570B"}#loco.wrap .__{background-position:0 0}#loco.wrap .lang-ca{background-position:0 -12px}#loco.wrap .lang-eo{background-position:0 -24px}#loco.wrap .lang-eu{background-position:0 -36px}#loco.wrap .region-ad{background-position:0 -48px}#loco.wrap .region-ae{background-position:0 -60px}#loco.wrap .region-af{background-position:0 -72px}#loco.wrap .region-ag{background-position:0 -84px}#loco.wrap .region-ai{background-position:0 -96px}#loco.wrap .region-al{background-position:0 -108px}#loco.wrap .region-am{background-position:0 -120px}#loco.wrap .region-an{background-position:0 -132px}#loco.wrap .region-ao{background-position:0 -144px}#loco.wrap .region-aq{background-position:0 -156px}#loco.wrap .region-ar{background-position:0 -173px}#loco.wrap .region-as{background-position:0 -185px}#loco.wrap .region-at{background-position:0 -197px}#loco.wrap .region-au{background-position:0 -209px}#loco.wrap .region-aw{background-position:0 -221px}#loco.wrap .region-ax{background-position:0 -233px}#loco.wrap .region-az{background-position:0 -245px}#loco.wrap .region-ba{background-position:0 -257px}#loco.wrap .region-bb{background-position:0 -269px}#loco.wrap .region-bd{background-position:0 -281px}#loco.wrap .region-be{background-position:0 -293px}#loco.wrap .region-bf{background-position:0 -305px}#loco.wrap .region-bg{background-position:0 -317px}#loco.wrap .region-bh{background-position:0 -329px}#loco.wrap .region-bi{background-position:0 -341px}#loco.wrap .region-bj{background-position:0 -353px}#loco.wrap .region-bl{background-position:0 -365px}#loco.wrap .region-bm{background-position:0 -382px}#loco.wrap .region-bn{background-position:0 -394px}#loco.wrap .region-bo{background-position:0 -406px}#loco.wrap .region-bq{background-position:0 -418px}#loco.wrap .region-br{background-position:0 -430px}#loco.wrap .region-bs{background-position:0 -442px}#loco.wrap .region-bt{background-position:0 -454px}#loco.wrap .region-bv{background-position:0 -466px}#loco.wrap .region-bw{background-position:0 -478px}#loco.wrap .region-by{background-position:0 -490px}#loco.wrap .region-bz{background-position:0 -502px}#loco.wrap .region-ca{background-position:0 -514px}#loco.wrap .region-cc{background-position:0 -526px}#loco.wrap .region-cd{background-position:0 -538px}#loco.wrap .region-cf{background-position:0 -550px}#loco.wrap .region-cg{background-position:0 -562px}#loco.wrap .region-ch{background-position:0 -574px}#loco.wrap .region-ci{background-position:0 -586px}#loco.wrap .region-ck{background-position:0 -598px}#loco.wrap .region-cl{background-position:0 -610px}#loco.wrap .region-cm{background-position:0 -622px}#loco.wrap .region-cn{background-position:0 -634px}#loco.wrap .region-co{background-position:0 -646px}#loco.wrap .region-cr{background-position:0 -658px}#loco.wrap .region-cs{background-position:0 -670px}#loco.wrap .region-cu{background-position:0 -682px}#loco.wrap .region-cv{background-position:0 -694px}#loco.wrap .region-cw{background-position:0 -706px}#loco.wrap .region-cx{background-position:0 -723px}#loco.wrap .region-cy{background-position:0 -735px}#loco.wrap .region-cz{background-position:0 -747px}#loco.wrap .region-de{background-position:0 -759px}#loco.wrap .region-dj{background-position:0 -771px}#loco.wrap .region-dk{background-position:0 -783px}#loco.wrap .region-dm{background-position:0 -795px}#loco.wrap .region-do{background-position:0 -807px}#loco.wrap .region-dz{background-position:0 -819px}#loco.wrap .region-ec{background-position:0 -831px}#loco.wrap .region-ee{background-position:0 -843px}#loco.wrap .region-eg{background-position:0 -855px}#loco.wrap .region-eh{background-position:0 -867px}#loco.wrap .region-er{background-position:0 -879px}#loco.wrap .region-es{background-position:0 -891px}#loco.wrap .region-et{background-position:0 -903px}#loco.wrap .region-fi{background-position:0 -915px}#loco.wrap .region-fj{background-position:0 -927px}#loco.wrap .region-fk{background-position:0 -939px}#loco.wrap .region-fm{background-position:0 -951px}#loco.wrap .region-fo{background-position:0 -963px}#loco.wrap .region-fr{background-position:0 -975px}#loco.wrap .region-ga{background-position:0 -987px}#loco.wrap .region-gb{background-position:0 -999px}#loco.wrap .region-gd{background-position:0 -1011px}#loco.wrap .region-ge{background-position:0 -1023px}#loco.wrap .region-gf{background-position:0 -1035px}#loco.wrap .region-gg{background-position:0 -1047px}#loco.wrap .region-gh{background-position:0 -1064px}#loco.wrap .region-gi{background-position:0 -1076px}#loco.wrap .region-gl{background-position:0 -1088px}#loco.wrap .region-gm{background-position:0 -1100px}#loco.wrap .region-gn{background-position:0 -1112px}#loco.wrap .region-gp{background-position:0 -1124px}#loco.wrap .region-gq{background-position:0 -1136px}#loco.wrap .region-gr{background-position:0 -1148px}#loco.wrap .region-gs{background-position:0 -1160px}#loco.wrap .region-gt{background-position:0 -1172px}#loco.wrap .region-gu{background-position:0 -1184px}#loco.wrap .region-gw{background-position:0 -1196px}#loco.wrap .region-gy{background-position:0 -1208px}#loco.wrap .region-hk{background-position:0 -1220px}#loco.wrap .region-hm{background-position:0 -1232px}#loco.wrap .region-hn{background-position:0 -1244px}#loco.wrap .region-hr{background-position:0 -1256px}#loco.wrap .region-ht{background-position:0 -1268px}#loco.wrap .region-hu{background-position:0 -1280px}#loco.wrap .region-id{background-position:0 -1292px}#loco.wrap .region-ie{background-position:0 -1304px}#loco.wrap .region-il{background-position:0 -1316px}#loco.wrap .region-im{background-position:0 -1328px}#loco.wrap .region-in{background-position:0 -1345px}#loco.wrap .region-io{background-position:0 -1357px}#loco.wrap .region-iq{background-position:0 -1369px}#loco.wrap .region-ir{background-position:0 -1381px}#loco.wrap .region-is{background-position:0 -1393px}#loco.wrap .region-it{background-position:0 -1405px}#loco.wrap .region-je{background-position:0 -1417px}#loco.wrap .region-jm{background-position:0 -1434px}#loco.wrap .region-jo{background-position:0 -1446px}#loco.wrap .region-jp{background-position:0 -1458px}#loco.wrap .region-ke{background-position:0 -1470px}#loco.wrap .region-kg{background-position:0 -1482px}#loco.wrap .region-kh{background-position:0 -1494px}#loco.wrap .region-ki{background-position:0 -1506px}#loco.wrap .region-km{background-position:0 -1518px}#loco.wrap .region-kn{background-position:0 -1530px}#loco.wrap .region-kp{background-position:0 -1542px}#loco.wrap .region-kr{background-position:0 -1554px}#loco.wrap .region-kw{background-position:0 -1566px}#loco.wrap .region-ky{background-position:0 -1578px}#loco.wrap .region-kz{background-position:0 -1590px}#loco.wrap .region-la{background-position:0 -1602px}#loco.wrap .region-lb{background-position:0 -1614px}#loco.wrap .region-lc{background-position:0 -1626px}#loco.wrap .region-li{background-position:0 -1638px}#loco.wrap .region-lk{background-position:0 -1650px}#loco.wrap .region-lr{background-position:0 -1662px}#loco.wrap .region-ls{background-position:0 -1674px}#loco.wrap .region-lt{background-position:0 -1686px}#loco.wrap .region-lu{background-position:0 -1698px}#loco.wrap .region-lv{background-position:0 -1710px}#loco.wrap .region-ly{background-position:0 -1722px}#loco.wrap .region-ma{background-position:0 -1734px}#loco.wrap .region-mc{background-position:0 -1746px}#loco.wrap .region-md{background-position:0 -1758px}#loco.wrap .region-me{background-position:0 -1770px}#loco.wrap .region-mf{background-position:0 -1783px}#loco.wrap .region-mg{background-position:0 -1800px}#loco.wrap .region-mh{background-position:0 -1812px}#loco.wrap .region-mk{background-position:0 -1824px}#loco.wrap .region-ml{background-position:0 -1836px}#loco.wrap .region-mm{background-position:0 -1848px}#loco.wrap .region-mn{background-position:0 -1860px}#loco.wrap .region-mo{background-position:0 -1872px}#loco.wrap .region-mp{background-position:0 -1884px}#loco.wrap .region-mq{background-position:0 -1896px}#loco.wrap .region-mr{background-position:0 -1908px}#loco.wrap .region-ms{background-position:0 -1920px}#loco.wrap .region-mt{background-position:0 -1932px}#loco.wrap .region-mu{background-position:0 -1944px}#loco.wrap .region-mv{background-position:0 -1956px}#loco.wrap .region-mw{background-position:0 -1968px}#loco.wrap .region-mx{background-position:0 -1980px}#loco.wrap .region-my{background-position:0 -1992px}#loco.wrap .region-mz{background-position:0 -2004px}#loco.wrap .region-na{background-position:0 -2016px}#loco.wrap .region-nc{background-position:0 -2028px}#loco.wrap .region-ne{background-position:0 -2040px}#loco.wrap .region-nf{background-position:0 -2052px}#loco.wrap .region-ng{background-position:0 -2064px}#loco.wrap .region-ni{background-position:0 -2076px}#loco.wrap .region-nl{background-position:0 -2088px}#loco.wrap .region-no{background-position:0 -2100px}#loco.wrap .region-np{background-position:0 -2112px}#loco.wrap .region-nr{background-position:0 -2124px}#loco.wrap .region-nu{background-position:0 -2136px}#loco.wrap .region-nz{background-position:0 -2148px}#loco.wrap .region-om{background-position:0 -2160px}#loco.wrap .region-pa{background-position:0 -2172px}#loco.wrap .region-pe{background-position:0 -2184px}#loco.wrap .region-pf{background-position:0 -2196px}#loco.wrap .region-pg{background-position:0 -2208px}#loco.wrap .region-ph{background-position:0 -2220px}#loco.wrap .region-pk{background-position:0 -2232px}#loco.wrap .region-pl{background-position:0 -2244px}#loco.wrap .region-pm{background-position:0 -2256px}#loco.wrap .region-pn{background-position:0 -2268px}#loco.wrap .region-pr{background-position:0 -2280px}#loco.wrap .region-ps{background-position:0 -2292px}#loco.wrap .region-pt{background-position:0 -2304px}#loco.wrap .region-pw{background-position:0 -2316px}#loco.wrap .region-py{background-position:0 -2328px}#loco.wrap .region-qa{background-position:0 -2340px}#loco.wrap .region-re{background-position:0 -2352px}#loco.wrap .region-ro{background-position:0 -2364px}#loco.wrap .region-rs{background-position:0 -2376px}#loco.wrap .region-ru{background-position:0 -2388px}#loco.wrap .region-rw{background-position:0 -2400px}#loco.wrap .region-sa{background-position:0 -2412px}#loco.wrap .region-sb{background-position:0 -2424px}#loco.wrap .region-sc{background-position:0 -2436px}#loco.wrap .region-sd{background-position:0 -2448px}#loco.wrap .region-se{background-position:0 -2460px}#loco.wrap .region-sg{background-position:0 -2472px}#loco.wrap .region-sh{background-position:0 -2484px}#loco.wrap .region-si{background-position:0 -2496px}#loco.wrap .region-sj{background-position:0 -2508px}#loco.wrap .region-sk{background-position:0 -2520px}#loco.wrap .region-sl{background-position:0 -2532px}#loco.wrap .region-sm{background-position:0 -2544px}#loco.wrap .region-sn{background-position:0 -2556px}#loco.wrap .region-so{background-position:0 -2568px}#loco.wrap .region-sr{background-position:0 -2580px}#loco.wrap .region-ss{background-position:0 -2592px}#loco.wrap .region-st{background-position:0 -2609px}#loco.wrap .region-sv{background-position:0 -2621px}#loco.wrap .region-sx{background-position:0 -2633px}#loco.wrap .region-sy{background-position:0 -2650px}#loco.wrap .region-sz{background-position:0 -2662px}#loco.wrap .region-tc{background-position:0 -2674px}#loco.wrap .region-td{background-position:0 -2686px}#loco.wrap .region-tf{background-position:0 -2698px}#loco.wrap .region-tg{background-position:0 -2710px}#loco.wrap .region-th{background-position:0 -2722px}#loco.wrap .region-tj{background-position:0 -2734px}#loco.wrap .region-tk{background-position:0 -2746px}#loco.wrap .region-tl{background-position:0 -2758px}#loco.wrap .region-tm{background-position:0 -2770px}#loco.wrap .region-tn{background-position:0 -2782px}#loco.wrap .region-to{background-position:0 -2794px}#loco.wrap .region-tr{background-position:0 -2806px}#loco.wrap .region-tt{background-position:0 -2818px}#loco.wrap .region-tv{background-position:0 -2830px}#loco.wrap .region-tw{background-position:0 -2842px}#loco.wrap .region-tz{background-position:0 -2854px}#loco.wrap .region-ua{background-position:0 -2866px}#loco.wrap .region-ug{background-position:0 -2878px}#loco.wrap .region-um{background-position:0 -2890px}#loco.wrap .region-us{background-position:0 -2902px}#loco.wrap .region-uy{background-position:0 -2914px}#loco.wrap .region-uz{background-position:0 -2926px}#loco.wrap .region-va{background-position:0 -2938px}#loco.wrap .region-vc{background-position:0 -2950px}#loco.wrap .region-ve{background-position:0 -2962px}#loco.wrap .region-vg{background-position:0 -2974px}#loco.wrap .region-vi{background-position:0 -2986px}#loco.wrap .region-vn{background-position:0 -2998px}#loco.wrap .region-vu{background-position:0 -3010px}#loco.wrap .region-wf{background-position:0 -3022px}#loco.wrap .region-ws{background-position:0 -3034px}#loco.wrap .region-ye{background-position:0 -3046px}#loco.wrap .region-yt{background-position:0 -3058px}#loco.wrap .region-za{background-position:0 -3070px}#loco.wrap .region-zm{background-position:0 -3082px}#loco.wrap .region-zw{background-position:0 -3094px}#loco.wrap .variant-scotland,#loco.wrap .region-gb.lang-gd{background-position:0 -3106px}#loco.wrap .variant-wales,#loco.wrap .region-gb.lang-cy{background-position:0 -3118px}#loco.wrap .x-eu{background-position:0 -3130px}#loco.wrap span.lang code{display:none}#loco.wrap .icon-bullist:before{content:"\e00a"}#loco.wrap .icon-numlist:before{content:"\e00b"}#loco.wrap .icon-indent:before{content:"\e00c"}#loco.wrap .icon-outdent:before{content:"\e00d"}#loco.wrap .icon-link:before{content:"\e011"}#loco.wrap .icon-unlink:before{content:"\e012"}#loco.wrap .icon-bold:before{content:"\42"}#loco.wrap .icon-italic:before{content:"\49"}#loco.wrap .icon-translate:before{content:"\f326"}#loco.wrap .icon-proj:before{content:"\e900"}#loco.wrap .icon-plural:before{content:"\73"}#loco.wrap .icon-max:before,#loco.wrap .icon-full-screen:before{content:"\e901"}#loco.wrap .icon-min:before{content:"\e902"}#loco.wrap .icon-sort:before{content:"\e903"}#loco.wrap .icon-checkbox-checked:before,#loco.wrap .selector.multi li.checked .icon-checkbox:before{content:"\2611"}#loco.wrap .icon-checkbox-unchecked:before{content:"\2610"}#loco.wrap .icon-checkbox-partial:before{content:"\2609"}#loco.wrap .icon-radio-checked:before{content:"\26ab"}#loco.wrap .icon-radio-unchecked:before{content:"\26aa"}#loco.wrap .icon-ext:before{content:"\2b08"}#loco.wrap .icon-share:before{content:"\e904"}#loco.wrap .icon-star:before{content:"\e612"}#loco.wrap .icon-user:before{content:"\e620"}#loco.wrap .icon-ok:before,#loco.wrap .notice-success>.has-icon:before,#loco.wrap .notice-success p>strong.has-icon:before{content:"\2713"}#loco.wrap .icon-remove:before{content:"\d7"}#loco.wrap .icon-cog:before{content:"\e61b"}#loco.wrap .icon-trash:before{content:"\e60f"}#loco.wrap .icon-time:before{content:"\e62d"}#loco.wrap .icon-download:before{content:"\e608"}#loco.wrap .icon-revert:before{content:"\e635"}#loco.wrap .icon-sync:before{content:"\e634"}#loco.wrap .icon-lock:before,#loco.wrap .selector.disabled:after,#loco.wrap .notice-locked>.has-icon:before,#loco.wrap .notice-locked p>strong.has-icon:before{content:"\e604"}#loco.wrap .icon-flag:before{content:"\e60e"}#loco.wrap .icon-tag:before{content:"\e622"}#loco.wrap .icon-tags:before{content:"\e623"}#loco.wrap .icon-print:before{content:"\e62a"}#loco.wrap .icon-camera:before{content:"\e629"}#loco.wrap .icon-pencil:before{content:"\e61e"}#loco.wrap .icon-add:before{content:"\e60c"}#loco.wrap .icon-del:before{content:"\e60d"}#loco.wrap .icon-clear:before,#loco.wrap a.icon.clear:before{content:"\e615"}#loco.wrap .icon-ok-sign:before{content:"\2714"}#loco.wrap .icon-help:before{content:"\3f"}#loco.wrap .icon-info:before,#loco.wrap .notice-info>.has-icon:before,#loco.wrap .notice-info p>strong.has-icon:before{content:"\2139"}#loco.wrap .icon-cancel:before{content:"\e605"}#loco.wrap .icon-warn:before,#loco.wrap .notice-warning>.has-icon:before,#loco.wrap .notice-warning p>strong.has-icon:before,#loco.wrap .notice-error>.has-icon:before,#loco.wrap .notice-error p>strong.has-icon:before{content:"\e62e"}#loco.wrap .icon-comment:before{content:"\e613"}#loco.wrap .icon-bar-chart:before{content:"\e624"}#loco.wrap .icon-key:before{content:"\e606"}#loco.wrap .icon-cogs:before{content:"\e61c"}#loco.wrap .icon-comments:before{content:"\e614"}#loco.wrap .icon-signout:before{content:"\e61a"}#loco.wrap .icon-signin:before{content:"\e619"}#loco.wrap .icon-upload:before{content:"\e609"}#loco.wrap .icon-twitter:before{content:"\1f426"}#loco.wrap .icon-facebook:before{content:"\e630"}#loco.wrap .icon-github:before{content:"\e633"}#loco.wrap .icon-feed:before{content:"\e628"}#loco.wrap .icon-globe:before{content:"\e61d"}#loco.wrap .icon-wrench:before,#loco.wrap .notice-debug>.has-icon:before,#loco.wrap .notice-debug p>strong.has-icon:before{content:"\e626"}#loco.wrap .icon-group:before{content:"\e61f"}#loco.wrap .icon-cloud:before{content:"\e607"}#loco.wrap .icon-copy:before{content:"\e62b"}#loco.wrap .icon-save:before{content:"\e610"}#loco.wrap .icon-menu:before{content:"\e600"}#loco.wrap .icon-table:before{content:"\e627"}#loco.wrap .icon-caret-down:before,#loco.wrap .selector .handle:after{content:"\25bc"}#loco.wrap .icon-caret-up:before,#loco.wrap .selector.active .handle:after{content:"\25b2"}#loco.wrap .icon-caret-right:before{content:"\25b6"}#loco.wrap .icon-mail:before{content:"\e603"}#loco.wrap .icon-cloud-upload:before{content:"\e617"}#loco.wrap .icon-file:before{content:"\e611"}#loco.wrap .icon-circle-white:before{content:"\26ac"}#loco.wrap .icon-circle-black:before{content:"\25cf"}#loco.wrap .icon-eraser:before{content:"\e636"}#loco.wrap .icon-unlock:before{content:"\e616"}#loco.wrap .icon-apple:before{content:"\e60b"}#loco.wrap .icon-android:before{content:"\e60a"}#loco.wrap .icon-back:before{content:"\2b05"}#loco.wrap .icon-next:before{content:"\2794"}#loco.wrap .icon-arrow-up:before{content:"\f062"}#loco.wrap .icon-ccard:before{content:"\f09d"}#loco.wrap .icon-caret-left:before{content:"\25c0"}#loco.wrap .icon-pro:before{content:"\26a1"}#loco.wrap .icon-bell:before{content:"\f0f3"}#loco.wrap .icon-code:before{content:"\f121"}#loco.wrap .icon-hellip:before{content:"\2026"}#loco.wrap .icon-vellip:before{content:"\205e"}#loco.wrap .icon-collapse:before{content:"\f147"}#loco.wrap .icon-expand:before{content:"\f196"}#loco.wrap .icon-wordpress:before{content:"\f19a"}#loco.wrap .icon-database:before{content:"\f1c0"}#loco.wrap .icon-restore:before{content:"\f1da"}#loco.wrap .icon-pilcrow:before{content:"\b6"}#loco.wrap .icon,#loco.wrap .has-icon:before,#loco.wrap .has-dashicon:before{speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#loco.wrap .icon,#loco.wrap .has-icon:before{font-family:'loco'}#loco.wrap .has-dashicon:before{font-family:'dashicons';font-size:1.4em}#loco.wrap .has-icon:before,#loco.wrap .has-dashicon:before,#loco.wrap .has-icon>span{display:inline-block;vertical-align:middle}#loco.wrap .only-icon{text-align:center}#loco.wrap .only-icon:before{text-align:center}#loco.wrap .only-icon span{display:none}#loco.wrap h1 ul,#loco.wrap h1 li{margin:0;padding:0}#loco.wrap h1 li{display:inline-block}#loco.wrap h1 li:after{content:"/";color:#999;text-shadow:none;display:inline-block}#loco.wrap h1 li a{text-decoration:none}#loco.wrap h1 li:last-child:after{content:""}#loco.wrap h1 li:last-child a{color:inherit;pointer-events:none;cursor:auto}#loco.wrap h2 span{color:#999;font-weight:normal}#loco.wrap h3 .loco-meta{font-size:14px;font-weight:normal}#loco.wrap .wp-list-table td:first-child .icon{width:16px;display:inline-block;text-align:center}#loco.wrap .wp-list-table td{white-space:nowrap}#loco.wrap .wp-list-table td>a,#loco.wrap .wp-list-table td>time{display:inline-block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis;-ms-text-overflow:ellipsis}#loco.wrap .wp-list-table th.loco-sort{cursor:pointer}#loco.wrap .wp-list-table th.loco-sort:hover{color:#000}#loco.wrap .wp-list-table th.loco-sort.loco-asc:after,#loco.wrap .wp-list-table th.loco-sort.loco-desc:after{padding:0 0 0 4px;color:#999}#loco.wrap .wp-list-table th.loco-sort.loco-desc:after{content:"\25bc"}#loco.wrap .wp-list-table th.loco-sort.loco-asc:after{content:"\25b2"}#loco.wrap form.loco-filter{display:block;margin-bottom:5px}#loco.wrap form.loco-filter .icon-filter{color:#999}#loco.wrap nav.above-list-table{margin-bottom:1em}#loco.wrap nav.above-list-table a{display:inline-block;margin-right:1em}#loco.wrap .wp-core-ui button.inverted,#loco.wrap .wp-core-ui button.inverted:hover{background:-moz-linear-gradient(top, #ccc 0%, #e0e0e0 5%, #fefefe 100%);background:-webkit-linear-gradient(top, #ccc 0%, #e0e0e0 5%, #fefefe 100%);background:linear-gradient(to bottom, #ccc 0%, #e0e0e0 5%, #fefefe 100%);-webkit-box-shadow:0 1px 0 #fff;-moz-box-shadow:0 1px 0 #fff;box-shadow:0 1px 0 #fff;border-color:#bbb}#loco.wrap .wp-core-ui button:active,#loco.wrap .wp-core-ui button.inverted:active{border-color:#5b9dd9}#loco.wrap .loco-clearable{display:inline-block;vertical-align:middle;position:relative}#loco.wrap .loco-clearable a.clear,#loco.wrap .auto-comp-wrap a.clear{top:0;right:0;outline:none;margin:0;border:solid 1px transparent;padding:5px 5px;position:absolute;font-size:1em;line-height:normal;text-decoration:none}#loco.wrap .loco-clearable a.clear:before,#loco.wrap .auto-comp-wrap a.clear:before{vertical-align:middle;padding:0;color:#999}#loco.wrap .loco-clearable a.clear:hover:before,#loco.wrap .auto-comp-wrap a.clear:hover:before{color:#333}#loco.wrap .loco-clearable a.clear span,#loco.wrap .auto-comp-wrap a.clear span{display:none}#loco.wrap .loco-clearable ::-ms-clear,#loco.wrap .auto-comp-wrap ::-ms-clear{display:none}#loco.wrap div.progress{color:#000}#loco.wrap div.progress *{height:100%;overflow:hidden;white-space:nowrap}#loco.wrap div.progress .t{background-color:#ddd;border:1px solid #ccc}#loco.wrap div.progress .t .bar{float:left;clear:none;background-color:#3db63d}#loco.wrap div.progress .t .bar.f{background-color:#bd2c00}#loco.wrap div.progress .l{display:block}#loco.wrap td div.progress .t{border:none}#loco.wrap td div.progress .l{display:none}#loco.wrap code.path{color:#333;margin:0;padding:0;display:inline;background:transparent}#loco.wrap .notice,#loco.wrap .panel{background:#fff;position:relative;margin:1em 0;padding:1px 12px}#loco.wrap .notice-generic{border-color:#ddd}#loco.wrap .notice-success>.has-icon,#loco.wrap .notice-success p>strong.has-icon{color:#000}#loco.wrap .notice-warning{border-color:#FFA500}#loco.wrap .notice-error{border-color:#dc3232}#loco.wrap .notice-debug{border-color:#00a0d2}#loco.wrap .notice-danger{border-color:#dc3232}#loco.wrap .notice-locked{border-color:#FFA500}#loco.wrap .notice>p>a.button.has-icon:before{width:1.5em}#loco.wrap .notice>p>em{color:#d54e21;font-style:normal}#loco.wrap .notice>p>em a{color:inherit;text-decoration:none}#loco.wrap ul.problems li{font-style:italic}#loco.wrap input.regular-text,#loco.wrap textarea.regular-text{width:25em}#loco.wrap .button{text-decoration:none}#loco.wrap .button-link{padding:0 10px 1px}#loco.wrap .button-danger{background:#ba0000;border-color:#990000 #660000 #660000;-webkit-box-shadow:0 1px 0 #600;-moz-box-shadow:0 1px 0 #600;box-shadow:0 1px 0 #600;color:#fff;text-shadow:0 -1px 1px #660000, 1px 0 1px #660000, 0 1px 1px #660000, -1px 0 1px #660000}#loco.wrap .button-success{background:#00B500;border-color:#090 #2e892e #2e892e;-webkit-box-shadow:0 1px 0 #2e892e;-moz-box-shadow:0 1px 0 #2e892e;box-shadow:0 1px 0 #2e892e;color:#fff;text-shadow:0 -1px 1px #2e892e,1px 0 1px #2e892e,0 1px 1px #2e892e,-1px 0 1px #2e892e}#loco.wrap .button-success:hover{background:#3db63d}#loco.wrap form button.loco-loading.button-large{padding-left:0}#loco.wrap form button.loco-loading.button-large:before{width:16px;height:16px;margin:0 4px;content:" ";font-size:16px;line-height:1;display:inline-block;vertical-align:sub}#loco.wrap ::-webkit-input-placeholder{color:#ccc}#loco.wrap :-moz-placeholder{color:#ccc;opacity:1}#loco.wrap ::-moz-placeholder{color:#ccc;opacity:1}#loco.wrap :-ms-input-placeholder{color:#ccc}#loco.wrap .ielt10 .placeheld{color:#ccc}#loco.wrap a.has-raquo:after{content:" \BB"}#loco.wrap span.inline-spinner{display:inline-block;min-width:16px;min-height:16px;background:transparent url(../img/spin-modal.gif?v=2.0.17) 0 0 no-repeat}.js #wpbody-content>.notice{display:none}.js #wpbody-content>.notice.inline{display:block}.js #loco.wrap .jshide{display:none !important}#loco.wrap .invis{visibility:hidden}.form-table tr{vertical-align:top}.form-table tr.compact td{padding-top:0}#loco-fs p{line-height:22px}#loco-fs a.button,#loco-fs button[type="button"]{display:block;float:right;margin-left:4px}.loco-modal.request-filesystem-credentials-dialog{top:15% !important;max-height:85% !important}.loco-modal.request-filesystem-credentials-dialog>.ui-dialog-content{background:inherit}.loco-modal.request-filesystem-credentials-dialog .ftp-password>label>em:last-child{display:none}.ui-dialog-content>div.loco-loading{height:100%;background:transparent url(../img/spin-modal.gif?v=2.0.17) center 20px no-repeat}#loco-credit>*{vertical-align:middle}#loco-credit>a{display:inline-block;position:relative;overflow:hidden;background:transparent url(../img/logo-foot.gif?v=2.0.17) 0 0 no-repeat;height:30px;width:100px;text-indent:200px;-webkit-transition-duration:0s;transition-duration:0s}#loco-credit>a:hover{background-position:0 -35px}#loco-content{position:relative}#footer-upgrade span:before{color:#CCC;content:" | ";display:inline;padding-left:0.5em;padding-right:0.5em}#footer-upgrade span:first-child:before{content:"";display:none}dl.debug dt{font-weight:bold}dl.debug dt,dl.debug dd{white-space:pre}.wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(0,115,170,0.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#0073aa}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);-moz-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8)}form button.loco-loading.button-primary[disabled]:before{background:transparent url(../img/skins/fresh/spin-primary-button.gif?v=2.0.17) 0 0 no-repeat !important}
pub/css/bundle.css CHANGED
@@ -1 +1 @@
1
- table.wp-list-table td>a,table.wp-list-table td>time{display:inline-block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis;-ms-text-overflow:ellipsis}form.loco-filter{float:right}@media only screen and (max-width: 1024px){table.wp-list-table a.row-title{max-width:100px}}
1
+ form.loco-filter{float:right}@media only screen and (max-width: 1024px){table.wp-list-table a.row-title{max-width:100px}}
pub/css/editor.css CHANGED
@@ -1 +1 @@
1
- #loco-editor{border:solid 1px #ccc}#loco-editor ._ajax_loader_f2{background:transparent url(../img/ajax-loader-f2.gif?v=2.0.16) 0 0 no-repeat;min-height:16px}#loco-editor ._ajax_loader_f2x4{background:transparent url(../img/ajax-loader-f2-x4.gif?v=2.0.16) 0 0 no-repeat;min-height:75px}@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2 / 1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx){#loco-editor ._ajax_loader_f2{background-image:url(../img/ajax-loader-f2-x2.gif?v=2.0.16);background-size:16px}}#loco-editor ._green_glow_inner,#loco-editor .is-editable>.wg-content>textarea:focus,#loco-editor .is-editable>.wg-content.has-focus .ace_scroller,#loco-editor .is-editable>.wg-content.has-focus .wysihtml-editor,#loco-editor .is-editable>.wg-content.has-focus .mce-content-body{-webkit-box-shadow:inset 0 0 10px 0 #3db63d;-moz-box-shadow:inset 0 0 10px 0 #3db63d;box-shadow:inset 0 0 10px 0 #3db63d}#loco-editor ._green_glow_outer{-webkit-box-shadow:0 0 0.5em 0 #3db63d;-moz-box-shadow:0 0 0.5em 0 #3db63d;box-shadow:0 0 0.5em 0 #3db63d}#loco-editor .loco-font,#loco-editor .is-table .wg-thead .wg-sortable>header:after{font-family:'loco';speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#loco-editor div.ta-mirror{position:absolute;top:0;border:solid 1px transparent;color:transparent;padding:0.4em 0.6em;pointer-events:none}#loco-editor div.ta-mirror span{position:relative}#loco-editor div.ta-mirror span:after{color:#ccc;white-space:pre;display:inline-block;position:absolute;top:0;line-height:normal}#loco-editor div.ta-mirror .crlf:after{content:"\00AC"}#loco-editor div.ta-mirror .eof:after{content:"\00B6"}#loco-editor div.ta-mirror .x20:after{content:"\00B7";color:#aaa}#loco-editor div.ta-mirror .x9:after{content:"\27F6"}#loco-editor div.ta-mirror,#loco-editor .has-mirror textarea{white-space:pre-wrap;word-wrap:break-word;word-spacing:0px}#loco-editor .has-mirror ::-webkit-input-placeholder{color:transparent}#loco-editor .has-mirror :-moz-placeholder{color:transparent;opacity:1}#loco-editor .has-mirror ::-moz-placeholder{color:transparent;opacity:1}#loco-editor .has-mirror :-ms-input-placeholder{color:transparent}#loco-editor .has-mirror .ielt10 .placeheld{color:transparent}#loco-editor div.ta-mirror{left:0;text-align:left}#loco-editor div.ta-mirror span:after{left:0}#loco-editor div.ta-mirror .eol:after{padding-left:0.2em}#loco-editor [dir="RTL"] div.ta-mirror{left:auto;right:0;text-align:right}#loco-editor [dir="RTL"] div.ta-mirror span:after{right:0}#loco-editor [dir="RTL"] div.ta-mirror .eol:after{padding-left:0;padding-right:0.2em}#loco-editor .has-proxy>textarea{display:none !important}#loco-editor .has-proxy .ace_editor{height:100%;font-size:13px !important;line-height:1.4 !important}#loco-editor .has-proxy .ace_editor .ace_marker-layer .ace_bracket{display:none}#loco-editor .has-proxy .ace_print-margin{display:none}#loco-editor .ace_printf{color:#b90690;background-color:#edf1be}#loco-editor .resizer{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0 0 6px 0;background:#f0f0f0 url(../img/wg/splity.png?v=2.0.16) center bottom no-repeat;border:1px solid #ddd;overflow:hidden;cursor:move;cursor:row-resize;cursor:s-resize}#loco-editor .resizer>*{height:100%;border:none}#loco-editor ._ajax_loader_f2{background:transparent url(../img/ajax-loader-f2.gif?v=2.0.16) 0 0 no-repeat;min-height:16px}#loco-editor ._ajax_loader_f2x4{background:transparent url(../img/ajax-loader-f2-x4.gif?v=2.0.16) 0 0 no-repeat;min-height:75px}@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2 / 1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx){#loco-editor ._ajax_loader_f2{background-image:url(../img/ajax-loader-f2-x2.gif?v=2.0.16);background-size:16px}}#loco-editor ._green_glow_inner,#loco-editor .is-editable>.wg-content>textarea:focus,#loco-editor .is-editable>.wg-content.has-focus .ace_scroller,#loco-editor .is-editable>.wg-content.has-focus .wysihtml-editor,#loco-editor .is-editable>.wg-content.has-focus .mce-content-body{-webkit-box-shadow:inset 0 0 10px 0 #3db63d;-moz-box-shadow:inset 0 0 10px 0 #3db63d;box-shadow:inset 0 0 10px 0 #3db63d}#loco-editor ._green_glow_outer{-webkit-box-shadow:0 0 0.5em 0 #3db63d;-moz-box-shadow:0 0 0.5em 0 #3db63d;box-shadow:0 0 0.5em 0 #3db63d}#loco-editor .loco-font,#loco-editor .is-table .wg-thead .wg-sortable>header:after{font-family:'loco';speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#loco-editor .wg-cell,#loco-editor .wg-cell>div{clear:both;position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#loco-editor .wg-cell{left:0;top:0;padding:0;margin:0;overflow:hidden}#loco-editor .wg-split{background:#eee}#loco-editor .wg-body:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}#loco-editor .wg-split-x>div>.not-first>*{margin-left:6px}#loco-editor .wg-split-y>div>.not-first>*{margin-top:6px}#loco-editor .wg-split>div>.has-title .wg-content{margin-top:0}#loco-editor .wg-split-x>div>.wg-cell{float:left;clear:none;height:100%}#loco-editor .wg-split-x>div{cursor:move;cursor:ew-resize;cursor:col-resize}#loco-editor .wg-split>div>.not-first:before{display:block;position:absolute;overflow:hidden;content:" "}#loco-editor .wg-split-x>div>.not-first:before{width:6px;height:100%;background:transparent url(../img/wg/splitx.png?v=2.0.16) center center no-repeat}#loco-editor .wg-split-y>div{cursor:move;cursor:ns-resize;cursor:row-resize}#loco-editor .wg-split-y>div>.not-first:before{height:6px;width:100%;background:transparent url(../img/wg/splity.png?v=2.0.16) center center no-repeat}#loco-editor .wg-split>div.locked{cursor:default}#loco-editor .wg-split-x>div.locked>.not-first>*{margin-left:1px}#loco-editor .wg-split-y>div.locked>.not-first>*{margin-top:1px}#loco-editor .wg-split>div.locked>.not-first:before{display:none}#loco-editor .has-title>header{background:#e2e2e2;cursor:default !important;margin:0;white-space:nowrap}#loco-editor .wg-content{background:#fff;cursor:default;padding:4px 6px;overflow:hidden;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#loco-editor .wg-toolbar{top:0;right:0;margin-top:6px;position:absolute}#loco-editor .wg-toolbar>span{color:#fff;background:#000;display:block;padding:0 6px;cursor:default !important}#loco-editor .wg-toolbar>span:active{color:#000;background-color:#fff}#loco-editor .wg-content,#loco-editor .wg-tbody>div{overflow:scroll;overflow-x:hidden;overflow-y:auto}#loco-editor .is-table{background-color:#fff}#loco-editor .is-table .wg-thead .has-title>header{font-weight:normal;background:transparent;padding:4px 0;margin:0 0 0 10px}#loco-editor .is-table .wg-thead>div>.not-first:before{background-position:center center}#loco-editor .is-table .wg-thead{background:#e2e2e2;border-bottom:solid 1px #ccc}#loco-editor .is-table .wg-tbody{background-image:url(data:image/gif;base64,R0lGODlhAQAsAIABAPz8/P///yH5BAEAAAEALAAAAAABACwAAAIIjI+pAe0PIygAOw==);position:relative}#loco-editor .is-table .wg-cols{outline:none}#loco-editor .is-table .wg-cols>div{float:left;clear:none}#loco-editor .is-table .wg-cols>div>div{white-space:nowrap;line-height:1.7em;padding-left:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis;-ms-text-overflow:ellipsis;background-color:#fff}#loco-editor .is-table .wg-cols>div>div:nth-child(even){background-color:#f7f7f7}#loco-editor .is-table .wg-cols>div>div.selected{background-color:#3db63d;color:#fff}#loco-editor .is-table .wg-cols>div:first-child>div{padding-left:4px}#loco-editor .is-table .wg-dead{clear:both}#loco-editor .is-table .wg-thead .wg-sortable>header{cursor:pointer !important}#loco-editor .is-table .wg-thead .wg-sortable>header:after{padding:0 0 0 5px;color:#999}#loco-editor .is-table .wg-thead .wg-sortable.wg-asc>header:after{content:"\25b2"}#loco-editor .is-table .wg-thead .wg-sortable.wg-desc>header:after{content:"\25bc"}#loco-editor .is-table .wg-thead .wg-sortable:hover>header:after{color:#000}#loco-editor .is-field>.wg-content{cursor:text;outline:none;padding:0;line-height:normal;overflow:hidden;overflow-y:hidden}#loco-editor .is-field>.wg-content>div,#loco-editor .is-field>.wg-content>textarea{font-size:14px;line-height:1.4;border:1px solid #ddd;width:100%;height:100%;padding:8px 10px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#loco-editor .is-field>.wg-content textarea{resize:none;overflow:auto;display:block}#loco-editor .is-field>.wg-content>.ace_editor{padding:0;border-width:0}#loco-editor .is-field>.wg-content>div[contenteditable]{overflow:scroll;overflow-x:hidden;overflow-y:auto}#loco-editor .is-readonly>.wg-content{cursor:default}#loco-editor .is-readonly>.wg-content>div,#loco-editor .is-readonly>.wg-content>textarea,#loco-editor .is-readonly>.wg-content>textarea[readonly]{background:#f8f8f8;text-shadow:0 1px #fff;color:inherit}#loco-editor .is-readonly>.wg-content .ace_scroller{cursor:default;background:#f8f8f8}#loco-editor .is-readonly>.wg-content .ace_cursor-layer{display:none}#loco-editor .is-editable>.wg-content[dir="RTL"] .ace_editor .ace_line{direction:ltr;unicode-bidi:bidi-override}#loco-editor .wg-split-x>nav.wg-tabs{white-space:nowrap;text-align:center;cursor:default}#loco-editor .wg-split-x>nav.wg-tabs>a{display:inline-block;padding:0.5em 1em;margin-top:0.2em;color:#000;text-decoration:none;-webkit-border-radius:0.2em 0.2em 0 0;-moz-border-radius:0.2em 0.2em 0 0;-ms-border-radius:0.2em 0.2em 0 0;-o-border-radius:0.2em 0.2em 0 0;border-radius:0.2em 0.2em 0 0;background-color:#f3f7fd}#loco-editor .wg-split-x>nav.wg-tabs>a:hover{background-color:#fff}#loco-editor .wg-split-x>nav.wg-tabs>a.active{background-color:#3db63d;color:#fff}#loco-editor .wg-split>div>.has-nav>.wg-body{margin-top:0px}#loco-editor .wg-dead{visibility:hidden}@media all and (max-width: 768px){#loco-editor .wg-split-x>div>.not-first>*{margin-left:20px}#loco-editor .wg-split-y>div>.not-first>*{margin-top:20px}#loco-editor .wg-split-x>div>.not-first:before{width:20px}#loco-editor .wg-split-y>div>.not-first:before{height:20px}#loco-editor .is-table .wg-thead header{padding-left:20px}}#loco-editor .is-table .po-fuzzy{color:#b59829;font-weight:bold}#loco-editor .is-table .po-empty{color:#1f507a;font-weight:bold}#loco-editor .is-table .po-flagged{color:#bd2c00}#loco-editor .is-table .wg-cols>div:first-child>div:before{font-family:loco;vertical-align:inherit;display:inline-block;content:" ";width:1.3em;line-height:1}#loco-editor .is-table .wg-cols>div:first-child>div.po-flagged:before{content:""}#loco-editor .is-table .wg-cols>div:first-child>div.po-flag-2:before{content:""}#loco-editor .is-table .wg-cols>div:first-child>div.po-flag-3:before{content:""}#loco-editor .is-table .wg-cols>div:first-child>div.po-fuzzy:before,#loco-editor .is-table .wg-cols>div:first-child>div.po-flag-4:before{content:""}#loco-editor .is-table .wg-cols>div:first-child>div.po-flag-5:before{content:""}#loco-editor .is-table .wg-cols>div:first-child>div.po-flag-6:before{content:""}#loco-editor .is-table .wg-cols>div:first-child>div.po-comment:before{content:"\e613";color:#999}#loco-editor .is-table .wg-cols>div:first-child>div.po-unsaved:before{content:"\e612";color:#f1d040}#loco-editor .is-table .wg-cols>div:first-child>div.selected:before{color:#fff !important}#loco-editor .is-table .wg-cols>div>div.selected.po-flagged{background-color:#bd2c00}#loco-editor .is-table .wg-cols>div>div.selected.po-fuzzy{background-color:#b59829}#loco-editor .is-table .wg-cols>div>div.selected.po-empty{background-color:#999}#loco-editor #po-list .wg-content{padding:0}#loco-editor #po-source>.wg-body>.has-title>header{background:transparent;font-weight:normal;float:left;clear:none;min-width:3.4em}#loco-editor #po-source>.wg-body>.has-title>.wg-content{clear:none}#loco-editor .wg-cell>p.notes,#loco-editor .wg-cell>p.errors{font-size:13px;margin:0;padding:5px 10px;cursor:default !important}#loco-editor .wg-cell>p.notes{color:#333}#loco-editor .wg-cell>p.errors{color:#cc0000}#loco-editor .has-title>header{font-weight:bold;line-height:1.2em;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:4px 6px}#loco-editor .has-title>header .lang{margin-right:6px;margin-bottom:1px}#loco-editor #po-source>.wg-body>.has-title>h2{min-width:4.5em}#loco-editor .is-table .wg-td{font-size:13px}#loco-editor-inner{min-height:600px;font-size:14px;clear:both}#loco-editor-inner>div.loco-loading{height:100px;background:transparent url(../img/spin-editor-button.gif?v=2.0.16) center 20px no-repeat}#loco-editor-inner h2{color:#000;line-height:1}#loco.wrap #loco-toolbar{font-size:14px;height:50px}#loco.wrap #loco-toolbar form{display:block;float:left;clear:none;padding:0;margin:0}#loco.wrap #loco-toolbar form.aux{float:right;margin-right:5px}#loco.wrap #loco-toolbar fieldset{display:block;position:relative;float:left;clear:none}#loco.wrap #loco-toolbar button,#loco.wrap #loco-toolbar input[type="text"]{display:block;position:relative;float:left;clear:none;margin:5px 0 0 5px;height:36px;text-align:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#loco.wrap #loco-toolbar input[type="text"]{padding:0 10px;font-size:14px;line-height:normal}#loco.wrap #loco-toolbar .invalid input[type="text"]:focus{border-color:#cc0000;-webkit-box-shadow:0 0 2px rgba(153,0,0,0.5);-moz-box-shadow:0 0 2px rgba(153,0,0,0.5);box-shadow:0 0 2px rgba(153,0,0,0.5)}#loco.wrap #loco-toolbar .loco-clearable{padding:0 20px}#loco.wrap #loco-toolbar .loco-clearable.invalid a.clear:before{color:#cc0000}#loco.wrap #loco-toolbar .loco-clearable a.clear{right:25px;line-height:2}#loco.wrap #loco-toolbar .loco-clearable a.clear:focus{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}#loco.wrap #loco-toolbar .loco-clearable a.clear:hover:before{color:#cc0000}#loco.wrap #loco-toolbar .loco-clearable a.clear:active:before{color:#000}#loco.wrap #loco-toolbar button{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}#loco.wrap #loco-toolbar button.has-icon:before{width:16px;padding:0}#loco.wrap #loco-toolbar button.has-icon.loco-loading:before{content:" ";height:16px;background:transparent url(../img/spin-editor-button.gif?v=2.0.16) 0 0 no-repeat}#loco.wrap #loco-toolbar button.only-icon{width:40px}
1
+ #loco-editor{border:solid 1px #ccc}#loco-editor ._ajax_loader_f2{background:transparent url(../img/ajax-loader-f2.gif?v=2.0.17) 0 0 no-repeat;min-height:16px}#loco-editor ._ajax_loader_f2x4{background:transparent url(../img/ajax-loader-f2-x4.gif?v=2.0.17) 0 0 no-repeat;min-height:75px}@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2 / 1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx){#loco-editor ._ajax_loader_f2{background-image:url(../img/ajax-loader-f2-x2.gif?v=2.0.17);background-size:16px}}#loco-editor ._green_glow_inner,#loco-editor .is-editable>.wg-content>textarea:focus,#loco-editor .is-editable>.wg-content.has-focus .ace_scroller,#loco-editor .is-editable>.wg-content.has-focus .wysihtml-editor,#loco-editor .is-editable>.wg-content.has-focus .mce-content-body{-webkit-box-shadow:inset 0 0 10px 0 #3db63d;-moz-box-shadow:inset 0 0 10px 0 #3db63d;box-shadow:inset 0 0 10px 0 #3db63d}#loco-editor ._green_glow_outer{-webkit-box-shadow:0 0 0.5em 0 #3db63d;-moz-box-shadow:0 0 0.5em 0 #3db63d;box-shadow:0 0 0.5em 0 #3db63d}#loco-editor .loco-font,#loco-editor .is-table .wg-thead .wg-sortable>header:after{font-family:'loco';speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#loco-editor div.ta-mirror{position:absolute;top:0;border:solid 1px transparent;color:transparent;padding:0.4em 0.6em;pointer-events:none}#loco-editor div.ta-mirror span{position:relative}#loco-editor div.ta-mirror span:after{color:#ccc;white-space:pre;display:inline-block;position:absolute;top:0;line-height:normal}#loco-editor div.ta-mirror .crlf:after{content:"\00AC"}#loco-editor div.ta-mirror .eof:after{content:"\00B6"}#loco-editor div.ta-mirror .x20:after{content:"\00B7";color:#aaa}#loco-editor div.ta-mirror .x9:after{content:"\27F6"}#loco-editor div.ta-mirror,#loco-editor .has-mirror textarea{white-space:pre-wrap;word-wrap:break-word;word-spacing:0px}#loco-editor .has-mirror ::-webkit-input-placeholder{color:transparent}#loco-editor .has-mirror :-moz-placeholder{color:transparent;opacity:1}#loco-editor .has-mirror ::-moz-placeholder{color:transparent;opacity:1}#loco-editor .has-mirror :-ms-input-placeholder{color:transparent}#loco-editor .has-mirror .ielt10 .placeheld{color:transparent}#loco-editor div.ta-mirror{left:0;text-align:left}#loco-editor div.ta-mirror span:after{left:0}#loco-editor div.ta-mirror .eol:after{padding-left:0.2em}#loco-editor [dir="RTL"] div.ta-mirror{left:auto;right:0;text-align:right}#loco-editor [dir="RTL"] div.ta-mirror span:after{right:0}#loco-editor [dir="RTL"] div.ta-mirror .eol:after{padding-left:0;padding-right:0.2em}#loco-editor .has-proxy>textarea{display:none !important}#loco-editor .has-proxy .ace_editor{height:100%;font-size:13px !important;line-height:1.4 !important}#loco-editor .has-proxy .ace_editor .ace_marker-layer .ace_bracket{display:none}#loco-editor .has-proxy .ace_print-margin{display:none}#loco-editor .ace_printf{color:#b90690;background-color:#edf1be}#loco-editor .ace_locked{color:#808080}#loco-editor .resizer{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0 0 6px 0;background:#f0f0f0 url(../img/wg/splity.png?v=2.0.17) center bottom no-repeat;border:1px solid #ddd;overflow:hidden;cursor:move;cursor:row-resize;cursor:s-resize}#loco-editor .resizer>*{height:100%;border:none}#loco-editor ._ajax_loader_f2{background:transparent url(../img/ajax-loader-f2.gif?v=2.0.17) 0 0 no-repeat;min-height:16px}#loco-editor ._ajax_loader_f2x4{background:transparent url(../img/ajax-loader-f2-x4.gif?v=2.0.17) 0 0 no-repeat;min-height:75px}@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2 / 1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx){#loco-editor ._ajax_loader_f2{background-image:url(../img/ajax-loader-f2-x2.gif?v=2.0.17);background-size:16px}}#loco-editor ._green_glow_inner,#loco-editor .is-editable>.wg-content>textarea:focus,#loco-editor .is-editable>.wg-content.has-focus .ace_scroller,#loco-editor .is-editable>.wg-content.has-focus .wysihtml-editor,#loco-editor .is-editable>.wg-content.has-focus .mce-content-body{-webkit-box-shadow:inset 0 0 10px 0 #3db63d;-moz-box-shadow:inset 0 0 10px 0 #3db63d;box-shadow:inset 0 0 10px 0 #3db63d}#loco-editor ._green_glow_outer{-webkit-box-shadow:0 0 0.5em 0 #3db63d;-moz-box-shadow:0 0 0.5em 0 #3db63d;box-shadow:0 0 0.5em 0 #3db63d}#loco-editor .loco-font,#loco-editor .is-table .wg-thead .wg-sortable>header:after{font-family:'loco';speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#loco-editor .wg-cell,#loco-editor .wg-cell>div{clear:both;position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#loco-editor .wg-cell{left:0;top:0;padding:0;margin:0;overflow:hidden}#loco-editor .wg-split{background:#eee}#loco-editor .wg-body:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}#loco-editor .wg-split-x>div>.not-first>*{margin-left:6px}#loco-editor .wg-split-y>div>.not-first>*{margin-top:6px}#loco-editor .wg-split>div>.has-title .wg-content{margin-top:0}#loco-editor .wg-split-x>div>.wg-cell{float:left;clear:none;height:100%}#loco-editor .wg-split-x>div{cursor:move;cursor:ew-resize;cursor:col-resize}#loco-editor .wg-split>div>.not-first:before{display:block;position:absolute;overflow:hidden;content:" "}#loco-editor .wg-split-x>div>.not-first:before{width:6px;height:100%;background:transparent url(../img/wg/splitx.png?v=2.0.17) center center no-repeat}#loco-editor .wg-split-y>div{cursor:move;cursor:ns-resize;cursor:row-resize}#loco-editor .wg-split-y>div>.not-first:before{height:6px;width:100%;background:transparent url(../img/wg/splity.png?v=2.0.17) center center no-repeat}#loco-editor .wg-split>div.locked{cursor:default}#loco-editor .wg-split-x>div.locked>.not-first>*{margin-left:1px}#loco-editor .wg-split-y>div.locked>.not-first>*{margin-top:1px}#loco-editor .wg-split>div.locked>.not-first:before{display:none}#loco-editor .has-title>header{background:#e2e2e2;cursor:default !important;margin:0;white-space:nowrap}#loco-editor .wg-content{background:#fff;cursor:default;padding:4px 6px;overflow:hidden;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#loco-editor .wg-toolbar{top:0;right:0;margin-top:6px;position:absolute}#loco-editor .wg-toolbar>span{color:#fff;background:#000;display:block;padding:0 6px;cursor:default !important}#loco-editor .wg-toolbar>span:active{color:#000;background-color:#fff}#loco-editor .wg-content,#loco-editor .wg-tbody>div{overflow:scroll;overflow-x:hidden;overflow-y:auto}#loco-editor .is-table{background-color:#fff}#loco-editor .is-table .wg-thead .has-title>header{font-weight:normal;background:transparent;padding:4px 0;margin:0 0 0 10px}#loco-editor .is-table .wg-thead>div>.not-first:before{background-position:center center}#loco-editor .is-table .wg-thead{background:#e2e2e2;border-bottom:solid 1px #ccc}#loco-editor .is-table .wg-tbody{background-image:url(data:image/gif;base64,R0lGODlhAQAsAIABAPz8/P///yH5BAEAAAEALAAAAAABACwAAAIIjI+pAe0PIygAOw==);position:relative}#loco-editor .is-table .wg-cols{outline:none}#loco-editor .is-table .wg-cols>div{float:left;clear:none}#loco-editor .is-table .wg-cols>div>div{white-space:nowrap;line-height:1.7em;padding-left:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis;-ms-text-overflow:ellipsis;background-color:#fff}#loco-editor .is-table .wg-cols>div>div:nth-child(even){background-color:#f7f7f7}#loco-editor .is-table .wg-cols>div>div.selected{background-color:#3db63d;color:#fff}#loco-editor .is-table .wg-cols>div:first-child>div{padding-left:4px}#loco-editor .is-table .wg-dead{clear:both}#loco-editor .is-table .wg-thead .wg-sortable>header{cursor:pointer !important}#loco-editor .is-table .wg-thead .wg-sortable>header:after{padding:0 0 0 5px;color:#999}#loco-editor .is-table .wg-thead .wg-sortable.wg-asc>header:after{content:"\25b2"}#loco-editor .is-table .wg-thead .wg-sortable.wg-desc>header:after{content:"\25bc"}#loco-editor .is-table .wg-thead .wg-sortable:hover>header:after{color:#000}#loco-editor .is-field>.wg-content{cursor:text;outline:none;padding:0;line-height:normal;overflow:hidden;overflow-y:hidden}#loco-editor .is-field>.wg-content>div,#loco-editor .is-field>.wg-content>textarea{font-size:14px;line-height:1.4;border:1px solid #ddd;width:100%;height:100%;padding:8px 10px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#loco-editor .is-field>.wg-content textarea{resize:none;overflow:auto;display:block}#loco-editor .is-field>.wg-content>.ace_editor{padding:0;border-width:0}#loco-editor .is-field>.wg-content>div[contenteditable]{overflow:scroll;overflow-x:hidden;overflow-y:auto}#loco-editor .is-readonly>.wg-content{cursor:default}#loco-editor .is-readonly>.wg-content>div,#loco-editor .is-readonly>.wg-content>textarea,#loco-editor .is-readonly>.wg-content>textarea[readonly]{background:#f8f8f8;text-shadow:0 1px #fff;color:inherit}#loco-editor .is-readonly>.wg-content .ace_scroller{cursor:default;background:#f8f8f8}#loco-editor .is-readonly>.wg-content .ace_cursor-layer{display:none}#loco-editor .is-editable>.wg-content[dir="RTL"] .ace_editor .ace_line{direction:ltr;unicode-bidi:bidi-override}#loco-editor .wg-split-x>nav.wg-tabs{white-space:nowrap;text-align:center;cursor:default}#loco-editor .wg-split-x>nav.wg-tabs>a{display:inline-block;padding:0.5em 1em;margin-top:0.2em;color:#000;text-decoration:none;-webkit-border-radius:0.2em 0.2em 0 0;-moz-border-radius:0.2em 0.2em 0 0;-ms-border-radius:0.2em 0.2em 0 0;-o-border-radius:0.2em 0.2em 0 0;border-radius:0.2em 0.2em 0 0;background-color:#f3f7fd}#loco-editor .wg-split-x>nav.wg-tabs>a:hover{background-color:#fff}#loco-editor .wg-split-x>nav.wg-tabs>a.active{background-color:#3db63d;color:#fff}#loco-editor .wg-split>div>.has-nav>.wg-body{margin-top:0px}#loco-editor .wg-dead{visibility:hidden}@media all and (max-width: 768px){#loco-editor .wg-split-x>div>.not-first>*{margin-left:20px}#loco-editor .wg-split-y>div>.not-first>*{margin-top:20px}#loco-editor .wg-split-x>div>.not-first:before{width:20px}#loco-editor .wg-split-y>div>.not-first:before{height:20px}#loco-editor .is-table .wg-thead header{padding-left:20px}}#loco-editor .is-table .po-fuzzy{color:#b59829;font-weight:bold}#loco-editor .is-table .po-empty{color:#1f507a;font-weight:bold}#loco-editor .is-table .po-flagged{color:#bd2c00}#loco-editor .is-table .wg-cols>div:first-child>div:before{font-family:loco;vertical-align:inherit;display:inline-block;content:" ";width:1.3em;line-height:1}#loco-editor .is-table .wg-cols>div:first-child>div.po-flagged:before{content:""}#loco-editor .is-table .wg-cols>div:first-child>div.po-flag-2:before{content:""}#loco-editor .is-table .wg-cols>div:first-child>div.po-flag-3:before{content:""}#loco-editor .is-table .wg-cols>div:first-child>div.po-fuzzy:before,#loco-editor .is-table .wg-cols>div:first-child>div.po-flag-4:before{content:""}#loco-editor .is-table .wg-cols>div:first-child>div.po-flag-5:before{content:""}#loco-editor .is-table .wg-cols>div:first-child>div.po-flag-6:before{content:""}#loco-editor .is-table .wg-cols>div:first-child>div.po-comment:before{content:"\e613";color:#999}#loco-editor .is-table .wg-cols>div:first-child>div.po-unsaved:before{content:"\e612";color:#f1d040}#loco-editor .is-table .wg-cols>div:first-child>div.selected:before{color:#fff !important}#loco-editor .is-table .wg-cols>div>div.selected.po-flagged{background-color:#bd2c00}#loco-editor .is-table .wg-cols>div>div.selected.po-fuzzy{background-color:#b59829}#loco-editor .is-table .wg-cols>div>div.selected.po-empty{background-color:#999}#loco-editor #po-list .wg-content{padding:0}#loco-editor #po-source>.wg-body>.has-title>header{background:transparent;font-weight:normal;float:left;clear:none;min-width:3.4em}#loco-editor #po-source>.wg-body>.has-title>.wg-content{clear:none}#loco-editor .wg-cell>p.notes,#loco-editor .wg-cell>p.errors{font-size:13px;margin:0;padding:5px 10px;cursor:default !important}#loco-editor .wg-cell>p.notes{color:#333}#loco-editor .wg-cell>p.errors{color:#cc0000}#loco-editor .has-title>header{font-weight:bold;line-height:1.2em;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:4px 6px}#loco-editor .has-title>header .lang{margin-right:6px;margin-bottom:1px}#loco-editor #po-source>.wg-body>.has-title>h2{min-width:4.5em}#loco-editor .is-table .wg-td{font-size:13px}#loco-editor-inner{min-height:600px;font-size:14px;clear:both}#loco-editor-inner>div.loco-loading{height:100px;background:transparent url(../img/spin-editor-button.gif?v=2.0.17) center 20px no-repeat}#loco-editor-inner h2{color:#000;line-height:1}#loco.wrap #loco-toolbar{font-size:14px;height:50px}#loco.wrap #loco-toolbar form{display:block;float:left;clear:none;padding:0;margin:0}#loco.wrap #loco-toolbar form.aux{float:right;margin-right:5px}#loco.wrap #loco-toolbar fieldset{display:block;position:relative;float:left;clear:none}#loco.wrap #loco-toolbar button,#loco.wrap #loco-toolbar input[type="text"]{display:block;position:relative;float:left;clear:none;margin:5px 0 0 5px;height:36px;text-align:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#loco.wrap #loco-toolbar input[type="text"]{padding:0 10px;font-size:14px;line-height:normal}#loco.wrap #loco-toolbar .invalid input[type="text"]:focus{border-color:#cc0000;-webkit-box-shadow:0 0 2px rgba(153,0,0,0.5);-moz-box-shadow:0 0 2px rgba(153,0,0,0.5);box-shadow:0 0 2px rgba(153,0,0,0.5)}#loco.wrap #loco-toolbar .loco-clearable{padding:0 20px}#loco.wrap #loco-toolbar .loco-clearable.invalid a.clear:before{color:#cc0000}#loco.wrap #loco-toolbar .loco-clearable a.clear{right:25px;line-height:2}#loco.wrap #loco-toolbar .loco-clearable a.clear:focus{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}#loco.wrap #loco-toolbar .loco-clearable a.clear:hover:before{color:#cc0000}#loco.wrap #loco-toolbar .loco-clearable a.clear:active:before{color:#000}#loco.wrap #loco-toolbar button{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}#loco.wrap #loco-toolbar button.has-icon:before{width:16px;padding:0}#loco.wrap #loco-toolbar button.has-icon.loco-loading:before{content:" ";height:16px;background:transparent url(../img/spin-editor-button.gif?v=2.0.17) 0 0 no-repeat}#loco.wrap #loco-toolbar button.only-icon{width:40px}
pub/css/poinit.css CHANGED
@@ -1 +1 @@
1
- form#loco-poinit .loco-locales fieldset{float:left;margin-right:2em}form#loco-poinit .loco-locales fieldset.disabled span.lang{visibility:hidden !important}form#loco-poinit .loco-locales fieldset span.nolang{background:#999}form#loco-poinit .loco-locales fieldset>label span{width:20px;text-align:center;display:inline-block;margin-right:4px}form#loco-poinit .loco-paths label>span{width:20px;display:inline-block}
1
+ form#loco-poinit .loco-locales fieldset{float:left;margin-right:2em}form#loco-poinit .loco-locales fieldset.disabled span.lang{visibility:hidden !important}form#loco-poinit .loco-locales fieldset span.nolang{background:#999}form#loco-poinit .loco-locales fieldset>label span{width:20px;text-align:center;display:inline-block;margin-right:4px}form#loco-poinit a.icon-help{color:#999;font-style:normal;text-decoration:none}form#loco-poinit a.icon-help:hover{color:#666}form#loco-poinit .form-table th{padding:15px 10px}form#loco-poinit .form-table tr:first-child td,form#loco-poinit .form-table tr:first-child th{padding-top:25px}
pub/css/poview.css CHANGED
@@ -1 +1 @@
1
- #loco.wrap #loco-po{padding-right:0;overflow:auto}#loco.wrap #loco-po.loco-loading{min-height:100px;background:#fff url(../img/spin-modal.gif?v=2.0.16) center center no-repeat}#loco.wrap #loco-po.loco-loading ol.msgcat{display:none}#loco.wrap ol.msgcat{margin-left:3em;padding-top:1em;border-top:1px dashed #ccc}#loco.wrap ol.msgcat:first-child{padding-top:0;border-top:none}#loco.wrap ol.msgcat li{color:#aaa;margin:0;padding:0 0 0 1em;font:normal 12px/16px 'Monaco','Menlo','Ubuntu Mono','Consolas','source-code-pro',monospace;border-left:1px solid #EEE}#loco.wrap ol.msgcat li>*{color:#333;white-space:pre}#loco.wrap ol.msgcat li>.po-comment{color:#3CC200}#loco.wrap ol.msgcat li>.po-refs{color:#0073aa}#loco.wrap ol.msgcat li>.po-refs a{color:inherit;text-decoration:none}#loco.wrap ol.msgcat li>.po-refs a:hover{text-decoration:underline}#loco.wrap ol.msgcat li>.po-flags{color:#77904a}#loco.wrap ol.msgcat li>.po-flags em{font-style:normal}#loco.wrap ol.msgcat li>.po-word{color:#000}#loco.wrap ol.msgcat li>.po-junk{font-style:italic;color:#CCC}#loco.wrap ol.msgcat li>.po-string>span{color:#C931C7}#loco.wrap form.loco-filter{top:0;right:0;position:absolute}#loco.wrap .loco-invalid form.loco-filter input[type="text"]:focus{border-color:#cc0000;-webkit-box-shadow:0 0 2px rgba(153,0,0,0.5);-moz-box-shadow:0 0 2px rgba(153,0,0,0.5);box-shadow:0 0 2px rgba(153,0,0,0.5)}#loco.wrap .loco-invalid ol.msgcat{list-style-type:none}#loco.wrap .loco-invalid ol.msgcat li{color:#000}.loco-modal{min-width:90% !important;min-height:100px}#loco-po-ref ol li{color:#aaa;margin:0;white-space:pre;padding:0 0 0 1em;font:normal 12px/17px Consolas,Monaco,monospace;background:transparent;border-left:1px solid #EEE}#loco-po-ref ol li code{margin:0;padding:0;display:inline;background:inherit}#loco-po-ref ol li.highlighted{color:#666;background-color:#f8eec7}#loco-po-ref ol li.highlighted code.T_CONSTANT_ENCAPSED_STRING{color:#C931C7}
1
+ #loco.wrap #loco-po{padding-right:0;overflow:auto}#loco.wrap #loco-po.loco-loading{min-height:100px;background:#fff url(../img/spin-modal.gif?v=2.0.17) center center no-repeat}#loco.wrap #loco-po.loco-loading ol.msgcat{display:none}#loco.wrap ol.msgcat{margin-left:3em;padding-top:1em;border-top:1px dashed #ccc}#loco.wrap ol.msgcat:first-child{padding-top:0;border-top:none}#loco.wrap ol.msgcat li{color:#aaa;margin:0;padding:0 0 0 1em;font:normal 12px/16px 'Monaco','Menlo','Ubuntu Mono','Consolas','source-code-pro',monospace;border-left:1px solid #EEE}#loco.wrap ol.msgcat li>*{color:#333;white-space:pre}#loco.wrap ol.msgcat li>.po-comment{color:#3CC200}#loco.wrap ol.msgcat li>.po-refs{color:#0073aa}#loco.wrap ol.msgcat li>.po-refs a{color:inherit;text-decoration:none}#loco.wrap ol.msgcat li>.po-refs a:hover{text-decoration:underline}#loco.wrap ol.msgcat li>.po-flags{color:#77904a}#loco.wrap ol.msgcat li>.po-flags em{font-style:normal}#loco.wrap ol.msgcat li>.po-word{color:#000}#loco.wrap ol.msgcat li>.po-junk{font-style:italic;color:#CCC}#loco.wrap ol.msgcat li>.po-string>span{color:#C931C7}#loco.wrap form.loco-filter{top:0;right:0;position:absolute}#loco.wrap .loco-invalid form.loco-filter input[type="text"]:focus{border-color:#cc0000;-webkit-box-shadow:0 0 2px rgba(153,0,0,0.5);-moz-box-shadow:0 0 2px rgba(153,0,0,0.5);box-shadow:0 0 2px rgba(153,0,0,0.5)}#loco.wrap .loco-invalid ol.msgcat{list-style-type:none}#loco.wrap .loco-invalid ol.msgcat li{color:#000}.loco-modal{min-width:90% !important;min-height:100px}#loco-po-ref ol li{color:#aaa;margin:0;white-space:pre;padding:0 0 0 1em;font:normal 12px/17px Consolas,Monaco,monospace;background:transparent;border-left:1px solid #EEE}#loco-po-ref ol li code{margin:0;padding:0;display:inline;background:inherit}#loco-po-ref ol li.highlighted{color:#666;background-color:#f8eec7}#loco-po-ref ol li.highlighted code.T_CONSTANT_ENCAPSED_STRING{color:#C931C7}
pub/css/skins/blue.css CHANGED
@@ -1 +1 @@
1
- .wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(9,100,132,0.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#096484}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);-moz-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8)}form button.loco-loading.button-primary[disabled]:before{background:transparent url(../../img/skins/blue/spin-primary-button.gif?v=2.0.16) 0 0 no-repeat !important}
1
+ .wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(9,100,132,0.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#096484}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);-moz-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8)}form button.loco-loading.button-primary[disabled]:before{background:transparent url(../../img/skins/blue/spin-primary-button.gif?v=2.0.17) 0 0 no-repeat !important}
pub/css/skins/coffee.css CHANGED
@@ -1 +1 @@
1
- .wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(199,165,137,0.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#c7a589}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);-moz-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8)}form button.loco-loading.button-primary[disabled]:before{background:transparent url(../../img/skins/coffee/spin-primary-button.gif?v=2.0.16) 0 0 no-repeat !important}
1
+ .wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(199,165,137,0.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#c7a589}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);-moz-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8)}form button.loco-loading.button-primary[disabled]:before{background:transparent url(../../img/skins/coffee/spin-primary-button.gif?v=2.0.17) 0 0 no-repeat !important}
pub/css/skins/ectoplasm.css CHANGED
@@ -1 +1 @@
1
- .wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(163,183,69,0.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#a3b745}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);-moz-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8)}form button.loco-loading.button-primary[disabled]:before{background:transparent url(../../img/skins/ectoplasm/spin-primary-button.gif?v=2.0.16) 0 0 no-repeat !important}
1
+ .wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(163,183,69,0.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#a3b745}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);-moz-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8)}form button.loco-loading.button-primary[disabled]:before{background:transparent url(../../img/skins/ectoplasm/spin-primary-button.gif?v=2.0.17) 0 0 no-repeat !important}
pub/css/skins/light.css CHANGED
@@ -1 +1 @@
1
- .wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(136,136,136,0.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#888}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);-moz-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8)}form button.loco-loading.button-primary[disabled]:before{background:transparent url(../../img/skins/light/spin-primary-button.gif?v=2.0.16) 0 0 no-repeat !important}
1
+ .wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(136,136,136,0.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#888}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);-moz-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8)}form button.loco-loading.button-primary[disabled]:before{background:transparent url(../../img/skins/light/spin-primary-button.gif?v=2.0.17) 0 0 no-repeat !important}
pub/css/skins/midnight.css CHANGED
@@ -1 +1 @@
1
- .wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(225,77,67,0.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#e14d43}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);-moz-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8)}form button.loco-loading.button-primary[disabled]:before{background:transparent url(../../img/skins/midnight/spin-primary-button.gif?v=2.0.16) 0 0 no-repeat !important}
1
+ .wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(225,77,67,0.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#e14d43}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);-moz-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8)}form button.loco-loading.button-primary[disabled]:before{background:transparent url(../../img/skins/midnight/spin-primary-button.gif?v=2.0.17) 0 0 no-repeat !important}
pub/css/skins/ocean.css CHANGED
@@ -1 +1 @@
1
- .wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(158,186,160,0.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#9ebaa0}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);-moz-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8)}form button.loco-loading.button-primary[disabled]:before{background:transparent url(../../img/skins/ocean/spin-primary-button.gif?v=2.0.16) 0 0 no-repeat !important}
1
+ .wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(158,186,160,0.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#9ebaa0}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);-moz-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8)}form button.loco-loading.button-primary[disabled]:before{background:transparent url(../../img/skins/ocean/spin-primary-button.gif?v=2.0.17) 0 0 no-repeat !important}
pub/css/skins/sunrise.css CHANGED
@@ -1 +1 @@
1
- .wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(221,130,59,0.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#dd823b}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);-moz-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8)}form button.loco-loading.button-primary[disabled]:before{background:transparent url(../../img/skins/sunrise/spin-primary-button.gif?v=2.0.16) 0 0 no-repeat !important}
1
+ .wrap #loco-editor .is-table .wg-tr:nth-child(even){background-color:rgba(221,130,59,0.05)}.wrap #loco-editor .wg-split-x>nav.wg-tabs>a.active,.wrap #loco-editor .is-table .wg-cols>div>div.selected{background-color:#dd823b}.wrap #loco-editor .is-editable>.wg-content>textarea:focus,.wrap #loco-editor .is-editable>.wg-content.has-focus .ace_scroller,.wrap #loco-editor .is-editable>.wg-content.has-focus .mce-content-body{border-color:#5b9dd9;-webkit-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);-moz-box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8);box-shadow:inset 0 0 0.6em rgba(30,140,190,0.8)}form button.loco-loading.button-primary[disabled]:before{background:transparent url(../../img/skins/sunrise/spin-primary-button.gif?v=2.0.17) 0 0 no-repeat !important}
pub/js/min/admin.js CHANGED
@@ -111,109 +111,110 @@ String(-d.scrollTop)+"px";return!0}function c(){var b=f;b.textContent=d.value;b.
111
  String(e-2)+"px");c();b();return{kill:function(){h(d).off("input",c).off("scroll",b);g.removeChild(f);f=null;h(g).removeClass("has-mirror")}}};return d}({},p,z));k.register("$30",function(d,f,h){function m(a,c){for(var d=0,e=-1,l=c&&f[c],q=b[a]||[],h=q.length;++e<h;)callback=q[e],"function"===typeof callback&&(callback(l),d++);return d}var b={},c;d.load=function(a,c,d){function e(){u&&(clearTimeout(u),u=null);k&&(k.onreadystatechange=null,k=k=k.onload=null);a&&(delete b[a],a=null)}function l(b,c){var g=
112
  k&&k.readyState;if(c||!g||"loaded"===g||"complete"===g)c||m(a,d),e()}function q(){if(0===m(a))throw Error('Failed to load "'+(d||a)+'"');e()}if(d&&f[d])"function"===typeof c&&c(f[d]);else if(null!=b[a])b[a].push(c);else{b[a]=[c];var u=setTimeout(q,4E3),k=h.createElement("script");k.setAttribute("src",a);k.setAttribute("async","true");k.onreadystatechange=l;k.onload=l;k.onerror=q;k.onabort=e;h.getElementsByTagName("head")[0].appendChild(k)}};d.stat=function(a){var b;if(!(b=c)){for(var d,e,f=h.getElementsByTagName("script"),
113
  q=-1,m=f.length;++q<m;)if(b=f[q].getAttribute("src"))if(d=b.indexOf("/lib/vendor"),-1!==d){e=b.substr(0,d);break}b=c=e||"/static"}return b+a};return d}({},p,z));k.register("$15",function(d,f,p){function m(a,b){a.setReadOnly(!1);a.on("change",function(a,c){return b.val(c.getValue())});a.on("focus",function(a,c){return b.focus()});a.on("blur",function(a,c){return b.blur()})}function b(a){a.off("change");a.off("focus");a.off("blur")}function c(a){b(a);a.setReadOnly(!0);a.setHighlightGutterLine(!1);a.setHighlightActiveLine(!1)}
114
- function a(a,b){function c(){this.HighlightRules=e}var e=g(b),d=a.require,f=d("ace/lib/oop");f.inherits(e,d("ace/mode/text_highlight_rules").TextHighlightRules);f.inherits(c,d("ace/mode/text").Mode);return new c}function g(a){var b=n(a);return function(){var c=[{token:"empty_line",regex:"^$"},{token:"constant.language",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}];b&&c.push({token:"printf printf-"+a,regex:b});c.push({defaultToken:"text"});this.$rules={start:c}}}function n(a){switch(a){case "objc":return"%(?:\\d+\\$)?[-+'0# ]*\\d*(?:\\.\\d+|\\.\\*(?:\\d+\\$)?)?(?:hh?|ll?|[qjzTL])?[sScCdDioOuUxXfFeEgGaAp%@]";
115
- case "java":return"%(?:\\d+\\$)?[-+,(0# ]*\\d*(?:\\.\\d+)?(?:[bBhHsScCdoxXeEfgGaA%n]|[tT][A-DFH-IL-NQ-TY-Za-ehj-mpr-sz])";case "php":return"%(?:\\d+\\$)?(?:'.|[-+0 ])*\\d*(?:\\.\\d+)?[suxXbcdeEfFgGo%]";case "auto":return"%(?:\\d+\\$)?(?:[-+0]?\\d*(\\.\\d+)?[duxoefgaDUXOEFGA]|[@scSC%])";case l:return e||"%%"}}var e,l="auto";d.init=function(e,d,g){var n,s=!1,y=g||l,r=e.parentNode,E=r.appendChild(p.createElement("div"));h(r).addClass("has-proxy has-ace");k.require("$30","remote.js").load("https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.6/ace.js",
116
- function(b){if(E){if(!b)throw Error("Failed to load code editor");n=b.edit(E);var r=n.session,g=n.renderer;n.$blockScrolling=Infinity;n.setShowInvisibles(s);n.setWrapBehavioursEnabled(!1);n.setBehavioursEnabled(!1);n.setHighlightActiveLine(!1);r.setUseSoftTabs(!1);g.setShowGutter(!0);g.setPadding(10);g.setScrollMargin(8);r.setMode(a(b,y));n.setValue(e.value,-1);r.setUseWrapMode(!0);d?m(n,d):c(n)}},"ace");return{kill:function(){n&&(b(n),n.destroy(),n=null);E&&(r.removeChild(E),h(r).removeClass("has-proxy has-ace"),
117
- E=null);return this},disable:function(){n&&c(n);d=null;return this},enable:function(a){d=a;n&&m(n,a);return this},resize:function(){n&&n.resize();return this},val:function(a){n&&a!==n.getValue()&&n.setValue(a,-1);return this},invs:function(a){a=a||!1;s!==a&&(s=a,n&&n.setShowInvisibles(a));return this},strf:function(b){b=b||l;b!==y&&(y=b,n&&n.session.setMode(a(f.ace,b)));return this},focus:function(){return this}}};d.strf=function(a,b){l=a;e=b;return d};return d}({},p,z));k.register("$48",function(d,
118
- f,p){function m(a,b){function c(){return b.val(a.getContent())}a.on("input",c);a.on("change",c);a.on("focus",function(a){return b.focus()});a.on("blur",function(a){return b.blur()});a.setMode("design")}function b(a){a.off("input");a.off("change");a.off("focus");a.off("blur")}var c=0;d.load=function(a){var b=k.require("$30","remote.js");b.load(b.stat("/lib/tinymce.min.js"),a,"tinymce");return d};d.init=function(a,g){function f(a){e=a;g?m(a,g):(b(a),a.setMode("readonly"));h(k).removeClass("loading")}
119
- var e,l=!1,q=a.parentNode,u=q.parentNode,k=q.appendChild(p.createElement("div")),t=u.insertBefore(p.createElement("nav"),q);h(q).addClass("has-proxy has-mce");h(k).html(a.value).addClass("mce-content-body loading");t.id="_tb"+String(++c);d.load(function(a){if(!a)throw Error("Failed to load HTML editor");k&&a.init({inline:!0,target:k,hidden_input:!1,theme:"modern",skin:!1,plugins:"link",browser_spellcheck:!0,menubar:!1,fixed_toolbar_container:"#"+t.id,toolbar:"formatselect | bold italic link unlink | bullist numlist outdent indent",
120
- block_formats:"Paragraph=p;Heading 1=h1;Heading 2=h2;Heading 3=h4;Heading 4=h4;Heading 5=h5;Heading 6=h6;",forced_root_block:"p",relative_urls:!1,convert_urls:!1,remove_script_host:!1,document_base_url:"",allow_script_urls:!1,formats:{alignleft:{classes:"alignleft"},alignright:{selector:"p,h1,h2,h3,h4,span,strong,em,a",classes:"alignright"},aligncenter:{selector:"p,h1,h2,h3,h4,span,strong,em,a",classes:"aligncenter"},strikethrough:{inline:"del"}},fix_list_elements:!0,entities:"38,amp,60,lt,62,gt,160,nbsp",
121
- entity_encoding:"named",keep_styles:!1,init_instance_callback:f})});return{val:function(a){null==e?h(k).html(a):e.getContent()!==a&&e.setContent(a);return this},kill:function(){e&&(g&&g.val(e.getContent()),b(e),e.destroy(),e=null);k&&(q.removeChild(k),h(q).removeClass("has-proxy has-mce"),k=null);t&&(u.removeChild(t),t=null);return this},enable:function(a){g=a;e&&m(e,a);return this},disable:function(){if(e){var a=e;b(a);a.setMode("readonly")}g=null;return this},focus:function(){e&&g&&e.focus();return this},
122
- invs:function(a){a=a||!1;l!==a&&(l=a,h(q)[a?"addClass":"removeClass"]("show-invs"));return this}}};return d}({},p,z));k.register("$43",function(d,f,p){function m(a){function b(){m&&(k.off("input",d),m=!1)}function d(){var b=a.value;b!==s&&(k.trigger("changing",[b,s]),s=b)}function e(){d();m&&y!==s&&k.trigger("changed",[s])}function f(){c=a;y=s;m||(k.on("input",d),m=!0);k.trigger("editFocus");t.addClass("has-focus");return!0}function q(){c===a&&(c=null);k.trigger("editBlur");t.removeClass("has-focus");
123
- m&&(e(),b());return!0}var m=!1,k=h(a),t=h(a.parentNode),s=a.value,y;k.blur(q).focus(f);return{val:function(b){s!==b&&(a.value=b,k.triggerHandler("input"),s=b);return!0},kill:function(){b();k.off("blur",q).off("focus",f)},fire:function(){s=null;d()},ping:e,blur:q,focus:f}}function b(a){this.e=a}var c;d._new=function(a){return new b(a)};d.init=function(a){var c=new b(a);a.disabled?(a.removeAttribute("disabled"),c.disable()):a.readOnly?c.disable():c.enable();return c};TextAreaPrototype=b.prototype;TextAreaPrototype.destroy=
124
- function(){this.unlisten();this.e=null};TextAreaPrototype.reload=function(a,b){b?this.l||this.enable():this.l&&this.disable();return this.val(a||"")};TextAreaPrototype.val=function(a){var b=this.e;if(null==a)return b.value;var c=this.p||this.l;c?c.val(a):b.value!==a&&(b.value=a,h(b).triggerHandler("input"));return this};TextAreaPrototype.fire=function(){this.l&&this.l.fire();return this};TextAreaPrototype.ping=function(){this.l&&this.l.ping();return this};TextAreaPrototype.focus=function(){var a=
125
- this.p;a?a.focus():h(this.e).focus()};TextAreaPrototype.focused=function(){return c&&c===this.el};TextAreaPrototype.parent=function(){return this.e.parentNode};TextAreaPrototype.attr=function(a,b){var c=this.e;if(1===arguments.length)return c.getAttribute(a);null==b?c.removeAttribute(a):c.setAttribute(a,b);return this};TextAreaPrototype.editable=function(){return!!this.l};TextAreaPrototype.enable=function(){var a=this.p;this.e.removeAttribute("readonly");this.listen();a&&a.enable&&a.enable(this.l);
126
- return this};TextAreaPrototype.disable=function(){var a=this.p;this.e.setAttribute("readonly",!0);this.unlisten();a&&a.disable&&a.disable();return this};TextAreaPrototype.listen=function(){var a=this.l;a&&a.kill();this.l=m(this.e);return this};TextAreaPrototype.unlisten=function(){this.l&&this.l.kill();this.l=null;return this};TextAreaPrototype.setInvs=function(a,b){var c=this.i||!1;if(b||c!==a)this._i&&(this._i.kill(),delete this._i),(c=this.p)?c.invs&&c.invs(a):a&&(this._i=k.require("$47","mirror.js").init(this.e)),
127
- this.i=a;return this};TextAreaPrototype.getInvs=function(){return this.i||!1};TextAreaPrototype.setMode=function(a){var b=this.p;a!==(this.m||"")&&(this.m=a,b&&b.kill(),this.p=b="code"===a?k.require("$15","ace.js").init(this.e,this.l,this["%"]):"html"===a?k.require("$48","mce.js").init(this.e,this.l):null,this.setInvs(this.i,!0),c&&this.focus());return this};TextAreaPrototype.setStrf=function(a){this["%"]=a;"code"===this.m&&this.p.strf(a);return this};TextAreaPrototype.name=function(a){this.e.setAttribute("name",
128
- a);return this};TextAreaPrototype.placeholder=function(a){this.e.setAttribute("placeholder",a);return this};TextAreaPrototype.redraw=function(){var a=this.p;a&&a.resize&&a.resize()};TextAreaPrototype=null;return d}({},p,z));k.register("$44",function(d,f,k){function m(a){var b=f.console;b&&b.error&&b.error(a)}function b(a){var b=k.createElement("div");a&&b.setAttribute("class",a);return b}function c(a){return function(){a.resize();return this}}function a(a){return function(b){var c=b.target.$index;
129
- if(null==c)return!0;a.select(c);b.stopPropagation();b.preventDefault();return!1}}function g(a){return function(){a.redrawDirty()&&a.redraw();return!0}}function n(a){return function(b){var c;c=b.keyCode;if(40===c)c=1;else if(38===c)c=-1;else return!0;if(b.shiftKey||b.ctrlKey||b.metaKey||b.altKey)return!0;a.selectNext(c);b.stopPropagation();b.preventDefault();return!1}}function e(a,b,c){function e(a){m("row["+a+"] disappeared");return{cellVal:function(){return""}}}return function(d){var f=b||0,g=c?
130
- -1:1,v=a.rows||[];d.sort(function(a,b){return g*(v[a]||e(a)).cellVal(f).localeCompare((v[b]||e(b)).cellVal(f))})}}function l(a){this.w=a}function q(a){this.t=a;this.length=0}function u(a,b,c){var e=k.createElement("div");e.className=c||"";this._=e;this.d=b||[];this.i=a||0;this.length=b.length}function B(a){this.live=a;this.rows=[]}d.create=function(a){return new l(a)};var t=l.prototype;t.init=function(e){var d=this.w,r=d.id,f=d.splity(r+"-thead",r+"-tbody"),l=f[0],f=f[1],q=[],m=[],v=[],D=[];if(e)this.ds=
131
- e,this.idxs=m,this._idxs=null;else if(!(e=this.ds))throw Error("No datasource");l.css.push("wg-thead");f.css.push("wg-tbody");e.eachCol(function(a,b,c){v[a]=r+"-col-"+b;D[a]=c||b});for(var H=b(),k=-1,t=v.length,B=b("wg-cols"),p=l.splitx.apply(l,v);++k<t;)p[k].header(D[k]),B.appendChild(H.cloneNode(!1));e.eachRow(function(a,b,c){q[a]=new u(a,b,c);m[a]=a});this.rows=q;this.cols=B;this.ww=null;this.root=e=f.body;this.head=l;l.redraw=c(this);l=f.fixed=p[0].bodyY()||20;d.lock().resize(l,f);d.css.push("is-table");
132
- d.restyle();this.sc&&this._re_sort(t);this.redrawDirty();this.render();h(e).attr("tabindex","-1").on("keydown",n(this)).on("mousedown",a(this)).on("scroll",g(this));return this};t.clear=function(){for(var a=this.pages||[],b=a.length;0!==b--;)a[b].destroy();this.pages=[];this.sy=this.mx=this.mn=this.vh=null;void 0;return this};t.render=function(){for(var a,b,c=[],e=this.rows||[],d=-1,f,g=this.idxs,v=g.length,l=this.idxr={},h=this.r,q=this._r,n=this.root,m=this.cols;++d<v;){0===d%100&&(a=m.cloneNode(!0),
133
- b=new B(a),b.h=2200,b.insert(n),c.push(b));f=g[d];l[f]=d;a=e[f];if(null==a)throw Error("Render error, no data at ["+f+"]");a.page=b;b.rows.push(a)}b&&100!==b.size()&&b.sleepH(22);this.pages=c;this.mx=this.mn=null;this.redrawDirty();this.redraw();null==h?null!=q&&(a=e[q])&&a.page&&(delete this._r,this.select(q,!0)):(a=e[h])&&a.page?this.select(h,!0):(this.deselect(),this._r=h);return this};t.resize=function(){var a=-1,b=this.ww||(this.ww=[]),c=this.w,e=c.cells[0],d=e.body.childNodes,f=d.length,g=this.pages||
134
- [],v=g.length;for(c.redraw.call(e);++a<f;)b[a]=d[a].style.width;if(v){c=this.mx;for(a=this.mn;a<=c;a++)g[a].widths(b);this.redrawDirty()&&this.redraw()}};t.redrawDirty=function(){var a=!1,b=this.root,c=b.scrollTop,b=b.clientHeight;this.sy!==c&&(a=!0,this.sy=c);this.vh!==b&&(a=!0,this.vh=b);return a};t.redraw=function(){for(var a=0,b=-1,c=null,e=null,d=this.ww,f=this.sy,g=this.vh,v=this.mn,l=this.mx,h=Math.max(0,f-100),f=g+f+100,q=this.pages||[],n=q.length;++b<n&&!(a>f);)g=q[b],a+=g.height(),a<h||
135
- (null===c&&(c=b),e=b,g.rendered||g.render(d));if(v!==c){if(null!==v&&c>v)for(b=v;b<c;b++){g=q[b];if(!g)throw Error("Shit!");g.rendered&&g.sleep()}this.mn=c}if(l!==e){if(null!==l&&e<l)for(b=l;b>e;b--)g=q[b],g.rendered&&g.sleep();this.mx=e}};t.selected=function(){return this.r};t.thead=function(){return this.w.cells[0]};t.tbody=function(){return this.w.cells[1]};t.tr=function(a){return(a=this.rows[a])?a.cells():[]};t.td=function(a,b){return this.tr(a)[b]};t.next=function(a,b,c){null==c&&(c=this.r||
136
- 0);var e=this.idxs,d=e.length,f=(this.idxr||{})[c];for(c=f;c!==(f+=a)&&!(0<=f&&d>f);)if(b&&d)f=1===a?-1:d,b=!1;else return null;c=e[f];return null==c||null==this.rows[c]?(m("Bad next: ["+f+"] does not map to data row"),null):c};t.selectNext=function(a,b,c){a=this.next(a,b);null!=a&&this.r!==a&&this.select(a,c);return this};t.deselect=function(a){var b=this.r;null!=b&&(this.r=null,h(this.tr(b)).removeClass("selected"),this.w.fire("wgRowDeselect",[b,a]));return this};t.select=function(a,b){var c=this.rows[a],
137
- e=c&&c.page;if(!e)return this.deselect(!1),m("Row is filtered out"),this;this.deselect(!0);var d,f=this.w.cells[1];e.rendered||(d=e.top(),f.scrollY(d),this.redrawDirty()&&this.redraw());if(!c.rendered)return e.rendered||m("Failed to render page"),m("Row ["+c.i+"] not rendered"),this;e=c.cells();h(e).addClass("selected");this.r=a;b||(d=f.scrollY(),h(this.root).focus(),d!==f.scrollY()&&f.scrollY(d));f.scrollTo(e[0],!0);this.w.fire("wgRowSelect",[a,c.data()]);return this};t.unfilter=function(){this._idxs&&
138
- (this.idxs=this._sort(this._idxs),this._idxs=null,this.clear().render());return this};t.filter=function(a){this._idxs||(this._idxs=this.idxs);this.idxs=this._sort(a);return this.clear().render()};t.each=function(a){for(var b,c=-1,e=this.rows||[],d=this.idxs||[],f=d.length;++c<f;)b=d[c],a(e[b],c,b);return this};t.sortable=function(a){var b=this.sc||(this.sc=new q(this));b.has(a)||b.add(a);return this};t._re_sort=function(a){var b=-1,c=this.sc,e=c.active;for(this.sc=c=new q(this);++b<a;)c.add(b);e&&
139
- (b=this.head.indexOf(e.id),-1===b&&(b=Math.min(e.idx,a-1)),this.sort(b,e.desc));return this};t._sort=function(a,b){b?(this.s=b,b(a)):(b=this.s)&&b(a);return a};t.sort=function(a,b){this._sort(this.idxs,e(this,a,b));this.sc.activate(a,b);return this};t=null;t=q.prototype;t.has=function(a){return null!=this[a]};t.add=function(a){var b=this,c=b.t.head.cells[a];b[a]={desc:null,idx:a,id:c.id};b.length++;c.addClass("wg-sortable").on("click",function(c){if("header"===c.target.nodeName.toLowerCase())return c.stopImmediatePropagation(),
140
- b.toggle(a),!1});return b};t.toggle=function(a){this.t.sort(a,!this[a].desc).clear().render();return this};t.activate=function(a,b){var c,e;c=this.active;var d=this[a],f=this.t.head.cells;c&&(e=f[c.idx])&&(e.removeClass(c.css),c!==d&&e.restyle());(e=f[a])?(d.desc=b,this.active=d,c="wg-"+(b?"desc":"asc"),e.addClass(c).restyle(),d.css=c):this.active=null;return this};t=null;t=u.prototype;t.render=function(a){var b,c=[],e=this._,d=this.d,f=this.length;if(e){for(;0!==f--;)c[f]=b=e.cloneNode(!1),b.textContent=
141
- d[f]||"\u00a0",b.$index=this.i,a[f].appendChild(b);this._=null;this.c=c}else for(c=this.c;0!==f--;)a[f].appendChild(c[f]);this.rendered=!0;return this};t.cells=function(){return this.c||[]};t.data=function(){return this.d||[]};t.destroy=function(){this.page=null;this.rendered=!1};t.cellVal=function(a){return this.d[a]};t=null;t=B.prototype;t.size=function(){return this.rows.length};t.insert=function(a){var c=this.h,e=b("wg-dead");e.style.height=String(c)+"px";a.appendChild(e);return this.dead=e};
142
- t.top=function(){return(this.rendered?this.live:this.dead).offsetTop};t.height=function(){var a=this.h;null==a&&(this.h=a=this.rendered?this.live.firstChild.offsetHeight:this.dead.offsetHight);a||m("row has zero height");return a};t.render=function(a){for(var b,c=-1,e=this.rows,d=e.length,f=this.dead,g=this.live,v=g.childNodes;++c<d;)b=e[c],b.rendered||b.render(v);d=a.length;for(c=0;c<d;c++)v[c].style.width=a[c];f.parentNode.replaceChild(g,f);this.rendered=!0;this.h=null;return this};t.sleep=function(){var a=
143
- this.height(),b=this.live,c=this.dead;c.style.height=String(a)+"px";b.parentNode.replaceChild(c,b);this.rendered=!1;this.h=a;return this};t.sleepH=function(a){a*=this.rows.length;var b=this.dead;b&&(b.style.height=String(a)+"px");this.rendered||(this.h=a);return this};t.widths=function(a){for(var b=this.live.childNodes,c=a.length;0!==c--;)b[c].style.width=a[c];return this};t.destroy=function(){var a=this.rendered?this.live:this.dead,b=this.rows,c=b.length;for(a.parentNode.removeChild(a);0!==c--;)b[c].destroy()};
144
- t=null;return d}({},p,z));k.register("$37",function(d,f,p){function m(a,b){var c=a.id,e=c&&t[c],d=e&&e.parent();if(!e||!d)return null;var f=d.dir===B,c=f?"X":"Y",g="page"+c,f=f?u:q,l=f(d.el),c=b["offset"+c],h=d.el,n=h.className;null==c&&(c=b[g]-f(a));c&&(l+=c);h.className=n+" is-resizing";return{done:function(){h.className=n},move:function(a){d.resize(a[g]-l,e);return!0}}}function b(b,c){function e(){h(p).off("mousemove",d);y&&(y.done(),y=null);return!0}function d(a){y?y.move(a):e();return!0}if(y)return!0;
145
- y=m(b.target,b);if(!y)return!0;h(p).one("mouseup",e).on("mousemove",d);return a(b)}function c(a,b){var c=b.type;"touchmove"===c?y&&y.move(b):"touchstart"===c?y=m(a.target,b):"touchend"===c&&y&&(y.done(),y=null)}function a(a){a.stopPropagation();a.preventDefault();return!1}function g(a){var b=s;b&&b.redraw();a&&a.redraw();return s=a}function n(a,b){var c=h(b).on("editFocus",function(){c.trigger("wgFocus",[g(a)])}).on("editBlur",function(){c.trigger("wgBlur",[g(null)])})}function e(a){var b=a.id,c=
146
- a.className;this.id=b;this.el=a;this.pos=this.index=0;this.css=[c||"wg-root","wg-cell"];this._cn=c;t[b]=this;this.clear()}var l=k.require("$18","html.js"),q=l.top,u=l.left,B=1,t={},s,y=!1;d.init=function(a){var d=new e(a);d.redraw();k.require("$42","touch.js").ok(function(b){b.dragger(a,c)});h(a).mousedown(b);return d};f=e.prototype;f.fire=function(a,b){var c=h.Event(a);c.cell=this;h(this.el).trigger(c,b);return this};f.each=function(a){for(var b=-1,c=this.cells,e=c.length;++b<e;)a(c[b],b);return this};
147
- f.indexOf=function(a){return(a=t[a.id||String(a)])&&a.pid===this.id?a.index:-1};f.on=function(){return this.$("on",arguments)};f.off=function(){return this.$("off",arguments)};f.find=function(a){return h(this.el).find(a)};f.$=function(a,b){h.fn[a].apply(h(this.el),b);return this};f.addClass=function(a){this.css.push(a);return this};f.removeClass=function(a){a=this.css.indexOf(a);-1!==a&&this.css.splice(a,1);return this};f.parent=function(){return this.pid&&t[this.pid]};f.splitx=function(){return this._split(B,
148
- arguments)};f.splity=function(){return this._split(2,arguments)};f._split=function(a,b){(this.length||this.field)&&this.clear();for(var c=-1,d,f=b.length,g=1/f,h=0;++c<f;){d=l.el();this.body.appendChild(d);for(var q=d,n=b[c],m=n,k=1;t[n];)n=m+"-"+ ++k;q.id=n;d=new e(d);d.index=c;d.pid=this.id;d.pos=h;h+=g;this.cells.push(d);this.length++}this.dir=a;this.redraw();return this.cells};f.destroy=function(){this.clear();delete t[this.id];var a=this.el;a.innerHTML="";a.className=this._cn||"";h(a).off();
149
- return this};f.exists=function(){return this===t[this.id]};f.clear=function(){for(var a=this.el,b=this.cells,c=this.field,e=this.body,d=this.nav,f=this.length||0;0!==f--;)delete t[b[f].destroy().id];this.cells=[];this.length=0;d&&(a.removeChild(d),this.nav=null);e&&(c&&(l.ie()&&h(e).triggerHandler("blur"),c.destroy(),this.field=null),this.table&&(this.table=null),a.removeChild(e));this.body=a.appendChild(l.el("","wg-body"));this._h=null;return this};f.resize=function(a,b){if(!b&&(b=this.cells[1],
150
- !b))return;var c=b.index,e=this.cells;this.parent();var d=h(this.el)[this.dir===B?"width":"height"](),f=e[c+1],c=e[c-1];pad=(b.body||b.el.firstChild).offsetTop||0;max=(f?f.pos*d:d)-pad;min=c?c.pos*d:0;b.pos=Math.min(max,Math.max(min,a))/d;this.redraw();return this};f.distribute=function(a){for(var b=-1,c=0,e,d=this.cells,f=a.length;++b<f&&(e=d[++c]);)e.pos=Math.max(0,Math.min(1,a[b]));this.redraw();return this};f.distribution=function(){for(var a=[],b=0,c=this.cells,e=c.length-1;b<e;)a[b]=c[++b].pos;
151
- return a};f.restyle=function(){var a=this.css.concat();0===this.index?a.push("first"):a.push("not-first");this.dir&&(a.push("wg-split"),2===this.dir?a.push("wg-split-y"):a.push("wg-split-x"));this.t&&a.push("has-title");this.nav&&a.push("has-nav");this.field&&(a.push("is-field"),this.field.editable()?a.push("is-editable"):a.push("is-readonly"));a=a.join(" ");a!==this._css&&(this._css=a,this.el.className=a);return this};f.redraw=function(a){this.restyle();var b=this.el,c=this.body,e=this.field;if(c){var d,
152
- f=b.clientWidth||0,g=b.clientHeight||0,l=c.offsetTop||0,g=l>g?0:g-l;this._h!==g&&(this._h=g,c.style.height=String(g)+"px",d=e);this._w!==f&&(this._w=f,d=e);d&&d.redraw()}c=this.length;f=1;g=this.nav;for(l=2===this.dir?"height":"width";0!==c--;)e=this.cells[c],g?d=1:(e.fixed&&(e.pos=e.fixed/h(b)[l]()),d=f-e.pos,f=e.pos),e.el.style[l]=String(100*d)+"%",e.redraw(a);return this};f.contents=function(a,b){var c=this.el,e=this.body;if(null==a)return e.innerHTML;this.length?this.clear():e&&(c.removeChild(e),
153
- e=null);e||(this.body=e=c.appendChild(l.el("",b||"wg-content")),this._h=null,(c=this.lang)&&this._locale(c,this.rtl,!0));"string"===typeof a?h(e)._html(a):a&&this.append(a);this.redraw();return this};f.textarea=function(a,b){var c=this.field;if(c){var e=c.editable();c.reload(a,b);e!==b&&this.restyle()}else this.length&&this.clear(),e=l.el("textarea"),e.setAttribute("wrap","virtual"),e.value=a,this.contents(e),c=k.require("$43","field.js")._new(e)[b?"enable":"disable"](),n(this,e),this.field=c,this.restyle();
154
- this.lang||this.locale("en");return c};f.locale=function(a){a=k.require("$6","locale.js").cast(a);return this._locale(String(a),a.isRTL())};f._locale=function(a,b,c){var e=this.body;if(c||a!==this.lang)this.lang=a,e&&e.setAttribute("lang",a);if(c||b!==this.rtl)this.rtl=b,e&&e.setAttribute("dir",b?"RTL":"LTR");return this};f.editable=function(){var a=this.field;if(a)return a.editable()?a:null;var b=this.cells,c=b.length,e=this.navigated();if(null!=e)return b[e].editable();for(;++e<c;){for(e=0;e<c;c++);
155
- if(a=b[e].editable())return a}};f.eachTextarea=function(a){var b=this.field;b?a(b):this.each(function(b){b.eachTextarea(a)});return this};f.append=function(a){a&&(a.nodeType?l.init(this.body.appendChild(a)):l.init(h(a).appendTo(this.body)));return this};f.prepend=function(a){var b=this.body;if(a.nodeType){var c=b.firstChild;l.init(c?b.insertBefore(a,c):b.appendChild(a))}else l.init(h(a).prependTo(b));return this};f.before=function(a){var b=this.body;a.nodeType?l.init(this.el.insertBefore(a,b)):l.init(h(a).insertBefore(b));
156
- return this};f.header=function(a,b){if(null==a&&null==b)return this.el.getElementsByTagName("header")[0];this.t=l.txt(a||"");this.el.insertBefore(l.el("header",b),this.body).appendChild(this.t);this.redraw();return this};f.title=function(a){var b=this.t;if(b)return b.nodeValue=a||"",b;this.header(a);return this.t};f.titled=function(){var a=this.t;return a&&a.nodeValue};f.bodyY=function(){return q(this.body,this.el)};f.scrollY=function(a){if(R===a)return this.body.scrollTop;this.body.scrollTop=a};
157
- f.tabulate=function(a){var b=this.table;b?b.clear():b=k.require("$44","wgtable.js").create(this);b.init(a);return this.table=b};f.lock=function(){this.body.className+=" locked";return this};f.scrollTo=function(a,b){var c,e=this.body;c=e.scrollTop;var d=q(a,e);if(c>d)c=d;else{var f=e.clientHeight,d=d+h(a).outerHeight();if(f+c<d)c=d-f;else return}b?e.scrollTop=c:h(e).stop(!0).animate({scrollTop:c},250)};f.navigize=function(b,c){function e(a){var b=f[a],c=n[a],d=h(b.el).show();c.addClass("active");q=
158
- a;m.data("idx",a);b.fire("wgTabSelect",[a]);return d}var d=this,f=d.cells,g=d.nav,q,n=[];g&&d.el.removeChild(g);var g=d.nav=d.el.insertBefore(l.el("nav","wg-tabs"),d.body),m=h(g).on("click",function(b){var c=h(b.target).data("idx");if(null==c)return!0;if(null!=q){var g=n[q];h(f[q].el).hide();g.removeClass("active")}e(c);d.redraw();return a(b)});null==c&&(c=m.data("idx")||0);d.each(function(a,c){n[c]=h('<a href="#'+a.id+'"></a>').data("idx",c).text(b[c]).appendTo(m);a.pos=0;h(a.el).hide()});e(f[c]?
159
- c:0);d.lock();d.redraw();return d};f.navigated=function(){var a=this.nav;if(a)return h(a).data("idx")};f=null;return d}({},p,z));k.register("$26",function(d,f,h){function m(b){this.reIndex([]);if(b)for(var c in b)this.add(c,b[c])}d.init=function(b){return new m(b)};f=m.prototype;f.reIndex=function(b){for(var c={},a=-1,d=b.length;++a<d;)c[b[a]]=a;this.keys=b;this.length=a;this.ords=c};f.key=function(b,c){if(null==c)return this.keys[b];var a=this.keys[b],d=this.ords[c];if(c!==a){if(null!=d)throw Error("Clash with item at ["+
160
- d+"]");this.keys[b]=c;delete this.ords[a];this.ords[c]=b}return b};f.indexOf=function(b){b=this.ords[b];return null==b?-1:b};f.add=function(b,c){var a=this.ords[b];null==a&&(this.keys[this.length]=b,a=this.ords[b]=this.length++);this[a]=c;return a};f.get=function(b){return this[this.ords[b]]};f.has=function(b){return null!=this.ords[b]};f.del=function(b){this.cut(this.ords[b],1)};f.cut=function(b,c){c=c||1;var a=[].splice.call(this,b,c);this.keys.splice(b,c);this.reIndex(this.keys);return a};f.each=
161
- function(b){for(var c=-1,a=this.keys,d=this.length;++c<d;)b(a[c],this[c],c);return this};f.sort=function(b){for(var c=-1,a=this.length,d,f=this.keys,e=this.ords,l=[];++c<a;)l[c]=[this[c],f[c]];l.sort(function(a,c){return b(a[0],c[0])});for(c=0;c<a;c++)d=l[c],this[c]=d[0],d=d[1],f[c]=d,e[d]=c;return this};f.join=function(b){return[].join.call(this,b)};f=null;return d}({},p,z));k.register("$24",function(d,f,p){function m(a){var b=[];a&&(a.saved()||b.push("po-unsaved"),a.fuzzy()?b.push("po-fuzzy"):a.flagged()&&
162
- (b.push("po-flagged"),b.push("po-flag-"+a.flags().join(" po-flag-"))),a.translation()||b.push("po-empty"),a.comment()&&b.push("po-comment"));return b.join(" ")}function b(a,b,c){b=h(a.title(b).parentNode);var e=b.find("span.lang");c?(c=k.require("$6","locale.js").cast(c),e.length||(e=h("<span></span>").prependTo(b)),e.attr("lang",c.lang).attr("class",c.getIcon()||"lang region region-"+(c.region||"zz").toLowerCase())):(e.remove(),c="en");a.locale(c);return b}function c(){this.dirty=0}var a="poUpdate",
163
- g="changing",n="changed",e=0,l=1,q=2,u=3,B=4,t=5,s=/^\s+/,y,r,z=k.require("$3","string.js").sprintf,A=k.require("$18","html.js");d.extend=function(a){return a.prototype=new c};d.localise=function(a){r=a;return d};var C=function(){var a=p.createElement("p");return function(b){a.innerHTML=b;return a.textContent}}(),w=c.prototype=k.require("$36","abstract.js").init(["getListColumns","getListHeadings","getListEntry"],["editable","t"]);w.init=function(){this.localise();this.editable={source:!0,target:!0};
164
- this.mode="";this.html=!1;return this};w.localise=function(a){a||(a=r||k.require("$1","t.js").init());var b=[];b[e]=a._x("Source text","Editor")+":";b[u]=a._x("%s translation","Editor")+":";b[B]=a._x("Context","Editor")+":";b[t]=a._x("Comments","Editor")+":";b[l]=a._x("Single","Editor")+":";b[q]=a._x("Plural","Editor")+":";this.labels=b;this.t=a;return this};w.setRootCell=function(a){function b(a){c.redraw(!0,a);return!0}var c=k.require("$37","wingrid.js").init(a);h(f).on("resize",b);this.redraw=
165
- b;h(a).on("wgFocus wgBlur",function(a,b){a.stopPropagation();y=b});this.destroy=function(){c.destroy();h(f).off("resize",b)};this.rootDiv=a;return c};c.prototype.$=function(){return h(this.rootDiv)};w.on=function(a,b){return h(this.rootDiv).on(a,b)};w.setListCell=function(a){var b=this;b.listCell=a;a.on("wgRowSelect",function(a,c){b.loadMessage(b.po.row(c));return!0}).on("wgRowDeselect",function(a,c,e){e||b.loadNothing();return!0})};w.setSourceCell=function(a){this.sourceCell=a;a=a.find("p.notes");
166
- this.$notes=a.length?a:null};w.setTargetCell=function(a){this.targetCell=a;a=a.find("p.errors");this.$errs=a.length?a:null};w.next=function(a,b,c){for(var e=this.listTable,d=e.selected(),f=d,g,l=this.po;null!=(d=e.next(a,c,d));){if(f===d){d=null;break}if(b&&(g=l.row(d),g.translated(0)))continue;break}null!=d&&e.select(d,!0);return d};w.current=function(a){var b=this.active;if("undefined"===typeof a)return b;a?a.is(b)?this.reloadMessage(a):this.loadMessage(a):this.unloadActive();return this};w.getTargetEditable=
167
- function(){return this.editable.target&&this.targetCell&&this.targetCell.editable()};w.getSourceEditable=function(){return this.editable.source&&this.sourceCell&&this.sourceCell.editable()};w.getContextEditable=function(){return this.editable.context&&this.contextCell&&this.contextCell.editable()};w.getFirstEditable=function(){return this.getTargetEditable()||this.getSourceEditable()||this.getContextEditable()};w.searchable=function(a){a&&(this.dict=a,this.po&&this.rebuildSearch());return this.dict&&
168
- !0};w.rebuildSearch=function(){var a=-1,b=this.po.rows,c=b.length,e=this.dict;for(e.clear();++a<c;)e.add(a,b[a].toText())};w.filtered=function(){return this.lastSearch||""};w.filter=function(a,b){var c,e=this.listTable,d=this.lastFound,f=this.lastSearch;if(a){if(f===a)return d||0;if(f&&!d&&0===a.indexOf(f))return 0;c=this.dict.find(a)}this.lastSearch=f=a;this.lastFound=d=c?c.length:this.po.length;c?e.filter(c):e.unfilter();b||this.fire("poFilter",[f,d]);return d};w.countFiltered=function(){return this.lastSearch?
169
- this.lastFound:this.po.length};w.unsave=function(a,b){var c=!1;if(a=a||self.active){if(c=a.saved(b))this.dirty++,a.unsave(b),this.fire("poUnsaved",[a,b]);this.markUnsaved(a)}return c};w.markUnsaved=function(a){var b=this.po.indexOf(a);if(b=this.listTable.tr(b)){var c=b[0].className;changedStyle=c.replace(/(?:^| +)po-[a-z]+/g,"")+" "+m(a);changedStyle!==c&&h(b).attr("class",changedStyle)}};w.save=function(a){var b=this.po;if(this.dirty||a)b.each(function(a,b){b.save()}),this.listCell.find("div.po-unsaved").removeClass("po-unsaved"),
170
- this.dirty=0,this.fire("poSave");return b};w.fire=function(a,b){var c=this.on;if(c&&c[a]&&(c=c[a].apply(this,b||[]),!1===c))return!1;c=h.Event(a);h(this.rootDiv).trigger(c,b);return!c.isDefaultPrevented()};w.reload=function(){var a=this,b,c=a.listCell,e=a.listTable,d=a.po,f=d&&d.locale(),g=f&&f.isRTL(),l=d&&d.length||0;if(d&&d.row){a.lastSearch&&(a.lastSearch="",a.lastFound=l,a.fire("poFilter",["",l]));e&&(b=e.thead().distribution());a.listTable=e=c.tabulate({eachCol:function(b){var c,e,d=a.getListColumns(),
171
- f=a.getListHeadings();for(e in d)c=d[e],b(c,e,f[c])},eachRow:function(b){d.each(function(c,e,d){b(d,a.getListEntry(e),m(e))})}});if("".localeCompare){var h,c=a.getListColumns();for(h in c)e.sortable(c[h])}b&&e.thead().distribute(b);e.tbody().$(g?"addClass":"removeClass",["is-rtl"]);a.targetLocale=f;a.fire("poLoad");return!!d.length}c&&c.clear().header("Error").contents("Invalid messages list")};w.load=function(a,b){this.po=a;this.dict&&this.rebuildSearch();this.reload()&&(-1!==b?this.listTable.select(b||
172
- 0):this.active&&this.unloadActive())};w.pasteMessage=function(a){var b,c=0;(b=this.sourceCell)&&b.eachTextarea(function(b){b.val(a.source(null,c++))});(b=this.contextCell)&&b.eachTextarea(function(b){b.val(a.context())});if(b=this.targetCell)c=0,b.eachTextarea(function(b){b.val(a.translation(c++))});this.updateListCell(a,"source");this.updateListCell(a,"target");return this};w.reloadMessage=function(a){var b,c;this.pasteMessage(a);(b=this.sourceCell)&&this.setNotes(a.notes())&&b.redraw();if(b=this.targetCell)c=
173
- b.navigated()||0,this.setErrors(a.errors(c))&&b.redraw();return this};w.setNotes=function(a){var b=!1,c=this.$notes;a?(c||(this.$notes=c=h('<p class="notes"></p>').insertAfter(this.sourceCell.header())),a=A.h(a,!0),c.html(a).show(),A.init(c),b=!0):c&&c.text()&&(c.text("").hide(),b=!0);return b};w.setErrors=function(a){var b=!1,c=this.$errs;a&&a.length?(c||(this.$errs=c=h('<p class="errors"></p>').insertAfter(this.targetCell.header())),c.html(A.h(a.join(".\n")+".",!0)).show(),A.init(c),b=!0):c&&c.text()&&
174
- (c.text("").hide(),b=!0);return b};w.loadMessage=function(c){function d(a){var g,h=a,h=a.id;g=L[e];a.off();a.titled()!==g&&b(a,g,p.sourceLocale||"en");p.setNotes(c.notes())&&a.clear();V?(g=a.splity(h+"-singular",h+"-plural"),h=g[0],g=g[1],h.header(L[l]).textarea(W,M).setStrf(F).setMode(w).setInvs(C),g.header(L[q]).textarea(V,M).setStrf(F).setMode(w).setInvs(C),a.lock(),M&&(f(h,0),f(g,1))):(a.textarea(W,M).setStrf(F).setMode(w).setInvs(C),M&&f(a,0))}function f(b,e){b.on(g,function(a,b,d){1===e?c.plural(b):
175
- (c.source(b),p.updateListCell(c,"source"));p.unsave(c,e)}).on(n,function(b){0===e&&p.po.reIndex(c);p.dict&&p.rebuildSearch();p.fire(a,[c])})}function h(a,e,d){K&&a.eachTextarea(function(a){a.ping()});a.off();var f=e.isKnown()&&e.label||"Target",f=z(L[u],f);a.titled()!==f&&b(a,f,e);p.setErrors(c.errors(d))&&a.clear();if(c.pluralized()){var g=[],l=e.plurals||["One","Other"],q=k.require("$26","collection.js").init();for(c.each(function(a,b,c){if(c||l[a])g.push(l[a]||"Form "+a),q.add("plural-"+a,c)});(f=
176
- g.length)<e.nplurals;)g.push(l[f]||"Form "+q.length),q.add("plural-"+f,c.translation(f));children=a.splitx.apply(a,q.keys);a.each(function(a,b){var e=K&&!c.disabled(b);a.textarea(q[b],e).setStrf(F).setMode(w).setInvs(C);K&&m(a,b)});a.navigize(g,d||null).on("wgTabSelect",function(a,b){var e=K&&a.cell.editable();e&&e.focus();p.setErrors(c.errors(b));p.fire("poTab",[b])})}else K=K&&!c.disabled(0),a.textarea(c.translation(),K).setStrf(F).setMode(w).setInvs(C),K&&m(a,0)}function m(b,e){b.on(g,function(a,
177
- b,d){c.translate(b,e);0===e&&p.updateListCell(c,"target");c.fuzzy(e)?p.fuzzy(!1,c,e):p.unsave(c,e);""===b?p.fire("poEmpty",[!0,c,e]):""===d&&p.fire("poEmpty",[!1,c,e])}).on(n,function(b){p.dict&&p.rebuildSearch();p.fire(a,[c])})}function s(e){e.off();b(e,L[B]);e.textarea(c.context(),!0).setMode(w).setInvs(C);R&&e.on(g,function(a,b){c.context(b);p.updateListCell(c,"source");p.unsave(c,P)}).on(n,function(){p.po.reIndex(c);p.dict&&p.rebuildSearch();p.fire(a,[c])})}function r(a){var e=L[t];a.titled()!==
178
- e&&b(a,e);a.off().on(g,function(a,b){c.comment(b);p.fire("poComment",[c,b]);p.unsave(c,P)}).textarea(c.comment(),!0)}var p=this,w=p.mode,A=c.isHTML(),C=p.inv||!1,I=this.fmt||null,F=c.format()||null,Q=c.is(p.active),P=0,T=p.sourceCell,S=p.targetCell,U=p.contextCell,X=p.commentCell,K=p.editable.target,M=p.editable.source,R=p.editable.context,W=c.source()||"",V=c.plural()||"",N=y,Y=p.targetLocale,L=p.labels;p.html!==A&&(p.html=A,"code"!==p.mode&&(w=A?"html":"",p.setMode(w)));p.active=c;T&&d(T);U&&s(U);
179
- S&&Y&&(P=S.navigated()||0,h(S,Y,P));X&&r(X);N&&(N.exists()||(N=N.parent()),(A=N.editable())&&A.focus());I!==F&&(this.fmt=F);Q||p.fire("poSelected",[c])};w.unloadActive=function(){var a;(a=this.$notes)&&a.text("").hide();(a=this.$errs)&&a.text("").hide();(a=this.sourceCell)&&a.off().clear();(a=this.contextCell)&&a.off().clear();(a=this.targetCell)&&a.off().clear();(a=this.commentCell)&&a.off();this.active&&(this.fire("poDeselected",[this.active]),this.active=null);return this};w.loadNothing=function(){var a,
180
- b=this.t,c=this.mode||"",e=this.inv||!1,d=this.fmt;this.unloadActive();(a=this.commentCell)&&a.textarea("",!1);if(a=this.sourceCell)a.textarea("",!1).setStrf(d).setMode(c).setInvs(e),a.title(b._x("Source text not loaded","Editor")+":");if(a=this.contextCell)a.textarea("",!1).setMode(c).setInvs(e),a.title(b._x("Context not loaded","Editor")+":");if(a=this.targetCell)a.textarea("",!1).setStrf(d).setMode(c).setInvs(e),a.title(b._x("Translation not loaded","Editor")+":");this.fire("poSelected",[null])};
181
- w.updateListCell=function(a,b){var c=this.getListColumns()[b],e=this.getListEntry(a)[c||0],d=this.po.indexOf(a);if(c=this.listTable.td(d,c))c.textContent=e};w.cellText=function(a){if(-1!==a.indexOf("<")||-1!==a.indexOf("&"))a=C(a);return a.replace(s,"")||"\u00a0"};w.fuzzy=function(b,c,e){if(!c){c=this.active;if(!c)return null;null==e&&(e=this.targetCell&&this.targetCell.navigated()||0)}var d=c.fuzzy(e);null==b||d==b||b&&!c.translated(e)||!this.fire("poFuzzy",[c,b,e])||(c.fuzzy(e,b),this.fire(a,[c])&&
182
- this.unsave(c,e));return d};w.add=function(b,c){var e,d=this.po.get(b,c);d?e=this.po.indexOf(d):(e=this.po.length,d=this.po.add(b,c),this.load(this.po,-1),this.fire("poAdd",[d]),this.fire(a,[d]));this.lastSearch&&this.filter("");this.listTable.select(e);return d};w.del=function(b){if(b=b||this.active){var c=this.lastSearch,e=this.po.del(b);null!=e&&(this.unsave(b),this.fire("poDel",[b]),this.fire(a,[b]),this.reload(),this.dict&&this.rebuildSearch(),this.active&&this.active.equals(b)&&this.unloadActive(),
183
- this.po.length&&(c&&this.filter(c),this.active||(e=Math.min(e,this.po.length-1),this.listTable.select(e))))}};w.setMono=function(a){return this.setMode(a?"code":this.html?"html":"")};w.setMode=function(a){this.mode!==a&&(this.mode=a,this.callTextareas(function(b){b.setMode(a)}));return this};w.getMono=function(){return"code"===this.mode};w.setInvs=function(a){(this.inv||!1)!==a&&(this.inv=a,this.callTextareas(function(b){b.setInvs(a)}),this.fire("poInvs",[a]));return this};w.getInvs=function(){return this.inv||
184
- !1};w.callTextareas=function(a){var b=this.targetCell;b&&b.eachTextarea(a);(b=this.contextCell)&&b.eachTextarea(a);(b=this.sourceCell)&&b.eachTextarea(a);return this};w.focus=function(){var a=this.getTargetEditable();a&&a.focus();return this};w=null;return d}({},p,z));k.register("$25",function(d,f,h){Number.prototype.format=function(d){d=Math.pow(10,d||0);var b=Math.round(d*this)/d;d=[];var b=String(b),c=b.split("."),b=c[0],c=c[1],a=b.length;do d.unshift(b.substring(a-3,a));while(0<(a-=3));b=d.join(",");
185
- if(d=c){d=c;for(var f,c=d.length;"0"===d.charAt(--c);)f=c;f&&(d=substring(0,f));d=c=d}d&&(b+="."+c);return b};Number.prototype.percent=function(d){var b=0,c=this&&d?100*(this/d):0;if(0===c)return"0";if(100===c)return"100";if(99<c){c=Math.min(c,99.99);do d=c.format(++b);while("100"===d.substr(0,3)&&2>b)}else if(0.5>c){c=Math.max(c,1E-4);do d=c.format(++b);while("0"===d&&4>b)}else d=c.format(0);return d};return d}({},p,z));k.register("$12",function(d,f,h){function m(){this.init()._validate();this.sourceLocale=
186
- {lang:"en",label:"English",plurals:["One","Other"]}}f=k.require("$24","base.js");k.require("$25","number.js");d.init=function(b){var c=new m;b=c.setRootCell(b);var a=b.splity("po-list","po-edit"),d=a[0],f=a[1],a=f.splitx("po-trans","po-comment"),e=a[0],l=a[1].header("Loading.."),a=e.splity("po-source","po-target"),e=a[0].header("Loading.."),a=a[1].header("Loading..");b.distribute([0.34]);f.distribute([0.8]);c.setListCell(d);c.setSourceCell(e);c.setTargetCell(a);c.commentCell=l;c.editable.source=!1;
187
- return c};f=m.prototype=f.extend(m);f.getListHeadings=function(){var b=this.t||{_x:function(b){return b}};return[b._x("Source text","Editor"),b._x("Translation","Editor")]};f.getListColumns=function(){return{source:0,target:1}};f.getListEntry=function(b){if(!b)return["",""];var c=this.cellText,a=[c(b.id||b.source()||""),c(b.translation()||"")];if(b=b.context())a[0]+=" [ "+c(b)+" ]";return a};f.stats=function(){var b=this.po,c=b.length,a=0,d=0,f=0;b.each(function(b,c){c.fuzzy()?f++:c.translated()?
188
- a++:d++});return{t:c,p:a.percent(c)+"%",f:f,u:d}};f.unlock=function(){this._unlocked||(this._unlocked=this.targetLocale,delete this.targetLocale,this.po&&this.po.unlock(),this.editable={source:!0,context:!0,target:!1},this.contextCell=this.targetCell,delete this.targetCell,this.fire("poLock",[!1]),this.active&&this.loadMessage(this.active))};f.lock=function(){var b;this._unlocked&&(b=this.targetLocale=this._unlocked,delete this._unlocked,this.po&&this.po.lock(b),this.editable={source:!1,context:!1,
189
- target:!0},this.targetCell=this.contextCell,delete this.contextCell,this.fire("poLock",[!0,b]),this.active&&this.loadMessage(this.active))};f.locked=function(){return!this._unlocked};f.sort=function(b,c){this.po.sort(function(a,c){return(a[b][0]||"").localeCompare(c[b][0]||"")});this.dict&&this.rebuildSearch();this.reload();return this};return d}({},p,z));k.register("$13",function(d,f,k){var m={copy:66,clear:75,save:83,fuzzy:85,next:40,prev:38,enter:13,invis:73},b={38:!0,40:!0,73:!0},c={66:function(a,
190
- b){var c=b.current();c&&(c.normalize(),b.focus().pasteMessage(c))},75:function(a,b){var c=b.current();c&&(c.untranslate(),b.focus().pasteMessage(c))},85:function(a,b){b.focus().fuzzy(!b.fuzzy())},13:function(a,b){b.getFirstEditable()&&b.next(1,!0,!0)},40:function(a,b){var c=a.shiftKey;b.next(1,c,c)},38:function(a,b){var c=a.shiftKey;b.next(-1,c,c)},73:function(a,b){if(!a.shiftKey)return!1;b.setInvs(!b.getInvs())}};d.init=function(a,d){function n(d){if(d.isDefaultPrevented()||!d.metaKey&&!d.ctrlKey)return!0;
191
- var f=d.which;if(!e[f])return!0;var g=c[f];if(!g)throw Error("command undefined #"+f);if(d.altKey||d.shiftKey&&!b[f]||!1===g(d,a))return!0;d.stopPropagation();d.preventDefault();return!1}var e={};h(d||f).on("keydown",n);return{add:function(a,b){c[m[a]]=b;return this},enable:function(){var a,b;for(b in arguments)a=m[arguments[b]],e[a]=!0;return this},disable:function(){h(d||f).off("keydown",n);a=d=e=null}}};return d}({},p,z));k.register("$27",function(d,f,h){function k(b,c){var a=RegExp("^.{0,"+(b-
192
- 1)+"}["+c+"]"),d=RegExp("^[^"+c+"]+");return function(c,e){for(var f=c.length,h;f>b;){h=a.exec(c)||d.exec(c);if(null==h)break;h=h[0];e.push(h);h=h.length;f-=h;c=c.substr(h)}0!==f&&e.push(c);return e}}d.create=function(b){function c(a){return q[a]||"\\"+a}var a,d,f=/(?:\r\n|[\r\n\v\f\u2028\u2029])/g,e=/[ \r\n]+/g,h=/[\t\v\f\x07\x08\\\"]/g,q={"\t":"\\t","\v":"\\v","\f":"\\f","\u0007":"\\a","\b":"\\b"};if(null==b||isNaN(b=Number(b)))b=79;0<b&&(a=k(b-3," "),d=k(b-2,"-\u2013 \\.,:;\\?!\\)\\]\\}\\>"));
193
- return{pair:function(a,e){if(!e)return a+' ""';e=e.replace(h,c);var q=0;e=e.replace(f,function(){q++;return"\\n\n"});if(!(q||b&&b<e.length+a.length+3))return a+' "'+e+'"';var k=[a+' "'],m=e.split("\n");if(d)for(var r=-1,p=m.length;++r<p;)d(m[r],k);else k=k.concat(m);return k.join('"\n"')+'"'},prefix:function(a,b){var c=a.split(f);return b+c.join("\n"+b)},refs:function(b){b=b.replace(e," ",b);a&&(b=a(b,[]).join("\n#: "));return"#: "+b}}};return d}({},p,z));k.register("$28",function(d,f,h){function m(){}
194
- d.extend=function(b){return b.prototype=new m};f=m.prototype=k.require("$36","abstract.js").init(["add","load"]);f.row=function(b){return this.rows[b]};f.lock=function(b){return this.locale(b||{lang:"zxx",label:"Unknown",nplurals:1,pluraleq:"n!=1"})};f.unlock=function(){var b=this.loc;this.loc=null;return b};f.locale=function(b){null==b?b=this.loc:this.loc=b=k.require("$6","locale.js").cast(b);return b};f.each=function(b){this.rows.each(b);return this};f.indexOf=function(b){"object"!==typeof b&&(b=
195
- this.get(b));if(!b)return-1;null==b.idx&&(b.idx=this.rows.indexOf(b.hash()));return b.idx};f.get=function(b){return this.rows&&this.rows.get(b)};f.del=function(b){b=this.indexOf(b);if(-1!==b){var c=this.rows.cut(b,1);if(c&&c.length)return this.length=this.rows.length,this.rows.each(function(a,b,c){b.idx=c}),b}};f.reIndex=function(b,c){var a=this.indexOf(b),d=b.hash(),f=this.rows.indexOf(d);return f===a?a:-1!==f?(c=(c||0)+1,b.source("Error, duplicate "+String(c)+": "+b.source()),this.reIndex(b,c)):
196
- this.rows.key(a,d)};f.sort=function(b){this.rows.sort(b);return this};f=null;return d}({},p,z));k.register("$29",function(d,f,h){function k(){this.id=this._id=this.ref=this.cmt=this.xcmt=""}d.extend=function(b){return b.prototype=new k};f=k.prototype;f.flag=function(b,c){var a=this.flg||(this.flg=[]);if(null!=c)a[c]=b;else for(var d=Math.max(a.length,this.src.length,this.msg.length);0!==d--;)a[d]=b;return this};f.flagged=function(b){var c=this.flg||[];if(null!=b)return c[b]||0;for(b=c.length;0!==
197
- b--;)if(c[b])return!0;return!1};f.flags=function(){for(var b,c={},a=[],d=this.flg||[],f=d.length;0!==f--;)b=d[f],c[b]||(c[b]=!0,a.push(b));return a};f.flaggedAs=function(b,c){var a=this.flg||[];if(null!=c)return b===a[c]||0;for(var d=a.length;0!==d--;)if(a[d]===b)return!0;return!1};f.fuzzy=function(b,c){var a=this.flaggedAs(4,b);null!=c&&this.flag(c?4:0,b);return a};f.source=function(b,c){if(null==b)return this.src[c||0]||"";this.src[c||0]=b;return this};f.plural=function(b,c){if(null==b)return this.src[c||
198
- 1]||"";this.src[c||1]=b||"";return this};f.each=function(b){for(var c=-1,a=this.src,d=this.msg,f=Math.max(a.length,d.length);++c<f;)b(c,a[c],d[c]);return this};f.count=function(){return Math.max(this.src.length,this.msg.length)};f.pluralized=function(){return 1<this.src.length||1<this.msg.length};f.translate=function(b,c){this.msg[c||0]=b||"";return this};f.untranslate=function(b){if(null!=b)this.msg[b]="";else{var c=this.msg,a=c.length;for(b=0;b<a;b++)c[b]=""}return this};f.translation=function(b){return this.msg[b||
199
- 0]||""};f.errors=function(b){return this.err&&this.err[b||0]||[]};f.translated=function(b){if(null!=b)return!!this.msg[b];var c=this.msg,a=c.length;for(b=0;b<a;b++)if(!c[b])return!1;return!0};f.comment=function(b){if(null==b)return this.cmt;this.cmt=b||"";return this};f.notes=function(b){if(null==b)return this.xcmt;this.xcmt=b||"";return this};f.refs=function(b){if(null==b)return this.ref;this.ref=b||"";return this};f.format=function(b){if(null==b)return this.fmt;this.fmt=b;return this};f.context=
200
- function(b){if(null==b)return this.ctx||"";this.ctx=b||"";return this};f.toString=f.toText=function(){return this.src.concat(this.msg,[this.id,this.ctx]).join(" ")};f.weight=function(){var b=0;this.translation()||(b+=2);this.fuzzy()&&(b+=1);return b};f.equals=function(b){return this===b||this.hash()===b.hash()};f.hash=function(){return this.id};f.normalize=function(){for(var b=this.msg.length;0!==b--;)this.msg[b]=this.src[b]||""};f.disabled=function(b){return!!(this.lck||[])[b||0]};f.disable=function(b){(this.lck||
201
- (this.lck=[]))[b||0]=!0;return this};f.saved=function(b){var c=this.drt;if(!c)return!0;if(null!=b)return!c[b];for(b=c.length;0!==b--;)if(c[b])return!1;return!0};f.unsave=function(b){(this.drt||(this.drt=[]))[b||0]=!0;return this};f.save=function(b){var c=this.drt;null==b?this.drt=null:c[b]=!1;return this};f.is=function(b){return b&&(b===this||b.idx===this.idx)};f.isHTML=function(b){if(null==b)return this.htm||!1;this.htm=b};f=null;return d}({},p,z));k.register("$14",function(d,f,h){function m(a){return{"Project-Id-Version":"PACKAGE VERSION",
202
- "Report-Msgid-Bugs-To":"","POT-Creation-Date":a||"","PO-Revision-Date":a||"","Last-Translator":"","Language-Team":"",Language:"","Plural-Forms":"","MIME-Version":"1.0","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"8bit"}}function b(a,b){var c=a||"";b&&(c+="\x00"+b);return c}function c(){return k.require("$26","collection.js").init()}function a(a){return k.require("$27","format.js").create(a)}function g(a){this.locale(a);this.length=0;this.rows=c();this.head=m(this.now())}
203
- function n(a,b){this.src=[a||""];this.msg=[b||""]}d.create=function(a){return new g(a)};f=k.require("$28","messages.js").extend(g);f.now=function(){function a(b,c){for(var e=String(b);e.length<c;)e="0"+e;return e}var b=new Date,c=b.getUTCFullYear(),d=b.getUTCMonth()+1,f=b.getUTCDate(),g=b.getUTCHours(),b=b.getUTCMinutes();return a(c,4)+"-"+a(d,2)+"-"+a(f,2)+" "+a(g,2)+":"+a(b,2)+"+0000"};f.header=function(a,b){var c=this.head||(this.head={});if(null==b)return this.headers()[a]||"";c[a]=b||"";return this};
204
- f.headers=function(a){var b,c=this.now(),d=this.head||(this.head=m(c));if(null!=a){for(b in a)d[b]=a[b];return this}var f=this.locale();a={};for(b in d)a[b]=String(d[b]);f?(a.Language=String(f)||"zxx",a["Language-Team"]=f.label||a.Language,a["Plural-Forms"]="nplurals="+(f.nplurals||"2")+"; plural="+(f.pluraleq||"n!=1"),a["PO-Revision-Date"]=c):(a.Language="",a["Plural-Forms"]="nplurals=INTEGER; plural=EXPRESSION",a["POT-Creation-Date"]=c,a["PO-Revision-Date"]="YEAR-MO-DA HO:MI+ZONE");a["X-Generator"]=
205
- "Loco - https://localise.biz/";return a};f.get=function(a,c){var d=b(a,c);return this.rows.get(d)};f.add=function(a,b){a instanceof n||(a=new n(a));b&&a.context(b);var c=a.hash();if(this.rows.get(c))throw Error("Duplicate message at index "+this.indexOf(a));a.idx=this.rows.add(c,a);this.length=this.rows.length;return a};f.load=function(a){for(var b=-1,c,d,f,g,h,k,m=(f=this.locale())&&f.nplurals||2,p=[],z=[],C=[],w=[];++b<a.length;)c=a[b],null==c.parent?(d=c.source||c.id,f=c.target||"",g=c.context,
206
- d||g?(h=new n(d,f),h._id=c._id,g&&h.context(g),c.flag&&h.flag(c.flag,0),c.comment&&h.comment(c.comment),c.notes&&h.notes(c.notes),c.refs&&h.refs(c.refs),h.format(c.format),c.message=h,h.translation()?h.fuzzy()?C.push(h):z.push(h):w.push(h)):0===b&&"object"===typeof f&&(this.head=f)):p.push(c);for(b=-1;++b<p.length;)try{c=p[b];d=c.source||c.id;h=a[c.parent]&&a[c.parent].message;if(!h)throw Error("parent missing for plural "+d);k=c.plural;1===k&&h.plural(d);k>=m||(c.flag&&h.flag(c.flag,k),h.translate(c.target||
207
- "",k),c.format&&!h.format()&&h.format(c.format))}catch(v){}return this._add(w,C,z)};f._add=function(a,b,c){c=[a,b,c];for(i=0;3>i;i++)for(b=c[i],a=-1;++a<b.length;)try{this.add(b[a])}catch(d){}return this};f.merge=function(a){var b,d=a.header("POT-Creation-Date"),f=this.rows,g=[],h=[],k=[],n=[],m=[];a=a.rows;this.rows.each(function(b,c){null==a.get(b)&&m.push(c)});a.each(function(a,c){try{(b=f.get(a))?(b.ref=c.ref,b.fmt=c.fmt):(b=c,n.push(b)),b.translation()?b.fuzzy()?h.push(b):k.push(b):g.push(b)}catch(d){}});
208
- this.rows=c();this._add(g,h,k);d&&this.header("POT-Creation-Date",d);return{add:n,del:m}};f.wrap=function(b){this.fmtr=a(b);return this};f.toString=function(){var b,c=this.locale(),d=[],f=[],g=this.headers(),h=!c,k=c&&c.nplurals||2,m=this.fmtr||a();for(b in g)f.push(b+": "+g[b]);f=new n("",f.join("\n"));h&&f.fuzzy(0,!0);d.push(f.toString());d.push("");this.rows.each(function(a,b){a&&(d.push(b.cat(m,h,k)),d.push(""))});return d.join("\n")};f=k.require("$29","message.js").extend(n);f.hash=function(){return b(this.source(),
209
- this.context())};f.toString=function(){return this.cat(a())};f.cat=function(a,b,c){var d,f=[],g;(g=this.cmt)&&f.push(a.prefix(g,"# "));(g=this.xcmt)&&f.push(a.prefix(g,"#. "));d=this.ref;if(g=this._id)d+=(d?" ":"")+"loco:"+g;d&&/\S/.test(d)&&f.push(a.refs(d));!b&&this.fuzzy()&&f.push("#, fuzzy");(g=this.fmt)&&f.push("#, "+g+"-format");(g=this.ctx)&&f.push(a.pair("msgctxt",g));f.push(a.pair("msgid",this.src[0]));if(null==this.src[1])f.push(a.pair("msgstr",b?"":this.msg[0]));else for(d=-1,f.push(a.pair("msgid_plural",
210
- this.src[1])),g=this.msg||["",""],c=c||g.length;++d<c;)f.push(a.pair("msgstr["+d+"]",b?"":g[d]||""));return f.join("\n")};f.compare=function(a,b){var c=this.weight(),d=a.weight();if(c>d)return 1;if(c<d)return-1;if(b){c=this.hash().toLowerCase();d=a.hash().toLowerCase();if(c<d)return 1;if(c>d)return-1}return 0};f=f=null;return d}({},p,z));k.register("$16",function(d,f,k){d.init=function(d){function b(){D&&D.dialog("close");h(d).find('input[type="submit"]').attr("disabled",!1);h(s).addClass("jshide");
211
- h(f).triggerHandler("resize");t&&t(!0)}function c(){h(d).find('input[type="submit"]').attr("disabled",!0);t&&t(!1)}function a(a){var b,c;for(b in z)c=z[b],a[b]?a[b].value=c:h('<input type="hidden" />').attr("name",b).appendTo(a).val(c)}function g(a){a.preventDefault();a=h(a.target).serializeArray();p(a);r=!0;return!1}function k(a){a.preventDefault();D.dialog("close");return!1}function e(a){a.preventDefault();D.dialog("open");return!1}function l(c){z=c.authed&&c.creds;y=c.method;if(z)"direct"!==y&&
212
- (a(d),r&&c.success&&A.notices.success(c.success)),E=!0,b();else if(E=!1,c.reason)A.notices.info(c.reason);else if(c=c.prompt){var l;D||(h(s).find("button.button-small").click(e),D=h('<div id="loco-fs-creds"></div>').dialog({dialogClass:"request-filesystem-credentials-dialog loco-modal",minWidth:580,modal:!0,autoOpen:!1,closeOnEscape:!0}));l=D;l.html(c).find("form").submit(g);l.dialog("option","title",l.find("h2").remove().text());l.find("button.cancel-button").show().click(k);l.find('input[type="submit"]').addClass("button-primary");
213
- h(s).removeClass("jshide");h(f).triggerHandler("resize")}else A.notices.error("Server didn't return credentials, nor a prompt for credentials")}function q(){b()}function p(a){r=!1;a.path=C;a.auth=w;A.ajax.setNonce("fsConnect",v).post("fsConnect",a,l,q);return a}var z,t,s=d,y=null,r=!1,E=!1,A=f.locoScope,C=d.path.value,w=d.auth.value,v=d["loco-nonce"].value,D;d.connection_type?(z={},z.connection_type=d.connection_type.value,E=!0):C&&w&&(c(),p({}));return{applyCreds:function(b){if(b.nodeType)a(b);else{var c,
214
- d=z||{};for(c in d)b[c]=d[c]}return this},setForm:function(b){d=b;E||c();a(b);return this},connect:function(){var a=h(d).serializeArray();C=a.path;w=a.auth;p(a);return this},listen:function(a){t=a;E&&a(!0);return this}}};return d}({},p,z));k.register("$17",function(d,f,p){function m(d,e,f,h){e="n"===f?c(e):a(e);h&&(e=g(e));return b([].sort,[e])(d)}function b(a,b){return function(c){a.apply(c,b);return c}}function c(a){return function(b,c){var d=b&&b[a]||0,f=c&&c[a]||0;return d===f?0:d>f?1:-1}}function a(a){return function(b,
215
- c){return(b&&b[a]||"").localeCompare(c&&c[a]||"")}}function g(a){return function(b,c){return-1*a(b,c)}}d.init=function(a){function b(a){var c=-1,d=a.length;for(h("tr",r).remove();++c<d;)r.appendChild(a[c].$)}function c(a){p=a?A.find(a,d):d.slice(0);y&&(a=f[y],p=m(p,y,a.type,a.desc));b(p)}var d=[],f=[],g=0,p,s,y,r=a.getElementsByTagName("tbody")[0],z=a.getElementsByTagName("thead")[0],A=k.require("$7","fulltext.js").init();z&&r&&(h("th",z).each(function(a,c){var k=c.getAttribute("data-sort-type");
216
- k&&(a=g,h(c).addClass("loco-sort").click(function(c){c.preventDefault();c=a;var g=f[c],k=g.type,l=!(g.desc=!g.desc);p=m(p||d.slice(0),c,k,l);b(p);s&&s.removeClass("loco-desc loco-asc");s=h(g.$).addClass(l?"loco-desc":"loco-asc").removeClass(l?"loco-asc":"loco-desc");y=c;return!1}),f[g]={$:c,type:k});c.hasAttribute("colspan")?g+=Number(c.getAttribute("colspan")):g++}),h("tr",r).each(function(a,b){var c,e,g,h=[],k={_:a,$:b},l=b.getElementsByTagName("td");for(e in f){c=l[e];(g=c.textContent.replace(/(^\s+|\s+$)/g,
217
- ""))&&h.push(g);c.hasAttribute("data-sort-value")&&(g=c.getAttribute("data-sort-value"));switch(f[e].type){case "n":g=Number(g)}k[e]=g}d[a]=k;A.index(a,h)}),a=h('form.loco-filter input[type="text"]',a.parentNode),a.length&&(a=a[0],z=h(a.form),1<d.length?k.require("$8","LocoTextListener.js").listen(a,c):z.hide(),z.on("submit",function(a){a.preventDefault();return!1})))};return d}({},p,z));var F=p.locoScope||(p.locoScope={});p=p.locoConf||(p.locoConf={});z=k.require("$1","t.js").init();var Q=p.wplang;
218
- k.require("$2","array.js");F.l10n=z;z.load(p.wpl10n);Q&&z.pluraleq(Q.pluraleq);F.string=k.require("$3","string.js");F.notices=k.require("$4","notices.js").init(z);F.ajax=k.require("$5","ajax.js").init(p).localise(z);F.locale=k.require("$6","locale.js");F.fulltext=k.require("$7","fulltext.js");F.watchtext=k.require("$8","LocoTextListener.js").listen;F.selector=k.require("$9","LocoSelector.js").create;F.autocomp=k.require("$10","LocoAutoComplete.js").init;F.tooltip=k.require("$11","tooltip.js");F.po=
219
- {ed:k.require("$12","poedit.js"),kbd:k.require("$13","hotkeys.js"),init:k.require("$14","po.js").create,ace:k.require("$15","ace.js").strf("php")};F.fs=k.require("$16","fsconn.js");h("#loco.wrap table.wp-list-table").each(function(d,f){k.require("$17","tables.js").init(f)})})(window,document,window.jQuery);
 
111
  String(e-2)+"px");c();b();return{kill:function(){h(d).off("input",c).off("scroll",b);g.removeChild(f);f=null;h(g).removeClass("has-mirror")}}};return d}({},p,z));k.register("$30",function(d,f,h){function m(a,c){for(var d=0,e=-1,l=c&&f[c],q=b[a]||[],h=q.length;++e<h;)callback=q[e],"function"===typeof callback&&(callback(l),d++);return d}var b={},c;d.load=function(a,c,d){function e(){u&&(clearTimeout(u),u=null);k&&(k.onreadystatechange=null,k=k=k.onload=null);a&&(delete b[a],a=null)}function l(b,c){var g=
112
  k&&k.readyState;if(c||!g||"loaded"===g||"complete"===g)c||m(a,d),e()}function q(){if(0===m(a))throw Error('Failed to load "'+(d||a)+'"');e()}if(d&&f[d])"function"===typeof c&&c(f[d]);else if(null!=b[a])b[a].push(c);else{b[a]=[c];var u=setTimeout(q,4E3),k=h.createElement("script");k.setAttribute("src",a);k.setAttribute("async","true");k.onreadystatechange=l;k.onload=l;k.onerror=q;k.onabort=e;h.getElementsByTagName("head")[0].appendChild(k)}};d.stat=function(a){var b;if(!(b=c)){for(var d,e,f=h.getElementsByTagName("script"),
113
  q=-1,m=f.length;++q<m;)if(b=f[q].getAttribute("src"))if(d=b.indexOf("/lib/vendor"),-1!==d){e=b.substr(0,d);break}b=c=e||"/static"}return b+a};return d}({},p,z));k.register("$15",function(d,f,p){function m(a,b){a.setReadOnly(!1);a.on("change",function(a,c){return b.val(c.getValue())});a.on("focus",function(a,c){return b.focus()});a.on("blur",function(a,c){return b.blur()})}function b(a){a.off("change");a.off("focus");a.off("blur")}function c(a){b(a);a.setReadOnly(!0);a.setHighlightGutterLine(!1);a.setHighlightActiveLine(!1)}
114
+ function a(a,b){function c(){this.HighlightRules=e}var e=g(b),d=a.require,f=d("ace/lib/oop");f.inherits(e,d("ace/mode/text_highlight_rules").TextHighlightRules);f.inherits(c,d("ace/mode/text").Mode);return new c}function g(a){var b=n(a);return function(){var c=[{token:"empty_line",regex:"^$"},{token:"constant.language",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"},{token:"constant.language",regex:"<!\\[CDATA\\["},{token:"constant.language",regex:"\\]\\]>"},{token:"locked",regex:"<(?:xliff:)?(?:g|ph)[^>]*>[^<]*</(?:xliff:)?(?:g|ph)>"},
115
+ {token:"locked",regex:"<(?:xliff:)?(bx|ex|x)[^/>]*/>"},{token:"constant.language",regex:"</?[:a-z]+[^>]*>"}];b&&c.push({token:"printf printf-"+a,regex:b});c.push({defaultToken:"text"});this.$rules={start:c}}}function n(a){switch(a){case "objc":return"%(?:\\d+\\$)?[-+'0# ]*\\d*(?:\\.\\d+|\\.\\*(?:\\d+\\$)?)?(?:hh?|ll?|[qjzTL])?[sScCdDioOuUxXfFeEgGaAp%@]";case "java":return"%(?:\\d+\\$)?[-+,(0# ]*\\d*(?:\\.\\d+)?(?:[bBhHsScCdoxXeEfgGaA%n]|[tT][A-DFH-IL-NQ-TY-Za-ehj-mpr-sz])";case "php":return"%(?:\\d+\\$)?(?:'.|[-+0 ])*\\d*(?:\\.\\d+)?[suxXbcdeEfFgGo%]";
116
+ case "auto":return"%(?:\\d+\\$)?(?:[-+0]?\\d*(\\.\\d+)?[duxoefgaDUXOEFGA]|[@scSC%])";case l:return e||"%%"}}var e,l="auto";d.init=function(e,d,g){var n,s=!1,y=g||l,r=e.parentNode,E=r.appendChild(p.createElement("div"));h(r).addClass("has-proxy has-ace");k.require("$30","remote.js").load("https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.6/ace.js",function(b){if(E){if(!b)throw Error("Failed to load code editor");n=b.edit(E);var r=n.session,g=n.renderer;n.$blockScrolling=Infinity;n.setShowInvisibles(s);
117
+ n.setWrapBehavioursEnabled(!1);n.setBehavioursEnabled(!1);n.setHighlightActiveLine(!1);r.setUseSoftTabs(!1);g.setShowGutter(!0);g.setPadding(10);g.setScrollMargin(8);r.setMode(a(b,y));n.setValue(e.value,-1);r.setUseWrapMode(!0);d?m(n,d):c(n)}},"ace");return{kill:function(){n&&(b(n),n.destroy(),n=null);E&&(r.removeChild(E),h(r).removeClass("has-proxy has-ace"),E=null);return this},disable:function(){n&&c(n);d=null;return this},enable:function(a){d=a;n&&m(n,a);return this},resize:function(){n&&n.resize();
118
+ return this},val:function(a){n&&a!==n.getValue()&&n.setValue(a,-1);return this},invs:function(a){a=a||!1;s!==a&&(s=a,n&&n.setShowInvisibles(a));return this},strf:function(b){b=b||l;b!==y&&(y=b,n&&n.session.setMode(a(f.ace,b)));return this},focus:function(){return this}}};d.strf=function(a,b){l=a;e=b;return d};return d}({},p,z));k.register("$48",function(d,f,p){function m(a,b){function c(){return b.val(a.getContent())}a.on("input",c);a.on("change",c);a.on("focus",function(a){return b.focus()});a.on("blur",
119
+ function(a){return b.blur()});a.setMode("design")}function b(a){a.off("input");a.off("change");a.off("focus");a.off("blur")}var c=0;d.load=function(a){var b=k.require("$30","remote.js");b.load(b.stat("/lib/tinymce.min.js"),a,"tinymce");return d};d.init=function(a,g){function f(a){e=a;g?m(a,g):(b(a),a.setMode("readonly"));h(k).removeClass("loading")}var e,l=!1,q=a.parentNode,u=q.parentNode,k=q.appendChild(p.createElement("div")),t=u.insertBefore(p.createElement("nav"),q);h(q).addClass("has-proxy has-mce");
120
+ h(k).html(a.value).addClass("mce-content-body loading");t.id="_tb"+String(++c);d.load(function(a){if(!a)throw Error("Failed to load HTML editor");k&&a.init({inline:!0,target:k,hidden_input:!1,theme:"modern",skin:!1,plugins:"link",browser_spellcheck:!0,menubar:!1,fixed_toolbar_container:"#"+t.id,toolbar:"formatselect | bold italic link unlink | bullist numlist outdent indent",block_formats:"Paragraph=p;Heading 1=h1;Heading 2=h2;Heading 3=h4;Heading 4=h4;Heading 5=h5;Heading 6=h6;",forced_root_block:"p",
121
+ relative_urls:!1,convert_urls:!1,remove_script_host:!1,document_base_url:"",allow_script_urls:!1,formats:{alignleft:{classes:"alignleft"},alignright:{selector:"p,h1,h2,h3,h4,span,strong,em,a",classes:"alignright"},aligncenter:{selector:"p,h1,h2,h3,h4,span,strong,em,a",classes:"aligncenter"},strikethrough:{inline:"del"}},fix_list_elements:!0,entities:"38,amp,60,lt,62,gt,160,nbsp",entity_encoding:"named",keep_styles:!1,init_instance_callback:f})});return{val:function(a){null==e?h(k).html(a):e.getContent()!==
122
+ a&&e.setContent(a);return this},kill:function(){e&&(g&&g.val(e.getContent()),b(e),e.destroy(),e=null);k&&(q.removeChild(k),h(q).removeClass("has-proxy has-mce"),k=null);t&&(u.removeChild(t),t=null);return this},enable:function(a){g=a;e&&m(e,a);return this},disable:function(){if(e){var a=e;b(a);a.setMode("readonly")}g=null;return this},focus:function(){e&&g&&e.focus();return this},invs:function(a){a=a||!1;l!==a&&(l=a,h(q)[a?"addClass":"removeClass"]("show-invs"));return this}}};return d}({},p,z));
123
+ k.register("$43",function(d,f,p){function m(a){function b(){m&&(k.off("input",d),m=!1)}function d(){var b=a.value;b!==s&&(k.trigger("changing",[b,s]),s=b)}function e(){d();m&&y!==s&&k.trigger("changed",[s])}function f(){c=a;y=s;m||(k.on("input",d),m=!0);k.trigger("editFocus");t.addClass("has-focus");return!0}function q(){c===a&&(c=null);k.trigger("editBlur");t.removeClass("has-focus");m&&(e(),b());return!0}var m=!1,k=h(a),t=h(a.parentNode),s=a.value,y;k.blur(q).focus(f);return{val:function(b){s!==
124
+ b&&(a.value=b,k.triggerHandler("input"),s=b);return!0},kill:function(){b();k.off("blur",q).off("focus",f)},fire:function(){s=null;d()},ping:e,blur:q,focus:f}}function b(a){this.e=a}var c;d._new=function(a){return new b(a)};d.init=function(a){var c=new b(a);a.disabled?(a.removeAttribute("disabled"),c.disable()):a.readOnly?c.disable():c.enable();return c};TextAreaPrototype=b.prototype;TextAreaPrototype.destroy=function(){this.unlisten();this.e=null};TextAreaPrototype.reload=function(a,b){b?this.l||
125
+ this.enable():this.l&&this.disable();return this.val(a||"")};TextAreaPrototype.val=function(a){var b=this.e;if(null==a)return b.value;var c=this.p||this.l;c?c.val(a):b.value!==a&&(b.value=a,h(b).triggerHandler("input"));return this};TextAreaPrototype.fire=function(){this.l&&this.l.fire();return this};TextAreaPrototype.ping=function(){this.l&&this.l.ping();return this};TextAreaPrototype.focus=function(){var a=this.p;a?a.focus():h(this.e).focus()};TextAreaPrototype.focused=function(){return c&&c===
126
+ this.el};TextAreaPrototype.parent=function(){return this.e.parentNode};TextAreaPrototype.attr=function(a,b){var c=this.e;if(1===arguments.length)return c.getAttribute(a);null==b?c.removeAttribute(a):c.setAttribute(a,b);return this};TextAreaPrototype.editable=function(){return!!this.l};TextAreaPrototype.enable=function(){var a=this.p;this.e.removeAttribute("readonly");this.listen();a&&a.enable&&a.enable(this.l);return this};TextAreaPrototype.disable=function(){var a=this.p;this.e.setAttribute("readonly",
127
+ !0);this.unlisten();a&&a.disable&&a.disable();return this};TextAreaPrototype.listen=function(){var a=this.l;a&&a.kill();this.l=m(this.e);return this};TextAreaPrototype.unlisten=function(){this.l&&this.l.kill();this.l=null;return this};TextAreaPrototype.setInvs=function(a,b){var c=this.i||!1;if(b||c!==a)this._i&&(this._i.kill(),delete this._i),(c=this.p)?c.invs&&c.invs(a):a&&(this._i=k.require("$47","mirror.js").init(this.e)),this.i=a;return this};TextAreaPrototype.getInvs=function(){return this.i||
128
+ !1};TextAreaPrototype.setMode=function(a){var b=this.p;a!==(this.m||"")&&(this.m=a,b&&b.kill(),this.p=b="code"===a?k.require("$15","ace.js").init(this.e,this.l,this["%"]):"html"===a?k.require("$48","mce.js").init(this.e,this.l):null,this.setInvs(this.i,!0),c&&this.focus());return this};TextAreaPrototype.setStrf=function(a){this["%"]=a;"code"===this.m&&this.p.strf(a);return this};TextAreaPrototype.name=function(a){this.e.setAttribute("name",a);return this};TextAreaPrototype.placeholder=function(a){this.e.setAttribute("placeholder",
129
+ a);return this};TextAreaPrototype.redraw=function(){var a=this.p;a&&a.resize&&a.resize()};TextAreaPrototype=null;return d}({},p,z));k.register("$44",function(d,f,k){function m(a){var b=f.console;b&&b.error&&b.error(a)}function b(a){var b=k.createElement("div");a&&b.setAttribute("class",a);return b}function c(a){return function(){a.resize();return this}}function a(a){return function(b){var c=b.target.$index;if(null==c)return!0;a.select(c);b.stopPropagation();b.preventDefault();return!1}}function g(a){return function(){a.redrawDirty()&&
130
+ a.redraw();return!0}}function n(a){return function(b){var c;c=b.keyCode;if(40===c)c=1;else if(38===c)c=-1;else return!0;if(b.shiftKey||b.ctrlKey||b.metaKey||b.altKey)return!0;a.selectNext(c);b.stopPropagation();b.preventDefault();return!1}}function e(a,b,c){function e(a){m("row["+a+"] disappeared");return{cellVal:function(){return""}}}return function(d){var f=b||0,g=c?-1:1,v=a.rows||[];d.sort(function(a,b){return g*(v[a]||e(a)).cellVal(f).localeCompare((v[b]||e(b)).cellVal(f))})}}function l(a){this.w=
131
+ a}function q(a){this.t=a;this.length=0}function u(a,b,c){var e=k.createElement("div");e.className=c||"";this._=e;this.d=b||[];this.i=a||0;this.length=b.length}function B(a){this.live=a;this.rows=[]}d.create=function(a){return new l(a)};var t=l.prototype;t.init=function(e){var d=this.w,r=d.id,f=d.splity(r+"-thead",r+"-tbody"),l=f[0],f=f[1],q=[],m=[],v=[],D=[];if(e)this.ds=e,this.idxs=m,this._idxs=null;else if(!(e=this.ds))throw Error("No datasource");l.css.push("wg-thead");f.css.push("wg-tbody");e.eachCol(function(a,
132
+ b,c){v[a]=r+"-col-"+b;D[a]=c||b});for(var H=b(),k=-1,t=v.length,B=b("wg-cols"),p=l.splitx.apply(l,v);++k<t;)p[k].header(D[k]),B.appendChild(H.cloneNode(!1));e.eachRow(function(a,b,c){q[a]=new u(a,b,c);m[a]=a});this.rows=q;this.cols=B;this.ww=null;this.root=e=f.body;this.head=l;l.redraw=c(this);l=f.fixed=p[0].bodyY()||20;d.lock().resize(l,f);d.css.push("is-table");d.restyle();this.sc&&this._re_sort(t);this.redrawDirty();this.render();h(e).attr("tabindex","-1").on("keydown",n(this)).on("mousedown",
133
+ a(this)).on("scroll",g(this));return this};t.clear=function(){for(var a=this.pages||[],b=a.length;0!==b--;)a[b].destroy();this.pages=[];this.sy=this.mx=this.mn=this.vh=null;void 0;return this};t.render=function(){for(var a,b,c=[],e=this.rows||[],d=-1,f,g=this.idxs,v=g.length,l=this.idxr={},h=this.r,q=this._r,n=this.root,m=this.cols;++d<v;){0===d%100&&(a=m.cloneNode(!0),b=new B(a),b.h=2200,b.insert(n),c.push(b));f=g[d];l[f]=d;a=e[f];if(null==a)throw Error("Render error, no data at ["+f+"]");a.page=
134
+ b;b.rows.push(a)}b&&100!==b.size()&&b.sleepH(22);this.pages=c;this.mx=this.mn=null;this.redrawDirty();this.redraw();null==h?null!=q&&(a=e[q])&&a.page&&(delete this._r,this.select(q,!0)):(a=e[h])&&a.page?this.select(h,!0):(this.deselect(),this._r=h);return this};t.resize=function(){var a=-1,b=this.ww||(this.ww=[]),c=this.w,e=c.cells[0],d=e.body.childNodes,f=d.length,g=this.pages||[],v=g.length;for(c.redraw.call(e);++a<f;)b[a]=d[a].style.width;if(v){c=this.mx;for(a=this.mn;a<=c;a++)g[a].widths(b);this.redrawDirty()&&
135
+ this.redraw()}};t.redrawDirty=function(){var a=!1,b=this.root,c=b.scrollTop,b=b.clientHeight;this.sy!==c&&(a=!0,this.sy=c);this.vh!==b&&(a=!0,this.vh=b);return a};t.redraw=function(){for(var a=0,b=-1,c=null,e=null,d=this.ww,f=this.sy,g=this.vh,v=this.mn,l=this.mx,h=Math.max(0,f-100),f=g+f+100,q=this.pages||[],n=q.length;++b<n&&!(a>f);)g=q[b],a+=g.height(),a<h||(null===c&&(c=b),e=b,g.rendered||g.render(d));if(v!==c){if(null!==v&&c>v)for(b=v;b<c;b++){g=q[b];if(!g)throw Error("Shit!");g.rendered&&g.sleep()}this.mn=
136
+ c}if(l!==e){if(null!==l&&e<l)for(b=l;b>e;b--)g=q[b],g.rendered&&g.sleep();this.mx=e}};t.selected=function(){return this.r};t.thead=function(){return this.w.cells[0]};t.tbody=function(){return this.w.cells[1]};t.tr=function(a){return(a=this.rows[a])?a.cells():[]};t.td=function(a,b){return this.tr(a)[b]};t.next=function(a,b,c){null==c&&(c=this.r||0);var e=this.idxs,d=e.length,f=(this.idxr||{})[c];for(c=f;c!==(f+=a)&&!(0<=f&&d>f);)if(b&&d)f=1===a?-1:d,b=!1;else return null;c=e[f];return null==c||null==
137
+ this.rows[c]?(m("Bad next: ["+f+"] does not map to data row"),null):c};t.selectNext=function(a,b,c){a=this.next(a,b);null!=a&&this.r!==a&&this.select(a,c);return this};t.deselect=function(a){var b=this.r;null!=b&&(this.r=null,h(this.tr(b)).removeClass("selected"),this.w.fire("wgRowDeselect",[b,a]));return this};t.select=function(a,b){var c=this.rows[a],e=c&&c.page;if(!e)return this.deselect(!1),m("Row is filtered out"),this;this.deselect(!0);var d,f=this.w.cells[1];e.rendered||(d=e.top(),f.scrollY(d),
138
+ this.redrawDirty()&&this.redraw());if(!c.rendered)return e.rendered||m("Failed to render page"),m("Row ["+c.i+"] not rendered"),this;e=c.cells();h(e).addClass("selected");this.r=a;b||(d=f.scrollY(),h(this.root).focus(),d!==f.scrollY()&&f.scrollY(d));f.scrollTo(e[0],!0);this.w.fire("wgRowSelect",[a,c.data()]);return this};t.unfilter=function(){this._idxs&&(this.idxs=this._sort(this._idxs),this._idxs=null,this.clear().render());return this};t.filter=function(a){this._idxs||(this._idxs=this.idxs);this.idxs=
139
+ this._sort(a);return this.clear().render()};t.each=function(a){for(var b,c=-1,e=this.rows||[],d=this.idxs||[],f=d.length;++c<f;)b=d[c],a(e[b],c,b);return this};t.sortable=function(a){var b=this.sc||(this.sc=new q(this));b.has(a)||b.add(a);return this};t._re_sort=function(a){var b=-1,c=this.sc,e=c.active;for(this.sc=c=new q(this);++b<a;)c.add(b);e&&(b=this.head.indexOf(e.id),-1===b&&(b=Math.min(e.idx,a-1)),this.sort(b,e.desc));return this};t._sort=function(a,b){b?(this.s=b,b(a)):(b=this.s)&&b(a);return a};
140
+ t.sort=function(a,b){this._sort(this.idxs,e(this,a,b));this.sc.activate(a,b);return this};t=null;t=q.prototype;t.has=function(a){return null!=this[a]};t.add=function(a){var b=this,c=b.t.head.cells[a];b[a]={desc:null,idx:a,id:c.id};b.length++;c.addClass("wg-sortable").on("click",function(c){if("header"===c.target.nodeName.toLowerCase())return c.stopImmediatePropagation(),b.toggle(a),!1});return b};t.toggle=function(a){this.t.sort(a,!this[a].desc).clear().render();return this};t.activate=function(a,
141
+ b){var c,e;c=this.active;var d=this[a],f=this.t.head.cells;c&&(e=f[c.idx])&&(e.removeClass(c.css),c!==d&&e.restyle());(e=f[a])?(d.desc=b,this.active=d,c="wg-"+(b?"desc":"asc"),e.addClass(c).restyle(),d.css=c):this.active=null;return this};t=null;t=u.prototype;t.render=function(a){var b,c=[],e=this._,d=this.d,f=this.length;if(e){for(;0!==f--;)c[f]=b=e.cloneNode(!1),b.textContent=d[f]||"\u00a0",b.$index=this.i,a[f].appendChild(b);this._=null;this.c=c}else for(c=this.c;0!==f--;)a[f].appendChild(c[f]);
142
+ this.rendered=!0;return this};t.cells=function(){return this.c||[]};t.data=function(){return this.d||[]};t.destroy=function(){this.page=null;this.rendered=!1};t.cellVal=function(a){return this.d[a]};t=null;t=B.prototype;t.size=function(){return this.rows.length};t.insert=function(a){var c=this.h,e=b("wg-dead");e.style.height=String(c)+"px";a.appendChild(e);return this.dead=e};t.top=function(){return(this.rendered?this.live:this.dead).offsetTop};t.height=function(){var a=this.h;null==a&&(this.h=a=
143
+ this.rendered?this.live.firstChild.offsetHeight:this.dead.offsetHight);a||m("row has zero height");return a};t.render=function(a){for(var b,c=-1,e=this.rows,d=e.length,f=this.dead,g=this.live,v=g.childNodes;++c<d;)b=e[c],b.rendered||b.render(v);d=a.length;for(c=0;c<d;c++)v[c].style.width=a[c];f.parentNode.replaceChild(g,f);this.rendered=!0;this.h=null;return this};t.sleep=function(){var a=this.height(),b=this.live,c=this.dead;c.style.height=String(a)+"px";b.parentNode.replaceChild(c,b);this.rendered=
144
+ !1;this.h=a;return this};t.sleepH=function(a){a*=this.rows.length;var b=this.dead;b&&(b.style.height=String(a)+"px");this.rendered||(this.h=a);return this};t.widths=function(a){for(var b=this.live.childNodes,c=a.length;0!==c--;)b[c].style.width=a[c];return this};t.destroy=function(){var a=this.rendered?this.live:this.dead,b=this.rows,c=b.length;for(a.parentNode.removeChild(a);0!==c--;)b[c].destroy()};t=null;return d}({},p,z));k.register("$37",function(d,f,p){function m(a,b){var c=a.id,e=c&&t[c],d=
145
+ e&&e.parent();if(!e||!d)return null;var f=d.dir===B,c=f?"X":"Y",g="page"+c,f=f?u:q,l=f(d.el),c=b["offset"+c],h=d.el,n=h.className;null==c&&(c=b[g]-f(a));c&&(l+=c);h.className=n+" is-resizing";return{done:function(){h.className=n},move:function(a){d.resize(a[g]-l,e);return!0}}}function b(b,c){function e(){h(p).off("mousemove",d);y&&(y.done(),y=null);return!0}function d(a){y?y.move(a):e();return!0}if(y)return!0;y=m(b.target,b);if(!y)return!0;h(p).one("mouseup",e).on("mousemove",d);return a(b)}function c(a,
146
+ b){var c=b.type;"touchmove"===c?y&&y.move(b):"touchstart"===c?y=m(a.target,b):"touchend"===c&&y&&(y.done(),y=null)}function a(a){a.stopPropagation();a.preventDefault();return!1}function g(a){var b=s;b&&b.redraw();a&&a.redraw();return s=a}function n(a,b){var c=h(b).on("editFocus",function(){c.trigger("wgFocus",[g(a)])}).on("editBlur",function(){c.trigger("wgBlur",[g(null)])})}function e(a){var b=a.id,c=a.className;this.id=b;this.el=a;this.pos=this.index=0;this.css=[c||"wg-root","wg-cell"];this._cn=
147
+ c;t[b]=this;this.clear()}var l=k.require("$18","html.js"),q=l.top,u=l.left,B=1,t={},s,y=!1;d.init=function(a){var d=new e(a);d.redraw();k.require("$42","touch.js").ok(function(b){b.dragger(a,c)});h(a).mousedown(b);return d};f=e.prototype;f.fire=function(a,b){var c=h.Event(a);c.cell=this;h(this.el).trigger(c,b);return this};f.each=function(a){for(var b=-1,c=this.cells,e=c.length;++b<e;)a(c[b],b);return this};f.indexOf=function(a){return(a=t[a.id||String(a)])&&a.pid===this.id?a.index:-1};f.on=function(){return this.$("on",
148
+ arguments)};f.off=function(){return this.$("off",arguments)};f.find=function(a){return h(this.el).find(a)};f.$=function(a,b){h.fn[a].apply(h(this.el),b);return this};f.addClass=function(a){this.css.push(a);return this};f.removeClass=function(a){a=this.css.indexOf(a);-1!==a&&this.css.splice(a,1);return this};f.parent=function(){return this.pid&&t[this.pid]};f.splitx=function(){return this._split(B,arguments)};f.splity=function(){return this._split(2,arguments)};f._split=function(a,b){(this.length||
149
+ this.field)&&this.clear();for(var c=-1,d,f=b.length,g=1/f,h=0;++c<f;){d=l.el();this.body.appendChild(d);for(var q=d,n=b[c],m=n,k=1;t[n];)n=m+"-"+ ++k;q.id=n;d=new e(d);d.index=c;d.pid=this.id;d.pos=h;h+=g;this.cells.push(d);this.length++}this.dir=a;this.redraw();return this.cells};f.destroy=function(){this.clear();delete t[this.id];var a=this.el;a.innerHTML="";a.className=this._cn||"";h(a).off();return this};f.exists=function(){return this===t[this.id]};f.clear=function(){for(var a=this.el,b=this.cells,
150
+ c=this.field,e=this.body,d=this.nav,f=this.length||0;0!==f--;)delete t[b[f].destroy().id];this.cells=[];this.length=0;d&&(a.removeChild(d),this.nav=null);e&&(c&&(l.ie()&&h(e).triggerHandler("blur"),c.destroy(),this.field=null),this.table&&(this.table=null),a.removeChild(e));this.body=a.appendChild(l.el("","wg-body"));this._h=null;return this};f.resize=function(a,b){if(!b&&(b=this.cells[1],!b))return;var c=b.index,e=this.cells;this.parent();var d=h(this.el)[this.dir===B?"width":"height"](),f=e[c+1],
151
+ c=e[c-1];pad=(b.body||b.el.firstChild).offsetTop||0;max=(f?f.pos*d:d)-pad;min=c?c.pos*d:0;b.pos=Math.min(max,Math.max(min,a))/d;this.redraw();return this};f.distribute=function(a){for(var b=-1,c=0,e,d=this.cells,f=a.length;++b<f&&(e=d[++c]);)e.pos=Math.max(0,Math.min(1,a[b]));this.redraw();return this};f.distribution=function(){for(var a=[],b=0,c=this.cells,e=c.length-1;b<e;)a[b]=c[++b].pos;return a};f.restyle=function(){var a=this.css.concat();0===this.index?a.push("first"):a.push("not-first");this.dir&&
152
+ (a.push("wg-split"),2===this.dir?a.push("wg-split-y"):a.push("wg-split-x"));this.t&&a.push("has-title");this.nav&&a.push("has-nav");this.field&&(a.push("is-field"),this.field.editable()?a.push("is-editable"):a.push("is-readonly"));a=a.join(" ");a!==this._css&&(this._css=a,this.el.className=a);return this};f.redraw=function(a){this.restyle();var b=this.el,c=this.body,e=this.field;if(c){var d,f=b.clientWidth||0,g=b.clientHeight||0,l=c.offsetTop||0,g=l>g?0:g-l;this._h!==g&&(this._h=g,c.style.height=
153
+ String(g)+"px",d=e);this._w!==f&&(this._w=f,d=e);d&&d.redraw()}c=this.length;f=1;g=this.nav;for(l=2===this.dir?"height":"width";0!==c--;)e=this.cells[c],g?d=1:(e.fixed&&(e.pos=e.fixed/h(b)[l]()),d=f-e.pos,f=e.pos),e.el.style[l]=String(100*d)+"%",e.redraw(a);return this};f.contents=function(a,b){var c=this.el,e=this.body;if(null==a)return e.innerHTML;this.length?this.clear():e&&(c.removeChild(e),e=null);e||(this.body=e=c.appendChild(l.el("",b||"wg-content")),this._h=null,(c=this.lang)&&this._locale(c,
154
+ this.rtl,!0));"string"===typeof a?h(e)._html(a):a&&this.append(a);this.redraw();return this};f.textarea=function(a,b){var c=this.field;if(c){var e=c.editable();c.reload(a,b);e!==b&&this.restyle()}else this.length&&this.clear(),e=l.el("textarea"),e.setAttribute("wrap","virtual"),e.value=a,this.contents(e),c=k.require("$43","field.js")._new(e)[b?"enable":"disable"](),n(this,e),this.field=c,this.restyle();this.lang||this.locale("en");return c};f.locale=function(a){a=k.require("$6","locale.js").cast(a);
155
+ return this._locale(String(a),a.isRTL())};f._locale=function(a,b,c){var e=this.body;if(c||a!==this.lang)this.lang=a,e&&e.setAttribute("lang",a);if(c||b!==this.rtl)this.rtl=b,e&&e.setAttribute("dir",b?"RTL":"LTR");return this};f.editable=function(){var a=this.field;if(a)return a.editable()?a:null;var b=this.cells,c=b.length,e=this.navigated();if(null!=e)return b[e].editable();for(;++e<c;){for(e=0;e<c;c++);if(a=b[e].editable())return a}};f.eachTextarea=function(a){var b=this.field;b?a(b):this.each(function(b){b.eachTextarea(a)});
156
+ return this};f.append=function(a){a&&(a.nodeType?l.init(this.body.appendChild(a)):l.init(h(a).appendTo(this.body)));return this};f.prepend=function(a){var b=this.body;if(a.nodeType){var c=b.firstChild;l.init(c?b.insertBefore(a,c):b.appendChild(a))}else l.init(h(a).prependTo(b));return this};f.before=function(a){var b=this.body;a.nodeType?l.init(this.el.insertBefore(a,b)):l.init(h(a).insertBefore(b));return this};f.header=function(a,b){if(null==a&&null==b)return this.el.getElementsByTagName("header")[0];
157
+ this.t=l.txt(a||"");this.el.insertBefore(l.el("header",b),this.body).appendChild(this.t);this.redraw();return this};f.title=function(a){var b=this.t;if(b)return b.nodeValue=a||"",b;this.header(a);return this.t};f.titled=function(){var a=this.t;return a&&a.nodeValue};f.bodyY=function(){return q(this.body,this.el)};f.scrollY=function(a){if(R===a)return this.body.scrollTop;this.body.scrollTop=a};f.tabulate=function(a){var b=this.table;b?b.clear():b=k.require("$44","wgtable.js").create(this);b.init(a);
158
+ return this.table=b};f.lock=function(){this.body.className+=" locked";return this};f.scrollTo=function(a,b){var c,e=this.body;c=e.scrollTop;var d=q(a,e);if(c>d)c=d;else{var f=e.clientHeight,d=d+h(a).outerHeight();if(f+c<d)c=d-f;else return}b?e.scrollTop=c:h(e).stop(!0).animate({scrollTop:c},250)};f.navigize=function(b,c){function e(a){var b=f[a],c=n[a],d=h(b.el).show();c.addClass("active");q=a;m.data("idx",a);b.fire("wgTabSelect",[a]);return d}var d=this,f=d.cells,g=d.nav,q,n=[];g&&d.el.removeChild(g);
159
+ var g=d.nav=d.el.insertBefore(l.el("nav","wg-tabs"),d.body),m=h(g).on("click",function(b){var c=h(b.target).data("idx");if(null==c)return!0;if(null!=q){var g=n[q];h(f[q].el).hide();g.removeClass("active")}e(c);d.redraw();return a(b)});null==c&&(c=m.data("idx")||0);d.each(function(a,c){n[c]=h('<a href="#'+a.id+'"></a>').data("idx",c).text(b[c]).appendTo(m);a.pos=0;h(a.el).hide()});e(f[c]?c:0);d.lock();d.redraw();return d};f.navigated=function(){var a=this.nav;if(a)return h(a).data("idx")};f=null;return d}({},
160
+ p,z));k.register("$26",function(d,f,h){function m(b){this.reIndex([]);if(b)for(var c in b)this.add(c,b[c])}d.init=function(b){return new m(b)};f=m.prototype;f.reIndex=function(b){for(var c={},a=-1,d=b.length;++a<d;)c[b[a]]=a;this.keys=b;this.length=a;this.ords=c};f.key=function(b,c){if(null==c)return this.keys[b];var a=this.keys[b],d=this.ords[c];if(c!==a){if(null!=d)throw Error("Clash with item at ["+d+"]");this.keys[b]=c;delete this.ords[a];this.ords[c]=b}return b};f.indexOf=function(b){b=this.ords[b];
161
+ return null==b?-1:b};f.add=function(b,c){var a=this.ords[b];null==a&&(this.keys[this.length]=b,a=this.ords[b]=this.length++);this[a]=c;return a};f.get=function(b){return this[this.ords[b]]};f.has=function(b){return null!=this.ords[b]};f.del=function(b){this.cut(this.ords[b],1)};f.cut=function(b,c){c=c||1;var a=[].splice.call(this,b,c);this.keys.splice(b,c);this.reIndex(this.keys);return a};f.each=function(b){for(var c=-1,a=this.keys,d=this.length;++c<d;)b(a[c],this[c],c);return this};f.sort=function(b){for(var c=
162
+ -1,a=this.length,d,f=this.keys,e=this.ords,l=[];++c<a;)l[c]=[this[c],f[c]];l.sort(function(a,c){return b(a[0],c[0])});for(c=0;c<a;c++)d=l[c],this[c]=d[0],d=d[1],f[c]=d,e[d]=c;return this};f.join=function(b){return[].join.call(this,b)};f=null;return d}({},p,z));k.register("$24",function(d,f,p){function m(a){var b=[];a&&(a.saved()||b.push("po-unsaved"),a.fuzzy()?b.push("po-fuzzy"):a.flagged()&&(b.push("po-flagged"),b.push("po-flag-"+a.flags().join(" po-flag-"))),a.translation()||b.push("po-empty"),
163
+ a.comment()&&b.push("po-comment"));return b.join(" ")}function b(a,b,c){b=h(a.title(b).parentNode);var e=b.find("span.lang");c?(c=k.require("$6","locale.js").cast(c),e.length||(e=h("<span></span>").prependTo(b)),e.attr("lang",c.lang).attr("class",c.getIcon()||"lang region region-"+(c.region||"zz").toLowerCase())):(e.remove(),c="en");a.locale(c);return b}function c(){this.dirty=0}var a="poUpdate",g="changing",n="changed",e=0,l=1,q=2,u=3,B=4,t=5,s=/^\s+/,y,r,z=k.require("$3","string.js").sprintf,A=
164
+ k.require("$18","html.js");d.extend=function(a){return a.prototype=new c};d.localise=function(a){r=a;return d};var C=function(){var a=p.createElement("p");return function(b){a.innerHTML=b.replace("src=","x=");return a.textContent}}(),w=c.prototype=k.require("$36","abstract.js").init(["getListColumns","getListHeadings","getListEntry"],["editable","t"]);w.init=function(){this.localise();this.editable={source:!0,target:!0};this.mode="";this.html=!1;return this};w.localise=function(a){a||(a=r||k.require("$1",
165
+ "t.js").init());var b=[];b[e]=a._x("Source text","Editor")+":";b[u]=a._x("%s translation","Editor")+":";b[B]=a._x("Context","Editor")+":";b[t]=a._x("Comments","Editor")+":";b[l]=a._x("Single","Editor")+":";b[q]=a._x("Plural","Editor")+":";this.labels=b;this.t=a;return this};w.setRootCell=function(a){function b(a){c.redraw(!0,a);return!0}var c=k.require("$37","wingrid.js").init(a);h(f).on("resize",b);this.redraw=b;h(a).on("wgFocus wgBlur",function(a,b){a.stopPropagation();y=b});this.destroy=function(){c.destroy();
166
+ h(f).off("resize",b)};this.rootDiv=a;return c};c.prototype.$=function(){return h(this.rootDiv)};w.on=function(a,b){return h(this.rootDiv).on(a,b)};w.setListCell=function(a){var b=this;b.listCell=a;a.on("wgRowSelect",function(a,c){b.loadMessage(b.po.row(c));return!0}).on("wgRowDeselect",function(a,c,e){e||b.loadNothing();return!0})};w.setSourceCell=function(a){this.sourceCell=a;a=a.find("p.notes");this.$notes=a.length?a:null};w.setTargetCell=function(a){this.targetCell=a;a=a.find("p.errors");this.$errs=
167
+ a.length?a:null};w.next=function(a,b,c){for(var e=this.listTable,d=e.selected(),f=d,g,l=this.po;null!=(d=e.next(a,c,d));){if(f===d){d=null;break}if(b&&(g=l.row(d),g.translated(0)))continue;break}null!=d&&e.select(d,!0);return d};w.current=function(a){var b=this.active;if("undefined"===typeof a)return b;a?a.is(b)?this.reloadMessage(a):this.loadMessage(a):this.unloadActive();return this};w.getTargetEditable=function(){return this.editable.target&&this.targetCell&&this.targetCell.editable()};w.getSourceEditable=
168
+ function(){return this.editable.source&&this.sourceCell&&this.sourceCell.editable()};w.getContextEditable=function(){return this.editable.context&&this.contextCell&&this.contextCell.editable()};w.getFirstEditable=function(){return this.getTargetEditable()||this.getSourceEditable()||this.getContextEditable()};w.searchable=function(a){a&&(this.dict=a,this.po&&this.rebuildSearch());return this.dict&&!0};w.rebuildSearch=function(){var a=-1,b=this.po.rows,c=b.length,e=this.dict;for(e.clear();++a<c;)e.add(a,
169
+ b[a].toText())};w.filtered=function(){return this.lastSearch||""};w.filter=function(a,b){var c,e=this.listTable,d=this.lastFound,f=this.lastSearch;if(a){if(f===a)return d||0;if(f&&!d&&0===a.indexOf(f))return 0;c=this.dict.find(a)}this.lastSearch=f=a;this.lastFound=d=c?c.length:this.po.length;c?e.filter(c):e.unfilter();b||this.fire("poFilter",[f,d]);return d};w.countFiltered=function(){return this.lastSearch?this.lastFound:this.po.length};w.unsave=function(a,b){var c=!1;if(a=a||self.active){if(c=a.saved(b))this.dirty++,
170
+ a.unsave(b),this.fire("poUnsaved",[a,b]);this.markUnsaved(a)}return c};w.markUnsaved=function(a){var b=this.po.indexOf(a);if(b=this.listTable.tr(b)){var c=b[0].className;changedStyle=c.replace(/(?:^| +)po-[a-z]+/g,"")+" "+m(a);changedStyle!==c&&h(b).attr("class",changedStyle)}};w.save=function(a){var b=this.po;if(this.dirty||a)b.each(function(a,b){b.save()}),this.listCell.find("div.po-unsaved").removeClass("po-unsaved"),this.dirty=0,this.fire("poSave");return b};w.fire=function(a,b){var c=this.on;
171
+ if(c&&c[a]&&(c=c[a].apply(this,b||[]),!1===c))return!1;c=h.Event(a);h(this.rootDiv).trigger(c,b);return!c.isDefaultPrevented()};w.reload=function(){var a=this,b,c=a.listCell,e=a.listTable,d=a.po,f=d&&d.locale(),g=f&&f.isRTL(),l=d&&d.length||0;if(d&&d.row){a.lastSearch&&(a.lastSearch="",a.lastFound=l,a.fire("poFilter",["",l]));e&&(b=e.thead().distribution());a.listTable=e=c.tabulate({eachCol:function(b){var c,e,d=a.getListColumns(),f=a.getListHeadings();for(e in d)c=d[e],b(c,e,f[c])},eachRow:function(b){d.each(function(c,
172
+ e,d){b(d,a.getListEntry(e),m(e))})}});if("".localeCompare){var h,c=a.getListColumns();for(h in c)e.sortable(c[h])}b&&e.thead().distribute(b);e.tbody().$(g?"addClass":"removeClass",["is-rtl"]);a.targetLocale=f;a.fire("poLoad");return!!d.length}c&&c.clear().header("Error").contents("Invalid messages list")};w.load=function(a,b){this.po=a;this.dict&&this.rebuildSearch();this.reload()&&(-1!==b?this.listTable.select(b||0):this.active&&this.unloadActive())};w.pasteMessage=function(a){var b,c=0;(b=this.sourceCell)&&
173
+ b.eachTextarea(function(b){b.val(a.source(null,c++))});(b=this.contextCell)&&b.eachTextarea(function(b){b.val(a.context())});if(b=this.targetCell)c=0,b.eachTextarea(function(b){b.val(a.translation(c++))});this.updateListCell(a,"source");this.updateListCell(a,"target");return this};w.reloadMessage=function(a){var b,c;this.pasteMessage(a);(b=this.sourceCell)&&this.setNotes(a.notes())&&b.redraw();if(b=this.targetCell)c=b.navigated()||0,this.setErrors(a.errors(c))&&b.redraw();return this};w.setNotes=
174
+ function(a){var b=!1,c=this.$notes;a?(c||(this.$notes=c=h('<p class="notes"></p>').insertAfter(this.sourceCell.header())),a=A.h(a,!0),c.html(a).show(),A.init(c),b=!0):c&&c.text()&&(c.text("").hide(),b=!0);return b};w.setErrors=function(a){var b=!1,c=this.$errs;a&&a.length?(c||(this.$errs=c=h('<p class="errors"></p>').insertAfter(this.targetCell.header())),c.html(A.h(a.join(".\n")+".",!0)).show(),A.init(c),b=!0):c&&c.text()&&(c.text("").hide(),b=!0);return b};w.loadMessage=function(c){function d(a){var g,
175
+ h=a,h=a.id;g=L[e];a.off();a.titled()!==g&&b(a,g,p.sourceLocale||"en");p.setNotes(c.notes())&&a.clear();V?(g=a.splity(h+"-singular",h+"-plural"),h=g[0],g=g[1],h.header(L[l]).textarea(W,M).setStrf(F).setMode(w).setInvs(C),g.header(L[q]).textarea(V,M).setStrf(F).setMode(w).setInvs(C),a.lock(),M&&(f(h,0),f(g,1))):(a.textarea(W,M).setStrf(F).setMode(w).setInvs(C),M&&f(a,0))}function f(b,e){b.on(g,function(a,b,d){1===e?c.plural(b):(c.source(b),p.updateListCell(c,"source"));p.unsave(c,e)}).on(n,function(b){0===
176
+ e&&p.po.reIndex(c);p.dict&&p.rebuildSearch();p.fire(a,[c])})}function h(a,e,d){K&&a.eachTextarea(function(a){a.ping()});a.off();var f=e.isKnown()&&e.label||"Target",f=z(L[u],f);a.titled()!==f&&b(a,f,e);p.setErrors(c.errors(d))&&a.clear();if(c.pluralized()){var g=[],l=e.plurals||["One","Other"],q=k.require("$26","collection.js").init();for(c.each(function(a,b,c){if(c||l[a])g.push(l[a]||"Form "+a),q.add("plural-"+a,c)});(f=g.length)<e.nplurals;)g.push(l[f]||"Form "+q.length),q.add("plural-"+f,c.translation(f));
177
+ children=a.splitx.apply(a,q.keys);a.each(function(a,b){var e=K&&!c.disabled(b);a.textarea(q[b],e).setStrf(F).setMode(w).setInvs(C);K&&m(a,b)});a.navigize(g,d||null).on("wgTabSelect",function(a,b){var e=K&&a.cell.editable();e&&e.focus();p.setErrors(c.errors(b));p.fire("poTab",[b])})}else K=K&&!c.disabled(0),a.textarea(c.translation(),K).setStrf(F).setMode(w).setInvs(C),K&&m(a,0)}function m(b,e){b.on(g,function(a,b,d){c.translate(b,e);0===e&&p.updateListCell(c,"target");c.fuzzy(e)?p.fuzzy(!1,c,e):p.unsave(c,
178
+ e);""===b?p.fire("poEmpty",[!0,c,e]):""===d&&p.fire("poEmpty",[!1,c,e])}).on(n,function(b){p.dict&&p.rebuildSearch();p.fire(a,[c])})}function s(e){e.off();b(e,L[B]);e.textarea(c.context(),!0).setMode(w).setInvs(C);R&&e.on(g,function(a,b){c.context(b);p.updateListCell(c,"source");p.unsave(c,P)}).on(n,function(){p.po.reIndex(c);p.dict&&p.rebuildSearch();p.fire(a,[c])})}function r(a){var e=L[t];a.titled()!==e&&b(a,e);a.off().on(g,function(a,b){c.comment(b);p.fire("poComment",[c,b]);p.unsave(c,P)}).textarea(c.comment(),
179
+ !0)}var p=this,w=p.mode,A=c.isHTML(),C=p.inv||!1,I=this.fmt||null,F=c.format()||null,Q=c.is(p.active),P=0,T=p.sourceCell,S=p.targetCell,U=p.contextCell,X=p.commentCell,K=p.editable.target,M=p.editable.source,R=p.editable.context,W=c.source()||"",V=c.plural()||"",N=y,Y=p.targetLocale,L=p.labels;p.html!==A&&(p.html=A,"code"!==p.mode&&(w=A?"html":"",p.setMode(w)));p.active=c;T&&d(T);U&&s(U);S&&Y&&(P=S.navigated()||0,h(S,Y,P));X&&r(X);N&&(N.exists()||(N=N.parent()),(A=N.editable())&&A.focus());I!==F&&
180
+ (this.fmt=F);Q||p.fire("poSelected",[c])};w.unloadActive=function(){var a;(a=this.$notes)&&a.text("").hide();(a=this.$errs)&&a.text("").hide();(a=this.sourceCell)&&a.off().clear();(a=this.contextCell)&&a.off().clear();(a=this.targetCell)&&a.off().clear();(a=this.commentCell)&&a.off();this.active&&(this.fire("poDeselected",[this.active]),this.active=null);return this};w.loadNothing=function(){var a,b=this.t,c=this.mode||"",e=this.inv||!1,d=this.fmt;this.unloadActive();(a=this.commentCell)&&a.textarea("",
181
+ !1);if(a=this.sourceCell)a.textarea("",!1).setStrf(d).setMode(c).setInvs(e),a.title(b._x("Source text not loaded","Editor")+":");if(a=this.contextCell)a.textarea("",!1).setMode(c).setInvs(e),a.title(b._x("Context not loaded","Editor")+":");if(a=this.targetCell)a.textarea("",!1).setStrf(d).setMode(c).setInvs(e),a.title(b._x("Translation not loaded","Editor")+":");this.fire("poSelected",[null])};w.updateListCell=function(a,b){var c=this.getListColumns()[b],e=this.getListEntry(a)[c||0],d=this.po.indexOf(a);
182
+ if(c=this.listTable.td(d,c))c.textContent=e};w.cellText=function(a){if(-1!==a.indexOf("<")||-1!==a.indexOf("&"))a=C(a);return a.replace(s,"")||"\u00a0"};w.fuzzy=function(b,c,e){if(!c){c=this.active;if(!c)return null;null==e&&(e=this.targetCell&&this.targetCell.navigated()||0)}var d=c.fuzzy(e);null==b||d==b||b&&!c.translated(e)||!this.fire("poFuzzy",[c,b,e])||(c.fuzzy(e,b),this.fire(a,[c])&&this.unsave(c,e));return d};w.add=function(b,c){var e,d=this.po.get(b,c);d?e=this.po.indexOf(d):(e=this.po.length,
183
+ d=this.po.add(b,c),this.load(this.po,-1),this.fire("poAdd",[d]),this.fire(a,[d]));this.lastSearch&&this.filter("");this.listTable.select(e);return d};w.del=function(b){if(b=b||this.active){var c=this.lastSearch,e=this.po.del(b);null!=e&&(this.unsave(b),this.fire("poDel",[b]),this.fire(a,[b]),this.reload(),this.dict&&this.rebuildSearch(),this.active&&this.active.equals(b)&&this.unloadActive(),this.po.length&&(c&&this.filter(c),this.active||(e=Math.min(e,this.po.length-1),this.listTable.select(e))))}};
184
+ w.setMono=function(a){return this.setMode(a?"code":this.html?"html":"")};w.setMode=function(a){this.mode!==a&&(this.mode=a,this.callTextareas(function(b){b.setMode(a)}));return this};w.getMono=function(){return"code"===this.mode};w.setInvs=function(a){(this.inv||!1)!==a&&(this.inv=a,this.callTextareas(function(b){b.setInvs(a)}),this.fire("poInvs",[a]));return this};w.getInvs=function(){return this.inv||!1};w.callTextareas=function(a){var b=this.targetCell;b&&b.eachTextarea(a);(b=this.contextCell)&&
185
+ b.eachTextarea(a);(b=this.sourceCell)&&b.eachTextarea(a);return this};w.focus=function(){var a=this.getTargetEditable();a&&a.focus();return this};w=null;return d}({},p,z));k.register("$25",function(d,f,h){Number.prototype.format=function(d){d=Math.pow(10,d||0);var b=Math.round(d*this)/d;d=[];var b=String(b),c=b.split("."),b=c[0],c=c[1],a=b.length;do d.unshift(b.substring(a-3,a));while(0<(a-=3));b=d.join(",");if(d=c){d=c;for(var f,c=d.length;"0"===d.charAt(--c);)f=c;f&&(d=substring(0,f));d=c=d}d&&
186
+ (b+="."+c);return b};Number.prototype.percent=function(d){var b=0,c=this&&d?100*(this/d):0;if(0===c)return"0";if(100===c)return"100";if(99<c){c=Math.min(c,99.99);do d=c.format(++b);while("100"===d.substr(0,3)&&2>b)}else if(0.5>c){c=Math.max(c,1E-4);do d=c.format(++b);while("0"===d&&4>b)}else d=c.format(0);return d};return d}({},p,z));k.register("$12",function(d,f,h){function m(){this.init()._validate();this.sourceLocale={lang:"en",label:"English",plurals:["One","Other"]}}f=k.require("$24","base.js");
187
+ k.require("$25","number.js");d.init=function(b){var c=new m;b=c.setRootCell(b);var a=b.splity("po-list","po-edit"),d=a[0],f=a[1],a=f.splitx("po-trans","po-comment"),e=a[0],l=a[1].header("Loading.."),a=e.splity("po-source","po-target"),e=a[0].header("Loading.."),a=a[1].header("Loading..");b.distribute([0.34]);f.distribute([0.8]);c.setListCell(d);c.setSourceCell(e);c.setTargetCell(a);c.commentCell=l;c.editable.source=!1;return c};f=m.prototype=f.extend(m);f.getListHeadings=function(){var b=this.t||
188
+ {_x:function(b){return b}};return[b._x("Source text","Editor"),b._x("Translation","Editor")]};f.getListColumns=function(){return{source:0,target:1}};f.getListEntry=function(b){if(!b)return["",""];var c=this.cellText,a=[c(b.id||b.source()||""),c(b.translation()||"")];if(b=b.context())a[0]+=" [ "+c(b)+" ]";return a};f.stats=function(){var b=this.po,c=b.length,a=0,d=0,f=0;b.each(function(b,c){c.fuzzy()?f++:c.translated()?a++:d++});return{t:c,p:a.percent(c)+"%",f:f,u:d}};f.unlock=function(){this._unlocked||
189
+ (this._unlocked=this.targetLocale,delete this.targetLocale,this.po&&this.po.unlock(),this.editable={source:!0,context:!0,target:!1},this.contextCell=this.targetCell,delete this.targetCell,this.fire("poLock",[!1]),this.active&&this.loadMessage(this.active))};f.lock=function(){var b;this._unlocked&&(b=this.targetLocale=this._unlocked,delete this._unlocked,this.po&&this.po.lock(b),this.editable={source:!1,context:!1,target:!0},this.targetCell=this.contextCell,delete this.contextCell,this.fire("poLock",
190
+ [!0,b]),this.active&&this.loadMessage(this.active))};f.locked=function(){return!this._unlocked};f.sort=function(b,c){this.po.sort(function(a,c){return(a[b][0]||"").localeCompare(c[b][0]||"")});this.dict&&this.rebuildSearch();this.reload();return this};return d}({},p,z));k.register("$13",function(d,f,k){var m={copy:66,clear:75,save:83,fuzzy:85,next:40,prev:38,enter:13,invis:73},b={38:!0,40:!0,73:!0},c={66:function(a,b){var c=b.current();c&&(c.normalize(),b.focus().pasteMessage(c))},75:function(a,b){var c=
191
+ b.current();c&&(c.untranslate(),b.focus().pasteMessage(c))},85:function(a,b){b.focus().fuzzy(!b.fuzzy())},13:function(a,b){b.getFirstEditable()&&b.next(1,!0,!0)},40:function(a,b){var c=a.shiftKey;b.next(1,c,c)},38:function(a,b){var c=a.shiftKey;b.next(-1,c,c)},73:function(a,b){if(!a.shiftKey)return!1;b.setInvs(!b.getInvs())}};d.init=function(a,d){function n(d){if(d.isDefaultPrevented()||!d.metaKey&&!d.ctrlKey)return!0;var f=d.which;if(!e[f])return!0;var g=c[f];if(!g)throw Error("command undefined #"+
192
+ f);if(d.altKey||d.shiftKey&&!b[f]||!1===g(d,a))return!0;d.stopPropagation();d.preventDefault();return!1}var e={};h(d||f).on("keydown",n);return{add:function(a,b){c[m[a]]=b;return this},enable:function(){var a,b;for(b in arguments)a=m[arguments[b]],e[a]=!0;return this},disable:function(){h(d||f).off("keydown",n);a=d=e=null}}};return d}({},p,z));k.register("$27",function(d,f,h){function k(b,c){var a=RegExp("^.{0,"+(b-1)+"}["+c+"]"),d=RegExp("^[^"+c+"]+");return function(c,e){for(var f=c.length,h;f>
193
+ b;){h=a.exec(c)||d.exec(c);if(null==h)break;h=h[0];e.push(h);h=h.length;f-=h;c=c.substr(h)}0!==f&&e.push(c);return e}}d.create=function(b){function c(a){return q[a]||"\\"+a}var a,d,f=/(?:\r\n|[\r\n\v\f\u2028\u2029])/g,e=/[ \r\n]+/g,h=/[\t\v\f\x07\x08\\\"]/g,q={"\t":"\\t","\v":"\\v","\f":"\\f","\u0007":"\\a","\b":"\\b"};if(null==b||isNaN(b=Number(b)))b=79;0<b&&(a=k(b-3," "),d=k(b-2,"-\u2013 \\.,:;\\?!\\)\\]\\}\\>"));return{pair:function(a,e){if(!e)return a+' ""';e=e.replace(h,c);var q=0;e=e.replace(f,
194
+ function(){q++;return"\\n\n"});if(!(q||b&&b<e.length+a.length+3))return a+' "'+e+'"';var k=[a+' "'],m=e.split("\n");if(d)for(var r=-1,p=m.length;++r<p;)d(m[r],k);else k=k.concat(m);return k.join('"\n"')+'"'},prefix:function(a,b){var c=a.split(f);return b+c.join("\n"+b)},refs:function(b){b=b.replace(e," ",b);a&&(b=a(b,[]).join("\n#: "));return"#: "+b}}};return d}({},p,z));k.register("$28",function(d,f,h){function m(){}d.extend=function(b){return b.prototype=new m};f=m.prototype=k.require("$36","abstract.js").init(["add",
195
+ "load"]);f.row=function(b){return this.rows[b]};f.lock=function(b){return this.locale(b||{lang:"zxx",label:"Unknown",nplurals:1,pluraleq:"n!=1"})};f.unlock=function(){var b=this.loc;this.loc=null;return b};f.locale=function(b){null==b?b=this.loc:this.loc=b=k.require("$6","locale.js").cast(b);return b};f.each=function(b){this.rows.each(b);return this};f.indexOf=function(b){"object"!==typeof b&&(b=this.get(b));if(!b)return-1;null==b.idx&&(b.idx=this.rows.indexOf(b.hash()));return b.idx};f.get=function(b){return this.rows&&
196
+ this.rows.get(b)};f.del=function(b){b=this.indexOf(b);if(-1!==b){var c=this.rows.cut(b,1);if(c&&c.length)return this.length=this.rows.length,this.rows.each(function(a,b,c){b.idx=c}),b}};f.reIndex=function(b,c){var a=this.indexOf(b),d=b.hash(),f=this.rows.indexOf(d);return f===a?a:-1!==f?(c=(c||0)+1,b.source("Error, duplicate "+String(c)+": "+b.source()),this.reIndex(b,c)):this.rows.key(a,d)};f.sort=function(b){this.rows.sort(b);return this};f=null;return d}({},p,z));k.register("$29",function(d,f,
197
+ h){function k(){this.id=this._id=this.ref=this.cmt=this.xcmt=""}d.extend=function(b){return b.prototype=new k};f=k.prototype;f.flag=function(b,c){var a=this.flg||(this.flg=[]);if(null!=c)a[c]=b;else for(var d=Math.max(a.length,this.src.length,this.msg.length);0!==d--;)a[d]=b;return this};f.flagged=function(b){var c=this.flg||[];if(null!=b)return c[b]||0;for(b=c.length;0!==b--;)if(c[b])return!0;return!1};f.flags=function(){for(var b,c={},a=[],d=this.flg||[],f=d.length;0!==f--;)b=d[f],c[b]||(c[b]=!0,
198
+ a.push(b));return a};f.flaggedAs=function(b,c){var a=this.flg||[];if(null!=c)return b===a[c]||0;for(var d=a.length;0!==d--;)if(a[d]===b)return!0;return!1};f.fuzzy=function(b,c){var a=this.flaggedAs(4,b);null!=c&&this.flag(c?4:0,b);return a};f.source=function(b,c){if(null==b)return this.src[c||0]||"";this.src[c||0]=b;return this};f.plural=function(b,c){if(null==b)return this.src[c||1]||"";this.src[c||1]=b||"";return this};f.each=function(b){for(var c=-1,a=this.src,d=this.msg,f=Math.max(a.length,d.length);++c<
199
+ f;)b(c,a[c],d[c]);return this};f.count=function(){return Math.max(this.src.length,this.msg.length)};f.pluralized=function(){return 1<this.src.length||1<this.msg.length};f.translate=function(b,c){this.msg[c||0]=b||"";return this};f.untranslate=function(b){if(null!=b)this.msg[b]="";else{var c=this.msg,a=c.length;for(b=0;b<a;b++)c[b]=""}return this};f.translation=function(b){return this.msg[b||0]||""};f.errors=function(b){return this.err&&this.err[b||0]||[]};f.translated=function(b){if(null!=b)return!!this.msg[b];
200
+ var c=this.msg,a=c.length;for(b=0;b<a;b++)if(!c[b])return!1;return!0};f.comment=function(b){if(null==b)return this.cmt;this.cmt=b||"";return this};f.notes=function(b){if(null==b)return this.xcmt;this.xcmt=b||"";return this};f.refs=function(b){if(null==b)return this.ref;this.ref=b||"";return this};f.format=function(b){if(null==b)return this.fmt;this.fmt=b;return this};f.context=function(b){if(null==b)return this.ctx||"";this.ctx=b||"";return this};f.toString=f.toText=function(){return this.src.concat(this.msg,
201
+ [this.id,this.ctx]).join(" ")};f.weight=function(){var b=0;this.translation()||(b+=2);this.fuzzy()&&(b+=1);return b};f.equals=function(b){return this===b||this.hash()===b.hash()};f.hash=function(){return this.id};f.normalize=function(){for(var b=this.msg.length;0!==b--;)this.msg[b]=this.src[b]||""};f.disabled=function(b){return!!(this.lck||[])[b||0]};f.disable=function(b){(this.lck||(this.lck=[]))[b||0]=!0;return this};f.saved=function(b){var c=this.drt;if(!c)return!0;if(null!=b)return!c[b];for(b=
202
+ c.length;0!==b--;)if(c[b])return!1;return!0};f.unsave=function(b){(this.drt||(this.drt=[]))[b||0]=!0;return this};f.save=function(b){var c=this.drt;null==b?this.drt=null:c[b]=!1;return this};f.is=function(b){return b&&(b===this||b.idx===this.idx)};f.isHTML=function(b){if(null==b)return this.htm||!1;this.htm=b};f=null;return d}({},p,z));k.register("$14",function(d,f,h){function m(a){return{"Project-Id-Version":"PACKAGE VERSION","Report-Msgid-Bugs-To":"","POT-Creation-Date":a||"","PO-Revision-Date":a||
203
+ "","Last-Translator":"","Language-Team":"",Language:"","Plural-Forms":"","MIME-Version":"1.0","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"8bit"}}function b(a,b){var c=a||"";b&&(c+="\x00"+b);return c}function c(){return k.require("$26","collection.js").init()}function a(a){return k.require("$27","format.js").create(a)}function g(a){this.locale(a);this.length=0;this.rows=c();this.head=m(this.now())}function n(a,b){this.src=[a||""];this.msg=[b||""]}d.create=function(a){return new g(a)};
204
+ f=k.require("$28","messages.js").extend(g);f.now=function(){function a(b,c){for(var e=String(b);e.length<c;)e="0"+e;return e}var b=new Date,c=b.getUTCFullYear(),d=b.getUTCMonth()+1,f=b.getUTCDate(),g=b.getUTCHours(),b=b.getUTCMinutes();return a(c,4)+"-"+a(d,2)+"-"+a(f,2)+" "+a(g,2)+":"+a(b,2)+"+0000"};f.header=function(a,b){var c=this.head||(this.head={});if(null==b)return this.headers()[a]||"";c[a]=b||"";return this};f.headers=function(a){var b,c=this.now(),d=this.head||(this.head=m(c));if(null!=
205
+ a){for(b in a)d[b]=a[b];return this}var f=this.locale();a={};for(b in d)a[b]=String(d[b]);f?(a.Language=String(f)||"zxx",a["Language-Team"]=f.label||a.Language,a["Plural-Forms"]="nplurals="+(f.nplurals||"2")+"; plural="+(f.pluraleq||"n!=1"),a["PO-Revision-Date"]=c):(a.Language="",a["Plural-Forms"]="nplurals=INTEGER; plural=EXPRESSION",a["POT-Creation-Date"]=c,a["PO-Revision-Date"]="YEAR-MO-DA HO:MI+ZONE");a["X-Generator"]="Loco - https://localise.biz/";return a};f.get=function(a,c){var d=b(a,c);return this.rows.get(d)};
206
+ f.add=function(a,b){a instanceof n||(a=new n(a));b&&a.context(b);var c=a.hash();if(this.rows.get(c))throw Error("Duplicate message at index "+this.indexOf(a));a.idx=this.rows.add(c,a);this.length=this.rows.length;return a};f.load=function(a){for(var b=-1,c,d,f,g,h,k,m=(f=this.locale())&&f.nplurals||2,p=[],z=[],C=[],w=[];++b<a.length;)c=a[b],null==c.parent?(d=c.source||c.id,f=c.target||"",g=c.context,d||g?(h=new n(d,f),h._id=c._id,g&&h.context(g),c.flag&&h.flag(c.flag,0),c.comment&&h.comment(c.comment),
207
+ c.notes&&h.notes(c.notes),c.refs&&h.refs(c.refs),h.format(c.format),c.message=h,h.translation()?h.fuzzy()?C.push(h):z.push(h):w.push(h)):0===b&&"object"===typeof f&&(this.head=f)):p.push(c);for(b=-1;++b<p.length;)try{c=p[b];d=c.source||c.id;h=a[c.parent]&&a[c.parent].message;if(!h)throw Error("parent missing for plural "+d);k=c.plural;1===k&&h.plural(d);k>=m||(c.flag&&h.flag(c.flag,k),h.translate(c.target||"",k),c.format&&!h.format()&&h.format(c.format))}catch(v){}return this._add(w,C,z)};f._add=
208
+ function(a,b,c){c=[a,b,c];for(i=0;3>i;i++)for(b=c[i],a=-1;++a<b.length;)try{this.add(b[a])}catch(d){}return this};f.merge=function(a){var b,d=a.header("POT-Creation-Date"),f=this.rows,g=[],h=[],k=[],n=[],m=[];a=a.rows;this.rows.each(function(b,c){null==a.get(b)&&m.push(c)});a.each(function(a,c){try{(b=f.get(a))?(b.ref=c.ref,b.fmt=c.fmt):(b=c,n.push(b)),b.translation()?b.fuzzy()?h.push(b):k.push(b):g.push(b)}catch(d){}});this.rows=c();this._add(g,h,k);d&&this.header("POT-Creation-Date",d);return{add:n,
209
+ del:m}};f.wrap=function(b){this.fmtr=a(b);return this};f.toString=function(){var b,c=this.locale(),d=[],f=[],g=this.headers(),h=!c,k=c&&c.nplurals||2,m=this.fmtr||a();for(b in g)f.push(b+": "+g[b]);f=new n("",f.join("\n"));h&&f.fuzzy(0,!0);d.push(f.toString());d.push("");this.rows.each(function(a,b){a&&(d.push(b.cat(m,h,k)),d.push(""))});return d.join("\n")};f=k.require("$29","message.js").extend(n);f.hash=function(){return b(this.source(),this.context())};f.toString=function(){return this.cat(a())};
210
+ f.cat=function(a,b,c){var d,f=[],g;(g=this.cmt)&&f.push(a.prefix(g,"# "));(g=this.xcmt)&&f.push(a.prefix(g,"#. "));d=this.ref;if(g=this._id)d+=(d?" ":"")+"loco:"+g;d&&/\S/.test(d)&&f.push(a.refs(d));!b&&this.fuzzy()&&f.push("#, fuzzy");(g=this.fmt)&&f.push("#, "+g+"-format");(g=this.ctx)&&f.push(a.pair("msgctxt",g));f.push(a.pair("msgid",this.src[0]));if(null==this.src[1])f.push(a.pair("msgstr",b?"":this.msg[0]));else for(d=-1,f.push(a.pair("msgid_plural",this.src[1])),g=this.msg||["",""],c=c||g.length;++d<
211
+ c;)f.push(a.pair("msgstr["+d+"]",b?"":g[d]||""));return f.join("\n")};f.compare=function(a,b){var c=this.weight(),d=a.weight();if(c>d)return 1;if(c<d)return-1;if(b){c=this.hash().toLowerCase();d=a.hash().toLowerCase();if(c<d)return 1;if(c>d)return-1}return 0};f=f=null;return d}({},p,z));k.register("$16",function(d,f,k){d.init=function(d){function b(){D&&D.dialog("close");h(d).find('input[type="submit"]').attr("disabled",!1);h(s).addClass("jshide");h(f).triggerHandler("resize");t&&t(!0)}function c(){h(d).find('input[type="submit"]').attr("disabled",
212
+ !0);t&&t(!1)}function a(a){var b,c;for(b in z)c=z[b],a[b]?a[b].value=c:h('<input type="hidden" />').attr("name",b).appendTo(a).val(c)}function g(a){a.preventDefault();a=h(a.target).serializeArray();p(a);r=!0;return!1}function k(a){a.preventDefault();D.dialog("close");return!1}function e(a){a.preventDefault();D.dialog("open");return!1}function l(c){z=c.authed&&c.creds;y=c.method;if(z)"direct"!==y&&(a(d),r&&c.success&&A.notices.success(c.success)),E=!0,b();else if(E=!1,c.reason)A.notices.info(c.reason);
213
+ else if(c=c.prompt){var l;D||(h(s).find("button.button-small").click(e),D=h('<div id="loco-fs-creds"></div>').dialog({dialogClass:"request-filesystem-credentials-dialog loco-modal",minWidth:580,modal:!0,autoOpen:!1,closeOnEscape:!0}));l=D;l.html(c).find("form").submit(g);l.dialog("option","title",l.find("h2").remove().text());l.find("button.cancel-button").show().click(k);l.find('input[type="submit"]').addClass("button-primary");h(s).removeClass("jshide");h(f).triggerHandler("resize")}else A.notices.error("Server didn't return credentials, nor a prompt for credentials")}
214
+ function q(){b()}function p(a){r=!1;a.path=C;a.auth=w;A.ajax.setNonce("fsConnect",v).post("fsConnect",a,l,q);return a}var z,t,s=d,y=null,r=!1,E=!1,A=f.locoScope,C=d.path.value,w=d.auth.value,v=d["loco-nonce"].value,D;d.connection_type?(z={},z.connection_type=d.connection_type.value,E=!0):C&&w&&(c(),p({}));return{applyCreds:function(b){if(b.nodeType)a(b);else{var c,d=z||{};for(c in d)b[c]=d[c]}return this},setForm:function(b){d=b;E||c();a(b);return this},connect:function(){var a=h(d).serializeArray();
215
+ C=a.path;w=a.auth;p(a);return this},listen:function(a){t=a;E&&a(!0);return this}}};return d}({},p,z));k.register("$17",function(d,f,p){function m(d,e,f,h){e="n"===f?c(e):a(e);h&&(e=g(e));return b([].sort,[e])(d)}function b(a,b){return function(c){a.apply(c,b);return c}}function c(a){return function(b,c){var d=b&&b[a]||0,f=c&&c[a]||0;return d===f?0:d>f?1:-1}}function a(a){return function(b,c){return(b&&b[a]||"").localeCompare(c&&c[a]||"")}}function g(a){return function(b,c){return-1*a(b,c)}}d.init=
216
+ function(a){function b(a){var c=-1,d=a.length;for(h("tr",r).remove();++c<d;)r.appendChild(a[c].$)}function c(a){p=a?A.find(a,d):d.slice(0);y&&(a=f[y],p=m(p,y,a.type,a.desc));b(p)}var d=[],f=[],g=0,p,s,y,r=a.getElementsByTagName("tbody")[0],z=a.getElementsByTagName("thead")[0],A=k.require("$7","fulltext.js").init();z&&r&&(h("th",z).each(function(a,c){var k=c.getAttribute("data-sort-type");k&&(a=g,h(c).addClass("loco-sort").click(function(c){c.preventDefault();c=a;var g=f[c],k=g.type,l=!(g.desc=!g.desc);
217
+ p=m(p||d.slice(0),c,k,l);b(p);s&&s.removeClass("loco-desc loco-asc");s=h(g.$).addClass(l?"loco-desc":"loco-asc").removeClass(l?"loco-asc":"loco-desc");y=c;return!1}),f[g]={$:c,type:k});c.hasAttribute("colspan")?g+=Number(c.getAttribute("colspan")):g++}),h("tr",r).each(function(a,b){var c,e,g,h=[],k={_:a,$:b},l=b.getElementsByTagName("td");for(e in f){c=l[e];(g=c.textContent.replace(/(^\s+|\s+$)/g,""))&&h.push(g);c.hasAttribute("data-sort-value")&&(g=c.getAttribute("data-sort-value"));switch(f[e].type){case "n":g=
218
+ Number(g)}k[e]=g}d[a]=k;A.index(a,h)}),a=h('form.loco-filter input[type="text"]',a.parentNode),a.length&&(a=a[0],z=h(a.form),1<d.length?k.require("$8","LocoTextListener.js").listen(a,c):z.hide(),z.on("submit",function(a){a.preventDefault();return!1})))};return d}({},p,z));var F=p.locoScope||(p.locoScope={});p=p.locoConf||(p.locoConf={});z=k.require("$1","t.js").init();var Q=p.wplang;k.require("$2","array.js");F.l10n=z;z.load(p.wpl10n);Q&&z.pluraleq(Q.pluraleq);F.string=k.require("$3","string.js");
219
+ F.notices=k.require("$4","notices.js").init(z);F.ajax=k.require("$5","ajax.js").init(p).localise(z);F.locale=k.require("$6","locale.js");F.fulltext=k.require("$7","fulltext.js");F.watchtext=k.require("$8","LocoTextListener.js").listen;F.selector=k.require("$9","LocoSelector.js").create;F.autocomp=k.require("$10","LocoAutoComplete.js").init;F.tooltip=k.require("$11","tooltip.js");F.po={ed:k.require("$12","poedit.js"),kbd:k.require("$13","hotkeys.js"),init:k.require("$14","po.js").create,ace:k.require("$15",
220
+ "ace.js").strf("php")};F.fs=k.require("$16","fsconn.js");h("#loco.wrap table.wp-list-table").each(function(d,f){k.require("$17","tables.js").init(f)})})(window,document,window.jQuery);
readme.txt CHANGED
@@ -2,8 +2,8 @@
2
  Contributors: timwhitlock
3
  Tags: translation, translators, localization, localisation, l10n, i18n, Gettext, PO, MO, productivity, multilingual
4
  Requires at least: 4.1
5
- Tested up to: 4.8.2
6
- Stable tag: 2.0.16
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -86,6 +86,15 @@ Help is provided via the [plugin support forum](https://wordpress.org/support/pl
86
 
87
  == Changelog ==
88
 
 
 
 
 
 
 
 
 
 
89
  = 2.0.16 =
90
  * File writer observes wp_is_file_mod_allowed
91
  * Fixed progress bug in editor for locales with nplurals=1
@@ -198,7 +207,7 @@ Help is provided via the [plugin support forum](https://wordpress.org/support/pl
198
 
199
  == Upgrade Notice ==
200
 
201
- = 2.0.16 =
202
  * Various bug fixes and improvements
203
 
204
 
2
  Contributors: timwhitlock
3
  Tags: translation, translators, localization, localisation, l10n, i18n, Gettext, PO, MO, productivity, multilingual
4
  Requires at least: 4.1
5
+ Tested up to: 4.9.1
6
+ Stable tag: 2.0.17
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
86
 
87
  == Changelog ==
88
 
89
+ = 2.0.17 =
90
+ * Unofficial languages showing in “Installed” dropdown
91
+ * Fixed extraction bug where comment confused with file header
92
+ * Fixed issue where src attributes requested from server during HTML strip
93
+ * Added loco_admin_init hook into ajax router for consistency
94
+ * Added warning on file info page when file is managed by WordPress
95
+ * Minor help link and layout tweaks
96
+ * Bumped WP compatibility to 4.9.1
97
+
98
  = 2.0.16 =
99
  * File writer observes wp_is_file_mod_allowed
100
  * Fixed progress bug in editor for locales with nplurals=1
207
 
208
  == Upgrade Notice ==
209
 
210
+ = 2.0.17 =
211
  * Various bug fixes and improvements
212
 
213
 
src/Locale.php CHANGED
@@ -157,8 +157,8 @@ class Loco_Locale implements JsonSerializable {
157
  $this->tag['variant'] = strtolower($this->tag['variant']);
158
  return $this;
159
  }
160
-
161
-
162
  /**
163
  * Resolve this locale's "official" name from WordPress's translation api
164
  * @return string English name currently set
@@ -169,7 +169,7 @@ class Loco_Locale implements JsonSerializable {
169
  $this->setName( $raw['english_name'], $raw['native_name'] );
170
  }
171
  return $this->name;
172
- }
173
 
174
 
175
 
@@ -208,6 +208,25 @@ class Loco_Locale implements JsonSerializable {
208
  }
209
 
210
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
211
 
212
  /**
213
  * @return array
157
  $this->tag['variant'] = strtolower($this->tag['variant']);
158
  return $this;
159
  }
160
+
161
+
162
  /**
163
  * Resolve this locale's "official" name from WordPress's translation api
164
  * @return string English name currently set
169
  $this->setName( $raw['english_name'], $raw['native_name'] );
170
  }
171
  return $this->name;
172
+ }
173
 
174
 
175
 
208
  }
209
 
210
 
211
+ /**
212
+ * Ensure locale has a label, even if it has to fall back to language code or error
213
+ * @return string
214
+ */
215
+ public function ensureName( Loco_api_WordPressTranslations $api ){
216
+ $name = $this->name;
217
+ if( ! $name ){
218
+ $name = $this->fetchName($api);
219
+ if( ! $name ){
220
+ $name = $this->buildName();
221
+ if( ! $name ){
222
+ $name = (string) $this;
223
+ }
224
+ }
225
+ $this->setName( $name );
226
+ }
227
+ return $name;
228
+ }
229
+
230
 
231
  /**
232
  * @return array
src/admin/bundle/ConfController.php CHANGED
@@ -135,6 +135,7 @@ class Loco_admin_bundle_ConfController extends Loco_admin_bundle_BaseController
135
  'type' => $bundle->getType()
136
  );
137
  $this->set( 'xmlUrl', Loco_mvc_AjaxRouter::generate( 'DownloadConf', $args ) );
 
138
 
139
  $this->prepareNavigation()->add( __('Advanced configuration','loco-translate') );
140
  return $this->view('admin/bundle/conf', compact('conf','base','name','excl') );
135
  'type' => $bundle->getType()
136
  );
137
  $this->set( 'xmlUrl', Loco_mvc_AjaxRouter::generate( 'DownloadConf', $args ) );
138
+ $this->set( 'manUrl', apply_filters('loco_external','https://localise.biz/wordpress/plugin/manual/bundle-config') );
139
 
140
  $this->prepareNavigation()->add( __('Advanced configuration','loco-translate') );
141
  return $this->view('admin/bundle/conf', compact('conf','base','name','excl') );
src/admin/bundle/ViewController.php CHANGED
@@ -174,7 +174,7 @@ class Loco_admin_bundle_ViewController extends Loco_admin_bundle_BaseController
174
  $api = new Loco_api_WordPressTranslations;
175
  /* @var $locale Loco_Locale */
176
  foreach( $locales as $tag => $locale ){
177
- $locale->fetchName($api) or $locale->buildName() or $locale->setName($tag);
178
  }
179
  }
180
  // collate as unique [PO,MO] pairs ensuring canonical template excluded
174
  $api = new Loco_api_WordPressTranslations;
175
  /* @var $locale Loco_Locale */
176
  foreach( $locales as $tag => $locale ){
177
+ $locale->ensureName($api);
178
  }
179
  }
180
  // collate as unique [PO,MO] pairs ensuring canonical template excluded
src/admin/file/BaseController.php CHANGED
@@ -54,7 +54,7 @@ abstract class Loco_admin_file_BaseController extends Loco_admin_bundle_BaseCont
54
  else {
55
  $locale = $file->getLocale();
56
  if( $locale->isValid() ){
57
- $locale->fetchName( new Loco_api_WordPressTranslations ) or $locale->buildName();
58
  }
59
  else {
60
  $locale = null;
54
  else {
55
  $locale = $file->getLocale();
56
  if( $locale->isValid() ){
57
+ $locale->ensureName( new Loco_api_WordPressTranslations );
58
  }
59
  else {
60
  $locale = null;
src/admin/file/InfoController.php CHANGED
@@ -54,6 +54,11 @@ class Loco_admin_file_InfoController extends Loco_admin_file_BaseController {
54
  $info['writable'] = $file->writable();
55
  $info['deletable'] = $file->deletable();
56
  $info['mtime'] = $file->modified();
 
 
 
 
 
57
  }
58
 
59
  // location info
@@ -95,10 +100,9 @@ class Loco_admin_file_InfoController extends Loco_admin_file_BaseController {
95
  $code = (string) $locale;
96
  if( $locale->isValid() ){
97
  $api = new Loco_api_WordPressTranslations;
98
- $locale->fetchName( $api );
99
  $this->set( 'locale', new Loco_mvc_ViewParams( array(
100
  'code' => $code,
101
- 'name' => $locale->getName(),
102
  'icon' => $locale->getIcon(),
103
  'lang' => $locale->lang,
104
  ) ) );
54
  $info['writable'] = $file->writable();
55
  $info['deletable'] = $file->deletable();
56
  $info['mtime'] = $file->modified();
57
+ // Notify if file is managed by WordPress
58
+ $api = new Loco_api_WordPressFileSystem;
59
+ if( $api->isAutoUpdatable($file) ){
60
+ $info['autoupdate'] = true;
61
+ }
62
  }
63
 
64
  // location info
100
  $code = (string) $locale;
101
  if( $locale->isValid() ){
102
  $api = new Loco_api_WordPressTranslations;
 
103
  $this->set( 'locale', new Loco_mvc_ViewParams( array(
104
  'code' => $code,
105
+ 'name' => $locale->ensureName($api),
106
  'icon' => $locale->getIcon(),
107
  'lang' => $locale->lang,
108
  ) ) );
src/admin/init/InitPoController.php CHANGED
@@ -102,18 +102,36 @@ class Loco_admin_init_InitPoController extends Loco_admin_bundle_BaseController
102
  $locales = array();
103
  foreach( $api->getAvailableCore() as $tag => $raw ){
104
  $locale = Loco_Locale::parse($tag);
 
105
  $vparam = new Loco_mvc_ViewParams( array(
 
106
  'icon' => $locale->getIcon(),
107
- 'value' => (string) $locale,
108
- 'label' => $locale->fetchName($api),
109
  ) );
110
  if( $api->isInstalled($tag) ){
111
- $installed[] = $vparam;
112
  }
113
  else {
114
- $locales[] = $vparam;
115
  }
116
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
117
  $this->set( 'locales', $locales );
118
  $this->set( 'installed', $installed );
119
 
@@ -126,7 +144,7 @@ class Loco_admin_init_InitPoController extends Loco_admin_bundle_BaseController
126
  $filechoice = new Loco_fs_FileList;
127
  }
128
 
129
-
130
  // show information about POT file if we are initialializing from template
131
  if( $potfile && $potfile->exists() ){
132
  $meta = Loco_gettext_Metadata::load($potfile);
@@ -181,6 +199,7 @@ class Loco_admin_init_InitPoController extends Loco_admin_bundle_BaseController
181
  // there is no point checking whether any of these file exist, because we don't know what language will be chosen yet.
182
  $locations = array();
183
  $preferred = null;
 
184
  /* @var $pofile Loco_fs_File */
185
  foreach( $filechoice as $pofile ){
186
  $parent = new Loco_fs_LocaleDirectory( $pofile->dirname() );
@@ -202,12 +221,17 @@ class Loco_admin_init_InitPoController extends Loco_admin_bundle_BaseController
202
  }
203
  $params = new Loco_mvc_ViewParams( array (
204
  'locked' => ! $parent->writable(),
 
205
  'parent' => Loco_mvc_FileParams::create( $parent ),
206
  'hidden' => $pofile->getRelativePath($content_dir),
207
  'holder' => str_replace( (string) $locale, '<span>&lt;locale&gt;</span>', $pofile->basename() ),
208
  ) );
 
 
 
 
209
  // use first writable (or createable) location as default option
210
- if( is_null($preferred) && ! $params['locked'] ){
211
  $preferred = $pofile;
212
  $params['checked'] = 'checked';
213
  }
102
  $locales = array();
103
  foreach( $api->getAvailableCore() as $tag => $raw ){
104
  $locale = Loco_Locale::parse($tag);
105
+ $tag = (string) $locale;
106
  $vparam = new Loco_mvc_ViewParams( array(
107
+ 'value' => $tag,
108
  'icon' => $locale->getIcon(),
109
+ 'label' => $locale->ensureName($api),
 
110
  ) );
111
  if( $api->isInstalled($tag) ){
112
+ $installed[$tag] = $vparam;
113
  }
114
  else {
115
+ $locales[$tag] = $vparam;
116
  }
117
  }
118
+ // Pick up any non-standard languages installed
119
+ foreach( $api->getInstalledCore() as $tag ){
120
+ if( ! array_key_exists($tag,$installed) ){
121
+ $locale = Loco_Locale::parse($tag);
122
+ if( $locale->isValid() ){
123
+ $tag = (string) $tag;
124
+ // We may not have names for these, so just the language tag will show
125
+ $installed[$tag] = new Loco_mvc_ViewParams( array(
126
+ 'value' => $tag,
127
+ 'icon' => $locale->getIcon(),
128
+ 'label' => $locale->ensureName($api),
129
+ ) );
130
+ }
131
+ }
132
+ }
133
+
134
+ // two locale lists built for "installed" and "available" dropdowns
135
  $this->set( 'locales', $locales );
136
  $this->set( 'installed', $installed );
137
 
144
  $filechoice = new Loco_fs_FileList;
145
  }
146
 
147
+
148
  // show information about POT file if we are initialializing from template
149
  if( $potfile && $potfile->exists() ){
150
  $meta = Loco_gettext_Metadata::load($potfile);
199
  // there is no point checking whether any of these file exist, because we don't know what language will be chosen yet.
200
  $locations = array();
201
  $preferred = null;
202
+ $filesystem = new Loco_api_WordPressFileSystem;
203
  /* @var $pofile Loco_fs_File */
204
  foreach( $filechoice as $pofile ){
205
  $parent = new Loco_fs_LocaleDirectory( $pofile->dirname() );
221
  }
222
  $params = new Loco_mvc_ViewParams( array (
223
  'locked' => ! $parent->writable(),
224
+ 'unsafe' => $filesystem->isAutoUpdatable($pofile),
225
  'parent' => Loco_mvc_FileParams::create( $parent ),
226
  'hidden' => $pofile->getRelativePath($content_dir),
227
  'holder' => str_replace( (string) $locale, '<span>&lt;locale&gt;</span>', $pofile->basename() ),
228
  ) );
229
+ // note that location may be vulnerable to overwites
230
+ if( $params['unsafe'] ){
231
+ $this->set('has_unsafe', true );
232
+ }
233
  // use first writable (or createable) location as default option
234
+ if( is_null($preferred) && ! $params['locked'] && ! $params['unsafe'] ){
235
  $preferred = $pofile;
236
  $params['checked'] = 'checked';
237
  }
src/api/WordPressFileSystem.php CHANGED
@@ -285,4 +285,38 @@ class Loco_api_WordPressFileSystem {
285
  }
286
 
287
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
288
  }
285
  }
286
 
287
 
288
+
289
+ /**
290
+ * Check if a location is safe from WordPress automatic updates
291
+ * @return bool
292
+ */
293
+ public function isAutoUpdatable( Loco_fs_File $file ){
294
+ // all paths safe from auto-updates if auto-updates are completely disabled
295
+ // WordPress >= 4.8 can disable auto updates completely with "automatic_updater" context
296
+ if( function_exists('wp_is_file_mod_allowed') && ! wp_is_file_mod_allowed('automatic_updater') ){
297
+ return false;
298
+ }
299
+ if( apply_filters( 'automatic_updater_disabled', loco_constant('AUTOMATIC_UPDATER_DISABLED') ) ) {
300
+ return false;
301
+ }
302
+ // TODO provide a useful context for the update offer passed to filters
303
+ // WordPress updater will have taken this from API data which we don't have here.
304
+ $item = new stdClass;
305
+ // any theme or plugin locations are unsafe if themes/plugins can be updated
306
+ if( $file->underThemeDirectory() ){
307
+ return apply_filters( 'auto_update_theme', true, $item );
308
+ }
309
+ if( $file->underPluginDirectory() ){
310
+ return apply_filters( 'auto_update_plugin', true, $item );
311
+ }
312
+ // global languages subdirectories other than plugins and themes are deemed safe
313
+ $sub = $file->getParent()->getRelativePath( loco_constant('WP_LANG_DIR') );
314
+ if( '' === $sub || 'themes' === $sub || 'plugins' === $sub ){
315
+ return apply_filters( 'auto_update_translation', true, $item );
316
+ }
317
+ // else safe (not auto-updatable)
318
+ return false;
319
+ }
320
+
321
+
322
  }
src/api/WordPressTranslations.php CHANGED
@@ -3,12 +3,20 @@
3
  *
4
  */
5
  class Loco_api_WordPressTranslations {
6
-
7
  /**
 
8
  * @var array
9
  */
10
  private $installed;
11
 
 
 
 
 
 
 
 
12
  /**
13
  * Wrap wp_get_available_translations
14
  * @return array
@@ -22,16 +30,36 @@ class Loco_api_WordPressTranslations {
22
  }
23
 
24
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  /**
26
  * Check if a given locale is installed
27
  * @return bool
28
  */
29
  public function isInstalled( $locale ){
30
- if( ! isset($this->installed) ){
31
- // wp-includes/l10n.php should always be included at runtime
32
- $this->installed = array( 'en_US' => 1 ) + array_flip( get_available_languages() );
33
- }
34
- return array_key_exists( (string) $locale, $this->installed );
35
  }
36
 
37
 
3
  *
4
  */
5
  class Loco_api_WordPressTranslations {
6
+
7
  /**
8
+ * Cache of data returned from get_available_languages (not cached by WP)
9
  * @var array
10
  */
11
  private $installed;
12
 
13
+ /**
14
+ * Hash map of installed languages indexed by tag
15
+ * @var array
16
+ */
17
+ private $installed_hash;
18
+
19
+
20
  /**
21
  * Wrap wp_get_available_translations
22
  * @return array
30
  }
31
 
32
 
33
+ /**
34
+ * Wrap get_available_languages
35
+ * @return array
36
+ */
37
+ public function getInstalledCore(){
38
+ // wp-includes/l10n.php should always be included at runtime
39
+ if( ! is_array($this->installed) ){
40
+ $this->installed = get_available_languages();
41
+ }
42
+ return $this->installed;
43
+ }
44
+
45
+
46
+ /**
47
+ * @return array
48
+ */
49
+ private function getInstalledHash(){
50
+ if( ! is_array($this->installed_hash) ){
51
+ $this->installed_hash = array( 'en_US' => 1 ) + array_flip( $this->getInstalledCore() );
52
+ }
53
+ return $this->installed_hash;
54
+ }
55
+
56
+
57
  /**
58
  * Check if a given locale is installed
59
  * @return bool
60
  */
61
  public function isInstalled( $locale ){
62
+ return array_key_exists( (string) $locale, $this->getInstalledHash() );
 
 
 
 
63
  }
64
 
65
 
src/data/CompiledData.php CHANGED
@@ -3,7 +3,7 @@
3
  * Static, read-only caching of data held in serialized files.
4
  * Used for pre-built arrays of information such as plural forms.
5
  */
6
- class Loco_data_CompiledData implements ArrayAccess {
7
 
8
  /**
9
  * @var array
@@ -62,5 +62,16 @@ class Loco_data_CompiledData implements ArrayAccess {
62
  public function offsetSet( $k, $v ){
63
  throw new RuntimeException('Read only');
64
  }
 
 
 
 
65
 
 
 
 
 
 
 
 
66
  }
3
  * Static, read-only caching of data held in serialized files.
4
  * Used for pre-built arrays of information such as plural forms.
5
  */
6
+ class Loco_data_CompiledData implements ArrayAccess, Countable, IteratorAggregate {
7
 
8
  /**
9
  * @var array
62
  public function offsetSet( $k, $v ){
63
  throw new RuntimeException('Read only');
64
  }
65
+
66
+ public function count(){
67
+ return count($this->data);
68
+ }
69
 
70
+ /**
71
+ * Implements IteratorAggregate::getIterator
72
+ * @return ArrayIterator
73
+ */
74
+ public function getIterator(){
75
+ return new ArrayIterator( $this->data );
76
+ }
77
  }
src/fs/File.php CHANGED
@@ -479,7 +479,7 @@ class Loco_fs_File {
479
 
480
 
481
  /**
482
- * Check if path is under a global system directory
483
  * @return bool
484
  */
485
  public function underGlobalDirectory(){
479
 
480
 
481
  /**
482
+ * Check if path is under the global system directory
483
  * @return bool
484
  */
485
  public function underGlobalDirectory(){
src/mvc/AjaxRouter.php CHANGED
@@ -56,8 +56,13 @@ class Loco_mvc_AjaxRouter extends Loco_hooks_Hookable {
56
  // autoloader will throw error if controller class doesn't exist
57
  $this->ctrl = new $class;
58
  $this->ctrl->_init( $_REQUEST );
59
- //
60
- do_action('loco_controller_init', $this->ctrl );
 
 
 
 
 
61
  }
62
  catch( Loco_error_Exception $e ){
63
  $this->ctrl = null;
@@ -90,6 +95,7 @@ class Loco_mvc_AjaxRouter extends Loco_hooks_Hookable {
90
  Loco_output_Buffer::clear();
91
  Loco_output_Buffer::check();
92
  // output stream is clear, we can flush JSON
 
93
  header('Content-Length: '.strlen($json), true );
94
  header('Content-Type: application/json; charset=UTF-8', true );
95
  // avoid hijacking of exit via wp_die_ajax_handler. Tests call renderAjax directly.
56
  // autoloader will throw error if controller class doesn't exist
57
  $this->ctrl = new $class;
58
  $this->ctrl->_init( $_REQUEST );
59
+ // hook name compatible with AdminRouter
60
+ do_action('loco_admin_init', $this->ctrl );
61
+ // previous hook name is deprecated
62
+ if( has_action('loco_controller_init') ){
63
+ Loco_error_AdminNotices::debug('`loco_controller_init` is deprecated, use `loco_admin_init`');
64
+ do_action('loco_controller_init', $this->ctrl );
65
+ }
66
  }
67
  catch( Loco_error_Exception $e ){
68
  $this->ctrl = null;
95
  Loco_output_Buffer::clear();
96
  Loco_output_Buffer::check();
97
  // output stream is clear, we can flush JSON
98
+ header('HTTP/1.1 200 OK', true, 200 );
99
  header('Content-Length: '.strlen($json), true );
100
  header('Content-Type: application/json; charset=UTF-8', true );
101
  // avoid hijacking of exit via wp_die_ajax_handler. Tests call renderAjax directly.
src/mvc/ViewParams.php CHANGED
@@ -159,6 +159,17 @@ class Loco_mvc_ViewParams extends ArrayObject implements JsonSerializable {
159
  return esc_attr( $this->__get($p) );
160
  }*/
161
 
 
 
 
 
 
 
 
 
 
 
 
162
 
163
 
164
 
159
  return esc_attr( $this->__get($p) );
160
  }*/
161
 
162
+
163
+
164
+ /**
165
+ * @return Loco_mvc_ViewParams
166
+ */
167
+ public function sort( $callback ){
168
+ $raw = $this->getArrayCopy();
169
+ uasort( $raw, $callback );
170
+ $this->exchangeArray( $raw );
171
+ return $this;
172
+ }
173
 
174
 
175
 
src/test/WordPressTestCase.php CHANGED
@@ -36,7 +36,7 @@ abstract class Loco_test_WordPressTestCase extends WP_UnitTestCase {
36
  */
37
  protected static function dropOptions(){
38
  global $wpdb;
39
- $query = $wpdb->prepare( "SELECT option_name FROM $wpdb->options WHERE option_name LIKE '%s'", array('loco_%','_transient_loco_%','_transient_timeout_loco_%') );
40
  if( $results = $wpdb->get_results($query,ARRAY_N) ){
41
  foreach( $results as $row ){
42
  list( $option_name ) = $row;
36
  */
37
  protected static function dropOptions(){
38
  global $wpdb;
39
+ $query = $wpdb->prepare( "SELECT option_name FROM $wpdb->options WHERE option_name LIKE '%s' OR option_name LIKE '%s'", array('loco_%','_%_loco_%') );
40
  if( $results = $wpdb->get_results($query,ARRAY_N) ){
41
  foreach( $results as $row ){
42
  list( $option_name ) = $row;
tpl/admin/file/info.php CHANGED
@@ -99,5 +99,21 @@ echo $header;
99
  <code><?php $dir->ls()?></code>
100
  </p>
101
  </div><?php
102
- endif;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
103
 
99
  <code><?php $dir->ls()?></code>
100
  </p>
101
  </div><?php
102
+ endif;
103
+
104
+ if( $file->autoupdate ):?>
105
+ <div class="notice inline notice-warning">
106
+ <h3 class="has-icon">
107
+ <?php esc_html_e('WordPress system file','loco-translate')?>
108
+ </h3>
109
+ <p>
110
+ <?php esc_html_e('This file location is managed by WordPress updates','loco-translate')?>.
111
+ <?php esc_html_e("It's not recommended to edit this file directly",'loco-translate')?>.
112
+ <a target="_blank" href="<?php
113
+ echo esc_url( apply_filters('loco_external','https://localise.biz/wordpress/plugin/faqs/files-deleted') )?>"><?php
114
+ esc_html_e('See FAQ','loco-translate');
115
+ ?></a>
116
+ </p>
117
+ </div><?php
118
+ endif;
119
 
tpl/admin/help/tab-init-po.php CHANGED
@@ -4,6 +4,10 @@
4
  <p>
5
  This screen is for adding new translation files on your server's file system.
6
  </p>
 
 
 
 
7
  <p>
8
  <a href="<?php echo esc_url(apply_filters('loco_external','https://localise.biz/wordpress/plugin/manual/msginit'))?>" target="_blank">Full documentation</a>
9
  </p>
4
  <p>
5
  This screen is for adding new translation files on your server's file system.
6
  </p>
7
+ <p>
8
+ The location you choose is important. Some file locations can be overwritten by WordPress updates.
9
+ <a href="<?php echo esc_url(apply_filters('loco_external','https://localise.biz/wordpress/plugin/faqs/files-deleted'))?>" target="_blank">See FAQ</a>
10
+ </p>
11
  <p>
12
  <a href="<?php echo esc_url(apply_filters('loco_external','https://localise.biz/wordpress/plugin/manual/msginit'))?>" target="_blank">Full documentation</a>
13
  </p>
tpl/admin/init/init-po.php CHANGED
@@ -2,8 +2,8 @@
2
  /**
3
  * Intitialize a new PO translations file
4
  */
5
-
6
  $this->extend('../layout');
 
7
  ?>
8
 
9
  <?php if( $params->has('ext') ):?>
@@ -32,7 +32,7 @@ $this->extend('../layout');
32
  <tr valign="top">
33
  <th scope="row">
34
  <label for="loco-select-locale">
35
- <?php esc_html_e('Choose a language','loco-translate')?>:
36
  </label>
37
  </th>
38
  <td>
@@ -77,11 +77,11 @@ $this->extend('../layout');
77
  <tr valign="top">
78
  <th scope="row">
79
  <label>
80
- <?php esc_html_e('Choose a location','loco-translate')?>:
81
  </label>
82
  </th>
83
  <td>
84
- <p class="description"> </p>
85
  </td>
86
  </tr><?php
87
  $choiceId = 0;
@@ -103,7 +103,6 @@ $this->extend('../layout');
103
  <input type="radio" name="select-path" value="<?php echo $offset?>" <?php echo $choice->checked?> />
104
  <input type="hidden" name="path[<?php echo $offset?>]" value="<?php $choice->e('hidden')?>" />
105
  <code class="path"><?php $parent->e('relpath')?>/<?php echo $choice->holder?></code>
106
- <?php $choice->locked && print('<!-- no direct fs -->')?>
107
  </label>
108
  </p><?php
109
  endforeach?>
@@ -115,9 +114,14 @@ $this->extend('../layout');
115
  if( $params->has('sourceLocale') ):?>
116
  <tbody>
117
  <tr valign="top">
118
- <th scope="row" rowspan="2">
119
- <?php esc_html_e('Template options','loco-translate')?>:
120
  </th>
 
 
 
 
 
121
  <td>
122
  <p>
123
  <label>
@@ -133,7 +137,7 @@ $this->extend('../layout');
133
  </p>
134
  </td>
135
  </tr>
136
- <tr valign="top">
137
  <td>
138
  <p>
139
  <label>
2
  /**
3
  * Intitialize a new PO translations file
4
  */
 
5
  $this->extend('../layout');
6
+ $help = apply_filters('loco_external','https://localise.biz/wordpress/plugin/manual/msginit');
7
  ?>
8
 
9
  <?php if( $params->has('ext') ):?>
32
  <tr valign="top">
33
  <th scope="row">
34
  <label for="loco-select-locale">
35
+ 1. <?php esc_html_e('Choose a language','loco-translate')?>:
36
  </label>
37
  </th>
38
  <td>
77
  <tr valign="top">
78
  <th scope="row">
79
  <label>
80
+ 2. <?php esc_html_e('Choose a location','loco-translate')?>:
81
  </label>
82
  </th>
83
  <td>
84
+ <a href="<?php echo esc_url($help)?>#locations" class="has-icon icon-help" target="_blank"><?php esc_html_e("What's this?",'loco-translate')?></a>
85
  </td>
86
  </tr><?php
87
  $choiceId = 0;
103
  <input type="radio" name="select-path" value="<?php echo $offset?>" <?php echo $choice->checked?> />
104
  <input type="hidden" name="path[<?php echo $offset?>]" value="<?php $choice->e('hidden')?>" />
105
  <code class="path"><?php $parent->e('relpath')?>/<?php echo $choice->holder?></code>
 
106
  </label>
107
  </p><?php
108
  endforeach?>
114
  if( $params->has('sourceLocale') ):?>
115
  <tbody>
116
  <tr valign="top">
117
+ <th scope="row" rowspan="3">
118
+ 3. <?php esc_html_e('Template options','loco-translate')?>:
119
  </th>
120
+ <td>
121
+ <a href="<?php echo esc_url($help)?>#copy" class="has-icon icon-help" target="_blank"><?php esc_html_e("What's this?",'loco-translate')?></a>
122
+ </td>
123
+ </tr>
124
+ <tr valign="top" class="compact">
125
  <td>
126
  <p>
127
  <label>
137
  </p>
138
  </td>
139
  </tr>
140
+ <tr valign="top" class="compact">
141
  <td>
142
  <p>
143
  <label>
tpl/admin/init/init-pot.php CHANGED
@@ -2,8 +2,8 @@
2
  /**
3
  * Intitialize a new POT template file
4
  */
5
-
6
  $this->extend('../layout');
 
7
  ?>
8
 
9
  <div class="notice inline notice-generic">
@@ -38,6 +38,7 @@ $this->extend('../layout');
38
 
39
  <p class="submit">
40
  <button type="submit" class="button button-large button-primary" disabled><?php esc_html_e('Create template','loco-translate')?></button>
 
41
  </p>
42
 
43
  </form>
2
  /**
3
  * Intitialize a new POT template file
4
  */
 
5
  $this->extend('../layout');
6
+ $help = apply_filters('loco_external','https://localise.biz/wordpress/plugin/manual/templates');
7
  ?>
8
 
9
  <div class="notice inline notice-generic">
38
 
39
  <p class="submit">
40
  <button type="submit" class="button button-large button-primary" disabled><?php esc_html_e('Create template','loco-translate')?></button>
41
+ <a href="<?php echo esc_url($help)?>" class="button button-large button-link has-icon icon-help" target="_blank"><?php esc_html_e("About templates",'loco-translate')?></a>
42
  </p>
43
 
44
  </form>
tpl/admin/init/init-prompt.php CHANGED
@@ -3,9 +3,7 @@
3
  * Notice before creating a PO that there is no POT
4
  */
5
  $this->extend('../layout');
6
-
7
  $help = apply_filters('loco_external','https://localise.biz/wordpress/plugin/manual/templates');
8
-
9
  ?>
10
  <div class="notice inline notice-warning">
11
  <h3 class="has-icon">
3
  * Notice before creating a PO that there is no POT
4
  */
5
  $this->extend('../layout');
 
6
  $help = apply_filters('loco_external','https://localise.biz/wordpress/plugin/manual/templates');
 
7
  ?>
8
  <div class="notice inline notice-warning">
9
  <h3 class="has-icon">