Loco Translate - Version 1.5

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 Icon 128x128 Loco Translate
Version 1.5
Comparing to
See all releases

Code changes from version 1.4.7 to 1.5

Files changed (46) hide show
  1. languages/loco-translate.pot +7 -3
  2. lib/build/gettext-compiled.php +2 -2
  3. lib/build/locales-compiled.php +2 -2
  4. lib/build/shell-compiled.php +1 -1
  5. lib/compat/loco-iconv.php +22 -0
  6. lib/compat/loco-mbstring.php +26 -0
  7. lib/loco-admin.php +94 -16
  8. lib/loco-boot.php +1 -1
  9. lib/loco-locales.php +58 -25
  10. lib/loco-packages.php +90 -18
  11. lib/test/bootstrap.php +45 -1
  12. lib/test/phpunit.xml +1 -1
  13. lib/test/tests/CompatTest.php +20 -0
  14. lib/test/tests/LocalesTest.php +46 -4
  15. lib/test/tests/PluginPackageTest.php +26 -0
  16. lib/test/tests/ResolveFileDomainTest.php +28 -0
  17. lib/test/tests/ResolveFileLocaleTest.php +48 -0
  18. lib/test/tests/UriTest.php +20 -0
  19. lib/test/tests/UtilsTest.php +0 -34
  20. loco.php +1 -1
  21. php/loco-data.php +21 -0
  22. php/loco-posave.php +1 -1
  23. pub/css/loco-admin.css +1 -1
  24. pub/font/loco.eot +0 -0
  25. pub/font/loco.svg +4 -1
  26. pub/font/loco.ttf +0 -0
  27. pub/font/loco.woff +0 -0
  28. pub/img/flags.png +0 -0
  29. pub/js/build/admin-common.js +3 -1
  30. pub/js/build/admin-poedit.js +147 -130
  31. pub/js/build/admin-poinit.js +2 -1
  32. pub/js/debug.js +23 -0
  33. pub/js/lang/loco-translate-de_DE.js +3 -3
  34. pub/js/lang/loco-translate-id_ID.js +3 -3
  35. pub/js/lang/loco-translate-it_IT.js +3 -3
  36. pub/js/lang/loco-translate-nl_BE.js +3 -3
  37. pub/js/lang/loco-translate-nl_NL.js +3 -3
  38. pub/js/lang/loco-translate-pl_PL.js +3 -3
  39. pub/js/lang/loco-translate-ru_RU.js +3 -3
  40. pub/js/lang/loco-translate-sv_SE.js +3 -3
  41. pub/js/lang/loco-translate-tr_TR.js +3 -3
  42. readme.txt +26 -4
  43. tpl/admin-debug.tpl.php +159 -0
  44. tpl/admin-fscheck.tpl.php +20 -4
  45. tpl/admin-poedit.tpl.php +1 -1
  46. 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: Tue Jul 29 2014 09:34:51 GMT+0100 (BST)\n"
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-locales.php:65
 
 
 
 
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
- * Tue, 07 Oct 2014 14:14:21 +0100
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
- * Tue, 07 Oct 2014 14:14:21 +0100
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
- * Tue, 29 Jul 2014 09:41:25 +0100
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
- $label or $label = _x('Warning','Message label');
25
- echo '<div class="loco-message updated loco-warning"><p><strong>',$label,':</strong> ',Loco::html($message),'</p></div>';
 
 
 
 
 
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, 'en', $export, $head, $force_global );
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
- $meta = $package->meta();
154
  Loco::enqueue_scripts('build/admin-common');
155
- Loco::render('admin-fscheck', $meta + compact('package') );
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 trim( $domain, '-' );
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 $base_uri.'?'.http_build_query( $args );
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 = LOCO::CAPABILITY;
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 = $slug.'-settings';
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, Loco::CAPABILITY, $slug.'-legacy', $page );
 
 
 
 
 
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.4.7';
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
- return get_object_vars($this);
 
 
 
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 our own list
97
- if( isset($locales[$lc]) ){
98
- $names = self::get_names();
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( 'ZZ' === $cc ){
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|SORT_NATURAL);
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
- if( ! isset($data['locales'][$lc]['ZZ']) ){
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
- private static function default_region( $lang ){
191
- self::data(); // <- ensure lazy load of libs
 
 
 
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
- $domain or $domain = LocoAdmin::resolve_file_domain($path) or $domain = $this->get_domain();
232
- $this->add_file($path) and $this->pot[$domain] = $path;
 
 
233
  }
234
  }
235
  if( isset($files['po']) && is_array($files['po']) ){
236
  foreach( $files['po'] as $path ){
237
- $domain or $domain = LocoAdmin::resolve_file_domain($path) or $domain = $this->get_domain();
 
 
 
238
  $locale = LocoAdmin::resolve_file_locale($path);
239
  $code = $locale->get_code() or $code = 'xx_XX';
240
- $this->add_file($path) and $this->po[ $domain ][ $code ] = $path;
 
 
241
  }
242
  }
243
  return $this;
@@ -293,7 +307,7 @@ abstract class LocoPackage {
293
  $dirs[] = $path;
294
  }
295
  }
296
- // check location of al PO files in domain
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 locale-less PO files incorrectly as a template
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
- * construct package object from theme
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( $files = LocoAdmin::find_po($root) ){
639
- $package->add_po( $files, $domain );
640
  }
641
  // pick up any MO files that have missing PO
642
- if( $files = LocoAdmin::find_mo($root) ){
643
- $package->add_mo( $files, $domain );
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( $files = LocoAdmin::find_po($root) ){
672
- $package->add_po( $files, $domain );
673
  }
674
  // pick up any MO files that have missing PO
675
- if( $files = LocoAdmin::find_mo($root) ){
676
- $package->add_mo( $files, $domain );
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="false"
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( 137, $map );
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','GB');
100
  $other = LocoLocale::init('en','');
101
- $this->assertTrue( $locale->equal_to($other), $locale.' is not the same locale as '.$other );
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.4.7
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) || empty($name) || empty($type) ){
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="&#xe61e;" 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="&#xe61f;" 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="&#xe620;" 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="&#xe621;" d="M731.429 420.571v274.286q0 14.857-10.857 25.714t-25.714 10.857h-274.286q-24 0-33.714-22.286-9.714-23.429 8-40l82.286-82.286-305.143-305.143q-10.857-10.857-10.857-25.714t10.857-25.714l58.286-58.286q10.857-10.857 25.714-10.857t25.714 10.857l305.143 305.143 82.286-82.286q10.286-10.857 25.714-10.857 6.857 0 14.286 2.857 22.286 9.714 22.286 33.714zM877.714 713.143v-548.571q0-68-48.286-116.286t-116.286-48.286h-548.571q-68 0-116.286 48.286t-48.286 116.286v548.571q0 68 48.286 116.286t116.286 48.286h548.571q68 0 116.286-48.286t48.286-116.286z" horiz-adv-x="878" />
49
  <glyph unicode="&#xe622;" 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="&#xe623;" 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="&#xe624;" 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="&#xe632;" 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="&#xe633;" 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="&#xe634;" 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="&#x1f426;" 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="&#xe61e;" 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="&#xe61f;" 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="&#xe620;" 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="&#xe621;" 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="&#xe622;" 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="&#xe623;" 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="&#xe624;" 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="&#xe632;" 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="&#xe633;" 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="&#xe634;" 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="&#xe635;" 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="&#xe636;" 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="&#xf1ab;" 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="&#x1f426;" 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(k,l,a){function f(c,g){function e(){d();b=setTimeout(function(){a(c).fadeOut(1E3,g)},f)}function d(){b&&clearTimeout(b);b=null}var b,f=5E3;e();a(c).mouseenter(d).mouseleave(e)}function h(c,g){function e(d){a(c).remove();a(window).triggerHandler("resize");var b;if(b=d)d.stopPropagation(),d.preventDefault(),b=!1;return b}a('<a class="dismiss" href="#">&times;</a>').appendTo(c).click(e);g||f(c,e)}a("#wpbody-content").find("div.loco-message").each(function(c,a){h(a,!0)})}(window,document,window.jQuery);
 
 
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="#">&times;</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(u,D,e,W){function R(c){var a=0,e,f=[].slice.call(arguments,1);return c.replace(/%(s|u|%)/g,function(d,c){if("%"===c)return"%";e=f[a++];return String(e)||""})}function S(c){c.stopPropagation();c.preventDefault();return!1}function da(c,a){function k(){f();d=setTimeout(function(){e(c).fadeOut(1E3,a)},g)}function f(){d&&clearTimeout(d);d=null}var d,g=5E3;k();e(c).mouseenter(f).mouseleave(k)}function Z(c,a){function k(a){e(c).remove();e(u).triggerHandler("resize");return a&&S(a)}e('<a class="dismiss" href="#">&times;</a>').appendTo(c).click(k);
2
- a||da(c,k)}function X(c,a,k,f){var d="loco-js-"+k;k=D.getElementById(d)||e('<div id="'+d+'" class="loco-message '+(f||k)+'"></div>').insertBefore(e("#loco-poedit"));c=e(D.createElement("p")).text(c);a=e(D.createElement("strong")).text(a+": ");c.prepend(a).appendTo(e(k).html(""));e(u).triggerHandler("resize");Z(k);e("div.loco-warning").remove()}function $(c){return X(c,F("OK"),"updated loco-success")}function Y(){var c=G.stats(),a=c.t,k=c.f,f=c.u,a=R(F("1 string","%s strings",a),a),d=[];U&&(a=R(F("%s%% translated"),
3
- c.p.replace("%",""))+", "+a,k&&d.push(R(F("%s fuzzy"),k)),f&&d.push(R(F("%s untranslated"),f)),d.length&&(a+=" ("+d.join(", ")+")"));e("#loco-po-status").text(a)}function aa(c,a,k){function f(d,c,b){b=b||F("Unknown error");X(b,F("Error"),"error");k&&k(d,c,b)}return e.ajax({url:ba,type:c.method,data:e(c).serialize(),dataType:"json",error:f,success:function(c,g,b){!c||c.error?f(b,g,c&&c.error&&c.error.message):a&&a(c,g,b)}})}var t=function(){var c={};return{register:function(a,e){c[a]=e},require:function(a,
4
- e){var f=c[a];if(!f)throw Error('CommonJS error: failed to require("'+e+'")');return f}}}();t.register("$1",function(c,a,e){Array.prototype.indexOf||(Array.prototype.indexOf=function(c){if(null==this)throw new TypeError;var a,g=Object(this),b=g.length>>>0;if(0===b)return-1;a=0;1<arguments.length&&(a=Number(arguments[1]),a!=a?a=0:0!=a&&Infinity!=a&&-Infinity!=a&&(a=(0<a||-1)*Math.floor(Math.abs(a))));if(a>=b)return-1;for(a=0<=a?a:Math.max(b-Math.abs(a),0);a<b;a++)if(a in g&&g[a]===c)return a;return-1});
5
- return c}({},u,D));t.register("$16",function(c,a,e){function f(r){b||a._gat&&(b=_gat._createTracker(d,"loco"));if(b){var p=r.shift();b[p].apply(b,r)}else g&&g.push(r);return c}var d,g,b;c._init=function(b){if(d=b.code){g=a._gaq||(a._gaq=[]);g.push(["_setAccount",d]);g.push(["_trackPageview"]);g.push(["_setDomainName",b.host]);b=e.createElement("script");b.type="text/javascript";b.async=!0;b.src=("https:"==e.location.protocol?"https://ssl":"http://www")+".google-analytics.com/ga.js";var p=e.getElementsByTagName("script")[0];
6
- p.parentNode.insertBefore(b,p)}return c};c.event=function(b,a,c,d){return f(["_trackEvent",b||"",a||"",c||"",d||0])};c.page=function(b,a){return f(["_trackPageview",{page:b||location.pathname+location.hash,title:a||e.title}])};return c}({},u,D));t.register("$17",function(c,a,e){function f(b,r){if(d)d[b](r);else a.ga&&ga(b,r);return c}var d,g;c._init=function(b){b.code&&(function(b,a,c,d,h,s,m){b.GoogleAnalyticsObject=h;b[h]=b[h]||function(){(b[h].q=b[h].q||[]).push(arguments)};b[h].l=1*new Date;s=
7
- a.createElement(c);m=a.getElementsByTagName(c)[0];s.async=1;s.src=d;m.parentNode.insertBefore(s,m)}(a,e,"script","//www.google-analytics.com/analytics.js","ga"),ga("create",b.code,{alwaysSendReferrer:!0,userId:b.user}),b.custom&&f("set",b.custom),c.page(),ga(function(b){d=b}));return c};c.event=function(b,a,c,d){return f("send",{hitType:"event",eventCategory:b||"",eventAction:a||"",eventLabel:c||"",eventValue:Number(d||0)})};c.page=function(b,a){var c={hitType:"pageview",page:b||location.pathname+
8
- location.hash,title:a||e.title};c.location=location.protocol+"//"+location.hostname+c.page;g&&f("set",{referrer:g});g=c.location;return f("send",c)};c.reset=function(){g=location.href;f("set",{page:location.pathname+location.hash,title:e.title,location:g});return c};return c}({},u,D));t.register("$8",function(c,a,k){function f(b,a){e(b).click(function(b){d&&d.event(a,"click",this.getAttribute("href")||"");return!0});b=null;return c}var d,g=location.hostname;c.init=function(b){!d&&b&&(g=b.host||(b.host=
9
- g),d=b.legacy?t.require("$16","legacy.js"):t.require("$17","universal.js"),d._init(b));return c};c.link=function(b){for(var a=b.getAttribute("href");a&&"#"!==a;){if(0===a.indexOf("#"))return f(b,"anchor");if(0===a.indexOf("http")||0===a.indexOf("//")){if(-1!==a.indexOf(g)&&/^(https?:)*\/\/([^\/]+)/.exec(a)&&g===RegExp.$2)break;b.setAttribute("target","_blank");f(b,"external")}break}return c};c.page=function(){d&&d.page.apply(d,arguments);return c};c.event=function(){d&&d.event.apply(d,arguments);
10
- return c};c.reset=function(){d&&d.reset&&d.reset();return c};return c}({},u,D));t.register("$22",function(c,a,k){function f(b,a,c,d,f){function h(){n&&clearTimeout(n);w&&w.fadeOut(400,function(){e(this).remove();w=null});return!1}function s(){m();-1!==d&&(n=setTimeout(h,d||2E3));w.unbind("mouseleave");w.mouseenter(m)}function m(){n&&clearTimeout(n);n=null;w.unbind("mouseenter");w.mouseleave(s)}var n;g||(g=k.createElement("div"),g.id="growls",k.body.appendChild(g));var w=e('<div class="growl growl-'+
11
- c+'"><div><a class="close" href="#"><span>X</span></a><span class="badge"></span><p class="message"></p><small class="caption"></small></div></div>');w.find("p").text(b||"Empty message");a?w.find("small").text(a):w.find("small").remove();if(f.length){f.push({label:"Cancel",callback:h,css:"cancel"});var y,I=e('<form action="#" class="dialog"></form>');a=function(b,a){y=e('<input type="button" value="'+a.label+'" class="butt '+(a.css||"")+'" />');y.click(function(b){"function"===typeof a.callback&&
12
- a.callback(b,{close:h})});I.append(y);return y};for(b=0;b<f.length;b++)a(b,f[b]);w.append(I)}e(g).prepend(w.hide().fadeIn(400));w.find("a").click(h);s()}var d,g;c.init=function(){if(!d)return d=a.alert,a.alert=function(b){b=String(b).split("\n");var a=b[1]&&b.slice(1).join("\n");c.alert(b[0],a)},c};c.debug=function(b){d(b);return c};c.alert=function(b,c,g,e,B){try{return f(b,c||"",g||"alert",e||4E3,B||[]),!0}catch(h){return b+="\n\n--\n"+(h.message||h),d.call(a,b),!1}};c.success=function(b,a,d){return c.alert(b,
13
- a,"success",d||2E3)};c.dialog=function(b,a,d,g){return c.alert(b,a,g||"alert",-1,d)};c.login=function(b,a,d,g){c.dialog(a||"You're not logged in",d||"Please log in to continue",[{label:g||"Log in",callback:function(a,h){location.assign(b||"/session/auth/login?r="+encodeURIComponent(location.href))}}])};return c}({},u,D));t.register("$19",function(c,a,k){function f(b){return 27===b.keyCode&&s&&m?(H(),b.preventDefault(),!1):!0}function d(h){if(s){var c=Math.max(b.height(),r.outerHeight(!0));c&&q.css("height",
14
- c+"px");h&&(l=e(a).innerWidth(),z(A))}return!0}function g(b){b?(B.show(),p.addClass("has-title")):(B.hide(),p.removeClass("has-title"))}var b,r,p,q,B,h,s=!1,m=!1,n=!1,w,y,I,l,A,v=c.init=function(){if(!b){b=e('<div id="overlay"></div>');r=e('<div class="overlay-frame"></div>');p=e('<div class="overlay-container"></div>');B=e('<div class="overlay-title"><span class="title">Untitled</span></div>');h=e('<a class="overlay-close" href="#"><span>x</span></a>');q=e('<div class="overlay-bg"></div>');b.append(r.append(p)).append(q).prependTo(k.body);
15
- e(k).bind("keydown",f);e(a).resize(d);I=p.outerWidth(!0)-p.width()+(r.innerWidth()-r.width());p.outerHeight(!0);p.outerHeight(!1);r.innerHeight();r.height();l=e(a).innerWidth();w=parseInt(p.css("width"));if(!w||isNaN(w))w=p.width();y=parseInt(p.css("height"));if(!y||isNaN(y))y=p.height();B.append(h.hide()).hide().prependTo(r);b.hide()}return b},z=c.width=function(h){v();if(null===h)r.css("width",""),p.css("width","");else{h=h||w||640;x=h+I;A=h;var a=l;x>a?(x=a,h=x-I,b.addClass("spill")):b.removeClass("spill");
16
- r.css("width",x+"px");p.css("width",h+"px")}return c};c.autoSize=function(){v();d();var b=w||0;p.children().each(function(h,a){b=Math.max(b,e(a).outerWidth(!0))});z(b);return c};c.css=function(b){v().attr("class",b);return c};c.html=function(b){v();a.innerShiv&&(b=innerShiv(b,!1));return p.html(b)};c.append=function(b){v();b instanceof jQuery||(b=e(b));p.append(b);return c};var H=c.close=function(h){if(s){var a=function(){v().hide();e(k.body).removeClass("has-overlay");s=!1;p.html("");s=null;b.trigger("overlayClosed",
17
- [c])};null==h&&(h=300);h?b.fadeOut(h,a):a()}return c};c.title=function(b){v();n=b||"";B.find("span.title").text(n);null!=b?g(!0):m||g(!1);return c};c.enableClose=function(){v();m=!0;h.unbind("click").bind("click",function(b){H();return!1});g(!0);h.show();return c};c.disableClose=function(){v();m=!1;h.hide();s&&n||g(!1);return c};c.open=function(){v();p.html("");z(w);b.attr("class","");e(k.body).addClass("has-overlay");v().show();s=!0;d();c.title(null);m&&g(!0);b.trigger("overlayOpened",[c]);return c};
18
- c.listen=function(b){v().bind("overlayClosed",b);return c};c.unlisten=function(b){v().unbind("overlayClosed",b);return c};return c}({},u,D));t.register("$18",function(c,a,k){var f={401:"You've been logged out",404:"Not Found",500:"Server Error",502:"Bad Gateway",503:"Service unavailable",504:"Gateway timeout"};c.getErrors=function(){return f};c.jsonLink=function(a){if(!a)return"";a=a.split("?");a[0]=a[0].replace(/(\.[a-z0-9]{1,4})?$/i,".json");return a.join("?")};c.errorData=function(a,c,b){var r,
19
- p;b=a.responseText;c=a.status;if(!b&&0===c)return null;try{r=e.parseJSON(b)||{}}catch(q){r={},p=f[a.status]||q.message||q}p||(p=r.statusText||a.statusText||f[c]||"Unknown Error");r.error=p;return r};c.ajax=function(d,g,b,r){function p(){b&&b()}function q(b){b.alert&&alert(b.alert);var c=b.success;c&&t.require("$22","growl.js").success.apply(this,c.push?c:[c]);c=r||e(k.body);c.trigger("locoAjaxSuccess",[b]);var d=b.events;if(d&&d.length)for(var n,g=t.require("$8","ga.js");n=d.shift();)c.trigger(n,
20
- [b]),g.event("ajax",n);b.modal&&t.require("$10","LocoModal.js").replace(b.modal);if(b.download)a.location.assign(b.download);else if(b.redirect)return a.location.assign(b.redirect),!1;p();return!0}function B(b,a,r){var d=b.status;401===d?(t.require("$22","growl.js").login(),g&&!1===g(null,f[d],d)&&p()):(b=c.errorData(b,a,r),null!=b&&(a=b.error,"function"===typeof g&&!1===g(null,a,d)?p():b&&b.data&&!q(b.data)||(alert(a||"Unknown error"),p())))}d.error=B;d.success=function(b,a,c){if(!b||"object"!==
21
- typeof b)return B(c,"unknown");b.status&&alert(b.statusText||"Unknown error");"function"===typeof g&&!1===g(b&&b.data?b.data:b)?p():b&&b.data?q(b.data):p()};-1!==d.url.indexOf(".json")&&(d.dataType="json");e.ajax(d)};return c}({},u,D));t.register("$10",function(c,a,k){function f(b,a){g.autoSize();var c=g.init();t.require("$2","html.js").init(c);c.find("[data-script]").each(function(b,c){c=e(c);for(var d=-1,l,s=c.attr("data-script").split(" ");++d<s.length;)l=s[d],r[l]?r[l](c,a||{}):alert("Unknown script "+
22
- l)});c.trigger("locoModalLoaded",[g,b||"",a||{}]);var d,n=c.find("form")[0];if(n)a:for(c=0;c<n.elements.length;c++)switch(d=n.elements[c],d.type){case "text":case "email":case "textarea":e(d).focus();break a}}function d(b){var a=e(b.currentTarget),c=a.attr("data-modal");if("close"===c){q();var d=a.attr("href");if(d&&-1!==d.indexOf("#!"))return!0}else{var r="submit"===b.type,f=a.attr("title")||a.attr("data-title"),d=a.attr("href")||a.attr("action"),y=r?a.serialize():"",a=r?a.attr("method"):"get";p(d,
23
- f,a,y);c||(c=d.split("/").slice(1,4).join("-"));c="modal "+c;g.width(null).css(c).autoSize()}b.stopPropagation();b.preventDefault();return!1}var g=t.require("$19","overlay.js"),b=t.require("$8","ga.js"),r={},p=c.load=function(a,h,d,r){g.open().title("Loading ..").disableClose().css("modal").html('<div class="overlay-placeholder"></div>');var n=t.require("$18","http.js");d={type:d||"get",data:r||"",url:n.jsonLink(a)};n.ajax(d,function(c,d,r){var l=c&&c.html;if(!l)return c=e('<h3 class="error"></h3>').text(d||
24
- "Unknown error"),g.enableClose().title("Error "+r||"?").html("").append(c),!1;h=c.title||h||"Untitled";g.enableClose().title(h).html(l);f(a,c.js);b.page(a,h);g.init().one("overlayClosed",function(){b.reset()});return!0});return c},q=c.close=function(){g.close();return c};c.initLink=function(b){b.click(d)};c.initForm=function(b){e(b).submit(d)};c.replace=function(b){var a=b&&b.html,c=b&&b.url,d=b&&b.title;c?(p(c,d),b=b&&b.css||c.split("/").slice(1,4).join("-"),g.width(null).css(" modal "+b).autoSize()):
25
- a&&(g.open().html(a),d&&g.enableClose().title(d),f("",b&&b.js))};c.find=function(b){return g.init().find(b)};c.script=function(b,a){if(a){if("function"!==typeof a.run)throw Error(b+" macro has no run function");r[b]=a.run;return c}return r[b]};return c}({},u,D));t.register("$12",function(c,a,k){function f(b){b.stopPropagation();b.preventDefault();return!1}function d(b,a,c){if(c=c||b.getElement(a))c.unbind().mouseup(function(c){c.stopPropagation();b.selectIndex(a,!0);return!1}).mouseover(function(){e(this).addClass("over");
26
- b.hover=a;return!0}).mouseout(function(){e(this).removeClass("over");b.hover=-1;return!0}),c=null;return b}function g(b){if(b){var a=this,c=b[0];a.id=c.id||"";a.name=c.name||"";a.prefix=c.getAttribute("data-prefix");a.defaultIcon=c.getAttribute("data-icon")||"jshide";var d=c.selectedIndex,g=[],h,s,m;for(s=0;s<c.options.length;s++)h=c.options[s],m=h.disabled,h=e(h),g.push([h.val(),h.text(),h.attr("data-icon")||"",m]);a.hidden=e('<input type="hidden" name="'+a.name+'" value="" />').appendTo(c.form);
27
- a.list=e('<ul class="clearfix"></ul>');a.icon=e('<span class="icon"> </span>');a.selection=e('<span class="label"></span>');a.handle=e('<a class="handle" href="#"></a>').attr("tabindex",b.attr("tabindex")||"").append(a.icon).append(a.selection);a.wrapper=e("<div></div>").addClass(c.className).addClass("selector").append(a.handle).append(a.list).replaceAll(c);this.id&&a.wrapper.attr("id",this.id);for(a.clearOptions();h=g.shift();)a.addOption.apply(a,h);a.handle.click(function(b){b.preventDefault();
28
- return!1}).mouseover(function(b){return a.onRollover(b)}).mouseout(function(b){return a.onRollout(b)}).mousedown(function(b){return a.onPress(b)}).keydown(function(b){return a.onKeydown(b)});e(k.body).mouseup(function(b){return a.onRelease(b)}).keydown(function(b){return a.onGlobalKeydown(b)});a.close();a.selectIndex(d)}}c.create=function(b){return new g(b)};c.extend=function(b){b.prototype=new g};a=g.prototype;a.onRollover=function(b){return this.over=!0};a.onRollout=function(b){this.over=!1;return!0};
29
- a.onPress=function(b){return this.active?this.over?(this.close(),b.stopPropagation(),b.preventDefault(),!1):!0:(this.open(),b.stopPropagation(),b.preventDefault(),this.handle.focus(),!1)};a.onRelease=function(b){this.active&&!this.over&&this.close();return!0};a.onGlobalKeydown=function(b){if(this.active)switch(b.keyCode){case 27:return this.close(),f(b);case 40:return this.hoverNext(1),f(b);case 38:return this.hoverNext(-1),f(b);case 13:if(-1!=this.hover)return this.selectIndex(this.hover,!0),this.hoverItem(-1),
30
- this.close(),f(b)}return!0};a.onKeydown=function(b){return this.active||40!==b.keyCode?!0:(this.open(),f(b))};a.open=function(){this.active=!0;this.hover=-1;this.wrapper.addClass("active");var b=this.handle.outerHeight()||0;this.list.show().css("top",b+"px");var b=this.handle.outerWidth()||0,a=this.list.outerWidth()||0;b>a&&(a-=this.list.width(),this.list.css("min-width",String(b-a)+"px"))};a.close=function(){this.list.hide();this.active=!1;-1!==this.hover&&(this.getElement(this.hover).removeClass("over"),
31
- this.hover=-1);this.wrapper.removeClass("active")};a.hoverItem=function(b,a){-1!==this.hover&&this.getElement(this.hover).removeClass("over");this.hover=b;-1!==b&&(a=a||this.getElement(b),a.addClass("over"))};a.hoverNext=function(b){var a=this.options.length;if(a){a-=1;if(-1==this.hover)b=0<b?0:a;else{b=this.hover+b;if(0>b){this.close();return}b>a&&(b=0)}this.hoverItem(b)}};a.enableChange=function(b){this.eventName=b;this.eventData=[].slice.call(arguments,1);return this};a.clearOptions=function(){this.index=
32
- {};this.length=0;this.options=[];this.list.html("");this.hidden.val("");this.idx=this.hover=-1;return this};a.addOption=function(b,a,c,g){var f=this.options.length,h=e("<span></span>").addClass(c||"jshide"),s=e('<span class="label"></span>').text(a||b),h=e("<li></li>").append(h).append(s).appendTo(this.list);h.attr("data-option",f);this.options[f]={value:b,text:a,icon:c};this.index[b]=f;this.length=f+1;g?this.disableIndex(f):d(this,f,h);return f};a.disableOption=function(b){return this.disableIndex(this.index[b])};
33
- a.disableIndex=function(b){(b=this.getElement(b))&&b.addClass("disabled").unbind();return this};a.enableOption=function(b){return this.enableIndex(this.index[b])};a.enableIndex=function(b){return d(this,b)};a.reIndex=function(){this.index={};this.length=0;for(var b=this.options.length;-1<--b;)this.index[this.options[b].value]=b,this.length++};a.selectValue=function(b,a){return this.selectIndex(this.index[b],a)};a.selectIndex=function(b,a){var c=this.options[b];c&&(this.hidden.val(c.value),b!==this.idx&&
34
- (this.idx=b,this.setLabel(c.text),this.icon.attr("class",c.icon||this.defaultIcon),a&&this.change()),this.active&&this.close());return this};a.setLabel=function(b){this.selection.text(b);this.prefix&&this.selection.prepend(e('<span class="prefix"></span>').text(this.prefix))};a.val=function(){var b=this.options[this.idx];return b&&b.value};a.change=function(){var b=this.eventName||"change",a=this.eventData&&this.eventData.slice()||[];a.unshift(this.val());this.wrapper.trigger(b,a);return this};a.renameOption=
35
- function(b,a){var c=this.index[b],d=this.options[c];d&&(d.text=a,this.getElement(c).find("span.label").text(a),c===this.idx&&this.setLabel(a));return this};a.removeOption=function(b){var a=this.index[b],c=this.options[a];c&&(b=this.val(),this.getElement(a).remove(),this.options.splice(a,1),this.reIndex(),b===c.value?this.selectIndex(0,!0):this.selectValue(b,!1))};a.getElement=function(b){return this.list.find("li").eq(b)};a=null;return c}({},u,D));t.register("$20",function(c,a,e){function f(a){g&&
36
- (a=b[a]||a);return a}function d(b){if((b.MSPOINTER_TYPE_TOUCH||"touch")===b.pointerType)return!0;b.stopImmediatePropagation();b.stopPropagation();return!1}var g=navigator.msPointerEnabled,b={touchstart:"MSPointerDown",touchmove:"MSPointerMove",touchend:"MSPointerUp"};c.bind=function(b,a,e){a.addEventListener&&(b=f(b),g&&a.addEventListener(b,d,!1),a.addEventListener(b,e,!1));return c};c.unbind=function(b,a,d){a.removeEventListener&&(b=f(b),a.removeEventListener(b,d,!1));return c};return c}({},u,D));
37
- t.register("$13",function(c,a,k){function f(){r&&clearTimeout(r);r=null}function d(b){b.preventDefault();b.stopPropagation();return!1}var g,b,r,p=100,q=100,B=!1,h=!1,s;c.delays=function(b,a){p=b||0;q=a||0};c.kill=function(){b&&b.hide().stop().remove();b=null;g&&g.hide().html("")};c.text=function(a){b&&b.find("label.tip").text(a)};c.init=function(m){function n(){g||(g=e('<div id="tipholder"></div>').appendTo(k.body));return g}function w(){f();v?r=setTimeout(y,v):y()}function y(){f();B||h||l()}function I(){f();
38
- b&&(b.stop(),b.remove());var a=m.offset();b=H.clone();n().show().append(b);var c=Math.round(a.left),a=Math.round(a.top);b.hasClass("tooltip-right")&&(c-=b.outerWidth(!1),c+=m.outerWidth(!1));a=b.hasClass("tooltip-top")?a-b.outerHeight():a+m.outerHeight();n().css("left",c+"px").css("top",a+"px");b.mouseenter(function(){B=!0;return!1}).mouseleave(function(){B=!1;w();return!0});Boolean(b.find("form").length|b.find("a").length)||b.click(A);m.trigger("tooltipOpen",[b])}function l(){function a(){c.kill()}
39
- b?b.fadeOut(500,a):a();m.trigger("tooltipClose",[b])}function A(){!1!==m.triggerHandler("click")&&C&&(location.href=C);return!1}var v=Number(m.attr("data-hide-delay")||q),z=Number(m.attr("data-show-delay")||p),H=m.find("div.tooltip"),E=m.attr("title");if(!H.length){if(!E)return;H=e('<div class="tooltip"></div>').append(e('<label class="tip"></label>').text(E));m.hasClass("hastip-top")&&H.addClass("tooltip-top");m.hasClass("hastip-right")&&H.addClass("tooltip-right");m.prepend(H)}E&&(m.attr("data-title")&&
40
- H.children("label.tip").text(E),m.attr("data-title",E),m.attr("title",""));var C=m.attr("href");"#"===C&&(C="");E=t.require("$20","touch.js").bind("touchstart",m[0],d).bind("touchmove",m[0],d).bind("touchend",m[0],function(b){setTimeout(A,300);return d(b)});null==s&&(s=!1,E.bind("touchstart",a,function(){return s=!0}).bind("touchend",a,function(){setTimeout(function(){s=!1},300);return!0}));m.mouseover(function(){s||(h=!0,f(),b?I():z?r=setTimeout(I,z):I());return!0}).mouseout(function(){s||(h=!1,
41
- w());return!0});C&&m.click(function(){h=!1;l();return!0})};return c}({},u,D));t.register("$2",function(c,a,k){var f=a.ieVersion;c.ie=function(b){return b?f<=b:f};var d=c.init=function(b){b?b instanceof jQuery||(b=e(b)):b=e(k.body);var a=t.require("$8","ga.js"),g=t.require("$9","forms.js"),q=t.require("$10","LocoModal.js"),B=t.require("$11","LocoAutoComplete.js"),h=t.require("$12","LocoSelector.js"),s=t.require("$13","tooltip.js");b.find("form").each(function(b,a){var c=e(a);f&&10>f&&g.placeholders(c);
42
- a.getAttribute("data-modal")?q.initForm(a):a.action&&0!==a.action.indexOf("#")&&!a.target&&g.jsonify(a);c.hasClass("hasreveal")&&g.revealify(c);c.find("input.button").each(function(b,a){g.linkify(a)});c.find("input.auto-comp").each(function(b,a){B.init(a)});c.find("select.selector").each(function(b,a){h.create(e(a))})});b.find("a").each(function(b,h){-1!==h.className.indexOf("hastip")&&s.init(e(h));if(-1!==h.href.indexOf("/modal/")||h.getAttribute("data-modal"))q.initLink(e(h));else{a.link(h);var g=
43
- h.getAttribute("data-ajax-target");g&&(g=e("#"+g),e(h).click(function(b){b.preventDefault();g.addClass("loading");e.get(h.href,function(b){b=c.$(b).replaceAll(g);d(b);b.trigger("locoAhah")});return!1}))}});g=q=B=b=null;return c};c.$=function(b){return e(a.innerShiv?innerShiv(b,!1):b)};e.fn._html=function(b){return null!=b?(b=this.html(a.innerShiv?innerShiv(b,!1):b),d(this),b):j.html()};e.fn.macro=function(b,a){if("function"!==typeof b.run)throw Error("macro has no run function");b.run(this,a||{});
44
- return this};c.el=function(b,a){var c=k.createElement(b||"div");a&&(c.className=a);return c};c.txt=function(b){return k.createTextNode(b||"")};var g=c.plain=function(b,a){if("BR"===b.tagName)a.push("");else for(var c=-1,d=b.childNodes.length,e;++c<d;)e=b.childNodes[c],3===e.nodeType?a.push(e.nodeValue):1===e.nodeType?g(e,a):a.push("??")};return c}({},u,D));t.register("$6",function(c,a,k){var f=t.require("$2","html.js").ie()?["keyup","paste"]:["input"];c.listen=function(a,c){function b(){m[h?"show":
45
- "hide"]()}function r(){a.value!==h&&(q&&clearTimeout(q),h=a.value,s&&a.setAttribute("size",h.length||1),b(),q=setTimeout(function(){c(h)},k))}function p(){r();return!0}a=a instanceof jQuery?a[0]:a;for(var q,k=150,h=a.value,s=1===Number(a.size),m=e('<a href="#clear" tabindex="-1" class="icon clear"><span>clear</span></a>').click(function(b){a.value="";r();return!1}),n=-1,w=e(a);++n<f.length;)w.bind(f[n],p);w.after(m);b();n=w=null;return{delay:function(b){k=b},ping:r,val:function(c){if(null==c)return h;
46
- q&&clearTimeout(q);a.value=h=c;b()}}};return c}({},u,D));t.register("$4",function(c,a,e){function f(){var a,c;this.clear=function(){this.length=0;a={};c=[]};this.getTree=function(){return a};this.getData=function(){return c};this.clear()}c.create=function(){return new f};a=f.prototype;a.depth=0;a.matchall=!0;a.ignorecase=!0;a.nonword=/[\-.?!;:,_*^+=~`"'(){}<>[\]\/\\\u00a0\u1680\u180e\u2000-\u206f\u2e00-\u2e7f\u3000-\u303f]+/g;a.translit=function(a,c){function b(b){return a[b]||b}c=c||/[^a-z0-9]/g;
47
- this.trans=function(a){return a.replace(c,b)}};a.stoppers=function(a){this.stopped=function(c){return Boolean(a[c])}};a.add=function(a,c){null==c&&(c=String(a));var b=-1,e,f,q,k,h,s=this.normalize(c);e=this.getData();var m=e.length;e.push(a);for(this.length++;++b<s.length;)if(e=s[b],!this.stopped(e)){f=this.getTree();q=Math.min(e.length,this.depth)||e.length;for(k=0;k<q;k++)h=e.charAt(k),f=f[h]||(f[h]={});e=f[" "]||(f[" "]=[]);e.push(m)}return this};a.find=function(a,c){function b(a,c){var h,d,e;
48
- for(s in a)if(e=a[s]," "===s)for(h in e)m=e[h],d=n[m]||(n[m]={length:0,words:{}}),d.length+=d.words[c]?0:1,d.words[c]=1+(d.words[c]||0);else b(e,c)}var e=-1,f,q,k,h,s,m,n={},w=[],y=this.normalize(a),I=this.getData();a:for(;++e<y.length;){f=y[e];q=this.getTree();k=Math.min(f.length,this.depth)||f.length;for(h=0;h<k;h++){s=f.charAt(h);if(!q[s])continue a;q=q[s]}b(q,f)}for(m in n)this.matchall&&n[m].length<y.length||w.push(I[m]);c&&(c.query=a,c.words=y);return w};a.normalize=function(a){for(var c=-1,
49
- b={},e=[],f=this.split(a);++c<f.length;)if(a=f[c])if(this.ignorecase&&(a=a.toLowerCase()),a=this.strip(a))this.trans&&(a=this.trans(a)),b[a]||(e.push(a),b[a]=!0);return e};a.stopped=function(a){return 1===a.length};a.split=function(a){return a.split(/\s+/)};a.strip=function(a){return a.replace(this.nonword,"")};a=null;return c}({},u,D));t.register("$11",function(c,a,k){function f(a){this.url="/auto/"+a+".json?q=";this.dead={}}function d(){this.dict=t.require("$4","dict.js").create()}c.init=function(a){function b(){if("hint"!==
50
- E){var b=z.val()&&!(N&&N.val())&&null==A&&!y;ca[b?"addClass":"removeClass"]("error")}}function c(){L.show();var b=z.outerWidth(!1),a=z.outerHeight(!1),h=z.css("margin-top");h&&(h=parseInt(h),isNaN(h)||(a+=h));b-=2;L.css("top",a+"px").css("width",b+"px");y=!0}function p(){L.hide();y=!1}function q(){L.html("");p();w=0;v=A=null}function k(a){q();var l;for(l=0;l<a.length;l++){var d=l,m=a[l],g=e('<span class="label"></span>').text(m.label),v=e('<div class="auto-comp-result"></div>'),f=void 0;for(f in m)v.attr("data-"+
51
- f,m[f]);m.icon&&v.append(e("<span></span>").attr("class",m.icon));v.append(g);h(d,v)}(w=a.length)?(I&&c(),s(0)):(s(null),b())}function h(b,a){L.append(a);a.click(function(c){c.stopPropagation();s(b,a);n();return!1});return a}function s(b,a){v&&(v.removeClass("selected"),v=null);A=null;null==b?N&&N.val(""):(a||(a=L.find("div.auto-comp-result").eq(b)),a.length&&(a.addClass("selected"),A=b,v=a))}function m(b){if(w){var a=w-1;null==A?b=0<b?0:a:(b=A+b,0>b?b=a:b>a&&(b=0));return s(b)}}function n(){if(null==
52
- A)u.val(""),N&&N.val("");else{var a=L.find("div.auto-comp-result").eq(A),c=a.attr("data-value"),l=a.attr("data-label");N&&N.val(c);u.val(l);p();a=a.clone();q();h(0,a);w=1;s(0,a);b();a.trigger("locoAutocomp",[c,l,a])}}var w=0,y=!1,I=!1,l=a.form,A=null,v=null,z=e(a),H=z.attr("name"),E=z.attr("data-mode"),C=z.attr("data-provider"),N="hint"!==E&&e('<input type="hidden" value="" name="'+H+'" />').appendTo(l),ca=e('<div class="auto-comp-wrap"></div>').replaceAll(z),L=e('<div class="auto-comp-drop"></div>');
53
- C&&(C=new f(C));N&&z.attr("name","_"+H);z.attr("autocomplete","off");ca.append(z).append(L);p();z.focus(function(b){I=!0;1<w&&c()}).blur(function(a){I=!1;b()}).keydown(function(b){function a(){b.preventDefault();b.stopPropagation();return!1}switch(b.keyCode){case 27:y&&(b.stopPropagation(),p(),z.blur());break;case 40:w&&(y?m(1):c());break;case 38:y&&m(-1);break;case 13:if(y)return n(),a();if(!A&&"hint"!==E)return a()}return!0});var u=t.require("$6","LocoTextListener.js").listen(z,function(b){C&&C.fetch(b,
54
- k)});(l=z.attr("data-pre"))&&(l=e.parseJSON(l))&&l.value&&l.label?(k([l]),n()):!a.value||N&&N.val()||!C||C.fetch(a.value,function(b){k(b);n()});return{$:z,clear:q,reset:function(){q();z.val("");N&&N.val("");u.ping()},preload:function(b){w&&q();C=new d;var a,c;for(a in b)c=b[a],C.add(c)},mode:function(b){E=b}}};f.prototype.fetch=function(a,b){if(!a)return b&&b([]),this;var c,d=this.dead;for(c in d)if(0===a.indexOf(c))return b&&b([]),this;c={dataType:"json",url:this.url+encodeURIComponent(a)};t.require("$18",
55
- "http.js").ajax(c,function(c){var e=c&&c.results;e&&(b&&c.query&&c.query===a&&b(c.results),e.length||(d[a]=0));return!0});return this};d.prototype.add=function(a){var b=a.fulltext||a.label||a.value;b&&this.dict.add(a,b)};d.prototype.fetch=function(a,b){if(!a)return b&&b([]),this;var c=this.dict.find(a);b(c)};return c}({},u,D));t.register("$9",function(c,a,k){function f(b){function a(){b.value===f&&(b.value="",d.removeClass("placeheld"));return!0}function c(){""===b.value&&(b.value=f,d.addClass("placeheld"));
56
- return!0}var d=e(b);if(!d.hasClass("auto-comp")){var f=d.attr("placeholder");if(f)return d.focus(a).blur(c),c(),{kill:function(){a();d.unbind("focus",a).unbind("blur",c)}}}}var d=c.enable=function(b){function d(b,a){a.getAttribute("data-was-disabled")||(a.disabled=!1)}b.find(".button").removeClass("loading");b.find("input").each(d);b.find("select").each(d);b.find("textarea").each(d);a.attachEvent&&b.hasClass("has-placeholders")&&c.placeholders(b)},g=c.disable=function(b){function a(b,c){c.disabled?
57
- c.setAttribute("data-was-disabled","true"):c.disabled=!0}b.find(".button").addClass("loading");b.find("input").each(a);b.find("select").each(a);b.find("textarea").each(a)};c.jsonify=function(b,c,f){b instanceof jQuery||(b=e(b));b.disable||(e.fn.disable=function(){g(this);return this},e.fn.enable=function(){d(this);this.placehold&&this.placehold();return this});var k="";b.find('[type="submit"]').click(function(b){b&&b.target&&b.target.name&&(k=encodeURIComponent(b.target.name)+"="+encodeURIComponent(b.target.value));
58
- return!0});b.submit(function(h){if(h&&h.isDefaultPrevented&&h.isDefaultPrevented()||f&&!1===f(h))return!1;var d=a.tinyMCE;d&&b.find("textarea.editor").each(function(b,a){var c=d.get(a.id);c&&c.save()});var e=b.serialize();k&&(e&&(e+="&"),e+=k,k="");b.disable();var g=t.require("$18","http.js"),e={url:g.jsonLink(b.attr("action")),type:b.attr("method"),data:e};g.ajax(e,c,function(){b.enable()},b);h.preventDefault();h.stopPropagation();return!1});if(b.hasClass("autopost")){var B,h=Number(b.attr("data-autopost-delay")||
59
- 500);b.find('input[type="checkbox"]').change(function(){B&&clearTimeout(B);B=setTimeout(function(){b.submit()},h);return!0})}};c.revealify=function(b){b.find("div[data-reveal-if]").each(function(a,c){function d(b){var a;y=y||b.target;if("."===g)a=Boolean(y&&y[k]);else if("="===g){var c,h;a=e(y.form).serializeArray();for(h in a)a[h].name===m&&(c=a[h].value);a=k===c}if(a!==s)if(s=a,b)f[s?"slideDown":"slideUp"](200);else f[s?"show":"hide"]();return!0}var f=e(c),h=/^([_\w\-\[\]]+)(\.|=)(.+)$/.exec(f.attr("data-reveal-if"));
60
- if(h){var s,m=h[1],g=h[2],k=h[3],h=b[0][m];h.length||(h=[h]);var y;for(a=0;a<h.length;a++)y=h[a],d(),e(y).change(d).removeClass("jshide");h=h=y=null}});b=null};c.linkify=function(a){var c=a.getAttribute("data-icon");if(c){var d=e(a),f=e("<a> </a>");f.attr("href",a.form.action);f.attr("class",d.attr("class"));f.attr("tabindex",d.attr("tabindex"));d.attr("tabindex","-1");f.text(d.val());c&&e("<span></span>").prependTo(f).addClass(c);d.hide().after(f);f.click(function(a){d.click();return!1})}};c.placeholders=
61
- function(a){var c,d=[];a.find("input[placeholder]").each(function(a,b){"password"!==b.type&&(c=f(b))&&d.push(c)});d.length&&(a.submit(function(){for(var a in d)d[a].kill()}),a.addClass("has-placeholders"),c=i=null)};return c}({},u,D));t.register("$14",function(c,a,e){function f(a){this.reIndex([]);if(a)for(var c in a)this.add(c,a[c])}c.init=function(a){return new f(a)};a=f.prototype;a.reIndex=function(a){var c=-1;for(this.ords={};++c<a.length;)this.ords[a[c]]=c;this.keys=a;this.length=c};a.key=function(a,
62
- c){if(null==c)return this.keys[a];var b=this.keys[a],e=this.ords[c];if(c!==b){if(null!=e)throw Error("Clash with item at ["+e+"]");this.keys[a]=c;delete this.ords[b];this.ords[c]=a}return a};a.indexOf=function(a){a=this.ords[a];return null==a?-1:a};a.add=function(a,c){var b=this.ords[a];null==b&&(this.keys[this.length]=a,b=this.ords[a]=this.length++);this[b]=c;return b};a.get=function(a){return this[this.ords[a]]};a.cut=function(a,c){var b=[].splice.call(this,a,c);this.keys.splice(a,c);this.reIndex(this.keys);
63
- return b};a.each=function(a){for(var c=-1;++c<this.length;)a(this.keys[c],this[c],c);return this};a=null;return c}({},u,D));t.register("$3",function(c,a,e){function f(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","Content-Transfer-Encoding":"8bit","X-Poedit-SourceCharset":"UTF-8"}}
64
- function d(a,b){var c=a||"";b&&(c+="\x00"+b);return c}function g(){return t.require("$14","collection.js").init()}function b(a){return a.replace(/(["\\])/g,"\\$1").replace(/\n/g,"\\n")}function r(a){this.head={};this.headers(f(this.now()));this.locale(a);this.length=0;this.rows=g()}function p(a,b){this._id="";this.src=[a||""];this.msg=[b||""];this.xcmt=this.cmt=this.ref="";this.status=0}c.create=function(a){return new r(a)};var q=c.quote=function(a){if(!a)return'""';for(var c=a.split(/(?:\r\n|\n|\r)/g),
65
- e=c.length-1,d=[],f=-1,g;++f<c.length;){a=c[f];for(e&&e!==f&&(a+="\n");a&&a.charAt(77);){for(g=77;--g;)if(-1!==" \n\r.?!,;:-".indexOf(a.charAt(g))){g++;break}g||(g=77);d.push(b(a.substr(0,g)));a=a.substr(g)}a&&d.push(b(a))}d[1]&&d.unshift("");return'"'+d.join('"\n"')+'"'},B=c.wrap=function(a,b,c){if(0!==c){null==c&&(c=79);for(var d=c+1,e=a.split(/(?:\r\n|\n|\r)/g),f=[],g=-1,l;++g<e.length;){for(a=e[g];a&&a.charAt(d);){for(l=c;--l;)if(-1!==" \n\r.?!,;:-".indexOf(a.charAt(l))){l++;break}l||(l=d);f.push(a.substr(0,
66
- l));a=a.substr(l)}a&&f.push(a)}a=f}else a=a.split(/(?:\r\n|\n|\r)/g);return b+a.join("\n"+b)};a=r.prototype;a.now=function(){return(new Date).toString()};a.header=function(a,b){if(null==b)return this.headers()[a]||"";this.head[a]=b||"";return this};a.headers=function(a){var b;if(null!=a){for(b in a)this.head[b]=a[b];return this}var c=this.locale(),d=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="+(c.nplurals||"2")+
67
- "; plural="+(c.pluraleq||"n!=1"),a["X-Loco-Target-Locale"]=(c.lang||"en")+"_"+(c.region||"GB"),a["PO-Revision-Date"]=d,delete a["POT-Revision-Date"]):(a.Language="",a["Plural-Forms"]="nplurals=INTEGER; plural=EXPRESSION",a["POT-Revision-Date"]=d,a["PO-Revision-Date"]="YEAR-MO-DA HO:MI+ZONE");a["X-Generator"]="Loco - https://localise.biz/";return a};a.locale=function(a){if(null==a)return this.loc;this.loc=a||{lang:"en",region:"GB",plurals:["one","other"],pluraleg:[1,0],nplurals:2,pluraleq:"n!=1",label:"English"};
68
- this.loc.toString=function(){return this.lang+"_"+this.region};return this};a.lock=function(a){this.locale(a||!1);return this.loc};a.unlock=function(){var a=this.loc;this.loc=null;return a};a.reIndex=function(a,b){var c=this.indexOf(a),d=a.hash(),e=this.rows.indexOf(d);return e===c?c:-1!==e?(b=(b||0)+1,a.source("Error, duplicate "+String(b)+": "+a.source()),this.reIndex(a,b)):this.rows.key(c,d)};a.get=function(a,b){var c=d(a,b);return this.rows.get(c)};a.indexOf=function(a){null==a.idx&&(a.idx=this.rows.indexOf(a.hash()));
69
- return a.idx};a.del=function(a){a=this.indexOf(a);if(-1!==a){var b=this.rows.cut(a,1);if(b&&b.length)return this.length=this.rows.length,this.rows.each(function(a,b,c){b.idx=c}),a}};a.add=function(a,b){a instanceof p||(a=new p(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};a.each=function(a){this.rows.each(a);return this};a.load=function(a){for(var b=-1,c,d,e,f,g=[],l=
70
- [],A=[],v=[];++b<a.length;)if(c=a[b],null==c.parent){if(d=c.source||c.id,e=c.context,d||e)f=new p(d,c.target||""),f._id=c._id,e&&f.context(e),c.flag&&f.flag(c.flag,!0),c.comment&&f.comment(c.comment),c.notes&&f.notes(c.notes),c.refs&&f.refs(c.refs),null!==c.format&&f.format(c.format),c.message=f,f.translation()?f.fuzzy()?A.push(f):l.push(f):v.push(f)}else g.push(c);for(b=-1;++b<g.length;)try{c=g[b];d=c.source||c.id;f=a[c.parent]&&a[c.parent].message;if(!f)throw Error("parent missing for plural "+
71
- d);1===c.plural&&f.plural(d);f.translate(c.target||"",c.plural)}catch(z){}d=[v,A,l];for(b=0;3>b;b++)for(c=d[b],a=-1;++a<c.length;)try{this.add(c[a])}catch(k){}return this};a.merge=function(a){var b,c=this.rows,d=g(),e={add:[],del:[]};a=a.rows;this.rows.each(function(b,c){a.get(b)||e.del.push(c)});a.each(function(a,f){try{(b=c.get(a))?(b.ref=f.ref,b.fmt=f.fmt):(b=f,e.add.push(b)),b.idx=d.add(a,b)}catch(l){}});this.rows=d;this.length=d.length;return e};a.row=function(a){return this.rows[a]};a.toString=
72
- function(){var a,b=[],c=[],d=this.headers(),e=!this.loc;for(a in d)c.push(a+": "+d[a]);c=new p("",c.join("\n"));e&&(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(e)),b.push(""))});return b.join("\n")};a=p.prototype;a.hash=function(){return d(this.source(),this.context())};a.flag=function(a,b){var c=a===(a&this.status);if(null==b)return c;b?this.status|=a:c&&(this.status^=a);return this};a.fuzzy=function(a){return this.flag(4,
73
- a)};a.source=function(a,b){if(null==a)return this.src[0];this.src[0]=a;this.plural(b);return this};a.plural=function(a){if(null==a)return this.src[1];this.src[1]=a||"";return this};a.each=function(a){for(var b=-1;++b<this.msg.length;)a(b,this.msg[b]);return this};a.translate=function(a,b){this.msg[b||0]=a||"";return this};a.translation=function(a){return this.msg[a||0]||""};a.comment=function(a){if(null==a)return this.cmt;this.cmt=a||"";return this};a.notes=function(a){if(null==a)return this.xcmt;
74
- this.xcmt=a||"";return this};a.refs=function(a){if(null==a)return this.ref;this.ref=a||"";return this};a.format=function(a){if(null==a)return this.fmt;this.fmt=a;return this};a.context=function(a){if(null==a)return this.src[2]||"";this.src[2]=a||"";return this};a.toString=function(a){var b,c=[];this.cmt&&c.push(B(this.cmt,"# ",0));this.xcmt&&c.push(B(this.xcmt,"#. ",0));b=this.ref;this._id&&(b+=(b?" ":"")+"loco:"+this._id);b&&/\S/.test(b)&&c.push(B(b,"#: ",79));!a&&this.fuzzy()&&c.push("#, fuzzy");
75
- 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")};a.toText=function(){return this.src.join(" ")+" "+this.msg.join(" ")};a.weight=function(){var a=0;this.translation()||(a+=2);this.fuzzy()&&(a+=
76
- 1);return a};a.compare=function(a,b){var c=this.weight(),d=a.weight();if(c>d)return 1;if(c<d)return-1;if(b){c=this.hash().toLowerCase();d=a.hash().toLowerCase();if(c<d)return 1;if(c>d)return-1}return 0};a.equals=function(a){return this===a||this.source()===a.source()&&this.context()===a.context()};a=a=null;return c}({},u,D));t.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",
77
- "\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","\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",
78
- "\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","\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",
79
- "\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","\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",
80
- "\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","\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",
81
- "\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","\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",
82
- "\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","\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",
83
- "\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","\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",
84
- "\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","\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",
85
- "\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","\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",
86
- "\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","\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",
87
- "\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","\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",
88
- "\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","\u045d":"\u0438","\u04e3":"\u0438","\u04ef":"\u0443"});t.register("$23",function(c,a,e){var f=a.requestAnimationFrame,d=a.cancelAnimationFrame,g=0;if(!f||!d)for(var b in{ms:1,moz:1,webkit:1,o:1})if(f=a[b+"RequestAnimationFrame"])if(d=a[b+"CancelAnimationFrame"]||
89
- a[b+"CancelRequestAnimationFrame"])break;f&&d||(f=function(b){var c=r();timeToCall=Math.max(0,16-(c-g));nextTime=c+timeToCall;timerId=a.setTimeout(function(){b(nextTime)},timeToCall);g=nextTime;return timerId},d=function(a){clearTimeout(a)});var r=Date.now||function(){return(new Date).getTime()};c.loop=function(a,b){function c(){g=f(c,b);a(e++)}var e=0,g;c();return{stop:function(){g&&d(g);g=null}}};return c}({},u,D));t.register("$21",function(c,a,e){function f(a,c,d,e){if(b){var f=d;d=function(a){if((a.MSPOINTER_TYPE_TOUCH||
90
- "touch")===a.pointerType)return f(a)}}a.addEventListener(c,d,e);return{unbind:function(){a.removeEventListener(c,d,e)}}}function d(a){a.preventDefault();a.stopPropagation();return!1}var g,b=!!a.navigator.msPointerEnabled,r=b?"MSPointerDown":"touchstart",p=b?"MSPointerMove":"touchmove",q=b?"MSPointerUp":"touchend";c.ok=function(a){null==g&&(g="function"===typeof e.body.addEventListener);g&&a&&a(c);return g};c.ms=function(){return b};c.dragger=function(a,b){function c(b){a.addEventListener(b,f[b],!1)}
91
- function e(b){a.removeEventListener(b,f[b],!1)}var f={};f[r]=function(a){B(a,function(c,d){d.type=r;b(a,d,g)});c(p);c(q);return!0};f[q]=function(a){e(p);e(q);B(a,function(c,d){d.type=q;b(a,d,g)});return!0};f[p]=function(a){B(a,function(c,d){d.type=p;b(a,d,g)});return d(a)};c(r);var g={kill:function(){e(r);e(p);e(q);a=g=b=null}};return g};c.swiper=function(a,c,e){function f(b){a.addEventListener(b,z[b],!1)}function g(b){a.removeEventListener(b,z[b],!1)}function k(){l&&l.stop();l=null}var l,A,v,z={},
92
- H=[],E=[],C=[];z[r]=function(b){A=!1;k();var c=h();B(b,function(a,b){H[a]=c;E[a]=b.clientX;C[a]=b.clientY});v=a.scrollLeft;return!0};z[q]=function(a){B(a,function(a,b){var d=h()-H[a],e=E[a]-b.clientX,d=Math.abs(e)/d;c(d,e?0>e?-1:1:0)});v=null;return!0};z[p]=function(b){var c,e;null==v||B(b,function(a,b){c=E[a]-b.clientX;e=C[a]-b.clientY});if(e&&Math.abs(e)>Math.abs(c))return A=!0;c&&(A=!0,a.scrollLeft=Math.max(0,v+c));return d(b)};if(!b||e)f(r),f(p),f(q),b&&(a.className+=" mstouch");return{kill:function(){g(r);
93
- g(p);g(q);k()},swiped:function(){return A},ms:function(){return b},snap:function(c){b&&!e&&(a.style["-ms-scroll-snap-points-x"]="snapInterval(0px,"+c+"px)",a.style["-ms-scroll-snap-type"]="mandatory",a.style["-ms-scroll-chaining"]="none")},scroll:function(b,c,d){k();var e=a.scrollLeft,f=b>e?1:-1,g=Math[1===f?"min":"max"],v=Math.round(16*c*f);return l=t.require("$23","fps.js").loop(function(c){c&&(e=Math.max(0,g(b,e+v)),a.scrollLeft=e,b===e&&(k(),d&&d(e)))},a)}}};c.start=function(a,b){return f(a,r,
94
- b,!1)};c.move=function(a,b){return f(a,p,b,!1)};c.end=function(a,b){return f(a,q,b,!1)};var B=c.each=function(a,c){if(b)(a.MSPOINTER_TYPE_TOUCH||"touch")===a.pointerType&&c(0,a);else for(var d=-1,e=(a.originalEvent||a).changedTouches||[];++d<e.length;)c(d,e[d])},h=Date.now||function(){return(new Date).getTime()};return c}({},u,D));t.register("$15",function(c,a,k){function f(a,b){var c=[].slice.call(arguments,2);return function(d){return a.apply(b,[d].concat(c))}}function d(a,b){var c=a.id,d=c&&y[c],
95
- e=d&&d.parent();if(!d||!e)return null;var f=(c=e.dir===w)?"X":"Y",c=c?B:h,g=c(e.el),k=b["offset"+f];null==k&&(k=b["page"+f]-c(a));k&&(g+=k);return{move:function(a){e.resize(a["page"+f]-g,d);return!0}}}function g(a,b){function c(){e(k).unbind("mousemove",f);u=null;return!0}function f(a){u?u.move(a):c();return!0}if(u)return!0;u=d(a.target,a);if(!u)return!0;e(k).one("mouseup",c).mousemove(f);return q(a)}function b(a,b){var c=b.type;"touchmove"===c?u&&u.move(b):"touchstart"===c?u=d(a.target,b):"touchend"===
96
- c&&u&&(u=null)}function r(a){var b=e(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 p(a){var b=a.keyCode;return 40===b?(this.nextRow(1),q(a)):38===b?(this.nextRow(-1),q(a)):!0}function q(a){a.stopPropagation();a.preventDefault();return!1}function B(a,b){b||(b=k.body);for(var c=a.offsetLeft||0;(a=a.offsetParent)&&a!==b;)c+=a.offsetLeft||0;return c}function h(a,b){b||(b=k.body);for(var c=a.offsetTop||
97
- 0;(a=a.offsetParent)&&a!==b;)c+=a.offsetTop||0;return c}function s(a){function b(){var c=a.innerHTML;c!==d&&(d=c,e(a).trigger("wgChange",[c]));return!0}var c=n.ie()?["keyup","paste"]:["input"],d=a.innerHTML,f=d;return e(a).attr("contenteditable","true").focus(function(){for(var d=e(a),f=-1;++f<c.length;)d.bind(c[f],b);return!0}).blur(function(){for(var g=e(a),h=-1;++h<c.length;)g.unbind(c[h]);b();f!==d&&e(a).trigger("wgChanged",[a]);return!0})}function m(a){this.el=a;this.id=a.id;this.pos=this.index=
98
- 0;this.css=["wg-cell"];y[a.id]=this;this.clear()}var n=t.require("$2","html.js"),w=1,y={},u=!1;c.init=function(a){var c=new m(a);c.restyle().redraw();c.root=!0;t.require("$21","touch.js").ok(function(c){c.dragger(a,b)});e(a).mousedown(g);return c};a=m.prototype;a.each=function(a){for(var b=-1;++b<this.length;)a(b,this.cells[b]);return this};a.bind=function(){return this.$("bind",arguments)};a.unbind=function(){return this.$("unbind",arguments)};a.$=function(a,b){e.fn[a].apply(e(this.el),b);return this};
99
- a.parent=function(){return this.pid&&y[this.pid]};a.splitx=function(){return this._split(w,arguments)};a.splity=function(){return this._split(2,arguments)};a._split=function(a,b){this.dir&&this.dir!==a&&this.clear();this.dir=a;var c=-1,d,e=this.length,f=b.length,g=1/(e+f),h=0;if(e)throw Error("Todo: implement re-split");for(;++c<f;){d=n.el();this.body.appendChild(d);for(var k=d,r=b[c],p=r,q=1;y[r];)r=p+"-"+ ++q;k.id=r;d=new m(d);d.index=e+c;d.pid=this.id;d.pos=h;h+=g;this.cells.push(d);this.length++}this.restyle().redraw();
100
- return this.cells};a.clear=function(){for(var a=-1,b;++a<this.length;)b=this.cells[a].clear(),delete y[b.id];this.cells=[];this.length=0;this.nav&&this.el.removeChild(this.nav);this.nav=null;this.body&&(this.field&&n.ie()&&(e(this.body).triggerHandler("blur"),this.field=null),this.table&&(this.table=null),this.el.removeChild(this.body));this.body=this.el.appendChild(n.el("","wg-body"));return this};a.resize=function(a,b){if(!b&&(b=this.cells[1],!b))return;var c=b.index,d=e(this.el)[this.dir===w?"width":
101
- "height"](),f=this.cells[c+1],c=this.cells[c-1];pad=(b.body||b.el.firstChild).offsetTop||0;max=(f?f.pos*d:d)-pad;min=c?c.pos*d:0;b.pos=Math.min(max,Math.max(min,a))/d;(d=this.parent())&&d.table?d.redraw():this.redraw();return this};a.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};a.restyle=function(){var a=this.css.slice();this.root&&a.push("wg-root");0===this.index?a.push("first"):a.push("not-first");
102
- this.dir&&(a.push("wg-split"),2===this.dir?a.push("wg-split-y"):a.push("wg-split-x"));this.t&&a.push("has-title");this.nav&&a.push("has-nav");this.table?a.push("is-table"):null!=this.field&&(a.push("is-field"),this.field||a.push("readonly"));this.el.className=a.join(" ");return this};a.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,d=1,f=2===this.dir?"height":"width";0<=--a;)b=this.cells[a],
103
- this.nav?c=1:(b.fixed&&(b.pos=b.fixed/e(this.el)[f]()),c=d-b.pos,d=b.pos),b.el.style[f]=String(100*c)+"%",b.restyle().redraw();this.table&&this.redrawTable();return this};a.redrawTable=function(){var a=-1,b=this.cells[0],c=this.cells[1],a=e(c.body).width(),d=c.body.firstChild,c=d.childNodes;d.style.width=a+"px";for(var a=b.length,f=1;0<=--a;)d=b.cells[a],c[a].style.width=String(100*(f-d.pos))+"%",f=d.pos;return!0};a.contents=function(a){if(null===a)return this.body.innerHTML;this.cells.length?this.clear():
104
- this.body&&this.el.removeChild(this.body);this.body=this.el.appendChild(n.el("","wg-content"));"string"===typeof a?e(this.body)._html(a):this.append(a);this.redraw();return this};a.textarea=function(a,b){var c=n.txt(a);this.contents(c);(this.field=b)&&s(this.body);this.restyle();return this};a.rtl=function(){this.bodyAtt("dir","RTL");return this};a.ltr=function(){this.bodyAtt("dir","LTR");return this};a.bodyAtt=function(a,b){if(this.body)return null!=b&&this.body.setAttribute(a,b),this.body.getAttribute(a)};
105
- a.append=function(a){a.nodeType?n.init(this.body.appendChild(a)):n.init(e(a).appendTo(this.body));return this};a.prepend=function(a){var b=this.body;if(a.nodeType){var c=b.firstChild;n.init(c?b.insertBefore(a,c):b.appendChild(a))}else n.init(e(a).prependTo(b));return this};a.header=function(a,b){if(!arguments.length)return this.el.getElementsByTagName("h2")[0];var c=["wg-title"];b&&c.push(b);this.t=n.txt(a||"");this.el.insertBefore(n.el("h2",c.join(" ")),this.body).appendChild(this.t);this.restyle().redraw();
106
- return this};a.title=function(a){this.t?this.t.nodeValue=a||"":this.header(a);return this.t};a.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 g=-1,k,q=n.el("","wg-cols"),m=thead._split(w,c);++g<m.length;)k=m[g],k.header(d[g]),q.appendChild(n.el("","wg-col "+(0===g?"":"not-")+"first"));tbody.contents(q);a.eachRow(function(a,
107
- b,c){tbody._addRow(b,c)});e(tbody.el).mousedown(r);this.lock();this.table=a;this.restyle().redraw();k=thead.cells[0];tbody.fixed=h(k.body,k.el)||20;this.resize(tbody.fixed);e(q).attr("tabindex","-1").keydown(f(p,this));return q};a.lock=function(){this.body.className+=" locked";return this};a.addRow=function(a,b){this.table&&this.cells[1]&&this.cells[1]._addRow(a,b);return this};a._addRow=function(a,b){var c,d=this.body.firstChild.childNodes,e=d.length,f=d[0].childNodes.length,g=-1;for(b=b&&"wg-tr "+
108
- b||"wg-tr";++g<e;)c=d[g].appendChild(n.el("",b)),c.setAttribute("data-row",f),c=c.appendChild(n.el("","wg-td")),a[g]&&/\S/.test(a[g])?c.appendChild(n.txt(a[g])):c.innerHTML="&nbsp;";return d};a.tr=function(a){for(var b=-1,c,d=[],e=this.cells[1].body.firstChild.childNodes;++b<e.length;)(c=e[b].childNodes[a])&&d.push(c);return d};a.td=function(a,b){try{return this.cells[1].body.firstChild.childNodes[b].childNodes[a].firstChild}catch(c){return null}};a.nextRow=function(a,b){for(var c=this.trow;!1===
109
- this.selectRow(c+=a,b););};a.selectRow=function(a,b){var c=this.table&&this.table.row(a);if(!c)return null;var d=this.tr(a);if(d.length){var d=e(d),f=this.cells[1],g=f.body,h=e(g.firstChild);if(h.hasClass("filtered")&&!d.hasClass("filtered"))return!1;null!==this.trow&&e(this.tr(this.trow)).removeClass("selected");d.addClass("selected");this.trow=a;if(!b){var k=g.scrollTop;h.focus();k&&(g.scrollTop=k)}f.scrollTo(d[0],!0);h.trigger("wgRowSelect",[a,c])}return this};a.deselectRow=function(){if(this.table){var a=
110
- e(this.cells[1].body.firstChild),b=this.trow;a.find("div.selected").removeClass("selected");this.row=null;a.trigger("wgRowDeselect",[b])}};a.filterRows=function(a){var b=-1,c;c=e(this.cells[1].body.firstChild);if(!a)return c.removeClass("filtered"),this;for(c.addClass("filtered").find("div.filtered").removeClass("filtered");++b<a.length;)c=a[b],c=this.tr(c),c.length&&e(c).addClass("filtered");return this};a.scrollTo=function(a,b){var c;c=this.body.scrollTop;var d=h(a,this.body);if(c>d)c=d;else{var f=
111
- this.body.clientHeight,d=d+e(a).outerHeight();if(f+c<d)c=d-f;else return}b?this.body.scrollTop=c:e(this.body).stop(!0).animate({scrollTop:c},250)};a.navigize=function(a){function b(a,c){d=a.show();f=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(n.el("nav","wg-tabs"),c.body);var d,f,g=e(c.nav).click(function(a){var g=e(a.target),h=g.data("tab");if(h){var k=f;d&&d.hide();k&&k.removeClass("active");b(h,g).children().focus();
112
- c.redraw();return q(a)}});c.each(function(c,f){f.pos=0;var h=e(f.el).data("index",c),k=e('<a href="#'+f.id+'"></a>').data("tab",h).text(a[c]).appendTo(g);d?h&&h.hide():b(h,k)});c.lock();c.restyle().redraw();g=null;return c};a=null;return c}({},u,D));t.register("$7",function(c,a,k){function f(a){var c=[],b=k.createElement("p");b.innerHTML=a;t.require("$2","html.js").plain(b,c);return c.join("\n")}c.init=function(c){function g(){var a=l.length,b=0,c=0,d=0;l.each(function(a,e){e.translation()?e.fuzzy()?
113
- d++:b++:c++});return{t:a,p:String(b?Math.round(100*(b/a)):0)+"%",f:d,u:c}}function b(){A.clear();l.each(function(a,b,c){A.add(c,b.toText())});v="";z=l.length}function k(a,b){var c,d={};if(v===a)return z||0;if(!l.length)return 0;if(a){if(v&&!z&&0===a.indexOf(v))return 0;c=A.find(a,d);d.words.length||(a="")}v=a;z=c?c.length:l.length;J.filterRows(c);d=C?l.indexOf(C):-1;if(-1===d||c&&-1===c.indexOf(d))c?c.length?J.selectRow(c[0],!0):J.deselectRow():J.selectRow(0,!0);b||n("poFilter",[v,z]);return z}function p(a){if(!a)return["",
114
- ""];var b=[a.source()||"",a.translation()||""];(a=a.context())&&(b[0]+=" [ "+a+" ]");return b}function q(a){if(a=a||C){var b=l.indexOf(a),b=J.tr(b),c=b[0].className.replace(/\s*po-[a-z]+/g,""),c=c+(" "+h(a)+" po-unsaved");e(b).attr("class",c);n("poUnsaved",[++G])}}function u(a,b){b=b||C;if(!b)return null;var c=b.fuzzy();null!=a&&c!=a&&(b.fuzzy(a),n("poFuzzy",[b,a]),n(F,[b]),q(b));return c}function h(a){var b=[];a&&(a.fuzzy()&&b.push("po-fuzzy"),a.translation()||b.push("po-empty"),a.comment()&&b.push("po-comment"));
115
- return b.join(" ")}function s(a,b){var c=p(a)[b||0],d=l.indexOf(a),d=J.td(d,b);c&&/\S/.test(c)?e(d).text(c.replace("\n"," ")):e(d).html("&nbsp;")}function m(a){a!==H&&(E=(H=a)?l.lock(E):l.unlock()||E,n("poLock",[a,E]),C&&D(C))}function n(a,b){return e(c).trigger(a,b||[])}function w(){if(l&&l.row){v&&(v="",z=l.length,n("poFilter",[v,z]));var a;J.table&&(a=L?L.parentNode.scrollTop:0,J.clear());L=J.tabulate(K);a&&(L.parentNode.scrollTop=a);n("poLoad");(a=l.locale())?(E=a,m(!0)):m(!1);return!!l.length}J.clear().header("Error").contents("Invalid PO")}
116
- function y(){O.unbind().clear();P.unbind().clear();Q.unbind();C&&(n("poDeselected",[C]),C=null)}function D(a){function c(){var d=E&&E.lang&&"en"!==E.lang&&E.label;P.title(d?d+" translation:":"Translation:");if(m){var e=[],k=E.plurals||["Single","Other"],l=t.require("$14","collection.js").init();for(a.each(function(a,b){e.push(k[a]||"Form "+a);l.add("plural-"+a,b)});(d=e.length)<E.nplurals;)e.push(k[d]||"Form "+l.length),l.add("plural-"+d,"");T=P.splitx.apply(P,l.keys);P.each(function(a,b){b.textarea(l[a],
117
- h)});P.navigize(e).bind("wgTabSelect",function(a,b){g=b})}else P.textarea(a.translation(),h);P.bind("wgChange",function(b,c){var d=f(c);a.translate(d,g);0===g&&s(a,1);a.fuzzy()?u(!1,a):q(a)}).bind("wgChanged",function(c){A&&b();n(F,[a])})}function d(){P.title("Context:");P.textarea(a.context(),!0);P.bind("wgChange",function(b,c){var d=f(c);a.context(d);a.source();s(a,0);q(a)}).bind("wgChanged",function(){l.reIndex(a);A&&b();n(F,[a])})}y();C=a;Q.textarea(a.comment(),!0).bind("wgChange",function(b,
118
- c){var d=f(c);a.comment(d);n("poComment",[a,d]);q(a)});var g=0,h=H,k=!H,r=a.source()||"",m=a.plural()||"",p=a.notes();(function(){var c,d=O;m?(c=O.splity(O.id+"-singular",O.id+"-plural"),d=c[0],c=c[1],d.header("Single:").textarea(r,k),c.header("Plural:").textarea(m,k),O.lock()):O.textarea(r,k);O.title("Source text:");p&&d.prepend(e('<p class="notes"></p>').text(p));k&&O.bind("wgChange",function(b,c){var d=f(c);O.id+"-plural"===b.target.parentNode.id?a.plural(d):(a.source(d),s(a,0));q(a)}).bind("wgChanged",
119
- function(c){O.id+"-plural"===c.target.parentNode.id||l.reIndex(a);A&&b();n(F,[a])})})();h?c():d();n("poSelected",[a]);data=null}var l,A,v,z,H,E,C,G=0,F="poUpdate",L,K={row:function(a){return p(l.row(a))},eachCol:function(a){a(0,"Source text");a(1,"Translation")},eachRow:function(a){var b=0;l.each(function(c,d){a(b++,p(d),h(d))})}},M=t.require("$15","LocoWinGrid.js").init(c),T=M.splity("po-list","po-edit"),J=T[0],R=T[1],T=R.splitx("po-trans","po-comment"),S=T[0],Q=T[1].header("Comments:"),T=S.splity("po-source",
120
- "po-target"),O=T[0].header("Source text:"),P=T[1].header("Translation:");M.distribute(0.34);R.distribute(0.8);e(a).resize(function(){M.redraw(!0);return!0});J.bind("wgRowSelect",function(a,b,c){a=l.row(b);D(a);return!0}).bind("wgRowDeselect",function(){y();Q.textarea("",!1);O.textarea("",!1).title("Source text not loaded:");P.textarea("",!1).title("Translation not loaded:");n("poSelected",[null]);return!0});return{bind:function(a,b){return e(c).bind(a,b)},load:function(a){l=a;A&&b();w()&&J.selectRow(0)},
121
- save:function(a){if(G||a)e(L).find("div.po-unsaved").removeClass("po-unsaved"),n("poSave");G=0;return l},fuzzy:function(a){return u(a)},del:function(a,c){var d=arguments.length?l.get(a,c):C;if(d){var e=v,f=l.del(d);null!=f&&(q(d),n("poDel",[d]),n(F,[d]),w(),A&&b(),C&&C.equals(d)&&y(),l.length&&(e&&k(e),C||(f=Math.min(f,l.length-1),J.selectRow(f))))}},add:function(a,b){var c,d=l.get(a,b);d?c=l.indexOf(d):(c=l.length,d=l.add(a,b),J.addRow(K.row(c),h(d)),q(d),A&&A.add(l.indexOf(d),d.toText()),n("poAdd",
122
- [d]),n(F,[d]));v&&k("");J.selectRow(c);return d},lock:function(){m(!0)},unlock:function(){m(!1)},locked:function(){return Boolean(H)},filter:function(a){return A&&l&&l.length&&k(a,!0)},searchable:function(a){a&&(A=a,l&&b());return A&&!0},stats:function(){return g()}}};return c}({},u,D));t.require("$1","array.js");t.require("$2","html.js");W=u.loco||{};var ba=u.ajaxurl||"/wp-admin/admin-ajax.php",V=W.conf||{},U=V.locale,M=t.require("$3","po.js").create(U),K={},Q=D.getElementById("loco-poedit-inner"),
123
- F=W.t||function(c){return c};e(u).resize(function(){function c(){var c;c=Q;for(var d=c.offsetTop||0;(c=c.offsetParent)&&void 0!==c;)d+=c.offsetTop||0;c=d;d=e(u).innerHeight();c=Math.max(k,d-c-a);Q.style.height=String(c)+"px";return!0}var a=20,k=parseInt(e(Q).css("min-height")||0);c();return c}());K.save=function(c){function a(){c.disabled=!1}a();G.bind("poUnsaved",function(){e(c).addClass("button-primary loco-flagged")}).bind("poSave",function(){e(c).removeClass("button-primary loco-flagged")});e(c.form).submit(function(k){var f=
124
- k.target;k.target.po.value=M.toString();c.disabled=!0;aa(f,function(c){a();e("#loco-po-modified").text(c.modified);G.save(!0);var f=F("PO file saved"),b=c.filename;c=c.compiled;null!=c&&(/\D/.test(c)?X(c,F("Error"),"error"):(f+=" "+F("and MO file compiled"),b=b.replace(/\.po$/i,".mo")));$(f+" - "+b)},a);return S(k)});return!0};K.download_po=K.download_mo=function(c){c.disabled=!1;c.form.setAttribute("action",ba);e(c).click(function(a){c.form.po.value=M.toString();e(Q).trigger("poSave");return!0});
125
- return!0};K.add=!U&&function(c){c.disabled=!1;e(c).click(function(a){var c=1,e;for(e="New message";M.get(e);)c=/(\d+)/.exec(e)?Math.max(c,RegExp.$1):c,e="New message "+ ++c;G.add(e);return S(a)});return!0};K.del=!U&&function(c){c.disabled=!1;e(c).click(function(a){G.del();return S(a)});return!0};K.fuzzy=U&&function(c){function a(a){c.disabled=null==a;e(c)[a?"addClass":"removeClass"]("loco-inverted")}G.bind("poSelected",function(c,e){a(e&&G.locked()?e.fuzzy():null)}).bind("poFuzzy",function(c,e,d){a(G.locked()?
126
- d:null)});e(c).click(function(a){var c=!G.fuzzy();G.fuzzy(c);return S(a)});return!0};K.sync=function(c){function a(){c.disabled=!1}a();G.bind("poUnsaved",function(){c.disabled=!0}).bind("poSave",function(){a()});e(c.form).submit(function(k){c.disabled=!0;aa(k.target,function(c){a();var d=t.require("$3","po.js").create(void 0);d.load(c.exp);var g=[],d=M.merge(d),b=d.add.length,k=d.del.length;G.load(M);if(b||k){g.push(c.pot?R(F("Merged from %s"),c.pot):F("Merged from source code"));b&&g.push(R(F("1 new string added",
127
- "%s new strings added",b),b));k&&g.push(R(F("1 obsolete string removed","%s obsolete strings removed",k),k));e(Q).trigger("poUnsaved",[]);if(u.console&&console.log){for(b=-1;++b<d.add.length;)console.log(" + "+d.add[b].source());for(b=-1;++b<d.del.length;)console.log(" - "+d.del[b].source())}Y()}else g.push(c.pot?R(F("Already up to date with %s"),c.pot):F("Already up to date with source code"));M.headers(c.headers||{});$(g.join(". "));e(Q).trigger("poMerge",[c])},a);return S(k)});return!0};K.revert=
128
- function(c){G.bind("poUnsaved",function(){c.disabled=!1}).bind("poSave",function(){c.disabled=!0});e(c).click(function(a){location.reload();return S(a)});return!0};K.help=function(){return!0};Q.innerHTML="";var G=t.require("$7","poedit.js").init(Q);e("#loco-nav").find("button").each(function(c,a){var k=a.getAttribute("data-loco");K[k]&&K[k](a)||e(a).hide()});K=null;(function(c){e(c.form).submit(function(a){return S(a)});var a=t.require("$4","dict.js").create();a.depth=10;a.translit(t.require("$5",
129
- "flatten.json"));G.searchable(a);c.disabled=!1;c.value="";var k=t.require("$6","LocoTextListener.js").listen(c,function(a){G.filter(a)});G.bind("poFilter",function(a,c){k.val(c)}).bind("poMerge",function(a,c){var e=k.val();e&&G.filter(e)});c=a=null})(D.getElementById("loco-search"));G.bind("poUnsaved",function(){u.onbeforeunload=function(){return F("Your changes will be lost if you continue without saving")}}).bind("poSave",function(){u.onbeforeunload=null}).bind("poUpdate",Y);U?M.load(V.po||{}):
130
- M.load(V.pot||{});M.headers(V.headers);G.load(M);Y();e("#wpbody-content").find("div.loco-message").each(function(c,a){Z(a,!0)})})(window,document,window.jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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="&nbsp;";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("&nbsp;")};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(a,c,b){a=c.getElementById("loco-msginit");var d=a["custom-locale"];b(a["common-locale"]).change(function(){d.value=b(this).val();return!0})}(window,document,window.jQuery);
 
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.js conversion
4
  * Release: Working copy
5
  * Locale: de_DE, German
6
- * Exported at: Tue, 29 Jul 2014 09:55:03 +0100
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.js conversion
4
  * Release: Working copy
5
  * Locale: id_ID, Indonesian
6
- * Exported at: Tue, 29 Jul 2014 09:55:03 +0100
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.js conversion
4
  * Release: Working copy
5
  * Locale: it_IT, Italian
6
- * Exported at: Tue, 29 Jul 2014 09:55:03 +0100
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.js conversion
4
  * Release: Working copy
5
  * Locale: nl_BE, Dutch (Belgium)
6
- * Exported at: Tue, 29 Jul 2014 09:55:03 +0100
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.js conversion
4
  * Release: Working copy
5
  * Locale: nl_NL, Dutch
6
- * Exported at: Tue, 29 Jul 2014 09:55:03 +0100
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.js conversion
4
  * Release: Working copy
5
  * Locale: pl_PL, Polish
6
- * Exported at: Wed, 06 Aug 2014 18:03:07 +0100
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.js conversion
4
  * Release: Working copy
5
  * Locale: ru_RU, Russian
6
- * Exported at: Tue, 29 Jul 2014 09:55:04 +0100
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.js conversion
4
  * Release: Working copy
5
  * Locale: sv_SE, Swedish
6
- * Exported at: Tue, 29 Jul 2014 09:55:04 +0100
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.js conversion
4
  * Release: Working copy
5
  * Locale: tr_TR, Turkish
6
- * Exported at: Tue, 29 Jul 2014 09:55:04 +0100
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.0
6
- Stable tag: 1.4.7
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.4.8 =
 
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.4.7 =
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
- <h3 class="title">
17
  <?php Loco::h( sprintf( Loco::__('File system permissions for %s'), $name ) )?>
18
- </h3><?php
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="5" size="5" pattern="^[a-zA-Z]{2}([\-_][a-zA-Z]{2})?$" name="custom-locale" for="f-loco-locale" placeholder="xx_XX" />
 
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
+ &ndash;
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