qTranslate X - Version 3.4.6.8

Version Description

Download this release

Release Info

Developer johnclause
Plugin Icon wp plugin qTranslate X
Version 3.4.6.8
Comparing to
See all releases

Code changes from version 3.4.6.7 to 3.4.6.8

admin/qtx_admin.php CHANGED
@@ -777,7 +777,7 @@ function qtranxf_admin_notices_config() {
777
  * A term name containing '&' is stored in database with '&' instead of '&',
778
  * but search in get_terms is done on raw '&' coming from $_POST variable.
779
  */
780
- function qtranxf_get_terms_args($args) {
781
  if(!empty($args['name'])){
782
  $p = 0;
783
  while(($p = strpos($args['name'],'&',$p)) !== false){
@@ -789,10 +789,33 @@ function qtranxf_get_terms_args($args) {
789
  $p += 4;
790
  }
791
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
792
  }
793
  return $args;
794
  }
795
- add_filter('get_terms_args', 'qtranxf_get_terms_args');
796
  //apply_filters( 'get_terms_args', $args, $taxonomies );
797
 
798
  /**
777
  * A term name containing '&' is stored in database with '&' instead of '&',
778
  * but search in get_terms is done on raw '&' coming from $_POST variable.
779
  */
780
+ function qtranxf_get_terms_args($args, $taxonomies=null) {
781
  if(!empty($args['name'])){
782
  $p = 0;
783
  while(($p = strpos($args['name'],'&',$p)) !== false){
789
  $p += 4;
790
  }
791
  }
792
+ global $q_config;
793
+ $lang = $q_config['language'];
794
+ if($lang != $q_config['default_language']){
795
+ $args['name'] = qtranxf_find_term($lang, $args['name']);
796
+ }
797
+ }
798
+ if(!empty($args['name__like'])){
799
+ global $q_config;
800
+ $lang = $q_config['language'];
801
+ if($lang != $q_config['default_language']){
802
+ $s = $args['name__like'];
803
+ foreach($q_config['term_name'] as $nm => $ts){
804
+ if(empty($ts[$lang])) continue;
805
+ $t = $ts[$lang];
806
+ if(function_exists('mb_stripos'))
807
+ $p = mb_stripos($t,$s);
808
+ else
809
+ $p = stripos($t,$s);
810
+ if($p === false) continue;
811
+ $args['name__like'] = $nm;
812
+ break;
813
+ }
814
+ }
815
  }
816
  return $args;
817
  }
818
+ add_filter('get_terms_args', 'qtranxf_get_terms_args', 5, 2);
819
  //apply_filters( 'get_terms_args', $args, $taxonomies );
820
 
821
  /**
admin/qtx_admin_utils.php CHANGED
@@ -351,6 +351,46 @@ function qtranxf_get_term_joined($obj,$taxonomy=null) {
351
  return $obj;
352
  }
353
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
354
  function qtranxf_get_terms_joined($terms, $taxonomy=null, $args=null) {
355
  global $q_config;
356
  if(is_array($terms)){
@@ -382,6 +422,19 @@ function qtranxf_useAdminTermLibJoin($obj, $taxonomies=null, $args=null) {
382
  add_filter('get_term', 'qtranxf_useAdminTermLibJoin', 5, 2);
383
  add_filter('get_terms', 'qtranxf_useAdminTermLibJoin', 5, 3);
384
 
 
 
 
 
 
 
 
 
 
 
 
 
 
385
  //does someone use it?
386
  function qtranxf_useAdminTermLib($obj) {
387
  //qtranxf_dbg_echo('qtranxf_useAdminTermLib: $obj: ',$obj,true);
351
  return $obj;
352
  }
353
 
354
+ /**
355
+ * @since 3.4.6.8
356
+ * @return string default language name of term $nm in langulage $lang
357
+ * @param string $lang two-letter language code to search for $nm
358
+ * @param string $nm name of term in language $lang
359
+ * @param string $taxonomy
360
+ */
361
+ function qtranxf_find_term($lang, $term, $taxonomy=null) {
362
+ global $q_config;
363
+ if($lang != $q_config['default_language']){
364
+ foreach($q_config['term_name'] as $nm => $ts){
365
+ if(empty($ts[$lang])) continue;
366
+ if( $ts[$lang] == $term ) return $nm;
367
+ }
368
+ }
369
+ return $term;
370
+ }
371
+
372
+ /*
373
+ * @since 3.4.6.8
374
+ * @return string default language name of term $nm in langulage $lang
375
+ * @param string $lang two-letter language code to search for $nm
376
+ * @param string $nm name of term in language $lang
377
+ * @param string $taxonomy
378
+ *
379
+ function qtranxf_find_term_like($lang, $s, $taxonomy=null) {
380
+ global $q_config;
381
+ if($lang != $q_config['default_language']){
382
+ foreach($q_config['term_name'] as $nm => $ts){
383
+ if(empty($ts[$lang])) continue;
384
+ if(function_exists('mb_stripos'))
385
+ $p = stripos($ts[$lang],$s);
386
+ else
387
+ $p = stripos($ts[$lang],$s);
388
+ if( $p !== false) return $nm;
389
+ }
390
+ }
391
+ return $s;
392
+ } */
393
+
394
  function qtranxf_get_terms_joined($terms, $taxonomy=null, $args=null) {
395
  global $q_config;
396
  if(is_array($terms)){
422
  add_filter('get_term', 'qtranxf_useAdminTermLibJoin', 5, 2);
423
  add_filter('get_terms', 'qtranxf_useAdminTermLibJoin', 5, 3);
424
 
425
+ /*
426
+ * @since 3.4.6.8
427
+ */
428
+ function qtranxf_admin_term_name($value, $term_id, $taxonomy = null, $context = null){
429
+ global $pagenow;
430
+ if( !empty($context) && $pagenow == 'edit.php' )
431
+ switch($context){
432
+ case 'display': return qtranxf_useCurrentLanguageIfNotFoundUseDefaultLanguage($value);
433
+ }
434
+ return $value;
435
+ }
436
+ add_filter('term_name', 'qtranxf_admin_term_name', 5, 4);//used in function sanitize_term_field
437
+
438
  //does someone use it?
439
  function qtranxf_useAdminTermLib($obj) {
440
  //qtranxf_dbg_echo('qtranxf_useAdminTermLib: $obj: ',$obj,true);
inc/qtx_dbg.php CHANGED
@@ -5,7 +5,7 @@ if(WP_DEBUG){
5
  if(!function_exists('qtranxf_dbg_log')){
6
  function qtranxf_dbg_log($msg,$var='novar',$bt=false,$exit=false){
7
  global $pagenow, $wp_current_filter;
8
- if(isset($_SERVER['REQUEST_TIME_FLOAT'])) $h = $_SERVER['REQUEST_TIME_FLOAT'];
9
  if(!empty($pagenow)) $h = $h.'('.$pagenow.')';
10
  if(!empty($wp_current_filter)){
11
  $cf = end($wp_current_filter);
5
  if(!function_exists('qtranxf_dbg_log')){
6
  function qtranxf_dbg_log($msg,$var='novar',$bt=false,$exit=false){
7
  global $pagenow, $wp_current_filter;
8
+ $h = isset($_SERVER['REQUEST_TIME_FLOAT']) ? $_SERVER['REQUEST_TIME_FLOAT'] : '';
9
  if(!empty($pagenow)) $h = $h.'('.$pagenow.')';
10
  if(!empty($wp_current_filter)){
11
  $cf = end($wp_current_filter);
qtranslate.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: qTranslate-X
4
  Plugin URI: http://wordpress.org/plugins/qtranslate-x/
5
  Description: Adds user-friendly and database-friendly multilingual content support.
6
- Version: 3.4.6.7
7
  Author: qTranslate Team
8
  Author URI: http://qtranslatexteam.wordpress.com/about
9
  Tags: multilingual, multi, language, admin, tinymce, Polyglot, bilingual, widget, switcher, professional, human, translation, service, qTranslate, zTranslate, mqTranslate, qTranslate Plus, WPML
@@ -62,6 +62,7 @@ GitHub Branch: master
62
  'gl' by Andrés Bott
63
  'it' by Lorenzo De Tomasi
64
  'ja' by Brian Parker
 
65
  'nl' by RobV
66
  'pt'(pt_PT) by netolazaro, Pedro Mendonça
67
  'pb'(pt_BR) by Pedro Mendonça
@@ -121,7 +122,7 @@ if ( ! function_exists( 'add_filter' ) ) {
121
  * Designed as interface for other plugin integration. The documentation is available at
122
  * https://qtranslatexteam.wordpress.com/integration/
123
  */
124
- define('QTX_VERSION','3.4.6.7');
125
 
126
  if ( ! defined( 'QTRANSLATE_FILE' ) ) {
127
  define( 'QTRANSLATE_FILE', __FILE__ );
3
  Plugin Name: qTranslate-X
4
  Plugin URI: http://wordpress.org/plugins/qtranslate-x/
5
  Description: Adds user-friendly and database-friendly multilingual content support.
6
+ Version: 3.4.6.8
7
  Author: qTranslate Team
8
  Author URI: http://qtranslatexteam.wordpress.com/about
9
  Tags: multilingual, multi, language, admin, tinymce, Polyglot, bilingual, widget, switcher, professional, human, translation, service, qTranslate, zTranslate, mqTranslate, qTranslate Plus, WPML
62
  'gl' by Andrés Bott
63
  'it' by Lorenzo De Tomasi
64
  'ja' by Brian Parker
65
+ 'lt' by Vytas M.
66
  'nl' by RobV
67
  'pt'(pt_PT) by netolazaro, Pedro Mendonça
68
  'pb'(pt_BR) by Pedro Mendonça
122
  * Designed as interface for other plugin integration. The documentation is available at
123
  * https://qtranslatexteam.wordpress.com/integration/
124
  */
125
+ define('QTX_VERSION','3.4.6.8');
126
 
127
  if ( ! defined( 'QTRANSLATE_FILE' ) ) {
128
  define( 'QTRANSLATE_FILE', __FILE__ );
qtranslate_core.php CHANGED
@@ -20,11 +20,15 @@ function qtranxf_init_language() {
20
 
21
  $url_info = &$q_config['url_info'];
22
  $url_info['cookie_enabled'] = isset($_COOKIE[QTX_COOKIE_NAME_FRONT]) || isset($_COOKIE[QTX_COOKIE_NAME_ADMIN]);
 
 
 
 
23
 
24
 
25
  if(WP_DEBUG){
26
  $url_info['pagenow'] = $pagenow;
27
- $url_info['REQUEST_METHOD'] = $_SERVER['REQUEST_METHOD'];
28
  if(defined('WP_ADMIN')&&WP_ADMIN) $url_info['WP_ADMIN'] = true;
29
  if(defined('DOING_AJAX')) $url_info['DOING_AJAX_POST'] = $_POST;
30
  if(defined('DOING_CRON')) $url_info['DOING_CRON_POST'] = $_POST;
@@ -32,7 +36,7 @@ function qtranxf_init_language() {
32
 
33
  //fill $url_info the same way as _parseURL does
34
  $url_info['scheme'] = is_ssl() ? 'https' : 'http';
35
- $url_info['host'] = $_SERVER['HTTP_HOST'];
36
 
37
  if(empty($_SERVER['REQUEST_URI'])){
38
  $url_info['path'] = '';
@@ -63,9 +67,8 @@ function qtranxf_init_language() {
63
 
64
  //qtranxf_dbg_log('qtranxf_init_language: SERVER: ',$_SERVER);
65
  $url_info['language'] = qtranxf_detect_language($url_info);
66
- //qtranxf_dbg_log('qtranxf_init_language: detected: url_info: ',$url_info);
67
-
68
  $q_config['language'] = apply_filters('qtranslate_language', $url_info['language'], $url_info);
 
69
 
70
  if( $q_config['url_info']['doing_front_end'] && qtranxf_can_redirect() ){
71
  $lang = $q_config['language'];
@@ -76,10 +79,11 @@ function qtranxf_init_language() {
76
  }
77
  if(isset($url_info['doredirect'])){
78
  $target = apply_filters('qtranslate_language_detect_redirect', $url_lang, $url_orig, $url_info);
 
79
  if($target!==false && $target != $url_orig){
80
- //qtranxf_dbg_log('qtranxf_init_language: doredirect to '.$lang.PHP_EOL .'urlorg:'.$url_orig.PHP_EOL .'target:'.$target.PHP_EOL .'url_info: ',$url_info);
81
  wp_redirect($target);
82
- //header('Location: '.$target);
 
83
  exit();
84
  }else{
85
  //neutral path
@@ -566,8 +570,23 @@ function qtranxf_load_option_bool( $nm, $default_value=null ) {
566
  global $q_config;
567
  $val = get_option('qtranslate_'.$nm);
568
  if($val===FALSE){ if(!is_null($default_value)) $q_config[$nm] = $default_value; }
569
- elseif($val==='0') $q_config[$nm] = false;
570
- elseif($val==='1') $q_config[$nm] = true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
571
  }
572
 
573
  function qtranxf_load_option_func($nm, $opn=null, $func=null) {
@@ -952,7 +971,7 @@ function qtranxf_url_set_language($urlinfo,$lang,$showLanguage) {
952
 
953
 
954
  // see if cookies are activated
955
- if( !$showLanguage//there still no language information in the converted URL
956
  && !$q_config['url_info']['cookie_enabled']// there will be no way to take language from the cookie
957
  //&& empty($urlinfo['path']) //why this was here?
958
  //&& !isset($q_config['url_info']['internal_referer'])//three below replace this one?
@@ -1009,7 +1028,8 @@ function qtranxf_get_url_for_language($url, $lang, $showLanguage=true) {
1009
  return $complete;
1010
  }
1011
 
1012
- }else{
 
1013
  $urlinfo = qtranxf_get_url_info($url);
1014
 
1015
  // check if it's an external link
@@ -1390,7 +1410,7 @@ function qtranxf_use($lang, $text, $show_available=false, $show_empty=false) {
1390
  if(is_array($text)) {
1391
  // handle arrays recursively
1392
  foreach($text as $key => $t) {
1393
- $text[$key] = qtranxf_use($lang,$text[$key],$show_available,$show_empty);
1394
  }
1395
  return $text;
1396
  }
@@ -1398,7 +1418,7 @@ function qtranxf_use($lang, $text, $show_available=false, $show_empty=false) {
1398
  if( is_object($text) || $text instanceof __PHP_Incomplete_Class ) {//since 3.2-b1 instead of @get_class($text) == '__PHP_Incomplete_Class'
1399
  foreach(get_object_vars($text) as $key => $t) {
1400
  if(!isset($text->$key)) continue;
1401
- $text->$key = qtranxf_use($lang,$text->$key,$show_available,$show_empty);
1402
  }
1403
  return $text;
1404
  }
20
 
21
  $url_info = &$q_config['url_info'];
22
  $url_info['cookie_enabled'] = isset($_COOKIE[QTX_COOKIE_NAME_FRONT]) || isset($_COOKIE[QTX_COOKIE_NAME_ADMIN]);
23
+ if($url_info['cookie_enabled']){
24
+ if(isset($_COOKIE[QTX_COOKIE_NAME_FRONT])) $url_info['cookie_lang_front'] = $_COOKIE[QTX_COOKIE_NAME_FRONT];
25
+ if(isset($_COOKIE[QTX_COOKIE_NAME_ADMIN])) $url_info['cookie_lang_admin'] = $_COOKIE[QTX_COOKIE_NAME_ADMIN];
26
+ }
27
 
28
 
29
  if(WP_DEBUG){
30
  $url_info['pagenow'] = $pagenow;
31
+ $url_info['REQUEST_METHOD'] = isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : '';
32
  if(defined('WP_ADMIN')&&WP_ADMIN) $url_info['WP_ADMIN'] = true;
33
  if(defined('DOING_AJAX')) $url_info['DOING_AJAX_POST'] = $_POST;
34
  if(defined('DOING_CRON')) $url_info['DOING_CRON_POST'] = $_POST;
36
 
37
  //fill $url_info the same way as _parseURL does
38
  $url_info['scheme'] = is_ssl() ? 'https' : 'http';
39
+ $url_info['host'] = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ''; //https://wordpress.org/support/topic/messy-wp-cronphp-command-line-output
40
 
41
  if(empty($_SERVER['REQUEST_URI'])){
42
  $url_info['path'] = '';
67
 
68
  //qtranxf_dbg_log('qtranxf_init_language: SERVER: ',$_SERVER);
69
  $url_info['language'] = qtranxf_detect_language($url_info);
 
 
70
  $q_config['language'] = apply_filters('qtranslate_language', $url_info['language'], $url_info);
71
+ //qtranxf_dbg_log('qtranxf_init_language: detected: url_info: ',$url_info);
72
 
73
  if( $q_config['url_info']['doing_front_end'] && qtranxf_can_redirect() ){
74
  $lang = $q_config['language'];
79
  }
80
  if(isset($url_info['doredirect'])){
81
  $target = apply_filters('qtranslate_language_detect_redirect', $url_lang, $url_orig, $url_info);
82
+ //qtranxf_dbg_log('qtranxf_init_language: doredirect to '.$lang.PHP_EOL .'urlorg:'.$url_orig.PHP_EOL .'target:'.$target.PHP_EOL .'url_info: ',$url_info);
83
  if($target!==false && $target != $url_orig){
 
84
  wp_redirect($target);
85
+ //header('Location: '.$target, true, 302);
86
+ nocache_headers();//prevent browser from caching redirection
87
  exit();
88
  }else{
89
  //neutral path
570
  global $q_config;
571
  $val = get_option('qtranslate_'.$nm);
572
  if($val===FALSE){ if(!is_null($default_value)) $q_config[$nm] = $default_value; }
573
+ else{
574
+ switch($val){
575
+ case '0': $q_config[$nm] = false; break;
576
+ case '1': $q_config[$nm] = true; break;
577
+ default: $val = strtolower($val);
578
+ switch($val){
579
+ case 'n':
580
+ case 'no': $q_config[$nm] = false; break;
581
+ case 'y':
582
+ case 'yes': $q_config[$nm] = true; break;
583
+ default: $q_config[$nm] == !empty($val); break;
584
+ }
585
+ break;
586
+ }
587
+ }
588
+ //elseif($val==='0') $q_config[$nm] = false;
589
+ //elseif($val==='1') $q_config[$nm] = true;
590
  }
591
 
592
  function qtranxf_load_option_func($nm, $opn=null, $func=null) {
971
 
972
 
973
  // see if cookies are activated
974
+ if( !$showLanguage//there still is no language information in the converted URL
975
  && !$q_config['url_info']['cookie_enabled']// there will be no way to take language from the cookie
976
  //&& empty($urlinfo['path']) //why this was here?
977
  //&& !isset($q_config['url_info']['internal_referer'])//three below replace this one?
1028
  return $complete;
1029
  }
1030
 
1031
+ }
1032
+ else{
1033
  $urlinfo = qtranxf_get_url_info($url);
1034
 
1035
  // check if it's an external link
1410
  if(is_array($text)) {
1411
  // handle arrays recursively
1412
  foreach($text as $key => $t) {
1413
+ $text[$key] = qtranxf_use($lang,$t,$show_available,$show_empty);
1414
  }
1415
  return $text;
1416
  }
1418
  if( is_object($text) || $text instanceof __PHP_Incomplete_Class ) {//since 3.2-b1 instead of @get_class($text) == '__PHP_Incomplete_Class'
1419
  foreach(get_object_vars($text) as $key => $t) {
1420
  if(!isset($text->$key)) continue;
1421
+ $text->$key = qtranxf_use($lang,$t,$show_available,$show_empty);
1422
  }
1423
  return $text;
1424
  }
qtranslate_frontend.php CHANGED
@@ -389,6 +389,7 @@ function qtranxf_translate_deep($value,$lang){
389
  }
390
  }else if(is_object($value) || $value instanceof __PHP_Incomplete_Class){
391
  foreach(get_object_vars($value) as $k => $v) {
 
392
  $value->$k = qtranxf_translate_deep($v,$lang);
393
  }
394
  }
389
  }
390
  }else if(is_object($value) || $value instanceof __PHP_Incomplete_Class){
391
  foreach(get_object_vars($value) as $k => $v) {
392
+ if(!isset($value->$k)) continue;
393
  $value->$k = qtranxf_translate_deep($v,$lang);
394
  }
395
  }
qtranslate_options.php CHANGED
@@ -186,6 +186,7 @@ function qtranxf_default_language_name()
186
  $nnm['cy'] = 'Cymraeg';// Oct 22 2015
187
  $nnm['ca'] = 'Català';//Nov 6 2015
188
  $nnm['sk'] = 'Slovenčina';//Nov 12 2015
 
189
  //$nnm['tw'] = '繁體中文';
190
  return $nnm;
191
  }
@@ -226,6 +227,7 @@ function qtranxf_default_locale()
226
  $loc['cy'] = 'cy';// not 'cy_GB'
227
  $loc['ca'] = 'ca';
228
  $loc['sk'] = 'sk_SK';
 
229
  //$loc['tw'] = 'zh_TW';
230
  return $loc;
231
  }
@@ -279,6 +281,7 @@ function qtranxf_default_not_available()
279
  $nam['cy'] = 'Mae’n ddrwg gen i, mae\'r cofnod hwn dim ond ar gael mewn %LANG:, : a %.';//ok
280
  $nam['ca'] = 'Ho sentim, aquesta entrada es troba disponible únicament en %LANG:, : i %.';//ok
281
  $nam['sk'] = 'Ľutujeme, táto stránka je dostupná len v %LANG:, : a %.';//ok
 
282
  //$nam['tw'] = '对不起,此内容只适用于%LANG:,:和%。';
283
  return $nam;
284
  }
@@ -319,6 +322,7 @@ function qtranxf_default_date_format()
319
  $dtf['cy'] = '%A %B %e%q, %Y';//not verified
320
  $dtf['ca'] = 'j F, Y';
321
  $dtf['sk'] = 'j.F Y';
 
322
  //$dtf['tw'] = '%x %A';
323
  return $dtf;
324
  }
@@ -358,6 +362,7 @@ function qtranxf_default_time_format()
358
  $tmf['cy'] = '%I:%M %p';//not verified
359
  $tmf['ca'] = 'G:i';
360
  $tmf['sk'] = 'G:i';
 
361
  //$tmf['tw'] = '%I:%M%p';
362
  return $tmf;
363
  }
@@ -398,6 +403,7 @@ function qtranxf_default_flag()
398
  $flg['cy'] = 'cy_GB.png';
399
  $flg['ca'] = 'catala.png';
400
  $flg['sk'] = 'sk.png';
 
401
  //$flg['tw'] = 'tw.png';
402
  return $flg;
403
  }
186
  $nnm['cy'] = 'Cymraeg';// Oct 22 2015
187
  $nnm['ca'] = 'Català';//Nov 6 2015
188
  $nnm['sk'] = 'Slovenčina';//Nov 12 2015
189
+ $nnm['lt'] = 'Lietuvių';//May 3 2016
190
  //$nnm['tw'] = '繁體中文';
191
  return $nnm;
192
  }
227
  $loc['cy'] = 'cy';// not 'cy_GB'
228
  $loc['ca'] = 'ca';
229
  $loc['sk'] = 'sk_SK';
230
+ $loc['lt'] = 'lt_LT';
231
  //$loc['tw'] = 'zh_TW';
232
  return $loc;
233
  }
281
  $nam['cy'] = 'Mae’n ddrwg gen i, mae\'r cofnod hwn dim ond ar gael mewn %LANG:, : a %.';//ok
282
  $nam['ca'] = 'Ho sentim, aquesta entrada es troba disponible únicament en %LANG:, : i %.';//ok
283
  $nam['sk'] = 'Ľutujeme, táto stránka je dostupná len v %LANG:, : a %.';//ok
284
+ $nam['lt'] = 'Atsiprašome, šis puslapis galimas tik %LANG:, : ir %.';
285
  //$nam['tw'] = '对不起,此内容只适用于%LANG:,:和%。';
286
  return $nam;
287
  }
322
  $dtf['cy'] = '%A %B %e%q, %Y';//not verified
323
  $dtf['ca'] = 'j F, Y';
324
  $dtf['sk'] = 'j.F Y';
325
+ $dtf['lt'] = '%Y.%m.%d';
326
  //$dtf['tw'] = '%x %A';
327
  return $dtf;
328
  }
362
  $tmf['cy'] = '%I:%M %p';//not verified
363
  $tmf['ca'] = 'G:i';
364
  $tmf['sk'] = 'G:i';
365
+ $tmf['lt'] = '%H:%M';
366
  //$tmf['tw'] = '%I:%M%p';
367
  return $tmf;
368
  }
403
  $flg['cy'] = 'cy_GB.png';
404
  $flg['ca'] = 'catala.png';
405
  $flg['sk'] = 'sk.png';
406
+ $flg['lt'] = 'lt.png';
407
  //$flg['tw'] = 'tw.png';
408
  return $flg;
409
  }
readme.txt CHANGED
@@ -4,7 +4,7 @@ Contributors: johnclause, chineseleper, Vavooon, grafcom
4
  Tags: multilingual, language, admin, tinymce, bilingual, widget, switcher, i18n, l10n, multilanguage, translation
5
  Requires at least: 3.9
6
  Tested up to: 4.5
7
- Stable tag: 3.4.6.7
8
  License: GPLv3 or later
9
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QEXEK3HX8AR6U
10
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
@@ -121,6 +121,11 @@ This version recovers translation of parent of a category on category edit page.
121
 
122
  ## Changelog ##
123
 
 
 
 
 
 
124
  ### 3.4.6.7 ###
125
  * Fix: for `/wp-login/` and `/login/`. Thanks to [extremecarver](http://qtranslate-x.com/support/index.php?action=profile;u=373).
126
  * Fix: unexpected menu behaviour for empty menu label when option "Hide Content which is not available for the selected language" is on: [WP Topic](https://wordpress.org/support/topic/menu-visible-despite-empty-label).
4
  Tags: multilingual, language, admin, tinymce, bilingual, widget, switcher, i18n, l10n, multilanguage, translation
5
  Requires at least: 3.9
6
  Tested up to: 4.5
7
+ Stable tag: 3.4.6.8
8
  License: GPLv3 or later
9
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QEXEK3HX8AR6U
10
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
121
 
122
  ## Changelog ##
123
 
124
+ ### 3.4.6.8 ###
125
+ * Imrovement: translation of taxonomies on page `/wp-admin/edit.php`.
126
+ * Improvement: disable browsing caching before redirection based on languge [Issue #306](https://github.com/qTranslate-Team/qtranslate-x/issues/306).
127
+ * Fix: proper tag editing on page `post.php` [Issue #366](https://github.com/qTranslate-Team/qtranslate-x/issues/366).
128
+
129
  ### 3.4.6.7 ###
130
  * Fix: for `/wp-login/` and `/login/`. Thanks to [extremecarver](http://qtranslate-x.com/support/index.php?action=profile;u=373).
131
  * Fix: unexpected menu behaviour for empty menu label when option "Hide Content which is not available for the selected language" is on: [WP Topic](https://wordpress.org/support/topic/menu-visible-despite-empty-label).