Polylang - Version 0.9.3

Version Description

(2012-10-08) =

  • Add Bulgarian translation contributed by pavelsof
  • Add compatibility with WPML API for strings translations
  • Bug correction: dates are not translated (introduced in 0.9.2)
  • Bug correction: the language is lost when keeping - No change - for language in bulk edit
  • Bug correction: categories and tags are duplicate (when default language is set automatically to existing content and categories and tags share the same name)
Download this release

Release Info

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

Code changes from version 0.9.2 to 0.9.3

doc/documentation-en.odt CHANGED
Binary file
doc/documentation-en.pdf CHANGED
Binary file
include/admin-filters.php CHANGED
@@ -188,7 +188,7 @@ class Polylang_Admin_Filters extends Polylang_Admin_Base {
188
  $name = $type == 'edit-tags' ? 'inline_lang_choice' : 'post_lang_choice';
189
 
190
  $args = current_filter() == 'bulk_edit_custom_box' ?
191
- array('name' => $name, 'add_option' => __('— No Change —')) :
192
  array('name' => $name);
193
 
194
  echo '<fieldset class="inline-edit-col-left"><div class="inline-edit-col">';
@@ -444,6 +444,10 @@ class Polylang_Admin_Filters extends Polylang_Admin_Base {
444
  if (!in_array($post->post_type, $this->post_types))
445
  return;
446
 
 
 
 
 
447
  if ($id = wp_is_post_revision($post_id))
448
  $post_id = $id;
449
 
@@ -455,6 +459,8 @@ class Polylang_Admin_Filters extends Polylang_Admin_Base {
455
  }
456
  elseif (isset($_GET['new_lang']))
457
  $this->set_post_language($post_id, $_GET['new_lang']);
 
 
458
  elseif ($this->get_post_language($post_id))
459
  {} // avoids breaking the language if post is updated outside the edit post page (thanks to Gonçalo Peres)
460
  else
@@ -949,7 +955,7 @@ class Polylang_Admin_Filters extends Polylang_Admin_Base {
949
  $this->dropdown_languages(array(
950
  'name' => $widget->id.'_lang_choice',
951
  'class' => 'tags-input',
952
- 'add_option' => __('All languages', 'polylang'),
953
  'selected' => isset($widget_lang[$widget->id]) ? $widget_lang[$widget->id] : ''
954
  ))
955
  );
@@ -978,7 +984,7 @@ class Polylang_Admin_Filters extends Polylang_Admin_Base {
978
  'name' => 'user_lang',
979
  'value' => 'description',
980
  'selected' => get_user_meta($profileuser->ID, 'user_lang', true),
981
- 'add_option' => __('Wordpress default', 'polylang')
982
  ))
983
  );
984
 
188
  $name = $type == 'edit-tags' ? 'inline_lang_choice' : 'post_lang_choice';
189
 
190
  $args = current_filter() == 'bulk_edit_custom_box' ?
191
+ array('name' => $name, 'add_options' => array(array('value' => -1, 'text' => __('&mdash; No Change &mdash;')))) :
192
  array('name' => $name);
193
 
194
  echo '<fieldset class="inline-edit-col-left"><div class="inline-edit-col">';
444
  if (!in_array($post->post_type, $this->post_types))
445
  return;
446
 
447
+ // bulk edit does not modify the language
448
+ if (isset($_GET['bulk_edit']) && $_REQUEST['post_lang_choice'] == -1)
449
+ return;
450
+
451
  if ($id = wp_is_post_revision($post_id))
452
  $post_id = $id;
453
 
459
  }
460
  elseif (isset($_GET['new_lang']))
461
  $this->set_post_language($post_id, $_GET['new_lang']);
462
+ elseif (isset($_REQUEST['action']) && in_array($_REQUEST['action'], array('post-quickpress-save', 'post-quickpress-publish')))
463
+ $this->set_post_language($post_id, $this->get_default_language()); // default language for QuickPress
464
  elseif ($this->get_post_language($post_id))
465
  {} // avoids breaking the language if post is updated outside the edit post page (thanks to Gonçalo Peres)
466
  else
955
  $this->dropdown_languages(array(
956
  'name' => $widget->id.'_lang_choice',
957
  'class' => 'tags-input',
958
+ 'add_options' => array(array('value' => 0, 'text' => __('All languages', 'polylang'))),
959
  'selected' => isset($widget_lang[$widget->id]) ? $widget_lang[$widget->id] : ''
960
  ))
961
  );
984
  'name' => 'user_lang',
985
  'value' => 'description',
986
  'selected' => get_user_meta($profileuser->ID, 'user_lang', true),
987
+ 'add_options' => array(array('value' => 0, 'text' => __('Wordpress default', 'polylang')))
988
  ))
989
  );
990
 
include/admin.php CHANGED
@@ -287,6 +287,7 @@ class Polylang_Admin extends Polylang_Admin_Base {
287
 
288
  if ($values)
289
  $wpdb->query("INSERT INTO $wpdb->termmeta (term_id, meta_key, meta_value) VALUES " . implode(',', $values));
 
290
  }
291
  break;
292
 
@@ -402,10 +403,8 @@ class Polylang_Admin extends Polylang_Admin_Base {
402
 
403
  global $wpdb;
404
  $terms = get_terms($this->taxonomies, array('get'=>'all', 'fields'=>'ids'));
405
- $tr_terms = $wpdb->get_col("SELECT t.term_id FROM $wpdb->terms AS t
406
- LEFT JOIN $wpdb->termmeta AS tm ON t.term_id = tm.term_id
407
- WHERE tm.meta_key = '_language'");
408
- $terms = array_diff($terms, $tr_terms);
409
 
410
  return apply_filters('pll_get_objects_with_no_lang', empty($posts) && empty($terms) ? false : array('posts' => $posts, 'terms' => $terms));
411
  }
287
 
288
  if ($values)
289
  $wpdb->query("INSERT INTO $wpdb->termmeta (term_id, meta_key, meta_value) VALUES " . implode(',', $values));
290
+
291
  }
292
  break;
293
 
403
 
404
  global $wpdb;
405
  $terms = get_terms($this->taxonomies, array('get'=>'all', 'fields'=>'ids'));
406
+ $tr_terms = $wpdb->get_col("SELECT term_id FROM $wpdb->termmeta WHERE meta_key = '_language'");
407
+ $terms = array_unique(array_diff($terms, $tr_terms), SORT_NUMERIC); // array_unique to avoid duplicates if a term is in more than one taxonomy
 
 
408
 
409
  return apply_filters('pll_get_objects_with_no_lang', empty($posts) && empty($terms) ? false : array('posts' => $posts, 'terms' => $terms));
410
  }
include/api.php CHANGED
@@ -48,4 +48,15 @@ function pll__($string) {
48
  function pll_e($string) {
49
  _e($string, 'pll_string');
50
  }
 
 
 
 
 
 
 
 
 
 
 
51
  ?>
48
  function pll_e($string) {
49
  _e($string, 'pll_string');
50
  }
51
+
52
+ // compatibility with WPML string translation API
53
+ if (!function_exists('icl_register_string') && !function_exists('icl_t')) {
54
+ function icl_register_string($context, $name, $string) {
55
+ pll_register_string($name, $string);
56
+ }
57
+
58
+ function icl_t($context, $name, $string) {
59
+ return pll__($string);
60
+ }
61
+ }
62
  ?>
include/base.php CHANGED
@@ -41,11 +41,15 @@ abstract class Polylang_Base {
41
  // retrieves the dropdown list of the languages
42
  function dropdown_languages($args = array()) {
43
  $args = apply_filters('pll_dropdown_language_args', $args);
44
- $defaults = array('name' => 'lang_choice', 'class' => '', 'add_option' => false, 'hide_empty' => false, 'value' => 'slug', 'selected' => '');
45
  extract(wp_parse_args($args, $defaults));
46
 
 
 
 
47
  $out = sprintf('<select name="%1$s" id="%1$s"%2$s>'."\n", esc_attr($name), $class ? ' class="'.esc_attr($class).'"' : '');
48
- $out .= $add_option !== false ? "<option value='0'>$add_option</option>\n" : '';
 
49
  foreach ($this->get_languages_list($args) as $language) {
50
  $out .= sprintf("<option value='%s'%s>%s</option>\n",
51
  esc_attr($language->$value),
41
  // retrieves the dropdown list of the languages
42
  function dropdown_languages($args = array()) {
43
  $args = apply_filters('pll_dropdown_language_args', $args);
44
+ $defaults = array('name' => 'lang_choice', 'class' => '', 'add_options' => array(), 'hide_empty' => false, 'value' => 'slug', 'selected' => '');
45
  extract(wp_parse_args($args, $defaults));
46
 
47
+ // sort $add_options by value
48
+ uasort($add_options, create_function('$a, $b', "return \$a['value'] > \$b['value'];" ));
49
+
50
  $out = sprintf('<select name="%1$s" id="%1$s"%2$s>'."\n", esc_attr($name), $class ? ' class="'.esc_attr($class).'"' : '');
51
+ foreach ($add_options as $option)
52
+ $out .= "<option value='" . $option['value'] . "'>" . $option['text'] . "</option>\n";
53
  foreach ($this->get_languages_list($args) as $language) {
54
  $out .= sprintf("<option value='%s'%s>%s</option>\n",
55
  esc_attr($language->$value),
include/core.php CHANGED
@@ -113,9 +113,9 @@ class Polylang_Core extends Polylang_base {
113
  add_filter('widget_display_callback', array(&$this, 'widget_display_callback'), 10, 3);
114
 
115
  // strings translation (must be applied before WordPress applies its default formatting filters)
116
- add_filter('widget_title', array(&$this, 'widget_title'), 1);
117
- add_filter('bloginfo', array(&$this, 'bloginfo'), 1, 2);
118
- add_filter('get_bloginfo_rss', array(&$this, 'bloginfo'), 1, 2);
119
 
120
  // translates biography
121
  add_filter('get_user_metadata', array(&$this,'get_user_metadata'), 10, 4);
@@ -251,6 +251,8 @@ class Polylang_Core extends Polylang_base {
251
  $this->curlang = $this->get_preferred_language();
252
  else
253
  $this->curlang = $this->get_language($this->options['default_lang']);
 
 
254
  }
255
 
256
  // save the default locale before we start any language manipulation
@@ -299,7 +301,7 @@ class Polylang_Core extends Polylang_base {
299
  // as done by xili_language: load text domains and reinitialize wp_locale with the action 'wp'
300
  // as done by qtranslate: define the locale with the action 'plugins_loaded', but in this case, the language must be specified in the url.
301
  function load_textdomains() {
302
- global $wp_rewrite, $wp_locale, $l10n;
303
 
304
  // our override_load_textdomain filter has done its job. let's remove it before calling load_textdomain
305
  remove_filter('override_load_textdomain', array(&$this, 'mofile'));
@@ -323,19 +325,20 @@ class Polylang_Core extends Polylang_base {
323
  load_textdomain( $textdomain['domain'], str_replace($this->default_locale, $new_locale, $textdomain['mo']));
324
 
325
  // reinitializes wp_locale for weekdays and months, as well as for text direction
326
- unset($wp_locale);
327
- $wp_locale = new WP_Locale();
328
- $wp_locale->text_direction = get_metadata('term', $this->curlang->term_id, '_rtl', true) ? 'rtl' : 'ltr';
329
 
330
  // translate labels of post types and taxonomies
331
  foreach ($GLOBALS['wp_taxonomies'] as $tax)
332
  $this->translate_labels($tax);
333
  foreach ($GLOBALS['wp_post_types'] as $pt)
334
  $this->translate_labels($pt);
 
 
 
335
  }
336
 
337
- // and finally load user defined strings
338
- $l10n['pll_string'] = $this->mo_import($this->curlang);
339
  }
340
 
341
  else {
@@ -766,22 +769,6 @@ class Polylang_Core extends Polylang_base {
766
  return isset($widget_lang[$widget->id]) && $widget_lang[$widget->id] && $widget_lang[$widget->id] != $this->curlang->slug ? false : $instance;
767
  }
768
 
769
- // translates widget titles
770
- function widget_title($title) {
771
- return __($title, 'pll_string');
772
- }
773
-
774
- // translates site title and tagline
775
- function bloginfo($output, $show) {
776
- if (in_array($show, array('', 'name', 'description'))) {
777
- $output = __($output, 'pll_string');
778
- if (current_filter() == 'get_bloginfo_rss')
779
- $output = convert_chars($output);
780
- }
781
-
782
- return $output;
783
- }
784
-
785
  // translates biography
786
  function get_user_metadata($null, $id, $meta_key, $single) {
787
  return $meta_key == 'description' ? get_user_meta($id, 'description_'.$this->curlang->slug, true) : $null;
113
  add_filter('widget_display_callback', array(&$this, 'widget_display_callback'), 10, 3);
114
 
115
  // strings translation (must be applied before WordPress applies its default formatting filters)
116
+ add_filter('widget_title', 'pll__', 1);
117
+ add_filter('option_blogname', 'pll__', 1);
118
+ add_filter('option_blogdescription', 'pll__', 1);
119
 
120
  // translates biography
121
  add_filter('get_user_metadata', array(&$this,'get_user_metadata'), 10, 4);
251
  $this->curlang = $this->get_preferred_language();
252
  else
253
  $this->curlang = $this->get_language($this->options['default_lang']);
254
+
255
+ $GLOBALS['l10n']['pll_string'] = $this->mo_import($this->curlang);
256
  }
257
 
258
  // save the default locale before we start any language manipulation
301
  // as done by xili_language: load text domains and reinitialize wp_locale with the action 'wp'
302
  // as done by qtranslate: define the locale with the action 'plugins_loaded', but in this case, the language must be specified in the url.
303
  function load_textdomains() {
304
+ global $wp_rewrite, $l10n;
305
 
306
  // our override_load_textdomain filter has done its job. let's remove it before calling load_textdomain
307
  remove_filter('override_load_textdomain', array(&$this, 'mofile'));
325
  load_textdomain( $textdomain['domain'], str_replace($this->default_locale, $new_locale, $textdomain['mo']));
326
 
327
  // reinitializes wp_locale for weekdays and months, as well as for text direction
328
+ unset($GLOBALS['wp_locale']);
329
+ $GLOBALS['wp_locale'] = new WP_Locale();
330
+ $GLOBALS['wp_locale']->text_direction = get_metadata('term', $this->curlang->term_id, '_rtl', true) ? 'rtl' : 'ltr';
331
 
332
  // translate labels of post types and taxonomies
333
  foreach ($GLOBALS['wp_taxonomies'] as $tax)
334
  $this->translate_labels($tax);
335
  foreach ($GLOBALS['wp_post_types'] as $pt)
336
  $this->translate_labels($pt);
337
+
338
+ // and finally load user defined strings
339
+ $l10n['pll_string'] = $this->mo_import($this->curlang);
340
  }
341
 
 
 
342
  }
343
 
344
  else {
769
  return isset($widget_lang[$widget->id]) && $widget_lang[$widget->id] && $widget_lang[$widget->id] != $this->curlang->slug ? false : $instance;
770
  }
771
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
772
  // translates biography
773
  function get_user_metadata($null, $id, $meta_key, $single) {
774
  return $meta_key == 'description' ? get_user_meta($id, 'description_'.$this->curlang->slug, true) : $null;
languages/polylang-bg_BG.mo ADDED
Binary file
languages/polylang-bg_BG.po ADDED
@@ -0,0 +1,493 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: polylang\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2012-08-19 20:12+0100\n"
6
+ "PO-Revision-Date: \n"
7
+ "Last-Translator: Павел <pavelsof@gmail.com>\n"
8
+ "Language-Team: Павел <pavelsof@gmail.com>\n"
9
+ "Language: Bulgarian\n"
10
+ "MIME-Version: 1.0\n"
11
+ "Content-Type: text/plain; charset=UTF-8\n"
12
+ "Content-Transfer-Encoding: 8bit\n"
13
+ "Plural-Forms: nplurals=2: nplural=n>1;\n"
14
+ "X-Poedit-SourceCharset: UTF-8\n"
15
+ "X-Poedit-KeywordsList: _e;__;_x\n"
16
+ "X-Poedit-Basepath: .\n"
17
+ "X-Generator: Poedit 1.5.3\n"
18
+ "X-Poedit-SearchPath-0: ..\n"
19
+ "X-Poedit-SearchPath-1: ../include\n"
20
+
21
+ #: ../polylang.php:111
22
+ #, php-format
23
+ msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
24
+ msgstr ""
25
+ "Вие използвате WordPress %s. Минималните изисквания за Polylang включват "
26
+ "WordPress %s."
27
+
28
+ #: ../polylang.php:125
29
+ msgid "For some reasons, Polylang could not create a table in your database."
30
+ msgstr ""
31
+ "По една или друга причина Polylang не успя да си създаде необходимата "
32
+ "таблица в базата данни. "
33
+
34
+ #: ../polylang.php:208
35
+ msgid "Error: Restore of local flags failed!"
36
+ msgstr "Грешка: възстановяването на знаменцата бе неуспешно!"
37
+
38
+ #: ../polylang.php:209
39
+ #, php-format
40
+ msgid "Please move your local flags from %s to %s"
41
+ msgstr "Моля преместете знаменцата от %s в %s"
42
+
43
+ #: ../include/calendar.php:106
44
+ #, php-format
45
+ msgid "%1$s %2$s"
46
+ msgstr "%1$s %2$s"
47
+
48
+ #: ../include/calendar.php:132 ../include/calendar.php:140
49
+ #, php-format
50
+ msgid "View posts for %1$s %2$s"
51
+ msgstr "Преглед на публикациите за %1$s %2$s"
52
+
53
+ #: ../include/media-translations.php:3 ../include/admin-filters.php:194
54
+ #: ../include/admin-filters.php:525 ../include/admin-filters.php:696
55
+ #: ../include/admin-filters.php:714 ../include/post-translations.php:8
56
+ #: ../include/term-translations.php:15
57
+ msgid "Language"
58
+ msgstr "Език"
59
+
60
+ #: ../include/media-translations.php:4 ../include/term-translations.php:16
61
+ msgid "Translation"
62
+ msgstr "Превод"
63
+
64
+ #: ../include/media-translations.php:18 ../include/post-translations.php:10
65
+ #: ../include/post-translations.php:33 ../include/term-translations.php:18
66
+ #: ../include/term-translations.php:65
67
+ msgid "Edit"
68
+ msgstr "Редактиране"
69
+
70
+ #: ../include/media-translations.php:26 ../include/post-translations.php:38
71
+ #: ../include/term-translations.php:54
72
+ msgid "Add new"
73
+ msgstr "Добави нов"
74
+
75
+ #: ../include/widget.php:6
76
+ msgid "Language Switcher"
77
+ msgstr "Джаджа за смяна на езика"
78
+
79
+ #: ../include/widget.php:6
80
+ msgid "Displays a language switcher"
81
+ msgstr "Показване на джаджа за смяна на езика"
82
+
83
+ #: ../include/widget.php:73
84
+ msgid "Title:"
85
+ msgstr "Заглавие:"
86
+
87
+ #: ../include/admin-base.php:50 ../include/admin-base.php:176
88
+ #: ../include/admin.php:290 ../include/admin-filters.php:221
89
+ msgid "Languages"
90
+ msgstr "Езици"
91
+
92
+ #: ../include/admin-base.php:55
93
+ msgid "About Polylang"
94
+ msgstr "Относно Polylang"
95
+
96
+ #: ../include/admin-base.php:149
97
+ msgid "Displays language names"
98
+ msgstr "Показване на имената на езиците"
99
+
100
+ #: ../include/admin-base.php:150
101
+ msgid "Displays flags"
102
+ msgstr "Показване на знаменца"
103
+
104
+ #: ../include/admin-base.php:151
105
+ msgid "Forces link to front page"
106
+ msgstr "Всички връзки сочат към началната страница"
107
+
108
+ #: ../include/admin-base.php:152
109
+ msgid "Hides the current language"
110
+ msgstr "Скриване на текущия език"
111
+
112
+ #: ../include/admin-base.php:154
113
+ msgid "Displays a language switcher at the end of the menu"
114
+ msgstr "Показване на джаджата за смяна на езици след менюто"
115
+
116
+ #: ../include/admin-base.php:155
117
+ msgid "Displays as dropdown"
118
+ msgstr "Показване като падащо меню"
119
+
120
+ #: ../include/admin-base.php:177
121
+ msgid "Filters content by language"
122
+ msgstr "Филтриране на съдържанието по език"
123
+
124
+ #: ../include/admin-base.php:184
125
+ msgid "Show all languages"
126
+ msgstr "Показване на всички езици"
127
+
128
+ #: ../include/admin.php:295
129
+ msgid "Menus"
130
+ msgstr "Менюта"
131
+
132
+ #: ../include/admin.php:297
133
+ msgid "Strings translation"
134
+ msgstr "Превод на низове"
135
+
136
+ #: ../include/admin.php:298 ../include/admin-filters.php:988
137
+ msgid "Settings"
138
+ msgstr "Настройки"
139
+
140
+ #: ../include/admin.php:317
141
+ msgid "Enter a valid WorPress locale"
142
+ msgstr "Въведете валидно (WordPress) местоположение"
143
+
144
+ #: ../include/admin.php:318
145
+ msgid "The language code must be 2 characters long"
146
+ msgstr "Кодът на езика трябва да бъде двубуквен"
147
+
148
+ #: ../include/admin.php:319
149
+ msgid "The language code must be unique"
150
+ msgstr "Кодът на езика трябва да бъде уникален"
151
+
152
+ #: ../include/admin.php:320
153
+ msgid "The language must have a name"
154
+ msgstr "Кодът на езика трябва да има наименование"
155
+
156
+ #: ../include/admin.php:321
157
+ msgid ""
158
+ "The language was created, but the WordPress language file was not "
159
+ "downloaded. Please install it manually."
160
+ msgstr ""
161
+ "Езикът беше добавен, но езиковият файл не може да бъде зареден. Моля "
162
+ "инсталирайте го ръчно. "
163
+
164
+ #: ../include/admin.php:409
165
+ msgid "Site Title"
166
+ msgstr "Заглавие на уебсайта"
167
+
168
+ #: ../include/admin.php:410
169
+ msgid "Tagline"
170
+ msgstr "Кратко описание"
171
+
172
+ #: ../include/admin.php:428
173
+ msgid "Widget title"
174
+ msgstr "Заглавие на джаджата"
175
+
176
+ #: ../include/admin-filters.php:176 ../include/admin-filters.php:753
177
+ msgid "Add new translation"
178
+ msgstr "Добавяне на нов превод"
179
+
180
+ #: ../include/admin-filters.php:190
181
+ msgid "&mdash; No Change &mdash;"
182
+ msgstr "&mdash; Без промяна &mdash;"
183
+
184
+ #: ../include/admin-filters.php:244
185
+ msgid "Page's language:"
186
+ msgstr "Език на страницата"
187
+
188
+ #: ../include/admin-filters.php:244
189
+ msgid "Post's language:"
190
+ msgstr "Език на публикацията"
191
+
192
+ #: ../include/admin-filters.php:305
193
+ msgid "(no parent)"
194
+ msgstr "(без родител)"
195
+
196
+ #: ../include/admin-filters.php:536 ../include/admin-filters.php:561
197
+ #: ../include/term-translations.php:6 ../include/term-translations.php:11
198
+ msgid "Translations"
199
+ msgstr "Преводи"
200
+
201
+ #: ../include/admin-filters.php:698 ../include/admin-filters.php:717
202
+ msgid "Sets the language"
203
+ msgstr "Избор на език"
204
+
205
+ #: ../include/admin-filters.php:879
206
+ msgid "None"
207
+ msgstr "Празно"
208
+
209
+ #: ../include/admin-filters.php:910
210
+ msgid "Theme locations and languages"
211
+ msgstr "Език и местоположение"
212
+
213
+ #: ../include/admin-filters.php:916
214
+ #, php-format
215
+ msgid ""
216
+ "Please go to the %slanguages page%s to set theme locations and languages"
217
+ msgstr "Моля посетете %sстраницата за настройка на езиците%s."
218
+
219
+ #: ../include/admin-filters.php:931
220
+ msgid "The widget is displayed for:"
221
+ msgstr "Джаджата се показва за:"
222
+
223
+ #: ../include/admin-filters.php:935
224
+ msgid "All languages"
225
+ msgstr "Всички езици"
226
+
227
+ #: ../include/admin-filters.php:959
228
+ msgid "Admin language"
229
+ msgstr "Езика на администраторския панел"
230
+
231
+ #: ../include/admin-filters.php:964
232
+ msgid "Wordpress default"
233
+ msgstr "Езика по подразбиране"
234
+
235
+ #: ../include/admin-filters.php:994
236
+ msgid "Upgrading language files&#8230;"
237
+ msgstr "Обновяване на езиковите файлове&#8230;"
238
+
239
+ #: ../include/languages-form.php:38
240
+ msgid "Edit language"
241
+ msgstr "Редактиране на езика"
242
+
243
+ #: ../include/languages-form.php:38 ../include/languages-form.php:105
244
+ msgid "Add new language"
245
+ msgstr "Добавяне на нов език"
246
+
247
+ #: ../include/languages-form.php:60
248
+ msgid "Choose a language"
249
+ msgstr "Изберете език"
250
+
251
+ #: ../include/languages-form.php:68
252
+ msgid "You can choose a language in the list or directly edit it below."
253
+ msgstr ""
254
+ "Можете да изберете език от падащото меню или да създадете нов използвайки "
255
+ "полетата по-долу. "
256
+
257
+ #: ../include/languages-form.php:72
258
+ msgid "Full name"
259
+ msgstr "Наименование"
260
+
261
+ #: ../include/languages-form.php:74
262
+ msgid "The name is how it is displayed on your site (for example: English)."
263
+ msgstr ""
264
+ "Наименованието както ще се показва в уебсайта (например: български, English)"
265
+
266
+ #: ../include/languages-form.php:78
267
+ msgid "Locale"
268
+ msgstr "Местоположение"
269
+
270
+ #: ../include/languages-form.php:81
271
+ msgid ""
272
+ "Wordpress Locale for the language (for example: en_US). You will need to "
273
+ "install the .mo file for this language."
274
+ msgstr ""
275
+ "Местоположение според WordPress (например: bg_BG, en_GB). Ще трябва да "
276
+ "инсталирате съответния езиков файл (.mo). "
277
+
278
+ #: ../include/languages-form.php:85
279
+ msgid "Language code"
280
+ msgstr "Код на езика"
281
+
282
+ #: ../include/languages-form.php:87
283
+ msgid "2-letters ISO 639-1 language code (for example: en)"
284
+ msgstr "Двубуквеният код на езика според ISO 639-1 (например: bg, en)"
285
+
286
+ #: ../include/languages-form.php:91
287
+ msgid "Text direction"
288
+ msgstr "Посока на писане"
289
+
290
+ #: ../include/languages-form.php:93
291
+ msgid "left to right"
292
+ msgstr "отляво надясно"
293
+
294
+ #: ../include/languages-form.php:95
295
+ msgid "right to left"
296
+ msgstr "отдясно наляво"
297
+
298
+ #: ../include/languages-form.php:96
299
+ msgid "Choose the text direction for the language"
300
+ msgstr "Изберете посоката на писане"
301
+
302
+ #: ../include/languages-form.php:100
303
+ msgid "Order"
304
+ msgstr "Подредба"
305
+
306
+ #: ../include/languages-form.php:102
307
+ msgid "Position of the language in the language switcher"
308
+ msgstr "Кой подред ще се показва езикът в джаджата за смяна на езици"
309
+
310
+ #: ../include/languages-form.php:105
311
+ msgid "Update"
312
+ msgstr "Обновяване"
313
+
314
+ #: ../include/languages-form.php:151
315
+ msgid "Language switcher"
316
+ msgstr "Джаджа за смяна на езика"
317
+
318
+ #: ../include/languages-form.php:175
319
+ msgid "Clean strings translation database"
320
+ msgstr "Изтриване на запазените преводи "
321
+
322
+ #: ../include/languages-form.php:191
323
+ msgid "Default language"
324
+ msgstr "Език по подразбиране"
325
+
326
+ #: ../include/languages-form.php:203
327
+ msgid ""
328
+ "There are posts, pages, categories or tags without language set. Do you want "
329
+ "to set them all to default language ?"
330
+ msgstr ""
331
+ "Намерени са публикации, страници, категории и етикети, за които не е посочен "
332
+ "език. Искате ли да бъдат прехвърлени към езика по подразбиране?"
333
+
334
+ #: ../include/languages-form.php:211
335
+ msgid "Detect browser language"
336
+ msgstr "Засичане на езика на браузъра"
337
+
338
+ #: ../include/languages-form.php:217
339
+ msgid ""
340
+ "When the front page is visited, set the language according to the browser "
341
+ "preference"
342
+ msgstr ""
343
+ "Когато потребителят посети началната страница, езикът му да се настройва "
344
+ "според предпочитанията на браузъра. "
345
+
346
+ #: ../include/languages-form.php:224
347
+ msgid "URL modifications"
348
+ msgstr "Промени в адреса (URL)"
349
+
350
+ #: ../include/languages-form.php:230
351
+ msgid ""
352
+ "The language is set from content. Posts, pages, categories and tags urls are "
353
+ "not modified."
354
+ msgstr ""
355
+ "Езикът зависи от съдържанието. Адресите (URLs) на публикациите, страниците, "
356
+ "категориите и етикетите не се променят. "
357
+
358
+ #: ../include/languages-form.php:238
359
+ msgid ""
360
+ "The language code, for example /en/, is added to all urls when using pretty "
361
+ "permalinks."
362
+ msgstr ""
363
+ "Кодът на езика (например /bg/, /en/) се добавя към всички адреси (URLs)."
364
+
365
+ #: ../include/languages-form.php:247
366
+ msgid "Remove /language/ in pretty permalinks. Example:"
367
+ msgstr "Премахване на /language/ от адресите (URLs). Например:"
368
+
369
+ #: ../include/languages-form.php:256
370
+ msgid "Keep /language/ in pretty permalinks. Example:"
371
+ msgstr "Запазване на /language/ в адресите (URLs). Например:"
372
+
373
+ #: ../include/languages-form.php:265
374
+ msgid "Hide URL language information for default language"
375
+ msgstr "Скриване на информацията за езика от адресите за езика по подразбиране"
376
+
377
+ #: ../include/languages-form.php:274
378
+ #, php-format
379
+ msgid ""
380
+ "When using static front page, redirect the language page (example: %s) to "
381
+ "the front page in the right language"
382
+ msgstr ""
383
+ "При използване на статична начална страница адресите от типа %s да сочат към "
384
+ "началната страница на съответния език"
385
+
386
+ #: ../include/languages-form.php:281
387
+ msgid "Synchronization"
388
+ msgstr "Синхронизация"
389
+
390
+ #: ../include/languages-form.php:287
391
+ msgid ""
392
+ "Allow to synchronize categories, tags, featured image and other metas "
393
+ "between translations of a post or page"
394
+ msgstr ""
395
+ "Позволяване синхронизацията на категории, етикети, картинки и други meta "
396
+ "неща между различните преводи на публикациите и страниците"
397
+
398
+ #: ../include/post-translations.php:5
399
+ msgid "ID of pages in other languages:"
400
+ msgstr "Ключове на преводите на тази страница"
401
+
402
+ #: ../include/post-translations.php:5
403
+ msgid "ID of posts in other languages:"
404
+ msgstr "Ключове на преводите на тази публикация"
405
+
406
+ #: ../include/post-translations.php:9
407
+ msgid "Page ID"
408
+ msgstr "Ключ"
409
+
410
+ #: ../include/post-translations.php:9
411
+ msgid "Post ID"
412
+ msgstr "Ключ"
413
+
414
+ #: ../include/about.php:3
415
+ #, php-format
416
+ msgid ""
417
+ "Polylang is provided with an extensive %sdocumentation%s (in English only). "
418
+ "It includes information on how to set up your multilingual site and use it "
419
+ "on a daily basis, a FAQ, as well as a documentation for programmers to adapt "
420
+ "their plugins and themes."
421
+ msgstr ""
422
+ "Polylang има подробна %sдокументация на английски%s, съдържаща информация за "
423
+ "първоначалното настройване и поддръжка на многоезични уебсайтове, отговори "
424
+ "на често задавани въпроси, както и документация за разработчици за "
425
+ "интегриране на Polylang с техните разширения и теми. "
426
+
427
+ #: ../include/about.php:8
428
+ #, php-format
429
+ msgid ""
430
+ "You will also find useful information in the %ssupport forum%s. However "
431
+ "don't forget to make a search before posting a new topic."
432
+ msgstr ""
433
+ "Освен това можете да намерите полезна информация във %sфорума за поддръжка"
434
+ "%s; но не забравяйте да потърсите дали някой вече не е задал Вашия въпрос "
435
+ "преди да изпратите запитване. "
436
+
437
+ #: ../include/about.php:14
438
+ #, php-format
439
+ msgid ""
440
+ "Polylang is free of charge and is released under the same license as "
441
+ "WordPress, the %sGPL%s."
442
+ msgstr ""
443
+ "Polylang е безплатно разширение, публикувано под същия лиценз като "
444
+ "WordPress, %sGPL%s."
445
+
446
+ #: ../include/about.php:18
447
+ #, php-format
448
+ msgid "If you wonder how you can help the project, just %sread this%s."
449
+ msgstr "Ако се питате как можете и Вие да помогнете, %sпрочетете това%s. "
450
+
451
+ #: ../include/about.php:22
452
+ msgid ""
453
+ "Finally if you like this plugin or if it helps your business, donations to "
454
+ "the author are greatly appreciated."
455
+ msgstr ""
456
+ "Не на последно място, ако наистина харесвате това разширение и/или то помага "
457
+ "на Вашия бизнес, авторът му високо оценява всяко едно дарение."
458
+
459
+ #: ../include/core.php:547
460
+ msgid "Search"
461
+ msgstr "Търсене"
462
+
463
+ #: ../include/term-translations.php:48
464
+ msgid "No untranslated term"
465
+ msgstr "Няма непреведени низове"
466
+
467
+ #: ../include/list-table.php:27
468
+ msgid "Delete"
469
+ msgstr "Изтриване"
470
+
471
+ #: ../include/list-table.php:47
472
+ msgid "Code"
473
+ msgstr "Код"
474
+
475
+ #: ../include/list-table.php:49
476
+ msgid "Flag"
477
+ msgstr "Знаменце"
478
+
479
+ #: ../include/list-table.php:50
480
+ msgid "Posts"
481
+ msgstr "Публикации"
482
+
483
+ #: ../include/list-table.php:105
484
+ msgid "Strings translations"
485
+ msgstr "Превод на низове"
486
+
487
+ #: ../include/list-table.php:131
488
+ msgid "Name"
489
+ msgstr "Наименование"
490
+
491
+ #: ../include/list-table.php:132
492
+ msgid "String"
493
+ msgstr "Низ"
polylang.php CHANGED
@@ -2,7 +2,7 @@
2
  /*
3
  Plugin Name: Polylang
4
  Plugin URI: http://wordpress.org/extend/plugins/polylang/
5
- Version: 0.9.2
6
  Author: F. Demarle
7
  Description: Adds multilingual capability to Wordpress
8
  */
@@ -24,7 +24,7 @@ Description: Adds multilingual capability to Wordpress
24
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25
  */
26
 
27
- define('POLYLANG_VERSION', '0.9.2');
28
  define('PLL_MIN_WP_VERSION', '3.1');
29
 
30
  define('POLYLANG_DIR', dirname(__FILE__)); // our directory
2
  /*
3
  Plugin Name: Polylang
4
  Plugin URI: http://wordpress.org/extend/plugins/polylang/
5
+ Version: 0.9.3
6
  Author: F. Demarle
7
  Description: Adds multilingual capability to Wordpress
8
  */
24
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25
  */
26
 
27
+ define('POLYLANG_VERSION', '0.9.3');
28
  define('PLL_MIN_WP_VERSION', '3.1');
29
 
30
  define('POLYLANG_DIR', dirname(__FILE__)); // our directory
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, i18n, international, l10n, localization
5
  Requires at least: 3.1
6
  Tested up to: 3.4.2
7
- Stable tag: 0.9.2
8
 
9
  Polylang adds multilingual content management support to WordPress.
10
 
@@ -21,7 +21,7 @@ You write posts, pages and create categories and post tags as usual, and then de
21
  * A language switcher is provided as a widget or in the nav menu
22
  * As a bonus, each user can set the WordPress admin language in its profile
23
 
24
- The plugin admin interface is currently available in 16 languages: English, French, German contributed by [Christian Ries](http://www.singbyfoot.lu), Russian contributed by [yoyurec](http://yoyurec.in.ua), Greek contributed by [theodotos](http://www.ubuntucy.org), Dutch contributed by [AlbertGn](http://wordpress.org/support/profile/albertgn), Hebrew contributed by [ArielK](http://www.arielk.net), Polish contributed by [Peter Paciorkiewicz](http://www.paciorkiewicz.pl), Latvian contributed by [@AndyDeGroo](http://twitter.com/AndyDeGroo), Italian contributed by [Luca Barbetti](http://wordpress.org/support/profile/lucabarbetti), Danish contributed by [Compute](http://wordpress.org/support/profile/compute), Spanish contributed by Curro, Portuguese contributed by [Vitor Carvalho](http://vcarvalho.com/), Lithuanian contributed by [Naglis Jonaitis](http://najo.lt/), Turkish contributed by [darchws](http://darch.ws/), Finnish contributed by [Jani Alha](http://www.wysiwyg.fi)
25
 
26
 
27
  Other [contributions](http://wordpress.org/extend/plugins/polylang/other_notes/) are welcome !
@@ -80,7 +80,7 @@ You can subscribe to the tag ['polylang-dev'](http://wordpress.org/tags/polylang
80
 
81
  = Translate the admin interface =
82
 
83
- Polylang is already available in 16 languages. It's very easy to add a new one ! Download [poedit](http://www.poedit.net/download.php) (available for Windows, Mac OS X and Linux). Rename the file polylang.pot found in the polylang/languages directory into something like polylang-your_locale.po. Open the file with poedit and start translating (keeping strange codes such as %s, %1$s as is). Once done, just save and you will get two files polylang-your_locale.po and polylang-your_locale.mo that you can send to the author. The translation will be included with the next release.
84
 
85
  = Communicate =
86
 
@@ -92,7 +92,15 @@ Every suggestions are welcome.
92
 
93
  == Changelog ==
94
 
95
- = 0.9.2 (2102-09-30) =
 
 
 
 
 
 
 
 
96
 
97
  * Support new WordPress (WP 3.5+) convention for js and css files naming
98
  * Improve performance, mainly on frontend
4
  Tags: multilingual, bilingual, translate, translation, language, multilanguage, i18n, international, l10n, localization
5
  Requires at least: 3.1
6
  Tested up to: 3.4.2
7
+ Stable tag: 0.9.3
8
 
9
  Polylang adds multilingual content management support to WordPress.
10
 
21
  * A language switcher is provided as a widget or in the nav menu
22
  * As a bonus, each user can set the WordPress admin language in its profile
23
 
24
+ The plugin admin interface is currently available in 17 languages: English, French, German contributed by [Christian Ries](http://www.singbyfoot.lu), Russian contributed by [yoyurec](http://yoyurec.in.ua), Greek contributed by [theodotos](http://www.ubuntucy.org), Dutch contributed by [AlbertGn](http://wordpress.org/support/profile/albertgn), Hebrew contributed by [ArielK](http://www.arielk.net), Polish contributed by [Peter Paciorkiewicz](http://www.paciorkiewicz.pl), Latvian contributed by [@AndyDeGroo](http://twitter.com/AndyDeGroo), Italian contributed by [Luca Barbetti](http://wordpress.org/support/profile/lucabarbetti), Danish contributed by [Compute](http://wordpress.org/support/profile/compute), Spanish contributed by Curro, Portuguese contributed by [Vitor Carvalho](http://vcarvalho.com/), Lithuanian contributed by [Naglis Jonaitis](http://najo.lt/), Turkish contributed by [darchws](http://darch.ws/), Finnish contributed by [Jani Alha](http://www.wysiwyg.fi), Bulgarian contributed by [pavelsof](http://wordpress.org/support/profile/pavelsof)
25
 
26
 
27
  Other [contributions](http://wordpress.org/extend/plugins/polylang/other_notes/) are welcome !
80
 
81
  = Translate the admin interface =
82
 
83
+ Polylang is already available in 17 languages. It's very easy to add a new one ! Download [poedit](http://www.poedit.net/download.php) (available for Windows, Mac OS X and Linux). Rename the file polylang.pot found in the polylang/languages directory into something like polylang-your_locale.po. Open the file with poedit and start translating (keeping strange codes such as %s, %1$s as is). Once done, just save and you will get two files polylang-your_locale.po and polylang-your_locale.mo that you can send to the author. The translation will be included with the next release.
84
 
85
  = Communicate =
86
 
92
 
93
  == Changelog ==
94
 
95
+ = 0.9.3 (2012-10-08) =
96
+
97
+ * Add Bulgarian translation contributed by [pavelsof](http://wordpress.org/support/profile/pavelsof)
98
+ * Add compatibility with WPML API for strings translations
99
+ * Bug correction: dates are not translated (introduced in 0.9.2)
100
+ * Bug correction: the language is lost when keeping - No change - for language in bulk edit
101
+ * Bug correction: categories and tags are duplicate (when default language is set automatically to existing content and categories and tags share the same name)
102
+
103
+ = 0.9.2 (2012-09-30) =
104
 
105
  * Support new WordPress (WP 3.5+) convention for js and css files naming
106
  * Improve performance, mainly on frontend