Polylang - Version 1.6.3

Version Description

  • Add Georgian translation contributed by Tours in Georgia
  • fix: WXR export does not include the language of untranslated terms (will now work only for newly saved terms)
  • fix: better cleaning of DB when translated objects are deleted
  • fix: incorrect (ajax) translations links when modifying a term language
  • fix: warning: Illegal string offset 'taxonomy' introduced by the combination of WP 4.1 and some plugins.
Download this release

Release Info

Developer Chouby
Plugin Icon 128x128 Polylang
Version 1.6.3
Comparing to
See all releases

Code changes from version 1.6.2 to 1.6.3

admin/admin-model.php CHANGED
@@ -44,6 +44,10 @@ class PLL_Admin_Model extends PLL_Model {
44
  // don't want shared terms so use a different slug
45
  wp_insert_term($args['name'], 'term_language', array('slug' => 'pll_' . $args['slug']));
46
 
 
 
 
 
47
  $this->clean_languages_cache(); // udpate the languages list now !
48
 
49
  if (!isset($this->options['default_lang'])) {
@@ -311,6 +315,72 @@ class PLL_Admin_Model extends PLL_Model {
311
  $wpdb->query("INSERT INTO $wpdb->term_relationships (object_id, term_taxonomy_id) VALUES " . implode(',', $values));
312
  $lang->update_count(); // updating term count is mandatory (thanks to AndyDeGroo)
313
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
314
  }
315
 
316
  /*
44
  // don't want shared terms so use a different slug
45
  wp_insert_term($args['name'], 'term_language', array('slug' => 'pll_' . $args['slug']));
46
 
47
+ // init a mo_id for this language
48
+ $mo = new PLL_MO();
49
+ $mo->export_to_db($this->get_language($args['slug']));
50
+
51
  $this->clean_languages_cache(); // udpate the languages list now !
52
 
53
  if (!isset($this->options['default_lang'])) {
315
  $wpdb->query("INSERT INTO $wpdb->term_relationships (object_id, term_taxonomy_id) VALUES " . implode(',', $values));
316
  $lang->update_count(); // updating term count is mandatory (thanks to AndyDeGroo)
317
  }
318
+
319
+ if ('term' == $type) {
320
+ foreach ($ids as $id)
321
+ $translations[] = array($lang->slug => $id);
322
+
323
+ if (!empty($translations))
324
+ $this->set_translation_in_mass('term', $translations);
325
+ }
326
+ }
327
+
328
+ /*
329
+ * used to create a translations groups in mass
330
+ *
331
+ * @since 1.6.3
332
+ *
333
+ * @param string $type either 'post' or 'term'
334
+ * @param array $translations array of translations arrays
335
+ */
336
+ public function set_translation_in_mass($type, $translations) {
337
+ global $wpdb;
338
+
339
+ foreach ($translations as $t) {
340
+ $term = uniqid('pll_'); // the term name
341
+ $terms[] = $wpdb->prepare('("%1$s", "%1$s")', $term);
342
+ $slugs[] = $wpdb->prepare('"%s"', $term);
343
+ $description[$term] = serialize($t);
344
+ $count[$term] = count($t);
345
+ }
346
+
347
+ // insert terms
348
+ if (!empty($terms)) {
349
+ $terms = array_unique($terms);
350
+ $wpdb->query("INSERT INTO $wpdb->terms (slug, name) VALUES " . implode(',', $terms));
351
+ }
352
+
353
+ // get all terms with their term_id
354
+ $terms = $wpdb->get_results("SELECT term_id, slug FROM $wpdb->terms WHERE slug IN (" . implode(',', $slugs) . ")");
355
+
356
+ // prepare terms taxonomy relationship
357
+ foreach ($terms as $term)
358
+ $tts[] = $wpdb->prepare('(%d, "%s", "%s", %d)', $term->term_id, $type . '_translations', $description[$term->slug], $count[$term->slug]);
359
+
360
+ // insert term_taxonomy
361
+ if (!empty($tts)) {
362
+ $tts = array_unique($tts);
363
+ $wpdb->query("INSERT INTO $wpdb->term_taxonomy (term_id, taxonomy, description, count) VALUES " . implode(',', $tts));
364
+ }
365
+
366
+ // get all terms with term_taxonomy_id
367
+ $terms = get_terms($type . '_translations', array('hide_empty' => false));
368
+
369
+ // prepare objects relationships
370
+ foreach ($terms as $term) {
371
+ $t = unserialize($term->description);
372
+ if (in_array($t, $translations)) {
373
+ foreach ($t as $object_id)
374
+ if (!empty($object_id))
375
+ $trs[] = $wpdb->prepare('(%d, %d)', $object_id, $term->term_taxonomy_id);
376
+ }
377
+ }
378
+
379
+ // insert term_relationships
380
+ if (!empty($trs)) {
381
+ $wpdb->query("INSERT INTO $wpdb->term_relationships (object_id, term_taxonomy_id) VALUES " . implode(',', $trs));
382
+ $trs = array_unique($trs);
383
+ }
384
  }
385
 
386
  /*
admin/view-translations-term.php CHANGED
@@ -19,13 +19,13 @@ else {
19
  continue;
20
 
21
  // look for any existing translation in this language
 
22
  $translation = 0;
23
- if (isset($term_id) && $translation_id = $this->model->get_translation('term', $term_id, $language))
24
  $translation = get_term($translation_id, $taxonomy);
25
- if (isset($_GET['from_tag']) && $translation_id = $this->model->get_term((int)$_GET['from_tag'], $language))
26
  $translation = get_term($translation_id, $taxonomy);
27
 
28
-
29
  if (isset($term_id)) { // do not display the add new link in add term form ($term_id not set !!!) {
30
  $link = $add_link = sprintf(
31
  '<a href="%1$s" class="pll_icon_add" title="%2$s"></a>',
19
  continue;
20
 
21
  // look for any existing translation in this language
22
+ // take care not ot propose a self link
23
  $translation = 0;
24
+ if (isset($term_id) && ($translation_id = $this->model->get_translation('term', $term_id, $language)) && $translation_id != $term_id)
25
  $translation = get_term($translation_id, $taxonomy);
26
+ if (isset($_REQUEST['from_tag']) && ($translation_id = $this->model->get_term((int) $_REQUEST['from_tag'], $language)))
27
  $translation = get_term($translation_id, $taxonomy);
28
 
 
29
  if (isset($term_id)) { // do not display the add new link in add term form ($term_id not set !!!) {
30
  $link = $add_link = sprintf(
31
  '<a href="%1$s" class="pll_icon_add" title="%2$s"></a>',
frontend/frontend.php CHANGED
@@ -85,7 +85,7 @@ class PLL_Frontend extends PLL_Base {
85
  $has_tax = false;
86
  if (isset($query->tax_query->queries))
87
  foreach ($query->tax_query->queries as $tax)
88
- if ('post_format' != $tax['taxonomy'])
89
  $has_tax = true;
90
 
91
  // allow filtering recent posts and secondary queries by the current language
85
  $has_tax = false;
86
  if (isset($query->tax_query->queries))
87
  foreach ($query->tax_query->queries as $tax)
88
+ if (isset($tax['taxonomy']) && 'post_format' != $tax['taxonomy'])
89
  $has_tax = true;
90
 
91
  // allow filtering recent posts and secondary queries by the current language
include/model.php CHANGED
@@ -80,7 +80,6 @@ class PLL_Model {
80
  * @param array $taxonomies terms taxonomies
81
  * @return array unmodified $terms
82
  */
83
- // FIXME is that useful? or even desirable?
84
  public function wp_get_object_terms($terms, $object_ids, $taxonomies) {
85
  $taxonomies = explode("', '", trim($taxonomies, "'"));
86
  if (!in_array('term_translations', $taxonomies))
@@ -284,6 +283,13 @@ class PLL_Model {
284
  // link all translations to the new term
285
  foreach($translations as $p)
286
  wp_set_object_terms($p, $group, $type . '_translations');
 
 
 
 
 
 
 
287
  }
288
  }
289
  }
@@ -297,6 +303,7 @@ class PLL_Model {
297
  * @param int $id post id or term id
298
  */
299
  public function delete_translation($type, $id) {
 
300
  $term = $this->get_object_term($id, $type . '_translations');
301
 
302
  if (!empty($term)) {
@@ -304,11 +311,15 @@ class PLL_Model {
304
  $slug = array_search($id, $this->get_translations($type, $id)); // in case some plugin stores the same value with different key
305
  unset($d[$slug]);
306
 
307
- wp_update_term((int) $term->term_id, $type . '_translations', array('description' => serialize($d)));
 
 
 
308
 
309
  if ('post' == $type)
310
  wp_set_object_terms($id, null, $type . '_translations');
311
- else {
 
312
  // always keep a group for terms to allow relationships remap when importing from a WXR file
313
  $translations[$slug] = $id;
314
  wp_insert_term($group = uniqid('pll_'), $type . '_translations', array('description' => serialize($translations)));
@@ -406,6 +417,13 @@ class PLL_Model {
406
  */
407
  public function set_term_language($term_id, $lang) {
408
  wp_set_object_terms($term_id, $lang ? $this->get_language($lang)->tl_term_id : '', 'term_language');
 
 
 
 
 
 
 
409
  }
410
 
411
  /*
80
  * @param array $taxonomies terms taxonomies
81
  * @return array unmodified $terms
82
  */
 
83
  public function wp_get_object_terms($terms, $object_ids, $taxonomies) {
84
  $taxonomies = explode("', '", trim($taxonomies, "'"));
85
  if (!in_array('term_translations', $taxonomies))
283
  // link all translations to the new term
284
  foreach($translations as $p)
285
  wp_set_object_terms($p, $group, $type . '_translations');
286
+
287
+ // clean now unused translation groups
288
+ foreach (wp_list_pluck($terms, 'term_id') as $term_id) {
289
+ $term = get_term($term_id, $type . '_translations');
290
+ if (empty($term->count))
291
+ wp_delete_term($term_id, $type . '_translations');
292
+ }
293
  }
294
  }
295
  }
303
  * @param int $id post id or term id
304
  */
305
  public function delete_translation($type, $id) {
306
+ global $wpdb;
307
  $term = $this->get_object_term($id, $type . '_translations');
308
 
309
  if (!empty($term)) {
311
  $slug = array_search($id, $this->get_translations($type, $id)); // in case some plugin stores the same value with different key
312
  unset($d[$slug]);
313
 
314
+ if (empty($d))
315
+ wp_delete_term((int) $term->term_id, $type . '_translations');
316
+ else
317
+ wp_update_term((int) $term->term_id, $type . '_translations', array('description' => serialize($d)));
318
 
319
  if ('post' == $type)
320
  wp_set_object_terms($id, null, $type . '_translations');
321
+
322
+ elseif ($wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM $wpdb->terms WHERE term_id = %d;", $id))) {
323
  // always keep a group for terms to allow relationships remap when importing from a WXR file
324
  $translations[$slug] = $id;
325
  wp_insert_term($group = uniqid('pll_'), $type . '_translations', array('description' => serialize($translations)));
417
  */
418
  public function set_term_language($term_id, $lang) {
419
  wp_set_object_terms($term_id, $lang ? $this->get_language($lang)->tl_term_id : '', 'term_language');
420
+
421
+ // add translation group for correct WXR export
422
+ $translations = $this->get_translations('term', $term_id);
423
+ if ($slug = array_search($term_id, $translations))
424
+ unset($translations[$slug]);
425
+
426
+ $this->save_translations('term', $term_id, $translations);
427
  }
428
 
429
  /*
js/term.js CHANGED
@@ -58,6 +58,7 @@ jQuery(document).ready(function($) {
58
  var data = {
59
  action: 'term_lang_choice',
60
  lang: $(this).val(),
 
61
  term_id: $("input[name='tag_ID']").val(),
62
  taxonomy: $("input[name='taxonomy']").val(),
63
  post_type: typenow,
58
  var data = {
59
  action: 'term_lang_choice',
60
  lang: $(this).val(),
61
+ from_tag: $("input[name='from_tag']").val(),
62
  term_id: $("input[name='tag_ID']").val(),
63
  taxonomy: $("input[name='taxonomy']").val(),
64
  post_type: typenow,
js/term.min.js CHANGED
@@ -1 +1 @@
1
- if("undefined"!=typeof(inlineEditTax)){(function(b){var a=inlineEditTax.edit;inlineEditTax.edit=function(g){a.apply(this,arguments);var d=0;if(typeof(g)=="object"){d=parseInt(this.getId(g))}if(d>0){var f=b("#edit-"+d);var c=f.find(':input[name="inline_lang_choice"]');c.find("option:selected").removeProp("selected");var e=b("#lang_"+d).html();b("input[name='old_lang']").val(e);c.find('option[value="'+e+'"]').prop("selected",true)}}})(jQuery)}jQuery(document).ready(function(b){function a(){b(".tr_lang").each(function(){var c=b(this).attr("id").substring(8);var d=b(this).parent().siblings(".pll-edit-column");b(this).autocomplete({minLength:0,source:ajaxurl+"?action=pll_terms_not_translated&term_language="+b("#term_lang_choice").val()+"&term_id="+b("input[name='tag_ID']").val()+"&taxonomy="+b("input[name='taxonomy']").val()+"&translation_language="+c+"&post_type="+typenow+"&_pll_nonce="+b("#_pll_nonce").val(),select:function(e,f){b("#htr_lang_"+c).val(f.item.id);d.html(f.item.link)}});b(this).blur(function(){if(!b(this).val()){b("#htr_lang_"+c).val(0);d.html(d.siblings(".hidden").children().clone())}})})}a();b("#term_lang_choice").change(function(){var c={action:"term_lang_choice",lang:b(this).val(),term_id:b("input[name='tag_ID']").val(),taxonomy:b("input[name='taxonomy']").val(),post_type:typenow,_pll_nonce:b("#_pll_nonce").val()};b.post(ajaxurl,c,function(d){var e=wpAjax.parseAjaxResponse(d,"ajax-response");b.each(e.responses,function(){switch(this.what){case"translations":b("#term-translations").html(this.data);a();break;case"parent":b("#parent").replaceWith(this.data);break;case"tag_cloud":b(".tagcloud").replaceWith(this.data);break;case"flag":b(".pll-select-flag").html(this.data);break;default:break}})})})});
1
+ if("undefined"!=typeof(inlineEditTax)){(function(b){var a=inlineEditTax.edit;inlineEditTax.edit=function(g){a.apply(this,arguments);var d=0;if(typeof(g)=="object"){d=parseInt(this.getId(g))}if(d>0){var f=b("#edit-"+d);var c=f.find(':input[name="inline_lang_choice"]');c.find("option:selected").removeProp("selected");var e=b("#lang_"+d).html();b("input[name='old_lang']").val(e);c.find('option[value="'+e+'"]').prop("selected",true)}}})(jQuery)}jQuery(document).ready(function(b){function a(){b(".tr_lang").each(function(){var c=b(this).attr("id").substring(8);var d=b(this).parent().siblings(".pll-edit-column");b(this).autocomplete({minLength:0,source:ajaxurl+"?action=pll_terms_not_translated&term_language="+b("#term_lang_choice").val()+"&term_id="+b("input[name='tag_ID']").val()+"&taxonomy="+b("input[name='taxonomy']").val()+"&translation_language="+c+"&post_type="+typenow+"&_pll_nonce="+b("#_pll_nonce").val(),select:function(e,f){b("#htr_lang_"+c).val(f.item.id);d.html(f.item.link)}});b(this).blur(function(){if(!b(this).val()){b("#htr_lang_"+c).val(0);d.html(d.siblings(".hidden").children().clone())}})})}a();b("#term_lang_choice").change(function(){var c={action:"term_lang_choice",lang:b(this).val(),from_tag:b("input[name='from_tag']").val(),term_id:b("input[name='tag_ID']").val(),taxonomy:b("input[name='taxonomy']").val(),post_type:typenow,_pll_nonce:b("#_pll_nonce").val()};b.post(ajaxurl,c,function(d){var e=wpAjax.parseAjaxResponse(d,"ajax-response");b.each(e.responses,function(){switch(this.what){case"translations":b("#term-translations").html(this.data);a();break;case"parent":b("#parent").replaceWith(this.data);break;case"tag_cloud":b(".tagcloud").replaceWith(this.data);break;case"flag":b(".pll-select-flag").html(this.data);break;default:break}})})})});
languages/polylang-ka_GE.mo ADDED
Binary file
languages/polylang-ka_GE.po ADDED
@@ -0,0 +1,603 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Polylang v1.6beta1\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: \n"
6
+ "PO-Revision-Date: 2014-12-28 00:53+0400\n"
7
+ "Last-Translator: \n"
8
+ "Language-Team: Rusudan Tsiskreli <tsiskreli@highlander.ge>\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "Plural-Forms: nplurals=2; plural=n != 1;\n"
13
+ "X-Poedit-SourceCharset: UTF-8\n"
14
+ "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
15
+ "X-Poedit-Basepath: ../\n"
16
+ "X-Textdomain-Support: yes\n"
17
+ "Language: ka_GE\n"
18
+ "X-Generator: Poedit 1.7.1\n"
19
+ "X-Poedit-SearchPath-0: .\n"
20
+
21
+ # @ polylang
22
+ #: admin/view-about.php:3
23
+ #, php-format
24
+ msgid "Polylang is provided with an extensive %sdocumentation%s (in English only). It includes information on how to set up your multilingual site and use it on a daily basis, a FAQ, as well as a documentation for programmers to adapt their plugins and themes."
25
+ msgstr "Polylang -ს მოყვება ფართო %sdocumentation%s (მხოლოდ ინგლისურად). ეს შეიცავს ინფორმაციას, თუ როგორ უნდა გამართოთ მრავალენოვანი საიტი და გამოიყენოთ იგი ყოველდღიურად, ხდკ და ასევე დოკუმენტაცია პროგრამისტებისთვის, თემისა და სხვა პლაგინების მოსარგებად."
26
+
27
+ # @ polylang
28
+ #: admin/view-about.php:9
29
+ #, php-format
30
+ msgid "You will also find useful information in the %ssupport forum%s. However don't forget to make a search before posting a new topic."
31
+ msgstr "სასარგებლო ინფორმაციის ნახვა ასევე შეგიძლიათ %ssupport forum%s. თუმცა ჯერ დაგუგლეთ, მერე დაპოსტეთ."
32
+
33
+ # @ polylang
34
+ #: admin/view-about.php:16
35
+ #, php-format
36
+ msgid "Polylang is free of charge and is released under the same license as WordPress, the %sGPL%s."
37
+ msgstr "პოლილანგი უნასია და იგივე ლიცენზიითაა რაც WordPress %sGPL%s."
38
+
39
+ # @ polylang
40
+ #: admin/view-about.php:22
41
+ #, php-format
42
+ msgid "If you wonder how you can help the project, just %sread this%s."
43
+ msgstr "თუ გაინტერესებთ თუ როგორ დაეხმაროთ პროექტს, %sread this%s."
44
+
45
+ # @ polylang
46
+ #: admin/view-about.php:27
47
+ msgid "Finally if you like this plugin or if it helps your business, donations to the author are greatly appreciated."
48
+ msgstr "თუ მოგწონთ პლაგინი და ის გეხმარებათ ბიზნესში, ავტორი მადლობელი იქნება შემოწირულობისთვის."
49
+
50
+ # @ polylang
51
+ #: admin/admin-filters-post.php:81 admin/admin.php:90 admin/settings.php:55
52
+ #: admin/settings.php:82 include/model.php:526
53
+ msgid "Languages"
54
+ msgstr "ენები"
55
+
56
+ # @ polylang
57
+ #: include/switcher.php:22
58
+ msgid "Displays language names"
59
+ msgstr "ენის სახელს ასახავს"
60
+
61
+ # @ polylang
62
+ #: include/switcher.php:23
63
+ msgid "Displays flags"
64
+ msgstr "დროშებს ასახავს"
65
+
66
+ # @ polylang
67
+ #: include/switcher.php:24
68
+ msgid "Forces link to front page"
69
+ msgstr "ბმულით სათაო გვერდზე გადასვლა"
70
+
71
+ # @ polylang
72
+ #: include/switcher.php:25
73
+ msgid "Hides the current language"
74
+ msgstr "მიმდინარე ენის დამალვა"
75
+
76
+ # @ polylang
77
+ #: include/switcher.php:29
78
+ msgid "Displays as dropdown"
79
+ msgstr "ჩამოსაშლელად ასახავს"
80
+
81
+ # @ polylang
82
+ #: admin/admin.php:271
83
+ msgid "Filters content by language"
84
+ msgstr "შიგთავსის ენის მიხედვით ფილტრაცია"
85
+
86
+ # @ polylang
87
+ #: admin/admin.php:262
88
+ msgid "Show all languages"
89
+ msgstr "ყველა ენის ჩვენება"
90
+
91
+ # @ polylang
92
+ #: admin/admin-filters-columns.php:139 admin/admin-filters-columns.php:227
93
+ msgid "Add new translation"
94
+ msgstr "ახალი თარგმანის დამატება"
95
+
96
+ # @ polylang
97
+ #: admin/admin-filters-columns.php:173 admin/admin-filters-media.php:55
98
+ #: admin/admin-filters-post.php:107 admin/admin-filters-term.php:77
99
+ #: admin/admin-filters-term.php:121 include/model.php:527
100
+ msgid "Language"
101
+ msgstr "ენა"
102
+
103
+ # @ polylang
104
+ #: admin/table-string.php:111 admin/view-translations-media.php:5
105
+ #: admin/view-translations-post.php:5 admin/view-translations-term.php:6
106
+ #: admin/view-translations-term.php:11
107
+ msgid "Translations"
108
+ msgstr "თარგმანები"
109
+
110
+ # @ polylang
111
+ #: admin/admin-filters-term.php:84 admin/admin-filters-term.php:128
112
+ msgid "Sets the language"
113
+ msgstr "ენას აყენებს"
114
+
115
+ # @ polylang
116
+ #: admin/admin-filters.php:52
117
+ msgid "The widget is displayed for:"
118
+ msgstr "ვიდჯეტი აისახება:"
119
+
120
+ # @ polylang
121
+ #: admin/admin-filters.php:55 include/model.php:528
122
+ msgid "All languages"
123
+ msgstr "ყველა ენა"
124
+
125
+ # @ polylang
126
+ #: admin/admin-filters.php:123
127
+ msgid "Admin language"
128
+ msgstr "ადმინისტრატორის ენა"
129
+
130
+ # @ polylang
131
+ #: admin/admin-filters.php:126
132
+ msgid "Wordpress default"
133
+ msgstr "Wordpress ნაგულისხმევი"
134
+
135
+ # @ polylang
136
+ #: admin/admin.php:171 admin/settings.php:87
137
+ msgid "Settings"
138
+ msgstr "პარამეტრები"
139
+
140
+ # @ polylang
141
+ #: admin/admin-filters.php:160 admin/admin-filters.php:169
142
+ msgid "Upgrading language files&#8230;"
143
+ msgstr "ენის ფაილების განახლება&#8230;"
144
+
145
+ # @ polylang
146
+ #: admin/settings.php:47
147
+ msgid "About Polylang"
148
+ msgstr "Polylang-ის შესახებ"
149
+
150
+ # @ polylang
151
+ #: admin/settings.php:63
152
+ msgid "Strings translations"
153
+ msgstr "სტრიქონების თარგმნა"
154
+
155
+ # @ polylang
156
+ #: admin/settings.php:86
157
+ msgid "Strings translation"
158
+ msgstr "სტრიქონების თარგმნა"
159
+
160
+ # @ polylang
161
+ #: admin/admin-model.php:274
162
+ msgid "Enter a valid WordPress locale"
163
+ msgstr "შეიყვანეთ მართებული WordPress locale"
164
+
165
+ # @ polylang
166
+ #: admin/admin-model.php:282
167
+ msgid "The language code must be unique"
168
+ msgstr "ენის კოდი უნიკალური უნდა იყოს"
169
+
170
+ # @ polylang
171
+ #: admin/admin-model.php:286
172
+ msgid "The language must have a name"
173
+ msgstr "ენას სახელი უნდა ჰქონდეს"
174
+
175
+ # @ polylang
176
+ #: admin/admin.php:371 admin/settings.php:162
177
+ msgid "The language was created, but the WordPress language file was not downloaded. Please install it manually."
178
+ msgstr "ენა შეიქმნა, მაგრამ WordPress-ის ფაილები არ იყო ჩამოტვირთული. გთხოვთ ხელით დააყენოთ."
179
+
180
+ # @ polylang
181
+ #: admin/admin-strings.php:59
182
+ msgid "Widget title"
183
+ msgstr "ვიჯეტის სახელი"
184
+
185
+ # @ polylang
186
+ #: admin/settings.php:301
187
+ msgid "Taxonomies"
188
+ msgstr "ტაქსონომიები"
189
+
190
+ # @ polylang
191
+ #: admin/settings.php:302
192
+ msgid "Custom fields"
193
+ msgstr "დამატებითი ველები"
194
+
195
+ # @ polylang
196
+ #: admin/settings.php:303
197
+ msgid "Comment status"
198
+ msgstr "კომენტარების სტატუსი"
199
+
200
+ # @ polylang
201
+ #: admin/settings.php:304
202
+ msgid "Ping status"
203
+ msgstr "პინგის სტატუსი"
204
+
205
+ # @ polylang
206
+ #: admin/settings.php:305
207
+ msgid "Sticky posts"
208
+ msgstr "მიმაგრებული პოსტი"
209
+
210
+ # @ polylang
211
+ #: admin/settings.php:306
212
+ msgid "Published date"
213
+ msgstr "გამოქვეყნების თარიღი"
214
+
215
+ # @ polylang
216
+ #: admin/settings.php:307
217
+ msgid "Post format"
218
+ msgstr "პოსტის ფორმატი"
219
+
220
+ # @ polylang
221
+ #: admin/settings.php:308
222
+ msgid "Page parent"
223
+ msgstr "გვერდის მშობელი"
224
+
225
+ # @ polylang
226
+ #: admin/settings.php:309
227
+ msgid "Page template"
228
+ msgstr "გვერდის თარგი"
229
+
230
+ # @ polylang
231
+ #: admin/settings.php:310
232
+ msgid "Page order"
233
+ msgstr "გვერდის მიმდევრობა"
234
+
235
+ # @ polylang
236
+ #: admin/settings.php:311
237
+ msgid "Featured image"
238
+ msgstr "მთავარი გამოსახულება"
239
+
240
+ # @ polylang
241
+ #: admin/view-languages.php:38
242
+ msgid "Edit language"
243
+ msgstr "ენის რედაქტირება"
244
+
245
+ # @ polylang
246
+ #: admin/view-languages.php:38 admin/view-languages.php:113
247
+ msgid "Add new language"
248
+ msgstr "ახალი ენის დამატება"
249
+
250
+ # @ polylang
251
+ #: admin/view-languages.php:54
252
+ msgid "Choose a language"
253
+ msgstr "ენის არჩევა"
254
+
255
+ # @ polylang
256
+ #: admin/view-languages.php:68
257
+ msgid "You can choose a language in the list or directly edit it below."
258
+ msgstr "ენის არჩევა შეგიძლიათ სიაში, ან პირდაპირ დაამატეთ იგი ქვემოთ."
259
+
260
+ # @ polylang
261
+ #: admin/table-languages.php:74 admin/view-languages.php:72
262
+ msgid "Full name"
263
+ msgstr "სრული სახელი"
264
+
265
+ # @ polylang
266
+ #: admin/view-languages.php:74
267
+ msgid "The name is how it is displayed on your site (for example: English)."
268
+ msgstr "სახელი, თუ როგორ გამოჩნდება იგი ვებ გვერდზე (მაგ. ქართული)."
269
+
270
+ # @ polylang
271
+ #: admin/table-languages.php:75 admin/view-languages.php:78
272
+ msgid "Locale"
273
+ msgstr "ლოკალური"
274
+
275
+ # @ polylang
276
+ #: admin/view-languages.php:83
277
+ msgid "Wordpress Locale for the language (for example: en_US). You will need to install the .mo file for this language."
278
+ msgstr "Wordpress ლოკალური ენისთვის (მაგალითად: ka_GE). თქვენ უნდა დააყენოთ .mo ამ ენისთვის."
279
+
280
+ # @ polylang
281
+ #: admin/view-languages.php:87
282
+ msgid "Language code"
283
+ msgstr "ენის კოდი"
284
+
285
+ # @ polylang
286
+ #: admin/view-languages.php:93
287
+ msgid "Text direction"
288
+ msgstr "ტექსტის მიმართულება"
289
+
290
+ # @ polylang
291
+ #: admin/view-languages.php:97
292
+ msgid "left to right"
293
+ msgstr "მარცხნიდან მარჯვნის"
294
+
295
+ # @ polylang
296
+ #: admin/view-languages.php:102
297
+ msgid "right to left"
298
+ msgstr "მარჯვნიდან მარცხნივ"
299
+
300
+ # @ polylang
301
+ #: admin/view-languages.php:104
302
+ msgid "Choose the text direction for the language"
303
+ msgstr "ენისთვის აირჩიეთ ტექსტის მიმართულება"
304
+
305
+ # @ polylang
306
+ #: admin/table-languages.php:77 admin/view-languages.php:108
307
+ msgid "Order"
308
+ msgstr "თანმიმდევრობა"
309
+
310
+ # @ polylang
311
+ #: admin/view-languages.php:110
312
+ msgid "Position of the language in the language switcher"
313
+ msgstr "ენის მდებარეობა ენების გადამრთველში"
314
+
315
+ # @ polylang
316
+ #: admin/admin-nav-menu.php:52 admin/admin-nav-menu.php:90
317
+ #: admin/admin-nav-menu.php:93 admin/admin-nav-menu.php:124
318
+ #: admin/admin-nav-menu.php:186 include/upgrade.php:301
319
+ msgid "Language switcher"
320
+ msgstr "ენების გადამრთველი"
321
+
322
+ # @ polylang
323
+ #: admin/view-languages.php:139
324
+ msgid "Search translations"
325
+ msgstr "თარგმანების ძებნა"
326
+
327
+ # @ polylang
328
+ #: admin/view-languages.php:142
329
+ msgid "Clean strings translation database"
330
+ msgstr "სტრიქონების თარგმნის ბაზის წაშლა"
331
+
332
+ # @ polylang
333
+ #: admin/view-languages.php:161
334
+ msgid "Default language"
335
+ msgstr "ნაგულისხმევი ენა"
336
+
337
+ # @ polylang
338
+ #: admin/view-languages.php:176
339
+ msgid "There are posts, pages, categories or tags without language set. Do you want to set them all to default language ?"
340
+ msgstr "ჩვენ გვაქვს გვერდები, პოსტები, კატეგორიები მინიჭებული ენის გარეშე. გსურთ მათთვის ყველასთვის ნაგულისხმევი ენის მინიჭება?"
341
+
342
+ # @ polylang
343
+ #: admin/view-languages.php:297
344
+ msgid "Detect browser language"
345
+ msgstr "ბრაუზერის ენის აღმოჩენა"
346
+
347
+ # @ polylang
348
+ #: admin/view-languages.php:303
349
+ msgid "When the front page is visited, set the language according to the browser preference"
350
+ msgstr "სათაო გვერდზე ბრაუზერის პარამეტრებში მითითებული ენის დაყენება"
351
+
352
+ # @ polylang
353
+ #: admin/view-languages.php:184
354
+ msgid "URL modifications"
355
+ msgstr "URL მოდიფიკაცია"
356
+
357
+ # @ polylang
358
+ #: admin/view-languages.php:241
359
+ msgid "Hide URL language information for default language"
360
+ msgstr "ენის URL დამალვა ძირითადი ენისთვის"
361
+
362
+ # @ polylang
363
+ #: admin/view-languages.php:310
364
+ msgid "Media"
365
+ msgstr "მედია"
366
+
367
+ # @ polylang
368
+ #: admin/view-languages.php:316
369
+ msgid "Activate languages and translations for media"
370
+ msgstr "მედიისთვის ენების და თარგმანების აქტივაცია"
371
+
372
+ # @ polylang
373
+ #: admin/view-languages.php:363
374
+ msgid "Synchronization"
375
+ msgstr "სინქრონიზაცია"
376
+
377
+ # @ polylang
378
+ #: admin/view-languages.php:324
379
+ msgid "Custom post types"
380
+ msgstr "პოსტების დამატებითი ტიპები"
381
+
382
+ # @ polylang
383
+ #: admin/view-languages.php:337
384
+ msgid "Activate languages and translations for custom post types."
385
+ msgstr "პოსტების დამატებითი ტიპებისთვის ენების და თარგმანების აქტივაცია"
386
+
387
+ # @ polylang
388
+ #: admin/view-languages.php:344
389
+ msgid "Custom taxonomies"
390
+ msgstr "დამატებითი ტაქსონომიები"
391
+
392
+ # @ polylang
393
+ #: admin/view-languages.php:357
394
+ msgid "Activate languages and translations for custom taxonomies."
395
+ msgstr "დამატებითი ტაქსონომიებისთვის ენების და თარგმანების აქტივაცია"
396
+
397
+ # @ polylang
398
+ #: admin/admin-filters-post.php:379 admin/admin-filters-term.php:612
399
+ #: admin/table-languages.php:54 admin/view-translations-media.php:21
400
+ msgid "Edit"
401
+ msgstr "რედაქტირება"
402
+
403
+ # @ polylang
404
+ #: admin/table-languages.php:60 admin/table-string.php:167
405
+ msgid "Delete"
406
+ msgstr "წაშლა"
407
+
408
+ # @ polylang
409
+ #: admin/table-languages.php:76
410
+ msgid "Code"
411
+ msgstr "კოდი"
412
+
413
+ # @ polylang
414
+ #: admin/table-languages.php:78
415
+ msgid "Flag"
416
+ msgstr "დროშა"
417
+
418
+ # @ polylang
419
+ #: admin/table-languages.php:79
420
+ msgid "Posts"
421
+ msgstr "პოსტები"
422
+
423
+ # @ polylang
424
+ #: admin/table-string.php:109
425
+ msgid "Name"
426
+ msgstr "სახელი"
427
+
428
+ # @ polylang
429
+ #: admin/table-string.php:110
430
+ msgid "String"
431
+ msgstr "სტრიქონი"
432
+
433
+ # @ polylang
434
+ #: admin/view-translations-media.php:30 admin/view-translations-post.php:21
435
+ #: admin/view-translations-term.php:30
436
+ msgid "Add new"
437
+ msgstr "ახლის დამატება"
438
+
439
+ # @ polylang
440
+ #: include/widget-languages.php:16
441
+ msgid "Language Switcher"
442
+ msgstr "ენების გადამრთველი"
443
+
444
+ # @ polylang
445
+ #: include/widget-languages.php:16
446
+ msgid "Displays a language switcher"
447
+ msgstr "ენების გადამრთველის ჩვენება"
448
+
449
+ # @ polylang
450
+ #: include/widget-languages.php:97
451
+ msgid "Title:"
452
+ msgstr "სათაური:"
453
+
454
+ # @ polylang
455
+ #. translators: plugin header field 'Description'
456
+ #: polylang.php:0
457
+ msgid "Adds multilingual capability to WordPress"
458
+ msgstr "WordPress-სთვის მრავალენოვანი შესაძლებლობის დამატება"
459
+
460
+ # @ polylang
461
+ #: polylang.php:145
462
+ #, php-format
463
+ msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
464
+ msgstr "თქვენ იყენებთ WordPress %s. Polylang მოითხოვს მინიმუმ WordPress %s."
465
+
466
+ # @ polylang
467
+ #: include/upgrade.php:76
468
+ msgid "Polylang has been deactivated because you upgraded from a too old version."
469
+ msgstr "Polylang გამოირთო, რადგან თქვენ ძალიან ძველი ვერსია გაახლეთ"
470
+
471
+ # @ polylang
472
+ #: include/upgrade.php:78
473
+ #, php-format
474
+ msgid "Please upgrade first to %s before ugrading to %s."
475
+ msgstr "გთხოვთ ჯერ გაახლეთ %s -მდე და მერე %s-მდე."
476
+
477
+ # @ polylang
478
+ #: admin/table-string.php:108
479
+ msgid "Group"
480
+ msgstr "ჯგუფი"
481
+
482
+ # @ polylang
483
+ #: admin/table-string.php:186
484
+ msgid "View all groups"
485
+ msgstr "ყველა ჯგუფის ნახვა"
486
+
487
+ # @ polylang
488
+ #: admin/table-languages.php:59
489
+ msgid "You are about to permanently delete this language. Are you sure?"
490
+ msgstr "თქვენ აპირებთ ენის სამუდამოდ წაშლას. დარწმუნებული ხართ?"
491
+
492
+ # @ polylang
493
+ #: admin/view-languages.php:143
494
+ msgid "Use this to remove unused strings from database, for example after a plugin has been uninstalled."
495
+ msgstr "ეს გამოიყენეთ ბაზიდან გამოუყენებელი სტრიქონების წასაშლელად, მაგალითად პლაგინის წაშლის შემდეგ"
496
+
497
+ # @ polylang
498
+ #: admin/view-languages.php:374
499
+ msgid "The synchronization options allow to maintain exact same values (or translations in the case of taxonomies and page parent) of meta content between the translations of a post or page."
500
+ msgstr "სინქრონიზაციის პარამეტრი საშუალებას ეძლევა ერთი პარამეტრი გამოიყენოთ ყველა თარგმნილ ვარიანტში."
501
+
502
+ # @ polylang
503
+ #: admin/admin-model.php:278
504
+ msgid "The language code contains invalid characters"
505
+ msgstr "ენის კოდი არასწორ სიმბოლოებს შეიცავს"
506
+
507
+ # @ polylang
508
+ #: admin/view-languages.php:190
509
+ msgid "The language is set from content"
510
+ msgstr "ენა შიგთავსიდანაა დაყენებული"
511
+
512
+ # @ polylang
513
+ #: admin/view-languages.php:193
514
+ msgid "Posts, pages, categories and tags urls are not modified."
515
+ msgstr "პოსტების, გვერდების, კატეგორიების და ჭდეების მისამართები არ შეცვლილა."
516
+
517
+ # @ polylang
518
+ #: admin/view-languages.php:199
519
+ msgid "The language is set from the directory name in pretty permalinks"
520
+ msgstr "ენა დაყენებულია დირექტორიის სახელიდან pretty permalinks-ში"
521
+
522
+ # @ polylang
523
+ #: admin/view-languages.php:202 admin/view-languages.php:211
524
+ #: admin/view-languages.php:258 admin/view-languages.php:267
525
+ msgid "Example:"
526
+ msgstr "მაგალითი:"
527
+
528
+ # @ polylang
529
+ #: admin/view-languages.php:208
530
+ msgid "The language is set from the subdomain name in pretty permalinks"
531
+ msgstr "ენა დაყენებულია ქვედომეინის სახელიდან pretty permalinks-ში"
532
+
533
+ # @ polylang
534
+ #: admin/view-languages.php:217
535
+ msgid "The language is set from different domains"
536
+ msgstr "ენა სხვადასხვა დომეინებიდან არის დაყენებული"
537
+
538
+ # @ polylang
539
+ #: admin/view-languages.php:255
540
+ msgid "Remove /language/ in pretty permalinks"
541
+ msgstr "Pretty permalink-ებიდან /language/ წაშლა"
542
+
543
+ # @ polylang
544
+ #: admin/view-languages.php:264
545
+ msgid "Keep /language/ in pretty permalinks"
546
+ msgstr "Pretty permalink-ში /language/ -ის ჩვენება"
547
+
548
+ # @ polylang
549
+ #: admin/view-languages.php:279
550
+ msgid "The front page url contains the language code instead of the page name or page id"
551
+ msgstr "თავფურცელის მისამართი შეიცავს ენის კოდს გვერდის სახელის ან აიდის ნაცვლად"
552
+
553
+ # @ polylang
554
+ #: admin/admin-filters-term.php:167
555
+ #, php-format
556
+ msgid "A translation does already exist for %s"
557
+ msgstr "%s-ს თარგმანი უკვე არსებობს"
558
+
559
+ # @ polylang
560
+ #: admin/view-languages.php:287
561
+ #, php-format
562
+ msgid "Example: %s instead of %s"
563
+ msgstr "მაგალითი: %s %s-ს ნაცვლად"
564
+
565
+ # @ polylang
566
+ #: admin/admin-model.php:38
567
+ msgid "Impossible to add the language."
568
+ msgstr "ენის დამატება შეუძლებელია."
569
+
570
+ # @ polylang
571
+ #: admin/admin-model.php:62
572
+ msgid "Language added."
573
+ msgstr "ენა დამატებულია."
574
+
575
+ # @ polylang
576
+ #: admin/admin-model.php:176
577
+ msgid "Language deleted."
578
+ msgstr "ენა წაშლილია."
579
+
580
+ # @ polylang
581
+ #: admin/admin-model.php:257
582
+ msgid "Language updated."
583
+ msgstr "ენა განახლებულია."
584
+
585
+ # @ polylang
586
+ #: admin/settings.php:221
587
+ msgid "Translations updated."
588
+ msgstr "თარგმანები განახლებულია."
589
+
590
+ # @ polylang
591
+ #: admin/view-languages.php:89
592
+ msgid "Language code - preferably 2-letters ISO 639-1 (for example: en)"
593
+ msgstr "ენის კოდი - სასურველია 2 ასო ISO 639-1 (მაგალითად: ka)"
594
+
595
+ # @ polylang
596
+ #: admin/admin-filters.php:202
597
+ msgid "The chosen static front page must be translated in all languages."
598
+ msgstr "არჩეული სტატიკური თავფურცელი ყველა ენაზე უნდა ითარგმნოს"
599
+
600
+ # @ polylang
601
+ #: admin/admin-strings.php:60
602
+ msgid "Widget text"
603
+ msgstr "ვიჯეტის ტექსტი"
polylang.php CHANGED
@@ -2,7 +2,7 @@
2
  /*
3
  Plugin Name: Polylang
4
  Plugin URI: http://polylang.wordpress.com/
5
- Version: 1.6.2
6
  Author: Frédéric Demarle
7
  Description: Adds multilingual capability to WordPress
8
  Text Domain: polylang
@@ -10,7 +10,7 @@ Domain Path: /languages
10
  */
11
 
12
  /*
13
- * Copyright 2011-2014 Frédéric Demarle
14
  *
15
  * This program is free software; you can redistribute it and/or modify
16
  * it under the terms of the GNU General Public License as published by
@@ -33,7 +33,7 @@ Domain Path: /languages
33
  if (!function_exists('add_action'))
34
  exit();
35
 
36
- define('POLYLANG_VERSION', '1.6.2');
37
  define('PLL_MIN_WP_VERSION', '3.5');
38
 
39
  define('POLYLANG_BASENAME', plugin_basename(__FILE__)); // plugin name as known by WP
2
  /*
3
  Plugin Name: Polylang
4
  Plugin URI: http://polylang.wordpress.com/
5
+ Version: 1.6.3
6
  Author: Frédéric Demarle
7
  Description: Adds multilingual capability to WordPress
8
  Text Domain: polylang
10
  */
11
 
12
  /*
13
+ * Copyright 2011-2015 Frédéric Demarle
14
  *
15
  * This program is free software; you can redistribute it and/or modify
16
  * it under the terms of the GNU General Public License as published by
33
  if (!function_exists('add_action'))
34
  exit();
35
 
36
+ define('POLYLANG_VERSION', '1.6.3');
37
  define('PLL_MIN_WP_VERSION', '3.5');
38
 
39
  define('POLYLANG_BASENAME', plugin_basename(__FILE__)); // plugin name as known by WP
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_i
4
  Tags: multilingual, bilingual, translate, translation, language, multilanguage, international, localization
5
  Requires at least: 3.5
6
  Tested up to: 4.1
7
- Stable tag: 1.6.2
8
  License: GPLv2 or later
9
 
10
  Polylang adds multilingual content management support to WordPress.
@@ -24,7 +24,7 @@ Polylang allows you to create a bilingual or multilingual WordPress site. You wr
24
 
25
  = Translators =
26
 
27
- The plugin admin interface is currently available in 36 languages: English, French, German by [Christian Ries](http://www.singbyfoot.lu), Russian by [yoyurec](http://yoyurec.in.ua) and unostar, Greek by [theodotos](http://www.ubuntucy.org), Dutch by [AlbertGn](http://wordpress.org/support/profile/albertgn), Hebrew by [ArielK](http://www.arielk.net), Polish by [Peter Paciorkiewicz](http://www.paciorkiewicz.pl), [Bartosz](http://www.dfactory.eu/) and Sebastian Janus, Latvian by [@AndyDeGroo](http://twitter.com/AndyDeGroo), Italian by [Luca Barbetti](http://wordpress.org/support/profile/lucabarbetti), Danish by [Compute](http://wordpress.org/support/profile/compute), Spanish by Curro, Portuguese by [Vitor Carvalho](http://vcarvalho.com/), Lithuanian by [Naglis Jonaitis](http://najo.lt/), Turkish by [darchws](http://darch.ws/) and [Abdullah Pazarbasi](http://www.abdullahpazarbasi.com/), Finnish by [Jani Alha](http://www.wysiwyg.fi), Bulgarian by [pavelsof](http://wordpress.org/support/profile/pavelsof), Belarusian by [Alexander Markevitch](http://fourfeathers.by/), Afrikaans by [Kobus Joubert](http://translate3d.com/), Hungarian by Csaba Erdei, Norwegian by [Tom Boersma](http://www.oransje.com/), Slovak by [Branco (WebHostingGeeks.com)](http://webhostinggeeks.com/user-reviews/), Swedish by [matsii](http://wordpress.org/support/profile/matsii) and [Jon Täng](http://jontang.se), Catalan by [Núria Martínez Berenguer](http://www.linkedin.com/profile/view?id=127867004&trk=nav_responsive_tab_profile&locale=en_US), Ukrainian by [cmd soft](http://www.cmd-soft.com/) and [http://getvoip.com/](http://getvoip.com/), Estonian by [Ahto Naris](http://profiles.wordpress.org/ahtonaris/), Venetian by Michele Brunelli, simplified Chinese by [Changmeng Hu](http://www.wpdaxue.com), Indonesian by [ajoull](http://www.ajoull.com/), Arabic by [Anas Sulaiman](http://ahs.pw/), Traditional Chinese by [香腸](http://sofree.cc/), Czech by [Přemysl Karbula](http://www.premyslkarbula.cz), Serbian by Sinisa, Myanmar by Sithu Thwin, Croatian by Bajro, Brazilian Portuguese by [Henrique Vianna](http://henriquevianna.com/)
28
  = Credits =
29
 
30
  Most of the flags included with Polylang are coming from [famfamfam](http://famfamfam.com/) and are public domain. Icons are coming from [Icomoon](http://icomoon.io/) and are licensed under GPL. Wherever third party code has been used, credit has been given in the code’s comments.
@@ -63,6 +63,14 @@ See http://polylang.wordpress.com/documentation/contribute/
63
 
64
  == Changelog ==
65
 
 
 
 
 
 
 
 
 
66
  = 1.6.2 (2014-12-14) =
67
 
68
  * fix: bugs and inconsistencies compared to WPML in 'icl_get_languages' (should fix a conflict with Avada)
4
  Tags: multilingual, bilingual, translate, translation, language, multilanguage, international, localization
5
  Requires at least: 3.5
6
  Tested up to: 4.1
7
+ Stable tag: 1.6.3
8
  License: GPLv2 or later
9
 
10
  Polylang adds multilingual content management support to WordPress.
24
 
25
  = Translators =
26
 
27
+ The plugin admin interface is currently available in 37 languages: English, French, German by [Christian Ries](http://www.singbyfoot.lu), Russian by [yoyurec](http://yoyurec.in.ua) and unostar, Greek by [theodotos](http://www.ubuntucy.org), Dutch by [AlbertGn](http://wordpress.org/support/profile/albertgn), Hebrew by [ArielK](http://www.arielk.net), Polish by [Peter Paciorkiewicz](http://www.paciorkiewicz.pl), [Bartosz](http://www.dfactory.eu/) and Sebastian Janus, Latvian by [@AndyDeGroo](http://twitter.com/AndyDeGroo), Italian by [Luca Barbetti](http://wordpress.org/support/profile/lucabarbetti), Danish by [Compute](http://wordpress.org/support/profile/compute), Spanish by Curro, Portuguese by [Vitor Carvalho](http://vcarvalho.com/), Lithuanian by [Naglis Jonaitis](http://najo.lt/), Turkish by [darchws](http://darch.ws/) and [Abdullah Pazarbasi](http://www.abdullahpazarbasi.com/), Finnish by [Jani Alha](http://www.wysiwyg.fi), Bulgarian by [pavelsof](http://wordpress.org/support/profile/pavelsof), Belarusian by [Alexander Markevitch](http://fourfeathers.by/), Afrikaans by [Kobus Joubert](http://translate3d.com/), Hungarian by Csaba Erdei, Norwegian by [Tom Boersma](http://www.oransje.com/), Slovak by [Branco (WebHostingGeeks.com)](http://webhostinggeeks.com/user-reviews/), Swedish by [matsii](http://wordpress.org/support/profile/matsii) and [Jon Täng](http://jontang.se), Catalan by [Núria Martínez Berenguer](http://www.linkedin.com/profile/view?id=127867004&trk=nav_responsive_tab_profile&locale=en_US), Ukrainian by [cmd soft](http://www.cmd-soft.com/) and [http://getvoip.com/](http://getvoip.com/), Estonian by [Ahto Naris](http://profiles.wordpress.org/ahtonaris/), Venetian by Michele Brunelli, simplified Chinese by [Changmeng Hu](http://www.wpdaxue.com), Indonesian by [ajoull](http://www.ajoull.com/), Arabic by [Anas Sulaiman](http://ahs.pw/), Traditional Chinese by [香腸](http://sofree.cc/), Czech by [Přemysl Karbula](http://www.premyslkarbula.cz), Serbian by Sinisa, Myanmar by Sithu Thwin, Croatian by Bajro, Brazilian Portuguese by [Henrique Vianna](http://henriquevianna.com/), Georgian by [Tours in Georgia](http://www.georgia-tours.eu/)
28
  = Credits =
29
 
30
  Most of the flags included with Polylang are coming from [famfamfam](http://famfamfam.com/) and are public domain. Icons are coming from [Icomoon](http://icomoon.io/) and are licensed under GPL. Wherever third party code has been used, credit has been given in the code’s comments.
63
 
64
  == Changelog ==
65
 
66
+ = 1.6.3 =
67
+
68
+ * Add Georgian translation contributed by [Tours in Georgia](http://www.georgia-tours.eu/)
69
+ * fix: WXR export does not include the language of untranslated terms (will now work only for newly saved terms)
70
+ * fix: better cleaning of DB when translated objects are deleted
71
+ * fix: incorrect (ajax) translations links when modifying a term language
72
+ * fix: warning: Illegal string offset 'taxonomy' introduced by the combination of WP 4.1 and some plugins.
73
+
74
  = 1.6.2 (2014-12-14) =
75
 
76
  * fix: bugs and inconsistencies compared to WPML in 'icl_get_languages' (should fix a conflict with Avada)