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 | 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 +52 -32
- lib/compiled/gettext.php +3 -2
- loco.php +2 -2
- pub/css/admin.css +1 -1
- pub/css/bundle.css +1 -1
- pub/css/editor.css +1 -1
- pub/css/poinit.css +1 -1
- pub/css/poview.css +1 -1
- pub/css/skins/blue.css +1 -1
- pub/css/skins/coffee.css +1 -1
- pub/css/skins/ectoplasm.css +1 -1
- pub/css/skins/light.css +1 -1
- pub/css/skins/midnight.css +1 -1
- pub/css/skins/ocean.css +1 -1
- pub/css/skins/sunrise.css +1 -1
- pub/js/min/admin.js +107 -106
- readme.txt +12 -3
- src/Locale.php +22 -3
- src/admin/bundle/ConfController.php +1 -0
- src/admin/bundle/ViewController.php +1 -1
- src/admin/file/BaseController.php +1 -1
- src/admin/file/InfoController.php +6 -2
- src/admin/init/InitPoController.php +30 -6
- src/api/WordPressFileSystem.php +34 -0
- src/api/WordPressTranslations.php +34 -6
- src/data/CompiledData.php +12 -1
- src/fs/File.php +1 -1
- src/mvc/AjaxRouter.php +8 -2
- src/mvc/ViewParams.php +11 -0
- src/test/WordPressTestCase.php +1 -1
- tpl/admin/file/info.php +17 -1
- tpl/admin/help/tab-init-po.php +4 -0
- tpl/admin/init/init-po.php +12 -8
- tpl/admin/init/init-pot.php +2 -1
- tpl/admin/init/init-prompt.php +0 -2
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-
|
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:
|
30 |
msgctxt "Plural category"
|
31 |
msgid "All forms"
|
32 |
msgstr ""
|
33 |
|
34 |
#. Plural category for singular quantity
|
35 |
-
#: src/Locale.php:
|
36 |
msgctxt "Plural category"
|
37 |
msgid "One"
|
38 |
msgstr ""
|
39 |
|
40 |
#. Plural category used in some multi-plural languages
|
41 |
-
#: src/Locale.php:
|
42 |
msgctxt "Plural category"
|
43 |
msgid "Two"
|
44 |
msgstr ""
|
45 |
|
46 |
#. Plural category used in some multi-plural languages
|
47 |
-
#: src/Locale.php:
|
48 |
msgctxt "Plural category"
|
49 |
msgid "Few"
|
50 |
msgstr ""
|
51 |
|
52 |
#. Plural category used in some multi-plural languages
|
53 |
-
#: src/Locale.php:
|
54 |
msgctxt "Plural category"
|
55 |
msgid "Many"
|
56 |
msgstr ""
|
57 |
|
58 |
#. General plural category not covered by other forms
|
59 |
-
#: src/Locale.php:
|
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:
|
470 |
#, php-format
|
471 |
msgid "Ajax route not found: \"%s\""
|
472 |
msgstr ""
|
473 |
|
474 |
-
#: src/mvc/AjaxRouter.php:
|
475 |
msgid "Ajax controller returned empty JSON"
|
476 |
msgstr ""
|
477 |
|
478 |
-
#: src/mvc/AjaxRouter.php:
|
479 |
msgid "Download action not found"
|
480 |
msgstr ""
|
481 |
|
482 |
-
#: src/mvc/AjaxRouter.php:
|
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:
|
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:
|
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:
|
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:
|
780 |
msgid "File does not have a valid header"
|
781 |
msgstr ""
|
782 |
|
783 |
-
#: src/admin/file/InfoController.php:
|
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:
|
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:
|
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:
|
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:
|
|
|
|
|
|
|
|
|
1440 |
msgid "Template options"
|
1441 |
msgstr ""
|
1442 |
|
1443 |
-
#: tpl/admin/init/init-po.php:
|
1444 |
#, php-format
|
1445 |
msgid "Copy target translations from \"%s\""
|
1446 |
msgstr ""
|
1447 |
|
1448 |
-
#: tpl/admin/init/init-po.php:
|
1449 |
msgid "Just copy English source strings"
|
1450 |
msgstr ""
|
1451 |
|
1452 |
-
#: tpl/admin/init/init-po.php:
|
1453 |
#, php-format
|
1454 |
msgid "Use \"%s\" as template when running Sync"
|
1455 |
msgstr ""
|
1456 |
|
1457 |
-
#: tpl/admin/init/init-po.php:
|
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:
|
|
|
|
|
|
|
|
|
1490 |
msgid "Template missing"
|
1491 |
msgstr ""
|
1492 |
|
1493 |
-
#: tpl/admin/init/init-prompt.php:
|
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:
|
1500 |
msgid "This bundle doesn't define a translations template file"
|
1501 |
msgstr ""
|
1502 |
|
1503 |
-
#: tpl/admin/init/init-prompt.php:
|
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 ); } } }
|
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 |
-
|
|
|
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.
|
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.
|
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 |
-
|
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-
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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_:\\.-]+;)"}
|
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%]";
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
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",
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
this.
|
126 |
-
return this};TextAreaPrototype.
|
127 |
-
this.
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
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=
|
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==
|
137 |
-
|
138 |
-
|
139 |
-
(
|
140 |
-
|
141 |
-
d[
|
142 |
-
t.
|
143 |
-
this.
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
arguments)};f.
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
e
|
154 |
-
this.
|
155 |
-
|
156 |
-
return this};f.
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
function(b){
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
b;
|
166 |
-
this
|
167 |
-
function(){
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
b.
|
174 |
-
(c.text("").hide(),b=!0);return b};w.
|
175 |
-
(
|
176 |
-
|
177 |
-
|
178 |
-
e
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
this.
|
183 |
-
this.po.
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
target:!
|
190 |
-
b)
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
this.rows.
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
function(b){if(null==b)return this.
|
201 |
-
|
202 |
-
|
203 |
-
function
|
204 |
-
f.
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
h(s).
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
k.
|
219 |
-
|
|
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.
|
6 |
-
Stable tag: 2.0.
|
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.
|
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->
|
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->
|
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->
|
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 |
-
'
|
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><locale></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><locale></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 |
-
|
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
|
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('
|
|
|
|
|
|
|
|
|
|
|
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_%','
|
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 |
-
<
|
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="
|
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">
|