Version Description
- Added PO Editor keyboard shortcuts
- Added WPLANG warning for WP4 deprecation
- Added some FAQs
- Removed SORT_NATURAL for PHP 5.3 compat
- Fixed dummy msginit bug when default locale exists
- POT/domain matching fix
- Using Wordpress language codes
- Added polyfills for mbstring and iconv
Download this release
Release Info
Developer | timwhitlock |
Plugin | Loco Translate |
Version | 1.5 |
Comparing to | |
See all releases |
Code changes from version 1.4.7 to 1.5
- languages/loco-translate.pot +7 -3
- lib/build/gettext-compiled.php +2 -2
- lib/build/locales-compiled.php +2 -2
- lib/build/shell-compiled.php +1 -1
- lib/compat/loco-iconv.php +22 -0
- lib/compat/loco-mbstring.php +26 -0
- lib/loco-admin.php +94 -16
- lib/loco-boot.php +1 -1
- lib/loco-locales.php +58 -25
- lib/loco-packages.php +90 -18
- lib/test/bootstrap.php +45 -1
- lib/test/phpunit.xml +1 -1
- lib/test/tests/CompatTest.php +20 -0
- lib/test/tests/LocalesTest.php +46 -4
- lib/test/tests/PluginPackageTest.php +26 -0
- lib/test/tests/ResolveFileDomainTest.php +28 -0
- lib/test/tests/ResolveFileLocaleTest.php +48 -0
- lib/test/tests/UriTest.php +20 -0
- lib/test/tests/UtilsTest.php +0 -34
- loco.php +1 -1
- php/loco-data.php +21 -0
- php/loco-posave.php +1 -1
- pub/css/loco-admin.css +1 -1
- pub/font/loco.eot +0 -0
- pub/font/loco.svg +4 -1
- pub/font/loco.ttf +0 -0
- pub/font/loco.woff +0 -0
- pub/img/flags.png +0 -0
- pub/js/build/admin-common.js +3 -1
- pub/js/build/admin-poedit.js +147 -130
- pub/js/build/admin-poinit.js +2 -1
- pub/js/debug.js +23 -0
- pub/js/lang/loco-translate-de_DE.js +3 -3
- pub/js/lang/loco-translate-id_ID.js +3 -3
- pub/js/lang/loco-translate-it_IT.js +3 -3
- pub/js/lang/loco-translate-nl_BE.js +3 -3
- pub/js/lang/loco-translate-nl_NL.js +3 -3
- pub/js/lang/loco-translate-pl_PL.js +3 -3
- pub/js/lang/loco-translate-ru_RU.js +3 -3
- pub/js/lang/loco-translate-sv_SE.js +3 -3
- pub/js/lang/loco-translate-tr_TR.js +3 -3
- readme.txt +26 -4
- tpl/admin-debug.tpl.php +159 -0
- tpl/admin-fscheck.tpl.php +20 -4
- tpl/admin-poedit.tpl.php +1 -1
- tpl/admin-poinit.tpl.php +4 -2
languages/loco-translate.pot
CHANGED
@@ -5,7 +5,7 @@ msgstr ""
|
|
5 |
"Project-Id-Version: Loco Translate\n"
|
6 |
"Report-Msgid-Bugs-To: \n"
|
7 |
"POT-Creation-Date: Thu Jan 02 2014 17:30:57 GMT+0000 (GMT)\n"
|
8 |
-
"POT-Revision-Date:
|
9 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
10 |
"Last-Translator: \n"
|
11 |
"Language-Team: \n"
|
@@ -174,7 +174,7 @@ msgstr ""
|
|
174 |
|
175 |
#: ../lib/loco-admin.php:1010 ../tpl/admin-fscheck.tpl.php:7 ../tpl/admin-opts.
|
176 |
#: tpl.php:7 ../tpl/admin-poedit.tpl.php:8 ../tpl/admin-poinit.tpl.php:8 ..
|
177 |
-
#: tpl/admin-root.tpl.php:7
|
178 |
msgid "Settings"
|
179 |
msgstr ""
|
180 |
|
@@ -182,7 +182,11 @@ msgstr ""
|
|
182 |
msgid "File download failed"
|
183 |
msgstr ""
|
184 |
|
185 |
-
#: ../lib/loco-
|
|
|
|
|
|
|
|
|
186 |
msgid "Unknown language"
|
187 |
msgstr ""
|
188 |
|
5 |
"Project-Id-Version: Loco Translate\n"
|
6 |
"Report-Msgid-Bugs-To: \n"
|
7 |
"POT-Creation-Date: Thu Jan 02 2014 17:30:57 GMT+0000 (GMT)\n"
|
8 |
+
"POT-Revision-Date: Mon Oct 27 2014 17:50:21 GMT+0000 (GMT)\n"
|
9 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
10 |
"Last-Translator: \n"
|
11 |
"Language-Team: \n"
|
174 |
|
175 |
#: ../lib/loco-admin.php:1010 ../tpl/admin-fscheck.tpl.php:7 ../tpl/admin-opts.
|
176 |
#: tpl.php:7 ../tpl/admin-poedit.tpl.php:8 ../tpl/admin-poinit.tpl.php:8 ..
|
177 |
+
#: /tpl/admin-root.tpl.php:7
|
178 |
msgid "Settings"
|
179 |
msgstr ""
|
180 |
|
182 |
msgid "File download failed"
|
183 |
msgstr ""
|
184 |
|
185 |
+
#: ../lib/loco-admin.php:1044
|
186 |
+
msgid "WPLANG is deprecated and should be removed from wp-config.php"
|
187 |
+
msgstr ""
|
188 |
+
|
189 |
+
#: ../lib/loco-locales.php:68
|
190 |
msgid "Unknown language"
|
191 |
msgstr ""
|
192 |
|
lib/build/gettext-compiled.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* Compiled source built from Loco core. Do not edit!
|
4 |
-
*
|
5 |
*/
|
6 |
-
class LocoArray implements Iterator, Countable { private $i; private $length; private $keys; private $vals; private $index; public function __construct( array $data = array() ){ $this->keys = array_keys( $data ); $this->vals = array_values( $data ); $this->index = array_flip( array_map( 'strtolower', $this->keys ) ); $this->length = count( $this->keys ); $this->rewind(); } public function add( $key, $val ){ $k = strtolower($key); if( isset($this->index[$k]) ){ $this->keys[ $this->index[$k] ] = $key; $this->vals[ $this->index[$k] ] = $val; } else { $this->index[$k] = $this->length++; $this->keys[] = $key; $this->vals[] = $val; } return $this; } public function to_array(){ return array_combine( $this->keys, $this->vals ); } function __toString(){ $pairs = array(); foreach( $this->keys as $i => $key ){ $pairs[] = trim($key).': '.$this->vals[$i]; } return implode("\n", $pairs ); } public function count(){ return $this->length; } public function trimmed( $prop ){ return trim( $this->__get($prop) ); } public function has( $key ){ return isset( $this->index[ strtolower($key) ] ); } public function __get( $key ){ $key = strtolower( $key ); return isset($this->index[$key]) ? $this->vals[ $this->index[$key] ] : null; } public function rewind(){ $this->i = reset( $this->index ); } public function key(){ return is_int($this->i) ? $this->keys[$this->i] : null; } public function current(){ return is_int($this->i) ? $this->vals[$this->i] : null; } public function valid(){ return is_int($this->i); } public function next(){ $this->i = next( $this->index ); } } function loco_sniff_printf( $str ){ return (bool) preg_match('/%(?:\d\$)?(?:\+|-)?[ 0]?-?\d*(?:\.\d+)?[bcdeEfFgGosuxX]/', $str ); } define( 'LOCO_FLAG_OK', 0 ); define( 'LOCO_FLAG_ERROR', 1 ); define( 'LOCO_FLAG_REVIEW', 2 ); define( 'LOCO_FLAG_PENDING', 3 ); define( 'LOCO_FLAG_FUZZY', 4 ); function loco_flags(){ static $flags = array ( LOCO_FLAG_OK => 'Translated', LOCO_FLAG_ERROR => 'Incorrect', LOCO_FLAG_REVIEW => 'Needs review', LOCO_FLAG_PENDING => 'Pending approval', LOCO_FLAG_FUZZY => 'Fuzzy', ); return $flags; } function loco_flag( $f ){ if( -1 === $f ){ return 'Untranslated'; } $flags = loco_flags(); if( ! isset($flags[$f]) ){ throw new Exception('Invalid LOCO_FLAG_ constant ', var_export($f,1) ); } return $flags[$f]; } function loco_po_flags(){ static $map = array ( LOCO_FLAG_FUZZY => '#, fuzzy', ); return $map; } function loco_parse_reference_id( $refs, &$_id ){ if( false === ( $n = strpos($refs,'loco:') ) ){ $_id = ''; return $refs; } $_id = substr($refs, $n+5, 24 ); $refs = substr_replace( $refs, '', $n, 29 ); return trim( $refs ); } function loco_ensure_utf8( $str, $enc = false, $prefix_bom = false ){ if( false === $enc ){ $m = substr( $str, 0, 3 ); if( "\xEF\xBB\xBF" === $m ){ $str = substr( $str, 3 ); } else if( "\xFF" === $m{0} && "\xFE" === $m{1} ){ $str = substr( $str, 2 ); $enc = 'UTF-16LE'; } else if( "\xFE" === $m{0} && "\xFF" === $m{1} ){ $str = substr( $str, 2 ); $enc = 'UTF-16BE'; } else { $enc = mb_detect_encoding( $str, array('ASCII','UTF-8','Windows-1252','ISO-8859-1'), false ); if( ! $enc ){ throw new Exception('Unknown character encoding'); } } } else if( ! strcasecmp('ISO-8859-1',$enc) || ! strcasecmp('CP-1252', $enc ) ){ $enc = 'Windows-1252'; } else if( ! strcasecmp('UTF8', $enc) ){ $enc = ''; } if( $enc && $enc !== 'ASCII' && $enc !== 'UTF-8' ){ $str = iconv( $enc, 'UTF-8//TRANSLIT', $str ); if( ! $str ){ throw new Exception('Failed to ensure UTF-8 from '.$enc); } } if( $prefix_bom ){ $str = "\xEF\xBB\xBF".$str; } return $str; } function loco_parse_po( $src ){ $src = loco_ensure_utf8( $src ); $i = -1; $key = ''; $entries = array(); $template = array( '#' => array(), 'id' => array(), 'str' => array(), 'ctxt' => array() ); foreach( preg_split('/[\r\n]+/', $src) as $line ){ while( $line = trim($line) ){ $c = $line{0}; if( '"' === $c ){ if( $key && isset($entry) ){ $entry[$key][$idx][] = loco_po_unquote( $line ); } } else if( '#' === $c ){ if( isset($entry['i']) ){ unset( $entry ); $entry = $template; } $f = empty($line{1}) ? ' ' : $line{1}; $entry['#'][$f][] = trim( substr( $line, 1+strlen($f) ), "/ \n\r\t" ); } else if( preg_match('/^msg(id|str|ctxt|id_plural)(?:\[(\d+)\])?[ \t]+/', $line, $r ) ){ $key = $r[1]; $idx = isset($r[2]) ? (int) $r[2] : 0; if( 'str' === $key ){ if( ! isset($entry['i']) ){ $entry['i'] = ++$i; $entries[$i] = &$entry; } } else if( ! isset($entry) || isset($entry['i']) ){ unset( $entry ); $entry = $template; } $line = substr( $line, strlen($r[0]) ); continue; } continue 2; } } unset( $entry ); $assets = array(); foreach( $entries as $i => $entry ){ if( empty($entry['id']) ){ continue; } if( empty($entry['str']) ){ $entry['str'] = array( array('') ); } $asset = array ( 'id' => '', 'source' => implode('',$entry['id'][0]), 'target' => implode('',$entry['str'][0]), ); $parse_printf = true; if( isset($entry['ctxt'][0]) ){ $asset['context'] = implode('',$entry['ctxt'][0]); } if( isset($entry['#'][' ']) ){ $asset['comment'] = implode("\n", $entry['#'][' '] ); } if( isset($entry['#']['.']) ){ $asset['notes'] = implode("\n", $entry['#']['.'] ); } if( isset($entry['#'][':']) ){ if( $refs = implode( "\n", $entry['#'][':'] ) ) { if( $refs = loco_parse_reference_id( $refs, $_id ) ){ $asset['refs'] = $refs; } if( $_id ){ $asset['_id'] = $_id; } } } if( isset($entry['#'][',']) ){ foreach( $entry['#'][','] as $flag ){ if( preg_match('/((?:no-)?\w+)-format/', $flag, $r ) ){ $parse_printf = false; if( 'no-' === substr($r[1],0,3) ){ $asset['format'] = false; } else { $asset['format'] = $r[1]; } } else if( $flag = loco_po_parse_flag($flag) ){ $asset['flag'] = $flag; break; } } } if( $parse_printf ){ if( $asset['source'] && loco_sniff_printf( $asset['source'] ) ){ $asset['format'] = 'c'; $parse_printf = false; } } $pidx = count($assets); $assets[] = $asset; if( isset($entry['id_plural']) || isset($entry['str'][1]) ){ $idx = 0; $num = max( 2, count($entry['str']) ); while( ++$idx < $num ){ $plural = array ( 'id' => '', 'source' => '', 'target' => isset($entry['str'][$idx]) ? implode('',$entry['str'][$idx]) : '', 'plural' => $idx, 'parent' => $pidx, ); if( 1 === $idx ){ $plural['source'] = isset($entry['id_plural'][0]) ? implode('',$entry['id_plural'][0]) : ''; } if( $parse_printf ){ if( $plural['source'] && loco_sniff_printf( $plural['source'] ) ){ $assets[$pidx]['format'] = 'c'; $parse_printf = false; } } $assets[] = $plural; } } } if( $assets && '' === $assets[0]['source'] ){ $headers = loco_parse_po_headers( $assets[0]['target'] ); $indexed = $headers->__get('X-Loco-Lookup'); if( 'id' === $indexed || 'name' === $indexed ){ foreach( $assets as $i => $asset ){ if( isset($asset['notes']) ){ $notes = $texts = array(); foreach( explode("\n",$asset['notes']) as $line ){ 0 === strpos($line,'Source text: ') ? $texts[] = substr($line,13) : $notes[] = $line; } $assets[$i]['notes'] = implode("\n",$notes); $assets[$i]['id'] = $asset['source']; $assets[$i]['source'] = implode("\n",$texts); } } } } return $assets; } function loco_po_parse_flag( $text, $flag = 0 ){ $map = loco_po_flags(); foreach( explode(',',$text) as $needle ){ if( $needle = trim($needle) ){ foreach( $map as $loco_flag => $haystack ){ if( false !== stripos($haystack, $needle) ){ $flag |= $loco_flag; break; } } } } return $flag; } function loco_po_unquote( $str ){ return substr( stripcslashes($str), 1, -1 ); } function loco_parse_po_headers( $str ){ $headers = new LocoArray( array() ); foreach( explode("\n",$str) as $line ){ $i = strpos($line,':') and $key = trim( substr($line,0,$i) ) and $headers->add( $key, trim( substr($line,++$i) ) ); } return $headers; } class LocoMoParser { private $bin; private $be; private $n; private $o; private $t; private $v; public function __construct( $bin ){ $this->bin = $bin; } public function getAt( $idx ){ $offset = $this->targetOffset(); $offset += ( $idx * 8 ); $len = $this->integerAt( $offset ); $idx = $this->integerAt( $offset + 4 ); $txt = $this->bytes( $idx, $len ); if( false === strpos( $txt, "\0") ){ return $txt; } return explode( "\0", $txt ); } public function parse(){ $sourceOffset = $this->sourceOffset(); $targetOffset = $this->targetOffset(); $r = array(); $p = array(); $i = 0; $offset = $sourceOffset; while( $offset < $targetOffset ){ $r[$i] = array( 'id' => '', 'source' => '', 'target' => '' ); $len = $this->integerAt( $offset ); $idx = $this->integerAt( $offset + 4 ); $src = $this->bytes( $idx, $len ); $eot = strpos( $src, "\x04" ); if( false !== $eot ){ $r[$i]['context'] = $this->decodeStr( substr($src, 0, $eot ) ); $src = substr( $src, $eot+1 ); } $nul = strpos( $src, "\0" ); if( false !== $nul ){ $p[$i][1] = array( 'id' => '', 'source' => substr($src, $nul+1 ), 'target' => '', 'parent' => $i, 'plural' => 1 ); $src = substr( $src, 0, $nul ); } $r[$i++]['source'] = $this->decodeStr($src); $offset += 8; } $t = $i; $offset = $targetOffset; for( $i = 0; $i < $t; $i++ ){ $len = $this->integerAt( $offset ); $idx = $this->integerAt( $offset + 4 ); $txt = $this->bytes( $idx, $len ); if( false !== strpos( $txt, "\0" ) ){ $arr = explode( "\0", $txt ); $txt = array_shift( $arr ); if( isset($p[$i][1]) ){ foreach( $arr as $_i => $plural_txt ){ $plural_idx = $_i + 1; $p[$i][$plural_idx]['target'] = $this->decodeStr($plural_txt); } } else if( '' === implode('',$arr) ){ } else { throw new Exception('plural has no corresponding msgid_plural at '.$i); } } $r[$i]['target'] = $this->decodeStr($txt); $offset += 8; } foreach( $p as $parent_id => $plurals ){ foreach( $plurals as $plural_idx => $msg ){ if( 1 < $plural_idx ){ $msg['source'] = $plurals[1]['source'].' (plural '.$plural_idx.')'; } $msg['parent'] = $parent_id; $msg['plural'] = $plural_idx; $r[] = $msg; } } return $r; } public function isBigendian(){ while( is_null($this->be) ){ $str = $this->words( 0, 2 ); $arr = unpack('V', $str); if( 0x950412de === $arr[1] ){ $this->be = false; break; } if( 0xde120495 === $arr[1] ){ $this->be = true; break; } throw new Exception('Invalid MO format'); } return $this->be; } public function version(){ if( is_null($this->v) ){ $this->v = $this->integerWord(1); } return $this->v; } public function count(){ if( is_null($this->n) ){ $this->n = $this->integerWord(2); } return $this->n; } public function sourceOffset(){ if( is_null($this->o) ){ $this->o = $this->integerWord(3); } return $this->o; } public function targetOffset(){ if( is_null($this->t) ){ $this->t = $this->integerWord(4); } return $this->t; } public function getHashTable(){ $s = $this->integerWord(5); $h = $this->integerWord(6); return $this->bytes( $h, $s * 4 ); } private function bytes( $offset, $length ){ return substr( $this->bin, $offset, $length ); } private function words( $offset, $length ){ return $this->bytes( $offset * 4, $length * 4 ); } private function integerWord( $offset ){ return $this->integerAt( $offset * 4 ); } private function integerAt( $offset ){ $str = $this->bytes( $offset, 4 ); $fmt = $this->isBigendian() ? 'N' : 'V'; $arr = unpack( $fmt, $str ); if( ! isset($arr[1]) || ! is_int($arr[1]) ){ throw new Exception('Failed to read 32 bit integer at byte '.$offset); } return $arr[1]; } private function decodeStr( $str ){ $enc = mb_detect_encoding( $str, array('ASCII','UTF-8','ISO-8859-1'), false ); if( $enc && $enc !== 'ASCII' && $enc !== 'UTF-8' ){ $str = iconv( $enc, 'UTF-8', $str ); } return $str; } } function loco_parse_mo( $src ){ $mo = new LocoMoParser($src); return $mo->parse(); } final class PHPTokens implements Iterator { private $tokens; private $i; private $skip_tokens = array(); private $skip_strings = array(); private $literal_tokens = array(); public function __construct( array $tokens ){ $this->tokens = $tokens; $this->rewind(); } public function literal(){ foreach( func_get_args() as $t ){ $this->literal_tokens[ $t ] = 1; } return $this; } public function ignore(){ foreach( func_get_args() as $t ){ if( is_int($t) ){ $this->skip_tokens[$t] = true; } else { $this->skip_strings[$t] = true; } } return $this; } public function export(){ $arr = array(); foreach( $this as $tok ){ $arr[] = $tok; } return $arr; } public function advance(){ $this->next(); return $this->current(); } public function pop(){ $tok = array_pop( $this->tokens ); $this->rewind(); return $tok; } public function shift(){ $tok = array_shift( $this->tokens); $this->rewind(); return $tok; } public function rewind(){ $this->i = ( false === reset($this->tokens) ? null : key($this->tokens) ); } public function valid(){ while( isset($this->i) ){ $tok = $this->tokens[$this->i]; if( is_array($tok) ){ if( isset($this->skip_tokens[$tok[0]]) ){ $this->next(); } else { return true; } } else if( isset($this->skip_strings[$tok]) ){ $this->next(); } else { return true; } } return false; } public function key(){ return $this->i; } public function next(){ $this->i = ( false === next($this->tokens) ? null : key($this->tokens) ); } public function current(){ if( ! $this->valid() ){ return false; } $tok = $this->tokens[$this->i]; if( is_array($tok) && isset($this->literal_tokens[$tok[0]]) ){ return $tok[1]; } return $tok; } public function __toString(){ $s = ''; foreach( $this as $token ){ $s .= is_array($token) ? $token[1] : $token; } return $s; } } function loco_parse_comment($comment){ if( '*' === $comment{1} ){ $lines = array(); foreach( explode("\n", $comment) as $line ){ $line and $lines[] = trim($line,"/* \r\t"); } $comment = implode("\n", $lines); } return trim( $comment,"/ \n\r\t" ); } function decapse_string( $s ){ if( empty($s) ){ return ''; } $q = $s{0}; switch( $q ){ case "'": case '"': $s = substr( $s, 1, -1 ); if( '"' === $q ){ return stripcslashes($s); } return str_replace( array( '\\'.$q, '\\\\' ), array( $q, '\\' ), $s ); default: return $s; } } function loco_extract_php( array $tokens, $fileref = '' ){ $extractor = new LocoPHPExtractor; return $extractor->extract( $tokens, $fileref ); } final class LocoPHPExtractor { private static $rules = array ( '_' => 's', 'gettext' => 's', 'dgettext' => '_s', 'ngettext' => 'sp', 'dngettext' => '_sp', '__' => 's', '_e' => 's', '_c' => 's', '_n' => 'sp', '_n_noop' => 'sp', '_nc' => 'sp', '__ngettext' => 'sp', '__ngettext_noop' => 'sp', '_x' => 'sc', '_ex' => 'sc', '_nx' => 'sp_c', '_nx_noop' => 'spc', '_n_js' => 'sp', '_nx_js' => 'spc', 'esc_attr__' => 's', 'esc_html__' => 's', 'esc_attr_e' => 's', 'esc_html_e' => 's', 'esc_attr_x' => 'sc', 'esc_html_x' => 'sc', 'comments_number_link' => '_sp', 't' => 's', 'st' => 's', 'trans' => 's', 'transChoice' => 'sp', ); private $exp = array(); private $reg = array(); public function extract( array $tokens, $fileref = '' ){ $tokens = new PHPTokens( $tokens ); $tokens->ignore( T_WHITESPACE ); $comment = ''; foreach( $tokens as $tok ){ if( isset($args) ){ if( ')' === $tok ){ isset($arg) and $arg and $args[] = $arg; $this->push( $rule, $args, $comment, $ref ); unset($args,$arg); $comment = ''; } else if( ',' === $tok ){ isset($arg) and $arg and $args[] = $arg; unset($arg); } else if( isset($arg) ){ $arg[] = $tok; } else { $arg = array( $tok ); } } else if( is_array($tok) ){ list($t,$s) = $tok; if( T_COMMENT === $t || T_DOC_COMMENT === $t ){ $comment = $s; } else if( T_STRING === $t && isset(self::$rules[$s]) && '(' === $tokens->advance() ){ $rule = self::$rules[$s]; $args = array(); $ref = $fileref ? $fileref.':'.$tok[2]: ''; } else if( $comment && false === stripos($comment, 'translators') ){ $comment = ''; } } } return $this->exp; } private function push( $rule, array $args, $comment = '', $ref = '' ){ $s = strpos( $rule, 's'); $p = strpos( $rule, 'p'); $c = strpos( $rule, 'c'); foreach( $args as $i => $tokens ){ if( 1 === count($tokens) && is_array($tokens[0]) && T_CONSTANT_ENCAPSED_STRING === $tokens[0][0] ){ $args[$i] = decapse_string( $tokens[0][1] ); } else { $args[$i] = null; } } $key = $msgid = $args[$s]; if( ! $msgid ){ return null; } $entry = array ( 'id' => '', 'source' => $msgid, 'target' => '', ); if( $c && isset($args[$c]) ){ $entry['context'] = $args[$c]; $key .= "\0". $args[$c]; } if( $ref ){ $entry['refs'] = $ref; } $parse_printf = true; if( $comment ){ if( preg_match('/xgettext:\s*((?:no-)?\w+)-format/', $comment, $r ) ){ if( 'no-' === substr($r[1],0,3) ){ $entry['format'] = false; } else { $entry['format'] = $r[1]; } $comment = str_replace( $r[0], '', $comment ); $parse_printf = false; } $entry['notes'] = loco_parse_comment($comment); } if( $parse_printf && loco_sniff_printf( $msgid ) ){ $entry['format'] = 'php'; $parse_printf = false; } if( isset($this->reg[$key]) ){ $index = $this->reg[$key]; $a = array(); isset($this->exp[$index]['refs']) and $a[] = $this->exp[$index]['refs']; isset($entry['refs']) and $a[] = $entry['refs']; $a && $this->exp[$index]['refs'] = implode(" ", $a ); $a = array(); isset($this->exp[$index]['notes']) and $a[] = $this->exp[$index]['notes']; isset($entry['notes']) and $a[] = $entry['notes']; $a && $this->exp[$index]['notes'] = implode("\n", $a ); } else { $index = count($this->exp); $this->reg[$key] = $index; $this->exp[] = $entry; } if( $p && isset($args[$p]) ){ $msgid_plural = $args[$p]; $entry = array ( 'id' => '', 'source' => $msgid_plural, 'target' => '', 'plural' => 1, 'parent' => $index, ); if( $parse_printf && loco_sniff_printf( $msgid_plural ) ){ $this->exp[$index]['format'] = 'php'; } $key = $msgid_plural."\0\0"; if( isset($this->reg[$key]) ){ $plural_index = $this->reg[$key]; $this->exp[$plural_index] = $entry; } else { $plural_index = count($this->exp); $this->reg[$key] = $plural_index; $this->exp[] = $entry; } } return $index; } public function get_xgettext( $input = '-' ){ $cmd = defined('WHICH_XGETTEXT') ? WHICH_XGETTEXT : 'xgettext'; $cmd.= ' -LPHP -c -o-'; if( $k = $this->get_xgettext_keywords() ){ $cmd.= ' -k'.implode(' -k', $k ); } return $cmd.' '.$input; } public function get_xgettext_keywords(){ $ks = array(); foreach( self::$rules as $word => $rule ){ $s = strpos( $rule, 's'); $k = $word.':'.++$s; if( false !== $p = strpos( $rule, 'p') ){ $k.= ','.++$p; } if( false !== $p = strpos( $rule, 'c') ){ $k.= ','.++$p.'c'; } $ks[] = $k; } return $ks; } } function loco_relative_path( $source_path, $target_path ){ $rel = ''; $common = false; $src = preg_split('!/+!', $source_path, -1, PREG_SPLIT_NO_EMPTY ); $dst = preg_split('!/+!', $target_path, -1, PREG_SPLIT_NO_EMPTY ); while( $src && $dst ){ if( current($src) !== current($dst) ){ break; } $common = true; array_shift($src); array_shift($dst); } if( ! $common ){ return $target_path; } if( $src ){ $up = array_fill( 0, count($src), '..' ); $rel = implode('/', $up ); } if( $dst ){ $rel && $rel .= '/'; $rel .= implode('/', $dst ); } return $rel; } class LocoMo { private $bin; private $msgs; private $head; private $hash; public function __construct( array $export, LocoArray $head = null ){ if( ! $head ){ $head = new LocoArray( 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->head = $head; $this->msgs = $export; $this->bin = ''; } public function enableHash(){ return $this->hash = new LocoMoTable; } 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', 'nplurals='.$Loc->nplurals.'; plural='.$Loc->pluraleq.';' ) ; } public function count(){ return count($this->msgs); } public function compile(){ $table = array(''); $sources = array(''); $targets = array( $this->head->__toString() ); foreach( $this->msgs as $r ){ $msgid = $r['key']; if( isset($r['context']) && $r['context'] ){ $msgid or $msgid = "(".$r['context'].')'; $msgid = $r['context']."\x04".$msgid; } if( ! $msgid ){ continue; } $msgstr = $r['translation']; if( ! $msgstr ){ continue; } $table[] = $msgid; if( isset($r['plurals']) ){ foreach( $r['plurals'] as $i => $p ){ if( $i === 0 ){ $msgid .= "\0".$p['key']; } $msgstr .= "\0".$p['translation']; } } $sources[] = $msgid; $targets[] = $msgstr; } asort( $sources, SORT_STRING ); $this->bin = ''; $this->writeInteger( 0x950412de ); $this->writeInteger( 0 ); $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; } } 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; } } function loco_msgfmt( $po, $withhash = false ){ if( ! is_array($po) ){ $po = loco_parse_po( $po ); } $head = null; if( isset($po[0]) && '' === $po[0]['source'] ){ $head = loco_parse_po_headers( $po[0]['target'] ); $po[0] = null; } $export = array(); foreach( $po as $i => $r ){ if( ! $r ){ continue; } $msg = array ( 'key' => $r['source'], 'translation' => $r['target'], ); if( isset($r['parent']) ){ unset( $parent ); $parent = &$export[ $r['parent'] ]; isset($parent['plurals']) or $parent['plurals'] = array(); $parent['plurals'][] = $msg; } else { isset($r['context']) and $msg['context'] = $r['context']; $export[$i] = $msg; } } $mo = new LocoMo( $export, $head ); if( $withhash ){ $mo->enableHash(); } return $mo->compile(); } function loco_po_stats( array $po ){ $t = $n = $f = $u = 0; foreach( $po as $r ){ if( ! isset($r['source']) || '' === $r['source'] ){ continue; } if( isset($r['parent']) && is_int($r['parent']) ){ continue; } $t++; if( '' === $r['target'] ){ $u++; } else if( isset($r['flag']) && LOCO_FLAG_FUZZY === $r['flag'] ){ $f++; } else { $n++; } } $r = $t && $n ? $n / $t : 0; $p = (string) round( $r * 100 ); return compact('t','p','f','u'); }
|
1 |
<?php
|
2 |
/**
|
3 |
* Compiled source built from Loco core. Do not edit!
|
4 |
+
* Wed, 21 Jan 2015 14:04:24 +0000
|
5 |
*/
|
6 |
+
class LocoArray implements Iterator, Countable { private $i; private $length; private $keys; private $vals; private $index; public function __construct( array $data = array() ){ $this->keys = array_keys( $data ); $this->vals = array_values( $data ); $this->index = array_flip( array_map( 'strtolower', $this->keys ) ); $this->length = count( $this->keys ); $this->rewind(); } public function add( $key, $val ){ $k = strtolower($key); if( isset($this->index[$k]) ){ $this->keys[ $this->index[$k] ] = $key; $this->vals[ $this->index[$k] ] = $val; } else { $this->index[$k] = $this->length++; $this->keys[] = $key; $this->vals[] = $val; } return $this; } public function to_array(){ return array_combine( $this->keys, $this->vals ); } function __toString(){ $pairs = array(); foreach( $this->keys as $i => $key ){ $pairs[] = trim($key).': '.$this->vals[$i]; } return implode("\n", $pairs ); } public function count(){ return $this->length; } public function trimmed( $prop ){ return trim( $this->__get($prop) ); } public function has( $key ){ return isset( $this->index[ strtolower($key) ] ); } public function __get( $key ){ $key = strtolower( $key ); return isset($this->index[$key]) ? $this->vals[ $this->index[$key] ] : null; } public function rewind(){ $this->i = reset( $this->index ); } public function key(){ return is_int($this->i) ? $this->keys[$this->i] : null; } public function current(){ return is_int($this->i) ? $this->vals[$this->i] : null; } public function valid(){ return is_int($this->i); } public function next(){ $this->i = next( $this->index ); } } function loco_sniff_printf( $str ){ return (bool) preg_match('/%(?:\d\$)?(?:\+|-)?[ 0]?-?\d*(?:\.\d+)?[bcdeEfFgGosuxX]/', $str ); } define( 'LOCO_FLAG_OK', 0 ); define( 'LOCO_FLAG_ERROR', 1 ); define( 'LOCO_FLAG_REVIEW', 2 ); define( 'LOCO_FLAG_PENDING', 3 ); define( 'LOCO_FLAG_FUZZY', 4 ); function loco_flags(){ static $flags = array ( LOCO_FLAG_OK => 'Translated', LOCO_FLAG_ERROR => 'Incorrect', LOCO_FLAG_REVIEW => 'Needs review', LOCO_FLAG_PENDING => 'Pending approval', LOCO_FLAG_FUZZY => 'Fuzzy', ); return $flags; } function loco_flag( $f ){ if( -1 === $f ){ return 'Untranslated'; } $flags = loco_flags(); if( ! isset($flags[$f]) ){ throw new Exception('Invalid LOCO_FLAG_ constant ', var_export($f,1) ); } return $flags[$f]; } function loco_flag_integer( $f ){ if( is_numeric($f) ){ $f = (int) $f; } else { $f = 'LOCO_FLAG_'.strtoupper($f); $f = defined($f) ? constant($f) : -1; } $flags = loco_flags(); if( ! isset($flags[$f]) ){ throw new InvalidArgumentException('Unknown flag, '.var_export(func_get_arg(0),1)); } return $f; } function loco_po_flags(){ static $map = array ( LOCO_FLAG_FUZZY => '#, fuzzy', ); return $map; } function loco_parse_reference_id( $refs, &$_id ){ if( false === ( $n = strpos($refs,'loco:') ) ){ $_id = ''; return $refs; } $_id = substr($refs, $n+5, 24 ); $refs = substr_replace( $refs, '', $n, 29 ); return trim( $refs ); } function loco_ensure_utf8( $str, $enc = false, $prefix_bom = false ){ if( false === $enc ){ $m = substr( $str, 0, 3 ); if( "\xEF\xBB\xBF" === $m ){ $str = substr( $str, 3 ); } else if( "\xFF" === $m{0} && "\xFE" === $m{1} ){ $str = substr( $str, 2 ); $enc = 'UTF-16LE'; } else if( "\xFE" === $m{0} && "\xFF" === $m{1} ){ $str = substr( $str, 2 ); $enc = 'UTF-16BE'; } else { $enc = mb_detect_encoding( $str, array('ASCII','UTF-8','Windows-1252','ISO-8859-1'), false ); if( ! $enc ){ throw new Exception('Unknown character encoding'); } } } else if( ! strcasecmp('ISO-8859-1',$enc) || ! strcasecmp('CP-1252', $enc ) ){ $enc = 'Windows-1252'; } else if( ! strcasecmp('UTF8', $enc) ){ $enc = ''; } if( $enc && $enc !== 'ASCII' && $enc !== 'UTF-8' ){ $str = iconv( $enc, 'UTF-8//TRANSLIT', $str ); if( ! $str ){ throw new Exception('Failed to ensure UTF-8 from '.$enc); } } if( $prefix_bom ){ $str = "\xEF\xBB\xBF".$str; } return $str; } function loco_parse_po( $src ){ $src = loco_ensure_utf8( $src ); $i = -1; $key = ''; $entries = array(); $template = array( '#' => array(), 'id' => array(), 'str' => array(), 'ctxt' => array() ); foreach( preg_split('/[\r\n]+/', $src) as $line ){ while( $line = trim($line) ){ $c = $line{0}; if( '"' === $c ){ if( $key && isset($entry) ){ $entry[$key][$idx][] = loco_po_unquote( $line ); } } else if( '#' === $c ){ if( isset($entry['i']) ){ unset( $entry ); $entry = $template; } $f = empty($line{1}) ? ' ' : $line{1}; $entry['#'][$f][] = trim( substr( $line, 1+strlen($f) ), "/ \n\r\t" ); } else if( preg_match('/^msg(id|str|ctxt|id_plural)(?:\[(\d+)\])?[ \t]+/', $line, $r ) ){ $key = $r[1]; $idx = isset($r[2]) ? (int) $r[2] : 0; if( 'str' === $key ){ if( ! isset($entry['i']) ){ $entry['i'] = ++$i; $entries[$i] = &$entry; } } else if( ! isset($entry) || isset($entry['i']) ){ unset( $entry ); $entry = $template; } $line = substr( $line, strlen($r[0]) ); continue; } continue 2; } } unset( $entry ); $assets = array(); foreach( $entries as $i => $entry ){ if( empty($entry['id']) ){ continue; } if( empty($entry['str']) ){ $entry['str'] = array( array('') ); } $asset = array ( 'id' => '', 'source' => implode('',$entry['id'][0]), 'target' => implode('',$entry['str'][0]), ); $parse_printf = true; if( isset($entry['ctxt'][0]) ){ $asset['context'] = implode('',$entry['ctxt'][0]); } if( isset($entry['#'][' ']) ){ $asset['comment'] = implode("\n", $entry['#'][' '] ); } if( isset($entry['#']['.']) ){ $asset['notes'] = implode("\n", $entry['#']['.'] ); } if( isset($entry['#'][':']) ){ if( $refs = implode( "\n", $entry['#'][':'] ) ) { if( $refs = loco_parse_reference_id( $refs, $_id ) ){ $asset['refs'] = $refs; } if( $_id ){ $asset['_id'] = $_id; } } } if( isset($entry['#'][',']) ){ foreach( $entry['#'][','] as $flag ){ if( preg_match('/((?:no-)?\w+)-format/', $flag, $r ) ){ $parse_printf = false; if( 'no-' === substr($r[1],0,3) ){ $asset['format'] = false; } else { $asset['format'] = $r[1]; } } else if( $flag = loco_po_parse_flag($flag) ){ $asset['flag'] = $flag; break; } } } if( $parse_printf ){ if( $asset['source'] && loco_sniff_printf( $asset['source'] ) ){ $asset['format'] = 'c'; $parse_printf = false; } } $pidx = count($assets); $assets[] = $asset; if( isset($entry['id_plural']) || isset($entry['str'][1]) ){ $idx = 0; $num = max( 2, count($entry['str']) ); while( ++$idx < $num ){ $plural = array ( 'id' => '', 'source' => '', 'target' => isset($entry['str'][$idx]) ? implode('',$entry['str'][$idx]) : '', 'plural' => $idx, 'parent' => $pidx, ); if( 1 === $idx ){ $plural['source'] = isset($entry['id_plural'][0]) ? implode('',$entry['id_plural'][0]) : ''; } if( $parse_printf ){ if( $plural['source'] && loco_sniff_printf( $plural['source'] ) ){ $assets[$pidx]['format'] = 'c'; $parse_printf = false; } } $assets[] = $plural; } } } if( $assets && '' === $assets[0]['source'] ){ $headers = loco_parse_po_headers( $assets[0]['target'] ); $indexed = $headers->__get('X-Loco-Lookup'); if( 'id' === $indexed || 'name' === $indexed ){ foreach( $assets as $i => $asset ){ if( isset($asset['notes']) ){ $notes = $texts = array(); foreach( explode("\n",$asset['notes']) as $line ){ 0 === strpos($line,'Source text: ') ? $texts[] = substr($line,13) : $notes[] = $line; } $assets[$i]['notes'] = implode("\n",$notes); $assets[$i]['id'] = $asset['source']; $assets[$i]['source'] = implode("\n",$texts); } } } } return $assets; } function loco_po_parse_flag( $text, $flag = 0 ){ $map = loco_po_flags(); foreach( explode(',',$text) as $needle ){ if( $needle = trim($needle) ){ foreach( $map as $loco_flag => $haystack ){ if( false !== stripos($haystack, $needle) ){ $flag |= $loco_flag; break; } } } } return $flag; } function loco_po_unquote( $str ){ return substr( stripcslashes($str), 1, -1 ); } function loco_parse_po_headers( $str ){ $headers = new LocoArray( array() ); foreach( explode("\n",$str) as $line ){ $i = strpos($line,':') and $key = trim( substr($line,0,$i) ) and $headers->add( $key, trim( substr($line,++$i) ) ); } return $headers; } class LocoMoParser { private $bin; private $be; private $n; private $o; private $t; private $v; public function __construct( $bin ){ $this->bin = $bin; } public function getAt( $idx ){ $offset = $this->targetOffset(); $offset += ( $idx * 8 ); $len = $this->integerAt( $offset ); $idx = $this->integerAt( $offset + 4 ); $txt = $this->bytes( $idx, $len ); if( false === strpos( $txt, "\0") ){ return $txt; } return explode( "\0", $txt ); } public function parse(){ $sourceOffset = $this->sourceOffset(); $targetOffset = $this->targetOffset(); $r = array(); $p = array(); $i = 0; $offset = $sourceOffset; while( $offset < $targetOffset ){ $r[$i] = array( 'id' => '', 'source' => '', 'target' => '' ); $len = $this->integerAt( $offset ); $idx = $this->integerAt( $offset + 4 ); $src = $this->bytes( $idx, $len ); $eot = strpos( $src, "\x04" ); if( false !== $eot ){ $r[$i]['context'] = $this->decodeStr( substr($src, 0, $eot ) ); $src = substr( $src, $eot+1 ); } $nul = strpos( $src, "\0" ); if( false !== $nul ){ $p[$i][1] = array( 'id' => '', 'source' => substr($src, $nul+1 ), 'target' => '', 'parent' => $i, 'plural' => 1 ); $src = substr( $src, 0, $nul ); } $r[$i++]['source'] = $this->decodeStr($src); $offset += 8; } $t = $i; $offset = $targetOffset; for( $i = 0; $i < $t; $i++ ){ $len = $this->integerAt( $offset ); $idx = $this->integerAt( $offset + 4 ); $txt = $this->bytes( $idx, $len ); if( false !== strpos( $txt, "\0" ) ){ $arr = explode( "\0", $txt ); $txt = array_shift( $arr ); if( isset($p[$i][1]) ){ foreach( $arr as $_i => $plural_txt ){ $plural_idx = $_i + 1; $p[$i][$plural_idx]['target'] = $this->decodeStr($plural_txt); } } else if( '' === implode('',$arr) ){ } else { throw new Exception('plural has no corresponding msgid_plural at '.$i); } } $r[$i]['target'] = $this->decodeStr($txt); $offset += 8; } foreach( $p as $parent_id => $plurals ){ foreach( $plurals as $plural_idx => $msg ){ if( 1 < $plural_idx ){ $msg['source'] = $plurals[1]['source'].' (plural '.$plural_idx.')'; } $msg['parent'] = $parent_id; $msg['plural'] = $plural_idx; $r[] = $msg; } } return $r; } public function isBigendian(){ while( is_null($this->be) ){ $str = $this->words( 0, 2 ); $arr = unpack('V', $str); if( 0x950412de === $arr[1] ){ $this->be = false; break; } if( 0xde120495 === $arr[1] ){ $this->be = true; break; } throw new Exception('Invalid MO format'); } return $this->be; } public function version(){ if( is_null($this->v) ){ $this->v = $this->integerWord(1); } return $this->v; } public function count(){ if( is_null($this->n) ){ $this->n = $this->integerWord(2); } return $this->n; } public function sourceOffset(){ if( is_null($this->o) ){ $this->o = $this->integerWord(3); } return $this->o; } public function targetOffset(){ if( is_null($this->t) ){ $this->t = $this->integerWord(4); } return $this->t; } public function getHashTable(){ $s = $this->integerWord(5); $h = $this->integerWord(6); return $this->bytes( $h, $s * 4 ); } private function bytes( $offset, $length ){ return substr( $this->bin, $offset, $length ); } private function words( $offset, $length ){ return $this->bytes( $offset * 4, $length * 4 ); } private function integerWord( $offset ){ return $this->integerAt( $offset * 4 ); } private function integerAt( $offset ){ $str = $this->bytes( $offset, 4 ); $fmt = $this->isBigendian() ? 'N' : 'V'; $arr = unpack( $fmt, $str ); if( ! isset($arr[1]) || ! is_int($arr[1]) ){ throw new Exception('Failed to read 32 bit integer at byte '.$offset); } return $arr[1]; } private function decodeStr( $str ){ $enc = mb_detect_encoding( $str, array('ASCII','UTF-8','ISO-8859-1'), false ); if( $enc && $enc !== 'ASCII' && $enc !== 'UTF-8' ){ $str = iconv( $enc, 'UTF-8', $str ); } return $str; } } function loco_parse_mo( $src ){ $mo = new LocoMoParser($src); return $mo->parse(); } final class PHPTokens implements Iterator { private $tokens; private $i; private $skip_tokens = array(); private $skip_strings = array(); private $literal_tokens = array(); public function __construct( array $tokens ){ $this->tokens = $tokens; $this->rewind(); } public function literal(){ foreach( func_get_args() as $t ){ $this->literal_tokens[ $t ] = 1; } return $this; } public function ignore(){ foreach( func_get_args() as $t ){ if( is_int($t) ){ $this->skip_tokens[$t] = true; } else { $this->skip_strings[$t] = true; } } return $this; } public function export(){ $arr = array(); foreach( $this as $tok ){ $arr[] = $tok; } return $arr; } public function advance(){ $this->next(); return $this->current(); } public function pop(){ $tok = array_pop( $this->tokens ); $this->rewind(); return $tok; } public function shift(){ $tok = array_shift( $this->tokens); $this->rewind(); return $tok; } public function rewind(){ $this->i = ( false === reset($this->tokens) ? null : key($this->tokens) ); } public function valid(){ while( isset($this->i) ){ $tok = $this->tokens[$this->i]; if( is_array($tok) ){ if( isset($this->skip_tokens[$tok[0]]) ){ $this->next(); } else { return true; } } else if( isset($this->skip_strings[$tok]) ){ $this->next(); } else { return true; } } return false; } public function key(){ return $this->i; } public function next(){ $this->i = ( false === next($this->tokens) ? null : key($this->tokens) ); } public function current(){ if( ! $this->valid() ){ return false; } $tok = $this->tokens[$this->i]; if( is_array($tok) && isset($this->literal_tokens[$tok[0]]) ){ return $tok[1]; } return $tok; } public function __toString(){ $s = ''; foreach( $this as $token ){ $s .= is_array($token) ? $token[1] : $token; } return $s; } } function loco_parse_comment($comment){ if( '*' === $comment{1} ){ $lines = array(); foreach( explode("\n", $comment) as $line ){ $line and $lines[] = trim($line,"/* \r\t"); } $comment = implode("\n", $lines); } return trim( $comment,"/ \n\r\t" ); } function decapse_string( $s ){ if( empty($s) ){ return ''; } $q = $s{0}; switch( $q ){ case "'": case '"': $s = substr( $s, 1, -1 ); if( '"' === $q ){ return stripcslashes($s); } return str_replace( array( '\\'.$q, '\\\\' ), array( $q, '\\' ), $s ); default: return $s; } } function loco_extract_php( array $tokens, $fileref = '' ){ $extractor = new LocoPHPExtractor; return $extractor->extract( $tokens, $fileref ); } final class LocoPHPExtractor { private static $rules = array ( '_' => 's', 'gettext' => 's', 'dgettext' => '_s', 'ngettext' => 'sp', 'dngettext' => '_sp', '__' => 's', '_e' => 's', '_c' => 's', '_n' => 'sp', '_n_noop' => 'sp', '_nc' => 'sp', '__ngettext' => 'sp', '__ngettext_noop' => 'sp', '_x' => 'sc', '_ex' => 'sc', '_nx' => 'sp_c', '_nx_noop' => 'spc', '_n_js' => 'sp', '_nx_js' => 'spc', 'esc_attr__' => 's', 'esc_html__' => 's', 'esc_attr_e' => 's', 'esc_html_e' => 's', 'esc_attr_x' => 'sc', 'esc_html_x' => 'sc', 'comments_number_link' => '_sp', 't' => 's', 'st' => 's', 'trans' => 's', 'transChoice' => 'sp', ); private $exp = array(); private $reg = array(); public function extract( array $tokens, $fileref = '' ){ $tokens = new PHPTokens( $tokens ); $tokens->ignore( T_WHITESPACE ); $comment = ''; foreach( $tokens as $tok ){ if( isset($args) ){ if( ')' === $tok ){ isset($arg) and $arg and $args[] = $arg; $this->push( $rule, $args, $comment, $ref ); unset($args,$arg); $comment = ''; } else if( ',' === $tok ){ isset($arg) and $arg and $args[] = $arg; unset($arg); } else if( isset($arg) ){ $arg[] = $tok; } else { $arg = array( $tok ); } } else if( is_array($tok) ){ list($t,$s) = $tok; if( T_COMMENT === $t || T_DOC_COMMENT === $t ){ $comment = $s; } else if( T_STRING === $t && isset(self::$rules[$s]) && '(' === $tokens->advance() ){ $rule = self::$rules[$s]; $args = array(); $ref = $fileref ? $fileref.':'.$tok[2]: ''; } else if( $comment && false === stripos($comment, 'translators') ){ $comment = ''; } } } return $this->exp; } private function push( $rule, array $args, $comment = '', $ref = '' ){ $s = strpos( $rule, 's'); $p = strpos( $rule, 'p'); $c = strpos( $rule, 'c'); foreach( $args as $i => $tokens ){ if( 1 === count($tokens) && is_array($tokens[0]) && T_CONSTANT_ENCAPSED_STRING === $tokens[0][0] ){ $args[$i] = decapse_string( $tokens[0][1] ); } else { $args[$i] = null; } } $key = $msgid = $args[$s]; if( ! $msgid ){ return null; } $entry = array ( 'id' => '', 'source' => $msgid, 'target' => '', ); if( $c && isset($args[$c]) ){ $entry['context'] = $args[$c]; $key .= "\0". $args[$c]; } if( $ref ){ $entry['refs'] = $ref; } $parse_printf = true; if( $comment ){ if( preg_match('/xgettext:\s*((?:no-)?\w+)-format/', $comment, $r ) ){ if( 'no-' === substr($r[1],0,3) ){ $entry['format'] = false; } else { $entry['format'] = $r[1]; } $comment = str_replace( $r[0], '', $comment ); $parse_printf = false; } $entry['notes'] = loco_parse_comment($comment); } if( $parse_printf && loco_sniff_printf( $msgid ) ){ $entry['format'] = 'php'; $parse_printf = false; } if( isset($this->reg[$key]) ){ $index = $this->reg[$key]; $a = array(); isset($this->exp[$index]['refs']) and $a[] = $this->exp[$index]['refs']; isset($entry['refs']) and $a[] = $entry['refs']; $a && $this->exp[$index]['refs'] = implode(" ", $a ); $a = array(); isset($this->exp[$index]['notes']) and $a[] = $this->exp[$index]['notes']; isset($entry['notes']) and $a[] = $entry['notes']; $a && $this->exp[$index]['notes'] = implode("\n", $a ); } else { $index = count($this->exp); $this->reg[$key] = $index; $this->exp[] = $entry; } if( $p && isset($args[$p]) ){ $msgid_plural = $args[$p]; $entry = array ( 'id' => '', 'source' => $msgid_plural, 'target' => '', 'plural' => 1, 'parent' => $index, ); if( $parse_printf && loco_sniff_printf( $msgid_plural ) ){ $this->exp[$index]['format'] = 'php'; } $key = $msgid_plural."\0\0"; if( isset($this->reg[$key]) ){ $plural_index = $this->reg[$key]; $this->exp[$plural_index] = $entry; } else { $plural_index = count($this->exp); $this->reg[$key] = $plural_index; $this->exp[] = $entry; } } return $index; } public function get_xgettext( $input = '-' ){ $cmd = defined('WHICH_XGETTEXT') ? WHICH_XGETTEXT : 'xgettext'; $cmd.= ' -LPHP -c -o-'; if( $k = $this->get_xgettext_keywords() ){ $cmd.= ' -k'.implode(' -k', $k ); } return $cmd.' '.$input; } public function get_xgettext_keywords(){ $ks = array(); foreach( self::$rules as $word => $rule ){ $s = strpos( $rule, 's'); $k = $word.':'.++$s; if( false !== $p = strpos( $rule, 'p') ){ $k.= ','.++$p; } if( false !== $p = strpos( $rule, 'c') ){ $k.= ','.++$p.'c'; } $ks[] = $k; } return $ks; } } function loco_relative_path( $source_path, $target_path ){ $rel = ''; $common = false; $src = preg_split('!/+!', $source_path, -1, PREG_SPLIT_NO_EMPTY ); $dst = preg_split('!/+!', $target_path, -1, PREG_SPLIT_NO_EMPTY ); while( $src && $dst ){ if( current($src) !== current($dst) ){ break; } $common = true; array_shift($src); array_shift($dst); } if( ! $common ){ return $target_path; } if( $src ){ $up = array_fill( 0, count($src), '..' ); $rel = implode('/', $up ); } if( $dst ){ $rel && $rel .= '/'; $rel .= implode('/', $dst ); } return $rel; } class LocoMo { private $bin; private $msgs; private $head; private $hash; public function __construct( array $export, LocoArray $head = null ){ if( ! $head ){ $head = new LocoArray( 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->head = $head; $this->msgs = $export; $this->bin = ''; } public function enableHash(){ return $this->hash = new LocoMoTable; } 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', 'nplurals='.$Loc->nplurals.'; plural='.$Loc->pluraleq.';' ) ; } public function count(){ return count($this->msgs); } public function compile(){ $table = array(''); $sources = array(''); $targets = array( $this->head->__toString() ); foreach( $this->msgs as $r ){ $msgid = $r['key']; if( isset($r['context']) && $r['context'] ){ $msgid or $msgid = "(".$r['context'].')'; $msgid = $r['context']."\x04".$msgid; } if( ! $msgid ){ continue; } $msgstr = $r['translation']; if( ! $msgstr ){ continue; } $table[] = $msgid; if( isset($r['plurals']) ){ foreach( $r['plurals'] as $i => $p ){ if( $i === 0 ){ $msgid .= "\0".$p['key']; } $msgstr .= "\0".$p['translation']; } } $sources[] = $msgid; $targets[] = $msgstr; } asort( $sources, SORT_STRING ); $this->bin = ''; $this->writeInteger( 0x950412de ); $this->writeInteger( 0 ); $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; } } 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; } } function loco_msgfmt( $po, $withhash = false ){ if( ! is_array($po) ){ $po = loco_parse_po( $po ); } $head = null; if( isset($po[0]) && '' === $po[0]['source'] ){ $head = loco_parse_po_headers( $po[0]['target'] ); $po[0] = null; } $export = array(); foreach( $po as $i => $r ){ if( ! $r ){ continue; } $msg = array ( 'key' => $r['source'], 'translation' => $r['target'], ); if( isset($r['parent']) ){ unset( $parent ); $parent = &$export[ $r['parent'] ]; isset($parent['plurals']) or $parent['plurals'] = array(); $parent['plurals'][] = $msg; } else { isset($r['context']) and $msg['context'] = $r['context']; $export[$i] = $msg; } } $mo = new LocoMo( $export, $head ); if( $withhash ){ $mo->enableHash(); } return $mo->compile(); } function loco_po_stats( array $po ){ $t = $n = $f = $u = 0; foreach( $po as $r ){ if( ! isset($r['source']) || '' === $r['source'] ){ continue; } if( isset($r['parent']) && is_int($r['parent']) ){ continue; } $t++; if( '' === $r['target'] ){ $u++; } else if( isset($r['flag']) && LOCO_FLAG_FUZZY === $r['flag'] ){ $f++; } else { $n++; } } $r = $t && $n ? $n / $t : 0; $p = (string) round( $r * 100 ); return compact('t','p','f','u'); }
|
lib/build/locales-compiled.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* Compiled source built from Loco core. Do not edit!
|
4 |
-
*
|
5 |
*/
|
6 |
-
function loco_language_country( $lang ){ static $a; if( ! isset($a) ){ $a = unserialize('a:80:{s:2:"af";s:2:"ZA";s:2:"ar";s:2:"AE";s:2:"az";s:2:"AZ";s:2:"bg";s:2:"BG";s:2:"bn";s:2:"BD";s:2:"bs";s:2:"BA";s:2:"ca";s:2:"ES";s:2:"cs";s:2:"CZ";s:2:"cy";s:2:"GB";s:2:"da";s:2:"DK";s:2:"de";s:2:"DE";s:2:"el";s:2:"GR";s:2:"en";s:2:"GB";s:2:"es";s:2:"ES";s:2:"et";s:2:"EE";s:2:"fa";s:2:"AF";s:2:"fi";s:2:"FI";s:2:"fo";s:2:"FO";s:2:"fr";s:2:"FR";s:2:"ga";s:2:"IE";s:2:"gl";s:2:"ES";s:2:"gn";s:2:"PY";s:2:"he";s:2:"IL";s:2:"hi";s:2:"IN";s:2:"hr";s:2:"HR";s:2:"ht";s:2:"HT";s:2:"hu";s:2:"HU";s:2:"hy";s:2:"AM";s:2:"id";s:2:"ID";s:2:"is";s:2:"IS";s:2:"it";s:2:"IT";s:2:"ja";s:2:"JP";s:2:"jv";s:2:"ID";s:2:"ka";s:2:"GE";s:2:"kk";s:2:"KZ";s:2:"kn";s:2:"IN";s:2:"ko";s:2:"KR";s:2:"lb";s:2:"LU";s:2:"li";s:2:"NL";s:2:"lo";s:2:"LA";s:2:"lt";s:2:"LT";s:2:"lv";s:2:"LV";s:2:"mg";s:2:"MG";s:2:"ms";s:2:"MY";s:2:"mt";s:2:"MT";s:2:"my";s:2:"MM";s:2:"nb";s:2:"NO";s:2:"ne";s:2:"NP";s:2:"nl";s:2:"NL";s:2:"nn";s:2:"NO";s:2:"no";s:2:"NO";s:2:"os";s:2:"RU";s:2:"pa";s:2:"IN";s:2:"pl";s:2:"PL";s:2:"pt";s:2:"PT";s:2:"ro";s:2:"RO";s:2:"ru";s:2:"RU";s:2:"sa";s:2:"IN";s:2:"sc";s:2:"IT";s:2:"sd";s:2:"PK";s:2:"si";s:2:"LK";s:2:"sk";s:2:"SK";s:2:"sl";s:2:"SI";s:2:"so";s:2:"SO";s:2:"sq";s:2:"AL";s:2:"sr";s:2:"RS";s:2:"su";s:2:"ID";s:2:"sv";s:2:"SE";s:2:"sw";s:2:"KE";s:2:"ta";s:2:"IN";s:2:"te";s:2:"IN";s:2:"tg";s:2:"TJ";s:2:"th";s:2:"TH";s:2:"tr";s:2:"TR";s:2:"ug";s:2:"CN";s:2:"uk";s:2:"UA";s:2:"ur";s:2:"IN";s:2:"uz";s:2:"UZ";s:2:"vi";s:2:"VN";s:2:"zh";s:2:"CN";}'); } if( isset($a[$lang]) ){ return $a[$lang]; } return ''; } return unserialize('a:3:{s:7:"locales";a:84:{s:2:"af";a:1:{s:2:"ZA";s:24:"Afrikaans (South Africa)";}s:2:"ar";a:3:{s:2:"AE";s:29:"Arabic (United Arab Emirates)";s:2:"IL";s:15:"Arabic (Israel)";s:2:"ZZ";s:6:"Arabic";}s:2:"az";a:3:{s:2:"AZ";s:24:"Azerbaijani (Azerbaijan)";s:2:"TR";s:20:"Azerbaijani (Turkey)";s:2:"ZZ";s:11:"Azerbaijani";}s:2:"bg";a:1:{s:2:"BG";s:9:"Bulgarian";}s:2:"bn";a:1:{s:2:"BD";s:20:"Bengali (Bangladesh)";}s:2:"bs";a:1:{s:2:"BA";s:30:"Bosnian (Bosnia & Herzegovina)";}s:2:"ca";a:2:{s:2:"ES";s:15:"Catalan (Spain)";s:2:"AD";s:17:"Catalan (Andorra)";}s:2:"cs";a:1:{s:2:"CZ";s:5:"Czech";}s:2:"cy";a:2:{s:2:"GB";s:5:"Welsh";s:2:"ZZ";s:5:"Welsh";}s:2:"da";a:1:{s:2:"DK";s:6:"Danish";}s:2:"de";a:3:{s:2:"DE";s:6:"German";s:2:"CH";s:20:"German (Switzerland)";s:2:"AT";s:16:"German (Austria)";}s:2:"el";a:3:{s:2:"GR";s:5:"Greek";s:2:"CY";s:14:"Greek (Cyprus)";s:2:"ZZ";s:5:"Greek";}s:2:"en";a:11:{s:2:"GB";s:12:"English (UK)";s:2:"IE";s:17:"English (Ireland)";s:2:"US";s:13:"English (USA)";s:2:"CA";s:16:"English (Canada)";s:2:"AU";s:19:"English (Australia)";s:2:"NZ";s:21:"English (New Zealand)";s:2:"HK";s:19:"English (Hong Kong)";s:2:"SG";s:19:"English (Singapore)";s:2:"AE";s:30:"English (United Arab Emirates)";s:2:"ZA";s:22:"English (South Africa)";s:2:"IN";s:15:"English (India)";}s:2:"es";a:19:{s:2:"ES";s:7:"Spanish";s:2:"MX";s:16:"Spanish (Mexico)";s:2:"AR";s:19:"Spanish (Argentina)";s:2:"BO";s:17:"Spanish (Bolivia)";s:2:"CL";s:15:"Spanish (Chile)";s:2:"CO";s:18:"Spanish (Colombia)";s:2:"CR";s:20:"Spanish (Costa Rica)";s:2:"CU";s:14:"Spanish (Cuba)";s:2:"DO";s:28:"Spanish (Dominican Republic)";s:2:"EC";s:17:"Spanish (Ecuador)";s:2:"SV";s:21:"Spanish (El Salvador)";s:2:"GT";s:19:"Spanish (Guatemala)";s:2:"HN";s:18:"Spanish (Honduras)";s:2:"NI";s:19:"Spanish (Nicaragua)";s:2:"PA";s:16:"Spanish (Panama)";s:2:"PY";s:18:"Spanish (Paraguay)";s:2:"PE";s:14:"Spanish (Peru)";s:2:"UY";s:17:"Spanish (Uruguay)";s:2:"VE";s:19:"Spanish (Venezuela)";}s:2:"et";a:2:{s:2:"EE";s:8:"Estonian";s:2:"ZZ";s:8:"Estonian";}s:2:"fa";a:2:{s:2:"AF";s:21:"Persian (Afghanistan)";s:2:"IR";s:14:"Persian (Iran)";}s:2:"fi";a:2:{s:2:"FI";s:7:"Finnish";s:2:"ZZ";s:7:"Finnish";}s:2:"fo";a:2:{s:2:"FO";s:23:"Faroese (Faroe Islands)";s:2:"DK";s:17:"Faroese (Denmark)";}s:2:"fr";a:5:{s:2:"FR";s:6:"French";s:2:"CH";s:20:"French (Switzerland)";s:2:"BE";s:16:"French (Belgium)";s:2:"HT";s:14:"French (Haiti)";s:2:"CA";s:15:"French (Canada)";}s:2:"ga";a:1:{s:2:"IE";s:15:"Irish (Ireland)";}s:2:"gl";a:1:{s:2:"ES";s:16:"Galician (Spain)";}s:2:"gn";a:1:{s:2:"PY";s:18:"Guarani (Paraguay)";}s:2:"he";a:1:{s:2:"IL";s:15:"Hebrew (Israel)";}s:2:"hi";a:1:{s:2:"IN";s:13:"Hindi (India)";}s:2:"hr";a:2:{s:2:"HR";s:8:"Croatian";s:2:"ZZ";s:8:"Croatian";}s:2:"ht";a:1:{s:2:"HT";s:14:"Haitian Creole";}s:2:"hu";a:1:{s:2:"HU";s:9:"Hungarian";}s:2:"hy";a:1:{s:2:"AM";s:8:"Armenian";}s:2:"id";a:1:{s:2:"ID";s:10:"Indonesian";}s:2:"is";a:1:{s:2:"IS";s:9:"Icelandic";}s:2:"it";a:2:{s:2:"IT";s:7:"Italian";s:2:"CH";s:21:"Italian (Switzerland)";}s:2:"ja";a:2:{s:2:"JP";s:8:"Japanese";s:2:"ZZ";s:8:"Japanese";}s:2:"jv";a:1:{s:2:"ID";s:20:"Javanese (Indonesia)";}s:2:"ka";a:1:{s:2:"GE";s:8:"Georgian";}s:2:"kk";a:1:{s:2:"KZ";s:6:"Kazakh";}s:2:"kn";a:2:{s:2:"IN";s:15:"Kannada (India)";s:2:"ZZ";s:7:"Kannada";}s:2:"ko";a:1:{s:2:"KR";s:6:"Korean";}s:2:"lb";a:1:{s:2:"LU";s:13:"Luxembourgish";}s:2:"li";a:1:{s:2:"NL";s:24:"Limburgish (Netherlands)";}s:2:"lo";a:1:{s:2:"LA";s:10:"Lao (Laos)";}s:2:"lt";a:1:{s:2:"LT";s:10:"Lithuanian";}s:2:"lv";a:2:{s:2:"LV";s:7:"Latvian";s:2:"ZZ";s:7:"Latvian";}s:2:"mg";a:1:{s:2:"MG";s:21:"Malagasy (Madagascar)";}s:2:"ms";a:1:{s:2:"MY";s:16:"Malay (Malaysia)";}s:2:"mt";a:1:{s:2:"MT";s:7:"Maltese";}s:2:"my";a:1:{s:2:"MM";s:17:"Burmese (Myanmar)";}s:2:"nb";a:1:{s:2:"NO";s:7:"Bokmål";}s:2:"ne";a:1:{s:2:"NP";s:6:"Nepali";}s:2:"nl";a:2:{s:2:"NL";s:5:"Dutch";s:2:"BE";s:15:"Dutch (Belgium)";}s:2:"nn";a:1:{s:2:"NO";s:7:"Nynorsk";}s:2:"no";a:1:{s:2:"NO";s:9:"Norwegian";}s:2:"os";a:4:{s:2:"RU";s:17:"Ossetian (Russia)";s:2:"TR";s:17:"Ossetian (Turkey)";s:2:"GE";s:18:"Ossetian (Georgia)";s:2:"ZZ";s:17:"Ossetian; Ossetic";}s:2:"pa";a:1:{s:2:"IN";s:15:"Punjabi (India)";}s:2:"pl";a:1:{s:2:"PL";s:6:"Polish";}s:2:"pt";a:2:{s:2:"PT";s:10:"Portuguese";s:2:"BR";s:19:"Portuguese (Brazil)";}s:2:"ro";a:1:{s:2:"RO";s:8:"Romanian";}s:2:"ru";a:2:{s:2:"RU";s:7:"Russian";s:2:"UA";s:17:"Russian (Ukraine)";}s:2:"sa";a:1:{s:2:"IN";s:16:"Sanskrit (India)";}s:2:"sc";a:1:{s:2:"IT";s:17:"Sardinian (Italy)";}s:2:"sd";a:1:{s:2:"PK";s:17:"Sindhi (Pakistan)";}s:2:"si";a:1:{s:2:"LK";s:19:"Sinhala (Sri Lanka)";}s:2:"sk";a:1:{s:2:"SK";s:6:"Slovak";}s:2:"sl";a:1:{s:2:"SI";s:9:"Slovenian";}s:2:"so";a:1:{s:2:"SO";s:6:"Somali";}s:2:"sq";a:2:{s:2:"AL";s:18:"Albanian (Albania)";s:2:"ZZ";s:8:"Albanian";}s:2:"sr";a:1:{s:2:"RS";s:7:"Serbian";}s:2:"su";a:1:{s:2:"ID";s:21:"Sundanese (Indonesia)";}s:2:"sv";a:1:{s:2:"SE";s:7:"Swedish";}s:2:"sw";a:5:{s:2:"KE";s:15:"Swahili (Kenya)";s:2:"UG";s:16:"Swahili (Uganda)";s:2:"TZ";s:18:"Swahili (Tanzania)";s:2:"KM";s:17:"Swahili (Comoros)";s:2:"ZZ";s:7:"Swahili";}s:2:"ta";a:2:{s:2:"IN";s:13:"Tamil (India)";s:2:"LK";s:17:"Tamil (Sri Lanka)";}s:2:"te";a:1:{s:2:"IN";s:14:"Telugu (India)";}s:2:"tg";a:1:{s:2:"TJ";s:18:"Tajik (Tajikistan)";}s:2:"th";a:2:{s:2:"TH";s:15:"Thai (Thailand)";s:2:"ZZ";s:4:"Thai";}s:2:"tr";a:1:{s:2:"TR";s:7:"Turkish";}s:2:"ug";a:1:{s:2:"CN";s:14:"Uyghur (China)";}s:2:"uk";a:2:{s:2:"UA";s:19:"Ukrainian (Ukraine)";s:2:"ZZ";s:9:"Ukrainian";}s:2:"ur";a:2:{s:2:"IN";s:12:"Urdu (India)";s:2:"PK";s:15:"Urdu (Pakistan)";}s:2:"uz";a:1:{s:2:"UZ";s:18:"Uzbek (Uzbekistan)";}s:2:"vi";a:2:{s:2:"VN";s:10:"Vietnamese";s:2:"ZZ";s:10:"Vietnamese";}s:2:"zh";a:3:{s:2:"CN";s:7:"Chinese";s:2:"HK";s:19:"Chinese (Hong Kong)";s:2:"TW";s:16:"Chinese (Taiwan)";}s:2:"eu";a:1:{s:2:"ZZ";s:6:"Basque";}s:2:"eo";a:1:{s:2:"ZZ";s:9:"Esperanto";}s:2:"fy";a:1:{s:2:"ZZ";s:15:"Western Frisian";}s:2:"gd";a:1:{s:2:"ZZ";s:23:"Gaelic; Scottish Gaelic";}}s:5:"langs";a:185:{s:2:"ab";a:3:{i:0;s:9:"Abkhazian";i:1;s:0:"";i:2;a:0:{}}s:2:"aa";a:3:{i:0;s:4:"Afar";i:1;s:0:"";i:2;a:0:{}}s:2:"af";a:3:{i:0;s:9:"Afrikaans";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ak";a:3:{i:0;s:4:"Akan";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"sq";a:3:{i:0;s:8:"Albanian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"am";a:3:{i:0;s:7:"Amharic";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ar";a:3:{i:0;s:6:"Arabic";i:1;s:95:"n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100 >= 3 && n%100<=10 ? 3 : n%100 >= 11 && n%100<=99 ? 4 : 5";i:2;a:6:{i:0;s:4:"zero";i:1;s:3:"one";i:2;s:3:"two";i:3;s:3:"few";i:4;s:4:"many";i:5;s:5:"other";}}s:2:"an";a:3:{i:0;s:9:"Aragonese";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"hy";a:3:{i:0;s:8:"Armenian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"as";a:3:{i:0;s:8:"Assamese";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"av";a:3:{i:0;s:6:"Avaric";i:1;s:0:"";i:2;a:0:{}}s:2:"ae";a:3:{i:0;s:7:"Avestan";i:1;s:0:"";i:2;a:0:{}}s:2:"ay";a:3:{i:0;s:6:"Aymara";i:1;s:0:"";i:2;a:0:{}}s:2:"az";a:3:{i:0;s:11:"Azerbaijani";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"bm";a:3:{i:0;s:7:"Bambara";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"ba";a:3:{i:0;s:7:"Bashkir";i:1;s:0:"";i:2;a:0:{}}s:2:"eu";a:3:{i:0;s:6:"Basque";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"be";a:3:{i:0;s:10:"Belarusian";i:1;s:82:"(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 && n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2)";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:4:"many";}}s:2:"bn";a:3:{i:0;s:7:"Bengali";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"bh";a:3:{i:0;s:6:"Bihari";i:1;s:28:"( n >= 0 && n <= 1 ) ? 0 : 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"bi";a:3:{i:0;s:7:"Bislama";i:1;s:0:"";i:2;a:0:{}}s:2:"bs";a:3:{i:0;s:7:"Bosnian";i:1;s:82:"(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 && n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2)";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:5:"other";}}s:2:"br";a:3:{i:0;s:6:"Breton";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"bg";a:3:{i:0;s:9:"Bulgarian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"my";a:3:{i:0;s:7:"Burmese";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"ca";a:3:{i:0;s:18:"Catalan; Valencian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ch";a:3:{i:0;s:8:"Chamorro";i:1;s:0:"";i:2;a:0:{}}s:2:"ce";a:3:{i:0;s:7:"Chechen";i:1;s:0:"";i:2;a:0:{}}s:2:"ny";a:3:{i:0;s:23:"Chichewa; Chewa; Nyanja";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"zh";a:3:{i:0;s:7:"Chinese";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"cu";a:3:{i:0;s:64:"Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old";i:1;s:0:"";i:2;a:0:{}}s:2:"cv";a:3:{i:0;s:7:"Chuvash";i:1;s:0:"";i:2;a:0:{}}s:2:"kw";a:3:{i:0;s:7:"Cornish";i:1;s:27:"n == 1 ? 0 : n == 2 ? 1 : 2";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"two";i:2;s:5:"other";}}s:2:"co";a:3:{i:0;s:8:"Corsican";i:1;s:0:"";i:2;a:0:{}}s:2:"cr";a:3:{i:0;s:4:"Cree";i:1;s:0:"";i:2;a:0:{}}s:2:"hr";a:3:{i:0;s:8:"Croatian";i:1;s:80:"n%10==1 && n%100!=11 ? 0 : n%10 >= 2 && n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:5:"other";}}s:2:"cs";a:3:{i:0;s:5:"Czech";i:1;s:45:"( n == 1 ) ? 0 : ( n >= 2 && n <= 4 ) ? 1 : 2";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:5:"other";}}s:2:"da";a:3:{i:0;s:6:"Danish";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"dv";a:3:{i:0;s:26:"Divehi; Dhivehi; Maldivian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"nl";a:3:{i:0;s:14:"Dutch; Flemish";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"dz";a:3:{i:0;s:8:"Dzongkha";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"en";a:3:{i:0;s:7:"English";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"eo";a:3:{i:0;s:9:"Esperanto";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"et";a:3:{i:0;s:8:"Estonian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ee";a:3:{i:0;s:3:"Ewe";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"fo";a:3:{i:0;s:7:"Faroese";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"fj";a:3:{i:0;s:6:"Fijian";i:1;s:0:"";i:2;a:0:{}}s:2:"fi";a:3:{i:0;s:7:"Finnish";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"fr";a:3:{i:0;s:6:"French";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ff";a:3:{i:0;s:5:"Fulah";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"gd";a:3:{i:0;s:23:"Gaelic; Scottish Gaelic";i:1;s:26:"n < 2 ? 0 : n == 2 ? 1 : 2";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"two";i:2;s:5:"other";}}s:2:"gl";a:3:{i:0;s:8:"Galician";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"lg";a:3:{i:0;s:5:"Ganda";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ka";a:3:{i:0;s:8:"Georgian";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"de";a:3:{i:0;s:6:"German";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"el";a:3:{i:0;s:5:"Greek";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"gn";a:3:{i:0;s:7:"Guarani";i:1;s:0:"";i:2;a:0:{}}s:2:"gu";a:3:{i:0;s:8:"Gujarati";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ht";a:3:{i:0;s:23:"Haitian; Haitian Creole";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ha";a:3:{i:0;s:5:"Hausa";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"he";a:3:{i:0;s:6:"Hebrew";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"hz";a:3:{i:0;s:6:"Herero";i:1;s:0:"";i:2;a:0:{}}s:2:"hi";a:3:{i:0;s:5:"Hindi";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ho";a:3:{i:0;s:9:"Hiri Motu";i:1;s:0:"";i:2;a:0:{}}s:2:"hu";a:3:{i:0;s:9:"Hungarian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"is";a:3:{i:0;s:9:"Icelandic";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"io";a:3:{i:0;s:3:"Ido";i:1;s:0:"";i:2;a:0:{}}s:2:"ig";a:3:{i:0;s:4:"Igbo";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"id";a:3:{i:0;s:10:"Indonesian";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"ia";a:3:{i:0;s:58:"Interlingua (International Auxiliary Language Association)";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ie";a:3:{i:0;s:11:"Interlingue";i:1;s:0:"";i:2;a:0:{}}s:2:"iu";a:3:{i:0;s:9:"Inuktitut";i:1;s:27:"n == 1 ? 0 : n == 2 ? 1 : 2";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"two";i:2;s:5:"other";}}s:2:"ik";a:3:{i:0;s:7:"Inupiaq";i:1;s:0:"";i:2;a:0:{}}s:2:"ga";a:3:{i:0;s:5:"Irish";i:1;s:44:"n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4";i:2;a:5:{i:0;s:3:"one";i:1;s:3:"two";i:2;s:3:"few";i:3;s:4:"many";i:4;s:5:"other";}}s:2:"it";a:3:{i:0;s:7:"Italian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ja";a:3:{i:0;s:8:"Japanese";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"jv";a:3:{i:0;s:8:"Javanese";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"kl";a:3:{i:0;s:24:"Kalaallisut; Greenlandic";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"kn";a:3:{i:0;s:7:"Kannada";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"kr";a:3:{i:0;s:6:"Kanuri";i:1;s:0:"";i:2;a:0:{}}s:2:"ks";a:3:{i:0;s:8:"Kashmiri";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"kk";a:3:{i:0;s:6:"Kazakh";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"km";a:3:{i:0;s:5:"Khmer";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"ki";a:3:{i:0;s:14:"Kikuyu; Gikuyu";i:1;s:0:"";i:2;a:0:{}}s:2:"rw";a:3:{i:0;s:11:"Kinyarwanda";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ky";a:3:{i:0;s:7:"Kirghiz";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"kv";a:3:{i:0;s:4:"Komi";i:1;s:0:"";i:2;a:0:{}}s:2:"kg";a:3:{i:0;s:5:"Kongo";i:1;s:0:"";i:2;a:0:{}}s:2:"ko";a:3:{i:0;s:6:"Korean";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"kj";a:3:{i:0;s:18:"Kuanyama; Kwanyama";i:1;s:0:"";i:2;a:0:{}}s:2:"ku";a:3:{i:0;s:7:"Kurdish";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"lo";a:3:{i:0;s:3:"Lao";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"la";a:3:{i:0;s:5:"Latin";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"lv";a:3:{i:0;s:7:"Latvian";i:1;s:49:"n % 10 == 1 && n % 100 != 11 ? 0 : n != 0 ? 1 : 2";i:2;a:3:{i:0;s:3:"one";i:1;s:5:"other";i:2;s:4:"zero";}}s:2:"li";a:3:{i:0;s:32:"Limburgan; Limburger; Limburgish";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ln";a:3:{i:0;s:7:"Lingala";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"lt";a:3:{i:0;s:10:"Lithuanian";i:1;s:71:"(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 &&(n%100<10||n%100 >= 20)? 1 : 2)";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:5:"other";}}s:2:"lu";a:3:{i:0;s:12:"Luba-Katanga";i:1;s:0:"";i:2;a:0:{}}s:2:"lb";a:3:{i:0;s:28:"Luxembourgish; Letzeburgesch";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"mk";a:3:{i:0;s:10:"Macedonian";i:1;s:40:"( n % 10 == 1 && n % 100 != 11 ) ? 0 : 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"mg";a:3:{i:0;s:8:"Malagasy";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ms";a:3:{i:0;s:5:"Malay";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"ml";a:3:{i:0;s:9:"Malayalam";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"mt";a:3:{i:0;s:7:"Maltese";i:1;s:75:"(n==1 ? 0 : n==0||( n%100>1 && n%100<11)? 1 :(n%100>10 && n%100<20)? 2 : 3)";i:2;a:4:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:4:"many";i:3;s:5:"other";}}s:2:"gv";a:3:{i:0;s:4:"Manx";i:1;s:43:"n%10==1 ? 0 : n%10==2 ? 1 : n%20==0 ? 2 : 3";i:2;a:4:{i:0;s:3:"one";i:1;s:3:"two";i:2;s:3:"few";i:3;s:5:"other";}}s:2:"mi";a:3:{i:0;s:5:"Maori";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"mr";a:3:{i:0;s:7:"Marathi";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"mh";a:3:{i:0;s:11:"Marshallese";i:1;s:0:"";i:2;a:0:{}}s:2:"mo";a:3:{i:0;s:9:"Moldavian";i:1;s:50:"n == 1 ? 0 : n % 100 >= 1 && n % 100 <= 19 ? 1 : 2";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:5:"other";}}s:2:"mn";a:3:{i:0;s:9:"Mongolian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"na";a:3:{i:0;s:5:"Nauru";i:1;s:0:"";i:2;a:0:{}}s:2:"nv";a:3:{i:0;s:14:"Navajo; Navaho";i:1;s:0:"";i:2;a:0:{}}s:2:"nd";a:3:{i:0;s:29:"Ndebele, North; North Ndebele";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"nr";a:3:{i:0;s:29:"Ndebele, South; South Ndebele";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"ng";a:3:{i:0;s:6:"Ndonga";i:1;s:0:"";i:2;a:0:{}}s:2:"ne";a:3:{i:0;s:6:"Nepali";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"se";a:3:{i:0;s:13:"Northern Sami";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"no";a:3:{i:0;s:9:"Norwegian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"nb";a:3:{i:0;s:17:"Norwegian Bokmål";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"nn";a:3:{i:0;s:17:"Norwegian Nynorsk";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"oc";a:3:{i:0;s:31:"Occitan (post 1500); Provençal";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"oj";a:3:{i:0;s:6:"Ojibwa";i:1;s:0:"";i:2;a:0:{}}s:2:"or";a:3:{i:0;s:5:"Oriya";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"om";a:3:{i:0;s:5:"Oromo";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"os";a:3:{i:0;s:17:"Ossetian; Ossetic";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"pi";a:3:{i:0;s:4:"Pali";i:1;s:0:"";i:2;a:0:{}}s:2:"pa";a:3:{i:0;s:16:"Panjabi; Punjabi";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"fa";a:3:{i:0;s:7:"Persian";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"pl";a:3:{i:0;s:6:"Polish";i:1;s:66:"(n==1 ? 0 : n%10 >= 2 && n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2)";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:4:"many";}}s:2:"pt";a:3:{i:0;s:10:"Portuguese";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ps";a:3:{i:0;s:6:"Pushto";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"qu";a:3:{i:0;s:7:"Quechua";i:1;s:0:"";i:2;a:0:{}}s:2:"rm";a:3:{i:0;s:13:"Raeto-Romance";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ro";a:3:{i:0;s:8:"Romanian";i:1;s:56:"(n==1 ? 0 :(((n%100>19)||(( n%100==0)&&(n!=0)))? 2 : 1))";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:5:"other";}}s:2:"rn";a:3:{i:0;s:5:"Rundi";i:1;s:0:"";i:2;a:0:{}}s:2:"ru";a:3:{i:0;s:7:"Russian";i:1;s:82:"(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 && n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2)";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:4:"many";}}s:2:"sm";a:3:{i:0;s:6:"Samoan";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"sg";a:3:{i:0;s:5:"Sango";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"sa";a:3:{i:0;s:8:"Sanskrit";i:1;s:0:"";i:2;a:0:{}}s:2:"sc";a:3:{i:0;s:9:"Sardinian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"sr";a:3:{i:0;s:7:"Serbian";i:1;s:82:"(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 && n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2)";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:5:"other";}}s:2:"sn";a:3:{i:0;s:5:"Shona";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ii";a:3:{i:0;s:10:"Sichuan Yi";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"sd";a:3:{i:0;s:6:"Sindhi";i:1;s:0:"";i:2;a:0:{}}s:2:"si";a:3:{i:0;s:18:"Sinhala; Sinhalese";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"sk";a:3:{i:0;s:6:"Slovak";i:1;s:45:"( n == 1 ) ? 0 : ( n >= 2 && n <= 4 ) ? 1 : 2";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:5:"other";}}s:2:"sl";a:3:{i:0;s:9:"Slovenian";i:1;s:56:"n%100==1 ? 0 : n%100==2 ? 1 : n%100==3||n%100==4 ? 2 : 3";i:2;a:4:{i:0;s:3:"one";i:1;s:3:"two";i:2;s:3:"few";i:3;s:5:"other";}}s:2:"so";a:3:{i:0;s:6:"Somali";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"st";a:3:{i:0;s:15:"Sotho, Southern";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"es";a:3:{i:0;s:7:"Spanish";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"su";a:3:{i:0;s:9:"Sundanese";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"sw";a:3:{i:0;s:7:"Swahili";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ss";a:3:{i:0;s:5:"Swati";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"sv";a:3:{i:0;s:7:"Swedish";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"tl";a:3:{i:0;s:7:"Tagalog";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ty";a:3:{i:0;s:8:"Tahitian";i:1;s:0:"";i:2;a:0:{}}s:2:"tg";a:3:{i:0;s:5:"Tajik";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ta";a:3:{i:0;s:5:"Tamil";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"tt";a:3:{i:0;s:5:"Tatar";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"te";a:3:{i:0;s:6:"Telugu";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"th";a:3:{i:0;s:4:"Thai";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"bo";a:3:{i:0;s:7:"Tibetan";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"ti";a:3:{i:0;s:8:"Tigrinya";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"to";a:3:{i:0;s:21:"Tonga (Tonga Islands)";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"ts";a:3:{i:0;s:6:"Tsonga";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"tn";a:3:{i:0;s:6:"Tswana";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"tr";a:3:{i:0;s:7:"Turkish";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"tk";a:3:{i:0;s:7:"Turkmen";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"tw";a:3:{i:0;s:3:"Twi";i:1;s:0:"";i:2;a:0:{}}s:2:"ug";a:3:{i:0;s:14:"Uighur; Uyghur";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"uk";a:3:{i:0;s:9:"Ukrainian";i:1;s:82:"(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 && n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2)";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:4:"many";}}s:2:"ur";a:3:{i:0;s:4:"Urdu";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"uz";a:3:{i:0;s:5:"Uzbek";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ve";a:3:{i:0;s:5:"Venda";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"vi";a:3:{i:0;s:10:"Vietnamese";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"vo";a:3:{i:0;s:8:"Volapük";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"wa";a:3:{i:0;s:7:"Walloon";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"cy";a:3:{i:0;s:5:"Welsh";i:1;s:56:"n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n==3 ? 3 : n==6 ? 4 : 5";i:2;a:6:{i:0;s:4:"zero";i:1;s:3:"one";i:2;s:3:"two";i:3;s:3:"few";i:4;s:4:"many";i:5;s:5:"other";}}s:2:"fy";a:3:{i:0;s:15:"Western Frisian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"wo";a:3:{i:0;s:5:"Wolof";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"xh";a:3:{i:0;s:5:"Xhosa";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"yi";a:3:{i:0;s:7:"Yiddish";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"yo";a:3:{i:0;s:6:"Yoruba";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"za";a:3:{i:0;s:14:"Zhuang; Chuang";i:1;s:0:"";i:2;a:0:{}}s:2:"zu";a:3:{i:0;s:4:"Zulu";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}}s:7:"regions";a:249:{s:2:"AF";s:11:"Afghanistan";s:2:"AX";s:14:"Åland Islands";s:2:"AL";s:7:"Albania";s:2:"DZ";s:7:"Algeria";s:2:"AS";s:14:"American Samoa";s:2:"AD";s:7:"Andorra";s:2:"AO";s:6:"Angola";s:2:"AI";s:8:"Anguilla";s:2:"AQ";s:10:"Antarctica";s:2:"AG";s:19:"Antigua and Barbuda";s:2:"AR";s:9:"Argentina";s:2:"AM";s:7:"Armenia";s:2:"AW";s:5:"Aruba";s:2:"AU";s:9:"Australia";s:2:"AT";s:7:"Austria";s:2:"AZ";s:10:"Azerbaijan";s:2:"BS";s:7:"Bahamas";s:2:"BH";s:7:"Bahrain";s:2:"BD";s:10:"Bangladesh";s:2:"BB";s:8:"Barbados";s:2:"BY";s:7:"Belarus";s:2:"BE";s:7:"Belgium";s:2:"BZ";s:6:"Belize";s:2:"BJ";s:5:"Benin";s:2:"BM";s:7:"Bermuda";s:2:"BT";s:6:"Bhutan";s:2:"BO";s:31:"Bolivia, Plurinational State of";s:2:"BQ";s:32:"Bonaire, Sint Eustatius and Saba";s:2:"BA";s:22:"Bosnia and Herzegovina";s:2:"BW";s:8:"Botswana";s:2:"BV";s:13:"Bouvet Island";s:2:"BR";s:6:"Brazil";s:2:"IO";s:30:"British Indian Ocean Territory";s:2:"BN";s:17:"Brunei Darussalam";s:2:"BG";s:8:"Bulgaria";s:2:"BF";s:12:"Burkina Faso";s:2:"BI";s:7:"Burundi";s:2:"KH";s:8:"Cambodia";s:2:"CM";s:8:"Cameroon";s:2:"CA";s:6:"Canada";s:2:"CV";s:10:"Cape Verde";s:2:"KY";s:14:"Cayman Islands";s:2:"CF";s:24:"Central African Republic";s:2:"TD";s:4:"Chad";s:2:"CL";s:5:"Chile";s:2:"CN";s:5:"China";s:2:"CX";s:16:"Christmas Island";s:2:"CC";s:23:"Cocos (Keeling) Islands";s:2:"CO";s:8:"Colombia";s:2:"KM";s:7:"Comoros";s:2:"CG";s:5:"Congo";s:2:"CD";s:37:"Congo, The Democratic Republic of The";s:2:"CK";s:12:"Cook Islands";s:2:"CR";s:10:"Costa Rica";s:2:"CI";s:14:"Côte D\'Ivoire";s:2:"HR";s:7:"Croatia";s:2:"CU";s:4:"Cuba";s:2:"CW";s:8:"Curaçao";s:2:"CY";s:6:"Cyprus";s:2:"CZ";s:14:"Czech Republic";s:2:"DK";s:7:"Denmark";s:2:"DJ";s:8:"Djibouti";s:2:"DM";s:8:"Dominica";s:2:"DO";s:18:"Dominican Republic";s:2:"EC";s:7:"Ecuador";s:2:"EG";s:5:"Egypt";s:2:"SV";s:11:"El Salvador";s:2:"GQ";s:17:"Equatorial Guinea";s:2:"ER";s:7:"Eritrea";s:2:"EE";s:7:"Estonia";s:2:"ET";s:8:"Ethiopia";s:2:"FK";s:27:"Falkland Islands (Malvinas)";s:2:"FO";s:13:"Faroe Islands";s:2:"FJ";s:4:"Fiji";s:2:"FI";s:7:"Finland";s:2:"FR";s:6:"France";s:2:"GF";s:13:"French Guiana";s:2:"PF";s:16:"French Polynesia";s:2:"TF";s:27:"French Southern Territories";s:2:"GA";s:5:"Gabon";s:2:"GM";s:6:"Gambia";s:2:"GE";s:7:"Georgia";s:2:"DE";s:7:"Germany";s:2:"GH";s:5:"Ghana";s:2:"GI";s:9:"Gibraltar";s:2:"GR";s:6:"Greece";s:2:"GL";s:9:"Greenland";s:2:"GD";s:7:"Grenada";s:2:"GP";s:10:"Guadeloupe";s:2:"GU";s:4:"Guam";s:2:"GT";s:9:"Guatemala";s:2:"GG";s:8:"Guernsey";s:2:"GN";s:6:"Guinea";s:2:"GW";s:13:"Guinea-Bissau";s:2:"GY";s:6:"Guyana";s:2:"HT";s:5:"Haiti";s:2:"HM";s:33:"Heard Island and Mcdonald Islands";s:2:"VA";s:29:"Holy See (Vatican City State)";s:2:"HN";s:8:"Honduras";s:2:"HK";s:9:"Hong Kong";s:2:"HU";s:7:"Hungary";s:2:"IS";s:7:"Iceland";s:2:"IN";s:5:"India";s:2:"ID";s:9:"Indonesia";s:2:"IR";s:25:"Iran, Islamic Republic of";s:2:"IQ";s:4:"Iraq";s:2:"IE";s:7:"Ireland";s:2:"IM";s:11:"Isle of Man";s:2:"IL";s:6:"Israel";s:2:"IT";s:5:"Italy";s:2:"JM";s:7:"Jamaica";s:2:"JP";s:5:"Japan";s:2:"JE";s:6:"Jersey";s:2:"JO";s:6:"Jordan";s:2:"KZ";s:10:"Kazakhstan";s:2:"KE";s:5:"Kenya";s:2:"KI";s:8:"Kiribati";s:2:"KP";s:38:"Korea, Democratic People\'s Republic of";s:2:"KR";s:18:"Korea, Republic of";s:2:"KW";s:6:"Kuwait";s:2:"KG";s:10:"Kyrgyzstan";s:2:"LA";s:32:"Lao People\'s Democratic Republic";s:2:"LV";s:6:"Latvia";s:2:"LB";s:7:"Lebanon";s:2:"LS";s:7:"Lesotho";s:2:"LR";s:7:"Liberia";s:2:"LY";s:5:"Libya";s:2:"LI";s:13:"Liechtenstein";s:2:"LT";s:9:"Lithuania";s:2:"LU";s:10:"Luxembourg";s:2:"MO";s:5:"Macao";s:2:"MK";s:42:"Macedonia, The Former Yugoslav Republic of";s:2:"MG";s:10:"Madagascar";s:2:"MW";s:6:"Malawi";s:2:"MY";s:8:"Malaysia";s:2:"MV";s:8:"Maldives";s:2:"ML";s:4:"Mali";s:2:"MT";s:5:"Malta";s:2:"MH";s:16:"Marshall Islands";s:2:"MQ";s:10:"Martinique";s:2:"MR";s:10:"Mauritania";s:2:"MU";s:9:"Mauritius";s:2:"YT";s:7:"Mayotte";s:2:"MX";s:6:"Mexico";s:2:"FM";s:31:"Micronesia, Federated States of";s:2:"MD";s:20:"Moldova, Republic of";s:2:"MC";s:6:"Monaco";s:2:"MN";s:8:"Mongolia";s:2:"ME";s:10:"Montenegro";s:2:"MS";s:10:"Montserrat";s:2:"MA";s:7:"Morocco";s:2:"MZ";s:10:"Mozambique";s:2:"MM";s:7:"Myanmar";s:2:"NA";s:7:"Namibia";s:2:"NR";s:5:"Nauru";s:2:"NP";s:5:"Nepal";s:2:"NL";s:11:"Netherlands";s:2:"NC";s:13:"New Caledonia";s:2:"NZ";s:11:"New Zealand";s:2:"NI";s:9:"Nicaragua";s:2:"NE";s:5:"Niger";s:2:"NG";s:7:"Nigeria";s:2:"NU";s:4:"Niue";s:2:"NF";s:14:"Norfolk Island";s:2:"MP";s:24:"Northern Mariana Islands";s:2:"NO";s:6:"Norway";s:2:"OM";s:4:"Oman";s:2:"PK";s:8:"Pakistan";s:2:"PW";s:5:"Palau";s:2:"PS";s:31:"Palestinian Territory, Occupied";s:2:"PA";s:6:"Panama";s:2:"PG";s:16:"Papua New Guinea";s:2:"PY";s:8:"Paraguay";s:2:"PE";s:4:"Peru";s:2:"PH";s:11:"Philippines";s:2:"PN";s:8:"Pitcairn";s:2:"PL";s:6:"Poland";s:2:"PT";s:8:"Portugal";s:2:"PR";s:11:"Puerto Rico";s:2:"QA";s:5:"Qatar";s:2:"RE";s:8:"Réunion";s:2:"RO";s:7:"Romania";s:2:"RU";s:18:"Russian Federation";s:2:"RW";s:6:"Rwanda";s:2:"BL";s:17:"Saint Barthélemy";s:2:"SH";s:44:"Saint Helena, Ascension and Tristan Da Cunha";s:2:"KN";s:21:"Saint Kitts and Nevis";s:2:"LC";s:11:"Saint Lucia";s:2:"MF";s:26:"Saint Martin (French Part)";s:2:"PM";s:25:"Saint Pierre and Miquelon";s:2:"VC";s:32:"Saint Vincent and The Grenadines";s:2:"WS";s:5:"Samoa";s:2:"SM";s:10:"San Marino";s:2:"ST";s:21:"Sao Tome and Principe";s:2:"SA";s:12:"Saudi Arabia";s:2:"SN";s:7:"Senegal";s:2:"RS";s:6:"Serbia";s:2:"SC";s:10:"Seychelles";s:2:"SL";s:12:"Sierra Leone";s:2:"SG";s:9:"Singapore";s:2:"SX";s:25:"Sint Maarten (Dutch Part)";s:2:"SK";s:8:"Slovakia";s:2:"SI";s:8:"Slovenia";s:2:"SB";s:15:"Solomon Islands";s:2:"SO";s:7:"Somalia";s:2:"ZA";s:12:"South Africa";s:2:"GS";s:44:"South Georgia and The South Sandwich Islands";s:2:"SS";s:11:"South Sudan";s:2:"ES";s:5:"Spain";s:2:"LK";s:9:"Sri Lanka";s:2:"SD";s:5:"Sudan";s:2:"SR";s:8:"Suriname";s:2:"SJ";s:22:"Svalbard and Jan Mayen";s:2:"SZ";s:9:"Swaziland";s:2:"SE";s:6:"Sweden";s:2:"CH";s:11:"Switzerland";s:2:"SY";s:20:"Syrian Arab Republic";s:2:"TW";s:25:"Taiwan, Province of China";s:2:"TJ";s:10:"Tajikistan";s:2:"TZ";s:28:"Tanzania, United Republic of";s:2:"TH";s:8:"Thailand";s:2:"TL";s:11:"Timor-Leste";s:2:"TG";s:4:"Togo";s:2:"TK";s:7:"Tokelau";s:2:"TO";s:5:"Tonga";s:2:"TT";s:19:"Trinidad and Tobago";s:2:"TN";s:7:"Tunisia";s:2:"TR";s:6:"Turkey";s:2:"TM";s:12:"Turkmenistan";s:2:"TC";s:24:"Turks and Caicos Islands";s:2:"TV";s:6:"Tuvalu";s:2:"UG";s:6:"Uganda";s:2:"UA";s:7:"Ukraine";s:2:"AE";s:20:"United Arab Emirates";s:2:"GB";s:14:"United Kingdom";s:2:"US";s:13:"United States";s:2:"UM";s:36:"United States Minor Outlying Islands";s:2:"UY";s:7:"Uruguay";s:2:"UZ";s:10:"Uzbekistan";s:2:"VU";s:7:"Vanuatu";s:2:"VE";s:33:"Venezuela, Bolivarian Republic of";s:2:"VN";s:8:"Viet Nam";s:2:"VG";s:23:"Virgin Islands, British";s:2:"VI";s:20:"Virgin Islands, U.S.";s:2:"WF";s:17:"Wallis and Futuna";s:2:"EH";s:14:"Western Sahara";s:2:"YE";s:5:"Yemen";s:2:"ZM";s:6:"Zambia";s:2:"ZW";s:8:"Zimbabwe";}}');
|
1 |
<?php
|
2 |
/**
|
3 |
* Compiled source built from Loco core. Do not edit!
|
4 |
+
* Wed, 21 Jan 2015 14:04:24 +0000
|
5 |
*/
|
6 |
+
function loco_language_country( $lang ){ static $a; if( ! isset($a) ){ $a = unserialize('a:80:{s:2:"af";s:2:"ZA";s:2:"ar";s:2:"AE";s:2:"az";s:2:"AZ";s:2:"bg";s:2:"BG";s:2:"bn";s:2:"BD";s:2:"bs";s:2:"BA";s:2:"ca";s:2:"ES";s:2:"cs";s:2:"CZ";s:2:"cy";s:2:"GB";s:2:"da";s:2:"DK";s:2:"de";s:2:"DE";s:2:"el";s:2:"GR";s:2:"en";s:2:"GB";s:2:"es";s:2:"ES";s:2:"et";s:2:"EE";s:2:"fa";s:2:"AF";s:2:"fi";s:2:"FI";s:2:"fo";s:2:"FO";s:2:"fr";s:2:"FR";s:2:"ga";s:2:"IE";s:2:"gl";s:2:"ES";s:2:"gn";s:2:"PY";s:2:"he";s:2:"IL";s:2:"hi";s:2:"IN";s:2:"hr";s:2:"HR";s:2:"ht";s:2:"HT";s:2:"hu";s:2:"HU";s:2:"hy";s:2:"AM";s:2:"id";s:2:"ID";s:2:"is";s:2:"IS";s:2:"it";s:2:"IT";s:2:"ja";s:2:"JP";s:2:"jv";s:2:"ID";s:2:"ka";s:2:"GE";s:2:"kk";s:2:"KZ";s:2:"kn";s:2:"IN";s:2:"ko";s:2:"KR";s:2:"lb";s:2:"LU";s:2:"li";s:2:"NL";s:2:"lo";s:2:"LA";s:2:"lt";s:2:"LT";s:2:"lv";s:2:"LV";s:2:"mg";s:2:"MG";s:2:"ms";s:2:"MY";s:2:"mt";s:2:"MT";s:2:"my";s:2:"MM";s:2:"nb";s:2:"NO";s:2:"ne";s:2:"NP";s:2:"nl";s:2:"NL";s:2:"nn";s:2:"NO";s:2:"no";s:2:"NO";s:2:"os";s:2:"RU";s:2:"pa";s:2:"IN";s:2:"pl";s:2:"PL";s:2:"pt";s:2:"PT";s:2:"ro";s:2:"RO";s:2:"ru";s:2:"RU";s:2:"sa";s:2:"IN";s:2:"sc";s:2:"IT";s:2:"sd";s:2:"PK";s:2:"si";s:2:"LK";s:2:"sk";s:2:"SK";s:2:"sl";s:2:"SI";s:2:"so";s:2:"SO";s:2:"sq";s:2:"AL";s:2:"sr";s:2:"RS";s:2:"su";s:2:"ID";s:2:"sv";s:2:"SE";s:2:"sw";s:2:"KE";s:2:"ta";s:2:"IN";s:2:"te";s:2:"IN";s:2:"tg";s:2:"TJ";s:2:"th";s:2:"TH";s:2:"tr";s:2:"TR";s:2:"ug";s:2:"CN";s:2:"uk";s:2:"UA";s:2:"ur";s:2:"IN";s:2:"uz";s:2:"UZ";s:2:"vi";s:2:"VN";s:2:"zh";s:2:"CN";}'); } if( isset($a[$lang]) ){ return $a[$lang]; } return ''; } return unserialize('a:3:{s:7:"locales";a:120:{s:2:"af";a:1:{s:0:"";s:9:"Afrikaans";}s:2:"ak";a:1:{s:0:"";s:4:"Akan";}s:2:"sq";a:1:{s:0:"";s:8:"Albanian";}s:2:"am";a:1:{s:0:"";s:7:"Amharic";}s:2:"ar";a:1:{s:0:"";s:6:"Arabic";}s:2:"hy";a:1:{s:0:"";s:8:"Armenian";}s:3:"rup";a:1:{s:2:"MK";s:9:"Aromanian";}s:2:"as";a:1:{s:0:"";s:8:"Assamese";}s:2:"az";a:2:{s:0:"";s:11:"Azerbaijani";s:2:"TR";s:20:"Azerbaijani (Turkey)";}s:2:"ba";a:1:{s:0:"";s:7:"Bashkir";}s:2:"eu";a:1:{s:0:"";s:6:"Basque";}s:3:"bel";a:1:{s:0:"";s:10:"Belarusian";}s:2:"bn";a:1:{s:2:"BD";s:7:"Bengali";}s:2:"bs";a:1:{s:2:"BA";s:7:"Bosnian";}s:2:"bg";a:1:{s:2:"BG";s:9:"Bulgarian";}s:2:"my";a:1:{s:2:"MM";s:7:"Burmese";}s:2:"ca";a:1:{s:0:"";s:7:"Catalan";}s:3:"bal";a:1:{s:0:"";s:16:"Catalan (Balear)";}s:2:"zh";a:3:{s:2:"CN";s:15:"Chinese (China)";s:2:"HK";s:19:"Chinese (Hong Kong)";s:2:"TW";s:16:"Chinese (Taiwan)";}s:2:"co";a:1:{s:0:"";s:8:"Corsican";}s:2:"hr";a:1:{s:0:"";s:8:"Croatian";}s:2:"cs";a:1:{s:2:"CZ";s:5:"Czech";}s:2:"da";a:1:{s:2:"DK";s:6:"Danish";}s:2:"dv";a:1:{s:0:"";s:7:"Dhivehi";}s:2:"nl";a:2:{s:2:"NL";s:5:"Dutch";s:2:"BE";s:15:"Dutch (Belgium)";}s:2:"en";a:4:{s:2:"US";s:7:"English";s:2:"AU";s:19:"English (Australia)";s:2:"CA";s:16:"English (Canada)";s:2:"GB";s:12:"English (UK)";}s:2:"eo";a:1:{s:0:"";s:9:"Esperanto";}s:2:"et";a:1:{s:0:"";s:8:"Estonian";}s:2:"fo";a:1:{s:0:"";s:7:"Faroese";}s:2:"fi";a:1:{s:0:"";s:7:"Finnish";}s:2:"fr";a:2:{s:2:"BE";s:16:"French (Belgium)";s:2:"FR";s:15:"French (France)";}s:2:"fy";a:1:{s:0:"";s:7:"Frisian";}s:3:"fuc";a:1:{s:0:"";s:5:"Fulah";}s:2:"gl";a:1:{s:2:"ES";s:8:"Galician";}s:2:"ka";a:1:{s:2:"GE";s:8:"Georgian";}s:2:"de";a:2:{s:2:"DE";s:6:"German";s:2:"CH";s:20:"German (Switzerland)";}s:2:"el";a:1:{s:0:"";s:5:"Greek";}s:2:"gn";a:1:{s:0:"";s:8:"Guaraní";}s:2:"gu";a:1:{s:2:"IN";s:8:"Gujarati";}s:3:"haw";a:1:{s:2:"US";s:8:"Hawaiian";}s:3:"haz";a:1:{s:0:"";s:8:"Hazaragi";}s:2:"he";a:1:{s:2:"IL";s:6:"Hebrew";}s:2:"hi";a:1:{s:2:"IN";s:5:"Hindi";}s:2:"hu";a:1:{s:2:"HU";s:9:"Hungarian";}s:2:"is";a:1:{s:2:"IS";s:9:"Icelandic";}s:3:"ido";a:1:{s:0:"";s:3:"Ido";}s:2:"id";a:1:{s:2:"ID";s:10:"Indonesian";}s:2:"ga";a:1:{s:0:"";s:5:"Irish";}s:2:"it";a:1:{s:2:"IT";s:7:"Italian";}s:2:"ja";a:1:{s:0:"";s:8:"Japanese";}s:2:"jv";a:1:{s:2:"ID";s:8:"Javanese";}s:2:"kn";a:1:{s:0:"";s:7:"Kannada";}s:2:"kk";a:1:{s:0:"";s:6:"Kazakh";}s:2:"km";a:1:{s:0:"";s:5:"Khmer";}s:3:"kin";a:1:{s:0:"";s:11:"Kinyarwanda";}s:2:"ky";a:1:{s:2:"KY";s:7:"Kirghiz";}s:2:"ko";a:1:{s:2:"KR";s:6:"Korean";}s:3:"ckb";a:1:{s:0:"";s:16:"Kurdish (Sorani)";}s:2:"lo";a:1:{s:0:"";s:3:"Lao";}s:2:"lv";a:1:{s:0:"";s:7:"Latvian";}s:2:"li";a:1:{s:0:"";s:10:"Limburgish";}s:3:"lin";a:1:{s:0:"";s:7:"Lingala";}s:2:"lt";a:1:{s:2:"LT";s:10:"Lithuanian";}s:2:"lb";a:1:{s:2:"LU";s:13:"Luxembourgish";}s:2:"mk";a:1:{s:2:"MK";s:10:"Macedonian";}s:2:"mg";a:1:{s:2:"MG";s:8:"Malagasy";}s:2:"ms";a:1:{s:2:"MY";s:5:"Malay";}s:2:"ml";a:1:{s:2:"IN";s:9:"Malayalam";}s:2:"mr";a:1:{s:0:"";s:7:"Marathi";}s:3:"xmf";a:1:{s:0:"";s:10:"Mingrelian";}s:2:"mn";a:1:{s:0:"";s:9:"Mongolian";}s:2:"me";a:1:{s:2:"ME";s:11:"Montenegrin";}s:2:"ne";a:1:{s:2:"NP";s:6:"Nepali";}s:2:"nb";a:1:{s:2:"NO";s:19:"Norwegian (Bokmål)";}s:2:"nn";a:1:{s:2:"NO";s:19:"Norwegian (Nynorsk)";}s:3:"ory";a:1:{s:0:"";s:5:"Oriya";}s:2:"os";a:1:{s:0:"";s:7:"Ossetic";}s:2:"ps";a:1:{s:0:"";s:6:"Pashto";}s:2:"fa";a:2:{s:2:"IR";s:7:"Persian";s:2:"AF";s:21:"Persian (Afghanistan)";}s:2:"pl";a:1:{s:2:"PL";s:6:"Polish";}s:2:"pt";a:2:{s:2:"BR";s:19:"Portuguese (Brazil)";s:2:"PT";s:21:"Portuguese (Portugal)";}s:2:"pa";a:1:{s:2:"IN";s:7:"Punjabi";}s:3:"rhg";a:1:{s:0:"";s:8:"Rohingya";}s:2:"ro";a:1:{s:2:"RO";s:8:"Romanian";}s:2:"ru";a:2:{s:2:"RU";s:7:"Russian";s:2:"UA";s:17:"Russian (Ukraine)";}s:3:"rue";a:1:{s:0:"";s:5:"Rusyn";}s:3:"sah";a:1:{s:0:"";s:5:"Sakha";}s:2:"sa";a:1:{s:2:"IN";s:8:"Sanskrit";}s:3:"srd";a:1:{s:0:"";s:9:"Sardinian";}s:2:"gd";a:1:{s:0:"";s:15:"Scottish Gaelic";}s:2:"sr";a:1:{s:2:"RS";s:7:"Serbian";}s:2:"sd";a:1:{s:2:"PK";s:6:"Sindhi";}s:2:"si";a:1:{s:2:"LK";s:7:"Sinhala";}s:2:"sk";a:1:{s:2:"SK";s:6:"Slovak";}s:2:"sl";a:1:{s:2:"SI";s:9:"Slovenian";}s:2:"so";a:1:{s:2:"SO";s:6:"Somali";}s:3:"azb";a:1:{s:0:"";s:17:"South Azerbaijani";}s:2:"es";a:8:{s:2:"AR";s:19:"Spanish (Argentina)";s:2:"CL";s:15:"Spanish (Chile)";s:2:"CO";s:18:"Spanish (Colombia)";s:2:"MX";s:16:"Spanish (Mexico)";s:2:"PE";s:14:"Spanish (Peru)";s:2:"PR";s:21:"Spanish (Puerto Rico)";s:2:"ES";s:15:"Spanish (Spain)";s:2:"VE";s:19:"Spanish (Venezuela)";}s:2:"su";a:1:{s:2:"ID";s:9:"Sundanese";}s:2:"sw";a:1:{s:0:"";s:7:"Swahili";}s:2:"sv";a:1:{s:2:"SE";s:7:"Swedish";}s:3:"gsw";a:1:{s:0:"";s:12:"Swiss German";}s:2:"tl";a:1:{s:0:"";s:7:"Tagalog";}s:2:"tg";a:1:{s:0:"";s:5:"Tajik";}s:3:"tzm";a:1:{s:0:"";s:25:"Tamazight (Central Atlas)";}s:2:"ta";a:2:{s:2:"IN";s:5:"Tamil";s:2:"LK";s:17:"Tamil (Sri Lanka)";}s:2:"tt";a:1:{s:2:"RU";s:5:"Tatar";}s:2:"te";a:1:{s:0:"";s:6:"Telugu";}s:2:"th";a:1:{s:0:"";s:4:"Thai";}s:2:"bo";a:1:{s:0:"";s:7:"Tibetan";}s:3:"tir";a:1:{s:0:"";s:8:"Tigrinya";}s:2:"tr";a:1:{s:2:"TR";s:7:"Turkish";}s:3:"tuk";a:1:{s:0:"";s:7:"Turkmen";}s:2:"ug";a:1:{s:2:"CN";s:6:"Uighur";}s:2:"uk";a:1:{s:0:"";s:9:"Ukrainian";}s:2:"ur";a:1:{s:0:"";s:4:"Urdu";}s:2:"uz";a:1:{s:2:"UZ";s:5:"Uzbek";}s:2:"vi";a:1:{s:0:"";s:10:"Vietnamese";}s:2:"wa";a:1:{s:0:"";s:7:"Walloon";}s:2:"cy";a:1:{s:0:"";s:5:"Welsh";}}s:5:"langs";a:190:{s:2:"ab";a:3:{i:0;s:9:"Abkhazian";i:1;s:0:"";i:2;a:0:{}}s:2:"aa";a:3:{i:0;s:4:"Afar";i:1;s:0:"";i:2;a:0:{}}s:2:"af";a:3:{i:0;s:9:"Afrikaans";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ak";a:3:{i:0;s:4:"Akan";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"sq";a:3:{i:0;s:8:"Albanian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:3:"gsw";a:3:{i:0;s:21:"Alemani; Swiss German";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"am";a:3:{i:0;s:7:"Amharic";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ar";a:3:{i:0;s:6:"Arabic";i:1;s:95:"n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100 >= 3 && n%100<=10 ? 3 : n%100 >= 11 && n%100<=99 ? 4 : 5";i:2;a:6:{i:0;s:4:"zero";i:1;s:3:"one";i:2;s:3:"two";i:3;s:3:"few";i:4;s:4:"many";i:5;s:5:"other";}}s:2:"an";a:3:{i:0;s:9:"Aragonese";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"hy";a:3:{i:0;s:8:"Armenian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:3:"rup";a:3:{i:0;s:37:"Aromanian; Arumanian; Macedo-Romanian";i:1;s:0:"";i:2;a:0:{}}s:2:"as";a:3:{i:0;s:8:"Assamese";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"av";a:3:{i:0;s:6:"Avaric";i:1;s:0:"";i:2;a:0:{}}s:2:"ae";a:3:{i:0;s:7:"Avestan";i:1;s:0:"";i:2;a:0:{}}s:2:"ay";a:3:{i:0;s:6:"Aymara";i:1;s:0:"";i:2;a:0:{}}s:2:"az";a:3:{i:0;s:11:"Azerbaijani";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:3:"bal";a:3:{i:0;s:7:"Baluchi";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"bm";a:3:{i:0;s:7:"Bambara";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"ba";a:3:{i:0;s:7:"Bashkir";i:1;s:0:"";i:2;a:0:{}}s:2:"eu";a:3:{i:0;s:6:"Basque";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"be";a:3:{i:0;s:10:"Belarusian";i:1;s:82:"(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 && n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2)";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:4:"many";}}s:2:"bn";a:3:{i:0;s:7:"Bengali";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"bh";a:3:{i:0;s:6:"Bihari";i:1;s:28:"( n >= 0 && n <= 1 ) ? 0 : 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"bi";a:3:{i:0;s:7:"Bislama";i:1;s:0:"";i:2;a:0:{}}s:2:"bs";a:3:{i:0;s:7:"Bosnian";i:1;s:82:"(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 && n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2)";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:5:"other";}}s:2:"br";a:3:{i:0;s:6:"Breton";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"bg";a:3:{i:0;s:9:"Bulgarian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"my";a:3:{i:0;s:7:"Burmese";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"ca";a:3:{i:0;s:18:"Catalan; Valencian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ch";a:3:{i:0;s:8:"Chamorro";i:1;s:0:"";i:2;a:0:{}}s:2:"ce";a:3:{i:0;s:7:"Chechen";i:1;s:0:"";i:2;a:0:{}}s:2:"ny";a:3:{i:0;s:23:"Chichewa; Chewa; Nyanja";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"zh";a:3:{i:0;s:7:"Chinese";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"cu";a:3:{i:0;s:64:"Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old";i:1;s:0:"";i:2;a:0:{}}s:2:"cv";a:3:{i:0;s:7:"Chuvash";i:1;s:0:"";i:2;a:0:{}}s:2:"kw";a:3:{i:0;s:7:"Cornish";i:1;s:27:"n == 1 ? 0 : n == 2 ? 1 : 2";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"two";i:2;s:5:"other";}}s:2:"co";a:3:{i:0;s:8:"Corsican";i:1;s:0:"";i:2;a:0:{}}s:2:"cr";a:3:{i:0;s:4:"Cree";i:1;s:0:"";i:2;a:0:{}}s:2:"hr";a:3:{i:0;s:8:"Croatian";i:1;s:80:"n%10==1 && n%100!=11 ? 0 : n%10 >= 2 && n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:5:"other";}}s:2:"cs";a:3:{i:0;s:5:"Czech";i:1;s:45:"( n == 1 ) ? 0 : ( n >= 2 && n <= 4 ) ? 1 : 2";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:5:"other";}}s:2:"da";a:3:{i:0;s:6:"Danish";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"dv";a:3:{i:0;s:26:"Divehi; Dhivehi; Maldivian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"nl";a:3:{i:0;s:14:"Dutch; Flemish";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"dz";a:3:{i:0;s:8:"Dzongkha";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"en";a:3:{i:0;s:7:"English";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"eo";a:3:{i:0;s:9:"Esperanto";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"et";a:3:{i:0;s:8:"Estonian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ee";a:3:{i:0;s:3:"Ewe";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"fo";a:3:{i:0;s:7:"Faroese";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"fj";a:3:{i:0;s:6:"Fijian";i:1;s:0:"";i:2;a:0:{}}s:2:"fi";a:3:{i:0;s:7:"Finnish";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"fr";a:3:{i:0;s:6:"French";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ff";a:3:{i:0;s:5:"Fulah";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"gd";a:3:{i:0;s:23:"Gaelic; Scottish Gaelic";i:1;s:26:"n < 2 ? 0 : n == 2 ? 1 : 2";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"two";i:2;s:5:"other";}}s:2:"gl";a:3:{i:0;s:8:"Galician";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"lg";a:3:{i:0;s:5:"Ganda";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ka";a:3:{i:0;s:8:"Georgian";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"de";a:3:{i:0;s:6:"German";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"el";a:3:{i:0;s:5:"Greek";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"gn";a:3:{i:0;s:7:"Guarani";i:1;s:0:"";i:2;a:0:{}}s:2:"gu";a:3:{i:0;s:8:"Gujarati";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ht";a:3:{i:0;s:23:"Haitian; Haitian Creole";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ha";a:3:{i:0;s:5:"Hausa";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:3:"haw";a:3:{i:0;s:8:"Hawaiian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"he";a:3:{i:0;s:6:"Hebrew";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"hz";a:3:{i:0;s:6:"Herero";i:1;s:0:"";i:2;a:0:{}}s:2:"hi";a:3:{i:0;s:5:"Hindi";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ho";a:3:{i:0;s:9:"Hiri Motu";i:1;s:0:"";i:2;a:0:{}}s:2:"hu";a:3:{i:0;s:9:"Hungarian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"is";a:3:{i:0;s:9:"Icelandic";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"io";a:3:{i:0;s:3:"Ido";i:1;s:0:"";i:2;a:0:{}}s:2:"ig";a:3:{i:0;s:4:"Igbo";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"id";a:3:{i:0;s:10:"Indonesian";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"ia";a:3:{i:0;s:58:"Interlingua (International Auxiliary Language Association)";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ie";a:3:{i:0;s:11:"Interlingue";i:1;s:0:"";i:2;a:0:{}}s:2:"iu";a:3:{i:0;s:9:"Inuktitut";i:1;s:27:"n == 1 ? 0 : n == 2 ? 1 : 2";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"two";i:2;s:5:"other";}}s:2:"ik";a:3:{i:0;s:7:"Inupiaq";i:1;s:0:"";i:2;a:0:{}}s:2:"ga";a:3:{i:0;s:5:"Irish";i:1;s:44:"n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4";i:2;a:5:{i:0;s:3:"one";i:1;s:3:"two";i:2;s:3:"few";i:3;s:4:"many";i:4;s:5:"other";}}s:2:"it";a:3:{i:0;s:7:"Italian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ja";a:3:{i:0;s:8:"Japanese";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"jv";a:3:{i:0;s:8:"Javanese";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"kl";a:3:{i:0;s:24:"Kalaallisut; Greenlandic";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"kn";a:3:{i:0;s:7:"Kannada";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"kr";a:3:{i:0;s:6:"Kanuri";i:1;s:0:"";i:2;a:0:{}}s:2:"ks";a:3:{i:0;s:8:"Kashmiri";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"kk";a:3:{i:0;s:6:"Kazakh";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"km";a:3:{i:0;s:5:"Khmer";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"ki";a:3:{i:0;s:14:"Kikuyu; Gikuyu";i:1;s:0:"";i:2;a:0:{}}s:2:"rw";a:3:{i:0;s:11:"Kinyarwanda";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ky";a:3:{i:0;s:7:"Kirghiz";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"kv";a:3:{i:0;s:4:"Komi";i:1;s:0:"";i:2;a:0:{}}s:2:"kg";a:3:{i:0;s:5:"Kongo";i:1;s:0:"";i:2;a:0:{}}s:2:"ko";a:3:{i:0;s:6:"Korean";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"kj";a:3:{i:0;s:18:"Kuanyama; Kwanyama";i:1;s:0:"";i:2;a:0:{}}s:2:"ku";a:3:{i:0;s:7:"Kurdish";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"lo";a:3:{i:0;s:3:"Lao";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"la";a:3:{i:0;s:5:"Latin";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"lv";a:3:{i:0;s:7:"Latvian";i:1;s:49:"n % 10 == 1 && n % 100 != 11 ? 0 : n != 0 ? 1 : 2";i:2;a:3:{i:0;s:3:"one";i:1;s:5:"other";i:2;s:4:"zero";}}s:2:"li";a:3:{i:0;s:32:"Limburgan; Limburger; Limburgish";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ln";a:3:{i:0;s:7:"Lingala";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"lt";a:3:{i:0;s:10:"Lithuanian";i:1;s:71:"(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 &&(n%100<10||n%100 >= 20)? 1 : 2)";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:5:"other";}}s:2:"lu";a:3:{i:0;s:12:"Luba-Katanga";i:1;s:0:"";i:2;a:0:{}}s:2:"lb";a:3:{i:0;s:28:"Luxembourgish; Letzeburgesch";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"mk";a:3:{i:0;s:10:"Macedonian";i:1;s:40:"( n % 10 == 1 && n % 100 != 11 ) ? 0 : 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"mg";a:3:{i:0;s:8:"Malagasy";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ms";a:3:{i:0;s:5:"Malay";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"ml";a:3:{i:0;s:9:"Malayalam";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"mt";a:3:{i:0;s:7:"Maltese";i:1;s:75:"(n==1 ? 0 : n==0||( n%100>1 && n%100<11)? 1 :(n%100>10 && n%100<20)? 2 : 3)";i:2;a:4:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:4:"many";i:3;s:5:"other";}}s:2:"gv";a:3:{i:0;s:4:"Manx";i:1;s:43:"n%10==1 ? 0 : n%10==2 ? 1 : n%20==0 ? 2 : 3";i:2;a:4:{i:0;s:3:"one";i:1;s:3:"two";i:2;s:3:"few";i:3;s:5:"other";}}s:2:"mi";a:3:{i:0;s:5:"Maori";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"mr";a:3:{i:0;s:7:"Marathi";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"mh";a:3:{i:0;s:11:"Marshallese";i:1;s:0:"";i:2;a:0:{}}s:2:"mo";a:3:{i:0;s:9:"Moldavian";i:1;s:50:"n == 1 ? 0 : n % 100 >= 1 && n % 100 <= 19 ? 1 : 2";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:5:"other";}}s:2:"mn";a:3:{i:0;s:9:"Mongolian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"na";a:3:{i:0;s:5:"Nauru";i:1;s:0:"";i:2;a:0:{}}s:2:"nv";a:3:{i:0;s:14:"Navajo; Navaho";i:1;s:0:"";i:2;a:0:{}}s:2:"nd";a:3:{i:0;s:29:"Ndebele, North; North Ndebele";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"nr";a:3:{i:0;s:29:"Ndebele, South; South Ndebele";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"ng";a:3:{i:0;s:6:"Ndonga";i:1;s:0:"";i:2;a:0:{}}s:2:"ne";a:3:{i:0;s:6:"Nepali";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"se";a:3:{i:0;s:13:"Northern Sami";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"no";a:3:{i:0;s:9:"Norwegian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"nb";a:3:{i:0;s:17:"Norwegian Bokmål";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"nn";a:3:{i:0;s:17:"Norwegian Nynorsk";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"oc";a:3:{i:0;s:31:"Occitan (post 1500); Provençal";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"oj";a:3:{i:0;s:6:"Ojibwa";i:1;s:0:"";i:2;a:0:{}}s:2:"or";a:3:{i:0;s:5:"Oriya";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"om";a:3:{i:0;s:5:"Oromo";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"os";a:3:{i:0;s:17:"Ossetian; Ossetic";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"pi";a:3:{i:0;s:4:"Pali";i:1;s:0:"";i:2;a:0:{}}s:2:"pa";a:3:{i:0;s:16:"Panjabi; Punjabi";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"fa";a:3:{i:0;s:7:"Persian";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"pl";a:3:{i:0;s:6:"Polish";i:1;s:66:"(n==1 ? 0 : n%10 >= 2 && n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2)";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:4:"many";}}s:2:"pt";a:3:{i:0;s:10:"Portuguese";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ps";a:3:{i:0;s:6:"Pushto";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"qu";a:3:{i:0;s:7:"Quechua";i:1;s:0:"";i:2;a:0:{}}s:2:"rm";a:3:{i:0;s:13:"Raeto-Romance";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ro";a:3:{i:0;s:8:"Romanian";i:1;s:56:"(n==1 ? 0 :(((n%100>19)||(( n%100==0)&&(n!=0)))? 2 : 1))";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:5:"other";}}s:2:"rn";a:3:{i:0;s:5:"Rundi";i:1;s:0:"";i:2;a:0:{}}s:2:"ru";a:3:{i:0;s:7:"Russian";i:1;s:82:"(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 && n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2)";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:4:"many";}}s:2:"sm";a:3:{i:0;s:6:"Samoan";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"sg";a:3:{i:0;s:5:"Sango";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"sa";a:3:{i:0;s:8:"Sanskrit";i:1;s:0:"";i:2;a:0:{}}s:2:"sc";a:3:{i:0;s:9:"Sardinian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"sr";a:3:{i:0;s:7:"Serbian";i:1;s:82:"(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 && n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2)";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:5:"other";}}s:2:"sn";a:3:{i:0;s:5:"Shona";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ii";a:3:{i:0;s:10:"Sichuan Yi";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"sd";a:3:{i:0;s:6:"Sindhi";i:1;s:0:"";i:2;a:0:{}}s:2:"si";a:3:{i:0;s:18:"Sinhala; Sinhalese";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"sk";a:3:{i:0;s:6:"Slovak";i:1;s:45:"( n == 1 ) ? 0 : ( n >= 2 && n <= 4 ) ? 1 : 2";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:5:"other";}}s:2:"sl";a:3:{i:0;s:9:"Slovenian";i:1;s:56:"n%100==1 ? 0 : n%100==2 ? 1 : n%100==3||n%100==4 ? 2 : 3";i:2;a:4:{i:0;s:3:"one";i:1;s:3:"two";i:2;s:3:"few";i:3;s:5:"other";}}s:2:"so";a:3:{i:0;s:6:"Somali";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"st";a:3:{i:0;s:15:"Sotho, Southern";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"es";a:3:{i:0;s:7:"Spanish";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"su";a:3:{i:0;s:9:"Sundanese";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"sw";a:3:{i:0;s:7:"Swahili";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ss";a:3:{i:0;s:5:"Swati";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"sv";a:3:{i:0;s:7:"Swedish";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"tl";a:3:{i:0;s:7:"Tagalog";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ty";a:3:{i:0;s:8:"Tahitian";i:1;s:0:"";i:2;a:0:{}}s:2:"tg";a:3:{i:0;s:5:"Tajik";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ta";a:3:{i:0;s:5:"Tamil";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"tt";a:3:{i:0;s:5:"Tatar";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"te";a:3:{i:0;s:6:"Telugu";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"th";a:3:{i:0;s:4:"Thai";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"bo";a:3:{i:0;s:7:"Tibetan";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"ti";a:3:{i:0;s:8:"Tigrinya";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"to";a:3:{i:0;s:21:"Tonga (Tonga Islands)";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"ts";a:3:{i:0;s:6:"Tsonga";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"tn";a:3:{i:0;s:6:"Tswana";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"tr";a:3:{i:0;s:7:"Turkish";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"tk";a:3:{i:0;s:7:"Turkmen";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"tw";a:3:{i:0;s:3:"Twi";i:1;s:0:"";i:2;a:0:{}}s:2:"ug";a:3:{i:0;s:14:"Uighur; Uyghur";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"uk";a:3:{i:0;s:9:"Ukrainian";i:1;s:82:"(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 && n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2)";i:2;a:3:{i:0;s:3:"one";i:1;s:3:"few";i:2;s:4:"many";}}s:2:"ur";a:3:{i:0;s:4:"Urdu";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"uz";a:3:{i:0;s:5:"Uzbek";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"ve";a:3:{i:0;s:5:"Venda";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"vi";a:3:{i:0;s:10:"Vietnamese";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"vo";a:3:{i:0;s:8:"Volapük";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"wa";a:3:{i:0;s:7:"Walloon";i:1;s:5:"n > 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"cy";a:3:{i:0;s:5:"Welsh";i:1;s:56:"n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n==3 ? 3 : n==6 ? 4 : 5";i:2;a:6:{i:0;s:4:"zero";i:1;s:3:"one";i:2;s:3:"two";i:3;s:3:"few";i:4;s:4:"many";i:5;s:5:"other";}}s:2:"fy";a:3:{i:0;s:15:"Western Frisian";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"wo";a:3:{i:0;s:5:"Wolof";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"xh";a:3:{i:0;s:5:"Xhosa";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:3:"sah";a:3:{i:0;s:5:"Yakut";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"yi";a:3:{i:0;s:7:"Yiddish";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}s:2:"yo";a:3:{i:0;s:6:"Yoruba";i:1;s:1:"0";i:2;a:1:{i:0;s:5:"other";}}s:2:"za";a:3:{i:0;s:14:"Zhuang; Chuang";i:1;s:0:"";i:2;a:0:{}}s:2:"zu";a:3:{i:0;s:4:"Zulu";i:1;s:6:"n != 1";i:2;a:2:{i:0;s:3:"one";i:1;s:5:"other";}}}s:7:"regions";a:249:{s:2:"AF";s:11:"Afghanistan";s:2:"AX";s:14:"Åland Islands";s:2:"AL";s:7:"Albania";s:2:"DZ";s:7:"Algeria";s:2:"AS";s:14:"American Samoa";s:2:"AD";s:7:"Andorra";s:2:"AO";s:6:"Angola";s:2:"AI";s:8:"Anguilla";s:2:"AQ";s:10:"Antarctica";s:2:"AG";s:19:"Antigua and Barbuda";s:2:"AR";s:9:"Argentina";s:2:"AM";s:7:"Armenia";s:2:"AW";s:5:"Aruba";s:2:"AU";s:9:"Australia";s:2:"AT";s:7:"Austria";s:2:"AZ";s:10:"Azerbaijan";s:2:"BS";s:7:"Bahamas";s:2:"BH";s:7:"Bahrain";s:2:"BD";s:10:"Bangladesh";s:2:"BB";s:8:"Barbados";s:2:"BY";s:7:"Belarus";s:2:"BE";s:7:"Belgium";s:2:"BZ";s:6:"Belize";s:2:"BJ";s:5:"Benin";s:2:"BM";s:7:"Bermuda";s:2:"BT";s:6:"Bhutan";s:2:"BO";s:31:"Bolivia, Plurinational State of";s:2:"BQ";s:32:"Bonaire, Sint Eustatius and Saba";s:2:"BA";s:22:"Bosnia and Herzegovina";s:2:"BW";s:8:"Botswana";s:2:"BV";s:13:"Bouvet Island";s:2:"BR";s:6:"Brazil";s:2:"IO";s:30:"British Indian Ocean Territory";s:2:"BN";s:17:"Brunei Darussalam";s:2:"BG";s:8:"Bulgaria";s:2:"BF";s:12:"Burkina Faso";s:2:"BI";s:7:"Burundi";s:2:"KH";s:8:"Cambodia";s:2:"CM";s:8:"Cameroon";s:2:"CA";s:6:"Canada";s:2:"CV";s:10:"Cape Verde";s:2:"KY";s:14:"Cayman Islands";s:2:"CF";s:24:"Central African Republic";s:2:"TD";s:4:"Chad";s:2:"CL";s:5:"Chile";s:2:"CN";s:5:"China";s:2:"CX";s:16:"Christmas Island";s:2:"CC";s:23:"Cocos (Keeling) Islands";s:2:"CO";s:8:"Colombia";s:2:"KM";s:7:"Comoros";s:2:"CG";s:5:"Congo";s:2:"CD";s:37:"Congo, The Democratic Republic of The";s:2:"CK";s:12:"Cook Islands";s:2:"CR";s:10:"Costa Rica";s:2:"CI";s:14:"Côte D\'Ivoire";s:2:"HR";s:7:"Croatia";s:2:"CU";s:4:"Cuba";s:2:"CW";s:8:"Curaçao";s:2:"CY";s:6:"Cyprus";s:2:"CZ";s:14:"Czech Republic";s:2:"DK";s:7:"Denmark";s:2:"DJ";s:8:"Djibouti";s:2:"DM";s:8:"Dominica";s:2:"DO";s:18:"Dominican Republic";s:2:"EC";s:7:"Ecuador";s:2:"EG";s:5:"Egypt";s:2:"SV";s:11:"El Salvador";s:2:"GQ";s:17:"Equatorial Guinea";s:2:"ER";s:7:"Eritrea";s:2:"EE";s:7:"Estonia";s:2:"ET";s:8:"Ethiopia";s:2:"FK";s:27:"Falkland Islands (Malvinas)";s:2:"FO";s:13:"Faroe Islands";s:2:"FJ";s:4:"Fiji";s:2:"FI";s:7:"Finland";s:2:"FR";s:6:"France";s:2:"GF";s:13:"French Guiana";s:2:"PF";s:16:"French Polynesia";s:2:"TF";s:27:"French Southern Territories";s:2:"GA";s:5:"Gabon";s:2:"GM";s:6:"Gambia";s:2:"GE";s:7:"Georgia";s:2:"DE";s:7:"Germany";s:2:"GH";s:5:"Ghana";s:2:"GI";s:9:"Gibraltar";s:2:"GR";s:6:"Greece";s:2:"GL";s:9:"Greenland";s:2:"GD";s:7:"Grenada";s:2:"GP";s:10:"Guadeloupe";s:2:"GU";s:4:"Guam";s:2:"GT";s:9:"Guatemala";s:2:"GG";s:8:"Guernsey";s:2:"GN";s:6:"Guinea";s:2:"GW";s:13:"Guinea-Bissau";s:2:"GY";s:6:"Guyana";s:2:"HT";s:5:"Haiti";s:2:"HM";s:33:"Heard Island and Mcdonald Islands";s:2:"VA";s:29:"Holy See (Vatican City State)";s:2:"HN";s:8:"Honduras";s:2:"HK";s:9:"Hong Kong";s:2:"HU";s:7:"Hungary";s:2:"IS";s:7:"Iceland";s:2:"IN";s:5:"India";s:2:"ID";s:9:"Indonesia";s:2:"IR";s:25:"Iran, Islamic Republic of";s:2:"IQ";s:4:"Iraq";s:2:"IE";s:7:"Ireland";s:2:"IM";s:11:"Isle of Man";s:2:"IL";s:6:"Israel";s:2:"IT";s:5:"Italy";s:2:"JM";s:7:"Jamaica";s:2:"JP";s:5:"Japan";s:2:"JE";s:6:"Jersey";s:2:"JO";s:6:"Jordan";s:2:"KZ";s:10:"Kazakhstan";s:2:"KE";s:5:"Kenya";s:2:"KI";s:8:"Kiribati";s:2:"KP";s:38:"Korea, Democratic People\'s Republic of";s:2:"KR";s:18:"Korea, Republic of";s:2:"KW";s:6:"Kuwait";s:2:"KG";s:10:"Kyrgyzstan";s:2:"LA";s:32:"Lao People\'s Democratic Republic";s:2:"LV";s:6:"Latvia";s:2:"LB";s:7:"Lebanon";s:2:"LS";s:7:"Lesotho";s:2:"LR";s:7:"Liberia";s:2:"LY";s:5:"Libya";s:2:"LI";s:13:"Liechtenstein";s:2:"LT";s:9:"Lithuania";s:2:"LU";s:10:"Luxembourg";s:2:"MO";s:5:"Macao";s:2:"MK";s:42:"Macedonia, The Former Yugoslav Republic of";s:2:"MG";s:10:"Madagascar";s:2:"MW";s:6:"Malawi";s:2:"MY";s:8:"Malaysia";s:2:"MV";s:8:"Maldives";s:2:"ML";s:4:"Mali";s:2:"MT";s:5:"Malta";s:2:"MH";s:16:"Marshall Islands";s:2:"MQ";s:10:"Martinique";s:2:"MR";s:10:"Mauritania";s:2:"MU";s:9:"Mauritius";s:2:"YT";s:7:"Mayotte";s:2:"MX";s:6:"Mexico";s:2:"FM";s:31:"Micronesia, Federated States of";s:2:"MD";s:20:"Moldova, Republic of";s:2:"MC";s:6:"Monaco";s:2:"MN";s:8:"Mongolia";s:2:"ME";s:10:"Montenegro";s:2:"MS";s:10:"Montserrat";s:2:"MA";s:7:"Morocco";s:2:"MZ";s:10:"Mozambique";s:2:"MM";s:7:"Myanmar";s:2:"NA";s:7:"Namibia";s:2:"NR";s:5:"Nauru";s:2:"NP";s:5:"Nepal";s:2:"NL";s:11:"Netherlands";s:2:"NC";s:13:"New Caledonia";s:2:"NZ";s:11:"New Zealand";s:2:"NI";s:9:"Nicaragua";s:2:"NE";s:5:"Niger";s:2:"NG";s:7:"Nigeria";s:2:"NU";s:4:"Niue";s:2:"NF";s:14:"Norfolk Island";s:2:"MP";s:24:"Northern Mariana Islands";s:2:"NO";s:6:"Norway";s:2:"OM";s:4:"Oman";s:2:"PK";s:8:"Pakistan";s:2:"PW";s:5:"Palau";s:2:"PS";s:31:"Palestinian Territory, Occupied";s:2:"PA";s:6:"Panama";s:2:"PG";s:16:"Papua New Guinea";s:2:"PY";s:8:"Paraguay";s:2:"PE";s:4:"Peru";s:2:"PH";s:11:"Philippines";s:2:"PN";s:8:"Pitcairn";s:2:"PL";s:6:"Poland";s:2:"PT";s:8:"Portugal";s:2:"PR";s:11:"Puerto Rico";s:2:"QA";s:5:"Qatar";s:2:"RE";s:8:"Réunion";s:2:"RO";s:7:"Romania";s:2:"RU";s:18:"Russian Federation";s:2:"RW";s:6:"Rwanda";s:2:"BL";s:17:"Saint Barthélemy";s:2:"SH";s:44:"Saint Helena, Ascension and Tristan Da Cunha";s:2:"KN";s:21:"Saint Kitts and Nevis";s:2:"LC";s:11:"Saint Lucia";s:2:"MF";s:26:"Saint Martin (French Part)";s:2:"PM";s:25:"Saint Pierre and Miquelon";s:2:"VC";s:32:"Saint Vincent and The Grenadines";s:2:"WS";s:5:"Samoa";s:2:"SM";s:10:"San Marino";s:2:"ST";s:21:"Sao Tome and Principe";s:2:"SA";s:12:"Saudi Arabia";s:2:"SN";s:7:"Senegal";s:2:"RS";s:6:"Serbia";s:2:"SC";s:10:"Seychelles";s:2:"SL";s:12:"Sierra Leone";s:2:"SG";s:9:"Singapore";s:2:"SX";s:25:"Sint Maarten (Dutch Part)";s:2:"SK";s:8:"Slovakia";s:2:"SI";s:8:"Slovenia";s:2:"SB";s:15:"Solomon Islands";s:2:"SO";s:7:"Somalia";s:2:"ZA";s:12:"South Africa";s:2:"GS";s:44:"South Georgia and The South Sandwich Islands";s:2:"SS";s:11:"South Sudan";s:2:"ES";s:5:"Spain";s:2:"LK";s:9:"Sri Lanka";s:2:"SD";s:5:"Sudan";s:2:"SR";s:8:"Suriname";s:2:"SJ";s:22:"Svalbard and Jan Mayen";s:2:"SZ";s:9:"Swaziland";s:2:"SE";s:6:"Sweden";s:2:"CH";s:11:"Switzerland";s:2:"SY";s:20:"Syrian Arab Republic";s:2:"TW";s:25:"Taiwan, Province of China";s:2:"TJ";s:10:"Tajikistan";s:2:"TZ";s:28:"Tanzania, United Republic of";s:2:"TH";s:8:"Thailand";s:2:"TL";s:11:"Timor-Leste";s:2:"TG";s:4:"Togo";s:2:"TK";s:7:"Tokelau";s:2:"TO";s:5:"Tonga";s:2:"TT";s:19:"Trinidad and Tobago";s:2:"TN";s:7:"Tunisia";s:2:"TR";s:6:"Turkey";s:2:"TM";s:12:"Turkmenistan";s:2:"TC";s:24:"Turks and Caicos Islands";s:2:"TV";s:6:"Tuvalu";s:2:"UG";s:6:"Uganda";s:2:"UA";s:7:"Ukraine";s:2:"AE";s:20:"United Arab Emirates";s:2:"GB";s:14:"United Kingdom";s:2:"US";s:13:"United States";s:2:"UM";s:36:"United States Minor Outlying Islands";s:2:"UY";s:7:"Uruguay";s:2:"UZ";s:10:"Uzbekistan";s:2:"VU";s:7:"Vanuatu";s:2:"VE";s:33:"Venezuela, Bolivarian Republic of";s:2:"VN";s:8:"Viet Nam";s:2:"VG";s:23:"Virgin Islands, British";s:2:"VI";s:20:"Virgin Islands, U.S.";s:2:"WF";s:17:"Wallis and Futuna";s:2:"EH";s:14:"Western Sahara";s:2:"YE";s:5:"Yemen";s:2:"ZM";s:6:"Zambia";s:2:"ZW";s:8:"Zimbabwe";}}');
|
lib/build/shell-compiled.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* Compiled source built from Loco core. Do not edit!
|
4 |
-
*
|
5 |
*/
|
6 |
function loco_compile_mo( $po ){ $descriptorspec = array( 0 => array('pipe', 'r'), 1 => array('pipe', 'w'), 2 => array('pipe', 'a'), ); $cmd = WHICH_MSGFMT.' -o - -'; $process = proc_open($cmd, $descriptorspec, $pipes ); if( ! $process ){ throw new Exception('Failed to open process to '.$cmd); } fwrite($pipes[0], $po); fclose($pipes[0]); $err = stream_get_contents($pipes[2]); fclose($pipes[2]); $mo = stream_get_contents($pipes[1]); fclose($pipes[1]); $e = proc_close($process); if( 0 !== $e ){ $err and trigger_error( $err, E_USER_WARNING ); throw new Exception( WHICH_MSGFMT.' exited with code '.sprintf('%d',$e).'; Got '.strlen($mo).' bytes from '.strlen($po).' bytes'); } if( ! $mo ){ throw new Exception('Empty file from '.WHICH_MSGFMT); } return $mo; } function loco_compile_mo_file( $pofile, $mofile = '' ){ $descriptorspec = array ( 0 => array('pipe', 'r'), 1 => array('pipe', 'w'), 2 => array('pipe', 'a'), ); if( ! $mofile ){ $mofile = $pofile.'.mo'; } $cmd = WHICH_MSGFMT.' -o '.escapeshellarg($mofile).' '.escapeshellarg($pofile); $process = proc_open($cmd, $descriptorspec, $pipes ); if( ! $process ){ throw new Exception('Failed to open process to '.$cmd); } $err = stream_get_contents($pipes[0]); fclose($pipes[0]); $e = proc_close($process); if( 0 !== $e ){ $err and trigger_error( $err, E_USER_WARNING ); throw new Exception('Gettext msgfmt exited with code '.sprintf('%d',$e).';'); } if( ! file_exists($mofile) ){ throw new Exception('Gettext msgfmt failed to create '.$mofile); } return $mofile; } function loco_find_executable( $name ){ $paths = array ( '/usr/local/', '/usr/', '/', '~/' ); $descriptorspec = array ( 0 => array('pipe', 'r'), 1 => array('pipe', 'w'), 2 => array('pipe', 'w'), ); foreach( array('bin/','sbin/') as $dir ){ foreach( $paths as $path ){ $bin = $path.$dir.$name; $cmd = '[ -x '.escapeshellarg($bin).' ]'; $process = proc_open( $cmd, $descriptorspec, $pipes ); if( ! $process ){ return ''; } $e = proc_close($process); if( 0 === $e ){ return $bin; } } } return ''; }
|
1 |
<?php
|
2 |
/**
|
3 |
* Compiled source built from Loco core. Do not edit!
|
4 |
+
* Wed, 21 Jan 2015 14:04:25 +0000
|
5 |
*/
|
6 |
function loco_compile_mo( $po ){ $descriptorspec = array( 0 => array('pipe', 'r'), 1 => array('pipe', 'w'), 2 => array('pipe', 'a'), ); $cmd = WHICH_MSGFMT.' -o - -'; $process = proc_open($cmd, $descriptorspec, $pipes ); if( ! $process ){ throw new Exception('Failed to open process to '.$cmd); } fwrite($pipes[0], $po); fclose($pipes[0]); $err = stream_get_contents($pipes[2]); fclose($pipes[2]); $mo = stream_get_contents($pipes[1]); fclose($pipes[1]); $e = proc_close($process); if( 0 !== $e ){ $err and trigger_error( $err, E_USER_WARNING ); throw new Exception( WHICH_MSGFMT.' exited with code '.sprintf('%d',$e).'; Got '.strlen($mo).' bytes from '.strlen($po).' bytes'); } if( ! $mo ){ throw new Exception('Empty file from '.WHICH_MSGFMT); } return $mo; } function loco_compile_mo_file( $pofile, $mofile = '' ){ $descriptorspec = array ( 0 => array('pipe', 'r'), 1 => array('pipe', 'w'), 2 => array('pipe', 'a'), ); if( ! $mofile ){ $mofile = $pofile.'.mo'; } $cmd = WHICH_MSGFMT.' -o '.escapeshellarg($mofile).' '.escapeshellarg($pofile); $process = proc_open($cmd, $descriptorspec, $pipes ); if( ! $process ){ throw new Exception('Failed to open process to '.$cmd); } $err = stream_get_contents($pipes[0]); fclose($pipes[0]); $e = proc_close($process); if( 0 !== $e ){ $err and trigger_error( $err, E_USER_WARNING ); throw new Exception('Gettext msgfmt exited with code '.sprintf('%d',$e).';'); } if( ! file_exists($mofile) ){ throw new Exception('Gettext msgfmt failed to create '.$mofile); } return $mofile; } function loco_find_executable( $name ){ $paths = array ( '/usr/local/', '/usr/', '/', '~/' ); $descriptorspec = array ( 0 => array('pipe', 'r'), 1 => array('pipe', 'w'), 2 => array('pipe', 'w'), ); foreach( array('bin/','sbin/') as $dir ){ foreach( $paths as $path ){ $bin = $path.$dir.$name; $cmd = '[ -x '.escapeshellarg($bin).' ]'; $process = proc_open( $cmd, $descriptorspec, $pipes ); if( ! $process ){ return ''; } $e = proc_close($process); if( 0 === $e ){ return $bin; } } } return ''; }
|
lib/compat/loco-iconv.php
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Polyfiller for missing PHP iconv extension.
|
4 |
+
* Simply avoids fatal errors. Doesn't attempt to really replace the functionality
|
5 |
+
*/
|
6 |
+
|
7 |
+
|
8 |
+
function loco__iconv( $in_charset, $out_charset, $str ){
|
9 |
+
return $str;
|
10 |
+
}
|
11 |
+
|
12 |
+
if( ! extension_loaded('iconv') && WP_DEBUG && ( ! defined('DOING_AJAX') || ! DOING_AJAX ) ){
|
13 |
+
LocoAdmin::warning( sprintf( Loco::__('PHP extension "%s" is not installed. If you experience problems you should install it'), 'iconv' ) );
|
14 |
+
}
|
15 |
+
|
16 |
+
if( ! function_exists('iconv') ){
|
17 |
+
function iconv( $in_charset = '', $out_charset = '', $str = '' ){
|
18 |
+
return loco__iconv( $in_charset, $out_charset, $str );
|
19 |
+
}
|
20 |
+
}
|
21 |
+
|
22 |
+
|
lib/compat/loco-mbstring.php
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Polyfiller for missing PHP mbstring extension.
|
4 |
+
* Simply avoids fatal errors. Doesn't attempt to really replace the functionality
|
5 |
+
*/
|
6 |
+
|
7 |
+
|
8 |
+
function loco__mb_detect_encoding( $str, array $encoding_list, $strict ){
|
9 |
+
return 'UTF-8';
|
10 |
+
}
|
11 |
+
|
12 |
+
if( ! extension_loaded('mbstring') && WP_DEBUG && ( ! defined('DOING_AJAX') || ! DOING_AJAX ) ){
|
13 |
+
LocoAdmin::warning( sprintf( Loco::__('PHP extension "%s" is not installed. If you experience problems you should install it'), 'mbstring' ) );
|
14 |
+
}
|
15 |
+
|
16 |
+
if( ! function_exists('mb_detect_encoding') ){
|
17 |
+
function mb_detect_encoding( $str = '', array $encoding_list = array(), $strict = false ){
|
18 |
+
return loco__mb_detect_encoding( $str, $encoding_list, $strict );
|
19 |
+
}
|
20 |
+
}
|
21 |
+
|
22 |
+
if( ! function_exists('mb_list_encodings') ){
|
23 |
+
function mb_list_encodings(){
|
24 |
+
return array('none');
|
25 |
+
}
|
26 |
+
}
|
lib/loco-admin.php
CHANGED
@@ -2,7 +2,23 @@
|
|
2 |
/**
|
3 |
* Loco admin
|
4 |
*/
|
5 |
-
abstract class LocoAdmin {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
|
7 |
/**
|
8 |
* Print error
|
@@ -21,8 +37,13 @@ abstract class LocoAdmin {
|
|
21 |
* Print warning notice
|
22 |
*/
|
23 |
public static function warning( $message, $label = '' ){
|
24 |
-
|
25 |
-
|
|
|
|
|
|
|
|
|
|
|
26 |
}
|
27 |
|
28 |
|
@@ -67,9 +88,42 @@ abstract class LocoAdmin {
|
|
67 |
}
|
68 |
Loco::enqueue_scripts('build/admin-common');
|
69 |
Loco::render('admin-opts', $args );
|
70 |
-
}
|
|
|
|
|
71 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
72 |
|
|
|
73 |
|
74 |
/**
|
75 |
* Admin tools page render call
|
@@ -125,7 +179,7 @@ abstract class LocoAdmin {
|
|
125 |
}
|
126 |
}
|
127 |
// else do a dry run to pre-empt failures and allow manual alteration of target path
|
128 |
-
$path = self::msginit( $package, $domain, '
|
129 |
// get alternative location options
|
130 |
$pdir = $package->lang_dir( $domain, true );
|
131 |
$gdir = $package->global_lang_dir();
|
@@ -150,9 +204,9 @@ abstract class LocoAdmin {
|
|
150 |
// Show filesystem check if 'fscheck' in query
|
151 |
//
|
152 |
if( isset($_GET['fscheck']) ){
|
153 |
-
$
|
154 |
Loco::enqueue_scripts('build/admin-common');
|
155 |
-
Loco::render('admin-fscheck', $
|
156 |
break;
|
157 |
}
|
158 |
|
@@ -206,6 +260,7 @@ abstract class LocoAdmin {
|
|
206 |
}
|
207 |
}
|
208 |
}
|
|
|
209 |
Loco::render('admin-root', $args );
|
210 |
}
|
211 |
while( false );
|
@@ -431,7 +486,7 @@ abstract class LocoAdmin {
|
|
431 |
$path = str_replace( '.mo', '.po', $path );
|
432 |
}
|
433 |
|
434 |
-
Loco::enqueue_scripts('build/admin-poedit');
|
435 |
Loco::render('admin-poedit', compact('package','path','po','pot','locale','headers','name','type','modified','writable','warnings') );
|
436 |
return true;
|
437 |
}
|
@@ -560,8 +615,8 @@ abstract class LocoAdmin {
|
|
560 |
* Recursively find all PHP source files anywhere under a directory
|
561 |
*/
|
562 |
public static function find_php( $dir ){
|
563 |
-
$files = self::find( $dir, array('php') );
|
564 |
-
return $files['php'];
|
565 |
}
|
566 |
|
567 |
|
@@ -742,8 +797,8 @@ abstract class LocoAdmin {
|
|
742 |
if( 'pot' === $extension ){
|
743 |
return $filename;
|
744 |
}
|
745 |
-
if( $domain = preg_replace('/[a-z]{2}(_[A-Z]{2})?$/', '', $filename ) ){
|
746 |
-
return
|
747 |
}
|
748 |
// empty domain means file name is probably just a locale
|
749 |
return '';
|
@@ -773,7 +828,7 @@ abstract class LocoAdmin {
|
|
773 |
$args['page'].= '-'.$suffix;
|
774 |
}
|
775 |
}
|
776 |
-
return
|
777 |
}
|
778 |
|
779 |
|
@@ -968,7 +1023,7 @@ function _loco_hook__current_screen(){
|
|
968 |
* Admin menu registration callback
|
969 |
*/
|
970 |
function _loco_hook__admin_menu() {
|
971 |
-
$cap =
|
972 |
if( current_user_can($cap) ){
|
973 |
// hook in legacy wordpress styles as menu will display
|
974 |
$wp_38 = version_compare( $GLOBALS['wp_version'], '3.8', '>=' ) or
|
@@ -977,6 +1032,7 @@ function _loco_hook__admin_menu() {
|
|
977 |
$page_title = Loco::__('Loco, Translation Management');
|
978 |
$tool_title = Loco::__('Manage translations');
|
979 |
$opts_title = Loco::__('Translation options');
|
|
|
980 |
// Loco main menu item
|
981 |
$slug = Loco::NS;
|
982 |
$title = $page_title.' - '.$tool_title;
|
@@ -989,12 +1045,17 @@ function _loco_hook__admin_menu() {
|
|
989 |
// also add under Tools menu (legacy)
|
990 |
add_management_page( $title, $tool_title, $cap, $slug.'-legacy', $page );
|
991 |
// Settings page
|
992 |
-
$slug =
|
993 |
$title = $page_title.' - '.$opts_title;
|
994 |
$page = array( 'LocoAdmin', 'render_page_options' );
|
995 |
add_submenu_page( Loco::NS, $title, $opts_title, $cap, $slug, $page );
|
996 |
// also add under Settings menu (legacy)
|
997 |
-
add_options_page( $title, $opts_title,
|
|
|
|
|
|
|
|
|
|
|
998 |
// Hook in page stuff as soon as screen is avaiable
|
999 |
add_action('current_screen', '_loco_hook__current_screen' );
|
1000 |
}
|
@@ -1036,11 +1097,24 @@ function _loco_hook__wp_ajax_download(){
|
|
1036 |
}
|
1037 |
|
1038 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1039 |
|
1040 |
add_action('admin_menu', '_loco_hook__admin_menu' );
|
|
|
1041 |
add_action('plugin_row_meta', '_loco_hook__plugin_row_meta', 10, 2 );
|
1042 |
|
1043 |
// ajax hooks all going through one central function
|
|
|
1044 |
add_action('wp_ajax_loco-posave', '_loco_hook__wp_ajax' );
|
1045 |
add_action('wp_ajax_loco-posync', '_loco_hook__wp_ajax' );
|
1046 |
add_action('wp_ajax_loco-download', '_loco_hook__wp_ajax_download' );
|
@@ -1050,3 +1124,7 @@ if( ! defined('WP_LANG_DIR') ){
|
|
1050 |
define('WP_LANG_DIR', WP_CONTENT_DIR.'/languages' );
|
1051 |
}
|
1052 |
|
|
|
|
|
|
|
|
2 |
/**
|
3 |
* Loco admin
|
4 |
*/
|
5 |
+
abstract class LocoAdmin {
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Admin notices buffer
|
9 |
+
*/
|
10 |
+
private static $notices = array();
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Flush admin notices buffer
|
14 |
+
*/
|
15 |
+
public static function flush_notices(){
|
16 |
+
while( $buffered = array_shift(self::$notices) ){
|
17 |
+
list( $func, $args ) = $buffered;
|
18 |
+
call_user_func_array( array(__CLASS__,$func), $args );
|
19 |
+
}
|
20 |
+
}
|
21 |
+
|
22 |
|
23 |
/**
|
24 |
* Print error
|
37 |
* Print warning notice
|
38 |
*/
|
39 |
public static function warning( $message, $label = '' ){
|
40 |
+
if( did_action('admin_notices') ){
|
41 |
+
$label or $label = _x('Warning','Message label');
|
42 |
+
echo '<div class="loco-message error loco-warning"><p><strong>',$label,':</strong> ',Loco::html($message),'</p></div>';
|
43 |
+
}
|
44 |
+
else {
|
45 |
+
self::$notices[] = array( __FUNCTION__, func_get_args() );
|
46 |
+
}
|
47 |
}
|
48 |
|
49 |
|
88 |
}
|
89 |
Loco::enqueue_scripts('build/admin-common');
|
90 |
Loco::render('admin-opts', $args );
|
91 |
+
}
|
92 |
+
|
93 |
+
|
94 |
|
95 |
+
/**
|
96 |
+
* Admin diagnostics page render call
|
97 |
+
*/
|
98 |
+
public static function render_page_diagnostics(){
|
99 |
+
current_user_can(Loco::CAPABILITY) or self::forbid();
|
100 |
+
loco_require('loco-locales','loco-packages');
|
101 |
+
// global data
|
102 |
+
global $wp_version;
|
103 |
+
$user = wp_get_current_user();
|
104 |
+
// collect data about Loco plugin
|
105 |
+
$config = Loco::config();
|
106 |
+
$caching = Loco::$cache_enabled ? ( Loco::$apc_enabled ? 'APC' : 'WP' ) : 'Off';
|
107 |
+
// collect data about current theme
|
108 |
+
$theme = wp_get_theme();
|
109 |
+
$package = LocoPackage::get( $theme->get_stylesheet(), 'theme' );
|
110 |
+
$theme_locale = apply_filters( 'theme_locale', get_locale(), $theme->get('TextDomain') );
|
111 |
+
// collect data about all plugins
|
112 |
+
$plugins = array();
|
113 |
+
foreach( get_plugins() as $plugin_file => $plugin ){
|
114 |
+
$package = LocoPackage::get( $plugin_file, 'plugin' ) and
|
115 |
+
$plugins[ $package->get_name() ] = $package->get_domain();
|
116 |
+
}
|
117 |
+
// check if locale is a valid Wordpress language code
|
118 |
+
if( ! LocoLocale::is_valid_wordpress($theme_locale) ){
|
119 |
+
self::warning( sprintf( Loco::__('"%s" is not a standard WordPress locale code'), $theme_locale ) );
|
120 |
+
}
|
121 |
+
$args = compact('wp_version','theme','theme_locale','package','config','caching','user','plugins');
|
122 |
+
Loco::enqueue_scripts('build/admin-common', 'debug');
|
123 |
+
Loco::render('admin-debug', $args );
|
124 |
+
}
|
125 |
|
126 |
+
|
127 |
|
128 |
/**
|
129 |
* Admin tools page render call
|
179 |
}
|
180 |
}
|
181 |
// else do a dry run to pre-empt failures and allow manual alteration of target path
|
182 |
+
$path = self::msginit( $package, $domain, 'zz_ZZ', $export, $head, $force_global );
|
183 |
// get alternative location options
|
184 |
$pdir = $package->lang_dir( $domain, true );
|
185 |
$gdir = $package->global_lang_dir();
|
204 |
// Show filesystem check if 'fscheck' in query
|
205 |
//
|
206 |
if( isset($_GET['fscheck']) ){
|
207 |
+
$args = $package->meta() + compact('package');
|
208 |
Loco::enqueue_scripts('build/admin-common');
|
209 |
+
Loco::render('admin-fscheck', $args );
|
210 |
break;
|
211 |
}
|
212 |
|
260 |
}
|
261 |
}
|
262 |
}
|
263 |
+
Loco::enqueue_scripts('build/admin-common');
|
264 |
Loco::render('admin-root', $args );
|
265 |
}
|
266 |
while( false );
|
486 |
$path = str_replace( '.mo', '.po', $path );
|
487 |
}
|
488 |
|
489 |
+
Loco::enqueue_scripts('build/admin-common','build/admin-poedit');
|
490 |
Loco::render('admin-poedit', compact('package','path','po','pot','locale','headers','name','type','modified','writable','warnings') );
|
491 |
return true;
|
492 |
}
|
615 |
* Recursively find all PHP source files anywhere under a directory
|
616 |
*/
|
617 |
public static function find_php( $dir ){
|
618 |
+
$files = self::find( $dir, array('php','phtml') );
|
619 |
+
return array_merge($files['php'], $files['phtml']);
|
620 |
}
|
621 |
|
622 |
|
797 |
if( 'pot' === $extension ){
|
798 |
return $filename;
|
799 |
}
|
800 |
+
if( $domain = preg_replace('/[a-z]{2,3}(_[A-Z]{2})?$/', '', $filename ) ){
|
801 |
+
return rtrim( $domain, '-' );
|
802 |
}
|
803 |
// empty domain means file name is probably just a locale
|
804 |
return '';
|
828 |
$args['page'].= '-'.$suffix;
|
829 |
}
|
830 |
}
|
831 |
+
return add_query_arg($args,$base_uri);
|
832 |
}
|
833 |
|
834 |
|
1023 |
* Admin menu registration callback
|
1024 |
*/
|
1025 |
function _loco_hook__admin_menu() {
|
1026 |
+
$cap = Loco::CAPABILITY;
|
1027 |
if( current_user_can($cap) ){
|
1028 |
// hook in legacy wordpress styles as menu will display
|
1029 |
$wp_38 = version_compare( $GLOBALS['wp_version'], '3.8', '>=' ) or
|
1032 |
$page_title = Loco::__('Loco, Translation Management');
|
1033 |
$tool_title = Loco::__('Manage translations');
|
1034 |
$opts_title = Loco::__('Translation options');
|
1035 |
+
$diag_title = Loco::__('Diagnostics');
|
1036 |
// Loco main menu item
|
1037 |
$slug = Loco::NS;
|
1038 |
$title = $page_title.' - '.$tool_title;
|
1045 |
// also add under Tools menu (legacy)
|
1046 |
add_management_page( $title, $tool_title, $cap, $slug.'-legacy', $page );
|
1047 |
// Settings page
|
1048 |
+
$slug = Loco::NS.'-settings';
|
1049 |
$title = $page_title.' - '.$opts_title;
|
1050 |
$page = array( 'LocoAdmin', 'render_page_options' );
|
1051 |
add_submenu_page( Loco::NS, $title, $opts_title, $cap, $slug, $page );
|
1052 |
// also add under Settings menu (legacy)
|
1053 |
+
add_options_page( $title, $opts_title, $cap, $slug.'-legacy', $page );
|
1054 |
+
/*/ Diagnostics page - enabled in debug mode only
|
1055 |
+
if( WP_DEBUG ){
|
1056 |
+
$page = array( 'LocoAdmin', 'render_page_diagnostics' );
|
1057 |
+
add_submenu_page( Loco::NS, $page_title.' - '.$diag_title, $diag_title, $cap, Loco::NS.'-diagnostics', $page );
|
1058 |
+
}*/
|
1059 |
// Hook in page stuff as soon as screen is avaiable
|
1060 |
add_action('current_screen', '_loco_hook__current_screen' );
|
1061 |
}
|
1097 |
}
|
1098 |
|
1099 |
|
1100 |
+
/**
|
1101 |
+
* callback when admin notices are being printed
|
1102 |
+
*/
|
1103 |
+
function _loco_hook_admin_notices(){
|
1104 |
+
if( defined('WPLANG') && LocoAdmin::is_self() && WPLANG && 3 < (int) $GLOBALS['wp_version'] ){
|
1105 |
+
LocoAdmin::warning( Loco::__('WPLANG is deprecated and should be removed from wp-config.php') );
|
1106 |
+
}
|
1107 |
+
LocoAdmin::flush_notices();
|
1108 |
+
}
|
1109 |
+
|
1110 |
+
|
1111 |
|
1112 |
add_action('admin_menu', '_loco_hook__admin_menu' );
|
1113 |
+
add_action('admin_notices', '_loco_hook_admin_notices');
|
1114 |
add_action('plugin_row_meta', '_loco_hook__plugin_row_meta', 10, 2 );
|
1115 |
|
1116 |
// ajax hooks all going through one central function
|
1117 |
+
add_action('wp_ajax_loco-data', '_loco_hook__wp_ajax' );
|
1118 |
add_action('wp_ajax_loco-posave', '_loco_hook__wp_ajax' );
|
1119 |
add_action('wp_ajax_loco-posync', '_loco_hook__wp_ajax' );
|
1120 |
add_action('wp_ajax_loco-download', '_loco_hook__wp_ajax_download' );
|
1124 |
define('WP_LANG_DIR', WP_CONTENT_DIR.'/languages' );
|
1125 |
}
|
1126 |
|
1127 |
+
// Load polyfills and raise warnings in debug mode
|
1128 |
+
extension_loaded('mbstring') or loco_require('compat/loco-mbstring');
|
1129 |
+
extension_loaded('iconv') or loco_require('compat/loco-iconv');
|
1130 |
+
|
lib/loco-boot.php
CHANGED
@@ -8,7 +8,7 @@ abstract class Loco {
|
|
8 |
/** plugin namespace */
|
9 |
const NS = 'loco-translate';
|
10 |
|
11 |
-
const VERSION = '1.
|
12 |
const CAPABILITY = 'manage_options';
|
13 |
|
14 |
/* current plugin locale */
|
8 |
/** plugin namespace */
|
9 |
const NS = 'loco-translate';
|
10 |
|
11 |
+
const VERSION = '1.5';
|
12 |
const CAPABILITY = 'manage_options';
|
13 |
|
14 |
/* current plugin locale */
|
lib/loco-locales.php
CHANGED
@@ -13,10 +13,15 @@
|
|
13 |
function loco_locale_resolve( $s ){
|
14 |
$lc = '';
|
15 |
$cc = '';
|
16 |
-
if( preg_match('/(?:^|\W)([a-z]{2})(?:(?:-|_)([a-z]{2}))?$/i', $s, $r ) ){
|
17 |
$lc = strtolower($r[1]);
|
18 |
if( isset($r[2]) ){
|
19 |
$cc = strtoupper($r[2]);
|
|
|
|
|
|
|
|
|
|
|
20 |
}
|
21 |
}
|
22 |
return LocoLocale::init( $lc, $cc );
|
@@ -42,7 +47,10 @@ final class LocoLocale {
|
|
42 |
}
|
43 |
|
44 |
public function export(){
|
45 |
-
|
|
|
|
|
|
|
46 |
}
|
47 |
|
48 |
public function __toString(){
|
@@ -86,6 +94,7 @@ final class LocoLocale {
|
|
86 |
if( ! $cc ){
|
87 |
if( self::is_regionless($lc) ){
|
88 |
// Wordpress expects this locale to be regionless
|
|
|
89 |
}
|
90 |
else {
|
91 |
$cc = self::default_region($lc);
|
@@ -93,15 +102,9 @@ final class LocoLocale {
|
|
93 |
}
|
94 |
$label = '';
|
95 |
$locale = new LocoLocale( $lc, $cc );
|
96 |
-
// get locale name from
|
97 |
-
if( isset($locales[$lc]) ){
|
98 |
-
$
|
99 |
-
if( ! $cc && isset($names[$lc]) ){
|
100 |
-
$locale->label = $names[$lc];
|
101 |
-
}
|
102 |
-
else if( isset($locales[$lc][$cc]) ){
|
103 |
-
$locale->label = $locales[$lc][$cc];
|
104 |
-
}
|
105 |
}
|
106 |
// get plural rules from iso 639 language and set label if common locale wasn't known
|
107 |
if( isset($langs[$lc]) ){
|
@@ -150,20 +153,16 @@ final class LocoLocale {
|
|
150 |
if( ! $names ){
|
151 |
$data = self::data();
|
152 |
foreach( $data['locales'] as $lc => $regions ){
|
153 |
-
$no_cc = self::is_regionless($lc);
|
154 |
foreach( $regions as $cc => $label ){
|
155 |
-
if( '
|
156 |
$names[$lc] = $label;
|
157 |
}
|
158 |
-
else if( $cc === $no_cc ){
|
159 |
-
// already have as regionless
|
160 |
-
}
|
161 |
else {
|
162 |
$names[$lc.'_'.$cc] = $label;
|
163 |
}
|
164 |
}
|
165 |
}
|
166 |
-
asort($names,SORT_ASC|
|
167 |
}
|
168 |
return $names;
|
169 |
}
|
@@ -176,22 +175,56 @@ final class LocoLocale {
|
|
176 |
*/
|
177 |
public static function is_regionless( $lc ){
|
178 |
$data = self::data();
|
179 |
-
|
180 |
-
return false;
|
181 |
-
}
|
182 |
-
// return the default region for this language if there was to be one
|
183 |
-
return key($data['locales'][$lc]);
|
184 |
}
|
|
|
185 |
|
186 |
|
187 |
/**
|
188 |
* Alias to loco_language_country
|
189 |
*/
|
190 |
-
|
191 |
-
self::data();
|
|
|
|
|
|
|
192 |
return loco_language_country( $lang );
|
193 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
194 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
195 |
}
|
196 |
|
197 |
|
13 |
function loco_locale_resolve( $s ){
|
14 |
$lc = '';
|
15 |
$cc = '';
|
16 |
+
if( preg_match('/(?:^|\W)([a-z]{2,3})(?:(?:-|_)([a-z]{2}))?$/i', $s, $r ) ){
|
17 |
$lc = strtolower($r[1]);
|
18 |
if( isset($r[2]) ){
|
19 |
$cc = strtoupper($r[2]);
|
20 |
+
// handle situation when short domain part looks like language
|
21 |
+
if( ! LocoLocale::is_known_language($lc) && LocoLocale::is_known_language($cc) ){
|
22 |
+
$lc = strtolower($cc);
|
23 |
+
$cc = '';
|
24 |
+
}
|
25 |
}
|
26 |
}
|
27 |
return LocoLocale::init( $lc, $cc );
|
47 |
}
|
48 |
|
49 |
public function export(){
|
50 |
+
$data = get_object_vars($this);
|
51 |
+
$this->region or $data['region'] = self::default_region($this->lang);
|
52 |
+
$data['icon'] = $this->icon_class();
|
53 |
+
return $data;
|
54 |
}
|
55 |
|
56 |
public function __toString(){
|
94 |
if( ! $cc ){
|
95 |
if( self::is_regionless($lc) ){
|
96 |
// Wordpress expects this locale to be regionless
|
97 |
+
$cc = '';
|
98 |
}
|
99 |
else {
|
100 |
$cc = self::default_region($lc);
|
102 |
}
|
103 |
$label = '';
|
104 |
$locale = new LocoLocale( $lc, $cc );
|
105 |
+
// get locale name from official Wordpress list
|
106 |
+
if( isset($locales[$lc][$cc]) ){
|
107 |
+
$locale->label = $locales[$lc][$cc];
|
|
|
|
|
|
|
|
|
|
|
|
|
108 |
}
|
109 |
// get plural rules from iso 639 language and set label if common locale wasn't known
|
110 |
if( isset($langs[$lc]) ){
|
153 |
if( ! $names ){
|
154 |
$data = self::data();
|
155 |
foreach( $data['locales'] as $lc => $regions ){
|
|
|
156 |
foreach( $regions as $cc => $label ){
|
157 |
+
if( '' === $cc ){
|
158 |
$names[$lc] = $label;
|
159 |
}
|
|
|
|
|
|
|
160 |
else {
|
161 |
$names[$lc.'_'.$cc] = $label;
|
162 |
}
|
163 |
}
|
164 |
}
|
165 |
+
asort($names,SORT_ASC|SORT_STRING);
|
166 |
}
|
167 |
return $names;
|
168 |
}
|
175 |
*/
|
176 |
public static function is_regionless( $lc ){
|
177 |
$data = self::data();
|
178 |
+
return isset($data['locales'][$lc]['']);
|
|
|
|
|
|
|
|
|
179 |
}
|
180 |
+
|
181 |
|
182 |
|
183 |
/**
|
184 |
* Alias to loco_language_country
|
185 |
*/
|
186 |
+
public static function default_region( $lang ){
|
187 |
+
self::data();
|
188 |
+
if( 'en' === $lang ){
|
189 |
+
return 'US';
|
190 |
+
}
|
191 |
return loco_language_country( $lang );
|
192 |
+
}
|
193 |
+
|
194 |
+
|
195 |
+
/**
|
196 |
+
* Test if locale code is strictly a valid Wordpress locale
|
197 |
+
*/
|
198 |
+
public static function is_valid_wordpress( $code ){
|
199 |
+
if( ! preg_match('/^[a-z]{2,3}(?:_[A-Z]{2})?$/', $code, $r ) ){
|
200 |
+
return false;
|
201 |
+
}
|
202 |
+
$names = self::get_names();
|
203 |
+
return isset( $names[$r[0]] );
|
204 |
+
}
|
205 |
+
|
206 |
+
|
207 |
+
/**
|
208 |
+
* Test if code is a valid language code
|
209 |
+
* This includes all two character languages in ISO-639, plus any three character codes used by Wordpress
|
210 |
+
*/
|
211 |
+
public static function is_known_language( $code ){
|
212 |
+
$data = self::data();
|
213 |
+
$code = strtolower($code);
|
214 |
+
return isset($data['langs'][$code]);
|
215 |
+
}
|
216 |
|
217 |
+
|
218 |
+
/**
|
219 |
+
* Test if code is a known region
|
220 |
+
* This includes all two character languages in ISO-3166
|
221 |
+
*/
|
222 |
+
public static function is_known_region( $code ){
|
223 |
+
$data = self::data();
|
224 |
+
$code = strtoupper($code);
|
225 |
+
return isset($data['regions'][$code]);
|
226 |
+
}
|
227 |
+
|
228 |
}
|
229 |
|
230 |
|
lib/loco-packages.php
CHANGED
@@ -82,6 +82,11 @@ abstract class LocoPackage {
|
|
82 |
*/
|
83 |
abstract public function get_type();
|
84 |
|
|
|
|
|
|
|
|
|
|
|
85 |
|
86 |
/**
|
87 |
* Construct package from name, root and domain
|
@@ -212,7 +217,7 @@ abstract class LocoPackage {
|
|
212 |
$pattern = $langdir.'/'.$domain.'{-*.po,.pot}';
|
213 |
$nfiles = $this->nfiles;
|
214 |
$files = LocoAdmin::find_grouped( $pattern, GLOB_NOSORT|GLOB_BRACE ) and
|
215 |
-
$this->add_po( $files );
|
216 |
// add $langdir if files added
|
217 |
if( $nfiles !== $this->nfiles ){
|
218 |
$this->add_dir( $langdir );
|
@@ -223,21 +228,30 @@ abstract class LocoPackage {
|
|
223 |
|
224 |
/**
|
225 |
* Add multiple locations from found PO and POT files
|
|
|
|
|
226 |
* @return LocoPackage
|
227 |
*/
|
228 |
-
private function add_po( array $files, $domain
|
229 |
if( isset($files['pot']) && is_array($files['pot']) ){
|
230 |
foreach( $files['pot'] as $path ){
|
231 |
-
$
|
232 |
-
|
|
|
|
|
233 |
}
|
234 |
}
|
235 |
if( isset($files['po']) && is_array($files['po']) ){
|
236 |
foreach( $files['po'] as $path ){
|
237 |
-
$
|
|
|
|
|
|
|
238 |
$locale = LocoAdmin::resolve_file_locale($path);
|
239 |
$code = $locale->get_code() or $code = 'xx_XX';
|
240 |
-
$this->add_file($path)
|
|
|
|
|
241 |
}
|
242 |
}
|
243 |
return $this;
|
@@ -293,7 +307,7 @@ abstract class LocoPackage {
|
|
293 |
$dirs[] = $path;
|
294 |
}
|
295 |
}
|
296 |
-
// check location of
|
297 |
foreach( $this->po as $d => $paths ){
|
298 |
if( ! $domain || $d === $domain ){
|
299 |
foreach( $paths as $path ){
|
@@ -478,6 +492,42 @@ abstract class LocoPackage {
|
|
478 |
ksort( $paths );
|
479 |
return $paths;
|
480 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
481 |
|
482 |
|
483 |
/**
|
@@ -491,9 +541,9 @@ abstract class LocoPackage {
|
|
491 |
if( ! empty($this->pot[$domain]) ){
|
492 |
return $this->pot[$domain];
|
493 |
}
|
494 |
-
// no POT, but some authors may use
|
495 |
if( isset($this->po[$domain]) ){
|
496 |
-
foreach( array('','xx_XX','en_US','en_GB') as $try ){
|
497 |
if( isset($this->po[$domain][$try]) ){
|
498 |
$pot = $this->po[$domain][$try];
|
499 |
unset( $this->po[$domain][$try] );
|
@@ -622,7 +672,7 @@ abstract class LocoPackage {
|
|
622 |
|
623 |
|
624 |
/**
|
625 |
-
*
|
626 |
* @return LocoPackage
|
627 |
*/
|
628 |
private static function get_theme( $handle ){
|
@@ -635,12 +685,12 @@ abstract class LocoPackage {
|
|
635 |
$root = $theme->get_theme_root().'/'.$handle;
|
636 |
$package->add_source( $root );
|
637 |
// add PO and POT under theme root
|
638 |
-
if( $
|
639 |
-
$package->add_po( $
|
640 |
}
|
641 |
// pick up any MO files that have missing PO
|
642 |
-
if( $
|
643 |
-
$package->add_mo( $
|
644 |
}
|
645 |
// find additional theme PO under WP_LANG_DIR/themes unless a child theme
|
646 |
$package->add_lang_dir( WP_LANG_DIR.'/themes', $domain );
|
@@ -650,6 +700,11 @@ abstract class LocoPackage {
|
|
650 |
$package->inherit( $parent );
|
651 |
}
|
652 |
}
|
|
|
|
|
|
|
|
|
|
|
653 |
return $package;
|
654 |
}
|
655 |
}
|
@@ -668,15 +723,20 @@ abstract class LocoPackage {
|
|
668 |
$root = WP_PLUGIN_DIR.'/'.dirname($handle);
|
669 |
$package->add_source( $root );
|
670 |
// add PO and POT under plugin root
|
671 |
-
if( $
|
672 |
-
$package->add_po( $
|
673 |
}
|
674 |
// pick up any MO files that have missing PO
|
675 |
-
if( $
|
676 |
-
$package->add_mo( $
|
677 |
}
|
678 |
// find additional plugin PO under WP_LANG_DIR/plugin
|
679 |
$package->add_lang_dir( WP_LANG_DIR.'/plugins', $domain );
|
|
|
|
|
|
|
|
|
|
|
680 |
return $package;
|
681 |
}
|
682 |
}
|
@@ -844,6 +904,10 @@ class LocoThemePackage extends LocoPackage {
|
|
844 |
public function get_type(){
|
845 |
return 'theme';
|
846 |
}
|
|
|
|
|
|
|
|
|
847 |
}
|
848 |
|
849 |
|
@@ -857,6 +921,11 @@ class LocoPluginPackage extends LocoPackage {
|
|
857 |
public function get_type(){
|
858 |
return 'plugin';
|
859 |
}
|
|
|
|
|
|
|
|
|
|
|
860 |
}
|
861 |
|
862 |
|
@@ -868,5 +937,8 @@ class LocoCorePackage extends LocoPackage {
|
|
868 |
public function get_type(){
|
869 |
return 'core';
|
870 |
}
|
|
|
|
|
|
|
871 |
}
|
872 |
|
82 |
*/
|
83 |
abstract public function get_type();
|
84 |
|
85 |
+
/**
|
86 |
+
* Get original data about package stored in Wordpress
|
87 |
+
*/
|
88 |
+
abstract public function get_original( $header );
|
89 |
+
|
90 |
|
91 |
/**
|
92 |
* Construct package from name, root and domain
|
217 |
$pattern = $langdir.'/'.$domain.'{-*.po,.pot}';
|
218 |
$nfiles = $this->nfiles;
|
219 |
$files = LocoAdmin::find_grouped( $pattern, GLOB_NOSORT|GLOB_BRACE ) and
|
220 |
+
$this->add_po( $files, $domain );
|
221 |
// add $langdir if files added
|
222 |
if( $nfiles !== $this->nfiles ){
|
223 |
$this->add_dir( $langdir );
|
228 |
|
229 |
/**
|
230 |
* Add multiple locations from found PO and POT files
|
231 |
+
* @param array file paths collected with LocoAdmin::find_po
|
232 |
+
* @param string specific text domain to add
|
233 |
* @return LocoPackage
|
234 |
*/
|
235 |
+
private function add_po( array $files, $domain ){
|
236 |
if( isset($files['pot']) && is_array($files['pot']) ){
|
237 |
foreach( $files['pot'] as $path ){
|
238 |
+
$key = LocoAdmin::resolve_file_domain($path) or $key = $this->get_domain();
|
239 |
+
if( ( ! $domain || $key === $domain ) && $this->add_file($path) ){
|
240 |
+
$this->pot[$key] = $path;
|
241 |
+
}
|
242 |
}
|
243 |
}
|
244 |
if( isset($files['po']) && is_array($files['po']) ){
|
245 |
foreach( $files['po'] as $path ){
|
246 |
+
$key = LocoAdmin::resolve_file_domain($path) or $key = $this->get_domain();
|
247 |
+
if( ! $domain || $key !== $domain ){
|
248 |
+
continue;
|
249 |
+
}
|
250 |
$locale = LocoAdmin::resolve_file_locale($path);
|
251 |
$code = $locale->get_code() or $code = 'xx_XX';
|
252 |
+
if( $this->add_file($path) ){
|
253 |
+
$this->po[ $key ][ $code ] = $path;
|
254 |
+
}
|
255 |
}
|
256 |
}
|
257 |
return $this;
|
307 |
$dirs[] = $path;
|
308 |
}
|
309 |
}
|
310 |
+
// check location of all PO files in domain
|
311 |
foreach( $this->po as $d => $paths ){
|
312 |
if( ! $domain || $d === $domain ){
|
313 |
foreach( $paths as $path ){
|
492 |
ksort( $paths );
|
493 |
return $paths;
|
494 |
}
|
495 |
+
|
496 |
+
|
497 |
+
/**
|
498 |
+
* Get package errors, or things that may cause problems displaying translations
|
499 |
+
*/
|
500 |
+
public function get_author_warnings(){
|
501 |
+
$warn = array();
|
502 |
+
$type = $this->get_type();
|
503 |
+
if( 'core' === $type ){
|
504 |
+
// no tests for core packages
|
505 |
+
}
|
506 |
+
else {
|
507 |
+
$camelType = strtoupper($type{0}).substr($type,1);
|
508 |
+
// check package declares Text Domain
|
509 |
+
$domain = $this->get_original('TextDomain');
|
510 |
+
if( ! $domain ){
|
511 |
+
$domain = $this->get_domain();
|
512 |
+
$warn[] = sprintf(Loco::__('%s does not declare a "Text Domain"'),$camelType).' .. '.sprintf(Loco::__('Loco has guessed "%s"'), $domain );
|
513 |
+
}
|
514 |
+
// check package declares "Domain Path"
|
515 |
+
$path = $this->get_original('Domain Path');
|
516 |
+
if( ! $domain ){
|
517 |
+
$warn[] = sprintf(Loco::__('%s does not declare a "Domain Path"'),$camelType).' .. '.sprintf(Loco::__('Loco has guessed "%s"'), $this->domainpath );
|
518 |
+
}
|
519 |
+
// check POT exists and looks correct
|
520 |
+
$path = $this->get_pot($domain);
|
521 |
+
if( ! $path ){
|
522 |
+
$warn[] = sprintf( Loco::__('%s has no POT file. Create one at "%s/%s.pot" if you need one.'), $camelType, $this->domainpath, $domain );
|
523 |
+
}
|
524 |
+
else if( $domain.'.pot' !== basename($path) ){
|
525 |
+
$warn[] = sprintf(Loco::__('%s has a strange POT file name (%s). A better name would be "%s.pot"'), $camelType, basename($path), $domain );
|
526 |
+
}
|
527 |
+
// TODO check references to other domains in xgettext
|
528 |
+
}
|
529 |
+
return $warn;
|
530 |
+
}
|
531 |
|
532 |
|
533 |
/**
|
541 |
if( ! empty($this->pot[$domain]) ){
|
542 |
return $this->pot[$domain];
|
543 |
}
|
544 |
+
// no POT, but some authors may use PO files incorrectly as a template
|
545 |
if( isset($this->po[$domain]) ){
|
546 |
+
foreach( array('','xx_XX','en_US','en_GB','en_EN') as $try ){
|
547 |
if( isset($this->po[$domain][$try]) ){
|
548 |
$pot = $this->po[$domain][$try];
|
549 |
unset( $this->po[$domain][$try] );
|
672 |
|
673 |
|
674 |
/**
|
675 |
+
* Construct package object from theme data
|
676 |
* @return LocoPackage
|
677 |
*/
|
678 |
private static function get_theme( $handle ){
|
685 |
$root = $theme->get_theme_root().'/'.$handle;
|
686 |
$package->add_source( $root );
|
687 |
// add PO and POT under theme root
|
688 |
+
if( $pofiles = LocoAdmin::find_po($root) ){
|
689 |
+
$package->add_po( $pofiles, $domain );
|
690 |
}
|
691 |
// pick up any MO files that have missing PO
|
692 |
+
if( $mofiles = LocoAdmin::find_mo($root) ){
|
693 |
+
$package->add_mo( $mofiles, $domain );
|
694 |
}
|
695 |
// find additional theme PO under WP_LANG_DIR/themes unless a child theme
|
696 |
$package->add_lang_dir( WP_LANG_DIR.'/themes', $domain );
|
700 |
$package->inherit( $parent );
|
701 |
}
|
702 |
}
|
703 |
+
// fall back to all POT matches if no exact domain match
|
704 |
+
if( ! $package->pot ){
|
705 |
+
unset( $pofiles['po'] );
|
706 |
+
$package->add_po( $pofiles, null );
|
707 |
+
}
|
708 |
return $package;
|
709 |
}
|
710 |
}
|
723 |
$root = WP_PLUGIN_DIR.'/'.dirname($handle);
|
724 |
$package->add_source( $root );
|
725 |
// add PO and POT under plugin root
|
726 |
+
if( $pofiles = LocoAdmin::find_po($root) ){
|
727 |
+
$package->add_po( $pofiles, $domain );
|
728 |
}
|
729 |
// pick up any MO files that have missing PO
|
730 |
+
if( $mofiles = LocoAdmin::find_mo($root) ){
|
731 |
+
$package->add_mo( $mofiles, $domain );
|
732 |
}
|
733 |
// find additional plugin PO under WP_LANG_DIR/plugin
|
734 |
$package->add_lang_dir( WP_LANG_DIR.'/plugins', $domain );
|
735 |
+
// fall back to all POT matches if no exact domain match
|
736 |
+
if( ! $package->pot ){
|
737 |
+
unset( $pofiles['po'] );
|
738 |
+
$package->add_po( $pofiles, null );
|
739 |
+
}
|
740 |
return $package;
|
741 |
}
|
742 |
}
|
904 |
public function get_type(){
|
905 |
return 'theme';
|
906 |
}
|
907 |
+
public function get_original( $header ){
|
908 |
+
$theme = wp_get_theme( $this->get_handle() );
|
909 |
+
return $theme->get( $header );
|
910 |
+
}
|
911 |
}
|
912 |
|
913 |
|
921 |
public function get_type(){
|
922 |
return 'plugin';
|
923 |
}
|
924 |
+
public function get_original( $header ){
|
925 |
+
$plugins = get_plugins();
|
926 |
+
$plugin = $plugins[ $this->get_handle() ];
|
927 |
+
return isset($plugin[$header]) ? $plugin[$header] : '';
|
928 |
+
}
|
929 |
}
|
930 |
|
931 |
|
937 |
public function get_type(){
|
938 |
return 'core';
|
939 |
}
|
940 |
+
public function get_original( $header ){
|
941 |
+
return null;
|
942 |
+
}
|
943 |
}
|
944 |
|
lib/test/bootstrap.php
CHANGED
@@ -14,6 +14,36 @@ function is_admin(){
|
|
14 |
return false;
|
15 |
}
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
function esc_html( $text ){
|
18 |
return htmlspecialchars( $text, ENT_COMPAT, 'UTF-8' );
|
19 |
}
|
@@ -26,6 +56,19 @@ function add_filter(){
|
|
26 |
// noop
|
27 |
}
|
28 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
function apply_filters( $hook, $value = null ){
|
30 |
return $value;
|
31 |
}
|
@@ -39,7 +82,8 @@ function __($t){
|
|
39 |
}
|
40 |
|
41 |
define('WP_DEBUG', true );
|
|
|
42 |
|
43 |
require __DIR__.'/../../loco.php';
|
44 |
|
45 |
-
loco_require( 'loco-boot','loco-admin','loco-locales','loco-packages','build/gettext-compiled','build/shell-compiled' );
|
14 |
return false;
|
15 |
}
|
16 |
|
17 |
+
function admin_url( $path = '', $scheme = 'admin' ){
|
18 |
+
return 'http://test/wp-admin/admin.php';
|
19 |
+
}
|
20 |
+
|
21 |
+
function get_plugins(){
|
22 |
+
return array(
|
23 |
+
'loco-translate/loco.php' => array(
|
24 |
+
'Name' => 'Loco Translate',
|
25 |
+
'TextDomain' => 'loco-translate',
|
26 |
+
'DomainPath' => '/languages/',
|
27 |
+
),
|
28 |
+
'woocommerce/woocommerce.php' => array(
|
29 |
+
'Name' => 'WooCommerce',
|
30 |
+
'TextDomain' => 'woocommerce',
|
31 |
+
'DomainPath' => '/i18n/languages/',
|
32 |
+
),
|
33 |
+
);
|
34 |
+
}
|
35 |
+
|
36 |
+
function add_query_arg( array $args, $base_uri ){
|
37 |
+
$u = parse_url( $base_uri );
|
38 |
+
if( isset($u['query']) ){
|
39 |
+
parse_str( $u['query'], $query );
|
40 |
+
$args += $query;
|
41 |
+
}
|
42 |
+
$uri = $u['scheme'].'://'.$u['host'].$u['path'];
|
43 |
+
$args and $uri .= '?'.http_build_query($args);
|
44 |
+
return $uri;
|
45 |
+
}
|
46 |
+
|
47 |
function esc_html( $text ){
|
48 |
return htmlspecialchars( $text, ENT_COMPAT, 'UTF-8' );
|
49 |
}
|
56 |
// noop
|
57 |
}
|
58 |
|
59 |
+
function do_action( $name ){
|
60 |
+
did_action( $name, true );
|
61 |
+
}
|
62 |
+
|
63 |
+
function did_action( $name ){
|
64 |
+
static $faked = array();
|
65 |
+
if( 2 === func_num_args() ){
|
66 |
+
$faked[$name] = func_get_arg(1);
|
67 |
+
}
|
68 |
+
return isset($faked[$name]) ? $faked[$name] : false;
|
69 |
+
}
|
70 |
+
|
71 |
+
|
72 |
function apply_filters( $hook, $value = null ){
|
73 |
return $value;
|
74 |
}
|
82 |
}
|
83 |
|
84 |
define('WP_DEBUG', true );
|
85 |
+
define('WP_PLUGIN_DIR', __DIR__.'/../../..' );
|
86 |
|
87 |
require __DIR__.'/../../loco.php';
|
88 |
|
89 |
+
loco_require( 'loco-boot','loco-admin','loco-locales','loco-packages','build/gettext-compiled','build/shell-compiled', 'compat/loco-mbstring', 'compat/loco-iconv' );
|
lib/test/phpunit.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<phpunit bootstrap="./bootstrap.php"
|
3 |
colors="true"
|
4 |
processIsolation="false"
|
5 |
-
stopOnFailure="
|
6 |
syntaxCheck="false"
|
7 |
convertErrorsToExceptions="true"
|
8 |
convertNoticesToExceptions="true"
|
2 |
<phpunit bootstrap="./bootstrap.php"
|
3 |
colors="true"
|
4 |
processIsolation="false"
|
5 |
+
stopOnFailure="true"
|
6 |
syntaxCheck="false"
|
7 |
convertErrorsToExceptions="true"
|
8 |
convertNoticesToExceptions="true"
|
lib/test/tests/CompatTest.php
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @group compat
|
4 |
+
*/
|
5 |
+
class CompatText extends PHPUnit_Framework_TestCase {
|
6 |
+
|
7 |
+
|
8 |
+
|
9 |
+
public function testDummyDetectEncodingAlwaysUtf8(){
|
10 |
+
$this->assertSame( 'UTF-8', loco__mb_detect_encoding( 'whatever', array(), true ) );
|
11 |
+
}
|
12 |
+
|
13 |
+
|
14 |
+
public function testDummyIconvReturnsInput(){
|
15 |
+
$this->assertSame( 'OK', loco__iconv('anything','whatever','OK') );
|
16 |
+
}
|
17 |
+
|
18 |
+
|
19 |
+
|
20 |
+
}
|
lib/test/tests/LocalesTest.php
CHANGED
@@ -10,7 +10,7 @@ class LocalesTest extends PHPUnit_Framework_TestCase {
|
|
10 |
|
11 |
public function testGetAllLocales(){
|
12 |
$map = LocoLocale::get_names();
|
13 |
-
$this->assertCount(
|
14 |
return $map;
|
15 |
}
|
16 |
|
@@ -23,6 +23,21 @@ class LocalesTest extends PHPUnit_Framework_TestCase {
|
|
23 |
}
|
24 |
|
25 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
public function testKnownLocaleResolves(){
|
27 |
$locale = loco_locale_resolve('en_GB');
|
28 |
$this->assertInstanceOf('LocoLocale', $locale );
|
@@ -34,17 +49,44 @@ class LocalesTest extends PHPUnit_Framework_TestCase {
|
|
34 |
}
|
35 |
|
36 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
public function testLanguageResolvesToDefaultRegion(){
|
38 |
$locale = loco_locale_resolve('fr');
|
39 |
-
$this->assertEquals( 'French', $locale->get_name() );
|
40 |
$this->assertEquals( 'fr_FR', $locale->get_code() );
|
41 |
}
|
42 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
|
44 |
public function testRegionlessLanguageResolvesToLanguageOnly(){
|
45 |
$locale = loco_locale_resolve('th');
|
46 |
$this->assertEquals( 'Thai', $locale->get_name() );
|
47 |
$this->assertEquals( 'th', $locale->get_code() );
|
|
|
|
|
|
|
|
|
48 |
}
|
49 |
|
50 |
public function testRegionlessLocaleHasFlag(){
|
@@ -96,9 +138,9 @@ class LocalesTest extends PHPUnit_Framework_TestCase {
|
|
96 |
|
97 |
|
98 |
public function testLocaleEquality(){
|
99 |
-
$locale = LocoLocale::init('en','
|
100 |
$other = LocoLocale::init('en','');
|
101 |
-
$this->assertTrue( $locale->equal_to($other), $locale.'
|
102 |
}
|
103 |
|
104 |
|
10 |
|
11 |
public function testGetAllLocales(){
|
12 |
$map = LocoLocale::get_names();
|
13 |
+
$this->assertCount( 140, $map );
|
14 |
return $map;
|
15 |
}
|
16 |
|
23 |
}
|
24 |
|
25 |
|
26 |
+
public function testValidWordpressLocales(){
|
27 |
+
// regionless
|
28 |
+
$this->assertTrue( LocoLocale::is_valid_wordpress('th'), '"th" should be a valid WP locale ' );
|
29 |
+
$this->assertFalse( LocoLocale::is_valid_wordpress('th_TH'), 'th_TH is not valid, it should be "th"' );
|
30 |
+
$this->assertFalse( LocoLocale::is_valid_wordpress('TH'), '"TH" should be invalid due to uppercasing' );
|
31 |
+
// regionfull
|
32 |
+
$this->assertTrue( LocoLocale::is_valid_wordpress('fr_FR'), '"fr_FR" should be a valid WP locale ' );
|
33 |
+
$this->assertFalse( LocoLocale::is_valid_wordpress('fr'), 'fr is not valid, it should be "fr_FR"' );
|
34 |
+
$this->assertFalse( LocoLocale::is_valid_wordpress('FR'), '"FR" should be invalid due to uppercasing' );
|
35 |
+
// three characters official
|
36 |
+
$this->assertTrue( LocoLocale::is_valid_wordpress('bel'), '"bel" should be a valid WP locale ' );
|
37 |
+
$this->assertTrue( LocoLocale::is_valid_wordpress('rup_MK'), '"rup_MK" should be a valid WP locale ' );
|
38 |
+
}
|
39 |
+
|
40 |
+
|
41 |
public function testKnownLocaleResolves(){
|
42 |
$locale = loco_locale_resolve('en_GB');
|
43 |
$this->assertInstanceOf('LocoLocale', $locale );
|
49 |
}
|
50 |
|
51 |
|
52 |
+
public function testAnonymousLocaleAllowed(){
|
53 |
+
$locale = loco_locale_resolve('zz_ZZ');
|
54 |
+
$this->assertInstanceOf('LocoLocale', $locale );
|
55 |
+
}
|
56 |
+
|
57 |
+
|
58 |
+
public function testLocaleDefaultRegionHelper(){
|
59 |
+
$this->assertSame( 'FR', LocoLocale::default_region('fr') );
|
60 |
+
$this->assertSame( 'US', LocoLocale::default_region('en') );
|
61 |
+
$this->assertSame( 'TH', LocoLocale::default_region('th') );
|
62 |
+
$this->assertSame( '', LocoLocale::default_region('eo') );
|
63 |
+
$this->assertSame( '', LocoLocale::default_region('eu') );
|
64 |
+
}
|
65 |
+
|
66 |
+
|
67 |
public function testLanguageResolvesToDefaultRegion(){
|
68 |
$locale = loco_locale_resolve('fr');
|
69 |
+
$this->assertEquals( 'French (France)', $locale->get_name() );
|
70 |
$this->assertEquals( 'fr_FR', $locale->get_code() );
|
71 |
}
|
72 |
|
73 |
+
|
74 |
+
public function testLocaleIsRegionlessHelper(){
|
75 |
+
$this->assertFalse( LocoLocale::is_regionless('en'), 'French (fr) should not be regionless' );
|
76 |
+
$this->assertFalse( LocoLocale::is_regionless('en'), 'English (en) should not be regionaless' );
|
77 |
+
$this->assertTrue( LocoLocale::is_regionless('th'), 'Thai (th) should be regionless' );
|
78 |
+
$this->assertTrue( LocoLocale::is_regionless('ca'), 'Catalan (ca) should be regionless' );
|
79 |
+
}
|
80 |
+
|
81 |
|
82 |
public function testRegionlessLanguageResolvesToLanguageOnly(){
|
83 |
$locale = loco_locale_resolve('th');
|
84 |
$this->assertEquals( 'Thai', $locale->get_name() );
|
85 |
$this->assertEquals( 'th', $locale->get_code() );
|
86 |
+
// Catalan: https://wordpress.org/support/topic/problems-catalan
|
87 |
+
$locale = loco_locale_resolve('ca');
|
88 |
+
$this->assertEquals( 'Catalan', $locale->get_name() );
|
89 |
+
$this->assertEquals( 'ca', $locale->get_code() );
|
90 |
}
|
91 |
|
92 |
public function testRegionlessLocaleHasFlag(){
|
138 |
|
139 |
|
140 |
public function testLocaleEquality(){
|
141 |
+
$locale = LocoLocale::init('en','US');
|
142 |
$other = LocoLocale::init('en','');
|
143 |
+
$this->assertTrue( $locale->equal_to($other), $locale.' should resolve to the same locale as '.$other );
|
144 |
}
|
145 |
|
146 |
|
lib/test/tests/PluginPackageTest.php
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @group package
|
4 |
+
*/
|
5 |
+
class PluginPackageTest extends PHPUnit_Framework_TestCase {
|
6 |
+
|
7 |
+
|
8 |
+
public function testLocoPluginPackage(){
|
9 |
+
$package = LocoPackage::get( 'loco-translate/loco.php', 'plugin' );
|
10 |
+
$this->assertInstanceOf( 'LocoPackage', $package );
|
11 |
+
$this->assertEquals( 'plugin', $package->get_type() );
|
12 |
+
$this->assertEquals( Loco::NS, $package->get_domain() );
|
13 |
+
$path = $package->lang_dir();
|
14 |
+
$this->assertTrue( is_dir($path), 'Languages directory not found, '.$path );
|
15 |
+
return $package;
|
16 |
+
}
|
17 |
+
|
18 |
+
|
19 |
+
/**
|
20 |
+
* @depends testLocoPluginPackage
|
21 |
+
*/
|
22 |
+
public function testLocoPluginPackageOriginalHeaders( LocoPackage $package ){
|
23 |
+
$this->assertSame( Loco::NS, $package->get_original('TextDomain') );
|
24 |
+
}
|
25 |
+
|
26 |
+
}
|
lib/test/tests/ResolveFileDomainTest.php
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Test LocoAdmin::resolve_file_domain
|
4 |
+
*/
|
5 |
+
class ResolveFileDomainTest extends PHPUnit_Framework_TestCase {
|
6 |
+
|
7 |
+
|
8 |
+
public function testDomainOnlySeparatesFromFileExtension(){
|
9 |
+
$domain = LocoAdmin::resolve_file_domain( '/foo.pot' );
|
10 |
+
$this->assertEquals( 'foo', $domain );
|
11 |
+
}
|
12 |
+
|
13 |
+
public function testFullLocaleSeparatesFromDomainByHyphen(){
|
14 |
+
$domain = LocoAdmin::resolve_file_domain( '/foo-en_GB.po' );
|
15 |
+
$this->assertEquals( 'foo', $domain );
|
16 |
+
}
|
17 |
+
|
18 |
+
public function testFullLocaleWithLongLanguageSeparatesFromDomainByHyphen(){
|
19 |
+
$domain = LocoAdmin::resolve_file_domain( '/foo-rup_MK.po' );
|
20 |
+
$this->assertEquals( 'foo', $domain );
|
21 |
+
}
|
22 |
+
|
23 |
+
public function testLanguageCodeSeparatesFromDomainByHyphen(){
|
24 |
+
$domain = LocoAdmin::resolve_file_domain( '/foo-en.po' );
|
25 |
+
$this->assertEquals( 'foo', $domain );
|
26 |
+
}
|
27 |
+
|
28 |
+
}
|
lib/test/tests/ResolveFileLocaleTest.php
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Test LocoAdmin::resolve_file_locale function
|
4 |
+
* @group locales
|
5 |
+
*/
|
6 |
+
class ResolveFileLocaleTest extends PHPUnit_Framework_TestCase {
|
7 |
+
|
8 |
+
public function testLanguageCodeSepartesFromDomainAfterHyphen(){
|
9 |
+
$locale = LocoAdmin::resolve_file_locale('/test-ja.po');
|
10 |
+
$this->assertEquals( 'ja', $locale->get_code() );
|
11 |
+
}
|
12 |
+
|
13 |
+
public function testFullLocaleSeparatesFromDomainAfterHyphen(){
|
14 |
+
$locale = LocoAdmin::resolve_file_locale('/test-ja_jp.po');
|
15 |
+
$this->assertEquals( 'ja_JP', $locale->get_code() );
|
16 |
+
}
|
17 |
+
|
18 |
+
public function testLanguageCodeExpandsToDefaultRegionAfterHyphen(){
|
19 |
+
$locale = LocoAdmin::resolve_file_locale('/test-en.po');
|
20 |
+
$this->assertEquals( 'en_US', $locale->get_code() );
|
21 |
+
}
|
22 |
+
|
23 |
+
|
24 |
+
public function testThreeCharacterLanguageCodeSeparates(){
|
25 |
+
$locale = LocoAdmin::resolve_file_locale('/bel.po');
|
26 |
+
$this->assertEquals( 'bel', $locale->get_code() );
|
27 |
+
}
|
28 |
+
|
29 |
+
public function testThreeCharacterLanguageCodeWithRegionSeparates(){
|
30 |
+
$locale = LocoAdmin::resolve_file_locale('/rup-mk.po');
|
31 |
+
$this->assertEquals( 'rup_MK', $locale->get_code() );
|
32 |
+
}
|
33 |
+
|
34 |
+
|
35 |
+
public function testUnknownTwoCharacterLanguageIgnored(){
|
36 |
+
$locale = LocoAdmin::resolve_file_locale('/xx-th.po');
|
37 |
+
// If "xx" was treated as a language this would give invalid locale "xx_TH".
|
38 |
+
$this->assertEquals( 'th', $locale->get_code(), '"xx" is not a valid language, but "th" is' );
|
39 |
+
}
|
40 |
+
|
41 |
+
public function testUnknownThreeCharacterLanguageIgnored(){
|
42 |
+
$locale = LocoAdmin::resolve_file_locale('/foo-th.po');
|
43 |
+
// If "foo" was treated as a language this would give invalid locale "foo_TH".
|
44 |
+
$this->assertEquals( 'th', $locale->get_code(), '"foo" is not a valid langauge, but "th" is' );
|
45 |
+
}
|
46 |
+
|
47 |
+
|
48 |
+
}
|
lib/test/tests/UriTest.php
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Test LocoAdmin::uri function
|
4 |
+
*/
|
5 |
+
class UriTest extends PHPUnit_Framework_TestCase {
|
6 |
+
|
7 |
+
|
8 |
+
public function testDefaultPluginPageUri(){
|
9 |
+
$uri = LocoAdmin::uri();
|
10 |
+
$this->assertEquals('http://test/wp-admin/admin.php?page=loco-translate', $uri );
|
11 |
+
}
|
12 |
+
|
13 |
+
public function testDefaultPageWithParameters(){
|
14 |
+
$args = array( 'foo' => 'bar-baz' );
|
15 |
+
$uri = LocoAdmin::uri( $args );
|
16 |
+
$this->assertEquals('http://test/wp-admin/admin.php?foo=bar-baz&page=loco-translate', $uri );
|
17 |
+
}
|
18 |
+
|
19 |
+
|
20 |
+
}
|
lib/test/tests/UtilsTest.php
DELETED
@@ -1,34 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Test misc utils
|
4 |
-
*
|
5 |
-
* @group utils
|
6 |
-
*/
|
7 |
-
class UtilsTest extends PHPUnit_Framework_TestCase {
|
8 |
-
|
9 |
-
|
10 |
-
public function test_resolve_file_domain(){
|
11 |
-
$domain = LocoAdmin::resolve_file_domain( '/foo.pot' );
|
12 |
-
$this->assertEquals( 'foo', $domain );
|
13 |
-
|
14 |
-
$domain = LocoAdmin::resolve_file_domain( '/foo-en_GB.po' );
|
15 |
-
$this->assertEquals( 'foo', $domain );
|
16 |
-
|
17 |
-
$domain = LocoAdmin::resolve_file_domain( '/foo-en.po' );
|
18 |
-
$this->assertEquals( 'foo', $domain );
|
19 |
-
}
|
20 |
-
|
21 |
-
|
22 |
-
public function test_resolve_file_locale(){
|
23 |
-
$locale = LocoAdmin::resolve_file_locale('/foo-en.po');
|
24 |
-
$this->assertEquals( 'en_GB', $locale->get_code() );
|
25 |
-
|
26 |
-
$locale = LocoAdmin::resolve_file_locale('/foo-ja.po');
|
27 |
-
$this->assertEquals( 'ja', $locale->get_code() );
|
28 |
-
|
29 |
-
$locale = LocoAdmin::resolve_file_locale('/foo-ja_jp.po');
|
30 |
-
$this->assertEquals( 'ja_JP', $locale->get_code() );
|
31 |
-
}
|
32 |
-
|
33 |
-
|
34 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
loco.php
CHANGED
@@ -4,7 +4,7 @@ Plugin Name: Loco Translate
|
|
4 |
Plugin URI: http://wordpress.org/extend/plugins/loco-translate
|
5 |
Description: Translate Wordpress plugins and themes directly in your browser
|
6 |
Author: Tim Whitlock
|
7 |
-
Version: 1.
|
8 |
Author URI: http://localise.biz/help/wordpress/translate-plugin
|
9 |
Text Domain: loco-translate
|
10 |
Domain Path: /languages/
|
4 |
Plugin URI: http://wordpress.org/extend/plugins/loco-translate
|
5 |
Description: Translate Wordpress plugins and themes directly in your browser
|
6 |
Author: Tim Whitlock
|
7 |
+
Version: 1.5
|
8 |
Author URI: http://localise.biz/help/wordpress/translate-plugin
|
9 |
Text Domain: loco-translate
|
10 |
Domain Path: /languages/
|
php/loco-data.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Admin ajax include that returns compiled-in data
|
4 |
+
* Included by loco-ajax.php during Ajax action
|
5 |
+
*/
|
6 |
+
|
7 |
+
DOING_AJAX or die();
|
8 |
+
|
9 |
+
// default is single locale response
|
10 |
+
if( isset($locale) ){
|
11 |
+
loco_require('loco-locales');
|
12 |
+
$data = loco_locale_resolve($locale);
|
13 |
+
return array (
|
14 |
+
'locales' => array (
|
15 |
+
$locale => $data->export(),
|
16 |
+
),
|
17 |
+
);
|
18 |
+
}
|
19 |
+
|
20 |
+
|
21 |
+
throw new Exception( Loco::__('Invalid data posted to server'), 422 );
|
php/loco-posave.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
|
7 |
DOING_AJAX or die();
|
8 |
|
9 |
-
if( empty($path) || empty($po) ||
|
10 |
throw new Exception( Loco::__('Invalid data posted to server'), 422 );
|
11 |
}
|
12 |
|
6 |
|
7 |
DOING_AJAX or die();
|
8 |
|
9 |
+
if( empty($path) || empty($po) || ! isset($name) || empty($type) ){
|
10 |
throw new Exception( Loco::__('Invalid data posted to server'), 422 );
|
11 |
}
|
12 |
|
pub/css/loco-admin.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.wrap a.nav-tab-active{cursor:text}.wrap #loco-poedit .wg-cell,.wrap #loco-poedit .wg-cell div{position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wrap #loco-poedit .wg-cell{left:0;top:0;padding:0;margin:0;overflow:hidden}.wrap #loco-poedit .wg-split{background:#eee}.wrap #loco-poedit .wg-body:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.wrap #loco-poedit .wg-split-x>div>.not-first>*{margin-left:6px}.wrap #loco-poedit .wg-split-y>div>.not-first>*{margin-top:6px}.wrap #loco-poedit .wg-split>div>.has-title .wg-content{margin-top:0}.wrap #loco-poedit .wg-split-x>div>.wg-cell{float:left;clear:none;height:100%}.wrap #loco-poedit .wg-split-x>div{cursor:move;cursor:ew-resize;cursor:col-resize}.wrap #loco-poedit .wg-split>div>.not-first:before{display:block;position:absolute;overflow:hidden;content:" "}.wrap #loco-poedit .wg-split-x>div>.not-first:before{width:6px;height:100%;background:transparent url(../img/wg/splitx.png) center center no-repeat}.wrap #loco-poedit .wg-split-y>div{cursor:move;cursor:ns-resize;cursor:row-resize}.wrap #loco-poedit .wg-split-y>div>.not-first:before{height:6px;width:100%;background:transparent url(../img/wg/splity.png) center center no-repeat}.wrap #loco-poedit .wg-split>div.locked{cursor:default}.wrap #loco-poedit .wg-split-x>div.locked>.not-first>*{margin-left:1px}.wrap #loco-poedit .wg-split-y>div.locked>.not-first>*{margin-top:1px}.wrap #loco-poedit .wg-split>div.locked>.not-first:before{display:none}.wrap #loco-poedit .wg-title{background:#ddd;cursor:default !important;margin:0;padding:4px 6px;font-size:1em;white-space:nowrap}.wrap #loco-poedit .wg-content{background:#fff;cursor:default;padding:4px 6px;overflow-x:hidden;overflow-y:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wrap #loco-poedit .is-table .wg-cols{outline:none}.wrap #loco-poedit .is-table .wg-col{float:left;clear:none}.wrap #loco-poedit .is-table .wg-title{padding:3px 10px;margin:0 !important;font-weight:normal}.wrap #loco-poedit .is-table .wg-thead>div>.not-first:before{background-position:center 1px}.wrap #loco-poedit .is-table .wg-thead{background:#ddd;border-bottom:solid 1px #ccc}.wrap #loco-poedit .is-table .wg-tr:nth-child(even){background-color:#f3f7fd}.wrap #loco-poedit .is-table .wg-tr.selected{background-color:#3875d7;color:#fff}.wrap #loco-poedit .is-table .wg-td{white-space:nowrap;line-height:1.7em;margin-left:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis;-ms-text-overflow:ellipsis}.wrap #loco-poedit .is-table .wg-tbody .not-first .wg-td{margin-left:10px}.wrap #loco-poedit .is-table .wg-cols.filtered .wg-tr{display:none}.wrap #loco-poedit .is-table .wg-cols.filtered .wg-tr.filtered{display:block}.wrap #loco-poedit .is-field>.wg-content{cursor:text;outline:none;white-space:pre-wrap}.wrap #loco-poedit .is-field>.wg-content:focus{-webkit-box-shadow:inset 0 0 10px #3875d7;-moz-box-shadow:inset 0 0 10px #3875d7;box-shadow:inset 0 0 10px #3875d7}.wrap #loco-poedit .is-field.readonly>.wg-content{cursor:default;background:#f8f8f8;text-shadow:0 1px #fff}.wrap #loco-poedit .is-field.readonly>.wg-content:focus{-webkit-box-shadow:inset 0 0 10px #c00;-moz-box-shadow:inset 0 0 10px #c00;box-shadow:inset 0 0 10px #c00}.wrap #loco-poedit .wg-split-x>nav.wg-tabs{white-space:nowrap;text-align:center}.wrap #loco-poedit .wg-split-x>nav.wg-tabs>a{display:inline-block;padding:0.5em 1em;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}.wrap #loco-poedit .wg-split-x>nav.wg-tabs>a:hover{background-color:#fff}.wrap #loco-poedit .wg-split-x>nav.wg-tabs>a.active{background-color:#3875d7;color:#fff}.wrap #loco-poedit .wg-split>div>.has-nav>.wg-body{margin-top:0px}@media all and (max-width: 768px){.wrap #loco-poedit .wg-split-x>div>.not-first>*{margin-left:20px}.wrap #loco-poedit .wg-split-y>div>.not-first>*{margin-top:20px}.wrap #loco-poedit .wg-split-x>div>.not-first:before{width:20px}.wrap #loco-poedit .wg-split-y>div>.not-first:before{height:20px}}.wrap #loco-poedit .is-table .po-fuzzy{color:#b59829;font-weight:bold}.wrap #loco-poedit .is-table .po-empty{color:#1f507a;font-weight:bold}.wrap #loco-poedit .is-table .wg-col.first .wg-td:before{font-family:loco;vertical-align:middle;display:inline-block;content:" ";width:1.2em;line-height:1}.wrap #loco-poedit .is-table .po-incorrect,.wrap #loco-poedit .is-table .po-needs-review{color:#CC0000}.wrap #loco-poedit .is-table .wg-col.first .po-flagged .wg-td:before{content:"\e60e"}.wrap #loco-poedit .is-table .wg-col.first .po-comment .wg-td:before{content:"\e613";color:#999}.wrap #loco-poedit .is-table .wg-col.first .po-unsaved .wg-td:before{content:"\e612";color:#f1d040}.wrap #loco-poedit #po-list .wg-content{padding:0}.wrap #loco-poedit #po-source>.wg-body>.has-title>h2{background:transparent;font-weight:normal;float:left;clear:none;min-width:3.4em}.wrap #loco-poedit #po-source>.wg-body>.has-title>.wg-content{clear:none}.wrap #loco-poedit #po-source p.notes{font-style:italic;color:#999;margin:0 0 0.5em 0;font-size:0.85em;line-height:1.2em}.wrap #loco-poedit #po-source>.wg-body>.has-title>h2{min-width:4.5em}.wrap #loco-poedit .is-table .wg-td{font-size:13px}.wrap .flag{width:16px;height:11px;display:inline-block;background:url(../img/flags.png) no-repeat}.wrap .flag.flag-ad{background-position:-16px 0}.wrap .flag.flag-ae{background-position:-32px 0}.wrap .flag.flag-af{background-position:-48px 0}.wrap .flag.flag-ag{background-position:-64px 0}.wrap .flag.flag-ai{background-position:-80px 0}.wrap .flag.flag-al{background-position:-96px 0}.wrap .flag.flag-am{background-position:-112px 0}.wrap .flag.flag-an{background-position:-128px 0}.wrap .flag.flag-ao{background-position:-144px 0}.wrap .flag.flag-ar{background-position:-160px 0}.wrap .flag.flag-as{background-position:-176px 0}.wrap .flag.flag-at{background-position:-192px 0}.wrap .flag.flag-au{background-position:-208px 0}.wrap .flag.flag-aw{background-position:-224px 0}.wrap .flag.flag-az{background-position:-240px 0}.wrap .flag.flag-ba{background-position:0 -11px}.wrap .flag.flag-bb{background-position:-16px -11px}.wrap .flag.flag-bd{background-position:-32px -11px}.wrap .flag.flag-be{background-position:-48px -11px}.wrap .flag.flag-bf{background-position:-64px -11px}.wrap .flag.flag-bg{background-position:-80px -11px}.wrap .flag.flag-bh{background-position:-96px -11px}.wrap .flag.flag-bi{background-position:-112px -11px}.wrap .flag.flag-bj{background-position:-128px -11px}.wrap .flag.flag-bm{background-position:-144px -11px}.wrap .flag.flag-bn{background-position:-160px -11px}.wrap .flag.flag-bo{background-position:-176px -11px}.wrap .flag.flag-br{background-position:-192px -11px}.wrap .flag.flag-bs{background-position:-208px -11px}.wrap .flag.flag-bt{background-position:-224px -11px}.wrap .flag.flag-bw{background-position:-240px -11px}.wrap .flag.flag-by{background-position:0 -22px}.wrap .flag.flag-bz{background-position:-16px -22px}.wrap .flag.flag-ca{background-position:-32px -22px}.wrap .flag.flag-cd{background-position:-48px -22px}.wrap .flag.flag-cf{background-position:-64px -22px}.wrap .flag.flag-cg{background-position:-80px -22px}.wrap .flag.flag-ch{background-position:-96px -22px}.wrap .flag.flag-ci{background-position:-112px -22px}.wrap .flag.flag-ck{background-position:-128px -22px}.wrap .flag.flag-cl{background-position:-144px -22px}.wrap .flag.flag-cm{background-position:-160px -22px}.wrap .flag.flag-cn{background-position:-176px -22px}.wrap .flag.flag-co{background-position:-192px -22px}.wrap .flag.flag-cr{background-position:-208px -22px}.wrap .flag.flag-cu{background-position:-224px -22px}.wrap .flag.flag-cv{background-position:-240px -22px}.wrap .flag.flag-cw{background-position:0 -33px}.wrap .flag.flag-cy{background-position:-16px -33px}.wrap .flag.flag-cz{background-position:-32px -33px}.wrap .flag.flag-de{background-position:-48px -33px}.wrap .flag.flag-dj{background-position:-64px -33px}.wrap .flag.flag-dk{background-position:-80px -33px}.wrap .flag.flag-dm{background-position:-96px -33px}.wrap .flag.flag-do{background-position:-112px -33px}.wrap .flag.flag-dz{background-position:-128px -33px}.wrap .flag.flag-ec{background-position:-144px -33px}.wrap .flag.flag-ee{background-position:-160px -33px}.wrap .flag.flag-eg{background-position:-176px -33px}.wrap .flag.flag-eh{background-position:-192px -33px}.wrap .flag.flag-er{background-position:-208px -33px}.wrap .flag.flag-es{background-position:-224px -33px}.wrap .flag.flag-et{background-position:-240px -33px}.wrap .flag.flag-fi{background-position:0 -44px}.wrap .flag.flag-fj{background-position:-16px -44px}.wrap .flag.flag-fk{background-position:-32px -44px}.wrap .flag.flag-fm{background-position:-48px -44px}.wrap .flag.flag-fo{background-position:-64px -44px}.wrap .flag.flag-fr{background-position:-80px -44px}.wrap .flag.flag-ga{background-position:-96px -44px}.wrap .flag.flag-gb{background-position:-112px -44px}.wrap .flag.flag-gd{background-position:-128px -44px}.wrap .flag.flag-ge{background-position:-144px -44px}.wrap .flag.flag-gf{background-position:-160px -44px}.wrap .flag.flag-gh{background-position:-176px -44px}.wrap .flag.flag-gi{background-position:-192px -44px}.wrap .flag.flag-gl{background-position:-208px -44px}.wrap .flag.flag-gm{background-position:-224px -44px}.wrap .flag.flag-gn{background-position:-240px -44px}.wrap .flag.flag-gp{background-position:0 -55px}.wrap .flag.flag-gq{background-position:-16px -55px}.wrap .flag.flag-gr{background-position:-32px -55px}.wrap .flag.flag-gt{background-position:-48px -55px}.wrap .flag.flag-gu{background-position:-64px -55px}.wrap .flag.flag-gw{background-position:-80px -55px}.wrap .flag.flag-gy{background-position:-96px -55px}.wrap .flag.flag-hk{background-position:-112px -55px}.wrap .flag.flag-hn{background-position:-128px -55px}.wrap .flag.flag-hr{background-position:-144px -55px}.wrap .flag.flag-ht{background-position:-160px -55px}.wrap .flag.flag-hu{background-position:-176px -55px}.wrap .flag.flag-id{background-position:-192px -55px}.wrap .flag.flag-ie{background-position:-208px -55px}.wrap .flag.flag-il{background-position:-224px -55px}.wrap .flag.flag-in{background-position:-240px -55px}.wrap .flag.flag-iq{background-position:0 -66px}.wrap .flag.flag-ir{background-position:-16px -66px}.wrap .flag.flag-is{background-position:-32px -66px}.wrap .flag.flag-it{background-position:-48px -66px}.wrap .flag.flag-jm{background-position:-64px -66px}.wrap .flag.flag-jo{background-position:-80px -66px}.wrap .flag.flag-jp{background-position:-96px -66px}.wrap .flag.flag-ke{background-position:-112px -66px}.wrap .flag.flag-kg{background-position:-128px -66px}.wrap .flag.flag-kh{background-position:-144px -66px}.wrap .flag.flag-ki{background-position:-160px -66px}.wrap .flag.flag-km{background-position:-176px -66px}.wrap .flag.flag-kn{background-position:-192px -66px}.wrap .flag.flag-kp{background-position:-208px -66px}.wrap .flag.flag-kr{background-position:-224px -66px}.wrap .flag.flag-kw{background-position:-240px -66px}.wrap .flag.flag-ky{background-position:0 -77px}.wrap .flag.flag-kz{background-position:-16px -77px}.wrap .flag.flag-la{background-position:-32px -77px}.wrap .flag.flag-lb{background-position:-48px -77px}.wrap .flag.flag-lc{background-position:-64px -77px}.wrap .flag.flag-li{background-position:-80px -77px}.wrap .flag.flag-lk{background-position:-96px -77px}.wrap .flag.flag-lr{background-position:-112px -77px}.wrap .flag.flag-ls{background-position:-128px -77px}.wrap .flag.flag-lt{background-position:-144px -77px}.wrap .flag.flag-lu{background-position:-160px -77px}.wrap .flag.flag-lv{background-position:-176px -77px}.wrap .flag.flag-ly{background-position:-192px -77px}.wrap .flag.flag-ma{background-position:-208px -77px}.wrap .flag.flag-mc{background-position:-224px -77px}.wrap .flag.flag-md{background-position:-240px -77px}.wrap .flag.flag-me{background-position:0 -88px}.wrap .flag.flag-mg{background-position:-16px -88px}.wrap .flag.flag-mh{background-position:-32px -88px}.wrap .flag.flag-mk{background-position:-48px -88px}.wrap .flag.flag-ml{background-position:-64px -88px}.wrap .flag.flag-mm{background-position:-80px -88px}.wrap .flag.flag-mn{background-position:-96px -88px}.wrap .flag.flag-mo{background-position:-112px -88px}.wrap .flag.flag-mp{background-position:-128px -88px}.wrap .flag.flag-mq{background-position:-144px -88px}.wrap .flag.flag-mr{background-position:-160px -88px}.wrap .flag.flag-ms{background-position:-176px -88px}.wrap .flag.flag-mt{background-position:-192px -88px}.wrap .flag.flag-mu{background-position:-208px -88px}.wrap .flag.flag-mv{background-position:-224px -88px}.wrap .flag.flag-mw{background-position:-240px -88px}.wrap .flag.flag-mx{background-position:0 -99px}.wrap .flag.flag-my{background-position:-16px -99px}.wrap .flag.flag-mz{background-position:-32px -99px}.wrap .flag.flag-na{background-position:-48px -99px}.wrap .flag.flag-nc{background-position:-64px -99px}.wrap .flag.flag-ne{background-position:-80px -99px}.wrap .flag.flag-nf{background-position:-96px -99px}.wrap .flag.flag-ng{background-position:-112px -99px}.wrap .flag.flag-ni{background-position:-128px -99px}.wrap .flag.flag-nl{background-position:-144px -99px}.wrap .flag.flag-no{background-position:-160px -99px}.wrap .flag.flag-np{background-position:-176px -99px}.wrap .flag.flag-nr{background-position:-192px -99px}.wrap .flag.flag-nu{background-position:-208px -99px}.wrap .flag.flag-nz{background-position:-224px -99px}.wrap .flag.flag-om{background-position:-240px -99px}.wrap .flag.flag-pa{background-position:0 -110px}.wrap .flag.flag-pe{background-position:-16px -110px}.wrap .flag.flag-pf{background-position:-32px -110px}.wrap .flag.flag-pg{background-position:-48px -110px}.wrap .flag.flag-ph{background-position:-64px -110px}.wrap .flag.flag-pk{background-position:-80px -110px}.wrap .flag.flag-pl{background-position:-96px -110px}.wrap .flag.flag-pm{background-position:-112px -110px}.wrap .flag.flag-pn{background-position:-128px -110px}.wrap .flag.flag-pr{background-position:-144px -110px}.wrap .flag.flag-ps{background-position:-160px -110px}.wrap .flag.flag-pt{background-position:-176px -110px}.wrap .flag.flag-pw{background-position:-192px -110px}.wrap .flag.flag-py{background-position:-208px -110px}.wrap .flag.flag-qa{background-position:-224px -110px}.wrap .flag.flag-re{background-position:-240px -110px}.wrap .flag.flag-ro{background-position:0 -121px}.wrap .flag.flag-rs{background-position:-16px -121px}.wrap .flag.flag-ru{background-position:-32px -121px}.wrap .flag.flag-rw{background-position:-48px -121px}.wrap .flag.flag-sa{background-position:-64px -121px}.wrap .flag.flag-sb{background-position:-80px -121px}.wrap .flag.flag-sc{background-position:-96px -121px}.wrap .flag.flag-sd{background-position:-112px -121px}.wrap .flag.flag-se{background-position:-128px -121px}.wrap .flag.flag-sg{background-position:-144px -121px}.wrap .flag.flag-sh{background-position:-160px -121px}.wrap .flag.flag-si{background-position:-176px -121px}.wrap .flag.flag-sk{background-position:-192px -121px}.wrap .flag.flag-sl{background-position:-208px -121px}.wrap .flag.flag-sm{background-position:-224px -121px}.wrap .flag.flag-sn{background-position:-240px -121px}.wrap .flag.flag-so{background-position:0 -132px}.wrap .flag.flag-sr{background-position:-16px -132px}.wrap .flag.flag-ss{background-position:-32px -132px}.wrap .flag.flag-st{background-position:-48px -132px}.wrap .flag.flag-sv{background-position:-64px -132px}.wrap .flag.flag-sy{background-position:-80px -132px}.wrap .flag.flag-sz{background-position:-96px -132px}.wrap .flag.flag-tc{background-position:-112px -132px}.wrap .flag.flag-td{background-position:-128px -132px}.wrap .flag.flag-tg{background-position:-144px -132px}.wrap .flag.flag-th{background-position:-160px -132px}.wrap .flag.flag-tj{background-position:-176px -132px}.wrap .flag.flag-tk{background-position:-192px -132px}.wrap .flag.flag-tl{background-position:-208px -132px}.wrap .flag.flag-tm{background-position:-224px -132px}.wrap .flag.flag-tn{background-position:-240px -132px}.wrap .flag.flag-to{background-position:0 -143px}.wrap .flag.flag-tr{background-position:-16px -143px}.wrap .flag.flag-tt{background-position:-32px -143px}.wrap .flag.flag-tv{background-position:-48px -143px}.wrap .flag.flag-tw{background-position:-64px -143px}.wrap .flag.flag-tz{background-position:-80px -143px}.wrap .flag.flag-ua{background-position:-96px -143px}.wrap .flag.flag-ug{background-position:-112px -143px}.wrap .flag.flag-us{background-position:-128px -143px}.wrap .flag.flag-uy{background-position:-144px -143px}.wrap .flag.flag-uz{background-position:-160px -143px}.wrap .flag.flag-va{background-position:-176px -143px}.wrap .flag.flag-vc{background-position:-192px -143px}.wrap .flag.flag-ve{background-position:-208px -143px}.wrap .flag.flag-vg{background-position:-224px -143px}.wrap .flag.flag-vi{background-position:-240px -143px}.wrap .flag.flag-vn{background-position:0 -154px}.wrap .flag.flag-vu{background-position:-16px -154px}.wrap .flag.flag-wf{background-position:-32px -154px}.wrap .flag.flag-ws{background-position:-48px -154px}.wrap .flag.flag-ye{background-position:-64px -154px}.wrap .flag.flag-yt{background-position:-80px -154px}.wrap .flag.flag-za{background-position:-96px -154px}.wrap .flag.flag-zm{background-position:-112px -154px}.wrap .flag.flag-zw{background-position:-128px -154px}.wrap .loco-add>*:before{content:"\e60c"}.wrap .loco-del>*:before{content:"\e60d"}.wrap .loco-save>*:before{content:"\e610"}.wrap .loco-sync>*:before{content:"\e633"}.wrap .loco-help>*:before{content:"\3f"}.wrap .loco-revert>*:before{content:"\e634"}.wrap .loco-fuzzy>*:before{content:"\e607"}.wrap .loco-download>*:before{content:"\e608"}.wrap .loco-ok>*:before{content:"\e618"}.wrap .loco-error>*:before,.wrap .loco-warning>*:before{content:"\e62e"}.wrap .loco-edit-pot>*:before{content:"\e61e"}.wrap .loco-clearable>a:before{content:"\e615"}@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}.wrap div{position:relative}h2 .nav-tab.nav-tab-loco{float:right;border-color:transparent;font-size:16px;color:#2e892e;background:transparent}h2 .nav-tab.nav-tab-loco:hover{color:#3db63d}.widefat thead tr th{width:25%}.wrap.loco-lists>h2:before{display:inline-block;font-family:dashicons;opacity:0.5}.wrap .loco-list{margin:10px 0}.wrap .loco-message p:before,.wrap .loco-list li>a:before,.wrap .loco-list li>span:before{padding-right:0.5em;font-family:loco;color:inherit}.wrap .loco-list li.loco-add a{color:#666666}.wrap .loco-list li.loco-add a:hover{color:#000}.wrap .loco-list li.loco-edit-po .flag{margin-right:6px}.wrap .loco-list li.loco-warning>*:before{color:#cc0000}.wrap .loco-list li.loco-ok>*:before{color:#006600}.wrap .loco-list .loco-details li{margin-bottom:0}.wrap .loco-list .loco-mtime{color:#999}.wrap .loco-list .loco-progress{color:#999}.error a.dismiss,.updated a.dismiss{text-decoration:none;font-size:20px;line-height:1;display:block;position:absolute;right:10px;top:5px}.error a.dismiss:before,.updated a.dismiss:before{display:none}.wrap div.loco-message{margin-top:10px}.wrap div.loco-success{border-color:#00CC00;background-color:#ccffcc}.wrap div.loco-message:hover{border-color:#000}form.loco-switcher{display:inline;display:inline-block;padding:0 5px}form.loco-switcher select{font-weight:normal;height:auto;display:inline}h3.title .loco-meta{font-weight:normal;font-size:14px}.wrap #loco-poedit{border:solid 1px #ccc}.wrap #loco-poedit-inner{min-height:600px;font-size:14px;clear:both}.wrap #loco-poedit-inner h2{color:#000;line-height:1}#loco-nav{font-size:14px;height:50px}#loco-nav form{display:block;float:left;clear:none;padding:0;margin:0}#loco-search,#loco-nav button{display:block;position:relative;float:left;clear:none;box-sizing:border-box;margin:5px 0 0 5px;height:40px;text-align:left}#loco-nav form.loco-right{float:right;margin-right:5px}#loco-nav button span:before{padding-right:0.5em;font-family:loco}.wp-core-ui button.loco-inverted,.wp-core-ui button.loco-inverted:hover{background-image:-webkit-gradient(linear, left top, left bottom, from(#e0e0e0), to(#fefefe));background-image:-webkit-linear-gradient(top, #e0e0e0, #fefefe);background-image:-moz-linear-gradient(top, #e0e0e0, #fefefe);background-image:-o-linear-gradient(top, #e0e0e0, #fefefe);background-image:linear-gradient(to bottom, #e0e0e0, #fefefe)}#loco-filter input[type="text"]{padding-left:10px;margin-left:20px;font-size:14px;line-height:normal}.loco-clearable{display:inline-block;vertical-align:middle;position:relative}.loco-clearable a.clear{top:0;right:0;outline:none;padding:1em 0.5em;position:absolute;font-size:1em;line-height:normal;text-decoration:none}.loco-clearable a.clear:before{font-family:loco;vertical-align:middle;padding:0;color:#999}.loco-clearable a.clear:hover:before{color:#333}.loco-clearable a.clear span{display:none}.loco-clearable ::-ms-clear{display:none}.loco-fscheck .loco-list{margin-bottom:20px}
|
1 |
+
.wrap a.nav-tab-active{cursor:text}.wrap #loco-poedit .wg-cell,.wrap #loco-poedit .wg-cell div{position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wrap #loco-poedit .wg-cell{left:0;top:0;padding:0;margin:0;overflow:hidden}.wrap #loco-poedit .wg-split{background:#eee}.wrap #loco-poedit .wg-body:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.wrap #loco-poedit .wg-split-x>div>.not-first>*{margin-left:6px}.wrap #loco-poedit .wg-split-y>div>.not-first>*{margin-top:6px}.wrap #loco-poedit .wg-split>div>.has-title .wg-content{margin-top:0}.wrap #loco-poedit .wg-split-x>div>.wg-cell{float:left;clear:none;height:100%}.wrap #loco-poedit .wg-split-x>div{cursor:move;cursor:ew-resize;cursor:col-resize}.wrap #loco-poedit .wg-split>div>.not-first:before{display:block;position:absolute;overflow:hidden;content:" "}.wrap #loco-poedit .wg-split-x>div>.not-first:before{width:6px;height:100%;background:transparent url(../img/wg/splitx.png) center center no-repeat}.wrap #loco-poedit .wg-split-y>div{cursor:move;cursor:ns-resize;cursor:row-resize}.wrap #loco-poedit .wg-split-y>div>.not-first:before{height:6px;width:100%;background:transparent url(../img/wg/splity.png) center center no-repeat}.wrap #loco-poedit .wg-split>div.locked{cursor:default}.wrap #loco-poedit .wg-split-x>div.locked>.not-first>*{margin-left:1px}.wrap #loco-poedit .wg-split-y>div.locked>.not-first>*{margin-top:1px}.wrap #loco-poedit .wg-split>div.locked>.not-first:before{display:none}.wrap #loco-poedit .wg-title{background:#ddd;cursor:default !important;margin:0;padding:4px 6px;font-size:1em;white-space:nowrap}.wrap #loco-poedit .wg-content{background:#fff;cursor:default;padding:4px 6px;overflow-x:hidden;overflow-y:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wrap #loco-poedit .is-table .wg-cols{outline:none}.wrap #loco-poedit .is-table .wg-col{float:left;clear:none}.wrap #loco-poedit .is-table .wg-title{padding:3px 10px;margin:0 !important;font-weight:normal}.wrap #loco-poedit .is-table .wg-thead>div>.not-first:before{background-position:center 1px}.wrap #loco-poedit .is-table .wg-thead{background:#ddd;border-bottom:solid 1px #ccc}.wrap #loco-poedit .is-table .wg-tr:nth-child(even){background-color:#f3f7fd}.wrap #loco-poedit .is-table .wg-tr.selected{background-color:#3875d7;color:#fff}.wrap #loco-poedit .is-table .wg-td{white-space:nowrap;line-height:1.7em;margin-left:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis;-ms-text-overflow:ellipsis}.wrap #loco-poedit .is-table .wg-tbody .not-first .wg-td{margin-left:10px}.wrap #loco-poedit .is-table .wg-cols.filtered .wg-tr{display:none}.wrap #loco-poedit .is-table .wg-cols.filtered .wg-tr.filtered{display:block}.wrap #loco-poedit .is-field>.wg-content{cursor:text;outline:none;white-space:pre-wrap}.wrap #loco-poedit .is-field>.wg-content:focus{-webkit-box-shadow:inset 0 0 10px #3875d7;-moz-box-shadow:inset 0 0 10px #3875d7;box-shadow:inset 0 0 10px #3875d7}.wrap #loco-poedit .is-field.readonly>.wg-content{cursor:default;background:#f8f8f8;text-shadow:0 1px #fff}.wrap #loco-poedit .is-field.readonly>.wg-content:focus{-webkit-box-shadow:inset 0 0 10px #c00;-moz-box-shadow:inset 0 0 10px #c00;box-shadow:inset 0 0 10px #c00}.wrap #loco-poedit .wg-split-x>nav.wg-tabs{white-space:nowrap;text-align:center}.wrap #loco-poedit .wg-split-x>nav.wg-tabs>a{display:inline-block;padding:0.5em 1em;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}.wrap #loco-poedit .wg-split-x>nav.wg-tabs>a:hover{background-color:#fff}.wrap #loco-poedit .wg-split-x>nav.wg-tabs>a.active{background-color:#3875d7;color:#fff}.wrap #loco-poedit .wg-split>div>.has-nav>.wg-body{margin-top:0px}@media all and (max-width: 768px){.wrap #loco-poedit .wg-split-x>div>.not-first>*{margin-left:20px}.wrap #loco-poedit .wg-split-y>div>.not-first>*{margin-top:20px}.wrap #loco-poedit .wg-split-x>div>.not-first:before{width:20px}.wrap #loco-poedit .wg-split-y>div>.not-first:before{height:20px}}.wrap #loco-poedit .is-table .po-fuzzy{color:#b59829;font-weight:bold}.wrap #loco-poedit .is-table .po-empty{color:#1f507a;font-weight:bold}.wrap #loco-poedit .is-table .wg-col.first .wg-td:before{font-family:loco;vertical-align:middle;display:inline-block;content:" ";width:1.2em;line-height:1}.wrap #loco-poedit .is-table .po-incorrect,.wrap #loco-poedit .is-table .po-needs-review{color:#CC0000}.wrap #loco-poedit .is-table .wg-col.first .po-flagged .wg-td:before{content:"\e60e"}.wrap #loco-poedit .is-table .wg-col.first .po-comment .wg-td:before{content:"\e613";color:#999}.wrap #loco-poedit .is-table .wg-col.first .po-unsaved .wg-td:before{content:"\e612";color:#f1d040}.wrap #loco-poedit #po-list .wg-content{padding:0}.wrap #loco-poedit #po-source>.wg-body>.has-title>h2{background:transparent;font-weight:normal;float:left;clear:none;min-width:3.4em}.wrap #loco-poedit #po-source>.wg-body>.has-title>.wg-content{clear:none}.wrap #loco-poedit #po-source p.notes{font-style:italic;color:#999;margin:0 0 0.5em 0;font-size:0.85em;line-height:1.2em}.wrap #loco-poedit #po-source>p.notes{margin:0;padding:4px 6px;cursor:default !important}.wrap #loco-poedit #po-source>.wg-body>.has-title>h2{min-width:4.5em}.wrap #loco-poedit .is-table .wg-td{font-size:13px}.wrap .flag{width:16px;height:11px;display:inline-block;background:url(../img/flags.png) no-repeat}.wrap .flag.flag-ad{background-position:-16px 0}.wrap .flag.flag-ae{background-position:-32px 0}.wrap .flag.flag-af{background-position:-48px 0}.wrap .flag.flag-ag{background-position:-64px 0}.wrap .flag.flag-ai{background-position:-80px 0}.wrap .flag.flag-al{background-position:-96px 0}.wrap .flag.flag-am{background-position:-112px 0}.wrap .flag.flag-an{background-position:-128px 0}.wrap .flag.flag-ao{background-position:-144px 0}.wrap .flag.flag-ar{background-position:-160px 0}.wrap .flag.flag-as{background-position:-176px 0}.wrap .flag.flag-at{background-position:-192px 0}.wrap .flag.flag-au{background-position:-208px 0}.wrap .flag.flag-aw{background-position:-224px 0}.wrap .flag.flag-az{background-position:-240px 0}.wrap .flag.flag-ba{background-position:0 -11px}.wrap .flag.flag-bb{background-position:-16px -11px}.wrap .flag.flag-bd{background-position:-32px -11px}.wrap .flag.flag-be{background-position:-48px -11px}.wrap .flag.flag-bf{background-position:-64px -11px}.wrap .flag.flag-bg{background-position:-80px -11px}.wrap .flag.flag-bh{background-position:-96px -11px}.wrap .flag.flag-bi{background-position:-112px -11px}.wrap .flag.flag-bj{background-position:-128px -11px}.wrap .flag.flag-bm{background-position:-144px -11px}.wrap .flag.flag-bn{background-position:-160px -11px}.wrap .flag.flag-bo{background-position:-176px -11px}.wrap .flag.flag-br{background-position:-192px -11px}.wrap .flag.flag-bs{background-position:-208px -11px}.wrap .flag.flag-bt{background-position:-224px -11px}.wrap .flag.flag-bw{background-position:-240px -11px}.wrap .flag.flag-by{background-position:0 -22px}.wrap .flag.flag-bz{background-position:-16px -22px}.wrap .flag.flag-ca{background-position:-32px -22px}.wrap .flag.flag-cd{background-position:-48px -22px}.wrap .flag.flag-cf{background-position:-64px -22px}.wrap .flag.flag-cg{background-position:-80px -22px}.wrap .flag.flag-ch{background-position:-96px -22px}.wrap .flag.flag-ci{background-position:-112px -22px}.wrap .flag.flag-ck{background-position:-128px -22px}.wrap .flag.flag-cl{background-position:-144px -22px}.wrap .flag.flag-cm{background-position:-160px -22px}.wrap .flag.flag-cn{background-position:-176px -22px}.wrap .flag.flag-co{background-position:-192px -22px}.wrap .flag.flag-cr{background-position:-208px -22px}.wrap .flag.flag-cu{background-position:-224px -22px}.wrap .flag.flag-cv{background-position:-240px -22px}.wrap .flag.flag-cw{background-position:0 -33px}.wrap .flag.flag-cy{background-position:-16px -33px}.wrap .flag.flag-cz{background-position:-32px -33px}.wrap .flag.flag-de{background-position:-48px -33px}.wrap .flag.flag-dj{background-position:-64px -33px}.wrap .flag.flag-dk{background-position:-80px -33px}.wrap .flag.flag-dm{background-position:-96px -33px}.wrap .flag.flag-do{background-position:-112px -33px}.wrap .flag.flag-dz{background-position:-128px -33px}.wrap .flag.flag-ec{background-position:-144px -33px}.wrap .flag.flag-ee{background-position:-160px -33px}.wrap .flag.flag-eg{background-position:-176px -33px}.wrap .flag.flag-eh{background-position:-192px -33px}.wrap .flag.flag-er{background-position:-208px -33px}.wrap .flag.flag-es{background-position:-224px -33px}.wrap .flag.flag-et{background-position:-240px -33px}.wrap .flag.flag-fi{background-position:0 -44px}.wrap .flag.flag-fj{background-position:-16px -44px}.wrap .flag.flag-fk{background-position:-32px -44px}.wrap .flag.flag-fm{background-position:-48px -44px}.wrap .flag.flag-fo{background-position:-64px -44px}.wrap .flag.flag-fr{background-position:-80px -44px}.wrap .flag.flag-ga{background-position:-96px -44px}.wrap .flag.flag-gb{background-position:-112px -44px}.wrap .flag.flag-gd{background-position:-128px -44px}.wrap .flag.flag-ge{background-position:-144px -44px}.wrap .flag.flag-gf{background-position:-160px -44px}.wrap .flag.flag-gh{background-position:-176px -44px}.wrap .flag.flag-gi{background-position:-192px -44px}.wrap .flag.flag-gl{background-position:-208px -44px}.wrap .flag.flag-gm{background-position:-224px -44px}.wrap .flag.flag-gn{background-position:-240px -44px}.wrap .flag.flag-gp{background-position:0 -55px}.wrap .flag.flag-gq{background-position:-16px -55px}.wrap .flag.flag-gr{background-position:-32px -55px}.wrap .flag.flag-gt{background-position:-48px -55px}.wrap .flag.flag-gu{background-position:-64px -55px}.wrap .flag.flag-gw{background-position:-80px -55px}.wrap .flag.flag-gy{background-position:-96px -55px}.wrap .flag.flag-hk{background-position:-112px -55px}.wrap .flag.flag-hn{background-position:-128px -55px}.wrap .flag.flag-hr{background-position:-144px -55px}.wrap .flag.flag-ht{background-position:-160px -55px}.wrap .flag.flag-hu{background-position:-176px -55px}.wrap .flag.flag-id{background-position:-192px -55px}.wrap .flag.flag-ie{background-position:-208px -55px}.wrap .flag.flag-il{background-position:-224px -55px}.wrap .flag.flag-in{background-position:-240px -55px}.wrap .flag.flag-iq{background-position:0 -66px}.wrap .flag.flag-ir{background-position:-16px -66px}.wrap .flag.flag-is{background-position:-32px -66px}.wrap .flag.flag-it{background-position:-48px -66px}.wrap .flag.flag-jm{background-position:-64px -66px}.wrap .flag.flag-jo{background-position:-80px -66px}.wrap .flag.flag-jp{background-position:-96px -66px}.wrap .flag.flag-ke{background-position:-112px -66px}.wrap .flag.flag-kg{background-position:-128px -66px}.wrap .flag.flag-kh{background-position:-144px -66px}.wrap .flag.flag-ki{background-position:-160px -66px}.wrap .flag.flag-km{background-position:-176px -66px}.wrap .flag.flag-kn{background-position:-192px -66px}.wrap .flag.flag-kp{background-position:-208px -66px}.wrap .flag.flag-kr{background-position:-224px -66px}.wrap .flag.flag-kw{background-position:-240px -66px}.wrap .flag.flag-ky{background-position:0 -77px}.wrap .flag.flag-kz{background-position:-16px -77px}.wrap .flag.flag-la{background-position:-32px -77px}.wrap .flag.flag-lb{background-position:-48px -77px}.wrap .flag.flag-lc{background-position:-64px -77px}.wrap .flag.flag-li{background-position:-80px -77px}.wrap .flag.flag-lk{background-position:-96px -77px}.wrap .flag.flag-lr{background-position:-112px -77px}.wrap .flag.flag-ls{background-position:-128px -77px}.wrap .flag.flag-lt{background-position:-144px -77px}.wrap .flag.flag-lu{background-position:-160px -77px}.wrap .flag.flag-lv{background-position:-176px -77px}.wrap .flag.flag-ly{background-position:-192px -77px}.wrap .flag.flag-ma{background-position:-208px -77px}.wrap .flag.flag-mc{background-position:-224px -77px}.wrap .flag.flag-md{background-position:-240px -77px}.wrap .flag.flag-me{background-position:0 -88px}.wrap .flag.flag-mg{background-position:-16px -88px}.wrap .flag.flag-mh{background-position:-32px -88px}.wrap .flag.flag-mk{background-position:-48px -88px}.wrap .flag.flag-ml{background-position:-64px -88px}.wrap .flag.flag-mm{background-position:-80px -88px}.wrap .flag.flag-mn{background-position:-96px -88px}.wrap .flag.flag-mo{background-position:-112px -88px}.wrap .flag.flag-mp{background-position:-128px -88px}.wrap .flag.flag-mq{background-position:-144px -88px}.wrap .flag.flag-mr{background-position:-160px -88px}.wrap .flag.flag-ms{background-position:-176px -88px}.wrap .flag.flag-mt{background-position:-192px -88px}.wrap .flag.flag-mu{background-position:-208px -88px}.wrap .flag.flag-mv{background-position:-224px -88px}.wrap .flag.flag-mw{background-position:-240px -88px}.wrap .flag.flag-mx{background-position:0 -99px}.wrap .flag.flag-my{background-position:-16px -99px}.wrap .flag.flag-mz{background-position:-32px -99px}.wrap .flag.flag-na{background-position:-48px -99px}.wrap .flag.flag-nc{background-position:-64px -99px}.wrap .flag.flag-ne{background-position:-80px -99px}.wrap .flag.flag-nf{background-position:-96px -99px}.wrap .flag.flag-ng{background-position:-112px -99px}.wrap .flag.flag-ni{background-position:-128px -99px}.wrap .flag.flag-nl{background-position:-144px -99px}.wrap .flag.flag-no{background-position:-160px -99px}.wrap .flag.flag-np{background-position:-176px -99px}.wrap .flag.flag-nr{background-position:-192px -99px}.wrap .flag.flag-nu{background-position:-208px -99px}.wrap .flag.flag-nz{background-position:-224px -99px}.wrap .flag.flag-om{background-position:-240px -99px}.wrap .flag.flag-pa{background-position:0 -110px}.wrap .flag.flag-pe{background-position:-16px -110px}.wrap .flag.flag-pf{background-position:-32px -110px}.wrap .flag.flag-pg{background-position:-48px -110px}.wrap .flag.flag-ph{background-position:-64px -110px}.wrap .flag.flag-pk{background-position:-80px -110px}.wrap .flag.flag-pl{background-position:-96px -110px}.wrap .flag.flag-pm{background-position:-112px -110px}.wrap .flag.flag-pn{background-position:-128px -110px}.wrap .flag.flag-pr{background-position:-144px -110px}.wrap .flag.flag-ps{background-position:-160px -110px}.wrap .flag.flag-pt{background-position:-176px -110px}.wrap .flag.flag-pw{background-position:-192px -110px}.wrap .flag.flag-py{background-position:-208px -110px}.wrap .flag.flag-qa{background-position:-224px -110px}.wrap .flag.flag-re{background-position:-240px -110px}.wrap .flag.flag-ro{background-position:0 -121px}.wrap .flag.flag-rs{background-position:-16px -121px}.wrap .flag.flag-ru{background-position:-32px -121px}.wrap .flag.flag-rw{background-position:-48px -121px}.wrap .flag.flag-sa{background-position:-64px -121px}.wrap .flag.flag-sb{background-position:-80px -121px}.wrap .flag.flag-sc{background-position:-96px -121px}.wrap .flag.flag-sd{background-position:-112px -121px}.wrap .flag.flag-se{background-position:-128px -121px}.wrap .flag.flag-sg{background-position:-144px -121px}.wrap .flag.flag-sh{background-position:-160px -121px}.wrap .flag.flag-si{background-position:-176px -121px}.wrap .flag.flag-sk{background-position:-192px -121px}.wrap .flag.flag-sl{background-position:-208px -121px}.wrap .flag.flag-sm{background-position:-224px -121px}.wrap .flag.flag-sn{background-position:-240px -121px}.wrap .flag.flag-so{background-position:0 -132px}.wrap .flag.flag-sr{background-position:-16px -132px}.wrap .flag.flag-ss{background-position:-32px -132px}.wrap .flag.flag-st{background-position:-48px -132px}.wrap .flag.flag-sv{background-position:-64px -132px}.wrap .flag.flag-sy{background-position:-80px -132px}.wrap .flag.flag-sz{background-position:-96px -132px}.wrap .flag.flag-tc{background-position:-112px -132px}.wrap .flag.flag-td{background-position:-128px -132px}.wrap .flag.flag-tg{background-position:-144px -132px}.wrap .flag.flag-th{background-position:-160px -132px}.wrap .flag.flag-tj{background-position:-176px -132px}.wrap .flag.flag-tk{background-position:-192px -132px}.wrap .flag.flag-tl{background-position:-208px -132px}.wrap .flag.flag-tm{background-position:-224px -132px}.wrap .flag.flag-tn{background-position:-240px -132px}.wrap .flag.flag-to{background-position:0 -143px}.wrap .flag.flag-tr{background-position:-16px -143px}.wrap .flag.flag-tt{background-position:-32px -143px}.wrap .flag.flag-tv{background-position:-48px -143px}.wrap .flag.flag-tw{background-position:-64px -143px}.wrap .flag.flag-tz{background-position:-80px -143px}.wrap .flag.flag-ua{background-position:-96px -143px}.wrap .flag.flag-ug{background-position:-112px -143px}.wrap .flag.flag-us{background-position:-128px -143px}.wrap .flag.flag-uy{background-position:-144px -143px}.wrap .flag.flag-uz{background-position:-160px -143px}.wrap .flag.flag-va{background-position:-176px -143px}.wrap .flag.flag-vc{background-position:-192px -143px}.wrap .flag.flag-ve{background-position:-208px -143px}.wrap .flag.flag-vg{background-position:-224px -143px}.wrap .flag.flag-vi{background-position:-240px -143px}.wrap .flag.flag-vn{background-position:0 -154px}.wrap .flag.flag-vu{background-position:-16px -154px}.wrap .flag.flag-wf{background-position:-32px -154px}.wrap .flag.flag-ws{background-position:-48px -154px}.wrap .flag.flag-ye{background-position:-64px -154px}.wrap .flag.flag-yt{background-position:-80px -154px}.wrap .flag.flag-za{background-position:-96px -154px}.wrap .flag.flag-zm{background-position:-112px -154px}.wrap .flag.flag-zw{background-position:-128px -154px}.wrap .loco-add>*:before{content:"\e60c"}.wrap .loco-del>*:before{content:"\e60d"}.wrap .loco-save>*:before{content:"\e610"}.wrap .loco-sync>*:before{content:"\e633"}.wrap .loco-help>*:before{content:"\3f"}.wrap .loco-revert>*:before{content:"\e634"}.wrap .loco-fuzzy>*:before{content:"\e607"}.wrap .loco-download>*:before{content:"\e608"}.wrap .loco-ok>*:before{content:"\e618"}.wrap .loco-error>*:before,.wrap .loco-warning>*:before{content:"\e62e"}.wrap .loco-edit-pot>*:before{content:"\e61e"}.wrap .loco-clearable>a:before{content:"\e615"}@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}.wrap div{position:relative}h2 .nav-tab.nav-tab-loco{float:right;border-color:transparent;font-size:16px;color:#2e892e;background:transparent}h2 .nav-tab.nav-tab-loco:hover{color:#3db63d}.widefat thead tr th{width:25%}.wrap.loco-lists>h2:before{display:inline-block;font-family:dashicons;opacity:0.5}.wrap .loco-list{margin:10px 0}.wrap .loco-message p:before,.wrap .loco-list li>a:before,.wrap .loco-list li>span:before{padding-right:0.5em;font-family:loco;color:inherit}.wrap .loco-list li.loco-add a{color:#666666}.wrap .loco-list li.loco-add a:hover{color:#000}.wrap .loco-list li.loco-edit-po .flag{margin-right:6px}.wrap .loco-list li.loco-warning>*:before{color:#cc0000}.wrap .loco-list li.loco-ok>*:before{color:#006600}.wrap .loco-list .loco-details li{margin-bottom:0}.wrap .loco-list .loco-mtime{color:#999}.wrap .loco-list .loco-progress{color:#999}.error a.dismiss,.updated a.dismiss{text-decoration:none;font-size:20px;line-height:1;display:block;position:absolute;right:10px;top:5px}.error a.dismiss:before,.updated a.dismiss:before{display:none}.wrap div.loco-message{margin-top:10px}.wrap div.loco-success{border-color:#00CC00;background-color:#ccffcc}.wrap div.loco-warning{border-color:#FFA500}.wrap div.loco-message:hover{border-color:#000}form.loco-switcher{display:inline;display:inline-block;padding:0 5px}form.loco-switcher select{font-weight:normal;height:auto;display:inline}h3.title .loco-meta{font-weight:normal;font-size:14px}.wrap #loco-poedit{border:solid 1px #ccc}.wrap #loco-poedit-inner{min-height:600px;font-size:14px;clear:both}.wrap #loco-poedit-inner h2{color:#000;line-height:1}#loco-nav{font-size:14px;height:50px}#loco-nav form{display:block;float:left;clear:none;padding:0;margin:0}#loco-search,#loco-nav button{display:block;position:relative;float:left;clear:none;box-sizing:border-box;margin:5px 0 0 5px;height:40px;text-align:left}#loco-nav form.loco-right{float:right;margin-right:5px}#loco-nav button span:before{padding-right:0.5em;font-family:loco}.wp-core-ui button.loco-inverted,.wp-core-ui button.loco-inverted:hover{background-image:-webkit-gradient(linear, left top, left bottom, from(#e0e0e0), to(#fefefe));background-image:-webkit-linear-gradient(top, #e0e0e0, #fefefe);background-image:-moz-linear-gradient(top, #e0e0e0, #fefefe);background-image:-o-linear-gradient(top, #e0e0e0, #fefefe);background-image:linear-gradient(to bottom, #e0e0e0, #fefefe)}#loco-filter input[type="text"]{padding-left:10px;margin-left:20px;font-size:14px;line-height:normal}.loco-clearable{display:inline-block;vertical-align:middle;position:relative}.loco-clearable a.clear{top:0;right:0;outline:none;padding:1em 0.5em;position:absolute;font-size:1em;line-height:normal;text-decoration:none}.loco-clearable a.clear:before{font-family:loco;vertical-align:middle;padding:0;color:#999}.loco-clearable a.clear:hover:before{color:#333}.loco-clearable a.clear span{display:none}.loco-clearable ::-ms-clear{display:none}.loco-fscheck .loco-list{margin-bottom:20px}
|
pub/font/loco.eot
CHANGED
Binary file
|
pub/font/loco.svg
CHANGED
@@ -45,7 +45,7 @@
|
|
45 |
<glyph unicode="" d="M207.429 73.143l52 52-134.286 134.286-52-52v-61.143h73.143v-73.143h61.143zM506.286 603.428q0 12.571-12.571 12.571-5.714 0-9.714-4l-309.714-309.714q-4-4-4-9.714 0-12.571 12.571-12.571 5.714 0 9.714 4l309.714 309.714q4 4 4 9.714zM475.429 713.143l237.714-237.714-475.429-475.429h-237.714v237.714zM865.714 658.286q0-30.286-21.143-51.429l-94.857-94.857-237.714 237.714 94.857 94.286q20.571 21.714 51.429 21.714 30.286 0 52-21.714l134.286-133.714q21.143-22.286 21.143-52z" horiz-adv-x="878" />
|
46 |
<glyph unicode="" d="M338.857 438.857q-92.571-2.857-151.429-73.143h-76.571q-46.857 0-78.857 23.143t-32 67.714q0 201.714 70.857 201.714 3.429 0 24.857-12t55.714-24.286 68-12.286q38.286 0 76 13.143-2.857-21.143-2.857-37.714 0-79.429 46.286-146.286zM950.857 74.857q0-68.571-41.714-108.286t-110.857-39.714h-499.429q-69.143 0-110.857 39.714t-41.714 108.286q0 30.286 2 59.143t8 62.286 15.143 62 24.571 55.714 35.429 46.286 48.857 30.571 63.714 11.429q5.714 0 24.571-12.286t41.714-27.429 61.143-27.429 77.143-12.286 77.143 12.286 61.143 27.429 41.714 27.429 24.571 12.286q34.857 0 63.714-11.429t48.857-30.571 35.429-46.286 24.571-55.714 15.143-62 8-62.286 2-59.143zM365.714 804.571q0-60.571-42.857-103.429t-103.429-42.857-103.429 42.857-42.857 103.429 42.857 103.429 103.429 42.857 103.429-42.857 42.857-103.429zM768 585.143q0-90.857-64.286-155.143t-155.143-64.286-155.143 64.286-64.286 155.143 64.286 155.143 155.143 64.286 155.143-64.286 64.286-155.143zM1097.143 456.571q0-44.571-32-67.714t-78.857-23.143h-76.571q-58.857 70.286-151.429 73.143 46.286 66.857 46.286 146.286 0 16.571-2.857 37.714 37.714-13.143 76-13.143 33.714 0 68 12.286t55.714 24.286 24.857 12q70.857 0 70.857-201.714zM1024 804.571q0-60.571-42.857-103.429t-103.429-42.857-103.429 42.857-42.857 103.429 42.857 103.429 103.429 42.857 103.429-42.857 42.857-103.429z" horiz-adv-x="1097" />
|
47 |
<glyph unicode="" d="M804.571 148q0-68.571-41.714-108.286t-110.857-39.714h-499.429q-69.143 0-110.857 39.714t-41.714 108.286q0 30.286 2 59.143t8 62.286 15.143 62 24.571 55.714 35.429 46.286 48.857 30.571 63.714 11.429q5.143 0 24-12.286t42.571-27.429 61.714-27.429 76.286-12.286 76.286 12.286 61.714 27.429 42.571 27.429 24 12.286q34.857 0 63.714-11.429t48.857-30.571 35.429-46.286 24.571-55.714 15.143-62 8-62.286 2-59.143zM621.714 658.286q0-90.857-64.286-155.143t-155.143-64.286-155.143 64.286-64.286 155.143 64.286 155.143 155.143 64.286 155.143-64.286 64.286-155.143z" horiz-adv-x="805" />
|
48 |
-
<glyph unicode="" d="
|
49 |
<glyph unicode="" d="M256 694.857q0 30.286-21.429 51.714t-51.714 21.429-51.714-21.429-21.429-51.714 21.429-51.714 51.714-21.429 51.714 21.429 21.429 51.714zM865.714 365.714q0-30.286-21.143-51.429l-280.571-281.143q-22.286-21.143-52-21.143-30.286 0-51.429 21.143l-408.571 409.143q-21.714 21.143-36.857 57.714t-15.143 66.857v237.714q0 29.714 21.714 51.429t51.429 21.714h237.714q30.286 0 66.857-15.143t58.286-36.857l408.571-408q21.143-22.286 21.143-52z" horiz-adv-x="878" />
|
50 |
<glyph unicode="" d="M256 694.857q0 30.286-21.429 51.714t-51.714 21.429-51.714-21.429-21.429-51.714 21.429-51.714 51.714-21.429 51.714 21.429 21.429 51.714zM865.714 365.714q0-30.286-21.143-51.429l-280.571-281.143q-22.286-21.143-52-21.143-30.286 0-51.429 21.143l-408.571 409.143q-21.714 21.143-36.857 57.714t-15.143 66.857v237.714q0 29.714 21.714 51.429t51.429 21.714h237.714q30.286 0 66.857-15.143t58.286-36.857l408.571-408q21.143-22.286 21.143-52zM1085.143 365.714q0-30.286-21.143-51.429l-280.571-281.143q-22.286-21.143-52-21.143-20.571 0-33.714 8t-30.286 25.714l268.571 268.571q21.143 21.143 21.143 51.429 0 29.714-21.143 52l-408.571 408q-21.714 21.714-58.286 36.857t-66.857 15.143h128q30.286 0 66.857-15.143t58.286-36.857l408.571-408q21.143-22.286 21.143-52z" horiz-adv-x="1097" />
|
51 |
<glyph unicode="" d="M292.571 365.714v-219.429h-146.286v219.429h146.286zM512 658.286v-512h-146.286v512h146.286zM731.429 512v-365.714h-146.286v365.714h146.286zM950.857 731.428v-585.143h-146.286v585.143h146.286zM1024 91.428v694.857q0 7.429-5.429 12.857t-12.857 5.429h-914.286q-7.429 0-12.857-5.429t-5.429-12.857v-694.857q0-7.429 5.429-12.857t12.857-5.429h914.286q7.429 0 12.857 5.429t5.429 12.857zM1097.143 786.286v-694.857q0-37.714-26.857-64.571t-64.571-26.857h-914.286q-37.714 0-64.571 26.857t-26.857 64.571v694.857q0 37.714 26.857 64.571t64.571 26.857h914.286q37.714 0 64.571-26.857t26.857-64.571z" horiz-adv-x="1097" />
|
@@ -65,5 +65,8 @@
|
|
65 |
<glyph unicode="" d="M877.714 438.857q0-143.429-83.714-258t-216.286-158.571q-15.429-2.857-22.571 4t-7.143 17.143v120.571q0 55.429-29.714 81.143 32.571 3.429 58.571 10.286t53.714 22.286 46.286 38 30.286 60 11.714 86q0 69.143-45.143 117.714 21.143 52-4.571 116.571-16 5.143-46.286-6.286t-52.571-25.143l-21.714-13.714q-53.143 14.857-109.714 14.857t-109.714-14.857q-9.143 6.286-24.286 15.429t-47.714 22-49.143 7.714q-25.143-64.571-4-116.571-45.143-48.571-45.143-117.714 0-48.571 11.714-85.714t30-60 46-38.286 53.714-22.286 58.571-10.286q-22.857-20.571-28-58.857-12-5.714-25.714-8.571t-32.571-2.857-37.429 12.286-31.714 35.714q-10.857 18.286-27.714 29.714t-28.286 13.714l-11.429 1.714q-12 0-16.571-2.571t-2.857-6.571 5.143-8 7.429-6.857l4-2.857q12.571-5.714 24.857-21.714t18-29.143l5.714-13.143q7.429-21.714 25.143-35.143t38.286-17.143 39.714-4 31.714 2l13.143 2.286q0-21.714 0.286-50.857t0.286-30.857q0-10.286-7.429-17.143t-22.857-4q-132.571 44-216.286 158.571t-83.714 258q0 119.429 58.857 220.286t159.714 159.714 220.286 58.857 220.286-58.857 159.714-159.714 58.857-220.286z" horiz-adv-x="878" />
|
66 |
<glyph unicode="" d="M863.429 347.428q0-2.857-0.571-4-36.571-153.143-153.143-248.286t-273.143-95.143q-83.429 0-161.429 31.429t-139.143 89.714l-73.714-73.714q-10.857-10.857-25.714-10.857t-25.714 10.857-10.857 25.714v256q0 14.857 10.857 25.714t25.714 10.857h256q14.857 0 25.714-10.857t10.857-25.714-10.857-25.714l-78.286-78.286q40.571-37.714 92-58.286t106.857-20.571q76.571 0 142.857 37.143t106.286 102.286q6.286 9.714 30.286 66.857 4.571 13.143 17.143 13.143h109.714q7.429 0 12.857-5.429t5.429-12.857zM877.714 804.571v-256q0-14.857-10.857-25.714t-25.714-10.857h-256q-14.857 0-25.714 10.857t-10.857 25.714 10.857 25.714l78.857 78.857q-84.571 78.286-199.429 78.286-76.571 0-142.857-37.143t-106.286-102.286q-6.286-9.714-30.286-66.857-4.571-13.143-17.143-13.143h-113.714q-7.429 0-12.857 5.429t-5.429 12.857v4q37.143 153.143 154.286 248.286t274.286 95.143q83.429 0 162.286-31.714t140-89.429l74.286 73.714q10.857 10.857 25.714 10.857t25.714-10.857 10.857-25.714z" horiz-adv-x="878" />
|
67 |
<glyph unicode="" d="M877.714 804.571v-256q0-14.857-10.857-25.714t-25.714-10.857h-256q-24 0-33.714 22.857-9.714 22.286 8 39.429l78.857 78.857q-84.571 78.286-199.429 78.286-59.429 0-113.429-23.143t-93.429-62.571-62.571-93.429-23.143-113.429 23.143-113.429 62.571-93.429 93.429-62.571 113.429-23.143q68 0 128.571 29.714t102.286 84q4 5.714 13.143 6.857 8 0 14.286-5.143l78.286-78.857q5.143-4.571 5.429-11.714t-4.286-12.857q-62.286-75.429-150.857-116.857t-186.857-41.429q-89.143 0-170.286 34.857t-140 93.714-93.714 140-34.857 170.286 34.857 170.286 93.714 140 140 93.714 170.286 34.857q84 0 162.571-31.714t139.714-89.429l74.286 73.714q16.571 17.714 40 8 22.286-9.714 22.286-33.714z" horiz-adv-x="878" />
|
|
|
|
|
|
|
68 |
<glyph unicode="🐦" d="M925.714 717.714q-38.286-56-92.571-95.429 0.571-8 0.571-24 0-74.286-21.714-148.286t-66-142-105.429-120.286-147.429-83.429-184.571-31.143q-154.857 0-283.429 82.857 20-2.286 44.571-2.286 128.571 0 229.143 78.857-60 1.143-107.429 36.857t-65.143 91.143q18.857-2.857 34.857-2.857 24.571 0 48.571 6.286-64 13.143-106 63.714t-42 117.429v2.286q38.857-21.714 83.429-23.429-37.714 25.143-60 65.714t-22.286 88q0 50.286 25.143 93.143 69.143-85.143 168.286-136.286t212.286-56.857q-4.571 21.714-4.571 42.286 0 76.571 54 130.571t130.571 54q80 0 134.857-58.286 62.286 12 117.143 44.571-21.143-65.714-81.143-101.714 53.143 5.714 106.286 28.571z" horiz-adv-x="951" />
|
69 |
</font></defs></svg>
|
45 |
<glyph unicode="" d="M207.429 73.143l52 52-134.286 134.286-52-52v-61.143h73.143v-73.143h61.143zM506.286 603.428q0 12.571-12.571 12.571-5.714 0-9.714-4l-309.714-309.714q-4-4-4-9.714 0-12.571 12.571-12.571 5.714 0 9.714 4l309.714 309.714q4 4 4 9.714zM475.429 713.143l237.714-237.714-475.429-475.429h-237.714v237.714zM865.714 658.286q0-30.286-21.143-51.429l-94.857-94.857-237.714 237.714 94.857 94.286q20.571 21.714 51.429 21.714 30.286 0 52-21.714l134.286-133.714q21.143-22.286 21.143-52z" horiz-adv-x="878" />
|
46 |
<glyph unicode="" d="M338.857 438.857q-92.571-2.857-151.429-73.143h-76.571q-46.857 0-78.857 23.143t-32 67.714q0 201.714 70.857 201.714 3.429 0 24.857-12t55.714-24.286 68-12.286q38.286 0 76 13.143-2.857-21.143-2.857-37.714 0-79.429 46.286-146.286zM950.857 74.857q0-68.571-41.714-108.286t-110.857-39.714h-499.429q-69.143 0-110.857 39.714t-41.714 108.286q0 30.286 2 59.143t8 62.286 15.143 62 24.571 55.714 35.429 46.286 48.857 30.571 63.714 11.429q5.714 0 24.571-12.286t41.714-27.429 61.143-27.429 77.143-12.286 77.143 12.286 61.143 27.429 41.714 27.429 24.571 12.286q34.857 0 63.714-11.429t48.857-30.571 35.429-46.286 24.571-55.714 15.143-62 8-62.286 2-59.143zM365.714 804.571q0-60.571-42.857-103.429t-103.429-42.857-103.429 42.857-42.857 103.429 42.857 103.429 103.429 42.857 103.429-42.857 42.857-103.429zM768 585.143q0-90.857-64.286-155.143t-155.143-64.286-155.143 64.286-64.286 155.143 64.286 155.143 155.143 64.286 155.143-64.286 64.286-155.143zM1097.143 456.571q0-44.571-32-67.714t-78.857-23.143h-76.571q-58.857 70.286-151.429 73.143 46.286 66.857 46.286 146.286 0 16.571-2.857 37.714 37.714-13.143 76-13.143 33.714 0 68 12.286t55.714 24.286 24.857 12q70.857 0 70.857-201.714zM1024 804.571q0-60.571-42.857-103.429t-103.429-42.857-103.429 42.857-42.857 103.429 42.857 103.429 103.429 42.857 103.429-42.857 42.857-103.429z" horiz-adv-x="1097" />
|
47 |
<glyph unicode="" d="M804.571 148q0-68.571-41.714-108.286t-110.857-39.714h-499.429q-69.143 0-110.857 39.714t-41.714 108.286q0 30.286 2 59.143t8 62.286 15.143 62 24.571 55.714 35.429 46.286 48.857 30.571 63.714 11.429q5.143 0 24-12.286t42.571-27.429 61.714-27.429 76.286-12.286 76.286 12.286 61.714 27.429 42.571 27.429 24 12.286q34.857 0 63.714-11.429t48.857-30.571 35.429-46.286 24.571-55.714 15.143-62 8-62.286 2-59.143zM621.714 658.286q0-90.857-64.286-155.143t-155.143-64.286-155.143 64.286-64.286 155.143 64.286 155.143 155.143 64.286 155.143-64.286 64.286-155.143z" horiz-adv-x="805" />
|
48 |
+
<glyph unicode="" d="M192 896v-768h768v768h-768zM896 192h-640v640h640v-640zM128 64v640l-64 64v-768h768l-64 64zM429.254 274.746l192 192 146.746-146.746v384h-384l146.746-146.746-192-192z" />
|
49 |
<glyph unicode="" d="M256 694.857q0 30.286-21.429 51.714t-51.714 21.429-51.714-21.429-21.429-51.714 21.429-51.714 51.714-21.429 51.714 21.429 21.429 51.714zM865.714 365.714q0-30.286-21.143-51.429l-280.571-281.143q-22.286-21.143-52-21.143-30.286 0-51.429 21.143l-408.571 409.143q-21.714 21.143-36.857 57.714t-15.143 66.857v237.714q0 29.714 21.714 51.429t51.429 21.714h237.714q30.286 0 66.857-15.143t58.286-36.857l408.571-408q21.143-22.286 21.143-52z" horiz-adv-x="878" />
|
50 |
<glyph unicode="" d="M256 694.857q0 30.286-21.429 51.714t-51.714 21.429-51.714-21.429-21.429-51.714 21.429-51.714 51.714-21.429 51.714 21.429 21.429 51.714zM865.714 365.714q0-30.286-21.143-51.429l-280.571-281.143q-22.286-21.143-52-21.143-30.286 0-51.429 21.143l-408.571 409.143q-21.714 21.143-36.857 57.714t-15.143 66.857v237.714q0 29.714 21.714 51.429t51.429 21.714h237.714q30.286 0 66.857-15.143t58.286-36.857l408.571-408q21.143-22.286 21.143-52zM1085.143 365.714q0-30.286-21.143-51.429l-280.571-281.143q-22.286-21.143-52-21.143-20.571 0-33.714 8t-30.286 25.714l268.571 268.571q21.143 21.143 21.143 51.429 0 29.714-21.143 52l-408.571 408q-21.714 21.714-58.286 36.857t-66.857 15.143h128q30.286 0 66.857-15.143t58.286-36.857l408.571-408q21.143-22.286 21.143-52z" horiz-adv-x="1097" />
|
51 |
<glyph unicode="" d="M292.571 365.714v-219.429h-146.286v219.429h146.286zM512 658.286v-512h-146.286v512h146.286zM731.429 512v-365.714h-146.286v365.714h146.286zM950.857 731.428v-585.143h-146.286v585.143h146.286zM1024 91.428v694.857q0 7.429-5.429 12.857t-12.857 5.429h-914.286q-7.429 0-12.857-5.429t-5.429-12.857v-694.857q0-7.429 5.429-12.857t12.857-5.429h914.286q7.429 0 12.857 5.429t5.429 12.857zM1097.143 786.286v-694.857q0-37.714-26.857-64.571t-64.571-26.857h-914.286q-37.714 0-64.571 26.857t-26.857 64.571v694.857q0 37.714 26.857 64.571t64.571 26.857h914.286q37.714 0 64.571-26.857t26.857-64.571z" horiz-adv-x="1097" />
|
65 |
<glyph unicode="" d="M877.714 438.857q0-143.429-83.714-258t-216.286-158.571q-15.429-2.857-22.571 4t-7.143 17.143v120.571q0 55.429-29.714 81.143 32.571 3.429 58.571 10.286t53.714 22.286 46.286 38 30.286 60 11.714 86q0 69.143-45.143 117.714 21.143 52-4.571 116.571-16 5.143-46.286-6.286t-52.571-25.143l-21.714-13.714q-53.143 14.857-109.714 14.857t-109.714-14.857q-9.143 6.286-24.286 15.429t-47.714 22-49.143 7.714q-25.143-64.571-4-116.571-45.143-48.571-45.143-117.714 0-48.571 11.714-85.714t30-60 46-38.286 53.714-22.286 58.571-10.286q-22.857-20.571-28-58.857-12-5.714-25.714-8.571t-32.571-2.857-37.429 12.286-31.714 35.714q-10.857 18.286-27.714 29.714t-28.286 13.714l-11.429 1.714q-12 0-16.571-2.571t-2.857-6.571 5.143-8 7.429-6.857l4-2.857q12.571-5.714 24.857-21.714t18-29.143l5.714-13.143q7.429-21.714 25.143-35.143t38.286-17.143 39.714-4 31.714 2l13.143 2.286q0-21.714 0.286-50.857t0.286-30.857q0-10.286-7.429-17.143t-22.857-4q-132.571 44-216.286 158.571t-83.714 258q0 119.429 58.857 220.286t159.714 159.714 220.286 58.857 220.286-58.857 159.714-159.714 58.857-220.286z" horiz-adv-x="878" />
|
66 |
<glyph unicode="" d="M863.429 347.428q0-2.857-0.571-4-36.571-153.143-153.143-248.286t-273.143-95.143q-83.429 0-161.429 31.429t-139.143 89.714l-73.714-73.714q-10.857-10.857-25.714-10.857t-25.714 10.857-10.857 25.714v256q0 14.857 10.857 25.714t25.714 10.857h256q14.857 0 25.714-10.857t10.857-25.714-10.857-25.714l-78.286-78.286q40.571-37.714 92-58.286t106.857-20.571q76.571 0 142.857 37.143t106.286 102.286q6.286 9.714 30.286 66.857 4.571 13.143 17.143 13.143h109.714q7.429 0 12.857-5.429t5.429-12.857zM877.714 804.571v-256q0-14.857-10.857-25.714t-25.714-10.857h-256q-14.857 0-25.714 10.857t-10.857 25.714 10.857 25.714l78.857 78.857q-84.571 78.286-199.429 78.286-76.571 0-142.857-37.143t-106.286-102.286q-6.286-9.714-30.286-66.857-4.571-13.143-17.143-13.143h-113.714q-7.429 0-12.857 5.429t-5.429 12.857v4q37.143 153.143 154.286 248.286t274.286 95.143q83.429 0 162.286-31.714t140-89.429l74.286 73.714q10.857 10.857 25.714 10.857t25.714-10.857 10.857-25.714z" horiz-adv-x="878" />
|
67 |
<glyph unicode="" d="M877.714 804.571v-256q0-14.857-10.857-25.714t-25.714-10.857h-256q-24 0-33.714 22.857-9.714 22.286 8 39.429l78.857 78.857q-84.571 78.286-199.429 78.286-59.429 0-113.429-23.143t-93.429-62.571-62.571-93.429-23.143-113.429 23.143-113.429 62.571-93.429 93.429-62.571 113.429-23.143q68 0 128.571 29.714t102.286 84q4 5.714 13.143 6.857 8 0 14.286-5.143l78.286-78.857q5.143-4.571 5.429-11.714t-4.286-12.857q-62.286-75.429-150.857-116.857t-186.857-41.429q-89.143 0-170.286 34.857t-140 93.714-93.714 140-34.857 170.286 34.857 170.286 93.714 140 140 93.714 170.286 34.857q84 0 162.571-31.714t139.714-89.429l74.286 73.714q16.571 17.714 40 8 22.286-9.714 22.286-33.714z" horiz-adv-x="878" />
|
68 |
+
<glyph unicode="" d="M733.714 531.428q0 16-10.286 26.286l-52 51.429q-10.857 10.857-25.714 10.857t-25.714-10.857l-233.143-232.571-129.143 129.143q-10.857 10.857-25.714 10.857t-25.714-10.857l-52-51.429q-10.286-10.286-10.286-26.286 0-15.429 10.286-25.714l206.857-206.857q10.857-10.857 25.714-10.857 15.429 0 26.286 10.857l310.286 310.286q10.286 10.286 10.286 25.714zM877.714 438.857q0-119.429-58.857-220.286t-159.714-159.714-220.286-58.857-220.286 58.857-159.714 159.714-58.857 220.286 58.857 220.286 159.714 159.714 220.286 58.857 220.286-58.857 159.714-159.714 58.857-220.286z" horiz-adv-x="878" />
|
69 |
+
<glyph unicode="" d="M512 146.286l192 219.429h-438.857l-192-219.429h438.857zM1090.857 761.714q8.571-19.429 5.429-40.857t-17.429-37.429l-512-585.143q-21.714-25.143-54.857-25.143h-438.857q-21.714 0-39.714 11.714t-27.143 31.143q-8.571 19.429-5.429 40.857t17.429 37.429l512 585.143q21.714 25.143 54.857 25.143h438.857q21.714 0 39.714-11.714t27.143-31.143z" horiz-adv-x="1097" />
|
70 |
+
<glyph unicode="" d="M0 64v616q1.714 5.143 2.286 5.714 2.857 3.429 11.429 6.286 60.571 20 85.143 28.571v219.429l318.857-113.143q1.143 0 91.714 31.429t180.571 62 92.286 30.571q11.429 0 11.429-12v-238.857l84-26.857v-616.571l-442.286 140.571q-8-3.429-214.286-72.857t-210.286-69.429q-7.429 0-10.286 7.429 0 0.571-0.571 1.714zM22.286 81.714l396.571 132.571v589.714l-396.571-133.143v-589.143zM84 240.571q3.429 2.286 46.857 52.571 12 13.714 48.857 65.714t44.857 67.429q9.714 17.143 29.143 56.286t20.571 44.286q-4.571 0.571-62.857-18.857-4.571-1.143-15.714-4.286t-19.714-5.429-9.714-2.857q-1.143-1.143-1.143-6t-0.571-5.429q-2.857-5.714-17.714-8.571-13.143-4-26.857 0-10.286 2.286-16 12-2.286 3.429-2.857 13.143 3.429 1.143 14 2.857t16.857 3.429q33.143 9.143 60 18.286 57.143 20 58.286 20 5.714 1.143 24.571 11.143t25.143 12.286q5.143 1.714 12.286 4.571t8.286 3.143 3.429-0.286q1.143-6.857-0.571-18.857 0-1.143-7.143-15.429t-15.143-30.571-9.714-19.143q-14.286-28.571-44-74.857l36.571-16q6.857-3.429 42.571-18.286t38.571-16q2.286-0.571 6-14.571t2.571-17.429q-0.571-1.714-7.143 0.286t-18 6.571l-11.429 5.143q-25.143 11.429-49.714 28-4 2.857-23.429 18t-21.714 16.286q-38.286-58.857-76.571-103.429-46.286-54.286-60-62.857-2.286-1.143-11.143-2.286t-10.571 0zM153.143 606.286l0.571 1.714q1.714-1.714 11.143-2.857t15.143 0 33.143 9.143q20.571 6.857 31.429 8 9.714 0 12-9.714 1.714-8.571-2.286-16-6.857-13.143-28.571-21.714-17.143-6.857-34.286-6.857-14.857 1.714-28 14.857-8 8.571-10.286 23.429zM177.143 6.857q0 4.571 2.857 7.714t7.429 3.143q2.286 0 10.286-4.286t17.429-9.429 11.714-6.286q41.714-21.143 91.143-35.143t90-14q54.286 0 95.429 8.286t89.714 28.857q8.571 4 17.429 8.857t19.429 10.857 16.286 9.429l-24.571 41.714 90.286-7.429-30.857-91.429-22.857 37.714q-74.286-47.429-157.714-61.714-33.143-6.857-52-6.857h-48q-45.143 0-114 22.286t-104.857 48.571q-4.571 4-4.571 9.143zM444 812.571l327.429-105.143v217.143zM505.714 332l58.286-17.714 25.714 62.857 120.571-37.143 21.143-77.143 58.286-17.714-103.429 375.429-57.143 17.714zM612 433.143l43.429 105.714 36-129.714z" />
|
71 |
<glyph unicode="🐦" d="M925.714 717.714q-38.286-56-92.571-95.429 0.571-8 0.571-24 0-74.286-21.714-148.286t-66-142-105.429-120.286-147.429-83.429-184.571-31.143q-154.857 0-283.429 82.857 20-2.286 44.571-2.286 128.571 0 229.143 78.857-60 1.143-107.429 36.857t-65.143 91.143q18.857-2.857 34.857-2.857 24.571 0 48.571 6.286-64 13.143-106 63.714t-42 117.429v2.286q38.857-21.714 83.429-23.429-37.714 25.143-60 65.714t-22.286 88q0 50.286 25.143 93.143 69.143-85.143 168.286-136.286t212.286-56.857q-4.571 21.714-4.571 42.286 0 76.571 54 130.571t130.571 54q80 0 134.857-58.286 62.286 12 117.143 44.571-21.143-65.714-81.143-101.714 53.143 5.714 106.286 28.571z" horiz-adv-x="951" />
|
72 |
</font></defs></svg>
|
pub/font/loco.ttf
CHANGED
Binary file
|
pub/font/loco.woff
CHANGED
Binary file
|
pub/img/flags.png
CHANGED
Binary file
|
pub/js/build/admin-common.js
CHANGED
@@ -1 +1,3 @@
|
|
1 |
-
!function(
|
|
|
|
1 |
+
!function(f,h,c){function m(b){b.stopPropagation();b.preventDefault();return!1}function n(b,a){function d(){g();e=setTimeout(function(){c(b).fadeOut(1E3,a)},f)}function g(){e&&clearTimeout(e);e=null}var e,f=5E3;d();c(b).mouseenter(g).mouseleave(d)}function k(b,a){function d(a){c(b).remove();c(f).triggerHandler("resize");return a&&m(a)}c('<a class="dismiss" href="#">×</a>').appendTo(b).click(d);a||n(b,d)}c("#wpbody-content").find("div.loco-message").each(function(b,a){k(a,!0)});var a=f.loco||
|
2 |
+
(f.loco={});a.killEvent=m;a.initMessage=k;a.showMessage=function(b,a,d,g){var e="loco-js-"+d;d=h.getElementById(e)||c('<div id="'+e+'" class="loco-message '+(g||d)+'"></div>').insertBefore(c("#loco-poedit"));b=c(h.createElement("p")).text(b);a=c(h.createElement("strong")).text(a+": ");b.prepend(a).appendTo(c(d).html(""));c(f).triggerHandler("resize");k(d);c("div.loco-warning").remove()};a.showError=function(b){return a.showMessage(b,l("Error"),"error")};a.showWarning=function(b){return a.showMessage(b,
|
3 |
+
l("Warning"),"updated loco-warning")};a.showSuccess=function(b){return a.showMessage(b,l("OK"),"updated loco-success")};var l=a.t||(a.t=function(a){return a})}(window,document,window.jQuery);
|
pub/js/build/admin-poedit.js
CHANGED
@@ -1,130 +1,147 @@
|
|
1 |
-
(function(
|
2 |
-
a
|
3 |
-
|
4 |
-
|
5 |
-
return
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
g)
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
a
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
this.
|
31 |
-
|
32 |
-
|
33 |
-
a
|
34 |
-
|
35 |
-
|
36 |
-
(a
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
"
|
46 |
-
|
47 |
-
this.
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
f,
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
"
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
"
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
"
|
82 |
-
"
|
83 |
-
|
84 |
-
"\
|
85 |
-
"\
|
86 |
-
"\
|
87 |
-
"\
|
88 |
-
"\
|
89 |
-
|
90 |
-
"
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
return this};
|
107 |
-
b
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
this.body.
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
function
|
117 |
-
|
118 |
-
c
|
119 |
-
|
120 |
-
"
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
function(
|
129 |
-
|
130 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
(function(r,s,f,I){function H(d){var c=0,f,g=[].slice.call(arguments,1);return d.replace(/%(s|u|%)/g,function(b,d){if("%"===d)return"%";f=g[c++];return String(f)||""})}function O(){var d=A.stats(),c=d.t,m=d.f,g=d.u,c=H(E("1 string","%s strings",c),c),b=[];locale&&(c=H(E("%s%% translated"),d.p.replace("%",""))+", "+c,m&&b.push(H(E("%s fuzzy"),m)),g&&b.push(H(E("%s untranslated"),g)),b.length&&(c+=" ("+b.join(", ")+")"));f("#loco-po-status").text(c)}function P(d,c,m){function g(b,c,a){a=a||E("Unknown error");
|
2 |
+
showError(a);m&&m(b,c,a)}return f.ajax({url:wp_ajaxurl,type:d.method,data:f(d).serialize(),dataType:"json",error:g,success:function(b,d,a){!b||b.error?g(a,d,b&&b.error&&b.error.message):c&&c(b,d,a)}})}var n=function(){var d={};return{register:function(c,f){d[c]=f},require:function(c,f){var g=d[c];if(!g)throw Error('CommonJS error: failed to require("'+f+'")');return g}}}();n.register("$1",function(d,c,f){Array.prototype.indexOf||(Array.prototype.indexOf=function(c){if(null==this)throw new TypeError;
|
3 |
+
var b,d=Object(this),a=d.length>>>0;if(0===a)return-1;b=0;1<arguments.length&&(b=Number(arguments[1]),b!=b?b=0:0!=b&&Infinity!=b&&-Infinity!=b&&(b=(0<b||-1)*Math.floor(Math.abs(b))));if(b>=a)return-1;for(b=0<=b?b:Math.max(a-Math.abs(b),0);b<a;b++)if(b in d&&d[b]===c)return b;return-1});return d}({},r,s));n.register("$19",function(d,c,f){function g(l){a||c._gat&&(a=_gat._createTracker(b,"loco"));if(a){var e=l.shift();a[e].apply(a,l)}else k&&k.push(l);return d}var b,k,a;d._init=function(a){if(b=a.code){k=
|
4 |
+
c._gaq||(c._gaq=[]);k.push(["_setAccount",b]);k.push(["_trackPageview"]);k.push(["_setDomainName",a.host]);a=f.createElement("script");a.type="text/javascript";a.async=!0;a.src=("https:"==f.location.protocol?"https://ssl":"http://www")+".google-analytics.com/ga.js";var e=f.getElementsByTagName("script")[0];e.parentNode.insertBefore(a,e)}return d};d.event=function(a,e,b,c){return g(["_trackEvent",a||"",e||"",b||"",c||0])};d.page=function(a,e){return g(["_trackPageview",{page:a||location.pathname+location.hash,
|
5 |
+
title:e||f.title}])};return d}({},r,s));n.register("$20",function(d,c,f){function g(a,l){if(b)b[a](l);else c.ga&&ga(a,l);return d}var b,k;d._init=function(a){a.code&&(function(a,e,b,c,h,d,w){a.GoogleAnalyticsObject=h;a[h]=a[h]||function(){(a[h].q=a[h].q||[]).push(arguments)};a[h].l=1*new Date;d=e.createElement(b);w=e.getElementsByTagName(b)[0];d.async=1;d.src=c;w.parentNode.insertBefore(d,w)}(c,f,"script","//www.google-analytics.com/analytics.js","ga"),ga("create",a.code,{alwaysSendReferrer:!0,userId:a.user}),
|
6 |
+
a.custom&&g("set",a.custom),d.page(),ga(function(a){b=a}));return d};d.event=function(a,b,e,c){return g("send",{hitType:"event",eventCategory:a||"",eventAction:b||"",eventLabel:e||"",eventValue:Number(c||0)})};d.page=function(a,b){var e={hitType:"pageview",page:a||location.pathname+location.hash,title:b||f.title};e.location=location.protocol+"//"+location.hostname+e.page;k&&g("set",{referrer:k});k=e.location;return g("send",e)};d.reset=function(){k=location.href;g("set",{page:location.pathname+location.hash,
|
7 |
+
title:f.title,location:k});return d};return d}({},r,s));n.register("$9",function(d,c,m){function g(a,l){f(a).click(function(a){b&&b.event(l,"click",this.getAttribute("href")||"");return!0});a=null;return d}var b,k=location.hostname;d.init=function(a){!b&&a&&(k=a.host||(a.host=k),b=a.legacy?n.require("$19","legacy.js"):n.require("$20","universal.js"),b._init(a));return d};d.link=function(a){for(var b=a.getAttribute("href");b&&"#"!==b;){if(0===b.indexOf("#"))return g(a,"anchor");if(0===b.indexOf("http")||
|
8 |
+
0===b.indexOf("//")){if(-1!==b.indexOf(k)&&/^(https?:)*\/\/([^\/]+)/.exec(b)&&k===RegExp.$2)break;a.setAttribute("target","_blank");g(a,"external")}break}return d};d.page=function(){b&&b.page.apply(b,arguments);return d};d.event=function(){b&&b.event.apply(b,arguments);return d};d.reset=function(){b&&b.reset&&b.reset();return d};return d}({},r,s));n.register("$25",function(d,c,m){function g(a,b,e,c,d){function h(){u&&clearTimeout(u);g&&g.fadeOut(400,function(){f(this).remove();g=null});return!1}function t(){w();
|
9 |
+
-1!==c&&(u=setTimeout(h,c||2E3));g.unbind("mouseleave");g.mouseenter(w)}function w(){u&&clearTimeout(u);u=null;g.unbind("mouseenter");g.mouseleave(t)}var u;k||(k=m.createElement("div"),k.id="growls",m.body.appendChild(k));var g=f('<div class="growl growl-'+e+'"><div><a class="close" href="#"><span>X</span></a><span class="badge"></span><p class="message"></p><small class="caption"></small></div></div>');g.find("p").text(a||"Empty message");b?g.find("small").text(b):g.find("small").remove();if(d.length){d.push({label:"Cancel",
|
10 |
+
callback:h,css:"cancel"});var y,F=f('<form action="#" class="dialog"></form>');b=function(a,b){y=f('<input type="button" value="'+b.label+'" class="butt '+(b.css||"")+'" />');y.click(function(a){"function"===typeof b.callback&&b.callback(a,{close:h})});F.append(y);return y};for(a=0;a<d.length;a++)b(a,d[a]);g.append(F)}f(k).prepend(g.hide().fadeIn(400));g.find("a").click(h);t()}var b,k;d.init=function(){if(!b)return b=c.alert,c.alert=function(a){a=String(a).split("\n");var b=a[1]&&a.slice(1).join("\n");
|
11 |
+
d.alert(a[0],b)},d};d.debug=function(a){b(a);return d};d.alert=function(a,l,e,d,k){try{return g(a,l||"",e||"alert",d||4E3,k||[]),!0}catch(h){return a+="\n\n--\n"+(h.message||h),b.call(c,a),!1}};d.success=function(a,b,e){return d.alert(a,b,"success",e||2E3)};d.dialog=function(a,b,e,c){return d.alert(a,b,c||"alert",-1,e)};d.login=function(a,b,e,c){d.dialog(b||"You're not logged in",e||"Please log in to continue",[{label:c||"Log in",callback:function(b,e){location.assign(a||"/session/auth/login?r="+
|
12 |
+
encodeURIComponent(location.href))}}])};return d}({},r,s));n.register("$22",function(d,c,m){function g(a){return 27===a.keyCode&&t&&w?(C(),a.preventDefault(),!1):!0}function b(b){if(t){var e=Math.max(a.height(),l.outerHeight(!0));e&&q.css("height",e+"px");b&&(v=f(c).innerWidth(),D(B))}return!0}function k(a){a?(p.show(),e.addClass("has-title")):(p.hide(),e.removeClass("has-title"))}var a,l,e,q,p,h,t=!1,w=!1,u=!1,J,y,F,v,B,z=d.init=function(){if(!a){a=f('<div id="overlay"></div>');l=f('<div class="overlay-frame"></div>');
|
13 |
+
e=f('<div class="overlay-container"></div>');p=f('<div class="overlay-title"><span class="title">Untitled</span></div>');h=f('<a class="overlay-close" href="#"><span>x</span></a>');q=f('<div class="overlay-bg"></div>');a.append(l.append(e)).append(q).prependTo(m.body);f(m).bind("keydown",g);f(c).resize(b);F=e.outerWidth(!0)-e.width()+(l.innerWidth()-l.width());e.outerHeight(!0);e.outerHeight(!1);l.innerHeight();l.height();v=f(c).innerWidth();J=parseInt(e.css("width"));if(!J||isNaN(J))J=e.width();
|
14 |
+
y=parseInt(e.css("height"));if(!y||isNaN(y))y=e.height();p.append(h.hide()).hide().prependTo(l);a.hide()}return a},D=d.width=function(b){z();if(null===b)l.css("width",""),e.css("width","");else{b=b||J||640;x=b+F;B=b;var h=v;x>h?(x=h,b=x-F,a.addClass("spill")):a.removeClass("spill");l.css("width",x+"px");e.css("width",b+"px")}return d};d.autoSize=function(){z();b();var a=J||0;e.children().each(function(b,e){a=Math.max(a,f(e).outerWidth(!0))});D(a);return d};d.css=function(a){z().attr("class",a);return d};
|
15 |
+
d.html=function(a){z();c.innerShiv&&(a=innerShiv(a,!1));return e.html(a)};d.append=function(a){z();a instanceof jQuery||(a=f(a));e.append(a);return d};var C=d.close=function(b){if(t){var l=function(){z().hide();f(m.body).removeClass("has-overlay");t=!1;e.html("");t=null;a.trigger("overlayClosed",[d])};null==b&&(b=300);a.trigger("overlayClosing",[d]);b?a.fadeOut(b,l):l()}return d};d.title=function(a){z();u=a||"";p.find("span.title").text(u);null!=a?k(!0):w||k(!1);return d};d.enableClose=function(){z();
|
16 |
+
w=!0;h.unbind("click").bind("click",function(a){C();return!1});k(!0);h.show();return d};d.disableClose=function(){z();w=!1;h.hide();t&&u||k(!1);return d};d.open=function(){z();e.html("");D(J);a.attr("class","");f(m.body).addClass("has-overlay");z().show();t=!0;b();d.title(null);w&&k(!0);a.trigger("overlayOpened",[d]);return d};d.listen=function(a){z().bind("overlayClosed",a);return d};d.unlisten=function(a){z().unbind("overlayClosed",a);return d};return d}({},r,s));n.register("$21",function(d,c,m){var g=
|
17 |
+
{401:"You've been logged out",404:"Not Found",500:"Server Error",502:"Bad Gateway",503:"Service unavailable",504:"Gateway timeout"};d.getErrors=function(){return g};d.jsonLink=function(b){if(!b)return"";b=b.split("?");b[0]=b[0].replace(/(\.[a-z0-9]{1,4})?$/i,".json");return b.join("?")};d.errorData=function(b,c,a){var l,e;a=b.responseText;c=b.status;if(!a&&0===c)return null;try{l=f.parseJSON(a)||{}}catch(d){l={},e=g[b.status]||d.message||d}e||(e=l.statusText||b.statusText||g[c]||"Unknown Error");
|
18 |
+
l.error=e;return l};d.ajax=function(b,k,a,l){function e(){a&&a()}function q(a){a.alert&&alert(a.alert);var b=a.success;b&&n.require("$25","growl.js").success.apply(this,b.push?b:[b]);b=l||f(m.body);b.trigger("locoAjaxSuccess",[a]);var d=a.events;if(d&&d.length)for(var k,q=n.require("$9","ga.js");k=d.shift();)b.trigger(k,[a]),q.event("ajax",k);a.modal&&n.require("$11","LocoModal.js").replace(a.modal);if(a.download)c.location.assign(a.download);else if(a.redirect)return c.location.assign(a.redirect),
|
19 |
+
!1;e();return!0}function p(a,b,l){var c=a.status,f;if(401===c)n.require("$25","growl.js").login(),k&&!1===k(null,g[c],c)&&e();else{if("parsererror"===b)f=404===c?"Ajax service not found":"Bad Ajax response";else{var p=d.errorData(a,b,l);p&&p.error&&(f=p.error)}"function"===typeof k&&!1===k(null,f,c)?e():p&&p.data&&!q(p.data)||(alert(f||"Unknown Ajax error"),e())}}b.error=p;b.success=function(a,b,l){if(!a||"object"!==typeof a)return p(l,"unknown");a.status&&alert(a.statusText||"Unknown error");"function"===
|
20 |
+
typeof k&&!1===k(a&&a.data?a.data:a)?e():a&&a.data?q(a.data):e()};-1!==b.url.indexOf(".json")&&(b.dataType="json");f.ajax(b)};return d}({},r,s));n.register("$11",function(d,c,m){function g(a){a.stopPropagation();a.preventDefault();return!1}function b(b,l){a.autoSize();var c=a.init();n.require("$2","html.js").init(c);c.find("[data-script]").each(function(a,b){b=f(b);for(var c=-1,h,d=b.attr("data-script").split(" ");++c<d.length;)h=d[c],e[h]?e[h](b,l||{}):alert("Unknown script "+h)});c.trigger("locoModalLoaded",
|
21 |
+
[a,b||"",l||{}]);var h,d=c.find("form")[0],v;if(d)a:for(c=0;c<d.elements.length;c++)switch(h=d.elements[c],h.type){case "text":case "email":case "textarea":v=Number(h.getAttribute("tabindex"));if(isNaN(v)||100>v)continue a;f(h).focus();break a}}function k(a){var b=f(a.currentTarget),e;e=b.attr("data-modal");if("back"===e){if(e=q.pop())return p=null,h.apply(this,e),g(a);e="close"}if("close"===e){t();var l=b.attr("href");if(l&&-1!==l.indexOf("#!"))return!0}else{var c="submit"===a.type,d=b.attr("title")||
|
22 |
+
b.attr("data-title"),l=b.attr("href")||b.attr("action"),k=c?b.serialize():"",b=c?b.attr("method"):"get";e||(e=l.split("/").slice(1,4).join("-"));h(l,d,b,k,"modal "+e)}return g(a)}var a=n.require("$22","overlay.js"),l=n.require("$9","ga.js"),e={},q=[],p,h=d.load=function(e,c,h,k,t){var v=p;p=arguments;v&&(q.push(v),e+=-1===e.indexOf("?")?"?":"&",e+="r="+encodeURIComponent(v[0]));a.open().title("Loading ..").disableClose().css("modal").html('<div class="overlay-placeholder"></div>');t&&a.width(null).css(t).autoSize();
|
23 |
+
var v=n.require("$21","http.js"),B={type:h||"get",data:k||"",url:v.jsonLink(e)};v.ajax(B,function(h,d,v){var k=h&&h.html;if(!k)return h=f('<h3 class="error"></h3>').text(d||"Unknown error"),a.enableClose().title("Error "+v||"?").html("").append(h),!1;c=h.title||c||"Untitled";a.enableClose().title(c).html(k);b(e,h.js);l.page(e,c);a.init().one("overlayClosed",function(){l.reset()});return!0});return d},t=d.close=function(){p=null;q=[];a.close();return d};d.initLink=function(a){a.click(k)};d.initForm=
|
24 |
+
function(a){f(a).submit(k)};d.replace=function(e){var l=e&&e.html,c=e&&e.url,d=e&&e.title;c?(h(c,d),e=e&&e.css||c.split("/").slice(1,4).join("-"),a.width(null).css(" modal "+e).autoSize()):l&&(a.open().html(l),d&&a.enableClose().title(d),b("",e&&e.js))};d.find=function(b){return a.init().find(b)};d.script=function(a,b){if(b){if("function"!==typeof b.run)throw Error(a+" macro has no run function");e[a]=b.run;return d}return e[a]};return d}({},r,s));n.register("$13",function(d,c,m){function g(a){a.stopPropagation();
|
25 |
+
a.preventDefault();return!1}function b(a,b,e){if(e=e||a.getElement(b))e.unbind().mouseup(function(e){e.stopPropagation();a.selectIndex(b,!0);return!1}).mouseover(function(){f(this).addClass("over");a.hover=b;return!0}).mouseout(function(){f(this).removeClass("over");a.hover=-1;return!0}),e=null;return a}function k(a){if(a){var b=this,e=a[0];b.id=e.id||"";b.name=e.name||"";b.prefix=e.getAttribute("data-prefix");b.defaultIcon=e.getAttribute("data-icon")||"jshide";var c=e.selectedIndex,d=[],h,k,w;for(k=
|
26 |
+
0;k<e.options.length;k++)h=e.options[k],w=h.disabled,h=f(h),d.push([h.val(),h.text(),h.attr("data-icon")||"",w]);b.hidden=f('<input type="hidden" name="'+b.name+'" value="" />').appendTo(e.form);b.list=f('<ul class="clearfix"></ul>');b.icon=f('<span class="icon"> </span>');b.selection=f('<span class="label"></span>');b.handle=f('<a class="handle" href="#"></a>').attr("tabindex",a.attr("tabindex")||"").append(b.icon).append(b.selection);b.wrapper=f("<div></div>").addClass(e.className).addClass("selector").append(b.handle).append(b.list).replaceAll(e);
|
27 |
+
this.id&&b.wrapper.attr("id",this.id);for(b.clearOptions();h=d.shift();)b.addOption.apply(b,h);b.handle.click(function(a){a.preventDefault();return!1}).mouseover(function(a){return b.onRollover(a)}).mouseout(function(a){return b.onRollout(a)}).mousedown(function(a){return b.onPress(a)}).keydown(function(a){return b.onKeydown(a)});f(m.body).mouseup(function(a){return b.onRelease(a)}).keydown(function(a){return b.onGlobalKeydown(a)});b.close();b.selectIndex(c)}}d.create=function(a){return new k(a)};
|
28 |
+
d.extend=function(a){a.prototype=new k};c=k.prototype;c.onRollover=function(a){return this.over=!0};c.onRollout=function(a){this.over=!1;return!0};c.onPress=function(a){return this.active?this.over?(this.close(),a.stopPropagation(),a.preventDefault(),!1):!0:(this.open(),a.stopPropagation(),a.preventDefault(),this.handle.focus(),!1)};c.onRelease=function(a){this.active&&!this.over&&this.close();return!0};c.onGlobalKeydown=function(a){if(this.active)switch(a.keyCode){case 27:return this.close(),g(a);
|
29 |
+
case 40:return this.hoverNext(1),g(a);case 38:return this.hoverNext(-1),g(a);case 13:if(-1!=this.hover)return this.selectIndex(this.hover,!0),this.hoverItem(-1),this.close(),g(a)}return!0};c.onKeydown=function(a){return this.active||40!==a.keyCode?!0:(this.open(),g(a))};c.open=function(){this.active=!0;this.hover=-1;this.wrapper.addClass("active");var a=this.handle.outerHeight()||0;this.list.show().css("top",a+"px");var a=this.handle.outerWidth()||0,b=this.list.outerWidth()||0;a>b&&(b-=this.list.width(),
|
30 |
+
this.list.css("min-width",String(a-b)+"px"))};c.close=function(){this.list.hide();this.active=!1;-1!==this.hover&&(this.getElement(this.hover).removeClass("over"),this.hover=-1);this.wrapper.removeClass("active")};c.hoverItem=function(a,b){-1!==this.hover&&this.getElement(this.hover).removeClass("over");this.hover=a;-1!==a&&(b=b||this.getElement(a),b.addClass("over"))};c.hoverNext=function(a){var b=this.options.length;if(b){b-=1;if(-1==this.hover)a=0<a?0:b;else{a=this.hover+a;if(0>a){this.close();
|
31 |
+
return}a>b&&(a=0)}this.hoverItem(a)}};c.enableChange=function(a){this.eventName=a;this.eventData=[].slice.call(arguments,1);return this};c.clearOptions=function(){this.index={};this.length=0;this.options=[];this.list.html("");this.hidden.val("");this.idx=this.hover=-1;return this};c.addOption=function(a,c,e,d){var k=this.options.length,h=f("<span></span>").addClass(e||"jshide"),t=f('<span class="label"></span>').text(c||a),h=f("<li></li>").append(h).append(t).appendTo(this.list);h.attr("data-option",
|
32 |
+
k);this.options[k]={value:a,text:c,icon:e};this.index[a]=k;this.length=k+1;d?this.disableIndex(k):b(this,k,h);return k};c.disableOption=function(a){return this.disableIndex(this.index[a])};c.disableIndex=function(a){(a=this.getElement(a))&&a.addClass("disabled").unbind();return this};c.enableOption=function(a){return this.enableIndex(this.index[a])};c.enableIndex=function(a){return b(this,a)};c.reIndex=function(){this.index={};this.length=0;for(var a=this.options.length;-1<--a;)this.index[this.options[a].value]=
|
33 |
+
a,this.length++};c.selectValue=function(a,b){return this.selectIndex(this.index[a],b)};c.selectIndex=function(a,b){var e=this.options[a];e&&(this.hidden.val(e.value),a!==this.idx&&(this.idx=a,this.setLabel(e.text),this.icon.attr("class",e.icon||this.defaultIcon),b&&this.change()),this.active&&this.close());return this};c.setLabel=function(a){this.selection.text(a);this.prefix&&this.selection.prepend(f('<span class="prefix"></span>').text(this.prefix))};c.val=function(){var a=this.options[this.idx];
|
34 |
+
return a&&a.value};c.change=function(){var a=this.eventName||"change",b=this.eventData&&this.eventData.slice()||[];b.unshift(this.val());this.wrapper.trigger(a,b);return this};c.renameOption=function(a,b){var e=this.index[a],c=this.options[e];c&&(c.text=b,this.getElement(e).find("span.label").text(b),e===this.idx&&this.setLabel(b));return this};c.removeOption=function(a){var b=this.index[a],e=this.options[b];e&&(a=this.val(),this.getElement(b).remove(),this.options.splice(b,1),this.reIndex(),a===
|
35 |
+
e.value?this.selectIndex(0,!0):this.selectValue(a,!1))};c.getElement=function(a){return this.list.find("li").eq(a)};c=null;return d}({},r,s));n.register("$14",function(d,c,m){function g(a,b){this.$element=f(a);this.options=b;this.enabled=!0;this.fixTitle()}d.init=function(a){var c=a.attr("data-gravity")||"s";a.tipsy[c]&&(c=a.tipsy[c]);a.tipsy({fade:!0,gravity:c,offset:5,delayIn:b,delayOut:k,anchor:a.attr("data-anchor")})};d.delays=function(a,c){b=a||150;k=c||100};d.kill=function(){f("div.tipsy").remove()};
|
36 |
+
d.text=function(a,b){b.data("tipsy").setTitle(a)};var b,k;d.delays();f(m.body).bind("overlayOpened overlayClosing",function(a){d.kill();return!0});g.prototype={show:function(){var a=this.getTitle();if(a&&this.enabled){var b=this.tip();b.find(".tipsy-inner")[this.options.html?"html":"text"](a);b[0].className="tipsy";b.remove().css({top:0,left:0}).prependTo(m.body);var a=(a=this.options.anchor)?this.$element.find(a):this.$element,a=f.extend({},a.offset(),{width:a[0].offsetWidth,height:a[0].offsetHeight}),
|
37 |
+
e=b[0].offsetWidth,c=b[0].offsetHeight,d="function"==typeof this.options.gravity?this.options.gravity.call(this.$element[0]):this.options.gravity,h;switch(d.charAt(0)){case "n":h={top:a.top+a.height+this.options.offset,left:a.left+a.width/2-e/2};break;case "s":h={top:a.top-c-this.options.offset,left:a.left+a.width/2-e/2};break;case "e":h={top:a.top+a.height/2-c/2,left:a.left-e-this.options.offset};break;case "w":h={top:a.top+a.height/2-c/2,left:a.left+a.width+this.options.offset}}2==d.length&&("w"==
|
38 |
+
d.charAt(1)?h.left=a.left+a.width/2-15:h.left=a.left+a.width/2-e+15);b.css(h).addClass("tipsy-"+d);b.find(".tipsy-arrow")[0].className="tipsy-arrow tipsy-arrow-"+d.charAt(0);this.options.className&&b.addClass("function"==typeof this.options.className?this.options.className.call(this.$element[0]):this.options.className);b.addClass("in")}},hide:function(){this.tip().remove()},fixTitle:function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("original-title"))&&a.attr("original-title",
|
39 |
+
a.attr("title")||"").removeAttr("title")},getTitle:function(){var a,b=this.$element,e=this.options;this.fixTitle();e=this.options;"string"==typeof e.title?a=b.attr("title"==e.title?"original-title":e.title):"function"==typeof e.title&&(a=e.title.call(b[0]));return(a=(""+a).replace(/(^\s*|\s*$)/,""))||e.fallback},setTitle:function(a){var b=this.$element;b.attr("default-title")||b.attr("default-title",this.getTitle());null==a&&(a=b.attr("default-title")||this.getTitle());b.attr("original-title",a);
|
40 |
+
if(this.$tip)this.$tip.find(".tipsy-inner")[this.options.html?"html":"text"](a)},tip:function(){this.$tip||(this.$tip=f('<div class="tipsy"></div>').html('<div class="tipsy-arrow"></div><div class="tipsy-inner"></div>'),this.$tip.data("tipsy-pointee",this.$element[0]));return this.$tip},validate:function(){this.$element[0].parentNode||(this.hide(),this.options=this.$element=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled}};
|
41 |
+
f.fn.tipsy=function(a){function b(e){var c=f.data(e,"tipsy");c||(c=new g(e,f.fn.tipsy.elementOptions(e,a)),f.data(e,"tipsy",c));return c}function e(){var e=b(this);e.hoverState="in";0==a.delayIn?e.show():(e.fixTitle(),setTimeout(function(){"in"==e.hoverState&&e.show()},a.delayIn))}function c(){var e=b(this);e.hoverState="out";0==a.delayOut?e.hide():(e.tip().removeClass("in"),setTimeout(function(){"out"==e.hoverState&&e.hide()},a.delayOut))}if(!0===a)return this.data("tipsy");if("string"==typeof a){var d=
|
42 |
+
this.data("tipsy");if(d)d[a]();return this}a=f.extend({},f.fn.tipsy.defaults,a);a.live||this.each(function(){b(this)});if("manual"!=a.trigger){var d=a.live?"live":"bind",h="hover"==a.trigger?"mouseleave":"blur";this[d]("hover"==a.trigger?"mouseenter":"focus",e)[d](h,c)}return this};f.fn.tipsy.defaults={className:null,delayIn:0,delayOut:0,fade:!1,fallback:"",gravity:"n",html:!1,live:!1,offset:0,opacity:0.8,title:"title",trigger:"hover",anchor:null};f.fn.tipsy.revalidate=function(){f(".tipsy").each(function(){var a=
|
43 |
+
f.data(this,"tipsy-pointee"),b;if(!(b=!a)){a:{for(;a=a.parentNode;)if(a==m){a=!0;break a}a=!1}b=!a}b&&f(this).remove()})};f.fn.tipsy.elementOptions=function(a,b){return f.metadata?f.extend({},b,f(a).metadata()):b};f.fn.tipsy.autoNS=function(){return f(this).offset().top>f(m).scrollTop()+f(c).height()/2?"s":"n"};f.fn.tipsy.autoWE=function(){return f(this).offset().left>f(m).scrollLeft()+f(c).width()/2?"e":"w"};f.fn.tipsy.autoBounds=function(a,b){return function(){var e=b[0],d=1<b.length?b[1]:!1,k=
|
44 |
+
f(m).scrollTop()+a,h=f(m).scrollLeft()+a,t=f(this);t.offset().top<k&&(e="n");t.offset().left<h&&(d="w");f(c).width()+f(m).scrollLeft()-t.offset().left<a&&(d="e");f(c).height()+f(m).scrollTop()-t.offset().top<a&&(e="s");return e+(d?d:"")}};return d}({},r,s));n.register("$2",function(d,c,m){var g=c.ieVersion;d.ie=function(a){return a?g<=a:g};var b=d.init=function(a){a?a instanceof jQuery||(a=f(a)):a=f(m.body);var c=n.require("$9","ga.js"),e=n.require("$10","forms.js"),k=n.require("$11","LocoModal.js"),
|
45 |
+
p=n.require("$12","LocoAutoComplete.js"),h=n.require("$13","LocoSelector.js"),t=n.require("$14","tooltip.js");a.find("form").each(function(a,b){var c=f(b);g&&10>g&&e.placeholders(c);b.getAttribute("data-modal")?k.initForm(b):b.action&&0!==b.action.indexOf("#")&&!b.target&&e.jsonify(b);c.hasClass("hasreveal")&&e.revealify(c);c.find("input.button").each(function(a,b){e.linkify(b)});c.find("input.auto-comp").each(function(a,b){p.init(b)});c.find("select.selector").each(function(a,b){h.create(f(b))})});
|
46 |
+
a.find("a").each(function(a,e){-1!==e.className.indexOf("hastip")&&t.init(f(e));if(-1!==e.href.indexOf("/modal/")||e.getAttribute("data-modal"))k.initLink(f(e));else{c.link(e);var h=e.getAttribute("data-ajax-target");h&&(h=f("#"+h),f(e).click(function(a){a.preventDefault();h.addClass("loading");f.get(e.href,function(a){a=d.$(a).replaceAll(h);b(a);a.trigger("locoAhah")});return!1}))}});e=k=p=a=null;return d};d.$=function(a){return f(c.innerShiv?innerShiv(a,!1):a)};f.fn._html=function(a){return null!=
|
47 |
+
a?(a=this.html(c.innerShiv?innerShiv(a,!1):a),b(this),a):j.html()};f.fn.macro=function(a,b){if("function"!==typeof a.run)throw Error("macro has no run function");a.run(this,b||{});return this};d.el=function(a,b){var e=m.createElement(a||"div");b&&(e.className=b);return e};d.txt=function(a){return m.createTextNode(a||"")};var k=d.plain=function(a,b){if("BR"===a.tagName)b.push("");else for(var e=-1,c=a.childNodes.length,d;++e<c;)d=a.childNodes[e],3===d.nodeType?b.push(d.nodeValue):1===d.nodeType?k(d,
|
48 |
+
b):b.push("??")};return d}({},r,s));n.register("$6",function(d,c,m){var g="blur "+n.require("$2","html.js").ie()?"keyup paste":"input";d.listen=function(b,c){function a(){w[h?"show":"hide"]()}function d(e){h=e;t&&b.setAttribute("size",h.length||1);a()}function e(){b.value!==h&&(q&&clearTimeout(q),d(b.value),p?q=setTimeout(function(){c(h)},p):(q=null,c(h)))}b=b instanceof jQuery?b[0]:b;var q,p=150,h=b.value,t=1===Number(b.size),w=f('<a href="#clear" tabindex="-1" class="icon clear"><span>clear</span></a>').click(function(a){b.value=
|
49 |
+
"";e();return!1});f(b).bind(g,function(){e();return!0}).after(w);a();return{delay:function(a){p=a},ping:function(a){a?(q&&clearTimeout(q),d(b.value),c(h),a=void 0):a=e();return a},val:function(e){if(null==e)return h;q&&clearTimeout(q);b.value=h=e;a()}}};return d}({},r,s));n.register("$4",function(d,c,f){function g(){var b,c;this.clear=function(){this.length=0;b={};c=[]};this.getTree=function(){return b};this.getData=function(){return c};this.clear()}d.create=function(){return new g};c=g.prototype;
|
50 |
+
c.depth=0;c.matchall=!0;c.ignorecase=!0;c.boundary=/[\s.?!;:,*^+=~`"(){}<>[\]\/\\\u00a0\u1680\u180e\u2000-\u206f\u2e00-\u2e7f\u3000-\u303f]+/;c.nonword=/[\-'_]+/g;c.translit=function(b,c){function a(a){return b[a]||a}c=c||/[^a-z0-9]/g;this.trans=function(b){return b.replace(c,a)}};c.stoppers=function(b){this.stopped=function(c){return Boolean(b[c])}};c.add=function(b,c){var a=this.getData(),d=a.length;a.push(b);this.length++;for(a=0;++a<arguments.length;){c=arguments[a];null==c&&(c=String(b));for(var e=
|
51 |
+
-1,f,g,h,t,w,u=this.normalize(c);++e<u.length;)if(f=u[e],!this.stopped(f)){g=this.getTree();h=Math.min(f.length,this.depth)||f.length;for(t=0;t<h;t++)w=f.charAt(t),g=g[w]||(g[w]={});f=g[" "]||(g[" "]=[]);f.push(d)}}return this};c.find=function(b,c){function a(b,e){var c,d,h;for(t in b)if(h=b[t]," "===t)for(c in h)w=h[c],d=u[w]||(u[w]={length:0,words:{}}),d.length+=d.words[e]?0:1,d.words[e]=1+(d.words[e]||0);else a(h,e)}var d=-1,e,f,g,h,t,w,u={},m=[],y=this.normalize(b),n=this.getData();a:for(;++d<
|
52 |
+
y.length;){e=y[d];f=this.getTree();g=Math.min(e.length,this.depth)||e.length;for(h=0;h<g;h++){t=e.charAt(h);if(!f[t])continue a;f=f[t]}a(f,e)}for(w in u)this.matchall&&u[w].length<y.length||m.push(n[w]);c&&(c.query=b,c.words=y);return m};c.normalize=function(b){for(var c=-1,a={},d=[],e=this.split(b);++c<e.length;)if(b=e[c])if(this.ignorecase&&(b=b.toLowerCase()),b=this.strip(b))this.trans&&(b=this.trans(b)),a[b]||(d.push(b),a[b]=!0);return d};c.stopped=function(b){return 1===b.length};c.split=function(b){return b&&
|
53 |
+
b.split(this.boundary)||[]};c.strip=function(b){return b&&b.replace(this.nonword,"")||""};c=null;return d}({},r,s));n.register("$12",function(d,c,m){function g(b){-1===b.indexOf("?")&&(b="/auto/"+b+".json?q=");this.url=b;this.dead={}}function b(){this.dict=n.require("$4","dict.js").create()}d.init=function(c){function a(){if("hint"!==K){var a=C.val()&&!(L&&L.val())&&null==z&&!F;Q[a?"addClass":"removeClass"]("error")}}function d(a){L&&L.val(a)}function e(){r.show();var a=C.outerWidth(!1),b=C.outerHeight(!1),
|
54 |
+
e=C.css("margin-top");e&&(e=parseInt(e),isNaN(e)||(b+=e));a-=2;r.css("top",b+"px").css("width",a+"px");F=!0}function q(){r.hide();F=!1}function p(){r.html("");q();y=0;D=z=null}function h(b){p();var c;for(c=0;c<b.length;c++){var d=c,h=b[c],k=f('<span class="label"></span>').text(h.label),l=f('<div class="auto-comp-result"></div>'),q=void 0;for(q in h)l.data(q,h[q]);h.icon&&l.append(f("<span></span>").attr("class",h.icon));l.append(k);t(d,l)}(y=b.length)?(v&&e(),w(0)):(w(null),a())}function t(a,b){r.append(b);
|
55 |
+
b.click(function(e){e.stopPropagation();w(a,b);m();return!1});return b}function w(a,b){D&&(D.removeClass("selected"),D=null);z=null;null==a?d(""):(b||(b=r.find("div.auto-comp-result").eq(a)),b.length&&(b.addClass("selected"),z=a,D=b))}function u(a){if(y){var b=y-1;null==z?a=0<a?0:b:(a=z+a,0>a?a=b:a>b&&(a=0));return w(a)}}function m(){if(null==z)s.val(""),d("");else{var b=r.find("div.auto-comp-result").eq(z),e=b.data()||{label:"Error"},c=e.value,h=e.label;d(c);s.val(h);q();b=b.clone();b.data(e);p();
|
56 |
+
t(0,b);y=1;w(0,b);a();b.trigger("locoAutocomp",[c,h,b])}}var y=0,F=!1,v=!1,B=c.form,z=null,D=null,C=f(c),N=C.attr("name"),K=C.attr("data-mode"),G=C.attr("data-provider"),L="hint"!==K&&f('<input type="hidden" value="" name="'+N+'" />').appendTo(B),Q=f('<div class="auto-comp-wrap"></div>').replaceAll(C),r=f('<div class="auto-comp-drop"></div>');G&&(G=new g(G));L&&C.attr("name","_"+N);C.attr("autocomplete","off");Q.append(C).append(r);q();C.focus(function(a){v=!0;1<y&&e()}).blur(function(b){v=!1;a()}).keydown(function(a){function b(){a.preventDefault();
|
57 |
+
a.stopPropagation();return!1}switch(a.keyCode){case 27:F&&(a.stopPropagation(),q(),C.blur());break;case 40:y&&(F?u(1):e());break;case 38:F&&u(-1);break;case 13:if(F)return m(),b();if(!z&&"hint"!==K)return b()}return!0});var s=n.require("$6","LocoTextListener.js").listen(C,function(a){G&&G.fetch(a,h)});(B=C.attr("data-pre"))&&(B=f.parseJSON(B))&&B.value&&B.label?(h([B]),m()):!c.value||L&&L.val()||!G||G.fetch(c.value,function(a){h(a);m()});return{$:C,clear:p,reset:function(){p();C.val("");d("");s.ping()},
|
58 |
+
force:function(a,b){p();d(b||"");s.val(a)},preload:function(a){y&&p();G=new b;var e,c;for(e in a)c=a[e],G.add(c)},mode:function(a){K=a}}};g.prototype.fetch=function(b,a){if(!b)return a&&a([]),this;var c,e=this.dead;for(c in e)if(0===b.indexOf(c))return a&&a([]),this;c={dataType:"json",url:this.url+encodeURIComponent(b)};n.require("$21","http.js").ajax(c,function(c){var d=c&&c.results;d&&(a&&c.query&&c.query===b&&a(c.results),d.length||(e[b]=0));return!0});return this};b.prototype.add=function(b){var a=
|
59 |
+
b.fulltext||b.label||b.value;a&&this.dict.add(b,a)};b.prototype.fetch=function(b,a){if(!b)return a&&a([]),this;var c=this.dict.find(b);a(c)};return d}({},r,s));n.register("$10",function(d,c,m){function g(a){function b(){a.value===d&&(a.value="",c.removeClass("placeheld"));return!0}function e(){""===a.value&&(a.value=d,c.addClass("placeheld"));return!0}var c=f(a);if(!c.hasClass("auto-comp")){var d=c.attr("placeholder");if(d)return c.focus(b).blur(e),e(),{kill:function(){b();c.unbind("focus",b).unbind("blur",
|
60 |
+
e)}}}}var b=d.enable=function(a){function b(a,c){c.getAttribute("data-was-disabled")||(c.disabled=!1)}a.find(".button").removeClass("loading");a.find("input").each(b);a.find("select").each(b);a.find("textarea").each(b);c.attachEvent&&a.hasClass("has-placeholders")&&d.placeholders(a)},k=d.disable=function(a){function b(a,c){c.disabled?c.setAttribute("data-was-disabled","true"):c.disabled=!0}a.find(".button").addClass("loading");a.find("input").each(b);a.find("select").each(b);a.find("textarea").each(b)};
|
61 |
+
d.jsonify=function(a,d,e){a instanceof jQuery||(a=f(a));a.disable||(f.fn.disable=function(){k(this);return this},f.fn.enable=function(){b(this);this.placehold&&this.placehold();return this});var g="";a.find('[type="submit"]').click(function(a){a&&a.target&&a.target.name&&(g=encodeURIComponent(a.target.name)+"="+encodeURIComponent(a.target.value));return!0});a.submit(function(b){if(b&&b.isDefaultPrevented&&b.isDefaultPrevented()||e&&!1===e(b))return!1;var h=c.tinyMCE;h&&a.find("textarea.editor").each(function(a,
|
62 |
+
b){var e=h.get(b.id);e&&e.save()});var f=a.serialize();g&&(f&&(f+="&"),f+=g,g="");a.disable();var k=n.require("$21","http.js"),f={url:k.jsonLink(a.attr("action")),type:a.attr("method"),data:f};k.ajax(f,d,function(){a.enable()},a);b.preventDefault();b.stopPropagation();return!1});if(a.hasClass("autopost")){var p,h=Number(a.attr("data-autopost-delay")||500);a.find('input[type="checkbox"]').change(function(){p&&clearTimeout(p);p=setTimeout(function(){a.submit()},h);return!0})}};d.revealify=function(a){a.find("div[data-reveal-if]").each(function(b,
|
63 |
+
e){function c(a){var b;y=y||a.target;if("."===u)b=Boolean(y&&y[m]);else if("="===u){var e,h;b=f(y.form).serializeArray();for(h in b)b[h].name===g&&(e=b[h].value);b=m===e}if(b!==k)if(k=b,a)d[k?"slideDown":"slideUp"](200);else d[k?"show":"hide"]();return!0}var d=f(e),h=/^([_\w\-\[\]]+)(\.|=)(.+)$/.exec(d.attr("data-reveal-if"));if(h){var k,g=h[1],u=h[2],m=h[3],h=a[0][g];h.length||(h=[h]);var y;for(b=0;b<h.length;b++)y=h[b],c(),f(y).change(c).removeClass("jshide");h=h=y=null}});a=null};d.linkify=function(a){var b=
|
64 |
+
a.getAttribute("data-icon");if(b){var e=f(a),c=f("<a> </a>");c.attr("href",a.form.action);c.attr("class",e.attr("class"));c.attr("tabindex",e.attr("tabindex"));e.attr("tabindex","-1");c.text(e.val());b&&f("<span></span>").prependTo(c).addClass(b);e.hide().after(c);c.click(function(a){e.click();return!1})}};d.placeholders=function(a){var b,e=[];a.find("input[placeholder]").each(function(a,c){"password"!==c.type&&(b=g(c))&&e.push(b)});e.length&&(a.submit(function(){for(var a in e)e[a].kill()}),a.addClass("has-placeholders"),
|
65 |
+
b=i=null)};return d}({},r,s));n.register("$15",function(d,c,f){function g(b){this.reIndex([]);if(b)for(var c in b)this.add(c,b[c])}d.init=function(b){return new g(b)};c=g.prototype;c.reIndex=function(b){var c=-1;for(this.ords={};++c<b.length;)this.ords[b[c]]=c;this.keys=b;this.length=c};c.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};c.indexOf=
|
66 |
+
function(b){b=this.ords[b];return null==b?-1:b};c.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};c.get=function(b){return this[this.ords[b]]};c.cut=function(b,c){var a=[].splice.call(this,b,c);this.keys.splice(b,c);this.reIndex(this.keys);return a};c.each=function(b){for(var c=-1;++c<this.length;)b(this.keys[c],this[c],c);return this};c=null;return d}({},r,s));n.register("$23",function(d,c,f){function g(){c.console&&console.error&&
|
67 |
+
console.error("Abstract method not implemented")}function b(b){this._class=b}b.prototype._validate=function(b){var a,d=!0;for(a in this)this[a]===g&&(c.console&&console.error&&console.error((b||"Object")+"."+a+"() not implemented"),d=!1);return d};d.init=function(c){var a=-1,d,e=new b;if(c)for(;d=c[++a];)e[d]=g;return e};d.validate=function(b){var a=/function (\w+)\(/.exec(b.toString())?RegExp.$1:"";b.prototype._validate(a)};return d}({},r,s));n.register("$16",function(d,c,f){function g(){}d.extend=
|
68 |
+
function(b){return b.prototype=new g};c=g.prototype=n.require("$23","abstract.js").init(["add","load","locale"]);c.row=function(b){return this.rows[b]};c.lock=function(b){this.locale(b||{lang:"zz",region:"ZZ",label:"Unknown",nplurals:1,pluraleq:"n!=1"});return this.loc};c.unlock=function(){var b=this.loc;this.loc=null;return b};c.each=function(b){this.rows.each(b);return this};c.indexOf=function(b){null==b.idx&&(b.idx=this.rows.indexOf(b.hash()));return b.idx};c.get=function(b){return this.rows&&
|
69 |
+
this.rows.get(b)};c.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,e){b.idx=e}),b}};c.reIndex=function(b,c){var a=this.indexOf(b),d=b.hash(),e=this.rows.indexOf(d);return e===a?a:-1!==e?(c=(c||0)+1,b.source("Error, duplicate "+String(c)+": "+b.source()),this.reIndex(b,c)):this.rows.key(a,d)};c=null;return d}({},r,s));n.register("$17",function(d,c,f){function g(){this.id=this._id=this.ref=this.cmt=
|
70 |
+
this.xcmt="";this.src=[];this.msg=[];this.status=0}d.extend=function(b){return b.prototype=new g};c=g.prototype;c.flag=function(b,c){var a=b===(b&this.status);if(null==c)return a;c?this.status|=b:a&&(this.status^=b);return this};c.fuzzy=function(b){return this.flag(4,b)};c.source=function(b,c){if(null==b)return this.src[0];this.src[0]=b;null!=c&&this.plural(c);return this};c.plural=function(b,c){if(null==b)return this.src[c||1];this.src[c||1]=b||"";return this};c.each=function(b){for(var c=-1;++c<
|
71 |
+
this.msg.length;)b(c,this.msg[c]);return this};c.translate=function(b,c){this.msg[c||0]=b||"";return this};c.untranslate=function(b){null!=b&&(this.msg[b]="");for(b=0;b<this.msg.length;b++)this.msg[b]="";return this};c.translation=function(b){return this.msg[b||0]||""};c.translated=function(b){if(null!=b)return!!this.translation(b);for(b=0;b<this.msg.length;b++)if(!this.msg[b])return!1;return!0};c.comment=function(b){if(null==b)return this.cmt;this.cmt=b||"";return this};c.notes=function(b){if(null==
|
72 |
+
b)return this.xcmt;this.xcmt=b||"";return this};c.refs=function(b){if(null==b)return this.ref;this.ref=b||"";return this};c.format=function(b){if(null==b)return this.fmt;this.fmt=b;return this};c.context=function(b){if(null==b)return this.src[2]||"";this.src[2]=b||"";return this};c.toString=c.toText=function(){var b=this.src.concat(this.msg);this.id&&b.unshift(this.id);return b.join(" ")};c.weight=function(){var b=0;this.translation()||(b+=2);this.fuzzy()&&(b+=1);return b};c.equals=function(b){return this===
|
73 |
+
b||this.source()===b.source()&&this.context()===b.context()};c.hash=function(){return this.id};c.normalize=function(){for(var b=-1;++b<this.msg.length;)this.msg[b]=this.src[b]||""};c=null;return d}({},r,s));n.register("$3",function(d,c,f){function g(a){return{"Project-Id-Version":"PACKAGE VERSION","Report-Msgid-Bugs-To":"","POT-Creation-Date":a||"","POT-Revision-Date":a||"","PO-Revision-Date":a||"","Last-Translator":"","Language-Team":"",Language:"","Plural-Forms":"","MIME-Version":"1.0","Content-Type":"text/plain; charset=UTF-8",
|
74 |
+
"Content-Transfer-Encoding":"8bit","X-Poedit-SourceCharset":"UTF-8"}}function b(a,b){var c=a||"";b&&(c+="\x00"+b);return c}function k(){return n.require("$15","collection.js").init()}function a(a){return a.replace(/(["\\])/g,"\\$1").replace(/\n/g,"\\n")}function l(a){this.head={};this.headers(g(this.now()));this.locale(a);this.length=0;this.rows=k()}function e(a,b){this.src=[a||""];this.msg=[b||""]}d.create=function(a){return new l(a)};var q=d.quote=function(b){if(!b)return'""';for(var c=b.split(/(?:\r\n|\n|\r)/g),
|
75 |
+
e=c.length-1,d=[],f=-1,g;++f<c.length;){b=c[f];for(e&&e!==f&&(b+="\n");b&&b.charAt(77);){for(g=77;--g;)if(-1!==" \n\r.?!,;:-".indexOf(b.charAt(g))){g++;break}g||(g=77);d.push(a(b.substr(0,g)));b=b.substr(g)}b&&d.push(a(b))}d[1]&&d.unshift("");return'"'+d.join('"\n"')+'"'},p=d.wrap=function(a,b,c){if(0!==c){null==c&&(c=79);for(var e=c+1,d=a.split(/(?:\r\n|\n|\r)/g),f=[],g=-1,v;++g<d.length;){for(a=d[g];a&&a.charAt(e);){for(v=c;--v;)if(-1!==" \n\r.?!,;:-".indexOf(a.charAt(v))){v++;break}v||(v=e);f.push(a.substr(0,
|
76 |
+
v));a=a.substr(v)}a&&f.push(a)}a=f}else a=a.split(/(?:\r\n|\n|\r)/g);return b+a.join("\n"+b)};c=n.require("$16","messages.js").extend(l);c.now=function(){return(new Date).toString()};c.header=function(a,b){if(null==b)return this.headers()[a]||"";this.head[a]=b||"";return this};c.headers=function(a){var b;if(null!=a){for(b in a)this.head[b]=a[b];return this}var c=this.locale(),e=this.now();a={};for(b in this.head)a[b]=String(this.head[b]);c?(a.Language=c.label||"Unknown locale",a["Plural-Forms"]="nplurals="+
|
77 |
+
(c.nplurals||"2")+"; plural="+(c.pluraleq||"n!=1"),a["X-Loco-Target-Locale"]=(c.lang||"en")+"_"+(c.region||"GB"),a["PO-Revision-Date"]=e,delete a["POT-Revision-Date"]):(a.Language="",a["Plural-Forms"]="nplurals=INTEGER; plural=EXPRESSION",a["POT-Revision-Date"]=e,a["PO-Revision-Date"]="YEAR-MO-DA HO:MI+ZONE");a["X-Generator"]="Loco - https://localise.biz/";return a};c.locale=function(a){if(null==a)return this.loc;this.loc=a||{lang:"en",region:"GB",plurals:["one","other"],pluraleg:[1,0],nplurals:2,
|
78 |
+
pluraleq:"n!=1",label:"English"};this.loc.toString=function(){return this.lang+"_"+this.region};return this};c.get=function(a,c){var e=b(a,c);return this.rows.get(e)};c.add=function(a,b){a instanceof e||(a=new e(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};c.load=function(a){for(var b=-1,c,d,f,g,k=[],v=[],B=[],z=[];++b<a.length;)if(c=a[b],null==c.parent){if(d=c.source||
|
79 |
+
c.id,f=c.context,d||f)g=new e(d,c.target||""),g._id=c._id,f&&g.context(f),c.flag&&g.flag(c.flag,!0),c.comment&&g.comment(c.comment),c.notes&&g.notes(c.notes),c.refs&&g.refs(c.refs),null!==c.format&&g.format(c.format),c.message=g,g.translation()?g.fuzzy()?B.push(g):v.push(g):z.push(g)}else k.push(c);for(b=-1;++b<k.length;)try{c=k[b];d=c.source||c.id;g=a[c.parent]&&a[c.parent].message;if(!g)throw Error("parent missing for plural "+d);1===c.plural&&g.plural(d);g.translate(c.target||"",c.plural)}catch(l){}d=
|
80 |
+
[z,B,v];for(b=0;3>b;b++)for(c=d[b],a=-1;++a<c.length;)try{this.add(c[a])}catch(q){}return this};c.merge=function(a){var b,c=this.rows,e=k(),d={add:[],del:[]};a=a.rows;this.rows.each(function(b,c){a.get(b)||d.del.push(c)});a.each(function(a,f){try{(b=c.get(a))?(b.ref=f.ref,b.fmt=f.fmt):(b=f,d.add.push(b)),b.idx=e.add(a,b)}catch(h){}});this.rows=e;this.length=e.length;return d};c.toString=function(){var a,b=[],c=[],d=this.headers(),f=!this.loc;for(a in d)c.push(a+": "+d[a]);c=new e("",c.join("\n"));
|
81 |
+
f&&(c.comment("Loco Gettext template"),c.fuzzy(!0));b.push(c.toString());b.push("");this.rows.each(function(a,c){a&&(b.push(c.toString(f)),b.push(""))});return b.join("\n")};c=n.require("$17","message.js").extend(e);c.hash=function(){return b(this.source(),this.context())};c.toString=function(a){var b,c=[];this.cmt&&c.push(p(this.cmt,"# ",0));this.xcmt&&c.push(p(this.xcmt,"#. ",0));b=this.ref;this._id&&(b+=(b?" ":"")+"loco:"+this._id);b&&/\S/.test(b)&&c.push(p(b,"#: ",79));!a&&this.fuzzy()&&c.push("#, fuzzy");
|
82 |
+
this.fmt?c.push("#, "+this.fmt+"-format"):null!=this.fmt&&c.push("#, no-c-format");this.src[2]&&c.push("msgctxt "+q(this.src[2]));c.push("msgid "+q(this.src[0]));if(null==this.src[1])c.push("msgstr "+q(a?"":this.msg[0]));else for(b=-1,c.push("msgid_plural "+q(this.src[1]));++b<this.msg.length;)c.push("msgstr["+b+"] "+q(a?"":this.msg[b]));return c.join("\n")};c.compare=function(a,b){var c=this.weight(),e=a.weight();if(c>e)return 1;if(c<e)return-1;if(b){c=this.hash().toLowerCase();e=a.hash().toLowerCase();
|
83 |
+
if(c<e)return 1;if(c>e)return-1}return 0};c=c=null;return d}({},r,s));n.register("$5",{"\u00e1":"a","\u00e0":"a","\u0103":"a","\u1eaf":"a","\u1eb1":"a","\u1eb5":"a","\u1eb3":"a","\u00e2":"a","\u1ea5":"a","\u1ea7":"a","\u1eab":"a","\u1ea9":"a","\u01ce":"a","\u00e5":"a","\u01fb":"a","\u00e4":"a","\u01df":"a","\u00e3":"a","\u0227":"a","\u01e1":"a","\u0105":"a","\u0101":"a","\u1ea3":"a","\u0201":"a","\u0203":"a","\u1ea1":"a","\u1eb7":"a","\u1ead":"a","\u1e01":"a","\u01fd":"\u00e6","\u01e3":"\u00e6","\u1e03":"b",
|
84 |
+
"\u1e05":"b","\u1e07":"b","\u0107":"c","\u0109":"c","\u010d":"c","\u010b":"c","\u00e7":"c","\u1e09":"c","\u010f":"d","\u1e0b":"d","\u1e11":"d","\u0111":"d","\u1e0d":"d","\u1e13":"d","\u1e0f":"d","\u00f0":"d","\ua77a":"d","\u01c6":"\u01f3","\u00e9":"e","\u00e8":"e","\u0115":"e","\u00ea":"e","\u1ebf":"e","\u1ec1":"e","\u1ec5":"e","\u1ec3":"e","\u011b":"e","\u00eb":"e","\u1ebd":"e","\u0117":"e","\u0229":"e","\u1e1d":"e","\u0119":"e","\u0113":"e","\u1e17":"e","\u1e15":"e","\u1ebb":"e","\u0205":"e","\u0207":"e",
|
85 |
+
"\u1eb9":"e","\u1ec7":"e","\u1e19":"e","\u1e1b":"e","\u1e1f":"f","\ua77c":"f","\u01f5":"g","\u011f":"g","\u011d":"g","\u01e7":"g","\u0121":"g","\u0123":"g","\u1e21":"g","\ua7a1":"g","\u1d79":"g","\u0125":"h","\u021f":"h","\u1e27":"h","\u1e23":"h","\u1e29":"h","\u0127":"h","\u210f":"h","\u1e25":"h","\u1e2b":"h","\u1e96":"h","\u00ed":"i","\u00ec":"i","\u012d":"i","\u00ee":"i","\u01d0":"i","\u00ef":"i","\u1e2f":"i","\u0129":"i","\u012f":"i","\u012b":"i","\u1ec9":"i","\u0209":"i","\u020b":"i","\u1ecb":"i",
|
86 |
+
"\u1e2d":"i","\u0135":"j","\u01f0":"j","\u1e31":"k","\u01e9":"k","\u0137":"k","\ua7a3":"k","\u1e33":"k","\u1e35":"k","\u013a":"l","\u013e":"l","\u013c":"l","\u0142":"l","\u1e37":"l","\u1e39":"l","\u1e3d":"l","\u1e3b":"l","\u0140":"l","\u1e3f":"m","\u1e41":"m","\u1e43":"m","\u0144":"n","\u01f9":"n","\u0148":"n","\u00f1":"n","\u1e45":"n","\u0146":"n","\ua7a5":"n","\u1e47":"n","\u1e4b":"n","\u1e49":"n","\u00f3":"o","\u00f2":"o","\u014f":"o","\u00f4":"o","\u1ed1":"o","\u1ed3":"o","\u1ed7":"o","\u1ed5":"o",
|
87 |
+
"\u01d2":"o","\u00f6":"o","\u022b":"o","\u0151":"o","\u00f5":"o","\u1e4d":"o","\u1e4f":"o","\u022d":"o","\u022f":"o","\u0231":"o","\u00f8":"o","\u01ff":"o","\u01eb":"o","\u01ed":"o","\u014d":"o","\u1e53":"o","\u1e51":"o","\u1ecf":"o","\u020d":"o","\u020f":"o","\u01a1":"o","\u1edb":"o","\u1edd":"o","\u1ee1":"o","\u1edf":"o","\u1ee3":"o","\u1ecd":"o","\u1ed9":"o","\u1e55":"p","\u1e57":"p","\u0155":"r","\u0159":"r","\u1e59":"r","\u0157":"r","\ua7a7":"r","\u0211":"r","\u0213":"r","\u1e5b":"r","\u1e5d":"r",
|
88 |
+
"\u1e5f":"r","\ua783":"r","\u015b":"s","\u1e65":"s","\u015d":"s","\u0161":"s","\u1e67":"s","\u1e61":"s","\u015f":"s","\ua7a9":"s","\u1e63":"s","\u1e69":"s","\u0219":"s","\u017f":"s","\ua785":"s","\u1e9b":"s","\u0165":"t","\u1e97":"t","\u1e6b":"t","\u0163":"t","\u1e6d":"t","\u021b":"t","\u1e71":"t","\u1e6f":"t","\ua787":"t","\u00fa":"u","\u00f9":"u","\u016d":"u","\u00fb":"u","\u01d4":"u","\u016f":"u","\u00fc":"u","\u01d8":"u","\u01dc":"u","\u01da":"u","\u01d6":"u","\u0171":"u","\u0169":"u","\u1e79":"u",
|
89 |
+
"\u0173":"u","\u016b":"u","\u1e7b":"u","\u1ee7":"u","\u0215":"u","\u0217":"u","\u01b0":"u","\u1ee9":"u","\u1eeb":"u","\u1eef":"u","\u1eed":"u","\u1ef1":"u","\u1ee5":"u","\u1e73":"u","\u1e77":"u","\u1e75":"u","\u1e7d":"v","\u1e7f":"v","\u1e83":"w","\u1e81":"w","\u0175":"w","\u1e98":"w","\u1e85":"w","\u1e87":"w","\u1e89":"w","\u1e8d":"x","\u1e8b":"x","\u00fd":"y","\u1ef3":"y","\u0177":"y","\u1e99":"y","\u00ff":"y","\u1ef9":"y","\u1e8f":"y","\u0233":"y","\u1ef7":"y","\u1ef5":"y","\u017a":"z","\u1e91":"z",
|
90 |
+
"\u017e":"z","\u017c":"z","\u1e93":"z","\u1e95":"z","\u01ef":"\u0292","\u1f00":"\u03b1","\u1f04":"\u03b1","\u1f84":"\u03b1","\u1f02":"\u03b1","\u1f82":"\u03b1","\u1f06":"\u03b1","\u1f86":"\u03b1","\u1f80":"\u03b1","\u1f01":"\u03b1","\u1f05":"\u03b1","\u1f85":"\u03b1","\u1f03":"\u03b1","\u1f83":"\u03b1","\u1f07":"\u03b1","\u1f87":"\u03b1","\u1f81":"\u03b1","\u03ac":"\u03b1","\u1f71":"\u03b1","\u1fb4":"\u03b1","\u1f70":"\u03b1","\u1fb2":"\u03b1","\u1fb0":"\u03b1","\u1fb6":"\u03b1","\u1fb7":"\u03b1",
|
91 |
+
"\u1fb1":"\u03b1","\u1fb3":"\u03b1","\u1f10":"\u03b5","\u1f14":"\u03b5","\u1f12":"\u03b5","\u1f11":"\u03b5","\u1f15":"\u03b5","\u1f13":"\u03b5","\u03ad":"\u03b5","\u1f73":"\u03b5","\u1f72":"\u03b5","\u1f20":"\u03b7","\u1f24":"\u03b7","\u1f94":"\u03b7","\u1f22":"\u03b7","\u1f92":"\u03b7","\u1f26":"\u03b7","\u1f96":"\u03b7","\u1f90":"\u03b7","\u1f21":"\u03b7","\u1f25":"\u03b7","\u1f95":"\u03b7","\u1f23":"\u03b7","\u1f93":"\u03b7","\u1f27":"\u03b7","\u1f97":"\u03b7","\u1f91":"\u03b7","\u03ae":"\u03b7",
|
92 |
+
"\u1f75":"\u03b7","\u1fc4":"\u03b7","\u1f74":"\u03b7","\u1fc2":"\u03b7","\u1fc6":"\u03b7","\u1fc7":"\u03b7","\u1fc3":"\u03b7","\u1f30":"\u03b9","\u1f34":"\u03b9","\u1f32":"\u03b9","\u1f36":"\u03b9","\u1f31":"\u03b9","\u1f35":"\u03b9","\u1f33":"\u03b9","\u1f37":"\u03b9","\u03af":"\u03b9","\u1f77":"\u03b9","\u1f76":"\u03b9","\u1fd0":"\u03b9","\u1fd6":"\u03b9","\u03ca":"\u03b9","\u0390":"\u03b9","\u1fd3":"\u03b9","\u1fd2":"\u03b9","\u1fd7":"\u03b9","\u1fd1":"\u03b9","\u1f40":"\u03bf","\u1f44":"\u03bf",
|
93 |
+
"\u1f42":"\u03bf","\u1f41":"\u03bf","\u1f45":"\u03bf","\u1f43":"\u03bf","\u03cc":"\u03bf","\u1f79":"\u03bf","\u1f78":"\u03bf","\u1fe4":"\u03c1","\u1fe5":"\u03c1","\u1f50":"\u03c5","\u1f54":"\u03c5","\u1f52":"\u03c5","\u1f56":"\u03c5","\u1f51":"\u03c5","\u1f55":"\u03c5","\u1f53":"\u03c5","\u1f57":"\u03c5","\u03cd":"\u03c5","\u1f7b":"\u03c5","\u1f7a":"\u03c5","\u1fe0":"\u03c5","\u1fe6":"\u03c5","\u03cb":"\u03c5","\u03b0":"\u03c5","\u1fe3":"\u03c5","\u1fe2":"\u03c5","\u1fe7":"\u03c5","\u1fe1":"\u03c5",
|
94 |
+
"\u1f60":"\u03c9","\u1f64":"\u03c9","\u1fa4":"\u03c9","\u1f62":"\u03c9","\u1fa2":"\u03c9","\u1f66":"\u03c9","\u1fa6":"\u03c9","\u1fa0":"\u03c9","\u1f61":"\u03c9","\u1f65":"\u03c9","\u1fa5":"\u03c9","\u1f63":"\u03c9","\u1fa3":"\u03c9","\u1f67":"\u03c9","\u1fa7":"\u03c9","\u1fa1":"\u03c9","\u03ce":"\u03c9","\u1f7d":"\u03c9","\u1ff4":"\u03c9","\u1f7c":"\u03c9","\u1ff2":"\u03c9","\u1ff6":"\u03c9","\u1ff7":"\u03c9","\u1ff3":"\u03c9","\u0491":"\u0433","\u0450":"\u0435","\u0451":"\u0435","\u04c2":"\u0436",
|
95 |
+
"\u045d":"\u0438","\u04e3":"\u0438","\u04ef":"\u0443"});n.register("$27",function(d,c,f){var g=c.requestAnimationFrame,b=c.cancelAnimationFrame,k=0;if(!g||!b)for(var a in{ms:1,moz:1,webkit:1,o:1})if(g=c[a+"RequestAnimationFrame"])if(b=c[a+"CancelAnimationFrame"]||c[a+"CancelRequestAnimationFrame"])break;g&&b||(g=function(a){var b=l();timeToCall=Math.max(0,16-(b-k));nextTime=b+timeToCall;timerId=c.setTimeout(function(){a(nextTime)},timeToCall);k=nextTime;return timerId},b=function(a){clearTimeout(a)});
|
96 |
+
var l=Date.now||function(){return(new Date).getTime()};d.loop=function(a,c){function d(){k=g(d,c);a(f++)}var f=0,k;d();return{stop:function(){k&&b(k);k=null}}};return d}({},r,s));n.register("$26",function(d,c,f){function g(b,c,e,d){if(a){var f=e;e=function(a){if((a.MSPOINTER_TYPE_TOUCH||"touch")===a.pointerType)return f(a)}}b.addEventListener(c,e,d);return{unbind:function(){b.removeEventListener(c,e,d)}}}function b(a){a.preventDefault();a.stopPropagation();return!1}var k,a=!!c.navigator.msPointerEnabled,
|
97 |
+
l=a?"MSPointerDown":"touchstart",e=a?"MSPointerMove":"touchmove",q=a?"MSPointerUp":"touchend";d.ok=function(a){null==k&&(k="function"===typeof f.body.addEventListener);k&&a&&a(d);return k};d.ms=function(){return a};d.dragger=function(a,c){function d(b){a.addEventListener(b,h[b],!1)}function f(b){a.removeEventListener(b,h[b],!1)}var h={};h[l]=function(a){p(a,function(b,e){e.type=l;c(a,e,g)});d(e);d(q);return!0};h[q]=function(a){f(e);f(q);p(a,function(b,e){e.type=q;c(a,e,g)});return!0};h[e]=function(a){p(a,
|
98 |
+
function(b,d){d.type=e;c(a,d,g)});return b(a)};d(l);var g={kill:function(){f(l);f(e);f(q);a=g=c=null}};return g};d.swiper=function(c,d,f){function g(a){c.addEventListener(a,D[a],!1)}function k(a){c.removeEventListener(a,D[a],!1)}function m(){v&&v.stop();v=null}var v,B,z,D={},C=[],N=[],K=[];D[l]=function(a){B=!1;m();var b=h();p(a,function(a,c){C[a]=b;N[a]=c.clientX;K[a]=c.clientY});z=c.scrollLeft;return!0};D[q]=function(a){p(a,function(a,b){var c=h()-C[a],e=N[a]-b.clientX,c=Math.abs(e)/c;d(c,e?0>e?
|
99 |
+
-1:1:0)});z=null;return!0};D[e]=function(a){var e,d;null==z||p(a,function(a,b){e=N[a]-b.clientX;d=K[a]-b.clientY});if(d&&Math.abs(d)>Math.abs(e))return B=!0;e&&(B=!0,c.scrollLeft=Math.max(0,z+e));return b(a)};if(!a||f)g(l),g(e),g(q),a&&(c.className+=" mstouch");return{kill:function(){k(l);k(e);k(q);m()},swiped:function(){return B},ms:function(){return a},snap:function(b){a&&!f&&(c.style["-ms-scroll-snap-points-x"]="snapInterval(0px,"+b+"px)",c.style["-ms-scroll-snap-type"]="mandatory",c.style["-ms-scroll-chaining"]=
|
100 |
+
"none")},scroll:function(a,b,e){m();var d=c.scrollLeft,f=a>d?1:-1,h=Math[1===f?"min":"max"],g=Math.round(16*b*f);return v=n.require("$27","fps.js").loop(function(b){b&&(d=Math.max(0,h(a,d+g)),c.scrollLeft=d,a===d&&(m(),e&&e(d)))},c)}}};d.start=function(a,b){return g(a,l,b,!1)};d.move=function(a,b){return g(a,e,b,!1)};d.end=function(a,b){return g(a,q,b,!1)};var p=d.each=function(b,c){if(a)(b.MSPOINTER_TYPE_TOUCH||"touch")===b.pointerType&&c(0,b);else for(var e=-1,d=(b.originalEvent||b).changedTouches||
|
101 |
+
[];++e<d.length;)c(e,d[e])},h=Date.now||function(){return(new Date).getTime()};return d}({},r,s));n.register("$24",function(d,c,m){function g(a,b){var c=[].slice.call(arguments,2);return function(e){return a.apply(b,[e].concat(c))}}function b(a,b){var c=a.id,e=c&&y[c],d=e&&e.parent();if(!e||!d)return null;var f=(c=d.dir===r)?"X":"Y",c=c?p:h,g=c(d.el),k=b["offset"+f];null==k&&(k=b["page"+f]-c(a));k&&(g+=k);return{move:function(a){d.resize(a["page"+f]-g,e);return!0}}}function k(a,c){function e(){f(m).unbind("mousemove",
|
102 |
+
d);s=null;return!0}function d(a){s?s.move(a):e();return!0}if(s)return!0;s=b(a.target,a);if(!s)return!0;f(m).one("mouseup",e).mousemove(d);return q(a)}function a(a,c){var e=c.type;"touchmove"===e?s&&s.move(c):"touchstart"===e?s=b(a.target,c):"touchend"===e&&s&&(s=null)}function l(a){var b=f(a.target).closest("div.wg-tr"),c=b.length&&b.closest("div.is-table");(c=c&&y[c.attr("id")])&&c.selectRow(Number(b.attr("data-row")));return q(a)}function e(a){var b;b=a.keyCode;if(40===b)b=1;else if(38===b)b=-1;
|
103 |
+
else return!0;if(a.shiftKey||a.ctrlKey||a.metaKey)return!0;this.nextRow(b);return q(a)}function q(a){a.stopPropagation();a.preventDefault();return!1}function p(a,b){b||(b=m.body);for(var c=a.offsetLeft||0;(a=a.offsetParent)&&a!==b;)c+=a.offsetLeft||0;return c}function h(a,b){b||(b=m.body);for(var c=a.offsetTop||0;(a=a.offsetParent)&&a!==b;)c+=a.offsetTop||0;return c}function t(a){function b(){var c=a.innerHTML;c!==e&&(e=c,f(a).trigger("wgChange",[c]));return!0}var c=u.ie()?["keyup","paste","input"]:
|
104 |
+
["input"],e=a.innerHTML,d=e;return f(a).attr("contenteditable","true").focus(function(){for(var e=f(a),d=-1;++d<c.length;)e.bind(c[d],b);return!0}).blur(function(){for(var h=f(a),g=-1;++g<c.length;)h.unbind(c[g]);b();d!==e&&f(a).trigger("wgChanged",[a]);return!0}).bind("forced",function(){e=null;b()})}function w(a){this.el=a;this.id=a.id;this.pos=this.index=0;this.css=["wg-cell"];y[a.id]=this;this.clear()}var u=n.require("$2","html.js"),r=1,y={},s=!1;d.init=function(b){var c=new w(b);c.restyle().redraw();
|
105 |
+
c.root=!0;n.require("$26","touch.js").ok(function(c){c.dragger(b,a)});f(b).mousedown(k);return c};c=w.prototype;c.each=function(a){for(var b=-1;++b<this.length;)a(b,this.cells[b]);return this};c.bind=function(){return this.$("bind",arguments)};c.unbind=function(){return this.$("unbind",arguments)};c.find=function(a){return f(this.el).find(a)};c.$=function(a,b){f.fn[a].apply(f(this.el),b);return this};c.parent=function(){return this.pid&&y[this.pid]};c.splitx=function(){return this._split(r,arguments)};
|
106 |
+
c.splity=function(){return this._split(2,arguments)};c._split=function(a,b){this.dir&&this.dir!==a&&this.clear();this.dir=a;var c=-1,e,d=this.length,f=b.length,g=1/(d+f),h=0;if(d)throw Error("Todo: implement re-split");for(;++c<f;){e=u.el();this.body.appendChild(e);for(var k=e,l=b[c],q=l,p=1;y[l];)l=q+"-"+ ++p;k.id=l;e=new w(e);e.index=d+c;e.pid=this.id;e.pos=h;h+=g;this.cells.push(e);this.length++}this.restyle().redraw();return this.cells};c.clear=function(){for(var a=-1,b;++a<this.length;)b=this.cells[a].clear(),
|
107 |
+
delete y[b.id];this.cells=[];this.length=0;this.nav&&this.el.removeChild(this.nav);this.nav=null;this.body&&(this.field&&u.ie()&&(f(this.body).triggerHandler("blur"),this.field=null),this.table&&(this.table=null),this.el.removeChild(this.body));this.body=this.el.appendChild(u.el("","wg-body"));return this};c.resize=function(a,b){if(!b&&(b=this.cells[1],!b))return;var c=b.index,e=f(this.el)[this.dir===r?"width":"height"](),d=this.cells[c+1],c=this.cells[c-1];pad=(b.body||b.el.firstChild).offsetTop||
|
108 |
+
0;max=(d?d.pos*e:e)-pad;min=c?c.pos*e:0;b.pos=Math.min(max,Math.max(min,a))/e;(e=this.parent())&&e.table?e.redraw():this.redraw();return this};c.distribute=function(){for(var a,b=0;b<arguments.length;)a=Math.max(0,Math.min(1,arguments[b++])),this.cells[b].pos=a;this.redraw();return this};c.restyle=function(){var a=this.css.slice();this.root&&a.push("wg-root");0===this.index?a.push("first"):a.push("not-first");this.dir&&(a.push("wg-split"),2===this.dir?a.push("wg-split-y"):a.push("wg-split-x"));this.t&&
|
109 |
+
a.push("has-title");this.nav&&a.push("has-nav");this.table?a.push("is-table"):null!=this.field&&(a.push("is-field"),this.field||a.push("readonly"));this.el.className=a.join(" ");return this};c.redraw=function(){if(this.body){var a=this.el.clientHeight||0,b=this.body.offsetTop||0;b<a&&(a-=b);this.body.style.height=String(a)+"px"}for(var a=this.length,c,e=1,d=2===this.dir?"height":"width";0<=--a;)b=this.cells[a],this.nav?c=1:(b.fixed&&(b.pos=b.fixed/f(this.el)[d]()),c=e-b.pos,e=b.pos),b.el.style[d]=
|
110 |
+
String(100*c)+"%",b.restyle().redraw();this.table&&this.redrawTable();return this};c.redrawTable=function(){var a=-1,b=this.cells[0],c=this.cells[1],a=f(c.body).width(),e=c.body.firstChild,c=e.childNodes;e.style.width=a+"px";for(var a=b.length,d=1;0<=--a;)e=b.cells[a],c[a].style.width=String(100*(d-e.pos))+"%",d=e.pos;return!0};c.contents=function(a){if(null==a)return this.body.innerHTML;this.cells.length?this.clear():this.body&&this.el.removeChild(this.body);this.body=this.el.appendChild(u.el("",
|
111 |
+
"wg-content"));if("string"===typeof a)f(this.body)._html(a);else if(a)this.append(a);else throw console.log(a),Error("Bad stuff");this.redraw();return this};c.textarea=function(a,b){var c=u.txt(a);this.contents(c);(this.field=b)&&t(this.body);this.restyle();return this};c.rtl=function(){this.bodyAtt("dir","RTL");return this};c.ltr=function(){this.bodyAtt("dir","LTR");return this};c.bodyAtt=function(a,b){if(this.body)return null!=b&&this.body.setAttribute(a,b),this.body.getAttribute(a)};c.editable=
|
112 |
+
function(){var a=this.field&&f(this.el).find("div[contenteditable]");return a&&a.length?a.eq(0):null};c.append=function(a){a&&(a.nodeType?u.init(this.body.appendChild(a)):u.init(f(a).appendTo(this.body)));return this};c.prepend=function(a){var b=this.body;if(a.nodeType){var c=b.firstChild;u.init(c?b.insertBefore(a,c):b.appendChild(a))}else u.init(f(a).prependTo(b));return this};c.header=function(a,b){if(!arguments.length)return this.el.getElementsByTagName("h2")[0];var c=["wg-title"];b&&c.push(b);
|
113 |
+
this.t=u.txt(a||"");this.el.insertBefore(u.el("h2",c.join(" ")),this.body).appendChild(this.t);this.restyle().redraw();return this};c.title=function(a){this.t?this.t.nodeValue=a||"":this.header(a);return this.t};c.tabulate=function(a){var b=this.id,c=[],d=[];rows=this.splity(b+"-thead",b+"-body");thead=rows[0];tbody=rows[1];thead.css.push("wg-thead");tbody.css.push("wg-tbody");a.eachCol(function(a,e){c.push(b+"-col"+a);d.push(e)});for(var k=-1,q,p=u.el("","wg-cols"),m=thead._split(r,c);++k<m.length;)q=
|
114 |
+
m[k],q.header(d[k]),p.appendChild(u.el("","wg-col "+(0===k?"":"not-")+"first"));tbody.contents(p);a.eachRow(function(a,b,c){tbody._addRow(b,c)});f(tbody.el).mousedown(l);this.lock();this.table=a;this.restyle().redraw();q=thead.cells[0];tbody.fixed=h(q.body,q.el)||20;this.resize(tbody.fixed);f(p).attr("tabindex","-1").keydown(g(e,this));return p};c.lock=function(){this.body.className+=" locked";return this};c.addRow=function(a,b){this.table&&this.cells[1]&&this.cells[1]._addRow(a,b);return this};c._addRow=
|
115 |
+
function(a,b){var c,e=this.body.firstChild.childNodes,d=e.length,f=e[0].childNodes.length,h=-1;for(b=b&&"wg-tr "+b||"wg-tr";++h<d;)c=e[h].appendChild(u.el("",b)),c.setAttribute("data-row",f),c=c.appendChild(u.el("","wg-td")),a[h]&&/\S/.test(a[h])?c.appendChild(u.txt(a[h])):c.innerHTML=" ";return e};c.tr=function(a){for(var b=-1,c,e=[],d=this.cells[1].body.firstChild.childNodes;++b<d.length;)(c=d[b].childNodes[a])&&e.push(c);return e};c.td=function(a,b){try{return this.cells[1].body.firstChild.childNodes[b].childNodes[a].firstChild}catch(c){return null}};
|
116 |
+
c.nextRow=function(a,b,c){for(var e=this.trow,d;!(d=this.selectRow(e+=a,b));)if(!1!==d){if(c&&this.table.size()){if(1===a){e=-1;continue}if(-1===a){e=this.table.size();continue}}break}return this.trow};c.selectRow=function(a,b){var c=this.table&&this.table.row(a);if(!c)return null;var e=this.tr(a);if(!e.length)return null;var e=f(e),d=this.cells[1],h=d.body,g=f(h.firstChild);if(g.hasClass("filtered")&&!e.hasClass("filtered"))return!1;null!==this.trow&&f(this.tr(this.trow)).removeClass("selected");
|
117 |
+
e.addClass("selected");this.trow=a;if(!b){var k=h.scrollTop;g.focus();k&&(h.scrollTop=k)}d.scrollTo(e[0],!0);g.trigger("wgRowSelect",[a,c]);return this};c.deselectRow=function(){if(this.table){var a=f(this.cells[1].body.firstChild),b=this.trow;a.find("div.selected").removeClass("selected");this.row=null;a.trigger("wgRowDeselect",[b])}};c.filterRows=function(a){var b=-1,c;c=f(this.cells[1].body.firstChild);if(!a)return c.removeClass("filtered"),this;for(c.addClass("filtered").find("div.filtered").removeClass("filtered");++b<
|
118 |
+
a.length;)c=a[b],c=this.tr(c),c.length&&f(c).addClass("filtered");return this};c.scrollTo=function(a,b){var c;c=this.body.scrollTop;var e=h(a,this.body);if(c>e)c=e;else{var d=this.body.clientHeight,e=e+f(a).outerHeight();if(d+c<e)c=e-d;else return}b?this.body.scrollTop=c:f(this.body).stop(!0).animate({scrollTop:c},250)};c.navigize=function(a){function b(a,c){e=a.show();d=c.addClass("active");a.trigger("wgTabSelect",[a.data("index")]);return a}var c=this;c.nav&&c.el.removeChild(c.nav);c.nav=c.el.insertBefore(u.el("nav",
|
119 |
+
"wg-tabs"),c.body);var e,d,h=f(c.nav).click(function(a){var h=f(a.target),g=h.data("tab");if(g){var k=d;e&&e.hide();k&&k.removeClass("active");b(g,h).children().focus();c.redraw();return q(a)}});c.each(function(c,d){d.pos=0;var g=f(d.el).data("index",c),k=f('<a href="#'+d.id+'"></a>').data("tab",g).text(a[c]).appendTo(h);e?g&&g.hide():b(g,k)});c.lock();c.restyle().redraw();h=null;return c};c=null;return d}({},r,s));n.register("$18",function(d,c,m){function g(a){var b=[],c=m.createElement("p");c.innerHTML=
|
120 |
+
a;n.require("$2","html.js").plain(c,b);return b.join("\n")}function b(a){var b=[];a&&(a.fuzzy&&a.fuzzy()&&b.push("po-fuzzy"),a.translation()||b.push("po-empty"),a.comment()&&b.push("po-comment"));return b.join(" ")}function k(){this.unsaved=0;this.editable={source:!0,target:!0}}var a="poUpdate";d.extend=function(a){return a.prototype=new k};var l=k.prototype=n.require("$23","abstract.js").init(["getListColumns","getListHeadings","getListEntry"]);l.setRootCell=function(a){this.rootDiv=a;var b=n.require("$24",
|
121 |
+
"LocoWinGrid.js").init(a);f(c).resize(function(){b.redraw(!0);return!0});return b};l.bind=function(a,b){return f(this.rootDiv).bind(a,b)};l.setListCell=function(a){var b=this;b.listCell=a;a.bind("wgRowSelect",function(a,c,e){a=b.po.row(c);b.loadMessage(a);return!0}).bind("wgRowDeselect",function(){b.loadNothing();return!0})};l.setSourceCell=function(a){this.sourceCell=a;var b=a.find("p.notes");b.length||(b=f('<p class="notes"></p>').insertAfter(a.header()).hide());this.notesPara=b};l.next=function(a,
|
122 |
+
b,c){for(var d=this.listCell.trow,f,g;d!==f;){f=this.listCell.nextRow(a,!0,c);if(b&&(g=this.po.row(f),g.translated()))continue;break}return f};l.current=function(a){arguments.length&&this.loadMessage(a);return this.active};l.getTargetEditable=function(){return this.editable.target&&this.targetCell&&this.targetCell.editable()};l.getSourceEditable=function(){return this.editable.source&&this.sourceCell&&this.sourceCell.editable()||this.contextCell&&this.contextCell.editable()};l.searchable=function(a){a&&
|
123 |
+
(this.dict=a,this.po&&this.rebuildSearch());return this.dict&&!0};l.rebuildSearch=function(){var a=this;a.dict.clear();a.po.each(function(b,c,d){a.dict.add(d,c.toText())});this.lastSearch="";this.lastFound=this.po.length};l.filter=function(a,b){var c,d={};if(this.lastSearch===a)return this.lastFound||0;if(!this.po.length)return 0;if(a){if(this.lastSearch&&!this.lastFound&&0===a.indexOf(this.lastSearch))return 0;c=this.dict.find(a,d);d.words.length||(a="")}this.lastSearch=a;this.lastFound=c?c.length:
|
124 |
+
this.po.length;this.listCell.filterRows(c);d=this.active?this.po.indexOf(this.active):-1;if(-1===d||c&&-1===c.indexOf(d))c?c.length?this.listCell.selectRow(c[0],!0):this.listCell.deselectRow():this.listCell.selectRow(0,!0);b||this.fire("poFilter",[this.lastSearch,this.lastFound]);return this.lastFound};l.unsave=function(a){if(a=a||this.active){var c=this.po.indexOf(a),c=this.listCell.tr(c),d=c[0].className.replace(/\s*po-[a-z]+/g,""),d=d+(" "+b(a)+" po-unsaved");f(c).attr("class",d);this.fire("poUnsaved",
|
125 |
+
[++this.unsaved])}};l.save=function(a){if(this.unsaved||a)f(this.listTable).find("div.po-unsaved").removeClass("po-unsaved"),this.fire("poSave");this.unsaved=0;return this.po};l.fire=function(a,b){return f(this.rootDiv).trigger(a,b||[])};l.reload=function(){var a=this;if(a.po&&a.po.row){a.lastSearch&&(a.lastSearch="",a.lastFound=a.po.length,a.fire("poFilter",[a.lastSearch,a.lastFound]));var c;a.listTable&&(c=a.listTable?a.listTable.parentNode.scrollTop:0,a.listCell.clear());a.listTable=a.listCell.tabulate({row:function(b){b=
|
126 |
+
a.po.row(b);return a.getListEntry(b)},size:function(){return a.po.length},eachCol:function(b){for(var c=-1,d=a.getListHeadings();++c<d.length;)b(c,d[c])},eachRow:function(c){var d=0;a.po.each(function(f,g){c(d++,a.getListEntry(g),b(g))})}});c&&(a.listTable.parentNode.scrollTop=c);a.targetLocale=a.po.locale();a.editable.target=!!a.targetLocale;a.fire("poLoad");return!!a.po.length}a.listCell.clear().header("Error").contents("Invalid PO")};l.load=function(a){this.po=a;this.dict&&this.rebuildSearch();
|
127 |
+
this.reload()&&this.listCell.selectRow(0)};l.loadMessage=function(b){function c(d){var k=d.lang&&"en"!==d.lang&&d.label;f.targetCell.title(k?k+" translation:":"Translation:");if(B){var m=[],q=d.plurals||["Single","Other"],p=n.require("$15","collection.js").init();for(b.each(function(a,b){m.push(q[a]||"Form "+a);p.add("plural-"+a,b)});(k=m.length)<d.nplurals;)m.push(q[k]||"Form "+p.length),p.add("plural-"+k,"");children=l.splitx.apply(l,p.keys);l.each(function(a,b){b.textarea(p[a],s)});l.navigize(m).bind("wgTabSelect",
|
128 |
+
function(a,b){r=b})}else l.textarea(b.translation(),s);l.bind("wgChange",function(a,c){var d=g(c);b.translate(d,r);0===r&&f.updateListCell(b,"target");b.fuzzy&&b.fuzzy()?f.fuzzy(!1,b):f.unsave(b)}).bind("wgChanged",function(c){f.dict&&f.rebuildSearch();f.fire(a,[b])})}function d(){l.title("Context:");l.textarea(b.context(),!0);l.bind("wgChange",function(a,c){var d=g(c);b.context(d);b.source();f.updateListCell(b,"source");f.unsave(b)}).bind("wgChanged",function(){f.po.reIndex(b);f.dict&&f.rebuildSearch();
|
129 |
+
f.fire(a,[b])})}var f=this;f.unloadActive();f.active=b;f.commentCell&&f.commentCell.textarea(b.comment(),!0).bind("wgChange",function(a,c){var d=g(c);b.comment(d);f.fire("poComment",[b,d]);f.unsave(b)});var k=f.sourceCell,l=f.targetCell,m=f.notesPara,r=0,s=f.editable.target,A=f.editable.source,v=b.source()||"",B=b.plural()||"",z=b.notes();(function(){var c,d=k;m&&(z?m.text(z).show():m.text("").hide());k.title("Source text:");B?(c=k.splity(k.id+"-singular",k.id+"-plural"),d=c[0],c=c[1],d.header("Single:").textarea(v,
|
130 |
+
A),c.header("Plural:").textarea(B,A),k.lock()):k.textarea(v,A);A&&k.bind("wgChange",function(a,c){var d=g(c);k.id+"-plural"===a.target.parentNode.id?b.plural(d):(b.source(d),f.updateListCell(b,"source"));f.unsave(b)}).bind("wgChanged",function(c){k.id+"-plural"===c.target.parentNode.id||f.po.reIndex(b);f.dict&&f.rebuildSearch();f.fire(a,[b])})})();if(s){if(!f.targetLocale)throw Error("No target locale set");c(f.targetLocale)}else d();f.fire("poSelected",[b])};l.unloadActive=function(){this.notesPara&&
|
131 |
+
this.notesPara.text("").hide();this.sourceCell.unbind().clear();this.targetCell.unbind().clear();this.commentCell.unbind();this.active&&(this.fire("poDeselected",[this.active]),this.active=null)};l.loadNothing=function(){this.notesPara&&this.notesPara.text("").hide();this.unloadActive();this.commentCell.textarea("",!1);this.sourceCell.textarea("",!1).title("Source text not loaded:");this.targetCell.textarea("",!1).title("Translation not loaded:");this.fire("poSelected",[null])};l.updateListCell=function(a,
|
132 |
+
b){var c=this.getListColumns()[b],d=this.getListEntry(a)[c||0],g=this.po.indexOf(a),c=this.listCell.td(g,c);d&&/\S/.test(d)?f(c).text(d.replace("\n"," ")):f(c).html(" ")};l.fuzzy=function(b,c){c=c||this.active;if(!c)return null;var d=c.fuzzy();null!=b&&d!=b&&(c.fuzzy(b),this.fire("poFuzzy",[c,b]),this.fire(a,[c]),this.unsave(c));return d};l.add=function(b,c){var d,f=this.po.get(b,c);f?d=this.po.indexOf(f):(d=this.po.length,f=this.po.add(b,c),this.load(this.po),this.fire("poAdd",[f]),this.fire(a,
|
133 |
+
[f]));this.lastSearch&&this.filter("");this.listCell.selectRow(d);return f};l.del=function(b){if(b=b||this.active){var c=this.lastSearch,d=this.po.del(b);null!=d&&(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||(d=Math.min(d,this.po.length-1),this.listCell.selectRow(d))))}};l=null;return d}({},r,s));n.register("$7",function(d,c,f){function g(){}
|
134 |
+
d.init=function(b){var c=new g;b=c.setRootCell(b);var a=b.splity("po-list","po-edit"),d=a[0],e=a[1],a=e.splitx("po-trans","po-comment"),f=a[0],m=a[1].header("Comments:"),a=f.splity("po-source","po-target"),f=a[0].header("Source text:"),a=a[1].header("Translation:");b.distribute(0.34);e.distribute(0.8);c.setListCell(d);c.setSourceCell(f);c.targetCell=a;c.commentCell=m;c.editable.source=!1;c._locked=!0;c._validate("POEditor");return c};c=g.prototype=n.require("$18","base.js").extend(g);c.getListHeadings=
|
135 |
+
function(){return["Source text","Translation"]};c.getListColumns=function(){return{source:0,target:1}};c.getListEntry=function(b){if(!b)return["",""];var c=[b.id||b.source()||"",b.translation()||""];(b=b.context())&&(c[0]+=" [ "+b+" ]");return c};c.stats=function(){var b=this.po.length,c=0,a=0,d=0;this.po.each(function(b,f){f.translation()?f.fuzzy()?d++:c++:a++});return{t:b,p:String(c?Math.round(100*(c/b)):0)+"%",f:d,u:a}};c._lock=function(b){var c,a=this.po;b!==this._locked&&((this._locked=b)?(c=
|
136 |
+
this.targetLocale||(this.targetLocale=this._locale),a.lock(c),delete this._locale):(this._locale=this.targetLocale,a.unlock()),this.editable={source:!b,target:b},this.fire("poLock",[b,c]),this.active&&this.loadMessage(this.active))};c.lock=function(){return this._lock(!0)};c.unlock=function(){return this._lock(!1)};c.locked=function(){return this._locked};return d}({},r,s));n.register("$8",function(d,c,m){function g(a,b){var c=a.getTargetEditable()||a.getSourceEditable();if(c)return c.focus(),b&&
|
137 |
+
c.triggerHandler("forced"),c}var b={copy:66,clear:75,save:83,fuzzy:85,next:40,prev:38,enter:13},k={66:function(a,b){var c=b.current();c&&b.getTargetEditable()&&(c.normalize(),b.current(c),g(b,!0))},75:function(a,b){var c=b.current();c&&b.getTargetEditable()&&(c.untranslate(),b.current(c),g(b,!0))},85:function(a,b){b.fuzzy(!b.fuzzy())},13:function(a,b){var c=b.getTargetEditable()||b.getSourceEditable();c&&(c.blur(),b.next(1,!0,!0),g(b))},40:function(a,b){var c=a.shiftKey;b.next(1,c,c);g(b)},38:function(a,
|
138 |
+
b){var c=a.shiftKey;b.next(-1,c,c);g(b)}};d.init=function(a){var d={};f(c).bind("keydown",function(b){if(b.isPropagationStopped()||!b.metaKey&&!b.ctrlKey||!d[b.which])return!0;var c=k[b.which];if(!c)throw Error("No such command");c(b,a);b.preventDefault();return!1});return{add:function(a,c){k[b[a]]=c;return this},enable:function(){var a,c;for(c in arguments)a=b[arguments[c]],d[a]=!0;return this}}};return d}({},r,s));n.require("$1","array.js");n.require("$2","html.js");I=r.loco;var E=I.t,M=I.killEvent;
|
139 |
+
showError=I.showError;showWarning=I.showWarning;showSuccess=I.showSuccess;wp_ajaxurl=r.ajaxurl||"/wp-admin/admin-ajax.php";conf=I.conf||{};locale=conf.locale;doc=n.require("$3","po.js").create(locale);buttons={};innerDiv=s.getElementById("loco-poedit-inner");f(r).resize(function(){function d(){var d;d=innerDiv;for(var b=d.offsetTop||0;(d=d.offsetParent)&&void 0!==d;)b+=d.offsetTop||0;d=b;b=f(r).innerHeight();d=Math.max(m,b-d-c);innerDiv.style.height=String(d)+"px";return!0}var c=20,m=parseInt(f(innerDiv).css("min-height")||
|
140 |
+
0);d();return d}());buttons.save=function(d){function c(){d.disabled=!1}c();A.bind("poUnsaved",function(){f(d).addClass("button-primary loco-flagged")}).bind("poSave",function(){f(d).removeClass("button-primary loco-flagged")});f(d.form).submit(function(m){var g=m.target;m.target.po.value=doc.toString();d.disabled=!0;P(g,function(b){c();f("#loco-po-modified").text(b.modified);A.save(!0);var d=E("PO file saved"),a=b.filename;b=b.compiled;null!=b&&(/\D/.test(b)?showError(b):(d+=" "+E("and MO file compiled"),
|
141 |
+
a=a.replace(/\.po$/i,".mo")));showSuccess(d+" - "+a)},c);return M(m)});return!0};buttons.download_po=buttons.download_mo=function(d){d.disabled=!1;d.form.setAttribute("action",wp_ajaxurl);f(d).click(function(c){d.form.po.value=doc.toString();f(innerDiv).trigger("poSave");return!0});return!0};buttons.add=!locale&&function(d){d.disabled=!1;f(d).click(function(c){var d=1,f;for(f="New message";doc.get(f);)d=/(\d+)/.exec(f)?Math.max(d,RegExp.$1):d,f="New message "+ ++d;A.add(f);return M(c)});return!0};
|
142 |
+
buttons.del=!locale&&function(d){d.disabled=!1;f(d).click(function(c){A.del();return M(c)});return!0};buttons.fuzzy=locale&&function(d){function c(c){d.disabled=null==c;f(d)[c?"addClass":"removeClass"]("loco-inverted")}A.bind("poSelected",function(d,f){c(f&&A.locked()?f.fuzzy():null)}).bind("poFuzzy",function(d,f,b){c(A.locked()?b:null)});f(d).click(function(c){var d=!A.fuzzy();A.fuzzy(d);return M(c)});return!0};buttons.sync=function(d){function c(){d.disabled=!1}c();A.bind("poUnsaved",function(){d.disabled=
|
143 |
+
!0}).bind("poSave",function(){c()});f(d.form).submit(function(m){d.disabled=!0;P(m.target,function(d){c();var b=n.require("$3","po.js").create(void 0);b.load(d.exp);var k=[],b=doc.merge(b),a=b.add.length,l=b.del.length;A.load(doc);if(a||l){k.push(d.pot?H(E("Merged from %s"),d.pot):E("Merged from source code"));a&&k.push(H(E("1 new string added","%s new strings added",a),a));l&&k.push(H(E("1 obsolete string removed","%s obsolete strings removed",l),l));f(innerDiv).trigger("poUnsaved",[]);if(r.console&&
|
144 |
+
console.log){for(a=-1;++a<b.add.length;)console.log(" + "+b.add[a].source());for(a=-1;++a<b.del.length;)console.log(" - "+b.del[a].source())}O()}else k.push(d.pot?H(E("Already up to date with %s"),d.pot):E("Already up to date with source code"));doc.headers(d.headers||{});showSuccess(k.join(". "));f(innerDiv).trigger("poMerge",[d])},c);return M(m)});return!0};buttons.revert=function(d){A.bind("poUnsaved",function(){d.disabled=!1}).bind("poSave",function(){d.disabled=!0});f(d).click(function(c){location.reload();
|
145 |
+
return M(c)});return!0};buttons.help=function(){return!0};innerDiv.innerHTML="";var A=n.require("$7","poedit.js").init(innerDiv);A._validate("POEdit");n.require("$8","hotkeys.js").init(A).add("save",function(d,c){f("#loco-poedit-save").submit()}).enable("copy","clear","enter","next","prev","fuzzy","save");f("#loco-nav").find("button").each(function(d,c){var m=c.getAttribute("data-loco");buttons[m]&&buttons[m](c)||f(c).hide()});buttons=null;(function(d){f(d.form).submit(function(c){return M(c)});var c=
|
146 |
+
n.require("$4","dict.js").create();c.depth=10;c.translit(n.require("$5","flatten.json"));A.searchable(c);d.disabled=!1;d.value="";var m=n.require("$6","LocoTextListener.js").listen(d,function(c){A.filter(c,!0)});A.bind("poFilter",function(c,b){m.val(b)}).bind("poMerge",function(c,b){var d=m.val();d&&A.filter(d)});d=c=null})(s.getElementById("loco-search"));A.bind("poUnsaved",function(){r.onbeforeunload=function(){return E("Your changes will be lost if you continue without saving")}}).bind("poSave",
|
147 |
+
function(){r.onbeforeunload=null}).bind("poUpdate",O);locale?doc.load(conf.po||{}):doc.load(conf.pot||{});doc.headers(conf.headers);A.load(doc);O()})(window,document,window.jQuery);
|
pub/js/build/admin-poinit.js
CHANGED
@@ -1 +1,2 @@
|
|
1 |
-
!function(
|
|
1 |
+
!function(e,n,b){function h(a){var c=b(d).find('input[type="submit"]')[0];if(/^([a-z]{2,3})(?:[ _\-]([A-Z]{2}))?$/i.exec(a))return a=RegExp.$1.toLowerCase(),RegExp.$2&&(a+="_"+RegExp.$2.toUpperCase()),c.disabled=!1,a;c.disabled=!0}function k(a){function c(a,c,b){console.error(b||"FAIL");p(b||q("Unknown error"))}f("");return b.ajax({url:r,type:"POST",data:{action:"loco-data",locale:a},dataType:"json",error:c,success:function(b,d,e){var g=b&&b.locales&&b.locales[a];if(!g)return c(e,d,b&&b.error&&b.error.message);
|
2 |
+
f(g.region?g.icon:"")}})}function f(a){var c=b(d).find("span.flag");c[a?"show":"hide"]();c.each(function(b,c){c.className=a||"flag"})}var l=e.loco,q=l.t,p=l.showError,r=e.ajaxurl||"/wp-admin/admin-ajax.php",d=n.getElementById("loco-msginit"),m=d["custom-locale"];b(d["common-locale"]).change(function(){var a=h(m.value=b(this).val());a&&k(a);return!0});b(m).bind("input",function(a){(a=h(a.target.value))&&k(a);return!0});f("")}(window,document,window.jQuery);
|
pub/js/debug.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
!function( window, document, navigator, $ ){
|
2 |
+
|
3 |
+
|
4 |
+
|
5 |
+
var form = document.getElementById('loco-debug');
|
6 |
+
|
7 |
+
|
8 |
+
function setFieldValue( name, value ){
|
9 |
+
name = 'loco['+name+']';
|
10 |
+
form[name].value = value;
|
11 |
+
}
|
12 |
+
|
13 |
+
|
14 |
+
|
15 |
+
setFieldValue( 'ua', navigator.userAgent || navigator.appVersion );
|
16 |
+
|
17 |
+
|
18 |
+
|
19 |
+
|
20 |
+
|
21 |
+
|
22 |
+
|
23 |
+
}( window, document, navigator, window.jQuery );
|
pub/js/lang/loco-translate-de_DE.js
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
/**
|
2 |
* Loco js export: JavaScript function
|
3 |
-
* Project: loco.
|
4 |
* Release: Working copy
|
5 |
* Locale: de_DE, German
|
6 |
-
* Exported at:
|
7 |
*/
|
8 |
loco = window.loco||{}, loco.t = function( pairs ){
|
9 |
|
@@ -29,5 +29,5 @@ loco = window.loco||{}, loco.t = function( pairs ){
|
|
29 |
return value || ( 1 === n ? msgid1 : msgid2 ) || msgid1 || '';
|
30 |
};
|
31 |
}(
|
32 |
-
{"Error":"Fehler","Warning":"Warnung","OK":"OK","Permission denied":"Zugriff verweigert","Settings saved":"Einstellungen gespeichert","New PO file":"Neue PO-Datei","You must specify a valid locale for a new PO file":"Du musst einen g\u00fcltigen Pfad f\u00fcr die PO-Datei angeben","No translatable strings found":"Keine \u00fcbersetzbaren Zeichenketten gefunden","Cannot create a PO file.":"Erstellen der PO-Datei fehlgeschlagen.","PO file already exists with locale %s":"PO-Datei existiert schon unter %s","PO file used as template. This will be renamed to %s on first save":"PO-Datei wird als Template verwendet. Dies wird in %s beim ersten Speichern umbenannt.","File cannot be created automatically. Fix the file permissions or use Download instead of Save":"Datei kann nicht automatisch erstellt werden. Setze die Datei-Zugriffsrechte oder benutze Download anstatt Speichern","%s file is empty":"Datei (%s) ist leer","Run Sync to update from source code":"Benutze Sync, um von der Quelle zu aktualisieren","No strings could be extracted from source code":"Es konnten keine Zeichenketten vom Quellcode extrahiert werden","Run Sync to update from %s":"Benutze Sync, um aus %s zu aktualisieren","Source code has been modified, run Sync to update POT":"Quellcode wurde ge\u00e4ndert, benutze Sync um POT zu aktualisieren","POT has been modified since PO file was saved, run Sync to update":"POT wurde aktualisiert bevor die PO-Datei gespeichert wurde. Benutze Sync zum Aktualisieren.","Bad file path":"Falscher Dateipfad","Empty or invalid %s file":"Leere oder ung\u00fcltige %s-Datei","%s file has no header":"%s-Datei hat keinen Header","New template":"Neues Template","New language":"Neue Sprache","%s%% translated":"%s%% \u00fcbersetzt","1 string":{"one":"1 Zeichenkette","other":"%s Zeichenketten"},"%s fuzzy":"%s undeutlich","%s untranslated":"%s nicht \u00fcbersetzt","Failed to compile MO file with built-in compiler":"Kompilieren der MO-Datei mit dem internen Kompilierer fehlgeschlagen.","Loco, Translation Management":"Loco, Translation Management","Manage translations":"\u00dcbersetzungen verwalten","Translation options":"\u00dcbersetzungsoptionen","Loco Translate":"Loco Translate","Settings":"Einstellungen","File download failed":"Dateidownload ist fehlgeschlagen","Unknown language":"Unbekannte Sprache","Some files not writable":"Einige Dateien nicht schreibbar","Some files missing":"Einige Dateien fehlen","\"%s\" folder not writable":"Ordner \"%s\" nicht schreibbar","POT file not writable":"POT-Datei nicht schreibbar","PO file not writable":"PO-Datei nicht schreibbar","MO file not writable":"MO-Datei nicht schreibbar","MO file not found":"MO-Datei nicht gefunden","Folder not writable":"Ordner nicht schreibbar","Folder not found":"","User does not have permission to manage translations":"Benutzer hat keine Rechte die \u00dcbersetzungen zu verwalten","Failed to compile MO file with %s, check your settings":"Kompilieren der MO-Datei fehlgeschlagen. Bitte pr\u00fcfe Deine Einstellungen","Invalid data posted to server":"Ung\u00fcltige Daten zum Server gesendet","Package not found called %s":"Paket %s nicht gefunden","Web server cannot create backups in \"%s\". Fix file permissions or disable backups in settings":"Webserver kann keine Sicherungen in \"%s\" anlegen. Setze die Datei-Zugriffrechte oder deaktiviere die Sicherungen in den Einstellungen","Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or create it manually.":"Webserver kann Ordner \"%s\" nicht in \"%s\" erstellen. Setze die Zugriffsrechte oder erstelle den Ordner selbst.","Web server cannot create files in the \"%s\" directory. Fix file permissions or use the download function.":"Webserver kann keine Dateien im Ordner \"%s\" erstellen. Setze die Datei-Zugriffsrechte oder benutze Download anstatt Speichern.","%s file is not writable by the web server. Fix file permissions or download and copy to \"%s\/%s\".":"Datei %s ist vom Webserver nicht schreibbar. Setze die Datei-Zugriffsrechte oder benutze Download anstatt Speichern und speichere die Datei auf dem Server unter \"%s\/%s\" ab.","Cannot create MO file":"Erstellen der MO-Datei fehlgeschlagen.","Cannot overwrite MO file":"\u00dcberschreiben der MO-Datei fehlgeschlagen","Failed to write MO file":"Fehler beim Schreiben der MO-Datei","No source files in this package, nothing to sync":"","No strings could be extracted from source files":"Es konnten keine Zeichenketten aus der Quelle extrahiert werden","Unknown error":"Unbekannter Fehler","PO file saved":"PO-Datei gespeichert","and MO file compiled":"und MO-Datei kompiliert","Merged from %s":"Aus %s zusammengef\u00fchrt","Merged from source code":"Aus Quelle zusammengef\u00fchrt","Already up to date with %s":"Bereits auf dem aktuellen Stand mit %s","Already up to date with source code":"Bereits mit der Quelle auf dem aktuellen Stand","1 new string added":{"one":"1 neue Zeichenkette hinzugef\u00fcgt","other":"%s neue Zeichenketten hinzugef\u00fcgt"},"1 obsolete string removed":{"one":"1 veraltete Zeichenkette entfernt","other":"%s veraltete Zeichenketten entfernt"},"Your changes will be lost if you continue without saving":"Deine \u00c4nderungen gehen verloren, wenn du fortsetzt ohne zu Speichern","Source text":"","%s translation":"","Comments":"","Context":"","Translation":"\u00dcbersetzung","Packages":"Pakete","File check":"Dateipr\u00fcfung","File system permissions for %s":"Dateisystem-Rechte f\u00fcr %s","Back":"Zur\u00fcck","Get help":"Hilfe erhalten","Package details":"Paketdetails","Translations (PO)":"\u00dcbersetzungen (PO)","Template (POT)":"Template (POT)","File permissions":"Dateizugriffsrechte","Extends: %s":"","1 language":{"one":"1 Sprache","other":"%u Sprachen"},"Updated":"Aktualisiert","Powered by":"Pr\u00e4sentiert von","Loco may not work as expected":"Loco scheint nicht, wie erwartet, zu arbeiten","Configure Loco Translate":"Konfiguriere Loco Translate","Compiling MO files":"MO-Dateien kompilieren","Use built-in MO compiler.":"Benutze internen MO-Kompilierer","Use external command:":"Benutze externes Befehlsprogramm:","Enter path to msgfmt on server":"Pfad zum msgfmt-Programm","Generate hash tables":"Erzeuge Hashtabellen","Backing up PO files":"PO-Datei sichern","Number of backups to keep of each file:":"Anzahl der Sicherungen pro Datei","Experimental features":"","Enable Wordpress core translations":"","Save settings":"Einstellungen speichern","Template file":"Templatedatei","Switch to...":"Wechsle zu...","never":"niemals","Save":"Speichern","Download":"Download","Sync":"Sync","Revert":"zur\u00fccksetzen","Add":"Hinzuf\u00fcgen","Del":"L\u00f6schen","Fuzzy":"Undeutlich","Filter translations":"\u00dcbersetzungen filtern","Help":"Hilfe","Initialize new translations in %s":"Initialisiere neue \u00dcbersetzung in %s","Select from common languages":"W\u00e4hle aus den Standardsprachen","or enter any language code":"oder trage den Sprach-Code ein","create in <code>%s<\/code>":"","create in global languages directory":"","Start translating":"Starte \u00dcbersetzung","New version available":"Neue Version verf\u00fcgbar","Upgrade to version %s of Loco Translate":"Bitte upgrade Loco Translate auf Version %s","Select a plugin or theme to translate":"W\u00e4hle ein Plugin oder Theme zum \u00dcbersetzen","Themes":"Themes","Plugins":"Plugins","Core":"Core"}
|
33 |
);
|
1 |
/**
|
2 |
* Loco js export: JavaScript function
|
3 |
+
* Project: loco.po conversion
|
4 |
* Release: Working copy
|
5 |
* Locale: de_DE, German
|
6 |
+
* Exported at: Wed, 21 Jan 2015 14:04:39 +0000
|
7 |
*/
|
8 |
loco = window.loco||{}, loco.t = function( pairs ){
|
9 |
|
29 |
return value || ( 1 === n ? msgid1 : msgid2 ) || msgid1 || '';
|
30 |
};
|
31 |
}(
|
32 |
+
{"Error":"Fehler","Warning":"Warnung","OK":{"OK":["OK","OK"]},"Permission denied":"Zugriff verweigert","Settings saved":"Einstellungen gespeichert","New PO file":"Neue PO-Datei","You must specify a valid locale for a new PO file":"Du musst einen g\u00fcltigen Pfad f\u00fcr die PO-Datei angeben","No translatable strings found":"Keine \u00fcbersetzbaren Zeichenketten gefunden","Cannot create a PO file.":"Erstellen der PO-Datei fehlgeschlagen.","PO file already exists with locale %s":"PO-Datei existiert schon unter %s","PO file used as template. This will be renamed to %s on first save":"PO-Datei wird als Template verwendet. Dies wird in %s beim ersten Speichern umbenannt.","File cannot be created automatically. Fix the file permissions or use Download instead of Save":"Datei kann nicht automatisch erstellt werden. Setze die Datei-Zugriffsrechte oder benutze Download anstatt Speichern","%s file is empty":"Datei (%s) ist leer","Run Sync to update from source code":"Benutze Sync, um von der Quelle zu aktualisieren","No strings could be extracted from source code":"Es konnten keine Zeichenketten vom Quellcode extrahiert werden","Run Sync to update from %s":"Benutze Sync, um aus %s zu aktualisieren","Source code has been modified, run Sync to update POT":"Quellcode wurde ge\u00e4ndert, benutze Sync um POT zu aktualisieren","POT has been modified since PO file was saved, run Sync to update":"POT wurde aktualisiert bevor die PO-Datei gespeichert wurde. Benutze Sync zum Aktualisieren.","Bad file path":"Falscher Dateipfad","Empty or invalid %s file":"Leere oder ung\u00fcltige %s-Datei","%s file has no header":"%s-Datei hat keinen Header","New template":"Neues Template","New language":"Neue Sprache","%s%% translated":"%s%% \u00fcbersetzt","1 string":{"one":"1 Zeichenkette","other":"%s Zeichenketten"},"%s fuzzy":"%s undeutlich","%s untranslated":"%s nicht \u00fcbersetzt","Failed to compile MO file with built-in compiler":"Kompilieren der MO-Datei mit dem internen Kompilierer fehlgeschlagen.","Loco, Translation Management":"Loco, Translation Management","Manage translations":"\u00dcbersetzungen verwalten","Translation options":"\u00dcbersetzungsoptionen","Loco Translate":"Loco Translate","Settings":"Einstellungen","File download failed":"Dateidownload ist fehlgeschlagen","Unknown language":"Unbekannte Sprache","Some files not writable":"Einige Dateien nicht schreibbar","Some files missing":"Einige Dateien fehlen","\"%s\" folder not writable":"Ordner \"%s\" nicht schreibbar","POT file not writable":"POT-Datei nicht schreibbar","PO file not writable":"PO-Datei nicht schreibbar","MO file not writable":"MO-Datei nicht schreibbar","MO file not found":"MO-Datei nicht gefunden","Folder not writable":"Ordner nicht schreibbar","Folder not found":"","User does not have permission to manage translations":"Benutzer hat keine Rechte die \u00dcbersetzungen zu verwalten","Failed to compile MO file with %s, check your settings":"Kompilieren der MO-Datei fehlgeschlagen. Bitte pr\u00fcfe Deine Einstellungen","Invalid data posted to server":"Ung\u00fcltige Daten zum Server gesendet","Package not found called %s":"Paket %s nicht gefunden","Web server cannot create backups in \"%s\". Fix file permissions or disable backups in settings":"Webserver kann keine Sicherungen in \"%s\" anlegen. Setze die Datei-Zugriffrechte oder deaktiviere die Sicherungen in den Einstellungen","Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or create it manually.":"Webserver kann Ordner \"%s\" nicht in \"%s\" erstellen. Setze die Zugriffsrechte oder erstelle den Ordner selbst.","Web server cannot create files in the \"%s\" directory. Fix file permissions or use the download function.":"Webserver kann keine Dateien im Ordner \"%s\" erstellen. Setze die Datei-Zugriffsrechte oder benutze Download anstatt Speichern.","%s file is not writable by the web server. Fix file permissions or download and copy to \"%s\/%s\".":"Datei %s ist vom Webserver nicht schreibbar. Setze die Datei-Zugriffsrechte oder benutze Download anstatt Speichern und speichere die Datei auf dem Server unter \"%s\/%s\" ab.","Cannot create MO file":"Erstellen der MO-Datei fehlgeschlagen.","Cannot overwrite MO file":"\u00dcberschreiben der MO-Datei fehlgeschlagen","Failed to write MO file":"Fehler beim Schreiben der MO-Datei","No source files in this package, nothing to sync":"","No strings could be extracted from source files":"Es konnten keine Zeichenketten aus der Quelle extrahiert werden","Unknown error":"Unbekannter Fehler","PO file saved":"PO-Datei gespeichert","and MO file compiled":"und MO-Datei kompiliert","Merged from %s":"Aus %s zusammengef\u00fchrt","Merged from source code":"Aus Quelle zusammengef\u00fchrt","Already up to date with %s":"Bereits auf dem aktuellen Stand mit %s","Already up to date with source code":"Bereits mit der Quelle auf dem aktuellen Stand","1 new string added":{"one":"1 neue Zeichenkette hinzugef\u00fcgt","other":"%s neue Zeichenketten hinzugef\u00fcgt"},"1 obsolete string removed":{"one":"1 veraltete Zeichenkette entfernt","other":"%s veraltete Zeichenketten entfernt"},"Your changes will be lost if you continue without saving":"Deine \u00c4nderungen gehen verloren, wenn du fortsetzt ohne zu Speichern","Source text":"","%s translation":"","Comments":"","Context":"","Translation":"\u00dcbersetzung","Packages":"Pakete","File check":"Dateipr\u00fcfung","File system permissions for %s":"Dateisystem-Rechte f\u00fcr %s","Back":"Zur\u00fcck","Get help":"Hilfe erhalten","Package details":"Paketdetails","Translations (PO)":"\u00dcbersetzungen (PO)","Template (POT)":"Template (POT)","File permissions":"Dateizugriffsrechte","Extends: %s":"","1 language":{"one":"1 Sprache","other":"%u Sprachen"},"Updated":{"Updated":["Aktualisiert","Aktualisiert"]},"Powered by":"Pr\u00e4sentiert von","Loco may not work as expected":"Loco scheint nicht, wie erwartet, zu arbeiten","Configure Loco Translate":"Konfiguriere Loco Translate","Compiling MO files":"MO-Dateien kompilieren","Use built-in MO compiler.":"Benutze internen MO-Kompilierer","Use external command:":"Benutze externes Befehlsprogramm:","Enter path to msgfmt on server":"Pfad zum msgfmt-Programm","Generate hash tables":"Erzeuge Hashtabellen","Backing up PO files":"PO-Datei sichern","Number of backups to keep of each file:":"Anzahl der Sicherungen pro Datei","Experimental features":"","Enable Wordpress core translations":"","Save settings":"Einstellungen speichern","Template file":"Templatedatei","Switch to...":"Wechsle zu...","never":"niemals","Save":"Speichern","Download":"Download","Sync":"Sync","Revert":"zur\u00fccksetzen","Add":"Hinzuf\u00fcgen","Del":"L\u00f6schen","Fuzzy":"Undeutlich","Filter translations":"\u00dcbersetzungen filtern","Help":"Hilfe","Initialize new translations in %s":"Initialisiere neue \u00dcbersetzung in %s","Select from common languages":"W\u00e4hle aus den Standardsprachen","or enter any language code":"oder trage den Sprach-Code ein","create in <code>%s<\/code>":"","create in global languages directory":"","Start translating":"Starte \u00dcbersetzung","New version available":"Neue Version verf\u00fcgbar","Upgrade to version %s of Loco Translate":"Bitte upgrade Loco Translate auf Version %s","Select a plugin or theme to translate":"W\u00e4hle ein Plugin oder Theme zum \u00dcbersetzen","Themes":"Themes","Plugins":"Plugins","Core":"Core"}
|
33 |
);
|
pub/js/lang/loco-translate-id_ID.js
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
/**
|
2 |
* Loco js export: JavaScript function
|
3 |
-
* Project: loco.
|
4 |
* Release: Working copy
|
5 |
* Locale: id_ID, Indonesian
|
6 |
-
* Exported at:
|
7 |
*/
|
8 |
loco = window.loco||{}, loco.t = function( pairs ){
|
9 |
|
@@ -29,5 +29,5 @@ loco = window.loco||{}, loco.t = function( pairs ){
|
|
29 |
return value || ( 1 === n ? msgid1 : msgid2 ) || msgid1 || '';
|
30 |
};
|
31 |
}(
|
32 |
-
{"Error":"Kesalahan","Warning":"Peringatan","OK":"Oke","Permission denied":"Akses ditolak","Settings saved":"Setelan disimpan","New PO file":"Berkas PO baru","You must specify a valid locale for a new PO file":"Anda harus menentukan locale valid untuk berkas PO baru","No translatable strings found":"Tidak ada string yang dapat diterjemahkan","Cannot create a PO file.":"Berkas PO tidak dapat dibuat","PO file already exists with locale %s":"Berkas PO untuk locale %s sudah ada","PO file used as template. This will be renamed to %s on first save":"Berkas PO digunakan sebagai template. Berkas ini akan diubah namanya menjadi %s saat disimpan","File cannot be created automatically. Fix the file permissions or use Download instead of Save":"Berkas tidak dapat dibuat otomatis. Perbaiki hak akses atau gunakan Unduh alih-alih Simpan","%s file is empty":"Berkas %s kosong","Run Sync to update from source code":"Jalankan Sinkronisasi untuk memperbarui dari kode program","No strings could be extracted from source code":"Tidak ada string yang dapat diambil dari kode program","Run Sync to update from %s":"Jalankan Sinkronisasi untuk mengambil dari %s","Source code has been modified, run Sync to update POT":"Kode program telah diubah; jalankan Sinkronisasi untuk memperbarui POT","POT has been modified since PO file was saved, run Sync to update":"POT telah diubah sejak berkas PO terakhir disimpan; jalankan Sinkronisasi untuk memperbarui POT","Bad file path":"Folder berkas salah","Empty or invalid %s file":"Berkas %s kosong atau tidak valid","%s file has no header":"%s berkas tidak memiliki header","New template":"Template baru","New language":"Bahasa baru","%s%% translated":"%s%% diterjemahkan","1 string":{"other":"1 string"},"%s fuzzy":"%s fuzzy","%s untranslated":"%s%% belum diterjemahkan","Failed to compile MO file with built-in compiler":"Gagal mengompilasi berkas MO dengan kompilator bawaan","Loco, Translation Management":"Loco, Pengelola Terjemahan","Manage translations":"Kelola terjemahan","Translation options":"Opsi terjemahan","Loco Translate":"Loco Terjemahan","Settings":"Setelan","File download failed":"Gagal mengunduh berkas","Unknown language":"Bahasa tidak dikenal","Some files not writable":"Beberapa berkas tidak dapat ditulis","Some files missing":"Beberapa berkas hilang","\"%s\" folder not writable":"Folder \"%s\" tidak dapat ditulisi","POT file not writable":"Berkas POT tidak dapat ditulis","PO file not writable":"Berkas PO tidak dapat ditulis","MO file not writable":"Berkas MO tidak dapat ditulis","MO file not found":"Berkas MO tidak ditemukan","Folder not writable":"Folder tidak dapat ditulisi","Folder not found":"Folder tidak ditemukan","User does not have permission to manage translations":"Pengguna tidak memiliki hak akses untuk mengelola terjemahan","Failed to compile MO file with %s, check your settings":"Gagal mengompilasi berkas MO dengan %s; periksa setelan Anda","Invalid data posted to server":"Data yang dikirim ke server tidak valid","Package not found called %s":"Paket %s tidak ditemukan","Web server cannot create backups in \"%s\". Fix file permissions or disable backups in settings":"Tidak dapat membuat cadangan di \"%s\". Perbaiki hak akses atau matikan pencadangan di setelan.","Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or create it manually.":"Tidak dapat membuat direktori \"%s\" di \"%s\". Perbaiki hak akses atau buat secara manual.","Web server cannot create files in the \"%s\" directory. Fix file permissions or use the download function.":"Tidak dapat membuat berkas di direktori \"%s\". Perbaiki hak akses atau gunakan fungsi unduh.","%s file is not writable by the web server. Fix file permissions or download and copy to \"%s\/%s\".":"Berkas %s tidak dapat ditulis. Perbaiki hak akses atau unduh dan salin ke \"%s\/%s\".","Cannot create MO file":"Berkas MO tidak dapat dibuat","Cannot overwrite MO file":"Berkas MO tidak dapat ditimpa","Failed to write MO file":"Gagal menulis berkas MO","No source files in this package, nothing to sync":"Berkas sumber paket ini tidak ditemukan; tidak ada yang dapat disinkronisasikan","No strings could be extracted from source files":"Tidak ada string yang dapat diekstrak dari berkas sumber","Unknown error":"Kesalahan ","PO file saved":"Berkas PO disimpan","and MO file compiled":"dan berkas MO dikompilasi","Merged from %s":"Digabungkan dari %s","Merged from source code":"Digabungkan dari kode program","Already up to date with %s":"Sudah selaras dengan %s","Already up to date with source code":"Sudah selaras dengan kode program","1 new string added":{"other":"1 string baru ditambahkan"},"1 obsolete string removed":{"other":"1 string usang dihapus"},"Your changes will be lost if you continue without saving":"Perubahan akan dibuang bila melanjutkan tanpa menyimpan","Source text":"Teks sumber","%s translation":"%s terjemahan","Comments":"Komentar","Context":"Konteks","Translation":"Terjemahan","Packages":"Paket","File check":"Pemeriksaan berkas","File system permissions for %s":"Hak akses sistem berkas untuk %s","Back":"Kembali","Get help":"Dapatkan bantuan","Package details":"Detail paket","Translations (PO)":"Terjemahan (PO)","Template (POT)":"Template (POT)","File permissions":"Hak akses","Extends: %s":"","1 language":{"other":"1 bahasa"},"Updated":"Diperbarui","Powered by":"Didukung oleh","Loco may not work as expected":"Loco mungkin tidak bekerja sesuai harapan","Configure Loco Translate":"Konfigurasikan Loco Translate","Compiling MO files":"Kompilasi berkas MO","Use built-in MO compiler.":"Gunakan kompiler bawaan","Use external command:":"Gunakan perintah eksternal:","Enter path to msgfmt on server":"Masukkan folder msgfmt pada server","Generate hash tables":"Buat tabel hash","Backing up PO files":"Pencadangan berkas PO","Number of backups to keep of each file:":"Jumlah cadangan untuk tiap berkas:","Experimental features":"Fitur eksperimen","Enable Wordpress core translations":"Aktifkan penerjemahan inti Wordpress","Save settings":"Simpan setelan","Template file":"Berkas template","Switch to...":"Beralih ke...","never":"tidak pernah","Save":"Simpan","Download":"Unduh","Sync":"Sinkronisasi","Revert":"Kembalikan","Add":"Tambah","Del":"Hapus","Fuzzy":"Fuzzy","Filter translations":"Saring terjemahan","Help":"Bantuan","Initialize new translations in %s":"Buat terjemahan baru di %s","Select from common languages":"Pilih dari bahasa yang umum","or enter any language code":"atau masukkan suatu kode bahasa","create in <code>%s<\/code>":"buat di <code>%s<\/code>","create in global languages directory":"buat di direktori bahasa global","Start translating":"Mulai penerjemahan","New version available":"Ada versi baru","Upgrade to version %s of Loco Translate":"Tingkatkan Loco Translate kepada versi %s","Select a plugin or theme to translate":"Pilih plugin atau tema untuk diterjemahkan","Themes":"Tema","Plugins":"Plugin","Core":"Inti"}
|
33 |
);
|
1 |
/**
|
2 |
* Loco js export: JavaScript function
|
3 |
+
* Project: loco.po conversion
|
4 |
* Release: Working copy
|
5 |
* Locale: id_ID, Indonesian
|
6 |
+
* Exported at: Wed, 21 Jan 2015 14:04:39 +0000
|
7 |
*/
|
8 |
loco = window.loco||{}, loco.t = function( pairs ){
|
9 |
|
29 |
return value || ( 1 === n ? msgid1 : msgid2 ) || msgid1 || '';
|
30 |
};
|
31 |
}(
|
32 |
+
{"Error":"Kesalahan","Warning":"Peringatan","OK":{"OK":["Oke","Oke"]},"Permission denied":"Akses ditolak","Settings saved":"Setelan disimpan","New PO file":"Berkas PO baru","You must specify a valid locale for a new PO file":"Anda harus menentukan locale valid untuk berkas PO baru","No translatable strings found":"Tidak ada string yang dapat diterjemahkan","Cannot create a PO file.":"Berkas PO tidak dapat dibuat","PO file already exists with locale %s":"Berkas PO untuk locale %s sudah ada","PO file used as template. This will be renamed to %s on first save":"Berkas PO digunakan sebagai template. Berkas ini akan diubah namanya menjadi %s saat disimpan","File cannot be created automatically. Fix the file permissions or use Download instead of Save":"Berkas tidak dapat dibuat otomatis. Perbaiki hak akses atau gunakan Unduh alih-alih Simpan","%s file is empty":"Berkas %s kosong","Run Sync to update from source code":"Jalankan Sinkronisasi untuk memperbarui dari kode program","No strings could be extracted from source code":"Tidak ada string yang dapat diambil dari kode program","Run Sync to update from %s":"Jalankan Sinkronisasi untuk mengambil dari %s","Source code has been modified, run Sync to update POT":"Kode program telah diubah; jalankan Sinkronisasi untuk memperbarui POT","POT has been modified since PO file was saved, run Sync to update":"POT telah diubah sejak berkas PO terakhir disimpan; jalankan Sinkronisasi untuk memperbarui POT","Bad file path":"Folder berkas salah","Empty or invalid %s file":"Berkas %s kosong atau tidak valid","%s file has no header":"%s berkas tidak memiliki header","New template":"Template baru","New language":"Bahasa baru","%s%% translated":"%s%% diterjemahkan","1 string":{"other":"1 string"},"%s fuzzy":"%s fuzzy","%s untranslated":"%s%% belum diterjemahkan","Failed to compile MO file with built-in compiler":"Gagal mengompilasi berkas MO dengan kompilator bawaan","Loco, Translation Management":"Loco, Pengelola Terjemahan","Manage translations":"Kelola terjemahan","Translation options":"Opsi terjemahan","Loco Translate":"Loco Terjemahan","Settings":"Setelan","File download failed":"Gagal mengunduh berkas","Unknown language":"Bahasa tidak dikenal","Some files not writable":"Beberapa berkas tidak dapat ditulis","Some files missing":"Beberapa berkas hilang","\"%s\" folder not writable":"Folder \"%s\" tidak dapat ditulisi","POT file not writable":"Berkas POT tidak dapat ditulis","PO file not writable":"Berkas PO tidak dapat ditulis","MO file not writable":"Berkas MO tidak dapat ditulis","MO file not found":"Berkas MO tidak ditemukan","Folder not writable":"Folder tidak dapat ditulisi","Folder not found":"Folder tidak ditemukan","User does not have permission to manage translations":"Pengguna tidak memiliki hak akses untuk mengelola terjemahan","Failed to compile MO file with %s, check your settings":"Gagal mengompilasi berkas MO dengan %s; periksa setelan Anda","Invalid data posted to server":"Data yang dikirim ke server tidak valid","Package not found called %s":"Paket %s tidak ditemukan","Web server cannot create backups in \"%s\". Fix file permissions or disable backups in settings":"Tidak dapat membuat cadangan di \"%s\". Perbaiki hak akses atau matikan pencadangan di setelan.","Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or create it manually.":"Tidak dapat membuat direktori \"%s\" di \"%s\". Perbaiki hak akses atau buat secara manual.","Web server cannot create files in the \"%s\" directory. Fix file permissions or use the download function.":"Tidak dapat membuat berkas di direktori \"%s\". Perbaiki hak akses atau gunakan fungsi unduh.","%s file is not writable by the web server. Fix file permissions or download and copy to \"%s\/%s\".":"Berkas %s tidak dapat ditulis. Perbaiki hak akses atau unduh dan salin ke \"%s\/%s\".","Cannot create MO file":"Berkas MO tidak dapat dibuat","Cannot overwrite MO file":"Berkas MO tidak dapat ditimpa","Failed to write MO file":"Gagal menulis berkas MO","No source files in this package, nothing to sync":"Berkas sumber paket ini tidak ditemukan; tidak ada yang dapat disinkronisasikan","No strings could be extracted from source files":"Tidak ada string yang dapat diekstrak dari berkas sumber","Unknown error":"Kesalahan ","PO file saved":"Berkas PO disimpan","and MO file compiled":"dan berkas MO dikompilasi","Merged from %s":"Digabungkan dari %s","Merged from source code":"Digabungkan dari kode program","Already up to date with %s":"Sudah selaras dengan %s","Already up to date with source code":"Sudah selaras dengan kode program","1 new string added":{"other":"1 string baru ditambahkan"},"1 obsolete string removed":{"other":"1 string usang dihapus"},"Your changes will be lost if you continue without saving":"Perubahan akan dibuang bila melanjutkan tanpa menyimpan","Source text":"Teks sumber","%s translation":"%s terjemahan","Comments":"Komentar","Context":"Konteks","Translation":"Terjemahan","Packages":"Paket","File check":"Pemeriksaan berkas","File system permissions for %s":"Hak akses sistem berkas untuk %s","Back":"Kembali","Get help":"Dapatkan bantuan","Package details":"Detail paket","Translations (PO)":"Terjemahan (PO)","Template (POT)":"Template (POT)","File permissions":"Hak akses","Extends: %s":"","1 language":{"other":"1 bahasa"},"Updated":{"Updated":["Diperbarui","Diperbarui"]},"Powered by":"Didukung oleh","Loco may not work as expected":"Loco mungkin tidak bekerja sesuai harapan","Configure Loco Translate":"Konfigurasikan Loco Translate","Compiling MO files":"Kompilasi berkas MO","Use built-in MO compiler.":"Gunakan kompiler bawaan","Use external command:":"Gunakan perintah eksternal:","Enter path to msgfmt on server":"Masukkan folder msgfmt pada server","Generate hash tables":"Buat tabel hash","Backing up PO files":"Pencadangan berkas PO","Number of backups to keep of each file:":"Jumlah cadangan untuk tiap berkas:","Experimental features":"Fitur eksperimen","Enable Wordpress core translations":"Aktifkan penerjemahan inti Wordpress","Save settings":"Simpan setelan","Template file":"Berkas template","Switch to...":"Beralih ke...","never":"tidak pernah","Save":"Simpan","Download":"Unduh","Sync":"Sinkronisasi","Revert":"Kembalikan","Add":"Tambah","Del":"Hapus","Fuzzy":"Fuzzy","Filter translations":"Saring terjemahan","Help":"Bantuan","Initialize new translations in %s":"Buat terjemahan baru di %s","Select from common languages":"Pilih dari bahasa yang umum","or enter any language code":"atau masukkan suatu kode bahasa","create in <code>%s<\/code>":"buat di <code>%s<\/code>","create in global languages directory":"buat di direktori bahasa global","Start translating":"Mulai penerjemahan","New version available":"Ada versi baru","Upgrade to version %s of Loco Translate":"Tingkatkan Loco Translate kepada versi %s","Select a plugin or theme to translate":"Pilih plugin atau tema untuk diterjemahkan","Themes":"Tema","Plugins":"Plugin","Core":"Inti"}
|
33 |
);
|
pub/js/lang/loco-translate-it_IT.js
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
/**
|
2 |
* Loco js export: JavaScript function
|
3 |
-
* Project: loco.
|
4 |
* Release: Working copy
|
5 |
* Locale: it_IT, Italian
|
6 |
-
* Exported at:
|
7 |
*/
|
8 |
loco = window.loco||{}, loco.t = function( pairs ){
|
9 |
|
@@ -29,5 +29,5 @@ loco = window.loco||{}, loco.t = function( pairs ){
|
|
29 |
return value || ( 1 === n ? msgid1 : msgid2 ) || msgid1 || '';
|
30 |
};
|
31 |
}(
|
32 |
-
{"Error":"Errore","Warning":"Attenzione","OK":"OK","Permission denied":"Permesso negato","Settings saved":"Impostazioni salvate","New PO file":"Nuovo file PO","You must specify a valid locale for a new PO file":"Devi specificare un locale valido per un nuovo file PO ","No translatable strings found":"Nessuna stringa da tradurre trovata","Cannot create a PO file.":"Il file PO non pu\u00f2 essere creato.","PO file already exists with locale %s":"Il file PO esiste gi\u00e0 con un locale %s","PO file used as template. This will be renamed to %s on first save":"File PO usato come modello. Verr\u00e0 rinominato in %s la prima volta che \u00e8 salvato.","File cannot be created automatically. Fix the file permissions or use Download instead of Save":"Il file non pu\u00f2 essere creato","%s file is empty":"Il file %s \u00e8 vuoto","Run Sync to update from source code":"Utilizza Sync per sincronizzare con il codice sorgente","No strings could be extracted from source code":"Impossibile estrarre le stringhe dal codice sorgente","Run Sync to update from %s":"Utilizza Sync per aggiornare da %s","Source code has been modified, run Sync to update POT":"Il codice sorgente \u00e8 stato modificato, utilizza Sync per aggiornare il file POT","POT has been modified since PO file was saved, run Sync to update":"Il file POT \u00e8 stato modificato dopo che il file PO \u00e8 stato salvato, utilizza Sync per aggiornare","Bad file path":"Percorso errato","Empty or invalid %s file":"File %s vuoto o invalido","%s file has no header":"File %s senza l'intestazione","New template":"Nuovo modello","New language":"Nuova lingua","%s%% translated":"%s%% tradotto","1 string":{"one":"1 stringa","other":"%s stringhe"},"%s fuzzy":"%s non verificata","%s untranslated":"%s non tradotto","Failed to compile MO file with built-in compiler":"Non \u00e8 stato possibile compilare il file MO con il compilatore incorporato","Loco, Translation Management":"Loco, Gestione di Traduzione","Manage translations":"Gestire le traduzioni","Translation options":"Opzioni di traduzione","Loco Translate":"Tradurre con Loco","Settings":"Imposatzioni","File download failed":"Download del file non riuscito","Unknown language":"Lingua sconosciuta","Some files not writable":"Alcuni file non scrivibili","Some files missing":"Alcuni file mancanti","\"%s\" folder not writable":"Cartella %s non scrivibile","POT file not writable":"File POT non scrivibile","PO file not writable":"File PO non scrivibile","MO file not writable":"File MO non scrivibile","MO file not found":"File MO non trovato","Folder not writable":"Cartella non scrivibile","Folder not found":"Cartella non trovata","User does not have permission to manage translations":"L'utente non ha il permesso di gestire le traduzioni","Failed to compile MO file with %s, check your settings":"Non \u00e8 stato possibile compilare il file MO con %s, controlla le impostazioni","Invalid data posted to server":"Dati invalidi mandati al server","Package not found called %s":"Nessun pacchetto trovato che si chiama %s","Web server cannot create backups in \"%s\". Fix file permissions or disable backups in settings":"Il server web non pu\u00f2 effettuare un backup in \"%s\". Devi aggiustare i permessi dei file or disattivare i backup nelle impostazioni","Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or create it manually.":"Il server web non pu\u00f2 creare la cartella \"%s\" in \"%s\". Devi aggiustare i permessi dei file or crearla manualmente.","Web server cannot create files in the \"%s\" directory. Fix file permissions or use the download function.":"Il server web non pu\u00f2 creare i file nella cartella \"%s\". Devi aggiustare i permessi dei file or utilizzare la funzione download.","%s file is not writable by the web server. Fix file permissions or download and copy to \"%s\/%s\".":"File %s non \u00e8 scrivibile dal server web. Devi aggiustare i permessi dei file or utilizzare la funzione download e copiarlo nel \"%s\/%s\".","Cannot create MO file":"Il file MO non pu\u00f2 essere creato.","Cannot overwrite MO file":"Il file MO non pu\u00f2 essere sovrascritto.","Failed to write MO file":"Impossibile scrivere il file MO","No source files in this package, nothing to sync":"Nessun file sorgente in questo pacchetto, niente da sincronizzare","No strings could be extracted from source files":"Impossibile estrarre le stringhe dai file sorgenti","Unknown error":"Errore sconosciuto","PO file saved":"File PO salvato","and MO file compiled":"e il file MO compilato","Merged from %s":"Uniti da %s","Merged from source code":"Uniti dal codice sorgente","Already up to date with %s":"Gi\u00e0 aggiornato con %s","Already up to date with source code":"Gi\u00e0 aggiornato con il codice sorgente","1 new string added":{"one":"1 nuova stringa aggiunta","other":"%s nuove stringhe aggiunte"},"1 obsolete string removed":{"one":"1 stringa obsoleta rimossa","other":"%s stringhe obsolete rimosse"},"Your changes will be lost if you continue without saving":"Le modifiche saranno perse se continui senza salvarle","Source text":"Testo sorgente","%s translation":"Traduzione %s","Comments":"Note","Context":"Contesto","Translation":"Traduzione","Packages":"Pacchetti","File check":"Controllo file","File system permissions for %s":"Permessi del file system per %s","Back":"Indietro","Get help":"Ottenere aiuto","Package details":"Dettagli del pacchetto","Translations (PO)":"Traduzioni (PO)","Template (POT)":"Modello (POT)","File permissions":"Permessi dei file","Extends: %s":"","1 language":{"one":"1 lingua","other":"lingue"},"Updated":"Aggiornato","Powered by":"Powered by","Loco may not work as expected":"Loco potrebbe non funzionare come dovrebbe","Configure Loco Translate":"Configurare Loco Translate","Compiling MO files":"Compilando i file MO","Use built-in MO compiler.":"Utilizza il compilatore di MO incorporato","Use external command:":"Utilizza il comando esterno:","Enter path to msgfmt on server":"Inserisci il percorso a msgfmt sul server","Generate hash tables":"Generare tabelle hash","Backing up PO files":"Effettuando un backup dei file PO","Number of backups to keep of each file:":"Numero di backup da conservare per ogni file:","Experimental features":"Funzioni sperimentali","Enable Wordpress core translations":"Abilita la traduzione del core di WordPress","Save settings":"Salva le impostazioni","Template file":"File modello","Switch to...":"Passare al...","never":"mai","Save":"Salva","Download":"Scarica","Sync":"Sync","Revert":"Ritornare","Add":"Aggiungi","Del":"Canc","Fuzzy":"Non verificato","Filter translations":"Filtra le traduzioni","Help":"Aiuto","Initialize new translations in %s":"Inizializza nuove traduzioni in %s ","Select from common languages":"Seleziona una lingua predefinita","or enter any language code":"o inserisci qualsiasi codice lingua","create in <code>%s<\/code>":"creare in <code>%s<\/code>","create in global languages directory":"creare nella cartella globale di lingue","Start translating":"Inizia a tradurre","New version available":"Nuova versione disponibile","Upgrade to version %s of Loco Translate":"Aggiorna alla versione %s di Loco Translate","Select a plugin or theme to translate":"Seleziona un plugin o un tema da tradurre","Themes":"Temi","Plugins":"Plugin","Core":"Core"}
|
33 |
);
|
1 |
/**
|
2 |
* Loco js export: JavaScript function
|
3 |
+
* Project: loco.po conversion
|
4 |
* Release: Working copy
|
5 |
* Locale: it_IT, Italian
|
6 |
+
* Exported at: Wed, 21 Jan 2015 14:04:39 +0000
|
7 |
*/
|
8 |
loco = window.loco||{}, loco.t = function( pairs ){
|
9 |
|
29 |
return value || ( 1 === n ? msgid1 : msgid2 ) || msgid1 || '';
|
30 |
};
|
31 |
}(
|
32 |
+
{"Error":"Errore","Warning":"Attenzione","OK":{"OK":["OK","OK"]},"Permission denied":"Permesso negato","Settings saved":"Impostazioni salvate","New PO file":"Nuovo file PO","You must specify a valid locale for a new PO file":"Devi specificare un locale valido per un nuovo file PO ","No translatable strings found":"Nessuna stringa da tradurre trovata","Cannot create a PO file.":"Il file PO non pu\u00f2 essere creato.","PO file already exists with locale %s":"Il file PO esiste gi\u00e0 con un locale %s","PO file used as template. This will be renamed to %s on first save":"File PO usato come modello. Verr\u00e0 rinominato in %s la prima volta che \u00e8 salvato.","File cannot be created automatically. Fix the file permissions or use Download instead of Save":"Il file non pu\u00f2 essere creato","%s file is empty":"Il file %s \u00e8 vuoto","Run Sync to update from source code":"Utilizza Sync per sincronizzare con il codice sorgente","No strings could be extracted from source code":"Impossibile estrarre le stringhe dal codice sorgente","Run Sync to update from %s":"Utilizza Sync per aggiornare da %s","Source code has been modified, run Sync to update POT":"Il codice sorgente \u00e8 stato modificato, utilizza Sync per aggiornare il file POT","POT has been modified since PO file was saved, run Sync to update":"Il file POT \u00e8 stato modificato dopo che il file PO \u00e8 stato salvato, utilizza Sync per aggiornare","Bad file path":"Percorso errato","Empty or invalid %s file":"File %s vuoto o invalido","%s file has no header":"File %s senza l'intestazione","New template":"Nuovo modello","New language":"Nuova lingua","%s%% translated":"%s%% tradotto","1 string":{"one":"1 stringa","other":"%s stringhe"},"%s fuzzy":"%s non verificata","%s untranslated":"%s non tradotto","Failed to compile MO file with built-in compiler":"Non \u00e8 stato possibile compilare il file MO con il compilatore incorporato","Loco, Translation Management":"Loco, Gestione di Traduzione","Manage translations":"Gestire le traduzioni","Translation options":"Opzioni di traduzione","Loco Translate":"Tradurre con Loco","Settings":"Imposatzioni","File download failed":"Download del file non riuscito","Unknown language":"Lingua sconosciuta","Some files not writable":"Alcuni file non scrivibili","Some files missing":"Alcuni file mancanti","\"%s\" folder not writable":"Cartella %s non scrivibile","POT file not writable":"File POT non scrivibile","PO file not writable":"File PO non scrivibile","MO file not writable":"File MO non scrivibile","MO file not found":"File MO non trovato","Folder not writable":"Cartella non scrivibile","Folder not found":"Cartella non trovata","User does not have permission to manage translations":"L'utente non ha il permesso di gestire le traduzioni","Failed to compile MO file with %s, check your settings":"Non \u00e8 stato possibile compilare il file MO con %s, controlla le impostazioni","Invalid data posted to server":"Dati invalidi mandati al server","Package not found called %s":"Nessun pacchetto trovato che si chiama %s","Web server cannot create backups in \"%s\". Fix file permissions or disable backups in settings":"Il server web non pu\u00f2 effettuare un backup in \"%s\". Devi aggiustare i permessi dei file or disattivare i backup nelle impostazioni","Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or create it manually.":"Il server web non pu\u00f2 creare la cartella \"%s\" in \"%s\". Devi aggiustare i permessi dei file or crearla manualmente.","Web server cannot create files in the \"%s\" directory. Fix file permissions or use the download function.":"Il server web non pu\u00f2 creare i file nella cartella \"%s\". Devi aggiustare i permessi dei file or utilizzare la funzione download.","%s file is not writable by the web server. Fix file permissions or download and copy to \"%s\/%s\".":"File %s non \u00e8 scrivibile dal server web. Devi aggiustare i permessi dei file or utilizzare la funzione download e copiarlo nel \"%s\/%s\".","Cannot create MO file":"Il file MO non pu\u00f2 essere creato.","Cannot overwrite MO file":"Il file MO non pu\u00f2 essere sovrascritto.","Failed to write MO file":"Impossibile scrivere il file MO","No source files in this package, nothing to sync":"Nessun file sorgente in questo pacchetto, niente da sincronizzare","No strings could be extracted from source files":"Impossibile estrarre le stringhe dai file sorgenti","Unknown error":"Errore sconosciuto","PO file saved":"File PO salvato","and MO file compiled":"e il file MO compilato","Merged from %s":"Uniti da %s","Merged from source code":"Uniti dal codice sorgente","Already up to date with %s":"Gi\u00e0 aggiornato con %s","Already up to date with source code":"Gi\u00e0 aggiornato con il codice sorgente","1 new string added":{"one":"1 nuova stringa aggiunta","other":"%s nuove stringhe aggiunte"},"1 obsolete string removed":{"one":"1 stringa obsoleta rimossa","other":"%s stringhe obsolete rimosse"},"Your changes will be lost if you continue without saving":"Le modifiche saranno perse se continui senza salvarle","Source text":"Testo sorgente","%s translation":"Traduzione %s","Comments":"Note","Context":"Contesto","Translation":"Traduzione","Packages":"Pacchetti","File check":"Controllo file","File system permissions for %s":"Permessi del file system per %s","Back":"Indietro","Get help":"Ottenere aiuto","Package details":"Dettagli del pacchetto","Translations (PO)":"Traduzioni (PO)","Template (POT)":"Modello (POT)","File permissions":"Permessi dei file","Extends: %s":"","1 language":{"one":"1 lingua","other":"lingue"},"Updated":{"Updated":["Modificato","Aggiornato"]},"Powered by":"Powered by","Loco may not work as expected":"Loco potrebbe non funzionare come dovrebbe","Configure Loco Translate":"Configurare Loco Translate","Compiling MO files":"Compilando i file MO","Use built-in MO compiler.":"Utilizza il compilatore di MO incorporato","Use external command:":"Utilizza il comando esterno:","Enter path to msgfmt on server":"Inserisci il percorso a msgfmt sul server","Generate hash tables":"Generare tabelle hash","Backing up PO files":"Effettuando un backup dei file PO","Number of backups to keep of each file:":"Numero di backup da conservare per ogni file:","Experimental features":"Funzioni sperimentali","Enable Wordpress core translations":"Abilita la traduzione del core di WordPress","Save settings":"Salva le impostazioni","Template file":"File modello","Switch to...":"Passare al...","never":"mai","Save":"Salva","Download":"Scarica","Sync":"Sync","Revert":"Ritornare","Add":"Aggiungi","Del":"Canc","Fuzzy":"Non verificato","Filter translations":"Filtra le traduzioni","Help":"Aiuto","Initialize new translations in %s":"Inizializza nuove traduzioni in %s ","Select from common languages":"Seleziona una lingua predefinita","or enter any language code":"o inserisci qualsiasi codice lingua","create in <code>%s<\/code>":"creare in <code>%s<\/code>","create in global languages directory":"creare nella cartella globale di lingue","Start translating":"Inizia a tradurre","New version available":"Nuova versione disponibile","Upgrade to version %s of Loco Translate":"Aggiorna alla versione %s di Loco Translate","Select a plugin or theme to translate":"Seleziona un plugin o un tema da tradurre","Themes":"Temi","Plugins":"Plugin","Core":"Core"}
|
33 |
);
|
pub/js/lang/loco-translate-nl_BE.js
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
/**
|
2 |
* Loco js export: JavaScript function
|
3 |
-
* Project: loco.
|
4 |
* Release: Working copy
|
5 |
* Locale: nl_BE, Dutch (Belgium)
|
6 |
-
* Exported at:
|
7 |
*/
|
8 |
loco = window.loco||{}, loco.t = function( pairs ){
|
9 |
|
@@ -29,5 +29,5 @@ loco = window.loco||{}, loco.t = function( pairs ){
|
|
29 |
return value || ( 1 === n ? msgid1 : msgid2 ) || msgid1 || '';
|
30 |
};
|
31 |
}(
|
32 |
-
{"Error":"Fout","Warning":"Waarschuwing","OK":"","Permission denied":"","Settings saved":"","New PO file":"Nieuw PO-bestand","You must specify a valid locale for a new PO file":"Specifieer een geldige locale voor een nieuw PO-bestand","No translatable strings found":"Geen vertaalbare teksten gevonden","Cannot create a PO file.":"Kan geen PO-bestand aanmaken","PO file already exists with locale %s":"PO-bestand bestaat al in locale %s","PO file used as template. This will be renamed to %s on first save":"","File cannot be created automatically. Fix the file permissions or use Download instead of Save":"Bestand kan niet automatisch aangemaakt worden. Verander de rechten of gebruik download en bewaar.","%s file is empty":"Het bestand %s is leeg","Run Sync to update from source code":"Voer Sync uit om de broncode up te daten","No strings could be extracted from source code":"Er kon geen tekst uit de broncode gehaald worden","Run Sync to update from %s":"Gebruik Sync om vanuit %s up te daten","Source code has been modified, run Sync to update POT":"Broncode is veranderd. Gebruik Sync om POT up te daten","POT has been modified since PO file was saved, run Sync to update":"POT is veranderd sedert bewaren van het PO-bestand. Gebruik Sync om up te daten","Bad file path":"Foute bestandslocatie","Empty or invalid %s file":"","%s file has no header":"","New template":"Nieuw sjabloon","New language":"Nieuwe taal","%s%% translated":"%s%% vertaald","1 string":{"one":"1 te vertalen tekst","other":"%s te vertalen teksten"},"%s fuzzy":"%s onzeker","%s untranslated":"%s onvertaald","Failed to compile MO file with built-in compiler":"","Loco, Translation Management":"Loco, vertalingsbeheer","Manage translations":"Beheer vertalingen","Translation options":"","Loco Translate":"","Settings":"","File download failed":"","Unknown language":"Onbekende taal","Some files not writable":"Sommige bestanden hebben geen schrijfrechten","Some files missing":"","\"%s\" folder not writable":"Map \"%s\" heeft geen schrijfrechten","POT file not writable":"","PO file not writable":"","MO file not writable":"","MO file not found":"","Folder not writable":"","Folder not found":"","User does not have permission to manage translations":"Gebruik heeft geen rechten om vertalingen te beheren","Failed to compile MO file with %s, check your settings":"","Invalid data posted to server":"Ongeldige gegevens op server","Package not found called %s":"","Web server cannot create backups in \"%s\". Fix file permissions or disable backups in settings":"","Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or create it manually.":"Webserver kan map \"%s\" in \"%s\" niet aanmaken. Bewerk bestandsrechten of maak het zelf aan.","Web server cannot create files in the \"%s\" directory. Fix file permissions or use the download function.":"Webserver kan map \"%s\" in \"%s\" niet aanmaken. Bewerk bestandsrechten of gebruik de downloadfunctie.","%s file is not writable by the web server. Fix file permissions or download and copy to \"%s\/%s\".":"Bestand %s kan niet beschreven worden door de webserver. Bewerk de schrijfrechten of download en kopieer naar \"%s\/%s\".","Cannot create MO file":"","Cannot overwrite MO file":"","Failed to write MO file":"","No source files in this package, nothing to sync":"","No strings could be extracted from source files":"Er konden geen te vertalen teksten uit de bronbestanden gehaald worden","Unknown error":"","PO file saved":"","and MO file compiled":"","Merged from %s":"","Merged from source code":"","Already up to date with %s":"","Already up to date with source code":"","1 new string added":{"one":"","other":""},"1 obsolete string removed":{"one":"","other":""},"Your changes will be lost if you continue without saving":"","Source text":"","%s translation":"","Comments":"","Context":"","Translation":"","Packages":"Pakketten","File check":"","File system permissions for %s":"","Back":"","Get help":"","Package details":"Pakketdetails","Translations (PO)":"Vertalingen (PO)","Template (POT)":"Sjabloon (POT)","File permissions":"Bestandsrechten","Extends: %s":"","1 language":{"one":"1 taal","other":"%u talen"},"Updated":"Ge\u00fcpdated","Powered by":"Ondersteund door","Loco may not work as expected":"","Configure Loco Translate":"","Compiling MO files":"","Use built-in MO compiler.":"","Use external command:":"","Enter path to msgfmt on server":"","Generate hash tables":"","Backing up PO files":"","Number of backups to keep of each file:":"","Experimental features":"","Enable Wordpress core translations":"","Save settings":"","Template file":"Sjabloonbestand","Switch to...":"","never":"nooit","Save":"Opslaan","Download":"Downloaden","Sync":"Sync","Revert":"Ongedaan maken","Add":"Toevoegen","Del":"Verwijder","Fuzzy":"Onzeker","Filter translations":"Filter vertalingen","Help":"Help","Initialize new translations in %s":"Start nieuwe vertalingen in %s","Select from common languages":"Selecteer van gebruikelijke talen","or enter any language code":"of geef een taalcode op","create in <code>%s<\/code>":"","create in global languages directory":"","Start translating":"Start vertalen","New version available":"Nieuwe versie beschikbaar","Upgrade to version %s of Loco Translate":"Loco Translate upgraden naar versie %s","Select a plugin or theme to translate":"Selecteer een plug-in of thema om te vertalen","Themes":"Thema's","Plugins":"Plug-ins","Core":""}
|
33 |
);
|
1 |
/**
|
2 |
* Loco js export: JavaScript function
|
3 |
+
* Project: loco.po conversion
|
4 |
* Release: Working copy
|
5 |
* Locale: nl_BE, Dutch (Belgium)
|
6 |
+
* Exported at: Wed, 21 Jan 2015 14:04:39 +0000
|
7 |
*/
|
8 |
loco = window.loco||{}, loco.t = function( pairs ){
|
9 |
|
29 |
return value || ( 1 === n ? msgid1 : msgid2 ) || msgid1 || '';
|
30 |
};
|
31 |
}(
|
32 |
+
{"Error":"Fout","Warning":"Waarschuwing","OK":{"OK":["OK",""]},"Permission denied":"","Settings saved":"","New PO file":"Nieuw PO-bestand","You must specify a valid locale for a new PO file":"Specifieer een geldige locale voor een nieuw PO-bestand","No translatable strings found":"Geen vertaalbare teksten gevonden","Cannot create a PO file.":"Kan geen PO-bestand aanmaken","PO file already exists with locale %s":"PO-bestand bestaat al in locale %s","PO file used as template. This will be renamed to %s on first save":"","File cannot be created automatically. Fix the file permissions or use Download instead of Save":"Bestand kan niet automatisch aangemaakt worden. Verander de rechten of gebruik download en bewaar.","%s file is empty":"Het bestand %s is leeg","Run Sync to update from source code":"Voer Sync uit om de broncode up te daten","No strings could be extracted from source code":"Er kon geen tekst uit de broncode gehaald worden","Run Sync to update from %s":"Gebruik Sync om vanuit %s up te daten","Source code has been modified, run Sync to update POT":"Broncode is veranderd. Gebruik Sync om POT up te daten","POT has been modified since PO file was saved, run Sync to update":"POT is veranderd sedert bewaren van het PO-bestand. Gebruik Sync om up te daten","Bad file path":"Foute bestandslocatie","Empty or invalid %s file":"","%s file has no header":"","New template":"Nieuw sjabloon","New language":"Nieuwe taal","%s%% translated":"%s%% vertaald","1 string":{"one":"1 te vertalen tekst","other":"%s te vertalen teksten"},"%s fuzzy":"%s onzeker","%s untranslated":"%s onvertaald","Failed to compile MO file with built-in compiler":"","Loco, Translation Management":"Loco, vertalingsbeheer","Manage translations":"Beheer vertalingen","Translation options":"","Loco Translate":"","Settings":"","File download failed":"","Unknown language":"Onbekende taal","Some files not writable":"Sommige bestanden hebben geen schrijfrechten","Some files missing":"","\"%s\" folder not writable":"Map \"%s\" heeft geen schrijfrechten","POT file not writable":"","PO file not writable":"","MO file not writable":"","MO file not found":"","Folder not writable":"","Folder not found":"","User does not have permission to manage translations":"Gebruik heeft geen rechten om vertalingen te beheren","Failed to compile MO file with %s, check your settings":"","Invalid data posted to server":"Ongeldige gegevens op server","Package not found called %s":"","Web server cannot create backups in \"%s\". Fix file permissions or disable backups in settings":"","Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or create it manually.":"Webserver kan map \"%s\" in \"%s\" niet aanmaken. Bewerk bestandsrechten of maak het zelf aan.","Web server cannot create files in the \"%s\" directory. Fix file permissions or use the download function.":"Webserver kan map \"%s\" in \"%s\" niet aanmaken. Bewerk bestandsrechten of gebruik de downloadfunctie.","%s file is not writable by the web server. Fix file permissions or download and copy to \"%s\/%s\".":"Bestand %s kan niet beschreven worden door de webserver. Bewerk de schrijfrechten of download en kopieer naar \"%s\/%s\".","Cannot create MO file":"","Cannot overwrite MO file":"","Failed to write MO file":"","No source files in this package, nothing to sync":"","No strings could be extracted from source files":"Er konden geen te vertalen teksten uit de bronbestanden gehaald worden","Unknown error":"","PO file saved":"","and MO file compiled":"","Merged from %s":"","Merged from source code":"","Already up to date with %s":"","Already up to date with source code":"","1 new string added":{"one":"","other":""},"1 obsolete string removed":{"one":"","other":""},"Your changes will be lost if you continue without saving":"","Source text":"","%s translation":"","Comments":"","Context":"","Translation":"","Packages":"Pakketten","File check":"","File system permissions for %s":"","Back":"","Get help":"","Package details":"Pakketdetails","Translations (PO)":"Vertalingen (PO)","Template (POT)":"Sjabloon (POT)","File permissions":"Bestandsrechten","Extends: %s":"","1 language":{"one":"1 taal","other":"%u talen"},"Updated":{"Updated":["Ge\u00fcpdated","Ge\u00fcpdated"]},"Powered by":"Ondersteund door","Loco may not work as expected":"","Configure Loco Translate":"","Compiling MO files":"","Use built-in MO compiler.":"","Use external command:":"","Enter path to msgfmt on server":"","Generate hash tables":"","Backing up PO files":"","Number of backups to keep of each file:":"","Experimental features":"","Enable Wordpress core translations":"","Save settings":"","Template file":"Sjabloonbestand","Switch to...":"","never":"nooit","Save":"Opslaan","Download":"Downloaden","Sync":"Sync","Revert":"Ongedaan maken","Add":"Toevoegen","Del":"Verwijder","Fuzzy":"Onzeker","Filter translations":"Filter vertalingen","Help":"Help","Initialize new translations in %s":"Start nieuwe vertalingen in %s","Select from common languages":"Selecteer van gebruikelijke talen","or enter any language code":"of geef een taalcode op","create in <code>%s<\/code>":"","create in global languages directory":"","Start translating":"Start vertalen","New version available":"Nieuwe versie beschikbaar","Upgrade to version %s of Loco Translate":"Loco Translate upgraden naar versie %s","Select a plugin or theme to translate":"Selecteer een plug-in of thema om te vertalen","Themes":"Thema's","Plugins":"Plug-ins","Core":""}
|
33 |
);
|
pub/js/lang/loco-translate-nl_NL.js
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
/**
|
2 |
* Loco js export: JavaScript function
|
3 |
-
* Project: loco.
|
4 |
* Release: Working copy
|
5 |
* Locale: nl_NL, Dutch
|
6 |
-
* Exported at:
|
7 |
*/
|
8 |
loco = window.loco||{}, loco.t = function( pairs ){
|
9 |
|
@@ -29,5 +29,5 @@ loco = window.loco||{}, loco.t = function( pairs ){
|
|
29 |
return value || ( 1 === n ? msgid1 : msgid2 ) || msgid1 || '';
|
30 |
};
|
31 |
}(
|
32 |
-
{"Error":"Fout","Warning":"Waarschuwing","OK":"","Permission denied":"","Settings saved":"","New PO file":"Nieuw PO-bestand","You must specify a valid locale for a new PO file":"Specifieer een geldige locale voor een nieuw PO-bestand","No translatable strings found":"Geen vertaalbare teksten gevonden","Cannot create a PO file.":"Kan geen PO-bestand aanmaken","PO file already exists with locale %s":"PO-bestand bestaat al in locale %s","PO file used as template. This will be renamed to %s on first save":"","File cannot be created automatically. Fix the file permissions or use Download instead of Save":"Bestand kan niet automatisch aangemaakt worden. Verander de rechten of gebruik download en bewaar.","%s file is empty":"Het bestand %s is leeg","Run Sync to update from source code":"Voer Sync uit om de broncode up te daten","No strings could be extracted from source code":"Er kon geen tekst uit de broncode gehaald worden","Run Sync to update from %s":"Gebruik Sync om vanuit %s up te daten","Source code has been modified, run Sync to update POT":"Broncode is veranderd. Gebruik Sync om POT up te daten","POT has been modified since PO file was saved, run Sync to update":"POT is veranderd sedert bewaren van het PO-bestand. Gebruik Sync om up te daten","Bad file path":"Foute bestandslocatie","Empty or invalid %s file":"","%s file has no header":"","New template":"Nieuw sjabloon","New language":"Nieuwe taal","%s%% translated":"%s%% vertaald","1 string":{"one":"1 te vertalen tekst","other":"%s te vertalen teksten"},"%s fuzzy":"%s onzeker","%s untranslated":"%s onvertaald","Failed to compile MO file with built-in compiler":"","Loco, Translation Management":"Loco, vertalingsbeheer","Manage translations":"Beheer vertalingen","Translation options":"","Loco Translate":"","Settings":"","File download failed":"","Unknown language":"Onbekende taal","Some files not writable":"Sommige bestanden hebben geen schrijfrechten","Some files missing":"","\"%s\" folder not writable":"Map \"%s\" heeft geen schrijfrechten","POT file not writable":"","PO file not writable":"","MO file not writable":"","MO file not found":"","Folder not writable":"","Folder not found":"","User does not have permission to manage translations":"Gebruik heeft geen rechten om vertalingen te beheren","Failed to compile MO file with %s, check your settings":"","Invalid data posted to server":"Ongeldige gegevens op server","Package not found called %s":"","Web server cannot create backups in \"%s\". Fix file permissions or disable backups in settings":"","Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or create it manually.":"Webserver kan map \"%s\" in \"%s\" niet aanmaken. Bewerk bestandsrechten of maak het zelf aan.","Web server cannot create files in the \"%s\" directory. Fix file permissions or use the download function.":"Webserver kan map \"%s\" in \"%s\" niet aanmaken. Bewerk bestandsrechten of gebruik de downloadfunctie.","%s file is not writable by the web server. Fix file permissions or download and copy to \"%s\/%s\".":"Bestand %s kan niet beschreven worden door de webserver. Bewerk de schrijfrechten of download en kopieer naar \"%s\/%s\".","Cannot create MO file":"","Cannot overwrite MO file":"","Failed to write MO file":"","No source files in this package, nothing to sync":"","No strings could be extracted from source files":"Er konden geen te vertalen teksten uit de bronbestanden gehaald worden","Unknown error":"","PO file saved":"","and MO file compiled":"","Merged from %s":"","Merged from source code":"","Already up to date with %s":"","Already up to date with source code":"","1 new string added":{"one":"","other":""},"1 obsolete string removed":{"one":"","other":""},"Your changes will be lost if you continue without saving":"","Source text":"","%s translation":"","Comments":"","Context":"","Translation":"","Packages":"Pakketten","File check":"","File system permissions for %s":"","Back":"","Get help":"","Package details":"Pakketdetails","Translations (PO)":"Vertalingen (PO)","Template (POT)":"Sjabloon (POT)","File permissions":"Bestandsrechten","Extends: %s":"","1 language":{"one":"1 taal","other":"%u talen"},"Updated":"Ge\u00fcpdated","Powered by":"Ondersteund door","Loco may not work as expected":"","Configure Loco Translate":"","Compiling MO files":"","Use built-in MO compiler.":"","Use external command:":"","Enter path to msgfmt on server":"","Generate hash tables":"","Backing up PO files":"","Number of backups to keep of each file:":"","Experimental features":"","Enable Wordpress core translations":"","Save settings":"","Template file":"Sjabloonbestand","Switch to...":"","never":"nooit","Save":"Opslaan","Download":"Downloaden","Sync":"Sync","Revert":"Ongedaan maken","Add":"Toevoegen","Del":"Verwijder","Fuzzy":"Onzeker","Filter translations":"Filter vertalingen","Help":"Help","Initialize new translations in %s":"Start nieuwe vertalingen in %s","Select from common languages":"Selecteer van gebruikelijke talen","or enter any language code":"of geef een taalcode op","create in <code>%s<\/code>":"","create in global languages directory":"","Start translating":"Start vertalen","New version available":"Nieuwe versie beschikbaar","Upgrade to version %s of Loco Translate":"Loco Translate upgraden naar versie %s","Select a plugin or theme to translate":"Selecteer een plug-in of thema om te vertalen","Themes":"Thema's","Plugins":"Plug-ins","Core":""}
|
33 |
);
|
1 |
/**
|
2 |
* Loco js export: JavaScript function
|
3 |
+
* Project: loco.po conversion
|
4 |
* Release: Working copy
|
5 |
* Locale: nl_NL, Dutch
|
6 |
+
* Exported at: Wed, 21 Jan 2015 14:04:40 +0000
|
7 |
*/
|
8 |
loco = window.loco||{}, loco.t = function( pairs ){
|
9 |
|
29 |
return value || ( 1 === n ? msgid1 : msgid2 ) || msgid1 || '';
|
30 |
};
|
31 |
}(
|
32 |
+
{"Error":"Fout","Warning":"Waarschuwing","OK":{"OK":["OK",""]},"Permission denied":"","Settings saved":"","New PO file":"Nieuw PO-bestand","You must specify a valid locale for a new PO file":"Specifieer een geldige locale voor een nieuw PO-bestand","No translatable strings found":"Geen vertaalbare teksten gevonden","Cannot create a PO file.":"Kan geen PO-bestand aanmaken","PO file already exists with locale %s":"PO-bestand bestaat al in locale %s","PO file used as template. This will be renamed to %s on first save":"","File cannot be created automatically. Fix the file permissions or use Download instead of Save":"Bestand kan niet automatisch aangemaakt worden. Verander de rechten of gebruik download en bewaar.","%s file is empty":"Het bestand %s is leeg","Run Sync to update from source code":"Voer Sync uit om de broncode up te daten","No strings could be extracted from source code":"Er kon geen tekst uit de broncode gehaald worden","Run Sync to update from %s":"Gebruik Sync om vanuit %s up te daten","Source code has been modified, run Sync to update POT":"Broncode is veranderd. Gebruik Sync om POT up te daten","POT has been modified since PO file was saved, run Sync to update":"POT is veranderd sedert bewaren van het PO-bestand. Gebruik Sync om up te daten","Bad file path":"Foute bestandslocatie","Empty or invalid %s file":"","%s file has no header":"","New template":"Nieuw sjabloon","New language":"Nieuwe taal","%s%% translated":"%s%% vertaald","1 string":{"one":"1 te vertalen tekst","other":"%s te vertalen teksten"},"%s fuzzy":"%s onzeker","%s untranslated":"%s onvertaald","Failed to compile MO file with built-in compiler":"","Loco, Translation Management":"Loco, vertalingsbeheer","Manage translations":"Beheer vertalingen","Translation options":"","Loco Translate":"","Settings":"","File download failed":"","Unknown language":"Onbekende taal","Some files not writable":"Sommige bestanden hebben geen schrijfrechten","Some files missing":"","\"%s\" folder not writable":"Map \"%s\" heeft geen schrijfrechten","POT file not writable":"","PO file not writable":"","MO file not writable":"","MO file not found":"","Folder not writable":"","Folder not found":"","User does not have permission to manage translations":"Gebruik heeft geen rechten om vertalingen te beheren","Failed to compile MO file with %s, check your settings":"","Invalid data posted to server":"Ongeldige gegevens op server","Package not found called %s":"","Web server cannot create backups in \"%s\". Fix file permissions or disable backups in settings":"","Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or create it manually.":"Webserver kan map \"%s\" in \"%s\" niet aanmaken. Bewerk bestandsrechten of maak het zelf aan.","Web server cannot create files in the \"%s\" directory. Fix file permissions or use the download function.":"Webserver kan map \"%s\" in \"%s\" niet aanmaken. Bewerk bestandsrechten of gebruik de downloadfunctie.","%s file is not writable by the web server. Fix file permissions or download and copy to \"%s\/%s\".":"Bestand %s kan niet beschreven worden door de webserver. Bewerk de schrijfrechten of download en kopieer naar \"%s\/%s\".","Cannot create MO file":"","Cannot overwrite MO file":"","Failed to write MO file":"","No source files in this package, nothing to sync":"","No strings could be extracted from source files":"Er konden geen te vertalen teksten uit de bronbestanden gehaald worden","Unknown error":"","PO file saved":"","and MO file compiled":"","Merged from %s":"","Merged from source code":"","Already up to date with %s":"","Already up to date with source code":"","1 new string added":{"one":"","other":""},"1 obsolete string removed":{"one":"","other":""},"Your changes will be lost if you continue without saving":"","Source text":"","%s translation":"","Comments":"","Context":"","Translation":"","Packages":"Pakketten","File check":"","File system permissions for %s":"","Back":"","Get help":"","Package details":"Pakketdetails","Translations (PO)":"Vertalingen (PO)","Template (POT)":"Sjabloon (POT)","File permissions":"Bestandsrechten","Extends: %s":"","1 language":{"one":"1 taal","other":"%u talen"},"Updated":{"Updated":["Ge\u00fcpdated","Ge\u00fcpdated"]},"Powered by":"Ondersteund door","Loco may not work as expected":"","Configure Loco Translate":"","Compiling MO files":"","Use built-in MO compiler.":"","Use external command:":"","Enter path to msgfmt on server":"","Generate hash tables":"","Backing up PO files":"","Number of backups to keep of each file:":"","Experimental features":"","Enable Wordpress core translations":"","Save settings":"","Template file":"Sjabloonbestand","Switch to...":"","never":"nooit","Save":"Opslaan","Download":"Downloaden","Sync":"Sync","Revert":"Ongedaan maken","Add":"Toevoegen","Del":"Verwijder","Fuzzy":"Onzeker","Filter translations":"Filter vertalingen","Help":"Help","Initialize new translations in %s":"Start nieuwe vertalingen in %s","Select from common languages":"Selecteer van gebruikelijke talen","or enter any language code":"of geef een taalcode op","create in <code>%s<\/code>":"","create in global languages directory":"","Start translating":"Start vertalen","New version available":"Nieuwe versie beschikbaar","Upgrade to version %s of Loco Translate":"Loco Translate upgraden naar versie %s","Select a plugin or theme to translate":"Selecteer een plug-in of thema om te vertalen","Themes":"Thema's","Plugins":"Plug-ins","Core":""}
|
33 |
);
|
pub/js/lang/loco-translate-pl_PL.js
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
/**
|
2 |
* Loco js export: JavaScript function
|
3 |
-
* Project: loco.
|
4 |
* Release: Working copy
|
5 |
* Locale: pl_PL, Polish
|
6 |
-
* Exported at: Wed,
|
7 |
*/
|
8 |
loco = window.loco||{}, loco.t = function( pairs ){
|
9 |
|
@@ -29,5 +29,5 @@ loco = window.loco||{}, loco.t = function( pairs ){
|
|
29 |
return value || ( 1 === n ? msgid1 : msgid2 ) || msgid1 || '';
|
30 |
};
|
31 |
}(
|
32 |
-
{"Fuzzy":"Niepewny","File system permissions for %s":"Uprawnienia systemu plik\u00f3w dla %s","Back":"Wstecz","Get help":"Pomoc","Package details":"Detale paczki","Translations (PO)":"T\u0142umaczenia (PO)","Template (POT)":"Schemat (POT)","File permissions":"Uprawnienia plik\u00f3w","Extends: %s":"Rozszerza: %s","1 language":{"one":"1 j\u0119zyk","few":"%u j\u0119zyki","many":"%u j\u0119zyk\u00f3w"},"Updated":"Zaktualizowano","OK":"OK","Powered by":"Nap\u0119dzany przez","Loco may not work as expected":"Loco mo\u017ce nie dzia\u0142a\u0107 tak jak oczekujesz","Configure Loco Translate":"Konfiguruj Loco Translate","Compiling MO files":"Kompilowanie plik\u00f3w MO","Use built-in MO compiler.":"U\u017cyj wbudowanego kompilatora MO.","Use external command:":"U\u017cyj zewn\u0119trznej komendy:","Enter path to msgfmt on server":"Wpisz \u015bcie\u017ck\u0119 do msgfmt na serwerze","Generate hash tables":"Generuj tablice hash","Backing up PO files":"Zr\u00f3b kopi\u0119 zapasow\u0105 plik\u00f3w PO","Number of backups to keep of each file:":"Liczba kopii zapasowych ka\u017cdego pliku do przechowania:","Experimental features":"Funkcje eksperymentalne","Enable Wordpress core translations":"W\u0142\u0105cz t\u0142umaczenie silnika Wordpress","Save settings":"Zapisz ustawienia","Template file":"Plik schematu","Switch to...":"Zmie\u0144 na...","never":"nigdy","Save":"Zapisz","Download":"Pobierz","Sync":"Synchronizuj","Revert":"Przywr\u00f3\u0107","Add":"Dodaj","Del":"Usu\u0144","Filter translations":"Filtruj t\u0142umaczenia","Help":"Pomoc","Initialize new translations in %s":"Zainicjuj nowe t\u0142umaczenie w %s","Select from common languages":"Wybierz z cz\u0119stych j\u0119zyk\u00f3w","or enter any language code":"lub wpisz dowolny kod j\u0119zyka","create in <code>%s<\/code>":"stw\u00f3rz w <code>%s<\/code>","create in global languages directory":"stw\u00f3rz w globalny, katalogu j\u0119zyk\u00f3w","Start translating":"Zacznij t\u0142umaczy\u0107","New version available":"Nowa wersja jest dost\u0119pna","Upgrade to version %s of Loco Translate":"Zaktualizuj Loco Translate do wersji %s","Select a plugin or theme to translate":"Wybierz wtyczk\u0119 lub motyw do t\u0142umaczenia","Themes":"Motywy","Plugins":"Wtyczki","Core":"Silnik","%s fuzzy":"%s niepewnych","Failed to compile MO file with built-in compiler":"Niepowodzenie kompilacji pliku MO u\u017cywaj\u0105c wbudowanego kompilatora","File download failed":"B\u0142\u0105d pobierania pliku","Unknown language":"Nieznany j\u0119zyk","Some files not writable":"Niekt\u00f3re pliki s\u0105 tylko do odczytu","Some files missing":"Brakuj\u0105ce niekt\u00f3re pliki","\"%s\" folder not writable":"\"%s\" katalog jest tylko do odczytu","POT file not writable":"Plik POT jest tylko do odczytu","PO file not writable":"Plik PO jest tylko do odczytu","MO file not writable":"Plik MO jest tylko do odczytu","MO file not found":"Nie znaleziono pliku MO","Folder not writable":"Katalog jest tylko do odczytu","Folder not found":"Nie znaleziono katalogu","User does not have permission to manage translations":"U\u017cytkownik nie ma uprawnie\u0144 do zarz\u0105dzania t\u0142umaczeniami","Failed to compile MO file with %s, check your settings":"Nie uda\u0142o si\u0119 skompilowa\u0107 pliku MO u\u017cywaj\u0105c %s, sprawd\u017a ustawienia","Invalid data posted to server":"B\u0142\u0119dne dane wys\u0142ane do serwera","Package not found called %s":"Paczka o nazwie %s nie zosta\u0142a znaleziona","Web server cannot create backups in \"%s\". Fix file permissions or disable backups in settings":"Serwer www nie mo\u017ce utworzy\u0107 kopii w \"%s\". Popraw uprawnienia lub wy\u0142\u0105cz kopie zapasowe w ustawieniach","Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or create it manually.":"Serwer www nie mo\u017ce utworzy\u0107 katalogu \"%s\". Popraw uprawnienia lub utw\u00f3rz go r\u0119cznie.","Web server cannot create files in the \"%s\" directory. Fix file permissions or use the download function.":"Serwer www nie mo\u017ce utworzy\u0107 plik\u00f3w w katalogu \"%s\". Popraw uprawnienia lub u\u017cyj funkcji pobierania.","%s file is not writable by the web server. Fix file permissions or download and copy to \"%s\/%s\".":"%s jest tylko do odczytu dla serwera www. Popraw uprawnienia lub pobierz i skopiuj do \"%s\/%s\".","Cannot create MO file":"Nie mo\u017cna utworzy\u0107 pliku MO","Cannot overwrite MO file":"Nie mo\u017cna nadpisa\u0107 pliku MO","Failed to write MO file":"B\u0142\u0105d zapisu pliku MO","No source files in this package, nothing to sync":"Brak plik\u00f3w \u017ar\u00f3d\u0142owych w tej paczce, nic do synchronizacji","No strings could be extracted from source files":"\u017badne linie nie mog\u0105 by\u0107 wyci\u0105gni\u0119te z plik\u00f3w \u017ar\u00f3d\u0142owych","Unknown error":"Nieznany b\u0142\u0105d","PO file saved":"Plik PO zapisany","and MO file compiled":"oraz plik MO skompilowany","Merged from %s":"Po\u0142\u0105czono z %s","Merged from source code":"Po\u0142\u0105czono z kodu \u017ar\u00f3d\u0142owego","Already up to date with %s":"Ju\u017c aktualne z %s","Already up to date with source code":"Ju\u017c aktualne z kodu \u017ar\u00f3d\u0142owego","1 new string added":{"one":"1 nowa linia dodana","few":"%s nowe linie dodano","many":"%s nowych linii dodano"},"1 obsolete string removed":{"one":"1 zb\u0119dna linia usuni\u0119ta","few":"%s zb\u0119dne linie usuni\u0119te","many":"%s zb\u0119dnych linii usuni\u0119to"},"Your changes will be lost if you continue without saving":"Utracisz aktualne zmiany je\u015bli b\u0119dziesz kontynuowa\u0142 bez zapisywania","Source text":"Tekst \u017ar\u00f3d\u0142owy","%s translation":"%s t\u0142umaczenie","Comments":"Komentarze","Context":"Kontekst","File check":"Sprawdzenie plik\u00f3w","PO file used as template. This will be renamed to %s on first save":"Plik PO u\u017cyty jako szablon. Nazwa zostanie zmieniona na % przy pierwszym zapisie","File cannot be created automatically. Fix the file permissions or use Download instead of Save":"Plik nie mo\u017ce by\u0107 utworzony automatycznie. Napraw uprawnienia albo u\u017cyj Pobierz zamiast Zapisz","%s file is empty":"Plik %s jest pusty","Run Sync to update from source code":"Uruchom synchronizacj\u0119 aby zaktualizowa\u0107 z kodu \u017ar\u00f3d\u0142owego","No strings could be extracted from source code":"Nie mo\u017cna wyci\u0105gn\u0105\u0107 \u017cadnych linii z kodu \u017ar\u00f3d\u0142owego","Run Sync to update from %s":"Uruchom synchronizacj\u0119 aby zaktualizowa\u0107 z %s","Source code has been modified, run Sync to update POT":"Kod \u017ar\u00f3d\u0142owy zosta\u0142 zaktualizowany, uruchom synchronizacj\u0119 aby zaktualizowa\u0107 plik POT","POT has been modified since PO file was saved, run Sync to update":"Plik POT zosta\u0142 zmieniony od czasu zapisu pliku PO, uruchom synchronizacj\u0119 aby zaktualizowa\u0107","Bad file path":"B\u0142\u0119dna \u015bcie\u017cka pliku","Empty or invalid %s file":"Pusty lub b\u0142\u0119dny plik %s","%s file has no header":"Plik %s nie ma nag\u0142\u00f3wka","New template":"Nowy szablon","New language":"Nowy j\u0119zyk","%s%% translated":"%s%% przet\u0142umaczono","1 string":{"one":"1 linia","few":"%s linie","many":"%s linii"},"%s untranslated":"%s nie przet\u0142umaczone","Loco, Translation Management":"Loco, Menad\u017cer T\u0142umacze\u0144","Manage translations":"Zarz\u0105dzaj t\u0142umaczeniami","Translation options":"Opcje t\u0142umacze\u0144","Loco Translate":"Loco Translate","Settings":"Ustawienia","Translation":"T\u0142umaczenie","Packages":"Paczki","Error":"B\u0142\u0105d","Warning":"Ostrze\u017cenie","Permission denied":"Odmowa dost\u0119pu","Settings saved":"Ustawienia zapisane","New PO file":"Nowy plik PO","You must specify a valid locale for a new PO file":"Musisz okre\u015bli\u0107 w\u0142a\u015bciwy region dla nowego pliku PO","No translatable strings found":"Brak dost\u0119pnych lini do t\u0142umaczenia","Cannot create a PO file.":"Nie mo\u017cna utworzy\u0107 pliku PO.","PO file already exists with locale %s":"Plik PO ju\u017c istnieje z regionu %s"}
|
33 |
);
|
1 |
/**
|
2 |
* Loco js export: JavaScript function
|
3 |
+
* Project: loco.po conversion
|
4 |
* Release: Working copy
|
5 |
* Locale: pl_PL, Polish
|
6 |
+
* Exported at: Wed, 21 Jan 2015 14:04:40 +0000
|
7 |
*/
|
8 |
loco = window.loco||{}, loco.t = function( pairs ){
|
9 |
|
29 |
return value || ( 1 === n ? msgid1 : msgid2 ) || msgid1 || '';
|
30 |
};
|
31 |
}(
|
32 |
+
{"Fuzzy":"Niepewny","File system permissions for %s":"Uprawnienia systemu plik\u00f3w dla %s","Back":"Wstecz","Get help":"Pomoc","Package details":"Detale paczki","Translations (PO)":"T\u0142umaczenia (PO)","Template (POT)":"Schemat (POT)","File permissions":"Uprawnienia plik\u00f3w","Extends: %s":"Rozszerza: %s","1 language":{"one":"1 j\u0119zyk","few":"%u j\u0119zyki","many":"%u j\u0119zyk\u00f3w"},"Updated":{"Updated":["Zaktualizowano","Zaktualizowano"]},"OK":{"OK":["OK","OK"]},"Powered by":"Nap\u0119dzany przez","Loco may not work as expected":"Loco mo\u017ce nie dzia\u0142a\u0107 tak jak oczekujesz","Configure Loco Translate":"Konfiguruj Loco Translate","Compiling MO files":"Kompilowanie plik\u00f3w MO","Use built-in MO compiler.":"U\u017cyj wbudowanego kompilatora MO.","Use external command:":"U\u017cyj zewn\u0119trznej komendy:","Enter path to msgfmt on server":"Wpisz \u015bcie\u017ck\u0119 do msgfmt na serwerze","Generate hash tables":"Generuj tablice hash","Backing up PO files":"Zr\u00f3b kopi\u0119 zapasow\u0105 plik\u00f3w PO","Number of backups to keep of each file:":"Liczba kopii zapasowych ka\u017cdego pliku do przechowania:","Experimental features":"Funkcje eksperymentalne","Enable Wordpress core translations":"W\u0142\u0105cz t\u0142umaczenie silnika Wordpress","Save settings":"Zapisz ustawienia","Template file":"Plik schematu","Switch to...":"Zmie\u0144 na...","never":"nigdy","Save":"Zapisz","Download":"Pobierz","Sync":"Synchronizuj","Revert":"Przywr\u00f3\u0107","Add":"Dodaj","Del":"Usu\u0144","Filter translations":"Filtruj t\u0142umaczenia","Help":"Pomoc","Initialize new translations in %s":"Zainicjuj nowe t\u0142umaczenie w %s","Select from common languages":"Wybierz z cz\u0119stych j\u0119zyk\u00f3w","or enter any language code":"lub wpisz dowolny kod j\u0119zyka","create in <code>%s<\/code>":"stw\u00f3rz w <code>%s<\/code>","create in global languages directory":"stw\u00f3rz w globalny, katalogu j\u0119zyk\u00f3w","Start translating":"Zacznij t\u0142umaczy\u0107","New version available":"Nowa wersja jest dost\u0119pna","Upgrade to version %s of Loco Translate":"Zaktualizuj Loco Translate do wersji %s","Select a plugin or theme to translate":"Wybierz wtyczk\u0119 lub motyw do t\u0142umaczenia","Themes":"Motywy","Plugins":"Wtyczki","Core":"Silnik","%s fuzzy":"%s niepewnych","Failed to compile MO file with built-in compiler":"Niepowodzenie kompilacji pliku MO u\u017cywaj\u0105c wbudowanego kompilatora","File download failed":"B\u0142\u0105d pobierania pliku","Unknown language":"Nieznany j\u0119zyk","Some files not writable":"Niekt\u00f3re pliki s\u0105 tylko do odczytu","Some files missing":"Brakuj\u0105ce niekt\u00f3re pliki","\"%s\" folder not writable":"\"%s\" katalog jest tylko do odczytu","POT file not writable":"Plik POT jest tylko do odczytu","PO file not writable":"Plik PO jest tylko do odczytu","MO file not writable":"Plik MO jest tylko do odczytu","MO file not found":"Nie znaleziono pliku MO","Folder not writable":"Katalog jest tylko do odczytu","Folder not found":"Nie znaleziono katalogu","User does not have permission to manage translations":"U\u017cytkownik nie ma uprawnie\u0144 do zarz\u0105dzania t\u0142umaczeniami","Failed to compile MO file with %s, check your settings":"Nie uda\u0142o si\u0119 skompilowa\u0107 pliku MO u\u017cywaj\u0105c %s, sprawd\u017a ustawienia","Invalid data posted to server":"B\u0142\u0119dne dane wys\u0142ane do serwera","Package not found called %s":"Paczka o nazwie %s nie zosta\u0142a znaleziona","Web server cannot create backups in \"%s\". Fix file permissions or disable backups in settings":"Serwer www nie mo\u017ce utworzy\u0107 kopii w \"%s\". Popraw uprawnienia lub wy\u0142\u0105cz kopie zapasowe w ustawieniach","Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or create it manually.":"Serwer www nie mo\u017ce utworzy\u0107 katalogu \"%s\". Popraw uprawnienia lub utw\u00f3rz go r\u0119cznie.","Web server cannot create files in the \"%s\" directory. Fix file permissions or use the download function.":"Serwer www nie mo\u017ce utworzy\u0107 plik\u00f3w w katalogu \"%s\". Popraw uprawnienia lub u\u017cyj funkcji pobierania.","%s file is not writable by the web server. Fix file permissions or download and copy to \"%s\/%s\".":"%s jest tylko do odczytu dla serwera www. Popraw uprawnienia lub pobierz i skopiuj do \"%s\/%s\".","Cannot create MO file":"Nie mo\u017cna utworzy\u0107 pliku MO","Cannot overwrite MO file":"Nie mo\u017cna nadpisa\u0107 pliku MO","Failed to write MO file":"B\u0142\u0105d zapisu pliku MO","No source files in this package, nothing to sync":"Brak plik\u00f3w \u017ar\u00f3d\u0142owych w tej paczce, nic do synchronizacji","No strings could be extracted from source files":"\u017badne linie nie mog\u0105 by\u0107 wyci\u0105gni\u0119te z plik\u00f3w \u017ar\u00f3d\u0142owych","Unknown error":"Nieznany b\u0142\u0105d","PO file saved":"Plik PO zapisany","and MO file compiled":"oraz plik MO skompilowany","Merged from %s":"Po\u0142\u0105czono z %s","Merged from source code":"Po\u0142\u0105czono z kodu \u017ar\u00f3d\u0142owego","Already up to date with %s":"Ju\u017c aktualne z %s","Already up to date with source code":"Ju\u017c aktualne z kodu \u017ar\u00f3d\u0142owego","1 new string added":{"one":"1 nowa linia dodana","few":"%s nowe linie dodano","many":"%s nowych linii dodano"},"1 obsolete string removed":{"one":"1 zb\u0119dna linia usuni\u0119ta","few":"%s zb\u0119dne linie usuni\u0119te","many":"%s zb\u0119dnych linii usuni\u0119to"},"Your changes will be lost if you continue without saving":"Utracisz aktualne zmiany je\u015bli b\u0119dziesz kontynuowa\u0142 bez zapisywania","Source text":"Tekst \u017ar\u00f3d\u0142owy","%s translation":"%s t\u0142umaczenie","Comments":"Komentarze","Context":"Kontekst","File check":"Sprawdzenie plik\u00f3w","PO file used as template. This will be renamed to %s on first save":"Plik PO u\u017cyty jako szablon. Nazwa zostanie zmieniona na % przy pierwszym zapisie","File cannot be created automatically. Fix the file permissions or use Download instead of Save":"Plik nie mo\u017ce by\u0107 utworzony automatycznie. Napraw uprawnienia albo u\u017cyj Pobierz zamiast Zapisz","%s file is empty":"Plik %s jest pusty","Run Sync to update from source code":"Uruchom synchronizacj\u0119 aby zaktualizowa\u0107 z kodu \u017ar\u00f3d\u0142owego","No strings could be extracted from source code":"Nie mo\u017cna wyci\u0105gn\u0105\u0107 \u017cadnych linii z kodu \u017ar\u00f3d\u0142owego","Run Sync to update from %s":"Uruchom synchronizacj\u0119 aby zaktualizowa\u0107 z %s","Source code has been modified, run Sync to update POT":"Kod \u017ar\u00f3d\u0142owy zosta\u0142 zaktualizowany, uruchom synchronizacj\u0119 aby zaktualizowa\u0107 plik POT","POT has been modified since PO file was saved, run Sync to update":"Plik POT zosta\u0142 zmieniony od czasu zapisu pliku PO, uruchom synchronizacj\u0119 aby zaktualizowa\u0107","Bad file path":"B\u0142\u0119dna \u015bcie\u017cka pliku","Empty or invalid %s file":"Pusty lub b\u0142\u0119dny plik %s","%s file has no header":"Plik %s nie ma nag\u0142\u00f3wka","New template":"Nowy szablon","New language":"Nowy j\u0119zyk","%s%% translated":"%s%% przet\u0142umaczono","1 string":{"one":"1 linia","few":"%s linie","many":"%s linii"},"%s untranslated":"%s nie przet\u0142umaczone","Loco, Translation Management":"Loco, Menad\u017cer T\u0142umacze\u0144","Manage translations":"Zarz\u0105dzaj t\u0142umaczeniami","Translation options":"Opcje t\u0142umacze\u0144","Loco Translate":"Loco Translate","Settings":"Ustawienia","Translation":"T\u0142umaczenie","Packages":"Paczki","Error":"B\u0142\u0105d","Warning":"Ostrze\u017cenie","Permission denied":"Odmowa dost\u0119pu","Settings saved":"Ustawienia zapisane","New PO file":"Nowy plik PO","You must specify a valid locale for a new PO file":"Musisz okre\u015bli\u0107 w\u0142a\u015bciwy region dla nowego pliku PO","No translatable strings found":"Brak dost\u0119pnych lini do t\u0142umaczenia","Cannot create a PO file.":"Nie mo\u017cna utworzy\u0107 pliku PO.","PO file already exists with locale %s":"Plik PO ju\u017c istnieje z regionu %s"}
|
33 |
);
|
pub/js/lang/loco-translate-ru_RU.js
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
/**
|
2 |
* Loco js export: JavaScript function
|
3 |
-
* Project: loco.
|
4 |
* Release: Working copy
|
5 |
* Locale: ru_RU, Russian
|
6 |
-
* Exported at:
|
7 |
*/
|
8 |
loco = window.loco||{}, loco.t = function( pairs ){
|
9 |
|
@@ -29,5 +29,5 @@ loco = window.loco||{}, loco.t = function( pairs ){
|
|
29 |
return value || ( 1 === n ? msgid1 : msgid2 ) || msgid1 || '';
|
30 |
};
|
31 |
}(
|
32 |
-
{"Error":"\u041e\u0448\u0438\u0431\u043a\u0430","Warning":"\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435","OK":"\u041e\u041a","Permission denied":"\u0414\u043e\u0441\u0442\u0443\u043f \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u0435\u043d","Settings saved":"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b","New PO file":"\u041d\u043e\u0432\u044b\u0439 \u0420\u041e \u0444\u0430\u0439\u043b","You must specify a valid locale for a new PO file":"\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0443\u044e \u043b\u043e\u043a\u0430\u043b\u044c \u0434\u043b\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u0420\u041e \u0444\u0430\u0439\u043b\u0430","No translatable strings found":"\u041d\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u043e \u0441\u0442\u0440\u043e\u043a \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430","Cannot create a PO file.":"\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0420\u041e \u0444\u0430\u0439\u043b","PO file already exists with locale %s":"PO \u0444\u0430\u0439\u043b \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u043b\u043e\u043a\u0430\u043b\u0438 %s","PO file used as template. This will be renamed to %s on first save":"PO \u0444\u0430\u0439\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0448\u0430\u0431\u043b\u043e\u043d. \u041e\u043d \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d \u0432 %s \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u043d\u0438\u0438.","File cannot be created automatically. Fix the file permissions or use Download instead of Save":"\u0424\u0430\u0439\u043b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438. \u0418\u0441\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430, \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0432\u043c\u0435\u0441\u0442\u043e \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c","%s file is empty":"%s \u0444\u0430\u0439\u043b \u043f\u0443\u0441\u0442","Run Sync to update from source code":"\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430","No strings could be extracted from source code":"\u041d\u0435\u0442 \u0441\u0442\u0440\u043e\u043a \u0434\u043b\u044f \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430","Run Sync to update from %s":"\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0437 ","Source code has been modified, run Sync to update POT":"\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0431\u044b\u043b \u0438\u0437\u043c\u0435\u043d\u0451\u043d. \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0420\u041e\u0422","POT has been modified since PO file was saved, run Sync to update":"\u0420\u041e\u0422 \u0431\u044b\u043b \u0438\u0437\u043c\u0435\u043d\u0451\u043d \u043f\u043e\u0441\u043b\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0420\u041e. \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f","Bad file path":"\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443","Empty or invalid %s file":"\u041f\u0443\u0441\u0442\u043e\u0439, \u0438\u043b\u0438 \u043f\u043e\u0432\u0440\u0435\u0436\u0434\u0435\u043d\u043d\u044b\u0439 %s \u0444\u0430\u0439\u043b","%s file has no header":"%s \u0444\u0430\u0439\u043b \u0431\u0435\u0437 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430","New template":"\u041d\u043e\u0432\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d","New language":"\u041d\u043e\u0432\u044b\u0439 \u044f\u0437\u044b\u043a","%s%% translated":"%s%% \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d\u043e","1 string":{"one":"1 \u0441\u0442\u0440\u043e\u043a\u0430","few":"%s \u0441\u0442\u0440\u043e\u043a(\u0438)","many":null},"%s fuzzy":"\u043d\u0435\u0442\u043e\u0447\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0432\u043e\u0434","%s untranslated":"%s \u043d\u0435 \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d\u043e","Failed to compile MO file with built-in compiler":"\u041e\u0448\u0438\u0431\u043a\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u041c\u041e \u0444\u0430\u0439\u043b\u0430 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c","Loco, Translation Management":"Loco, \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430\u043c\u0438","Manage translations":"\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430\u043c\u0438","Translation options":"\u041e\u043f\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430","Loco Translate":"\u041f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a Loco","Settings":"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438","File download failed":"\u041e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0444\u0430\u0439\u043b\u0430","Unknown language":"\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u044f\u0437\u044b\u043a","Some files not writable":"\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438","Some files missing":"\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0441 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438, \u0438\u043b\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442","\"%s\" folder not writable":"\"%s\" \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438","POT file not writable":"\u0420\u041e\u0422 \u0444\u0430\u0439\u043b \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438","PO file not writable":"\u0420\u041e \u0444\u0430\u0439\u043b \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438","MO file not writable":"\u041c\u041e \u0444\u0430\u0439\u043b \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438","MO file not found":"\u041c\u041e \u0444\u0430\u0439\u043b \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d","Folder not writable":"\u041a\u0430\u0442\u0430\u043b\u043e\u0433 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438","Folder not found":"","User does not have permission to manage translations":"\u0423 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u0430\u0432 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430\u043c\u0438","Failed to compile MO file with %s, check your settings":"\u041e\u0448\u0438\u0431\u043a\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u041c\u041e \u0444\u0430\u0439\u043b\u0430 \u0441 %s . \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438","Invalid data posted to server":"\u041d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u044b \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435","Package not found called %s":"\u041d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d \u043f\u0430\u043a\u0435\u0442 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c ","Web server cannot create backups in \"%s\". Fix file permissions or disable backups in settings":"Web \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u0443\u044e \u043a\u043e\u043f\u0438\u044e \u0432 \"%s\". \u0418\u0441\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430, \u0438\u043b\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445","Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or create it manually.":"Web \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \"%s\" \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0432 \"%s\". \u0418\u0441\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430, \u0438\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0432\u0440\u0443\u0447\u043d\u0443\u044e","Web server cannot create files in the \"%s\" directory. Fix file permissions or use the download function.":"Web \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \"%s\" . \u0418\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430, \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438.","%s file is not writable by the web server. Fix file permissions or download and copy to \"%s\/%s\".":"%s \u0444\u0430\u0439\u043b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440. \u0418\u0441\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0438\u043b\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u0438 \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u0439\u0442\u0435 \"%s\/%s\".","Cannot create MO file":"\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u041c\u041e \u0444\u0430\u0439\u043b","Cannot overwrite MO file":"\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u041c\u041e \u0444\u0430\u0439\u043b","Failed to write MO file":"\u041e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u043f\u0438\u0441\u0438 \u041c\u041e \u0444\u0430\u0439\u043b\u0430","No source files in this package, nothing to sync":"","No strings could be extracted from source files":"\u041d\u0435\u0442 \u0441\u0442\u0440\u043e\u043a \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430","Unknown error":"\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430","PO file saved":"\u0420\u041e \u0444\u0430\u0439\u043b \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d","and MO file compiled":"\u0438 \u041c\u041e \u0444\u0430\u0439\u043b \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d","Merged from %s":"\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u043e \u0441 %s","Merged from source code":"\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u043e \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c","Already up to date with %s":"","Already up to date with source code":"","1 new string added":{"one":"1 \u043d\u043e\u0432\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430","few":"%s \u043d\u043e\u0432\u044b\u0445 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e","many":null},"1 obsolete string removed":{"one":"1\u0441\u0442\u0440\u043e\u043a\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u0430","few":"%s \u0441\u0442\u0440\u043e\u043a\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u043e","many":null},"Your changes will be lost if you continue without saving":"\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u0442\u0435\u0440\u044f\u043d\u044b, \u0435\u0441\u043b\u0438 \u0412\u044b \u043d\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435\u0441\u044c","Source text":"","%s translation":"","Comments":"","Context":"","Translation":"\u041f\u0435\u0440\u0435\u0432\u043e\u0434","Packages":"\u041f\u0430\u043a\u0435\u0442\u044b \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432","File check":"\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0444\u0430\u0439\u043b\u0430","File system permissions for %s":"\u041f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u043b\u044f ","Back":"\u041d\u0430\u0437\u0430\u0434","Get help":"\u041f\u043e\u043c\u043e\u0449\u044c","Package details":"\u0414\u0435\u0442\u0430\u043b\u0438 \u043f\u0430\u043a\u0435\u0442\u0430\n\n","Translations (PO)":"\u041f\u0435\u0440\u0435\u0432\u043e\u0434\u044b (\u0420\u041e)\n","Template (POT)":"\u0428\u0430\u0431\u043b\u043e\u043d\u044b (\u0420\u041e\u0422)\n","File permissions":"\u041f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0444\u0430\u0439\u043b\u0443","Extends: %s":"","1 language":{"one":"1 \u044f\u0437\u044b\u043a","few":"%u \u044f\u0437\u044b\u043a\u0430(\u043e\u0432)","many":null},"Updated":"\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u043e","Powered by":"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e","Loco may not work as expected":"\u041f\u043b\u0430\u0433\u0438\u043d Loco \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u043a\u0430\u043a \u043e\u0436\u0438\u0434\u0430\u043b\u043e\u0441\u044c","Configure Loco Translate":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Loco","Compiling MO files":"\u041a\u043e\u043c\u043f\u0442\u043b\u044f\u0446\u0438\u044f \u041c\u041e \u0444\u0430\u0439\u043b\u043e\u0432","Use built-in MO compiler.":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u041c\u041e \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440","Use external command:":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u043d\u0435\u0448\u043d\u044e\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443:","Enter path to msgfmt on server":"\u041f\u0443\u0442\u044c \u043a msgfmt \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435","Generate hash tables":"\u0413\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c hash \u0442\u0430\u0431\u043b\u0438\u0446\u044b","Backing up PO files":"\u0420\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0420\u041e \u0444\u0430\u0439\u043b\u043e\u0432","Number of backups to keep of each file:":"","Experimental features":"","Enable Wordpress core translations":"","Save settings":"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438","Template file":"\u0424\u0430\u0439\u043b \u0448\u0430\u0431\u043b\u043e\u043d\u0430","Switch to...":"\u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043d\u0430...","never":"\u043d\u0438\u043a\u043e\u0433\u0434\u0430","Save":"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c","Download":"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c","Sync":"\u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f","Revert":"\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f","Add":"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c","Del":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c","Fuzzy":"\u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u043a\u0430\u043a \u043d\u0435\u0442\u043e\u0447\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0432\u043e\u0434","Filter translations":"\u041f\u043e\u0438\u0441\u043a \u0444\u0440\u0430\u0437\u044b \u043f\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u0443","Help":"\u041f\u043e\u043c\u043e\u0449\u044c","Initialize new translations in %s":"\u041d\u0430\u0447\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 %s","Select from common languages":"\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u044f\u0437\u044b\u043a \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430","or enter any language code":"\u0438\u043b\u0438 \u0432\u0432\u0435\u0441\u0442\u0438 \u043a\u043e\u0434 \u044f\u0437\u044b\u043a\u0430","create in <code>%s<\/code>":"","create in global languages directory":"","Start translating":"\u041d\u0430\u0447\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0432\u043e\u0434","New version available":"\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043d\u043e\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f","Upgrade to version %s of Loco Translate":"\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c Loco Translate \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438 %s","Select a plugin or theme to translate":"\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u043f\u043b\u0430\u0433\u0438\u043d \u0438\u043b\u0438 \u0442\u0435\u043c\u0443 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 ","Themes":"\u0422\u0435\u043c\u044b","Plugins":"\u041f\u043b\u0430\u0433\u0438\u043d\u044b","Core":"\u042f\u0434\u0440\u043e"}
|
33 |
);
|
1 |
/**
|
2 |
* Loco js export: JavaScript function
|
3 |
+
* Project: loco.po conversion
|
4 |
* Release: Working copy
|
5 |
* Locale: ru_RU, Russian
|
6 |
+
* Exported at: Wed, 21 Jan 2015 14:04:40 +0000
|
7 |
*/
|
8 |
loco = window.loco||{}, loco.t = function( pairs ){
|
9 |
|
29 |
return value || ( 1 === n ? msgid1 : msgid2 ) || msgid1 || '';
|
30 |
};
|
31 |
}(
|
32 |
+
{"Error":"\u041e\u0448\u0438\u0431\u043a\u0430","Warning":"\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435","OK":{"OK":["\u041e\u041a","\u041e\u041a"]},"Permission denied":"\u0414\u043e\u0441\u0442\u0443\u043f \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u0435\u043d","Settings saved":"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b","New PO file":"\u041d\u043e\u0432\u044b\u0439 \u0420\u041e \u0444\u0430\u0439\u043b","You must specify a valid locale for a new PO file":"\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0443\u044e \u043b\u043e\u043a\u0430\u043b\u044c \u0434\u043b\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u0420\u041e \u0444\u0430\u0439\u043b\u0430","No translatable strings found":"\u041d\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u043e \u0441\u0442\u0440\u043e\u043a \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430","Cannot create a PO file.":"\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0420\u041e \u0444\u0430\u0439\u043b","PO file already exists with locale %s":"PO \u0444\u0430\u0439\u043b \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u043b\u043e\u043a\u0430\u043b\u0438 %s","PO file used as template. This will be renamed to %s on first save":"PO \u0444\u0430\u0439\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0448\u0430\u0431\u043b\u043e\u043d. \u041e\u043d \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d \u0432 %s \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u043d\u0438\u0438.","File cannot be created automatically. Fix the file permissions or use Download instead of Save":"\u0424\u0430\u0439\u043b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438. \u0418\u0441\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430, \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0432\u043c\u0435\u0441\u0442\u043e \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c","%s file is empty":"%s \u0444\u0430\u0439\u043b \u043f\u0443\u0441\u0442","Run Sync to update from source code":"\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430","No strings could be extracted from source code":"\u041d\u0435\u0442 \u0441\u0442\u0440\u043e\u043a \u0434\u043b\u044f \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430","Run Sync to update from %s":"\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0437 ","Source code has been modified, run Sync to update POT":"\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0431\u044b\u043b \u0438\u0437\u043c\u0435\u043d\u0451\u043d. \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0420\u041e\u0422","POT has been modified since PO file was saved, run Sync to update":"\u0420\u041e\u0422 \u0431\u044b\u043b \u0438\u0437\u043c\u0435\u043d\u0451\u043d \u043f\u043e\u0441\u043b\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0420\u041e. \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f","Bad file path":"\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443","Empty or invalid %s file":"\u041f\u0443\u0441\u0442\u043e\u0439, \u0438\u043b\u0438 \u043f\u043e\u0432\u0440\u0435\u0436\u0434\u0435\u043d\u043d\u044b\u0439 %s \u0444\u0430\u0439\u043b","%s file has no header":"%s \u0444\u0430\u0439\u043b \u0431\u0435\u0437 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430","New template":"\u041d\u043e\u0432\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d","New language":"\u041d\u043e\u0432\u044b\u0439 \u044f\u0437\u044b\u043a","%s%% translated":"%s%% \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d\u043e","1 string":{"one":"1 \u0441\u0442\u0440\u043e\u043a\u0430","few":"%s \u0441\u0442\u0440\u043e\u043a(\u0438)","many":null},"%s fuzzy":"\u043d\u0435\u0442\u043e\u0447\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0432\u043e\u0434","%s untranslated":"%s \u043d\u0435 \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d\u043e","Failed to compile MO file with built-in compiler":"\u041e\u0448\u0438\u0431\u043a\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u041c\u041e \u0444\u0430\u0439\u043b\u0430 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c","Loco, Translation Management":"Loco, \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430\u043c\u0438","Manage translations":"\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430\u043c\u0438","Translation options":"\u041e\u043f\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430","Loco Translate":"\u041f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a Loco","Settings":"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438","File download failed":"\u041e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0444\u0430\u0439\u043b\u0430","Unknown language":"\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u044f\u0437\u044b\u043a","Some files not writable":"\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438","Some files missing":"\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0441 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438, \u0438\u043b\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442","\"%s\" folder not writable":"\"%s\" \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438","POT file not writable":"\u0420\u041e\u0422 \u0444\u0430\u0439\u043b \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438","PO file not writable":"\u0420\u041e \u0444\u0430\u0439\u043b \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438","MO file not writable":"\u041c\u041e \u0444\u0430\u0439\u043b \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438","MO file not found":"\u041c\u041e \u0444\u0430\u0439\u043b \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d","Folder not writable":"\u041a\u0430\u0442\u0430\u043b\u043e\u0433 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438","Folder not found":"","User does not have permission to manage translations":"\u0423 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u0430\u0432 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430\u043c\u0438","Failed to compile MO file with %s, check your settings":"\u041e\u0448\u0438\u0431\u043a\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u041c\u041e \u0444\u0430\u0439\u043b\u0430 \u0441 %s . \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438","Invalid data posted to server":"\u041d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u044b \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435","Package not found called %s":"\u041d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d \u043f\u0430\u043a\u0435\u0442 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c ","Web server cannot create backups in \"%s\". Fix file permissions or disable backups in settings":"Web \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u0443\u044e \u043a\u043e\u043f\u0438\u044e \u0432 \"%s\". \u0418\u0441\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430, \u0438\u043b\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445","Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or create it manually.":"Web \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \"%s\" \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0432 \"%s\". \u0418\u0441\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430, \u0438\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0432\u0440\u0443\u0447\u043d\u0443\u044e","Web server cannot create files in the \"%s\" directory. Fix file permissions or use the download function.":"Web \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \"%s\" . \u0418\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430, \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438.","%s file is not writable by the web server. Fix file permissions or download and copy to \"%s\/%s\".":"%s \u0444\u0430\u0439\u043b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440. \u0418\u0441\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0438\u043b\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u0438 \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u0439\u0442\u0435 \"%s\/%s\".","Cannot create MO file":"\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u041c\u041e \u0444\u0430\u0439\u043b","Cannot overwrite MO file":"\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u041c\u041e \u0444\u0430\u0439\u043b","Failed to write MO file":"\u041e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u043f\u0438\u0441\u0438 \u041c\u041e \u0444\u0430\u0439\u043b\u0430","No source files in this package, nothing to sync":"","No strings could be extracted from source files":"\u041d\u0435\u0442 \u0441\u0442\u0440\u043e\u043a \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430","Unknown error":"\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430","PO file saved":"\u0420\u041e \u0444\u0430\u0439\u043b \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d","and MO file compiled":"\u0438 \u041c\u041e \u0444\u0430\u0439\u043b \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d","Merged from %s":"\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u043e \u0441 %s","Merged from source code":"\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u043e \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c","Already up to date with %s":"","Already up to date with source code":"","1 new string added":{"one":"1 \u043d\u043e\u0432\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430","few":"%s \u043d\u043e\u0432\u044b\u0445 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e","many":null},"1 obsolete string removed":{"one":"1\u0441\u0442\u0440\u043e\u043a\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u0430","few":"%s \u0441\u0442\u0440\u043e\u043a\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u043e","many":null},"Your changes will be lost if you continue without saving":"\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u0442\u0435\u0440\u044f\u043d\u044b, \u0435\u0441\u043b\u0438 \u0412\u044b \u043d\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435\u0441\u044c","Source text":"","%s translation":"","Comments":"","Context":"","Translation":"\u041f\u0435\u0440\u0435\u0432\u043e\u0434","Packages":"\u041f\u0430\u043a\u0435\u0442\u044b \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432","File check":"\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0444\u0430\u0439\u043b\u0430","File system permissions for %s":"\u041f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u043b\u044f ","Back":"\u041d\u0430\u0437\u0430\u0434","Get help":"\u041f\u043e\u043c\u043e\u0449\u044c","Package details":"\u0414\u0435\u0442\u0430\u043b\u0438 \u043f\u0430\u043a\u0435\u0442\u0430\n\n","Translations (PO)":"\u041f\u0435\u0440\u0435\u0432\u043e\u0434\u044b (\u0420\u041e)\n","Template (POT)":"\u0428\u0430\u0431\u043b\u043e\u043d\u044b (\u0420\u041e\u0422)\n","File permissions":"\u041f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0444\u0430\u0439\u043b\u0443","Extends: %s":"","1 language":{"one":"1 \u044f\u0437\u044b\u043a","few":"%u \u044f\u0437\u044b\u043a\u0430(\u043e\u0432)","many":null},"Updated":{"Updated":["\u041e\u0431\u043d\u043e\u0432\u043b\u0451\u043d\u043d\u044b\u0439","\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u043e"]},"Powered by":"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e","Loco may not work as expected":"\u041f\u043b\u0430\u0433\u0438\u043d Loco \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u043a\u0430\u043a \u043e\u0436\u0438\u0434\u0430\u043b\u043e\u0441\u044c","Configure Loco Translate":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Loco","Compiling MO files":"\u041a\u043e\u043c\u043f\u0442\u043b\u044f\u0446\u0438\u044f \u041c\u041e \u0444\u0430\u0439\u043b\u043e\u0432","Use built-in MO compiler.":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u041c\u041e \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440","Use external command:":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u043d\u0435\u0448\u043d\u044e\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443:","Enter path to msgfmt on server":"\u041f\u0443\u0442\u044c \u043a msgfmt \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435","Generate hash tables":"\u0413\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c hash \u0442\u0430\u0431\u043b\u0438\u0446\u044b","Backing up PO files":"\u0420\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0420\u041e \u0444\u0430\u0439\u043b\u043e\u0432","Number of backups to keep of each file:":"","Experimental features":"","Enable Wordpress core translations":"","Save settings":"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438","Template file":"\u0424\u0430\u0439\u043b \u0448\u0430\u0431\u043b\u043e\u043d\u0430","Switch to...":"\u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043d\u0430...","never":"\u043d\u0438\u043a\u043e\u0433\u0434\u0430","Save":"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c","Download":"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c","Sync":"\u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f","Revert":"\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f","Add":"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c","Del":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c","Fuzzy":"\u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u043a\u0430\u043a \u043d\u0435\u0442\u043e\u0447\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0432\u043e\u0434","Filter translations":"\u041f\u043e\u0438\u0441\u043a \u0444\u0440\u0430\u0437\u044b \u043f\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u0443","Help":"\u041f\u043e\u043c\u043e\u0449\u044c","Initialize new translations in %s":"\u041d\u0430\u0447\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 %s","Select from common languages":"\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u044f\u0437\u044b\u043a \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430","or enter any language code":"\u0438\u043b\u0438 \u0432\u0432\u0435\u0441\u0442\u0438 \u043a\u043e\u0434 \u044f\u0437\u044b\u043a\u0430","create in <code>%s<\/code>":"","create in global languages directory":"","Start translating":"\u041d\u0430\u0447\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0432\u043e\u0434","New version available":"\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043d\u043e\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f","Upgrade to version %s of Loco Translate":"\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c Loco Translate \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438 %s","Select a plugin or theme to translate":"\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u043f\u043b\u0430\u0433\u0438\u043d \u0438\u043b\u0438 \u0442\u0435\u043c\u0443 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 ","Themes":"\u0422\u0435\u043c\u044b","Plugins":"\u041f\u043b\u0430\u0433\u0438\u043d\u044b","Core":"\u042f\u0434\u0440\u043e"}
|
33 |
);
|
pub/js/lang/loco-translate-sv_SE.js
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
/**
|
2 |
* Loco js export: JavaScript function
|
3 |
-
* Project: loco.
|
4 |
* Release: Working copy
|
5 |
* Locale: sv_SE, Swedish
|
6 |
-
* Exported at:
|
7 |
*/
|
8 |
loco = window.loco||{}, loco.t = function( pairs ){
|
9 |
|
@@ -29,5 +29,5 @@ loco = window.loco||{}, loco.t = function( pairs ){
|
|
29 |
return value || ( 1 === n ? msgid1 : msgid2 ) || msgid1 || '';
|
30 |
};
|
31 |
}(
|
32 |
-
{"Error":"Fel","Warning":"Varning","OK":"OK","Permission denied":"Beh\u00f6righet saknas","Settings saved":"Inst\u00e4llningar sparade","New PO file":"Ny PO-fil","You must specify a valid locale for a new PO file":"Du m\u00e5ste ange en giltig landskod f\u00f6r en ny PO-fil","No translatable strings found":"Inga \u00f6vers\u00e4ttbara str\u00e4ngar hittades","Cannot create a PO file.":"Kunde ej skapa en PO-fil.","PO file already exists with locale %s":"PO-fil finns redan med landskod %s","PO file used as template. This will be renamed to %s on first save":"PO-fil anv\u00e4nds som mall. Den kommer att byta namn till %s n\u00e4r du v\u00e4ljer att spara","File cannot be created automatically. Fix the file permissions or use Download instead of Save":"Fil kunde ej skapas automatiskt. \u00c4ndra filr\u00e4ttigheter eller anv\u00e4nd Ladda ner ist\u00e4llet f\u00f6r Spara","%s file is empty":"%s-filen \u00e4r tom","Run Sync to update from source code":"Anv\u00e4nd Synka f\u00f6r att uppdatera fr\u00e5n k\u00e4llkoden","No strings could be extracted from source code":"Inga str\u00e4ngar kunde hittas fr\u00e5n k\u00e4llkoden","Run Sync to update from %s":"Anv\u00e4nd Synka f\u00f6r att uppdatera fr\u00e5n %s","Source code has been modified, run Sync to update POT":"K\u00e4llkod har \u00e4ndrats, anv\u00e4nd Synka f\u00f6r att uppdatera POT","POT has been modified since PO file was saved, run Sync to update":"POT har \u00e4ndrats sedan PO-filen sparades, anv\u00e4nd Synka f\u00f6r att uppdatera","Bad file path":"Ogiltig s\u00f6kv\u00e4g","Empty or invalid %s file":"Tom eller ogiltigt %s-fil","%s file has no header":"%s-filen saknar header","New template":"Ny mall","New language":"Nytt spr\u00e5k","%s%% translated":"%s%% \u00f6versatt","1 string":{"one":"1 str\u00e4ng","other":"%s str\u00e4ngar"},"%s fuzzy":"%s oklar","%s untranslated":"%s ej \u00f6versatta","Failed to compile MO file with built-in compiler":"Det gick ej att sammanst\u00e4lla MO-fil med inbyggd kompilator","Loco, Translation Management":"Loco, Translation Management","Manage translations":"Spr\u00e5kfiler","Translation options":"Inst\u00e4llningar","Loco Translate":"\u00d6vers\u00e4ttningar","Settings":"Inst\u00e4llningar","File download failed":"Nedladdning misslyckades","Unknown language":"Ok\u00e4nt spr\u00e5k","Some files not writable":"Vissa filer \u00e4r ej skrivbara","Some files missing":"Vissa filer saknas","\"%s\" folder not writable":"Mappen \"%s\" \u00e4r ej skrivbar","POT file not writable":"POT-filen \u00e4r ej skrivbar","PO file not writable":"PO-filen \u00e4r ej skrivbar","MO file not writable":"MO-filen \u00e4r ej skrivbar","MO file not found":"MO-fil hittades ej","Folder not writable":"Mappen \u00e4r ej skrivbar","Folder not found":"Mappen hittades ej","User does not have permission to manage translations":"Anv\u00e4ndaren saknar beh\u00f6righet att hantera \u00f6vers\u00e4ttningar","Failed to compile MO file with %s, check your settings":"Det gick ej sammanst\u00e4lla MO-filen med %s , kontrollera dina inst\u00e4llningar","Invalid data posted to server":"Ogiltig data skickades till servern","Package not found called %s":"Paket %s ej hittat","Web server cannot create backups in \"%s\". Fix file permissions or disable backups in settings":"Webbservern kunde ej skapa s\u00e4kerhetskopior i \"%s\". \u00c4ndra filr\u00e4ttigheter eller inaktivera s\u00e4kerhetskopior i inst\u00e4llningarna","Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or create it manually.":"Webbservern kunde ej skapa mappen \"%s\" i \"%s\". \u00c4ndra filr\u00e4ttigheter eller skapa den manuellt.","Web server cannot create files in the \"%s\" directory. Fix file permissions or use the download function.":"Webbservern kunde ej skapa filer i mappen \"%s\". \u00c4ndra filr\u00e4ttigheter eller anv\u00e4nd nedladdningsfunktionen.","%s file is not writable by the web server. Fix file permissions or download and copy to \"%s\/%s\".":"%s-filen \u00e4r ej skrivbar av webbservern. \u00c4ndra filr\u00e4ttigheter eller ladda ner och kopiera till \"%s\/%s\".","Cannot create MO file":"Kunde ej skapa MO-fil","Cannot overwrite MO file":"Kunde ej skriva \u00f6ver MO-fil","Failed to write MO file":"Kunde ej skapa MO-fil","No source files in this package, nothing to sync":"Inga k\u00e4llfiler hittades till denna spr\u00e5kfil, ingenting att synkronisera","No strings could be extracted from source files":"Inga str\u00e4ngar kunde hittas fr\u00e5n k\u00e4llfiler","Unknown error":"Ok\u00e4nt fel","PO file saved":"PO-fil sparad","and MO file compiled":"och MO-fil sammanst\u00e4lld","Merged from %s":"Sammanslagen fr\u00e5n %s","Merged from source code":"Sammanslagen fr\u00e5n k\u00e4llkod","Already up to date with %s":"Redan aktuell med %s","Already up to date with source code":"Redan aktuell med k\u00e4llkod","1 new string added":{"one":"1 ny str\u00e4ng tillagd","other":"%s nya str\u00e4ngar tillagda"},"1 obsolete string removed":{"one":"1 f\u00f6r\u00e5ldrad str\u00e4ng togs bort","other":"%s f\u00f6r\u00e5ldrade str\u00e4ngar togs bort"},"Your changes will be lost if you continue without saving":"Dina \u00e4ndringar kommer att g\u00e5 f\u00f6rlorade om du forts\u00e4tter utan att spara","Source text":"K\u00e4lltext","%s translation":"%s \u00f6vers\u00e4ttning","Comments":"Kommentarer","Context":"Inneh\u00e5ll","Translation":"\u00d6vers\u00e4ttning","Packages":"Spr\u00e5kfiler","File check":"Filr\u00e4ttigheter","File system permissions for %s":"Filsystem r\u00e4ttigheter f\u00f6r %s","Back":"Tillbaka","Get help":"Hj\u00e4lp","Package details":"Beskrivning","Translations (PO)":"\u00d6vers\u00e4ttningar (PO)","Template (POT)":"Mall (POT)","File permissions":"Filr\u00e4ttigheter","Extends: %s":"","1 language":{"one":"1 spr\u00e5k","other":"%u spr\u00e5k"},"Updated":"Uppdaterad","Powered by":"Drivs av","Loco may not work as expected":"Loco kanske ej fungerar som v\u00e4ntat","Configure Loco Translate":"Konfigurera Loco Translate","Compiling MO files":"Sammanst\u00e4lla MO-filer","Use built-in MO compiler.":"Anv\u00e4nd inbyggd MO-kompilator.","Use external command:":"Anv\u00e4nd externt kommando:","Enter path to msgfmt on server":"Skriv in s\u00f6kv\u00e4g till msgfmt p\u00e5 servern","Generate hash tables":"Generera hashtabeller","Backing up PO files":"S\u00e4kerhetskopiera PO-filer","Number of backups to keep of each file:":"Antal s\u00e4kerhetskopior att beh\u00e5lla f\u00f6r varje fil:","Experimental features":"Experimentella funktioner","Enable Wordpress core translations":"Aktivera Wordpress \u00f6vers\u00e4ttningar","Save settings":"Spara inst\u00e4llningar","Template file":"Mallfil","Switch to...":"V\u00e4xla till...","never":"aldrig","Save":"Spara","Download":"Ladda ner","Sync":"Synka","Revert":"\u00c5terg\u00e5","Add":"L\u00e4gg till","Del":"Radera","Fuzzy":"Oklar","Filter translations":"S\u00f6k \u00f6vers\u00e4ttningar","Help":"Hj\u00e4lp","Initialize new translations in %s":"Skapa nya \u00f6vers\u00e4ttningar i %s","Select from common languages":"V\u00e4lj bland vanliga spr\u00e5k","or enter any language code":"eller skriv valfri landskod","create in <code>%s<\/code>":"skapa i <code>%s<\/code>","create in global languages directory":"skapa i den globala spr\u00e5k katalogen","Start translating":"B\u00f6rja \u00f6vers\u00e4tta","New version available":"Ny version tillg\u00e4nglig","Upgrade to version %s of Loco Translate":"Uppdatera till version %s av Loco Translate","Select a plugin or theme to translate":"V\u00e4lj ett till\u00e4gg eller tema att \u00f6vers\u00e4tta","Themes":"Teman","Plugins":"Till\u00e4gg","Core":"Wordpress"}
|
33 |
);
|
1 |
/**
|
2 |
* Loco js export: JavaScript function
|
3 |
+
* Project: loco.po conversion
|
4 |
* Release: Working copy
|
5 |
* Locale: sv_SE, Swedish
|
6 |
+
* Exported at: Wed, 21 Jan 2015 14:04:40 +0000
|
7 |
*/
|
8 |
loco = window.loco||{}, loco.t = function( pairs ){
|
9 |
|
29 |
return value || ( 1 === n ? msgid1 : msgid2 ) || msgid1 || '';
|
30 |
};
|
31 |
}(
|
32 |
+
{"Error":"Fel","Warning":"Varning","OK":{"OK":["OK","OK"]},"Permission denied":"Beh\u00f6righet saknas","Settings saved":"Inst\u00e4llningar sparade","New PO file":"Ny PO-fil","You must specify a valid locale for a new PO file":"Du m\u00e5ste ange en giltig landskod f\u00f6r en ny PO-fil","No translatable strings found":"Inga \u00f6vers\u00e4ttbara str\u00e4ngar hittades","Cannot create a PO file.":"Kunde ej skapa en PO-fil.","PO file already exists with locale %s":"PO-fil finns redan med landskod %s","PO file used as template. This will be renamed to %s on first save":"PO-fil anv\u00e4nds som mall. Den kommer att byta namn till %s n\u00e4r du v\u00e4ljer att spara","File cannot be created automatically. Fix the file permissions or use Download instead of Save":"Fil kunde ej skapas automatiskt. \u00c4ndra filr\u00e4ttigheter eller anv\u00e4nd Ladda ner ist\u00e4llet f\u00f6r Spara","%s file is empty":"%s-filen \u00e4r tom","Run Sync to update from source code":"Anv\u00e4nd Synka f\u00f6r att uppdatera fr\u00e5n k\u00e4llkoden","No strings could be extracted from source code":"Inga str\u00e4ngar kunde hittas fr\u00e5n k\u00e4llkoden","Run Sync to update from %s":"Anv\u00e4nd Synka f\u00f6r att uppdatera fr\u00e5n %s","Source code has been modified, run Sync to update POT":"K\u00e4llkod har \u00e4ndrats, anv\u00e4nd Synka f\u00f6r att uppdatera POT","POT has been modified since PO file was saved, run Sync to update":"POT har \u00e4ndrats sedan PO-filen sparades, anv\u00e4nd Synka f\u00f6r att uppdatera","Bad file path":"Ogiltig s\u00f6kv\u00e4g","Empty or invalid %s file":"Tom eller ogiltigt %s-fil","%s file has no header":"%s-filen saknar header","New template":"Ny mall","New language":"Nytt spr\u00e5k","%s%% translated":"%s%% \u00f6versatt","1 string":{"one":"1 str\u00e4ng","other":"%s str\u00e4ngar"},"%s fuzzy":"%s oklar","%s untranslated":"%s ej \u00f6versatta","Failed to compile MO file with built-in compiler":"Det gick ej att sammanst\u00e4lla MO-fil med inbyggd kompilator","Loco, Translation Management":"Loco, Translation Management","Manage translations":"Spr\u00e5kfiler","Translation options":"Inst\u00e4llningar","Loco Translate":"\u00d6vers\u00e4ttningar","Settings":"Inst\u00e4llningar","File download failed":"Nedladdning misslyckades","Unknown language":"Ok\u00e4nt spr\u00e5k","Some files not writable":"Vissa filer \u00e4r ej skrivbara","Some files missing":"Vissa filer saknas","\"%s\" folder not writable":"Mappen \"%s\" \u00e4r ej skrivbar","POT file not writable":"POT-filen \u00e4r ej skrivbar","PO file not writable":"PO-filen \u00e4r ej skrivbar","MO file not writable":"MO-filen \u00e4r ej skrivbar","MO file not found":"MO-fil hittades ej","Folder not writable":"Mappen \u00e4r ej skrivbar","Folder not found":"Mappen hittades ej","User does not have permission to manage translations":"Anv\u00e4ndaren saknar beh\u00f6righet att hantera \u00f6vers\u00e4ttningar","Failed to compile MO file with %s, check your settings":"Det gick ej sammanst\u00e4lla MO-filen med %s , kontrollera dina inst\u00e4llningar","Invalid data posted to server":"Ogiltig data skickades till servern","Package not found called %s":"Paket %s ej hittat","Web server cannot create backups in \"%s\". Fix file permissions or disable backups in settings":"Webbservern kunde ej skapa s\u00e4kerhetskopior i \"%s\". \u00c4ndra filr\u00e4ttigheter eller inaktivera s\u00e4kerhetskopior i inst\u00e4llningarna","Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or create it manually.":"Webbservern kunde ej skapa mappen \"%s\" i \"%s\". \u00c4ndra filr\u00e4ttigheter eller skapa den manuellt.","Web server cannot create files in the \"%s\" directory. Fix file permissions or use the download function.":"Webbservern kunde ej skapa filer i mappen \"%s\". \u00c4ndra filr\u00e4ttigheter eller anv\u00e4nd nedladdningsfunktionen.","%s file is not writable by the web server. Fix file permissions or download and copy to \"%s\/%s\".":"%s-filen \u00e4r ej skrivbar av webbservern. \u00c4ndra filr\u00e4ttigheter eller ladda ner och kopiera till \"%s\/%s\".","Cannot create MO file":"Kunde ej skapa MO-fil","Cannot overwrite MO file":"Kunde ej skriva \u00f6ver MO-fil","Failed to write MO file":"Kunde ej skapa MO-fil","No source files in this package, nothing to sync":"Inga k\u00e4llfiler hittades till denna spr\u00e5kfil, ingenting att synkronisera","No strings could be extracted from source files":"Inga str\u00e4ngar kunde hittas fr\u00e5n k\u00e4llfiler","Unknown error":"Ok\u00e4nt fel","PO file saved":"PO-fil sparad","and MO file compiled":"och MO-fil sammanst\u00e4lld","Merged from %s":"Sammanslagen fr\u00e5n %s","Merged from source code":"Sammanslagen fr\u00e5n k\u00e4llkod","Already up to date with %s":"Redan aktuell med %s","Already up to date with source code":"Redan aktuell med k\u00e4llkod","1 new string added":{"one":"1 ny str\u00e4ng tillagd","other":"%s nya str\u00e4ngar tillagda"},"1 obsolete string removed":{"one":"1 f\u00f6r\u00e5ldrad str\u00e4ng togs bort","other":"%s f\u00f6r\u00e5ldrade str\u00e4ngar togs bort"},"Your changes will be lost if you continue without saving":"Dina \u00e4ndringar kommer att g\u00e5 f\u00f6rlorade om du forts\u00e4tter utan att spara","Source text":"K\u00e4lltext","%s translation":"%s \u00f6vers\u00e4ttning","Comments":"Kommentarer","Context":"Inneh\u00e5ll","Translation":"\u00d6vers\u00e4ttning","Packages":"Spr\u00e5kfiler","File check":"Filr\u00e4ttigheter","File system permissions for %s":"Filsystem r\u00e4ttigheter f\u00f6r %s","Back":"Tillbaka","Get help":"Hj\u00e4lp","Package details":"Beskrivning","Translations (PO)":"\u00d6vers\u00e4ttningar (PO)","Template (POT)":"Mall (POT)","File permissions":"Filr\u00e4ttigheter","Extends: %s":"","1 language":{"one":"1 spr\u00e5k","other":"%u spr\u00e5k"},"Updated":{"Updated":["Senast sparad","Uppdaterad"]},"Powered by":"Drivs av","Loco may not work as expected":"Loco kanske ej fungerar som v\u00e4ntat","Configure Loco Translate":"Konfigurera Loco Translate","Compiling MO files":"Sammanst\u00e4lla MO-filer","Use built-in MO compiler.":"Anv\u00e4nd inbyggd MO-kompilator.","Use external command:":"Anv\u00e4nd externt kommando:","Enter path to msgfmt on server":"Skriv in s\u00f6kv\u00e4g till msgfmt p\u00e5 servern","Generate hash tables":"Generera hashtabeller","Backing up PO files":"S\u00e4kerhetskopiera PO-filer","Number of backups to keep of each file:":"Antal s\u00e4kerhetskopior att beh\u00e5lla f\u00f6r varje fil:","Experimental features":"Experimentella funktioner","Enable Wordpress core translations":"Aktivera Wordpress \u00f6vers\u00e4ttningar","Save settings":"Spara inst\u00e4llningar","Template file":"Mallfil","Switch to...":"V\u00e4xla till...","never":"aldrig","Save":"Spara","Download":"Ladda ner","Sync":"Synka","Revert":"\u00c5terg\u00e5","Add":"L\u00e4gg till","Del":"Radera","Fuzzy":"Oklar","Filter translations":"S\u00f6k \u00f6vers\u00e4ttningar","Help":"Hj\u00e4lp","Initialize new translations in %s":"Skapa nya \u00f6vers\u00e4ttningar i %s","Select from common languages":"V\u00e4lj bland vanliga spr\u00e5k","or enter any language code":"eller skriv valfri landskod","create in <code>%s<\/code>":"skapa i <code>%s<\/code>","create in global languages directory":"skapa i den globala spr\u00e5k katalogen","Start translating":"B\u00f6rja \u00f6vers\u00e4tta","New version available":"Ny version tillg\u00e4nglig","Upgrade to version %s of Loco Translate":"Uppdatera till version %s av Loco Translate","Select a plugin or theme to translate":"V\u00e4lj ett till\u00e4gg eller tema att \u00f6vers\u00e4tta","Themes":"Teman","Plugins":"Till\u00e4gg","Core":"Wordpress"}
|
33 |
);
|
pub/js/lang/loco-translate-tr_TR.js
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
/**
|
2 |
* Loco js export: JavaScript function
|
3 |
-
* Project: loco.
|
4 |
* Release: Working copy
|
5 |
* Locale: tr_TR, Turkish
|
6 |
-
* Exported at:
|
7 |
*/
|
8 |
loco = window.loco||{}, loco.t = function( pairs ){
|
9 |
|
@@ -29,5 +29,5 @@ loco = window.loco||{}, loco.t = function( pairs ){
|
|
29 |
return value || ( 1 === n ? msgid1 : msgid2 ) || msgid1 || '';
|
30 |
};
|
31 |
}(
|
32 |
-
{"Error":"Hata","Warning":"Uyar\u0131","OK":"TAMAM","Permission denied":"\u0130zin reddedildi","Settings saved":"Ayarlar sakland\u0131","New PO file":"Yeni PO Dosyas\u0131","You must specify a valid locale for a new PO file":"Yeni PO dosyas\u0131 i\u00e7in ge\u00e7erli bir Yerel De\u011fer belirtmek zorundas\u0131n\u0131z","No translatable strings found":"\u00c7evrilebilecek c\u00fcmle bulunamad\u0131","Cannot create a PO file.":"Bir PO dosyas\u0131 olu\u015fturulamaz.","PO file already exists with locale %s":"PO dosyas\u0131 %s Yerel De\u011fer ile zaten var","PO file used as template. This will be renamed to %s on first save":"PO dosyas\u0131 \u015eablon olarak kullan\u0131ld\u0131. \u0130lk kaydetmenizde %s olarak isimlendirilecek.","File cannot be created automatically. Fix the file permissions or use Download instead of Save":"Dosya otomatik olarak olu\u015fturulam\u0131yor. Dosya izinlerini d\u00fczenleyin ya da \u0130ndirilenler dizinine kaydedin.","%s file is empty":"%s Dosyas\u0131 bo\u015f","Run Sync to update from source code":"Kaynak kodundan g\u00fcncelle\u015ftirmek i\u00e7in E\u015fle\u015ftirme Yap","No strings could be extracted from source code":"Kaynak kodundan herhangi c\u00fcmle \u00e7\u0131kar\u0131lamad\u0131","Run Sync to update from %s":"%s kayna\u011f\u0131ndan g\u00fcncelle\u015ftirme i\u00e7in E\u015fle\u015ftirme Yap","Source code has been modified, run Sync to update POT":"Kaynak dosyas\u0131 de\u011fi\u015ftirilmi\u015f, POT g\u00fcncellemesi i\u00e7in E\u015fle\u015ftirme Yap","POT has been modified since PO file was saved, run Sync to update":"PO dosyas\u0131 en son sakland\u0131\u011f\u0131ndan beri POT de\u011fi\u015fikli\u011fe u\u011fram\u0131\u015f, g\u00fcncelleme i\u00e7in E\u015fle\u015ftirme Yap","Bad file path":"Uygun olmayan dosya yolu","Empty or invalid %s file":"%s Dosyas\u0131 bo\u015f veya ge\u00e7ersiz","%s file has no header":"%s Dosyas\u0131n\u0131n ba\u015fl\u0131\u011f\u0131 yok","New template":"Yeni \u015fablon","New language":"Yeni Lisan","%s%% translated":"%s%% \u00e7evrildi","1 string":{"other":"1 c\u00fcmle"},"%s fuzzy":"%s belirsiz","%s untranslated":"%s \u00e7evrilmemi\u015f","Failed to compile MO file with built-in compiler":"Dahili derleyici ile MO derlemesinde hata oldu","Loco, Translation Management":"Loco, \u00c7eviri Y\u00f6netimi","Manage translations":"\u00c7evirileri Y\u00f6net","Translation options":"\u00c7eviri Se\u00e7enekleri","Loco Translate":"Loco \u00c7eviri","Settings":"Ayarlar","File download failed":"Dosya indirme hatas\u0131","Unknown language":"Bilinmeyen dil","Some files not writable":"Baz\u0131 dosyalar yaz\u0131labilir de\u011fil","Some files missing":"Baz\u0131 dosyalar yok","\"%s\" folder not writable":"\"%s\" dizini yaz\u0131labilir de\u011fil","POT file not writable":"POT dosyas\u0131 yaz\u0131labilir de\u011fil","PO file not writable":"PO dosyas\u0131 yaz\u0131labilir de\u011fil","MO file not writable":"MO dosyas\u0131 yaz\u0131labilir de\u011fil","MO file not found":"MO dosyas\u0131 bulunamad\u0131","Folder not writable":"Dizin yaz\u0131labilir de\u011fil","Folder not found":"Dizin bulunmad\u0131","User does not have permission to manage translations":"Kullan\u0131c\u0131 \u00e7evirileri y\u00f6netmeye yetkili de\u011fil","Failed to compile MO file with %s, check your settings":"%s ile MO dosyas\u0131 derlemede hata, ayarlar\u0131n\u0131z\u0131 denetleyin","Invalid data posted to server":"Sunucuya g\u00f6nderilen bilgi ge\u00e7ersiz","Package not found called %s":"%s isimli paket bulunamad\u0131","Web server cannot create backups in \"%s\". Fix file permissions or disable backups in settings":"Web Sunucusu \"%s\" adresinde yedek olu\u015fturamaz. Dosya izinlerini d\u00fczenleyin veya ayarlardaki Yedeklemeyi ge\u00e7ersiz k\u0131l\u0131n.","Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or create it manually.":"Web sunucusu \"%s\" dizinini \"%s\" burada olu\u015fturam\u0131yor . Dosya izinlerini d\u00fczenleyin ya da elle olu\u015fturun.","Web server cannot create files in the \"%s\" directory. Fix file permissions or use the download function.":"Web sunucusu \"%s\" dizini i\u00e7inde dosya olu\u015fturam\u0131yor. Dosya izinlerini d\u00fczenleyin ya da indirme fonksiyonunu kullan\u0131n.","%s file is not writable by the web server. Fix file permissions or download and copy to \"%s\/%s\".":"%s dosyas\u0131 web sunucu taraf\u0131ndan yaz\u0131lamaz durumda. Dosya izinlerini d\u00fczenleyin ya da indirip \"%s\/%s\" yoluna kopyalay\u0131n.","Cannot create MO file":"MO dosyas\u0131 olu\u015fturulam\u0131yor","Cannot overwrite MO file":"MO dosyas\u0131 \u00fczerine yaz\u0131lam\u0131yor","Failed to write MO file":"MO dosyas\u0131 yazmada hata","No source files in this package, nothing to sync":"Bu pakette e\u015fle\u015ftirilecek kaynak dosyalar yok.","No strings could be extracted from source files":"Kaynak dosyalar\u0131ndan herhangi c\u00fcmle \u00e7\u0131kart\u0131lamad\u0131","Unknown error":"Bilinmeyen hata","PO file saved":"PO dosyas\u0131 kaydedildi","and MO file compiled":"ve MO dosyas\u0131 derlendi","Merged from %s":"%s \u00fczerinden birle\u015ftirildi","Merged from source code":"Kaynak koddan birle\u015ftirildi","Already up to date with %s":"%s ile zaten g\u00fcncel","Already up to date with source code":"Kaynak kod ile zaten g\u00fcncel","1 new string added":{"other":"1 yeni c\u00fcmle eklendi"},"1 obsolete string removed":{"other":"1 kullan\u0131md\u0131\u015f\u0131 c\u00fcmle kald\u0131r\u0131ld\u0131"},"Your changes will be lost if you continue without saving":"Kaydetmeden devam ederseniz de\u011fi\u015fiklikleriniz kaybolacak","Source text":"Kaynak Metin","%s translation":"%s Dili Nerede? (\u00f6rnek: Turkce \u00c7eviri)\n%s \u00c7evirisi","Comments":"Yorumlar","Context":"Metin","Translation":"\u00c7eviri","Packages":"Paketler","File check":"Dosya denetimi","File system permissions for %s":"%s i\u00e7in dosya sistemi izinleri","Back":"Geri","Get help":"Yard\u0131m al","Package details":"Paket detaylar\u0131","Translations (PO)":"\u00c7eviriler (PO)","Template (POT)":"\u015eablon (POT)","File permissions":"Dosya izinleri","Extends: %s":"","1 language":{"other":"1 Lisan"},"Updated":"G\u00fcncellendi","Powered by":"Haz\u0131rlayan:","Loco may not work as expected":"Loco beklendi\u011fi gibi \u00e7al\u0131\u015fmayabilir","Configure Loco Translate":"Loco \u00c7eviri Kurgusu","Compiling MO files":"MO dosyalar\u0131 derleme","Use built-in MO compiler.":"Dahili MO derleyici kullan.","Use external command:":"Harici komut kullan:","Enter path to msgfmt on server":"Sunucudaki msgfmt yolunu girin","Generate hash tables":"Hash tablolar\u0131 \u00fcret","Backing up PO files":"PO dosyalar\u0131 yedekleniyor","Number of backups to keep of each file:":"Saklanacak her dosyan\u0131n yedek say\u0131s\u0131:","Experimental features":"Deneysel \u00d6zellikler","Enable Wordpress core translations":"WordPress \u00c7ekirdek \u00c7evirilerini Ge\u00e7erli K\u0131l","Save settings":"Ayarlar\u0131 Kaydet","Template file":"\u015eablon dosyas\u0131","Switch to...":"Ge\u00e7i\u015f Yap:","never":"asla","Save":"Kaydet","Download":"\u0130ndir","Sync":"E\u015fle\u015ftir","Revert":"S\u0131f\u0131rla","Add":"Ekle","Del":"Sil","Fuzzy":"Belirsiz","Filter translations":"\u00c7evirileri filtrele","Help":"Yard\u0131m","Initialize new translations in %s":"%s i\u00e7in yeni \u00e7eviriye ba\u015fla","Select from common languages":"Yayg\u0131n diller aras\u0131ndan se\u00e7","or enter any language code":"veya herhangi bir dil kodu gir","create in <code>%s<\/code>":"<code>%s<\/code> Adresinde Olu\u015ftur","create in global languages directory":"Genel Language dizininde Olu\u015ftur","Start translating":"\u00c7eviriye Ba\u015fla","New version available":"Yeni versiyon mevcut","Upgrade to version %s of Loco Translate":"Loco \u00c7eviri eklentisini %s versiyonuna y\u00fckselt","Select a plugin or theme to translate":"\u00c7evirisini yapmak i\u00e7in bir eklenti ya da tema se\u00e7","Themes":"G\u00f6r\u00fcn\u00fcmler","Plugins":"Eklentiler","Core":"\u00c7ekirdek"}
|
33 |
);
|
1 |
/**
|
2 |
* Loco js export: JavaScript function
|
3 |
+
* Project: loco.po conversion
|
4 |
* Release: Working copy
|
5 |
* Locale: tr_TR, Turkish
|
6 |
+
* Exported at: Wed, 21 Jan 2015 14:04:40 +0000
|
7 |
*/
|
8 |
loco = window.loco||{}, loco.t = function( pairs ){
|
9 |
|
29 |
return value || ( 1 === n ? msgid1 : msgid2 ) || msgid1 || '';
|
30 |
};
|
31 |
}(
|
32 |
+
{"Error":"Hata","Warning":"Uyar\u0131","OK":{"OK":["TAMAM","TAMAM"]},"Permission denied":"\u0130zin reddedildi","Settings saved":"Ayarlar sakland\u0131","New PO file":"Yeni PO Dosyas\u0131","You must specify a valid locale for a new PO file":"Yeni PO dosyas\u0131 i\u00e7in ge\u00e7erli bir Yerel De\u011fer belirtmek zorundas\u0131n\u0131z","No translatable strings found":"\u00c7evrilebilecek c\u00fcmle bulunamad\u0131","Cannot create a PO file.":"Bir PO dosyas\u0131 olu\u015fturulamaz.","PO file already exists with locale %s":"PO dosyas\u0131 %s Yerel De\u011fer ile zaten var","PO file used as template. This will be renamed to %s on first save":"PO dosyas\u0131 \u015eablon olarak kullan\u0131ld\u0131. \u0130lk kaydetmenizde %s olarak isimlendirilecek.","File cannot be created automatically. Fix the file permissions or use Download instead of Save":"Dosya otomatik olarak olu\u015fturulam\u0131yor. Dosya izinlerini d\u00fczenleyin ya da \u0130ndirilenler dizinine kaydedin.","%s file is empty":"%s Dosyas\u0131 bo\u015f","Run Sync to update from source code":"Kaynak kodundan g\u00fcncelle\u015ftirmek i\u00e7in E\u015fle\u015ftirme Yap","No strings could be extracted from source code":"Kaynak kodundan herhangi c\u00fcmle \u00e7\u0131kar\u0131lamad\u0131","Run Sync to update from %s":"%s kayna\u011f\u0131ndan g\u00fcncelle\u015ftirme i\u00e7in E\u015fle\u015ftirme Yap","Source code has been modified, run Sync to update POT":"Kaynak dosyas\u0131 de\u011fi\u015ftirilmi\u015f, POT g\u00fcncellemesi i\u00e7in E\u015fle\u015ftirme Yap","POT has been modified since PO file was saved, run Sync to update":"PO dosyas\u0131 en son sakland\u0131\u011f\u0131ndan beri POT de\u011fi\u015fikli\u011fe u\u011fram\u0131\u015f, g\u00fcncelleme i\u00e7in E\u015fle\u015ftirme Yap","Bad file path":"Uygun olmayan dosya yolu","Empty or invalid %s file":"%s Dosyas\u0131 bo\u015f veya ge\u00e7ersiz","%s file has no header":"%s Dosyas\u0131n\u0131n ba\u015fl\u0131\u011f\u0131 yok","New template":"Yeni \u015fablon","New language":"Yeni Lisan","%s%% translated":"%s%% \u00e7evrildi","1 string":{"other":"1 c\u00fcmle"},"%s fuzzy":"%s belirsiz","%s untranslated":"%s \u00e7evrilmemi\u015f","Failed to compile MO file with built-in compiler":"Dahili derleyici ile MO derlemesinde hata oldu","Loco, Translation Management":"Loco, \u00c7eviri Y\u00f6netimi","Manage translations":"\u00c7evirileri Y\u00f6net","Translation options":"\u00c7eviri Se\u00e7enekleri","Loco Translate":"Loco \u00c7eviri","Settings":"Ayarlar","File download failed":"Dosya indirme hatas\u0131","Unknown language":"Bilinmeyen dil","Some files not writable":"Baz\u0131 dosyalar yaz\u0131labilir de\u011fil","Some files missing":"Baz\u0131 dosyalar yok","\"%s\" folder not writable":"\"%s\" dizini yaz\u0131labilir de\u011fil","POT file not writable":"POT dosyas\u0131 yaz\u0131labilir de\u011fil","PO file not writable":"PO dosyas\u0131 yaz\u0131labilir de\u011fil","MO file not writable":"MO dosyas\u0131 yaz\u0131labilir de\u011fil","MO file not found":"MO dosyas\u0131 bulunamad\u0131","Folder not writable":"Dizin yaz\u0131labilir de\u011fil","Folder not found":"Dizin bulunmad\u0131","User does not have permission to manage translations":"Kullan\u0131c\u0131 \u00e7evirileri y\u00f6netmeye yetkili de\u011fil","Failed to compile MO file with %s, check your settings":"%s ile MO dosyas\u0131 derlemede hata, ayarlar\u0131n\u0131z\u0131 denetleyin","Invalid data posted to server":"Sunucuya g\u00f6nderilen bilgi ge\u00e7ersiz","Package not found called %s":"%s isimli paket bulunamad\u0131","Web server cannot create backups in \"%s\". Fix file permissions or disable backups in settings":"Web Sunucusu \"%s\" adresinde yedek olu\u015fturamaz. Dosya izinlerini d\u00fczenleyin veya ayarlardaki Yedeklemeyi ge\u00e7ersiz k\u0131l\u0131n.","Web server cannot create \"%s\" directory in \"%s\". Fix file permissions or create it manually.":"Web sunucusu \"%s\" dizinini \"%s\" burada olu\u015fturam\u0131yor . Dosya izinlerini d\u00fczenleyin ya da elle olu\u015fturun.","Web server cannot create files in the \"%s\" directory. Fix file permissions or use the download function.":"Web sunucusu \"%s\" dizini i\u00e7inde dosya olu\u015fturam\u0131yor. Dosya izinlerini d\u00fczenleyin ya da indirme fonksiyonunu kullan\u0131n.","%s file is not writable by the web server. Fix file permissions or download and copy to \"%s\/%s\".":"%s dosyas\u0131 web sunucu taraf\u0131ndan yaz\u0131lamaz durumda. Dosya izinlerini d\u00fczenleyin ya da indirip \"%s\/%s\" yoluna kopyalay\u0131n.","Cannot create MO file":"MO dosyas\u0131 olu\u015fturulam\u0131yor","Cannot overwrite MO file":"MO dosyas\u0131 \u00fczerine yaz\u0131lam\u0131yor","Failed to write MO file":"MO dosyas\u0131 yazmada hata","No source files in this package, nothing to sync":"Bu pakette e\u015fle\u015ftirilecek kaynak dosyalar yok.","No strings could be extracted from source files":"Kaynak dosyalar\u0131ndan herhangi c\u00fcmle \u00e7\u0131kart\u0131lamad\u0131","Unknown error":"Bilinmeyen hata","PO file saved":"PO dosyas\u0131 kaydedildi","and MO file compiled":"ve MO dosyas\u0131 derlendi","Merged from %s":"%s \u00fczerinden birle\u015ftirildi","Merged from source code":"Kaynak koddan birle\u015ftirildi","Already up to date with %s":"%s ile zaten g\u00fcncel","Already up to date with source code":"Kaynak kod ile zaten g\u00fcncel","1 new string added":{"other":"1 yeni c\u00fcmle eklendi"},"1 obsolete string removed":{"other":"1 kullan\u0131md\u0131\u015f\u0131 c\u00fcmle kald\u0131r\u0131ld\u0131"},"Your changes will be lost if you continue without saving":"Kaydetmeden devam ederseniz de\u011fi\u015fiklikleriniz kaybolacak","Source text":"Kaynak Metin","%s translation":"%s Dili Nerede? (\u00f6rnek: Turkce \u00c7eviri)\n%s \u00c7evirisi","Comments":"Yorumlar","Context":"Metin","Translation":"\u00c7eviri","Packages":"Paketler","File check":"Dosya denetimi","File system permissions for %s":"%s i\u00e7in dosya sistemi izinleri","Back":"Geri","Get help":"Yard\u0131m al","Package details":"Paket detaylar\u0131","Translations (PO)":"\u00c7eviriler (PO)","Template (POT)":"\u015eablon (POT)","File permissions":"Dosya izinleri","Extends: %s":"","1 language":{"other":"1 Lisan"},"Updated":{"Updated":["G\u00fcncellendi","G\u00fcncellendi"]},"Powered by":"Haz\u0131rlayan:","Loco may not work as expected":"Loco beklendi\u011fi gibi \u00e7al\u0131\u015fmayabilir","Configure Loco Translate":"Loco \u00c7eviri Kurgusu","Compiling MO files":"MO dosyalar\u0131 derleme","Use built-in MO compiler.":"Dahili MO derleyici kullan.","Use external command:":"Harici komut kullan:","Enter path to msgfmt on server":"Sunucudaki msgfmt yolunu girin","Generate hash tables":"Hash tablolar\u0131 \u00fcret","Backing up PO files":"PO dosyalar\u0131 yedekleniyor","Number of backups to keep of each file:":"Saklanacak her dosyan\u0131n yedek say\u0131s\u0131:","Experimental features":"Deneysel \u00d6zellikler","Enable Wordpress core translations":"WordPress \u00c7ekirdek \u00c7evirilerini Ge\u00e7erli K\u0131l","Save settings":"Ayarlar\u0131 Kaydet","Template file":"\u015eablon dosyas\u0131","Switch to...":"Ge\u00e7i\u015f Yap:","never":"asla","Save":"Kaydet","Download":"\u0130ndir","Sync":"E\u015fle\u015ftir","Revert":"S\u0131f\u0131rla","Add":"Ekle","Del":"Sil","Fuzzy":"Belirsiz","Filter translations":"\u00c7evirileri filtrele","Help":"Yard\u0131m","Initialize new translations in %s":"%s i\u00e7in yeni \u00e7eviriye ba\u015fla","Select from common languages":"Yayg\u0131n diller aras\u0131ndan se\u00e7","or enter any language code":"veya herhangi bir dil kodu gir","create in <code>%s<\/code>":"<code>%s<\/code> Adresinde Olu\u015ftur","create in global languages directory":"Genel Language dizininde Olu\u015ftur","Start translating":"\u00c7eviriye Ba\u015fla","New version available":"Yeni versiyon mevcut","Upgrade to version %s of Loco Translate":"Loco \u00c7eviri eklentisini %s versiyonuna y\u00fckselt","Select a plugin or theme to translate":"\u00c7evirisini yapmak i\u00e7in bir eklenti ya da tema se\u00e7","Themes":"G\u00f6r\u00fcn\u00fcmler","Plugins":"Eklentiler","Core":"\u00c7ekirdek"}
|
33 |
);
|
readme.txt
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
Contributors: timwhitlock
|
3 |
Tags: translation, translators, localization, localisation, l10n, i18n, Gettext, POEdit, productivity
|
4 |
Requires at least: 3.5
|
5 |
-
Tested up to: 4.
|
6 |
-
Stable tag: 1.
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
@@ -133,9 +133,15 @@ If you have a suggestion on how to improve the experience of using Loco Translat
|
|
133 |
|
134 |
== Changelog ==
|
135 |
|
136 |
-
= 1.
|
|
|
137 |
* Added WPLANG warning for WP4 deprecation
|
138 |
* Added some FAQs
|
|
|
|
|
|
|
|
|
|
|
139 |
|
140 |
= 1.4.7 =
|
141 |
* Added Polish translations
|
@@ -239,7 +245,7 @@ If you have a suggestion on how to improve the experience of using Loco Translat
|
|
239 |
|
240 |
== Upgrade Notice ==
|
241 |
|
242 |
-
= 1.
|
243 |
* Bug fixes and improvements.
|
244 |
|
245 |
|
@@ -264,3 +270,19 @@ These features are on our todo list. There's no particular timeframe for any of
|
|
264 |
* Italian translations by [ElectricFeet](http://wordpress.org/support/profile/electricfeet)
|
265 |
* Polish translations by [Jerry1333](http://www.jerry1333.net)
|
266 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
Contributors: timwhitlock
|
3 |
Tags: translation, translators, localization, localisation, l10n, i18n, Gettext, POEdit, productivity
|
4 |
Requires at least: 3.5
|
5 |
+
Tested up to: 4.1
|
6 |
+
Stable tag: 1.5
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
133 |
|
134 |
== Changelog ==
|
135 |
|
136 |
+
= 1.5 =
|
137 |
+
* Added PO Editor keyboard shortcuts
|
138 |
* Added WPLANG warning for WP4 deprecation
|
139 |
* Added some FAQs
|
140 |
+
* Removed SORT_NATURAL for PHP 5.3 compat
|
141 |
+
* Fixed dummy msginit bug when default locale exists
|
142 |
+
* POT/domain matching fix
|
143 |
+
* Using Wordpress language codes
|
144 |
+
* Added polyfills for mbstring and iconv
|
145 |
|
146 |
= 1.4.7 =
|
147 |
* Added Polish translations
|
245 |
|
246 |
== Upgrade Notice ==
|
247 |
|
248 |
+
= 1.5 =
|
249 |
* Bug fixes and improvements.
|
250 |
|
251 |
|
270 |
* Italian translations by [ElectricFeet](http://wordpress.org/support/profile/electricfeet)
|
271 |
* Polish translations by [Jerry1333](http://www.jerry1333.net)
|
272 |
|
273 |
+
== Keyboard shortcuts ==
|
274 |
+
|
275 |
+
The PO file editor supports the following keyboard shortcuts for faster translating:
|
276 |
+
|
277 |
+
* Done and Next: `Ctrl ↵`
|
278 |
+
* Next string: `Ctrl ↓`
|
279 |
+
* Previous string: `Ctrl ↑`
|
280 |
+
* Next untranslated: `Shift Ctrl ↓`
|
281 |
+
* Previous untranslated: `Shift Ctrl ↑`
|
282 |
+
* Copy from source text: `Ctrl B`
|
283 |
+
* Clear translation: `Ctrl K`
|
284 |
+
* Toggle Fuzzy: `Ctrl U`
|
285 |
+
* Save PO / compile MO: `Ctrl S`
|
286 |
+
|
287 |
+
Mac users can use ⌘ Cmd instead of Ctrl.
|
288 |
+
|
tpl/admin-debug.tpl.php
ADDED
@@ -0,0 +1,159 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Debug / Diagnostics screen - helps resolve commin issues and submit full report to Loco
|
4 |
+
* @var WP_Theme $theme
|
5 |
+
* @var LocoPackage $package
|
6 |
+
*/
|
7 |
+
$nav = array (
|
8 |
+
Loco::__('Packages') => LocoAdmin::uri(),
|
9 |
+
Loco::__('Settings') => LocoAdmin::uri( array(), 'settings' ),
|
10 |
+
Loco::__('Diagnostics') => '',
|
11 |
+
);
|
12 |
+
?>
|
13 |
+
|
14 |
+
<div class="wrap loco-admin loco-debug">
|
15 |
+
|
16 |
+
|
17 |
+
<?php Loco::render('admin-nav', compact('nav') )?>
|
18 |
+
|
19 |
+
<form action="" method="post" id="loco-debug">
|
20 |
+
|
21 |
+
<h2>
|
22 |
+
<?php Loco::h( Loco::__('Localization Diagnostics') )?>
|
23 |
+
</h2>
|
24 |
+
|
25 |
+
<h3 class="title">
|
26 |
+
<?php Loco::h( Loco::__('Submit diagnostic report') )?>
|
27 |
+
</h3>
|
28 |
+
|
29 |
+
<table class="form-table">
|
30 |
+
<tbody>
|
31 |
+
<!-- Personal details -->
|
32 |
+
<tr valign="top">
|
33 |
+
<th scope="row"><?php Loco::h( Loco::__('Your details') )?></th>
|
34 |
+
<td>
|
35 |
+
<fieldset>
|
36 |
+
<p>
|
37 |
+
<label for="loco--name">Name:</label>
|
38 |
+
<input type="text" name="loco[user][name]" id="loco--name" value="<?php Loco::h( $user->get('display_name') )?>" size="40" />
|
39 |
+
</p>
|
40 |
+
<p>
|
41 |
+
<label for="loco--email">Email:</label>
|
42 |
+
<input type="text" name="loco[user][email]" id="loco--email" value="<?php Loco::h( $user->get('user_email') )?>" size="40" />
|
43 |
+
</p>
|
44 |
+
</fieldset>
|
45 |
+
</td>
|
46 |
+
</tr>
|
47 |
+
<!-- Current theme -->
|
48 |
+
<tr valign="top">
|
49 |
+
<th scope="row"><?php Loco::h( Loco::__('Active theme') )?></th>
|
50 |
+
<td>
|
51 |
+
<fieldset>
|
52 |
+
<p>
|
53 |
+
<label for="loco--theme">Name:</label>
|
54 |
+
<input type="text" name="loco[theme][name]" id="loco--theme" value="<?php Loco::h( $theme->get('Name') )?>" size="20" readonly />
|
55 |
+
</p>
|
56 |
+
<p>
|
57 |
+
<label for="loco--theme-locale">Language:</label>
|
58 |
+
<input type="text" name="loco[theme][locale]" id="loco--theme-domain" value="<?php Loco::h( $theme_locale )?>" size="10" readonly />
|
59 |
+
</p>
|
60 |
+
<p>
|
61 |
+
<label for="loco--theme-domain">Text Domain:</label>
|
62 |
+
<input type="text" name="loco[theme][domain]" id="loco--theme-domain" value="<?php Loco::h( $package->get_domain() )?>" size="15" readonly />
|
63 |
+
(<input type="text" name="loco[theme][domain]" id="loco--theme-domain" value="<?php Loco::h( $theme->get('Domain') )?>" size="15" readonly />)
|
64 |
+
</p>
|
65 |
+
<p>
|
66 |
+
<label for="loco--theme-dir">Directory:</label>
|
67 |
+
<input type="text" name="loco[theme][dir]" id="loco--theme-dir" value="<?php Loco::h( $package->lang_dir() )?>" size="70" readonly />
|
68 |
+
</p>
|
69 |
+
</fieldset>
|
70 |
+
</td>
|
71 |
+
</tr>
|
72 |
+
<!-- Wordpress -->
|
73 |
+
<tr>
|
74 |
+
<th scope="row"><?php Loco::h( Loco::__('About WordPress') )?></th>
|
75 |
+
<td>
|
76 |
+
<fieldset>
|
77 |
+
<p>
|
78 |
+
<label for="loco--wp">Version:</label>
|
79 |
+
<input type="text" name="loco[wp][version]" id="loco--wp" value="<?php Loco::h($wp_version)?>" size="10" readonly />
|
80 |
+
</p>
|
81 |
+
<p>
|
82 |
+
<label for="loco--wp-locale">Language:</label>
|
83 |
+
<input type="text" name="loco[wp][locale]" id="loco--wp-locale" value="<?php Loco::h(get_locale())?>" size="10" readonly />
|
84 |
+
</p>
|
85 |
+
<p>
|
86 |
+
<label for="loco--wp-lang">WPLANG:</label>
|
87 |
+
<input type="text" name="loco[wp][wplang]" id="loco--wp-lang" value="<?php Loco::h(defined('WPLANG')?WPLANG:'')?>" size="10" readonly />
|
88 |
+
</p>
|
89 |
+
<p>
|
90 |
+
<label for="loco--wp-plugins">Plugins:</label>
|
91 |
+
<input type="text" name="loco[wp][plugins]" id="loco--wp-plugins" value="<?php Loco::h( json_encode($plugins) ) ?>" size="70" readonly />
|
92 |
+
</p>
|
93 |
+
</fieldset>
|
94 |
+
</td>
|
95 |
+
</tr>
|
96 |
+
<!-- PHP -->
|
97 |
+
<tr valign="top">
|
98 |
+
<th scope="row"><?php Loco::h( Loco::__('About PHP') )?></th>
|
99 |
+
<td>
|
100 |
+
<fieldset>
|
101 |
+
<p>
|
102 |
+
<label for="loco--php">Version:</label>
|
103 |
+
<input type="text" name="loco[php][version]" id="loco--php" value="<?php Loco::h(PHP_VERSION)?>" size="10" readonly />
|
104 |
+
</p>
|
105 |
+
<p>
|
106 |
+
<label for="loco--php-mb">mbstring:</label>
|
107 |
+
<input type="text" name="loco[php][mbstring]" id="loco--php-mb" value="<?php Loco::h( implode(', ',mb_list_encodings()))?>" size="10" readonly />
|
108 |
+
</p>
|
109 |
+
<p>
|
110 |
+
<label for="loco--php-iconv">iconv:</label>
|
111 |
+
<input type="text" name="loco[php][iconv]" id="loco--php-iconv" value="<?php Loco::h(extension_loaded('iconv')?ICONV_VERSION:'No')?>" size="10" readonly />
|
112 |
+
</p>
|
113 |
+
<p>
|
114 |
+
<label for="loco--php-ext">Extensions:</label>
|
115 |
+
<input type="text" name="loco[php][ext]" id="loco--php-ext" value="<?php Loco::h(implode(', ',get_loaded_extensions()))?>" size="70" readonly />
|
116 |
+
</p>
|
117 |
+
</fieldset>
|
118 |
+
</td>
|
119 |
+
</tr>
|
120 |
+
<!-- Loco data -->
|
121 |
+
<tr valign="top">
|
122 |
+
<th scope="row"><?php Loco::h( Loco::__('About Loco Translate') )?></th>
|
123 |
+
<td>
|
124 |
+
<fieldset>
|
125 |
+
<p>
|
126 |
+
<label for="loco--version">Version:</label>
|
127 |
+
<input type="text" name="loco[self][version]" id="loco--version" value="<?php Loco::h(Loco::VERSION)?>" size="10" readonly />
|
128 |
+
</p>
|
129 |
+
<p>
|
130 |
+
<label for="loco--caching">Caching:</label>
|
131 |
+
<input type="text" name="loco[self][caching]" id="loco--caching" value="<?php Loco::h($caching)?>" size="10" readonly />
|
132 |
+
</p>
|
133 |
+
<p>
|
134 |
+
<label for="loco--settings">Settings:</label>
|
135 |
+
<input type="text" name="loco[self][settings]" id="loco--settings" value="<?php Loco::h(json_encode($config))?>" size="70" readonly />
|
136 |
+
</p>
|
137 |
+
</fieldset>
|
138 |
+
</td>
|
139 |
+
</tr>
|
140 |
+
<!-- Client-side data -->
|
141 |
+
<tr valign="top">
|
142 |
+
<th scope="row"><?php Loco::h( Loco::__('Your browser') )?></th>
|
143 |
+
<td>
|
144 |
+
<label for="loco--ua">User Agent:</label>
|
145 |
+
<input type="text" name="loco[ua]" id="loco--ua" value="" size="70 " readonly />
|
146 |
+
</td>
|
147 |
+
</tr>
|
148 |
+
</tbody>
|
149 |
+
</table>
|
150 |
+
|
151 |
+
<p class="submit">
|
152 |
+
<a class="button-primary" href="#todo"><?php Loco::h( Loco::__('SEND') )?></a>
|
153 |
+
<a class="button" href="<?php Loco::h( LocoAdmin::uri() )?>"><?php Loco::h( Loco::__('Back') )?></a>
|
154 |
+
<a class="button" href="http://wordpress.org/support/plugin/<?php echo Loco::NS?>" target="_blank"><?php Loco::h( Loco::__('Get help') )?></a>
|
155 |
+
</p>
|
156 |
+
|
157 |
+
</form>
|
158 |
+
|
159 |
+
</div>
|
tpl/admin-fscheck.tpl.php
CHANGED
@@ -1,6 +1,7 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* File system check screen - shows permission problems and gives advice on fixing
|
|
|
4 |
*/
|
5 |
$nav = array (
|
6 |
Loco::__('Packages') => LocoAdmin::uri(),
|
@@ -11,11 +12,11 @@ $nav = array (
|
|
11 |
|
12 |
<div class="wrap loco-admin loco-fscheck">
|
13 |
|
14 |
-
<?php Loco::render('admin-nav', compact('nav') )
|
15 |
|
16 |
-
<
|
17 |
<?php Loco::h( sprintf( Loco::__('File system permissions for %s'), $name ) )?>
|
18 |
-
</
|
19 |
|
20 |
/* @var $package LocoPackage */
|
21 |
foreach( $package->get_permission_errors() as $path => $error ):?>
|
@@ -33,7 +34,22 @@ $nav = array (
|
|
33 |
</li><?php
|
34 |
endif?>
|
35 |
</ul><?php
|
36 |
-
endforeach
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
|
38 |
|
39 |
<p class="submit">
|
1 |
<?php
|
2 |
/**
|
3 |
* File system check screen - shows permission problems and gives advice on fixing
|
4 |
+
* @var LocoPackage $package
|
5 |
*/
|
6 |
$nav = array (
|
7 |
Loco::__('Packages') => LocoAdmin::uri(),
|
12 |
|
13 |
<div class="wrap loco-admin loco-fscheck">
|
14 |
|
15 |
+
<?php Loco::render('admin-nav', compact('nav') );?>
|
16 |
|
17 |
+
<h2>
|
18 |
<?php Loco::h( sprintf( Loco::__('File system permissions for %s'), $name ) )?>
|
19 |
+
</h2><?php
|
20 |
|
21 |
/* @var $package LocoPackage */
|
22 |
foreach( $package->get_permission_errors() as $path => $error ):?>
|
34 |
</li><?php
|
35 |
endif?>
|
36 |
</ul><?php
|
37 |
+
endforeach;
|
38 |
+
|
39 |
+
|
40 |
+
if( $warnings = $package->get_author_warnings() ):?>
|
41 |
+
<h2>
|
42 |
+
<?php Loco::h( sprintf( Loco::__('Other potential issues with %s'), $name ) ) ?>
|
43 |
+
</h2>
|
44 |
+
|
45 |
+
<ul class="loco-list"><?php
|
46 |
+
foreach( $warnings as $error ):?>
|
47 |
+
<li class="loco-warning">
|
48 |
+
<span><?php Loco::h($error)?></span>
|
49 |
+
</li><?php
|
50 |
+
endforeach;?>
|
51 |
+
</ul><?php
|
52 |
+
endif?>
|
53 |
|
54 |
|
55 |
<p class="submit">
|
tpl/admin-poedit.tpl.php
CHANGED
@@ -76,7 +76,7 @@ $modified or $pofiles[] = $path;
|
|
76 |
<div id="loco-poedit">
|
77 |
|
78 |
<nav id="loco-nav" class="wp-core-ui">
|
79 |
-
<form action="<?php echo $phpbase?>/loco-fail.php" method="post">
|
80 |
<input type="hidden" name="po" value="" />
|
81 |
<input type="hidden" name="path" value="<?php Loco::h($path)?>" />
|
82 |
<input type="hidden" name="action" value="loco-posave" /><?php
|
76 |
<div id="loco-poedit">
|
77 |
|
78 |
<nav id="loco-nav" class="wp-core-ui">
|
79 |
+
<form action="<?php echo $phpbase?>/loco-fail.php" method="post" id="loco-poedit-save">
|
80 |
<input type="hidden" name="po" value="" />
|
81 |
<input type="hidden" name="path" value="<?php Loco::h($path)?>" />
|
82 |
<input type="hidden" name="action" value="loco-posave" /><?php
|
tpl/admin-poinit.tpl.php
CHANGED
@@ -42,10 +42,12 @@ $argpair = $package->get_query();
|
|
42 |
</p>
|
43 |
<p>
|
44 |
<label for="f-loco-locale">
|
|
|
45 |
<?php Loco::h( Loco::_x('or enter any language code','Form label') )?>:
|
46 |
<br />
|
47 |
</label>
|
48 |
-
<input type="text" maxlength="
|
|
|
49 |
</p><?php
|
50 |
// provide location choice if package and global dirs are both writable
|
51 |
if( is_writeable($pdir) && is_writable($gdir) ):
|
@@ -65,7 +67,7 @@ $argpair = $package->get_query();
|
|
65 |
</p><?php
|
66 |
endif?>
|
67 |
<p class="submit">
|
68 |
-
<input type="submit" value="<?php Loco::h( Loco::_x('Start translating','Submit button') )?>" class="button button-primary button-large" />
|
69 |
</p>
|
70 |
</form>
|
71 |
|
42 |
</p>
|
43 |
<p>
|
44 |
<label for="f-loco-locale">
|
45 |
+
–
|
46 |
<?php Loco::h( Loco::_x('or enter any language code','Form label') )?>:
|
47 |
<br />
|
48 |
</label>
|
49 |
+
<input type="text" maxlength="6" size="5" pattern="^[a-zA-Z]{2,3}([\-_][a-zA-Z]{2})?$" name="custom-locale" for="f-loco-locale" placeholder="xx_XX" />
|
50 |
+
<span class="flag"></span>
|
51 |
</p><?php
|
52 |
// provide location choice if package and global dirs are both writable
|
53 |
if( is_writeable($pdir) && is_writable($gdir) ):
|
67 |
</p><?php
|
68 |
endif?>
|
69 |
<p class="submit">
|
70 |
+
<input type="submit" value="<?php Loco::h( Loco::_x('Start translating','Submit button') )?>" class="button button-primary button-large" disabled />
|
71 |
</p>
|
72 |
</form>
|
73 |
|